| // GENERATED FILE - DO NOT EDIT. |
| // Generated by generate_gl_dispatch_table.py using data from gl_bindings_data.json and gl.xml. |
| // |
| // Copyright 2019 The ANGLE Project Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| // DispatchTableGL_autogen.cpp: |
| // Initialize the native bindings for ANGLE's OpenGL back-end. |
| |
| #include "libANGLE/renderer/gl/DispatchTableGL_autogen.h" |
| |
| #include "libANGLE/Version.h" |
| #include "libANGLE/renderer/gl/FunctionsGL.h" |
| |
| #if defined(ANGLE_ENABLE_OPENGL_NULL) |
| # include "libANGLE/renderer/gl/null_functions.h" |
| #endif // defined(ANGLE_ENABLE_OPENGL_NULL) |
| |
| // Check for nullptr so extensions do not overwrite core imports. |
| #define ASSIGN(NAME, FP) \ |
| if (!FP) \ |
| FP = reinterpret_cast<decltype(FP)>(loadProcAddress(NAME)) |
| |
| namespace rx |
| { |
| DispatchTableGL::DispatchTableGL() = default; |
| |
| void DispatchTableGL::initProcsDesktopGL(const gl::Version &version, |
| const std::set<std::string> &extensions) |
| { |
| if (version >= gl::Version(1, 0)) |
| { |
| ASSIGN("glBlendFunc", blendFunc); |
| ASSIGN("glClear", clear); |
| ASSIGN("glClearColor", clearColor); |
| ASSIGN("glClearDepth", clearDepth); |
| ASSIGN("glClearStencil", clearStencil); |
| ASSIGN("glColorMask", colorMask); |
| ASSIGN("glCullFace", cullFace); |
| ASSIGN("glDepthFunc", depthFunc); |
| ASSIGN("glDepthMask", depthMask); |
| ASSIGN("glDepthRange", depthRange); |
| ASSIGN("glDisable", disable); |
| ASSIGN("glDrawBuffer", drawBuffer); |
| ASSIGN("glEnable", enable); |
| ASSIGN("glFinish", finish); |
| ASSIGN("glFlush", flush); |
| ASSIGN("glFrontFace", frontFace); |
| ASSIGN("glGetBooleanv", getBooleanv); |
| ASSIGN("glGetDoublev", getDoublev); |
| ASSIGN("glGetError", getError); |
| ASSIGN("glGetFloatv", getFloatv); |
| ASSIGN("glGetIntegerv", getIntegerv); |
| ASSIGN("glGetString", getString); |
| ASSIGN("glGetTexImage", getTexImage); |
| ASSIGN("glGetTexLevelParameterfv", getTexLevelParameterfv); |
| ASSIGN("glGetTexLevelParameteriv", getTexLevelParameteriv); |
| ASSIGN("glGetTexParameterfv", getTexParameterfv); |
| ASSIGN("glGetTexParameteriv", getTexParameteriv); |
| ASSIGN("glHint", hint); |
| ASSIGN("glIsEnabled", isEnabled); |
| ASSIGN("glLineWidth", lineWidth); |
| ASSIGN("glLogicOp", logicOp); |
| ASSIGN("glPixelStoref", pixelStoref); |
| ASSIGN("glPixelStorei", pixelStorei); |
| ASSIGN("glPointSize", pointSize); |
| ASSIGN("glPolygonMode", polygonMode); |
| ASSIGN("glReadBuffer", readBuffer); |
| ASSIGN("glReadPixels", readPixels); |
| ASSIGN("glScissor", scissor); |
| ASSIGN("glStencilFunc", stencilFunc); |
| ASSIGN("glStencilMask", stencilMask); |
| ASSIGN("glStencilOp", stencilOp); |
| ASSIGN("glTexImage1D", texImage1D); |
| ASSIGN("glTexImage2D", texImage2D); |
| ASSIGN("glTexParameterf", texParameterf); |
| ASSIGN("glTexParameterfv", texParameterfv); |
| ASSIGN("glTexParameteri", texParameteri); |
| ASSIGN("glTexParameteriv", texParameteriv); |
| ASSIGN("glViewport", viewport); |
| } |
| |
| if (version >= gl::Version(1, 1)) |
| { |
| ASSIGN("glBindTexture", bindTexture); |
| ASSIGN("glCopyTexImage1D", copyTexImage1D); |
| ASSIGN("glCopyTexImage2D", copyTexImage2D); |
| ASSIGN("glCopyTexSubImage1D", copyTexSubImage1D); |
| ASSIGN("glCopyTexSubImage2D", copyTexSubImage2D); |
| ASSIGN("glDeleteTextures", deleteTextures); |
| ASSIGN("glDrawArrays", drawArrays); |
| ASSIGN("glDrawElements", drawElements); |
| ASSIGN("glGenTextures", genTextures); |
| ASSIGN("glIsTexture", isTexture); |
| ASSIGN("glPolygonOffset", polygonOffset); |
| ASSIGN("glTexSubImage1D", texSubImage1D); |
| ASSIGN("glTexSubImage2D", texSubImage2D); |
| } |
| |
| if (version >= gl::Version(1, 2)) |
| { |
| ASSIGN("glCopyTexSubImage3D", copyTexSubImage3D); |
| ASSIGN("glDrawRangeElements", drawRangeElements); |
| ASSIGN("glTexImage3D", texImage3D); |
| ASSIGN("glTexSubImage3D", texSubImage3D); |
| } |
| |
| if (version >= gl::Version(1, 3)) |
| { |
| ASSIGN("glActiveTexture", activeTexture); |
| ASSIGN("glCompressedTexImage1D", compressedTexImage1D); |
| ASSIGN("glCompressedTexImage2D", compressedTexImage2D); |
| ASSIGN("glCompressedTexImage3D", compressedTexImage3D); |
| ASSIGN("glCompressedTexSubImage1D", compressedTexSubImage1D); |
| ASSIGN("glCompressedTexSubImage2D", compressedTexSubImage2D); |
| ASSIGN("glCompressedTexSubImage3D", compressedTexSubImage3D); |
| ASSIGN("glGetCompressedTexImage", getCompressedTexImage); |
| ASSIGN("glSampleCoverage", sampleCoverage); |
| } |
| |
| if (version >= gl::Version(1, 4)) |
| { |
| ASSIGN("glBlendColor", blendColor); |
| ASSIGN("glBlendEquation", blendEquation); |
| ASSIGN("glBlendFuncSeparate", blendFuncSeparate); |
| ASSIGN("glMultiDrawArrays", multiDrawArrays); |
| ASSIGN("glMultiDrawElements", multiDrawElements); |
| ASSIGN("glPointParameterf", pointParameterf); |
| ASSIGN("glPointParameterfv", pointParameterfv); |
| ASSIGN("glPointParameteri", pointParameteri); |
| ASSIGN("glPointParameteriv", pointParameteriv); |
| } |
| |
| if (version >= gl::Version(1, 5)) |
| { |
| ASSIGN("glBeginQuery", beginQuery); |
| ASSIGN("glBindBuffer", bindBuffer); |
| ASSIGN("glBufferData", bufferData); |
| ASSIGN("glBufferSubData", bufferSubData); |
| ASSIGN("glDeleteBuffers", deleteBuffers); |
| ASSIGN("glDeleteQueries", deleteQueries); |
| ASSIGN("glEndQuery", endQuery); |
| ASSIGN("glGenBuffers", genBuffers); |
| ASSIGN("glGenQueries", genQueries); |
| ASSIGN("glGetBufferParameteriv", getBufferParameteriv); |
| ASSIGN("glGetBufferPointerv", getBufferPointerv); |
| ASSIGN("glGetBufferSubData", getBufferSubData); |
| ASSIGN("glGetQueryObjectiv", getQueryObjectiv); |
| ASSIGN("glGetQueryObjectuiv", getQueryObjectuiv); |
| ASSIGN("glGetQueryiv", getQueryiv); |
| ASSIGN("glIsBuffer", isBuffer); |
| ASSIGN("glIsQuery", isQuery); |
| ASSIGN("glMapBuffer", mapBuffer); |
| ASSIGN("glUnmapBuffer", unmapBuffer); |
| } |
| |
| if (version >= gl::Version(2, 0)) |
| { |
| ASSIGN("glAttachShader", attachShader); |
| ASSIGN("glBindAttribLocation", bindAttribLocation); |
| ASSIGN("glBlendEquationSeparate", blendEquationSeparate); |
| ASSIGN("glCompileShader", compileShader); |
| ASSIGN("glCreateProgram", createProgram); |
| ASSIGN("glCreateShader", createShader); |
| ASSIGN("glDeleteProgram", deleteProgram); |
| ASSIGN("glDeleteShader", deleteShader); |
| ASSIGN("glDetachShader", detachShader); |
| ASSIGN("glDisableVertexAttribArray", disableVertexAttribArray); |
| ASSIGN("glDrawBuffers", drawBuffers); |
| ASSIGN("glEnableVertexAttribArray", enableVertexAttribArray); |
| ASSIGN("glGetActiveAttrib", getActiveAttrib); |
| ASSIGN("glGetActiveUniform", getActiveUniform); |
| ASSIGN("glGetAttachedShaders", getAttachedShaders); |
| ASSIGN("glGetAttribLocation", getAttribLocation); |
| ASSIGN("glGetProgramInfoLog", getProgramInfoLog); |
| ASSIGN("glGetProgramiv", getProgramiv); |
| ASSIGN("glGetShaderInfoLog", getShaderInfoLog); |
| ASSIGN("glGetShaderSource", getShaderSource); |
| ASSIGN("glGetShaderiv", getShaderiv); |
| ASSIGN("glGetUniformLocation", getUniformLocation); |
| ASSIGN("glGetUniformfv", getUniformfv); |
| ASSIGN("glGetUniformiv", getUniformiv); |
| ASSIGN("glGetVertexAttribPointerv", getVertexAttribPointerv); |
| ASSIGN("glGetVertexAttribdv", getVertexAttribdv); |
| ASSIGN("glGetVertexAttribfv", getVertexAttribfv); |
| ASSIGN("glGetVertexAttribiv", getVertexAttribiv); |
| ASSIGN("glIsProgram", isProgram); |
| ASSIGN("glIsShader", isShader); |
| ASSIGN("glLinkProgram", linkProgram); |
| ASSIGN("glShaderSource", shaderSource); |
| ASSIGN("glStencilFuncSeparate", stencilFuncSeparate); |
| ASSIGN("glStencilMaskSeparate", stencilMaskSeparate); |
| ASSIGN("glStencilOpSeparate", stencilOpSeparate); |
| ASSIGN("glUniform1f", uniform1f); |
| ASSIGN("glUniform1fv", uniform1fv); |
| ASSIGN("glUniform1i", uniform1i); |
| ASSIGN("glUniform1iv", uniform1iv); |
| ASSIGN("glUniform2f", uniform2f); |
| ASSIGN("glUniform2fv", uniform2fv); |
| ASSIGN("glUniform2i", uniform2i); |
| ASSIGN("glUniform2iv", uniform2iv); |
| ASSIGN("glUniform3f", uniform3f); |
| ASSIGN("glUniform3fv", uniform3fv); |
| ASSIGN("glUniform3i", uniform3i); |
| ASSIGN("glUniform3iv", uniform3iv); |
| ASSIGN("glUniform4f", uniform4f); |
| ASSIGN("glUniform4fv", uniform4fv); |
| ASSIGN("glUniform4i", uniform4i); |
| ASSIGN("glUniform4iv", uniform4iv); |
| ASSIGN("glUniformMatrix2fv", uniformMatrix2fv); |
| ASSIGN("glUniformMatrix3fv", uniformMatrix3fv); |
| ASSIGN("glUniformMatrix4fv", uniformMatrix4fv); |
| ASSIGN("glUseProgram", useProgram); |
| ASSIGN("glValidateProgram", validateProgram); |
| ASSIGN("glVertexAttrib1d", vertexAttrib1d); |
| ASSIGN("glVertexAttrib1dv", vertexAttrib1dv); |
| ASSIGN("glVertexAttrib1f", vertexAttrib1f); |
| ASSIGN("glVertexAttrib1fv", vertexAttrib1fv); |
| ASSIGN("glVertexAttrib1s", vertexAttrib1s); |
| ASSIGN("glVertexAttrib1sv", vertexAttrib1sv); |
| ASSIGN("glVertexAttrib2d", vertexAttrib2d); |
| ASSIGN("glVertexAttrib2dv", vertexAttrib2dv); |
| ASSIGN("glVertexAttrib2f", vertexAttrib2f); |
| ASSIGN("glVertexAttrib2fv", vertexAttrib2fv); |
| ASSIGN("glVertexAttrib2s", vertexAttrib2s); |
| ASSIGN("glVertexAttrib2sv", vertexAttrib2sv); |
| ASSIGN("glVertexAttrib3d", vertexAttrib3d); |
| ASSIGN("glVertexAttrib3dv", vertexAttrib3dv); |
| ASSIGN("glVertexAttrib3f", vertexAttrib3f); |
| ASSIGN("glVertexAttrib3fv", vertexAttrib3fv); |
| ASSIGN("glVertexAttrib3s", vertexAttrib3s); |
| ASSIGN("glVertexAttrib3sv", vertexAttrib3sv); |
| ASSIGN("glVertexAttrib4Nbv", vertexAttrib4Nbv); |
| ASSIGN("glVertexAttrib4Niv", vertexAttrib4Niv); |
| ASSIGN("glVertexAttrib4Nsv", vertexAttrib4Nsv); |
| ASSIGN("glVertexAttrib4Nub", vertexAttrib4Nub); |
| ASSIGN("glVertexAttrib4Nubv", vertexAttrib4Nubv); |
| ASSIGN("glVertexAttrib4Nuiv", vertexAttrib4Nuiv); |
| ASSIGN("glVertexAttrib4Nusv", vertexAttrib4Nusv); |
| ASSIGN("glVertexAttrib4bv", vertexAttrib4bv); |
| ASSIGN("glVertexAttrib4d", vertexAttrib4d); |
| ASSIGN("glVertexAttrib4dv", vertexAttrib4dv); |
| ASSIGN("glVertexAttrib4f", vertexAttrib4f); |
| ASSIGN("glVertexAttrib4fv", vertexAttrib4fv); |
| ASSIGN("glVertexAttrib4iv", vertexAttrib4iv); |
| ASSIGN("glVertexAttrib4s", vertexAttrib4s); |
| ASSIGN("glVertexAttrib4sv", vertexAttrib4sv); |
| ASSIGN("glVertexAttrib4ubv", vertexAttrib4ubv); |
| ASSIGN("glVertexAttrib4uiv", vertexAttrib4uiv); |
| ASSIGN("glVertexAttrib4usv", vertexAttrib4usv); |
| ASSIGN("glVertexAttribPointer", vertexAttribPointer); |
| } |
| |
| if (version >= gl::Version(2, 1)) |
| { |
| ASSIGN("glUniformMatrix2x3fv", uniformMatrix2x3fv); |
| ASSIGN("glUniformMatrix2x4fv", uniformMatrix2x4fv); |
| ASSIGN("glUniformMatrix3x2fv", uniformMatrix3x2fv); |
| ASSIGN("glUniformMatrix3x4fv", uniformMatrix3x4fv); |
| ASSIGN("glUniformMatrix4x2fv", uniformMatrix4x2fv); |
| ASSIGN("glUniformMatrix4x3fv", uniformMatrix4x3fv); |
| } |
| |
| if (version >= gl::Version(3, 0)) |
| { |
| ASSIGN("glBeginConditionalRender", beginConditionalRender); |
| ASSIGN("glBeginTransformFeedback", beginTransformFeedback); |
| ASSIGN("glBindBufferBase", bindBufferBase); |
| ASSIGN("glBindBufferRange", bindBufferRange); |
| ASSIGN("glBindFragDataLocation", bindFragDataLocation); |
| ASSIGN("glBindFramebuffer", bindFramebuffer); |
| ASSIGN("glBindRenderbuffer", bindRenderbuffer); |
| ASSIGN("glBindVertexArray", bindVertexArray); |
| ASSIGN("glBlitFramebuffer", blitFramebuffer); |
| ASSIGN("glCheckFramebufferStatus", checkFramebufferStatus); |
| ASSIGN("glClampColor", clampColor); |
| ASSIGN("glClearBufferfi", clearBufferfi); |
| ASSIGN("glClearBufferfv", clearBufferfv); |
| ASSIGN("glClearBufferiv", clearBufferiv); |
| ASSIGN("glClearBufferuiv", clearBufferuiv); |
| ASSIGN("glColorMaski", colorMaski); |
| ASSIGN("glDeleteFramebuffers", deleteFramebuffers); |
| ASSIGN("glDeleteRenderbuffers", deleteRenderbuffers); |
| ASSIGN("glDeleteVertexArrays", deleteVertexArrays); |
| ASSIGN("glDisablei", disablei); |
| ASSIGN("glEnablei", enablei); |
| ASSIGN("glEndConditionalRender", endConditionalRender); |
| ASSIGN("glEndTransformFeedback", endTransformFeedback); |
| ASSIGN("glFlushMappedBufferRange", flushMappedBufferRange); |
| ASSIGN("glFramebufferRenderbuffer", framebufferRenderbuffer); |
| ASSIGN("glFramebufferTexture1D", framebufferTexture1D); |
| ASSIGN("glFramebufferTexture2D", framebufferTexture2D); |
| ASSIGN("glFramebufferTexture3D", framebufferTexture3D); |
| ASSIGN("glFramebufferTextureLayer", framebufferTextureLayer); |
| ASSIGN("glGenFramebuffers", genFramebuffers); |
| ASSIGN("glGenRenderbuffers", genRenderbuffers); |
| ASSIGN("glGenVertexArrays", genVertexArrays); |
| ASSIGN("glGenerateMipmap", generateMipmap); |
| ASSIGN("glGetBooleani_v", getBooleani_v); |
| ASSIGN("glGetFragDataLocation", getFragDataLocation); |
| ASSIGN("glGetFramebufferAttachmentParameteriv", getFramebufferAttachmentParameteriv); |
| ASSIGN("glGetIntegeri_v", getIntegeri_v); |
| ASSIGN("glGetRenderbufferParameteriv", getRenderbufferParameteriv); |
| ASSIGN("glGetStringi", getStringi); |
| ASSIGN("glGetTexParameterIiv", getTexParameterIiv); |
| ASSIGN("glGetTexParameterIuiv", getTexParameterIuiv); |
| ASSIGN("glGetTransformFeedbackVarying", getTransformFeedbackVarying); |
| ASSIGN("glGetUniformuiv", getUniformuiv); |
| ASSIGN("glGetVertexAttribIiv", getVertexAttribIiv); |
| ASSIGN("glGetVertexAttribIuiv", getVertexAttribIuiv); |
| ASSIGN("glIsEnabledi", isEnabledi); |
| ASSIGN("glIsFramebuffer", isFramebuffer); |
| ASSIGN("glIsRenderbuffer", isRenderbuffer); |
| ASSIGN("glIsVertexArray", isVertexArray); |
| ASSIGN("glMapBufferRange", mapBufferRange); |
| ASSIGN("glRenderbufferStorage", renderbufferStorage); |
| ASSIGN("glRenderbufferStorageMultisample", renderbufferStorageMultisample); |
| ASSIGN("glTexParameterIiv", texParameterIiv); |
| ASSIGN("glTexParameterIuiv", texParameterIuiv); |
| ASSIGN("glTransformFeedbackVaryings", transformFeedbackVaryings); |
| ASSIGN("glUniform1ui", uniform1ui); |
| ASSIGN("glUniform1uiv", uniform1uiv); |
| ASSIGN("glUniform2ui", uniform2ui); |
| ASSIGN("glUniform2uiv", uniform2uiv); |
| ASSIGN("glUniform3ui", uniform3ui); |
| ASSIGN("glUniform3uiv", uniform3uiv); |
| ASSIGN("glUniform4ui", uniform4ui); |
| ASSIGN("glUniform4uiv", uniform4uiv); |
| ASSIGN("glVertexAttribI1i", vertexAttribI1i); |
| ASSIGN("glVertexAttribI1iv", vertexAttribI1iv); |
| ASSIGN("glVertexAttribI1ui", vertexAttribI1ui); |
| ASSIGN("glVertexAttribI1uiv", vertexAttribI1uiv); |
| ASSIGN("glVertexAttribI2i", vertexAttribI2i); |
| ASSIGN("glVertexAttribI2iv", vertexAttribI2iv); |
| ASSIGN("glVertexAttribI2ui", vertexAttribI2ui); |
| ASSIGN("glVertexAttribI2uiv", vertexAttribI2uiv); |
| ASSIGN("glVertexAttribI3i", vertexAttribI3i); |
| ASSIGN("glVertexAttribI3iv", vertexAttribI3iv); |
| ASSIGN("glVertexAttribI3ui", vertexAttribI3ui); |
| ASSIGN("glVertexAttribI3uiv", vertexAttribI3uiv); |
| ASSIGN("glVertexAttribI4bv", vertexAttribI4bv); |
| ASSIGN("glVertexAttribI4i", vertexAttribI4i); |
| ASSIGN("glVertexAttribI4iv", vertexAttribI4iv); |
| ASSIGN("glVertexAttribI4sv", vertexAttribI4sv); |
| ASSIGN("glVertexAttribI4ubv", vertexAttribI4ubv); |
| ASSIGN("glVertexAttribI4ui", vertexAttribI4ui); |
| ASSIGN("glVertexAttribI4uiv", vertexAttribI4uiv); |
| ASSIGN("glVertexAttribI4usv", vertexAttribI4usv); |
| ASSIGN("glVertexAttribIPointer", vertexAttribIPointer); |
| } |
| |
| if (version >= gl::Version(3, 1)) |
| { |
| ASSIGN("glCopyBufferSubData", copyBufferSubData); |
| ASSIGN("glDrawArraysInstanced", drawArraysInstanced); |
| ASSIGN("glDrawElementsInstanced", drawElementsInstanced); |
| ASSIGN("glGetActiveUniformBlockName", getActiveUniformBlockName); |
| ASSIGN("glGetActiveUniformBlockiv", getActiveUniformBlockiv); |
| ASSIGN("glGetActiveUniformName", getActiveUniformName); |
| ASSIGN("glGetActiveUniformsiv", getActiveUniformsiv); |
| ASSIGN("glGetUniformBlockIndex", getUniformBlockIndex); |
| ASSIGN("glGetUniformIndices", getUniformIndices); |
| ASSIGN("glPrimitiveRestartIndex", primitiveRestartIndex); |
| ASSIGN("glTexBuffer", texBuffer); |
| ASSIGN("glUniformBlockBinding", uniformBlockBinding); |
| } |
| |
| if (version >= gl::Version(3, 2)) |
| { |
| ASSIGN("glClientWaitSync", clientWaitSync); |
| ASSIGN("glDeleteSync", deleteSync); |
| ASSIGN("glDrawElementsBaseVertex", drawElementsBaseVertex); |
| ASSIGN("glDrawElementsInstancedBaseVertex", drawElementsInstancedBaseVertex); |
| ASSIGN("glDrawRangeElementsBaseVertex", drawRangeElementsBaseVertex); |
| ASSIGN("glFenceSync", fenceSync); |
| ASSIGN("glFramebufferTexture", framebufferTexture); |
| ASSIGN("glGetBufferParameteri64v", getBufferParameteri64v); |
| ASSIGN("glGetInteger64i_v", getInteger64i_v); |
| ASSIGN("glGetInteger64v", getInteger64v); |
| ASSIGN("glGetMultisamplefv", getMultisamplefv); |
| ASSIGN("glGetSynciv", getSynciv); |
| ASSIGN("glIsSync", isSync); |
| ASSIGN("glMultiDrawElementsBaseVertex", multiDrawElementsBaseVertex); |
| ASSIGN("glProvokingVertex", provokingVertex); |
| ASSIGN("glSampleMaski", sampleMaski); |
| ASSIGN("glTexImage2DMultisample", texImage2DMultisample); |
| ASSIGN("glTexImage3DMultisample", texImage3DMultisample); |
| ASSIGN("glWaitSync", waitSync); |
| } |
| |
| if (version >= gl::Version(3, 3)) |
| { |
| ASSIGN("glBindFragDataLocationIndexed", bindFragDataLocationIndexed); |
| ASSIGN("glBindSampler", bindSampler); |
| ASSIGN("glDeleteSamplers", deleteSamplers); |
| ASSIGN("glGenSamplers", genSamplers); |
| ASSIGN("glGetFragDataIndex", getFragDataIndex); |
| ASSIGN("glGetQueryObjecti64v", getQueryObjecti64v); |
| ASSIGN("glGetQueryObjectui64v", getQueryObjectui64v); |
| ASSIGN("glGetSamplerParameterIiv", getSamplerParameterIiv); |
| ASSIGN("glGetSamplerParameterIuiv", getSamplerParameterIuiv); |
| ASSIGN("glGetSamplerParameterfv", getSamplerParameterfv); |
| ASSIGN("glGetSamplerParameteriv", getSamplerParameteriv); |
| ASSIGN("glIsSampler", isSampler); |
| ASSIGN("glQueryCounter", queryCounter); |
| ASSIGN("glSamplerParameterIiv", samplerParameterIiv); |
| ASSIGN("glSamplerParameterIuiv", samplerParameterIuiv); |
| ASSIGN("glSamplerParameterf", samplerParameterf); |
| ASSIGN("glSamplerParameterfv", samplerParameterfv); |
| ASSIGN("glSamplerParameteri", samplerParameteri); |
| ASSIGN("glSamplerParameteriv", samplerParameteriv); |
| ASSIGN("glVertexAttribDivisor", vertexAttribDivisor); |
| ASSIGN("glVertexAttribP1ui", vertexAttribP1ui); |
| ASSIGN("glVertexAttribP1uiv", vertexAttribP1uiv); |
| ASSIGN("glVertexAttribP2ui", vertexAttribP2ui); |
| ASSIGN("glVertexAttribP2uiv", vertexAttribP2uiv); |
| ASSIGN("glVertexAttribP3ui", vertexAttribP3ui); |
| ASSIGN("glVertexAttribP3uiv", vertexAttribP3uiv); |
| ASSIGN("glVertexAttribP4ui", vertexAttribP4ui); |
| ASSIGN("glVertexAttribP4uiv", vertexAttribP4uiv); |
| } |
| |
| if (version >= gl::Version(4, 0)) |
| { |
| ASSIGN("glBeginQueryIndexed", beginQueryIndexed); |
| ASSIGN("glBindTransformFeedback", bindTransformFeedback); |
| ASSIGN("glBlendEquationSeparatei", blendEquationSeparatei); |
| ASSIGN("glBlendEquationi", blendEquationi); |
| ASSIGN("glBlendFuncSeparatei", blendFuncSeparatei); |
| ASSIGN("glBlendFunci", blendFunci); |
| ASSIGN("glDeleteTransformFeedbacks", deleteTransformFeedbacks); |
| ASSIGN("glDrawArraysIndirect", drawArraysIndirect); |
| ASSIGN("glDrawElementsIndirect", drawElementsIndirect); |
| ASSIGN("glDrawTransformFeedback", drawTransformFeedback); |
| ASSIGN("glDrawTransformFeedbackStream", drawTransformFeedbackStream); |
| ASSIGN("glEndQueryIndexed", endQueryIndexed); |
| ASSIGN("glGenTransformFeedbacks", genTransformFeedbacks); |
| ASSIGN("glGetActiveSubroutineName", getActiveSubroutineName); |
| ASSIGN("glGetActiveSubroutineUniformName", getActiveSubroutineUniformName); |
| ASSIGN("glGetActiveSubroutineUniformiv", getActiveSubroutineUniformiv); |
| ASSIGN("glGetProgramStageiv", getProgramStageiv); |
| ASSIGN("glGetQueryIndexediv", getQueryIndexediv); |
| ASSIGN("glGetSubroutineIndex", getSubroutineIndex); |
| ASSIGN("glGetSubroutineUniformLocation", getSubroutineUniformLocation); |
| ASSIGN("glGetUniformSubroutineuiv", getUniformSubroutineuiv); |
| ASSIGN("glGetUniformdv", getUniformdv); |
| ASSIGN("glIsTransformFeedback", isTransformFeedback); |
| ASSIGN("glMinSampleShading", minSampleShading); |
| ASSIGN("glPatchParameterfv", patchParameterfv); |
| ASSIGN("glPatchParameteri", patchParameteri); |
| ASSIGN("glPauseTransformFeedback", pauseTransformFeedback); |
| ASSIGN("glResumeTransformFeedback", resumeTransformFeedback); |
| ASSIGN("glUniform1d", uniform1d); |
| ASSIGN("glUniform1dv", uniform1dv); |
| ASSIGN("glUniform2d", uniform2d); |
| ASSIGN("glUniform2dv", uniform2dv); |
| ASSIGN("glUniform3d", uniform3d); |
| ASSIGN("glUniform3dv", uniform3dv); |
| ASSIGN("glUniform4d", uniform4d); |
| ASSIGN("glUniform4dv", uniform4dv); |
| ASSIGN("glUniformMatrix2dv", uniformMatrix2dv); |
| ASSIGN("glUniformMatrix2x3dv", uniformMatrix2x3dv); |
| ASSIGN("glUniformMatrix2x4dv", uniformMatrix2x4dv); |
| ASSIGN("glUniformMatrix3dv", uniformMatrix3dv); |
| ASSIGN("glUniformMatrix3x2dv", uniformMatrix3x2dv); |
| ASSIGN("glUniformMatrix3x4dv", uniformMatrix3x4dv); |
| ASSIGN("glUniformMatrix4dv", uniformMatrix4dv); |
| ASSIGN("glUniformMatrix4x2dv", uniformMatrix4x2dv); |
| ASSIGN("glUniformMatrix4x3dv", uniformMatrix4x3dv); |
| ASSIGN("glUniformSubroutinesuiv", uniformSubroutinesuiv); |
| } |
| |
| if (version >= gl::Version(4, 1)) |
| { |
| ASSIGN("glActiveShaderProgram", activeShaderProgram); |
| ASSIGN("glBindProgramPipeline", bindProgramPipeline); |
| ASSIGN("glClearDepthf", clearDepthf); |
| ASSIGN("glCreateShaderProgramv", createShaderProgramv); |
| ASSIGN("glDeleteProgramPipelines", deleteProgramPipelines); |
| ASSIGN("glDepthRangeArrayv", depthRangeArrayv); |
| ASSIGN("glDepthRangeIndexed", depthRangeIndexed); |
| ASSIGN("glDepthRangef", depthRangef); |
| ASSIGN("glGenProgramPipelines", genProgramPipelines); |
| ASSIGN("glGetDoublei_v", getDoublei_v); |
| ASSIGN("glGetFloati_v", getFloati_v); |
| ASSIGN("glGetProgramBinary", getProgramBinary); |
| ASSIGN("glGetProgramPipelineInfoLog", getProgramPipelineInfoLog); |
| ASSIGN("glGetProgramPipelineiv", getProgramPipelineiv); |
| ASSIGN("glGetShaderPrecisionFormat", getShaderPrecisionFormat); |
| ASSIGN("glGetVertexAttribLdv", getVertexAttribLdv); |
| ASSIGN("glIsProgramPipeline", isProgramPipeline); |
| ASSIGN("glProgramBinary", programBinary); |
| ASSIGN("glProgramParameteri", programParameteri); |
| ASSIGN("glProgramUniform1d", programUniform1d); |
| ASSIGN("glProgramUniform1dv", programUniform1dv); |
| ASSIGN("glProgramUniform1f", programUniform1f); |
| ASSIGN("glProgramUniform1fv", programUniform1fv); |
| ASSIGN("glProgramUniform1i", programUniform1i); |
| ASSIGN("glProgramUniform1iv", programUniform1iv); |
| ASSIGN("glProgramUniform1ui", programUniform1ui); |
| ASSIGN("glProgramUniform1uiv", programUniform1uiv); |
| ASSIGN("glProgramUniform2d", programUniform2d); |
| ASSIGN("glProgramUniform2dv", programUniform2dv); |
| ASSIGN("glProgramUniform2f", programUniform2f); |
| ASSIGN("glProgramUniform2fv", programUniform2fv); |
| ASSIGN("glProgramUniform2i", programUniform2i); |
| ASSIGN("glProgramUniform2iv", programUniform2iv); |
| ASSIGN("glProgramUniform2ui", programUniform2ui); |
| ASSIGN("glProgramUniform2uiv", programUniform2uiv); |
| ASSIGN("glProgramUniform3d", programUniform3d); |
| ASSIGN("glProgramUniform3dv", programUniform3dv); |
| ASSIGN("glProgramUniform3f", programUniform3f); |
| ASSIGN("glProgramUniform3fv", programUniform3fv); |
| ASSIGN("glProgramUniform3i", programUniform3i); |
| ASSIGN("glProgramUniform3iv", programUniform3iv); |
| ASSIGN("glProgramUniform3ui", programUniform3ui); |
| ASSIGN("glProgramUniform3uiv", programUniform3uiv); |
| ASSIGN("glProgramUniform4d", programUniform4d); |
| ASSIGN("glProgramUniform4dv", programUniform4dv); |
| ASSIGN("glProgramUniform4f", programUniform4f); |
| ASSIGN("glProgramUniform4fv", programUniform4fv); |
| ASSIGN("glProgramUniform4i", programUniform4i); |
| ASSIGN("glProgramUniform4iv", programUniform4iv); |
| ASSIGN("glProgramUniform4ui", programUniform4ui); |
| ASSIGN("glProgramUniform4uiv", programUniform4uiv); |
| ASSIGN("glProgramUniformMatrix2dv", programUniformMatrix2dv); |
| ASSIGN("glProgramUniformMatrix2fv", programUniformMatrix2fv); |
| ASSIGN("glProgramUniformMatrix2x3dv", programUniformMatrix2x3dv); |
| ASSIGN("glProgramUniformMatrix2x3fv", programUniformMatrix2x3fv); |
| ASSIGN("glProgramUniformMatrix2x4dv", programUniformMatrix2x4dv); |
| ASSIGN("glProgramUniformMatrix2x4fv", programUniformMatrix2x4fv); |
| ASSIGN("glProgramUniformMatrix3dv", programUniformMatrix3dv); |
| ASSIGN("glProgramUniformMatrix3fv", programUniformMatrix3fv); |
| ASSIGN("glProgramUniformMatrix3x2dv", programUniformMatrix3x2dv); |
| ASSIGN("glProgramUniformMatrix3x2fv", programUniformMatrix3x2fv); |
| ASSIGN("glProgramUniformMatrix3x4dv", programUniformMatrix3x4dv); |
| ASSIGN("glProgramUniformMatrix3x4fv", programUniformMatrix3x4fv); |
| ASSIGN("glProgramUniformMatrix4dv", programUniformMatrix4dv); |
| ASSIGN("glProgramUniformMatrix4fv", programUniformMatrix4fv); |
| ASSIGN("glProgramUniformMatrix4x2dv", programUniformMatrix4x2dv); |
| ASSIGN("glProgramUniformMatrix4x2fv", programUniformMatrix4x2fv); |
| ASSIGN("glProgramUniformMatrix4x3dv", programUniformMatrix4x3dv); |
| ASSIGN("glProgramUniformMatrix4x3fv", programUniformMatrix4x3fv); |
| ASSIGN("glReleaseShaderCompiler", releaseShaderCompiler); |
| ASSIGN("glScissorArrayv", scissorArrayv); |
| ASSIGN("glScissorIndexed", scissorIndexed); |
| ASSIGN("glScissorIndexedv", scissorIndexedv); |
| ASSIGN("glShaderBinary", shaderBinary); |
| ASSIGN("glUseProgramStages", useProgramStages); |
| ASSIGN("glValidateProgramPipeline", validateProgramPipeline); |
| ASSIGN("glVertexAttribL1d", vertexAttribL1d); |
| ASSIGN("glVertexAttribL1dv", vertexAttribL1dv); |
| ASSIGN("glVertexAttribL2d", vertexAttribL2d); |
| ASSIGN("glVertexAttribL2dv", vertexAttribL2dv); |
| ASSIGN("glVertexAttribL3d", vertexAttribL3d); |
| ASSIGN("glVertexAttribL3dv", vertexAttribL3dv); |
| ASSIGN("glVertexAttribL4d", vertexAttribL4d); |
| ASSIGN("glVertexAttribL4dv", vertexAttribL4dv); |
| ASSIGN("glVertexAttribLPointer", vertexAttribLPointer); |
| ASSIGN("glViewportArrayv", viewportArrayv); |
| ASSIGN("glViewportIndexedf", viewportIndexedf); |
| ASSIGN("glViewportIndexedfv", viewportIndexedfv); |
| } |
| |
| if (version >= gl::Version(4, 2)) |
| { |
| ASSIGN("glBindImageTexture", bindImageTexture); |
| ASSIGN("glDrawArraysInstancedBaseInstance", drawArraysInstancedBaseInstance); |
| ASSIGN("glDrawElementsInstancedBaseInstance", drawElementsInstancedBaseInstance); |
| ASSIGN("glDrawElementsInstancedBaseVertexBaseInstance", |
| drawElementsInstancedBaseVertexBaseInstance); |
| ASSIGN("glDrawTransformFeedbackInstanced", drawTransformFeedbackInstanced); |
| ASSIGN("glDrawTransformFeedbackStreamInstanced", drawTransformFeedbackStreamInstanced); |
| ASSIGN("glGetActiveAtomicCounterBufferiv", getActiveAtomicCounterBufferiv); |
| ASSIGN("glGetInternalformativ", getInternalformativ); |
| ASSIGN("glMemoryBarrier", memoryBarrier); |
| ASSIGN("glTexStorage1D", texStorage1D); |
| ASSIGN("glTexStorage2D", texStorage2D); |
| ASSIGN("glTexStorage3D", texStorage3D); |
| } |
| |
| if (version >= gl::Version(4, 3)) |
| { |
| ASSIGN("glBindVertexBuffer", bindVertexBuffer); |
| ASSIGN("glClearBufferData", clearBufferData); |
| ASSIGN("glClearBufferSubData", clearBufferSubData); |
| ASSIGN("glCopyImageSubData", copyImageSubData); |
| ASSIGN("glDebugMessageCallback", debugMessageCallback); |
| ASSIGN("glDebugMessageControl", debugMessageControl); |
| ASSIGN("glDebugMessageInsert", debugMessageInsert); |
| ASSIGN("glDispatchCompute", dispatchCompute); |
| ASSIGN("glDispatchComputeIndirect", dispatchComputeIndirect); |
| ASSIGN("glFramebufferParameteri", framebufferParameteri); |
| ASSIGN("glGetDebugMessageLog", getDebugMessageLog); |
| ASSIGN("glGetFramebufferParameteriv", getFramebufferParameteriv); |
| ASSIGN("glGetInternalformati64v", getInternalformati64v); |
| ASSIGN("glGetObjectLabel", getObjectLabel); |
| ASSIGN("glGetObjectPtrLabel", getObjectPtrLabel); |
| ASSIGN("glGetPointerv", getPointerv); |
| ASSIGN("glGetProgramInterfaceiv", getProgramInterfaceiv); |
| ASSIGN("glGetProgramResourceIndex", getProgramResourceIndex); |
| ASSIGN("glGetProgramResourceLocation", getProgramResourceLocation); |
| ASSIGN("glGetProgramResourceLocationIndex", getProgramResourceLocationIndex); |
| ASSIGN("glGetProgramResourceName", getProgramResourceName); |
| ASSIGN("glGetProgramResourceiv", getProgramResourceiv); |
| ASSIGN("glInvalidateBufferData", invalidateBufferData); |
| ASSIGN("glInvalidateBufferSubData", invalidateBufferSubData); |
| ASSIGN("glInvalidateFramebuffer", invalidateFramebuffer); |
| ASSIGN("glInvalidateSubFramebuffer", invalidateSubFramebuffer); |
| ASSIGN("glInvalidateTexImage", invalidateTexImage); |
| ASSIGN("glInvalidateTexSubImage", invalidateTexSubImage); |
| ASSIGN("glMultiDrawArraysIndirect", multiDrawArraysIndirect); |
| ASSIGN("glMultiDrawElementsIndirect", multiDrawElementsIndirect); |
| ASSIGN("glObjectLabel", objectLabel); |
| ASSIGN("glObjectPtrLabel", objectPtrLabel); |
| ASSIGN("glPopDebugGroup", popDebugGroup); |
| ASSIGN("glPushDebugGroup", pushDebugGroup); |
| ASSIGN("glShaderStorageBlockBinding", shaderStorageBlockBinding); |
| ASSIGN("glTexBufferRange", texBufferRange); |
| ASSIGN("glTexStorage2DMultisample", texStorage2DMultisample); |
| ASSIGN("glTexStorage3DMultisample", texStorage3DMultisample); |
| ASSIGN("glTextureView", textureView); |
| ASSIGN("glVertexAttribBinding", vertexAttribBinding); |
| ASSIGN("glVertexAttribFormat", vertexAttribFormat); |
| ASSIGN("glVertexAttribIFormat", vertexAttribIFormat); |
| ASSIGN("glVertexAttribLFormat", vertexAttribLFormat); |
| ASSIGN("glVertexBindingDivisor", vertexBindingDivisor); |
| } |
| |
| if (version >= gl::Version(4, 4)) |
| { |
| ASSIGN("glBindBuffersBase", bindBuffersBase); |
| ASSIGN("glBindBuffersRange", bindBuffersRange); |
| ASSIGN("glBindImageTextures", bindImageTextures); |
| ASSIGN("glBindSamplers", bindSamplers); |
| ASSIGN("glBindTextures", bindTextures); |
| ASSIGN("glBindVertexBuffers", bindVertexBuffers); |
| ASSIGN("glBufferStorage", bufferStorage); |
| ASSIGN("glClearTexImage", clearTexImage); |
| ASSIGN("glClearTexSubImage", clearTexSubImage); |
| } |
| |
| if (version >= gl::Version(4, 5)) |
| { |
| ASSIGN("glBindTextureUnit", bindTextureUnit); |
| ASSIGN("glBlitNamedFramebuffer", blitNamedFramebuffer); |
| ASSIGN("glCheckNamedFramebufferStatus", checkNamedFramebufferStatus); |
| ASSIGN("glClearNamedBufferData", clearNamedBufferData); |
| ASSIGN("glClearNamedBufferSubData", clearNamedBufferSubData); |
| ASSIGN("glClearNamedFramebufferfi", clearNamedFramebufferfi); |
| ASSIGN("glClearNamedFramebufferfv", clearNamedFramebufferfv); |
| ASSIGN("glClearNamedFramebufferiv", clearNamedFramebufferiv); |
| ASSIGN("glClearNamedFramebufferuiv", clearNamedFramebufferuiv); |
| ASSIGN("glClipControl", clipControl); |
| ASSIGN("glCompressedTextureSubImage1D", compressedTextureSubImage1D); |
| ASSIGN("glCompressedTextureSubImage2D", compressedTextureSubImage2D); |
| ASSIGN("glCompressedTextureSubImage3D", compressedTextureSubImage3D); |
| ASSIGN("glCopyNamedBufferSubData", copyNamedBufferSubData); |
| ASSIGN("glCopyTextureSubImage1D", copyTextureSubImage1D); |
| ASSIGN("glCopyTextureSubImage2D", copyTextureSubImage2D); |
| ASSIGN("glCopyTextureSubImage3D", copyTextureSubImage3D); |
| ASSIGN("glCreateBuffers", createBuffers); |
| ASSIGN("glCreateFramebuffers", createFramebuffers); |
| ASSIGN("glCreateProgramPipelines", createProgramPipelines); |
| ASSIGN("glCreateQueries", createQueries); |
| ASSIGN("glCreateRenderbuffers", createRenderbuffers); |
| ASSIGN("glCreateSamplers", createSamplers); |
| ASSIGN("glCreateTextures", createTextures); |
| ASSIGN("glCreateTransformFeedbacks", createTransformFeedbacks); |
| ASSIGN("glCreateVertexArrays", createVertexArrays); |
| ASSIGN("glDisableVertexArrayAttrib", disableVertexArrayAttrib); |
| ASSIGN("glEnableVertexArrayAttrib", enableVertexArrayAttrib); |
| ASSIGN("glFlushMappedNamedBufferRange", flushMappedNamedBufferRange); |
| ASSIGN("glGenerateTextureMipmap", generateTextureMipmap); |
| ASSIGN("glGetCompressedTextureImage", getCompressedTextureImage); |
| ASSIGN("glGetCompressedTextureSubImage", getCompressedTextureSubImage); |
| ASSIGN("glGetGraphicsResetStatus", getGraphicsResetStatus); |
| ASSIGN("glGetNamedBufferParameteri64v", getNamedBufferParameteri64v); |
| ASSIGN("glGetNamedBufferParameteriv", getNamedBufferParameteriv); |
| ASSIGN("glGetNamedBufferPointerv", getNamedBufferPointerv); |
| ASSIGN("glGetNamedBufferSubData", getNamedBufferSubData); |
| ASSIGN("glGetNamedFramebufferAttachmentParameteriv", |
| getNamedFramebufferAttachmentParameteriv); |
| ASSIGN("glGetNamedFramebufferParameteriv", getNamedFramebufferParameteriv); |
| ASSIGN("glGetNamedRenderbufferParameteriv", getNamedRenderbufferParameteriv); |
| ASSIGN("glGetQueryBufferObjecti64v", getQueryBufferObjecti64v); |
| ASSIGN("glGetQueryBufferObjectiv", getQueryBufferObjectiv); |
| ASSIGN("glGetQueryBufferObjectui64v", getQueryBufferObjectui64v); |
| ASSIGN("glGetQueryBufferObjectuiv", getQueryBufferObjectuiv); |
| ASSIGN("glGetTextureImage", getTextureImage); |
| ASSIGN("glGetTextureLevelParameterfv", getTextureLevelParameterfv); |
| ASSIGN("glGetTextureLevelParameteriv", getTextureLevelParameteriv); |
| ASSIGN("glGetTextureParameterIiv", getTextureParameterIiv); |
| ASSIGN("glGetTextureParameterIuiv", getTextureParameterIuiv); |
| ASSIGN("glGetTextureParameterfv", getTextureParameterfv); |
| ASSIGN("glGetTextureParameteriv", getTextureParameteriv); |
| ASSIGN("glGetTextureSubImage", getTextureSubImage); |
| ASSIGN("glGetTransformFeedbacki64_v", getTransformFeedbacki64_v); |
| ASSIGN("glGetTransformFeedbacki_v", getTransformFeedbacki_v); |
| ASSIGN("glGetTransformFeedbackiv", getTransformFeedbackiv); |
| ASSIGN("glGetVertexArrayIndexed64iv", getVertexArrayIndexed64iv); |
| ASSIGN("glGetVertexArrayIndexediv", getVertexArrayIndexediv); |
| ASSIGN("glGetVertexArrayiv", getVertexArrayiv); |
| ASSIGN("glGetnCompressedTexImage", getnCompressedTexImage); |
| ASSIGN("glGetnTexImage", getnTexImage); |
| ASSIGN("glGetnUniformdv", getnUniformdv); |
| ASSIGN("glGetnUniformfv", getnUniformfv); |
| ASSIGN("glGetnUniformiv", getnUniformiv); |
| ASSIGN("glGetnUniformuiv", getnUniformuiv); |
| ASSIGN("glInvalidateNamedFramebufferData", invalidateNamedFramebufferData); |
| ASSIGN("glInvalidateNamedFramebufferSubData", invalidateNamedFramebufferSubData); |
| ASSIGN("glMapNamedBuffer", mapNamedBuffer); |
| ASSIGN("glMapNamedBufferRange", mapNamedBufferRange); |
| ASSIGN("glMemoryBarrierByRegion", memoryBarrierByRegion); |
| ASSIGN("glNamedBufferData", namedBufferData); |
| ASSIGN("glNamedBufferStorage", namedBufferStorage); |
| ASSIGN("glNamedBufferSubData", namedBufferSubData); |
| ASSIGN("glNamedFramebufferDrawBuffer", namedFramebufferDrawBuffer); |
| ASSIGN("glNamedFramebufferDrawBuffers", namedFramebufferDrawBuffers); |
| ASSIGN("glNamedFramebufferParameteri", namedFramebufferParameteri); |
| ASSIGN("glNamedFramebufferReadBuffer", namedFramebufferReadBuffer); |
| ASSIGN("glNamedFramebufferRenderbuffer", namedFramebufferRenderbuffer); |
| ASSIGN("glNamedFramebufferTexture", namedFramebufferTexture); |
| ASSIGN("glNamedFramebufferTextureLayer", namedFramebufferTextureLayer); |
| ASSIGN("glNamedRenderbufferStorage", namedRenderbufferStorage); |
| ASSIGN("glNamedRenderbufferStorageMultisample", namedRenderbufferStorageMultisample); |
| ASSIGN("glReadnPixels", readnPixels); |
| ASSIGN("glTextureBarrier", textureBarrier); |
| ASSIGN("glTextureBuffer", textureBuffer); |
| ASSIGN("glTextureBufferRange", textureBufferRange); |
| ASSIGN("glTextureParameterIiv", textureParameterIiv); |
| ASSIGN("glTextureParameterIuiv", textureParameterIuiv); |
| ASSIGN("glTextureParameterf", textureParameterf); |
| ASSIGN("glTextureParameterfv", textureParameterfv); |
| ASSIGN("glTextureParameteri", textureParameteri); |
| ASSIGN("glTextureParameteriv", textureParameteriv); |
| ASSIGN("glTextureStorage1D", textureStorage1D); |
| ASSIGN("glTextureStorage2D", textureStorage2D); |
| ASSIGN("glTextureStorage2DMultisample", textureStorage2DMultisample); |
| ASSIGN("glTextureStorage3D", textureStorage3D); |
| ASSIGN("glTextureStorage3DMultisample", textureStorage3DMultisample); |
| ASSIGN("glTextureSubImage1D", textureSubImage1D); |
| ASSIGN("glTextureSubImage2D", textureSubImage2D); |
| ASSIGN("glTextureSubImage3D", textureSubImage3D); |
| ASSIGN("glTransformFeedbackBufferBase", transformFeedbackBufferBase); |
| ASSIGN("glTransformFeedbackBufferRange", transformFeedbackBufferRange); |
| ASSIGN("glUnmapNamedBuffer", unmapNamedBuffer); |
| ASSIGN("glVertexArrayAttribBinding", vertexArrayAttribBinding); |
| ASSIGN("glVertexArrayAttribFormat", vertexArrayAttribFormat); |
| ASSIGN("glVertexArrayAttribIFormat", vertexArrayAttribIFormat); |
| ASSIGN("glVertexArrayAttribLFormat", vertexArrayAttribLFormat); |
| ASSIGN("glVertexArrayBindingDivisor", vertexArrayBindingDivisor); |
| ASSIGN("glVertexArrayElementBuffer", vertexArrayElementBuffer); |
| ASSIGN("glVertexArrayVertexBuffer", vertexArrayVertexBuffer); |
| ASSIGN("glVertexArrayVertexBuffers", vertexArrayVertexBuffers); |
| } |
| |
| if (extensions.count("GL_ARB_ES2_compatibility") != 0) |
| { |
| ASSIGN("glClearDepthf", clearDepthf); |
| ASSIGN("glDepthRangef", depthRangef); |
| ASSIGN("glGetShaderPrecisionFormat", getShaderPrecisionFormat); |
| ASSIGN("glReleaseShaderCompiler", releaseShaderCompiler); |
| ASSIGN("glShaderBinary", shaderBinary); |
| } |
| |
| if (extensions.count("GL_ARB_ES3_1_compatibility") != 0) |
| { |
| ASSIGN("glMemoryBarrierByRegion", memoryBarrierByRegion); |
| } |
| |
| if (extensions.count("GL_ARB_ES3_2_compatibility") != 0) |
| { |
| ASSIGN("glPrimitiveBoundingBoxARB", primitiveBoundingBox); |
| } |
| |
| if (extensions.count("GL_ARB_base_instance") != 0) |
| { |
| ASSIGN("glDrawArraysInstancedBaseInstance", drawArraysInstancedBaseInstance); |
| ASSIGN("glDrawElementsInstancedBaseInstance", drawElementsInstancedBaseInstance); |
| ASSIGN("glDrawElementsInstancedBaseVertexBaseInstance", |
| drawElementsInstancedBaseVertexBaseInstance); |
| } |
| |
| if (extensions.count("GL_ARB_blend_func_extended") != 0) |
| { |
| ASSIGN("glBindFragDataLocationIndexed", bindFragDataLocationIndexed); |
| ASSIGN("glGetFragDataIndex", getFragDataIndex); |
| } |
| |
| if (extensions.count("GL_ARB_buffer_storage") != 0) |
| { |
| ASSIGN("glBufferStorage", bufferStorage); |
| } |
| |
| if (extensions.count("GL_ARB_clear_buffer_object") != 0) |
| { |
| ASSIGN("glClearBufferData", clearBufferData); |
| ASSIGN("glClearBufferSubData", clearBufferSubData); |
| } |
| |
| if (extensions.count("GL_ARB_clear_texture") != 0) |
| { |
| ASSIGN("glClearTexImage", clearTexImage); |
| ASSIGN("glClearTexSubImage", clearTexSubImage); |
| } |
| |
| if (extensions.count("GL_ARB_clip_control") != 0) |
| { |
| ASSIGN("glClipControl", clipControl); |
| } |
| |
| if (extensions.count("GL_ARB_color_buffer_float") != 0) |
| { |
| ASSIGN("glClampColorARB", clampColor); |
| } |
| |
| if (extensions.count("GL_ARB_compute_shader") != 0) |
| { |
| ASSIGN("glDispatchCompute", dispatchCompute); |
| ASSIGN("glDispatchComputeIndirect", dispatchComputeIndirect); |
| } |
| |
| if (extensions.count("GL_ARB_copy_buffer") != 0) |
| { |
| ASSIGN("glCopyBufferSubData", copyBufferSubData); |
| } |
| |
| if (extensions.count("GL_ARB_copy_image") != 0) |
| { |
| ASSIGN("glCopyImageSubData", copyImageSubData); |
| } |
| |
| if (extensions.count("GL_ARB_debug_output") != 0) |
| { |
| ASSIGN("glDebugMessageCallbackARB", debugMessageCallback); |
| ASSIGN("glDebugMessageControlARB", debugMessageControl); |
| ASSIGN("glDebugMessageInsertARB", debugMessageInsert); |
| ASSIGN("glGetDebugMessageLogARB", getDebugMessageLog); |
| } |
| |
| if (extensions.count("GL_ARB_direct_state_access") != 0) |
| { |
| ASSIGN("glBindTextureUnit", bindTextureUnit); |
| ASSIGN("glBlitNamedFramebuffer", blitNamedFramebuffer); |
| ASSIGN("glCheckNamedFramebufferStatus", checkNamedFramebufferStatus); |
| ASSIGN("glClearNamedBufferData", clearNamedBufferData); |
| ASSIGN("glClearNamedBufferSubData", clearNamedBufferSubData); |
| ASSIGN("glClearNamedFramebufferfi", clearNamedFramebufferfi); |
| ASSIGN("glClearNamedFramebufferfv", clearNamedFramebufferfv); |
| ASSIGN("glClearNamedFramebufferiv", clearNamedFramebufferiv); |
| ASSIGN("glClearNamedFramebufferuiv", clearNamedFramebufferuiv); |
| ASSIGN("glCompressedTextureSubImage1D", compressedTextureSubImage1D); |
| ASSIGN("glCompressedTextureSubImage2D", compressedTextureSubImage2D); |
| ASSIGN("glCompressedTextureSubImage3D", compressedTextureSubImage3D); |
| ASSIGN("glCopyNamedBufferSubData", copyNamedBufferSubData); |
| ASSIGN("glCopyTextureSubImage1D", copyTextureSubImage1D); |
| ASSIGN("glCopyTextureSubImage2D", copyTextureSubImage2D); |
| ASSIGN("glCopyTextureSubImage3D", copyTextureSubImage3D); |
| ASSIGN("glCreateBuffers", createBuffers); |
| ASSIGN("glCreateFramebuffers", createFramebuffers); |
| ASSIGN("glCreateProgramPipelines", createProgramPipelines); |
| ASSIGN("glCreateQueries", createQueries); |
| ASSIGN("glCreateRenderbuffers", createRenderbuffers); |
| ASSIGN("glCreateSamplers", createSamplers); |
| ASSIGN("glCreateTextures", createTextures); |
| ASSIGN("glCreateTransformFeedbacks", createTransformFeedbacks); |
| ASSIGN("glCreateVertexArrays", createVertexArrays); |
| ASSIGN("glDisableVertexArrayAttrib", disableVertexArrayAttrib); |
| ASSIGN("glEnableVertexArrayAttrib", enableVertexArrayAttrib); |
| ASSIGN("glFlushMappedNamedBufferRange", flushMappedNamedBufferRange); |
| ASSIGN("glGenerateTextureMipmap", generateTextureMipmap); |
| ASSIGN("glGetCompressedTextureImage", getCompressedTextureImage); |
| ASSIGN("glGetNamedBufferParameteri64v", getNamedBufferParameteri64v); |
| ASSIGN("glGetNamedBufferParameteriv", getNamedBufferParameteriv); |
| ASSIGN("glGetNamedBufferPointerv", getNamedBufferPointerv); |
| ASSIGN("glGetNamedBufferSubData", getNamedBufferSubData); |
| ASSIGN("glGetNamedFramebufferAttachmentParameteriv", |
| getNamedFramebufferAttachmentParameteriv); |
| ASSIGN("glGetNamedFramebufferParameteriv", getNamedFramebufferParameteriv); |
| ASSIGN("glGetNamedRenderbufferParameteriv", getNamedRenderbufferParameteriv); |
| ASSIGN("glGetQueryBufferObjecti64v", getQueryBufferObjecti64v); |
| ASSIGN("glGetQueryBufferObjectiv", getQueryBufferObjectiv); |
| ASSIGN("glGetQueryBufferObjectui64v", getQueryBufferObjectui64v); |
| ASSIGN("glGetQueryBufferObjectuiv", getQueryBufferObjectuiv); |
| ASSIGN("glGetTextureImage", getTextureImage); |
| ASSIGN("glGetTextureLevelParameterfv", getTextureLevelParameterfv); |
| ASSIGN("glGetTextureLevelParameteriv", getTextureLevelParameteriv); |
| ASSIGN("glGetTextureParameterIiv", getTextureParameterIiv); |
| ASSIGN("glGetTextureParameterIuiv", getTextureParameterIuiv); |
| ASSIGN("glGetTextureParameterfv", getTextureParameterfv); |
| ASSIGN("glGetTextureParameteriv", getTextureParameteriv); |
| ASSIGN("glGetTransformFeedbacki64_v", getTransformFeedbacki64_v); |
| ASSIGN("glGetTransformFeedbacki_v", getTransformFeedbacki_v); |
| ASSIGN("glGetTransformFeedbackiv", getTransformFeedbackiv); |
| ASSIGN("glGetVertexArrayIndexed64iv", getVertexArrayIndexed64iv); |
| ASSIGN("glGetVertexArrayIndexediv", getVertexArrayIndexediv); |
| ASSIGN("glGetVertexArrayiv", getVertexArrayiv); |
| ASSIGN("glInvalidateNamedFramebufferData", invalidateNamedFramebufferData); |
| ASSIGN("glInvalidateNamedFramebufferSubData", invalidateNamedFramebufferSubData); |
| ASSIGN("glMapNamedBuffer", mapNamedBuffer); |
| ASSIGN("glMapNamedBufferRange", mapNamedBufferRange); |
| ASSIGN("glNamedBufferData", namedBufferData); |
| ASSIGN("glNamedBufferStorage", namedBufferStorage); |
| ASSIGN("glNamedBufferSubData", namedBufferSubData); |
| ASSIGN("glNamedFramebufferDrawBuffer", namedFramebufferDrawBuffer); |
| ASSIGN("glNamedFramebufferDrawBuffers", namedFramebufferDrawBuffers); |
| ASSIGN("glNamedFramebufferParameteri", namedFramebufferParameteri); |
| ASSIGN("glNamedFramebufferReadBuffer", namedFramebufferReadBuffer); |
| ASSIGN("glNamedFramebufferRenderbuffer", namedFramebufferRenderbuffer); |
| ASSIGN("glNamedFramebufferTexture", namedFramebufferTexture); |
| ASSIGN("glNamedFramebufferTextureLayer", namedFramebufferTextureLayer); |
| ASSIGN("glNamedRenderbufferStorage", namedRenderbufferStorage); |
| ASSIGN("glNamedRenderbufferStorageMultisample", namedRenderbufferStorageMultisample); |
| ASSIGN("glTextureBuffer", textureBuffer); |
| ASSIGN("glTextureBufferRange", textureBufferRange); |
| ASSIGN("glTextureParameterIiv", textureParameterIiv); |
| ASSIGN("glTextureParameterIuiv", textureParameterIuiv); |
| ASSIGN("glTextureParameterf", textureParameterf); |
| ASSIGN("glTextureParameterfv", textureParameterfv); |
| ASSIGN("glTextureParameteri", textureParameteri); |
| ASSIGN("glTextureParameteriv", textureParameteriv); |
| ASSIGN("glTextureStorage1D", textureStorage1D); |
| ASSIGN("glTextureStorage2D", textureStorage2D); |
| ASSIGN("glTextureStorage2DMultisample", textureStorage2DMultisample); |
| ASSIGN("glTextureStorage3D", textureStorage3D); |
| ASSIGN("glTextureStorage3DMultisample", textureStorage3DMultisample); |
| ASSIGN("glTextureSubImage1D", textureSubImage1D); |
| ASSIGN("glTextureSubImage2D", textureSubImage2D); |
| ASSIGN("glTextureSubImage3D", textureSubImage3D); |
| ASSIGN("glTransformFeedbackBufferBase", transformFeedbackBufferBase); |
| ASSIGN("glTransformFeedbackBufferRange", transformFeedbackBufferRange); |
| ASSIGN("glUnmapNamedBuffer", unmapNamedBuffer); |
| ASSIGN("glVertexArrayAttribBinding", vertexArrayAttribBinding); |
| ASSIGN("glVertexArrayAttribFormat", vertexArrayAttribFormat); |
| ASSIGN("glVertexArrayAttribIFormat", vertexArrayAttribIFormat); |
| ASSIGN("glVertexArrayAttribLFormat", vertexArrayAttribLFormat); |
| ASSIGN("glVertexArrayBindingDivisor", vertexArrayBindingDivisor); |
| ASSIGN("glVertexArrayElementBuffer", vertexArrayElementBuffer); |
| ASSIGN("glVertexArrayVertexBuffer", vertexArrayVertexBuffer); |
| ASSIGN("glVertexArrayVertexBuffers", vertexArrayVertexBuffers); |
| } |
| |
| if (extensions.count("GL_ARB_draw_buffers") != 0) |
| { |
| ASSIGN("glDrawBuffersARB", drawBuffers); |
| } |
| |
| if (extensions.count("GL_ARB_draw_buffers_blend") != 0) |
| { |
| ASSIGN("glBlendEquationSeparateiARB", blendEquationSeparatei); |
| ASSIGN("glBlendEquationiARB", blendEquationi); |
| ASSIGN("glBlendFuncSeparateiARB", blendFuncSeparatei); |
| ASSIGN("glBlendFunciARB", blendFunci); |
| } |
| |
| if (extensions.count("GL_ARB_draw_elements_base_vertex") != 0) |
| { |
| ASSIGN("glDrawElementsBaseVertex", drawElementsBaseVertex); |
| ASSIGN("glDrawElementsInstancedBaseVertex", drawElementsInstancedBaseVertex); |
| ASSIGN("glDrawRangeElementsBaseVertex", drawRangeElementsBaseVertex); |
| ASSIGN("glMultiDrawElementsBaseVertex", multiDrawElementsBaseVertex); |
| } |
| |
| if (extensions.count("GL_ARB_draw_indirect") != 0) |
| { |
| ASSIGN("glDrawArraysIndirect", drawArraysIndirect); |
| ASSIGN("glDrawElementsIndirect", drawElementsIndirect); |
| } |
| |
| if (extensions.count("GL_ARB_draw_instanced") != 0) |
| { |
| ASSIGN("glDrawArraysInstancedARB", drawArraysInstanced); |
| ASSIGN("glDrawElementsInstancedARB", drawElementsInstanced); |
| } |
| |
| if (extensions.count("GL_ARB_fragment_program") != 0) |
| { |
| ASSIGN("glGetProgramivARB", getProgramiv); |
| ASSIGN("glIsProgramARB", isProgram); |
| } |
| |
| if (extensions.count("GL_ARB_framebuffer_no_attachments") != 0) |
| { |
| ASSIGN("glFramebufferParameteri", framebufferParameteri); |
| ASSIGN("glGetFramebufferParameteriv", getFramebufferParameteriv); |
| } |
| |
| if (extensions.count("GL_ARB_framebuffer_object") != 0) |
| { |
| ASSIGN("glBindFramebuffer", bindFramebuffer); |
| ASSIGN("glBindRenderbuffer", bindRenderbuffer); |
| ASSIGN("glBlitFramebuffer", blitFramebuffer); |
| ASSIGN("glCheckFramebufferStatus", checkFramebufferStatus); |
| ASSIGN("glDeleteFramebuffers", deleteFramebuffers); |
| ASSIGN("glDeleteRenderbuffers", deleteRenderbuffers); |
| ASSIGN("glFramebufferRenderbuffer", framebufferRenderbuffer); |
| ASSIGN("glFramebufferTexture1D", framebufferTexture1D); |
| ASSIGN("glFramebufferTexture2D", framebufferTexture2D); |
| ASSIGN("glFramebufferTexture3D", framebufferTexture3D); |
| ASSIGN("glFramebufferTextureLayer", framebufferTextureLayer); |
| ASSIGN("glGenFramebuffers", genFramebuffers); |
| ASSIGN("glGenRenderbuffers", genRenderbuffers); |
| ASSIGN("glGenerateMipmap", generateMipmap); |
| ASSIGN("glGetFramebufferAttachmentParameteriv", getFramebufferAttachmentParameteriv); |
| ASSIGN("glGetRenderbufferParameteriv", getRenderbufferParameteriv); |
| ASSIGN("glIsFramebuffer", isFramebuffer); |
| ASSIGN("glIsRenderbuffer", isRenderbuffer); |
| ASSIGN("glRenderbufferStorage", renderbufferStorage); |
| ASSIGN("glRenderbufferStorageMultisample", renderbufferStorageMultisample); |
| } |
| |
| if (extensions.count("GL_ARB_geometry_shader4") != 0) |
| { |
| ASSIGN("glFramebufferTextureARB", framebufferTexture); |
| ASSIGN("glFramebufferTextureLayerARB", framebufferTextureLayer); |
| ASSIGN("glProgramParameteriARB", programParameteri); |
| } |
| |
| if (extensions.count("GL_ARB_get_program_binary") != 0) |
| { |
| ASSIGN("glGetProgramBinary", getProgramBinary); |
| ASSIGN("glProgramBinary", programBinary); |
| ASSIGN("glProgramParameteri", programParameteri); |
| } |
| |
| if (extensions.count("GL_ARB_get_texture_sub_image") != 0) |
| { |
| ASSIGN("glGetCompressedTextureSubImage", getCompressedTextureSubImage); |
| ASSIGN("glGetTextureSubImage", getTextureSubImage); |
| } |
| |
| if (extensions.count("GL_ARB_gpu_shader_fp64") != 0) |
| { |
| ASSIGN("glGetUniformdv", getUniformdv); |
| ASSIGN("glUniform1d", uniform1d); |
| ASSIGN("glUniform1dv", uniform1dv); |
| ASSIGN("glUniform2d", uniform2d); |
| ASSIGN("glUniform2dv", uniform2dv); |
| ASSIGN("glUniform3d", uniform3d); |
| ASSIGN("glUniform3dv", uniform3dv); |
| ASSIGN("glUniform4d", uniform4d); |
| ASSIGN("glUniform4dv", uniform4dv); |
| ASSIGN("glUniformMatrix2dv", uniformMatrix2dv); |
| ASSIGN("glUniformMatrix2x3dv", uniformMatrix2x3dv); |
| ASSIGN("glUniformMatrix2x4dv", uniformMatrix2x4dv); |
| ASSIGN("glUniformMatrix3dv", uniformMatrix3dv); |
| ASSIGN("glUniformMatrix3x2dv", uniformMatrix3x2dv); |
| ASSIGN("glUniformMatrix3x4dv", uniformMatrix3x4dv); |
| ASSIGN("glUniformMatrix4dv", uniformMatrix4dv); |
| ASSIGN("glUniformMatrix4x2dv", uniformMatrix4x2dv); |
| ASSIGN("glUniformMatrix4x3dv", uniformMatrix4x3dv); |
| } |
| |
| if (extensions.count("GL_ARB_imaging") != 0) |
| { |
| ASSIGN("glBlendColor", blendColor); |
| ASSIGN("glBlendEquation", blendEquation); |
| } |
| |
| if (extensions.count("GL_ARB_instanced_arrays") != 0) |
| { |
| ASSIGN("glVertexAttribDivisorARB", vertexAttribDivisor); |
| } |
| |
| if (extensions.count("GL_ARB_internalformat_query") != 0) |
| { |
| ASSIGN("glGetInternalformativ", getInternalformativ); |
| } |
| |
| if (extensions.count("GL_ARB_internalformat_query2") != 0) |
| { |
| ASSIGN("glGetInternalformati64v", getInternalformati64v); |
| } |
| |
| if (extensions.count("GL_ARB_invalidate_subdata") != 0) |
| { |
| ASSIGN("glInvalidateBufferData", invalidateBufferData); |
| ASSIGN("glInvalidateBufferSubData", invalidateBufferSubData); |
| ASSIGN("glInvalidateFramebuffer", invalidateFramebuffer); |
| ASSIGN("glInvalidateSubFramebuffer", invalidateSubFramebuffer); |
| ASSIGN("glInvalidateTexImage", invalidateTexImage); |
| ASSIGN("glInvalidateTexSubImage", invalidateTexSubImage); |
| } |
| |
| if (extensions.count("GL_ARB_map_buffer_range") != 0) |
| { |
| ASSIGN("glFlushMappedBufferRange", flushMappedBufferRange); |
| ASSIGN("glMapBufferRange", mapBufferRange); |
| } |
| |
| if (extensions.count("GL_ARB_multi_bind") != 0) |
| { |
| ASSIGN("glBindBuffersBase", bindBuffersBase); |
| ASSIGN("glBindBuffersRange", bindBuffersRange); |
| ASSIGN("glBindImageTextures", bindImageTextures); |
| ASSIGN("glBindSamplers", bindSamplers); |
| ASSIGN("glBindTextures", bindTextures); |
| ASSIGN("glBindVertexBuffers", bindVertexBuffers); |
| } |
| |
| if (extensions.count("GL_ARB_multi_draw_indirect") != 0) |
| { |
| ASSIGN("glMultiDrawArraysIndirect", multiDrawArraysIndirect); |
| ASSIGN("glMultiDrawElementsIndirect", multiDrawElementsIndirect); |
| } |
| |
| if (extensions.count("GL_ARB_multisample") != 0) |
| { |
| ASSIGN("glSampleCoverageARB", sampleCoverage); |
| } |
| |
| if (extensions.count("GL_ARB_multitexture") != 0) |
| { |
| ASSIGN("glActiveTextureARB", activeTexture); |
| } |
| |
| if (extensions.count("GL_ARB_occlusion_query") != 0) |
| { |
| ASSIGN("glBeginQueryARB", beginQuery); |
| ASSIGN("glDeleteQueriesARB", deleteQueries); |
| ASSIGN("glEndQueryARB", endQuery); |
| ASSIGN("glGenQueriesARB", genQueries); |
| ASSIGN("glGetQueryObjectivARB", getQueryObjectiv); |
| ASSIGN("glGetQueryObjectuivARB", getQueryObjectuiv); |
| ASSIGN("glGetQueryivARB", getQueryiv); |
| ASSIGN("glIsQueryARB", isQuery); |
| } |
| |
| if (extensions.count("GL_ARB_parallel_shader_compile") != 0) |
| { |
| ASSIGN("glMaxShaderCompilerThreadsARB", maxShaderCompilerThreadsARB); |
| } |
| |
| if (extensions.count("GL_ARB_point_parameters") != 0) |
| { |
| ASSIGN("glPointParameterfARB", pointParameterf); |
| ASSIGN("glPointParameterfvARB", pointParameterfv); |
| } |
| |
| if (extensions.count("GL_ARB_program_interface_query") != 0) |
| { |
| ASSIGN("glGetProgramInterfaceiv", getProgramInterfaceiv); |
| ASSIGN("glGetProgramResourceIndex", getProgramResourceIndex); |
| ASSIGN("glGetProgramResourceLocation", getProgramResourceLocation); |
| ASSIGN("glGetProgramResourceLocationIndex", getProgramResourceLocationIndex); |
| ASSIGN("glGetProgramResourceName", getProgramResourceName); |
| ASSIGN("glGetProgramResourceiv", getProgramResourceiv); |
| } |
| |
| if (extensions.count("GL_ARB_provoking_vertex") != 0) |
| { |
| ASSIGN("glProvokingVertex", provokingVertex); |
| } |
| |
| if (extensions.count("GL_ARB_robustness") != 0) |
| { |
| ASSIGN("glGetGraphicsResetStatusARB", getGraphicsResetStatus); |
| ASSIGN("glGetnCompressedTexImageARB", getnCompressedTexImage); |
| ASSIGN("glGetnTexImageARB", getnTexImage); |
| ASSIGN("glGetnUniformdvARB", getnUniformdv); |
| ASSIGN("glGetnUniformfvARB", getnUniformfv); |
| ASSIGN("glGetnUniformivARB", getnUniformiv); |
| ASSIGN("glGetnUniformuivARB", getnUniformuiv); |
| ASSIGN("glReadnPixelsARB", readnPixels); |
| } |
| |
| if (extensions.count("GL_ARB_sample_shading") != 0) |
| { |
| ASSIGN("glMinSampleShadingARB", minSampleShading); |
| } |
| |
| if (extensions.count("GL_ARB_sampler_objects") != 0) |
| { |
| ASSIGN("glBindSampler", bindSampler); |
| ASSIGN("glDeleteSamplers", deleteSamplers); |
| ASSIGN("glGenSamplers", genSamplers); |
| ASSIGN("glGetSamplerParameterIiv", getSamplerParameterIiv); |
| ASSIGN("glGetSamplerParameterIuiv", getSamplerParameterIuiv); |
| ASSIGN("glGetSamplerParameterfv", getSamplerParameterfv); |
| ASSIGN("glGetSamplerParameteriv", getSamplerParameteriv); |
| ASSIGN("glIsSampler", isSampler); |
| ASSIGN("glSamplerParameterIiv", samplerParameterIiv); |
| ASSIGN("glSamplerParameterIuiv", samplerParameterIuiv); |
| ASSIGN("glSamplerParameterf", samplerParameterf); |
| ASSIGN("glSamplerParameterfv", samplerParameterfv); |
| ASSIGN("glSamplerParameteri", samplerParameteri); |
| ASSIGN("glSamplerParameteriv", samplerParameteriv); |
| } |
| |
| if (extensions.count("GL_ARB_separate_shader_objects") != 0) |
| { |
| ASSIGN("glActiveShaderProgram", activeShaderProgram); |
| ASSIGN("glBindProgramPipeline", bindProgramPipeline); |
| ASSIGN("glCreateShaderProgramv", createShaderProgramv); |
| ASSIGN("glDeleteProgramPipelines", deleteProgramPipelines); |
| ASSIGN("glGenProgramPipelines", genProgramPipelines); |
| ASSIGN("glGetProgramPipelineInfoLog", getProgramPipelineInfoLog); |
| ASSIGN("glGetProgramPipelineiv", getProgramPipelineiv); |
| ASSIGN("glIsProgramPipeline", isProgramPipeline); |
| ASSIGN("glProgramParameteri", programParameteri); |
| ASSIGN("glProgramUniform1d", programUniform1d); |
| ASSIGN("glProgramUniform1dv", programUniform1dv); |
| ASSIGN("glProgramUniform1f", programUniform1f); |
| ASSIGN("glProgramUniform1fv", programUniform1fv); |
| ASSIGN("glProgramUniform1i", programUniform1i); |
| ASSIGN("glProgramUniform1iv", programUniform1iv); |
| ASSIGN("glProgramUniform1ui", programUniform1ui); |
| ASSIGN("glProgramUniform1uiv", programUniform1uiv); |
| ASSIGN("glProgramUniform2d", programUniform2d); |
| ASSIGN("glProgramUniform2dv", programUniform2dv); |
| ASSIGN("glProgramUniform2f", programUniform2f); |
| ASSIGN("glProgramUniform2fv", programUniform2fv); |
| ASSIGN("glProgramUniform2i", programUniform2i); |
| ASSIGN("glProgramUniform2iv", programUniform2iv); |
| ASSIGN("glProgramUniform2ui", programUniform2ui); |
| ASSIGN("glProgramUniform2uiv", programUniform2uiv); |
| ASSIGN("glProgramUniform3d", programUniform3d); |
| ASSIGN("glProgramUniform3dv", programUniform3dv); |
| ASSIGN("glProgramUniform3f", programUniform3f); |
| ASSIGN("glProgramUniform3fv", programUniform3fv); |
| ASSIGN("glProgramUniform3i", programUniform3i); |
| ASSIGN("glProgramUniform3iv", programUniform3iv); |
| ASSIGN("glProgramUniform3ui", programUniform3ui); |
| ASSIGN("glProgramUniform3uiv", programUniform3uiv); |
| ASSIGN("glProgramUniform4d", programUniform4d); |
| ASSIGN("glProgramUniform4dv", programUniform4dv); |
| ASSIGN("glProgramUniform4f", programUniform4f); |
| ASSIGN("glProgramUniform4fv", programUniform4fv); |
| ASSIGN("glProgramUniform4i", programUniform4i); |
| ASSIGN("glProgramUniform4iv", programUniform4iv); |
| ASSIGN("glProgramUniform4ui", programUniform4ui); |
| ASSIGN("glProgramUniform4uiv", programUniform4uiv); |
| ASSIGN("glProgramUniformMatrix2dv", programUniformMatrix2dv); |
| ASSIGN("glProgramUniformMatrix2fv", programUniformMatrix2fv); |
| ASSIGN("glProgramUniformMatrix2x3dv", programUniformMatrix2x3dv); |
| ASSIGN("glProgramUniformMatrix2x3fv", programUniformMatrix2x3fv); |
| ASSIGN("glProgramUniformMatrix2x4dv", programUniformMatrix2x4dv); |
| ASSIGN("glProgramUniformMatrix2x4fv", programUniformMatrix2x4fv); |
| ASSIGN("glProgramUniformMatrix3dv", programUniformMatrix3dv); |
| ASSIGN("glProgramUniformMatrix3fv", programUniformMatrix3fv); |
| ASSIGN("glProgramUniformMatrix3x2dv", programUniformMatrix3x2dv); |
| ASSIGN("glProgramUniformMatrix3x2fv", programUniformMatrix3x2fv); |
| ASSIGN("glProgramUniformMatrix3x4dv", programUniformMatrix3x4dv); |
| ASSIGN("glProgramUniformMatrix3x4fv", programUniformMatrix3x4fv); |
| ASSIGN("glProgramUniformMatrix4dv", programUniformMatrix4dv); |
| ASSIGN("glProgramUniformMatrix4fv", programUniformMatrix4fv); |
| ASSIGN("glProgramUniformMatrix4x2dv", programUniformMatrix4x2dv); |
| ASSIGN("glProgramUniformMatrix4x2fv", programUniformMatrix4x2fv); |
| ASSIGN("glProgramUniformMatrix4x3dv", programUniformMatrix4x3dv); |
| ASSIGN("glProgramUniformMatrix4x3fv", programUniformMatrix4x3fv); |
| ASSIGN("glUseProgramStages", useProgramStages); |
| ASSIGN("glValidateProgramPipeline", validateProgramPipeline); |
| } |
| |
| if (extensions.count("GL_ARB_shader_atomic_counters") != 0) |
| { |
| ASSIGN("glGetActiveAtomicCounterBufferiv", getActiveAtomicCounterBufferiv); |
| } |
| |
| if (extensions.count("GL_ARB_shader_image_load_store") != 0) |
| { |
| ASSIGN("glBindImageTexture", bindImageTexture); |
| ASSIGN("glMemoryBarrier", memoryBarrier); |
| } |
| |
| if (extensions.count("GL_ARB_shader_objects") != 0) |
| { |
| ASSIGN("glCompileShaderARB", compileShader); |
| ASSIGN("glGetActiveUniformARB", getActiveUniform); |
| ASSIGN("glGetShaderSourceARB", getShaderSource); |
| ASSIGN("glGetUniformLocationARB", getUniformLocation); |
| ASSIGN("glGetUniformfvARB", getUniformfv); |
| ASSIGN("glGetUniformivARB", getUniformiv); |
| ASSIGN("glLinkProgramARB", linkProgram); |
| ASSIGN("glShaderSourceARB", shaderSource); |
| ASSIGN("glUniform1fARB", uniform1f); |
| ASSIGN("glUniform1fvARB", uniform1fv); |
| ASSIGN("glUniform1iARB", uniform1i); |
| ASSIGN("glUniform1ivARB", uniform1iv); |
| ASSIGN("glUniform2fARB", uniform2f); |
| ASSIGN("glUniform2fvARB", uniform2fv); |
| ASSIGN("glUniform2iARB", uniform2i); |
| ASSIGN("glUniform2ivARB", uniform2iv); |
| ASSIGN("glUniform3fARB", uniform3f); |
| ASSIGN("glUniform3fvARB", uniform3fv); |
| ASSIGN("glUniform3iARB", uniform3i); |
| ASSIGN("glUniform3ivARB", uniform3iv); |
| ASSIGN("glUniform4fARB", uniform4f); |
| ASSIGN("glUniform4fvARB", uniform4fv); |
| ASSIGN("glUniform4iARB", uniform4i); |
| ASSIGN("glUniform4ivARB", uniform4iv); |
| ASSIGN("glUniformMatrix2fvARB", uniformMatrix2fv); |
| ASSIGN("glUniformMatrix3fvARB", uniformMatrix3fv); |
| ASSIGN("glUniformMatrix4fvARB", uniformMatrix4fv); |
| ASSIGN("glValidateProgramARB", validateProgram); |
| } |
| |
| if (extensions.count("GL_ARB_shader_storage_buffer_object") != 0) |
| { |
| ASSIGN("glShaderStorageBlockBinding", shaderStorageBlockBinding); |
| } |
| |
| if (extensions.count("GL_ARB_shader_subroutine") != 0) |
| { |
| ASSIGN("glGetActiveSubroutineName", getActiveSubroutineName); |
| ASSIGN("glGetActiveSubroutineUniformName", getActiveSubroutineUniformName); |
| ASSIGN("glGetActiveSubroutineUniformiv", getActiveSubroutineUniformiv); |
| ASSIGN("glGetProgramStageiv", getProgramStageiv); |
| ASSIGN("glGetSubroutineIndex", getSubroutineIndex); |
| ASSIGN("glGetSubroutineUniformLocation", getSubroutineUniformLocation); |
| ASSIGN("glGetUniformSubroutineuiv", getUniformSubroutineuiv); |
| ASSIGN("glUniformSubroutinesuiv", uniformSubroutinesuiv); |
| } |
| |
| if (extensions.count("GL_ARB_sync") != 0) |
| { |
| ASSIGN("glClientWaitSync", clientWaitSync); |
| ASSIGN("glDeleteSync", deleteSync); |
| ASSIGN("glFenceSync", fenceSync); |
| ASSIGN("glGetInteger64v", getInteger64v); |
| ASSIGN("glGetSynciv", getSynciv); |
| ASSIGN("glIsSync", isSync); |
| ASSIGN("glWaitSync", waitSync); |
| } |
| |
| if (extensions.count("GL_ARB_tessellation_shader") != 0) |
| { |
| ASSIGN("glPatchParameterfv", patchParameterfv); |
| ASSIGN("glPatchParameteri", patchParameteri); |
| } |
| |
| if (extensions.count("GL_ARB_texture_barrier") != 0) |
| { |
| ASSIGN("glTextureBarrier", textureBarrier); |
| } |
| |
| if (extensions.count("GL_ARB_texture_buffer_object") != 0) |
| { |
| ASSIGN("glTexBufferARB", texBuffer); |
| } |
| |
| if (extensions.count("GL_ARB_texture_buffer_range") != 0) |
| { |
| ASSIGN("glTexBufferRange", texBufferRange); |
| } |
| |
| if (extensions.count("GL_ARB_texture_compression") != 0) |
| { |
| ASSIGN("glCompressedTexImage1DARB", compressedTexImage1D); |
| ASSIGN("glCompressedTexImage2DARB", compressedTexImage2D); |
| ASSIGN("glCompressedTexImage3DARB", compressedTexImage3D); |
| ASSIGN("glCompressedTexSubImage1DARB", compressedTexSubImage1D); |
| ASSIGN("glCompressedTexSubImage2DARB", compressedTexSubImage2D); |
| ASSIGN("glCompressedTexSubImage3DARB", compressedTexSubImage3D); |
| ASSIGN("glGetCompressedTexImageARB", getCompressedTexImage); |
| } |
| |
| if (extensions.count("GL_ARB_texture_multisample") != 0) |
| { |
| ASSIGN("glGetMultisamplefv", getMultisamplefv); |
| ASSIGN("glSampleMaski", sampleMaski); |
| ASSIGN("glTexImage2DMultisample", texImage2DMultisample); |
| ASSIGN("glTexImage3DMultisample", texImage3DMultisample); |
| } |
| |
| if (extensions.count("GL_ARB_texture_storage") != 0) |
| { |
| ASSIGN("glTexStorage1D", texStorage1D); |
| ASSIGN("glTexStorage2D", texStorage2D); |
| ASSIGN("glTexStorage3D", texStorage3D); |
| } |
| |
| if (extensions.count("GL_ARB_texture_storage_multisample") != 0) |
| { |
| ASSIGN("glTexStorage2DMultisample", texStorage2DMultisample); |
| ASSIGN("glTexStorage3DMultisample", texStorage3DMultisample); |
| } |
| |
| if (extensions.count("GL_ARB_texture_view") != 0) |
| { |
| ASSIGN("glTextureView", textureView); |
| } |
| |
| if (extensions.count("GL_ARB_timer_query") != 0) |
| { |
| ASSIGN("glGetQueryObjecti64v", getQueryObjecti64v); |
| ASSIGN("glGetQueryObjectui64v", getQueryObjectui64v); |
| ASSIGN("glQueryCounter", queryCounter); |
| } |
| |
| if (extensions.count("GL_ARB_transform_feedback2") != 0) |
| { |
| ASSIGN("glBindTransformFeedback", bindTransformFeedback); |
| ASSIGN("glDeleteTransformFeedbacks", deleteTransformFeedbacks); |
| ASSIGN("glDrawTransformFeedback", drawTransformFeedback); |
| ASSIGN("glGenTransformFeedbacks", genTransformFeedbacks); |
| ASSIGN("glIsTransformFeedback", isTransformFeedback); |
| ASSIGN("glPauseTransformFeedback", pauseTransformFeedback); |
| ASSIGN("glResumeTransformFeedback", resumeTransformFeedback); |
| } |
| |
| if (extensions.count("GL_ARB_transform_feedback3") != 0) |
| { |
| ASSIGN("glBeginQueryIndexed", beginQueryIndexed); |
| ASSIGN("glDrawTransformFeedbackStream", drawTransformFeedbackStream); |
| ASSIGN("glEndQueryIndexed", endQueryIndexed); |
| ASSIGN("glGetQueryIndexediv", getQueryIndexediv); |
| } |
| |
| if (extensions.count("GL_ARB_transform_feedback_instanced") != 0) |
| { |
| ASSIGN("glDrawTransformFeedbackInstanced", drawTransformFeedbackInstanced); |
| ASSIGN("glDrawTransformFeedbackStreamInstanced", drawTransformFeedbackStreamInstanced); |
| } |
| |
| if (extensions.count("GL_ARB_uniform_buffer_object") != 0) |
| { |
| ASSIGN("glBindBufferBase", bindBufferBase); |
| ASSIGN("glBindBufferRange", bindBufferRange); |
| ASSIGN("glGetActiveUniformBlockName", getActiveUniformBlockName); |
| ASSIGN("glGetActiveUniformBlockiv", getActiveUniformBlockiv); |
| ASSIGN("glGetActiveUniformName", getActiveUniformName); |
| ASSIGN("glGetActiveUniformsiv", getActiveUniformsiv); |
| ASSIGN("glGetIntegeri_v", getIntegeri_v); |
| ASSIGN("glGetUniformBlockIndex", getUniformBlockIndex); |
| ASSIGN("glGetUniformIndices", getUniformIndices); |
| ASSIGN("glUniformBlockBinding", uniformBlockBinding); |
| } |
| |
| if (extensions.count("GL_ARB_vertex_array_object") != 0) |
| { |
| ASSIGN("glBindVertexArray", bindVertexArray); |
| ASSIGN("glDeleteVertexArrays", deleteVertexArrays); |
| ASSIGN("glGenVertexArrays", genVertexArrays); |
| ASSIGN("glIsVertexArray", isVertexArray); |
| } |
| |
| if (extensions.count("GL_ARB_vertex_attrib_64bit") != 0) |
| { |
| ASSIGN("glGetVertexAttribLdv", getVertexAttribLdv); |
| ASSIGN("glVertexAttribL1d", vertexAttribL1d); |
| ASSIGN("glVertexAttribL1dv", vertexAttribL1dv); |
| ASSIGN("glVertexAttribL2d", vertexAttribL2d); |
| ASSIGN("glVertexAttribL2dv", vertexAttribL2dv); |
| ASSIGN("glVertexAttribL3d", vertexAttribL3d); |
| ASSIGN("glVertexAttribL3dv", vertexAttribL3dv); |
| ASSIGN("glVertexAttribL4d", vertexAttribL4d); |
| ASSIGN("glVertexAttribL4dv", vertexAttribL4dv); |
| ASSIGN("glVertexAttribLPointer", vertexAttribLPointer); |
| } |
| |
| if (extensions.count("GL_ARB_vertex_attrib_binding") != 0) |
| { |
| ASSIGN("glBindVertexBuffer", bindVertexBuffer); |
| ASSIGN("glVertexAttribBinding", vertexAttribBinding); |
| ASSIGN("glVertexAttribFormat", vertexAttribFormat); |
| ASSIGN("glVertexAttribIFormat", vertexAttribIFormat); |
| ASSIGN("glVertexAttribLFormat", vertexAttribLFormat); |
| ASSIGN("glVertexBindingDivisor", vertexBindingDivisor); |
| } |
| |
| if (extensions.count("GL_ARB_vertex_buffer_object") != 0) |
| { |
| ASSIGN("glBindBufferARB", bindBuffer); |
| ASSIGN("glBufferDataARB", bufferData); |
| ASSIGN("glBufferSubDataARB", bufferSubData); |
| ASSIGN("glDeleteBuffersARB", deleteBuffers); |
| ASSIGN("glGenBuffersARB", genBuffers); |
| ASSIGN("glGetBufferParameterivARB", getBufferParameteriv); |
| ASSIGN("glGetBufferPointervARB", getBufferPointerv); |
| ASSIGN("glGetBufferSubDataARB", getBufferSubData); |
| ASSIGN("glIsBufferARB", isBuffer); |
| ASSIGN("glMapBufferARB", mapBuffer); |
| ASSIGN("glUnmapBufferARB", unmapBuffer); |
| } |
| |
| if (extensions.count("GL_ARB_vertex_program") != 0) |
| { |
| ASSIGN("glDisableVertexAttribArrayARB", disableVertexAttribArray); |
| ASSIGN("glEnableVertexAttribArrayARB", enableVertexAttribArray); |
| ASSIGN("glGetProgramivARB", getProgramiv); |
| ASSIGN("glGetVertexAttribPointervARB", getVertexAttribPointerv); |
| ASSIGN("glGetVertexAttribdvARB", getVertexAttribdv); |
| ASSIGN("glGetVertexAttribfvARB", getVertexAttribfv); |
| ASSIGN("glGetVertexAttribivARB", getVertexAttribiv); |
| ASSIGN("glIsProgramARB", isProgram); |
| ASSIGN("glVertexAttrib1dARB", vertexAttrib1d); |
| ASSIGN("glVertexAttrib1dvARB", vertexAttrib1dv); |
| ASSIGN("glVertexAttrib1fARB", vertexAttrib1f); |
| ASSIGN("glVertexAttrib1fvARB", vertexAttrib1fv); |
| ASSIGN("glVertexAttrib1sARB", vertexAttrib1s); |
| ASSIGN("glVertexAttrib1svARB", vertexAttrib1sv); |
| ASSIGN("glVertexAttrib2dARB", vertexAttrib2d); |
| ASSIGN("glVertexAttrib2dvARB", vertexAttrib2dv); |
| ASSIGN("glVertexAttrib2fARB", vertexAttrib2f); |
| ASSIGN("glVertexAttrib2fvARB", vertexAttrib2fv); |
| ASSIGN("glVertexAttrib2sARB", vertexAttrib2s); |
| ASSIGN("glVertexAttrib2svARB", vertexAttrib2sv); |
| ASSIGN("glVertexAttrib3dARB", vertexAttrib3d); |
| ASSIGN("glVertexAttrib3dvARB", vertexAttrib3dv); |
| ASSIGN("glVertexAttrib3fARB", vertexAttrib3f); |
| ASSIGN("glVertexAttrib3fvARB", vertexAttrib3fv); |
| ASSIGN("glVertexAttrib3sARB", vertexAttrib3s); |
| ASSIGN("glVertexAttrib3svARB", vertexAttrib3sv); |
| ASSIGN("glVertexAttrib4NbvARB", vertexAttrib4Nbv); |
| ASSIGN("glVertexAttrib4NivARB", vertexAttrib4Niv); |
| ASSIGN("glVertexAttrib4NsvARB", vertexAttrib4Nsv); |
| ASSIGN("glVertexAttrib4NubARB", vertexAttrib4Nub); |
| ASSIGN("glVertexAttrib4NubvARB", vertexAttrib4Nubv); |
| ASSIGN("glVertexAttrib4NuivARB", vertexAttrib4Nuiv); |
| ASSIGN("glVertexAttrib4NusvARB", vertexAttrib4Nusv); |
| ASSIGN("glVertexAttrib4bvARB", vertexAttrib4bv); |
| ASSIGN("glVertexAttrib4dARB", vertexAttrib4d); |
| ASSIGN("glVertexAttrib4dvARB", vertexAttrib4dv); |
| ASSIGN("glVertexAttrib4fARB", vertexAttrib4f); |
| ASSIGN("glVertexAttrib4fvARB", vertexAttrib4fv); |
| ASSIGN("glVertexAttrib4ivARB", vertexAttrib4iv); |
| ASSIGN("glVertexAttrib4sARB", vertexAttrib4s); |
| ASSIGN("glVertexAttrib4svARB", vertexAttrib4sv); |
| ASSIGN("glVertexAttrib4ubvARB", vertexAttrib4ubv); |
| ASSIGN("glVertexAttrib4uivARB", vertexAttrib4uiv); |
| ASSIGN("glVertexAttrib4usvARB", vertexAttrib4usv); |
| ASSIGN("glVertexAttribPointerARB", vertexAttribPointer); |
| } |
| |
| if (extensions.count("GL_ARB_vertex_shader") != 0) |
| { |
| ASSIGN("glBindAttribLocationARB", bindAttribLocation); |
| ASSIGN("glDisableVertexAttribArrayARB", disableVertexAttribArray); |
| ASSIGN("glEnableVertexAttribArrayARB", enableVertexAttribArray); |
| ASSIGN("glGetActiveAttribARB", getActiveAttrib); |
| ASSIGN("glGetAttribLocationARB", getAttribLocation); |
| ASSIGN("glGetVertexAttribPointervARB", getVertexAttribPointerv); |
| ASSIGN("glGetVertexAttribdvARB", getVertexAttribdv); |
| ASSIGN("glGetVertexAttribfvARB", getVertexAttribfv); |
| ASSIGN("glGetVertexAttribivARB", getVertexAttribiv); |
| ASSIGN("glVertexAttrib1dARB", vertexAttrib1d); |
| ASSIGN("glVertexAttrib1dvARB", vertexAttrib1dv); |
| ASSIGN("glVertexAttrib1fARB", vertexAttrib1f); |
| ASSIGN("glVertexAttrib1fvARB", vertexAttrib1fv); |
| ASSIGN("glVertexAttrib1sARB", vertexAttrib1s); |
| ASSIGN("glVertexAttrib1svARB", vertexAttrib1sv); |
| ASSIGN("glVertexAttrib2dARB", vertexAttrib2d); |
| ASSIGN("glVertexAttrib2dvARB", vertexAttrib2dv); |
| ASSIGN("glVertexAttrib2fARB", vertexAttrib2f); |
| ASSIGN("glVertexAttrib2fvARB", vertexAttrib2fv); |
| ASSIGN("glVertexAttrib2sARB", vertexAttrib2s); |
| ASSIGN("glVertexAttrib2svARB", vertexAttrib2sv); |
| ASSIGN("glVertexAttrib3dARB", vertexAttrib3d); |
| ASSIGN("glVertexAttrib3dvARB", vertexAttrib3dv); |
| ASSIGN("glVertexAttrib3fARB", vertexAttrib3f); |
| ASSIGN("glVertexAttrib3fvARB", vertexAttrib3fv); |
| ASSIGN("glVertexAttrib3sARB", vertexAttrib3s); |
| ASSIGN("glVertexAttrib3svARB", vertexAttrib3sv); |
| ASSIGN("glVertexAttrib4NbvARB", vertexAttrib4Nbv); |
| ASSIGN("glVertexAttrib4NivARB", vertexAttrib4Niv); |
| ASSIGN("glVertexAttrib4NsvARB", vertexAttrib4Nsv); |
| ASSIGN("glVertexAttrib4NubARB", vertexAttrib4Nub); |
| ASSIGN("glVertexAttrib4NubvARB", vertexAttrib4Nubv); |
| ASSIGN("glVertexAttrib4NuivARB", vertexAttrib4Nuiv); |
| ASSIGN("glVertexAttrib4NusvARB", vertexAttrib4Nusv); |
| ASSIGN("glVertexAttrib4bvARB", vertexAttrib4bv); |
| ASSIGN("glVertexAttrib4dARB", vertexAttrib4d); |
| ASSIGN("glVertexAttrib4dvARB", vertexAttrib4dv); |
| ASSIGN("glVertexAttrib4fARB", vertexAttrib4f); |
| ASSIGN("glVertexAttrib4fvARB", vertexAttrib4fv); |
| ASSIGN("glVertexAttrib4ivARB", vertexAttrib4iv); |
| ASSIGN("glVertexAttrib4sARB", vertexAttrib4s); |
| ASSIGN("glVertexAttrib4svARB", vertexAttrib4sv); |
| ASSIGN("glVertexAttrib4ubvARB", vertexAttrib4ubv); |
| ASSIGN("glVertexAttrib4uivARB", vertexAttrib4uiv); |
| ASSIGN("glVertexAttrib4usvARB", vertexAttrib4usv); |
| ASSIGN("glVertexAttribPointerARB", vertexAttribPointer); |
| } |
| |
| if (extensions.count("GL_ARB_vertex_type_2_10_10_10_rev") != 0) |
| { |
| ASSIGN("glVertexAttribP1ui", vertexAttribP1ui); |
| ASSIGN("glVertexAttribP1uiv", vertexAttribP1uiv); |
| ASSIGN("glVertexAttribP2ui", vertexAttribP2ui); |
| ASSIGN("glVertexAttribP2uiv", vertexAttribP2uiv); |
| ASSIGN("glVertexAttribP3ui", vertexAttribP3ui); |
| ASSIGN("glVertexAttribP3uiv", vertexAttribP3uiv); |
| ASSIGN("glVertexAttribP4ui", vertexAttribP4ui); |
| ASSIGN("glVertexAttribP4uiv", vertexAttribP4uiv); |
| } |
| |
| if (extensions.count("GL_ARB_viewport_array") != 0) |
| { |
| ASSIGN("glDepthRangeArrayv", depthRangeArrayv); |
| ASSIGN("glDepthRangeIndexed", depthRangeIndexed); |
| ASSIGN("glGetDoublei_v", getDoublei_v); |
| ASSIGN("glGetFloati_v", getFloati_v); |
| ASSIGN("glScissorArrayv", scissorArrayv); |
| ASSIGN("glScissorIndexed", scissorIndexed); |
| ASSIGN("glScissorIndexedv", scissorIndexedv); |
| ASSIGN("glViewportArrayv", viewportArrayv); |
| ASSIGN("glViewportIndexedf", viewportIndexedf); |
| ASSIGN("glViewportIndexedfv", viewportIndexedfv); |
| } |
| |
| if (extensions.count("GL_EXT_blend_color") != 0) |
| { |
| ASSIGN("glBlendColorEXT", blendColor); |
| } |
| |
| if (extensions.count("GL_EXT_blend_equation_separate") != 0) |
| { |
| ASSIGN("glBlendEquationSeparateEXT", blendEquationSeparate); |
| } |
| |
| if (extensions.count("GL_EXT_blend_func_separate") != 0) |
| { |
| ASSIGN("glBlendFuncSeparateEXT", blendFuncSeparate); |
| } |
| |
| if (extensions.count("GL_EXT_copy_texture") != 0) |
| { |
| ASSIGN("glCopyTexImage1DEXT", copyTexImage1D); |
| ASSIGN("glCopyTexImage2DEXT", copyTexImage2D); |
| ASSIGN("glCopyTexSubImage1DEXT", copyTexSubImage1D); |
| ASSIGN("glCopyTexSubImage2DEXT", copyTexSubImage2D); |
| ASSIGN("glCopyTexSubImage3DEXT", copyTexSubImage3D); |
| } |
| |
| if (extensions.count("GL_EXT_direct_state_access") != 0) |
| { |
| ASSIGN("glCheckNamedFramebufferStatusEXT", checkNamedFramebufferStatus); |
| ASSIGN("glClearNamedBufferDataEXT", clearNamedBufferData); |
| ASSIGN("glClearNamedBufferSubDataEXT", clearNamedBufferSubData); |
| ASSIGN("glCompressedTextureSubImage1DEXT", compressedTextureSubImage1D); |
| ASSIGN("glCompressedTextureSubImage2DEXT", compressedTextureSubImage2D); |
| ASSIGN("glCompressedTextureSubImage3DEXT", compressedTextureSubImage3D); |
| ASSIGN("glCopyTextureSubImage1DEXT", copyTextureSubImage1D); |
| ASSIGN("glCopyTextureSubImage2DEXT", copyTextureSubImage2D); |
| ASSIGN("glCopyTextureSubImage3DEXT", copyTextureSubImage3D); |
| ASSIGN("glDisableVertexArrayAttribEXT", disableVertexArrayAttrib); |
| ASSIGN("glEnableVertexArrayAttribEXT", enableVertexArrayAttrib); |
| ASSIGN("glFlushMappedNamedBufferRangeEXT", flushMappedNamedBufferRange); |
| ASSIGN("glGenerateTextureMipmapEXT", generateTextureMipmap); |
| ASSIGN("glGetCompressedTextureImageEXT", getCompressedTextureImage); |
| ASSIGN("glGetDoublei_vEXT", getDoublei_v); |
| ASSIGN("glGetFloati_vEXT", getFloati_v); |
| ASSIGN("glGetFramebufferParameterivEXT", getFramebufferParameteriv); |
| ASSIGN("glGetNamedBufferParameterivEXT", getNamedBufferParameteriv); |
| ASSIGN("glGetNamedBufferPointervEXT", getNamedBufferPointerv); |
| ASSIGN("glGetNamedBufferSubDataEXT", getNamedBufferSubData); |
| ASSIGN("glGetNamedFramebufferAttachmentParameterivEXT", |
| getNamedFramebufferAttachmentParameteriv); |
| ASSIGN("glGetNamedFramebufferParameterivEXT", getNamedFramebufferParameteriv); |
| ASSIGN("glGetNamedRenderbufferParameterivEXT", getNamedRenderbufferParameteriv); |
| ASSIGN("glGetTextureImageEXT", getTextureImage); |
| ASSIGN("glGetTextureLevelParameterfvEXT", getTextureLevelParameterfv); |
| ASSIGN("glGetTextureLevelParameterivEXT", getTextureLevelParameteriv); |
| ASSIGN("glGetTextureParameterIivEXT", getTextureParameterIiv); |
| ASSIGN("glGetTextureParameterIuivEXT", getTextureParameterIuiv); |
| ASSIGN("glGetTextureParameterfvEXT", getTextureParameterfv); |
| ASSIGN("glGetTextureParameterivEXT", getTextureParameteriv); |
| ASSIGN("glMapNamedBufferEXT", mapNamedBuffer); |
| ASSIGN("glMapNamedBufferRangeEXT", mapNamedBufferRange); |
| ASSIGN("glNamedBufferDataEXT", namedBufferData); |
| ASSIGN("glNamedBufferStorageEXT", namedBufferStorage); |
| ASSIGN("glNamedBufferSubDataEXT", namedBufferSubData); |
| ASSIGN("glNamedFramebufferParameteriEXT", namedFramebufferParameteri); |
| ASSIGN("glNamedFramebufferRenderbufferEXT", namedFramebufferRenderbuffer); |
| ASSIGN("glNamedFramebufferTextureEXT", namedFramebufferTexture); |
| ASSIGN("glNamedFramebufferTextureLayerEXT", namedFramebufferTextureLayer); |
| ASSIGN("glNamedRenderbufferStorageEXT", namedRenderbufferStorage); |
| ASSIGN("glNamedRenderbufferStorageMultisampleEXT", namedRenderbufferStorageMultisample); |
| ASSIGN("glProgramUniform1dEXT", programUniform1d); |
| ASSIGN("glProgramUniform1dvEXT", programUniform1dv); |
| ASSIGN("glProgramUniform2dEXT", programUniform2d); |
| ASSIGN("glProgramUniform2dvEXT", programUniform2dv); |
| ASSIGN("glProgramUniform3dEXT", programUniform3d); |
| ASSIGN("glProgramUniform3dvEXT", programUniform3dv); |
| ASSIGN("glProgramUniform4dEXT", programUniform4d); |
| ASSIGN("glProgramUniform4dvEXT", programUniform4dv); |
| ASSIGN("glProgramUniformMatrix2dvEXT", programUniformMatrix2dv); |
| ASSIGN("glProgramUniformMatrix2x3dvEXT", programUniformMatrix2x3dv); |
| ASSIGN("glProgramUniformMatrix2x4dvEXT", programUniformMatrix2x4dv); |
| ASSIGN("glProgramUniformMatrix3dvEXT", programUniformMatrix3dv); |
| ASSIGN("glProgramUniformMatrix3x2dvEXT", programUniformMatrix3x2dv); |
| ASSIGN("glProgramUniformMatrix3x4dvEXT", programUniformMatrix3x4dv); |
| ASSIGN("glProgramUniformMatrix4dvEXT", programUniformMatrix4dv); |
| ASSIGN("glProgramUniformMatrix4x2dvEXT", programUniformMatrix4x2dv); |
| ASSIGN("glProgramUniformMatrix4x3dvEXT", programUniformMatrix4x3dv); |
| ASSIGN("glTextureBufferEXT", textureBuffer); |
| ASSIGN("glTextureBufferRangeEXT", textureBufferRange); |
| ASSIGN("glTextureParameterIivEXT", textureParameterIiv); |
| ASSIGN("glTextureParameterIuivEXT", textureParameterIuiv); |
| ASSIGN("glTextureParameterfEXT", textureParameterf); |
| ASSIGN("glTextureParameterfvEXT", textureParameterfv); |
| ASSIGN("glTextureParameteriEXT", textureParameteri); |
| ASSIGN("glTextureParameterivEXT", textureParameteriv); |
| ASSIGN("glTextureStorage1DEXT", textureStorage1D); |
| ASSIGN("glTextureStorage2DEXT", textureStorage2D); |
| ASSIGN("glTextureStorage2DMultisampleEXT", textureStorage2DMultisample); |
| ASSIGN("glTextureStorage3DEXT", textureStorage3D); |
| ASSIGN("glTextureStorage3DMultisampleEXT", textureStorage3DMultisample); |
| ASSIGN("glTextureSubImage1DEXT", textureSubImage1D); |
| ASSIGN("glTextureSubImage2DEXT", textureSubImage2D); |
| ASSIGN("glTextureSubImage3DEXT", textureSubImage3D); |
| ASSIGN("glUnmapNamedBufferEXT", unmapNamedBuffer); |
| } |
| |
| if (extensions.count("GL_EXT_draw_range_elements") != 0) |
| { |
| ASSIGN("glDrawRangeElementsEXT", drawRangeElements); |
| } |
| |
| if (extensions.count("GL_EXT_framebuffer_blit") != 0) |
| { |
| ASSIGN("glBlitFramebufferEXT", blitFramebuffer); |
| } |
| |
| if (extensions.count("GL_EXT_framebuffer_multisample") != 0) |
| { |
| ASSIGN("glRenderbufferStorageMultisampleEXT", renderbufferStorageMultisample); |
| } |
| |
| if (extensions.count("GL_EXT_framebuffer_object") != 0) |
| { |
| ASSIGN("glBindFramebufferEXT", bindFramebuffer); |
| ASSIGN("glBindRenderbufferEXT", bindRenderbuffer); |
| ASSIGN("glCheckFramebufferStatusEXT", checkFramebufferStatus); |
| ASSIGN("glDeleteFramebuffersEXT", deleteFramebuffers); |
| ASSIGN("glDeleteRenderbuffersEXT", deleteRenderbuffers); |
| ASSIGN("glFramebufferRenderbufferEXT", framebufferRenderbuffer); |
| ASSIGN("glFramebufferTexture1DEXT", framebufferTexture1D); |
| ASSIGN("glFramebufferTexture2DEXT", framebufferTexture2D); |
| ASSIGN("glFramebufferTexture3DEXT", framebufferTexture3D); |
| ASSIGN("glGenFramebuffersEXT", genFramebuffers); |
| ASSIGN("glGenRenderbuffersEXT", genRenderbuffers); |
| ASSIGN("glGenerateMipmapEXT", generateMipmap); |
| ASSIGN("glGetFramebufferAttachmentParameterivEXT", getFramebufferAttachmentParameteriv); |
| ASSIGN("glGetRenderbufferParameterivEXT", getRenderbufferParameteriv); |
| ASSIGN("glIsFramebufferEXT", isFramebuffer); |
| ASSIGN("glIsRenderbufferEXT", isRenderbuffer); |
| ASSIGN("glRenderbufferStorageEXT", renderbufferStorage); |
| } |
| |
| if (extensions.count("GL_EXT_gpu_shader4") != 0) |
| { |
| ASSIGN("glBindFragDataLocationEXT", bindFragDataLocation); |
| ASSIGN("glGetFragDataLocationEXT", getFragDataLocation); |
| ASSIGN("glGetUniformuivEXT", getUniformuiv); |
| ASSIGN("glUniform1uiEXT", uniform1ui); |
| ASSIGN("glUniform1uivEXT", uniform1uiv); |
| ASSIGN("glUniform2uiEXT", uniform2ui); |
| ASSIGN("glUniform2uivEXT", uniform2uiv); |
| ASSIGN("glUniform3uiEXT", uniform3ui); |
| ASSIGN("glUniform3uivEXT", uniform3uiv); |
| ASSIGN("glUniform4uiEXT", uniform4ui); |
| ASSIGN("glUniform4uivEXT", uniform4uiv); |
| } |
| |
| if (extensions.count("GL_EXT_point_parameters") != 0) |
| { |
| ASSIGN("glPointParameterfEXT", pointParameterf); |
| ASSIGN("glPointParameterfvEXT", pointParameterfv); |
| } |
| |
| if (extensions.count("GL_EXT_polygon_offset") != 0) |
| { |
| ASSIGN("glPolygonOffsetEXT", polygonOffset); |
| } |
| |
| if (extensions.count("GL_EXT_provoking_vertex") != 0) |
| { |
| ASSIGN("glProvokingVertexEXT", provokingVertex); |
| } |
| |
| if (extensions.count("GL_EXT_shader_image_load_store") != 0) |
| { |
| ASSIGN("glBindImageTextureEXT", bindImageTexture); |
| ASSIGN("glMemoryBarrierEXT", memoryBarrier); |
| } |
| |
| if (extensions.count("GL_EXT_subtexture") != 0) |
| { |
| ASSIGN("glTexSubImage1DEXT", texSubImage1D); |
| ASSIGN("glTexSubImage2DEXT", texSubImage2D); |
| } |
| |
| if (extensions.count("GL_EXT_texture3D") != 0) |
| { |
| ASSIGN("glTexImage3DEXT", texImage3D); |
| ASSIGN("glTexSubImage3DEXT", texSubImage3D); |
| } |
| |
| if (extensions.count("GL_EXT_texture_array") != 0) |
| { |
| ASSIGN("glFramebufferTextureLayerEXT", framebufferTextureLayer); |
| } |
| |
| if (extensions.count("GL_EXT_texture_buffer_object") != 0) |
| { |
| ASSIGN("glTexBufferEXT", texBuffer); |
| } |
| |
| if (extensions.count("GL_EXT_texture_integer") != 0) |
| { |
| ASSIGN("glGetTexParameterIivEXT", getTexParameterIiv); |
| ASSIGN("glGetTexParameterIuivEXT", getTexParameterIuiv); |
| ASSIGN("glTexParameterIivEXT", texParameterIiv); |
| ASSIGN("glTexParameterIuivEXT", texParameterIuiv); |
| } |
| |
| if (extensions.count("GL_EXT_texture_object") != 0) |
| { |
| ASSIGN("glBindTextureEXT", bindTexture); |
| ASSIGN("glDeleteTexturesEXT", deleteTextures); |
| ASSIGN("glGenTexturesEXT", genTextures); |
| ASSIGN("glIsTextureEXT", isTexture); |
| } |
| |
| if (extensions.count("GL_EXT_timer_query") != 0) |
| { |
| ASSIGN("glGetQueryObjecti64vEXT", getQueryObjecti64v); |
| ASSIGN("glGetQueryObjectui64vEXT", getQueryObjectui64v); |
| } |
| |
| if (extensions.count("GL_EXT_transform_feedback") != 0) |
| { |
| ASSIGN("glBeginTransformFeedbackEXT", beginTransformFeedback); |
| ASSIGN("glBindBufferBaseEXT", bindBufferBase); |
| ASSIGN("glBindBufferRangeEXT", bindBufferRange); |
| ASSIGN("glEndTransformFeedbackEXT", endTransformFeedback); |
| ASSIGN("glGetTransformFeedbackVaryingEXT", getTransformFeedbackVarying); |
| ASSIGN("glTransformFeedbackVaryingsEXT", transformFeedbackVaryings); |
| } |
| |
| if (extensions.count("GL_EXT_vertex_array") != 0) |
| { |
| ASSIGN("glDrawArraysEXT", drawArrays); |
| ASSIGN("glGetPointervEXT", getPointerv); |
| } |
| |
| if (extensions.count("GL_EXT_vertex_attrib_64bit") != 0) |
| { |
| ASSIGN("glGetVertexAttribLdvEXT", getVertexAttribLdv); |
| ASSIGN("glVertexAttribL1dEXT", vertexAttribL1d); |
| ASSIGN("glVertexAttribL1dvEXT", vertexAttribL1dv); |
| ASSIGN("glVertexAttribL2dEXT", vertexAttribL2d); |
| ASSIGN("glVertexAttribL2dvEXT", vertexAttribL2dv); |
| ASSIGN("glVertexAttribL3dEXT", vertexAttribL3d); |
| ASSIGN("glVertexAttribL3dvEXT", vertexAttribL3dv); |
| ASSIGN("glVertexAttribL4dEXT", vertexAttribL4d); |
| ASSIGN("glVertexAttribL4dvEXT", vertexAttribL4dv); |
| ASSIGN("glVertexAttribLPointerEXT", vertexAttribLPointer); |
| } |
| |
| if (extensions.count("GL_KHR_debug") != 0) |
| { |
| ASSIGN("glDebugMessageCallback", debugMessageCallback); |
| ASSIGN("glDebugMessageControl", debugMessageControl); |
| ASSIGN("glDebugMessageInsert", debugMessageInsert); |
| ASSIGN("glGetDebugMessageLog", getDebugMessageLog); |
| ASSIGN("glGetObjectLabel", getObjectLabel); |
| ASSIGN("glGetObjectPtrLabel", getObjectPtrLabel); |
| ASSIGN("glGetPointerv", getPointerv); |
| ASSIGN("glObjectLabel", objectLabel); |
| ASSIGN("glObjectPtrLabel", objectPtrLabel); |
| ASSIGN("glPopDebugGroup", popDebugGroup); |
| ASSIGN("glPushDebugGroup", pushDebugGroup); |
| } |
| |
| if (extensions.count("GL_KHR_robustness") != 0) |
| { |
| ASSIGN("glGetGraphicsResetStatus", getGraphicsResetStatus); |
| ASSIGN("glGetnUniformfv", getnUniformfv); |
| ASSIGN("glGetnUniformiv", getnUniformiv); |
| ASSIGN("glGetnUniformuiv", getnUniformuiv); |
| ASSIGN("glReadnPixels", readnPixels); |
| } |
| |
| if (extensions.count("GL_NV_geometry_program4") != 0) |
| { |
| ASSIGN("glFramebufferTextureEXT", framebufferTexture); |
| ASSIGN("glFramebufferTextureLayerEXT", framebufferTextureLayer); |
| } |
| |
| if (extensions.count("GL_NV_vertex_program4") != 0) |
| { |
| ASSIGN("glGetVertexAttribIivEXT", getVertexAttribIiv); |
| ASSIGN("glGetVertexAttribIuivEXT", getVertexAttribIuiv); |
| ASSIGN("glVertexAttribI1iEXT", vertexAttribI1i); |
| ASSIGN("glVertexAttribI1ivEXT", vertexAttribI1iv); |
| ASSIGN("glVertexAttribI1uiEXT", vertexAttribI1ui); |
| ASSIGN("glVertexAttribI1uivEXT", vertexAttribI1uiv); |
| ASSIGN("glVertexAttribI2iEXT", vertexAttribI2i); |
| ASSIGN("glVertexAttribI2ivEXT", vertexAttribI2iv); |
| ASSIGN("glVertexAttribI2uiEXT", vertexAttribI2ui); |
| ASSIGN("glVertexAttribI2uivEXT", vertexAttribI2uiv); |
| ASSIGN("glVertexAttribI3iEXT", vertexAttribI3i); |
| ASSIGN("glVertexAttribI3ivEXT", vertexAttribI3iv); |
| ASSIGN("glVertexAttribI3uiEXT", vertexAttribI3ui); |
| ASSIGN("glVertexAttribI3uivEXT", vertexAttribI3uiv); |
| ASSIGN("glVertexAttribI4bvEXT", vertexAttribI4bv); |
| ASSIGN("glVertexAttribI4iEXT", vertexAttribI4i); |
| ASSIGN("glVertexAttribI4ivEXT", vertexAttribI4iv); |
| ASSIGN("glVertexAttribI4svEXT", vertexAttribI4sv); |
| ASSIGN("glVertexAttribI4ubvEXT", vertexAttribI4ubv); |
| ASSIGN("glVertexAttribI4uiEXT", vertexAttribI4ui); |
| ASSIGN("glVertexAttribI4uivEXT", vertexAttribI4uiv); |
| ASSIGN("glVertexAttribI4usvEXT", vertexAttribI4usv); |
| ASSIGN("glVertexAttribIPointerEXT", vertexAttribIPointer); |
| } |
| |
| if (extensions.count("GL_OES_single_precision") != 0) |
| { |
| ASSIGN("glClearDepthfOES", clearDepthf); |
| ASSIGN("glDepthRangefOES", depthRangef); |
| } |
| } |
| |
| void DispatchTableGL::initProcsGLES(const gl::Version &version, |
| const std::set<std::string> &extensions) |
| { |
| if (version >= gl::Version(2, 0)) |
| { |
| ASSIGN("glActiveTexture", activeTexture); |
| ASSIGN("glAttachShader", attachShader); |
| ASSIGN("glBindAttribLocation", bindAttribLocation); |
| ASSIGN("glBindBuffer", bindBuffer); |
| ASSIGN("glBindFramebuffer", bindFramebuffer); |
| ASSIGN("glBindRenderbuffer", bindRenderbuffer); |
| ASSIGN("glBindTexture", bindTexture); |
| ASSIGN("glBlendColor", blendColor); |
| ASSIGN("glBlendEquation", blendEquation); |
| ASSIGN("glBlendEquationSeparate", blendEquationSeparate); |
| ASSIGN("glBlendFunc", blendFunc); |
| ASSIGN("glBlendFuncSeparate", blendFuncSeparate); |
| ASSIGN("glBufferData", bufferData); |
| ASSIGN("glBufferSubData", bufferSubData); |
| ASSIGN("glCheckFramebufferStatus", checkFramebufferStatus); |
| ASSIGN("glClear", clear); |
| ASSIGN("glClearColor", clearColor); |
| ASSIGN("glClearDepthf", clearDepthf); |
| ASSIGN("glClearStencil", clearStencil); |
| ASSIGN("glColorMask", colorMask); |
| ASSIGN("glCompileShader", compileShader); |
| ASSIGN("glCompressedTexImage2D", compressedTexImage2D); |
| ASSIGN("glCompressedTexSubImage2D", compressedTexSubImage2D); |
| ASSIGN("glCopyTexImage2D", copyTexImage2D); |
| ASSIGN("glCopyTexSubImage2D", copyTexSubImage2D); |
| ASSIGN("glCreateProgram", createProgram); |
| ASSIGN("glCreateShader", createShader); |
| ASSIGN("glCullFace", cullFace); |
| ASSIGN("glDeleteBuffers", deleteBuffers); |
| ASSIGN("glDeleteFramebuffers", deleteFramebuffers); |
| ASSIGN("glDeleteProgram", deleteProgram); |
| ASSIGN("glDeleteRenderbuffers", deleteRenderbuffers); |
| ASSIGN("glDeleteShader", deleteShader); |
| ASSIGN("glDeleteTextures", deleteTextures); |
| ASSIGN("glDepthFunc", depthFunc); |
| ASSIGN("glDepthMask", depthMask); |
| ASSIGN("glDepthRangef", depthRangef); |
| ASSIGN("glDetachShader", detachShader); |
| ASSIGN("glDisable", disable); |
| ASSIGN("glDisableVertexAttribArray", disableVertexAttribArray); |
| ASSIGN("glDrawArrays", drawArrays); |
| ASSIGN("glDrawElements", drawElements); |
| ASSIGN("glEnable", enable); |
| ASSIGN("glEnableVertexAttribArray", enableVertexAttribArray); |
| ASSIGN("glFinish", finish); |
| ASSIGN("glFlush", flush); |
| ASSIGN("glFramebufferRenderbuffer", framebufferRenderbuffer); |
| ASSIGN("glFramebufferTexture2D", framebufferTexture2D); |
| ASSIGN("glFrontFace", frontFace); |
| ASSIGN("glGenBuffers", genBuffers); |
| ASSIGN("glGenFramebuffers", genFramebuffers); |
| ASSIGN("glGenRenderbuffers", genRenderbuffers); |
| ASSIGN("glGenTextures", genTextures); |
| ASSIGN("glGenerateMipmap", generateMipmap); |
| ASSIGN("glGetActiveAttrib", getActiveAttrib); |
| ASSIGN("glGetActiveUniform", getActiveUniform); |
| ASSIGN("glGetAttachedShaders", getAttachedShaders); |
| ASSIGN("glGetAttribLocation", getAttribLocation); |
| ASSIGN("glGetBooleanv", getBooleanv); |
| ASSIGN("glGetBufferParameteriv", getBufferParameteriv); |
| ASSIGN("glGetError", getError); |
| ASSIGN("glGetFloatv", getFloatv); |
| ASSIGN("glGetFramebufferAttachmentParameteriv", getFramebufferAttachmentParameteriv); |
| ASSIGN("glGetIntegerv", getIntegerv); |
| ASSIGN("glGetProgramInfoLog", getProgramInfoLog); |
| ASSIGN("glGetProgramiv", getProgramiv); |
| ASSIGN("glGetRenderbufferParameteriv", getRenderbufferParameteriv); |
| ASSIGN("glGetShaderInfoLog", getShaderInfoLog); |
| ASSIGN("glGetShaderPrecisionFormat", getShaderPrecisionFormat); |
| ASSIGN("glGetShaderSource", getShaderSource); |
| ASSIGN("glGetShaderiv", getShaderiv); |
| ASSIGN("glGetString", getString); |
| ASSIGN("glGetTexParameterfv", getTexParameterfv); |
| ASSIGN("glGetTexParameteriv", getTexParameteriv); |
| ASSIGN("glGetUniformLocation", getUniformLocation); |
| ASSIGN("glGetUniformfv", getUniformfv); |
| ASSIGN("glGetUniformiv", getUniformiv); |
| ASSIGN("glGetVertexAttribPointerv", getVertexAttribPointerv); |
| ASSIGN("glGetVertexAttribfv", getVertexAttribfv); |
| ASSIGN("glGetVertexAttribiv", getVertexAttribiv); |
| ASSIGN("glHint", hint); |
| ASSIGN("glIsBuffer", isBuffer); |
| ASSIGN("glIsEnabled", isEnabled); |
| ASSIGN("glIsFramebuffer", isFramebuffer); |
| ASSIGN("glIsProgram", isProgram); |
| ASSIGN("glIsRenderbuffer", isRenderbuffer); |
| ASSIGN("glIsShader", isShader); |
| ASSIGN("glIsTexture", isTexture); |
| ASSIGN("glLineWidth", lineWidth); |
| ASSIGN("glLinkProgram", linkProgram); |
| ASSIGN("glPixelStorei", pixelStorei); |
| ASSIGN("glPolygonOffset", polygonOffset); |
| ASSIGN("glReadPixels", readPixels); |
| ASSIGN("glReleaseShaderCompiler", releaseShaderCompiler); |
| ASSIGN("glRenderbufferStorage", renderbufferStorage); |
| ASSIGN("glSampleCoverage", sampleCoverage); |
| ASSIGN("glScissor", scissor); |
| ASSIGN("glShaderBinary", shaderBinary); |
| ASSIGN("glShaderSource", shaderSource); |
| ASSIGN("glStencilFunc", stencilFunc); |
| ASSIGN("glStencilFuncSeparate", stencilFuncSeparate); |
| ASSIGN("glStencilMask", stencilMask); |
| ASSIGN("glStencilMaskSeparate", stencilMaskSeparate); |
| ASSIGN("glStencilOp", stencilOp); |
| ASSIGN("glStencilOpSeparate", stencilOpSeparate); |
| ASSIGN("glTexImage2D", texImage2D); |
| ASSIGN("glTexParameterf", texParameterf); |
| ASSIGN("glTexParameterfv", texParameterfv); |
| ASSIGN("glTexParameteri", texParameteri); |
| ASSIGN("glTexParameteriv", texParameteriv); |
| ASSIGN("glTexSubImage2D", texSubImage2D); |
| ASSIGN("glUniform1f", uniform1f); |
| ASSIGN("glUniform1fv", uniform1fv); |
| ASSIGN("glUniform1i", uniform1i); |
| ASSIGN("glUniform1iv", uniform1iv); |
| ASSIGN("glUniform2f", uniform2f); |
| ASSIGN("glUniform2fv", uniform2fv); |
| ASSIGN("glUniform2i", uniform2i); |
| ASSIGN("glUniform2iv", uniform2iv); |
| ASSIGN("glUniform3f", uniform3f); |
| ASSIGN("glUniform3fv", uniform3fv); |
| ASSIGN("glUniform3i", uniform3i); |
| ASSIGN("glUniform3iv", uniform3iv); |
| ASSIGN("glUniform4f", uniform4f); |
| ASSIGN("glUniform4fv", uniform4fv); |
| ASSIGN("glUniform4i", uniform4i); |
| ASSIGN("glUniform4iv", uniform4iv); |
| ASSIGN("glUniformMatrix2fv", uniformMatrix2fv); |
| ASSIGN("glUniformMatrix3fv", uniformMatrix3fv); |
| ASSIGN("glUniformMatrix4fv", uniformMatrix4fv); |
| ASSIGN("glUseProgram", useProgram); |
| ASSIGN("glValidateProgram", validateProgram); |
| ASSIGN("glVertexAttrib1f", vertexAttrib1f); |
| ASSIGN("glVertexAttrib1fv", vertexAttrib1fv); |
| ASSIGN("glVertexAttrib2f", vertexAttrib2f); |
| ASSIGN("glVertexAttrib2fv", vertexAttrib2fv); |
| ASSIGN("glVertexAttrib3f", vertexAttrib3f); |
| ASSIGN("glVertexAttrib3fv", vertexAttrib3fv); |
| ASSIGN("glVertexAttrib4f", vertexAttrib4f); |
| ASSIGN("glVertexAttrib4fv", vertexAttrib4fv); |
| ASSIGN("glVertexAttribPointer", vertexAttribPointer); |
| ASSIGN("glViewport", viewport); |
| } |
| |
| if (version >= gl::Version(3, 0)) |
| { |
| ASSIGN("glBeginQuery", beginQuery); |
| ASSIGN("glBeginTransformFeedback", beginTransformFeedback); |
| ASSIGN("glBindBufferBase", bindBufferBase); |
| ASSIGN("glBindBufferRange", bindBufferRange); |
| ASSIGN("glBindSampler", bindSampler); |
| ASSIGN("glBindTransformFeedback", bindTransformFeedback); |
| ASSIGN("glBindVertexArray", bindVertexArray); |
| ASSIGN("glBlitFramebuffer", blitFramebuffer); |
| ASSIGN("glClearBufferfi", clearBufferfi); |
| ASSIGN("glClearBufferfv", clearBufferfv); |
| ASSIGN("glClearBufferiv", clearBufferiv); |
| ASSIGN("glClearBufferuiv", clearBufferuiv); |
| ASSIGN("glClientWaitSync", clientWaitSync); |
| ASSIGN("glCompressedTexImage3D", compressedTexImage3D); |
| ASSIGN("glCompressedTexSubImage3D", compressedTexSubImage3D); |
| ASSIGN("glCopyBufferSubData", copyBufferSubData); |
| ASSIGN("glCopyTexSubImage3D", copyTexSubImage3D); |
| ASSIGN("glDeleteQueries", deleteQueries); |
| ASSIGN("glDeleteSamplers", deleteSamplers); |
| ASSIGN("glDeleteSync", deleteSync); |
| ASSIGN("glDeleteTransformFeedbacks", deleteTransformFeedbacks); |
| ASSIGN("glDeleteVertexArrays", deleteVertexArrays); |
| ASSIGN("glDrawArraysInstanced", drawArraysInstanced); |
| ASSIGN("glDrawBuffers", drawBuffers); |
| ASSIGN("glDrawElementsInstanced", drawElementsInstanced); |
| ASSIGN("glDrawRangeElements", drawRangeElements); |
| ASSIGN("glEndQuery", endQuery); |
| ASSIGN("glEndTransformFeedback", endTransformFeedback); |
| ASSIGN("glFenceSync", fenceSync); |
| ASSIGN("glFlushMappedBufferRange", flushMappedBufferRange); |
| ASSIGN("glFramebufferTextureLayer", framebufferTextureLayer); |
| ASSIGN("glGenQueries", genQueries); |
| ASSIGN("glGenSamplers", genSamplers); |
| ASSIGN("glGenTransformFeedbacks", genTransformFeedbacks); |
| ASSIGN("glGenVertexArrays", genVertexArrays); |
| ASSIGN("glGetActiveUniformBlockName", getActiveUniformBlockName); |
| ASSIGN("glGetActiveUniformBlockiv", getActiveUniformBlockiv); |
| ASSIGN("glGetActiveUniformsiv", getActiveUniformsiv); |
| ASSIGN("glGetBufferParameteri64v", getBufferParameteri64v); |
| ASSIGN("glGetBufferPointerv", getBufferPointerv); |
| ASSIGN("glGetFragDataLocation", getFragDataLocation); |
| ASSIGN("glGetInteger64i_v", getInteger64i_v); |
| ASSIGN("glGetInteger64v", getInteger64v); |
| ASSIGN("glGetIntegeri_v", getIntegeri_v); |
| ASSIGN("glGetInternalformativ", getInternalformativ); |
| ASSIGN("glGetProgramBinary", getProgramBinary); |
| ASSIGN("glGetQueryObjectuiv", getQueryObjectuiv); |
| ASSIGN("glGetQueryiv", getQueryiv); |
| ASSIGN("glGetSamplerParameterfv", getSamplerParameterfv); |
| ASSIGN("glGetSamplerParameteriv", getSamplerParameteriv); |
| ASSIGN("glGetStringi", getStringi); |
| ASSIGN("glGetSynciv", getSynciv); |
| ASSIGN("glGetTransformFeedbackVarying", getTransformFeedbackVarying); |
| ASSIGN("glGetUniformBlockIndex", getUniformBlockIndex); |
| ASSIGN("glGetUniformIndices", getUniformIndices); |
| ASSIGN("glGetUniformuiv", getUniformuiv); |
| ASSIGN("glGetVertexAttribIiv", getVertexAttribIiv); |
| ASSIGN("glGetVertexAttribIuiv", getVertexAttribIuiv); |
| ASSIGN("glInvalidateFramebuffer", invalidateFramebuffer); |
| ASSIGN("glInvalidateSubFramebuffer", invalidateSubFramebuffer); |
| ASSIGN("glIsQuery", isQuery); |
| ASSIGN("glIsSampler", isSampler); |
| ASSIGN("glIsSync", isSync); |
| ASSIGN("glIsTransformFeedback", isTransformFeedback); |
| ASSIGN("glIsVertexArray", isVertexArray); |
| ASSIGN("glMapBufferRange", mapBufferRange); |
| ASSIGN("glPauseTransformFeedback", pauseTransformFeedback); |
| ASSIGN("glProgramBinary", programBinary); |
| ASSIGN("glProgramParameteri", programParameteri); |
| ASSIGN("glReadBuffer", readBuffer); |
| ASSIGN("glRenderbufferStorageMultisample", renderbufferStorageMultisample); |
| ASSIGN("glResumeTransformFeedback", resumeTransformFeedback); |
| ASSIGN("glSamplerParameterf", samplerParameterf); |
| ASSIGN("glSamplerParameterfv", samplerParameterfv); |
| ASSIGN("glSamplerParameteri", samplerParameteri); |
| ASSIGN("glSamplerParameteriv", samplerParameteriv); |
| ASSIGN("glTexImage3D", texImage3D); |
| ASSIGN("glTexStorage2D", texStorage2D); |
| ASSIGN("glTexStorage3D", texStorage3D); |
| ASSIGN("glTexSubImage3D", texSubImage3D); |
| ASSIGN("glTransformFeedbackVaryings", transformFeedbackVaryings); |
| ASSIGN("glUniform1ui", uniform1ui); |
| ASSIGN("glUniform1uiv", uniform1uiv); |
| ASSIGN("glUniform2ui", uniform2ui); |
| ASSIGN("glUniform2uiv", uniform2uiv); |
| ASSIGN("glUniform3ui", uniform3ui); |
| ASSIGN("glUniform3uiv", uniform3uiv); |
| ASSIGN("glUniform4ui", uniform4ui); |
| ASSIGN("glUniform4uiv", uniform4uiv); |
| ASSIGN("glUniformBlockBinding", uniformBlockBinding); |
| ASSIGN("glUniformMatrix2x3fv", uniformMatrix2x3fv); |
| ASSIGN("glUniformMatrix2x4fv", uniformMatrix2x4fv); |
| ASSIGN("glUniformMatrix3x2fv", uniformMatrix3x2fv); |
| ASSIGN("glUniformMatrix3x4fv", uniformMatrix3x4fv); |
| ASSIGN("glUniformMatrix4x2fv", uniformMatrix4x2fv); |
| ASSIGN("glUniformMatrix4x3fv", uniformMatrix4x3fv); |
| ASSIGN("glUnmapBuffer", unmapBuffer); |
| ASSIGN("glVertexAttribDivisor", vertexAttribDivisor); |
| ASSIGN("glVertexAttribI4i", vertexAttribI4i); |
| ASSIGN("glVertexAttribI4iv", vertexAttribI4iv); |
| ASSIGN("glVertexAttribI4ui", vertexAttribI4ui); |
| ASSIGN("glVertexAttribI4uiv", vertexAttribI4uiv); |
| ASSIGN("glVertexAttribIPointer", vertexAttribIPointer); |
| ASSIGN("glWaitSync", waitSync); |
| } |
| |
| if (version >= gl::Version(3, 1)) |
| { |
| ASSIGN("glActiveShaderProgram", activeShaderProgram); |
| ASSIGN("glBindImageTexture", bindImageTexture); |
| ASSIGN("glBindProgramPipeline", bindProgramPipeline); |
| ASSIGN("glBindVertexBuffer", bindVertexBuffer); |
| ASSIGN("glCreateShaderProgramv", createShaderProgramv); |
| ASSIGN("glDeleteProgramPipelines", deleteProgramPipelines); |
| ASSIGN("glDispatchCompute", dispatchCompute); |
| ASSIGN("glDispatchComputeIndirect", dispatchComputeIndirect); |
| ASSIGN("glDrawArraysIndirect", drawArraysIndirect); |
| ASSIGN("glDrawElementsIndirect", drawElementsIndirect); |
| ASSIGN("glFramebufferParameteri", framebufferParameteri); |
| ASSIGN("glGenProgramPipelines", genProgramPipelines); |
| ASSIGN("glGetBooleani_v", getBooleani_v); |
| ASSIGN("glGetFramebufferParameteriv", getFramebufferParameteriv); |
| ASSIGN("glGetMultisamplefv", getMultisamplefv); |
| ASSIGN("glGetProgramInterfaceiv", getProgramInterfaceiv); |
| ASSIGN("glGetProgramPipelineInfoLog", getProgramPipelineInfoLog); |
| ASSIGN("glGetProgramPipelineiv", getProgramPipelineiv); |
| ASSIGN("glGetProgramResourceIndex", getProgramResourceIndex); |
| ASSIGN("glGetProgramResourceLocation", getProgramResourceLocation); |
| ASSIGN("glGetProgramResourceName", getProgramResourceName); |
| ASSIGN("glGetProgramResourceiv", getProgramResourceiv); |
| ASSIGN("glGetTexLevelParameterfv", getTexLevelParameterfv); |
| ASSIGN("glGetTexLevelParameteriv", getTexLevelParameteriv); |
| ASSIGN("glIsProgramPipeline", isProgramPipeline); |
| ASSIGN("glMemoryBarrier", memoryBarrier); |
| ASSIGN("glMemoryBarrierByRegion", memoryBarrierByRegion); |
| ASSIGN("glProgramUniform1f", programUniform1f); |
| ASSIGN("glProgramUniform1fv", programUniform1fv); |
| ASSIGN("glProgramUniform1i", programUniform1i); |
| ASSIGN("glProgramUniform1iv", programUniform1iv); |
| ASSIGN("glProgramUniform1ui", programUniform1ui); |
| ASSIGN("glProgramUniform1uiv", programUniform1uiv); |
| ASSIGN("glProgramUniform2f", programUniform2f); |
| ASSIGN("glProgramUniform2fv", programUniform2fv); |
| ASSIGN("glProgramUniform2i", programUniform2i); |
| ASSIGN("glProgramUniform2iv", programUniform2iv); |
| ASSIGN("glProgramUniform2ui", programUniform2ui); |
| ASSIGN("glProgramUniform2uiv", programUniform2uiv); |
| ASSIGN("glProgramUniform3f", programUniform3f); |
| ASSIGN("glProgramUniform3fv", programUniform3fv); |
| ASSIGN("glProgramUniform3i", programUniform3i); |
| ASSIGN("glProgramUniform3iv", programUniform3iv); |
| ASSIGN("glProgramUniform3ui", programUniform3ui); |
| ASSIGN("glProgramUniform3uiv", programUniform3uiv); |
| ASSIGN("glProgramUniform4f", programUniform4f); |
| ASSIGN("glProgramUniform4fv", programUniform4fv); |
| ASSIGN("glProgramUniform4i", programUniform4i); |
| ASSIGN("glProgramUniform4iv", programUniform4iv); |
| ASSIGN("glProgramUniform4ui", programUniform4ui); |
| ASSIGN("glProgramUniform4uiv", programUniform4uiv); |
| ASSIGN("glProgramUniformMatrix2fv", programUniformMatrix2fv); |
| ASSIGN("glProgramUniformMatrix2x3fv", programUniformMatrix2x3fv); |
| ASSIGN("glProgramUniformMatrix2x4fv", programUniformMatrix2x4fv); |
| ASSIGN("glProgramUniformMatrix3fv", programUniformMatrix3fv); |
| ASSIGN("glProgramUniformMatrix3x2fv", programUniformMatrix3x2fv); |
| ASSIGN("glProgramUniformMatrix3x4fv", programUniformMatrix3x4fv); |
| ASSIGN("glProgramUniformMatrix4fv", programUniformMatrix4fv); |
| ASSIGN("glProgramUniformMatrix4x2fv", programUniformMatrix4x2fv); |
| ASSIGN("glProgramUniformMatrix4x3fv", programUniformMatrix4x3fv); |
| ASSIGN("glSampleMaski", sampleMaski); |
| ASSIGN("glTexStorage2DMultisample", texStorage2DMultisample); |
| ASSIGN("glUseProgramStages", useProgramStages); |
| ASSIGN("glValidateProgramPipeline", validateProgramPipeline); |
| ASSIGN("glVertexAttribBinding", vertexAttribBinding); |
| ASSIGN("glVertexAttribFormat", vertexAttribFormat); |
| ASSIGN("glVertexAttribIFormat", vertexAttribIFormat); |
| ASSIGN("glVertexBindingDivisor", vertexBindingDivisor); |
| } |
| |
| if (version >= gl::Version(3, 2)) |
| { |
| ASSIGN("glBlendBarrier", blendBarrier); |
| ASSIGN("glBlendEquationSeparatei", blendEquationSeparatei); |
| ASSIGN("glBlendEquationi", blendEquationi); |
| ASSIGN("glBlendFuncSeparatei", blendFuncSeparatei); |
| ASSIGN("glBlendFunci", blendFunci); |
| ASSIGN("glColorMaski", colorMaski); |
| ASSIGN("glCopyImageSubData", copyImageSubData); |
| ASSIGN("glDebugMessageCallback", debugMessageCallback); |
| ASSIGN("glDebugMessageControl", debugMessageControl); |
| ASSIGN("glDebugMessageInsert", debugMessageInsert); |
| ASSIGN("glDisablei", disablei); |
| ASSIGN("glDrawElementsBaseVertex", drawElementsBaseVertex); |
| ASSIGN("glDrawElementsInstancedBaseVertex", drawElementsInstancedBaseVertex); |
| ASSIGN("glDrawRangeElementsBaseVertex", drawRangeElementsBaseVertex); |
| ASSIGN("glEnablei", enablei); |
| ASSIGN("glFramebufferTexture", framebufferTexture); |
| ASSIGN("glGetDebugMessageLog", getDebugMessageLog); |
| ASSIGN("glGetGraphicsResetStatus", getGraphicsResetStatus); |
| ASSIGN("glGetObjectLabel", getObjectLabel); |
| ASSIGN("glGetObjectPtrLabel", getObjectPtrLabel); |
| ASSIGN("glGetPointerv", getPointerv); |
| ASSIGN("glGetSamplerParameterIiv", getSamplerParameterIiv); |
| ASSIGN("glGetSamplerParameterIuiv", getSamplerParameterIuiv); |
| ASSIGN("glGetTexParameterIiv", getTexParameterIiv); |
| ASSIGN("glGetTexParameterIuiv", getTexParameterIuiv); |
| ASSIGN("glGetnUniformfv", getnUniformfv); |
| ASSIGN("glGetnUniformiv", getnUniformiv); |
| ASSIGN("glGetnUniformuiv", getnUniformuiv); |
| ASSIGN("glIsEnabledi", isEnabledi); |
| ASSIGN("glMinSampleShading", minSampleShading); |
| ASSIGN("glObjectLabel", objectLabel); |
| ASSIGN("glObjectPtrLabel", objectPtrLabel); |
| ASSIGN("glPatchParameteri", patchParameteri); |
| ASSIGN("glPopDebugGroup", popDebugGroup); |
| ASSIGN("glPrimitiveBoundingBox", primitiveBoundingBox); |
| ASSIGN("glPushDebugGroup", pushDebugGroup); |
| ASSIGN("glReadnPixels", readnPixels); |
| ASSIGN("glSamplerParameterIiv", samplerParameterIiv); |
| ASSIGN("glSamplerParameterIuiv", samplerParameterIuiv); |
| ASSIGN("glTexBuffer", texBuffer); |
| ASSIGN("glTexBufferRange", texBufferRange); |
| ASSIGN("glTexParameterIiv", texParameterIiv); |
| ASSIGN("glTexParameterIuiv", texParameterIuiv); |
| ASSIGN("glTexStorage3DMultisample", texStorage3DMultisample); |
| } |
| |
| if (extensions.count("GL_EXT_base_instance") != 0) |
| { |
| ASSIGN("glDrawArraysInstancedBaseInstanceEXT", drawArraysInstancedBaseInstance); |
| ASSIGN("glDrawElementsInstancedBaseInstanceEXT", drawElementsInstancedBaseInstance); |
| ASSIGN("glDrawElementsInstancedBaseVertexBaseInstanceEXT", |
| drawElementsInstancedBaseVertexBaseInstance); |
| } |
| |
| if (extensions.count("GL_EXT_blend_func_extended") != 0) |
| { |
| ASSIGN("glBindFragDataLocationEXT", bindFragDataLocation); |
| ASSIGN("glBindFragDataLocationIndexedEXT", bindFragDataLocationIndexed); |
| ASSIGN("glGetFragDataIndexEXT", getFragDataIndex); |
| ASSIGN("glGetProgramResourceLocationIndexEXT", getProgramResourceLocationIndex); |
| } |
| |
| if (extensions.count("GL_EXT_buffer_storage") != 0) |
| { |
| ASSIGN("glBufferStorageEXT", bufferStorage); |
| } |
| |
| if (extensions.count("GL_EXT_clear_texture") != 0) |
| { |
| ASSIGN("glClearTexImageEXT", clearTexImage); |
| ASSIGN("glClearTexSubImageEXT", clearTexSubImage); |
| } |
| |
| if (extensions.count("GL_EXT_clip_control") != 0) |
| { |
| ASSIGN("glClipControlEXT", clipControl); |
| } |
| |
| if (extensions.count("GL_EXT_copy_image") != 0) |
| { |
| ASSIGN("glCopyImageSubDataEXT", copyImageSubData); |
| } |
| |
| if (extensions.count("GL_EXT_discard_framebuffer") != 0) |
| { |
| ASSIGN("glDiscardFramebufferEXT", discardFramebufferEXT); |
| } |
| |
| if (extensions.count("GL_EXT_disjoint_timer_query") != 0) |
| { |
| ASSIGN("glBeginQueryEXT", beginQuery); |
| ASSIGN("glDeleteQueriesEXT", deleteQueries); |
| ASSIGN("glEndQueryEXT", endQuery); |
| ASSIGN("glGenQueriesEXT", genQueries); |
| ASSIGN("glGetQueryObjecti64vEXT", getQueryObjecti64v); |
| ASSIGN("glGetQueryObjectivEXT", getQueryObjectiv); |
| ASSIGN("glGetQueryObjectui64vEXT", getQueryObjectui64v); |
| ASSIGN("glGetQueryObjectuivEXT", getQueryObjectuiv); |
| ASSIGN("glGetQueryivEXT", getQueryiv); |
| ASSIGN("glIsQueryEXT", isQuery); |
| ASSIGN("glQueryCounterEXT", queryCounter); |
| } |
| |
| if (extensions.count("GL_EXT_draw_buffers") != 0) |
| { |
| ASSIGN("glDrawBuffersEXT", drawBuffers); |
| } |
| |
| if (extensions.count("GL_EXT_draw_buffers_indexed") != 0) |
| { |
| ASSIGN("glBlendEquationSeparateiEXT", blendEquationSeparatei); |
| ASSIGN("glBlendEquationiEXT", blendEquationi); |
| ASSIGN("glBlendFuncSeparateiEXT", blendFuncSeparatei); |
| ASSIGN("glBlendFunciEXT", blendFunci); |
| ASSIGN("glColorMaskiEXT", colorMaski); |
| ASSIGN("glDisableiEXT", disablei); |
| ASSIGN("glEnableiEXT", enablei); |
| ASSIGN("glIsEnablediEXT", isEnabledi); |
| } |
| |
| if (extensions.count("GL_EXT_draw_elements_base_vertex") != 0) |
| { |
| ASSIGN("glDrawElementsBaseVertexEXT", drawElementsBaseVertex); |
| ASSIGN("glDrawElementsInstancedBaseVertexEXT", drawElementsInstancedBaseVertex); |
| ASSIGN("glDrawRangeElementsBaseVertexEXT", drawRangeElementsBaseVertex); |
| ASSIGN("glMultiDrawElementsBaseVertexEXT", multiDrawElementsBaseVertex); |
| } |
| |
| if (extensions.count("GL_EXT_draw_transform_feedback") != 0) |
| { |
| ASSIGN("glDrawTransformFeedbackEXT", drawTransformFeedback); |
| ASSIGN("glDrawTransformFeedbackInstancedEXT", drawTransformFeedbackInstanced); |
| } |
| |
| if (extensions.count("GL_EXT_geometry_shader") != 0) |
| { |
| ASSIGN("glFramebufferTextureEXT", framebufferTexture); |
| } |
| |
| if (extensions.count("GL_EXT_instanced_arrays") != 0) |
| { |
| ASSIGN("glVertexAttribDivisorEXT", vertexAttribDivisor); |
| } |
| |
| if (extensions.count("GL_EXT_map_buffer_range") != 0) |
| { |
| ASSIGN("glFlushMappedBufferRangeEXT", flushMappedBufferRange); |
| ASSIGN("glMapBufferRangeEXT", mapBufferRange); |
| } |
| |
| if (extensions.count("GL_EXT_multi_draw_indirect") != 0) |
| { |
| ASSIGN("glMultiDrawArraysIndirectEXT", multiDrawArraysIndirect); |
| ASSIGN("glMultiDrawElementsIndirectEXT", multiDrawElementsIndirect); |
| } |
| |
| if (extensions.count("GL_EXT_multisampled_render_to_texture") != 0) |
| { |
| ASSIGN("glRenderbufferStorageMultisampleEXT", renderbufferStorageMultisample); |
| } |
| |
| if (extensions.count("GL_EXT_multiview_draw_buffers") != 0) |
| { |
| ASSIGN("glGetIntegeri_vEXT", getIntegeri_v); |
| } |
| |
| if (extensions.count("GL_EXT_occlusion_query_boolean") != 0) |
| { |
| ASSIGN("glBeginQueryEXT", beginQuery); |
| ASSIGN("glDeleteQueriesEXT", deleteQueries); |
| ASSIGN("glEndQueryEXT", endQuery); |
| ASSIGN("glGenQueriesEXT", genQueries); |
| ASSIGN("glGetQueryObjectuivEXT", getQueryObjectuiv); |
| ASSIGN("glGetQueryivEXT", getQueryiv); |
| ASSIGN("glIsQueryEXT", isQuery); |
| } |
| |
| if (extensions.count("GL_EXT_primitive_bounding_box") != 0) |
| { |
| ASSIGN("glPrimitiveBoundingBoxEXT", primitiveBoundingBox); |
| } |
| |
| if (extensions.count("GL_EXT_robustness") != 0) |
| { |
| ASSIGN("glGetGraphicsResetStatusEXT", getGraphicsResetStatus); |
| ASSIGN("glGetnUniformfvEXT", getnUniformfv); |
| ASSIGN("glGetnUniformivEXT", getnUniformiv); |
| ASSIGN("glReadnPixelsEXT", readnPixels); |
| } |
| |
| if (extensions.count("GL_EXT_tessellation_shader") != 0) |
| { |
| ASSIGN("glPatchParameteriEXT", patchParameteri); |
| } |
| |
| if (extensions.count("GL_EXT_texture_border_clamp") != 0) |
| { |
| ASSIGN("glGetSamplerParameterIivEXT", getSamplerParameterIiv); |
| ASSIGN("glGetSamplerParameterIuivEXT", getSamplerParameterIuiv); |
| ASSIGN("glGetTexParameterIivEXT", getTexParameterIiv); |
| ASSIGN("glGetTexParameterIuivEXT", getTexParameterIuiv); |
| ASSIGN("glSamplerParameterIivEXT", samplerParameterIiv); |
| ASSIGN("glSamplerParameterIuivEXT", samplerParameterIuiv); |
| ASSIGN("glTexParameterIivEXT", texParameterIiv); |
| ASSIGN("glTexParameterIuivEXT", texParameterIuiv); |
| } |
| |
| if (extensions.count("GL_EXT_texture_buffer") != 0) |
| { |
| ASSIGN("glTexBufferEXT", texBuffer); |
| ASSIGN("glTexBufferRangeEXT", texBufferRange); |
| } |
| |
| if (extensions.count("GL_EXT_texture_storage") != 0) |
| { |
| ASSIGN("glTexStorage1DEXT", texStorage1D); |
| ASSIGN("glTexStorage2DEXT", texStorage2D); |
| ASSIGN("glTexStorage3DEXT", texStorage3D); |
| ASSIGN("glTextureStorage1DEXT", textureStorage1D); |
| ASSIGN("glTextureStorage2DEXT", textureStorage2D); |
| ASSIGN("glTextureStorage3DEXT", textureStorage3D); |
| } |
| |
| if (extensions.count("GL_EXT_texture_view") != 0) |
| { |
| ASSIGN("glTextureViewEXT", textureView); |
| } |
| |
| if (extensions.count("GL_KHR_debug") != 0) |
| { |
| ASSIGN("glDebugMessageCallbackKHR", debugMessageCallback); |
| ASSIGN("glDebugMessageControlKHR", debugMessageControl); |
| ASSIGN("glDebugMessageInsertKHR", debugMessageInsert); |
| ASSIGN("glGetDebugMessageLogKHR", getDebugMessageLog); |
| ASSIGN("glGetObjectLabelKHR", getObjectLabel); |
| ASSIGN("glGetObjectPtrLabelKHR", getObjectPtrLabel); |
| ASSIGN("glGetPointervKHR", getPointerv); |
| ASSIGN("glObjectLabelKHR", objectLabel); |
| ASSIGN("glObjectPtrLabelKHR", objectPtrLabel); |
| ASSIGN("glPopDebugGroupKHR", popDebugGroup); |
| ASSIGN("glPushDebugGroupKHR", pushDebugGroup); |
| } |
| |
| if (extensions.count("GL_KHR_robustness") != 0) |
| { |
| ASSIGN("glGetGraphicsResetStatusKHR", getGraphicsResetStatus); |
| ASSIGN("glGetnUniformfvKHR", getnUniformfv); |
| ASSIGN("glGetnUniformivKHR", getnUniformiv); |
| ASSIGN("glGetnUniformuivKHR", getnUniformuiv); |
| ASSIGN("glReadnPixelsKHR", readnPixels); |
| } |
| |
| if (extensions.count("GL_OES_EGL_image") != 0) |
| { |
| ASSIGN("glEGLImageTargetRenderbufferStorageOES", eGLImageTargetRenderbufferStorageOES); |
| ASSIGN("glEGLImageTargetTexture2DOES", eGLImageTargetTexture2DOES); |
| } |
| |
| if (extensions.count("GL_OES_copy_image") != 0) |
| { |
| ASSIGN("glCopyImageSubDataOES", copyImageSubData); |
| } |
| |
| if (extensions.count("GL_OES_draw_buffers_indexed") != 0) |
| { |
| ASSIGN("glBlendEquationSeparateiOES", blendEquationSeparatei); |
| ASSIGN("glBlendEquationiOES", blendEquationi); |
| ASSIGN("glBlendFuncSeparateiOES", blendFuncSeparatei); |
| ASSIGN("glBlendFunciOES", blendFunci); |
| ASSIGN("glColorMaskiOES", colorMaski); |
| ASSIGN("glDisableiOES", disablei); |
| ASSIGN("glEnableiOES", enablei); |
| ASSIGN("glIsEnablediOES", isEnabledi); |
| } |
| |
| if (extensions.count("GL_OES_draw_elements_base_vertex") != 0) |
| { |
| ASSIGN("glDrawElementsBaseVertexOES", drawElementsBaseVertex); |
| ASSIGN("glDrawElementsInstancedBaseVertexOES", drawElementsInstancedBaseVertex); |
| ASSIGN("glDrawRangeElementsBaseVertexOES", drawRangeElementsBaseVertex); |
| ASSIGN("glMultiDrawElementsBaseVertexEXT", multiDrawElementsBaseVertex); |
| } |
| |
| if (extensions.count("GL_OES_geometry_shader") != 0) |
| { |
| ASSIGN("glFramebufferTextureOES", framebufferTexture); |
| } |
| |
| if (extensions.count("GL_OES_get_program_binary") != 0) |
| { |
| ASSIGN("glGetProgramBinaryOES", getProgramBinary); |
| ASSIGN("glProgramBinaryOES", programBinary); |
| } |
| |
| if (extensions.count("GL_OES_mapbuffer") != 0) |
| { |
| ASSIGN("glGetBufferPointervOES", getBufferPointerv); |
| ASSIGN("glMapBufferOES", mapBuffer); |
| ASSIGN("glUnmapBufferOES", unmapBuffer); |
| } |
| |
| if (extensions.count("GL_OES_primitive_bounding_box") != 0) |
| { |
| ASSIGN("glPrimitiveBoundingBoxOES", primitiveBoundingBox); |
| } |
| |
| if (extensions.count("GL_OES_sample_shading") != 0) |
| { |
| ASSIGN("glMinSampleShadingOES", minSampleShading); |
| } |
| |
| if (extensions.count("GL_OES_tessellation_shader") != 0) |
| { |
| ASSIGN("glPatchParameteriOES", patchParameteri); |
| } |
| |
| if (extensions.count("GL_OES_texture_3D") != 0) |
| { |
| ASSIGN("glCompressedTexImage3DOES", compressedTexImage3D); |
| ASSIGN("glCompressedTexSubImage3DOES", compressedTexSubImage3D); |
| ASSIGN("glCopyTexSubImage3DOES", copyTexSubImage3D); |
| ASSIGN("glFramebufferTexture3DOES", framebufferTexture3D); |
| ASSIGN("glTexImage3DOES", texImage3D); |
| ASSIGN("glTexSubImage3DOES", texSubImage3D); |
| } |
| |
| if (extensions.count("GL_OES_texture_border_clamp") != 0) |
| { |
| ASSIGN("glGetSamplerParameterIivOES", getSamplerParameterIiv); |
| ASSIGN("glGetSamplerParameterIuivOES", getSamplerParameterIuiv); |
| ASSIGN("glGetTexParameterIivOES", getTexParameterIiv); |
| ASSIGN("glGetTexParameterIuivOES", getTexParameterIuiv); |
| ASSIGN("glSamplerParameterIivOES", samplerParameterIiv); |
| ASSIGN("glSamplerParameterIuivOES", samplerParameterIuiv); |
| ASSIGN("glTexParameterIivOES", texParameterIiv); |
| ASSIGN("glTexParameterIuivOES", texParameterIuiv); |
| } |
| |
| if (extensions.count("GL_OES_texture_buffer") != 0) |
| { |
| ASSIGN("glTexBufferOES", texBuffer); |
| ASSIGN("glTexBufferRangeOES", texBufferRange); |
| } |
| |
| if (extensions.count("GL_OES_texture_storage_multisample_2d_array") != 0) |
| { |
| ASSIGN("glTexStorage3DMultisampleOES", texStorage3DMultisample); |
| } |
| |
| if (extensions.count("GL_OES_texture_view") != 0) |
| { |
| ASSIGN("glTextureViewOES", textureView); |
| } |
| |
| if (extensions.count("GL_OES_vertex_array_object") != 0) |
| { |
| ASSIGN("glBindVertexArrayOES", bindVertexArray); |
| ASSIGN("glDeleteVertexArraysOES", deleteVertexArrays); |
| ASSIGN("glGenVertexArraysOES", genVertexArrays); |
| ASSIGN("glIsVertexArrayOES", isVertexArray); |
| } |
| |
| if (extensions.count("GL_OES_viewport_array") != 0) |
| { |
| ASSIGN("glDisableiOES", disablei); |
| ASSIGN("glEnableiOES", enablei); |
| ASSIGN("glGetFloati_vOES", getFloati_v); |
| ASSIGN("glIsEnablediOES", isEnabledi); |
| ASSIGN("glScissorArrayvOES", scissorArrayv); |
| ASSIGN("glScissorIndexedOES", scissorIndexed); |
| ASSIGN("glScissorIndexedvOES", scissorIndexedv); |
| ASSIGN("glViewportArrayvOES", viewportArrayv); |
| ASSIGN("glViewportIndexedfOES", viewportIndexedf); |
| ASSIGN("glViewportIndexedfvOES", viewportIndexedfv); |
| } |
| } |
| |
| void DispatchTableGL::initProcsSharedExtensions(const std::set<std::string> &extensions) |
| { |
| if (extensions.count("GL_EXT_blend_minmax") != 0) |
| { |
| ASSIGN("glBlendEquationEXT", blendEquation); |
| } |
| |
| if (extensions.count("GL_EXT_debug_label") != 0) |
| { |
| ASSIGN("glGetObjectLabelEXT", getObjectLabel); |
| } |
| |
| if (extensions.count("GL_EXT_debug_marker") != 0) |
| { |
| ASSIGN("glInsertEventMarkerEXT", insertEventMarkerEXT); |
| ASSIGN("glPopGroupMarkerEXT", popGroupMarkerEXT); |
| ASSIGN("glPushGroupMarkerEXT", pushGroupMarkerEXT); |
| } |
| |
| if (extensions.count("GL_EXT_draw_instanced") != 0) |
| { |
| ASSIGN("glDrawArraysInstancedEXT", drawArraysInstanced); |
| ASSIGN("glDrawElementsInstancedEXT", drawElementsInstanced); |
| } |
| |
| if (extensions.count("GL_EXT_memory_object") != 0) |
| { |
| ASSIGN("glBufferStorageMemEXT", bufferStorageMemEXT); |
| ASSIGN("glCreateMemoryObjectsEXT", createMemoryObjectsEXT); |
| ASSIGN("glDeleteMemoryObjectsEXT", deleteMemoryObjectsEXT); |
| ASSIGN("glGetMemoryObjectParameterivEXT", getMemoryObjectParameterivEXT); |
| ASSIGN("glGetUnsignedBytei_vEXT", getUnsignedBytei_vEXT); |
| ASSIGN("glGetUnsignedBytevEXT", getUnsignedBytevEXT); |
| ASSIGN("glIsMemoryObjectEXT", isMemoryObjectEXT); |
| ASSIGN("glMemoryObjectParameterivEXT", memoryObjectParameterivEXT); |
| ASSIGN("glNamedBufferStorageMemEXT", namedBufferStorageMemEXT); |
| ASSIGN("glTexStorageMem2DEXT", texStorageMem2DEXT); |
| ASSIGN("glTexStorageMem2DMultisampleEXT", texStorageMem2DMultisampleEXT); |
| ASSIGN("glTexStorageMem3DEXT", texStorageMem3DEXT); |
| ASSIGN("glTexStorageMem3DMultisampleEXT", texStorageMem3DMultisampleEXT); |
| ASSIGN("glTextureStorageMem2DEXT", textureStorageMem2DEXT); |
| ASSIGN("glTextureStorageMem2DMultisampleEXT", textureStorageMem2DMultisampleEXT); |
| ASSIGN("glTextureStorageMem3DEXT", textureStorageMem3DEXT); |
| ASSIGN("glTextureStorageMem3DMultisampleEXT", textureStorageMem3DMultisampleEXT); |
| } |
| |
| if (extensions.count("GL_EXT_memory_object_fd") != 0) |
| { |
| ASSIGN("glImportMemoryFdEXT", importMemoryFdEXT); |
| } |
| |
| if (extensions.count("GL_EXT_memory_object_win32") != 0) |
| { |
| ASSIGN("glImportMemoryWin32HandleEXT", importMemoryWin32HandleEXT); |
| ASSIGN("glImportMemoryWin32NameEXT", importMemoryWin32NameEXT); |
| } |
| |
| if (extensions.count("GL_EXT_multi_draw_arrays") != 0) |
| { |
| ASSIGN("glMultiDrawArraysEXT", multiDrawArrays); |
| ASSIGN("glMultiDrawElementsEXT", multiDrawElements); |
| } |
| |
| if (extensions.count("GL_EXT_semaphore") != 0) |
| { |
| ASSIGN("glDeleteSemaphoresEXT", deleteSemaphoresEXT); |
| ASSIGN("glGenSemaphoresEXT", genSemaphoresEXT); |
| ASSIGN("glGetSemaphoreParameterui64vEXT", getSemaphoreParameterui64vEXT); |
| ASSIGN("glGetUnsignedBytei_vEXT", getUnsignedBytei_vEXT); |
| ASSIGN("glGetUnsignedBytevEXT", getUnsignedBytevEXT); |
| ASSIGN("glIsSemaphoreEXT", isSemaphoreEXT); |
| ASSIGN("glSemaphoreParameterui64vEXT", semaphoreParameterui64vEXT); |
| ASSIGN("glSignalSemaphoreEXT", signalSemaphoreEXT); |
| ASSIGN("glWaitSemaphoreEXT", waitSemaphoreEXT); |
| } |
| |
| if (extensions.count("GL_EXT_semaphore_fd") != 0) |
| { |
| ASSIGN("glImportSemaphoreFdEXT", importSemaphoreFdEXT); |
| } |
| |
| if (extensions.count("GL_EXT_semaphore_win32") != 0) |
| { |
| ASSIGN("glImportSemaphoreWin32HandleEXT", importSemaphoreWin32HandleEXT); |
| ASSIGN("glImportSemaphoreWin32NameEXT", importSemaphoreWin32NameEXT); |
| } |
| |
| if (extensions.count("GL_EXT_separate_shader_objects") != 0) |
| { |
| ASSIGN("glActiveShaderProgramEXT", activeShaderProgram); |
| ASSIGN("glBindProgramPipelineEXT", bindProgramPipeline); |
| ASSIGN("glCreateShaderProgramvEXT", createShaderProgramv); |
| ASSIGN("glDeleteProgramPipelinesEXT", deleteProgramPipelines); |
| ASSIGN("glGenProgramPipelinesEXT", genProgramPipelines); |
| ASSIGN("glGetProgramPipelineInfoLogEXT", getProgramPipelineInfoLog); |
| ASSIGN("glGetProgramPipelineivEXT", getProgramPipelineiv); |
| ASSIGN("glIsProgramPipelineEXT", isProgramPipeline); |
| ASSIGN("glProgramParameteriEXT", programParameteri); |
| ASSIGN("glProgramUniform1fEXT", programUniform1f); |
| ASSIGN("glProgramUniform1fvEXT", programUniform1fv); |
| ASSIGN("glProgramUniform1iEXT", programUniform1i); |
| ASSIGN("glProgramUniform1ivEXT", programUniform1iv); |
| ASSIGN("glProgramUniform1uiEXT", programUniform1ui); |
| ASSIGN("glProgramUniform1uivEXT", programUniform1uiv); |
| ASSIGN("glProgramUniform2fEXT", programUniform2f); |
| ASSIGN("glProgramUniform2fvEXT", programUniform2fv); |
| ASSIGN("glProgramUniform2iEXT", programUniform2i); |
| ASSIGN("glProgramUniform2ivEXT", programUniform2iv); |
| ASSIGN("glProgramUniform2uiEXT", programUniform2ui); |
| ASSIGN("glProgramUniform2uivEXT", programUniform2uiv); |
| ASSIGN("glProgramUniform3fEXT", programUniform3f); |
| ASSIGN("glProgramUniform3fvEXT", programUniform3fv); |
| ASSIGN("glProgramUniform3iEXT", programUniform3i); |
| ASSIGN("glProgramUniform3ivEXT", programUniform3iv); |
| ASSIGN("glProgramUniform3uiEXT", programUniform3ui); |
| ASSIGN("glProgramUniform3uivEXT", programUniform3uiv); |
| ASSIGN("glProgramUniform4fEXT", programUniform4f); |
| ASSIGN("glProgramUniform4fvEXT", programUniform4fv); |
| ASSIGN("glProgramUniform4iEXT", programUniform4i); |
| ASSIGN("glProgramUniform4ivEXT", programUniform4iv); |
| ASSIGN("glProgramUniform4uiEXT", programUniform4ui); |
| ASSIGN("glProgramUniform4uivEXT", programUniform4uiv); |
| ASSIGN("glProgramUniformMatrix2fvEXT", programUniformMatrix2fv); |
| ASSIGN("glProgramUniformMatrix2x3fvEXT", programUniformMatrix2x3fv); |
| ASSIGN("glProgramUniformMatrix2x4fvEXT", programUniformMatrix2x4fv); |
| ASSIGN("glProgramUniformMatrix3fvEXT", programUniformMatrix3fv); |
| ASSIGN("glProgramUniformMatrix3x2fvEXT", programUniformMatrix3x2fv); |
| ASSIGN("glProgramUniformMatrix3x4fvEXT", programUniformMatrix3x4fv); |
| ASSIGN("glProgramUniformMatrix4fvEXT", programUniformMatrix4fv); |
| ASSIGN("glProgramUniformMatrix4fvEXT", programUniformMatrix4fv); |
| ASSIGN("glProgramUniformMatrix4x2fvEXT", programUniformMatrix4x2fv); |
| ASSIGN("glProgramUniformMatrix4x3fvEXT", programUniformMatrix4x3fv); |
| ASSIGN("glUseProgramStagesEXT", useProgramStages); |
| ASSIGN("glValidateProgramPipelineEXT", validateProgramPipeline); |
| } |
| |
| if (extensions.count("GL_KHR_parallel_shader_compile") != 0) |
| { |
| ASSIGN("glMaxShaderCompilerThreadsKHR", maxShaderCompilerThreadsKHR); |
| } |
| |
| if (extensions.count("GL_NV_fence") != 0) |
| { |
| ASSIGN("glDeleteFencesNV", deleteFencesNV); |
| ASSIGN("glFinishFenceNV", finishFenceNV); |
| ASSIGN("glGenFencesNV", genFencesNV); |
| ASSIGN("glGetFenceivNV", getFenceivNV); |
| ASSIGN("glIsFenceNV", isFenceNV); |
| ASSIGN("glSetFenceNV", setFenceNV); |
| ASSIGN("glTestFenceNV", testFenceNV); |
| } |
| |
| if (extensions.count("GL_NV_framebuffer_mixed_samples") != 0) |
| { |
| ASSIGN("glCoverageModulationNV", coverageModulationNV); |
| } |
| |
| if (extensions.count("GL_NV_internalformat_sample_query") != 0) |
| { |
| ASSIGN("glGetInternalformatSampleivNV", getInternalformatSampleivNV); |
| } |
| |
| if (extensions.count("GL_NV_path_rendering") != 0) |
| { |
| ASSIGN("glCoverFillPathInstancedNV", coverFillPathInstancedNV); |
| ASSIGN("glCoverFillPathNV", coverFillPathNV); |
| ASSIGN("glCoverStrokePathInstancedNV", coverStrokePathInstancedNV); |
| ASSIGN("glCoverStrokePathNV", coverStrokePathNV); |
| ASSIGN("glDeletePathsNV", deletePathsNV); |
| ASSIGN("glGenPathsNV", genPathsNV); |
| ASSIGN("glGetPathParameterfvNV", getPathParameterfvNV); |
| ASSIGN("glGetPathParameterivNV", getPathParameterivNV); |
| ASSIGN("glIsPathNV", isPathNV); |
| ASSIGN("glMatrixLoadfEXT", matrixLoadfEXT); |
| ASSIGN("glPathCommandsNV", pathCommandsNV); |
| ASSIGN("glPathParameterfNV", pathParameterfNV); |
| ASSIGN("glPathParameteriNV", pathParameteriNV); |
| ASSIGN("glPathStencilFuncNV", pathStencilFuncNV); |
| ASSIGN("glProgramPathFragmentInputGenNV", programPathFragmentInputGenNV); |
| ASSIGN("glStencilFillPathInstancedNV", stencilFillPathInstancedNV); |
| ASSIGN("glStencilFillPathNV", stencilFillPathNV); |
| ASSIGN("glStencilStrokePathInstancedNV", stencilStrokePathInstancedNV); |
| ASSIGN("glStencilStrokePathNV", stencilStrokePathNV); |
| ASSIGN("glStencilThenCoverFillPathInstancedNV", stencilThenCoverFillPathInstancedNV); |
| ASSIGN("glStencilThenCoverFillPathNV", stencilThenCoverFillPathNV); |
| ASSIGN("glStencilThenCoverStrokePathInstancedNV", stencilThenCoverStrokePathInstancedNV); |
| ASSIGN("glStencilThenCoverStrokePathNV", stencilThenCoverStrokePathNV); |
| } |
| |
| if (extensions.count("GL_OVR_multiview") != 0) |
| { |
| ASSIGN("glFramebufferTextureMultiviewOVR", framebufferTextureMultiviewOVR); |
| } |
| } |
| |
| #if defined(ANGLE_ENABLE_OPENGL_NULL) |
| void DispatchTableGL::initProcsDesktopGLNULL(const gl::Version &version, |
| const std::set<std::string> &extensions) |
| { |
| if (version >= gl::Version(1, 0)) |
| { |
| blendFunc = &glBlendFuncNULL; |
| clear = &glClearNULL; |
| clearColor = &glClearColorNULL; |
| clearDepth = &glClearDepthNULL; |
| clearStencil = &glClearStencilNULL; |
| colorMask = &glColorMaskNULL; |
| cullFace = &glCullFaceNULL; |
| depthFunc = &glDepthFuncNULL; |
| depthMask = &glDepthMaskNULL; |
| depthRange = &glDepthRangeNULL; |
| disable = &glDisableNULL; |
| drawBuffer = &glDrawBufferNULL; |
| enable = &glEnableNULL; |
| finish = &glFinishNULL; |
| flush = &glFlushNULL; |
| frontFace = &glFrontFaceNULL; |
| getBooleanv = &glGetBooleanvNULL; |
| getDoublev = &glGetDoublevNULL; |
| getError = &glGetErrorNULL; |
| getFloatv = &glGetFloatvNULL; |
| getIntegerv = &glGetIntegervNULL; |
| getString = &glGetStringNULL; |
| getTexImage = &glGetTexImageNULL; |
| getTexLevelParameterfv = &glGetTexLevelParameterfvNULL; |
| getTexLevelParameteriv = &glGetTexLevelParameterivNULL; |
| getTexParameterfv = &glGetTexParameterfvNULL; |
| getTexParameteriv = &glGetTexParameterivNULL; |
| hint = &glHintNULL; |
| isEnabled = &glIsEnabledNULL; |
| lineWidth = &glLineWidthNULL; |
| logicOp = &glLogicOpNULL; |
| pixelStoref = &glPixelStorefNULL; |
| pixelStorei = &glPixelStoreiNULL; |
| pointSize = &glPointSizeNULL; |
| polygonMode = &glPolygonModeNULL; |
| readBuffer = &glReadBufferNULL; |
| readPixels = &glReadPixelsNULL; |
| scissor = &glScissorNULL; |
| stencilFunc = &glStencilFuncNULL; |
| stencilMask = &glStencilMaskNULL; |
| stencilOp = &glStencilOpNULL; |
| texImage1D = &glTexImage1DNULL; |
| texImage2D = &glTexImage2DNULL; |
| texParameterf = &glTexParameterfNULL; |
| texParameterfv = &glTexParameterfvNULL; |
| texParameteri = &glTexParameteriNULL; |
| texParameteriv = &glTexParameterivNULL; |
| viewport = &glViewportNULL; |
| } |
| |
| if (version >= gl::Version(1, 1)) |
| { |
| bindTexture = &glBindTextureNULL; |
| copyTexImage1D = &glCopyTexImage1DNULL; |
| copyTexImage2D = &glCopyTexImage2DNULL; |
| copyTexSubImage1D = &glCopyTexSubImage1DNULL; |
| copyTexSubImage2D = &glCopyTexSubImage2DNULL; |
| deleteTextures = &glDeleteTexturesNULL; |
| drawArrays = &glDrawArraysNULL; |
| drawElements = &glDrawElementsNULL; |
| genTextures = &glGenTexturesNULL; |
| isTexture = &glIsTextureNULL; |
| polygonOffset = &glPolygonOffsetNULL; |
| texSubImage1D = &glTexSubImage1DNULL; |
| texSubImage2D = &glTexSubImage2DNULL; |
| } |
| |
| if (version >= gl::Version(1, 2)) |
| { |
| copyTexSubImage3D = &glCopyTexSubImage3DNULL; |
| drawRangeElements = &glDrawRangeElementsNULL; |
| texImage3D = &glTexImage3DNULL; |
| texSubImage3D = &glTexSubImage3DNULL; |
| } |
| |
| if (version >= gl::Version(1, 3)) |
| { |
| activeTexture = &glActiveTextureNULL; |
| compressedTexImage1D = &glCompressedTexImage1DNULL; |
| compressedTexImage2D = &glCompressedTexImage2DNULL; |
| compressedTexImage3D = &glCompressedTexImage3DNULL; |
| compressedTexSubImage1D = &glCompressedTexSubImage1DNULL; |
| compressedTexSubImage2D = &glCompressedTexSubImage2DNULL; |
| compressedTexSubImage3D = &glCompressedTexSubImage3DNULL; |
| getCompressedTexImage = &glGetCompressedTexImageNULL; |
| sampleCoverage = &glSampleCoverageNULL; |
| } |
| |
| if (version >= gl::Version(1, 4)) |
| { |
| blendColor = &glBlendColorNULL; |
| blendEquation = &glBlendEquationNULL; |
| blendFuncSeparate = &glBlendFuncSeparateNULL; |
| multiDrawArrays = &glMultiDrawArraysNULL; |
| multiDrawElements = &glMultiDrawElementsNULL; |
| pointParameterf = &glPointParameterfNULL; |
| pointParameterfv = &glPointParameterfvNULL; |
| pointParameteri = &glPointParameteriNULL; |
| pointParameteriv = &glPointParameterivNULL; |
| } |
| |
| if (version >= gl::Version(1, 5)) |
| { |
| beginQuery = &glBeginQueryNULL; |
| bindBuffer = &glBindBufferNULL; |
| bufferData = &glBufferDataNULL; |
| bufferSubData = &glBufferSubDataNULL; |
| deleteBuffers = &glDeleteBuffersNULL; |
| deleteQueries = &glDeleteQueriesNULL; |
| endQuery = &glEndQueryNULL; |
| genBuffers = &glGenBuffersNULL; |
| genQueries = &glGenQueriesNULL; |
| getBufferParameteriv = &glGetBufferParameterivNULL; |
| getBufferPointerv = &glGetBufferPointervNULL; |
| getBufferSubData = &glGetBufferSubDataNULL; |
| getQueryObjectiv = &glGetQueryObjectivNULL; |
| getQueryObjectuiv = &glGetQueryObjectuivNULL; |
| getQueryiv = &glGetQueryivNULL; |
| isBuffer = &glIsBufferNULL; |
| isQuery = &glIsQueryNULL; |
| mapBuffer = &glMapBufferNULL; |
| unmapBuffer = &glUnmapBufferNULL; |
| } |
| |
| if (version >= gl::Version(2, 0)) |
| { |
| attachShader = &glAttachShaderNULL; |
| bindAttribLocation = &glBindAttribLocationNULL; |
| blendEquationSeparate = &glBlendEquationSeparateNULL; |
| compileShader = &glCompileShaderNULL; |
| createProgram = &glCreateProgramNULL; |
| createShader = &glCreateShaderNULL; |
| deleteProgram = &glDeleteProgramNULL; |
| deleteShader = &glDeleteShaderNULL; |
| detachShader = &glDetachShaderNULL; |
| disableVertexAttribArray = &glDisableVertexAttribArrayNULL; |
| drawBuffers = &glDrawBuffersNULL; |
| enableVertexAttribArray = &glEnableVertexAttribArrayNULL; |
| getActiveAttrib = &glGetActiveAttribNULL; |
| getActiveUniform = &glGetActiveUniformNULL; |
| getAttachedShaders = &glGetAttachedShadersNULL; |
| getAttribLocation = &glGetAttribLocationNULL; |
| getProgramInfoLog = &glGetProgramInfoLogNULL; |
| getProgramiv = &glGetProgramivNULL; |
| getShaderInfoLog = &glGetShaderInfoLogNULL; |
| getShaderSource = &glGetShaderSourceNULL; |
| getShaderiv = &glGetShaderivNULL; |
| getUniformLocation = &glGetUniformLocationNULL; |
| getUniformfv = &glGetUniformfvNULL; |
| getUniformiv = &glGetUniformivNULL; |
| getVertexAttribPointerv = &glGetVertexAttribPointervNULL; |
| getVertexAttribdv = &glGetVertexAttribdvNULL; |
| getVertexAttribfv = &glGetVertexAttribfvNULL; |
| getVertexAttribiv = &glGetVertexAttribivNULL; |
| isProgram = &glIsProgramNULL; |
| isShader = &glIsShaderNULL; |
| linkProgram = &glLinkProgramNULL; |
| shaderSource = &glShaderSourceNULL; |
| stencilFuncSeparate = &glStencilFuncSeparateNULL; |
| stencilMaskSeparate = &glStencilMaskSeparateNULL; |
| stencilOpSeparate = &glStencilOpSeparateNULL; |
| uniform1f = &glUniform1fNULL; |
| uniform1fv = &glUniform1fvNULL; |
| uniform1i = &glUniform1iNULL; |
| uniform1iv = &glUniform1ivNULL; |
| uniform2f = &glUniform2fNULL; |
| uniform2fv = &glUniform2fvNULL; |
| uniform2i = &glUniform2iNULL; |
| uniform2iv = &glUniform2ivNULL; |
| uniform3f = &glUniform3fNULL; |
| uniform3fv = &glUniform3fvNULL; |
| uniform3i = &glUniform3iNULL; |
| uniform3iv = &glUniform3ivNULL; |
| uniform4f = &glUniform4fNULL; |
| uniform4fv = &glUniform4fvNULL; |
| uniform4i = &glUniform4iNULL; |
| uniform4iv = &glUniform4ivNULL; |
| uniformMatrix2fv = &glUniformMatrix2fvNULL; |
| uniformMatrix3fv = &glUniformMatrix3fvNULL; |
| uniformMatrix4fv = &glUniformMatrix4fvNULL; |
| useProgram = &glUseProgramNULL; |
| validateProgram = &glValidateProgramNULL; |
| vertexAttrib1d = &glVertexAttrib1dNULL; |
| vertexAttrib1dv = &glVertexAttrib1dvNULL; |
| vertexAttrib1f = &glVertexAttrib1fNULL; |
| vertexAttrib1fv = &glVertexAttrib1fvNULL; |
| vertexAttrib1s = &glVertexAttrib1sNULL; |
| vertexAttrib1sv = &glVertexAttrib1svNULL; |
| vertexAttrib2d = &glVertexAttrib2dNULL; |
| vertexAttrib2dv = &glVertexAttrib2dvNULL; |
| vertexAttrib2f = &glVertexAttrib2fNULL; |
| vertexAttrib2fv = &glVertexAttrib2fvNULL; |
| vertexAttrib2s = &glVertexAttrib2sNULL; |
| vertexAttrib2sv = &glVertexAttrib2svNULL; |
| vertexAttrib3d = &glVertexAttrib3dNULL; |
| vertexAttrib3dv = &glVertexAttrib3dvNULL; |
| vertexAttrib3f = &glVertexAttrib3fNULL; |
| vertexAttrib3fv = &glVertexAttrib3fvNULL; |
| vertexAttrib3s = &glVertexAttrib3sNULL; |
| vertexAttrib3sv = &glVertexAttrib3svNULL; |
| vertexAttrib4Nbv = &glVertexAttrib4NbvNULL; |
| vertexAttrib4Niv = &glVertexAttrib4NivNULL; |
| vertexAttrib4Nsv = &glVertexAttrib4NsvNULL; |
| vertexAttrib4Nub = &glVertexAttrib4NubNULL; |
| vertexAttrib4Nubv = &glVertexAttrib4NubvNULL; |
| vertexAttrib4Nuiv = &glVertexAttrib4NuivNULL; |
| vertexAttrib4Nusv = &glVertexAttrib4NusvNULL; |
| vertexAttrib4bv = &glVertexAttrib4bvNULL; |
| vertexAttrib4d = &glVertexAttrib4dNULL; |
| vertexAttrib4dv = &glVertexAttrib4dvNULL; |
| vertexAttrib4f = &glVertexAttrib4fNULL; |
| vertexAttrib4fv = &glVertexAttrib4fvNULL; |
| vertexAttrib4iv = &glVertexAttrib4ivNULL; |
| vertexAttrib4s = &glVertexAttrib4sNULL; |
| vertexAttrib4sv = &glVertexAttrib4svNULL; |
| vertexAttrib4ubv = &glVertexAttrib4ubvNULL; |
| vertexAttrib4uiv = &glVertexAttrib4uivNULL; |
| vertexAttrib4usv = &glVertexAttrib4usvNULL; |
| vertexAttribPointer = &glVertexAttribPointerNULL; |
| } |
| |
| if (version >= gl::Version(2, 1)) |
| { |
| uniformMatrix2x3fv = &glUniformMatrix2x3fvNULL; |
| uniformMatrix2x4fv = &glUniformMatrix2x4fvNULL; |
| uniformMatrix3x2fv = &glUniformMatrix3x2fvNULL; |
| uniformMatrix3x4fv = &glUniformMatrix3x4fvNULL; |
| uniformMatrix4x2fv = &glUniformMatrix4x2fvNULL; |
| uniformMatrix4x3fv = &glUniformMatrix4x3fvNULL; |
| } |
| |
| if (version >= gl::Version(3, 0)) |
| { |
| beginConditionalRender = &glBeginConditionalRenderNULL; |
| beginTransformFeedback = &glBeginTransformFeedbackNULL; |
| bindBufferBase = &glBindBufferBaseNULL; |
| bindBufferRange = &glBindBufferRangeNULL; |
| bindFragDataLocation = &glBindFragDataLocationNULL; |
| bindFramebuffer = &glBindFramebufferNULL; |
| bindRenderbuffer = &glBindRenderbufferNULL; |
| bindVertexArray = &glBindVertexArrayNULL; |
| blitFramebuffer = &glBlitFramebufferNULL; |
| checkFramebufferStatus = &glCheckFramebufferStatusNULL; |
| clampColor = &glClampColorNULL; |
| clearBufferfi = &glClearBufferfiNULL; |
| clearBufferfv = &glClearBufferfvNULL; |
| clearBufferiv = &glClearBufferivNULL; |
| clearBufferuiv = &glClearBufferuivNULL; |
| colorMaski = &glColorMaskiNULL; |
| deleteFramebuffers = &glDeleteFramebuffersNULL; |
| deleteRenderbuffers = &glDeleteRenderbuffersNULL; |
| deleteVertexArrays = &glDeleteVertexArraysNULL; |
| disablei = &glDisableiNULL; |
| enablei = &glEnableiNULL; |
| endConditionalRender = &glEndConditionalRenderNULL; |
| endTransformFeedback = &glEndTransformFeedbackNULL; |
| flushMappedBufferRange = &glFlushMappedBufferRangeNULL; |
| framebufferRenderbuffer = &glFramebufferRenderbufferNULL; |
| framebufferTexture1D = &glFramebufferTexture1DNULL; |
| framebufferTexture2D = &glFramebufferTexture2DNULL; |
| framebufferTexture3D = &glFramebufferTexture3DNULL; |
| framebufferTextureLayer = &glFramebufferTextureLayerNULL; |
| genFramebuffers = &glGenFramebuffersNULL; |
| genRenderbuffers = &glGenRenderbuffersNULL; |
| genVertexArrays = &glGenVertexArraysNULL; |
| generateMipmap = &glGenerateMipmapNULL; |
| getBooleani_v = &glGetBooleani_vNULL; |
| getFragDataLocation = &glGetFragDataLocationNULL; |
| getFramebufferAttachmentParameteriv = &glGetFramebufferAttachmentParameterivNULL; |
| getIntegeri_v = &glGetIntegeri_vNULL; |
| getRenderbufferParameteriv = &glGetRenderbufferParameterivNULL; |
| getStringi = &glGetStringiNULL; |
| getTexParameterIiv = &glGetTexParameterIivNULL; |
| getTexParameterIuiv = &glGetTexParameterIuivNULL; |
| getTransformFeedbackVarying = &glGetTransformFeedbackVaryingNULL; |
| getUniformuiv = &glGetUniformuivNULL; |
| getVertexAttribIiv = &glGetVertexAttribIivNULL; |
| getVertexAttribIuiv = &glGetVertexAttribIuivNULL; |
| isEnabledi = &glIsEnablediNULL; |
| isFramebuffer = &glIsFramebufferNULL; |
| isRenderbuffer = &glIsRenderbufferNULL; |
| isVertexArray = &glIsVertexArrayNULL; |
| mapBufferRange = &glMapBufferRangeNULL; |
| renderbufferStorage = &glRenderbufferStorageNULL; |
| renderbufferStorageMultisample = &glRenderbufferStorageMultisampleNULL; |
| texParameterIiv = &glTexParameterIivNULL; |
| texParameterIuiv = &glTexParameterIuivNULL; |
| transformFeedbackVaryings = &glTransformFeedbackVaryingsNULL; |
| uniform1ui = &glUniform1uiNULL; |
| uniform1uiv = &glUniform1uivNULL; |
| uniform2ui = &glUniform2uiNULL; |
| uniform2uiv = &glUniform2uivNULL; |
| uniform3ui = &glUniform3uiNULL; |
| uniform3uiv = &glUniform3uivNULL; |
| uniform4ui = &glUniform4uiNULL; |
| uniform4uiv = &glUniform4uivNULL; |
| vertexAttribI1i = &glVertexAttribI1iNULL; |
| vertexAttribI1iv = &glVertexAttribI1ivNULL; |
| vertexAttribI1ui = &glVertexAttribI1uiNULL; |
| vertexAttribI1uiv = &glVertexAttribI1uivNULL; |
| vertexAttribI2i = &glVertexAttribI2iNULL; |
| vertexAttribI2iv = &glVertexAttribI2ivNULL; |
| vertexAttribI2ui = &glVertexAttribI2uiNULL; |
| vertexAttribI2uiv = &glVertexAttribI2uivNULL; |
| vertexAttribI3i = &glVertexAttribI3iNULL; |
| vertexAttribI3iv = &glVertexAttribI3ivNULL; |
| vertexAttribI3ui = &glVertexAttribI3uiNULL; |
| vertexAttribI3uiv = &glVertexAttribI3uivNULL; |
| vertexAttribI4bv = &glVertexAttribI4bvNULL; |
| vertexAttribI4i = &glVertexAttribI4iNULL; |
| vertexAttribI4iv = &glVertexAttribI4ivNULL; |
| vertexAttribI4sv = &glVertexAttribI4svNULL; |
| vertexAttribI4ubv = &glVertexAttribI4ubvNULL; |
| vertexAttribI4ui = &glVertexAttribI4uiNULL; |
| vertexAttribI4uiv = &glVertexAttribI4uivNULL; |
| vertexAttribI4usv = &glVertexAttribI4usvNULL; |
| vertexAttribIPointer = &glVertexAttribIPointerNULL; |
| } |
| |
| if (version >= gl::Version(3, 1)) |
| { |
| copyBufferSubData = &glCopyBufferSubDataNULL; |
| drawArraysInstanced = &glDrawArraysInstancedNULL; |
| drawElementsInstanced = &glDrawElementsInstancedNULL; |
| getActiveUniformBlockName = &glGetActiveUniformBlockNameNULL; |
| getActiveUniformBlockiv = &glGetActiveUniformBlockivNULL; |
| getActiveUniformName = &glGetActiveUniformNameNULL; |
| getActiveUniformsiv = &glGetActiveUniformsivNULL; |
| getUniformBlockIndex = &glGetUniformBlockIndexNULL; |
| getUniformIndices = &glGetUniformIndicesNULL; |
| primitiveRestartIndex = &glPrimitiveRestartIndexNULL; |
| texBuffer = &glTexBufferNULL; |
| uniformBlockBinding = &glUniformBlockBindingNULL; |
| } |
| |
| if (version >= gl::Version(3, 2)) |
| { |
| clientWaitSync = &glClientWaitSyncNULL; |
| deleteSync = &glDeleteSyncNULL; |
| drawElementsBaseVertex = &glDrawElementsBaseVertexNULL; |
| drawElementsInstancedBaseVertex = &glDrawElementsInstancedBaseVertexNULL; |
| drawRangeElementsBaseVertex = &glDrawRangeElementsBaseVertexNULL; |
| fenceSync = &glFenceSyncNULL; |
| framebufferTexture = &glFramebufferTextureNULL; |
| getBufferParameteri64v = &glGetBufferParameteri64vNULL; |
| getInteger64i_v = &glGetInteger64i_vNULL; |
| getInteger64v = &glGetInteger64vNULL; |
| getMultisamplefv = &glGetMultisamplefvNULL; |
| getSynciv = &glGetSyncivNULL; |
| isSync = &glIsSyncNULL; |
| multiDrawElementsBaseVertex = &glMultiDrawElementsBaseVertexNULL; |
| provokingVertex = &glProvokingVertexNULL; |
| sampleMaski = &glSampleMaskiNULL; |
| texImage2DMultisample = &glTexImage2DMultisampleNULL; |
| texImage3DMultisample = &glTexImage3DMultisampleNULL; |
| waitSync = &glWaitSyncNULL; |
| } |
| |
| if (version >= gl::Version(3, 3)) |
| { |
| bindFragDataLocationIndexed = &glBindFragDataLocationIndexedNULL; |
| bindSampler = &glBindSamplerNULL; |
| deleteSamplers = &glDeleteSamplersNULL; |
| genSamplers = &glGenSamplersNULL; |
| getFragDataIndex = &glGetFragDataIndexNULL; |
| getQueryObjecti64v = &glGetQueryObjecti64vNULL; |
| getQueryObjectui64v = &glGetQueryObjectui64vNULL; |
| getSamplerParameterIiv = &glGetSamplerParameterIivNULL; |
| getSamplerParameterIuiv = &glGetSamplerParameterIuivNULL; |
| getSamplerParameterfv = &glGetSamplerParameterfvNULL; |
| getSamplerParameteriv = &glGetSamplerParameterivNULL; |
| isSampler = &glIsSamplerNULL; |
| queryCounter = &glQueryCounterNULL; |
| samplerParameterIiv = &glSamplerParameterIivNULL; |
| samplerParameterIuiv = &glSamplerParameterIuivNULL; |
| samplerParameterf = &glSamplerParameterfNULL; |
| samplerParameterfv = &glSamplerParameterfvNULL; |
| samplerParameteri = &glSamplerParameteriNULL; |
| samplerParameteriv = &glSamplerParameterivNULL; |
| vertexAttribDivisor = &glVertexAttribDivisorNULL; |
| vertexAttribP1ui = &glVertexAttribP1uiNULL; |
| vertexAttribP1uiv = &glVertexAttribP1uivNULL; |
| vertexAttribP2ui = &glVertexAttribP2uiNULL; |
| vertexAttribP2uiv = &glVertexAttribP2uivNULL; |
| vertexAttribP3ui = &glVertexAttribP3uiNULL; |
| vertexAttribP3uiv = &glVertexAttribP3uivNULL; |
| vertexAttribP4ui = &glVertexAttribP4uiNULL; |
| vertexAttribP4uiv = &glVertexAttribP4uivNULL; |
| } |
| |
| if (version >= gl::Version(4, 0)) |
| { |
| beginQueryIndexed = &glBeginQueryIndexedNULL; |
| bindTransformFeedback = &glBindTransformFeedbackNULL; |
| blendEquationSeparatei = &glBlendEquationSeparateiNULL; |
| blendEquationi = &glBlendEquationiNULL; |
| blendFuncSeparatei = &glBlendFuncSeparateiNULL; |
| blendFunci = &glBlendFunciNULL; |
| deleteTransformFeedbacks = &glDeleteTransformFeedbacksNULL; |
| drawArraysIndirect = &glDrawArraysIndirectNULL; |
| drawElementsIndirect = &glDrawElementsIndirectNULL; |
| drawTransformFeedback = &glDrawTransformFeedbackNULL; |
| drawTransformFeedbackStream = &glDrawTransformFeedbackStreamNULL; |
| endQueryIndexed = &glEndQueryIndexedNULL; |
| genTransformFeedbacks = &glGenTransformFeedbacksNULL; |
| getActiveSubroutineName = &glGetActiveSubroutineNameNULL; |
| getActiveSubroutineUniformName = &glGetActiveSubroutineUniformNameNULL; |
| getActiveSubroutineUniformiv = &glGetActiveSubroutineUniformivNULL; |
| getProgramStageiv = &glGetProgramStageivNULL; |
| getQueryIndexediv = &glGetQueryIndexedivNULL; |
| getSubroutineIndex = &glGetSubroutineIndexNULL; |
| getSubroutineUniformLocation = &glGetSubroutineUniformLocationNULL; |
| getUniformSubroutineuiv = &glGetUniformSubroutineuivNULL; |
| getUniformdv = &glGetUniformdvNULL; |
| isTransformFeedback = &glIsTransformFeedbackNULL; |
| minSampleShading = &glMinSampleShadingNULL; |
| patchParameterfv = &glPatchParameterfvNULL; |
| patchParameteri = &glPatchParameteriNULL; |
| pauseTransformFeedback = &glPauseTransformFeedbackNULL; |
| resumeTransformFeedback = &glResumeTransformFeedbackNULL; |
| uniform1d = &glUniform1dNULL; |
| uniform1dv = &glUniform1dvNULL; |
| uniform2d = &glUniform2dNULL; |
| uniform2dv = &glUniform2dvNULL; |
| uniform3d = &glUniform3dNULL; |
| uniform3dv = &glUniform3dvNULL; |
| uniform4d = &glUniform4dNULL; |
| uniform4dv = &glUniform4dvNULL; |
| uniformMatrix2dv = &glUniformMatrix2dvNULL; |
| uniformMatrix2x3dv = &glUniformMatrix2x3dvNULL; |
| uniformMatrix2x4dv = &glUniformMatrix2x4dvNULL; |
| uniformMatrix3dv = &glUniformMatrix3dvNULL; |
| uniformMatrix3x2dv = &glUniformMatrix3x2dvNULL; |
| uniformMatrix3x4dv = &glUniformMatrix3x4dvNULL; |
| uniformMatrix4dv = &glUniformMatrix4dvNULL; |
| uniformMatrix4x2dv = &glUniformMatrix4x2dvNULL; |
| uniformMatrix4x3dv = &glUniformMatrix4x3dvNULL; |
| uniformSubroutinesuiv = &glUniformSubroutinesuivNULL; |
| } |
| |
| if (version >= gl::Version(4, 1)) |
| { |
| activeShaderProgram = &glActiveShaderProgramNULL; |
| bindProgramPipeline = &glBindProgramPipelineNULL; |
| clearDepthf = &glClearDepthfNULL; |
| createShaderProgramv = &glCreateShaderProgramvNULL; |
| deleteProgramPipelines = &glDeleteProgramPipelinesNULL; |
| depthRangeArrayv = &glDepthRangeArrayvNULL; |
| depthRangeIndexed = &glDepthRangeIndexedNULL; |
| depthRangef = &glDepthRangefNULL; |
| genProgramPipelines = &glGenProgramPipelinesNULL; |
| getDoublei_v = &glGetDoublei_vNULL; |
| getFloati_v = &glGetFloati_vNULL; |
| getProgramBinary = &glGetProgramBinaryNULL; |
| getProgramPipelineInfoLog = &glGetProgramPipelineInfoLogNULL; |
| getProgramPipelineiv = &glGetProgramPipelineivNULL; |
| getShaderPrecisionFormat = &glGetShaderPrecisionFormatNULL; |
| getVertexAttribLdv = &glGetVertexAttribLdvNULL; |
| isProgramPipeline = &glIsProgramPipelineNULL; |
| programBinary = &glProgramBinaryNULL; |
| programParameteri = &glProgramParameteriNULL; |
| programUniform1d = &glProgramUniform1dNULL; |
| programUniform1dv = &glProgramUniform1dvNULL; |
| programUniform1f = &glProgramUniform1fNULL; |
| programUniform1fv = &glProgramUniform1fvNULL; |
| programUniform1i = &glProgramUniform1iNULL; |
| programUniform1iv = &glProgramUniform1ivNULL; |
| programUniform1ui = &glProgramUniform1uiNULL; |
| programUniform1uiv = &glProgramUniform1uivNULL; |
| programUniform2d = &glProgramUniform2dNULL; |
| programUniform2dv = &glProgramUniform2dvNULL; |
| programUniform2f = &glProgramUniform2fNULL; |
| programUniform2fv = &glProgramUniform2fvNULL; |
| programUniform2i = &glProgramUniform2iNULL; |
| programUniform2iv = &glProgramUniform2ivNULL; |
| programUniform2ui = &glProgramUniform2uiNULL; |
| programUniform2uiv = &glProgramUniform2uivNULL; |
| programUniform3d = &glProgramUniform3dNULL; |
| programUniform3dv = &glProgramUniform3dvNULL; |
| programUniform3f = &glProgramUniform3fNULL; |
| programUniform3fv = &glProgramUniform3fvNULL; |
| programUniform3i = &glProgramUniform3iNULL; |
| programUniform3iv = &glProgramUniform3ivNULL; |
| programUniform3ui = &glProgramUniform3uiNULL; |
| programUniform3uiv = &glProgramUniform3uivNULL; |
| programUniform4d = &glProgramUniform4dNULL; |
| programUniform4dv = &glProgramUniform4dvNULL; |
| programUniform4f = &glProgramUniform4fNULL; |
| programUniform4fv = &glProgramUniform4fvNULL; |
| programUniform4i = &glProgramUniform4iNULL; |
| programUniform4iv = &glProgramUniform4ivNULL; |
| programUniform4ui = &glProgramUniform4uiNULL; |
| programUniform4uiv = &glProgramUniform4uivNULL; |
| programUniformMatrix2dv = &glProgramUniformMatrix2dvNULL; |
| programUniformMatrix2fv = &glProgramUniformMatrix2fvNULL; |
| programUniformMatrix2x3dv = &glProgramUniformMatrix2x3dvNULL; |
| programUniformMatrix2x3fv = &glProgramUniformMatrix2x3fvNULL; |
| programUniformMatrix2x4dv = &glProgramUniformMatrix2x4dvNULL; |
| programUniformMatrix2x4fv = &glProgramUniformMatrix2x4fvNULL; |
| programUniformMatrix3dv = &glProgramUniformMatrix3dvNULL; |
| programUniformMatrix3fv = &glProgramUniformMatrix3fvNULL; |
| programUniformMatrix3x2dv = &glProgramUniformMatrix3x2dvNULL; |
| programUniformMatrix3x2fv = &glProgramUniformMatrix3x2fvNULL; |
| programUniformMatrix3x4dv = &glProgramUniformMatrix3x4dvNULL; |
| programUniformMatrix3x4fv = &glProgramUniformMatrix3x4fvNULL; |
| programUniformMatrix4dv = &glProgramUniformMatrix4dvNULL; |
| programUniformMatrix4fv = &glProgramUniformMatrix4fvNULL; |
| programUniformMatrix4x2dv = &glProgramUniformMatrix4x2dvNULL; |
| programUniformMatrix4x2fv = &glProgramUniformMatrix4x2fvNULL; |
| programUniformMatrix4x3dv = &glProgramUniformMatrix4x3dvNULL; |
| programUniformMatrix4x3fv = &glProgramUniformMatrix4x3fvNULL; |
| releaseShaderCompiler = &glReleaseShaderCompilerNULL; |
| scissorArrayv = &glScissorArrayvNULL; |
| scissorIndexed = &glScissorIndexedNULL; |
| scissorIndexedv = &glScissorIndexedvNULL; |
| shaderBinary = &glShaderBinaryNULL; |
| useProgramStages = &glUseProgramStagesNULL; |
| validateProgramPipeline = &glValidateProgramPipelineNULL; |
| vertexAttribL1d = &glVertexAttribL1dNULL; |
| vertexAttribL1dv = &glVertexAttribL1dvNULL; |
| vertexAttribL2d = &glVertexAttribL2dNULL; |
| vertexAttribL2dv = &glVertexAttribL2dvNULL; |
| vertexAttribL3d = &glVertexAttribL3dNULL; |
| vertexAttribL3dv = &glVertexAttribL3dvNULL; |
| vertexAttribL4d = &glVertexAttribL4dNULL; |
| vertexAttribL4dv = &glVertexAttribL4dvNULL; |
| vertexAttribLPointer = &glVertexAttribLPointerNULL; |
| viewportArrayv = &glViewportArrayvNULL; |
| viewportIndexedf = &glViewportIndexedfNULL; |
| viewportIndexedfv = &glViewportIndexedfvNULL; |
| } |
| |
| if (version >= gl::Version(4, 2)) |
| { |
| bindImageTexture = &glBindImageTextureNULL; |
| drawArraysInstancedBaseInstance = &glDrawArraysInstancedBaseInstanceNULL; |
| drawElementsInstancedBaseInstance = &glDrawElementsInstancedBaseInstanceNULL; |
| drawElementsInstancedBaseVertexBaseInstance = |
| &glDrawElementsInstancedBaseVertexBaseInstanceNULL; |
| drawTransformFeedbackInstanced = &glDrawTransformFeedbackInstancedNULL; |
| drawTransformFeedbackStreamInstanced = &glDrawTransformFeedbackStreamInstancedNULL; |
| getActiveAtomicCounterBufferiv = &glGetActiveAtomicCounterBufferivNULL; |
| getInternalformativ = &glGetInternalformativNULL; |
| memoryBarrier = &glMemoryBarrierNULL; |
| texStorage1D = &glTexStorage1DNULL; |
| texStorage2D = &glTexStorage2DNULL; |
| texStorage3D = &glTexStorage3DNULL; |
| } |
| |
| if (version >= gl::Version(4, 3)) |
| { |
| bindVertexBuffer = &glBindVertexBufferNULL; |
| clearBufferData = &glClearBufferDataNULL; |
| clearBufferSubData = &glClearBufferSubDataNULL; |
| copyImageSubData = &glCopyImageSubDataNULL; |
| debugMessageCallback = &glDebugMessageCallbackNULL; |
| debugMessageControl = &glDebugMessageControlNULL; |
| debugMessageInsert = &glDebugMessageInsertNULL; |
| dispatchCompute = &glDispatchComputeNULL; |
| dispatchComputeIndirect = &glDispatchComputeIndirectNULL; |
| framebufferParameteri = &glFramebufferParameteriNULL; |
| getDebugMessageLog = &glGetDebugMessageLogNULL; |
| getFramebufferParameteriv = &glGetFramebufferParameterivNULL; |
| getInternalformati64v = &glGetInternalformati64vNULL; |
| getObjectLabel = &glGetObjectLabelNULL; |
| getObjectPtrLabel = &glGetObjectPtrLabelNULL; |
| getPointerv = &glGetPointervNULL; |
| getProgramInterfaceiv = &glGetProgramInterfaceivNULL; |
| getProgramResourceIndex = &glGetProgramResourceIndexNULL; |
| getProgramResourceLocation = &glGetProgramResourceLocationNULL; |
| getProgramResourceLocationIndex = &glGetProgramResourceLocationIndexNULL; |
| getProgramResourceName = &glGetProgramResourceNameNULL; |
| getProgramResourceiv = &glGetProgramResourceivNULL; |
| invalidateBufferData = &glInvalidateBufferDataNULL; |
| invalidateBufferSubData = &glInvalidateBufferSubDataNULL; |
| invalidateFramebuffer = &glInvalidateFramebufferNULL; |
| invalidateSubFramebuffer = &glInvalidateSubFramebufferNULL; |
| invalidateTexImage = &glInvalidateTexImageNULL; |
| invalidateTexSubImage = &glInvalidateTexSubImageNULL; |
| multiDrawArraysIndirect = &glMultiDrawArraysIndirectNULL; |
| multiDrawElementsIndirect = &glMultiDrawElementsIndirectNULL; |
| objectLabel = &glObjectLabelNULL; |
| objectPtrLabel = &glObjectPtrLabelNULL; |
| popDebugGroup = &glPopDebugGroupNULL; |
| pushDebugGroup = &glPushDebugGroupNULL; |
| shaderStorageBlockBinding = &glShaderStorageBlockBindingNULL; |
| texBufferRange = &glTexBufferRangeNULL; |
| texStorage2DMultisample = &glTexStorage2DMultisampleNULL; |
| texStorage3DMultisample = &glTexStorage3DMultisampleNULL; |
| textureView = &glTextureViewNULL; |
| vertexAttribBinding = &glVertexAttribBindingNULL; |
| vertexAttribFormat = &glVertexAttribFormatNULL; |
| vertexAttribIFormat = &glVertexAttribIFormatNULL; |
| vertexAttribLFormat = &glVertexAttribLFormatNULL; |
| vertexBindingDivisor = &glVertexBindingDivisorNULL; |
| } |
| |
| if (version >= gl::Version(4, 4)) |
| { |
| bindBuffersBase = &glBindBuffersBaseNULL; |
| bindBuffersRange = &glBindBuffersRangeNULL; |
| bindImageTextures = &glBindImageTexturesNULL; |
| bindSamplers = &glBindSamplersNULL; |
| bindTextures = &glBindTexturesNULL; |
| bindVertexBuffers = &glBindVertexBuffersNULL; |
| bufferStorage = &glBufferStorageNULL; |
| clearTexImage = &glClearTexImageNULL; |
| clearTexSubImage = &glClearTexSubImageNULL; |
| } |
| |
| if (version >= gl::Version(4, 5)) |
| { |
| bindTextureUnit = &glBindTextureUnitNULL; |
| blitNamedFramebuffer = &glBlitNamedFramebufferNULL; |
| checkNamedFramebufferStatus = &glCheckNamedFramebufferStatusNULL; |
| clearNamedBufferData = &glClearNamedBufferDataNULL; |
| clearNamedBufferSubData = &glClearNamedBufferSubDataNULL; |
| clearNamedFramebufferfi = &glClearNamedFramebufferfiNULL; |
| clearNamedFramebufferfv = &glClearNamedFramebufferfvNULL; |
| clearNamedFramebufferiv = &glClearNamedFramebufferivNULL; |
| clearNamedFramebufferuiv = &glClearNamedFramebufferuivNULL; |
| clipControl = &glClipControlNULL; |
| compressedTextureSubImage1D = &glCompressedTextureSubImage1DNULL; |
| compressedTextureSubImage2D = &glCompressedTextureSubImage2DNULL; |
| compressedTextureSubImage3D = &glCompressedTextureSubImage3DNULL; |
| copyNamedBufferSubData = &glCopyNamedBufferSubDataNULL; |
| copyTextureSubImage1D = &glCopyTextureSubImage1DNULL; |
| copyTextureSubImage2D = &glCopyTextureSubImage2DNULL; |
| copyTextureSubImage3D = &glCopyTextureSubImage3DNULL; |
| createBuffers = &glCreateBuffersNULL; |
| createFramebuffers = &glCreateFramebuffersNULL; |
| createProgramPipelines = &glCreateProgramPipelinesNULL; |
| createQueries = &glCreateQueriesNULL; |
| createRenderbuffers = &glCreateRenderbuffersNULL; |
| createSamplers = &glCreateSamplersNULL; |
| createTextures = &glCreateTexturesNULL; |
| createTransformFeedbacks = &glCreateTransformFeedbacksNULL; |
| createVertexArrays = &glCreateVertexArraysNULL; |
| disableVertexArrayAttrib = &glDisableVertexArrayAttribNULL; |
| enableVertexArrayAttrib = &glEnableVertexArrayAttribNULL; |
| flushMappedNamedBufferRange = &glFlushMappedNamedBufferRangeNULL; |
| generateTextureMipmap = &glGenerateTextureMipmapNULL; |
| getCompressedTextureImage = &glGetCompressedTextureImageNULL; |
| getCompressedTextureSubImage = &glGetCompressedTextureSubImageNULL; |
| getGraphicsResetStatus = &glGetGraphicsResetStatusNULL; |
| getNamedBufferParameteri64v = &glGetNamedBufferParameteri64vNULL; |
| getNamedBufferParameteriv = &glGetNamedBufferParameterivNULL; |
| getNamedBufferPointerv = &glGetNamedBufferPointervNULL; |
| getNamedBufferSubData = &glGetNamedBufferSubDataNULL; |
| getNamedFramebufferAttachmentParameteriv = &glGetNamedFramebufferAttachmentParameterivNULL; |
| getNamedFramebufferParameteriv = &glGetNamedFramebufferParameterivNULL; |
| getNamedRenderbufferParameteriv = &glGetNamedRenderbufferParameterivNULL; |
| getQueryBufferObjecti64v = &glGetQueryBufferObjecti64vNULL; |
| getQueryBufferObjectiv = &glGetQueryBufferObjectivNULL; |
| getQueryBufferObjectui64v = &glGetQueryBufferObjectui64vNULL; |
| getQueryBufferObjectuiv = &glGetQueryBufferObjectuivNULL; |
| getTextureImage = &glGetTextureImageNULL; |
| getTextureLevelParameterfv = &glGetTextureLevelParameterfvNULL; |
| getTextureLevelParameteriv = &glGetTextureLevelParameterivNULL; |
| getTextureParameterIiv = &glGetTextureParameterIivNULL; |
| getTextureParameterIuiv = &glGetTextureParameterIuivNULL; |
| getTextureParameterfv = &glGetTextureParameterfvNULL; |
| getTextureParameteriv = &glGetTextureParameterivNULL; |
| getTextureSubImage = &glGetTextureSubImageNULL; |
| getTransformFeedbacki64_v = &glGetTransformFeedbacki64_vNULL; |
| getTransformFeedbacki_v = &glGetTransformFeedbacki_vNULL; |
| getTransformFeedbackiv = &glGetTransformFeedbackivNULL; |
| getVertexArrayIndexed64iv = &glGetVertexArrayIndexed64ivNULL; |
| getVertexArrayIndexediv = &glGetVertexArrayIndexedivNULL; |
| getVertexArrayiv = &glGetVertexArrayivNULL; |
| getnCompressedTexImage = &glGetnCompressedTexImageNULL; |
| getnTexImage = &glGetnTexImageNULL; |
| getnUniformdv = &glGetnUniformdvNULL; |
| getnUniformfv = &glGetnUniformfvNULL; |
| getnUniformiv = &glGetnUniformivNULL; |
| getnUniformuiv = &glGetnUniformuivNULL; |
| invalidateNamedFramebufferData = &glInvalidateNamedFramebufferDataNULL; |
| invalidateNamedFramebufferSubData = &glInvalidateNamedFramebufferSubDataNULL; |
| mapNamedBuffer = &glMapNamedBufferNULL; |
| mapNamedBufferRange = &glMapNamedBufferRangeNULL; |
| memoryBarrierByRegion = &glMemoryBarrierByRegionNULL; |
| namedBufferData = &glNamedBufferDataNULL; |
| namedBufferStorage = &glNamedBufferStorageNULL; |
| namedBufferSubData = &glNamedBufferSubDataNULL; |
| namedFramebufferDrawBuffer = &glNamedFramebufferDrawBufferNULL; |
| namedFramebufferDrawBuffers = &glNamedFramebufferDrawBuffersNULL; |
| namedFramebufferParameteri = &glNamedFramebufferParameteriNULL; |
| namedFramebufferReadBuffer = &glNamedFramebufferReadBufferNULL; |
| namedFramebufferRenderbuffer = &glNamedFramebufferRenderbufferNULL; |
| namedFramebufferTexture = &glNamedFramebufferTextureNULL; |
| namedFramebufferTextureLayer = &glNamedFramebufferTextureLayerNULL; |
| namedRenderbufferStorage = &glNamedRenderbufferStorageNULL; |
| namedRenderbufferStorageMultisample = &glNamedRenderbufferStorageMultisampleNULL; |
| readnPixels = &glReadnPixelsNULL; |
| textureBarrier = &glTextureBarrierNULL; |
| textureBuffer = &glTextureBufferNULL; |
| textureBufferRange = &glTextureBufferRangeNULL; |
| textureParameterIiv = &glTextureParameterIivNULL; |
| textureParameterIuiv = &glTextureParameterIuivNULL; |
| textureParameterf = &glTextureParameterfNULL; |
| textureParameterfv = &glTextureParameterfvNULL; |
| textureParameteri = &glTextureParameteriNULL; |
| textureParameteriv = &glTextureParameterivNULL; |
| textureStorage1D = &glTextureStorage1DNULL; |
| textureStorage2D = &glTextureStorage2DNULL; |
| textureStorage2DMultisample = &glTextureStorage2DMultisampleNULL; |
| textureStorage3D = &glTextureStorage3DNULL; |
| textureStorage3DMultisample = &glTextureStorage3DMultisampleNULL; |
| textureSubImage1D = &glTextureSubImage1DNULL; |
| textureSubImage2D = &glTextureSubImage2DNULL; |
| textureSubImage3D = &glTextureSubImage3DNULL; |
| transformFeedbackBufferBase = &glTransformFeedbackBufferBaseNULL; |
| transformFeedbackBufferRange = &glTransformFeedbackBufferRangeNULL; |
| unmapNamedBuffer = &glUnmapNamedBufferNULL; |
| vertexArrayAttribBinding = &glVertexArrayAttribBindingNULL; |
| vertexArrayAttribFormat = &glVertexArrayAttribFormatNULL; |
| vertexArrayAttribIFormat = &glVertexArrayAttribIFormatNULL; |
| vertexArrayAttribLFormat = &glVertexArrayAttribLFormatNULL; |
| vertexArrayBindingDivisor = &glVertexArrayBindingDivisorNULL; |
| vertexArrayElementBuffer = &glVertexArrayElementBufferNULL; |
| vertexArrayVertexBuffer = &glVertexArrayVertexBufferNULL; |
| vertexArrayVertexBuffers = &glVertexArrayVertexBuffersNULL; |
| } |
| |
| if (extensions.count("GL_ARB_ES2_compatibility") != 0) |
| { |
| clearDepthf = &glClearDepthfNULL; |
| depthRangef = &glDepthRangefNULL; |
| getShaderPrecisionFormat = &glGetShaderPrecisionFormatNULL; |
| releaseShaderCompiler = &glReleaseShaderCompilerNULL; |
| shaderBinary = &glShaderBinaryNULL; |
| } |
| |
| if (extensions.count("GL_ARB_ES3_1_compatibility") != 0) |
| { |
| memoryBarrierByRegion = &glMemoryBarrierByRegionNULL; |
| } |
| |
| if (extensions.count("GL_ARB_ES3_2_compatibility") != 0) |
| { |
| primitiveBoundingBox = &glPrimitiveBoundingBoxNULL; |
| } |
| |
| if (extensions.count("GL_ARB_base_instance") != 0) |
| { |
| drawArraysInstancedBaseInstance = &glDrawArraysInstancedBaseInstanceNULL; |
| drawElementsInstancedBaseInstance = &glDrawElementsInstancedBaseInstanceNULL; |
| drawElementsInstancedBaseVertexBaseInstance = |
| &glDrawElementsInstancedBaseVertexBaseInstanceNULL; |
| } |
| |
| if (extensions.count("GL_ARB_blend_func_extended") != 0) |
| { |
| bindFragDataLocationIndexed = &glBindFragDataLocationIndexedNULL; |
| getFragDataIndex = &glGetFragDataIndexNULL; |
| } |
| |
| if (extensions.count("GL_ARB_buffer_storage") != 0) |
| { |
| bufferStorage = &glBufferStorageNULL; |
| } |
| |
| if (extensions.count("GL_ARB_clear_buffer_object") != 0) |
| { |
| clearBufferData = &glClearBufferDataNULL; |
| clearBufferSubData = &glClearBufferSubDataNULL; |
| } |
| |
| if (extensions.count("GL_ARB_clear_texture") != 0) |
| { |
| clearTexImage = &glClearTexImageNULL; |
| clearTexSubImage = &glClearTexSubImageNULL; |
| } |
| |
| if (extensions.count("GL_ARB_clip_control") != 0) |
| { |
| clipControl = &glClipControlNULL; |
| } |
| |
| if (extensions.count("GL_ARB_color_buffer_float") != 0) |
| { |
| clampColor = &glClampColorNULL; |
| } |
| |
| if (extensions.count("GL_ARB_compute_shader") != 0) |
| { |
| dispatchCompute = &glDispatchComputeNULL; |
| dispatchComputeIndirect = &glDispatchComputeIndirectNULL; |
| } |
| |
| if (extensions.count("GL_ARB_copy_buffer") != 0) |
| { |
| copyBufferSubData = &glCopyBufferSubDataNULL; |
| } |
| |
| if (extensions.count("GL_ARB_copy_image") != 0) |
| { |
| copyImageSubData = &glCopyImageSubDataNULL; |
| } |
| |
| if (extensions.count("GL_ARB_debug_output") != 0) |
| { |
| debugMessageCallback = &glDebugMessageCallbackNULL; |
| debugMessageControl = &glDebugMessageControlNULL; |
| debugMessageInsert = &glDebugMessageInsertNULL; |
| getDebugMessageLog = &glGetDebugMessageLogNULL; |
| } |
| |
| if (extensions.count("GL_ARB_direct_state_access") != 0) |
| { |
| bindTextureUnit = &glBindTextureUnitNULL; |
| blitNamedFramebuffer = &glBlitNamedFramebufferNULL; |
| checkNamedFramebufferStatus = &glCheckNamedFramebufferStatusNULL; |
| clearNamedBufferData = &glClearNamedBufferDataNULL; |
| clearNamedBufferSubData = &glClearNamedBufferSubDataNULL; |
| clearNamedFramebufferfi = &glClearNamedFramebufferfiNULL; |
| clearNamedFramebufferfv = &glClearNamedFramebufferfvNULL; |
| clearNamedFramebufferiv = &glClearNamedFramebufferivNULL; |
| clearNamedFramebufferuiv = &glClearNamedFramebufferuivNULL; |
| compressedTextureSubImage1D = &glCompressedTextureSubImage1DNULL; |
| compressedTextureSubImage2D = &glCompressedTextureSubImage2DNULL; |
| compressedTextureSubImage3D = &glCompressedTextureSubImage3DNULL; |
| copyNamedBufferSubData = &glCopyNamedBufferSubDataNULL; |
| copyTextureSubImage1D = &glCopyTextureSubImage1DNULL; |
| copyTextureSubImage2D = &glCopyTextureSubImage2DNULL; |
| copyTextureSubImage3D = &glCopyTextureSubImage3DNULL; |
| createBuffers = &glCreateBuffersNULL; |
| createFramebuffers = &glCreateFramebuffersNULL; |
| createProgramPipelines = &glCreateProgramPipelinesNULL; |
| createQueries = &glCreateQueriesNULL; |
| createRenderbuffers = &glCreateRenderbuffersNULL; |
| createSamplers = &glCreateSamplersNULL; |
| createTextures = &glCreateTexturesNULL; |
| createTransformFeedbacks = &glCreateTransformFeedbacksNULL; |
| createVertexArrays = &glCreateVertexArraysNULL; |
| disableVertexArrayAttrib = &glDisableVertexArrayAttribNULL; |
| enableVertexArrayAttrib = &glEnableVertexArrayAttribNULL; |
| flushMappedNamedBufferRange = &glFlushMappedNamedBufferRangeNULL; |
| generateTextureMipmap = &glGenerateTextureMipmapNULL; |
| getCompressedTextureImage = &glGetCompressedTextureImageNULL; |
| getNamedBufferParameteri64v = &glGetNamedBufferParameteri64vNULL; |
| getNamedBufferParameteriv = &glGetNamedBufferParameterivNULL; |
| getNamedBufferPointerv = &glGetNamedBufferPointervNULL; |
| getNamedBufferSubData = &glGetNamedBufferSubDataNULL; |
| getNamedFramebufferAttachmentParameteriv = &glGetNamedFramebufferAttachmentParameterivNULL; |
| getNamedFramebufferParameteriv = &glGetNamedFramebufferParameterivNULL; |
| getNamedRenderbufferParameteriv = &glGetNamedRenderbufferParameterivNULL; |
| getQueryBufferObjecti64v = &glGetQueryBufferObjecti64vNULL; |
| getQueryBufferObjectiv = &glGetQueryBufferObjectivNULL; |
| getQueryBufferObjectui64v = &glGetQueryBufferObjectui64vNULL; |
| getQueryBufferObjectuiv = &glGetQueryBufferObjectuivNULL; |
| getTextureImage = &glGetTextureImageNULL; |
| getTextureLevelParameterfv = &glGetTextureLevelParameterfvNULL; |
| getTextureLevelParameteriv = &glGetTextureLevelParameterivNULL; |
| getTextureParameterIiv = &glGetTextureParameterIivNULL; |
| getTextureParameterIuiv = &glGetTextureParameterIuivNULL; |
| getTextureParameterfv = &glGetTextureParameterfvNULL; |
| getTextureParameteriv = &glGetTextureParameterivNULL; |
| getTransformFeedbacki64_v = &glGetTransformFeedbacki64_vNULL; |
| getTransformFeedbacki_v = &glGetTransformFeedbacki_vNULL; |
| getTransformFeedbackiv = &glGetTransformFeedbackivNULL; |
| getVertexArrayIndexed64iv = &glGetVertexArrayIndexed64ivNULL; |
| getVertexArrayIndexediv = &glGetVertexArrayIndexedivNULL; |
| getVertexArrayiv = &glGetVertexArrayivNULL; |
| invalidateNamedFramebufferData = &glInvalidateNamedFramebufferDataNULL; |
| invalidateNamedFramebufferSubData = &glInvalidateNamedFramebufferSubDataNULL; |
| mapNamedBuffer = &glMapNamedBufferNULL; |
| mapNamedBufferRange = &glMapNamedBufferRangeNULL; |
| namedBufferData = &glNamedBufferDataNULL; |
| namedBufferStorage = &glNamedBufferStorageNULL; |
| namedBufferSubData = &glNamedBufferSubDataNULL; |
| namedFramebufferDrawBuffer = &glNamedFramebufferDrawBufferNULL; |
| namedFramebufferDrawBuffers = &glNamedFramebufferDrawBuffersNULL; |
| namedFramebufferParameteri = &glNamedFramebufferParameteriNULL; |
| namedFramebufferReadBuffer = &glNamedFramebufferReadBufferNULL; |
| namedFramebufferRenderbuffer = &glNamedFramebufferRenderbufferNULL; |
| namedFramebufferTexture = &glNamedFramebufferTextureNULL; |
| namedFramebufferTextureLayer = &glNamedFramebufferTextureLayerNULL; |
| namedRenderbufferStorage = &glNamedRenderbufferStorageNULL; |
| namedRenderbufferStorageMultisample = &glNamedRenderbufferStorageMultisampleNULL; |
| textureBuffer = &glTextureBufferNULL; |
| textureBufferRange = &glTextureBufferRangeNULL; |
| textureParameterIiv = &glTextureParameterIivNULL; |
| textureParameterIuiv = &glTextureParameterIuivNULL; |
| textureParameterf = &glTextureParameterfNULL; |
| textureParameterfv = &glTextureParameterfvNULL; |
| textureParameteri = &glTextureParameteriNULL; |
| textureParameteriv = &glTextureParameterivNULL; |
| textureStorage1D = &glTextureStorage1DNULL; |
| textureStorage2D = &glTextureStorage2DNULL; |
| textureStorage2DMultisample = &glTextureStorage2DMultisampleNULL; |
| textureStorage3D = &glTextureStorage3DNULL; |
| textureStorage3DMultisample = &glTextureStorage3DMultisampleNULL; |
| textureSubImage1D = &glTextureSubImage1DNULL; |
| textureSubImage2D = &glTextureSubImage2DNULL; |
| textureSubImage3D = &glTextureSubImage3DNULL; |
| transformFeedbackBufferBase = &glTransformFeedbackBufferBaseNULL; |
| transformFeedbackBufferRange = &glTransformFeedbackBufferRangeNULL; |
| unmapNamedBuffer = &glUnmapNamedBufferNULL; |
| vertexArrayAttribBinding = &glVertexArrayAttribBindingNULL; |
| vertexArrayAttribFormat = &glVertexArrayAttribFormatNULL; |
| vertexArrayAttribIFormat = &glVertexArrayAttribIFormatNULL; |
| vertexArrayAttribLFormat = &glVertexArrayAttribLFormatNULL; |
| vertexArrayBindingDivisor = &glVertexArrayBindingDivisorNULL; |
| vertexArrayElementBuffer = &glVertexArrayElementBufferNULL; |
| vertexArrayVertexBuffer = &glVertexArrayVertexBufferNULL; |
| vertexArrayVertexBuffers = &glVertexArrayVertexBuffersNULL; |
| } |
| |
| if (extensions.count("GL_ARB_draw_buffers") != 0) |
| { |
| drawBuffers = &glDrawBuffersNULL; |
| } |
| |
| if (extensions.count("GL_ARB_draw_buffers_blend") != 0) |
| { |
| blendEquationSeparatei = &glBlendEquationSeparateiNULL; |
| blendEquationi = &glBlendEquationiNULL; |
| blendFuncSeparatei = &glBlendFuncSeparateiNULL; |
| blendFunci = &glBlendFunciNULL; |
| } |
| |
| if (extensions.count("GL_ARB_draw_elements_base_vertex") != 0) |
| { |
| drawElementsBaseVertex = &glDrawElementsBaseVertexNULL; |
| drawElementsInstancedBaseVertex = &glDrawElementsInstancedBaseVertexNULL; |
| drawRangeElementsBaseVertex = &glDrawRangeElementsBaseVertexNULL; |
| multiDrawElementsBaseVertex = &glMultiDrawElementsBaseVertexNULL; |
| } |
| |
| if (extensions.count("GL_ARB_draw_indirect") != 0) |
| { |
| drawArraysIndirect = &glDrawArraysIndirectNULL; |
| drawElementsIndirect = &glDrawElementsIndirectNULL; |
| } |
| |
| if (extensions.count("GL_ARB_draw_instanced") != 0) |
| { |
| drawArraysInstanced = &glDrawArraysInstancedNULL; |
| drawElementsInstanced = &glDrawElementsInstancedNULL; |
| } |
| |
| if (extensions.count("GL_ARB_fragment_program") != 0) |
| { |
| getProgramiv = &glGetProgramivNULL; |
| isProgram = &glIsProgramNULL; |
| } |
| |
| if (extensions.count("GL_ARB_framebuffer_no_attachments") != 0) |
| { |
| framebufferParameteri = &glFramebufferParameteriNULL; |
| getFramebufferParameteriv = &glGetFramebufferParameterivNULL; |
| } |
| |
| if (extensions.count("GL_ARB_framebuffer_object") != 0) |
| { |
| bindFramebuffer = &glBindFramebufferNULL; |
| bindRenderbuffer = &glBindRenderbufferNULL; |
| blitFramebuffer = &glBlitFramebufferNULL; |
| checkFramebufferStatus = &glCheckFramebufferStatusNULL; |
| deleteFramebuffers = &glDeleteFramebuffersNULL; |
| deleteRenderbuffers = &glDeleteRenderbuffersNULL; |
| framebufferRenderbuffer = &glFramebufferRenderbufferNULL; |
| framebufferTexture1D = &glFramebufferTexture1DNULL; |
| framebufferTexture2D = &glFramebufferTexture2DNULL; |
| framebufferTexture3D = &glFramebufferTexture3DNULL; |
| framebufferTextureLayer = &glFramebufferTextureLayerNULL; |
| genFramebuffers = &glGenFramebuffersNULL; |
| genRenderbuffers = &glGenRenderbuffersNULL; |
| generateMipmap = &glGenerateMipmapNULL; |
| getFramebufferAttachmentParameteriv = &glGetFramebufferAttachmentParameterivNULL; |
| getRenderbufferParameteriv = &glGetRenderbufferParameterivNULL; |
| isFramebuffer = &glIsFramebufferNULL; |
| isRenderbuffer = &glIsRenderbufferNULL; |
| renderbufferStorage = &glRenderbufferStorageNULL; |
| renderbufferStorageMultisample = &glRenderbufferStorageMultisampleNULL; |
| } |
| |
| if (extensions.count("GL_ARB_geometry_shader4") != 0) |
| { |
| framebufferTexture = &glFramebufferTextureNULL; |
| framebufferTextureLayer = &glFramebufferTextureLayerNULL; |
| programParameteri = &glProgramParameteriNULL; |
| } |
| |
| if (extensions.count("GL_ARB_get_program_binary") != 0) |
| { |
| getProgramBinary = &glGetProgramBinaryNULL; |
| programBinary = &glProgramBinaryNULL; |
| programParameteri = &glProgramParameteriNULL; |
| } |
| |
| if (extensions.count("GL_ARB_get_texture_sub_image") != 0) |
| { |
| getCompressedTextureSubImage = &glGetCompressedTextureSubImageNULL; |
| getTextureSubImage = &glGetTextureSubImageNULL; |
| } |
| |
| if (extensions.count("GL_ARB_gpu_shader_fp64") != 0) |
| { |
| getUniformdv = &glGetUniformdvNULL; |
| uniform1d = &glUniform1dNULL; |
| uniform1dv = &glUniform1dvNULL; |
| uniform2d = &glUniform2dNULL; |
| uniform2dv = &glUniform2dvNULL; |
| uniform3d = &glUniform3dNULL; |
| uniform3dv = &glUniform3dvNULL; |
| uniform4d = &glUniform4dNULL; |
| uniform4dv = &glUniform4dvNULL; |
| uniformMatrix2dv = &glUniformMatrix2dvNULL; |
| uniformMatrix2x3dv = &glUniformMatrix2x3dvNULL; |
| uniformMatrix2x4dv = &glUniformMatrix2x4dvNULL; |
| uniformMatrix3dv = &glUniformMatrix3dvNULL; |
| uniformMatrix3x2dv = &glUniformMatrix3x2dvNULL; |
| uniformMatrix3x4dv = &glUniformMatrix3x4dvNULL; |
| uniformMatrix4dv = &glUniformMatrix4dvNULL; |
| uniformMatrix4x2dv = &glUniformMatrix4x2dvNULL; |
| uniformMatrix4x3dv = &glUniformMatrix4x3dvNULL; |
| } |
| |
| if (extensions.count("GL_ARB_imaging") != 0) |
| { |
| blendColor = &glBlendColorNULL; |
| blendEquation = &glBlendEquationNULL; |
| } |
| |
| if (extensions.count("GL_ARB_instanced_arrays") != 0) |
| { |
| vertexAttribDivisor = &glVertexAttribDivisorNULL; |
| } |
| |
| if (extensions.count("GL_ARB_internalformat_query") != 0) |
| { |
| getInternalformativ = &glGetInternalformativNULL; |
| } |
| |
| if (extensions.count("GL_ARB_internalformat_query2") != 0) |
| { |
| getInternalformati64v = &glGetInternalformati64vNULL; |
| } |
| |
| if (extensions.count("GL_ARB_invalidate_subdata") != 0) |
| { |
| invalidateBufferData = &glInvalidateBufferDataNULL; |
| invalidateBufferSubData = &glInvalidateBufferSubDataNULL; |
| invalidateFramebuffer = &glInvalidateFramebufferNULL; |
| invalidateSubFramebuffer = &glInvalidateSubFramebufferNULL; |
| invalidateTexImage = &glInvalidateTexImageNULL; |
| invalidateTexSubImage = &glInvalidateTexSubImageNULL; |
| } |
| |
| if (extensions.count("GL_ARB_map_buffer_range") != 0) |
| { |
| flushMappedBufferRange = &glFlushMappedBufferRangeNULL; |
| mapBufferRange = &glMapBufferRangeNULL; |
| } |
| |
| if (extensions.count("GL_ARB_multi_bind") != 0) |
| { |
| bindBuffersBase = &glBindBuffersBaseNULL; |
| bindBuffersRange = &glBindBuffersRangeNULL; |
| bindImageTextures = &glBindImageTexturesNULL; |
| bindSamplers = &glBindSamplersNULL; |
| bindTextures = &glBindTexturesNULL; |
| bindVertexBuffers = &glBindVertexBuffersNULL; |
| } |
| |
| if (extensions.count("GL_ARB_multi_draw_indirect") != 0) |
| { |
| multiDrawArraysIndirect = &glMultiDrawArraysIndirectNULL; |
| multiDrawElementsIndirect = &glMultiDrawElementsIndirectNULL; |
| } |
| |
| if (extensions.count("GL_ARB_multisample") != 0) |
| { |
| sampleCoverage = &glSampleCoverageNULL; |
| } |
| |
| if (extensions.count("GL_ARB_multitexture") != 0) |
| { |
| activeTexture = &glActiveTextureNULL; |
| } |
| |
| if (extensions.count("GL_ARB_occlusion_query") != 0) |
| { |
| beginQuery = &glBeginQueryNULL; |
| deleteQueries = &glDeleteQueriesNULL; |
| endQuery = &glEndQueryNULL; |
| genQueries = &glGenQueriesNULL; |
| getQueryObjectiv = &glGetQueryObjectivNULL; |
| getQueryObjectuiv = &glGetQueryObjectuivNULL; |
| getQueryiv = &glGetQueryivNULL; |
| isQuery = &glIsQueryNULL; |
| } |
| |
| if (extensions.count("GL_ARB_parallel_shader_compile") != 0) |
| { |
| maxShaderCompilerThreadsARB = &glMaxShaderCompilerThreadsARBNULL; |
| } |
| |
| if (extensions.count("GL_ARB_point_parameters") != 0) |
| { |
| pointParameterf = &glPointParameterfNULL; |
| pointParameterfv = &glPointParameterfvNULL; |
| } |
| |
| if (extensions.count("GL_ARB_program_interface_query") != 0) |
| { |
| getProgramInterfaceiv = &glGetProgramInterfaceivNULL; |
| getProgramResourceIndex = &glGetProgramResourceIndexNULL; |
| getProgramResourceLocation = &glGetProgramResourceLocationNULL; |
| getProgramResourceLocationIndex = &glGetProgramResourceLocationIndexNULL; |
| getProgramResourceName = &glGetProgramResourceNameNULL; |
| getProgramResourceiv = &glGetProgramResourceivNULL; |
| } |
| |
| if (extensions.count("GL_ARB_provoking_vertex") != 0) |
| { |
| provokingVertex = &glProvokingVertexNULL; |
| } |
| |
| if (extensions.count("GL_ARB_robustness") != 0) |
| { |
| getGraphicsResetStatus = &glGetGraphicsResetStatusNULL; |
| getnCompressedTexImage = &glGetnCompressedTexImageNULL; |
| getnTexImage = &glGetnTexImageNULL; |
| getnUniformdv = &glGetnUniformdvNULL; |
| getnUniformfv = &glGetnUniformfvNULL; |
| getnUniformiv = &glGetnUniformivNULL; |
| getnUniformuiv = &glGetnUniformuivNULL; |
| readnPixels = &glReadnPixelsNULL; |
| } |
| |
| if (extensions.count("GL_ARB_sample_shading") != 0) |
| { |
| minSampleShading = &glMinSampleShadingNULL; |
| } |
| |
| if (extensions.count("GL_ARB_sampler_objects") != 0) |
| { |
| bindSampler = &glBindSamplerNULL; |
| deleteSamplers = &glDeleteSamplersNULL; |
| genSamplers = &glGenSamplersNULL; |
| getSamplerParameterIiv = &glGetSamplerParameterIivNULL; |
| getSamplerParameterIuiv = &glGetSamplerParameterIuivNULL; |
| getSamplerParameterfv = &glGetSamplerParameterfvNULL; |
| getSamplerParameteriv = &glGetSamplerParameterivNULL; |
| isSampler = &glIsSamplerNULL; |
| samplerParameterIiv = &glSamplerParameterIivNULL; |
| samplerParameterIuiv = &glSamplerParameterIuivNULL; |
| samplerParameterf = &glSamplerParameterfNULL; |
| samplerParameterfv = &glSamplerParameterfvNULL; |
| samplerParameteri = &glSamplerParameteriNULL; |
| samplerParameteriv = &glSamplerParameterivNULL; |
| } |
| |
| if (extensions.count("GL_ARB_separate_shader_objects") != 0) |
| { |
| activeShaderProgram = &glActiveShaderProgramNULL; |
| bindProgramPipeline = &glBindProgramPipelineNULL; |
| createShaderProgramv = &glCreateShaderProgramvNULL; |
| deleteProgramPipelines = &glDeleteProgramPipelinesNULL; |
| genProgramPipelines = &glGenProgramPipelinesNULL; |
| getProgramPipelineInfoLog = &glGetProgramPipelineInfoLogNULL; |
| getProgramPipelineiv = &glGetProgramPipelineivNULL; |
| isProgramPipeline = &glIsProgramPipelineNULL; |
| programParameteri = &glProgramParameteriNULL; |
| programUniform1d = &glProgramUniform1dNULL; |
| programUniform1dv = &glProgramUniform1dvNULL; |
| programUniform1f = &glProgramUniform1fNULL; |
| programUniform1fv = &glProgramUniform1fvNULL; |
| programUniform1i = &glProgramUniform1iNULL; |
| programUniform1iv = &glProgramUniform1ivNULL; |
| programUniform1ui = &glProgramUniform1uiNULL; |
| programUniform1uiv = &glProgramUniform1uivNULL; |
| programUniform2d = &glProgramUniform2dNULL; |
| programUniform2dv = &glProgramUniform2dvNULL; |
| programUniform2f = &glProgramUniform2fNULL; |
| programUniform2fv = &glProgramUniform2fvNULL; |
| programUniform2i = &glProgramUniform2iNULL; |
| programUniform2iv = &glProgramUniform2ivNULL; |
| programUniform2ui = &glProgramUniform2uiNULL; |
| programUniform2uiv = &glProgramUniform2uivNULL; |
| programUniform3d = &glProgramUniform3dNULL; |
| programUniform3dv = &glProgramUniform3dvNULL; |
| programUniform3f = &glProgramUniform3fNULL; |
| programUniform3fv = &glProgramUniform3fvNULL; |
| programUniform3i = &glProgramUniform3iNULL; |
| programUniform3iv = &glProgramUniform3ivNULL; |
| programUniform3ui = &glProgramUniform3uiNULL; |
| programUniform3uiv = &glProgramUniform3uivNULL; |
| programUniform4d = &glProgramUniform4dNULL; |
| programUniform4dv = &glProgramUniform4dvNULL; |
| programUniform4f = &glProgramUniform4fNULL; |
| programUniform4fv = &glProgramUniform4fvNULL; |
| programUniform4i = &glProgramUniform4iNULL; |
| programUniform4iv = &glProgramUniform4ivNULL; |
| programUniform4ui = &glProgramUniform4uiNULL; |
| programUniform4uiv = &glProgramUniform4uivNULL; |
| programUniformMatrix2dv = &glProgramUniformMatrix2dvNULL; |
| programUniformMatrix2fv = &glProgramUniformMatrix2fvNULL; |
| programUniformMatrix2x3dv = &glProgramUniformMatrix2x3dvNULL; |
| programUniformMatrix2x3fv = &glProgramUniformMatrix2x3fvNULL; |
| programUniformMatrix2x4dv = &glProgramUniformMatrix2x4dvNULL; |
| programUniformMatrix2x4fv = &glProgramUniformMatrix2x4fvNULL; |
| programUniformMatrix3dv = &glProgramUniformMatrix3dvNULL; |
| programUniformMatrix3fv = &glProgramUniformMatrix3fvNULL; |
| programUniformMatrix3x2dv = &glProgramUniformMatrix3x2dvNULL; |
| programUniformMatrix3x2fv = &glProgramUniformMatrix3x2fvNULL; |
| programUniformMatrix3x4dv = &glProgramUniformMatrix3x4dvNULL; |
| programUniformMatrix3x4fv = &glProgramUniformMatrix3x4fvNULL; |
| programUniformMatrix4dv = &glProgramUniformMatrix4dvNULL; |
| programUniformMatrix4fv = &glProgramUniformMatrix4fvNULL; |
| programUniformMatrix4x2dv = &glProgramUniformMatrix4x2dvNULL; |
| programUniformMatrix4x2fv = &glProgramUniformMatrix4x2fvNULL; |
| programUniformMatrix4x3dv = &glProgramUniformMatrix4x3dvNULL; |
| programUniformMatrix4x3fv = &glProgramUniformMatrix4x3fvNULL; |
| useProgramStages = &glUseProgramStagesNULL; |
| validateProgramPipeline = &glValidateProgramPipelineNULL; |
| } |
| |
| if (extensions.count("GL_ARB_shader_atomic_counters") != 0) |
| { |
| getActiveAtomicCounterBufferiv = &glGetActiveAtomicCounterBufferivNULL; |
| } |
| |
| if (extensions.count("GL_ARB_shader_image_load_store") != 0) |
| { |
| bindImageTexture = &glBindImageTextureNULL; |
| memoryBarrier = &glMemoryBarrierNULL; |
| } |
| |
| if (extensions.count("GL_ARB_shader_objects") != 0) |
| { |
| compileShader = &glCompileShaderNULL; |
| getActiveUniform = &glGetActiveUniformNULL; |
| getShaderSource = &glGetShaderSourceNULL; |
| getUniformLocation = &glGetUniformLocationNULL; |
| getUniformfv = &glGetUniformfvNULL; |
| getUniformiv = &glGetUniformivNULL; |
| linkProgram = &glLinkProgramNULL; |
| shaderSource = &glShaderSourceNULL; |
| uniform1f = &glUniform1fNULL; |
| uniform1fv = &glUniform1fvNULL; |
| uniform1i = &glUniform1iNULL; |
| uniform1iv = &glUniform1ivNULL; |
| uniform2f = &glUniform2fNULL; |
| uniform2fv = &glUniform2fvNULL; |
| uniform2i = &glUniform2iNULL; |
| uniform2iv = &glUniform2ivNULL; |
| uniform3f = &glUniform3fNULL; |
| uniform3fv = &glUniform3fvNULL; |
| uniform3i = &glUniform3iNULL; |
| uniform3iv = &glUniform3ivNULL; |
| uniform4f = &glUniform4fNULL; |
| uniform4fv = &glUniform4fvNULL; |
| uniform4i = &glUniform4iNULL; |
| uniform4iv = &glUniform4ivNULL; |
| uniformMatrix2fv = &glUniformMatrix2fvNULL; |
| uniformMatrix3fv = &glUniformMatrix3fvNULL; |
| uniformMatrix4fv = &glUniformMatrix4fvNULL; |
| validateProgram = &glValidateProgramNULL; |
| } |
| |
| if (extensions.count("GL_ARB_shader_storage_buffer_object") != 0) |
| { |
| shaderStorageBlockBinding = &glShaderStorageBlockBindingNULL; |
| } |
| |
| if (extensions.count("GL_ARB_shader_subroutine") != 0) |
| { |
| getActiveSubroutineName = &glGetActiveSubroutineNameNULL; |
| getActiveSubroutineUniformName = &glGetActiveSubroutineUniformNameNULL; |
| getActiveSubroutineUniformiv = &glGetActiveSubroutineUniformivNULL; |
| getProgramStageiv = &glGetProgramStageivNULL; |
| getSubroutineIndex = &glGetSubroutineIndexNULL; |
| getSubroutineUniformLocation = &glGetSubroutineUniformLocationNULL; |
| getUniformSubroutineuiv = &glGetUniformSubroutineuivNULL; |
| uniformSubroutinesuiv = &glUniformSubroutinesuivNULL; |
| } |
| |
| if (extensions.count("GL_ARB_sync") != 0) |
| { |
| clientWaitSync = &glClientWaitSyncNULL; |
| deleteSync = &glDeleteSyncNULL; |
| fenceSync = &glFenceSyncNULL; |
| getInteger64v = &glGetInteger64vNULL; |
| getSynciv = &glGetSyncivNULL; |
| isSync = &glIsSyncNULL; |
| waitSync = &glWaitSyncNULL; |
| } |
| |
| if (extensions.count("GL_ARB_tessellation_shader") != 0) |
| { |
| patchParameterfv = &glPatchParameterfvNULL; |
| patchParameteri = &glPatchParameteriNULL; |
| } |
| |
| if (extensions.count("GL_ARB_texture_barrier") != 0) |
| { |
| textureBarrier = &glTextureBarrierNULL; |
| } |
| |
| if (extensions.count("GL_ARB_texture_buffer_object") != 0) |
| { |
| texBuffer = &glTexBufferNULL; |
| } |
| |
| if (extensions.count("GL_ARB_texture_buffer_range") != 0) |
| { |
| texBufferRange = &glTexBufferRangeNULL; |
| } |
| |
| if (extensions.count("GL_ARB_texture_compression") != 0) |
| { |
| compressedTexImage1D = &glCompressedTexImage1DNULL; |
| compressedTexImage2D = &glCompressedTexImage2DNULL; |
| compressedTexImage3D = &glCompressedTexImage3DNULL; |
| compressedTexSubImage1D = &glCompressedTexSubImage1DNULL; |
| compressedTexSubImage2D = &glCompressedTexSubImage2DNULL; |
| compressedTexSubImage3D = &glCompressedTexSubImage3DNULL; |
| getCompressedTexImage = &glGetCompressedTexImageNULL; |
| } |
| |
| if (extensions.count("GL_ARB_texture_multisample") != 0) |
| { |
| getMultisamplefv = &glGetMultisamplefvNULL; |
| sampleMaski = &glSampleMaskiNULL; |
| texImage2DMultisample = &glTexImage2DMultisampleNULL; |
| texImage3DMultisample = &glTexImage3DMultisampleNULL; |
| } |
| |
| if (extensions.count("GL_ARB_texture_storage") != 0) |
| { |
| texStorage1D = &glTexStorage1DNULL; |
| texStorage2D = &glTexStorage2DNULL; |
| texStorage3D = &glTexStorage3DNULL; |
| } |
| |
| if (extensions.count("GL_ARB_texture_storage_multisample") != 0) |
| { |
| texStorage2DMultisample = &glTexStorage2DMultisampleNULL; |
| texStorage3DMultisample = &glTexStorage3DMultisampleNULL; |
| } |
| |
| if (extensions.count("GL_ARB_texture_view") != 0) |
| { |
| textureView = &glTextureViewNULL; |
| } |
| |
| if (extensions.count("GL_ARB_timer_query") != 0) |
| { |
| getQueryObjecti64v = &glGetQueryObjecti64vNULL; |
| getQueryObjectui64v = &glGetQueryObjectui64vNULL; |
| queryCounter = &glQueryCounterNULL; |
| } |
| |
| if (extensions.count("GL_ARB_transform_feedback2") != 0) |
| { |
| bindTransformFeedback = &glBindTransformFeedbackNULL; |
| deleteTransformFeedbacks = &glDeleteTransformFeedbacksNULL; |
| drawTransformFeedback = &glDrawTransformFeedbackNULL; |
| genTransformFeedbacks = &glGenTransformFeedbacksNULL; |
| isTransformFeedback = &glIsTransformFeedbackNULL; |
| pauseTransformFeedback = &glPauseTransformFeedbackNULL; |
| resumeTransformFeedback = &glResumeTransformFeedbackNULL; |
| } |
| |
| if (extensions.count("GL_ARB_transform_feedback3") != 0) |
| { |
| beginQueryIndexed = &glBeginQueryIndexedNULL; |
| drawTransformFeedbackStream = &glDrawTransformFeedbackStreamNULL; |
| endQueryIndexed = &glEndQueryIndexedNULL; |
| getQueryIndexediv = &glGetQueryIndexedivNULL; |
| } |
| |
| if (extensions.count("GL_ARB_transform_feedback_instanced") != 0) |
| { |
| drawTransformFeedbackInstanced = &glDrawTransformFeedbackInstancedNULL; |
| drawTransformFeedbackStreamInstanced = &glDrawTransformFeedbackStreamInstancedNULL; |
| } |
| |
| if (extensions.count("GL_ARB_uniform_buffer_object") != 0) |
| { |
| bindBufferBase = &glBindBufferBaseNULL; |
| bindBufferRange = &glBindBufferRangeNULL; |
| getActiveUniformBlockName = &glGetActiveUniformBlockNameNULL; |
| getActiveUniformBlockiv = &glGetActiveUniformBlockivNULL; |
| getActiveUniformName = &glGetActiveUniformNameNULL; |
| getActiveUniformsiv = &glGetActiveUniformsivNULL; |
| getIntegeri_v = &glGetIntegeri_vNULL; |
| getUniformBlockIndex = &glGetUniformBlockIndexNULL; |
| getUniformIndices = &glGetUniformIndicesNULL; |
| uniformBlockBinding = &glUniformBlockBindingNULL; |
| } |
| |
| if (extensions.count("GL_ARB_vertex_array_object") != 0) |
| { |
| bindVertexArray = &glBindVertexArrayNULL; |
| deleteVertexArrays = &glDeleteVertexArraysNULL; |
| genVertexArrays = &glGenVertexArraysNULL; |
| isVertexArray = &glIsVertexArrayNULL; |
| } |
| |
| if (extensions.count("GL_ARB_vertex_attrib_64bit") != 0) |
| { |
| getVertexAttribLdv = &glGetVertexAttribLdvNULL; |
| vertexAttribL1d = &glVertexAttribL1dNULL; |
| vertexAttribL1dv = &glVertexAttribL1dvNULL; |
| vertexAttribL2d = &glVertexAttribL2dNULL; |
| vertexAttribL2dv = &glVertexAttribL2dvNULL; |
| vertexAttribL3d = &glVertexAttribL3dNULL; |
| vertexAttribL3dv = &glVertexAttribL3dvNULL; |
| vertexAttribL4d = &glVertexAttribL4dNULL; |
| vertexAttribL4dv = &glVertexAttribL4dvNULL; |
| vertexAttribLPointer = &glVertexAttribLPointerNULL; |
| } |
| |
| if (extensions.count("GL_ARB_vertex_attrib_binding") != 0) |
| { |
| bindVertexBuffer = &glBindVertexBufferNULL; |
| vertexAttribBinding = &glVertexAttribBindingNULL; |
| vertexAttribFormat = &glVertexAttribFormatNULL; |
| vertexAttribIFormat = &glVertexAttribIFormatNULL; |
| vertexAttribLFormat = &glVertexAttribLFormatNULL; |
| vertexBindingDivisor = &glVertexBindingDivisorNULL; |
| } |
| |
| if (extensions.count("GL_ARB_vertex_buffer_object") != 0) |
| { |
| bindBuffer = &glBindBufferNULL; |
| bufferData = &glBufferDataNULL; |
| bufferSubData = &glBufferSubDataNULL; |
| deleteBuffers = &glDeleteBuffersNULL; |
| genBuffers = &glGenBuffersNULL; |
| getBufferParameteriv = &glGetBufferParameterivNULL; |
| getBufferPointerv = &glGetBufferPointervNULL; |
| getBufferSubData = &glGetBufferSubDataNULL; |
| isBuffer = &glIsBufferNULL; |
| mapBuffer = &glMapBufferNULL; |
| unmapBuffer = &glUnmapBufferNULL; |
| } |
| |
| if (extensions.count("GL_ARB_vertex_program") != 0) |
| { |
| disableVertexAttribArray = &glDisableVertexAttribArrayNULL; |
| enableVertexAttribArray = &glEnableVertexAttribArrayNULL; |
| getProgramiv = &glGetProgramivNULL; |
| getVertexAttribPointerv = &glGetVertexAttribPointervNULL; |
| getVertexAttribdv = &glGetVertexAttribdvNULL; |
| getVertexAttribfv = &glGetVertexAttribfvNULL; |
| getVertexAttribiv = &glGetVertexAttribivNULL; |
| isProgram = &glIsProgramNULL; |
| vertexAttrib1d = &glVertexAttrib1dNULL; |
| vertexAttrib1dv = &glVertexAttrib1dvNULL; |
| vertexAttrib1f = &glVertexAttrib1fNULL; |
| vertexAttrib1fv = &glVertexAttrib1fvNULL; |
| vertexAttrib1s = &glVertexAttrib1sNULL; |
| vertexAttrib1sv = &glVertexAttrib1svNULL; |
| vertexAttrib2d = &glVertexAttrib2dNULL; |
| vertexAttrib2dv = &glVertexAttrib2dvNULL; |
| vertexAttrib2f = &glVertexAttrib2fNULL; |
| vertexAttrib2fv = &glVertexAttrib2fvNULL; |
| vertexAttrib2s = &glVertexAttrib2sNULL; |
| vertexAttrib2sv = &glVertexAttrib2svNULL; |
| vertexAttrib3d = &glVertexAttrib3dNULL; |
| vertexAttrib3dv = &glVertexAttrib3dvNULL; |
| vertexAttrib3f = &glVertexAttrib3fNULL; |
| vertexAttrib3fv = &glVertexAttrib3fvNULL; |
| vertexAttrib3s = &glVertexAttrib3sNULL; |
| vertexAttrib3sv = &glVertexAttrib3svNULL; |
| vertexAttrib4Nbv = &glVertexAttrib4NbvNULL; |
| vertexAttrib4Niv = &glVertexAttrib4NivNULL; |
| vertexAttrib4Nsv = &glVertexAttrib4NsvNULL; |
| vertexAttrib4Nub = &glVertexAttrib4NubNULL; |
| vertexAttrib4Nubv = &glVertexAttrib4NubvNULL; |
| vertexAttrib4Nuiv = &glVertexAttrib4NuivNULL; |
| vertexAttrib4Nusv = &glVertexAttrib4NusvNULL; |
| vertexAttrib4bv = &glVertexAttrib4bvNULL; |
| vertexAttrib4d = &glVertexAttrib4dNULL; |
| vertexAttrib4dv = &glVertexAttrib4dvNULL; |
| vertexAttrib4f = &glVertexAttrib4fNULL; |
| vertexAttrib4fv = &glVertexAttrib4fvNULL; |
| vertexAttrib4iv = &glVertexAttrib4ivNULL; |
| vertexAttrib4s = &glVertexAttrib4sNULL; |
| vertexAttrib4sv = &glVertexAttrib4svNULL; |
| vertexAttrib4ubv = &glVertexAttrib4ubvNULL; |
| vertexAttrib4uiv = &glVertexAttrib4uivNULL; |
| vertexAttrib4usv = &glVertexAttrib4usvNULL; |
| vertexAttribPointer = &glVertexAttribPointerNULL; |
| } |
| |
| if (extensions.count("GL_ARB_vertex_shader") != 0) |
| { |
| bindAttribLocation = &glBindAttribLocationNULL; |
| disableVertexAttribArray = &glDisableVertexAttribArrayNULL; |
| enableVertexAttribArray = &glEnableVertexAttribArrayNULL; |
| getActiveAttrib = &glGetActiveAttribNULL; |
| getAttribLocation = &glGetAttribLocationNULL; |
| getVertexAttribPointerv = &glGetVertexAttribPointervNULL; |
| getVertexAttribdv = &glGetVertexAttribdvNULL; |
| getVertexAttribfv = &glGetVertexAttribfvNULL; |
| getVertexAttribiv = &glGetVertexAttribivNULL; |
| vertexAttrib1d = &glVertexAttrib1dNULL; |
| vertexAttrib1dv = &glVertexAttrib1dvNULL; |
| vertexAttrib1f = &glVertexAttrib1fNULL; |
| vertexAttrib1fv = &glVertexAttrib1fvNULL; |
| vertexAttrib1s = &glVertexAttrib1sNULL; |
| vertexAttrib1sv = &glVertexAttrib1svNULL; |
| vertexAttrib2d = &glVertexAttrib2dNULL; |
| vertexAttrib2dv = &glVertexAttrib2dvNULL; |
| vertexAttrib2f = &glVertexAttrib2fNULL; |
| vertexAttrib2fv = &glVertexAttrib2fvNULL; |
| vertexAttrib2s = &glVertexAttrib2sNULL; |
| vertexAttrib2sv = &glVertexAttrib2svNULL; |
| vertexAttrib3d = &glVertexAttrib3dNULL; |
| vertexAttrib3dv = &glVertexAttrib3dvNULL; |
| vertexAttrib3f = &glVertexAttrib3fNULL; |
| vertexAttrib3fv = &glVertexAttrib3fvNULL; |
| vertexAttrib3s = &glVertexAttrib3sNULL; |
| vertexAttrib3sv = &glVertexAttrib3svNULL; |
| vertexAttrib4Nbv = &glVertexAttrib4NbvNULL; |
| vertexAttrib4Niv = &glVertexAttrib4NivNULL; |
| vertexAttrib4Nsv = &glVertexAttrib4NsvNULL; |
| vertexAttrib4Nub = &glVertexAttrib4NubNULL; |
| vertexAttrib4Nubv = &glVertexAttrib4NubvNULL; |
| vertexAttrib4Nuiv = &glVertexAttrib4NuivNULL; |
| vertexAttrib4Nusv = &glVertexAttrib4NusvNULL; |
| vertexAttrib4bv = &glVertexAttrib4bvNULL; |
| vertexAttrib4d = &glVertexAttrib4dNULL; |
| vertexAttrib4dv = &glVertexAttrib4dvNULL; |
| vertexAttrib4f = &glVertexAttrib4fNULL; |
| vertexAttrib4fv = &glVertexAttrib4fvNULL; |
| vertexAttrib4iv = &glVertexAttrib4ivNULL; |
| vertexAttrib4s = &glVertexAttrib4sNULL; |
| vertexAttrib4sv = &glVertexAttrib4svNULL; |
| vertexAttrib4ubv = &glVertexAttrib4ubvNULL; |
| vertexAttrib4uiv = &glVertexAttrib4uivNULL; |
| vertexAttrib4usv = &glVertexAttrib4usvNULL; |
| vertexAttribPointer = &glVertexAttribPointerNULL; |
| } |
| |
| if (extensions.count("GL_ARB_vertex_type_2_10_10_10_rev") != 0) |
| { |
| vertexAttribP1ui = &glVertexAttribP1uiNULL; |
| vertexAttribP1uiv = &glVertexAttribP1uivNULL; |
| vertexAttribP2ui = &glVertexAttribP2uiNULL; |
| vertexAttribP2uiv = &glVertexAttribP2uivNULL; |
| vertexAttribP3ui = &glVertexAttribP3uiNULL; |
| vertexAttribP3uiv = &glVertexAttribP3uivNULL; |
| vertexAttribP4ui = &glVertexAttribP4uiNULL; |
| vertexAttribP4uiv = &glVertexAttribP4uivNULL; |
| } |
| |
| if (extensions.count("GL_ARB_viewport_array") != 0) |
| { |
| depthRangeArrayv = &glDepthRangeArrayvNULL; |
| depthRangeIndexed = &glDepthRangeIndexedNULL; |
| getDoublei_v = &glGetDoublei_vNULL; |
| getFloati_v = &glGetFloati_vNULL; |
| scissorArrayv = &glScissorArrayvNULL; |
| scissorIndexed = &glScissorIndexedNULL; |
| scissorIndexedv = &glScissorIndexedvNULL; |
| viewportArrayv = &glViewportArrayvNULL; |
| viewportIndexedf = &glViewportIndexedfNULL; |
| viewportIndexedfv = &glViewportIndexedfvNULL; |
| } |
| |
| if (extensions.count("GL_EXT_blend_color") != 0) |
| { |
| blendColor = &glBlendColorNULL; |
| } |
| |
| if (extensions.count("GL_EXT_blend_equation_separate") != 0) |
| { |
| blendEquationSeparate = &glBlendEquationSeparateNULL; |
| } |
| |
| if (extensions.count("GL_EXT_blend_func_separate") != 0) |
| { |
| blendFuncSeparate = &glBlendFuncSeparateNULL; |
| } |
| |
| if (extensions.count("GL_EXT_copy_texture") != 0) |
| { |
| copyTexImage1D = &glCopyTexImage1DNULL; |
| copyTexImage2D = &glCopyTexImage2DNULL; |
| copyTexSubImage1D = &glCopyTexSubImage1DNULL; |
| copyTexSubImage2D = &glCopyTexSubImage2DNULL; |
| copyTexSubImage3D = &glCopyTexSubImage3DNULL; |
| } |
| |
| if (extensions.count("GL_EXT_direct_state_access") != 0) |
| { |
| checkNamedFramebufferStatus = &glCheckNamedFramebufferStatusNULL; |
| clearNamedBufferData = &glClearNamedBufferDataNULL; |
| clearNamedBufferSubData = &glClearNamedBufferSubDataNULL; |
| compressedTextureSubImage1D = &glCompressedTextureSubImage1DNULL; |
| compressedTextureSubImage2D = &glCompressedTextureSubImage2DNULL; |
| compressedTextureSubImage3D = &glCompressedTextureSubImage3DNULL; |
| copyTextureSubImage1D = &glCopyTextureSubImage1DNULL; |
| copyTextureSubImage2D = &glCopyTextureSubImage2DNULL; |
| copyTextureSubImage3D = &glCopyTextureSubImage3DNULL; |
| disableVertexArrayAttrib = &glDisableVertexArrayAttribNULL; |
| enableVertexArrayAttrib = &glEnableVertexArrayAttribNULL; |
| flushMappedNamedBufferRange = &glFlushMappedNamedBufferRangeNULL; |
| generateTextureMipmap = &glGenerateTextureMipmapNULL; |
| getCompressedTextureImage = &glGetCompressedTextureImageNULL; |
| getDoublei_v = &glGetDoublei_vNULL; |
| getFloati_v = &glGetFloati_vNULL; |
| getFramebufferParameteriv = &glGetFramebufferParameterivNULL; |
| getNamedBufferParameteriv = &glGetNamedBufferParameterivNULL; |
| getNamedBufferPointerv = &glGetNamedBufferPointervNULL; |
| getNamedBufferSubData = &glGetNamedBufferSubDataNULL; |
| getNamedFramebufferAttachmentParameteriv = &glGetNamedFramebufferAttachmentParameterivNULL; |
| getNamedFramebufferParameteriv = &glGetNamedFramebufferParameterivNULL; |
| getNamedRenderbufferParameteriv = &glGetNamedRenderbufferParameterivNULL; |
| getTextureImage = &glGetTextureImageNULL; |
| getTextureLevelParameterfv = &glGetTextureLevelParameterfvNULL; |
| getTextureLevelParameteriv = &glGetTextureLevelParameterivNULL; |
| getTextureParameterIiv = &glGetTextureParameterIivNULL; |
| getTextureParameterIuiv = &glGetTextureParameterIuivNULL; |
| getTextureParameterfv = &glGetTextureParameterfvNULL; |
| getTextureParameteriv = &glGetTextureParameterivNULL; |
| mapNamedBuffer = &glMapNamedBufferNULL; |
| mapNamedBufferRange = &glMapNamedBufferRangeNULL; |
| namedBufferData = &glNamedBufferDataNULL; |
| namedBufferStorage = &glNamedBufferStorageNULL; |
| namedBufferSubData = &glNamedBufferSubDataNULL; |
| namedFramebufferParameteri = &glNamedFramebufferParameteriNULL; |
| namedFramebufferRenderbuffer = &glNamedFramebufferRenderbufferNULL; |
| namedFramebufferTexture = &glNamedFramebufferTextureNULL; |
| namedFramebufferTextureLayer = &glNamedFramebufferTextureLayerNULL; |
| namedRenderbufferStorage = &glNamedRenderbufferStorageNULL; |
| namedRenderbufferStorageMultisample = &glNamedRenderbufferStorageMultisampleNULL; |
| programUniform1d = &glProgramUniform1dNULL; |
| programUniform1dv = &glProgramUniform1dvNULL; |
| programUniform2d = &glProgramUniform2dNULL; |
| programUniform2dv = &glProgramUniform2dvNULL; |
| programUniform3d = &glProgramUniform3dNULL; |
| programUniform3dv = &glProgramUniform3dvNULL; |
| programUniform4d = &glProgramUniform4dNULL; |
| programUniform4dv = &glProgramUniform4dvNULL; |
| programUniformMatrix2dv = &glProgramUniformMatrix2dvNULL; |
| programUniformMatrix2x3dv = &glProgramUniformMatrix2x3dvNULL; |
| programUniformMatrix2x4dv = &glProgramUniformMatrix2x4dvNULL; |
| programUniformMatrix3dv = &glProgramUniformMatrix3dvNULL; |
| programUniformMatrix3x2dv = &glProgramUniformMatrix3x2dvNULL; |
| programUniformMatrix3x4dv = &glProgramUniformMatrix3x4dvNULL; |
| programUniformMatrix4dv = &glProgramUniformMatrix4dvNULL; |
| programUniformMatrix4x2dv = &glProgramUniformMatrix4x2dvNULL; |
| programUniformMatrix4x3dv = &glProgramUniformMatrix4x3dvNULL; |
| textureBuffer = &glTextureBufferNULL; |
| textureBufferRange = &glTextureBufferRangeNULL; |
| textureParameterIiv = &glTextureParameterIivNULL; |
| textureParameterIuiv = &glTextureParameterIuivNULL; |
| textureParameterf = &glTextureParameterfNULL; |
| textureParameterfv = &glTextureParameterfvNULL; |
| textureParameteri = &glTextureParameteriNULL; |
| textureParameteriv = &glTextureParameterivNULL; |
| textureStorage1D = &glTextureStorage1DNULL; |
| textureStorage2D = &glTextureStorage2DNULL; |
| textureStorage2DMultisample = &glTextureStorage2DMultisampleNULL; |
| textureStorage3D = &glTextureStorage3DNULL; |
| textureStorage3DMultisample = &glTextureStorage3DMultisampleNULL; |
| textureSubImage1D = &glTextureSubImage1DNULL; |
| textureSubImage2D = &glTextureSubImage2DNULL; |
| textureSubImage3D = &glTextureSubImage3DNULL; |
| unmapNamedBuffer = &glUnmapNamedBufferNULL; |
| } |
| |
| if (extensions.count("GL_EXT_draw_range_elements") != 0) |
| { |
| drawRangeElements = &glDrawRangeElementsNULL; |
| } |
| |
| if (extensions.count("GL_EXT_framebuffer_blit") != 0) |
| { |
| blitFramebuffer = &glBlitFramebufferNULL; |
| } |
| |
| if (extensions.count("GL_EXT_framebuffer_multisample") != 0) |
| { |
| renderbufferStorageMultisample = &glRenderbufferStorageMultisampleNULL; |
| } |
| |
| if (extensions.count("GL_EXT_framebuffer_object") != 0) |
| { |
| bindFramebuffer = &glBindFramebufferNULL; |
| bindRenderbuffer = &glBindRenderbufferNULL; |
| checkFramebufferStatus = &glCheckFramebufferStatusNULL; |
| deleteFramebuffers = &glDeleteFramebuffersNULL; |
| deleteRenderbuffers = &glDeleteRenderbuffersNULL; |
| framebufferRenderbuffer = &glFramebufferRenderbufferNULL; |
| framebufferTexture1D = &glFramebufferTexture1DNULL; |
| framebufferTexture2D = &glFramebufferTexture2DNULL; |
| framebufferTexture3D = &glFramebufferTexture3DNULL; |
| genFramebuffers = &glGenFramebuffersNULL; |
| genRenderbuffers = &glGenRenderbuffersNULL; |
| generateMipmap = &glGenerateMipmapNULL; |
| getFramebufferAttachmentParameteriv = &glGetFramebufferAttachmentParameterivNULL; |
| getRenderbufferParameteriv = &glGetRenderbufferParameterivNULL; |
| isFramebuffer = &glIsFramebufferNULL; |
| isRenderbuffer = &glIsRenderbufferNULL; |
| renderbufferStorage = &glRenderbufferStorageNULL; |
| } |
| |
| if (extensions.count("GL_EXT_gpu_shader4") != 0) |
| { |
| bindFragDataLocation = &glBindFragDataLocationNULL; |
| getFragDataLocation = &glGetFragDataLocationNULL; |
| getUniformuiv = &glGetUniformuivNULL; |
| uniform1ui = &glUniform1uiNULL; |
| uniform1uiv = &glUniform1uivNULL; |
| uniform2ui = &glUniform2uiNULL; |
| uniform2uiv = &glUniform2uivNULL; |
| uniform3ui = &glUniform3uiNULL; |
| uniform3uiv = &glUniform3uivNULL; |
| uniform4ui = &glUniform4uiNULL; |
| uniform4uiv = &glUniform4uivNULL; |
| } |
| |
| if (extensions.count("GL_EXT_point_parameters") != 0) |
| { |
| pointParameterf = &glPointParameterfNULL; |
| pointParameterfv = &glPointParameterfvNULL; |
| } |
| |
| if (extensions.count("GL_EXT_polygon_offset") != 0) |
| { |
| polygonOffset = &glPolygonOffsetNULL; |
| } |
| |
| if (extensions.count("GL_EXT_provoking_vertex") != 0) |
| { |
| provokingVertex = &glProvokingVertexNULL; |
| } |
| |
| if (extensions.count("GL_EXT_shader_image_load_store") != 0) |
| { |
| bindImageTexture = &glBindImageTextureNULL; |
| memoryBarrier = &glMemoryBarrierNULL; |
| } |
| |
| if (extensions.count("GL_EXT_subtexture") != 0) |
| { |
| texSubImage1D = &glTexSubImage1DNULL; |
| texSubImage2D = &glTexSubImage2DNULL; |
| } |
| |
| if (extensions.count("GL_EXT_texture3D") != 0) |
| { |
| texImage3D = &glTexImage3DNULL; |
| texSubImage3D = &glTexSubImage3DNULL; |
| } |
| |
| if (extensions.count("GL_EXT_texture_array") != 0) |
| { |
| framebufferTextureLayer = &glFramebufferTextureLayerNULL; |
| } |
| |
| if (extensions.count("GL_EXT_texture_buffer_object") != 0) |
| { |
| texBuffer = &glTexBufferNULL; |
| } |
| |
| if (extensions.count("GL_EXT_texture_integer") != 0) |
| { |
| getTexParameterIiv = &glGetTexParameterIivNULL; |
| getTexParameterIuiv = &glGetTexParameterIuivNULL; |
| texParameterIiv = &glTexParameterIivNULL; |
| texParameterIuiv = &glTexParameterIuivNULL; |
| } |
| |
| if (extensions.count("GL_EXT_texture_object") != 0) |
| { |
| bindTexture = &glBindTextureNULL; |
| deleteTextures = &glDeleteTexturesNULL; |
| genTextures = &glGenTexturesNULL; |
| isTexture = &glIsTextureNULL; |
| } |
| |
| if (extensions.count("GL_EXT_timer_query") != 0) |
| { |
| getQueryObjecti64v = &glGetQueryObjecti64vNULL; |
| getQueryObjectui64v = &glGetQueryObjectui64vNULL; |
| } |
| |
| if (extensions.count("GL_EXT_transform_feedback") != 0) |
| { |
| beginTransformFeedback = &glBeginTransformFeedbackNULL; |
| bindBufferBase = &glBindBufferBaseNULL; |
| bindBufferRange = &glBindBufferRangeNULL; |
| endTransformFeedback = &glEndTransformFeedbackNULL; |
| getTransformFeedbackVarying = &glGetTransformFeedbackVaryingNULL; |
| transformFeedbackVaryings = &glTransformFeedbackVaryingsNULL; |
| } |
| |
| if (extensions.count("GL_EXT_vertex_array") != 0) |
| { |
| drawArrays = &glDrawArraysNULL; |
| getPointerv = &glGetPointervNULL; |
| } |
| |
| if (extensions.count("GL_EXT_vertex_attrib_64bit") != 0) |
| { |
| getVertexAttribLdv = &glGetVertexAttribLdvNULL; |
| vertexAttribL1d = &glVertexAttribL1dNULL; |
| vertexAttribL1dv = &glVertexAttribL1dvNULL; |
| vertexAttribL2d = &glVertexAttribL2dNULL; |
| vertexAttribL2dv = &glVertexAttribL2dvNULL; |
| vertexAttribL3d = &glVertexAttribL3dNULL; |
| vertexAttribL3dv = &glVertexAttribL3dvNULL; |
| vertexAttribL4d = &glVertexAttribL4dNULL; |
| vertexAttribL4dv = &glVertexAttribL4dvNULL; |
| vertexAttribLPointer = &glVertexAttribLPointerNULL; |
| } |
| |
| if (extensions.count("GL_KHR_debug") != 0) |
| { |
| debugMessageCallback = &glDebugMessageCallbackNULL; |
| debugMessageControl = &glDebugMessageControlNULL; |
| debugMessageInsert = &glDebugMessageInsertNULL; |
| getDebugMessageLog = &glGetDebugMessageLogNULL; |
| getObjectLabel = &glGetObjectLabelNULL; |
| getObjectPtrLabel = &glGetObjectPtrLabelNULL; |
| getPointerv = &glGetPointervNULL; |
| objectLabel = &glObjectLabelNULL; |
| objectPtrLabel = &glObjectPtrLabelNULL; |
| popDebugGroup = &glPopDebugGroupNULL; |
| pushDebugGroup = &glPushDebugGroupNULL; |
| } |
| |
| if (extensions.count("GL_KHR_robustness") != 0) |
| { |
| getGraphicsResetStatus = &glGetGraphicsResetStatusNULL; |
| getnUniformfv = &glGetnUniformfvNULL; |
| getnUniformiv = &glGetnUniformivNULL; |
| getnUniformuiv = &glGetnUniformuivNULL; |
| readnPixels = &glReadnPixelsNULL; |
| } |
| |
| if (extensions.count("GL_NV_geometry_program4") != 0) |
| { |
| framebufferTexture = &glFramebufferTextureNULL; |
| framebufferTextureLayer = &glFramebufferTextureLayerNULL; |
| } |
| |
| if (extensions.count("GL_NV_vertex_program4") != 0) |
| { |
| getVertexAttribIiv = &glGetVertexAttribIivNULL; |
| getVertexAttribIuiv = &glGetVertexAttribIuivNULL; |
| vertexAttribI1i = &glVertexAttribI1iNULL; |
| vertexAttribI1iv = &glVertexAttribI1ivNULL; |
| vertexAttribI1ui = &glVertexAttribI1uiNULL; |
| vertexAttribI1uiv = &glVertexAttribI1uivNULL; |
| vertexAttribI2i = &glVertexAttribI2iNULL; |
| vertexAttribI2iv = &glVertexAttribI2ivNULL; |
| vertexAttribI2ui = &glVertexAttribI2uiNULL; |
| vertexAttribI2uiv = &glVertexAttribI2uivNULL; |
| vertexAttribI3i = &glVertexAttribI3iNULL; |
| vertexAttribI3iv = &glVertexAttribI3ivNULL; |
| vertexAttribI3ui = &glVertexAttribI3uiNULL; |
| vertexAttribI3uiv = &glVertexAttribI3uivNULL; |
| vertexAttribI4bv = &glVertexAttribI4bvNULL; |
| vertexAttribI4i = &glVertexAttribI4iNULL; |
| vertexAttribI4iv = &glVertexAttribI4ivNULL; |
| vertexAttribI4sv = &glVertexAttribI4svNULL; |
| vertexAttribI4ubv = &glVertexAttribI4ubvNULL; |
| vertexAttribI4ui = &glVertexAttribI4uiNULL; |
| vertexAttribI4uiv = &glVertexAttribI4uivNULL; |
| vertexAttribI4usv = &glVertexAttribI4usvNULL; |
| vertexAttribIPointer = &glVertexAttribIPointerNULL; |
| } |
| |
| if (extensions.count("GL_OES_single_precision") != 0) |
| { |
| clearDepthf = &glClearDepthfNULL; |
| depthRangef = &glDepthRangefNULL; |
| } |
| } |
| |
| void DispatchTableGL::initProcsGLESNULL(const gl::Version &version, |
| const std::set<std::string> &extensions) |
| { |
| if (version >= gl::Version(2, 0)) |
| { |
| activeTexture = &glActiveTextureNULL; |
| attachShader = &glAttachShaderNULL; |
| bindAttribLocation = &glBindAttribLocationNULL; |
| bindBuffer = &glBindBufferNULL; |
| bindFramebuffer = &glBindFramebufferNULL; |
| bindRenderbuffer = &glBindRenderbufferNULL; |
| bindTexture = &glBindTextureNULL; |
| blendColor = &glBlendColorNULL; |
| blendEquation = &glBlendEquationNULL; |
| blendEquationSeparate = &glBlendEquationSeparateNULL; |
| blendFunc = &glBlendFuncNULL; |
| blendFuncSeparate = &glBlendFuncSeparateNULL; |
| bufferData = &glBufferDataNULL; |
| bufferSubData = &glBufferSubDataNULL; |
| checkFramebufferStatus = &glCheckFramebufferStatusNULL; |
| clear = &glClearNULL; |
| clearColor = &glClearColorNULL; |
| clearDepthf = &glClearDepthfNULL; |
| clearStencil = &glClearStencilNULL; |
| colorMask = &glColorMaskNULL; |
| compileShader = &glCompileShaderNULL; |
| compressedTexImage2D = &glCompressedTexImage2DNULL; |
| compressedTexSubImage2D = &glCompressedTexSubImage2DNULL; |
| copyTexImage2D = &glCopyTexImage2DNULL; |
| copyTexSubImage2D = &glCopyTexSubImage2DNULL; |
| createProgram = &glCreateProgramNULL; |
| createShader = &glCreateShaderNULL; |
| cullFace = &glCullFaceNULL; |
| deleteBuffers = &glDeleteBuffersNULL; |
| deleteFramebuffers = &glDeleteFramebuffersNULL; |
| deleteProgram = &glDeleteProgramNULL; |
| deleteRenderbuffers = &glDeleteRenderbuffersNULL; |
| deleteShader = &glDeleteShaderNULL; |
| deleteTextures = &glDeleteTexturesNULL; |
| depthFunc = &glDepthFuncNULL; |
| depthMask = &glDepthMaskNULL; |
| depthRangef = &glDepthRangefNULL; |
| detachShader = &glDetachShaderNULL; |
| disable = &glDisableNULL; |
| disableVertexAttribArray = &glDisableVertexAttribArrayNULL; |
| drawArrays = &glDrawArraysNULL; |
| drawElements = &glDrawElementsNULL; |
| enable = &glEnableNULL; |
| enableVertexAttribArray = &glEnableVertexAttribArrayNULL; |
| finish = &glFinishNULL; |
| flush = &glFlushNULL; |
| framebufferRenderbuffer = &glFramebufferRenderbufferNULL; |
| framebufferTexture2D = &glFramebufferTexture2DNULL; |
| frontFace = &glFrontFaceNULL; |
| genBuffers = &glGenBuffersNULL; |
| genFramebuffers = &glGenFramebuffersNULL; |
| genRenderbuffers = &glGenRenderbuffersNULL; |
| genTextures = &glGenTexturesNULL; |
| generateMipmap = &glGenerateMipmapNULL; |
| getActiveAttrib = &glGetActiveAttribNULL; |
| getActiveUniform = &glGetActiveUniformNULL; |
| getAttachedShaders = &glGetAttachedShadersNULL; |
| getAttribLocation = &glGetAttribLocationNULL; |
| getBooleanv = &glGetBooleanvNULL; |
| getBufferParameteriv = &glGetBufferParameterivNULL; |
| getError = &glGetErrorNULL; |
| getFloatv = &glGetFloatvNULL; |
| getFramebufferAttachmentParameteriv = &glGetFramebufferAttachmentParameterivNULL; |
| getIntegerv = &glGetIntegervNULL; |
| getProgramInfoLog = &glGetProgramInfoLogNULL; |
| getProgramiv = &glGetProgramivNULL; |
| getRenderbufferParameteriv = &glGetRenderbufferParameterivNULL; |
| getShaderInfoLog = &glGetShaderInfoLogNULL; |
| getShaderPrecisionFormat = &glGetShaderPrecisionFormatNULL; |
| getShaderSource = &glGetShaderSourceNULL; |
| getShaderiv = &glGetShaderivNULL; |
| getString = &glGetStringNULL; |
| getTexParameterfv = &glGetTexParameterfvNULL; |
| getTexParameteriv = &glGetTexParameterivNULL; |
| getUniformLocation = &glGetUniformLocationNULL; |
| getUniformfv = &glGetUniformfvNULL; |
| getUniformiv = &glGetUniformivNULL; |
| getVertexAttribPointerv = &glGetVertexAttribPointervNULL; |
| getVertexAttribfv = &glGetVertexAttribfvNULL; |
| getVertexAttribiv = &glGetVertexAttribivNULL; |
| hint = &glHintNULL; |
| isBuffer = &glIsBufferNULL; |
| isEnabled = &glIsEnabledNULL; |
| isFramebuffer = &glIsFramebufferNULL; |
| isProgram = &glIsProgramNULL; |
| isRenderbuffer = &glIsRenderbufferNULL; |
| isShader = &glIsShaderNULL; |
| isTexture = &glIsTextureNULL; |
| lineWidth = &glLineWidthNULL; |
| linkProgram = &glLinkProgramNULL; |
| pixelStorei = &glPixelStoreiNULL; |
| polygonOffset = &glPolygonOffsetNULL; |
| readPixels = &glReadPixelsNULL; |
| releaseShaderCompiler = &glReleaseShaderCompilerNULL; |
| renderbufferStorage = &glRenderbufferStorageNULL; |
| sampleCoverage = &glSampleCoverageNULL; |
| scissor = &glScissorNULL; |
| shaderBinary = &glShaderBinaryNULL; |
| shaderSource = &glShaderSourceNULL; |
| stencilFunc = &glStencilFuncNULL; |
| stencilFuncSeparate = &glStencilFuncSeparateNULL; |
| stencilMask = &glStencilMaskNULL; |
| stencilMaskSeparate = &glStencilMaskSeparateNULL; |
| stencilOp = &glStencilOpNULL; |
| stencilOpSeparate = &glStencilOpSeparateNULL; |
| texImage2D = &glTexImage2DNULL; |
| texParameterf = &glTexParameterfNULL; |
| texParameterfv = &glTexParameterfvNULL; |
| texParameteri = &glTexParameteriNULL; |
| texParameteriv = &glTexParameterivNULL; |
| texSubImage2D = &glTexSubImage2DNULL; |
| uniform1f = &glUniform1fNULL; |
| uniform1fv = &glUniform1fvNULL; |
| uniform1i = &glUniform1iNULL; |
| uniform1iv = &glUniform1ivNULL; |
| uniform2f = &glUniform2fNULL; |
| uniform2fv = &glUniform2fvNULL; |
| uniform2i = &glUniform2iNULL; |
| uniform2iv = &glUniform2ivNULL; |
| uniform3f = &glUniform3fNULL; |
| uniform3fv = &glUniform3fvNULL; |
| uniform3i = &glUniform3iNULL; |
| uniform3iv = &glUniform3ivNULL; |
| uniform4f = &glUniform4fNULL; |
| uniform4fv = &glUniform4fvNULL; |
| uniform4i = &glUniform4iNULL; |
| uniform4iv = &glUniform4ivNULL; |
| uniformMatrix2fv = &glUniformMatrix2fvNULL; |
| uniformMatrix3fv = &glUniformMatrix3fvNULL; |
| uniformMatrix4fv = &glUniformMatrix4fvNULL; |
| useProgram = &glUseProgramNULL; |
| validateProgram = &glValidateProgramNULL; |
| vertexAttrib1f = &glVertexAttrib1fNULL; |
| vertexAttrib1fv = &glVertexAttrib1fvNULL; |
| vertexAttrib2f = &glVertexAttrib2fNULL; |
| vertexAttrib2fv = &glVertexAttrib2fvNULL; |
| vertexAttrib3f = &glVertexAttrib3fNULL; |
| vertexAttrib3fv = &glVertexAttrib3fvNULL; |
| vertexAttrib4f = &glVertexAttrib4fNULL; |
| vertexAttrib4fv = &glVertexAttrib4fvNULL; |
| vertexAttribPointer = &glVertexAttribPointerNULL; |
| viewport = &glViewportNULL; |
| } |
| |
| if (version >= gl::Version(3, 0)) |
| { |
| beginQuery = &glBeginQueryNULL; |
| beginTransformFeedback = &glBeginTransformFeedbackNULL; |
| bindBufferBase = &glBindBufferBaseNULL; |
| bindBufferRange = &glBindBufferRangeNULL; |
| bindSampler = &glBindSamplerNULL; |
| bindTransformFeedback = &glBindTransformFeedbackNULL; |
| bindVertexArray = &glBindVertexArrayNULL; |
| blitFramebuffer = &glBlitFramebufferNULL; |
| clearBufferfi = &glClearBufferfiNULL; |
| clearBufferfv = &glClearBufferfvNULL; |
| clearBufferiv = &glClearBufferivNULL; |
| clearBufferuiv = &glClearBufferuivNULL; |
| clientWaitSync = &glClientWaitSyncNULL; |
| compressedTexImage3D = &glCompressedTexImage3DNULL; |
| compressedTexSubImage3D = &glCompressedTexSubImage3DNULL; |
| copyBufferSubData = &glCopyBufferSubDataNULL; |
| copyTexSubImage3D = &glCopyTexSubImage3DNULL; |
| deleteQueries = &glDeleteQueriesNULL; |
| deleteSamplers = &glDeleteSamplersNULL; |
| deleteSync = &glDeleteSyncNULL; |
| deleteTransformFeedbacks = &glDeleteTransformFeedbacksNULL; |
| deleteVertexArrays = &glDeleteVertexArraysNULL; |
| drawArraysInstanced = &glDrawArraysInstancedNULL; |
| drawBuffers = &glDrawBuffersNULL; |
| drawElementsInstanced = &glDrawElementsInstancedNULL; |
| drawRangeElements = &glDrawRangeElementsNULL; |
| endQuery = &glEndQueryNULL; |
| endTransformFeedback = &glEndTransformFeedbackNULL; |
| fenceSync = &glFenceSyncNULL; |
| flushMappedBufferRange = &glFlushMappedBufferRangeNULL; |
| framebufferTextureLayer = &glFramebufferTextureLayerNULL; |
| genQueries = &glGenQueriesNULL; |
| genSamplers = &glGenSamplersNULL; |
| genTransformFeedbacks = &glGenTransformFeedbacksNULL; |
| genVertexArrays = &glGenVertexArraysNULL; |
| getActiveUniformBlockName = &glGetActiveUniformBlockNameNULL; |
| getActiveUniformBlockiv = &glGetActiveUniformBlockivNULL; |
| getActiveUniformsiv = &glGetActiveUniformsivNULL; |
| getBufferParameteri64v = &glGetBufferParameteri64vNULL; |
| getBufferPointerv = &glGetBufferPointervNULL; |
| getFragDataLocation = &glGetFragDataLocationNULL; |
| getInteger64i_v = &glGetInteger64i_vNULL; |
| getInteger64v = &glGetInteger64vNULL; |
| getIntegeri_v = &glGetIntegeri_vNULL; |
| getInternalformativ = &glGetInternalformativNULL; |
| getProgramBinary = &glGetProgramBinaryNULL; |
| getQueryObjectuiv = &glGetQueryObjectuivNULL; |
| getQueryiv = &glGetQueryivNULL; |
| getSamplerParameterfv = &glGetSamplerParameterfvNULL; |
| getSamplerParameteriv = &glGetSamplerParameterivNULL; |
| getStringi = &glGetStringiNULL; |
| getSynciv = &glGetSyncivNULL; |
| getTransformFeedbackVarying = &glGetTransformFeedbackVaryingNULL; |
| getUniformBlockIndex = &glGetUniformBlockIndexNULL; |
| getUniformIndices = &glGetUniformIndicesNULL; |
| getUniformuiv = &glGetUniformuivNULL; |
| getVertexAttribIiv = &glGetVertexAttribIivNULL; |
| getVertexAttribIuiv = &glGetVertexAttribIuivNULL; |
| invalidateFramebuffer = &glInvalidateFramebufferNULL; |
| invalidateSubFramebuffer = &glInvalidateSubFramebufferNULL; |
| isQuery = &glIsQueryNULL; |
| isSampler = &glIsSamplerNULL; |
| isSync = &glIsSyncNULL; |
| isTransformFeedback = &glIsTransformFeedbackNULL; |
| isVertexArray = &glIsVertexArrayNULL; |
| mapBufferRange = &glMapBufferRangeNULL; |
| pauseTransformFeedback = &glPauseTransformFeedbackNULL; |
| programBinary = &glProgramBinaryNULL; |
| programParameteri = &glProgramParameteriNULL; |
| readBuffer = &glReadBufferNULL; |
| renderbufferStorageMultisample = &glRenderbufferStorageMultisampleNULL; |
| resumeTransformFeedback = &glResumeTransformFeedbackNULL; |
| samplerParameterf = &glSamplerParameterfNULL; |
| samplerParameterfv = &glSamplerParameterfvNULL; |
| samplerParameteri = &glSamplerParameteriNULL; |
| samplerParameteriv = &glSamplerParameterivNULL; |
| texImage3D = &glTexImage3DNULL; |
| texStorage2D = &glTexStorage2DNULL; |
| texStorage3D = &glTexStorage3DNULL; |
| texSubImage3D = &glTexSubImage3DNULL; |
| transformFeedbackVaryings = &glTransformFeedbackVaryingsNULL; |
| uniform1ui = &glUniform1uiNULL; |
| uniform1uiv = &glUniform1uivNULL; |
| uniform2ui = &glUniform2uiNULL; |
| uniform2uiv = &glUniform2uivNULL; |
| uniform3ui = &glUniform3uiNULL; |
| uniform3uiv = &glUniform3uivNULL; |
| uniform4ui = &glUniform4uiNULL; |
| uniform4uiv = &glUniform4uivNULL; |
| uniformBlockBinding = &glUniformBlockBindingNULL; |
| uniformMatrix2x3fv = &glUniformMatrix2x3fvNULL; |
| uniformMatrix2x4fv = &glUniformMatrix2x4fvNULL; |
| uniformMatrix3x2fv = &glUniformMatrix3x2fvNULL; |
| uniformMatrix3x4fv = &glUniformMatrix3x4fvNULL; |
| uniformMatrix4x2fv = &glUniformMatrix4x2fvNULL; |
| uniformMatrix4x3fv = &glUniformMatrix4x3fvNULL; |
| unmapBuffer = &glUnmapBufferNULL; |
| vertexAttribDivisor = &glVertexAttribDivisorNULL; |
| vertexAttribI4i = &glVertexAttribI4iNULL; |
| vertexAttribI4iv = &glVertexAttribI4ivNULL; |
| vertexAttribI4ui = &glVertexAttribI4uiNULL; |
| vertexAttribI4uiv = &glVertexAttribI4uivNULL; |
| vertexAttribIPointer = &glVertexAttribIPointerNULL; |
| waitSync = &glWaitSyncNULL; |
| } |
| |
| if (version >= gl::Version(3, 1)) |
| { |
| activeShaderProgram = &glActiveShaderProgramNULL; |
| bindImageTexture = &glBindImageTextureNULL; |
| bindProgramPipeline = &glBindProgramPipelineNULL; |
| bindVertexBuffer = &glBindVertexBufferNULL; |
| createShaderProgramv = &glCreateShaderProgramvNULL; |
| deleteProgramPipelines = &glDeleteProgramPipelinesNULL; |
| dispatchCompute = &glDispatchComputeNULL; |
| dispatchComputeIndirect = &glDispatchComputeIndirectNULL; |
| drawArraysIndirect = &glDrawArraysIndirectNULL; |
| drawElementsIndirect = &glDrawElementsIndirectNULL; |
| framebufferParameteri = &glFramebufferParameteriNULL; |
| genProgramPipelines = &glGenProgramPipelinesNULL; |
| getBooleani_v = &glGetBooleani_vNULL; |
| getFramebufferParameteriv = &glGetFramebufferParameterivNULL; |
| getMultisamplefv = &glGetMultisamplefvNULL; |
| getProgramInterfaceiv = &glGetProgramInterfaceivNULL; |
| getProgramPipelineInfoLog = &glGetProgramPipelineInfoLogNULL; |
| getProgramPipelineiv = &glGetProgramPipelineivNULL; |
| getProgramResourceIndex = &glGetProgramResourceIndexNULL; |
| getProgramResourceLocation = &glGetProgramResourceLocationNULL; |
| getProgramResourceName = &glGetProgramResourceNameNULL; |
| getProgramResourceiv = &glGetProgramResourceivNULL; |
| getTexLevelParameterfv = &glGetTexLevelParameterfvNULL; |
| getTexLevelParameteriv = &glGetTexLevelParameterivNULL; |
| isProgramPipeline = &glIsProgramPipelineNULL; |
| memoryBarrier = &glMemoryBarrierNULL; |
| memoryBarrierByRegion = &glMemoryBarrierByRegionNULL; |
| programUniform1f = &glProgramUniform1fNULL; |
| programUniform1fv = &glProgramUniform1fvNULL; |
| programUniform1i = &glProgramUniform1iNULL; |
| programUniform1iv = &glProgramUniform1ivNULL; |
| programUniform1ui = &glProgramUniform1uiNULL; |
| programUniform1uiv = &glProgramUniform1uivNULL; |
| programUniform2f = &glProgramUniform2fNULL; |
| programUniform2fv = &glProgramUniform2fvNULL; |
| programUniform2i = &glProgramUniform2iNULL; |
| programUniform2iv = &glProgramUniform2ivNULL; |
| programUniform2ui = &glProgramUniform2uiNULL; |
| programUniform2uiv = &glProgramUniform2uivNULL; |
| programUniform3f = &glProgramUniform3fNULL; |
| programUniform3fv = &glProgramUniform3fvNULL; |
| programUniform3i = &glProgramUniform3iNULL; |
| programUniform3iv = &glProgramUniform3ivNULL; |
| programUniform3ui = &glProgramUniform3uiNULL; |
| programUniform3uiv = &glProgramUniform3uivNULL; |
| programUniform4f = &glProgramUniform4fNULL; |
| programUniform4fv = &glProgramUniform4fvNULL; |
| programUniform4i = &glProgramUniform4iNULL; |
| programUniform4iv = &glProgramUniform4ivNULL; |
| programUniform4ui = &glProgramUniform4uiNULL; |
| programUniform4uiv = &glProgramUniform4uivNULL; |
| programUniformMatrix2fv = &glProgramUniformMatrix2fvNULL; |
| programUniformMatrix2x3fv = &glProgramUniformMatrix2x3fvNULL; |
| programUniformMatrix2x4fv = &glProgramUniformMatrix2x4fvNULL; |
| programUniformMatrix3fv = &glProgramUniformMatrix3fvNULL; |
| programUniformMatrix3x2fv = &glProgramUniformMatrix3x2fvNULL; |
| programUniformMatrix3x4fv = &glProgramUniformMatrix3x4fvNULL; |
| programUniformMatrix4fv = &glProgramUniformMatrix4fvNULL; |
| programUniformMatrix4x2fv = &glProgramUniformMatrix4x2fvNULL; |
| programUniformMatrix4x3fv = &glProgramUniformMatrix4x3fvNULL; |
| sampleMaski = &glSampleMaskiNULL; |
| texStorage2DMultisample = &glTexStorage2DMultisampleNULL; |
| useProgramStages = &glUseProgramStagesNULL; |
| validateProgramPipeline = &glValidateProgramPipelineNULL; |
| vertexAttribBinding = &glVertexAttribBindingNULL; |
| vertexAttribFormat = &glVertexAttribFormatNULL; |
| vertexAttribIFormat = &glVertexAttribIFormatNULL; |
| vertexBindingDivisor = &glVertexBindingDivisorNULL; |
| } |
| |
| if (version >= gl::Version(3, 2)) |
| { |
| blendBarrier = &glBlendBarrierNULL; |
| blendEquationSeparatei = &glBlendEquationSeparateiNULL; |
| blendEquationi = &glBlendEquationiNULL; |
| blendFuncSeparatei = &glBlendFuncSeparateiNULL; |
| blendFunci = &glBlendFunciNULL; |
| colorMaski = &glColorMaskiNULL; |
| copyImageSubData = &glCopyImageSubDataNULL; |
| debugMessageCallback = &glDebugMessageCallbackNULL; |
| debugMessageControl = &glDebugMessageControlNULL; |
| debugMessageInsert = &glDebugMessageInsertNULL; |
| disablei = &glDisableiNULL; |
| drawElementsBaseVertex = &glDrawElementsBaseVertexNULL; |
| drawElementsInstancedBaseVertex = &glDrawElementsInstancedBaseVertexNULL; |
| drawRangeElementsBaseVertex = &glDrawRangeElementsBaseVertexNULL; |
| enablei = &glEnableiNULL; |
| framebufferTexture = &glFramebufferTextureNULL; |
| getDebugMessageLog = &glGetDebugMessageLogNULL; |
| getGraphicsResetStatus = &glGetGraphicsResetStatusNULL; |
| getObjectLabel = &glGetObjectLabelNULL; |
| getObjectPtrLabel = &glGetObjectPtrLabelNULL; |
| getPointerv = &glGetPointervNULL; |
| getSamplerParameterIiv = &glGetSamplerParameterIivNULL; |
| getSamplerParameterIuiv = &glGetSamplerParameterIuivNULL; |
| getTexParameterIiv = &glGetTexParameterIivNULL; |
| getTexParameterIuiv = &glGetTexParameterIuivNULL; |
| getnUniformfv = &glGetnUniformfvNULL; |
| getnUniformiv = &glGetnUniformivNULL; |
| getnUniformuiv = &glGetnUniformuivNULL; |
| isEnabledi = &glIsEnablediNULL; |
| minSampleShading = &glMinSampleShadingNULL; |
| objectLabel = &glObjectLabelNULL; |
| objectPtrLabel = &glObjectPtrLabelNULL; |
| patchParameteri = &glPatchParameteriNULL; |
| popDebugGroup = &glPopDebugGroupNULL; |
| primitiveBoundingBox = &glPrimitiveBoundingBoxNULL; |
| pushDebugGroup = &glPushDebugGroupNULL; |
| readnPixels = &glReadnPixelsNULL; |
| samplerParameterIiv = &glSamplerParameterIivNULL; |
| samplerParameterIuiv = &glSamplerParameterIuivNULL; |
| texBuffer = &glTexBufferNULL; |
| texBufferRange = &glTexBufferRangeNULL; |
| texParameterIiv = &glTexParameterIivNULL; |
| texParameterIuiv = &glTexParameterIuivNULL; |
| texStorage3DMultisample = &glTexStorage3DMultisampleNULL; |
| } |
| |
| if (extensions.count("GL_EXT_base_instance") != 0) |
| { |
| drawArraysInstancedBaseInstance = &glDrawArraysInstancedBaseInstanceNULL; |
| drawElementsInstancedBaseInstance = &glDrawElementsInstancedBaseInstanceNULL; |
| drawElementsInstancedBaseVertexBaseInstance = |
| &glDrawElementsInstancedBaseVertexBaseInstanceNULL; |
| } |
| |
| if (extensions.count("GL_EXT_blend_func_extended") != 0) |
| { |
| bindFragDataLocation = &glBindFragDataLocationNULL; |
| bindFragDataLocationIndexed = &glBindFragDataLocationIndexedNULL; |
| getFragDataIndex = &glGetFragDataIndexNULL; |
| getProgramResourceLocationIndex = &glGetProgramResourceLocationIndexNULL; |
| } |
| |
| if (extensions.count("GL_EXT_buffer_storage") != 0) |
| { |
| bufferStorage = &glBufferStorageNULL; |
| } |
| |
| if (extensions.count("GL_EXT_clear_texture") != 0) |
| { |
| clearTexImage = &glClearTexImageNULL; |
| clearTexSubImage = &glClearTexSubImageNULL; |
| } |
| |
| if (extensions.count("GL_EXT_clip_control") != 0) |
| { |
| clipControl = &glClipControlNULL; |
| } |
| |
| if (extensions.count("GL_EXT_copy_image") != 0) |
| { |
| copyImageSubData = &glCopyImageSubDataNULL; |
| } |
| |
| if (extensions.count("GL_EXT_discard_framebuffer") != 0) |
| { |
| discardFramebufferEXT = &glDiscardFramebufferEXTNULL; |
| } |
| |
| if (extensions.count("GL_EXT_disjoint_timer_query") != 0) |
| { |
| beginQuery = &glBeginQueryNULL; |
| deleteQueries = &glDeleteQueriesNULL; |
| endQuery = &glEndQueryNULL; |
| genQueries = &glGenQueriesNULL; |
| getQueryObjecti64v = &glGetQueryObjecti64vNULL; |
| getQueryObjectiv = &glGetQueryObjectivNULL; |
| getQueryObjectui64v = &glGetQueryObjectui64vNULL; |
| getQueryObjectuiv = &glGetQueryObjectuivNULL; |
| getQueryiv = &glGetQueryivNULL; |
| isQuery = &glIsQueryNULL; |
| queryCounter = &glQueryCounterNULL; |
| } |
| |
| if (extensions.count("GL_EXT_draw_buffers") != 0) |
| { |
| drawBuffers = &glDrawBuffersNULL; |
| } |
| |
| if (extensions.count("GL_EXT_draw_buffers_indexed") != 0) |
| { |
| blendEquationSeparatei = &glBlendEquationSeparateiNULL; |
| blendEquationi = &glBlendEquationiNULL; |
| blendFuncSeparatei = &glBlendFuncSeparateiNULL; |
| blendFunci = &glBlendFunciNULL; |
| colorMaski = &glColorMaskiNULL; |
| disablei = &glDisableiNULL; |
| enablei = &glEnableiNULL; |
| isEnabledi = &glIsEnablediNULL; |
| } |
| |
| if (extensions.count("GL_EXT_draw_elements_base_vertex") != 0) |
| { |
| drawElementsBaseVertex = &glDrawElementsBaseVertexNULL; |
| drawElementsInstancedBaseVertex = &glDrawElementsInstancedBaseVertexNULL; |
| drawRangeElementsBaseVertex = &glDrawRangeElementsBaseVertexNULL; |
| multiDrawElementsBaseVertex = &glMultiDrawElementsBaseVertexNULL; |
| } |
| |
| if (extensions.count("GL_EXT_draw_transform_feedback") != 0) |
| { |
| drawTransformFeedback = &glDrawTransformFeedbackNULL; |
| drawTransformFeedbackInstanced = &glDrawTransformFeedbackInstancedNULL; |
| } |
| |
| if (extensions.count("GL_EXT_geometry_shader") != 0) |
| { |
| framebufferTexture = &glFramebufferTextureNULL; |
| } |
| |
| if (extensions.count("GL_EXT_instanced_arrays") != 0) |
| { |
| vertexAttribDivisor = &glVertexAttribDivisorNULL; |
| } |
| |
| if (extensions.count("GL_EXT_map_buffer_range") != 0) |
| { |
| flushMappedBufferRange = &glFlushMappedBufferRangeNULL; |
| mapBufferRange = &glMapBufferRangeNULL; |
| } |
| |
| if (extensions.count("GL_EXT_multi_draw_indirect") != 0) |
| { |
| multiDrawArraysIndirect = &glMultiDrawArraysIndirectNULL; |
| multiDrawElementsIndirect = &glMultiDrawElementsIndirectNULL; |
| } |
| |
| if (extensions.count("GL_EXT_multisampled_render_to_texture") != 0) |
| { |
| renderbufferStorageMultisample = &glRenderbufferStorageMultisampleNULL; |
| } |
| |
| if (extensions.count("GL_EXT_multiview_draw_buffers") != 0) |
| { |
| getIntegeri_v = &glGetIntegeri_vNULL; |
| } |
| |
| if (extensions.count("GL_EXT_occlusion_query_boolean") != 0) |
| { |
| beginQuery = &glBeginQueryNULL; |
| deleteQueries = &glDeleteQueriesNULL; |
| endQuery = &glEndQueryNULL; |
| genQueries = &glGenQueriesNULL; |
| getQueryObjectuiv = &glGetQueryObjectuivNULL; |
| getQueryiv = &glGetQueryivNULL; |
| isQuery = &glIsQueryNULL; |
| } |
| |
| if (extensions.count("GL_EXT_primitive_bounding_box") != 0) |
| { |
| primitiveBoundingBox = &glPrimitiveBoundingBoxNULL; |
| } |
| |
| if (extensions.count("GL_EXT_robustness") != 0) |
| { |
| getGraphicsResetStatus = &glGetGraphicsResetStatusNULL; |
| getnUniformfv = &glGetnUniformfvNULL; |
| getnUniformiv = &glGetnUniformivNULL; |
| readnPixels = &glReadnPixelsNULL; |
| } |
| |
| if (extensions.count("GL_EXT_tessellation_shader") != 0) |
| { |
| patchParameteri = &glPatchParameteriNULL; |
| } |
| |
| if (extensions.count("GL_EXT_texture_border_clamp") != 0) |
| { |
| getSamplerParameterIiv = &glGetSamplerParameterIivNULL; |
| getSamplerParameterIuiv = &glGetSamplerParameterIuivNULL; |
| getTexParameterIiv = &glGetTexParameterIivNULL; |
| getTexParameterIuiv = &glGetTexParameterIuivNULL; |
| samplerParameterIiv = &glSamplerParameterIivNULL; |
| samplerParameterIuiv = &glSamplerParameterIuivNULL; |
| texParameterIiv = &glTexParameterIivNULL; |
| texParameterIuiv = &glTexParameterIuivNULL; |
| } |
| |
| if (extensions.count("GL_EXT_texture_buffer") != 0) |
| { |
| texBuffer = &glTexBufferNULL; |
| texBufferRange = &glTexBufferRangeNULL; |
| } |
| |
| if (extensions.count("GL_EXT_texture_storage") != 0) |
| { |
| texStorage1D = &glTexStorage1DNULL; |
| texStorage2D = &glTexStorage2DNULL; |
| texStorage3D = &glTexStorage3DNULL; |
| textureStorage1D = &glTextureStorage1DNULL; |
| textureStorage2D = &glTextureStorage2DNULL; |
| textureStorage3D = &glTextureStorage3DNULL; |
| } |
| |
| if (extensions.count("GL_EXT_texture_view") != 0) |
| { |
| textureView = &glTextureViewNULL; |
| } |
| |
| if (extensions.count("GL_KHR_debug") != 0) |
| { |
| debugMessageCallback = &glDebugMessageCallbackNULL; |
| debugMessageControl = &glDebugMessageControlNULL; |
| debugMessageInsert = &glDebugMessageInsertNULL; |
| getDebugMessageLog = &glGetDebugMessageLogNULL; |
| getObjectLabel = &glGetObjectLabelNULL; |
| getObjectPtrLabel = &glGetObjectPtrLabelNULL; |
| getPointerv = &glGetPointervNULL; |
| objectLabel = &glObjectLabelNULL; |
| objectPtrLabel = &glObjectPtrLabelNULL; |
| popDebugGroup = &glPopDebugGroupNULL; |
| pushDebugGroup = &glPushDebugGroupNULL; |
| } |
| |
| if (extensions.count("GL_KHR_robustness") != 0) |
| { |
| getGraphicsResetStatus = &glGetGraphicsResetStatusNULL; |
| getnUniformfv = &glGetnUniformfvNULL; |
| getnUniformiv = &glGetnUniformivNULL; |
| getnUniformuiv = &glGetnUniformuivNULL; |
| readnPixels = &glReadnPixelsNULL; |
| } |
| |
| if (extensions.count("GL_OES_EGL_image") != 0) |
| { |
| eGLImageTargetRenderbufferStorageOES = &glEGLImageTargetRenderbufferStorageOESNULL; |
| eGLImageTargetTexture2DOES = &glEGLImageTargetTexture2DOESNULL; |
| } |
| |
| if (extensions.count("GL_OES_copy_image") != 0) |
| { |
| copyImageSubData = &glCopyImageSubDataNULL; |
| } |
| |
| if (extensions.count("GL_OES_draw_buffers_indexed") != 0) |
| { |
| blendEquationSeparatei = &glBlendEquationSeparateiNULL; |
| blendEquationi = &glBlendEquationiNULL; |
| blendFuncSeparatei = &glBlendFuncSeparateiNULL; |
| blendFunci = &glBlendFunciNULL; |
| colorMaski = &glColorMaskiNULL; |
| disablei = &glDisableiNULL; |
| enablei = &glEnableiNULL; |
| isEnabledi = &glIsEnablediNULL; |
| } |
| |
| if (extensions.count("GL_OES_draw_elements_base_vertex") != 0) |
| { |
| drawElementsBaseVertex = &glDrawElementsBaseVertexNULL; |
| drawElementsInstancedBaseVertex = &glDrawElementsInstancedBaseVertexNULL; |
| drawRangeElementsBaseVertex = &glDrawRangeElementsBaseVertexNULL; |
| multiDrawElementsBaseVertex = &glMultiDrawElementsBaseVertexNULL; |
| } |
| |
| if (extensions.count("GL_OES_geometry_shader") != 0) |
| { |
| framebufferTexture = &glFramebufferTextureNULL; |
| } |
| |
| if (extensions.count("GL_OES_get_program_binary") != 0) |
| { |
| getProgramBinary = &glGetProgramBinaryNULL; |
| programBinary = &glProgramBinaryNULL; |
| } |
| |
| if (extensions.count("GL_OES_mapbuffer") != 0) |
| { |
| getBufferPointerv = &glGetBufferPointervNULL; |
| mapBuffer = &glMapBufferNULL; |
| unmapBuffer = &glUnmapBufferNULL; |
| } |
| |
| if (extensions.count("GL_OES_primitive_bounding_box") != 0) |
| { |
| primitiveBoundingBox = &glPrimitiveBoundingBoxNULL; |
| } |
| |
| if (extensions.count("GL_OES_sample_shading") != 0) |
| { |
| minSampleShading = &glMinSampleShadingNULL; |
| } |
| |
| if (extensions.count("GL_OES_tessellation_shader") != 0) |
| { |
| patchParameteri = &glPatchParameteriNULL; |
| } |
| |
| if (extensions.count("GL_OES_texture_3D") != 0) |
| { |
| compressedTexImage3D = &glCompressedTexImage3DNULL; |
| compressedTexSubImage3D = &glCompressedTexSubImage3DNULL; |
| copyTexSubImage3D = &glCopyTexSubImage3DNULL; |
| framebufferTexture3D = &glFramebufferTexture3DNULL; |
| texImage3D = &glTexImage3DNULL; |
| texSubImage3D = &glTexSubImage3DNULL; |
| } |
| |
| if (extensions.count("GL_OES_texture_border_clamp") != 0) |
| { |
| getSamplerParameterIiv = &glGetSamplerParameterIivNULL; |
| getSamplerParameterIuiv = &glGetSamplerParameterIuivNULL; |
| getTexParameterIiv = &glGetTexParameterIivNULL; |
| getTexParameterIuiv = &glGetTexParameterIuivNULL; |
| samplerParameterIiv = &glSamplerParameterIivNULL; |
| samplerParameterIuiv = &glSamplerParameterIuivNULL; |
| texParameterIiv = &glTexParameterIivNULL; |
| texParameterIuiv = &glTexParameterIuivNULL; |
| } |
| |
| if (extensions.count("GL_OES_texture_buffer") != 0) |
| { |
| texBuffer = &glTexBufferNULL; |
| texBufferRange = &glTexBufferRangeNULL; |
| } |
| |
| if (extensions.count("GL_OES_texture_storage_multisample_2d_array") != 0) |
| { |
| texStorage3DMultisample = &glTexStorage3DMultisampleNULL; |
| } |
| |
| if (extensions.count("GL_OES_texture_view") != 0) |
| { |
| textureView = &glTextureViewNULL; |
| } |
| |
| if (extensions.count("GL_OES_vertex_array_object") != 0) |
| { |
| bindVertexArray = &glBindVertexArrayNULL; |
| deleteVertexArrays = &glDeleteVertexArraysNULL; |
| genVertexArrays = &glGenVertexArraysNULL; |
| isVertexArray = &glIsVertexArrayNULL; |
| } |
| |
| if (extensions.count("GL_OES_viewport_array") != 0) |
| { |
| disablei = &glDisableiNULL; |
| enablei = &glEnableiNULL; |
| getFloati_v = &glGetFloati_vNULL; |
| isEnabledi = &glIsEnablediNULL; |
| scissorArrayv = &glScissorArrayvNULL; |
| scissorIndexed = &glScissorIndexedNULL; |
| scissorIndexedv = &glScissorIndexedvNULL; |
| viewportArrayv = &glViewportArrayvNULL; |
| viewportIndexedf = &glViewportIndexedfNULL; |
| viewportIndexedfv = &glViewportIndexedfvNULL; |
| } |
| } |
| |
| void DispatchTableGL::initProcsSharedExtensionsNULL(const std::set<std::string> &extensions) |
| { |
| if (extensions.count("GL_EXT_blend_minmax") != 0) |
| { |
| blendEquation = &glBlendEquationNULL; |
| } |
| |
| if (extensions.count("GL_EXT_debug_label") != 0) |
| { |
| getObjectLabel = &glGetObjectLabelNULL; |
| } |
| |
| if (extensions.count("GL_EXT_debug_marker") != 0) |
| { |
| insertEventMarkerEXT = &glInsertEventMarkerEXTNULL; |
| popGroupMarkerEXT = &glPopGroupMarkerEXTNULL; |
| pushGroupMarkerEXT = &glPushGroupMarkerEXTNULL; |
| } |
| |
| if (extensions.count("GL_EXT_draw_instanced") != 0) |
| { |
| drawArraysInstanced = &glDrawArraysInstancedNULL; |
| drawElementsInstanced = &glDrawElementsInstancedNULL; |
| } |
| |
| if (extensions.count("GL_EXT_memory_object") != 0) |
| { |
| bufferStorageMemEXT = &glBufferStorageMemEXTNULL; |
| createMemoryObjectsEXT = &glCreateMemoryObjectsEXTNULL; |
| deleteMemoryObjectsEXT = &glDeleteMemoryObjectsEXTNULL; |
| getMemoryObjectParameterivEXT = &glGetMemoryObjectParameterivEXTNULL; |
| getUnsignedBytei_vEXT = &glGetUnsignedBytei_vEXTNULL; |
| getUnsignedBytevEXT = &glGetUnsignedBytevEXTNULL; |
| isMemoryObjectEXT = &glIsMemoryObjectEXTNULL; |
| memoryObjectParameterivEXT = &glMemoryObjectParameterivEXTNULL; |
| namedBufferStorageMemEXT = &glNamedBufferStorageMemEXTNULL; |
| texStorageMem2DEXT = &glTexStorageMem2DEXTNULL; |
| texStorageMem2DMultisampleEXT = &glTexStorageMem2DMultisampleEXTNULL; |
| texStorageMem3DEXT = &glTexStorageMem3DEXTNULL; |
| texStorageMem3DMultisampleEXT = &glTexStorageMem3DMultisampleEXTNULL; |
| textureStorageMem2DEXT = &glTextureStorageMem2DEXTNULL; |
| textureStorageMem2DMultisampleEXT = &glTextureStorageMem2DMultisampleEXTNULL; |
| textureStorageMem3DEXT = &glTextureStorageMem3DEXTNULL; |
| textureStorageMem3DMultisampleEXT = &glTextureStorageMem3DMultisampleEXTNULL; |
| } |
| |
| if (extensions.count("GL_EXT_memory_object_fd") != 0) |
| { |
| importMemoryFdEXT = &glImportMemoryFdEXTNULL; |
| } |
| |
| if (extensions.count("GL_EXT_memory_object_win32") != 0) |
| { |
| importMemoryWin32HandleEXT = &glImportMemoryWin32HandleEXTNULL; |
| importMemoryWin32NameEXT = &glImportMemoryWin32NameEXTNULL; |
| } |
| |
| if (extensions.count("GL_EXT_multi_draw_arrays") != 0) |
| { |
| multiDrawArrays = &glMultiDrawArraysNULL; |
| multiDrawElements = &glMultiDrawElementsNULL; |
| } |
| |
| if (extensions.count("GL_EXT_semaphore") != 0) |
| { |
| deleteSemaphoresEXT = &glDeleteSemaphoresEXTNULL; |
| genSemaphoresEXT = &glGenSemaphoresEXTNULL; |
| getSemaphoreParameterui64vEXT = &glGetSemaphoreParameterui64vEXTNULL; |
| getUnsignedBytei_vEXT = &glGetUnsignedBytei_vEXTNULL; |
| getUnsignedBytevEXT = &glGetUnsignedBytevEXTNULL; |
| isSemaphoreEXT = &glIsSemaphoreEXTNULL; |
| semaphoreParameterui64vEXT = &glSemaphoreParameterui64vEXTNULL; |
| signalSemaphoreEXT = &glSignalSemaphoreEXTNULL; |
| waitSemaphoreEXT = &glWaitSemaphoreEXTNULL; |
| } |
| |
| if (extensions.count("GL_EXT_semaphore_fd") != 0) |
| { |
| importSemaphoreFdEXT = &glImportSemaphoreFdEXTNULL; |
| } |
| |
| if (extensions.count("GL_EXT_semaphore_win32") != 0) |
| { |
| importSemaphoreWin32HandleEXT = &glImportSemaphoreWin32HandleEXTNULL; |
| importSemaphoreWin32NameEXT = &glImportSemaphoreWin32NameEXTNULL; |
| } |
| |
| if (extensions.count("GL_EXT_separate_shader_objects") != 0) |
| { |
| activeShaderProgram = &glActiveShaderProgramNULL; |
| bindProgramPipeline = &glBindProgramPipelineNULL; |
| createShaderProgramv = &glCreateShaderProgramvNULL; |
| deleteProgramPipelines = &glDeleteProgramPipelinesNULL; |
| genProgramPipelines = &glGenProgramPipelinesNULL; |
| getProgramPipelineInfoLog = &glGetProgramPipelineInfoLogNULL; |
| getProgramPipelineiv = &glGetProgramPipelineivNULL; |
| isProgramPipeline = &glIsProgramPipelineNULL; |
| programParameteri = &glProgramParameteriNULL; |
| programUniform1f = &glProgramUniform1fNULL; |
| programUniform1fv = &glProgramUniform1fvNULL; |
| programUniform1i = &glProgramUniform1iNULL; |
| programUniform1iv = &glProgramUniform1ivNULL; |
| programUniform1ui = &glProgramUniform1uiNULL; |
| programUniform1uiv = &glProgramUniform1uivNULL; |
| programUniform2f = &glProgramUniform2fNULL; |
| programUniform2fv = &glProgramUniform2fvNULL; |
| programUniform2i = &glProgramUniform2iNULL; |
| programUniform2iv = &glProgramUniform2ivNULL; |
| programUniform2ui = &glProgramUniform2uiNULL; |
| programUniform2uiv = &glProgramUniform2uivNULL; |
| programUniform3f = &glProgramUniform3fNULL; |
| programUniform3fv = &glProgramUniform3fvNULL; |
| programUniform3i = &glProgramUniform3iNULL; |
| programUniform3iv = &glProgramUniform3ivNULL; |
| programUniform3ui = &glProgramUniform3uiNULL; |
| programUniform3uiv = &glProgramUniform3uivNULL; |
| programUniform4f = &glProgramUniform4fNULL; |
| programUniform4fv = &glProgramUniform4fvNULL; |
| programUniform4i = &glProgramUniform4iNULL; |
| programUniform4iv = &glProgramUniform4ivNULL; |
| programUniform4ui = &glProgramUniform4uiNULL; |
| programUniform4uiv = &glProgramUniform4uivNULL; |
| programUniformMatrix2fv = &glProgramUniformMatrix2fvNULL; |
| programUniformMatrix2x3fv = &glProgramUniformMatrix2x3fvNULL; |
| programUniformMatrix2x4fv = &glProgramUniformMatrix2x4fvNULL; |
| programUniformMatrix3fv = &glProgramUniformMatrix3fvNULL; |
| programUniformMatrix3x2fv = &glProgramUniformMatrix3x2fvNULL; |
| programUniformMatrix3x4fv = &glProgramUniformMatrix3x4fvNULL; |
| programUniformMatrix4fv = &glProgramUniformMatrix4fvNULL; |
| programUniformMatrix4fv = &glProgramUniformMatrix4fvNULL; |
| programUniformMatrix4x2fv = &glProgramUniformMatrix4x2fvNULL; |
| programUniformMatrix4x3fv = &glProgramUniformMatrix4x3fvNULL; |
| useProgramStages = &glUseProgramStagesNULL; |
| validateProgramPipeline = &glValidateProgramPipelineNULL; |
| } |
| |
| if (extensions.count("GL_KHR_parallel_shader_compile") != 0) |
| { |
| maxShaderCompilerThreadsKHR = &glMaxShaderCompilerThreadsKHRNULL; |
| } |
| |
| if (extensions.count("GL_NV_fence") != 0) |
| { |
| deleteFencesNV = &glDeleteFencesNVNULL; |
| finishFenceNV = &glFinishFenceNVNULL; |
| genFencesNV = &glGenFencesNVNULL; |
| getFenceivNV = &glGetFenceivNVNULL; |
| isFenceNV = &glIsFenceNVNULL; |
| setFenceNV = &glSetFenceNVNULL; |
| testFenceNV = &glTestFenceNVNULL; |
| } |
| |
| if (extensions.count("GL_NV_framebuffer_mixed_samples") != 0) |
| { |
| coverageModulationNV = &glCoverageModulationNVNULL; |
| } |
| |
| if (extensions.count("GL_NV_internalformat_sample_query") != 0) |
| { |
| getInternalformatSampleivNV = &glGetInternalformatSampleivNVNULL; |
| } |
| |
| if (extensions.count("GL_NV_path_rendering") != 0) |
| { |
| coverFillPathInstancedNV = &glCoverFillPathInstancedNVNULL; |
| coverFillPathNV = &glCoverFillPathNVNULL; |
| coverStrokePathInstancedNV = &glCoverStrokePathInstancedNVNULL; |
| coverStrokePathNV = &glCoverStrokePathNVNULL; |
| deletePathsNV = &glDeletePathsNVNULL; |
| genPathsNV = &glGenPathsNVNULL; |
| getPathParameterfvNV = &glGetPathParameterfvNVNULL; |
| getPathParameterivNV = &glGetPathParameterivNVNULL; |
| isPathNV = &glIsPathNVNULL; |
| matrixLoadfEXT = &glMatrixLoadfEXTNULL; |
| pathCommandsNV = &glPathCommandsNVNULL; |
| pathParameterfNV = &glPathParameterfNVNULL; |
| pathParameteriNV = &glPathParameteriNVNULL; |
| pathStencilFuncNV = &glPathStencilFuncNVNULL; |
| programPathFragmentInputGenNV = &glProgramPathFragmentInputGenNVNULL; |
| stencilFillPathInstancedNV = &glStencilFillPathInstancedNVNULL; |
| stencilFillPathNV = &glStencilFillPathNVNULL; |
| stencilStrokePathInstancedNV = &glStencilStrokePathInstancedNVNULL; |
| stencilStrokePathNV = &glStencilStrokePathNVNULL; |
| stencilThenCoverFillPathInstancedNV = &glStencilThenCoverFillPathInstancedNVNULL; |
| stencilThenCoverFillPathNV = &glStencilThenCoverFillPathNVNULL; |
| stencilThenCoverStrokePathInstancedNV = &glStencilThenCoverStrokePathInstancedNVNULL; |
| stencilThenCoverStrokePathNV = &glStencilThenCoverStrokePathNVNULL; |
| } |
| |
| if (extensions.count("GL_OVR_multiview") != 0) |
| { |
| framebufferTextureMultiviewOVR = &glFramebufferTextureMultiviewOVRNULL; |
| } |
| } |
| #endif // defined(ANGLE_ENABLE_OPENGL_NULL) |
| |
| } // namespace rx |