Browse Source

Updated GLAD to use the latest OpenGL and OpenGL ES extensions and versions.

Alex Szpakowski 9 years ago
parent
commit
1461da598e
3 changed files with 824 additions and 62 deletions
  1. 329 15
      src/libraries/glad/glad.cpp
  2. 389 43
      src/libraries/glad/glad.hpp
  3. 106 4
      src/libraries/glad/gladfuncs.hpp

+ 329 - 15
src/libraries/glad/glad.cpp

@@ -406,6 +406,7 @@ pfn_glProgramUniform2fv fp_glProgramUniform2fv;
 pfn_glUniformMatrix2x3dv fp_glUniformMatrix2x3dv;
 pfn_glProgramUniformMatrix4dv fp_glProgramUniformMatrix4dv;
 pfn_glSecondaryColor3sv fp_glSecondaryColor3sv;
+pfn_glPrimitiveBoundingBox fp_glPrimitiveBoundingBox;
 pfn_glProgramUniformMatrix2x4dv fp_glProgramUniformMatrix2x4dv;
 pfn_glDispatchCompute fp_glDispatchCompute;
 pfn_glVertex3sv fp_glVertex3sv;
@@ -1047,6 +1048,7 @@ pfn_glProgramUniform4fv fp_glProgramUniform4fv;
 pfn_glTexCoord2iv fp_glTexCoord2iv;
 pfn_glTextureBarrier fp_glTextureBarrier;
 pfn_glIsQuery fp_glIsQuery;
+pfn_glBlendBarrier fp_glBlendBarrier;
 pfn_glProgramUniform2ui fp_glProgramUniform2ui;
 pfn_glProgramUniform4ui fp_glProgramUniform4ui;
 pfn_glVertexAttrib4sv fp_glVertexAttrib4sv;
@@ -1159,13 +1161,51 @@ pfn_glBlendFunciARB fp_glBlendFunciARB;
 pfn_glBlendFuncSeparateiARB fp_glBlendFuncSeparateiARB;
 pfn_glDrawArraysInstancedARB fp_glDrawArraysInstancedARB;
 pfn_glDrawElementsInstancedARB fp_glDrawElementsInstancedARB;
+pfn_glPrimitiveBoundingBoxARB fp_glPrimitiveBoundingBoxARB;
 pfn_glProgramParameteriARB fp_glProgramParameteriARB;
 pfn_glFramebufferTextureARB fp_glFramebufferTextureARB;
 pfn_glFramebufferTextureLayerARB fp_glFramebufferTextureLayerARB;
 pfn_glFramebufferTextureFaceARB fp_glFramebufferTextureFaceARB;
+pfn_glUniform1i64ARB fp_glUniform1i64ARB;
+pfn_glUniform2i64ARB fp_glUniform2i64ARB;
+pfn_glUniform3i64ARB fp_glUniform3i64ARB;
+pfn_glUniform4i64ARB fp_glUniform4i64ARB;
+pfn_glUniform1i64vARB fp_glUniform1i64vARB;
+pfn_glUniform2i64vARB fp_glUniform2i64vARB;
+pfn_glUniform3i64vARB fp_glUniform3i64vARB;
+pfn_glUniform4i64vARB fp_glUniform4i64vARB;
+pfn_glUniform1ui64ARB fp_glUniform1ui64ARB;
+pfn_glUniform2ui64ARB fp_glUniform2ui64ARB;
+pfn_glUniform3ui64ARB fp_glUniform3ui64ARB;
+pfn_glUniform4ui64ARB fp_glUniform4ui64ARB;
+pfn_glUniform1ui64vARB fp_glUniform1ui64vARB;
+pfn_glUniform2ui64vARB fp_glUniform2ui64vARB;
+pfn_glUniform3ui64vARB fp_glUniform3ui64vARB;
+pfn_glUniform4ui64vARB fp_glUniform4ui64vARB;
+pfn_glGetUniformi64vARB fp_glGetUniformi64vARB;
+pfn_glGetUniformui64vARB fp_glGetUniformui64vARB;
+pfn_glGetnUniformi64vARB fp_glGetnUniformi64vARB;
+pfn_glGetnUniformui64vARB fp_glGetnUniformui64vARB;
+pfn_glProgramUniform1i64ARB fp_glProgramUniform1i64ARB;
+pfn_glProgramUniform2i64ARB fp_glProgramUniform2i64ARB;
+pfn_glProgramUniform3i64ARB fp_glProgramUniform3i64ARB;
+pfn_glProgramUniform4i64ARB fp_glProgramUniform4i64ARB;
+pfn_glProgramUniform1i64vARB fp_glProgramUniform1i64vARB;
+pfn_glProgramUniform2i64vARB fp_glProgramUniform2i64vARB;
+pfn_glProgramUniform3i64vARB fp_glProgramUniform3i64vARB;
+pfn_glProgramUniform4i64vARB fp_glProgramUniform4i64vARB;
+pfn_glProgramUniform1ui64ARB fp_glProgramUniform1ui64ARB;
+pfn_glProgramUniform2ui64ARB fp_glProgramUniform2ui64ARB;
+pfn_glProgramUniform3ui64ARB fp_glProgramUniform3ui64ARB;
+pfn_glProgramUniform4ui64ARB fp_glProgramUniform4ui64ARB;
+pfn_glProgramUniform1ui64vARB fp_glProgramUniform1ui64vARB;
+pfn_glProgramUniform2ui64vARB fp_glProgramUniform2ui64vARB;
+pfn_glProgramUniform3ui64vARB fp_glProgramUniform3ui64vARB;
+pfn_glProgramUniform4ui64vARB fp_glProgramUniform4ui64vARB;
 pfn_glMultiDrawArraysIndirectCountARB fp_glMultiDrawArraysIndirectCountARB;
 pfn_glMultiDrawElementsIndirectCountARB fp_glMultiDrawElementsIndirectCountARB;
 pfn_glVertexAttribDivisorARB fp_glVertexAttribDivisorARB;
+pfn_glMaxShaderCompilerThreadsARB fp_glMaxShaderCompilerThreadsARB;
 pfn_glGetGraphicsResetStatusARB fp_glGetGraphicsResetStatusARB;
 pfn_glGetnTexImageARB fp_glGetnTexImageARB;
 pfn_glReadnPixelsARB fp_glReadnPixelsARB;
@@ -1186,6 +1226,9 @@ pfn_glGetnConvolutionFilterARB fp_glGetnConvolutionFilterARB;
 pfn_glGetnSeparableFilterARB fp_glGetnSeparableFilterARB;
 pfn_glGetnHistogramARB fp_glGetnHistogramARB;
 pfn_glGetnMinmaxARB fp_glGetnMinmaxARB;
+pfn_glFramebufferSampleLocationsfvARB fp_glFramebufferSampleLocationsfvARB;
+pfn_glNamedFramebufferSampleLocationsfvARB fp_glNamedFramebufferSampleLocationsfvARB;
+pfn_glEvaluateDepthValuesARB fp_glEvaluateDepthValuesARB;
 pfn_glMinSampleShadingARB fp_glMinSampleShadingARB;
 pfn_glNamedStringARB fp_glNamedStringARB;
 pfn_glDeleteNamedStringARB fp_glDeleteNamedStringARB;
@@ -1204,6 +1247,12 @@ pfn_glDrawElementsInstancedBaseVertexBaseInstanceEXT fp_glDrawElementsInstancedB
 pfn_glUniformBufferEXT fp_glUniformBufferEXT;
 pfn_glGetUniformBufferSizeEXT fp_glGetUniformBufferSizeEXT;
 pfn_glGetUniformOffsetEXT fp_glGetUniformOffsetEXT;
+pfn_glBindFragDataLocationIndexedEXT fp_glBindFragDataLocationIndexedEXT;
+pfn_glBindFragDataLocationEXT fp_glBindFragDataLocationEXT;
+pfn_glGetProgramResourceLocationIndexEXT fp_glGetProgramResourceLocationIndexEXT;
+pfn_glGetFragDataIndexEXT fp_glGetFragDataIndexEXT;
+pfn_glBlendEquationEXT fp_glBlendEquationEXT;
+pfn_glBufferStorageEXT fp_glBufferStorageEXT;
 pfn_glCopyImageSubDataEXT fp_glCopyImageSubDataEXT;
 pfn_glLabelObjectEXT fp_glLabelObjectEXT;
 pfn_glGetObjectLabelEXT fp_glGetObjectLabelEXT;
@@ -1517,7 +1566,6 @@ pfn_glProgramParameteriEXT fp_glProgramParameteriEXT;
 pfn_glProgramEnvParameters4fvEXT fp_glProgramEnvParameters4fvEXT;
 pfn_glProgramLocalParameters4fvEXT fp_glProgramLocalParameters4fvEXT;
 pfn_glGetUniformuivEXT fp_glGetUniformuivEXT;
-pfn_glBindFragDataLocationEXT fp_glBindFragDataLocationEXT;
 pfn_glGetFragDataLocationEXT fp_glGetFragDataLocationEXT;
 pfn_glUniform1uiEXT fp_glUniform1uiEXT;
 pfn_glUniform2uiEXT fp_glUniform2uiEXT;
@@ -1559,6 +1607,7 @@ pfn_glUseProgramStagesEXT fp_glUseProgramStagesEXT;
 pfn_glValidateProgramPipelineEXT fp_glValidateProgramPipelineEXT;
 pfn_glBindImageTextureEXT fp_glBindImageTextureEXT;
 pfn_glMemoryBarrierEXT fp_glMemoryBarrierEXT;
+pfn_glTexPageCommitmentEXT fp_glTexPageCommitmentEXT;
 pfn_glStencilClearTagEXT fp_glStencilClearTagEXT;
 pfn_glPatchParameteriEXT fp_glPatchParameteriEXT;
 pfn_glFramebufferTextureLayerEXT fp_glFramebufferTextureLayerEXT;
@@ -1763,6 +1812,7 @@ pfn_glStringMarkerGREMEDY fp_glStringMarkerGREMEDY;
 pfn_glRenderbufferStorageMultisampleIMG fp_glRenderbufferStorageMultisampleIMG;
 pfn_glFramebufferTexture2DMultisampleIMG fp_glFramebufferTexture2DMultisampleIMG;
 pfn_glBlendFuncSeparateINGR fp_glBlendFuncSeparateINGR;
+pfn_glApplyFramebufferAttachmentCMAAINTEL fp_glApplyFramebufferAttachmentCMAAINTEL;
 pfn_glSyncTextureINTEL fp_glSyncTextureINTEL;
 pfn_glUnmapTexture2DINTEL fp_glUnmapTexture2DINTEL;
 pfn_glMapTexture2DINTEL fp_glMapTexture2DINTEL;
@@ -1795,9 +1845,27 @@ pfn_glIsTextureHandleResidentNV fp_glIsTextureHandleResidentNV;
 pfn_glIsImageHandleResidentNV fp_glIsImageHandleResidentNV;
 pfn_glBlendParameteriNV fp_glBlendParameteriNV;
 pfn_glBlendBarrierNV fp_glBlendBarrierNV;
+pfn_glCreateStatesNV fp_glCreateStatesNV;
+pfn_glDeleteStatesNV fp_glDeleteStatesNV;
+pfn_glIsStateNV fp_glIsStateNV;
+pfn_glStateCaptureNV fp_glStateCaptureNV;
+pfn_glGetCommandHeaderNV fp_glGetCommandHeaderNV;
+pfn_glGetStageIndexNV fp_glGetStageIndexNV;
+pfn_glDrawCommandsNV fp_glDrawCommandsNV;
+pfn_glDrawCommandsAddressNV fp_glDrawCommandsAddressNV;
+pfn_glDrawCommandsStatesNV fp_glDrawCommandsStatesNV;
+pfn_glDrawCommandsStatesAddressNV fp_glDrawCommandsStatesAddressNV;
+pfn_glCreateCommandListsNV fp_glCreateCommandListsNV;
+pfn_glDeleteCommandListsNV fp_glDeleteCommandListsNV;
+pfn_glIsCommandListNV fp_glIsCommandListNV;
+pfn_glListDrawCommandsStatesClientNV fp_glListDrawCommandsStatesClientNV;
+pfn_glCommandListSegmentsNV fp_glCommandListSegmentsNV;
+pfn_glCompileCommandListNV fp_glCompileCommandListNV;
+pfn_glCallCommandListNV fp_glCallCommandListNV;
 pfn_glBeginConditionalRenderNV fp_glBeginConditionalRenderNV;
 pfn_glEndConditionalRenderNV fp_glEndConditionalRenderNV;
 pfn_glSubpixelPrecisionBiasNV fp_glSubpixelPrecisionBiasNV;
+pfn_glConservativeRasterParameterfNV fp_glConservativeRasterParameterfNV;
 pfn_glCopyBufferSubDataNV fp_glCopyBufferSubDataNV;
 pfn_glCopyImageSubDataNV fp_glCopyImageSubDataNV;
 pfn_glCoverageMaskNV fp_glCoverageMaskNV;
@@ -1974,6 +2042,7 @@ pfn_glGetPathColorGenivNV fp_glGetPathColorGenivNV;
 pfn_glGetPathColorGenfvNV fp_glGetPathColorGenfvNV;
 pfn_glGetPathTexGenivNV fp_glGetPathTexGenivNV;
 pfn_glGetPathTexGenfvNV fp_glGetPathTexGenfvNV;
+pfn_glPolygonModeNV fp_glPolygonModeNV;
 pfn_glPresentFrameKeyedNV fp_glPresentFrameKeyedNV;
 pfn_glPresentFrameDualFillNV fp_glPresentFrameDualFillNV;
 pfn_glGetVideoivNV fp_glGetVideoivNV;
@@ -2115,6 +2184,8 @@ pfn_glDisableiNV fp_glDisableiNV;
 pfn_glIsEnablediNV fp_glIsEnablediNV;
 pfn_glBeginConditionalRenderNVX fp_glBeginConditionalRenderNVX;
 pfn_glEndConditionalRenderNVX fp_glEndConditionalRenderNVX;
+pfn_glFramebufferTextureMultiviewOVR fp_glFramebufferTextureMultiviewOVR;
+pfn_glFramebufferTextureMultisampleMultiviewOVR fp_glFramebufferTextureMultisampleMultiviewOVR;
 pfn_glAlphaFuncQCOM fp_glAlphaFuncQCOM;
 pfn_glGetDriverControlsQCOM fp_glGetDriverControlsQCOM;
 pfn_glGetDriverControlStringQCOM fp_glGetDriverControlStringQCOM;
@@ -2830,6 +2901,9 @@ static void load_GL_VERSION_3_1(LOADER load) {
 	fp_glGetActiveUniformBlockiv = (pfn_glGetActiveUniformBlockiv)load("glGetActiveUniformBlockiv");
 	fp_glGetActiveUniformBlockName = (pfn_glGetActiveUniformBlockName)load("glGetActiveUniformBlockName");
 	fp_glUniformBlockBinding = (pfn_glUniformBlockBinding)load("glUniformBlockBinding");
+	fp_glBindBufferRange = (pfn_glBindBufferRange)load("glBindBufferRange");
+	fp_glBindBufferBase = (pfn_glBindBufferBase)load("glBindBufferBase");
+	fp_glGetIntegeri_v = (pfn_glGetIntegeri_v)load("glGetIntegeri_v");
 }
 
 GLboolean GLAD_VERSION_3_2 = GL_FALSE;
@@ -3600,6 +3674,55 @@ static void load_GL_ES_VERSION_3_1(LOADER load) {
 	fp_glVertexBindingDivisor = (pfn_glVertexBindingDivisor)load("glVertexBindingDivisor");
 }
 
