blob: bd65656511faeb2afa4745c17e8490efeff1e202 [file] [log] [blame]
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
* Generated from Khronos EGL API description (egl.xml) revision 3338ed0db494d6a4db7f76627b38f0b1892db096.
*/
static const char* s_EGL14[] =
{
"eglBindAPI",
"eglBindTexImage",
"eglChooseConfig",
"eglCopyBuffers",
"eglCreateContext",
"eglCreatePbufferFromClientBuffer",
"eglCreatePbufferSurface",
"eglCreatePixmapSurface",
"eglCreateWindowSurface",
"eglDestroyContext",
"eglDestroySurface",
"eglGetConfigAttrib",
"eglGetConfigs",
"eglGetCurrentContext",
"eglGetCurrentDisplay",
"eglGetCurrentSurface",
"eglGetDisplay",
"eglGetError",
"eglGetProcAddress",
"eglInitialize",
"eglMakeCurrent",
"eglQueryAPI",
"eglQueryContext",
"eglQueryString",
"eglQuerySurface",
"eglReleaseTexImage",
"eglReleaseThread",
"eglSurfaceAttrib",
"eglSwapBuffers",
"eglSwapInterval",
"eglTerminate",
"eglWaitClient",
"eglWaitGL",
"eglWaitNative",
};
static const char* s_EGL15[] =
{
"eglClientWaitSync",
"eglCreateImage",
"eglCreatePlatformPixmapSurface",
"eglCreatePlatformWindowSurface",
"eglCreateSync",
"eglDestroyImage",
"eglDestroySync",
"eglGetPlatformDisplay",
"eglGetSyncAttrib",
"eglWaitSync",
};
static const char* s_GLES10[] =
{
"glActiveTexture",
"glAlphaFunc",
"glAlphaFuncx",
"glBindBuffer",
"glBindTexture",
"glBlendFunc",
"glBufferData",
"glBufferSubData",
"glClear",
"glClearColor",
"glClearColorx",
"glClearDepthf",
"glClearDepthx",
"glClearStencil",
"glClientActiveTexture",
"glClipPlanef",
"glClipPlanex",
"glColor4f",
"glColor4ub",
"glColor4x",
"glColorMask",
"glColorPointer",
"glCompressedTexImage2D",
"glCompressedTexSubImage2D",
"glCopyTexImage2D",
"glCopyTexSubImage2D",
"glCullFace",
"glDeleteBuffers",
"glDeleteTextures",
"glDepthFunc",
"glDepthMask",
"glDepthRangef",
"glDepthRangex",
"glDisable",
"glDisableClientState",
"glDrawArrays",
"glDrawElements",
"glEnable",
"glEnableClientState",
"glFinish",
"glFlush",
"glFogf",
"glFogfv",
"glFogx",
"glFogxv",
"glFrontFace",
"glFrustumf",
"glFrustumx",
"glGenBuffers",
"glGenTextures",
"glGetBooleanv",
"glGetBufferParameteriv",
"glGetClipPlanef",
"glGetClipPlanex",
"glGetError",
"glGetFixedv",
"glGetFloatv",
"glGetIntegerv",
"glGetLightfv",
"glGetLightxv",
"glGetMaterialfv",
"glGetMaterialxv",
"glGetPointerv",
"glGetString",
"glGetTexEnvfv",
"glGetTexEnviv",
"glGetTexEnvxv",
"glGetTexParameterfv",
"glGetTexParameteriv",
"glGetTexParameterxv",
"glHint",
"glIsBuffer",
"glIsEnabled",
"glIsTexture",
"glLightModelf",
"glLightModelfv",
"glLightModelx",
"glLightModelxv",
"glLightf",
"glLightfv",
"glLightx",
"glLightxv",
"glLineWidth",
"glLineWidthx",
"glLoadIdentity",
"glLoadMatrixf",
"glLoadMatrixx",
"glLogicOp",
"glMaterialf",
"glMaterialfv",
"glMaterialx",
"glMaterialxv",
"glMatrixMode",
"glMultMatrixf",
"glMultMatrixx",
"glMultiTexCoord4f",
"glMultiTexCoord4x",
"glNormal3f",
"glNormal3x",
"glNormalPointer",
"glOrthof",
"glOrthox",
"glPixelStorei",
"glPointParameterf",
"glPointParameterfv",
"glPointParameterx",
"glPointParameterxv",
"glPointSize",
"glPointSizex",
"glPolygonOffset",
"glPolygonOffsetx",
"glPopMatrix",
"glPushMatrix",
"glReadPixels",
"glRotatef",
"glRotatex",
"glSampleCoverage",
"glSampleCoveragex",
"glScalef",
"glScalex",
"glScissor",
"glShadeModel",
"glStencilFunc",
"glStencilMask",
"glStencilOp",
"glTexCoordPointer",
"glTexEnvf",
"glTexEnvfv",
"glTexEnvi",
"glTexEnviv",
"glTexEnvx",
"glTexEnvxv",
"glTexImage2D",
"glTexParameterf",
"glTexParameterfv",
"glTexParameteri",
"glTexParameteriv",
"glTexParameterx",
"glTexParameterxv",
"glTexSubImage2D",
"glTranslatef",
"glTranslatex",
"glVertexPointer",
"glViewport",
};
static const char* s_GLES20[] =
{
"glActiveTexture",
"glAttachShader",
"glBindAttribLocation",
"glBindBuffer",
"glBindFramebuffer",
"glBindRenderbuffer",
"glBindTexture",
"glBlendColor",
"glBlendEquation",
"glBlendEquationSeparate",
"glBlendFunc",
"glBlendFuncSeparate",
"glBufferData",
"glBufferSubData",
"glCheckFramebufferStatus",
"glClear",
"glClearColor",
"glClearDepthf",
"glClearStencil",
"glColorMask",
"glCompileShader",
"glCompressedTexImage2D",
"glCompressedTexSubImage2D",
"glCopyTexImage2D",
"glCopyTexSubImage2D",
"glCreateProgram",
"glCreateShader",
"glCullFace",
"glDeleteBuffers",
"glDeleteFramebuffers",
"glDeleteProgram",
"glDeleteRenderbuffers",
"glDeleteShader",
"glDeleteTextures",
"glDepthFunc",
"glDepthMask",
"glDepthRangef",
"glDetachShader",
"glDisable",
"glDisableVertexAttribArray",
"glDrawArrays",
"glDrawElements",
"glEnable",
"glEnableVertexAttribArray",
"glFinish",
"glFlush",
"glFramebufferRenderbuffer",
"glFramebufferTexture2D",
"glFrontFace",
"glGenBuffers",
"glGenFramebuffers",
"glGenRenderbuffers",
"glGenTextures",
"glGenerateMipmap",
"glGetActiveAttrib",
"glGetActiveUniform",
"glGetAttachedShaders",
"glGetAttribLocation",
"glGetBooleanv",
"glGetBufferParameteriv",
"glGetError",
"glGetFloatv",
"glGetFramebufferAttachmentParameteriv",
"glGetIntegerv",
"glGetProgramInfoLog",
"glGetProgramiv",
"glGetRenderbufferParameteriv",
"glGetShaderInfoLog",
"glGetShaderPrecisionFormat",
"glGetShaderSource",
"glGetShaderiv",
"glGetString",
"glGetTexParameterfv",
"glGetTexParameteriv",
"glGetUniformLocation",
"glGetUniformfv",
"glGetUniformiv",
"glGetVertexAttribPointerv",
"glGetVertexAttribfv",
"glGetVertexAttribiv",
"glHint",
"glIsBuffer",
"glIsEnabled",
"glIsFramebuffer",
"glIsProgram",
"glIsRenderbuffer",
"glIsShader",
"glIsTexture",
"glLineWidth",
"glLinkProgram",
"glPixelStorei",
"glPolygonOffset",
"glReadPixels",
"glReleaseShaderCompiler",
"glRenderbufferStorage",
"glSampleCoverage",
"glScissor",
"glShaderBinary",
"glShaderSource",
"glStencilFunc",
"glStencilFuncSeparate",
"glStencilMask",
"glStencilMaskSeparate",
"glStencilOp",
"glStencilOpSeparate",
"glTexImage2D",
"glTexParameterf",
"glTexParameterfv",
"glTexParameteri",
"glTexParameteriv",
"glTexSubImage2D",
"glUniform1f",
"glUniform1fv",
"glUniform1i",
"glUniform1iv",
"glUniform2f",
"glUniform2fv",
"glUniform2i",
"glUniform2iv",
"glUniform3f",
"glUniform3fv",
"glUniform3i",
"glUniform3iv",
"glUniform4f",
"glUniform4fv",
"glUniform4i",
"glUniform4iv",
"glUniformMatrix2fv",
"glUniformMatrix3fv",
"glUniformMatrix4fv",
"glUseProgram",
"glValidateProgram",
"glVertexAttrib1f",
"glVertexAttrib1fv",
"glVertexAttrib2f",
"glVertexAttrib2fv",
"glVertexAttrib3f",
"glVertexAttrib3fv",
"glVertexAttrib4f",
"glVertexAttrib4fv",
"glVertexAttribPointer",
"glViewport",
};
static const char* s_GLES30[] =
{
"glBeginQuery",
"glBeginTransformFeedback",
"glBindBufferBase",
"glBindBufferRange",
"glBindSampler",
"glBindTransformFeedback",
"glBindVertexArray",
"glBlitFramebuffer",
"glClearBufferfi",
"glClearBufferfv",
"glClearBufferiv",
"glClearBufferuiv",
"glClientWaitSync",
"glCompressedTexImage3D",
"glCompressedTexSubImage3D",
"glCopyBufferSubData",
"glCopyTexSubImage3D",
"glDeleteQueries",
"glDeleteSamplers",
"glDeleteSync",
"glDeleteTransformFeedbacks",
"glDeleteVertexArrays",
"glDrawArraysInstanced",
"glDrawBuffers",
"glDrawElementsInstanced",
"glDrawRangeElements",
"glEndQuery",
"glEndTransformFeedback",
"glFenceSync",
"glFlushMappedBufferRange",
"glFramebufferTextureLayer",
"glGenQueries",
"glGenSamplers",
"glGenTransformFeedbacks",
"glGenVertexArrays",
"glGetActiveUniformBlockName",
"glGetActiveUniformBlockiv",
"glGetActiveUniformsiv",
"glGetBufferParameteri64v",
"glGetBufferPointerv",
"glGetFragDataLocation",
"glGetInteger64i_v",
"glGetInteger64v",
"glGetIntegeri_v",
"glGetInternalformativ",
"glGetProgramBinary",
"glGetQueryObjectuiv",
"glGetQueryiv",
"glGetSamplerParameterfv",
"glGetSamplerParameteriv",
"glGetStringi",
"glGetSynciv",
"glGetTransformFeedbackVarying",
"glGetUniformBlockIndex",
"glGetUniformIndices",
"glGetUniformuiv",
"glGetVertexAttribIiv",
"glGetVertexAttribIuiv",
"glInvalidateFramebuffer",
"glInvalidateSubFramebuffer",
"glIsQuery",
"glIsSampler",
"glIsSync",
"glIsTransformFeedback",
"glIsVertexArray",
"glMapBufferRange",
"glPauseTransformFeedback",
"glProgramBinary",
"glProgramParameteri",
"glReadBuffer",
"glRenderbufferStorageMultisample",
"glResumeTransformFeedback",
"glSamplerParameterf",
"glSamplerParameterfv",
"glSamplerParameteri",
"glSamplerParameteriv",
"glTexImage3D",
"glTexStorage2D",
"glTexStorage3D",
"glTexSubImage3D",
"glTransformFeedbackVaryings",
"glUniform1ui",
"glUniform1uiv",
"glUniform2ui",
"glUniform2uiv",
"glUniform3ui",
"glUniform3uiv",
"glUniform4ui",
"glUniform4uiv",
"glUniformBlockBinding",
"glUniformMatrix2x3fv",
"glUniformMatrix2x4fv",
"glUniformMatrix3x2fv",
"glUniformMatrix3x4fv",
"glUniformMatrix4x2fv",
"glUniformMatrix4x3fv",
"glUnmapBuffer",
"glVertexAttribDivisor",
"glVertexAttribI4i",
"glVertexAttribI4iv",
"glVertexAttribI4ui",
"glVertexAttribI4uiv",
"glVertexAttribIPointer",
"glWaitSync",
};
static const char* s_EGL_ANDROID_blob_cache[] =
{
"eglSetBlobCacheFuncsANDROID",
};
static const char* s_EGL_ANDROID_create_native_client_buffer[] =
{
"eglCreateNativeClientBufferANDROID",
};
static const char* s_EGL_ANDROID_get_native_client_buffer[] =
{
"eglGetNativeClientBufferANDROID",
};
static const char* s_EGL_ANDROID_native_fence_sync[] =
{
"eglDupNativeFenceFDANDROID",
};
static const char* s_EGL_ANDROID_presentation_time[] =
{
"eglPresentationTimeANDROID",
};
static const char* s_EGL_ANDROID_get_frame_timestamps[] =
{
"eglGetCompositorTimingSupportedANDROID",
"eglGetCompositorTimingANDROID",
"eglGetNextFrameIdANDROID",
"eglGetFrameTimestampSupportedANDROID",
"eglGetFrameTimestampsANDROID",
};
static const char* s_EGL_ANGLE_query_surface_pointer[] =
{
"eglQuerySurfacePointerANGLE",
};
static const char* s_EGL_EXT_client_sync[] =
{
"eglClientSignalSyncEXT",
};
static const char* s_EGL_EXT_device_base[] =
{
"eglQueryDeviceAttribEXT",
"eglQueryDeviceStringEXT",
"eglQueryDevicesEXT",
"eglQueryDisplayAttribEXT",
};
static const char* s_EGL_EXT_device_enumeration[] =
{
"eglQueryDevicesEXT",
};
static const char* s_EGL_EXT_device_query[] =
{
"eglQueryDeviceAttribEXT",
"eglQueryDeviceStringEXT",
"eglQueryDisplayAttribEXT",
};
static const char* s_EGL_EXT_image_dma_buf_import_modifiers[] =
{
"eglQueryDmaBufFormatsEXT",
"eglQueryDmaBufModifiersEXT",
};
static const char* s_EGL_EXT_output_base[] =
{
"eglGetOutputLayersEXT",
"eglGetOutputPortsEXT",
"eglOutputLayerAttribEXT",
"eglOutputPortAttribEXT",
"eglQueryOutputLayerAttribEXT",
"eglQueryOutputLayerStringEXT",
"eglQueryOutputPortAttribEXT",
"eglQueryOutputPortStringEXT",
};
static const char* s_EGL_EXT_platform_base[] =
{
"eglCreatePlatformPixmapSurfaceEXT",
"eglCreatePlatformWindowSurfaceEXT",
"eglGetPlatformDisplayEXT",
};
static const char* s_EGL_EXT_stream_consumer_egloutput[] =
{
"eglStreamConsumerOutputEXT",
};
static const char* s_EGL_EXT_swap_buffers_with_damage[] =
{
"eglSwapBuffersWithDamageEXT",
};
static const char* s_EGL_EXT_sync_reuse[] =
{
"eglUnsignalSyncEXT",
};
static const char* s_EGL_HI_clientpixmap[] =
{
"eglCreatePixmapSurfaceHI",
};
static const char* s_EGL_KHR_cl_event2[] =
{
"eglCreateSync64KHR",
};
static const char* s_EGL_KHR_debug[] =
{
"eglDebugMessageControlKHR",
"eglLabelObjectKHR",
"eglQueryDebugKHR",
};
static const char* s_EGL_KHR_display_reference[] =
{
"eglQueryDisplayAttribKHR",
};
static const char* s_EGL_KHR_fence_sync[] =
{
"eglClientWaitSyncKHR",
"eglCreateSyncKHR",
"eglDestroySyncKHR",
"eglGetSyncAttribKHR",
};
static const char* s_EGL_KHR_image[] =
{
"eglCreateImageKHR",
"eglDestroyImageKHR",
};
static const char* s_EGL_KHR_image_base[] =
{
"eglCreateImageKHR",
"eglDestroyImageKHR",
};
static const char* s_EGL_KHR_lock_surface[] =
{
"eglLockSurfaceKHR",
"eglUnlockSurfaceKHR",
};
static const char* s_EGL_KHR_lock_surface3[] =
{
"eglLockSurfaceKHR",
"eglQuerySurface64KHR",
"eglUnlockSurfaceKHR",
};
static const char* s_EGL_KHR_partial_update[] =
{
"eglSetDamageRegionKHR",
};
static const char* s_EGL_KHR_reusable_sync[] =
{
"eglClientWaitSyncKHR",
"eglCreateSyncKHR",
"eglDestroySyncKHR",
"eglGetSyncAttribKHR",
"eglSignalSyncKHR",
};
static const char* s_EGL_KHR_stream[] =
{
"eglCreateStreamKHR",
"eglDestroyStreamKHR",
"eglQueryStreamKHR",
"eglQueryStreamu64KHR",
"eglStreamAttribKHR",
};
static const char* s_EGL_KHR_stream_attrib[] =
{
"eglCreateStreamAttribKHR",
"eglQueryStreamAttribKHR",
"eglSetStreamAttribKHR",
"eglStreamConsumerAcquireAttribKHR",
"eglStreamConsumerReleaseAttribKHR",
};
static const char* s_EGL_KHR_stream_consumer_gltexture[] =
{
"eglStreamConsumerAcquireKHR",
"eglStreamConsumerGLTextureExternalKHR",
"eglStreamConsumerReleaseKHR",
};
static const char* s_EGL_KHR_stream_cross_process_fd[] =
{
"eglCreateStreamFromFileDescriptorKHR",
"eglGetStreamFileDescriptorKHR",
};
static const char* s_EGL_KHR_stream_fifo[] =
{
"eglQueryStreamTimeKHR",
};
static const char* s_EGL_KHR_stream_producer_eglsurface[] =
{
"eglCreateStreamProducerSurfaceKHR",
};
static const char* s_EGL_KHR_swap_buffers_with_damage[] =
{
"eglSwapBuffersWithDamageKHR",
};
static const char* s_EGL_KHR_wait_sync[] =
{
"eglWaitSyncKHR",
};
static const char* s_EGL_MESA_drm_image[] =
{
"eglCreateDRMImageMESA",
"eglExportDRMImageMESA",
};
static const char* s_EGL_MESA_image_dma_buf_export[] =
{
"eglExportDMABUFImageMESA",
"eglExportDMABUFImageQueryMESA",
};
static const char* s_EGL_NOK_swap_region[] =
{
"eglSwapBuffersRegionNOK",
};
static const char* s_EGL_NOK_swap_region2[] =
{
"eglSwapBuffersRegion2NOK",
};
static const char* s_EGL_NV_native_query[] =
{
"eglQueryNativeDisplayNV",
"eglQueryNativePixmapNV",
"eglQueryNativeWindowNV",
};
static const char* s_EGL_NV_post_sub_buffer[] =
{
"eglPostSubBufferNV",
};
static const char* s_EGL_NV_stream_consumer_gltexture_yuv[] =
{
"eglStreamConsumerGLTextureExternalAttribsNV",
};
static const char* s_EGL_NV_stream_flush[] =
{
"eglStreamFlushNV",
};
static const char* s_EGL_NV_stream_metadata[] =
{
"eglQueryDisplayAttribNV",
"eglQueryStreamMetadataNV",
"eglSetStreamMetadataNV",
};
static const char* s_EGL_NV_stream_reset[] =
{
"eglResetStreamNV",
};
static const char* s_EGL_NV_stream_sync[] =
{
"eglCreateStreamSyncNV",
};
static const char* s_EGL_NV_sync[] =
{
"eglClientWaitSyncNV",
"eglCreateFenceSyncNV",
"eglDestroySyncNV",
"eglFenceNV",
"eglGetSyncAttribNV",
"eglSignalSyncNV",
};
static const char* s_EGL_NV_system_time[] =
{
"eglGetSystemTimeFrequencyNV",
"eglGetSystemTimeNV",
};
static const char* s_EGL_EXT_compositor[] =
{
"eglCompositorSetContextListEXT",
"eglCompositorSetContextAttributesEXT",
"eglCompositorSetWindowListEXT",
"eglCompositorSetWindowAttributesEXT",
"eglCompositorBindTexWindowEXT",
"eglCompositorSetSizeEXT",
"eglCompositorSwapPolicyEXT",
};
static const char* s_GL_APPLE_copy_texture_levels[] =
{
"glCopyTextureLevelsAPPLE",
};
static const char* s_GL_APPLE_framebuffer_multisample[] =
{
"glRenderbufferStorageMultisampleAPPLE",
"glResolveMultisampleFramebufferAPPLE",
};
static const char* s_GL_APPLE_sync[] =
{
"glClientWaitSyncAPPLE",
"glDeleteSyncAPPLE",
"glFenceSyncAPPLE",
"glGetInteger64vAPPLE",
"glGetSyncivAPPLE",
"glIsSyncAPPLE",
"glWaitSyncAPPLE",
};
static const char* s_GL_EXT_debug_marker[] =
{
"glInsertEventMarkerEXT",
"glPopGroupMarkerEXT",
"glPushGroupMarkerEXT",
};
static const char* s_GL_EXT_discard_framebuffer[] =
{
"glDiscardFramebufferEXT",
};
static const char* s_GL_EXT_map_buffer_range[] =
{
"glFlushMappedBufferRangeEXT",
"glMapBufferRangeEXT",
};
static const char* s_GL_EXT_multi_draw_arrays[] =
{
"glMultiDrawArraysEXT",
"glMultiDrawElementsEXT",
};
static const char* s_GL_EXT_multisampled_render_to_texture[] =
{
"glFramebufferTexture2DMultisampleEXT",
"glRenderbufferStorageMultisampleEXT",
};
static const char* s_GL_EXT_robustness[] =
{
"glGetGraphicsResetStatusEXT",
"glGetnUniformfvEXT",
"glGetnUniformivEXT",
"glReadnPixelsEXT",
};
static const char* s_GL_EXT_texture_storage[] =
{
"glTexStorage1DEXT",
"glTexStorage2DEXT",
"glTexStorage3DEXT",
"glTextureStorage1DEXT",
"glTextureStorage2DEXT",
"glTextureStorage3DEXT",
};
static const char* s_GL_IMG_multisampled_render_to_texture[] =
{
"glFramebufferTexture2DMultisampleIMG",
"glRenderbufferStorageMultisampleIMG",
};
static const char* s_GL_IMG_user_clip_plane[] =
{
"glClipPlanefIMG",
"glClipPlanexIMG",
};
static const char* s_GL_NV_fence[] =
{
"glDeleteFencesNV",
"glFinishFenceNV",
"glGenFencesNV",
"glGetFenceivNV",
"glIsFenceNV",
"glSetFenceNV",
"glTestFenceNV",
};
static const char* s_GL_OES_EGL_image[] =
{
"glEGLImageTargetRenderbufferStorageOES",
"glEGLImageTargetTexture2DOES",
};
static const char* s_GL_OES_blend_equation_separate[] =
{
"glBlendEquationSeparateOES",
};
static const char* s_GL_OES_blend_func_separate[] =
{
"glBlendFuncSeparateOES",
};
static const char* s_GL_OES_blend_subtract[] =
{
"glBlendEquationOES",
};
static const char* s_GL_OES_draw_texture[] =
{
"glDrawTexfOES",
"glDrawTexfvOES",
"glDrawTexiOES",
"glDrawTexivOES",
"glDrawTexsOES",
"glDrawTexsvOES",
"glDrawTexxOES",
"glDrawTexxvOES",
};
static const char* s_GL_OES_fixed_point[] =
{
"glAlphaFuncxOES",
"glClearColorxOES",
"glClearDepthxOES",
"glClipPlanexOES",
"glColor4xOES",
"glDepthRangexOES",
"glFogxOES",
"glFogxvOES",
"glFrustumxOES",
"glGetClipPlanexOES",
"glGetFixedvOES",
"glGetLightxvOES",
"glGetMaterialxvOES",
"glGetTexEnvxvOES",
"glGetTexParameterxvOES",
"glLightModelxOES",
"glLightModelxvOES",
"glLightxOES",
"glLightxvOES",
"glLineWidthxOES",
"glLoadMatrixxOES",
"glMaterialxOES",
"glMaterialxvOES",
"glMultMatrixxOES",
"glMultiTexCoord4xOES",
"glNormal3xOES",
"glOrthoxOES",
"glPointParameterxOES",
"glPointParameterxvOES",
"glPointSizexOES",
"glPolygonOffsetxOES",
"glRotatexOES",
"glSampleCoveragexOES",
"glScalexOES",
"glTexEnvxOES",
"glTexEnvxvOES",
"glTexParameterxOES",
"glTexParameterxvOES",
"glTranslatexOES",
};
static const char* s_GL_OES_framebuffer_object[] =
{
"glBindFramebufferOES",
"glBindRenderbufferOES",
"glCheckFramebufferStatusOES",
"glDeleteFramebuffersOES",
"glDeleteRenderbuffersOES",
"glFramebufferRenderbufferOES",
"glFramebufferTexture2DOES",
"glGenFramebuffersOES",
"glGenRenderbuffersOES",
"glGenerateMipmapOES",
"glGetFramebufferAttachmentParameterivOES",
"glGetRenderbufferParameterivOES",
"glIsFramebufferOES",
"glIsRenderbufferOES",
"glRenderbufferStorageOES",
};
static const char* s_GL_OES_mapbuffer[] =
{
"glGetBufferPointervOES",
"glMapBufferOES",
"glUnmapBufferOES",
};
static const char* s_GL_OES_matrix_palette[] =
{
"glCurrentPaletteMatrixOES",
"glLoadPaletteFromModelViewMatrixOES",
"glMatrixIndexPointerOES",
"glWeightPointerOES",
};
static const char* s_GL_OES_point_size_array[] =
{
"glPointSizePointerOES",
};
static const char* s_GL_OES_query_matrix[] =
{
"glQueryMatrixxOES",
};
static const char* s_GL_OES_single_precision[] =
{
"glClearDepthfOES",
"glClipPlanefOES",
"glDepthRangefOES",
"glFrustumfOES",
"glGetClipPlanefOES",
"glOrthofOES",
};
static const char* s_GL_OES_texture_cube_map[] =
{
"glGetTexGenfvOES",
"glGetTexGenivOES",
"glGetTexGenxvOES",
"glTexGenfOES",
"glTexGenfvOES",
"glTexGeniOES",
"glTexGenivOES",
"glTexGenxOES",
"glTexGenxvOES",
};
static const char* s_GL_OES_vertex_array_object[] =
{
"glBindVertexArrayOES",
"glDeleteVertexArraysOES",
"glGenVertexArraysOES",
"glIsVertexArrayOES",
};
static const char* s_GL_QCOM_driver_control[] =
{
"glDisableDriverControlQCOM",
"glEnableDriverControlQCOM",
"glGetDriverControlStringQCOM",
"glGetDriverControlsQCOM",
};
static const char* s_GL_QCOM_extended_get[] =
{
"glExtGetBufferPointervQCOM",
"glExtGetBuffersQCOM",
"glExtGetFramebuffersQCOM",
"glExtGetRenderbuffersQCOM",
"glExtGetTexLevelParameterivQCOM",
"glExtGetTexSubImageQCOM",
"glExtGetTexturesQCOM",
"glExtTexObjectStateOverrideiQCOM",
};
static const char* s_GL_QCOM_extended_get2[] =
{
"glExtGetProgramBinarySourceQCOM",
"glExtGetProgramsQCOM",
"glExtGetShadersQCOM",
"glExtIsProgramBinaryQCOM",
};
static const char* s_GL_QCOM_tiled_rendering[] =
{
"glEndTilingQCOM",
"glStartTilingQCOM",
};
static const char* s_GL_AMD_framebuffer_multisample_advanced[] =
{
"glNamedRenderbufferStorageMultisampleAdvancedAMD",
"glRenderbufferStorageMultisampleAdvancedAMD",
};
static const char* s_GL_AMD_performance_monitor[] =
{
"glBeginPerfMonitorAMD",
"glDeletePerfMonitorsAMD",
"glEndPerfMonitorAMD",
"glGenPerfMonitorsAMD",
"glGetPerfMonitorCounterDataAMD",
"glGetPerfMonitorCounterInfoAMD",
"glGetPerfMonitorCounterStringAMD",
"glGetPerfMonitorCountersAMD",
"glGetPerfMonitorGroupStringAMD",
"glGetPerfMonitorGroupsAMD",
"glSelectPerfMonitorCountersAMD",
};
static const char* s_GL_ANGLE_framebuffer_blit[] =
{
"glBlitFramebufferANGLE",
};
static const char* s_GL_ANGLE_framebuffer_multisample[] =
{
"glRenderbufferStorageMultisampleANGLE",
};
static const char* s_GL_ANGLE_instanced_arrays[] =
{
"glDrawArraysInstancedANGLE",
"glDrawElementsInstancedANGLE",
"glVertexAttribDivisorANGLE",
};
static const char* s_GL_ANGLE_translated_shader_source[] =
{
"glGetTranslatedShaderSourceANGLE",
};
static const char* s_GL_EXT_EGL_image_storage[] =
{
"glEGLImageTargetTexStorageEXT",
"glEGLImageTargetTextureStorageEXT",
};
static const char* s_GL_EXT_base_instance[] =
{
"glDrawArraysInstancedBaseInstanceEXT",
"glDrawElementsInstancedBaseInstanceEXT",
"glDrawElementsInstancedBaseVertexBaseInstanceEXT",
};
static const char* s_GL_EXT_blend_func_extended[] =
{
"glBindFragDataLocationEXT",
"glBindFragDataLocationIndexedEXT",
"glGetFragDataIndexEXT",
"glGetProgramResourceLocationIndexEXT",
};
static const char* s_GL_EXT_buffer_storage[] =
{
"glBufferStorageEXT",
};
static const char* s_GL_EXT_clear_texture[] =
{
"glClearTexImageEXT",
"glClearTexSubImageEXT",
};
static const char* s_GL_EXT_clip_control[] =
{
"glClipControlEXT",
};
static const char* s_GL_EXT_copy_image[] =
{
"glCopyImageSubDataEXT",
};
static const char* s_GL_EXT_debug_label[] =
{
"glGetObjectLabelEXT",
"glLabelObjectEXT",
};
static const char* s_GL_EXT_disjoint_timer_query[] =
{
"glBeginQueryEXT",
"glDeleteQueriesEXT",
"glEndQueryEXT",
"glGenQueriesEXT",
"glGetQueryObjecti64vEXT",
"glGetQueryObjectivEXT",
"glGetQueryObjectui64vEXT",
"glGetQueryObjectuivEXT",
"glGetQueryivEXT",
"glIsQueryEXT",
"glQueryCounterEXT",
};
static const char* s_GL_EXT_draw_buffers[] =
{
"glDrawBuffersEXT",
};
static const char* s_GL_EXT_draw_buffers_indexed[] =
{
"glBlendEquationSeparateiEXT",
"glBlendEquationiEXT",
"glBlendFuncSeparateiEXT",
"glBlendFunciEXT",
"glColorMaskiEXT",
"glDisableiEXT",
"glEnableiEXT",
"glIsEnablediEXT",
};
static const char* s_GL_EXT_draw_elements_base_vertex[] =
{
"glDrawElementsBaseVertexEXT",
"glDrawElementsInstancedBaseVertexEXT",
"glDrawRangeElementsBaseVertexEXT",
"glMultiDrawElementsBaseVertexEXT",
};
static const char* s_GL_EXT_draw_instanced[] =
{
"glDrawArraysInstancedEXT",
"glDrawElementsInstancedEXT",
};
static const char* s_GL_EXT_draw_transform_feedback[] =
{
"glDrawTransformFeedbackEXT",
"glDrawTransformFeedbackInstancedEXT",
};
static const char* s_GL_EXT_external_buffer[] =
{
"glBufferStorageExternalEXT",
"glNamedBufferStorageExternalEXT",
};
static const char* s_GL_EXT_geometry_shader[] =
{
"glFramebufferTextureEXT",
};
static const char* s_GL_EXT_instanced_arrays[] =
{
"glDrawArraysInstancedEXT",
"glDrawElementsInstancedEXT",
"glVertexAttribDivisorEXT",
};
static const char* s_GL_EXT_memory_object[] =
{
"glBufferStorageMemEXT",
"glCreateMemoryObjectsEXT",
"glDeleteMemoryObjectsEXT",
"glGetMemoryObjectParameterivEXT",
"glGetUnsignedBytevEXT",
"glGetUnsignedBytei_vEXT",
"glIsMemoryObjectEXT",
"glMemoryObjectParameterivEXT",
"glNamedBufferStorageMemEXT",
"glTexStorageMem2DEXT",
"glTexStorageMem2DMultisampleEXT",
"glTexStorageMem3DEXT",
"glTexStorageMem3DMultisampleEXT",
"glTextureStorageMem2DEXT",
"glTextureStorageMem2DMultisampleEXT",
"glTextureStorageMem3DEXT",
"glTextureStorageMem3DMultisampleEXT",
};
static const char* s_GL_EXT_memory_object_fd[] =
{
"glImportMemoryFdEXT",
};
static const char* s_GL_EXT_memory_object_win32[] =
{
"glImportMemoryWin32HandleEXT",
"glImportMemoryWin32NameEXT",
};
static const char* s_GL_EXT_multi_draw_indirect[] =
{
"glMultiDrawArraysIndirectEXT",
"glMultiDrawElementsIndirectEXT",
};
static const char* s_GL_EXT_multiview_draw_buffers[] =
{
"glDrawBuffersIndexedEXT",
"glGetIntegeri_vEXT",
"glReadBufferIndexedEXT",
};
static const char* s_GL_EXT_occlusion_query_boolean[] =
{
"glBeginQueryEXT",
"glDeleteQueriesEXT",
"glEndQueryEXT",
"glGenQueriesEXT",
"glGetQueryObjectuivEXT",
"glGetQueryivEXT",
"glIsQueryEXT",
};
static const char* s_GL_EXT_polygon_offset_clamp[] =
{
"glPolygonOffsetClampEXT",
};
static const char* s_GL_EXT_primitive_bounding_box[] =
{
"glPrimitiveBoundingBoxEXT",
};
static const char* s_GL_EXT_raster_multisample[] =
{
"glRasterSamplesEXT",
};
static const char* s_GL_EXT_semaphore[] =
{
"glDeleteSemaphoresEXT",
"glGenSemaphoresEXT",
"glGetSemaphoreParameterui64vEXT",
"glGetUnsignedBytevEXT",
"glGetUnsignedBytei_vEXT",
"glIsSemaphoreEXT",
"glSemaphoreParameterui64vEXT",
"glSignalSemaphoreEXT",
"glWaitSemaphoreEXT",
};
static const char* s_GL_EXT_semaphore_fd[] =
{
"glImportSemaphoreFdEXT",
};
static const char* s_GL_EXT_semaphore_win32[] =
{
"glImportSemaphoreWin32HandleEXT",
"glImportSemaphoreWin32NameEXT",
};
static const char* s_GL_EXT_separate_shader_objects[] =
{
"glActiveShaderProgramEXT",
"glBindProgramPipelineEXT",
"glCreateShaderProgramvEXT",
"glDeleteProgramPipelinesEXT",
"glGenProgramPipelinesEXT",
"glGetProgramPipelineInfoLogEXT",
"glGetProgramPipelineivEXT",
"glIsProgramPipelineEXT",
"glProgramParameteriEXT",
"glProgramUniform1fEXT",
"glProgramUniform1fvEXT",
"glProgramUniform1iEXT",
"glProgramUniform1ivEXT",
"glProgramUniform1uiEXT",
"glProgramUniform1uivEXT",
"glProgramUniform2fEXT",
"glProgramUniform2fvEXT",
"glProgramUniform2iEXT",
"glProgramUniform2ivEXT",
"glProgramUniform2uiEXT",
"glProgramUniform2uivEXT",
"glProgramUniform3fEXT",
"glProgramUniform3fvEXT",
"glProgramUniform3iEXT",
"glProgramUniform3ivEXT",
"glProgramUniform3uiEXT",
"glProgramUniform3uivEXT",
"glProgramUniform4fEXT",
"glProgramUniform4fvEXT",
"glProgramUniform4iEXT",
"glProgramUniform4ivEXT",
"glProgramUniform4uiEXT",
"glProgramUniform4uivEXT",
"glProgramUniformMatrix2fvEXT",
"glProgramUniformMatrix2x3fvEXT",
"glProgramUniformMatrix2x4fvEXT",
"glProgramUniformMatrix3fvEXT",
"glProgramUniformMatrix3x2fvEXT",
"glProgramUniformMatrix3x4fvEXT",
"glProgramUniformMatrix4fvEXT",
"glProgramUniformMatrix4x2fvEXT",
"glProgramUniformMatrix4x3fvEXT",
"glUseProgramStagesEXT",
"glValidateProgramPipelineEXT",
};
static const char* s_GL_EXT_shader_framebuffer_fetch_non_coherent[] =
{
"glFramebufferFetchBarrierEXT",
};
static const char* s_GL_EXT_shader_pixel_local_storage2[] =
{
"glClearPixelLocalStorageuiEXT",
"glFramebufferPixelLocalStorageSizeEXT",
"glGetFramebufferPixelLocalStorageSizeEXT",
};
static const char* s_GL_EXT_sparse_texture[] =
{
"glTexPageCommitmentEXT",
};
static const char* s_GL_EXT_tessellation_shader[] =
{
"glPatchParameteriEXT",
};
static const char* s_GL_EXT_texture_border_clamp[] =
{
"glGetSamplerParameterIivEXT",
"glGetSamplerParameterIuivEXT",
"glGetTexParameterIivEXT",
"glGetTexParameterIuivEXT",
"glSamplerParameterIivEXT",
"glSamplerParameterIuivEXT",
"glTexParameterIivEXT",
"glTexParameterIuivEXT",
};
static const char* s_GL_EXT_texture_buffer[] =
{
"glTexBufferEXT",
"glTexBufferRangeEXT",
};
static const char* s_GL_EXT_texture_view[] =
{
"glTextureViewEXT",
};
static const char* s_GL_EXT_win32_keyed_mutex[] =
{
"glAcquireKeyedMutexWin32EXT",
"glReleaseKeyedMutexWin32EXT",
};
static const char* s_GL_EXT_window_rectangles[] =
{
"glWindowRectanglesEXT",
};
static const char* s_GL_IMG_bindless_texture[] =
{
"glGetTextureHandleIMG",
"glGetTextureSamplerHandleIMG",
"glProgramUniformHandleui64IMG",
"glProgramUniformHandleui64vIMG",
"glUniformHandleui64IMG",
"glUniformHandleui64vIMG",
};
static const char* s_GL_IMG_framebuffer_downsample[] =
{
"glFramebufferTexture2DDownsampleIMG",
"glFramebufferTextureLayerDownsampleIMG",
};
static const char* s_GL_INTEL_framebuffer_CMAA[] =
{
"glApplyFramebufferAttachmentCMAAINTEL",
};
static const char* s_GL_INTEL_performance_query[] =
{
"glBeginPerfQueryINTEL",
"glCreatePerfQueryINTEL",
"glDeletePerfQueryINTEL",
"glEndPerfQueryINTEL",
"glGetFirstPerfQueryIdINTEL",
"glGetNextPerfQueryIdINTEL",
"glGetPerfCounterInfoINTEL",
"glGetPerfQueryDataINTEL",
"glGetPerfQueryIdByNameINTEL",
"glGetPerfQueryInfoINTEL",
};
static const char* s_GL_KHR_blend_equation_advanced[] =
{
"glBlendBarrierKHR",
};
static const char* s_GL_KHR_debug[] =
{
"glDebugMessageCallbackKHR",
"glDebugMessageControlKHR",
"glDebugMessageInsertKHR",
"glGetDebugMessageLogKHR",
"glGetObjectLabelKHR",
"glGetObjectPtrLabelKHR",
"glGetPointervKHR",
"glObjectLabelKHR",
"glObjectPtrLabelKHR",
"glPopDebugGroupKHR",
"glPushDebugGroupKHR",
};
static const char* s_GL_KHR_robustness[] =
{
"glGetGraphicsResetStatusKHR",
"glGetnUniformfvKHR",
"glGetnUniformivKHR",
"glGetnUniformuivKHR",
"glReadnPixelsKHR",
};
static const char* s_GL_KHR_parallel_shader_compile[] =
{
"glMaxShaderCompilerThreadsKHR",
};
static const char* s_GL_NV_bindless_texture[] =
{
"glGetImageHandleNV",
"glGetTextureHandleNV",
"glGetTextureSamplerHandleNV",
"glIsImageHandleResidentNV",
"glIsTextureHandleResidentNV",
"glMakeImageHandleNonResidentNV",
"glMakeImageHandleResidentNV",
"glMakeTextureHandleNonResidentNV",
"glMakeTextureHandleResidentNV",
"glProgramUniformHandleui64NV",
"glProgramUniformHandleui64vNV",
"glUniformHandleui64NV",
"glUniformHandleui64vNV",
};
static const char* s_GL_NV_blend_equation_advanced[] =
{
"glBlendBarrierNV",
"glBlendParameteriNV",
};
static const char* s_GL_NV_clip_space_w_scaling[] =
{
"glViewportPositionWScaleNV",
};
static const char* s_GL_NV_conditional_render[] =
{
"glBeginConditionalRenderNV",
"glEndConditionalRenderNV",
};
static const char* s_GL_NV_conservative_raster[] =
{
"glSubpixelPrecisionBiasNV",
};
static const char* s_GL_NV_conservative_raster_pre_snap_triangles[] =
{
"glConservativeRasterParameteriNV",
};
static const char* s_GL_NV_copy_buffer[] =
{
"glCopyBufferSubDataNV",
};
static const char* s_GL_NV_coverage_sample[] =
{
"glCoverageMaskNV",
"glCoverageOperationNV",
};
static const char* s_GL_NV_draw_buffers[] =
{
"glDrawBuffersNV",
};
static const char* s_GL_NV_draw_instanced[] =
{
"glDrawArraysInstancedNV",
"glDrawElementsInstancedNV",
};
static const char* s_GL_NV_draw_vulkan_image[] =
{
"glDrawVkImageNV",
"glGetVkProcAddrNV",
"glWaitVkSemaphoreNV",
"glSignalVkSemaphoreNV",
"glSignalVkFenceNV",
};
static const char* s_GL_NV_fragment_coverage_to_color[] =
{
"glFragmentCoverageColorNV",
};
static const char* s_GL_NV_framebuffer_blit[] =
{
"glBlitFramebufferNV",
};
static const char* s_GL_NV_framebuffer_mixed_samples[] =
{
"glCoverageModulationNV",
"glCoverageModulationTableNV",
"glGetCoverageModulationTableNV",
"glRasterSamplesEXT",
};
static const char* s_GL_NV_framebuffer_multisample[] =
{
"glRenderbufferStorageMultisampleNV",
};
static const char* s_GL_NV_gpu_shader5[] =
{
"glGetUniformi64vNV",
"glProgramUniform1i64NV",
"glProgramUniform1i64vNV",
"glProgramUniform1ui64NV",
"glProgramUniform1ui64vNV",
"glProgramUniform2i64NV",
"glProgramUniform2i64vNV",
"glProgramUniform2ui64NV",
"glProgramUniform2ui64vNV",
"glProgramUniform3i64NV",
"glProgramUniform3i64vNV",
"glProgramUniform3ui64NV",
"glProgramUniform3ui64vNV",
"glProgramUniform4i64NV",
"glProgramUniform4i64vNV",
"glProgramUniform4ui64NV",
"glProgramUniform4ui64vNV",
"glUniform1i64NV",
"glUniform1i64vNV",
"glUniform1ui64NV",
"glUniform1ui64vNV",
"glUniform2i64NV",
"glUniform2i64vNV",
"glUniform2ui64NV",
"glUniform2ui64vNV",
"glUniform3i64NV",
"glUniform3i64vNV",
"glUniform3ui64NV",
"glUniform3ui64vNV",
"glUniform4i64NV",
"glUniform4i64vNV",
"glUniform4ui64NV",
"glUniform4ui64vNV",
};
static const char* s_GL_NV_instanced_arrays[] =
{
"glVertexAttribDivisorNV",
};
static const char* s_GL_NV_internalformat_sample_query[] =
{
"glGetInternalformatSampleivNV",
};
static const char* s_GL_NV_memory_attachment[] =
{
"glBufferAttachMemoryNV",
"glGetMemoryObjectDetachedResourcesuivNV",
"glNamedBufferAttachMemoryNV",
"glResetMemoryObjectParameterNV",
"glTexAttachMemoryNV",
"glTextureAttachMemoryNV",
};
static const char* s_GL_NV_mesh_shader[] =
{
"glDrawMeshTasksNV",
"glDrawMeshTasksIndirectNV",
"glMultiDrawMeshTasksIndirectNV",
"glMultiDrawMeshTasksIndirectCountNV",
};
static const char* s_GL_NV_non_square_matrices[] =
{
"glUniformMatrix2x3fvNV",
"glUniformMatrix2x4fvNV",
"glUniformMatrix3x2fvNV",
"glUniformMatrix3x4fvNV",
"glUniformMatrix4x2fvNV",
"glUniformMatrix4x3fvNV",
};
static const char* s_GL_NV_path_rendering[] =
{
"glCopyPathNV",
"glCoverFillPathInstancedNV",
"glCoverFillPathNV",
"glCoverStrokePathInstancedNV",
"glCoverStrokePathNV",
"glDeletePathsNV",
"glGenPathsNV",
"glGetPathCommandsNV",
"glGetPathCoordsNV",
"glGetPathDashArrayNV",
"glGetPathLengthNV",
"glGetPathMetricRangeNV",
"glGetPathMetricsNV",
"glGetPathParameterfvNV",
"glGetPathParameterivNV",
"glGetPathSpacingNV",
"glGetProgramResourcefvNV",
"glInterpolatePathsNV",
"glIsPathNV",
"glIsPointInFillPathNV",
"glIsPointInStrokePathNV",
"glMatrixFrustumEXT",
"glMatrixLoad3x2fNV",
"glMatrixLoad3x3fNV",
"glMatrixLoadIdentityEXT",
"glMatrixLoadTranspose3x3fNV",
"glMatrixLoadTransposedEXT",
"glMatrixLoadTransposefEXT",
"glMatrixLoaddEXT",
"glMatrixLoadfEXT",
"glMatrixMult3x2fNV",
"glMatrixMult3x3fNV",
"glMatrixMultTranspose3x3fNV",
"glMatrixMultTransposedEXT",
"glMatrixMultTransposefEXT",
"glMatrixMultdEXT",
"glMatrixMultfEXT",
"glMatrixOrthoEXT",
"glMatrixPopEXT",
"glMatrixPushEXT",
"glMatrixRotatedEXT",
"glMatrixRotatefEXT",
"glMatrixScaledEXT",
"glMatrixScalefEXT",
"glMatrixTranslatedEXT",
"glMatrixTranslatefEXT",
"glPathCommandsNV",
"glPathCoordsNV",
"glPathCoverDepthFuncNV",
"glPathDashArrayNV",
"glPathGlyphIndexArrayNV",
"glPathGlyphIndexRangeNV",
"glPathGlyphRangeNV",
"glPathGlyphsNV",
"glPathMemoryGlyphIndexArrayNV",
"glPathParameterfNV",
"glPathParameterfvNV",
"glPathParameteriNV",
"glPathParameterivNV",
"glPathStencilDepthOffsetNV",
"glPathStencilFuncNV",
"glPathStringNV",
"glPathSubCommandsNV",
"glPathSubCoordsNV",
"glPointAlongPathNV",
"glProgramPathFragmentInputGenNV",
"glStencilFillPathInstancedNV",
"glStencilFillPathNV",
"glStencilStrokePathInstancedNV",
"glStencilStrokePathNV",
"glStencilThenCoverFillPathInstancedNV",
"glStencilThenCoverFillPathNV",
"glStencilThenCoverStrokePathInstancedNV",
"glStencilThenCoverStrokePathNV",
"glTransformPathNV",
"glWeightPathsNV",
};
static const char* s_GL_NV_polygon_mode[] =
{
"glPolygonModeNV",
};
static const char* s_GL_NV_read_buffer[] =
{
"glReadBufferNV",
};
static const char* s_GL_NV_sample_locations[] =
{
"glFramebufferSampleLocationsfvNV",
"glNamedFramebufferSampleLocationsfvNV",
"glResolveDepthValuesNV",
};
static const char* s_GL_NV_scissor_exclusive[] =
{
"glScissorExclusiveArrayvNV",
"glScissorExclusiveNV",
};
static const char* s_GL_NV_shading_rate_image[] =
{
"glBindShadingRateImageNV",
"glGetShadingRateImagePaletteNV",
"glGetShadingRateSampleLocationivNV",
"glShadingRateImageBarrierNV",
"glShadingRateImagePaletteNV",
"glShadingRateSampleOrderNV",
"glShadingRateSampleOrderCustomNV",
};
static const char* s_GL_NV_viewport_array[] =
{
"glDepthRangeArrayfvNV",
"glDepthRangeIndexedfNV",
"glDisableiNV",
"glEnableiNV",
"glGetFloati_vNV",
"glIsEnablediNV",
"glScissorArrayvNV",
"glScissorIndexedNV",
"glScissorIndexedvNV",
"glViewportArrayvNV",
"glViewportIndexedfNV",
"glViewportIndexedfvNV",
};
static const char* s_GL_NV_viewport_swizzle[] =
{
"glViewportSwizzleNV",
};
static const char* s_GL_OES_copy_image[] =
{
"glCopyImageSubDataOES",
};
static const char* s_GL_OES_draw_buffers_indexed[] =
{
"glBlendEquationSeparateiOES",
"glBlendEquationiOES",
"glBlendFuncSeparateiOES",
"glBlendFunciOES",
"glColorMaskiOES",
"glDisableiOES",
"glEnableiOES",
"glIsEnablediOES",
};
static const char* s_GL_OES_draw_elements_base_vertex[] =
{
"glDrawElementsBaseVertexOES",
"glDrawElementsInstancedBaseVertexOES",
"glDrawRangeElementsBaseVertexOES",
"glMultiDrawElementsBaseVertexEXT",
};
static const char* s_GL_OES_geometry_shader[] =
{
"glFramebufferTextureOES",
};
static const char* s_GL_OES_get_program_binary[] =
{
"glGetProgramBinaryOES",
"glProgramBinaryOES",
};
static const char* s_GL_OES_primitive_bounding_box[] =
{
"glPrimitiveBoundingBoxOES",
};
static const char* s_GL_OES_sample_shading[] =
{
"glMinSampleShadingOES",
};
static const char* s_GL_OES_tessellation_shader[] =
{
"glPatchParameteriOES",
};
static const char* s_GL_OES_texture_3D[] =
{
"glCompressedTexImage3DOES",
"glCompressedTexSubImage3DOES",
"glCopyTexSubImage3DOES",
"glFramebufferTexture3DOES",
"glTexImage3DOES",
"glTexSubImage3DOES",
};
static const char* s_GL_OES_texture_border_clamp[] =
{
"glGetSamplerParameterIivOES",
"glGetSamplerParameterIuivOES",
"glGetTexParameterIivOES",
"glGetTexParameterIuivOES",
"glSamplerParameterIivOES",
"glSamplerParameterIuivOES",
"glTexParameterIivOES",
"glTexParameterIuivOES",
};
static const char* s_GL_OES_texture_buffer[] =
{
"glTexBufferOES",
"glTexBufferRangeOES",
};
static const char* s_GL_OES_texture_storage_multisample_2d_array[] =
{
"glTexStorage3DMultisampleOES",
};
static const char* s_GL_OES_texture_view[] =
{
"glTextureViewOES",
};
static const char* s_GL_OES_viewport_array[] =
{
"glDepthRangeArrayfvOES",
"glDepthRangeIndexedfOES",
"glDisableiOES",
"glEnableiOES",
"glGetFloati_vOES",
"glIsEnablediOES",
"glScissorArrayvOES",
"glScissorIndexedOES",
"glScissorIndexedvOES",
"glViewportArrayvOES",
"glViewportIndexedfOES",
"glViewportIndexedfvOES",
};
static const char* s_GL_OVR_multiview[] =
{
"glFramebufferTextureMultiviewOVR",
};
static const char* s_GL_OVR_multiview_multisampled_render_to_texture[] =
{
"glFramebufferTextureMultisampleMultiviewOVR",
};
static const char* s_GL_QCOM_alpha_test[] =
{
"glAlphaFuncQCOM",
};
static const char* s_GL_QCOM_framebuffer_foveated[] =
{
"glFramebufferFoveationConfigQCOM",
"glFramebufferFoveationParametersQCOM",
};
static const char* s_GL_QCOM_texture_foveated[] =
{
"glTextureFoveationParametersQCOM",
};
static const char* s_GL_QCOM_shader_framebuffer_fetch_noncoherent[] =
{
"glFramebufferFetchBarrierQCOM",
};
static const struct
{
const char* name;
const int numFunctions;
const char* const* functions;
} s_extensions[] =
{
{ "EGL_ANDROID_blob_cache", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_blob_cache), s_EGL_ANDROID_blob_cache },
{ "EGL_ANDROID_create_native_client_buffer", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_create_native_client_buffer), s_EGL_ANDROID_create_native_client_buffer },
{ "EGL_ANDROID_get_native_client_buffer", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_get_native_client_buffer), s_EGL_ANDROID_get_native_client_buffer },
{ "EGL_ANDROID_native_fence_sync", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_native_fence_sync), s_EGL_ANDROID_native_fence_sync },
{ "EGL_ANDROID_presentation_time", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_presentation_time), s_EGL_ANDROID_presentation_time },
{ "EGL_ANDROID_get_frame_timestamps", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_get_frame_timestamps), s_EGL_ANDROID_get_frame_timestamps },
{ "EGL_ANGLE_query_surface_pointer", DE_LENGTH_OF_ARRAY(s_EGL_ANGLE_query_surface_pointer), s_EGL_ANGLE_query_surface_pointer },
{ "EGL_EXT_client_sync", DE_LENGTH_OF_ARRAY(s_EGL_EXT_client_sync), s_EGL_EXT_client_sync },
{ "EGL_EXT_device_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_base), s_EGL_EXT_device_base },
{ "EGL_EXT_device_enumeration", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_enumeration), s_EGL_EXT_device_enumeration },
{ "EGL_EXT_device_query", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_query), s_EGL_EXT_device_query },
{ "EGL_EXT_image_dma_buf_import_modifiers", DE_LENGTH_OF_ARRAY(s_EGL_EXT_image_dma_buf_import_modifiers), s_EGL_EXT_image_dma_buf_import_modifiers },
{ "EGL_EXT_output_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_output_base), s_EGL_EXT_output_base },
{ "EGL_EXT_platform_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_platform_base), s_EGL_EXT_platform_base },
{ "EGL_EXT_stream_consumer_egloutput", DE_LENGTH_OF_ARRAY(s_EGL_EXT_stream_consumer_egloutput), s_EGL_EXT_stream_consumer_egloutput },
{ "EGL_EXT_swap_buffers_with_damage", DE_LENGTH_OF_ARRAY(s_EGL_EXT_swap_buffers_with_damage), s_EGL_EXT_swap_buffers_with_damage },
{ "EGL_EXT_sync_reuse", DE_LENGTH_OF_ARRAY(s_EGL_EXT_sync_reuse), s_EGL_EXT_sync_reuse },
{ "EGL_HI_clientpixmap", DE_LENGTH_OF_ARRAY(s_EGL_HI_clientpixmap), s_EGL_HI_clientpixmap },
{ "EGL_KHR_cl_event2", DE_LENGTH_OF_ARRAY(s_EGL_KHR_cl_event2), s_EGL_KHR_cl_event2 },
{ "EGL_KHR_debug", DE_LENGTH_OF_ARRAY(s_EGL_KHR_debug), s_EGL_KHR_debug },
{ "EGL_KHR_display_reference", DE_LENGTH_OF_ARRAY(s_EGL_KHR_display_reference), s_EGL_KHR_display_reference },
{ "EGL_KHR_fence_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_fence_sync), s_EGL_KHR_fence_sync },
{ "EGL_KHR_image", DE_LENGTH_OF_ARRAY(s_EGL_KHR_image), s_EGL_KHR_image },
{ "EGL_KHR_image_base", DE_LENGTH_OF_ARRAY(s_EGL_KHR_image_base), s_EGL_KHR_image_base },
{ "EGL_KHR_lock_surface", DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface), s_EGL_KHR_lock_surface },
{ "EGL_KHR_lock_surface3", DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface3), s_EGL_KHR_lock_surface3 },
{ "EGL_KHR_partial_update", DE_LENGTH_OF_ARRAY(s_EGL_KHR_partial_update), s_EGL_KHR_partial_update },
{ "EGL_KHR_reusable_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_reusable_sync), s_EGL_KHR_reusable_sync },
{ "EGL_KHR_stream", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream), s_EGL_KHR_stream },
{ "EGL_KHR_stream_attrib", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_attrib), s_EGL_KHR_stream_attrib },
{ "EGL_KHR_stream_consumer_gltexture", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_consumer_gltexture), s_EGL_KHR_stream_consumer_gltexture },
{ "EGL_KHR_stream_cross_process_fd", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_cross_process_fd), s_EGL_KHR_stream_cross_process_fd },
{ "EGL_KHR_stream_fifo", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_fifo), s_EGL_KHR_stream_fifo },
{ "EGL_KHR_stream_producer_eglsurface", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_producer_eglsurface), s_EGL_KHR_stream_producer_eglsurface },
{ "EGL_KHR_swap_buffers_with_damage", DE_LENGTH_OF_ARRAY(s_EGL_KHR_swap_buffers_with_damage), s_EGL_KHR_swap_buffers_with_damage },
{ "EGL_KHR_wait_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_wait_sync), s_EGL_KHR_wait_sync },
{ "EGL_MESA_drm_image", DE_LENGTH_OF_ARRAY(s_EGL_MESA_drm_image), s_EGL_MESA_drm_image },
{ "EGL_MESA_image_dma_buf_export", DE_LENGTH_OF_ARRAY(s_EGL_MESA_image_dma_buf_export), s_EGL_MESA_image_dma_buf_export },
{ "EGL_NOK_swap_region", DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region), s_EGL_NOK_swap_region },
{ "EGL_NOK_swap_region2", DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region2), s_EGL_NOK_swap_region2 },
{ "EGL_NV_native_query", DE_LENGTH_OF_ARRAY(s_EGL_NV_native_query), s_EGL_NV_native_query },
{ "EGL_NV_post_sub_buffer", DE_LENGTH_OF_ARRAY(s_EGL_NV_post_sub_buffer), s_EGL_NV_post_sub_buffer },
{ "EGL_NV_stream_consumer_gltexture_yuv", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_consumer_gltexture_yuv), s_EGL_NV_stream_consumer_gltexture_yuv },
{ "EGL_NV_stream_flush", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_flush), s_EGL_NV_stream_flush },
{ "EGL_NV_stream_metadata", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_metadata), s_EGL_NV_stream_metadata },
{ "EGL_NV_stream_reset", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_reset), s_EGL_NV_stream_reset },
{ "EGL_NV_stream_sync", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_sync), s_EGL_NV_stream_sync },
{ "EGL_NV_sync", DE_LENGTH_OF_ARRAY(s_EGL_NV_sync), s_EGL_NV_sync },
{ "EGL_NV_system_time", DE_LENGTH_OF_ARRAY(s_EGL_NV_system_time), s_EGL_NV_system_time },
{ "EGL_EXT_compositor", DE_LENGTH_OF_ARRAY(s_EGL_EXT_compositor), s_EGL_EXT_compositor },
{ "GL_APPLE_copy_texture_levels", DE_LENGTH_OF_ARRAY(s_GL_APPLE_copy_texture_levels), s_GL_APPLE_copy_texture_levels },
{ "GL_APPLE_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_APPLE_framebuffer_multisample), s_GL_APPLE_framebuffer_multisample },
{ "GL_APPLE_sync", DE_LENGTH_OF_ARRAY(s_GL_APPLE_sync), s_GL_APPLE_sync },
{ "GL_EXT_debug_marker", DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_marker), s_GL_EXT_debug_marker },
{ "GL_EXT_discard_framebuffer", DE_LENGTH_OF_ARRAY(s_GL_EXT_discard_framebuffer), s_GL_EXT_discard_framebuffer },
{ "GL_EXT_map_buffer_range", DE_LENGTH_OF_ARRAY(s_GL_EXT_map_buffer_range), s_GL_EXT_map_buffer_range },
{ "GL_EXT_multi_draw_arrays", DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_arrays), s_GL_EXT_multi_draw_arrays },
{ "GL_EXT_multisampled_render_to_texture", DE_LENGTH_OF_ARRAY(s_GL_EXT_multisampled_render_to_texture), s_GL_EXT_multisampled_render_to_texture },
{ "GL_EXT_robustness", DE_LENGTH_OF_ARRAY(s_GL_EXT_robustness), s_GL_EXT_robustness },
{ "GL_EXT_texture_storage", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_storage), s_GL_EXT_texture_storage },
{ "GL_IMG_multisampled_render_to_texture", DE_LENGTH_OF_ARRAY(s_GL_IMG_multisampled_render_to_texture), s_GL_IMG_multisampled_render_to_texture },
{ "GL_IMG_user_clip_plane", DE_LENGTH_OF_ARRAY(s_GL_IMG_user_clip_plane), s_GL_IMG_user_clip_plane },
{ "GL_NV_fence", DE_LENGTH_OF_ARRAY(s_GL_NV_fence), s_GL_NV_fence },
{ "GL_OES_EGL_image", DE_LENGTH_OF_ARRAY(s_GL_OES_EGL_image), s_GL_OES_EGL_image },
{ "GL_OES_blend_equation_separate", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_equation_separate), s_GL_OES_blend_equation_separate },
{ "GL_OES_blend_func_separate", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_func_separate), s_GL_OES_blend_func_separate },
{ "GL_OES_blend_subtract", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_subtract), s_GL_OES_blend_subtract },
{ "GL_OES_draw_texture", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_texture), s_GL_OES_draw_texture },
{ "GL_OES_fixed_point", DE_LENGTH_OF_ARRAY(s_GL_OES_fixed_point), s_GL_OES_fixed_point },
{ "GL_OES_framebuffer_object", DE_LENGTH_OF_ARRAY(s_GL_OES_framebuffer_object), s_GL_OES_framebuffer_object },
{ "GL_OES_mapbuffer", DE_LENGTH_OF_ARRAY(s_GL_OES_mapbuffer), s_GL_OES_mapbuffer },
{ "GL_OES_matrix_palette", DE_LENGTH_OF_ARRAY(s_GL_OES_matrix_palette), s_GL_OES_matrix_palette },
{ "GL_OES_point_size_array", DE_LENGTH_OF_ARRAY(s_GL_OES_point_size_array), s_GL_OES_point_size_array },
{ "GL_OES_query_matrix", DE_LENGTH_OF_ARRAY(s_GL_OES_query_matrix), s_GL_OES_query_matrix },
{ "GL_OES_single_precision", DE_LENGTH_OF_ARRAY(s_GL_OES_single_precision), s_GL_OES_single_precision },
{ "GL_OES_texture_cube_map", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_cube_map), s_GL_OES_texture_cube_map },
{ "GL_OES_vertex_array_object", DE_LENGTH_OF_ARRAY(s_GL_OES_vertex_array_object), s_GL_OES_vertex_array_object },
{ "GL_QCOM_driver_control", DE_LENGTH_OF_ARRAY(s_GL_QCOM_driver_control), s_GL_QCOM_driver_control },
{ "GL_QCOM_extended_get", DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get), s_GL_QCOM_extended_get },
{ "GL_QCOM_extended_get2", DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get2), s_GL_QCOM_extended_get2 },
{ "GL_QCOM_tiled_rendering", DE_LENGTH_OF_ARRAY(s_GL_QCOM_tiled_rendering), s_GL_QCOM_tiled_rendering },
{ "GL_AMD_framebuffer_multisample_advanced", DE_LENGTH_OF_ARRAY(s_GL_AMD_framebuffer_multisample_advanced), s_GL_AMD_framebuffer_multisample_advanced },
{ "GL_AMD_performance_monitor", DE_LENGTH_OF_ARRAY(s_GL_AMD_performance_monitor), s_GL_AMD_performance_monitor },
{ "GL_ANGLE_framebuffer_blit", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_blit), s_GL_ANGLE_framebuffer_blit },
{ "GL_ANGLE_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_multisample), s_GL_ANGLE_framebuffer_multisample },
{ "GL_ANGLE_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_instanced_arrays), s_GL_ANGLE_instanced_arrays },
{ "GL_ANGLE_translated_shader_source", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_translated_shader_source), s_GL_ANGLE_translated_shader_source },
{ "GL_EXT_EGL_image_storage", DE_LENGTH_OF_ARRAY(s_GL_EXT_EGL_image_storage), s_GL_EXT_EGL_image_storage },
{ "GL_EXT_base_instance", DE_LENGTH_OF_ARRAY(s_GL_EXT_base_instance), s_GL_EXT_base_instance },
{ "GL_EXT_blend_func_extended", DE_LENGTH_OF_ARRAY(s_GL_EXT_blend_func_extended), s_GL_EXT_blend_func_extended },
{ "GL_EXT_buffer_storage", DE_LENGTH_OF_ARRAY(s_GL_EXT_buffer_storage), s_GL_EXT_buffer_storage },
{ "GL_EXT_clear_texture", DE_LENGTH_OF_ARRAY(s_GL_EXT_clear_texture), s_GL_EXT_clear_texture },
{ "GL_EXT_clip_control", DE_LENGTH_OF_ARRAY(s_GL_EXT_clip_control), s_GL_EXT_clip_control },
{ "GL_EXT_copy_image", DE_LENGTH_OF_ARRAY(s_GL_EXT_copy_image), s_GL_EXT_copy_image },
{ "GL_EXT_debug_label", DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_label), s_GL_EXT_debug_label },
{ "GL_EXT_disjoint_timer_query", DE_LENGTH_OF_ARRAY(s_GL_EXT_disjoint_timer_query), s_GL_EXT_disjoint_timer_query },
{ "GL_EXT_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers), s_GL_EXT_draw_buffers },
{ "GL_EXT_draw_buffers_indexed", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers_indexed), s_GL_EXT_draw_buffers_indexed },
{ "GL_EXT_draw_elements_base_vertex", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_elements_base_vertex), s_GL_EXT_draw_elements_base_vertex },
{ "GL_EXT_draw_instanced", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_instanced), s_GL_EXT_draw_instanced },
{ "GL_EXT_draw_transform_feedback", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_transform_feedback), s_GL_EXT_draw_transform_feedback },
{ "GL_EXT_external_buffer", DE_LENGTH_OF_ARRAY(s_GL_EXT_external_buffer), s_GL_EXT_external_buffer },
{ "GL_EXT_geometry_shader", DE_LENGTH_OF_ARRAY(s_GL_EXT_geometry_shader), s_GL_EXT_geometry_shader },
{ "GL_EXT_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_EXT_instanced_arrays), s_GL_EXT_instanced_arrays },
{ "GL_EXT_memory_object", DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object), s_GL_EXT_memory_object },
{ "GL_EXT_memory_object_fd", DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_fd), s_GL_EXT_memory_object_fd },
{ "GL_EXT_memory_object_win32", DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_win32), s_GL_EXT_memory_object_win32 },
{ "GL_EXT_multi_draw_indirect", DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_indirect), s_GL_EXT_multi_draw_indirect },
{ "GL_EXT_multiview_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_EXT_multiview_draw_buffers), s_GL_EXT_multiview_draw_buffers },
{ "GL_EXT_occlusion_query_boolean", DE_LENGTH_OF_ARRAY(s_GL_EXT_occlusion_query_boolean), s_GL_EXT_occlusion_query_boolean },
{ "GL_EXT_polygon_offset_clamp", DE_LENGTH_OF_ARRAY(s_GL_EXT_polygon_offset_clamp), s_GL_EXT_polygon_offset_clamp },
{ "GL_EXT_primitive_bounding_box", DE_LENGTH_OF_ARRAY(s_GL_EXT_primitive_bounding_box), s_GL_EXT_primitive_bounding_box },
{ "GL_EXT_raster_multisample", DE_LENGTH_OF_ARRAY(s_GL_EXT_raster_multisample), s_GL_EXT_raster_multisample },
{ "GL_EXT_semaphore", DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore), s_GL_EXT_semaphore },
{ "GL_EXT_semaphore_fd", DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_fd), s_GL_EXT_semaphore_fd },
{ "GL_EXT_semaphore_win32", DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_win32), s_GL_EXT_semaphore_win32 },
{ "GL_EXT_separate_shader_objects", DE_LENGTH_OF_ARRAY(s_GL_EXT_separate_shader_objects), s_GL_EXT_separate_shader_objects },
{ "GL_EXT_shader_framebuffer_fetch_non_coherent", DE_LENGTH_OF_ARRAY(s_GL_EXT_shader_framebuffer_fetch_non_coherent), s_GL_EXT_shader_framebuffer_fetch_non_coherent },
{ "GL_EXT_shader_pixel_local_storage2", DE_LENGTH_OF_ARRAY(s_GL_EXT_shader_pixel_local_storage2), s_GL_EXT_shader_pixel_local_storage2 },
{ "GL_EXT_sparse_texture", DE_LENGTH_OF_ARRAY(s_GL_EXT_sparse_texture), s_GL_EXT_sparse_texture },
{ "GL_EXT_tessellation_shader", DE_LENGTH_OF_ARRAY(s_GL_EXT_tessellation_shader), s_GL_EXT_tessellation_shader },
{ "GL_EXT_texture_border_clamp", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_border_clamp), s_GL_EXT_texture_border_clamp },
{ "GL_EXT_texture_buffer", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_buffer), s_GL_EXT_texture_buffer },
{ "GL_EXT_texture_view", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_view), s_GL_EXT_texture_view },
{ "GL_EXT_win32_keyed_mutex", DE_LENGTH_OF_ARRAY(s_GL_EXT_win32_keyed_mutex), s_GL_EXT_win32_keyed_mutex },
{ "GL_EXT_window_rectangles", DE_LENGTH_OF_ARRAY(s_GL_EXT_window_rectangles), s_GL_EXT_window_rectangles },
{ "GL_IMG_bindless_texture", DE_LENGTH_OF_ARRAY(s_GL_IMG_bindless_texture), s_GL_IMG_bindless_texture },
{ "GL_IMG_framebuffer_downsample", DE_LENGTH_OF_ARRAY(s_GL_IMG_framebuffer_downsample), s_GL_IMG_framebuffer_downsample },
{ "GL_INTEL_framebuffer_CMAA", DE_LENGTH_OF_ARRAY(s_GL_INTEL_framebuffer_CMAA), s_GL_INTEL_framebuffer_CMAA },
{ "GL_INTEL_performance_query", DE_LENGTH_OF_ARRAY(s_GL_INTEL_performance_query), s_GL_INTEL_performance_query },
{ "GL_KHR_blend_equation_advanced", DE_LENGTH_OF_ARRAY(s_GL_KHR_blend_equation_advanced), s_GL_KHR_blend_equation_advanced },
{ "GL_KHR_debug", DE_LENGTH_OF_ARRAY(s_GL_KHR_debug), s_GL_KHR_debug },
{ "GL_KHR_robustness", DE_LENGTH_OF_ARRAY(s_GL_KHR_robustness), s_GL_KHR_robustness },
{ "GL_KHR_parallel_shader_compile", DE_LENGTH_OF_ARRAY(s_GL_KHR_parallel_shader_compile), s_GL_KHR_parallel_shader_compile },
{ "GL_NV_bindless_texture", DE_LENGTH_OF_ARRAY(s_GL_NV_bindless_texture), s_GL_NV_bindless_texture },
{ "GL_NV_blend_equation_advanced", DE_LENGTH_OF_ARRAY(s_GL_NV_blend_equation_advanced), s_GL_NV_blend_equation_advanced },
{ "GL_NV_clip_space_w_scaling", DE_LENGTH_OF_ARRAY(s_GL_NV_clip_space_w_scaling), s_GL_NV_clip_space_w_scaling },
{ "GL_NV_conditional_render", DE_LENGTH_OF_ARRAY(s_GL_NV_conditional_render), s_GL_NV_conditional_render },
{ "GL_NV_conservative_raster", DE_LENGTH_OF_ARRAY(s_GL_NV_conservative_raster), s_GL_NV_conservative_raster },
{ "GL_NV_conservative_raster_pre_snap_triangles", DE_LENGTH_OF_ARRAY(s_GL_NV_conservative_raster_pre_snap_triangles), s_GL_NV_conservative_raster_pre_snap_triangles },
{ "GL_NV_copy_buffer", DE_LENGTH_OF_ARRAY(s_GL_NV_copy_buffer), s_GL_NV_copy_buffer },
{ "GL_NV_coverage_sample", DE_LENGTH_OF_ARRAY(s_GL_NV_coverage_sample), s_GL_NV_coverage_sample },
{ "GL_NV_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_NV_draw_buffers), s_GL_NV_draw_buffers },
{ "GL_NV_draw_instanced", DE_LENGTH_OF_ARRAY(s_GL_NV_draw_instanced), s_GL_NV_draw_instanced },
{ "GL_NV_draw_vulkan_image", DE_LENGTH_OF_ARRAY(s_GL_NV_draw_vulkan_image), s_GL_NV_draw_vulkan_image },
{ "GL_NV_fragment_coverage_to_color", DE_LENGTH_OF_ARRAY(s_GL_NV_fragment_coverage_to_color), s_GL_NV_fragment_coverage_to_color },
{ "GL_NV_framebuffer_blit", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_blit), s_GL_NV_framebuffer_blit },
{ "GL_NV_framebuffer_mixed_samples", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_mixed_samples), s_GL_NV_framebuffer_mixed_samples },
{ "GL_NV_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_multisample), s_GL_NV_framebuffer_multisample },
{ "GL_NV_gpu_shader5", DE_LENGTH_OF_ARRAY(s_GL_NV_gpu_shader5), s_GL_NV_gpu_shader5 },
{ "GL_NV_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_NV_instanced_arrays), s_GL_NV_instanced_arrays },
{ "GL_NV_internalformat_sample_query", DE_LENGTH_OF_ARRAY(s_GL_NV_internalformat_sample_query), s_GL_NV_internalformat_sample_query },
{ "GL_NV_memory_attachment", DE_LENGTH_OF_ARRAY(s_GL_NV_memory_attachment), s_GL_NV_memory_attachment },
{ "GL_NV_mesh_shader", DE_LENGTH_OF_ARRAY(s_GL_NV_mesh_shader), s_GL_NV_mesh_shader },
{ "GL_NV_non_square_matrices", DE_LENGTH_OF_ARRAY(s_GL_NV_non_square_matrices), s_GL_NV_non_square_matrices },
{ "GL_NV_path_rendering", DE_LENGTH_OF_ARRAY(s_GL_NV_path_rendering), s_GL_NV_path_rendering },
{ "GL_NV_polygon_mode", DE_LENGTH_OF_ARRAY(s_GL_NV_polygon_mode), s_GL_NV_polygon_mode },
{ "GL_NV_read_buffer", DE_LENGTH_OF_ARRAY(s_GL_NV_read_buffer), s_GL_NV_read_buffer },
{ "GL_NV_sample_locations", DE_LENGTH_OF_ARRAY(s_GL_NV_sample_locations), s_GL_NV_sample_locations },
{ "GL_NV_scissor_exclusive", DE_LENGTH_OF_ARRAY(s_GL_NV_scissor_exclusive), s_GL_NV_scissor_exclusive },
{ "GL_NV_shading_rate_image", DE_LENGTH_OF_ARRAY(s_GL_NV_shading_rate_image), s_GL_NV_shading_rate_image },
{ "GL_NV_viewport_array", DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_array), s_GL_NV_viewport_array },
{ "GL_NV_viewport_swizzle", DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_swizzle), s_GL_NV_viewport_swizzle },
{ "GL_OES_copy_image", DE_LENGTH_OF_ARRAY(s_GL_OES_copy_image), s_GL_OES_copy_image },
{ "GL_OES_draw_buffers_indexed", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_buffers_indexed), s_GL_OES_draw_buffers_indexed },
{ "GL_OES_draw_elements_base_vertex", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_elements_base_vertex), s_GL_OES_draw_elements_base_vertex },
{ "GL_OES_geometry_shader", DE_LENGTH_OF_ARRAY(s_GL_OES_geometry_shader), s_GL_OES_geometry_shader },
{ "GL_OES_get_program_binary", DE_LENGTH_OF_ARRAY(s_GL_OES_get_program_binary), s_GL_OES_get_program_binary },
{ "GL_OES_primitive_bounding_box", DE_LENGTH_OF_ARRAY(s_GL_OES_primitive_bounding_box), s_GL_OES_primitive_bounding_box },
{ "GL_OES_sample_shading", DE_LENGTH_OF_ARRAY(s_GL_OES_sample_shading), s_GL_OES_sample_shading },
{ "GL_OES_tessellation_shader", DE_LENGTH_OF_ARRAY(s_GL_OES_tessellation_shader), s_GL_OES_tessellation_shader },
{ "GL_OES_texture_3D", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_3D), s_GL_OES_texture_3D },
{ "GL_OES_texture_border_clamp", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_border_clamp), s_GL_OES_texture_border_clamp },
{ "GL_OES_texture_buffer", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_buffer), s_GL_OES_texture_buffer },
{ "GL_OES_texture_storage_multisample_2d_array", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_storage_multisample_2d_array), s_GL_OES_texture_storage_multisample_2d_array },
{ "GL_OES_texture_view", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_view), s_GL_OES_texture_view },
{ "GL_OES_viewport_array", DE_LENGTH_OF_ARRAY(s_GL_OES_viewport_array), s_GL_OES_viewport_array },
{ "GL_OVR_multiview", DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview), s_GL_OVR_multiview },
{ "GL_OVR_multiview_multisampled_render_to_texture", DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview_multisampled_render_to_texture), s_GL_OVR_multiview_multisampled_render_to_texture },
{ "GL_QCOM_alpha_test", DE_LENGTH_OF_ARRAY(s_GL_QCOM_alpha_test), s_GL_QCOM_alpha_test },
{ "GL_QCOM_framebuffer_foveated", DE_LENGTH_OF_ARRAY(s_GL_QCOM_framebuffer_foveated), s_GL_QCOM_framebuffer_foveated },
{ "GL_QCOM_texture_foveated", DE_LENGTH_OF_ARRAY(s_GL_QCOM_texture_foveated), s_GL_QCOM_texture_foveated },
{ "GL_QCOM_shader_framebuffer_fetch_noncoherent", DE_LENGTH_OF_ARRAY(s_GL_QCOM_shader_framebuffer_fetch_noncoherent), s_GL_QCOM_shader_framebuffer_fetch_noncoherent },
};