diff --git a/scripts/code_generation_hashes/OpenGL_dispatch_table.json b/scripts/code_generation_hashes/OpenGL_dispatch_table.json index 1b754d0ff..46fbd2bb5 100644 --- a/scripts/code_generation_hashes/OpenGL_dispatch_table.json +++ b/scripts/code_generation_hashes/OpenGL_dispatch_table.json @@ -4,11 +4,11 @@ "src/libANGLE/renderer/angle_format.py": "32ba71942c0fd00e6807104f1bb80a3c", "src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp": - "02e276847f77b21a1c5d3c4885001ca5", + "aa8b6e65dfb22da4cc82207ef4668d4f", "src/libANGLE/renderer/gl/DispatchTableGL_autogen.h": "bb30a343213143900e8d72dd4b00bcb0", "src/libANGLE/renderer/gl/generate_gl_dispatch_table.py": - "2aaada12f9932fcd113cd4e9728e676a", + "69b2c89e66a92373e600af8be16e5576", "src/libANGLE/renderer/gl/gl_bindings_data.json": "6f46f537e07b457850c060ef0c7b76c5", "src/libANGLE/renderer/gl/null_functions.cpp": diff --git a/src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp b/src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp index abc1481ba..f121f47e3 100644 --- a/src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp +++ b/src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp @@ -17,10 +17,11 @@ # 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(loadProcAddress(NAME)) +#define ASSIGN(NAME, FP) \ + do \ + { \ + FP = reinterpret_cast(loadProcAddress(NAME)); \ + } while (0) namespace rx { @@ -30,733 +31,6 @@ void DispatchTableGL::initProcsDesktopGL(const gl::Version &version, const std::set &extensions) { #if defined(ANGLE_ENABLE_OPENGL_DESKTOP) - 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); @@ -1917,12 +1191,1079 @@ void DispatchTableGL::initProcsDesktopGL(const gl::Version &version, ASSIGN("glClearDepthfOES", clearDepthf); ASSIGN("glDepthRangefOES", depthRangef); } + + 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); + } #endif // defined(ANGLE_ENABLE_OPENGL_DESKTOP) } void DispatchTableGL::initProcsGLES(const gl::Version &version, const std::set &extensions) { + 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("glGetInteger64vEXT", getInteger64v); + 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("glTexBufferEXT", texBufferEXT); + ASSIGN("glTexBufferRangeEXT", texBufferRange); + ASSIGN("glTexBufferRangeEXT", texBufferRangeEXT); + } + + 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_NV_framebuffer_blit") != 0) + { + ASSIGN("glBlitFramebufferNV", blitFramebufferNV); + } + + 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("glTexBufferOES", texBufferOES); + ASSIGN("glTexBufferRangeOES", texBufferRange); + ASSIGN("glTexBufferRangeOES", texBufferRangeOES); + } + + 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); + } + if (version >= gl::Version(2, 0)) { ASSIGN("glActiveTexture", activeTexture); @@ -2296,346 +2637,6 @@ void DispatchTableGL::initProcsGLES(const gl::Version &version, 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("glGetInteger64vEXT", getInteger64v); - 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("glTexBufferEXT", texBufferEXT); - ASSIGN("glTexBufferRangeEXT", texBufferRange); - ASSIGN("glTexBufferRangeEXT", texBufferRangeEXT); - } - - 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_NV_framebuffer_blit") != 0) - { - ASSIGN("glBlitFramebufferNV", blitFramebufferNV); - } - - 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("glTexBufferOES", texBufferOES); - ASSIGN("glTexBufferRangeOES", texBufferRange); - ASSIGN("glTexBufferRangeOES", texBufferRangeOES); - } - - 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 &extensions) @@ -2810,732 +2811,6 @@ void DispatchTableGL::initProcsDesktopGLNULL(const gl::Version &version, const std::set &extensions) { # if defined(ANGLE_ENABLE_OPENGL_DESKTOP) - 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; @@ -4694,12 +3969,1078 @@ void DispatchTableGL::initProcsDesktopGLNULL(const gl::Version &version, clearDepthf = &glClearDepthfNULL; depthRangef = &glDepthRangefNULL; } + + 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; + } # endif // defined(ANGLE_ENABLE_OPENGL_DESKTOP) } void DispatchTableGL::initProcsGLESNULL(const gl::Version &version, const std::set &extensions) { + 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; + getInteger64v = &glGetInteger64vNULL; + 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; + texBufferEXT = &glTexBufferEXTNULL; + texBufferRange = &glTexBufferRangeNULL; + texBufferRangeEXT = &glTexBufferRangeEXTNULL; + } + + 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_NV_framebuffer_blit") != 0) + { + blitFramebufferNV = &glBlitFramebufferNVNULL; + } + + 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; + texBufferOES = &glTexBufferOESNULL; + texBufferRange = &glTexBufferRangeNULL; + texBufferRangeOES = &glTexBufferRangeOESNULL; + } + + 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; + } + if (version >= gl::Version(2, 0)) { activeTexture = &glActiveTextureNULL; @@ -5073,346 +5414,6 @@ void DispatchTableGL::initProcsGLESNULL(const gl::Version &version, 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; - getInteger64v = &glGetInteger64vNULL; - 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; - texBufferEXT = &glTexBufferEXTNULL; - texBufferRange = &glTexBufferRangeNULL; - texBufferRangeEXT = &glTexBufferRangeEXTNULL; - } - - 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_NV_framebuffer_blit") != 0) - { - blitFramebufferNV = &glBlitFramebufferNVNULL; - } - - 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; - texBufferOES = &glTexBufferOESNULL; - texBufferRange = &glTexBufferRangeNULL; - texBufferRangeOES = &glTexBufferRangeOESNULL; - } - - 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 &extensions) diff --git a/src/libANGLE/renderer/gl/generate_gl_dispatch_table.py b/src/libANGLE/renderer/gl/generate_gl_dispatch_table.py index 6436d8956..2d57cd36d 100644 --- a/src/libANGLE/renderer/gl/generate_gl_dispatch_table.py +++ b/src/libANGLE/renderer/gl/generate_gl_dispatch_table.py @@ -112,8 +112,7 @@ dispatch_table_source_template = """// GENERATED FILE - DO NOT EDIT. #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(loadProcAddress(NAME)) +#define ASSIGN(NAME, FP) do {{ FP = reinterpret_cast(loadProcAddress(NAME)); }} while (0) namespace rx {{ @@ -122,17 +121,17 @@ DispatchTableGL::DispatchTableGL() = default; void DispatchTableGL::initProcsDesktopGL(const gl::Version &version, const std::set &extensions) {{ #if defined(ANGLE_ENABLE_OPENGL_DESKTOP) -{gl_data} - {gl_extensions_data} + +{gl_data} #endif // defined(ANGLE_ENABLE_OPENGL_DESKTOP) }} void DispatchTableGL::initProcsGLES(const gl::Version &version, const std::set &extensions) {{ -{gles2_data} - {gles2_extensions_data} + +{gles2_data} }} void DispatchTableGL::initProcsSharedExtensions(const std::set &extensions) @@ -144,17 +143,17 @@ void DispatchTableGL::initProcsSharedExtensions(const std::set &ext void DispatchTableGL::initProcsDesktopGLNULL(const gl::Version &version, const std::set &extensions) {{ #if defined(ANGLE_ENABLE_OPENGL_DESKTOP) -{gl_null_data} - {gl_null_extensions_data} + +{gl_null_data} #endif // defined(ANGLE_ENABLE_OPENGL_DESKTOP) }} void DispatchTableGL::initProcsGLESNULL(const gl::Version &version, const std::set &extensions) {{ -{gles2_null_data} - {gles2_null_extensions_data} + +{gles2_null_data} }} void DispatchTableGL::initProcsSharedExtensionsNULL(const std::set &extensions)