+GLboolean GLAD_ES_VERSION_3_2 = GL_FALSE;
+static void load_GL_ES_VERSION_3_2(LOADER load) {
+	if(!GLAD_ES_VERSION_3_2) return;
+	fp_glBlendBarrier = (pfn_glBlendBarrier)load("glBlendBarrier");
+	fp_glCopyImageSubData = (pfn_glCopyImageSubData)load("glCopyImageSubData");
+	fp_glDebugMessageControl = (pfn_glDebugMessageControl)load("glDebugMessageControl");
+	fp_glDebugMessageInsert = (pfn_glDebugMessageInsert)load("glDebugMessageInsert");
+	fp_glDebugMessageCallback = (pfn_glDebugMessageCallback)load("glDebugMessageCallback");
+	fp_glGetDebugMessageLog = (pfn_glGetDebugMessageLog)load("glGetDebugMessageLog");
+	fp_glPushDebugGroup = (pfn_glPushDebugGroup)load("glPushDebugGroup");
+	fp_glPopDebugGroup = (pfn_glPopDebugGroup)load("glPopDebugGroup");
+	fp_glObjectLabel = (pfn_glObjectLabel)load("glObjectLabel");
+	fp_glGetObjectLabel = (pfn_glGetObjectLabel)load("glGetObjectLabel");
+	fp_glObjectPtrLabel = (pfn_glObjectPtrLabel)load("glObjectPtrLabel");
+	fp_glGetObjectPtrLabel = (pfn_glGetObjectPtrLabel)load("glGetObjectPtrLabel");
+	fp_glGetPointerv = (pfn_glGetPointerv)load("glGetPointerv");
+	fp_glEnablei = (pfn_glEnablei)load("glEnablei");
+	fp_glDisablei = (pfn_glDisablei)load("glDisablei");
+	fp_glBlendEquationi = (pfn_glBlendEquationi)load("glBlendEquationi");
+	fp_glBlendEquationSeparatei = (pfn_glBlendEquationSeparatei)load("glBlendEquationSeparatei");
+	fp_glBlendFunci = (pfn_glBlendFunci)load("glBlendFunci");
+	fp_glBlendFuncSeparatei = (pfn_glBlendFuncSeparatei)load("glBlendFuncSeparatei");
+	fp_glColorMaski = (pfn_glColorMaski)load("glColorMaski");
+	fp_glIsEnabledi = (pfn_glIsEnabledi)load("glIsEnabledi");
+	fp_glDrawElementsBaseVertex = (pfn_glDrawElementsBaseVertex)load("glDrawElementsBaseVertex");
+	fp_glDrawRangeElementsBaseVertex = (pfn_glDrawRangeElementsBaseVertex)load("glDrawRangeElementsBaseVertex");
+	fp_glDrawElementsInstancedBaseVertex = (pfn_glDrawElementsInstancedBaseVertex)load("glDrawElementsInstancedBaseVertex");
+	fp_glFramebufferTexture = (pfn_glFramebufferTexture)load("glFramebufferTexture");
+	fp_glPrimitiveBoundingBox = (pfn_glPrimitiveBoundingBox)load("glPrimitiveBoundingBox");
+	fp_glGetGraphicsResetStatus = (pfn_glGetGraphicsResetStatus)load("glGetGraphicsResetStatus");
+	fp_glReadnPixels = (pfn_glReadnPixels)load("glReadnPixels");
+	fp_glGetnUniformfv = (pfn_glGetnUniformfv)load("glGetnUniformfv");
+	fp_glGetnUniformiv = (pfn_glGetnUniformiv)load("glGetnUniformiv");
+	fp_glGetnUniformuiv = (pfn_glGetnUniformuiv)load("glGetnUniformuiv");
+	fp_glMinSampleShading = (pfn_glMinSampleShading)load("glMinSampleShading");
+	fp_glPatchParameteri = (pfn_glPatchParameteri)load("glPatchParameteri");
+	fp_glTexParameterIiv = (pfn_glTexParameterIiv)load("glTexParameterIiv");
+	fp_glTexParameterIuiv = (pfn_glTexParameterIuiv)load("glTexParameterIuiv");
+	fp_glGetTexParameterIiv = (pfn_glGetTexParameterIiv)load("glGetTexParameterIiv");
+	fp_glGetTexParameterIuiv = (pfn_glGetTexParameterIuiv)load("glGetTexParameterIuiv");
+	fp_glSamplerParameterIiv = (pfn_glSamplerParameterIiv)load("glSamplerParameterIiv");
+	fp_glSamplerParameterIuiv = (pfn_glSamplerParameterIuiv)load("glSamplerParameterIuiv");
+	fp_glGetSamplerParameterIiv = (pfn_glGetSamplerParameterIiv)load("glGetSamplerParameterIiv");
+	fp_glGetSamplerParameterIuiv = (pfn_glGetSamplerParameterIuiv)load("glGetSamplerParameterIuiv");
+	fp_glTexBuffer = (pfn_glTexBuffer)load("glTexBuffer");
+	fp_glTexBufferRange = (pfn_glTexBufferRange)load("glTexBufferRange");
+	fp_glTexStorage3DMultisample = (pfn_glTexStorage3DMultisample)load("glTexStorage3DMultisample");
+}
+
 GLboolean GLAD_KHR_blend_equation_advanced = GL_FALSE;
 static void load_GL_KHR_blend_equation_advanced(LOADER load) {
 	if(!GLAD_KHR_blend_equation_advanced) return;
@@ -3635,6 +3758,7 @@ static void load_GL_KHR_debug(LOADER load) {
 	fp_glGetPointervKHR = (pfn_glGetPointervKHR)load("glGetPointervKHR");
 }
 
+GLboolean GLAD_KHR_no_error = GL_FALSE;
 GLboolean GLAD_KHR_robust_buffer_access_behavior = GL_FALSE;
 GLboolean GLAD_KHR_robustness = GL_FALSE;
 static void load_GL_KHR_robustness(LOADER load) {
@@ -3653,6 +3777,7 @@ static void load_GL_KHR_robustness(LOADER load) {
 
 GLboolean GLAD_KHR_texture_compression_astc_hdr = GL_FALSE;
 GLboolean GLAD_KHR_texture_compression_astc_ldr = GL_FALSE;
+GLboolean GLAD_KHR_texture_compression_astc_sliced_3d = GL_FALSE;
 GLboolean GLAD_ARB_arrays_of_arrays = GL_FALSE;
 GLboolean GLAD_ARB_base_instance = GL_FALSE;
 static void load_GL_ARB_base_instance(LOADER load) {
@@ -3921,11 +4046,18 @@ static void load_GL_ARB_ES3_1_compatibility(LOADER load) {
 	fp_glMemoryBarrierByRegion = (pfn_glMemoryBarrierByRegion)load("glMemoryBarrierByRegion");
 }
 
+GLboolean GLAD_ARB_ES3_2_compatibility = GL_FALSE;
+static void load_GL_ARB_ES3_2_compatibility(LOADER load) {
+	if(!GLAD_ARB_ES3_2_compatibility) return;
+	fp_glPrimitiveBoundingBoxARB = (pfn_glPrimitiveBoundingBoxARB)load("glPrimitiveBoundingBoxARB");
+}
+
 GLboolean GLAD_ARB_ES3_compatibility = GL_FALSE;
 GLboolean GLAD_ARB_explicit_attrib_location = GL_FALSE;
 GLboolean GLAD_ARB_explicit_uniform_location = GL_FALSE;
 GLboolean GLAD_ARB_fragment_coord_conventions = GL_FALSE;
 GLboolean GLAD_ARB_fragment_layer_viewport = GL_FALSE;
+GLboolean GLAD_ARB_fragment_shader_interlock = GL_FALSE;
 GLboolean GLAD_ARB_framebuffer_no_attachments = GL_FALSE;
 static void load_GL_ARB_framebuffer_no_attachments(LOADER load) {
 	if(!GLAD_ARB_framebuffer_no_attachments) return;
@@ -4007,6 +4139,47 @@ static void load_GL_ARB_gpu_shader_fp64(LOADER load) {
 	fp_glGetUniformdv = (pfn_glGetUniformdv)load("glGetUniformdv");
 }
 
+GLboolean GLAD_ARB_gpu_shader_int64 = GL_FALSE;
+static void load_GL_ARB_gpu_shader_int64(LOADER load) {
+	if(!GLAD_ARB_gpu_shader_int64) return;
+	fp_glUniform1i64ARB = (pfn_glUniform1i64ARB)load("glUniform1i64ARB");
+	fp_glUniform2i64ARB = (pfn_glUniform2i64ARB)load("glUniform2i64ARB");
+	fp_glUniform3i64ARB = (pfn_glUniform3i64ARB)load("glUniform3i64ARB");
+	fp_glUniform4i64ARB = (pfn_glUniform4i64ARB)load("glUniform4i64ARB");
+	fp_glUniform1i64vARB = (pfn_glUniform1i64vARB)load("glUniform1i64vARB");
+	fp_glUniform2i64vARB = (pfn_glUniform2i64vARB)load("glUniform2i64vARB");
+	fp_glUniform3i64vARB = (pfn_glUniform3i64vARB)load("glUniform3i64vARB");
+	fp_glUniform4i64vARB = (pfn_glUniform4i64vARB)load("glUniform4i64vARB");
+	fp_glUniform1ui64ARB = (pfn_glUniform1ui64ARB)load("glUniform1ui64ARB");
+	fp_glUniform2ui64ARB = (pfn_glUniform2ui64ARB)load("glUniform2ui64ARB");
+	fp_glUniform3ui64ARB = (pfn_glUniform3ui64ARB)load("glUniform3ui64ARB");
+	fp_glUniform4ui64ARB = (pfn_glUniform4ui64ARB)load("glUniform4ui64ARB");
+	fp_glUniform1ui64vARB = (pfn_glUniform1ui64vARB)load("glUniform1ui64vARB");
+	fp_glUniform2ui64vARB = (pfn_glUniform2ui64vARB)load("glUniform2ui64vARB");
+	fp_glUniform3ui64vARB = (pfn_glUniform3ui64vARB)load("glUniform3ui64vARB");
+	fp_glUniform4ui64vARB = (pfn_glUniform4ui64vARB)load("glUniform4ui64vARB");
+	fp_glGetUniformi64vARB = (pfn_glGetUniformi64vARB)load("glGetUniformi64vARB");
+	fp_glGetUniformui64vARB = (pfn_glGetUniformui64vARB)load("glGetUniformui64vARB");
+	fp_glGetnUniformi64vARB = (pfn_glGetnUniformi64vARB)load("glGetnUniformi64vARB");
+	fp_glGetnUniformui64vARB = (pfn_glGetnUniformui64vARB)load("glGetnUniformui64vARB");
+	fp_glProgramUniform1i64ARB = (pfn_glProgramUniform1i64ARB)load("glProgramUniform1i64ARB");
+	fp_glProgramUniform2i64ARB = (pfn_glProgramUniform2i64ARB)load("glProgramUniform2i64ARB");
+	fp_glProgramUniform3i64ARB = (pfn_glProgramUniform3i64ARB)load("glProgramUniform3i64ARB");
+	fp_glProgramUniform4i64ARB = (pfn_glProgramUniform4i64ARB)load("glProgramUniform4i64ARB");
+	fp_glProgramUniform1i64vARB = (pfn_glProgramUniform1i64vARB)load("glProgramUniform1i64vARB");
+	fp_glProgramUniform2i64vARB = (pfn_glProgramUniform2i64vARB)load("glProgramUniform2i64vARB");
+	fp_glProgramUniform3i64vARB = (pfn_glProgramUniform3i64vARB)load("glProgramUniform3i64vARB");
+	fp_glProgramUniform4i64vARB = (pfn_glProgramUniform4i64vARB)load("glProgramUniform4i64vARB");
+	fp_glProgramUniform1ui64ARB = (pfn_glProgramUniform1ui64ARB)load("glProgramUniform1ui64ARB");
+	fp_glProgramUniform2ui64ARB = (pfn_glProgramUniform2ui64ARB)load("glProgramUniform2ui64ARB");
+	fp_glProgramUniform3ui64ARB = (pfn_glProgramUniform3ui64ARB)load("glProgramUniform3ui64ARB");
+	fp_glProgramUniform4ui64ARB = (pfn_glProgramUniform4ui64ARB)load("glProgramUniform4ui64ARB");
+	fp_glProgramUniform1ui64vARB = (pfn_glProgramUniform1ui64vARB)load("glProgramUniform1ui64vARB");
+	fp_glProgramUniform2ui64vARB = (pfn_glProgramUniform2ui64vARB)load("glProgramUniform2ui64vARB");
+	fp_glProgramUniform3ui64vARB = (pfn_glProgramUniform3ui64vARB)load("glProgramUniform3ui64vARB");
+	fp_glProgramUniform4ui64vARB = (pfn_glProgramUniform4ui64vARB)load("glProgramUniform4ui64vARB");
+}
+
 GLboolean GLAD_ARB_half_float_pixel = GL_FALSE;
 GLboolean GLAD_ARB_half_float_vertex = GL_FALSE;
 GLboolean GLAD_ARB_indirect_parameters = GL_FALSE;
@@ -4072,8 +4245,15 @@ static void load_GL_ARB_multi_draw_indirect(LOADER load) {
 }
 
 GLboolean GLAD_ARB_occlusion_query2 = GL_FALSE;
+GLboolean GLAD_ARB_parallel_shader_compile = GL_FALSE;
+static void load_GL_ARB_parallel_shader_compile(LOADER load) {
+	if(!GLAD_ARB_parallel_shader_compile) return;
+	fp_glMaxShaderCompilerThreadsARB = (pfn_glMaxShaderCompilerThreadsARB)load("glMaxShaderCompilerThreadsARB");
+}
+
 GLboolean GLAD_ARB_pipeline_statistics_query = GL_FALSE;
 GLboolean GLAD_ARB_pixel_buffer_object = GL_FALSE;
+GLboolean GLAD_ARB_post_depth_coverage = GL_FALSE;
 GLboolean GLAD_ARB_program_interface_query = GL_FALSE;
 static void load_GL_ARB_program_interface_query(LOADER load) {
 	if(!GLAD_ARB_program_interface_query) return;
@@ -4119,6 +4299,14 @@ static void load_GL_ARB_robustness(LOADER load) {
 }
 
 GLboolean GLAD_ARB_robustness_isolation = GL_FALSE;
+GLboolean GLAD_ARB_sample_locations = GL_FALSE;
+static void load_GL_ARB_sample_locations(LOADER load) {
+	if(!GLAD_ARB_sample_locations) return;
+	fp_glFramebufferSampleLocationsfvARB = (pfn_glFramebufferSampleLocationsfvARB)load("glFramebufferSampleLocationsfvARB");
+	fp_glNamedFramebufferSampleLocationsfvARB = (pfn_glNamedFramebufferSampleLocationsfvARB)load("glNamedFramebufferSampleLocationsfvARB");
+	fp_glEvaluateDepthValuesARB = (pfn_glEvaluateDepthValuesARB)load("glEvaluateDepthValuesARB");
+}
+
 GLboolean GLAD_ARB_sample_shading = GL_FALSE;
 static void load_GL_ARB_sample_shading(LOADER load) {
 	if(!GLAD_ARB_sample_shading) return;
@@ -4211,13 +4399,16 @@ static void load_GL_ARB_separate_shader_objects(LOADER load) {
 	fp_glGetProgramPipelineInfoLog = (pfn_glGetProgramPipelineInfoLog)load("glGetProgramPipelineInfoLog");
 }
 
+GLboolean GLAD_ARB_shader_atomic_counter_ops = GL_FALSE;
 GLboolean GLAD_ARB_shader_atomic_counters = GL_FALSE;
 static void load_GL_ARB_shader_atomic_counters(LOADER load) {
 	if(!GLAD_ARB_shader_atomic_counters) return;
 	fp_glGetActiveAtomicCounterBufferiv = (pfn_glGetActiveAtomicCounterBufferiv)load("glGetActiveAtomicCounterBufferiv");
 }
 
+GLboolean GLAD_ARB_shader_ballot = GL_FALSE;
 GLboolean GLAD_ARB_shader_bit_encoding = GL_FALSE;
+GLboolean GLAD_ARB_shader_clock = GL_FALSE;
 GLboolean GLAD_ARB_shader_draw_parameters = GL_FALSE;
 GLboolean GLAD_ARB_shader_group_vote = GL_FALSE;
 GLboolean GLAD_ARB_shader_image_load_store = GL_FALSE;
@@ -4251,6 +4442,7 @@ static void load_GL_ARB_shader_subroutine(LOADER load) {
 
 GLboolean GLAD_ARB_shader_texture_image_samples = GL_FALSE;
 GLboolean GLAD_ARB_shader_texture_lod = GL_FALSE;
+GLboolean GLAD_ARB_shader_viewport_layer_array = GL_FALSE;
 GLboolean GLAD_ARB_shading_language_420pack = GL_FALSE;
 GLboolean GLAD_ARB_shading_language_include = GL_FALSE;
 static void load_GL_ARB_shading_language_include(LOADER load) {
@@ -4278,6 +4470,8 @@ static void load_GL_ARB_sparse_texture(LOADER load) {
 	fp_glTexPageCommitmentARB = (pfn_glTexPageCommitmentARB)load("glTexPageCommitmentARB");
 }
 
+GLboolean GLAD_ARB_sparse_texture2 = GL_FALSE;
+GLboolean GLAD_ARB_sparse_texture_clamp = GL_FALSE;
 GLboolean GLAD_ARB_stencil_texturing = GL_FALSE;
 GLboolean GLAD_ARB_sync = GL_FALSE;
 static void load_GL_ARB_sync(LOADER load) {
@@ -4320,6 +4514,7 @@ static void load_GL_ARB_texture_buffer_range(LOADER load) {
 GLboolean GLAD_ARB_texture_compression_bptc = GL_FALSE;
 GLboolean GLAD_ARB_texture_compression_rgtc = GL_FALSE;
 GLboolean GLAD_ARB_texture_cube_map_array = GL_FALSE;
+GLboolean GLAD_ARB_texture_filter_minmax = GL_FALSE;
 GLboolean GLAD_ARB_texture_float = GL_FALSE;
 GLboolean GLAD_ARB_texture_gather = GL_FALSE;
 GLboolean GLAD_ARB_texture_mirror_clamp_to_edge = GL_FALSE;
@@ -4407,6 +4602,9 @@ static void load_GL_ARB_uniform_buffer_object(LOADER load) {
 	fp_glGetActiveUniformBlockiv = (pfn_glGetActiveUniformBlockiv)load("glGetActiveUniformBlockiv");
 	fp_glGetActiveUniformBlockName = (pfn_glGetActiveUniformBlockName)load("glGetActiveUniformBlockName");
 	fp_glUniformBlockBinding = (pfn_glUniformBlockBinding)load("glUniformBlockBinding");
+	fp_glBindBufferRange = (pfn_glBindBufferRange)load("glBindBufferRange");
+	fp_glBindBufferBase = (pfn_glBindBufferBase)load("glBindBufferBase");
+	fp_glGetIntegeri_v = (pfn_glGetIntegeri_v)load("glGetIntegeri_v");
 }
 
 GLboolean GLAD_ARB_vertex_array_bgra = GL_FALSE;
@@ -4521,6 +4719,28 @@ static void load_GL_EXT_bindable_uniform(LOADER load) {
 	fp_glGetUniformOffsetEXT = (pfn_glGetUniformOffsetEXT)load("glGetUniformOffsetEXT");
 }
 
+GLboolean GLAD_EXT_blend_func_extended = GL_FALSE;
+static void load_GL_EXT_blend_func_extended(LOADER load) {
+	if(!GLAD_EXT_blend_func_extended) return;
+	fp_glBindFragDataLocationIndexedEXT = (pfn_glBindFragDataLocationIndexedEXT)load("glBindFragDataLocationIndexedEXT");
+	fp_glBindFragDataLocationEXT = (pfn_glBindFragDataLocationEXT)load("glBindFragDataLocationEXT");
+	fp_glGetProgramResourceLocationIndexEXT = (pfn_glGetProgramResourceLocationIndexEXT)load("glGetProgramResourceLocationIndexEXT");
+	fp_glGetFragDataIndexEXT = (pfn_glGetFragDataIndexEXT)load("glGetFragDataIndexEXT");
+}
+
+GLboolean GLAD_EXT_blend_minmax = GL_FALSE;
+static void load_GL_EXT_blend_minmax(LOADER load) {
+	if(!GLAD_EXT_blend_minmax) return;
+	fp_glBlendEquationEXT = (pfn_glBlendEquationEXT)load("glBlendEquationEXT");
+}
+
+GLboolean GLAD_EXT_buffer_storage = GL_FALSE;
+static void load_GL_EXT_buffer_storage(LOADER load) {
+	if(!GLAD_EXT_buffer_storage) return;
+	fp_glBufferStorageEXT = (pfn_glBufferStorageEXT)load("glBufferStorageEXT");
+}
+
+GLboolean GLAD_EXT_color_buffer_float = GL_FALSE;
 GLboolean GLAD_EXT_color_buffer_half_float = GL_FALSE;
 GLboolean GLAD_EXT_copy_image = GL_FALSE;
 static void load_GL_EXT_copy_image(LOADER load) {
@@ -4871,6 +5091,7 @@ static void load_GL_EXT_draw_instanced(LOADER load) {
 	fp_glDrawElementsInstancedEXT = (pfn_glDrawElementsInstancedEXT)load("glDrawElementsInstancedEXT");
 }
 
+GLboolean GLAD_EXT_float_blend = GL_FALSE;
 GLboolean GLAD_EXT_framebuffer_blit = GL_FALSE;
 static void load_GL_EXT_framebuffer_blit(LOADER load) {
 	if(!GLAD_EXT_framebuffer_blit) return;
@@ -4966,6 +5187,7 @@ static void load_GL_EXT_multi_draw_indirect(LOADER load) {
 	fp_glMultiDrawElementsIndirectEXT = (pfn_glMultiDrawElementsIndirectEXT)load("glMultiDrawElementsIndirectEXT");
 }
 
+GLboolean GLAD_EXT_multisampled_compatibility = GL_FALSE;
 GLboolean GLAD_EXT_multisampled_render_to_texture = GL_FALSE;
 static void load_GL_EXT_multisampled_render_to_texture(LOADER load) {
 	if(!GLAD_EXT_multisampled_render_to_texture) return;
@@ -5101,6 +5323,12 @@ GLboolean GLAD_EXT_shader_io_blocks = GL_FALSE;
 GLboolean GLAD_EXT_shader_pixel_local_storage = GL_FALSE;
 GLboolean GLAD_EXT_shader_texture_lod = GL_FALSE;
 GLboolean GLAD_EXT_shadow_samplers = GL_FALSE;
+GLboolean GLAD_EXT_sparse_texture = GL_FALSE;
+static void load_GL_EXT_sparse_texture(LOADER load) {
+	if(!GLAD_EXT_sparse_texture) return;
+	fp_glTexPageCommitmentEXT = (pfn_glTexPageCommitmentEXT)load("glTexPageCommitmentEXT");
+}
+
 GLboolean GLAD_EXT_sparse_texture2 = GL_FALSE;
 GLboolean GLAD_EXT_sRGB = GL_FALSE;
 GLboolean GLAD_EXT_sRGB_write_control = GL_FALSE;
@@ -5725,6 +5953,7 @@ GLboolean GLAD_IMG_read_format = GL_FALSE;
 GLboolean GLAD_IMG_shader_binary = GL_FALSE;
 GLboolean GLAD_IMG_texture_compression_pvrtc = GL_FALSE;
 GLboolean GLAD_IMG_texture_compression_pvrtc2 = GL_FALSE;
+GLboolean GLAD_IMG_texture_filter_cubic = GL_FALSE;
 GLboolean GLAD_INGR_blend_func_separate = GL_FALSE;
 static void load_GL_INGR_blend_func_separate(LOADER load) {
 	if(!GLAD_INGR_blend_func_separate) return;
@@ -5732,6 +5961,12 @@ static void load_GL_INGR_blend_func_separate(LOADER load) {
 }
 
 GLboolean GLAD_INTEL_fragment_shader_ordering = GL_FALSE;
+GLboolean GLAD_INTEL_framebuffer_CMAA = GL_FALSE;
+static void load_GL_INTEL_framebuffer_CMAA(LOADER load) {
+	if(!GLAD_INTEL_framebuffer_CMAA) return;
+	fp_glApplyFramebufferAttachmentCMAAINTEL = (pfn_glApplyFramebufferAttachmentCMAAINTEL)load("glApplyFramebufferAttachmentCMAAINTEL");
+}
+
 GLboolean GLAD_INTEL_map_texture = GL_FALSE;
 static void load_GL_INTEL_map_texture(LOADER load) {
 	if(!GLAD_INTEL_map_texture) return;
@@ -5798,6 +6033,28 @@ static void load_GL_NV_blend_equation_advanced(LOADER load) {
 }
 
 GLboolean GLAD_NV_blend_equation_advanced_coherent = GL_FALSE;
+GLboolean GLAD_NV_command_list = GL_FALSE;
+static void load_GL_NV_command_list(LOADER load) {
+	if(!GLAD_NV_command_list) return;
+	fp_glCreateStatesNV = (pfn_glCreateStatesNV)load("glCreateStatesNV");
+	fp_glDeleteStatesNV = (pfn_glDeleteStatesNV)load("glDeleteStatesNV");
+	fp_glIsStateNV = (pfn_glIsStateNV)load("glIsStateNV");
+	fp_glStateCaptureNV = (pfn_glStateCaptureNV)load("glStateCaptureNV");
+	fp_glGetCommandHeaderNV = (pfn_glGetCommandHeaderNV)load("glGetCommandHeaderNV");
+	fp_glGetStageIndexNV = (pfn_glGetStageIndexNV)load("glGetStageIndexNV");
+	fp_glDrawCommandsNV = (pfn_glDrawCommandsNV)load("glDrawCommandsNV");
+	fp_glDrawCommandsAddressNV = (pfn_glDrawCommandsAddressNV)load("glDrawCommandsAddressNV");
+	fp_glDrawCommandsStatesNV = (pfn_glDrawCommandsStatesNV)load("glDrawCommandsStatesNV");
+	fp_glDrawCommandsStatesAddressNV = (pfn_glDrawCommandsStatesAddressNV)load("glDrawCommandsStatesAddressNV");
+	fp_glCreateCommandListsNV = (pfn_glCreateCommandListsNV)load("glCreateCommandListsNV");
+	fp_glDeleteCommandListsNV = (pfn_glDeleteCommandListsNV)load("glDeleteCommandListsNV");
+	fp_glIsCommandListNV = (pfn_glIsCommandListNV)load("glIsCommandListNV");
+	fp_glListDrawCommandsStatesClientNV = (pfn_glListDrawCommandsStatesClientNV)load("glListDrawCommandsStatesClientNV");
+	fp_glCommandListSegmentsNV = (pfn_glCommandListSegmentsNV)load("glCommandListSegmentsNV");
+	fp_glCompileCommandListNV = (pfn_glCompileCommandListNV)load("glCompileCommandListNV");
+	fp_glCallCommandListNV = (pfn_glCallCommandListNV)load("glCallCommandListNV");
+}
+
 GLboolean GLAD_NV_compute_program5 = GL_FALSE;
 GLboolean GLAD_NV_conditional_render = GL_FALSE;
 static void load_GL_NV_conditional_render(LOADER load) {
@@ -5812,6 +6069,12 @@ static void load_GL_NV_conservative_raster(LOADER load) {
 	fp_glSubpixelPrecisionBiasNV = (pfn_glSubpixelPrecisionBiasNV)load("glSubpixelPrecisionBiasNV");
 }
 
+GLboolean GLAD_NV_conservative_raster_dilate = GL_FALSE;
+static void load_GL_NV_conservative_raster_dilate(LOADER load) {
+	if(!GLAD_NV_conservative_raster_dilate) return;
+	fp_glConservativeRasterParameterfNV = (pfn_glConservativeRasterParameterfNV)load("glConservativeRasterParameterfNV");
+}
+
 GLboolean GLAD_NV_copy_buffer = GL_FALSE;
 static void load_GL_NV_copy_buffer(LOADER load) {
 	if(!GLAD_NV_copy_buffer) return;
@@ -6166,6 +6429,12 @@ static void load_GL_NV_path_rendering(LOADER load) {
 }
 
 GLboolean GLAD_NV_path_rendering_shared_edge = GL_FALSE;
+GLboolean GLAD_NV_polygon_mode = GL_FALSE;
+static void load_GL_NV_polygon_mode(LOADER load) {
+	if(!GLAD_NV_polygon_mode) return;
+	fp_glPolygonModeNV = (pfn_glPolygonModeNV)load("glPolygonModeNV");
+}
+
 GLboolean GLAD_NV_present_video = GL_FALSE;
 static void load_GL_NV_present_video(LOADER load) {
 	if(!GLAD_NV_present_video) return;
@@ -6412,6 +6681,19 @@ static void load_GL_NVX_conditional_render(LOADER load) {
 }
 
 GLboolean GLAD_NVX_gpu_memory_info = GL_FALSE;
+GLboolean GLAD_OVR_multiview = GL_FALSE;
+static void load_GL_OVR_multiview(LOADER load) {
+	if(!GLAD_OVR_multiview) return;
+	fp_glFramebufferTextureMultiviewOVR = (pfn_glFramebufferTextureMultiviewOVR)load("glFramebufferTextureMultiviewOVR");
+}
+
+GLboolean GLAD_OVR_multiview2 = GL_FALSE;
+GLboolean GLAD_OVR_multiview_multisampled_render_to_texture = GL_FALSE;
+static void load_GL_OVR_multiview_multisampled_render_to_texture(LOADER load) {
+	if(!GLAD_OVR_multiview_multisampled_render_to_texture) return;
+	fp_glFramebufferTextureMultisampleMultiviewOVR = (pfn_glFramebufferTextureMultisampleMultiviewOVR)load("glFramebufferTextureMultisampleMultiviewOVR");
+}
+
 GLboolean GLAD_QCOM_alpha_test = GL_FALSE;
 static void load_GL_QCOM_alpha_test(LOADER load) {
 	if(!GLAD_QCOM_alpha_test) return;
@@ -6459,23 +6741,18 @@ static void load_GL_QCOM_tiled_rendering(LOADER load) {
 }
 
 GLboolean GLAD_QCOM_writeonly_rendering = GL_FALSE;
-GLboolean GLAD_SGIX_calligraphic_fragment = GL_FALSE;
-GLboolean GLAD_SGIX_depth_pass_instrument = GL_FALSE;
-GLboolean GLAD_SGIX_pixel_tiles = GL_FALSE;
-GLboolean GLAD_SGIX_scalebias_hint = GL_FALSE;
-GLboolean GLAD_SGIX_subsample = GL_FALSE;
-GLboolean GLAD_SGIX_ycrcb_subsample = GL_FALSE;
-GLboolean GLAD_SGIX_ycrcba = GL_FALSE;
 GLboolean GLAD_VIV_shader_binary = GL_FALSE;
 static void find_extensions(void) {
 	GLAD_KHR_blend_equation_advanced = has_ext("GL_KHR_blend_equation_advanced");
 	GLAD_KHR_blend_equation_advanced_coherent = has_ext("GL_KHR_blend_equation_advanced_coherent");
 	GLAD_KHR_context_flush_control = has_ext("GL_KHR_context_flush_control");
 	GLAD_KHR_debug = has_ext("GL_KHR_debug");
+	GLAD_KHR_no_error = has_ext("GL_KHR_no_error");
 	GLAD_KHR_robust_buffer_access_behavior = has_ext("GL_KHR_robust_buffer_access_behavior");
 	GLAD_KHR_robustness = has_ext("GL_KHR_robustness");
 	GLAD_KHR_texture_compression_astc_hdr = has_ext("GL_KHR_texture_compression_astc_hdr");
 	GLAD_KHR_texture_compression_astc_ldr = has_ext("GL_KHR_texture_compression_astc_ldr");
+	GLAD_KHR_texture_compression_astc_sliced_3d = has_ext("GL_KHR_texture_compression_astc_sliced_3d");
 	GLAD_ARB_arrays_of_arrays = has_ext("GL_ARB_arrays_of_arrays");
 	GLAD_ARB_base_instance = has_ext("GL_ARB_base_instance");
 	GLAD_ARB_bindless_texture = has_ext("GL_ARB_bindless_texture");
@@ -6507,11 +6784,13 @@ static void find_extensions(void) {
 	GLAD_ARB_enhanced_layouts = has_ext("GL_ARB_enhanced_layouts");
 	GLAD_ARB_ES2_compatibility = has_ext("GL_ARB_ES2_compatibility");
 	GLAD_ARB_ES3_1_compatibility = has_ext("GL_ARB_ES3_1_compatibility");
+	GLAD_ARB_ES3_2_compatibility = has_ext("GL_ARB_ES3_2_compatibility");
 	GLAD_ARB_ES3_compatibility = has_ext("GL_ARB_ES3_compatibility");
 	GLAD_ARB_explicit_attrib_location = has_ext("GL_ARB_explicit_attrib_location");
 	GLAD_ARB_explicit_uniform_location = has_ext("GL_ARB_explicit_uniform_location");
 	GLAD_ARB_fragment_coord_conventions = has_ext("GL_ARB_fragment_coord_conventions");
 	GLAD_ARB_fragment_layer_viewport = has_ext("GL_ARB_fragment_layer_viewport");
+	GLAD_ARB_fragment_shader_interlock = has_ext("GL_ARB_fragment_shader_interlock");
 	GLAD_ARB_framebuffer_no_attachments = has_ext("GL_ARB_framebuffer_no_attachments");
 	GLAD_ARB_framebuffer_object = has_ext("GL_ARB_framebuffer_object");
 	GLAD_ARB_framebuffer_sRGB = has_ext("GL_ARB_framebuffer_sRGB");
@@ -6520,6 +6799,7 @@ static void find_extensions(void) {
 	GLAD_ARB_get_texture_sub_image = has_ext("GL_ARB_get_texture_sub_image");
 	GLAD_ARB_gpu_shader5 = has_ext("GL_ARB_gpu_shader5");
 	GLAD_ARB_gpu_shader_fp64 = has_ext("GL_ARB_gpu_shader_fp64");
+	GLAD_ARB_gpu_shader_int64 = has_ext("GL_ARB_gpu_shader_int64");
 	GLAD_ARB_half_float_pixel = has_ext("GL_ARB_half_float_pixel");
 	GLAD_ARB_half_float_vertex = has_ext("GL_ARB_half_float_vertex");
 	GLAD_ARB_indirect_parameters = has_ext("GL_ARB_indirect_parameters");
@@ -6532,21 +6812,27 @@ static void find_extensions(void) {
 	GLAD_ARB_multi_bind = has_ext("GL_ARB_multi_bind");
 	GLAD_ARB_multi_draw_indirect = has_ext("GL_ARB_multi_draw_indirect");
 	GLAD_ARB_occlusion_query2 = has_ext("GL_ARB_occlusion_query2");
+	GLAD_ARB_parallel_shader_compile = has_ext("GL_ARB_parallel_shader_compile");
 	GLAD_ARB_pipeline_statistics_query = has_ext("GL_ARB_pipeline_statistics_query");
 	GLAD_ARB_pixel_buffer_object = has_ext("GL_ARB_pixel_buffer_object");
+	GLAD_ARB_post_depth_coverage = has_ext("GL_ARB_post_depth_coverage");
 	GLAD_ARB_program_interface_query = has_ext("GL_ARB_program_interface_query");
 	GLAD_ARB_provoking_vertex = has_ext("GL_ARB_provoking_vertex");
 	GLAD_ARB_query_buffer_object = has_ext("GL_ARB_query_buffer_object");
 	GLAD_ARB_robust_buffer_access_behavior = has_ext("GL_ARB_robust_buffer_access_behavior");
 	GLAD_ARB_robustness = has_ext("GL_ARB_robustness");
 	GLAD_ARB_robustness_isolation = has_ext("GL_ARB_robustness_isolation");
+	GLAD_ARB_sample_locations = has_ext("GL_ARB_sample_locations");
 	GLAD_ARB_sample_shading = has_ext("GL_ARB_sample_shading");
 	GLAD_ARB_sampler_objects = has_ext("GL_ARB_sampler_objects");
 	GLAD_ARB_seamless_cube_map = has_ext("GL_ARB_seamless_cube_map");
 	GLAD_ARB_seamless_cubemap_per_texture = has_ext("GL_ARB_seamless_cubemap_per_texture");
 	GLAD_ARB_separate_shader_objects = has_ext("GL_ARB_separate_shader_objects");
+	GLAD_ARB_shader_atomic_counter_ops = has_ext("GL_ARB_shader_atomic_counter_ops");
 	GLAD_ARB_shader_atomic_counters = has_ext("GL_ARB_shader_atomic_counters");
+	GLAD_ARB_shader_ballot = has_ext("GL_ARB_shader_ballot");
 	GLAD_ARB_shader_bit_encoding = has_ext("GL_ARB_shader_bit_encoding");
+	GLAD_ARB_shader_clock = has_ext("GL_ARB_shader_clock");
 	GLAD_ARB_shader_draw_parameters = has_ext("GL_ARB_shader_draw_parameters");
 	GLAD_ARB_shader_group_vote = has_ext("GL_ARB_shader_group_vote");
 	GLAD_ARB_shader_image_load_store = has_ext("GL_ARB_shader_image_load_store");
@@ -6557,11 +6843,14 @@ static void find_extensions(void) {
 	GLAD_ARB_shader_subroutine = has_ext("GL_ARB_shader_subroutine");
 	GLAD_ARB_shader_texture_image_samples = has_ext("GL_ARB_shader_texture_image_samples");
 	GLAD_ARB_shader_texture_lod = has_ext("GL_ARB_shader_texture_lod");
+	GLAD_ARB_shader_viewport_layer_array = has_ext("GL_ARB_shader_viewport_layer_array");
 	GLAD_ARB_shading_language_420pack = has_ext("GL_ARB_shading_language_420pack");
 	GLAD_ARB_shading_language_include = has_ext("GL_ARB_shading_language_include");
 	GLAD_ARB_shading_language_packing = has_ext("GL_ARB_shading_language_packing");
 	GLAD_ARB_sparse_buffer = has_ext("GL_ARB_sparse_buffer");
 	GLAD_ARB_sparse_texture = has_ext("GL_ARB_sparse_texture");
+	GLAD_ARB_sparse_texture2 = has_ext("GL_ARB_sparse_texture2");
+	GLAD_ARB_sparse_texture_clamp = has_ext("GL_ARB_sparse_texture_clamp");
 	GLAD_ARB_stencil_texturing = has_ext("GL_ARB_stencil_texturing");
 	GLAD_ARB_sync = has_ext("GL_ARB_sync");
 	GLAD_ARB_tessellation_shader = has_ext("GL_ARB_tessellation_shader");
@@ -6572,6 +6861,7 @@ static void find_extensions(void) {
 	GLAD_ARB_texture_compression_bptc = has_ext("GL_ARB_texture_compression_bptc");
 	GLAD_ARB_texture_compression_rgtc = has_ext("GL_ARB_texture_compression_rgtc");
 	GLAD_ARB_texture_cube_map_array = has_ext("GL_ARB_texture_cube_map_array");
+	GLAD_ARB_texture_filter_minmax = has_ext("GL_ARB_texture_filter_minmax");
 	GLAD_ARB_texture_float = has_ext("GL_ARB_texture_float");
 	GLAD_ARB_texture_gather = has_ext("GL_ARB_texture_gather");
 	GLAD_ARB_texture_mirror_clamp_to_edge = has_ext("GL_ARB_texture_mirror_clamp_to_edge");
@@ -6602,6 +6892,10 @@ static void find_extensions(void) {
 	GLAD_EXT_base_instance = has_ext("GL_EXT_base_instance");
 	GLAD_EXT_bgra = has_ext("GL_EXT_bgra");
 	GLAD_EXT_bindable_uniform = has_ext("GL_EXT_bindable_uniform");
+	GLAD_EXT_blend_func_extended = has_ext("GL_EXT_blend_func_extended");
+	GLAD_EXT_blend_minmax = has_ext("GL_EXT_blend_minmax");
+	GLAD_EXT_buffer_storage = has_ext("GL_EXT_buffer_storage");
+	GLAD_EXT_color_buffer_float = has_ext("GL_EXT_color_buffer_float");
 	GLAD_EXT_color_buffer_half_float = has_ext("GL_EXT_color_buffer_half_float");
 	GLAD_EXT_copy_image = has_ext("GL_EXT_copy_image");
 	GLAD_EXT_debug_label = has_ext("GL_EXT_debug_label");
@@ -6614,6 +6908,7 @@ static void find_extensions(void) {
 	GLAD_EXT_draw_buffers_indexed = has_ext("GL_EXT_draw_buffers_indexed");
 	GLAD_EXT_draw_elements_base_vertex = has_ext("GL_EXT_draw_elements_base_vertex");
 	GLAD_EXT_draw_instanced = has_ext("GL_EXT_draw_instanced");
+	GLAD_EXT_float_blend = has_ext("GL_EXT_float_blend");
 	GLAD_EXT_framebuffer_blit = has_ext("GL_EXT_framebuffer_blit");
 	GLAD_EXT_framebuffer_multisample = has_ext("GL_EXT_framebuffer_multisample");
 	GLAD_EXT_framebuffer_multisample_blit_scaled = has_ext("GL_EXT_framebuffer_multisample_blit_scaled");
@@ -6628,6 +6923,7 @@ static void find_extensions(void) {
 	GLAD_EXT_instanced_arrays = has_ext("GL_EXT_instanced_arrays");
 	GLAD_EXT_map_buffer_range = has_ext("GL_EXT_map_buffer_range");
 	GLAD_EXT_multi_draw_indirect = has_ext("GL_EXT_multi_draw_indirect");
+	GLAD_EXT_multisampled_compatibility = has_ext("GL_EXT_multisampled_compatibility");
 	GLAD_EXT_multisampled_render_to_texture = has_ext("GL_EXT_multisampled_render_to_texture");
 	GLAD_EXT_multiview_draw_buffers = has_ext("GL_EXT_multiview_draw_buffers");
 	GLAD_EXT_occlusion_query_boolean = has_ext("GL_EXT_occlusion_query_boolean");
@@ -6653,6 +6949,7 @@ static void find_extensions(void) {
 	GLAD_EXT_shader_pixel_local_storage = has_ext("GL_EXT_shader_pixel_local_storage");
 	GLAD_EXT_shader_texture_lod = has_ext("GL_EXT_shader_texture_lod");
 	GLAD_EXT_shadow_samplers = has_ext("GL_EXT_shadow_samplers");
+	GLAD_EXT_sparse_texture = has_ext("GL_EXT_sparse_texture");
 	GLAD_EXT_sparse_texture2 = has_ext("GL_EXT_sparse_texture2");
 	GLAD_EXT_sRGB = has_ext("GL_EXT_sRGB");
 	GLAD_EXT_sRGB_write_control = has_ext("GL_EXT_sRGB_write_control");
@@ -6823,8 +7120,10 @@ static void find_extensions(void) {
 	GLAD_IMG_shader_binary = has_ext("GL_IMG_shader_binary");
 	GLAD_IMG_texture_compression_pvrtc = has_ext("GL_IMG_texture_compression_pvrtc");
 	GLAD_IMG_texture_compression_pvrtc2 = has_ext("GL_IMG_texture_compression_pvrtc2");
+	GLAD_IMG_texture_filter_cubic = has_ext("GL_IMG_texture_filter_cubic");
 	GLAD_INGR_blend_func_separate = has_ext("GL_INGR_blend_func_separate");
 	GLAD_INTEL_fragment_shader_ordering = has_ext("GL_INTEL_fragment_shader_ordering");
+	GLAD_INTEL_framebuffer_CMAA = has_ext("GL_INTEL_framebuffer_CMAA");
 	GLAD_INTEL_map_texture = has_ext("GL_INTEL_map_texture");
 	GLAD_INTEL_performance_query = has_ext("GL_INTEL_performance_query");
 	GLAD_MESA_pack_invert = has_ext("GL_MESA_pack_invert");
@@ -6835,9 +7134,11 @@ static void find_extensions(void) {
 	GLAD_NV_bindless_texture = has_ext("GL_NV_bindless_texture");
 	GLAD_NV_blend_equation_advanced = has_ext("GL_NV_blend_equation_advanced");
 	GLAD_NV_blend_equation_advanced_coherent = has_ext("GL_NV_blend_equation_advanced_coherent");
+	GLAD_NV_command_list = has_ext("GL_NV_command_list");
 	GLAD_NV_compute_program5 = has_ext("GL_NV_compute_program5");
 	GLAD_NV_conditional_render = has_ext("GL_NV_conditional_render");
 	GLAD_NV_conservative_raster = has_ext("GL_NV_conservative_raster");
+	GLAD_NV_conservative_raster_dilate = has_ext("GL_NV_conservative_raster_dilate");
 	GLAD_NV_copy_buffer = has_ext("GL_NV_copy_buffer");
 	GLAD_NV_copy_image = has_ext("GL_NV_copy_image");
 	GLAD_NV_coverage_sample = has_ext("GL_NV_coverage_sample");
@@ -6880,6 +7181,7 @@ static void find_extensions(void) {
 	GLAD_NV_parameter_buffer_object2 = has_ext("GL_NV_parameter_buffer_object2");
 	GLAD_NV_path_rendering = has_ext("GL_NV_path_rendering");
 	GLAD_NV_path_rendering_shared_edge = has_ext("GL_NV_path_rendering_shared_edge");
+	GLAD_NV_polygon_mode = has_ext("GL_NV_polygon_mode");
 	GLAD_NV_present_video = has_ext("GL_NV_present_video");
 	GLAD_NV_primitive_restart = has_ext("GL_NV_primitive_restart");
 	GLAD_NV_read_buffer = has_ext("GL_NV_read_buffer");
@@ -6920,6 +7222,9 @@ static void find_extensions(void) {
 	GLAD_NV_viewport_array2 = has_ext("GL_NV_viewport_array2");
 	GLAD_NVX_conditional_render = has_ext("GL_NVX_conditional_render");
 	GLAD_NVX_gpu_memory_info = has_ext("GL_NVX_gpu_memory_info");
+	GLAD_OVR_multiview = has_ext("GL_OVR_multiview");
+	GLAD_OVR_multiview2 = has_ext("GL_OVR_multiview2");
+	GLAD_OVR_multiview_multisampled_render_to_texture = has_ext("GL_OVR_multiview_multisampled_render_to_texture");
 	GLAD_QCOM_alpha_test = has_ext("GL_QCOM_alpha_test");
 	GLAD_QCOM_binning_control = has_ext("GL_QCOM_binning_control");
 	GLAD_QCOM_driver_control = has_ext("GL_QCOM_driver_control");
@@ -6928,13 +7233,6 @@ static void find_extensions(void) {
 	GLAD_QCOM_perfmon_global_mode = has_ext("GL_QCOM_perfmon_global_mode");
 	GLAD_QCOM_tiled_rendering = has_ext("GL_QCOM_tiled_rendering");
 	GLAD_QCOM_writeonly_rendering = has_ext("GL_QCOM_writeonly_rendering");
-	GLAD_SGIX_calligraphic_fragment = has_ext("GL_SGIX_calligraphic_fragment");
-	GLAD_SGIX_depth_pass_instrument = has_ext("GL_SGIX_depth_pass_instrument");
-	GLAD_SGIX_pixel_tiles = has_ext("GL_SGIX_pixel_tiles");
-	GLAD_SGIX_scalebias_hint = has_ext("GL_SGIX_scalebias_hint");
-	GLAD_SGIX_subsample = has_ext("GL_SGIX_subsample");
-	GLAD_SGIX_ycrcb_subsample = has_ext("GL_SGIX_ycrcb_subsample");
-	GLAD_SGIX_ycrcba = has_ext("GL_SGIX_ycrcba");
 	GLAD_VIV_shader_binary = has_ext("GL_VIV_shader_binary");
 }
 
@@ -6967,6 +7265,7 @@ static void find_core(void) {
 	GLAD_ES_VERSION_2_0 = gles == 1 && ((major == 2 && minor >= 0) || major > 2);
 	GLAD_ES_VERSION_3_0 = gles == 1 && ((major == 3 && minor >= 0) || major > 3);
 	GLAD_ES_VERSION_3_1 = gles == 1 && ((major == 3 && minor >= 1) || major > 3);
+	GLAD_ES_VERSION_3_2 = gles == 1 && ((major == 3 && minor >= 2) || major > 3);
 }
 
 bool gladLoadGLLoader(LOADER load) {
@@ -6995,6 +7294,7 @@ bool gladLoadGLLoader(LOADER load) {
 	load_GL_ES_VERSION_2_0(load);
 	load_GL_ES_VERSION_3_0(load);
 	load_GL_ES_VERSION_3_1(load);
+	load_GL_ES_VERSION_3_2(load);
 
 	find_extensions();
 	load_GL_KHR_blend_equation_advanced(load);
@@ -7021,12 +7321,14 @@ bool gladLoadGLLoader(LOADER load) {
 	load_GL_ARB_draw_instanced(load);
 	load_GL_ARB_ES2_compatibility(load);
 	load_GL_ARB_ES3_1_compatibility(load);
+	load_GL_ARB_ES3_2_compatibility(load);
 	load_GL_ARB_framebuffer_no_attachments(load);
 	load_GL_ARB_framebuffer_object(load);
 	load_GL_ARB_geometry_shader4(load);
 	load_GL_ARB_get_program_binary(load);
 	load_GL_ARB_get_texture_sub_image(load);
 	load_GL_ARB_gpu_shader_fp64(load);
+	load_GL_ARB_gpu_shader_int64(load);
 	load_GL_ARB_indirect_parameters(load);
 	load_GL_ARB_instanced_arrays(load);
 	load_GL_ARB_internalformat_query(load);
@@ -7035,9 +7337,11 @@ bool gladLoadGLLoader(LOADER load) {
 	load_GL_ARB_map_buffer_range(load);
 	load_GL_ARB_multi_bind(load);
 	load_GL_ARB_multi_draw_indirect(load);
+	load_GL_ARB_parallel_shader_compile(load);
 	load_GL_ARB_program_interface_query(load);
 	load_GL_ARB_provoking_vertex(load);
 	load_GL_ARB_robustness(load);
+	load_GL_ARB_sample_locations(load);
 	load_GL_ARB_sample_shading(load);
 	load_GL_ARB_sampler_objects(load);
 	load_GL_ARB_separate_shader_objects(load);
@@ -7069,6 +7373,9 @@ bool gladLoadGLLoader(LOADER load) {
 	load_GL_ARB_viewport_array(load);
 	load_GL_EXT_base_instance(load);
 	load_GL_EXT_bindable_uniform(load);
+	load_GL_EXT_blend_func_extended(load);
+	load_GL_EXT_blend_minmax(load);
+	load_GL_EXT_buffer_storage(load);
 	load_GL_EXT_copy_image(load);
 	load_GL_EXT_debug_label(load);
 	load_GL_EXT_debug_marker(load);
@@ -7100,6 +7407,7 @@ bool gladLoadGLLoader(LOADER load) {
 	load_GL_EXT_robustness(load);
 	load_GL_EXT_separate_shader_objects(load);
 	load_GL_EXT_shader_image_load_store(load);
+	load_GL_EXT_sparse_texture(load);
 	load_GL_EXT_stencil_clear_tag(load);
 	load_GL_EXT_tessellation_shader(load);
 	load_GL_EXT_texture_array(load);
@@ -7161,14 +7469,17 @@ bool gladLoadGLLoader(LOADER load) {
 	load_GL_GREMEDY_string_marker(load);
 	load_GL_IMG_multisampled_render_to_texture(load);
 	load_GL_INGR_blend_func_separate(load);
+	load_GL_INTEL_framebuffer_CMAA(load);
 	load_GL_INTEL_map_texture(load);
 	load_GL_INTEL_performance_query(load);
 	load_GL_NV_bindless_multi_draw_indirect(load);
 	load_GL_NV_bindless_multi_draw_indirect_count(load);
 	load_GL_NV_bindless_texture(load);
 	load_GL_NV_blend_equation_advanced(load);
+	load_GL_NV_command_list(load);
 	load_GL_NV_conditional_render(load);
 	load_GL_NV_conservative_raster(load);
+	load_GL_NV_conservative_raster_dilate(load);
 	load_GL_NV_copy_buffer(load);
 	load_GL_NV_copy_image(load);
 	load_GL_NV_coverage_sample(load);
@@ -7194,6 +7505,7 @@ bool gladLoadGLLoader(LOADER load) {
 	load_GL_NV_occlusion_query(load);
 	load_GL_NV_parameter_buffer_object(load);
 	load_GL_NV_path_rendering(load);
+	load_GL_NV_polygon_mode(load);
 	load_GL_NV_present_video(load);
 	load_GL_NV_primitive_restart(load);
 	load_GL_NV_read_buffer(load);
@@ -7210,6 +7522,8 @@ bool gladLoadGLLoader(LOADER load) {
 	load_GL_NV_video_capture(load);
 	load_GL_NV_viewport_array(load);
 	load_GL_NVX_conditional_render(load);
+	load_GL_OVR_multiview(load);
+	load_GL_OVR_multiview_multisampled_render_to_texture(load);
 	load_GL_QCOM_alpha_test(load);
 	load_GL_QCOM_driver_control(load);
 	load_GL_QCOM_extended_get(load);

+ 389 - 43
src/libraries/glad/glad.hpp

@@ -60,7 +60,6 @@
 #define GLAPI extern
 #endif
 
-/* Moved here from inside the namespace to prevent some compilation issues. */
 #include <stddef.h>
 
 namespace glad {
@@ -2312,6 +2311,22 @@ extern GLboolean GLAD_VERSION_3_0;
 #define GL_COLOR_ATTACHMENT13                  0x8CED
 #define GL_COLOR_ATTACHMENT14                  0x8CEE
 #define GL_COLOR_ATTACHMENT15                  0x8CEF
+#define GL_COLOR_ATTACHMENT16                  0x8CF0
+#define GL_COLOR_ATTACHMENT17                  0x8CF1
+#define GL_COLOR_ATTACHMENT18                  0x8CF2
+#define GL_COLOR_ATTACHMENT19                  0x8CF3
+#define GL_COLOR_ATTACHMENT20                  0x8CF4
+#define GL_COLOR_ATTACHMENT21                  0x8CF5
+#define GL_COLOR_ATTACHMENT22                  0x8CF6
+#define GL_COLOR_ATTACHMENT23                  0x8CF7
+#define GL_COLOR_ATTACHMENT24                  0x8CF8
+#define GL_COLOR_ATTACHMENT25                  0x8CF9
+#define GL_COLOR_ATTACHMENT26                  0x8CFA
+#define GL_COLOR_ATTACHMENT27                  0x8CFB
+#define GL_COLOR_ATTACHMENT28                  0x8CFC
+#define GL_COLOR_ATTACHMENT29                  0x8CFD
+#define GL_COLOR_ATTACHMENT30                  0x8CFE
+#define GL_COLOR_ATTACHMENT31                  0x8CFF
 #define GL_DEPTH_ATTACHMENT                    0x8D00
 #define GL_STENCIL_ATTACHMENT                  0x8D20
 #define GL_FRAMEBUFFER                         0x8D40
@@ -3876,7 +3891,7 @@ typedef void (APIENTRYP pfn_glClearNamedFramebufferuiv) (GLuint, GLenum, GLint,
 extern pfn_glClearNamedFramebufferuiv fp_glClearNamedFramebufferuiv;
 typedef void (APIENTRYP pfn_glClearNamedFramebufferfv) (GLuint, GLenum, GLint, const GLfloat*);
 extern pfn_glClearNamedFramebufferfv fp_glClearNamedFramebufferfv;
-typedef void (APIENTRYP pfn_glClearNamedFramebufferfi) (GLuint, GLenum, const GLfloat, GLint);
+typedef void (APIENTRYP pfn_glClearNamedFramebufferfi) (GLuint, GLenum, GLint, GLfloat, GLint);
 extern pfn_glClearNamedFramebufferfi fp_glClearNamedFramebufferfi;
 typedef void (APIENTRYP pfn_glBlitNamedFramebuffer) (GLuint, GLuint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
 extern pfn_glBlitNamedFramebuffer fp_glBlitNamedFramebuffer;
@@ -4063,6 +4078,59 @@ extern GLboolean GLAD_ES_VERSION_3_0;
  /* GL_ES_VERSION_3_1 */
 extern GLboolean GLAD_ES_VERSION_3_1;
 
+ /* GL_ES_VERSION_3_2 */
+extern GLboolean GLAD_ES_VERSION_3_2;
+#define GL_MULTISAMPLE_LINE_WIDTH_RANGE        0x9381
+#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY  0x9382
+#define GL_MULTIPLY                            0x9294
+#define GL_SCREEN                              0x9295
+#define GL_OVERLAY                             0x9296
+#define GL_DARKEN                              0x9297
+#define GL_LIGHTEN                             0x9298
+#define GL_COLORDODGE                          0x9299
+#define GL_COLORBURN                           0x929A
+#define GL_HARDLIGHT                           0x929B
+#define GL_SOFTLIGHT                           0x929C
+#define GL_DIFFERENCE                          0x929E
+#define GL_EXCLUSION                           0x92A0
+#define GL_HSL_HUE                             0x92AD
+#define GL_HSL_SATURATION                      0x92AE
+#define GL_HSL_COLOR                           0x92AF
+#define GL_HSL_LUMINOSITY                      0x92B0
+#define GL_PRIMITIVE_BOUNDING_BOX              0x92BE
+#define GL_COMPRESSED_RGBA_ASTC_4x4            0x93B0
+#define GL_COMPRESSED_RGBA_ASTC_5x4            0x93B1
+#define GL_COMPRESSED_RGBA_ASTC_5x5            0x93B2
+#define GL_COMPRESSED_RGBA_ASTC_6x5            0x93B3
+#define GL_COMPRESSED_RGBA_ASTC_6x6            0x93B4
+#define GL_COMPRESSED_RGBA_ASTC_8x5            0x93B5
+#define GL_COMPRESSED_RGBA_ASTC_8x6            0x93B6
+#define GL_COMPRESSED_RGBA_ASTC_8x8            0x93B7
+#define GL_COMPRESSED_RGBA_ASTC_10x5           0x93B8
+#define GL_COMPRESSED_RGBA_ASTC_10x6           0x93B9
+#define GL_COMPRESSED_RGBA_ASTC_10x8           0x93BA
+#define GL_COMPRESSED_RGBA_ASTC_10x10          0x93BB
+#define GL_COMPRESSED_RGBA_ASTC_12x10          0x93BC
+#define GL_COMPRESSED_RGBA_ASTC_12x12          0x93BD
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4    0x93D0
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4    0x93D1
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5    0x93D2
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5    0x93D3
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6    0x93D4
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5    0x93D5
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6    0x93D6
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8    0x93D7
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5   0x93D8
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6   0x93D9
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8   0x93DA
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10  0x93DB
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10  0x93DC
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12  0x93DD
+typedef void (APIENTRYP pfn_glBlendBarrier) ();
+extern pfn_glBlendBarrier fp_glBlendBarrier;
+typedef void (APIENTRYP pfn_glPrimitiveBoundingBox) (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+extern pfn_glPrimitiveBoundingBox fp_glPrimitiveBoundingBox;
+
  /* GL_KHR_blend_equation_advanced */
 extern GLboolean GLAD_KHR_blend_equation_advanced;
 #define GL_MULTIPLY_KHR                        0x9294
@@ -4157,6 +4225,10 @@ extern pfn_glGetObjectPtrLabelKHR fp_glGetObjectPtrLabelKHR;
 typedef void (APIENTRYP pfn_glGetPointervKHR) (GLenum, void**);
 extern pfn_glGetPointervKHR fp_glGetPointervKHR;
 
+ /* GL_KHR_no_error */
+extern GLboolean GLAD_KHR_no_error;
+#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR       0x00000008
+
  /* GL_KHR_robust_buffer_access_behavior */
 extern GLboolean GLAD_KHR_robust_buffer_access_behavior;
 
@@ -4216,6 +4288,9 @@ extern GLboolean GLAD_KHR_texture_compression_astc_hdr;
  /* GL_KHR_texture_compression_astc_ldr */
 extern GLboolean GLAD_KHR_texture_compression_astc_ldr;
 
+ /* GL_KHR_texture_compression_astc_sliced_3d */
+extern GLboolean GLAD_KHR_texture_compression_astc_sliced_3d;
+
  /* GL_ARB_arrays_of_arrays */
 extern GLboolean GLAD_ARB_arrays_of_arrays;
 
@@ -4401,6 +4476,14 @@ extern GLboolean GLAD_ARB_ES2_compatibility;
  /* GL_ARB_ES3_1_compatibility */
 extern GLboolean GLAD_ARB_ES3_1_compatibility;
 
+ /* GL_ARB_ES3_2_compatibility */
+extern GLboolean GLAD_ARB_ES3_2_compatibility;
+#define GL_PRIMITIVE_BOUNDING_BOX_ARB          0x92BE
+#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB    0x9381
+#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB  0x9382
+typedef void (APIENTRYP pfn_glPrimitiveBoundingBoxARB) (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+extern pfn_glPrimitiveBoundingBoxARB fp_glPrimitiveBoundingBoxARB;
+
  /* GL_ARB_ES3_compatibility */
 extern GLboolean GLAD_ARB_ES3_compatibility;
 
@@ -4416,6 +4499,9 @@ extern GLboolean GLAD_ARB_fragment_coord_conventions;
  /* GL_ARB_fragment_layer_viewport */
 extern GLboolean GLAD_ARB_fragment_layer_viewport;
 
+ /* GL_ARB_fragment_shader_interlock */
+extern GLboolean GLAD_ARB_fragment_shader_interlock;
+
  /* GL_ARB_framebuffer_no_attachments */
 extern GLboolean GLAD_ARB_framebuffer_no_attachments;
 
@@ -4466,6 +4552,88 @@ extern GLboolean GLAD_ARB_gpu_shader5;
  /* GL_ARB_gpu_shader_fp64 */
 extern GLboolean GLAD_ARB_gpu_shader_fp64;
 
+ /* GL_ARB_gpu_shader_int64 */
+extern GLboolean GLAD_ARB_gpu_shader_int64;
+#define GL_INT64_ARB                           0x140E
+#define GL_INT64_VEC2_ARB                      0x8FE9
+#define GL_INT64_VEC3_ARB                      0x8FEA
+#define GL_INT64_VEC4_ARB                      0x8FEB
+#define GL_UNSIGNED_INT64_VEC2_ARB             0x8FF5
+#define GL_UNSIGNED_INT64_VEC3_ARB             0x8FF6
+#define GL_UNSIGNED_INT64_VEC4_ARB             0x8FF7
+typedef void (APIENTRYP pfn_glUniform1i64ARB) (GLint, GLint64);
+extern pfn_glUniform1i64ARB fp_glUniform1i64ARB;
+typedef void (APIENTRYP pfn_glUniform2i64ARB) (GLint, GLint64, GLint64);
+extern pfn_glUniform2i64ARB fp_glUniform2i64ARB;
+typedef void (APIENTRYP pfn_glUniform3i64ARB) (GLint, GLint64, GLint64, GLint64);
+extern pfn_glUniform3i64ARB fp_glUniform3i64ARB;
+typedef void (APIENTRYP pfn_glUniform4i64ARB) (GLint, GLint64, GLint64, GLint64, GLint64);
+extern pfn_glUniform4i64ARB fp_glUniform4i64ARB;
+typedef void (APIENTRYP pfn_glUniform1i64vARB) (GLint, GLsizei, const GLint64*);
+extern pfn_glUniform1i64vARB fp_glUniform1i64vARB;
+typedef void (APIENTRYP pfn_glUniform2i64vARB) (GLint, GLsizei, const GLint64*);
+extern pfn_glUniform2i64vARB fp_glUniform2i64vARB;
+typedef void (APIENTRYP pfn_glUniform3i64vARB) (GLint, GLsizei, const GLint64*);
+extern pfn_glUniform3i64vARB fp_glUniform3i64vARB;
+typedef void (APIENTRYP pfn_glUniform4i64vARB) (GLint, GLsizei, const GLint64*);
+extern pfn_glUniform4i64vARB fp_glUniform4i64vARB;
+typedef void (APIENTRYP pfn_glUniform1ui64ARB) (GLint, GLuint64);
+extern pfn_glUniform1ui64ARB fp_glUniform1ui64ARB;
+typedef void (APIENTRYP pfn_glUniform2ui64ARB) (GLint, GLuint64, GLuint64);
+extern pfn_glUniform2ui64ARB fp_glUniform2ui64ARB;
+typedef void (APIENTRYP pfn_glUniform3ui64ARB) (GLint, GLuint64, GLuint64, GLuint64);
+extern pfn_glUniform3ui64ARB fp_glUniform3ui64ARB;
+typedef void (APIENTRYP pfn_glUniform4ui64ARB) (GLint, GLuint64, GLuint64, GLuint64, GLuint64);
+extern pfn_glUniform4ui64ARB fp_glUniform4ui64ARB;
+typedef void (APIENTRYP pfn_glUniform1ui64vARB) (GLint, GLsizei, const GLuint64*);
+extern pfn_glUniform1ui64vARB fp_glUniform1ui64vARB;
+typedef void (APIENTRYP pfn_glUniform2ui64vARB) (GLint, GLsizei, const GLuint64*);
+extern pfn_glUniform2ui64vARB fp_glUniform2ui64vARB;
+typedef void (APIENTRYP pfn_glUniform3ui64vARB) (GLint, GLsizei, const GLuint64*);
+extern pfn_glUniform3ui64vARB fp_glUniform3ui64vARB;
+typedef void (APIENTRYP pfn_glUniform4ui64vARB) (GLint, GLsizei, const GLuint64*);
+extern pfn_glUniform4ui64vARB fp_glUniform4ui64vARB;
+typedef void (APIENTRYP pfn_glGetUniformi64vARB) (GLuint, GLint, GLint64*);
+extern pfn_glGetUniformi64vARB fp_glGetUniformi64vARB;
+typedef void (APIENTRYP pfn_glGetUniformui64vARB) (GLuint, GLint, GLuint64*);
+extern pfn_glGetUniformui64vARB fp_glGetUniformui64vARB;
+typedef void (APIENTRYP pfn_glGetnUniformi64vARB) (GLuint, GLint, GLsizei, GLint64*);
+extern pfn_glGetnUniformi64vARB fp_glGetnUniformi64vARB;
+typedef void (APIENTRYP pfn_glGetnUniformui64vARB) (GLuint, GLint, GLsizei, GLuint64*);
+extern pfn_glGetnUniformui64vARB fp_glGetnUniformui64vARB;
+typedef void (APIENTRYP pfn_glProgramUniform1i64ARB) (GLuint, GLint, GLint64);
+extern pfn_glProgramUniform1i64ARB fp_glProgramUniform1i64ARB;
+typedef void (APIENTRYP pfn_glProgramUniform2i64ARB) (GLuint, GLint, GLint64, GLint64);
+extern pfn_glProgramUniform2i64ARB fp_glProgramUniform2i64ARB;
+typedef void (APIENTRYP pfn_glProgramUniform3i64ARB) (GLuint, GLint, GLint64, GLint64, GLint64);
+extern pfn_glProgramUniform3i64ARB fp_glProgramUniform3i64ARB;
+typedef void (APIENTRYP pfn_glProgramUniform4i64ARB) (GLuint, GLint, GLint64, GLint64, GLint64, GLint64);
+extern pfn_glProgramUniform4i64ARB fp_glProgramUniform4i64ARB;
+typedef void (APIENTRYP pfn_glProgramUniform1i64vARB) (GLuint, GLint, GLsizei, const GLint64*);
+extern pfn_glProgramUniform1i64vARB fp_glProgramUniform1i64vARB;
+typedef void (APIENTRYP pfn_glProgramUniform2i64vARB) (GLuint, GLint, GLsizei, const GLint64*);
+extern pfn_glProgramUniform2i64vARB fp_glProgramUniform2i64vARB;
+typedef void (APIENTRYP pfn_glProgramUniform3i64vARB) (GLuint, GLint, GLsizei, const GLint64*);
+extern pfn_glProgramUniform3i64vARB fp_glProgramUniform3i64vARB;
+typedef void (APIENTRYP pfn_glProgramUniform4i64vARB) (GLuint, GLint, GLsizei, const GLint64*);
+extern pfn_glProgramUniform4i64vARB fp_glProgramUniform4i64vARB;
+typedef void (APIENTRYP pfn_glProgramUniform1ui64ARB) (GLuint, GLint, GLuint64);
+extern pfn_glProgramUniform1ui64ARB fp_glProgramUniform1ui64ARB;
+typedef void (APIENTRYP pfn_glProgramUniform2ui64ARB) (GLuint, GLint, GLuint64, GLuint64);
+extern pfn_glProgramUniform2ui64ARB fp_glProgramUniform2ui64ARB;
+typedef void (APIENTRYP pfn_glProgramUniform3ui64ARB) (GLuint, GLint, GLuint64, GLuint64, GLuint64);
+extern pfn_glProgramUniform3ui64ARB fp_glProgramUniform3ui64ARB;
+typedef void (APIENTRYP pfn_glProgramUniform4ui64ARB) (GLuint, GLint, GLuint64, GLuint64, GLuint64, GLuint64);
+extern pfn_glProgramUniform4ui64ARB fp_glProgramUniform4ui64ARB;
+typedef void (APIENTRYP pfn_glProgramUniform1ui64vARB) (GLuint, GLint, GLsizei, const GLuint64*);
+extern pfn_glProgramUniform1ui64vARB fp_glProgramUniform1ui64vARB;
+typedef void (APIENTRYP pfn_glProgramUniform2ui64vARB) (GLuint, GLint, GLsizei, const GLuint64*);
+extern pfn_glProgramUniform2ui64vARB fp_glProgramUniform2ui64vARB;
+typedef void (APIENTRYP pfn_glProgramUniform3ui64vARB) (GLuint, GLint, GLsizei, const GLuint64*);
+extern pfn_glProgramUniform3ui64vARB fp_glProgramUniform3ui64vARB;
+typedef void (APIENTRYP pfn_glProgramUniform4ui64vARB) (GLuint, GLint, GLsizei, const GLuint64*);
+extern pfn_glProgramUniform4ui64vARB fp_glProgramUniform4ui64vARB;
+
  /* GL_ARB_half_float_pixel */
 extern GLboolean GLAD_ARB_half_float_pixel;
 #define GL_HALF_FLOAT_ARB                      0x140B
@@ -4513,6 +4681,13 @@ extern GLboolean GLAD_ARB_multi_draw_indirect;
  /* GL_ARB_occlusion_query2 */
 extern GLboolean GLAD_ARB_occlusion_query2;
 
+ /* GL_ARB_parallel_shader_compile */
+extern GLboolean GLAD_ARB_parallel_shader_compile;
+#define GL_MAX_SHADER_COMPILER_THREADS_ARB     0x91B0
+#define GL_COMPLETION_STATUS_ARB               0x91B1
+typedef void (APIENTRYP pfn_glMaxShaderCompilerThreadsARB) (GLuint);
+extern pfn_glMaxShaderCompilerThreadsARB fp_glMaxShaderCompilerThreadsARB;
+
  /* GL_ARB_pipeline_statistics_query */
 extern GLboolean GLAD_ARB_pipeline_statistics_query;
 #define GL_VERTICES_SUBMITTED_ARB              0x82EE
@@ -4533,6 +4708,9 @@ extern GLboolean GLAD_ARB_pixel_buffer_object;
 #define GL_PIXEL_PACK_BUFFER_BINDING_ARB       0x88ED
 #define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB     0x88EF
 
+ /* GL_ARB_post_depth_coverage */
+extern GLboolean GLAD_ARB_post_depth_coverage;
+
  /* GL_ARB_program_interface_query */
 extern GLboolean GLAD_ARB_program_interface_query;
 
@@ -4598,6 +4776,23 @@ extern pfn_glGetnMinmaxARB fp_glGetnMinmaxARB;
  /* GL_ARB_robustness_isolation */
 extern GLboolean GLAD_ARB_robustness_isolation;
 
+ /* GL_ARB_sample_locations */
+extern GLboolean GLAD_ARB_sample_locations;
+#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB   0x933D
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB  0x933E
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB  0x933F
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB  0x9340
+#define GL_SAMPLE_LOCATION_ARB                 0x8E50
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB    0x9341
+#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB  0x9342
+#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB  0x9343
+typedef void (APIENTRYP pfn_glFramebufferSampleLocationsfvARB) (GLenum, GLuint, GLsizei, const GLfloat*);
+extern pfn_glFramebufferSampleLocationsfvARB fp_glFramebufferSampleLocationsfvARB;
+typedef void (APIENTRYP pfn_glNamedFramebufferSampleLocationsfvARB) (GLuint, GLuint, GLsizei, const GLfloat*);
+extern pfn_glNamedFramebufferSampleLocationsfvARB fp_glNamedFramebufferSampleLocationsfvARB;
+typedef void (APIENTRYP pfn_glEvaluateDepthValuesARB) ();
+extern pfn_glEvaluateDepthValuesARB fp_glEvaluateDepthValuesARB;
+
  /* GL_ARB_sample_shading */
 extern GLboolean GLAD_ARB_sample_shading;
 #define GL_SAMPLE_SHADING_ARB                  0x8C36
@@ -4617,12 +4812,21 @@ extern GLboolean GLAD_ARB_seamless_cubemap_per_texture;
  /* GL_ARB_separate_shader_objects */
 extern GLboolean GLAD_ARB_separate_shader_objects;
 
+ /* GL_ARB_shader_atomic_counter_ops */
+extern GLboolean GLAD_ARB_shader_atomic_counter_ops;
+
  /* GL_ARB_shader_atomic_counters */
 extern GLboolean GLAD_ARB_shader_atomic_counters;
 
+ /* GL_ARB_shader_ballot */
+extern GLboolean GLAD_ARB_shader_ballot;
+
  /* GL_ARB_shader_bit_encoding */
 extern GLboolean GLAD_ARB_shader_bit_encoding;
 
+ /* GL_ARB_shader_clock */
+extern GLboolean GLAD_ARB_shader_clock;
+
  /* GL_ARB_shader_draw_parameters */
 extern GLboolean GLAD_ARB_shader_draw_parameters;
 
@@ -4653,6 +4857,9 @@ extern GLboolean GLAD_ARB_shader_texture_image_samples;
  /* GL_ARB_shader_texture_lod */
 extern GLboolean GLAD_ARB_shader_texture_lod;
 
+ /* GL_ARB_shader_viewport_layer_array */
+extern GLboolean GLAD_ARB_shader_viewport_layer_array;
+
  /* GL_ARB_shading_language_420pack */
 extern GLboolean GLAD_ARB_shading_language_420pack;
 
@@ -4704,6 +4911,12 @@ extern GLboolean GLAD_ARB_sparse_texture;
 typedef void (APIENTRYP pfn_glTexPageCommitmentARB) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLboolean);
 extern pfn_glTexPageCommitmentARB fp_glTexPageCommitmentARB;
 
+ /* GL_ARB_sparse_texture2 */
+extern GLboolean GLAD_ARB_sparse_texture2;
+
+ /* GL_ARB_sparse_texture_clamp */
+extern GLboolean GLAD_ARB_sparse_texture_clamp;
+
  /* GL_ARB_stencil_texturing */
 extern GLboolean GLAD_ARB_stencil_texturing;
 
@@ -4752,6 +4965,11 @@ extern GLboolean GLAD_ARB_texture_cube_map_array;
 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB      0x900E
 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB  0x900F
 
+ /* GL_ARB_texture_filter_minmax */
+extern GLboolean GLAD_ARB_texture_filter_minmax;
+#define GL_TEXTURE_REDUCTION_MODE_ARB          0x9366
+#define GL_WEIGHTED_AVERAGE_ARB                0x9367
+
  /* GL_ARB_texture_float */
 extern GLboolean GLAD_ARB_texture_float;
 #define GL_TEXTURE_RED_TYPE_ARB                0x8C10
@@ -4891,6 +5109,48 @@ extern pfn_glGetUniformBufferSizeEXT fp_glGetUniformBufferSizeEXT;
 typedef GLintptr (APIENTRYP pfn_glGetUniformOffsetEXT) (GLuint, GLint);
 extern pfn_glGetUniformOffsetEXT fp_glGetUniformOffsetEXT;
 
+ /* GL_EXT_blend_func_extended */
+extern GLboolean GLAD_EXT_blend_func_extended;
+#define GL_SRC1_COLOR_EXT                      0x88F9
+#define GL_SRC1_ALPHA_EXT                      0x8589
+#define GL_ONE_MINUS_SRC1_COLOR_EXT            0x88FA
+#define GL_ONE_MINUS_SRC1_ALPHA_EXT            0x88FB
+#define GL_SRC_ALPHA_SATURATE_EXT              0x0308
+#define GL_LOCATION_INDEX_EXT                  0x930F
+#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT    0x88FC
+typedef void (APIENTRYP pfn_glBindFragDataLocationIndexedEXT) (GLuint, GLuint, GLuint, const GLchar*);
+extern pfn_glBindFragDataLocationIndexedEXT fp_glBindFragDataLocationIndexedEXT;
+typedef void (APIENTRYP pfn_glBindFragDataLocationEXT) (GLuint, GLuint, const GLchar*);
+extern pfn_glBindFragDataLocationEXT fp_glBindFragDataLocationEXT;
+typedef GLint (APIENTRYP pfn_glGetProgramResourceLocationIndexEXT) (GLuint, GLenum, const GLchar*);
+extern pfn_glGetProgramResourceLocationIndexEXT fp_glGetProgramResourceLocationIndexEXT;
+typedef GLint (APIENTRYP pfn_glGetFragDataIndexEXT) (GLuint, const GLchar*);
+extern pfn_glGetFragDataIndexEXT fp_glGetFragDataIndexEXT;
+
+ /* GL_EXT_blend_minmax */
+extern GLboolean GLAD_EXT_blend_minmax;
+#define GL_MIN_EXT                             0x8007
+#define GL_MAX_EXT                             0x8008
+#define GL_FUNC_ADD_EXT                        0x8006
+#define GL_BLEND_EQUATION_EXT                  0x8009
+typedef void (APIENTRYP pfn_glBlendEquationEXT) (GLenum);
+extern pfn_glBlendEquationEXT fp_glBlendEquationEXT;
+
+ /* GL_EXT_buffer_storage */
+extern GLboolean GLAD_EXT_buffer_storage;
+#define GL_MAP_PERSISTENT_BIT_EXT              0x0040
+#define GL_MAP_COHERENT_BIT_EXT                0x0080
+#define GL_DYNAMIC_STORAGE_BIT_EXT             0x0100
+#define GL_CLIENT_STORAGE_BIT_EXT              0x0200
+#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT  0x00004000
+#define GL_BUFFER_IMMUTABLE_STORAGE_EXT        0x821F
+#define GL_BUFFER_STORAGE_FLAGS_EXT            0x8220
+typedef void (APIENTRYP pfn_glBufferStorageEXT) (GLenum, GLsizeiptr, const void*, GLbitfield);
+extern pfn_glBufferStorageEXT fp_glBufferStorageEXT;
+
+ /* GL_EXT_color_buffer_float */
+extern GLboolean GLAD_EXT_color_buffer_float;
+
  /* GL_EXT_color_buffer_half_float */
 extern GLboolean GLAD_EXT_color_buffer_half_float;
 #define GL_RGBA16F_EXT                         0x881A
@@ -5564,6 +5824,9 @@ extern pfn_glDrawArraysInstancedEXT fp_glDrawArraysInstancedEXT;
 typedef void (APIENTRYP pfn_glDrawElementsInstancedEXT) (GLenum, GLsizei, GLenum, const void*, GLsizei);
 extern pfn_glDrawElementsInstancedEXT fp_glDrawElementsInstancedEXT;
 
+ /* GL_EXT_float_blend */
+extern GLboolean GLAD_EXT_float_blend;
+
  /* GL_EXT_framebuffer_blit */
 extern GLboolean GLAD_EXT_framebuffer_blit;
 #define GL_READ_FRAMEBUFFER_EXT                0x8CA8
@@ -5756,8 +6019,6 @@ extern GLboolean GLAD_EXT_gpu_shader4;
 #define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT        0x8905
 typedef void (APIENTRYP pfn_glGetUniformuivEXT) (GLuint, GLint, GLuint*);
 extern pfn_glGetUniformuivEXT fp_glGetUniformuivEXT;
-typedef void (APIENTRYP pfn_glBindFragDataLocationEXT) (GLuint, GLuint, const GLchar*);
-extern pfn_glBindFragDataLocationEXT fp_glBindFragDataLocationEXT;
 typedef GLint (APIENTRYP pfn_glGetFragDataLocationEXT) (GLuint, const GLchar*);
 extern pfn_glGetFragDataLocationEXT fp_glGetFragDataLocationEXT;
 typedef void (APIENTRYP pfn_glUniform1uiEXT) (GLint, GLuint);
@@ -5806,6 +6067,11 @@ extern pfn_glMultiDrawArraysIndirectEXT fp_glMultiDrawArraysIndirectEXT;
 typedef void (APIENTRYP pfn_glMultiDrawElementsIndirectEXT) (GLenum, GLenum, const void*, GLsizei, GLsizei);
 extern pfn_glMultiDrawElementsIndirectEXT fp_glMultiDrawElementsIndirectEXT;
 
+ /* GL_EXT_multisampled_compatibility */
+extern GLboolean GLAD_EXT_multisampled_compatibility;
+#define GL_MULTISAMPLE_EXT                     0x809D
+#define GL_SAMPLE_ALPHA_TO_ONE_EXT             0x809F
+
  /* GL_EXT_multisampled_render_to_texture */
 extern GLboolean GLAD_EXT_multisampled_render_to_texture;
 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT  0x8D6C
@@ -6051,6 +6317,23 @@ extern GLboolean GLAD_EXT_shadow_samplers;
 #define GL_COMPARE_REF_TO_TEXTURE_EXT          0x884E
 #define GL_SAMPLER_2D_SHADOW_EXT               0x8B62
 
+ /* GL_EXT_sparse_texture */
+extern GLboolean GLAD_EXT_sparse_texture;
+#define GL_TEXTURE_SPARSE_EXT                  0x91A6
+#define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT         0x91A7
+#define GL_NUM_SPARSE_LEVELS_EXT               0x91AA
+#define GL_NUM_VIRTUAL_PAGE_SIZES_EXT          0x91A8
+#define GL_VIRTUAL_PAGE_SIZE_X_EXT             0x9195
+#define GL_VIRTUAL_PAGE_SIZE_Y_EXT             0x9196
+#define GL_VIRTUAL_PAGE_SIZE_Z_EXT             0x9197
+#define GL_TEXTURE_CUBE_MAP_ARRAY_OES          0x9009
+#define GL_MAX_SPARSE_TEXTURE_SIZE_EXT         0x9198
+#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT      0x9199
+#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT  0x919A
+#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT  0x91A9
+typedef void (APIENTRYP pfn_glTexPageCommitmentEXT) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLboolean);
+extern pfn_glTexPageCommitmentEXT fp_glTexPageCommitmentEXT;
+
  /* GL_EXT_sparse_texture2 */
 extern GLboolean GLAD_EXT_sparse_texture2;
 
@@ -6843,7 +7126,6 @@ extern GLboolean GLAD_OES_texture_compression_astc;
 
  /* GL_OES_texture_cube_map_array */
 extern GLboolean GLAD_OES_texture_cube_map_array;
-#define GL_TEXTURE_CUBE_MAP_ARRAY_OES          0x9009
 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES  0x900A
 #define GL_SAMPLER_CUBE_MAP_ARRAY_OES          0x900C
 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES   0x900D
@@ -7632,6 +7914,12 @@ extern GLboolean GLAD_IMG_texture_compression_pvrtc2;
 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG    0x9137
 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG    0x9138
 
+ /* GL_IMG_texture_filter_cubic */
+extern GLboolean GLAD_IMG_texture_filter_cubic;
+#define GL_CUBIC_IMG                           0x9139
+#define GL_CUBIC_MIPMAP_NEAREST_IMG            0x913A
+#define GL_CUBIC_MIPMAP_LINEAR_IMG             0x913B
+
  /* GL_INGR_blend_func_separate */
 extern GLboolean GLAD_INGR_blend_func_separate;
 typedef void (APIENTRYP pfn_glBlendFuncSeparateINGR) (GLenum, GLenum, GLenum, GLenum);
@@ -7640,6 +7928,11 @@ extern pfn_glBlendFuncSeparateINGR fp_glBlendFuncSeparateINGR;
  /* GL_INTEL_fragment_shader_ordering */
 extern GLboolean GLAD_INTEL_fragment_shader_ordering;
 
+ /* GL_INTEL_framebuffer_CMAA */
+extern GLboolean GLAD_INTEL_framebuffer_CMAA;
+typedef void (APIENTRYP pfn_glApplyFramebufferAttachmentCMAAINTEL) ();
+extern pfn_glApplyFramebufferAttachmentCMAAINTEL fp_glApplyFramebufferAttachmentCMAAINTEL;
+
  /* GL_INTEL_map_texture */
 extern GLboolean GLAD_INTEL_map_texture;
 #define GL_TEXTURE_MEMORY_LAYOUT_INTEL         0x83FF
@@ -7818,6 +8111,62 @@ extern pfn_glBlendBarrierNV fp_glBlendBarrierNV;
 extern GLboolean GLAD_NV_blend_equation_advanced_coherent;
 #define GL_BLEND_ADVANCED_COHERENT_NV          0x9285
 
+ /* GL_NV_command_list */
+extern GLboolean GLAD_NV_command_list;
+#define GL_TERMINATE_SEQUENCE_COMMAND_NV       0x0000
+#define GL_NOP_COMMAND_NV                      0x0001
+#define GL_DRAW_ELEMENTS_COMMAND_NV            0x0002
+#define GL_DRAW_ARRAYS_COMMAND_NV              0x0003
+#define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV      0x0004
+#define GL_DRAW_ARRAYS_STRIP_COMMAND_NV        0x0005
+#define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV  0x0006
+#define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV    0x0007
+#define GL_ELEMENT_ADDRESS_COMMAND_NV          0x0008
+#define GL_ATTRIBUTE_ADDRESS_COMMAND_NV        0x0009
+#define GL_UNIFORM_ADDRESS_COMMAND_NV          0x000A
+#define GL_BLEND_COLOR_COMMAND_NV              0x000B
+#define GL_STENCIL_REF_COMMAND_NV              0x000C
+#define GL_LINE_WIDTH_COMMAND_NV               0x000D
+#define GL_POLYGON_OFFSET_COMMAND_NV           0x000E
+#define GL_ALPHA_REF_COMMAND_NV                0x000F
+#define GL_VIEWPORT_COMMAND_NV                 0x0010
+#define GL_SCISSOR_COMMAND_NV                  0x0011
+#define GL_FRONT_FACE_COMMAND_NV               0x0012
+typedef void (APIENTRYP pfn_glCreateStatesNV) (GLsizei, GLuint*);
+extern pfn_glCreateStatesNV fp_glCreateStatesNV;
+typedef void (APIENTRYP pfn_glDeleteStatesNV) (GLsizei, const GLuint*);
+extern pfn_glDeleteStatesNV fp_glDeleteStatesNV;
+typedef GLboolean (APIENTRYP pfn_glIsStateNV) (GLuint);
+extern pfn_glIsStateNV fp_glIsStateNV;
+typedef void (APIENTRYP pfn_glStateCaptureNV) (GLuint, GLenum);
+extern pfn_glStateCaptureNV fp_glStateCaptureNV;
+typedef GLuint (APIENTRYP pfn_glGetCommandHeaderNV) (GLenum, GLuint);
+extern pfn_glGetCommandHeaderNV fp_glGetCommandHeaderNV;
+typedef GLushort (APIENTRYP pfn_glGetStageIndexNV) (GLenum);
+extern pfn_glGetStageIndexNV fp_glGetStageIndexNV;
+typedef void (APIENTRYP pfn_glDrawCommandsNV) (GLenum, GLuint, const GLintptr*, const GLsizei*, GLuint);
+extern pfn_glDrawCommandsNV fp_glDrawCommandsNV;
+typedef void (APIENTRYP pfn_glDrawCommandsAddressNV) (GLenum, const GLuint64*, const GLsizei*, GLuint);
+extern pfn_glDrawCommandsAddressNV fp_glDrawCommandsAddressNV;
+typedef void (APIENTRYP pfn_glDrawCommandsStatesNV) (GLuint, const GLintptr*, const GLsizei*, const GLuint*, const GLuint*, GLuint);
+extern pfn_glDrawCommandsStatesNV fp_glDrawCommandsStatesNV;
+typedef void (APIENTRYP pfn_glDrawCommandsStatesAddressNV) (const GLuint64*, const GLsizei*, const GLuint*, const GLuint*, GLuint);
+extern pfn_glDrawCommandsStatesAddressNV fp_glDrawCommandsStatesAddressNV;
+typedef void (APIENTRYP pfn_glCreateCommandListsNV) (GLsizei, GLuint*);
+extern pfn_glCreateCommandListsNV fp_glCreateCommandListsNV;
+typedef void (APIENTRYP pfn_glDeleteCommandListsNV) (GLsizei, const GLuint*);
+extern pfn_glDeleteCommandListsNV fp_glDeleteCommandListsNV;
+typedef GLboolean (APIENTRYP pfn_glIsCommandListNV) (GLuint);
+extern pfn_glIsCommandListNV fp_glIsCommandListNV;
+typedef void (APIENTRYP pfn_glListDrawCommandsStatesClientNV) (GLuint, GLuint, const void**, const GLsizei*, const GLuint*, const GLuint*, GLuint);
+extern pfn_glListDrawCommandsStatesClientNV fp_glListDrawCommandsStatesClientNV;
+typedef void (APIENTRYP pfn_glCommandListSegmentsNV) (GLuint, GLuint);
+extern pfn_glCommandListSegmentsNV fp_glCommandListSegmentsNV;
+typedef void (APIENTRYP pfn_glCompileCommandListNV) (GLuint);
+extern pfn_glCompileCommandListNV fp_glCompileCommandListNV;
+typedef void (APIENTRYP pfn_glCallCommandListNV) (GLuint);
+extern pfn_glCallCommandListNV fp_glCallCommandListNV;
+
  /* GL_NV_compute_program5 */
 extern GLboolean GLAD_NV_compute_program5;
 #define GL_COMPUTE_PROGRAM_NV                  0x90FB
@@ -7843,6 +8192,14 @@ extern GLboolean GLAD_NV_conservative_raster;
 typedef void (APIENTRYP pfn_glSubpixelPrecisionBiasNV) (GLuint, GLuint);
 extern pfn_glSubpixelPrecisionBiasNV fp_glSubpixelPrecisionBiasNV;
 
+ /* GL_NV_conservative_raster_dilate */
+extern GLboolean GLAD_NV_conservative_raster_dilate;
+#define GL_CONSERVATIVE_RASTER_DILATE_NV       0x9379
+#define GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV  0x937A
+#define GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV  0x937B
+typedef void (APIENTRYP pfn_glConservativeRasterParameterfNV) (GLenum, GLfloat);
+extern pfn_glConservativeRasterParameterfNV fp_glConservativeRasterParameterfNV;
+
  /* GL_NV_copy_buffer */
 extern GLboolean GLAD_NV_copy_buffer;
 #define GL_COPY_READ_BUFFER_NV                 0x8F36
@@ -8629,6 +8986,17 @@ extern pfn_glGetPathTexGenfvNV fp_glGetPathTexGenfvNV;
 extern GLboolean GLAD_NV_path_rendering_shared_edge;
 #define GL_SHARED_EDGE_NV                      0xC0
 
+ /* GL_NV_polygon_mode */
+extern GLboolean GLAD_NV_polygon_mode;
+#define GL_POLYGON_MODE_NV                     0x0B40
+#define GL_POLYGON_OFFSET_POINT_NV             0x2A01
+#define GL_POLYGON_OFFSET_LINE_NV              0x2A02
+#define GL_POINT_NV                            0x1B00
+#define GL_LINE_NV                             0x1B01
+#define GL_FILL_NV                             0x1B02
+typedef void (APIENTRYP pfn_glPolygonModeNV) (GLenum, GLenum);
+extern pfn_glPolygonModeNV fp_glPolygonModeNV;
+
  /* GL_NV_present_video */
 extern GLboolean GLAD_NV_present_video;
 #define GL_FRAME_NV                            0x8E26
@@ -9182,6 +9550,22 @@ extern GLboolean GLAD_NVX_gpu_memory_info;
 #define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX  0x904A
 #define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX  0x904B
 
+ /* GL_OVR_multiview */
+extern GLboolean GLAD_OVR_multiview;
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR  0x9630
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR  0x9632
+#define GL_MAX_VIEWS_OVR                       0x9631
+typedef void (APIENTRYP pfn_glFramebufferTextureMultiviewOVR) (GLenum, GLenum, GLuint, GLint, GLint, GLsizei);
+extern pfn_glFramebufferTextureMultiviewOVR fp_glFramebufferTextureMultiviewOVR;
+
+ /* GL_OVR_multiview2 */
+extern GLboolean GLAD_OVR_multiview2;
+
+ /* GL_OVR_multiview_multisampled_render_to_texture */
+extern GLboolean GLAD_OVR_multiview_multisampled_render_to_texture;
+typedef void (APIENTRYP pfn_glFramebufferTextureMultisampleMultiviewOVR) (GLenum, GLenum, GLuint, GLint, GLsizei, GLint, GLsizei);
+extern pfn_glFramebufferTextureMultisampleMultiviewOVR fp_glFramebufferTextureMultisampleMultiviewOVR;
+
  /* GL_QCOM_alpha_test */
 extern GLboolean GLAD_QCOM_alpha_test;
 #define GL_ALPHA_TEST_QCOM                     0x0BC0
@@ -9296,44 +9680,6 @@ extern pfn_glEndTilingQCOM fp_glEndTilingQCOM;
 extern GLboolean GLAD_QCOM_writeonly_rendering;
 #define GL_WRITEONLY_RENDERING_QCOM            0x8823
 
- /* GL_SGIX_calligraphic_fragment */
-extern GLboolean GLAD_SGIX_calligraphic_fragment;
-#define GL_CALLIGRAPHIC_FRAGMENT_SGIX          0x8183
-
- /* GL_SGIX_depth_pass_instrument */
-extern GLboolean GLAD_SGIX_depth_pass_instrument;
-
- /* GL_SGIX_pixel_tiles */
-extern GLboolean GLAD_SGIX_pixel_tiles;
-#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX      0x813E
-#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX     0x813F
-#define GL_PIXEL_TILE_WIDTH_SGIX               0x8140
-#define GL_PIXEL_TILE_HEIGHT_SGIX              0x8141
-#define GL_PIXEL_TILE_GRID_WIDTH_SGIX          0x8142
-#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX         0x8143
-#define GL_PIXEL_TILE_GRID_DEPTH_SGIX          0x8144
-#define GL_PIXEL_TILE_CACHE_SIZE_SGIX          0x8145
-
- /* GL_SGIX_scalebias_hint */
-extern GLboolean GLAD_SGIX_scalebias_hint;
-#define GL_SCALEBIAS_HINT_SGIX                 0x8322
-
- /* GL_SGIX_subsample */
-extern GLboolean GLAD_SGIX_subsample;
-#define GL_PACK_SUBSAMPLE_RATE_SGIX            0x85A0
-#define GL_UNPACK_SUBSAMPLE_RATE_SGIX          0x85A1
-#define GL_PIXEL_SUBSAMPLE_4444_SGIX           0x85A2
-#define GL_PIXEL_SUBSAMPLE_2424_SGIX           0x85A3
-#define GL_PIXEL_SUBSAMPLE_4242_SGIX           0x85A4
-
- /* GL_SGIX_ycrcb_subsample */
-extern GLboolean GLAD_SGIX_ycrcb_subsample;
-
- /* GL_SGIX_ycrcba */
-extern GLboolean GLAD_SGIX_ycrcba;
-#define GL_YCRCB_SGIX                          0x8318
-#define GL_YCRCBA_SGIX                         0x8319
-
  /* GL_VIV_shader_binary */
 extern GLboolean GLAD_VIV_shader_binary;
 #define GL_SHADER_BINARY_VIV                   0x8FC4

+ 106 - 4
src/libraries/glad/gladfuncs.hpp

@@ -30,6 +30,7 @@
 
 namespace glad {
 
+
 /* GL_VERSION_1_0 */
 inline void glCullFace(GLenum mode) { fp_glCullFace(mode); }
 inline void glFrontFace(GLenum mode) { fp_glFrontFace(mode); }
@@ -1022,7 +1023,7 @@ inline void glInvalidateNamedFramebufferSubData(GLuint framebuffer, GLsizei numA
 inline void glClearNamedFramebufferiv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint* value) { fp_glClearNamedFramebufferiv(framebuffer, buffer, drawbuffer, value); }
 inline void glClearNamedFramebufferuiv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint* value) { fp_glClearNamedFramebufferuiv(framebuffer, buffer, drawbuffer, value); }
 inline void glClearNamedFramebufferfv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat* value) { fp_glClearNamedFramebufferfv(framebuffer, buffer, drawbuffer, value); }
-inline void glClearNamedFramebufferfi(GLuint framebuffer, GLenum buffer, const GLfloat depth, GLint stencil) { fp_glClearNamedFramebufferfi(framebuffer, buffer, depth, stencil); }
+inline void glClearNamedFramebufferfi(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) { fp_glClearNamedFramebufferfi(framebuffer, buffer, drawbuffer, depth, stencil); }
 inline void glBlitNamedFramebuffer(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { fp_glBlitNamedFramebuffer(readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); }
 inline GLenum glCheckNamedFramebufferStatus(GLuint framebuffer, GLenum target) { return fp_glCheckNamedFramebufferStatus(framebuffer, target); }
 inline void glGetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname, GLint* param) { fp_glGetNamedFramebufferParameteriv(framebuffer, pname, param); }
@@ -1110,6 +1111,10 @@ inline void glGetnHistogram(GLenum target, GLboolean reset, GLenum format, GLenu
 inline void glGetnMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values) { fp_glGetnMinmax(target, reset, format, type, bufSize, values); }
 inline void glTextureBarrier() { fp_glTextureBarrier(); }
 
+/* GL_ES_VERSION_3_2 */
+inline void glBlendBarrier() { fp_glBlendBarrier(); }
+inline void glPrimitiveBoundingBox(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) { fp_glPrimitiveBoundingBox(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW); }
+
 /* GL_KHR_blend_equation_advanced */
 inline void glBlendBarrierKHR() { fp_glBlendBarrierKHR(); }
 
@@ -1176,12 +1181,53 @@ inline void glBlendFuncSeparateiARB(GLuint buf, GLenum srcRGB, GLenum dstRGB, GL
 inline void glDrawArraysInstancedARB(GLenum mode, GLint first, GLsizei count, GLsizei primcount) { fp_glDrawArraysInstancedARB(mode, first, count, primcount); }
 inline void glDrawElementsInstancedARB(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount) { fp_glDrawElementsInstancedARB(mode, count, type, indices, primcount); }
 
+/* GL_ARB_ES3_2_compatibility */
+inline void glPrimitiveBoundingBoxARB(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) { fp_glPrimitiveBoundingBoxARB(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW); }
+
 /* GL_ARB_geometry_shader4 */
 inline void glProgramParameteriARB(GLuint program, GLenum pname, GLint value) { fp_glProgramParameteriARB(program, pname, value); }
 inline void glFramebufferTextureARB(GLenum target, GLenum attachment, GLuint texture, GLint level) { fp_glFramebufferTextureARB(target, attachment, texture, level); }
 inline void glFramebufferTextureLayerARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) { fp_glFramebufferTextureLayerARB(target, attachment, texture, level, layer); }
 inline void glFramebufferTextureFaceARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face) { fp_glFramebufferTextureFaceARB(target, attachment, texture, level, face); }
 
+/* GL_ARB_gpu_shader_int64 */
+inline void glUniform1i64ARB(GLint location, GLint64 x) { fp_glUniform1i64ARB(location, x); }
+inline void glUniform2i64ARB(GLint location, GLint64 x, GLint64 y) { fp_glUniform2i64ARB(location, x, y); }
+inline void glUniform3i64ARB(GLint location, GLint64 x, GLint64 y, GLint64 z) { fp_glUniform3i64ARB(location, x, y, z); }
+inline void glUniform4i64ARB(GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w) { fp_glUniform4i64ARB(location, x, y, z, w); }
+inline void glUniform1i64vARB(GLint location, GLsizei count, const GLint64* value) { fp_glUniform1i64vARB(location, count, value); }
+inline void glUniform2i64vARB(GLint location, GLsizei count, const GLint64* value) { fp_glUniform2i64vARB(location, count, value); }
+inline void glUniform3i64vARB(GLint location, GLsizei count, const GLint64* value) { fp_glUniform3i64vARB(location, count, value); }
+inline void glUniform4i64vARB(GLint location, GLsizei count, const GLint64* value) { fp_glUniform4i64vARB(location, count, value); }
+inline void glUniform1ui64ARB(GLint location, GLuint64 x) { fp_glUniform1ui64ARB(location, x); }
+inline void glUniform2ui64ARB(GLint location, GLuint64 x, GLuint64 y) { fp_glUniform2ui64ARB(location, x, y); }
+inline void glUniform3ui64ARB(GLint location, GLuint64 x, GLuint64 y, GLuint64 z) { fp_glUniform3ui64ARB(location, x, y, z); }
+inline void glUniform4ui64ARB(GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w) { fp_glUniform4ui64ARB(location, x, y, z, w); }
+inline void glUniform1ui64vARB(GLint location, GLsizei count, const GLuint64* value) { fp_glUniform1ui64vARB(location, count, value); }
+inline void glUniform2ui64vARB(GLint location, GLsizei count, const GLuint64* value) { fp_glUniform2ui64vARB(location, count, value); }
+inline void glUniform3ui64vARB(GLint location, GLsizei count, const GLuint64* value) { fp_glUniform3ui64vARB(location, count, value); }
+inline void glUniform4ui64vARB(GLint location, GLsizei count, const GLuint64* value) { fp_glUniform4ui64vARB(location, count, value); }
+inline void glGetUniformi64vARB(GLuint program, GLint location, GLint64* params) { fp_glGetUniformi64vARB(program, location, params); }
+inline void glGetUniformui64vARB(GLuint program, GLint location, GLuint64* params) { fp_glGetUniformui64vARB(program, location, params); }
+inline void glGetnUniformi64vARB(GLuint program, GLint location, GLsizei bufSize, GLint64* params) { fp_glGetnUniformi64vARB(program, location, bufSize, params); }
+inline void glGetnUniformui64vARB(GLuint program, GLint location, GLsizei bufSize, GLuint64* params) { fp_glGetnUniformui64vARB(program, location, bufSize, params); }
+inline void glProgramUniform1i64ARB(GLuint program, GLint location, GLint64 x) { fp_glProgramUniform1i64ARB(program, location, x); }
+inline void glProgramUniform2i64ARB(GLuint program, GLint location, GLint64 x, GLint64 y) { fp_glProgramUniform2i64ARB(program, location, x, y); }
+inline void glProgramUniform3i64ARB(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z) { fp_glProgramUniform3i64ARB(program, location, x, y, z); }
+inline void glProgramUniform4i64ARB(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w) { fp_glProgramUniform4i64ARB(program, location, x, y, z, w); }
+inline void glProgramUniform1i64vARB(GLuint program, GLint location, GLsizei count, const GLint64* value) { fp_glProgramUniform1i64vARB(program, location, count, value); }
+inline void glProgramUniform2i64vARB(GLuint program, GLint location, GLsizei count, const GLint64* value) { fp_glProgramUniform2i64vARB(program, location, count, value); }
+inline void glProgramUniform3i64vARB(GLuint program, GLint location, GLsizei count, const GLint64* value) { fp_glProgramUniform3i64vARB(program, location, count, value); }
+inline void glProgramUniform4i64vARB(GLuint program, GLint location, GLsizei count, const GLint64* value) { fp_glProgramUniform4i64vARB(program, location, count, value); }
+inline void glProgramUniform1ui64ARB(GLuint program, GLint location, GLuint64 x) { fp_glProgramUniform1ui64ARB(program, location, x); }
+inline void glProgramUniform2ui64ARB(GLuint program, GLint location, GLuint64 x, GLuint64 y) { fp_glProgramUniform2ui64ARB(program, location, x, y); }
+inline void glProgramUniform3ui64ARB(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z) { fp_glProgramUniform3ui64ARB(program, location, x, y, z); }
+inline void glProgramUniform4ui64ARB(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w) { fp_glProgramUniform4ui64ARB(program, location, x, y, z, w); }
+inline void glProgramUniform1ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64* value) { fp_glProgramUniform1ui64vARB(program, location, count, value); }
+inline void glProgramUniform2ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64* value) { fp_glProgramUniform2ui64vARB(program, location, count, value); }
+inline void glProgramUniform3ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64* value) { fp_glProgramUniform3ui64vARB(program, location, count, value); }
+inline void glProgramUniform4ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64* value) { fp_glProgramUniform4ui64vARB(program, location, count, value); }
+
 /* GL_ARB_indirect_parameters */
 inline void glMultiDrawArraysIndirectCountARB(GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) { fp_glMultiDrawArraysIndirectCountARB(mode, indirect, drawcount, maxdrawcount, stride); }
 inline void glMultiDrawElementsIndirectCountARB(GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) { fp_glMultiDrawElementsIndirectCountARB(mode, type, indirect, drawcount, maxdrawcount, stride); }
@@ -1189,6 +1235,9 @@ inline void glMultiDrawElementsIndirectCountARB(GLenum mode, GLenum type, GLintp
 /* GL_ARB_instanced_arrays */
 inline void glVertexAttribDivisorARB(GLuint index, GLuint divisor) { fp_glVertexAttribDivisorARB(index, divisor); }
 
+/* GL_ARB_parallel_shader_compile */
+inline void glMaxShaderCompilerThreadsARB(GLuint count) { fp_glMaxShaderCompilerThreadsARB(count); }
+
 /* GL_ARB_robustness */
 inline GLenum glGetGraphicsResetStatusARB() { return fp_glGetGraphicsResetStatusARB(); }
 inline void glGetnTexImageARB(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img) { fp_glGetnTexImageARB(target, level, format, type, bufSize, img); }
@@ -1211,6 +1260,11 @@ inline void glGetnSeparableFilterARB(GLenum target, GLenum format, GLenum type,
 inline void glGetnHistogramARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values) { fp_glGetnHistogramARB(target, reset, format, type, bufSize, values); }
 inline void glGetnMinmaxARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values) { fp_glGetnMinmaxARB(target, reset, format, type, bufSize, values); }
 
+/* GL_ARB_sample_locations */
+inline void glFramebufferSampleLocationsfvARB(GLenum target, GLuint start, GLsizei count, const GLfloat* v) { fp_glFramebufferSampleLocationsfvARB(target, start, count, v); }
+inline void glNamedFramebufferSampleLocationsfvARB(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v) { fp_glNamedFramebufferSampleLocationsfvARB(framebuffer, start, count, v); }
+inline void glEvaluateDepthValuesARB() { fp_glEvaluateDepthValuesARB(); }
+
 /* GL_ARB_sample_shading */
 inline void glMinSampleShadingARB(GLfloat value) { fp_glMinSampleShadingARB(value); }
 
@@ -1228,7 +1282,7 @@ inline void glNamedBufferPageCommitmentEXT(GLuint buffer, GLintptr offset, GLsiz
 inline void glNamedBufferPageCommitmentARB(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit) { fp_glNamedBufferPageCommitmentARB(buffer, offset, size, commit); }
 
 /* GL_ARB_sparse_texture */
-inline void glTexPageCommitmentARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident) { fp_glTexPageCommitmentARB(target, level, xoffset, yoffset, zoffset, width, height, depth, resident); }
+inline void glTexPageCommitmentARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit) { fp_glTexPageCommitmentARB(target, level, xoffset, yoffset, zoffset, width, height, depth, commit); }
 
 /* GL_ARB_texture_buffer_object */
 inline void glTexBufferARB(GLenum target, GLenum internalformat, GLuint buffer) { fp_glTexBufferARB(target, internalformat, buffer); }
@@ -1243,6 +1297,18 @@ inline void glUniformBufferEXT(GLuint program, GLint location, GLuint buffer) {
 inline GLint glGetUniformBufferSizeEXT(GLuint program, GLint location) { return fp_glGetUniformBufferSizeEXT(program, location); }
 inline GLintptr glGetUniformOffsetEXT(GLuint program, GLint location) { return fp_glGetUniformOffsetEXT(program, location); }
 
+/* GL_EXT_blend_func_extended */
+inline void glBindFragDataLocationIndexedEXT(GLuint program, GLuint colorNumber, GLuint index, const GLchar* name) { fp_glBindFragDataLocationIndexedEXT(program, colorNumber, index, name); }
+inline void glBindFragDataLocationEXT(GLuint program, GLuint color, const GLchar* name) { fp_glBindFragDataLocationEXT(program, color, name); }
+inline GLint glGetProgramResourceLocationIndexEXT(GLuint program, GLenum programInterface, const GLchar* name) { return fp_glGetProgramResourceLocationIndexEXT(program, programInterface, name); }
+inline GLint glGetFragDataIndexEXT(GLuint program, const GLchar* name) { return fp_glGetFragDataIndexEXT(program, name); }
+
+/* GL_EXT_blend_minmax */
+inline void glBlendEquationEXT(GLenum mode) { fp_glBlendEquationEXT(mode); }
+
+/* GL_EXT_buffer_storage */
+inline void glBufferStorageEXT(GLenum target, GLsizeiptr size, const void* data, GLbitfield flags) { fp_glBufferStorageEXT(target, size, data, flags); }
+
 /* GL_EXT_copy_image */
 inline void glCopyImageSubDataEXT(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) { fp_glCopyImageSubDataEXT(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth); }
 
@@ -1509,7 +1575,7 @@ inline void glVertexArrayVertexAttribLFormatEXT(GLuint vaobj, GLuint attribindex
 inline void glVertexArrayVertexAttribBindingEXT(GLuint vaobj, GLuint attribindex, GLuint bindingindex) { fp_glVertexArrayVertexAttribBindingEXT(vaobj, attribindex, bindingindex); }
 inline void glVertexArrayVertexBindingDivisorEXT(GLuint vaobj, GLuint bindingindex, GLuint divisor) { fp_glVertexArrayVertexBindingDivisorEXT(vaobj, bindingindex, divisor); }
 inline void glVertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset) { fp_glVertexArrayVertexAttribLOffsetEXT(vaobj, buffer, index, size, type, stride, offset); }
-inline void glTexturePageCommitmentEXT(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident) { fp_glTexturePageCommitmentEXT(texture, level, xoffset, yoffset, zoffset, width, height, depth, resident); }
+inline void glTexturePageCommitmentEXT(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit) { fp_glTexturePageCommitmentEXT(texture, level, xoffset, yoffset, zoffset, width, height, depth, commit); }
 inline void glVertexArrayVertexAttribDivisorEXT(GLuint vaobj, GLuint index, GLuint divisor) { fp_glVertexArrayVertexAttribDivisorEXT(vaobj, index, divisor); }
 
 /* GL_EXT_discard_framebuffer */
@@ -1591,7 +1657,6 @@ inline void glProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei
 
 /* GL_EXT_gpu_shader4 */
 inline void glGetUniformuivEXT(GLuint program, GLint location, GLuint* params) { fp_glGetUniformuivEXT(program, location, params); }
-inline void glBindFragDataLocationEXT(GLuint program, GLuint color, const GLchar* name) { fp_glBindFragDataLocationEXT(program, color, name); }
 inline GLint glGetFragDataLocationEXT(GLuint program, const GLchar* name) { return fp_glGetFragDataLocationEXT(program, name); }
 inline void glUniform1uiEXT(GLint location, GLuint v0) { fp_glUniform1uiEXT(location, v0); }
 inline void glUniform2uiEXT(GLint location, GLuint v0, GLuint v1) { fp_glUniform2uiEXT(location, v0, v1); }
@@ -1658,6 +1723,9 @@ inline void glValidateProgramPipelineEXT(GLuint pipeline) { fp_glValidateProgram
 inline void glBindImageTextureEXT(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format) { fp_glBindImageTextureEXT(index, texture, level, layered, layer, access, format); }
 inline void glMemoryBarrierEXT(GLbitfield barriers) { fp_glMemoryBarrierEXT(barriers); }
 
+/* GL_EXT_sparse_texture */
+inline void glTexPageCommitmentEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit) { fp_glTexPageCommitmentEXT(target, level, xoffset, yoffset, zoffset, width, height, depth, commit); }
+
 /* GL_EXT_stencil_clear_tag */
 inline void glStencilClearTagEXT(GLsizei stencilTagBits, GLuint stencilClearTag) { fp_glStencilClearTagEXT(stencilTagBits, stencilClearTag); }
 
@@ -1978,6 +2046,9 @@ inline void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachmen
 /* GL_INGR_blend_func_separate */
 inline void glBlendFuncSeparateINGR(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) { fp_glBlendFuncSeparateINGR(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); }
 
+/* GL_INTEL_framebuffer_CMAA */
+inline void glApplyFramebufferAttachmentCMAAINTEL() { fp_glApplyFramebufferAttachmentCMAAINTEL(); }
+
 /* GL_INTEL_map_texture */
 inline void glSyncTextureINTEL(GLuint texture) { fp_glSyncTextureINTEL(texture); }
 inline void glUnmapTexture2DINTEL(GLuint texture, GLint level) { fp_glUnmapTexture2DINTEL(texture, level); }
@@ -2022,6 +2093,25 @@ inline GLboolean glIsImageHandleResidentNV(GLuint64 handle) { return fp_glIsImag
 inline void glBlendParameteriNV(GLenum pname, GLint value) { fp_glBlendParameteriNV(pname, value); }
 inline void glBlendBarrierNV() { fp_glBlendBarrierNV(); }
 
+/* GL_NV_command_list */
+inline void glCreateStatesNV(GLsizei n, GLuint* states) { fp_glCreateStatesNV(n, states); }
+inline void glDeleteStatesNV(GLsizei n, const GLuint* states) { fp_glDeleteStatesNV(n, states); }
+inline GLboolean glIsStateNV(GLuint state) { return fp_glIsStateNV(state); }
+inline void glStateCaptureNV(GLuint state, GLenum mode) { fp_glStateCaptureNV(state, mode); }
+inline GLuint glGetCommandHeaderNV(GLenum tokenID, GLuint size) { return fp_glGetCommandHeaderNV(tokenID, size); }
+inline GLushort glGetStageIndexNV(GLenum shadertype) { return fp_glGetStageIndexNV(shadertype); }
+inline void glDrawCommandsNV(GLenum primitiveMode, GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, GLuint count) { fp_glDrawCommandsNV(primitiveMode, buffer, indirects, sizes, count); }
+inline void glDrawCommandsAddressNV(GLenum primitiveMode, const GLuint64* indirects, const GLsizei* sizes, GLuint count) { fp_glDrawCommandsAddressNV(primitiveMode, indirects, sizes, count); }
+inline void glDrawCommandsStatesNV(GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count) { fp_glDrawCommandsStatesNV(buffer, indirects, sizes, states, fbos, count); }
+inline void glDrawCommandsStatesAddressNV(const GLuint64* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count) { fp_glDrawCommandsStatesAddressNV(indirects, sizes, states, fbos, count); }
+inline void glCreateCommandListsNV(GLsizei n, GLuint* lists) { fp_glCreateCommandListsNV(n, lists); }
+inline void glDeleteCommandListsNV(GLsizei n, const GLuint* lists) { fp_glDeleteCommandListsNV(n, lists); }
+inline GLboolean glIsCommandListNV(GLuint list) { return fp_glIsCommandListNV(list); }
+inline void glListDrawCommandsStatesClientNV(GLuint list, GLuint segment, const void** indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count) { fp_glListDrawCommandsStatesClientNV(list, segment, indirects, sizes, states, fbos, count); }
+inline void glCommandListSegmentsNV(GLuint list, GLuint segments) { fp_glCommandListSegmentsNV(list, segments); }
+inline void glCompileCommandListNV(GLuint list) { fp_glCompileCommandListNV(list); }
+inline void glCallCommandListNV(GLuint list) { fp_glCallCommandListNV(list); }
+
 /* GL_NV_conditional_render */
 inline void glBeginConditionalRenderNV(GLuint id, GLenum mode) { fp_glBeginConditionalRenderNV(id, mode); }
 inline void glEndConditionalRenderNV() { fp_glEndConditionalRenderNV(); }
@@ -2029,6 +2119,9 @@ inline void glEndConditionalRenderNV() { fp_glEndConditionalRenderNV(); }
 /* GL_NV_conservative_raster */
 inline void glSubpixelPrecisionBiasNV(GLuint xbits, GLuint ybits) { fp_glSubpixelPrecisionBiasNV(xbits, ybits); }
 
+/* GL_NV_conservative_raster_dilate */
+inline void glConservativeRasterParameterfNV(GLenum pname, GLfloat value) { fp_glConservativeRasterParameterfNV(pname, value); }
+
 /* GL_NV_copy_buffer */
 inline void glCopyBufferSubDataNV(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) { fp_glCopyBufferSubDataNV(readTarget, writeTarget, readOffset, writeOffset, size); }
 
@@ -2253,6 +2346,9 @@ inline void glGetPathColorGenfvNV(GLenum color, GLenum pname, GLfloat* value) {
 inline void glGetPathTexGenivNV(GLenum texCoordSet, GLenum pname, GLint* value) { fp_glGetPathTexGenivNV(texCoordSet, pname, value); }
 inline void glGetPathTexGenfvNV(GLenum texCoordSet, GLenum pname, GLfloat* value) { fp_glGetPathTexGenfvNV(texCoordSet, pname, value); }
 
+/* GL_NV_polygon_mode */
+inline void glPolygonModeNV(GLenum face, GLenum mode) { fp_glPolygonModeNV(face, mode); }
+
 /* GL_NV_present_video */
 inline void glPresentFrameKeyedNV(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1) { fp_glPresentFrameKeyedNV(video_slot, minPresentTime, beginPresentTimeId, presentDurationId, type, target0, fill0, key0, target1, fill1, key1); }
 inline void glPresentFrameDualFillNV(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3) { fp_glPresentFrameDualFillNV(video_slot, minPresentTime, beginPresentTimeId, presentDurationId, type, target0, fill0, target1, fill1, target2, fill2, target3, fill3); }
@@ -2426,6 +2522,12 @@ inline GLboolean glIsEnablediNV(GLenum target, GLuint index) { return fp_glIsEna
 inline void glBeginConditionalRenderNVX(GLuint id) { fp_glBeginConditionalRenderNVX(id); }
 inline void glEndConditionalRenderNVX() { fp_glEndConditionalRenderNVX(); }
 
+/* GL_OVR_multiview */
+inline void glFramebufferTextureMultiviewOVR(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews) { fp_glFramebufferTextureMultiviewOVR(target, attachment, texture, level, baseViewIndex, numViews); }
+
+/* GL_OVR_multiview_multisampled_render_to_texture */
+inline void glFramebufferTextureMultisampleMultiviewOVR(GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews) { fp_glFramebufferTextureMultisampleMultiviewOVR(target, attachment, texture, level, samples, baseViewIndex, numViews); }
+
 /* GL_QCOM_alpha_test */
 inline void glAlphaFuncQCOM(GLenum func, GLclampf ref) { fp_glAlphaFuncQCOM(func, ref); }