blob: a56dec11b16d31b7e627a505b526e747ca3f3c2a [file] [log] [blame]
Geoff Lang56cf9af2015-02-17 10:16:49 -05001//
2// Copyright (c) 2015 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
7// FunctionsGL.cpp: Implements the FuntionsGL class to contain loaded GL functions
8
9#include "libANGLE/renderer/gl/FunctionsGL.h"
10
11namespace rx
12{
13
14template <typename T>
15static void AssignGLEntryPoint(void *function, T *outFunction)
16{
17 *outFunction = reinterpret_cast<T>(function);
18}
19
20FunctionsGL::FunctionsGL()
21 : blendFunc(nullptr),
22 clear(nullptr),
23 clearColor(nullptr),
24 clearDepth(nullptr),
25 clearStencil(nullptr),
26 colorMask(nullptr),
27 cullFace(nullptr),
28 depthFunc(nullptr),
29 depthMask(nullptr),
30 depthRange(nullptr),
31 disable(nullptr),
32 drawBuffer(nullptr),
33 enable(nullptr),
34 finish(nullptr),
35 flush(nullptr),
36 frontFace(nullptr),
37 getBooleanv(nullptr),
38 getDoublev(nullptr),
39 getError(nullptr),
40 getFloatv(nullptr),
41 getIntegerv(nullptr),
42 getString(nullptr),
43 getTexImage(nullptr),
44 getTexLevelParameterfv(nullptr),
45 getTexLevelParameteriv(nullptr),
46 getTexParameterfv(nullptr),
47 getTexParameteriv(nullptr),
48 hint(nullptr),
49 isEnabled(nullptr),
50 lineWidth(nullptr),
51 logicOp(nullptr),
52 pixelStoref(nullptr),
53 pixelStorei(nullptr),
54 pointSize(nullptr),
55 polygonMode(nullptr),
56 readBuffer(nullptr),
57 readPixels(nullptr),
58 scissor(nullptr),
59 stencilFunc(nullptr),
60 stencilMask(nullptr),
61 stencilOp(nullptr),
62 texImage1D(nullptr),
63 texImage2D(nullptr),
64 texParameterf(nullptr),
65 texParameterfv(nullptr),
66 texParameteri(nullptr),
67 texParameteriv(nullptr),
68 viewport(nullptr),
69
70 bindTexture(nullptr),
71 copyTexImage1D(nullptr),
72 copyTexImage2D(nullptr),
73 copyTexSubImage1D(nullptr),
74 copyTexSubImage2D(nullptr),
75 deleteTextures(nullptr),
76 drawArrays(nullptr),
77 drawElements(nullptr),
78 genTextures(nullptr),
79 isTexture(nullptr),
80 polygonOffset(nullptr),
81 texSubImage1D(nullptr),
82 texSubImage2D(nullptr),
83
84 blendColor(nullptr),
85 blendEquation(nullptr),
86 copyTexSubImage3D(nullptr),
87 drawRangeElements(nullptr),
88 texImage3D(nullptr),
89 texSubImage3D(nullptr),
90
91 activeTexture(nullptr),
92 compressedTexImage1D(nullptr),
93 compressedTexImage2D(nullptr),
94 compressedTexImage3D(nullptr),
95 compressedTexSubImage1D(nullptr),
96 compressedTexSubImage2D(nullptr),
97 compressedTexSubImage3D(nullptr),
98 getCompressedTexImage(nullptr),
99 sampleCoverage(nullptr),
100
101 blendFuncSeparate(nullptr),
102 multiDrawArrays(nullptr),
103 multiDrawElements(nullptr),
104 pointParameterf(nullptr),
105 pointParameterfv(nullptr),
106 pointParameteri(nullptr),
107 pointParameteriv(nullptr),
108
109 beginQuery(nullptr),
110 bindBuffer(nullptr),
111 bufferData(nullptr),
112 bufferSubData(nullptr),
113 deleteBuffers(nullptr),
114 deleteQueries(nullptr),
115 endQuery(nullptr),
116 genBuffers(nullptr),
117 genQueries(nullptr),
118 getBufferParameteriv(nullptr),
119 getBufferPointerv(nullptr),
120 getBufferSubData(nullptr),
121 getQueryObjectiv(nullptr),
122 getQueryObjectuiv(nullptr),
123 getQueryiv(nullptr),
124 isBuffer(nullptr),
125 isQuery(nullptr),
126 mapBuffer(nullptr),
127 unmapBuffer(nullptr),
128
129 attachShader(nullptr),
130 bindAttribLocation(nullptr),
131 blendEquationSeparate(nullptr),
132 compileShader(nullptr),
133 createProgram(nullptr),
134 createShader(nullptr),
135 deleteProgram(nullptr),
136 deleteShader(nullptr),
137 detachShader(nullptr),
138 disableVertexAttribArray(nullptr),
139 drawBuffers(nullptr),
140 enableVertexAttribArray(nullptr),
141 getActiveAttrib(nullptr),
142 getActiveUniform(nullptr),
143 getAttachedShaders(nullptr),
144 getAttribLocation(nullptr),
145 getProgramInfoLog(nullptr),
146 getProgramiv(nullptr),
147 getShaderInfoLog(nullptr),
148 getShaderSource(nullptr),
149 getShaderiv(nullptr),
150 getUniformLocation(nullptr),
151 getUniformfv(nullptr),
152 getUniformiv(nullptr),
153 getVertexAttribPointerv(nullptr),
154 getVertexAttribdv(nullptr),
155 getVertexAttribfv(nullptr),
156 getVertexAttribiv(nullptr),
157 isProgram(nullptr),
158 isShader(nullptr),
159 linkProgram(nullptr),
160 shaderSource(nullptr),
161 stencilFuncSeparate(nullptr),
162 stencilMaskSeparate(nullptr),
163 stencilOpSeparate(nullptr),
164 uniform1f(nullptr),
165 uniform1fv(nullptr),
166 uniform1i(nullptr),
167 uniform1iv(nullptr),
168 uniform2f(nullptr),
169 uniform2fv(nullptr),
170 uniform2i(nullptr),
171 uniform2iv(nullptr),
172 uniform3f(nullptr),
173 uniform3fv(nullptr),
174 uniform3i(nullptr),
175 uniform3iv(nullptr),
176 uniform4f(nullptr),
177 uniform4fv(nullptr),
178 uniform4i(nullptr),
179 uniform4iv(nullptr),
180 uniformMatrix2fv(nullptr),
181 uniformMatrix3fv(nullptr),
182 uniformMatrix4fv(nullptr),
183 useProgram(nullptr),
184 validateProgram(nullptr),
185 vertexAttrib1d(nullptr),
186 vertexAttrib1dv(nullptr),
187 vertexAttrib1f(nullptr),
188 vertexAttrib1fv(nullptr),
189 vertexAttrib1s(nullptr),
190 vertexAttrib1sv(nullptr),
191 vertexAttrib2d(nullptr),
192 vertexAttrib2dv(nullptr),
193 vertexAttrib2f(nullptr),
194 vertexAttrib2fv(nullptr),
195 vertexAttrib2s(nullptr),
196 vertexAttrib2sv(nullptr),
197 vertexAttrib3d(nullptr),
198 vertexAttrib3dv(nullptr),
199 vertexAttrib3f(nullptr),
200 vertexAttrib3fv(nullptr),
201 vertexAttrib3s(nullptr),
202 vertexAttrib3sv(nullptr),
203 vertexAttrib4Nbv(nullptr),
204 vertexAttrib4Niv(nullptr),
205 vertexAttrib4Nsv(nullptr),
206 vertexAttrib4Nub(nullptr),
207 vertexAttrib4Nubv(nullptr),
208 vertexAttrib4Nuiv(nullptr),
209 vertexAttrib4Nusv(nullptr),
210 vertexAttrib4bv(nullptr),
211 vertexAttrib4d(nullptr),
212 vertexAttrib4dv(nullptr),
213 vertexAttrib4f(nullptr),
214 vertexAttrib4fv(nullptr),
215 vertexAttrib4iv(nullptr),
216 vertexAttrib4s(nullptr),
217 vertexAttrib4sv(nullptr),
218 vertexAttrib4ubv(nullptr),
219 vertexAttrib4uiv(nullptr),
220 vertexAttrib4usv(nullptr),
221 vertexAttribPointer(nullptr),
222
223 uniformMatrix2x3fv(nullptr),
224 uniformMatrix2x4fv(nullptr),
225 uniformMatrix3x2fv(nullptr),
226 uniformMatrix3x4fv(nullptr),
227 uniformMatrix4x2fv(nullptr),
228 uniformMatrix4x3fv(nullptr),
229
230 beginConditionalRender(nullptr),
231 beginTransformFeedback(nullptr),
232 bindBufferBase(nullptr),
233 bindBufferRange(nullptr),
234 bindFragDataLocation(nullptr),
235 bindFramebuffer(nullptr),
236 bindRenderbuffer(nullptr),
237 bindVertexArray(nullptr),
238 blitFramebuffer(nullptr),
239 checkFramebufferStatus(nullptr),
240 clampColor(nullptr),
241 clearBufferfi(nullptr),
242 clearBufferfv(nullptr),
243 clearBufferiv(nullptr),
244 clearBufferuiv(nullptr),
245 colorMaski(nullptr),
246 deleteFramebuffers(nullptr),
247 deleteRenderbuffers(nullptr),
248 deleteVertexArrays(nullptr),
249 disablei(nullptr),
250 enablei(nullptr),
251 endConditionalRender(nullptr),
252 endTransformFeedback(nullptr),
253 flushMappedBufferRange(nullptr),
254 framebufferRenderbuffer(nullptr),
255 framebufferTexture1D(nullptr),
256 framebufferTexture2D(nullptr),
257 framebufferTexture3D(nullptr),
258 framebufferTextureLayer(nullptr),
259 genFramebuffers(nullptr),
260 genRenderbuffers(nullptr),
261 genVertexArrays(nullptr),
262 generateMipmap(nullptr),
263 getBooleani_v(nullptr),
264 getFragDataLocation(nullptr),
265 getFramebufferAttachmentParameteriv(nullptr),
266 getIntegeri_v(nullptr),
267 getRenderbufferParameteriv(nullptr),
268 getStringi(nullptr),
269 getTexParameterIiv(nullptr),
270 getTexParameterIuiv(nullptr),
271 getTransformFeedbackVarying(nullptr),
272 getUniformuiv(nullptr),
273 getVertexAttribIiv(nullptr),
274 getVertexAttribIuiv(nullptr),
275 isEnabledi(nullptr),
276 isFramebuffer(nullptr),
277 isRenderbuffer(nullptr),
278 isVertexArray(nullptr),
279 mapBufferRange(nullptr),
280 renderbufferStorage(nullptr),
281 renderbufferStorageMultisample(nullptr),
282 texParameterIiv(nullptr),
283 texParameterIuiv(nullptr),
284 transformFeedbackVaryings(nullptr),
285 uniform1ui(nullptr),
286 uniform1uiv(nullptr),
287 uniform2ui(nullptr),
288 uniform2uiv(nullptr),
289 uniform3ui(nullptr),
290 uniform3uiv(nullptr),
291 uniform4ui(nullptr),
292 uniform4uiv(nullptr),
293 vertexAttribI1i(nullptr),
294 vertexAttribI1iv(nullptr),
295 vertexAttribI1ui(nullptr),
296 vertexAttribI1uiv(nullptr),
297 vertexAttribI2i(nullptr),
298 vertexAttribI2iv(nullptr),
299 vertexAttribI2ui(nullptr),
300 vertexAttribI2uiv(nullptr),
301 vertexAttribI3i(nullptr),
302 vertexAttribI3iv(nullptr),
303 vertexAttribI3ui(nullptr),
304 vertexAttribI3uiv(nullptr),
305 vertexAttribI4bv(nullptr),
306 vertexAttribI4i(nullptr),
307 vertexAttribI4iv(nullptr),
308 vertexAttribI4sv(nullptr),
309 vertexAttribI4ubv(nullptr),
310 vertexAttribI4ui(nullptr),
311 vertexAttribI4uiv(nullptr),
312 vertexAttribI4usv(nullptr),
313 vertexAttribIPointer(nullptr),
314
315 copyBufferSubData(nullptr),
316 drawArraysInstanced(nullptr),
317 drawElementsInstanced(nullptr),
318 getActiveUniformBlockName(nullptr),
319 getActiveUniformBlockiv(nullptr),
320 getActiveUniformName(nullptr),
321 getActiveUniformsiv(nullptr),
322 getUniformBlockIndex(nullptr),
323 getUniformIndices(nullptr),
324 primitiveRestartIndex(nullptr),
325 texBuffer(nullptr),
326 uniformBlockBinding(nullptr),
327
328 clientWaitSync(nullptr),
329 deleteSync(nullptr),
330 drawElementsBaseVertex(nullptr),
331 drawElementsInstancedBaseVertex(nullptr),
332 drawRangeElementsBaseVertex(nullptr),
333 fenceSync(nullptr),
334 framebufferTexture(nullptr),
335 getBufferParameteri64v(nullptr),
336 getInteger64i_v(nullptr),
337 getInteger64v(nullptr),
338 getMultisamplefv(nullptr),
339 getSynciv(nullptr),
340 isSync(nullptr),
341 multiDrawElementsBaseVertex(nullptr),
342 provokingVertex(nullptr),
343 sampleMaski(nullptr),
344 texImage2DMultisample(nullptr),
345 texImage3DMultisample(nullptr),
346 waitSync(nullptr),
347
348 bindFragDataLocationIndexed(nullptr),
349 bindSampler(nullptr),
350 deleteSamplers(nullptr),
351 genSamplers(nullptr),
352 getFragDataIndex(nullptr),
353 getQueryObjecti64v(nullptr),
354 getQueryObjectui64v(nullptr),
355 getSamplerParameterIiv(nullptr),
356 getSamplerParameterIuiv(nullptr),
357 getSamplerParameterfv(nullptr),
358 getSamplerParameteriv(nullptr),
359 isSampler(nullptr),
360 queryCounter(nullptr),
361 samplerParameterIiv(nullptr),
362 samplerParameterIuiv(nullptr),
363 samplerParameterf(nullptr),
364 samplerParameterfv(nullptr),
365 samplerParameteri(nullptr),
366 samplerParameteriv(nullptr),
367 vertexAttribDivisor(nullptr),
368 vertexAttribP1ui(nullptr),
369 vertexAttribP1uiv(nullptr),
370 vertexAttribP2ui(nullptr),
371 vertexAttribP2uiv(nullptr),
372 vertexAttribP3ui(nullptr),
373 vertexAttribP3uiv(nullptr),
374 vertexAttribP4ui(nullptr),
375 vertexAttribP4uiv(nullptr),
376
377 beginQueryIndexed(nullptr),
378 bindTransformFeedback(nullptr),
379 blendEquationSeparatei(nullptr),
380 blendEquationi(nullptr),
381 blendFuncSeparatei(nullptr),
382 blendFunci(nullptr),
383 deleteTransformFeedbacks(nullptr),
384 drawArraysIndirect(nullptr),
385 drawElementsIndirect(nullptr),
386 drawTransformFeedback(nullptr),
387 drawTransformFeedbackStream(nullptr),
388 endQueryIndexed(nullptr),
389 genTransformFeedbacks(nullptr),
390 getActiveSubroutineName(nullptr),
391 getActiveSubroutineUniformName(nullptr),
392 getActiveSubroutineUniformiv(nullptr),
393 getProgramStageiv(nullptr),
394 getQueryIndexediv(nullptr),
395 getSubroutineIndex(nullptr),
396 getSubroutineUniformLocation(nullptr),
397 getUniformSubroutineuiv(nullptr),
398 getUniformdv(nullptr),
399 isTransformFeedback(nullptr),
400 minSampleShading(nullptr),
401 patchParameterfv(nullptr),
402 patchParameteri(nullptr),
403 pauseTransformFeedback(nullptr),
404 resumeTransformFeedback(nullptr),
405 uniform1d(nullptr),
406 uniform1dv(nullptr),
407 uniform2d(nullptr),
408 uniform2dv(nullptr),
409 uniform3d(nullptr),
410 uniform3dv(nullptr),
411 uniform4d(nullptr),
412 uniform4dv(nullptr),
413 uniformMatrix2dv(nullptr),
414 uniformMatrix2x3dv(nullptr),
415 uniformMatrix2x4dv(nullptr),
416 uniformMatrix3dv(nullptr),
417 uniformMatrix3x2dv(nullptr),
418 uniformMatrix3x4dv(nullptr),
419 uniformMatrix4dv(nullptr),
420 uniformMatrix4x2dv(nullptr),
421 uniformMatrix4x3dv(nullptr),
422 uniformSubroutinesuiv(nullptr),
423
424 activeShaderProgram(nullptr),
425 bindProgramPipeline(nullptr),
426 clearDepthf(nullptr),
427 createShaderProgramv(nullptr),
428 deleteProgramPipelines(nullptr),
429 depthRangeArrayv(nullptr),
430 depthRangeIndexed(nullptr),
431 depthRangef(nullptr),
432 genProgramPipelines(nullptr),
433 getDoublei_v(nullptr),
434 getFloati_v(nullptr),
435 getProgramBinary(nullptr),
436 getProgramPipelineInfoLog(nullptr),
437 getProgramPipelineiv(nullptr),
438 getShaderPrecisionFormat(nullptr),
439 getVertexAttribLdv(nullptr),
440 isProgramPipeline(nullptr),
441 programBinary(nullptr),
442 programParameteri(nullptr),
443 programUniform1d(nullptr),
444 programUniform1dv(nullptr),
445 programUniform1f(nullptr),
446 programUniform1fv(nullptr),
447 programUniform1i(nullptr),
448 programUniform1iv(nullptr),
449 programUniform1ui(nullptr),
450 programUniform1uiv(nullptr),
451 programUniform2d(nullptr),
452 programUniform2dv(nullptr),
453 programUniform2f(nullptr),
454 programUniform2fv(nullptr),
455 programUniform2i(nullptr),
456 programUniform2iv(nullptr),
457 programUniform2ui(nullptr),
458 programUniform2uiv(nullptr),
459 programUniform3d(nullptr),
460 programUniform3dv(nullptr),
461 programUniform3f(nullptr),
462 programUniform3fv(nullptr),
463 programUniform3i(nullptr),
464 programUniform3iv(nullptr),
465 programUniform3ui(nullptr),
466 programUniform3uiv(nullptr),
467 programUniform4d(nullptr),
468 programUniform4dv(nullptr),
469 programUniform4f(nullptr),
470 programUniform4fv(nullptr),
471 programUniform4i(nullptr),
472 programUniform4iv(nullptr),
473 programUniform4ui(nullptr),
474 programUniform4uiv(nullptr),
475 programUniformMatrix2dv(nullptr),
476 programUniformMatrix2fv(nullptr),
477 programUniformMatrix2x3dv(nullptr),
478 programUniformMatrix2x3fv(nullptr),
479 programUniformMatrix2x4dv(nullptr),
480 programUniformMatrix2x4fv(nullptr),
481 programUniformMatrix3dv(nullptr),
482 programUniformMatrix3fv(nullptr),
483 programUniformMatrix3x2dv(nullptr),
484 programUniformMatrix3x2fv(nullptr),
485 programUniformMatrix3x4dv(nullptr),
486 programUniformMatrix3x4fv(nullptr),
487 programUniformMatrix4dv(nullptr),
488 programUniformMatrix4fv(nullptr),
489 programUniformMatrix4x2dv(nullptr),
490 programUniformMatrix4x2fv(nullptr),
491 programUniformMatrix4x3dv(nullptr),
492 programUniformMatrix4x3fv(nullptr),
493 releaseShaderCompiler(nullptr),
494 scissorArrayv(nullptr),
495 scissorIndexed(nullptr),
496 scissorIndexedv(nullptr),
497 shaderBinary(nullptr),
498 useProgramStages(nullptr),
499 validateProgramPipeline(nullptr),
500 vertexAttribL1d(nullptr),
501 vertexAttribL1dv(nullptr),
502 vertexAttribL2d(nullptr),
503 vertexAttribL2dv(nullptr),
504 vertexAttribL3d(nullptr),
505 vertexAttribL3dv(nullptr),
506 vertexAttribL4d(nullptr),
507 vertexAttribL4dv(nullptr),
508 vertexAttribLPointer(nullptr),
509 viewportArrayv(nullptr),
510 viewportIndexedf(nullptr),
511 viewportIndexedfv(nullptr),
512
513 bindImageTexture(nullptr),
514 drawArraysInstancedBaseInstance(nullptr),
515 drawElementsInstancedBaseInstance(nullptr),
516 drawElementsInstancedBaseVertexBaseInstance(nullptr),
517 drawTransformFeedbackInstanced(nullptr),
518 drawTransformFeedbackStreamInstanced(nullptr),
519 getActiveAtomicCounterBufferiv(nullptr),
520 getInternalformativ(nullptr),
521 memoryBarrier(nullptr),
522 texStorage1D(nullptr),
523 texStorage2D(nullptr),
524 texStorage3D(nullptr),
525
526 bindVertexBuffer(nullptr),
527 clearBufferData(nullptr),
528 clearBufferSubData(nullptr),
529 copyImageSubData(nullptr),
530 debugMessageCallback(nullptr),
531 debugMessageControl(nullptr),
532 debugMessageInsert(nullptr),
533 dispatchCompute(nullptr),
534 dispatchComputeIndirect(nullptr),
535 framebufferParameteri(nullptr),
536 getDebugMessageLog(nullptr),
537 getFramebufferParameteriv(nullptr),
538 getInternalformati64v(nullptr),
539 getObjectLabel(nullptr),
540 getObjectPtrLabel(nullptr),
541 getProgramInterfaceiv(nullptr),
542 getProgramResourceIndex(nullptr),
543 getProgramResourceLocation(nullptr),
544 getProgramResourceLocationIndex(nullptr),
545 getProgramResourceName(nullptr),
546 getProgramResourceiv(nullptr),
547 invalidateBufferData(nullptr),
548 invalidateBufferSubData(nullptr),
549 invalidateFramebuffer(nullptr),
550 invalidateSubFramebuffer(nullptr),
551 invalidateTexImage(nullptr),
552 invalidateTexSubImage(nullptr),
553 multiDrawArraysIndirect(nullptr),
554 multiDrawElementsIndirect(nullptr),
555 objectLabel(nullptr),
556 objectPtrLabel(nullptr),
557 popDebugGroup(nullptr),
558 pushDebugGroup(nullptr),
559 shaderStorageBlockBinding(nullptr),
560 texBufferRange(nullptr),
561 texStorage2DMultisample(nullptr),
562 texStorage3DMultisample(nullptr),
563 textureView(nullptr),
564 vertexAttribBinding(nullptr),
565 vertexAttribFormat(nullptr),
566 vertexAttribIFormat(nullptr),
567 vertexAttribLFormat(nullptr),
568 vertexBindingDivisor(nullptr),
569
570 bindBuffersBase(nullptr),
571 bindBuffersRange(nullptr),
572 bindImageTextures(nullptr),
573 bindSamplers(nullptr),
574 bindTextures(nullptr),
575 bindVertexBuffers(nullptr),
576 bufferStorage(nullptr),
577 clearTexImage(nullptr),
578 clearTexSubImage(nullptr),
579
580 bindTextureUnit(nullptr),
581 blitNamedFramebuffer(nullptr),
582 checkNamedFramebufferStatus(nullptr),
583 clearNamedBufferData(nullptr),
584 clearNamedBufferSubData(nullptr),
585 clearNamedFramebufferfi(nullptr),
586 clearNamedFramebufferfv(nullptr),
587 clearNamedFramebufferiv(nullptr),
588 clearNamedFramebufferuiv(nullptr),
589 clipControl(nullptr),
590 compressedTextureSubImage1D(nullptr),
591 compressedTextureSubImage2D(nullptr),
592 compressedTextureSubImage3D(nullptr),
593 copyNamedBufferSubData(nullptr),
594 copyTextureSubImage1D(nullptr),
595 copyTextureSubImage2D(nullptr),
596 copyTextureSubImage3D(nullptr),
597 createBuffers(nullptr),
598 createFramebuffers(nullptr),
599 createProgramPipelines(nullptr),
600 createQueries(nullptr),
601 createRenderbuffers(nullptr),
602 createSamplers(nullptr),
603 createTextures(nullptr),
604 createTransformFeedbacks(nullptr),
605 createVertexArrays(nullptr),
606 disableVertexArrayAttrib(nullptr),
607 enableVertexArrayAttrib(nullptr),
608 flushMappedNamedBufferRange(nullptr),
609 generateTextureMipmap(nullptr),
610 getCompressedTextureImage(nullptr),
611 getCompressedTextureSubImage(nullptr),
612 getGraphicsResetStatus(nullptr),
613 getNamedBufferParameteri64v(nullptr),
614 getNamedBufferParameteriv(nullptr),
615 getNamedBufferPointerv(nullptr),
616 getNamedBufferSubData(nullptr),
617 getNamedFramebufferAttachmentParameteriv(nullptr),
618 getNamedFramebufferParameteriv(nullptr),
619 getNamedRenderbufferParameteriv(nullptr),
620 getQueryBufferObjecti64v(nullptr),
621 getQueryBufferObjectiv(nullptr),
622 getQueryBufferObjectui64v(nullptr),
623 getQueryBufferObjectuiv(nullptr),
624 getTextureImage(nullptr),
625 getTextureLevelParameterfv(nullptr),
626 getTextureLevelParameteriv(nullptr),
627 getTextureParameterIiv(nullptr),
628 getTextureParameterIuiv(nullptr),
629 getTextureParameterfv(nullptr),
630 getTextureParameteriv(nullptr),
631 getTextureSubImage(nullptr),
632 getTransformFeedbacki64_v(nullptr),
633 getTransformFeedbacki_v(nullptr),
634 getTransformFeedbackiv(nullptr),
635 getVertexArrayIndexed64iv(nullptr),
636 getVertexArrayIndexediv(nullptr),
637 getVertexArrayiv(nullptr),
638 getnCompressedTexImage(nullptr),
639 getnTexImage(nullptr),
640 getnUniformdv(nullptr),
641 getnUniformfv(nullptr),
642 getnUniformiv(nullptr),
643 getnUniformuiv(nullptr),
644 invalidateNamedFramebufferData(nullptr),
645 invalidateNamedFramebufferSubData(nullptr),
646 mapNamedBuffer(nullptr),
647 mapNamedBufferRange(nullptr),
648 memoryBarrierByRegion(nullptr),
649 namedBufferData(nullptr),
650 namedBufferStorage(nullptr),
651 namedBufferSubData(nullptr),
652 namedFramebufferDrawBuffer(nullptr),
653 namedFramebufferDrawBuffers(nullptr),
654 namedFramebufferParameteri(nullptr),
655 namedFramebufferReadBuffer(nullptr),
656 namedFramebufferRenderbuffer(nullptr),
657 namedFramebufferTexture(nullptr),
658 namedFramebufferTextureLayer(nullptr),
659 namedRenderbufferStorage(nullptr),
660 namedRenderbufferStorageMultisample(nullptr),
661 readnPixels(nullptr),
662 textureBarrier(nullptr),
663 textureBuffer(nullptr),
664 textureBufferRange(nullptr),
665 textureParameterIiv(nullptr),
666 textureParameterIuiv(nullptr),
667 textureParameterf(nullptr),
668 textureParameterfv(nullptr),
669 textureParameteri(nullptr),
670 textureParameteriv(nullptr),
671 textureStorage1D(nullptr),
672 textureStorage2D(nullptr),
673 textureStorage2DMultisample(nullptr),
674 textureStorage3D(nullptr),
675 textureStorage3DMultisample(nullptr),
676 textureSubImage1D(nullptr),
677 textureSubImage2D(nullptr),
678 textureSubImage3D(nullptr),
679 transformFeedbackBufferBase(nullptr),
680 transformFeedbackBufferRange(nullptr),
681 unmapNamedBuffer(nullptr),
682 vertexArrayAttribBinding(nullptr),
683 vertexArrayAttribFormat(nullptr),
684 vertexArrayAttribIFormat(nullptr),
685 vertexArrayAttribLFormat(nullptr),
686 vertexArrayBindingDivisor(nullptr),
687 vertexArrayElementBuffer(nullptr),
688 vertexArrayVertexBuffer(nullptr),
689 vertexArrayVertexBuffers(nullptr)
690{
691}
692
693FunctionsGL::~FunctionsGL()
694{
695}
696
697void FunctionsGL::initialize(GLuint majorVersion, GLuint minorVersion)
698{
699 // 1.0
700 if (majorVersion > 1 || majorVersion == 1 && minorVersion >= 0)
701 {
702 AssignGLEntryPoint(loadProcAddress("glBlendFunc"), &blendFunc);
703 AssignGLEntryPoint(loadProcAddress("glClear"), &clear);
704 AssignGLEntryPoint(loadProcAddress("glClearColor"), &clearColor);
705 AssignGLEntryPoint(loadProcAddress("glClearDepth"), &clearDepth);
706 AssignGLEntryPoint(loadProcAddress("glClearStencil"), &clearStencil);
707 AssignGLEntryPoint(loadProcAddress("glColorMask"), &colorMask);
708 AssignGLEntryPoint(loadProcAddress("glCullFace"), &cullFace);
709 AssignGLEntryPoint(loadProcAddress("glDepthFunc"), &depthFunc);
710 AssignGLEntryPoint(loadProcAddress("glDepthMask"), &depthMask);
711 AssignGLEntryPoint(loadProcAddress("glDepthRange"), &depthRange);
712 AssignGLEntryPoint(loadProcAddress("glDisable"), &disable);
713 AssignGLEntryPoint(loadProcAddress("glDrawBuffer"), &drawBuffer);
714 AssignGLEntryPoint(loadProcAddress("glEnable"), &enable);
715 AssignGLEntryPoint(loadProcAddress("glFinish"), &finish);
716 AssignGLEntryPoint(loadProcAddress("glFlush"), &flush);
717 AssignGLEntryPoint(loadProcAddress("glFrontFace"), &frontFace);
718 AssignGLEntryPoint(loadProcAddress("glGetBooleanv"), &getBooleanv);
719 AssignGLEntryPoint(loadProcAddress("glGetDoublev"), &getDoublev);
720 AssignGLEntryPoint(loadProcAddress("glGetError"), &getError);
721 AssignGLEntryPoint(loadProcAddress("glGetFloatv"), &getFloatv);
722 AssignGLEntryPoint(loadProcAddress("glGetIntegerv"), &getIntegerv);
723 AssignGLEntryPoint(loadProcAddress("glGetString"), &getString);
724 AssignGLEntryPoint(loadProcAddress("glGetTexImage"), &getTexImage);
725 AssignGLEntryPoint(loadProcAddress("glGetTexLevelParameterfv"), &getTexLevelParameterfv);
726 AssignGLEntryPoint(loadProcAddress("glGetTexLevelParameteriv"), &getTexLevelParameteriv);
727 AssignGLEntryPoint(loadProcAddress("glGetTexParameterfv"), &getTexParameterfv);
728 AssignGLEntryPoint(loadProcAddress("glGetTexParameteriv"), &getTexParameteriv);
729 AssignGLEntryPoint(loadProcAddress("glHint"), &hint);
730 AssignGLEntryPoint(loadProcAddress("glIsEnabled"), &isEnabled);
731 AssignGLEntryPoint(loadProcAddress("glLineWidth"), &lineWidth);
732 AssignGLEntryPoint(loadProcAddress("glLogicOp"), &logicOp);
733 AssignGLEntryPoint(loadProcAddress("glPixelStoref"), &pixelStoref);
734 AssignGLEntryPoint(loadProcAddress("glPixelStorei"), &pixelStorei);
735 AssignGLEntryPoint(loadProcAddress("glPointSize"), &pointSize);
736 AssignGLEntryPoint(loadProcAddress("glPolygonMode"), &polygonMode);
737 AssignGLEntryPoint(loadProcAddress("glReadBuffer"), &readBuffer);
738 AssignGLEntryPoint(loadProcAddress("glReadPixels"), &readPixels);
739 AssignGLEntryPoint(loadProcAddress("glScissor"), &scissor);
740 AssignGLEntryPoint(loadProcAddress("glStencilFunc"), &stencilFunc);
741 AssignGLEntryPoint(loadProcAddress("glStencilMask"), &stencilMask);
742 AssignGLEntryPoint(loadProcAddress("glStencilOp"), &stencilOp);
743 AssignGLEntryPoint(loadProcAddress("glTexImage1D"), &texImage1D);
744 AssignGLEntryPoint(loadProcAddress("glTexImage2D"), &texImage2D);
745 AssignGLEntryPoint(loadProcAddress("glTexParameterf"), &texParameterf);
746 AssignGLEntryPoint(loadProcAddress("glTexParameterfv"), &texParameterfv);
747 AssignGLEntryPoint(loadProcAddress("glTexParameteri"), &texParameteri);
748 AssignGLEntryPoint(loadProcAddress("glTexParameteriv"), &texParameteriv);
749 AssignGLEntryPoint(loadProcAddress("glViewport"), &viewport);
750 }
751
752 // 1.1
753 if (majorVersion > 1 || majorVersion == 1 && minorVersion >= 1)
754 {
755 AssignGLEntryPoint(loadProcAddress("glBindTexture"), &bindTexture);
756 AssignGLEntryPoint(loadProcAddress("glCopyTexImage1D"), &copyTexImage1D);
757 AssignGLEntryPoint(loadProcAddress("glCopyTexImage2D"), &copyTexImage2D);
758 AssignGLEntryPoint(loadProcAddress("glCopyTexSubImage1D"), &copyTexSubImage1D);
759 AssignGLEntryPoint(loadProcAddress("glCopyTexSubImage2D"), &copyTexSubImage2D);
760 AssignGLEntryPoint(loadProcAddress("glDeleteTextures"), &deleteTextures);
761 AssignGLEntryPoint(loadProcAddress("glDrawArrays"), &drawArrays);
762 AssignGLEntryPoint(loadProcAddress("glDrawElements"), &drawElements);
763 AssignGLEntryPoint(loadProcAddress("glGenTextures"), &genTextures);
764 AssignGLEntryPoint(loadProcAddress("glIsTexture"), &isTexture);
765 AssignGLEntryPoint(loadProcAddress("glPolygonOffset"), &polygonOffset);
766 AssignGLEntryPoint(loadProcAddress("glTexSubImage1D"), &texSubImage1D);
767 AssignGLEntryPoint(loadProcAddress("glTexSubImage2D"), &texSubImage2D);
768 }
769
770 // 1.2
771 if (majorVersion > 1 || majorVersion == 1 && minorVersion >= 2)
772 {
773 AssignGLEntryPoint(loadProcAddress("glBlendColor"), &blendColor);
774 AssignGLEntryPoint(loadProcAddress("glBlendEquation"), &blendEquation);
775 AssignGLEntryPoint(loadProcAddress("glCopyTexSubImage3D"), &copyTexSubImage3D);
776 AssignGLEntryPoint(loadProcAddress("glDrawRangeElements"), &drawRangeElements);
777 AssignGLEntryPoint(loadProcAddress("glTexImage3D"), &texImage3D);
778 AssignGLEntryPoint(loadProcAddress("glTexSubImage3D"), &texSubImage3D);
779 }
780
781 // 1.3
782 if (majorVersion > 1 || majorVersion == 1 && minorVersion >= 3)
783 {
784 AssignGLEntryPoint(loadProcAddress("glActiveTexture"), &activeTexture);
785 AssignGLEntryPoint(loadProcAddress("glCompressedTexImage1D"), &compressedTexImage1D);
786 AssignGLEntryPoint(loadProcAddress("glCompressedTexImage2D"), &compressedTexImage2D);
787 AssignGLEntryPoint(loadProcAddress("glCompressedTexImage3D"), &compressedTexImage3D);
788 AssignGLEntryPoint(loadProcAddress("glCompressedTexSubImage1D"), &compressedTexSubImage1D);
789 AssignGLEntryPoint(loadProcAddress("glCompressedTexSubImage2D"), &compressedTexSubImage2D);
790 AssignGLEntryPoint(loadProcAddress("glCompressedTexSubImage3D"), &compressedTexSubImage3D);
791 AssignGLEntryPoint(loadProcAddress("glGetCompressedTexImage"), &getCompressedTexImage);
792 AssignGLEntryPoint(loadProcAddress("glSampleCoverage"), &sampleCoverage);
793 }
794
795 // 1.4
796 if (majorVersion > 1 || majorVersion == 1 && minorVersion >= 4)
797 {
798 AssignGLEntryPoint(loadProcAddress("glBlendFuncSeparate"), &blendFuncSeparate);
799 AssignGLEntryPoint(loadProcAddress("glMultiDrawArrays"), &multiDrawArrays);
800 AssignGLEntryPoint(loadProcAddress("glMultiDrawElements"), &multiDrawElements);
801 AssignGLEntryPoint(loadProcAddress("glPointParameterf"), &pointParameterf);
802 AssignGLEntryPoint(loadProcAddress("glPointParameterfv"), &pointParameterfv);
803 AssignGLEntryPoint(loadProcAddress("glPointParameteri"), &pointParameteri);
804 AssignGLEntryPoint(loadProcAddress("glPointParameteriv"), &pointParameteriv);
805 }
806
807 // 1.5
808 if (majorVersion > 1 || majorVersion == 1 && minorVersion >= 5)
809 {
810 AssignGLEntryPoint(loadProcAddress("glBeginQuery"), &beginQuery);
811 AssignGLEntryPoint(loadProcAddress("glBindBuffer"), &bindBuffer);
812 AssignGLEntryPoint(loadProcAddress("glBufferData"), &bufferData);
813 AssignGLEntryPoint(loadProcAddress("glBufferSubData"), &bufferSubData);
814 AssignGLEntryPoint(loadProcAddress("glDeleteBuffers"), &deleteBuffers);
815 AssignGLEntryPoint(loadProcAddress("glDeleteQueries"), &deleteQueries);
816 AssignGLEntryPoint(loadProcAddress("glEndQuery"), &endQuery);
817 AssignGLEntryPoint(loadProcAddress("glGenBuffers"), &genBuffers);
818 AssignGLEntryPoint(loadProcAddress("glGenQueries"), &genQueries);
819 AssignGLEntryPoint(loadProcAddress("glGetBufferParameteriv"), &getBufferParameteriv);
820 AssignGLEntryPoint(loadProcAddress("glGetBufferPointerv"), &getBufferPointerv);
821 AssignGLEntryPoint(loadProcAddress("glGetBufferSubData"), &getBufferSubData);
822 AssignGLEntryPoint(loadProcAddress("glGetQueryObjectiv"), &getQueryObjectiv);
823 AssignGLEntryPoint(loadProcAddress("glGetQueryObjectuiv"), &getQueryObjectuiv);
824 AssignGLEntryPoint(loadProcAddress("glGetQueryiv"), &getQueryiv);
825 AssignGLEntryPoint(loadProcAddress("glIsBuffer"), &isBuffer);
826 AssignGLEntryPoint(loadProcAddress("glIsQuery"), &isQuery);
827 AssignGLEntryPoint(loadProcAddress("glMapBuffer"), &mapBuffer);
828 AssignGLEntryPoint(loadProcAddress("glUnmapBuffer"), &unmapBuffer);
829 }
830
831 // 2.0
832 if (majorVersion > 2 || majorVersion == 2 && minorVersion >= 0)
833 {
834 AssignGLEntryPoint(loadProcAddress("glAttachShader"), &attachShader);
835 AssignGLEntryPoint(loadProcAddress("glBindAttribLocation"), &bindAttribLocation);
836 AssignGLEntryPoint(loadProcAddress("glBlendEquationSeparate"), &blendEquationSeparate);
837 AssignGLEntryPoint(loadProcAddress("glCompileShader"), &compileShader);
838 AssignGLEntryPoint(loadProcAddress("glCreateProgram"), &createProgram);
839 AssignGLEntryPoint(loadProcAddress("glCreateShader"), &createShader);
840 AssignGLEntryPoint(loadProcAddress("glDeleteProgram"), &deleteProgram);
841 AssignGLEntryPoint(loadProcAddress("glDeleteShader"), &deleteShader);
842 AssignGLEntryPoint(loadProcAddress("glDetachShader"), &detachShader);
843 AssignGLEntryPoint(loadProcAddress("glDisableVertexAttribArray"), &disableVertexAttribArray);
844 AssignGLEntryPoint(loadProcAddress("glDrawBuffers"), &drawBuffers);
845 AssignGLEntryPoint(loadProcAddress("glEnableVertexAttribArray"), &enableVertexAttribArray);
846 AssignGLEntryPoint(loadProcAddress("glGetActiveAttrib"), &getActiveAttrib);
847 AssignGLEntryPoint(loadProcAddress("glGetActiveUniform"), &getActiveUniform);
848 AssignGLEntryPoint(loadProcAddress("glGetAttachedShaders"), &getAttachedShaders);
849 AssignGLEntryPoint(loadProcAddress("glGetAttribLocation"), &getAttribLocation);
850 AssignGLEntryPoint(loadProcAddress("glGetProgramInfoLog"), &getProgramInfoLog);
851 AssignGLEntryPoint(loadProcAddress("glGetProgramiv"), &getProgramiv);
852 AssignGLEntryPoint(loadProcAddress("glGetShaderInfoLog"), &getShaderInfoLog);
853 AssignGLEntryPoint(loadProcAddress("glGetShaderSource"), &getShaderSource);
854 AssignGLEntryPoint(loadProcAddress("glGetShaderiv"), &getShaderiv);
855 AssignGLEntryPoint(loadProcAddress("glGetUniformLocation"), &getUniformLocation);
856 AssignGLEntryPoint(loadProcAddress("glGetUniformfv"), &getUniformfv);
857 AssignGLEntryPoint(loadProcAddress("glGetUniformiv"), &getUniformiv);
858 AssignGLEntryPoint(loadProcAddress("glGetVertexAttribPointerv"), &getVertexAttribPointerv);
859 AssignGLEntryPoint(loadProcAddress("glGetVertexAttribdv"), &getVertexAttribdv);
860 AssignGLEntryPoint(loadProcAddress("glGetVertexAttribfv"), &getVertexAttribfv);
861 AssignGLEntryPoint(loadProcAddress("glGetVertexAttribiv"), &getVertexAttribiv);
862 AssignGLEntryPoint(loadProcAddress("glIsProgram"), &isProgram);
863 AssignGLEntryPoint(loadProcAddress("glIsShader"), &isShader);
864 AssignGLEntryPoint(loadProcAddress("glLinkProgram"), &linkProgram);
865 AssignGLEntryPoint(loadProcAddress("glShaderSource"), &shaderSource);
866 AssignGLEntryPoint(loadProcAddress("glStencilFuncSeparate"), &stencilFuncSeparate);
867 AssignGLEntryPoint(loadProcAddress("glStencilMaskSeparate"), &stencilMaskSeparate);
868 AssignGLEntryPoint(loadProcAddress("glStencilOpSeparate"), &stencilOpSeparate);
869 AssignGLEntryPoint(loadProcAddress("glUniform1f"), &uniform1f);
870 AssignGLEntryPoint(loadProcAddress("glUniform1fv"), &uniform1fv);
871 AssignGLEntryPoint(loadProcAddress("glUniform1i"), &uniform1i);
872 AssignGLEntryPoint(loadProcAddress("glUniform1iv"), &uniform1iv);
873 AssignGLEntryPoint(loadProcAddress("glUniform2f"), &uniform2f);
874 AssignGLEntryPoint(loadProcAddress("glUniform2fv"), &uniform2fv);
875 AssignGLEntryPoint(loadProcAddress("glUniform2i"), &uniform2i);
876 AssignGLEntryPoint(loadProcAddress("glUniform2iv"), &uniform2iv);
877 AssignGLEntryPoint(loadProcAddress("glUniform3f"), &uniform3f);
878 AssignGLEntryPoint(loadProcAddress("glUniform3fv"), &uniform3fv);
879 AssignGLEntryPoint(loadProcAddress("glUniform3i"), &uniform3i);
880 AssignGLEntryPoint(loadProcAddress("glUniform3iv"), &uniform3iv);
881 AssignGLEntryPoint(loadProcAddress("glUniform4f"), &uniform4f);
882 AssignGLEntryPoint(loadProcAddress("glUniform4fv"), &uniform4fv);
883 AssignGLEntryPoint(loadProcAddress("glUniform4i"), &uniform4i);
884 AssignGLEntryPoint(loadProcAddress("glUniform4iv"), &uniform4iv);
885 AssignGLEntryPoint(loadProcAddress("glUniformMatrix2fv"), &uniformMatrix2fv);
886 AssignGLEntryPoint(loadProcAddress("glUniformMatrix3fv"), &uniformMatrix3fv);
887 AssignGLEntryPoint(loadProcAddress("glUniformMatrix4fv"), &uniformMatrix4fv);
888 AssignGLEntryPoint(loadProcAddress("glUseProgram"), &useProgram);
889 AssignGLEntryPoint(loadProcAddress("glValidateProgram"), &validateProgram);
890 AssignGLEntryPoint(loadProcAddress("glVertexAttrib1d"), &vertexAttrib1d);
891 AssignGLEntryPoint(loadProcAddress("glVertexAttrib1dv"), &vertexAttrib1dv);
892 AssignGLEntryPoint(loadProcAddress("glVertexAttrib1f"), &vertexAttrib1f);
893 AssignGLEntryPoint(loadProcAddress("glVertexAttrib1fv"), &vertexAttrib1fv);
894 AssignGLEntryPoint(loadProcAddress("glVertexAttrib1s"), &vertexAttrib1s);
895 AssignGLEntryPoint(loadProcAddress("glVertexAttrib1sv"), &vertexAttrib1sv);
896 AssignGLEntryPoint(loadProcAddress("glVertexAttrib2d"), &vertexAttrib2d);
897 AssignGLEntryPoint(loadProcAddress("glVertexAttrib2dv"), &vertexAttrib2dv);
898 AssignGLEntryPoint(loadProcAddress("glVertexAttrib2f"), &vertexAttrib2f);
899 AssignGLEntryPoint(loadProcAddress("glVertexAttrib2fv"), &vertexAttrib2fv);
900 AssignGLEntryPoint(loadProcAddress("glVertexAttrib2s"), &vertexAttrib2s);
901 AssignGLEntryPoint(loadProcAddress("glVertexAttrib2sv"), &vertexAttrib2sv);
902 AssignGLEntryPoint(loadProcAddress("glVertexAttrib3d"), &vertexAttrib3d);
903 AssignGLEntryPoint(loadProcAddress("glVertexAttrib3dv"), &vertexAttrib3dv);
904 AssignGLEntryPoint(loadProcAddress("glVertexAttrib3f"), &vertexAttrib3f);
905 AssignGLEntryPoint(loadProcAddress("glVertexAttrib3fv"), &vertexAttrib3fv);
906 AssignGLEntryPoint(loadProcAddress("glVertexAttrib3s"), &vertexAttrib3s);
907 AssignGLEntryPoint(loadProcAddress("glVertexAttrib3sv"), &vertexAttrib3sv);
908 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4Nbv"), &vertexAttrib4Nbv);
909 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4Niv"), &vertexAttrib4Niv);
910 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4Nsv"), &vertexAttrib4Nsv);
911 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4Nub"), &vertexAttrib4Nub);
912 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4Nubv"), &vertexAttrib4Nubv);
913 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4Nuiv"), &vertexAttrib4Nuiv);
914 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4Nusv"), &vertexAttrib4Nusv);
915 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4bv"), &vertexAttrib4bv);
916 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4d"), &vertexAttrib4d);
917 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4dv"), &vertexAttrib4dv);
918 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4f"), &vertexAttrib4f);
919 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4fv"), &vertexAttrib4fv);
920 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4iv"), &vertexAttrib4iv);
921 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4s"), &vertexAttrib4s);
922 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4sv"), &vertexAttrib4sv);
923 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4ubv"), &vertexAttrib4ubv);
924 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4uiv"), &vertexAttrib4uiv);
925 AssignGLEntryPoint(loadProcAddress("glVertexAttrib4usv"), &vertexAttrib4usv);
926 AssignGLEntryPoint(loadProcAddress("glVertexAttribPointer"), &vertexAttribPointer);
927 }
928
929 // 2.1
930 if (majorVersion > 2 || majorVersion == 2 && minorVersion >= 1)
931 {
932 AssignGLEntryPoint(loadProcAddress("glUniformMatrix2x3fv"), &uniformMatrix2x3fv);
933 AssignGLEntryPoint(loadProcAddress("glUniformMatrix2x4fv"), &uniformMatrix2x4fv);
934 AssignGLEntryPoint(loadProcAddress("glUniformMatrix3x2fv"), &uniformMatrix3x2fv);
935 AssignGLEntryPoint(loadProcAddress("glUniformMatrix3x4fv"), &uniformMatrix3x4fv);
936 AssignGLEntryPoint(loadProcAddress("glUniformMatrix4x2fv"), &uniformMatrix4x2fv);
937 AssignGLEntryPoint(loadProcAddress("glUniformMatrix4x3fv"), &uniformMatrix4x3fv);
938 }
939
940 // 3.0
941 if (majorVersion > 3 || majorVersion == 3 && minorVersion >= 0)
942 {
943 AssignGLEntryPoint(loadProcAddress("glBeginConditionalRender"), &beginConditionalRender);
944 AssignGLEntryPoint(loadProcAddress("glBeginTransformFeedback"), &beginTransformFeedback);
945 AssignGLEntryPoint(loadProcAddress("glBindBufferBase"), &bindBufferBase);
946 AssignGLEntryPoint(loadProcAddress("glBindBufferRange"), &bindBufferRange);
947 AssignGLEntryPoint(loadProcAddress("glBindFragDataLocation"), &bindFragDataLocation);
948 AssignGLEntryPoint(loadProcAddress("glBindFramebuffer"), &bindFramebuffer);
949 AssignGLEntryPoint(loadProcAddress("glBindRenderbuffer"), &bindRenderbuffer);
950 AssignGLEntryPoint(loadProcAddress("glBindVertexArray"), &bindVertexArray);
951 AssignGLEntryPoint(loadProcAddress("glBlitFramebuffer"), &blitFramebuffer);
952 AssignGLEntryPoint(loadProcAddress("glCheckFramebufferStatus"), &checkFramebufferStatus);
953 AssignGLEntryPoint(loadProcAddress("glClampColor"), &clampColor);
954 AssignGLEntryPoint(loadProcAddress("glClearBufferfi"), &clearBufferfi);
955 AssignGLEntryPoint(loadProcAddress("glClearBufferfv"), &clearBufferfv);
956 AssignGLEntryPoint(loadProcAddress("glClearBufferiv"), &clearBufferiv);
957 AssignGLEntryPoint(loadProcAddress("glClearBufferuiv"), &clearBufferuiv);
958 AssignGLEntryPoint(loadProcAddress("glColorMaski"), &colorMaski);
959 AssignGLEntryPoint(loadProcAddress("glDeleteFramebuffers"), &deleteFramebuffers);
960 AssignGLEntryPoint(loadProcAddress("glDeleteRenderbuffers"), &deleteRenderbuffers);
961 AssignGLEntryPoint(loadProcAddress("glDeleteVertexArrays"), &deleteVertexArrays);
962 AssignGLEntryPoint(loadProcAddress("glDisablei"), &disablei);
963 AssignGLEntryPoint(loadProcAddress("glEnablei"), &enablei);
964 AssignGLEntryPoint(loadProcAddress("glEndConditionalRender"), &endConditionalRender);
965 AssignGLEntryPoint(loadProcAddress("glEndTransformFeedback"), &endTransformFeedback);
966 AssignGLEntryPoint(loadProcAddress("glFlushMappedBufferRange"), &flushMappedBufferRange);
967 AssignGLEntryPoint(loadProcAddress("glFramebufferRenderbuffer"), &framebufferRenderbuffer);
968 AssignGLEntryPoint(loadProcAddress("glFramebufferTexture1D"), &framebufferTexture1D);
969 AssignGLEntryPoint(loadProcAddress("glFramebufferTexture2D"), &framebufferTexture2D);
970 AssignGLEntryPoint(loadProcAddress("glFramebufferTexture3D"), &framebufferTexture3D);
971 AssignGLEntryPoint(loadProcAddress("glFramebufferTextureLayer"), &framebufferTextureLayer);
972 AssignGLEntryPoint(loadProcAddress("glGenFramebuffers"), &genFramebuffers);
973 AssignGLEntryPoint(loadProcAddress("glGenRenderbuffers"), &genRenderbuffers);
974 AssignGLEntryPoint(loadProcAddress("glGenVertexArrays"), &genVertexArrays);
975 AssignGLEntryPoint(loadProcAddress("glGenerateMipmap"), &generateMipmap);
976 AssignGLEntryPoint(loadProcAddress("glGetBooleani_v"), &getBooleani_v);
977 AssignGLEntryPoint(loadProcAddress("glGetFragDataLocation"), &getFragDataLocation);
978 AssignGLEntryPoint(loadProcAddress("glGetFramebufferAttachmentParameteriv"), &getFramebufferAttachmentParameteriv);
979 AssignGLEntryPoint(loadProcAddress("glGetIntegeri_v"), &getIntegeri_v);
980 AssignGLEntryPoint(loadProcAddress("glGetRenderbufferParameteriv"), &getRenderbufferParameteriv);
981 AssignGLEntryPoint(loadProcAddress("glGetStringi"), &getStringi);
982 AssignGLEntryPoint(loadProcAddress("glGetTexParameterIiv"), &getTexParameterIiv);
983 AssignGLEntryPoint(loadProcAddress("glGetTexParameterIuiv"), &getTexParameterIuiv);
984 AssignGLEntryPoint(loadProcAddress("glGetTransformFeedbackVarying"), &getTransformFeedbackVarying);
985 AssignGLEntryPoint(loadProcAddress("glGetUniformuiv"), &getUniformuiv);
986 AssignGLEntryPoint(loadProcAddress("glGetVertexAttribIiv"), &getVertexAttribIiv);
987 AssignGLEntryPoint(loadProcAddress("glGetVertexAttribIuiv"), &getVertexAttribIuiv);
988 AssignGLEntryPoint(loadProcAddress("glIsEnabledi"), &isEnabledi);
989 AssignGLEntryPoint(loadProcAddress("glIsFramebuffer"), &isFramebuffer);
990 AssignGLEntryPoint(loadProcAddress("glIsRenderbuffer"), &isRenderbuffer);
991 AssignGLEntryPoint(loadProcAddress("glIsVertexArray"), &isVertexArray);
992 AssignGLEntryPoint(loadProcAddress("glMapBufferRange"), &mapBufferRange);
993 AssignGLEntryPoint(loadProcAddress("glRenderbufferStorage"), &renderbufferStorage);
994 AssignGLEntryPoint(loadProcAddress("glRenderbufferStorageMultisample"), &renderbufferStorageMultisample);
995 AssignGLEntryPoint(loadProcAddress("glTexParameterIiv"), &texParameterIiv);
996 AssignGLEntryPoint(loadProcAddress("glTexParameterIuiv"), &texParameterIuiv);
997 AssignGLEntryPoint(loadProcAddress("glTransformFeedbackVaryings"), &transformFeedbackVaryings);
998 AssignGLEntryPoint(loadProcAddress("glUniform1ui"), &uniform1ui);
999 AssignGLEntryPoint(loadProcAddress("glUniform1uiv"), &uniform1uiv);
1000 AssignGLEntryPoint(loadProcAddress("glUniform2ui"), &uniform2ui);
1001 AssignGLEntryPoint(loadProcAddress("glUniform2uiv"), &uniform2uiv);
1002 AssignGLEntryPoint(loadProcAddress("glUniform3ui"), &uniform3ui);
1003 AssignGLEntryPoint(loadProcAddress("glUniform3uiv"), &uniform3uiv);
1004 AssignGLEntryPoint(loadProcAddress("glUniform4ui"), &uniform4ui);
1005 AssignGLEntryPoint(loadProcAddress("glUniform4uiv"), &uniform4uiv);
1006 AssignGLEntryPoint(loadProcAddress("glVertexAttribI1i"), &vertexAttribI1i);
1007 AssignGLEntryPoint(loadProcAddress("glVertexAttribI1iv"), &vertexAttribI1iv);
1008 AssignGLEntryPoint(loadProcAddress("glVertexAttribI1ui"), &vertexAttribI1ui);
1009 AssignGLEntryPoint(loadProcAddress("glVertexAttribI1uiv"), &vertexAttribI1uiv);
1010 AssignGLEntryPoint(loadProcAddress("glVertexAttribI2i"), &vertexAttribI2i);
1011 AssignGLEntryPoint(loadProcAddress("glVertexAttribI2iv"), &vertexAttribI2iv);
1012 AssignGLEntryPoint(loadProcAddress("glVertexAttribI2ui"), &vertexAttribI2ui);
1013 AssignGLEntryPoint(loadProcAddress("glVertexAttribI2uiv"), &vertexAttribI2uiv);
1014 AssignGLEntryPoint(loadProcAddress("glVertexAttribI3i"), &vertexAttribI3i);
1015 AssignGLEntryPoint(loadProcAddress("glVertexAttribI3iv"), &vertexAttribI3iv);
1016 AssignGLEntryPoint(loadProcAddress("glVertexAttribI3ui"), &vertexAttribI3ui);
1017 AssignGLEntryPoint(loadProcAddress("glVertexAttribI3uiv"), &vertexAttribI3uiv);
1018 AssignGLEntryPoint(loadProcAddress("glVertexAttribI4bv"), &vertexAttribI4bv);
1019 AssignGLEntryPoint(loadProcAddress("glVertexAttribI4i"), &vertexAttribI4i);
1020 AssignGLEntryPoint(loadProcAddress("glVertexAttribI4iv"), &vertexAttribI4iv);
1021 AssignGLEntryPoint(loadProcAddress("glVertexAttribI4sv"), &vertexAttribI4sv);
1022 AssignGLEntryPoint(loadProcAddress("glVertexAttribI4ubv"), &vertexAttribI4ubv);
1023 AssignGLEntryPoint(loadProcAddress("glVertexAttribI4ui"), &vertexAttribI4ui);
1024 AssignGLEntryPoint(loadProcAddress("glVertexAttribI4uiv"), &vertexAttribI4uiv);
1025 AssignGLEntryPoint(loadProcAddress("glVertexAttribI4usv"), &vertexAttribI4usv);
1026 AssignGLEntryPoint(loadProcAddress("glVertexAttribIPointer"), &vertexAttribIPointer);
1027 }
1028
1029 // 3.1
1030 if (majorVersion > 3 || majorVersion == 3 && minorVersion >= 1)
1031 {
1032 AssignGLEntryPoint(loadProcAddress("glCopyBufferSubData"), &copyBufferSubData);
1033 AssignGLEntryPoint(loadProcAddress("glDrawArraysInstanced"), &drawArraysInstanced);
1034 AssignGLEntryPoint(loadProcAddress("glDrawElementsInstanced"), &drawElementsInstanced);
1035 AssignGLEntryPoint(loadProcAddress("glGetActiveUniformBlockName"), &getActiveUniformBlockName);
1036 AssignGLEntryPoint(loadProcAddress("glGetActiveUniformBlockiv"), &getActiveUniformBlockiv);
1037 AssignGLEntryPoint(loadProcAddress("glGetActiveUniformName"), &getActiveUniformName);
1038 AssignGLEntryPoint(loadProcAddress("glGetActiveUniformsiv"), &getActiveUniformsiv);
1039 AssignGLEntryPoint(loadProcAddress("glGetUniformBlockIndex"), &getUniformBlockIndex);
1040 AssignGLEntryPoint(loadProcAddress("glGetUniformIndices"), &getUniformIndices);
1041 AssignGLEntryPoint(loadProcAddress("glPrimitiveRestartIndex"), &primitiveRestartIndex);
1042 AssignGLEntryPoint(loadProcAddress("glTexBuffer"), &texBuffer);
1043 AssignGLEntryPoint(loadProcAddress("glUniformBlockBinding"), &uniformBlockBinding);
1044 }
1045
1046 // 3.2
1047 if (majorVersion > 3 || majorVersion == 3 && minorVersion >= 2)
1048 {
1049 AssignGLEntryPoint(loadProcAddress("glClientWaitSync"), &clientWaitSync);
1050 AssignGLEntryPoint(loadProcAddress("glDeleteSync"), &deleteSync);
1051 AssignGLEntryPoint(loadProcAddress("glDrawElementsBaseVertex"), &drawElementsBaseVertex);
1052 AssignGLEntryPoint(loadProcAddress("glDrawElementsInstancedBaseVertex"), &drawElementsInstancedBaseVertex);
1053 AssignGLEntryPoint(loadProcAddress("glDrawRangeElementsBaseVertex"), &drawRangeElementsBaseVertex);
1054 AssignGLEntryPoint(loadProcAddress("glFenceSync"), &fenceSync);
1055 AssignGLEntryPoint(loadProcAddress("glFramebufferTexture"), &framebufferTexture);
1056 AssignGLEntryPoint(loadProcAddress("glGetBufferParameteri64v"), &getBufferParameteri64v);
1057 AssignGLEntryPoint(loadProcAddress("glGetInteger64i_v"), &getInteger64i_v);
1058 AssignGLEntryPoint(loadProcAddress("glGetInteger64v"), &getInteger64v);
1059 AssignGLEntryPoint(loadProcAddress("glGetMultisamplefv"), &getMultisamplefv);
1060 AssignGLEntryPoint(loadProcAddress("glGetSynciv"), &getSynciv);
1061 AssignGLEntryPoint(loadProcAddress("glIsSync"), &isSync);
1062 AssignGLEntryPoint(loadProcAddress("glMultiDrawElementsBaseVertex"), &multiDrawElementsBaseVertex);
1063 AssignGLEntryPoint(loadProcAddress("glProvokingVertex"), &provokingVertex);
1064 AssignGLEntryPoint(loadProcAddress("glSampleMaski"), &sampleMaski);
1065 AssignGLEntryPoint(loadProcAddress("glTexImage2DMultisample"), &texImage2DMultisample);
1066 AssignGLEntryPoint(loadProcAddress("glTexImage3DMultisample"), &texImage3DMultisample);
1067 AssignGLEntryPoint(loadProcAddress("glWaitSync"), &waitSync);
1068 }
1069
1070 // 3.3
1071 if (majorVersion > 3 || majorVersion == 3 && minorVersion >= 3)
1072 {
1073 AssignGLEntryPoint(loadProcAddress("glBindFragDataLocationIndexed"), &bindFragDataLocationIndexed);
1074 AssignGLEntryPoint(loadProcAddress("glBindSampler"), &bindSampler);
1075 AssignGLEntryPoint(loadProcAddress("glDeleteSamplers"), &deleteSamplers);
1076 AssignGLEntryPoint(loadProcAddress("glGenSamplers"), &genSamplers);
1077 AssignGLEntryPoint(loadProcAddress("glGetFragDataIndex"), &getFragDataIndex);
1078 AssignGLEntryPoint(loadProcAddress("glGetQueryObjecti64v"), &getQueryObjecti64v);
1079 AssignGLEntryPoint(loadProcAddress("glGetQueryObjectui64v"), &getQueryObjectui64v);
1080 AssignGLEntryPoint(loadProcAddress("glGetSamplerParameterIiv"), &getSamplerParameterIiv);
1081 AssignGLEntryPoint(loadProcAddress("glGetSamplerParameterIuiv"), &getSamplerParameterIuiv);
1082 AssignGLEntryPoint(loadProcAddress("glGetSamplerParameterfv"), &getSamplerParameterfv);
1083 AssignGLEntryPoint(loadProcAddress("glGetSamplerParameteriv"), &getSamplerParameteriv);
1084 AssignGLEntryPoint(loadProcAddress("glIsSampler"), &isSampler);
1085 AssignGLEntryPoint(loadProcAddress("glQueryCounter"), &queryCounter);
1086 AssignGLEntryPoint(loadProcAddress("glSamplerParameterIiv"), &samplerParameterIiv);
1087 AssignGLEntryPoint(loadProcAddress("glSamplerParameterIuiv"), &samplerParameterIuiv);
1088 AssignGLEntryPoint(loadProcAddress("glSamplerParameterf"), &samplerParameterf);
1089 AssignGLEntryPoint(loadProcAddress("glSamplerParameterfv"), &samplerParameterfv);
1090 AssignGLEntryPoint(loadProcAddress("glSamplerParameteri"), &samplerParameteri);
1091 AssignGLEntryPoint(loadProcAddress("glSamplerParameteriv"), &samplerParameteriv);
1092 AssignGLEntryPoint(loadProcAddress("glVertexAttribDivisor"), &vertexAttribDivisor);
1093 AssignGLEntryPoint(loadProcAddress("glVertexAttribP1ui"), &vertexAttribP1ui);
1094 AssignGLEntryPoint(loadProcAddress("glVertexAttribP1uiv"), &vertexAttribP1uiv);
1095 AssignGLEntryPoint(loadProcAddress("glVertexAttribP2ui"), &vertexAttribP2ui);
1096 AssignGLEntryPoint(loadProcAddress("glVertexAttribP2uiv"), &vertexAttribP2uiv);
1097 AssignGLEntryPoint(loadProcAddress("glVertexAttribP3ui"), &vertexAttribP3ui);
1098 AssignGLEntryPoint(loadProcAddress("glVertexAttribP3uiv"), &vertexAttribP3uiv);
1099 AssignGLEntryPoint(loadProcAddress("glVertexAttribP4ui"), &vertexAttribP4ui);
1100 AssignGLEntryPoint(loadProcAddress("glVertexAttribP4uiv"), &vertexAttribP4uiv);
1101 }
1102
1103 // 4.0
1104 if (majorVersion > 4 || majorVersion == 4 && minorVersion >= 0)
1105 {
1106 AssignGLEntryPoint(loadProcAddress("glBeginQueryIndexed"), &beginQueryIndexed);
1107 AssignGLEntryPoint(loadProcAddress("glBindTransformFeedback"), &bindTransformFeedback);
1108 AssignGLEntryPoint(loadProcAddress("glBlendEquationSeparatei"), &blendEquationSeparatei);
1109 AssignGLEntryPoint(loadProcAddress("glBlendEquationi"), &blendEquationi);
1110 AssignGLEntryPoint(loadProcAddress("glBlendFuncSeparatei"), &blendFuncSeparatei);
1111 AssignGLEntryPoint(loadProcAddress("glBlendFunci"), &blendFunci);
1112 AssignGLEntryPoint(loadProcAddress("glDeleteTransformFeedbacks"), &deleteTransformFeedbacks);
1113 AssignGLEntryPoint(loadProcAddress("glDrawArraysIndirect"), &drawArraysIndirect);
1114 AssignGLEntryPoint(loadProcAddress("glDrawElementsIndirect"), &drawElementsIndirect);
1115 AssignGLEntryPoint(loadProcAddress("glDrawTransformFeedback"), &drawTransformFeedback);
1116 AssignGLEntryPoint(loadProcAddress("glDrawTransformFeedbackStream"), &drawTransformFeedbackStream);
1117 AssignGLEntryPoint(loadProcAddress("glEndQueryIndexed"), &endQueryIndexed);
1118 AssignGLEntryPoint(loadProcAddress("glGenTransformFeedbacks"), &genTransformFeedbacks);
1119 AssignGLEntryPoint(loadProcAddress("glGetActiveSubroutineName"), &getActiveSubroutineName);
1120 AssignGLEntryPoint(loadProcAddress("glGetActiveSubroutineUniformName"), &getActiveSubroutineUniformName);
1121 AssignGLEntryPoint(loadProcAddress("glGetActiveSubroutineUniformiv"), &getActiveSubroutineUniformiv);
1122 AssignGLEntryPoint(loadProcAddress("glGetProgramStageiv"), &getProgramStageiv);
1123 AssignGLEntryPoint(loadProcAddress("glGetQueryIndexediv"), &getQueryIndexediv);
1124 AssignGLEntryPoint(loadProcAddress("glGetSubroutineIndex"), &getSubroutineIndex);
1125 AssignGLEntryPoint(loadProcAddress("glGetSubroutineUniformLocation"), &getSubroutineUniformLocation);
1126 AssignGLEntryPoint(loadProcAddress("glGetUniformSubroutineuiv"), &getUniformSubroutineuiv);
1127 AssignGLEntryPoint(loadProcAddress("glGetUniformdv"), &getUniformdv);
1128 AssignGLEntryPoint(loadProcAddress("glIsTransformFeedback"), &isTransformFeedback);
1129 AssignGLEntryPoint(loadProcAddress("glMinSampleShading"), &minSampleShading);
1130 AssignGLEntryPoint(loadProcAddress("glPatchParameterfv"), &patchParameterfv);
1131 AssignGLEntryPoint(loadProcAddress("glPatchParameteri"), &patchParameteri);
1132 AssignGLEntryPoint(loadProcAddress("glPauseTransformFeedback"), &pauseTransformFeedback);
1133 AssignGLEntryPoint(loadProcAddress("glResumeTransformFeedback"), &resumeTransformFeedback);
1134 AssignGLEntryPoint(loadProcAddress("glUniform1d"), &uniform1d);
1135 AssignGLEntryPoint(loadProcAddress("glUniform1dv"), &uniform1dv);
1136 AssignGLEntryPoint(loadProcAddress("glUniform2d"), &uniform2d);
1137 AssignGLEntryPoint(loadProcAddress("glUniform2dv"), &uniform2dv);
1138 AssignGLEntryPoint(loadProcAddress("glUniform3d"), &uniform3d);
1139 AssignGLEntryPoint(loadProcAddress("glUniform3dv"), &uniform3dv);
1140 AssignGLEntryPoint(loadProcAddress("glUniform4d"), &uniform4d);
1141 AssignGLEntryPoint(loadProcAddress("glUniform4dv"), &uniform4dv);
1142 AssignGLEntryPoint(loadProcAddress("glUniformMatrix2dv"), &uniformMatrix2dv);
1143 AssignGLEntryPoint(loadProcAddress("glUniformMatrix2x3dv"), &uniformMatrix2x3dv);
1144 AssignGLEntryPoint(loadProcAddress("glUniformMatrix2x4dv"), &uniformMatrix2x4dv);
1145 AssignGLEntryPoint(loadProcAddress("glUniformMatrix3dv"), &uniformMatrix3dv);
1146 AssignGLEntryPoint(loadProcAddress("glUniformMatrix3x2dv"), &uniformMatrix3x2dv);
1147 AssignGLEntryPoint(loadProcAddress("glUniformMatrix3x4dv"), &uniformMatrix3x4dv);
1148 AssignGLEntryPoint(loadProcAddress("glUniformMatrix4dv"), &uniformMatrix4dv);
1149 AssignGLEntryPoint(loadProcAddress("glUniformMatrix4x2dv"), &uniformMatrix4x2dv);
1150 AssignGLEntryPoint(loadProcAddress("glUniformMatrix4x3dv"), &uniformMatrix4x3dv);
1151 AssignGLEntryPoint(loadProcAddress("glUniformSubroutinesuiv"), &uniformSubroutinesuiv);
1152 }
1153
1154 // 4.0
1155 if (majorVersion > 4 || majorVersion == 4 && minorVersion >= 1)
1156 {
1157 AssignGLEntryPoint(loadProcAddress("glActiveShaderProgram"), &activeShaderProgram);
1158 AssignGLEntryPoint(loadProcAddress("glBindProgramPipeline"), &bindProgramPipeline);
1159 AssignGLEntryPoint(loadProcAddress("glClearDepthf"), &clearDepthf);
1160 AssignGLEntryPoint(loadProcAddress("glCreateShaderProgramv"), &createShaderProgramv);
1161 AssignGLEntryPoint(loadProcAddress("glDeleteProgramPipelines"), &deleteProgramPipelines);
1162 AssignGLEntryPoint(loadProcAddress("glDepthRangeArrayv"), &depthRangeArrayv);
1163 AssignGLEntryPoint(loadProcAddress("glDepthRangeIndexed"), &depthRangeIndexed);
1164 AssignGLEntryPoint(loadProcAddress("glDepthRangef"), &depthRangef);
1165 AssignGLEntryPoint(loadProcAddress("glGenProgramPipelines"), &genProgramPipelines);
1166 AssignGLEntryPoint(loadProcAddress("glGetDoublei_v"), &getDoublei_v);
1167 AssignGLEntryPoint(loadProcAddress("glGetFloati_v"), &getFloati_v);
1168 AssignGLEntryPoint(loadProcAddress("glGetProgramBinary"), &getProgramBinary);
1169 AssignGLEntryPoint(loadProcAddress("glGetProgramPipelineInfoLog"), &getProgramPipelineInfoLog);
1170 AssignGLEntryPoint(loadProcAddress("glGetProgramPipelineiv"), &getProgramPipelineiv);
1171 AssignGLEntryPoint(loadProcAddress("glGetShaderPrecisionFormat"), &getShaderPrecisionFormat);
1172 AssignGLEntryPoint(loadProcAddress("glGetVertexAttribLdv"), &getVertexAttribLdv);
1173 AssignGLEntryPoint(loadProcAddress("glIsProgramPipeline"), &isProgramPipeline);
1174 AssignGLEntryPoint(loadProcAddress("glProgramBinary"), &programBinary);
1175 AssignGLEntryPoint(loadProcAddress("glProgramParameteri"), &programParameteri);
1176 AssignGLEntryPoint(loadProcAddress("glProgramUniform1d"), &programUniform1d);
1177 AssignGLEntryPoint(loadProcAddress("glProgramUniform1dv"), &programUniform1dv);
1178 AssignGLEntryPoint(loadProcAddress("glProgramUniform1f"), &programUniform1f);
1179 AssignGLEntryPoint(loadProcAddress("glProgramUniform1fv"), &programUniform1fv);
1180 AssignGLEntryPoint(loadProcAddress("glProgramUniform1i"), &programUniform1i);
1181 AssignGLEntryPoint(loadProcAddress("glProgramUniform1iv"), &programUniform1iv);
1182 AssignGLEntryPoint(loadProcAddress("glProgramUniform1ui"), &programUniform1ui);
1183 AssignGLEntryPoint(loadProcAddress("glProgramUniform1uiv"), &programUniform1uiv);
1184 AssignGLEntryPoint(loadProcAddress("glProgramUniform2d"), &programUniform2d);
1185 AssignGLEntryPoint(loadProcAddress("glProgramUniform2dv"), &programUniform2dv);
1186 AssignGLEntryPoint(loadProcAddress("glProgramUniform2f"), &programUniform2f);
1187 AssignGLEntryPoint(loadProcAddress("glProgramUniform2fv"), &programUniform2fv);
1188 AssignGLEntryPoint(loadProcAddress("glProgramUniform2i"), &programUniform2i);
1189 AssignGLEntryPoint(loadProcAddress("glProgramUniform2iv"), &programUniform2iv);
1190 AssignGLEntryPoint(loadProcAddress("glProgramUniform2ui"), &programUniform2ui);
1191 AssignGLEntryPoint(loadProcAddress("glProgramUniform2uiv"), &programUniform2uiv);
1192 AssignGLEntryPoint(loadProcAddress("glProgramUniform3d"), &programUniform3d);
1193 AssignGLEntryPoint(loadProcAddress("glProgramUniform3dv"), &programUniform3dv);
1194 AssignGLEntryPoint(loadProcAddress("glProgramUniform3f"), &programUniform3f);
1195 AssignGLEntryPoint(loadProcAddress("glProgramUniform3fv"), &programUniform3fv);
1196 AssignGLEntryPoint(loadProcAddress("glProgramUniform3i"), &programUniform3i);
1197 AssignGLEntryPoint(loadProcAddress("glProgramUniform3iv"), &programUniform3iv);
1198 AssignGLEntryPoint(loadProcAddress("glProgramUniform3ui"), &programUniform3ui);
1199 AssignGLEntryPoint(loadProcAddress("glProgramUniform3uiv"), &programUniform3uiv);
1200 AssignGLEntryPoint(loadProcAddress("glProgramUniform4d"), &programUniform4d);
1201 AssignGLEntryPoint(loadProcAddress("glProgramUniform4dv"), &programUniform4dv);
1202 AssignGLEntryPoint(loadProcAddress("glProgramUniform4f"), &programUniform4f);
1203 AssignGLEntryPoint(loadProcAddress("glProgramUniform4fv"), &programUniform4fv);
1204 AssignGLEntryPoint(loadProcAddress("glProgramUniform4i"), &programUniform4i);
1205 AssignGLEntryPoint(loadProcAddress("glProgramUniform4iv"), &programUniform4iv);
1206 AssignGLEntryPoint(loadProcAddress("glProgramUniform4ui"), &programUniform4ui);
1207 AssignGLEntryPoint(loadProcAddress("glProgramUniform4uiv"), &programUniform4uiv);
1208 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix2dv"), &programUniformMatrix2dv);
1209 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix2fv"), &programUniformMatrix2fv);
1210 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix2x3dv"), &programUniformMatrix2x3dv);
1211 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix2x3fv"), &programUniformMatrix2x3fv);
1212 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix2x4dv"), &programUniformMatrix2x4dv);
1213 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix2x4fv"), &programUniformMatrix2x4fv);
1214 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix3dv"), &programUniformMatrix3dv);
1215 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix3fv"), &programUniformMatrix3fv);
1216 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix3x2dv"), &programUniformMatrix3x2dv);
1217 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix3x2fv"), &programUniformMatrix3x2fv);
1218 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix3x4dv"), &programUniformMatrix3x4dv);
1219 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix3x4fv"), &programUniformMatrix3x4fv);
1220 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix4dv"), &programUniformMatrix4dv);
1221 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix4fv"), &programUniformMatrix4fv);
1222 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix4x2dv"), &programUniformMatrix4x2dv);
1223 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix4x2fv"), &programUniformMatrix4x2fv);
1224 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix4x3dv"), &programUniformMatrix4x3dv);
1225 AssignGLEntryPoint(loadProcAddress("glProgramUniformMatrix4x3fv"), &programUniformMatrix4x3fv);
1226 AssignGLEntryPoint(loadProcAddress("glReleaseShaderCompiler"), &releaseShaderCompiler);
1227 AssignGLEntryPoint(loadProcAddress("glScissorArrayv"), &scissorArrayv);
1228 AssignGLEntryPoint(loadProcAddress("glScissorIndexed"), &scissorIndexed);
1229 AssignGLEntryPoint(loadProcAddress("glScissorIndexedv"), &scissorIndexedv);
1230 AssignGLEntryPoint(loadProcAddress("glShaderBinary"), &shaderBinary);
1231 AssignGLEntryPoint(loadProcAddress("glUseProgramStages"), &useProgramStages);
1232 AssignGLEntryPoint(loadProcAddress("glValidateProgramPipeline"), &validateProgramPipeline);
1233 AssignGLEntryPoint(loadProcAddress("glVertexAttribL1d"), &vertexAttribL1d);
1234 AssignGLEntryPoint(loadProcAddress("glVertexAttribL1dv"), &vertexAttribL1dv);
1235 AssignGLEntryPoint(loadProcAddress("glVertexAttribL2d"), &vertexAttribL2d);
1236 AssignGLEntryPoint(loadProcAddress("glVertexAttribL2dv"), &vertexAttribL2dv);
1237 AssignGLEntryPoint(loadProcAddress("glVertexAttribL3d"), &vertexAttribL3d);
1238 AssignGLEntryPoint(loadProcAddress("glVertexAttribL3dv"), &vertexAttribL3dv);
1239 AssignGLEntryPoint(loadProcAddress("glVertexAttribL4d"), &vertexAttribL4d);
1240 AssignGLEntryPoint(loadProcAddress("glVertexAttribL4dv"), &vertexAttribL4dv);
1241 AssignGLEntryPoint(loadProcAddress("glVertexAttribLPointer"), &vertexAttribLPointer);
1242 AssignGLEntryPoint(loadProcAddress("glViewportArrayv"), &viewportArrayv);
1243 AssignGLEntryPoint(loadProcAddress("glViewportIndexedf"), &viewportIndexedf);
1244 AssignGLEntryPoint(loadProcAddress("glViewportIndexedfv"), &viewportIndexedfv);
1245 }
1246
1247 // 4.2
1248 if (majorVersion > 4 || majorVersion == 4 && minorVersion >= 2)
1249 {
1250 AssignGLEntryPoint(loadProcAddress("glBindImageTexture"), &bindImageTexture);
1251 AssignGLEntryPoint(loadProcAddress("glDrawArraysInstancedBaseInstance"), &drawArraysInstancedBaseInstance);
1252 AssignGLEntryPoint(loadProcAddress("glDrawElementsInstancedBaseInstance"), &drawElementsInstancedBaseInstance);
1253 AssignGLEntryPoint(loadProcAddress("glDrawElementsInstancedBaseVertexBaseInstance"), &drawElementsInstancedBaseVertexBaseInstance);
1254 AssignGLEntryPoint(loadProcAddress("glDrawTransformFeedbackInstanced"), &drawTransformFeedbackInstanced);
1255 AssignGLEntryPoint(loadProcAddress("glDrawTransformFeedbackStreamInstanced"), &drawTransformFeedbackStreamInstanced);
1256 AssignGLEntryPoint(loadProcAddress("glGetActiveAtomicCounterBufferiv"), &getActiveAtomicCounterBufferiv);
1257 AssignGLEntryPoint(loadProcAddress("glGetInternalformativ"), &getInternalformativ);
1258 AssignGLEntryPoint(loadProcAddress("glMemoryBarrier"), &memoryBarrier);
1259 AssignGLEntryPoint(loadProcAddress("glTexStorage1D"), &texStorage1D);
1260 AssignGLEntryPoint(loadProcAddress("glTexStorage2D"), &texStorage2D);
1261 AssignGLEntryPoint(loadProcAddress("glTexStorage3D"), &texStorage3D);
1262 }
1263
1264 // 4.3
1265 if (majorVersion > 4 || majorVersion == 4 && minorVersion >= 3)
1266 {
1267 AssignGLEntryPoint(loadProcAddress("glBindVertexBuffer"), &bindVertexBuffer);
1268 AssignGLEntryPoint(loadProcAddress("glClearBufferData"), &clearBufferData);
1269 AssignGLEntryPoint(loadProcAddress("glClearBufferSubData"), &clearBufferSubData);
1270 AssignGLEntryPoint(loadProcAddress("glCopyImageSubData"), &copyImageSubData);
1271 AssignGLEntryPoint(loadProcAddress("glDebugMessageCallback"), &debugMessageCallback);
1272 AssignGLEntryPoint(loadProcAddress("glDebugMessageControl"), &debugMessageControl);
1273 AssignGLEntryPoint(loadProcAddress("glDebugMessageInsert"), &debugMessageInsert);
1274 AssignGLEntryPoint(loadProcAddress("glDispatchCompute"), &dispatchCompute);
1275 AssignGLEntryPoint(loadProcAddress("glDispatchComputeIndirect"), &dispatchComputeIndirect);
1276 AssignGLEntryPoint(loadProcAddress("glFramebufferParameteri"), &framebufferParameteri);
1277 AssignGLEntryPoint(loadProcAddress("glGetDebugMessageLog"), &getDebugMessageLog);
1278 AssignGLEntryPoint(loadProcAddress("glGetFramebufferParameteriv"), &getFramebufferParameteriv);
1279 AssignGLEntryPoint(loadProcAddress("glGetInternalformati64v"), &getInternalformati64v);
1280 AssignGLEntryPoint(loadProcAddress("glGetObjectLabel"), &getObjectLabel);
1281 AssignGLEntryPoint(loadProcAddress("glGetObjectPtrLabel"), &getObjectPtrLabel);
1282 AssignGLEntryPoint(loadProcAddress("glGetProgramInterfaceiv"), &getProgramInterfaceiv);
1283 AssignGLEntryPoint(loadProcAddress("glGetProgramResourceIndex"), &getProgramResourceIndex);
1284 AssignGLEntryPoint(loadProcAddress("glGetProgramResourceLocation"), &getProgramResourceLocation);
1285 AssignGLEntryPoint(loadProcAddress("glGetProgramResourceLocationIndex"), &getProgramResourceLocationIndex);
1286 AssignGLEntryPoint(loadProcAddress("glGetProgramResourceName"), &getProgramResourceName);
1287 AssignGLEntryPoint(loadProcAddress("glGetProgramResourceiv"), &getProgramResourceiv);
1288 AssignGLEntryPoint(loadProcAddress("glInvalidateBufferData"), &invalidateBufferData);
1289 AssignGLEntryPoint(loadProcAddress("glInvalidateBufferSubData"), &invalidateBufferSubData);
1290 AssignGLEntryPoint(loadProcAddress("glInvalidateFramebuffer"), &invalidateFramebuffer);
1291 AssignGLEntryPoint(loadProcAddress("glInvalidateSubFramebuffer"), &invalidateSubFramebuffer);
1292 AssignGLEntryPoint(loadProcAddress("glInvalidateTexImage"), &invalidateTexImage);
1293 AssignGLEntryPoint(loadProcAddress("glInvalidateTexSubImage"), &invalidateTexSubImage);
1294 AssignGLEntryPoint(loadProcAddress("glMultiDrawArraysIndirect"), &multiDrawArraysIndirect);
1295 AssignGLEntryPoint(loadProcAddress("glMultiDrawElementsIndirect"), &multiDrawElementsIndirect);
1296 AssignGLEntryPoint(loadProcAddress("glObjectLabel"), &objectLabel);
1297 AssignGLEntryPoint(loadProcAddress("glObjectPtrLabel"), &objectPtrLabel);
1298 AssignGLEntryPoint(loadProcAddress("glPopDebugGroup"), &popDebugGroup);
1299 AssignGLEntryPoint(loadProcAddress("glPushDebugGroup"), &pushDebugGroup);
1300 AssignGLEntryPoint(loadProcAddress("glShaderStorageBlockBinding"), &shaderStorageBlockBinding);
1301 AssignGLEntryPoint(loadProcAddress("glTexBufferRange"), &texBufferRange);
1302 AssignGLEntryPoint(loadProcAddress("glTexStorage2DMultisample"), &texStorage2DMultisample);
1303 AssignGLEntryPoint(loadProcAddress("glTexStorage3DMultisample"), &texStorage3DMultisample);
1304 AssignGLEntryPoint(loadProcAddress("glTextureView"), &textureView);
1305 AssignGLEntryPoint(loadProcAddress("glVertexAttribBinding"), &vertexAttribBinding);
1306 AssignGLEntryPoint(loadProcAddress("glVertexAttribFormat"), &vertexAttribFormat);
1307 AssignGLEntryPoint(loadProcAddress("glVertexAttribIFormat"), &vertexAttribIFormat);
1308 AssignGLEntryPoint(loadProcAddress("glVertexAttribLFormat"), &vertexAttribLFormat);
1309 AssignGLEntryPoint(loadProcAddress("glVertexBindingDivisor"), &vertexBindingDivisor);
1310 }
1311
1312 // 4.4
1313 if (majorVersion > 4 || majorVersion == 4 && minorVersion >= 4)
1314 {
1315 AssignGLEntryPoint(loadProcAddress("glBindBuffersBase"), &bindBuffersBase);
1316 AssignGLEntryPoint(loadProcAddress("glBindBuffersRange"), &bindBuffersRange);
1317 AssignGLEntryPoint(loadProcAddress("glBindImageTextures"), &bindImageTextures);
1318 AssignGLEntryPoint(loadProcAddress("glBindSamplers"), &bindSamplers);
1319 AssignGLEntryPoint(loadProcAddress("glBindTextures"), &bindTextures);
1320 AssignGLEntryPoint(loadProcAddress("glBindVertexBuffers"), &bindVertexBuffers);
1321 AssignGLEntryPoint(loadProcAddress("glBufferStorage"), &bufferStorage);
1322 AssignGLEntryPoint(loadProcAddress("glClearTexImage"), &clearTexImage);
1323 AssignGLEntryPoint(loadProcAddress("glClearTexSubImage"), &clearTexSubImage);
1324 }
1325
1326 // 4.5
1327 if (majorVersion > 4 || majorVersion == 4 && minorVersion >= 5)
1328 {
1329 AssignGLEntryPoint(loadProcAddress("glBindTextureUnit"), &bindTextureUnit);
1330 AssignGLEntryPoint(loadProcAddress("glBlitNamedFramebuffer"), &blitNamedFramebuffer);
1331 AssignGLEntryPoint(loadProcAddress("glCheckNamedFramebufferStatus"), &checkNamedFramebufferStatus);
1332 AssignGLEntryPoint(loadProcAddress("glClearNamedBufferData"), &clearNamedBufferData);
1333 AssignGLEntryPoint(loadProcAddress("glClearNamedBufferSubData"), &clearNamedBufferSubData);
1334 AssignGLEntryPoint(loadProcAddress("glClearNamedFramebufferfi"), &clearNamedFramebufferfi);
1335 AssignGLEntryPoint(loadProcAddress("glClearNamedFramebufferfv"), &clearNamedFramebufferfv);
1336 AssignGLEntryPoint(loadProcAddress("glClearNamedFramebufferiv"), &clearNamedFramebufferiv);
1337 AssignGLEntryPoint(loadProcAddress("glClearNamedFramebufferuiv"), &clearNamedFramebufferuiv);
1338 AssignGLEntryPoint(loadProcAddress("glClipControl"), &clipControl);
1339 AssignGLEntryPoint(loadProcAddress("glCompressedTextureSubImage1D"), &compressedTextureSubImage1D);
1340 AssignGLEntryPoint(loadProcAddress("glCompressedTextureSubImage2D"), &compressedTextureSubImage2D);
1341 AssignGLEntryPoint(loadProcAddress("glCompressedTextureSubImage3D"), &compressedTextureSubImage3D);
1342 AssignGLEntryPoint(loadProcAddress("glCopyNamedBufferSubData"), &copyNamedBufferSubData);
1343 AssignGLEntryPoint(loadProcAddress("glCopyTextureSubImage1D"), &copyTextureSubImage1D);
1344 AssignGLEntryPoint(loadProcAddress("glCopyTextureSubImage2D"), &copyTextureSubImage2D);
1345 AssignGLEntryPoint(loadProcAddress("glCopyTextureSubImage3D"), &copyTextureSubImage3D);
1346 AssignGLEntryPoint(loadProcAddress("glCreateBuffers"), &createBuffers);
1347 AssignGLEntryPoint(loadProcAddress("glCreateFramebuffers"), &createFramebuffers);
1348 AssignGLEntryPoint(loadProcAddress("glCreateProgramPipelines"), &createProgramPipelines);
1349 AssignGLEntryPoint(loadProcAddress("glCreateQueries"), &createQueries);
1350 AssignGLEntryPoint(loadProcAddress("glCreateRenderbuffers"), &createRenderbuffers);
1351 AssignGLEntryPoint(loadProcAddress("glCreateSamplers"), &createSamplers);
1352 AssignGLEntryPoint(loadProcAddress("glCreateTextures"), &createTextures);
1353 AssignGLEntryPoint(loadProcAddress("glCreateTransformFeedbacks"), &createTransformFeedbacks);
1354 AssignGLEntryPoint(loadProcAddress("glCreateVertexArrays"), &createVertexArrays);
1355 AssignGLEntryPoint(loadProcAddress("glDisableVertexArrayAttrib"), &disableVertexArrayAttrib);
1356 AssignGLEntryPoint(loadProcAddress("glEnableVertexArrayAttrib"), &enableVertexArrayAttrib);
1357 AssignGLEntryPoint(loadProcAddress("glFlushMappedNamedBufferRange"), &flushMappedNamedBufferRange);
1358 AssignGLEntryPoint(loadProcAddress("glGenerateTextureMipmap"), &generateTextureMipmap);
1359 AssignGLEntryPoint(loadProcAddress("glGetCompressedTextureImage"), &getCompressedTextureImage);
1360 AssignGLEntryPoint(loadProcAddress("glGetCompressedTextureSubImage"), &getCompressedTextureSubImage);
1361 AssignGLEntryPoint(loadProcAddress("glGetGraphicsResetStatus"), &getGraphicsResetStatus);
1362 AssignGLEntryPoint(loadProcAddress("glGetNamedBufferParameteri64v"), &getNamedBufferParameteri64v);
1363 AssignGLEntryPoint(loadProcAddress("glGetNamedBufferParameteriv"), &getNamedBufferParameteriv);
1364 AssignGLEntryPoint(loadProcAddress("glGetNamedBufferPointerv"), &getNamedBufferPointerv);
1365 AssignGLEntryPoint(loadProcAddress("glGetNamedBufferSubData"), &getNamedBufferSubData);
1366 AssignGLEntryPoint(loadProcAddress("glGetNamedFramebufferAttachmentParameteriv"), &getNamedFramebufferAttachmentParameteriv);
1367 AssignGLEntryPoint(loadProcAddress("glGetNamedFramebufferParameteriv"), &getNamedFramebufferParameteriv);
1368 AssignGLEntryPoint(loadProcAddress("glGetNamedRenderbufferParameteriv"), &getNamedRenderbufferParameteriv);
1369 AssignGLEntryPoint(loadProcAddress("glGetQueryBufferObjecti64v"), &getQueryBufferObjecti64v);
1370 AssignGLEntryPoint(loadProcAddress("glGetQueryBufferObjectiv"), &getQueryBufferObjectiv);
1371 AssignGLEntryPoint(loadProcAddress("glGetQueryBufferObjectui64v"), &getQueryBufferObjectui64v);
1372 AssignGLEntryPoint(loadProcAddress("glGetQueryBufferObjectuiv"), &getQueryBufferObjectuiv);
1373 AssignGLEntryPoint(loadProcAddress("glGetTextureImage"), &getTextureImage);
1374 AssignGLEntryPoint(loadProcAddress("glGetTextureLevelParameterfv"), &getTextureLevelParameterfv);
1375 AssignGLEntryPoint(loadProcAddress("glGetTextureLevelParameteriv"), &getTextureLevelParameteriv);
1376 AssignGLEntryPoint(loadProcAddress("glGetTextureParameterIiv"), &getTextureParameterIiv);
1377 AssignGLEntryPoint(loadProcAddress("glGetTextureParameterIuiv"), &getTextureParameterIuiv);
1378 AssignGLEntryPoint(loadProcAddress("glGetTextureParameterfv"), &getTextureParameterfv);
1379 AssignGLEntryPoint(loadProcAddress("glGetTextureParameteriv"), &getTextureParameteriv);
1380 AssignGLEntryPoint(loadProcAddress("glGetTextureSubImage"), &getTextureSubImage);
1381 AssignGLEntryPoint(loadProcAddress("glGetTransformFeedbacki64_v"), &getTransformFeedbacki64_v);
1382 AssignGLEntryPoint(loadProcAddress("glGetTransformFeedbacki_v"), &getTransformFeedbacki_v);
1383 AssignGLEntryPoint(loadProcAddress("glGetTransformFeedbackiv"), &getTransformFeedbackiv);
1384 AssignGLEntryPoint(loadProcAddress("glGetVertexArrayIndexed64iv"), &getVertexArrayIndexed64iv);
1385 AssignGLEntryPoint(loadProcAddress("glGetVertexArrayIndexediv"), &getVertexArrayIndexediv);
1386 AssignGLEntryPoint(loadProcAddress("glGetVertexArrayiv"), &getVertexArrayiv);
1387 AssignGLEntryPoint(loadProcAddress("glGetnCompressedTexImage"), &getnCompressedTexImage);
1388 AssignGLEntryPoint(loadProcAddress("glGetnTexImage"), &getnTexImage);
1389 AssignGLEntryPoint(loadProcAddress("glGetnUniformdv"), &getnUniformdv);
1390 AssignGLEntryPoint(loadProcAddress("glGetnUniformfv"), &getnUniformfv);
1391 AssignGLEntryPoint(loadProcAddress("glGetnUniformiv"), &getnUniformiv);
1392 AssignGLEntryPoint(loadProcAddress("glGetnUniformuiv"), &getnUniformuiv);
1393 AssignGLEntryPoint(loadProcAddress("glInvalidateNamedFramebufferData"), &invalidateNamedFramebufferData);
1394 AssignGLEntryPoint(loadProcAddress("glInvalidateNamedFramebufferSubData"), &invalidateNamedFramebufferSubData);
1395 AssignGLEntryPoint(loadProcAddress("glMapNamedBuffer"), &mapNamedBuffer);
1396 AssignGLEntryPoint(loadProcAddress("glMapNamedBufferRange"), &mapNamedBufferRange);
1397 AssignGLEntryPoint(loadProcAddress("glMemoryBarrierByRegion"), &memoryBarrierByRegion);
1398 AssignGLEntryPoint(loadProcAddress("glNamedBufferData"), &namedBufferData);
1399 AssignGLEntryPoint(loadProcAddress("glNamedBufferStorage"), &namedBufferStorage);
1400 AssignGLEntryPoint(loadProcAddress("glNamedBufferSubData"), &namedBufferSubData);
1401 AssignGLEntryPoint(loadProcAddress("glNamedFramebufferDrawBuffer"), &namedFramebufferDrawBuffer);
1402 AssignGLEntryPoint(loadProcAddress("glNamedFramebufferDrawBuffers"), &namedFramebufferDrawBuffers);
1403 AssignGLEntryPoint(loadProcAddress("glNamedFramebufferParameteri"), &namedFramebufferParameteri);
1404 AssignGLEntryPoint(loadProcAddress("glNamedFramebufferReadBuffer"), &namedFramebufferReadBuffer);
1405 AssignGLEntryPoint(loadProcAddress("glNamedFramebufferRenderbuffer"), &namedFramebufferRenderbuffer);
1406 AssignGLEntryPoint(loadProcAddress("glNamedFramebufferTexture"), &namedFramebufferTexture);
1407 AssignGLEntryPoint(loadProcAddress("glNamedFramebufferTextureLayer"), &namedFramebufferTextureLayer);
1408 AssignGLEntryPoint(loadProcAddress("glNamedRenderbufferStorage"), &namedRenderbufferStorage);
1409 AssignGLEntryPoint(loadProcAddress("glNamedRenderbufferStorageMultisample"), &namedRenderbufferStorageMultisample);
1410 AssignGLEntryPoint(loadProcAddress("glReadnPixels"), &readnPixels);
1411 AssignGLEntryPoint(loadProcAddress("glTextureBarrier"), &textureBarrier);
1412 AssignGLEntryPoint(loadProcAddress("glTextureBuffer"), &textureBuffer);
1413 AssignGLEntryPoint(loadProcAddress("glTextureBufferRange"), &textureBufferRange);
1414 AssignGLEntryPoint(loadProcAddress("glTextureParameterIiv"), &textureParameterIiv);
1415 AssignGLEntryPoint(loadProcAddress("glTextureParameterIuiv"), &textureParameterIuiv);
1416 AssignGLEntryPoint(loadProcAddress("glTextureParameterf"), &textureParameterf);
1417 AssignGLEntryPoint(loadProcAddress("glTextureParameterfv"), &textureParameterfv);
1418 AssignGLEntryPoint(loadProcAddress("glTextureParameteri"), &textureParameteri);
1419 AssignGLEntryPoint(loadProcAddress("glTextureParameteriv"), &textureParameteriv);
1420 AssignGLEntryPoint(loadProcAddress("glTextureStorage1D"), &textureStorage1D);
1421 AssignGLEntryPoint(loadProcAddress("glTextureStorage2D"), &textureStorage2D);
1422 AssignGLEntryPoint(loadProcAddress("glTextureStorage2DMultisample"), &textureStorage2DMultisample);
1423 AssignGLEntryPoint(loadProcAddress("glTextureStorage3D"), &textureStorage3D);
1424 AssignGLEntryPoint(loadProcAddress("glTextureStorage3DMultisample"), &textureStorage3DMultisample);
1425 AssignGLEntryPoint(loadProcAddress("glTextureSubImage1D"), &textureSubImage1D);
1426 AssignGLEntryPoint(loadProcAddress("glTextureSubImage2D"), &textureSubImage2D);
1427 AssignGLEntryPoint(loadProcAddress("glTextureSubImage3D"), &textureSubImage3D);
1428 AssignGLEntryPoint(loadProcAddress("glTransformFeedbackBufferBase"), &transformFeedbackBufferBase);
1429 AssignGLEntryPoint(loadProcAddress("glTransformFeedbackBufferRange"), &transformFeedbackBufferRange);
1430 AssignGLEntryPoint(loadProcAddress("glUnmapNamedBuffer"), &unmapNamedBuffer);
1431 AssignGLEntryPoint(loadProcAddress("glVertexArrayAttribBinding"), &vertexArrayAttribBinding);
1432 AssignGLEntryPoint(loadProcAddress("glVertexArrayAttribFormat"), &vertexArrayAttribFormat);
1433 AssignGLEntryPoint(loadProcAddress("glVertexArrayAttribIFormat"), &vertexArrayAttribIFormat);
1434 AssignGLEntryPoint(loadProcAddress("glVertexArrayAttribLFormat"), &vertexArrayAttribLFormat);
1435 AssignGLEntryPoint(loadProcAddress("glVertexArrayBindingDivisor"), &vertexArrayBindingDivisor);
1436 AssignGLEntryPoint(loadProcAddress("glVertexArrayElementBuffer"), &vertexArrayElementBuffer);
1437 AssignGLEntryPoint(loadProcAddress("glVertexArrayVertexBuffer"), &vertexArrayVertexBuffer);
1438 AssignGLEntryPoint(loadProcAddress("glVertexArrayVertexBuffers"), &vertexArrayVertexBuffers);
1439 }
1440}
1441
1442}