• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* WARNING: This is auto-generated file. Do not modify, since changes will
2 * be lost! Modify the generating script instead.
3 *
4 * Generated from Khronos EGL API description (egl.xml) revision 3338ed0db494d6a4db7f76627b38f0b1892db096.
5 */
6
7static const char* s_EGL14[] =
8{
9	"eglBindAPI",
10	"eglBindTexImage",
11	"eglChooseConfig",
12	"eglCopyBuffers",
13	"eglCreateContext",
14	"eglCreatePbufferFromClientBuffer",
15	"eglCreatePbufferSurface",
16	"eglCreatePixmapSurface",
17	"eglCreateWindowSurface",
18	"eglDestroyContext",
19	"eglDestroySurface",
20	"eglGetConfigAttrib",
21	"eglGetConfigs",
22	"eglGetCurrentContext",
23	"eglGetCurrentDisplay",
24	"eglGetCurrentSurface",
25	"eglGetDisplay",
26	"eglGetError",
27	"eglGetProcAddress",
28	"eglInitialize",
29	"eglMakeCurrent",
30	"eglQueryAPI",
31	"eglQueryContext",
32	"eglQueryString",
33	"eglQuerySurface",
34	"eglReleaseTexImage",
35	"eglReleaseThread",
36	"eglSurfaceAttrib",
37	"eglSwapBuffers",
38	"eglSwapInterval",
39	"eglTerminate",
40	"eglWaitClient",
41	"eglWaitGL",
42	"eglWaitNative",
43};
44
45static const char* s_EGL15[] =
46{
47	"eglClientWaitSync",
48	"eglCreateImage",
49	"eglCreatePlatformPixmapSurface",
50	"eglCreatePlatformWindowSurface",
51	"eglCreateSync",
52	"eglDestroyImage",
53	"eglDestroySync",
54	"eglGetPlatformDisplay",
55	"eglGetSyncAttrib",
56	"eglWaitSync",
57};
58
59static const char* s_GLES10[] =
60{
61	"glActiveTexture",
62	"glAlphaFunc",
63	"glAlphaFuncx",
64	"glBindBuffer",
65	"glBindTexture",
66	"glBlendFunc",
67	"glBufferData",
68	"glBufferSubData",
69	"glClear",
70	"glClearColor",
71	"glClearColorx",
72	"glClearDepthf",
73	"glClearDepthx",
74	"glClearStencil",
75	"glClientActiveTexture",
76	"glClipPlanef",
77	"glClipPlanex",
78	"glColor4f",
79	"glColor4ub",
80	"glColor4x",
81	"glColorMask",
82	"glColorPointer",
83	"glCompressedTexImage2D",
84	"glCompressedTexSubImage2D",
85	"glCopyTexImage2D",
86	"glCopyTexSubImage2D",
87	"glCullFace",
88	"glDeleteBuffers",
89	"glDeleteTextures",
90	"glDepthFunc",
91	"glDepthMask",
92	"glDepthRangef",
93	"glDepthRangex",
94	"glDisable",
95	"glDisableClientState",
96	"glDrawArrays",
97	"glDrawElements",
98	"glEnable",
99	"glEnableClientState",
100	"glFinish",
101	"glFlush",
102	"glFogf",
103	"glFogfv",
104	"glFogx",
105	"glFogxv",
106	"glFrontFace",
107	"glFrustumf",
108	"glFrustumx",
109	"glGenBuffers",
110	"glGenTextures",
111	"glGetBooleanv",
112	"glGetBufferParameteriv",
113	"glGetClipPlanef",
114	"glGetClipPlanex",
115	"glGetError",
116	"glGetFixedv",
117	"glGetFloatv",
118	"glGetIntegerv",
119	"glGetLightfv",
120	"glGetLightxv",
121	"glGetMaterialfv",
122	"glGetMaterialxv",
123	"glGetPointerv",
124	"glGetString",
125	"glGetTexEnvfv",
126	"glGetTexEnviv",
127	"glGetTexEnvxv",
128	"glGetTexParameterfv",
129	"glGetTexParameteriv",
130	"glGetTexParameterxv",
131	"glHint",
132	"glIsBuffer",
133	"glIsEnabled",
134	"glIsTexture",
135	"glLightModelf",
136	"glLightModelfv",
137	"glLightModelx",
138	"glLightModelxv",
139	"glLightf",
140	"glLightfv",
141	"glLightx",
142	"glLightxv",
143	"glLineWidth",
144	"glLineWidthx",
145	"glLoadIdentity",
146	"glLoadMatrixf",
147	"glLoadMatrixx",
148	"glLogicOp",
149	"glMaterialf",
150	"glMaterialfv",
151	"glMaterialx",
152	"glMaterialxv",
153	"glMatrixMode",
154	"glMultMatrixf",
155	"glMultMatrixx",
156	"glMultiTexCoord4f",
157	"glMultiTexCoord4x",
158	"glNormal3f",
159	"glNormal3x",
160	"glNormalPointer",
161	"glOrthof",
162	"glOrthox",
163	"glPixelStorei",
164	"glPointParameterf",
165	"glPointParameterfv",
166	"glPointParameterx",
167	"glPointParameterxv",
168	"glPointSize",
169	"glPointSizex",
170	"glPolygonOffset",
171	"glPolygonOffsetx",
172	"glPopMatrix",
173	"glPushMatrix",
174	"glReadPixels",
175	"glRotatef",
176	"glRotatex",
177	"glSampleCoverage",
178	"glSampleCoveragex",
179	"glScalef",
180	"glScalex",
181	"glScissor",
182	"glShadeModel",
183	"glStencilFunc",
184	"glStencilMask",
185	"glStencilOp",
186	"glTexCoordPointer",
187	"glTexEnvf",
188	"glTexEnvfv",
189	"glTexEnvi",
190	"glTexEnviv",
191	"glTexEnvx",
192	"glTexEnvxv",
193	"glTexImage2D",
194	"glTexParameterf",
195	"glTexParameterfv",
196	"glTexParameteri",
197	"glTexParameteriv",
198	"glTexParameterx",
199	"glTexParameterxv",
200	"glTexSubImage2D",
201	"glTranslatef",
202	"glTranslatex",
203	"glVertexPointer",
204	"glViewport",
205};
206
207static const char* s_GLES20[] =
208{
209	"glActiveTexture",
210	"glAttachShader",
211	"glBindAttribLocation",
212	"glBindBuffer",
213	"glBindFramebuffer",
214	"glBindRenderbuffer",
215	"glBindTexture",
216	"glBlendColor",
217	"glBlendEquation",
218	"glBlendEquationSeparate",
219	"glBlendFunc",
220	"glBlendFuncSeparate",
221	"glBufferData",
222	"glBufferSubData",
223	"glCheckFramebufferStatus",
224	"glClear",
225	"glClearColor",
226	"glClearDepthf",
227	"glClearStencil",
228	"glColorMask",
229	"glCompileShader",
230	"glCompressedTexImage2D",
231	"glCompressedTexSubImage2D",
232	"glCopyTexImage2D",
233	"glCopyTexSubImage2D",
234	"glCreateProgram",
235	"glCreateShader",
236	"glCullFace",
237	"glDeleteBuffers",
238	"glDeleteFramebuffers",
239	"glDeleteProgram",
240	"glDeleteRenderbuffers",
241	"glDeleteShader",
242	"glDeleteTextures",
243	"glDepthFunc",
244	"glDepthMask",
245	"glDepthRangef",
246	"glDetachShader",
247	"glDisable",
248	"glDisableVertexAttribArray",
249	"glDrawArrays",
250	"glDrawElements",
251	"glEnable",
252	"glEnableVertexAttribArray",
253	"glFinish",
254	"glFlush",
255	"glFramebufferRenderbuffer",
256	"glFramebufferTexture2D",
257	"glFrontFace",
258	"glGenBuffers",
259	"glGenFramebuffers",
260	"glGenRenderbuffers",
261	"glGenTextures",
262	"glGenerateMipmap",
263	"glGetActiveAttrib",
264	"glGetActiveUniform",
265	"glGetAttachedShaders",
266	"glGetAttribLocation",
267	"glGetBooleanv",
268	"glGetBufferParameteriv",
269	"glGetError",
270	"glGetFloatv",
271	"glGetFramebufferAttachmentParameteriv",
272	"glGetIntegerv",
273	"glGetProgramInfoLog",
274	"glGetProgramiv",
275	"glGetRenderbufferParameteriv",
276	"glGetShaderInfoLog",
277	"glGetShaderPrecisionFormat",
278	"glGetShaderSource",
279	"glGetShaderiv",
280	"glGetString",
281	"glGetTexParameterfv",
282	"glGetTexParameteriv",
283	"glGetUniformLocation",
284	"glGetUniformfv",
285	"glGetUniformiv",
286	"glGetVertexAttribPointerv",
287	"glGetVertexAttribfv",
288	"glGetVertexAttribiv",
289	"glHint",
290	"glIsBuffer",
291	"glIsEnabled",
292	"glIsFramebuffer",
293	"glIsProgram",
294	"glIsRenderbuffer",
295	"glIsShader",
296	"glIsTexture",
297	"glLineWidth",
298	"glLinkProgram",
299	"glPixelStorei",
300	"glPolygonOffset",
301	"glReadPixels",
302	"glReleaseShaderCompiler",
303	"glRenderbufferStorage",
304	"glSampleCoverage",
305	"glScissor",
306	"glShaderBinary",
307	"glShaderSource",
308	"glStencilFunc",
309	"glStencilFuncSeparate",
310	"glStencilMask",
311	"glStencilMaskSeparate",
312	"glStencilOp",
313	"glStencilOpSeparate",
314	"glTexImage2D",
315	"glTexParameterf",
316	"glTexParameterfv",
317	"glTexParameteri",
318	"glTexParameteriv",
319	"glTexSubImage2D",
320	"glUniform1f",
321	"glUniform1fv",
322	"glUniform1i",
323	"glUniform1iv",
324	"glUniform2f",
325	"glUniform2fv",
326	"glUniform2i",
327	"glUniform2iv",
328	"glUniform3f",
329	"glUniform3fv",
330	"glUniform3i",
331	"glUniform3iv",
332	"glUniform4f",
333	"glUniform4fv",
334	"glUniform4i",
335	"glUniform4iv",
336	"glUniformMatrix2fv",
337	"glUniformMatrix3fv",
338	"glUniformMatrix4fv",
339	"glUseProgram",
340	"glValidateProgram",
341	"glVertexAttrib1f",
342	"glVertexAttrib1fv",
343	"glVertexAttrib2f",
344	"glVertexAttrib2fv",
345	"glVertexAttrib3f",
346	"glVertexAttrib3fv",
347	"glVertexAttrib4f",
348	"glVertexAttrib4fv",
349	"glVertexAttribPointer",
350	"glViewport",
351};
352
353static const char* s_GLES30[] =
354{
355	"glBeginQuery",
356	"glBeginTransformFeedback",
357	"glBindBufferBase",
358	"glBindBufferRange",
359	"glBindSampler",
360	"glBindTransformFeedback",
361	"glBindVertexArray",
362	"glBlitFramebuffer",
363	"glClearBufferfi",
364	"glClearBufferfv",
365	"glClearBufferiv",
366	"glClearBufferuiv",
367	"glClientWaitSync",
368	"glCompressedTexImage3D",
369	"glCompressedTexSubImage3D",
370	"glCopyBufferSubData",
371	"glCopyTexSubImage3D",
372	"glDeleteQueries",
373	"glDeleteSamplers",
374	"glDeleteSync",
375	"glDeleteTransformFeedbacks",
376	"glDeleteVertexArrays",
377	"glDrawArraysInstanced",
378	"glDrawBuffers",
379	"glDrawElementsInstanced",
380	"glDrawRangeElements",
381	"glEndQuery",
382	"glEndTransformFeedback",
383	"glFenceSync",
384	"glFlushMappedBufferRange",
385	"glFramebufferTextureLayer",
386	"glGenQueries",
387	"glGenSamplers",
388	"glGenTransformFeedbacks",
389	"glGenVertexArrays",
390	"glGetActiveUniformBlockName",
391	"glGetActiveUniformBlockiv",
392	"glGetActiveUniformsiv",
393	"glGetBufferParameteri64v",
394	"glGetBufferPointerv",
395	"glGetFragDataLocation",
396	"glGetInteger64i_v",
397	"glGetInteger64v",
398	"glGetIntegeri_v",
399	"glGetInternalformativ",
400	"glGetProgramBinary",
401	"glGetQueryObjectuiv",
402	"glGetQueryiv",
403	"glGetSamplerParameterfv",
404	"glGetSamplerParameteriv",
405	"glGetStringi",
406	"glGetSynciv",
407	"glGetTransformFeedbackVarying",
408	"glGetUniformBlockIndex",
409	"glGetUniformIndices",
410	"glGetUniformuiv",
411	"glGetVertexAttribIiv",
412	"glGetVertexAttribIuiv",
413	"glInvalidateFramebuffer",
414	"glInvalidateSubFramebuffer",
415	"glIsQuery",
416	"glIsSampler",
417	"glIsSync",
418	"glIsTransformFeedback",
419	"glIsVertexArray",
420	"glMapBufferRange",
421	"glPauseTransformFeedback",
422	"glProgramBinary",
423	"glProgramParameteri",
424	"glReadBuffer",
425	"glRenderbufferStorageMultisample",
426	"glResumeTransformFeedback",
427	"glSamplerParameterf",
428	"glSamplerParameterfv",
429	"glSamplerParameteri",
430	"glSamplerParameteriv",
431	"glTexImage3D",
432	"glTexStorage2D",
433	"glTexStorage3D",
434	"glTexSubImage3D",
435	"glTransformFeedbackVaryings",
436	"glUniform1ui",
437	"glUniform1uiv",
438	"glUniform2ui",
439	"glUniform2uiv",
440	"glUniform3ui",
441	"glUniform3uiv",
442	"glUniform4ui",
443	"glUniform4uiv",
444	"glUniformBlockBinding",
445	"glUniformMatrix2x3fv",
446	"glUniformMatrix2x4fv",
447	"glUniformMatrix3x2fv",
448	"glUniformMatrix3x4fv",
449	"glUniformMatrix4x2fv",
450	"glUniformMatrix4x3fv",
451	"glUnmapBuffer",
452	"glVertexAttribDivisor",
453	"glVertexAttribI4i",
454	"glVertexAttribI4iv",
455	"glVertexAttribI4ui",
456	"glVertexAttribI4uiv",
457	"glVertexAttribIPointer",
458	"glWaitSync",
459};
460
461static const char* s_EGL_ANDROID_blob_cache[] =
462{
463	"eglSetBlobCacheFuncsANDROID",
464};
465
466static const char* s_EGL_ANDROID_create_native_client_buffer[] =
467{
468	"eglCreateNativeClientBufferANDROID",
469};
470
471static const char* s_EGL_ANDROID_get_native_client_buffer[] =
472{
473	"eglGetNativeClientBufferANDROID",
474};
475
476static const char* s_EGL_ANDROID_native_fence_sync[] =
477{
478	"eglDupNativeFenceFDANDROID",
479};
480
481static const char* s_EGL_ANDROID_presentation_time[] =
482{
483	"eglPresentationTimeANDROID",
484};
485
486static const char* s_EGL_ANDROID_get_frame_timestamps[] =
487{
488	"eglGetCompositorTimingSupportedANDROID",
489	"eglGetCompositorTimingANDROID",
490	"eglGetNextFrameIdANDROID",
491	"eglGetFrameTimestampSupportedANDROID",
492	"eglGetFrameTimestampsANDROID",
493};
494
495static const char* s_EGL_ANGLE_query_surface_pointer[] =
496{
497	"eglQuerySurfacePointerANGLE",
498};
499
500static const char* s_EGL_EXT_client_sync[] =
501{
502	"eglClientSignalSyncEXT",
503};
504
505static const char* s_EGL_EXT_device_base[] =
506{
507	"eglQueryDeviceAttribEXT",
508	"eglQueryDeviceStringEXT",
509	"eglQueryDevicesEXT",
510	"eglQueryDisplayAttribEXT",
511};
512
513static const char* s_EGL_EXT_device_enumeration[] =
514{
515	"eglQueryDevicesEXT",
516};
517
518static const char* s_EGL_EXT_device_query[] =
519{
520	"eglQueryDeviceAttribEXT",
521	"eglQueryDeviceStringEXT",
522	"eglQueryDisplayAttribEXT",
523};
524
525static const char* s_EGL_EXT_image_dma_buf_import_modifiers[] =
526{
527	"eglQueryDmaBufFormatsEXT",
528	"eglQueryDmaBufModifiersEXT",
529};
530
531static const char* s_EGL_EXT_output_base[] =
532{
533	"eglGetOutputLayersEXT",
534	"eglGetOutputPortsEXT",
535	"eglOutputLayerAttribEXT",
536	"eglOutputPortAttribEXT",
537	"eglQueryOutputLayerAttribEXT",
538	"eglQueryOutputLayerStringEXT",
539	"eglQueryOutputPortAttribEXT",
540	"eglQueryOutputPortStringEXT",
541};
542
543static const char* s_EGL_EXT_platform_base[] =
544{
545	"eglCreatePlatformPixmapSurfaceEXT",
546	"eglCreatePlatformWindowSurfaceEXT",
547	"eglGetPlatformDisplayEXT",
548};
549
550static const char* s_EGL_EXT_stream_consumer_egloutput[] =
551{
552	"eglStreamConsumerOutputEXT",
553};
554
555static const char* s_EGL_EXT_swap_buffers_with_damage[] =
556{
557	"eglSwapBuffersWithDamageEXT",
558};
559
560static const char* s_EGL_EXT_sync_reuse[] =
561{
562	"eglUnsignalSyncEXT",
563};
564
565static const char* s_EGL_HI_clientpixmap[] =
566{
567	"eglCreatePixmapSurfaceHI",
568};
569
570static const char* s_EGL_KHR_cl_event2[] =
571{
572	"eglCreateSync64KHR",
573};
574
575static const char* s_EGL_KHR_debug[] =
576{
577	"eglDebugMessageControlKHR",
578	"eglLabelObjectKHR",
579	"eglQueryDebugKHR",
580};
581
582static const char* s_EGL_KHR_display_reference[] =
583{
584	"eglQueryDisplayAttribKHR",
585};
586
587static const char* s_EGL_KHR_fence_sync[] =
588{
589	"eglClientWaitSyncKHR",
590	"eglCreateSyncKHR",
591	"eglDestroySyncKHR",
592	"eglGetSyncAttribKHR",
593};
594
595static const char* s_EGL_KHR_image[] =
596{
597	"eglCreateImageKHR",
598	"eglDestroyImageKHR",
599};
600
601static const char* s_EGL_KHR_image_base[] =
602{
603	"eglCreateImageKHR",
604	"eglDestroyImageKHR",
605};
606
607static const char* s_EGL_KHR_lock_surface[] =
608{
609	"eglLockSurfaceKHR",
610	"eglUnlockSurfaceKHR",
611};
612
613static const char* s_EGL_KHR_lock_surface3[] =
614{
615	"eglLockSurfaceKHR",
616	"eglQuerySurface64KHR",
617	"eglUnlockSurfaceKHR",
618};
619
620static const char* s_EGL_KHR_partial_update[] =
621{
622	"eglSetDamageRegionKHR",
623};
624
625static const char* s_EGL_KHR_reusable_sync[] =
626{
627	"eglClientWaitSyncKHR",
628	"eglCreateSyncKHR",
629	"eglDestroySyncKHR",
630	"eglGetSyncAttribKHR",
631	"eglSignalSyncKHR",
632};
633
634static const char* s_EGL_KHR_stream[] =
635{
636	"eglCreateStreamKHR",
637	"eglDestroyStreamKHR",
638	"eglQueryStreamKHR",
639	"eglQueryStreamu64KHR",
640	"eglStreamAttribKHR",
641};
642
643static const char* s_EGL_KHR_stream_attrib[] =
644{
645	"eglCreateStreamAttribKHR",
646	"eglQueryStreamAttribKHR",
647	"eglSetStreamAttribKHR",
648	"eglStreamConsumerAcquireAttribKHR",
649	"eglStreamConsumerReleaseAttribKHR",
650};
651
652static const char* s_EGL_KHR_stream_consumer_gltexture[] =
653{
654	"eglStreamConsumerAcquireKHR",
655	"eglStreamConsumerGLTextureExternalKHR",
656	"eglStreamConsumerReleaseKHR",
657};
658
659static const char* s_EGL_KHR_stream_cross_process_fd[] =
660{
661	"eglCreateStreamFromFileDescriptorKHR",
662	"eglGetStreamFileDescriptorKHR",
663};
664
665static const char* s_EGL_KHR_stream_fifo[] =
666{
667	"eglQueryStreamTimeKHR",
668};
669
670static const char* s_EGL_KHR_stream_producer_eglsurface[] =
671{
672	"eglCreateStreamProducerSurfaceKHR",
673};
674
675static const char* s_EGL_KHR_swap_buffers_with_damage[] =
676{
677	"eglSwapBuffersWithDamageKHR",
678};
679
680static const char* s_EGL_KHR_wait_sync[] =
681{
682	"eglWaitSyncKHR",
683};
684
685static const char* s_EGL_MESA_drm_image[] =
686{
687	"eglCreateDRMImageMESA",
688	"eglExportDRMImageMESA",
689};
690
691static const char* s_EGL_MESA_image_dma_buf_export[] =
692{
693	"eglExportDMABUFImageMESA",
694	"eglExportDMABUFImageQueryMESA",
695};
696
697static const char* s_EGL_NOK_swap_region[] =
698{
699	"eglSwapBuffersRegionNOK",
700};
701
702static const char* s_EGL_NOK_swap_region2[] =
703{
704	"eglSwapBuffersRegion2NOK",
705};
706
707static const char* s_EGL_NV_native_query[] =
708{
709	"eglQueryNativeDisplayNV",
710	"eglQueryNativePixmapNV",
711	"eglQueryNativeWindowNV",
712};
713
714static const char* s_EGL_NV_post_sub_buffer[] =
715{
716	"eglPostSubBufferNV",
717};
718
719static const char* s_EGL_NV_stream_consumer_gltexture_yuv[] =
720{
721	"eglStreamConsumerGLTextureExternalAttribsNV",
722};
723
724static const char* s_EGL_NV_stream_flush[] =
725{
726	"eglStreamFlushNV",
727};
728
729static const char* s_EGL_NV_stream_metadata[] =
730{
731	"eglQueryDisplayAttribNV",
732	"eglQueryStreamMetadataNV",
733	"eglSetStreamMetadataNV",
734};
735
736static const char* s_EGL_NV_stream_reset[] =
737{
738	"eglResetStreamNV",
739};
740
741static const char* s_EGL_NV_stream_sync[] =
742{
743	"eglCreateStreamSyncNV",
744};
745
746static const char* s_EGL_NV_sync[] =
747{
748	"eglClientWaitSyncNV",
749	"eglCreateFenceSyncNV",
750	"eglDestroySyncNV",
751	"eglFenceNV",
752	"eglGetSyncAttribNV",
753	"eglSignalSyncNV",
754};
755
756static const char* s_EGL_NV_system_time[] =
757{
758	"eglGetSystemTimeFrequencyNV",
759	"eglGetSystemTimeNV",
760};
761
762static const char* s_EGL_EXT_compositor[] =
763{
764	"eglCompositorSetContextListEXT",
765	"eglCompositorSetContextAttributesEXT",
766	"eglCompositorSetWindowListEXT",
767	"eglCompositorSetWindowAttributesEXT",
768	"eglCompositorBindTexWindowEXT",
769	"eglCompositorSetSizeEXT",
770	"eglCompositorSwapPolicyEXT",
771};
772
773static const char* s_GL_APPLE_copy_texture_levels[] =
774{
775	"glCopyTextureLevelsAPPLE",
776};
777
778static const char* s_GL_APPLE_framebuffer_multisample[] =
779{
780	"glRenderbufferStorageMultisampleAPPLE",
781	"glResolveMultisampleFramebufferAPPLE",
782};
783
784static const char* s_GL_APPLE_sync[] =
785{
786	"glClientWaitSyncAPPLE",
787	"glDeleteSyncAPPLE",
788	"glFenceSyncAPPLE",
789	"glGetInteger64vAPPLE",
790	"glGetSyncivAPPLE",
791	"glIsSyncAPPLE",
792	"glWaitSyncAPPLE",
793};
794
795static const char* s_GL_EXT_debug_marker[] =
796{
797	"glInsertEventMarkerEXT",
798	"glPopGroupMarkerEXT",
799	"glPushGroupMarkerEXT",
800};
801
802static const char* s_GL_EXT_discard_framebuffer[] =
803{
804	"glDiscardFramebufferEXT",
805};
806
807static const char* s_GL_EXT_map_buffer_range[] =
808{
809	"glFlushMappedBufferRangeEXT",
810	"glMapBufferRangeEXT",
811};
812
813static const char* s_GL_EXT_multi_draw_arrays[] =
814{
815	"glMultiDrawArraysEXT",
816	"glMultiDrawElementsEXT",
817};
818
819static const char* s_GL_EXT_multisampled_render_to_texture[] =
820{
821	"glFramebufferTexture2DMultisampleEXT",
822	"glRenderbufferStorageMultisampleEXT",
823};
824
825static const char* s_GL_EXT_robustness[] =
826{
827	"glGetGraphicsResetStatusEXT",
828	"glGetnUniformfvEXT",
829	"glGetnUniformivEXT",
830	"glReadnPixelsEXT",
831};
832
833static const char* s_GL_EXT_texture_storage[] =
834{
835	"glTexStorage1DEXT",
836	"glTexStorage2DEXT",
837	"glTexStorage3DEXT",
838	"glTextureStorage1DEXT",
839	"glTextureStorage2DEXT",
840	"glTextureStorage3DEXT",
841};
842
843static const char* s_GL_IMG_multisampled_render_to_texture[] =
844{
845	"glFramebufferTexture2DMultisampleIMG",
846	"glRenderbufferStorageMultisampleIMG",
847};
848
849static const char* s_GL_IMG_user_clip_plane[] =
850{
851	"glClipPlanefIMG",
852	"glClipPlanexIMG",
853};
854
855static const char* s_GL_NV_fence[] =
856{
857	"glDeleteFencesNV",
858	"glFinishFenceNV",
859	"glGenFencesNV",
860	"glGetFenceivNV",
861	"glIsFenceNV",
862	"glSetFenceNV",
863	"glTestFenceNV",
864};
865
866static const char* s_GL_OES_EGL_image[] =
867{
868	"glEGLImageTargetRenderbufferStorageOES",
869	"glEGLImageTargetTexture2DOES",
870};
871
872static const char* s_GL_OES_blend_equation_separate[] =
873{
874	"glBlendEquationSeparateOES",
875};
876
877static const char* s_GL_OES_blend_func_separate[] =
878{
879	"glBlendFuncSeparateOES",
880};
881
882static const char* s_GL_OES_blend_subtract[] =
883{
884	"glBlendEquationOES",
885};
886
887static const char* s_GL_OES_draw_texture[] =
888{
889	"glDrawTexfOES",
890	"glDrawTexfvOES",
891	"glDrawTexiOES",
892	"glDrawTexivOES",
893	"glDrawTexsOES",
894	"glDrawTexsvOES",
895	"glDrawTexxOES",
896	"glDrawTexxvOES",
897};
898
899static const char* s_GL_OES_fixed_point[] =
900{
901	"glAlphaFuncxOES",
902	"glClearColorxOES",
903	"glClearDepthxOES",
904	"glClipPlanexOES",
905	"glColor4xOES",
906	"glDepthRangexOES",
907	"glFogxOES",
908	"glFogxvOES",
909	"glFrustumxOES",
910	"glGetClipPlanexOES",
911	"glGetFixedvOES",
912	"glGetLightxvOES",
913	"glGetMaterialxvOES",
914	"glGetTexEnvxvOES",
915	"glGetTexParameterxvOES",
916	"glLightModelxOES",
917	"glLightModelxvOES",
918	"glLightxOES",
919	"glLightxvOES",
920	"glLineWidthxOES",
921	"glLoadMatrixxOES",
922	"glMaterialxOES",
923	"glMaterialxvOES",
924	"glMultMatrixxOES",
925	"glMultiTexCoord4xOES",
926	"glNormal3xOES",
927	"glOrthoxOES",
928	"glPointParameterxOES",
929	"glPointParameterxvOES",
930	"glPointSizexOES",
931	"glPolygonOffsetxOES",
932	"glRotatexOES",
933	"glSampleCoveragexOES",
934	"glScalexOES",
935	"glTexEnvxOES",
936	"glTexEnvxvOES",
937	"glTexParameterxOES",
938	"glTexParameterxvOES",
939	"glTranslatexOES",
940};
941
942static const char* s_GL_OES_framebuffer_object[] =
943{
944	"glBindFramebufferOES",
945	"glBindRenderbufferOES",
946	"glCheckFramebufferStatusOES",
947	"glDeleteFramebuffersOES",
948	"glDeleteRenderbuffersOES",
949	"glFramebufferRenderbufferOES",
950	"glFramebufferTexture2DOES",
951	"glGenFramebuffersOES",
952	"glGenRenderbuffersOES",
953	"glGenerateMipmapOES",
954	"glGetFramebufferAttachmentParameterivOES",
955	"glGetRenderbufferParameterivOES",
956	"glIsFramebufferOES",
957	"glIsRenderbufferOES",
958	"glRenderbufferStorageOES",
959};
960
961static const char* s_GL_OES_mapbuffer[] =
962{
963	"glGetBufferPointervOES",
964	"glMapBufferOES",
965	"glUnmapBufferOES",
966};
967
968static const char* s_GL_OES_matrix_palette[] =
969{
970	"glCurrentPaletteMatrixOES",
971	"glLoadPaletteFromModelViewMatrixOES",
972	"glMatrixIndexPointerOES",
973	"glWeightPointerOES",
974};
975
976static const char* s_GL_OES_point_size_array[] =
977{
978	"glPointSizePointerOES",
979};
980
981static const char* s_GL_OES_query_matrix[] =
982{
983	"glQueryMatrixxOES",
984};
985
986static const char* s_GL_OES_single_precision[] =
987{
988	"glClearDepthfOES",
989	"glClipPlanefOES",
990	"glDepthRangefOES",
991	"glFrustumfOES",
992	"glGetClipPlanefOES",
993	"glOrthofOES",
994};
995
996static const char* s_GL_OES_texture_cube_map[] =
997{
998	"glGetTexGenfvOES",
999	"glGetTexGenivOES",
1000	"glGetTexGenxvOES",
1001	"glTexGenfOES",
1002	"glTexGenfvOES",
1003	"glTexGeniOES",
1004	"glTexGenivOES",
1005	"glTexGenxOES",
1006	"glTexGenxvOES",
1007};
1008
1009static const char* s_GL_OES_vertex_array_object[] =
1010{
1011	"glBindVertexArrayOES",
1012	"glDeleteVertexArraysOES",
1013	"glGenVertexArraysOES",
1014	"glIsVertexArrayOES",
1015};
1016
1017static const char* s_GL_QCOM_driver_control[] =
1018{
1019	"glDisableDriverControlQCOM",
1020	"glEnableDriverControlQCOM",
1021	"glGetDriverControlStringQCOM",
1022	"glGetDriverControlsQCOM",
1023};
1024
1025static const char* s_GL_QCOM_extended_get[] =
1026{
1027	"glExtGetBufferPointervQCOM",
1028	"glExtGetBuffersQCOM",
1029	"glExtGetFramebuffersQCOM",
1030	"glExtGetRenderbuffersQCOM",
1031	"glExtGetTexLevelParameterivQCOM",
1032	"glExtGetTexSubImageQCOM",
1033	"glExtGetTexturesQCOM",
1034	"glExtTexObjectStateOverrideiQCOM",
1035};
1036
1037static const char* s_GL_QCOM_extended_get2[] =
1038{
1039	"glExtGetProgramBinarySourceQCOM",
1040	"glExtGetProgramsQCOM",
1041	"glExtGetShadersQCOM",
1042	"glExtIsProgramBinaryQCOM",
1043};
1044
1045static const char* s_GL_QCOM_tiled_rendering[] =
1046{
1047	"glEndTilingQCOM",
1048	"glStartTilingQCOM",
1049};
1050
1051static const char* s_GL_AMD_framebuffer_multisample_advanced[] =
1052{
1053	"glNamedRenderbufferStorageMultisampleAdvancedAMD",
1054	"glRenderbufferStorageMultisampleAdvancedAMD",
1055};
1056
1057static const char* s_GL_AMD_performance_monitor[] =
1058{
1059	"glBeginPerfMonitorAMD",
1060	"glDeletePerfMonitorsAMD",
1061	"glEndPerfMonitorAMD",
1062	"glGenPerfMonitorsAMD",
1063	"glGetPerfMonitorCounterDataAMD",
1064	"glGetPerfMonitorCounterInfoAMD",
1065	"glGetPerfMonitorCounterStringAMD",
1066	"glGetPerfMonitorCountersAMD",
1067	"glGetPerfMonitorGroupStringAMD",
1068	"glGetPerfMonitorGroupsAMD",
1069	"glSelectPerfMonitorCountersAMD",
1070};
1071
1072static const char* s_GL_ANGLE_framebuffer_blit[] =
1073{
1074	"glBlitFramebufferANGLE",
1075};
1076
1077static const char* s_GL_ANGLE_framebuffer_multisample[] =
1078{
1079	"glRenderbufferStorageMultisampleANGLE",
1080};
1081
1082static const char* s_GL_ANGLE_instanced_arrays[] =
1083{
1084	"glDrawArraysInstancedANGLE",
1085	"glDrawElementsInstancedANGLE",
1086	"glVertexAttribDivisorANGLE",
1087};
1088
1089static const char* s_GL_ANGLE_translated_shader_source[] =
1090{
1091	"glGetTranslatedShaderSourceANGLE",
1092};
1093
1094static const char* s_GL_EXT_EGL_image_storage[] =
1095{
1096	"glEGLImageTargetTexStorageEXT",
1097	"glEGLImageTargetTextureStorageEXT",
1098};
1099
1100static const char* s_GL_EXT_base_instance[] =
1101{
1102	"glDrawArraysInstancedBaseInstanceEXT",
1103	"glDrawElementsInstancedBaseInstanceEXT",
1104	"glDrawElementsInstancedBaseVertexBaseInstanceEXT",
1105};
1106
1107static const char* s_GL_EXT_blend_func_extended[] =
1108{
1109	"glBindFragDataLocationEXT",
1110	"glBindFragDataLocationIndexedEXT",
1111	"glGetFragDataIndexEXT",
1112	"glGetProgramResourceLocationIndexEXT",
1113};
1114
1115static const char* s_GL_EXT_buffer_storage[] =
1116{
1117	"glBufferStorageEXT",
1118};
1119
1120static const char* s_GL_EXT_clear_texture[] =
1121{
1122	"glClearTexImageEXT",
1123	"glClearTexSubImageEXT",
1124};
1125
1126static const char* s_GL_EXT_clip_control[] =
1127{
1128	"glClipControlEXT",
1129};
1130
1131static const char* s_GL_EXT_copy_image[] =
1132{
1133	"glCopyImageSubDataEXT",
1134};
1135
1136static const char* s_GL_EXT_debug_label[] =
1137{
1138	"glGetObjectLabelEXT",
1139	"glLabelObjectEXT",
1140};
1141
1142static const char* s_GL_EXT_disjoint_timer_query[] =
1143{
1144	"glBeginQueryEXT",
1145	"glDeleteQueriesEXT",
1146	"glEndQueryEXT",
1147	"glGenQueriesEXT",
1148	"glGetQueryObjecti64vEXT",
1149	"glGetQueryObjectivEXT",
1150	"glGetQueryObjectui64vEXT",
1151	"glGetQueryObjectuivEXT",
1152	"glGetQueryivEXT",
1153	"glIsQueryEXT",
1154	"glQueryCounterEXT",
1155};
1156
1157static const char* s_GL_EXT_draw_buffers[] =
1158{
1159	"glDrawBuffersEXT",
1160};
1161
1162static const char* s_GL_EXT_draw_buffers_indexed[] =
1163{
1164	"glBlendEquationSeparateiEXT",
1165	"glBlendEquationiEXT",
1166	"glBlendFuncSeparateiEXT",
1167	"glBlendFunciEXT",
1168	"glColorMaskiEXT",
1169	"glDisableiEXT",
1170	"glEnableiEXT",
1171	"glIsEnablediEXT",
1172};
1173
1174static const char* s_GL_EXT_draw_elements_base_vertex[] =
1175{
1176	"glDrawElementsBaseVertexEXT",
1177	"glDrawElementsInstancedBaseVertexEXT",
1178	"glDrawRangeElementsBaseVertexEXT",
1179	"glMultiDrawElementsBaseVertexEXT",
1180};
1181
1182static const char* s_GL_EXT_draw_instanced[] =
1183{
1184	"glDrawArraysInstancedEXT",
1185	"glDrawElementsInstancedEXT",
1186};
1187
1188static const char* s_GL_EXT_draw_transform_feedback[] =
1189{
1190	"glDrawTransformFeedbackEXT",
1191	"glDrawTransformFeedbackInstancedEXT",
1192};
1193
1194static const char* s_GL_EXT_external_buffer[] =
1195{
1196	"glBufferStorageExternalEXT",
1197	"glNamedBufferStorageExternalEXT",
1198};
1199
1200static const char* s_GL_EXT_geometry_shader[] =
1201{
1202	"glFramebufferTextureEXT",
1203};
1204
1205static const char* s_GL_EXT_instanced_arrays[] =
1206{
1207	"glDrawArraysInstancedEXT",
1208	"glDrawElementsInstancedEXT",
1209	"glVertexAttribDivisorEXT",
1210};
1211
1212static const char* s_GL_EXT_memory_object[] =
1213{
1214	"glBufferStorageMemEXT",
1215	"glCreateMemoryObjectsEXT",
1216	"glDeleteMemoryObjectsEXT",
1217	"glGetMemoryObjectParameterivEXT",
1218	"glGetUnsignedBytevEXT",
1219	"glGetUnsignedBytei_vEXT",
1220	"glIsMemoryObjectEXT",
1221	"glMemoryObjectParameterivEXT",
1222	"glNamedBufferStorageMemEXT",
1223	"glTexStorageMem2DEXT",
1224	"glTexStorageMem2DMultisampleEXT",
1225	"glTexStorageMem3DEXT",
1226	"glTexStorageMem3DMultisampleEXT",
1227	"glTextureStorageMem2DEXT",
1228	"glTextureStorageMem2DMultisampleEXT",
1229	"glTextureStorageMem3DEXT",
1230	"glTextureStorageMem3DMultisampleEXT",
1231};
1232
1233static const char* s_GL_EXT_memory_object_fd[] =
1234{
1235	"glImportMemoryFdEXT",
1236};
1237
1238static const char* s_GL_EXT_memory_object_win32[] =
1239{
1240	"glImportMemoryWin32HandleEXT",
1241	"glImportMemoryWin32NameEXT",
1242};
1243
1244static const char* s_GL_EXT_multi_draw_indirect[] =
1245{
1246	"glMultiDrawArraysIndirectEXT",
1247	"glMultiDrawElementsIndirectEXT",
1248};
1249
1250static const char* s_GL_EXT_multiview_draw_buffers[] =
1251{
1252	"glDrawBuffersIndexedEXT",
1253	"glGetIntegeri_vEXT",
1254	"glReadBufferIndexedEXT",
1255};
1256
1257static const char* s_GL_EXT_occlusion_query_boolean[] =
1258{
1259	"glBeginQueryEXT",
1260	"glDeleteQueriesEXT",
1261	"glEndQueryEXT",
1262	"glGenQueriesEXT",
1263	"glGetQueryObjectuivEXT",
1264	"glGetQueryivEXT",
1265	"glIsQueryEXT",
1266};
1267
1268static const char* s_GL_EXT_polygon_offset_clamp[] =
1269{
1270	"glPolygonOffsetClampEXT",
1271};
1272
1273static const char* s_GL_EXT_primitive_bounding_box[] =
1274{
1275	"glPrimitiveBoundingBoxEXT",
1276};
1277
1278static const char* s_GL_EXT_raster_multisample[] =
1279{
1280	"glRasterSamplesEXT",
1281};
1282
1283static const char* s_GL_EXT_semaphore[] =
1284{
1285	"glDeleteSemaphoresEXT",
1286	"glGenSemaphoresEXT",
1287	"glGetSemaphoreParameterui64vEXT",
1288	"glGetUnsignedBytevEXT",
1289	"glGetUnsignedBytei_vEXT",
1290	"glIsSemaphoreEXT",
1291	"glSemaphoreParameterui64vEXT",
1292	"glSignalSemaphoreEXT",
1293	"glWaitSemaphoreEXT",
1294};
1295
1296static const char* s_GL_EXT_semaphore_fd[] =
1297{
1298	"glImportSemaphoreFdEXT",
1299};
1300
1301static const char* s_GL_EXT_semaphore_win32[] =
1302{
1303	"glImportSemaphoreWin32HandleEXT",
1304	"glImportSemaphoreWin32NameEXT",
1305};
1306
1307static const char* s_GL_EXT_separate_shader_objects[] =
1308{
1309	"glActiveShaderProgramEXT",
1310	"glBindProgramPipelineEXT",
1311	"glCreateShaderProgramvEXT",
1312	"glDeleteProgramPipelinesEXT",
1313	"glGenProgramPipelinesEXT",
1314	"glGetProgramPipelineInfoLogEXT",
1315	"glGetProgramPipelineivEXT",
1316	"glIsProgramPipelineEXT",
1317	"glProgramParameteriEXT",
1318	"glProgramUniform1fEXT",
1319	"glProgramUniform1fvEXT",
1320	"glProgramUniform1iEXT",
1321	"glProgramUniform1ivEXT",
1322	"glProgramUniform1uiEXT",
1323	"glProgramUniform1uivEXT",
1324	"glProgramUniform2fEXT",
1325	"glProgramUniform2fvEXT",
1326	"glProgramUniform2iEXT",
1327	"glProgramUniform2ivEXT",
1328	"glProgramUniform2uiEXT",
1329	"glProgramUniform2uivEXT",
1330	"glProgramUniform3fEXT",
1331	"glProgramUniform3fvEXT",
1332	"glProgramUniform3iEXT",
1333	"glProgramUniform3ivEXT",
1334	"glProgramUniform3uiEXT",
1335	"glProgramUniform3uivEXT",
1336	"glProgramUniform4fEXT",
1337	"glProgramUniform4fvEXT",
1338	"glProgramUniform4iEXT",
1339	"glProgramUniform4ivEXT",
1340	"glProgramUniform4uiEXT",
1341	"glProgramUniform4uivEXT",
1342	"glProgramUniformMatrix2fvEXT",
1343	"glProgramUniformMatrix2x3fvEXT",
1344	"glProgramUniformMatrix2x4fvEXT",
1345	"glProgramUniformMatrix3fvEXT",
1346	"glProgramUniformMatrix3x2fvEXT",
1347	"glProgramUniformMatrix3x4fvEXT",
1348	"glProgramUniformMatrix4fvEXT",
1349	"glProgramUniformMatrix4x2fvEXT",
1350	"glProgramUniformMatrix4x3fvEXT",
1351	"glUseProgramStagesEXT",
1352	"glValidateProgramPipelineEXT",
1353};
1354
1355static const char* s_GL_EXT_shader_framebuffer_fetch_non_coherent[] =
1356{
1357	"glFramebufferFetchBarrierEXT",
1358};
1359
1360static const char* s_GL_EXT_shader_pixel_local_storage2[] =
1361{
1362	"glClearPixelLocalStorageuiEXT",
1363	"glFramebufferPixelLocalStorageSizeEXT",
1364	"glGetFramebufferPixelLocalStorageSizeEXT",
1365};
1366
1367static const char* s_GL_EXT_sparse_texture[] =
1368{
1369	"glTexPageCommitmentEXT",
1370};
1371
1372static const char* s_GL_EXT_tessellation_shader[] =
1373{
1374	"glPatchParameteriEXT",
1375};
1376
1377static const char* s_GL_EXT_texture_border_clamp[] =
1378{
1379	"glGetSamplerParameterIivEXT",
1380	"glGetSamplerParameterIuivEXT",
1381	"glGetTexParameterIivEXT",
1382	"glGetTexParameterIuivEXT",
1383	"glSamplerParameterIivEXT",
1384	"glSamplerParameterIuivEXT",
1385	"glTexParameterIivEXT",
1386	"glTexParameterIuivEXT",
1387};
1388
1389static const char* s_GL_EXT_texture_buffer[] =
1390{
1391	"glTexBufferEXT",
1392	"glTexBufferRangeEXT",
1393};
1394
1395static const char* s_GL_EXT_texture_view[] =
1396{
1397	"glTextureViewEXT",
1398};
1399
1400static const char* s_GL_EXT_win32_keyed_mutex[] =
1401{
1402	"glAcquireKeyedMutexWin32EXT",
1403	"glReleaseKeyedMutexWin32EXT",
1404};
1405
1406static const char* s_GL_EXT_window_rectangles[] =
1407{
1408	"glWindowRectanglesEXT",
1409};
1410
1411static const char* s_GL_IMG_bindless_texture[] =
1412{
1413	"glGetTextureHandleIMG",
1414	"glGetTextureSamplerHandleIMG",
1415	"glProgramUniformHandleui64IMG",
1416	"glProgramUniformHandleui64vIMG",
1417	"glUniformHandleui64IMG",
1418	"glUniformHandleui64vIMG",
1419};
1420
1421static const char* s_GL_IMG_framebuffer_downsample[] =
1422{
1423	"glFramebufferTexture2DDownsampleIMG",
1424	"glFramebufferTextureLayerDownsampleIMG",
1425};
1426
1427static const char* s_GL_INTEL_framebuffer_CMAA[] =
1428{
1429	"glApplyFramebufferAttachmentCMAAINTEL",
1430};
1431
1432static const char* s_GL_INTEL_performance_query[] =
1433{
1434	"glBeginPerfQueryINTEL",
1435	"glCreatePerfQueryINTEL",
1436	"glDeletePerfQueryINTEL",
1437	"glEndPerfQueryINTEL",
1438	"glGetFirstPerfQueryIdINTEL",
1439	"glGetNextPerfQueryIdINTEL",
1440	"glGetPerfCounterInfoINTEL",
1441	"glGetPerfQueryDataINTEL",
1442	"glGetPerfQueryIdByNameINTEL",
1443	"glGetPerfQueryInfoINTEL",
1444};
1445
1446static const char* s_GL_KHR_blend_equation_advanced[] =
1447{
1448	"glBlendBarrierKHR",
1449};
1450
1451static const char* s_GL_KHR_debug[] =
1452{
1453	"glDebugMessageCallbackKHR",
1454	"glDebugMessageControlKHR",
1455	"glDebugMessageInsertKHR",
1456	"glGetDebugMessageLogKHR",
1457	"glGetObjectLabelKHR",
1458	"glGetObjectPtrLabelKHR",
1459	"glGetPointervKHR",
1460	"glObjectLabelKHR",
1461	"glObjectPtrLabelKHR",
1462	"glPopDebugGroupKHR",
1463	"glPushDebugGroupKHR",
1464};
1465
1466static const char* s_GL_KHR_robustness[] =
1467{
1468	"glGetGraphicsResetStatusKHR",
1469	"glGetnUniformfvKHR",
1470	"glGetnUniformivKHR",
1471	"glGetnUniformuivKHR",
1472	"glReadnPixelsKHR",
1473};
1474
1475static const char* s_GL_KHR_parallel_shader_compile[] =
1476{
1477	"glMaxShaderCompilerThreadsKHR",
1478};
1479
1480static const char* s_GL_NV_bindless_texture[] =
1481{
1482	"glGetImageHandleNV",
1483	"glGetTextureHandleNV",
1484	"glGetTextureSamplerHandleNV",
1485	"glIsImageHandleResidentNV",
1486	"glIsTextureHandleResidentNV",
1487	"glMakeImageHandleNonResidentNV",
1488	"glMakeImageHandleResidentNV",
1489	"glMakeTextureHandleNonResidentNV",
1490	"glMakeTextureHandleResidentNV",
1491	"glProgramUniformHandleui64NV",
1492	"glProgramUniformHandleui64vNV",
1493	"glUniformHandleui64NV",
1494	"glUniformHandleui64vNV",
1495};
1496
1497static const char* s_GL_NV_blend_equation_advanced[] =
1498{
1499	"glBlendBarrierNV",
1500	"glBlendParameteriNV",
1501};
1502
1503static const char* s_GL_NV_clip_space_w_scaling[] =
1504{
1505	"glViewportPositionWScaleNV",
1506};
1507
1508static const char* s_GL_NV_conditional_render[] =
1509{
1510	"glBeginConditionalRenderNV",
1511	"glEndConditionalRenderNV",
1512};
1513
1514static const char* s_GL_NV_conservative_raster[] =
1515{
1516	"glSubpixelPrecisionBiasNV",
1517};
1518
1519static const char* s_GL_NV_conservative_raster_pre_snap_triangles[] =
1520{
1521	"glConservativeRasterParameteriNV",
1522};
1523
1524static const char* s_GL_NV_copy_buffer[] =
1525{
1526	"glCopyBufferSubDataNV",
1527};
1528
1529static const char* s_GL_NV_coverage_sample[] =
1530{
1531	"glCoverageMaskNV",
1532	"glCoverageOperationNV",
1533};
1534
1535static const char* s_GL_NV_draw_buffers[] =
1536{
1537	"glDrawBuffersNV",
1538};
1539
1540static const char* s_GL_NV_draw_instanced[] =
1541{
1542	"glDrawArraysInstancedNV",
1543	"glDrawElementsInstancedNV",
1544};
1545
1546static const char* s_GL_NV_draw_vulkan_image[] =
1547{
1548	"glDrawVkImageNV",
1549	"glGetVkProcAddrNV",
1550	"glWaitVkSemaphoreNV",
1551	"glSignalVkSemaphoreNV",
1552	"glSignalVkFenceNV",
1553};
1554
1555static const char* s_GL_NV_fragment_coverage_to_color[] =
1556{
1557	"glFragmentCoverageColorNV",
1558};
1559
1560static const char* s_GL_NV_framebuffer_blit[] =
1561{
1562	"glBlitFramebufferNV",
1563};
1564
1565static const char* s_GL_NV_framebuffer_mixed_samples[] =
1566{
1567	"glCoverageModulationNV",
1568	"glCoverageModulationTableNV",
1569	"glGetCoverageModulationTableNV",
1570	"glRasterSamplesEXT",
1571};
1572
1573static const char* s_GL_NV_framebuffer_multisample[] =
1574{
1575	"glRenderbufferStorageMultisampleNV",
1576};
1577
1578static const char* s_GL_NV_gpu_shader5[] =
1579{
1580	"glGetUniformi64vNV",
1581	"glProgramUniform1i64NV",
1582	"glProgramUniform1i64vNV",
1583	"glProgramUniform1ui64NV",
1584	"glProgramUniform1ui64vNV",
1585	"glProgramUniform2i64NV",
1586	"glProgramUniform2i64vNV",
1587	"glProgramUniform2ui64NV",
1588	"glProgramUniform2ui64vNV",
1589	"glProgramUniform3i64NV",
1590	"glProgramUniform3i64vNV",
1591	"glProgramUniform3ui64NV",
1592	"glProgramUniform3ui64vNV",
1593	"glProgramUniform4i64NV",
1594	"glProgramUniform4i64vNV",
1595	"glProgramUniform4ui64NV",
1596	"glProgramUniform4ui64vNV",
1597	"glUniform1i64NV",
1598	"glUniform1i64vNV",
1599	"glUniform1ui64NV",
1600	"glUniform1ui64vNV",
1601	"glUniform2i64NV",
1602	"glUniform2i64vNV",
1603	"glUniform2ui64NV",
1604	"glUniform2ui64vNV",
1605	"glUniform3i64NV",
1606	"glUniform3i64vNV",
1607	"glUniform3ui64NV",
1608	"glUniform3ui64vNV",
1609	"glUniform4i64NV",
1610	"glUniform4i64vNV",
1611	"glUniform4ui64NV",
1612	"glUniform4ui64vNV",
1613};
1614
1615static const char* s_GL_NV_instanced_arrays[] =
1616{
1617	"glVertexAttribDivisorNV",
1618};
1619
1620static const char* s_GL_NV_internalformat_sample_query[] =
1621{
1622	"glGetInternalformatSampleivNV",
1623};
1624
1625static const char* s_GL_NV_memory_attachment[] =
1626{
1627	"glBufferAttachMemoryNV",
1628	"glGetMemoryObjectDetachedResourcesuivNV",
1629	"glNamedBufferAttachMemoryNV",
1630	"glResetMemoryObjectParameterNV",
1631	"glTexAttachMemoryNV",
1632	"glTextureAttachMemoryNV",
1633};
1634
1635static const char* s_GL_NV_non_square_matrices[] =
1636{
1637	"glUniformMatrix2x3fvNV",
1638	"glUniformMatrix2x4fvNV",
1639	"glUniformMatrix3x2fvNV",
1640	"glUniformMatrix3x4fvNV",
1641	"glUniformMatrix4x2fvNV",
1642	"glUniformMatrix4x3fvNV",
1643};
1644
1645static const char* s_GL_NV_path_rendering[] =
1646{
1647	"glCopyPathNV",
1648	"glCoverFillPathInstancedNV",
1649	"glCoverFillPathNV",
1650	"glCoverStrokePathInstancedNV",
1651	"glCoverStrokePathNV",
1652	"glDeletePathsNV",
1653	"glGenPathsNV",
1654	"glGetPathCommandsNV",
1655	"glGetPathCoordsNV",
1656	"glGetPathDashArrayNV",
1657	"glGetPathLengthNV",
1658	"glGetPathMetricRangeNV",
1659	"glGetPathMetricsNV",
1660	"glGetPathParameterfvNV",
1661	"glGetPathParameterivNV",
1662	"glGetPathSpacingNV",
1663	"glGetProgramResourcefvNV",
1664	"glInterpolatePathsNV",
1665	"glIsPathNV",
1666	"glIsPointInFillPathNV",
1667	"glIsPointInStrokePathNV",
1668	"glMatrixFrustumEXT",
1669	"glMatrixLoad3x2fNV",
1670	"glMatrixLoad3x3fNV",
1671	"glMatrixLoadIdentityEXT",
1672	"glMatrixLoadTranspose3x3fNV",
1673	"glMatrixLoadTransposedEXT",
1674	"glMatrixLoadTransposefEXT",
1675	"glMatrixLoaddEXT",
1676	"glMatrixLoadfEXT",
1677	"glMatrixMult3x2fNV",
1678	"glMatrixMult3x3fNV",
1679	"glMatrixMultTranspose3x3fNV",
1680	"glMatrixMultTransposedEXT",
1681	"glMatrixMultTransposefEXT",
1682	"glMatrixMultdEXT",
1683	"glMatrixMultfEXT",
1684	"glMatrixOrthoEXT",
1685	"glMatrixPopEXT",
1686	"glMatrixPushEXT",
1687	"glMatrixRotatedEXT",
1688	"glMatrixRotatefEXT",
1689	"glMatrixScaledEXT",
1690	"glMatrixScalefEXT",
1691	"glMatrixTranslatedEXT",
1692	"glMatrixTranslatefEXT",
1693	"glPathCommandsNV",
1694	"glPathCoordsNV",
1695	"glPathCoverDepthFuncNV",
1696	"glPathDashArrayNV",
1697	"glPathGlyphIndexArrayNV",
1698	"glPathGlyphIndexRangeNV",
1699	"glPathGlyphRangeNV",
1700	"glPathGlyphsNV",
1701	"glPathMemoryGlyphIndexArrayNV",
1702	"glPathParameterfNV",
1703	"glPathParameterfvNV",
1704	"glPathParameteriNV",
1705	"glPathParameterivNV",
1706	"glPathStencilDepthOffsetNV",
1707	"glPathStencilFuncNV",
1708	"glPathStringNV",
1709	"glPathSubCommandsNV",
1710	"glPathSubCoordsNV",
1711	"glPointAlongPathNV",
1712	"glProgramPathFragmentInputGenNV",
1713	"glStencilFillPathInstancedNV",
1714	"glStencilFillPathNV",
1715	"glStencilStrokePathInstancedNV",
1716	"glStencilStrokePathNV",
1717	"glStencilThenCoverFillPathInstancedNV",
1718	"glStencilThenCoverFillPathNV",
1719	"glStencilThenCoverStrokePathInstancedNV",
1720	"glStencilThenCoverStrokePathNV",
1721	"glTransformPathNV",
1722	"glWeightPathsNV",
1723};
1724
1725static const char* s_GL_NV_polygon_mode[] =
1726{
1727	"glPolygonModeNV",
1728};
1729
1730static const char* s_GL_NV_read_buffer[] =
1731{
1732	"glReadBufferNV",
1733};
1734
1735static const char* s_GL_NV_sample_locations[] =
1736{
1737	"glFramebufferSampleLocationsfvNV",
1738	"glNamedFramebufferSampleLocationsfvNV",
1739	"glResolveDepthValuesNV",
1740};
1741
1742static const char* s_GL_NV_scissor_exclusive[] =
1743{
1744	"glScissorExclusiveArrayvNV",
1745	"glScissorExclusiveNV",
1746};
1747
1748static const char* s_GL_NV_viewport_array[] =
1749{
1750	"glDepthRangeArrayfvNV",
1751	"glDepthRangeIndexedfNV",
1752	"glDisableiNV",
1753	"glEnableiNV",
1754	"glGetFloati_vNV",
1755	"glIsEnablediNV",
1756	"glScissorArrayvNV",
1757	"glScissorIndexedNV",
1758	"glScissorIndexedvNV",
1759	"glViewportArrayvNV",
1760	"glViewportIndexedfNV",
1761	"glViewportIndexedfvNV",
1762};
1763
1764static const char* s_GL_NV_viewport_swizzle[] =
1765{
1766	"glViewportSwizzleNV",
1767};
1768
1769static const char* s_GL_OES_copy_image[] =
1770{
1771	"glCopyImageSubDataOES",
1772};
1773
1774static const char* s_GL_OES_draw_buffers_indexed[] =
1775{
1776	"glBlendEquationSeparateiOES",
1777	"glBlendEquationiOES",
1778	"glBlendFuncSeparateiOES",
1779	"glBlendFunciOES",
1780	"glColorMaskiOES",
1781	"glDisableiOES",
1782	"glEnableiOES",
1783	"glIsEnablediOES",
1784};
1785
1786static const char* s_GL_OES_draw_elements_base_vertex[] =
1787{
1788	"glDrawElementsBaseVertexOES",
1789	"glDrawElementsInstancedBaseVertexOES",
1790	"glDrawRangeElementsBaseVertexOES",
1791	"glMultiDrawElementsBaseVertexEXT",
1792};
1793
1794static const char* s_GL_OES_geometry_shader[] =
1795{
1796	"glFramebufferTextureOES",
1797};
1798
1799static const char* s_GL_OES_get_program_binary[] =
1800{
1801	"glGetProgramBinaryOES",
1802	"glProgramBinaryOES",
1803};
1804
1805static const char* s_GL_OES_primitive_bounding_box[] =
1806{
1807	"glPrimitiveBoundingBoxOES",
1808};
1809
1810static const char* s_GL_OES_sample_shading[] =
1811{
1812	"glMinSampleShadingOES",
1813};
1814
1815static const char* s_GL_OES_tessellation_shader[] =
1816{
1817	"glPatchParameteriOES",
1818};
1819
1820static const char* s_GL_OES_texture_3D[] =
1821{
1822	"glCompressedTexImage3DOES",
1823	"glCompressedTexSubImage3DOES",
1824	"glCopyTexSubImage3DOES",
1825	"glFramebufferTexture3DOES",
1826	"glTexImage3DOES",
1827	"glTexSubImage3DOES",
1828};
1829
1830static const char* s_GL_OES_texture_border_clamp[] =
1831{
1832	"glGetSamplerParameterIivOES",
1833	"glGetSamplerParameterIuivOES",
1834	"glGetTexParameterIivOES",
1835	"glGetTexParameterIuivOES",
1836	"glSamplerParameterIivOES",
1837	"glSamplerParameterIuivOES",
1838	"glTexParameterIivOES",
1839	"glTexParameterIuivOES",
1840};
1841
1842static const char* s_GL_OES_texture_buffer[] =
1843{
1844	"glTexBufferOES",
1845	"glTexBufferRangeOES",
1846};
1847
1848static const char* s_GL_OES_texture_storage_multisample_2d_array[] =
1849{
1850	"glTexStorage3DMultisampleOES",
1851};
1852
1853static const char* s_GL_OES_texture_view[] =
1854{
1855	"glTextureViewOES",
1856};
1857
1858static const char* s_GL_OES_viewport_array[] =
1859{
1860	"glDepthRangeArrayfvOES",
1861	"glDepthRangeIndexedfOES",
1862	"glDisableiOES",
1863	"glEnableiOES",
1864	"glGetFloati_vOES",
1865	"glIsEnablediOES",
1866	"glScissorArrayvOES",
1867	"glScissorIndexedOES",
1868	"glScissorIndexedvOES",
1869	"glViewportArrayvOES",
1870	"glViewportIndexedfOES",
1871	"glViewportIndexedfvOES",
1872};
1873
1874static const char* s_GL_OVR_multiview[] =
1875{
1876	"glFramebufferTextureMultiviewOVR",
1877};
1878
1879static const char* s_GL_OVR_multiview_multisampled_render_to_texture[] =
1880{
1881	"glFramebufferTextureMultisampleMultiviewOVR",
1882};
1883
1884static const char* s_GL_QCOM_alpha_test[] =
1885{
1886	"glAlphaFuncQCOM",
1887};
1888
1889static const char* s_GL_QCOM_framebuffer_foveated[] =
1890{
1891	"glFramebufferFoveationConfigQCOM",
1892	"glFramebufferFoveationParametersQCOM",
1893};
1894
1895static const char* s_GL_QCOM_texture_foveated[] =
1896{
1897	"glTextureFoveationParametersQCOM",
1898};
1899
1900static const char* s_GL_QCOM_shader_framebuffer_fetch_noncoherent[] =
1901{
1902	"glFramebufferFetchBarrierQCOM",
1903};
1904
1905static const struct
1906{
1907	const char*			name;
1908	const int			numFunctions;
1909	const char* const*	functions;
1910} s_extensions[] =
1911{
1912	{ "EGL_ANDROID_blob_cache",								DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_blob_cache),							s_EGL_ANDROID_blob_cache							},
1913	{ "EGL_ANDROID_create_native_client_buffer",			DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_create_native_client_buffer),			s_EGL_ANDROID_create_native_client_buffer			},
1914	{ "EGL_ANDROID_get_native_client_buffer",				DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_get_native_client_buffer),				s_EGL_ANDROID_get_native_client_buffer				},
1915	{ "EGL_ANDROID_native_fence_sync",						DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_native_fence_sync),					s_EGL_ANDROID_native_fence_sync						},
1916	{ "EGL_ANDROID_presentation_time",						DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_presentation_time),					s_EGL_ANDROID_presentation_time						},
1917	{ "EGL_ANDROID_get_frame_timestamps",					DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_get_frame_timestamps),					s_EGL_ANDROID_get_frame_timestamps					},
1918	{ "EGL_ANGLE_query_surface_pointer",					DE_LENGTH_OF_ARRAY(s_EGL_ANGLE_query_surface_pointer),					s_EGL_ANGLE_query_surface_pointer					},
1919	{ "EGL_EXT_client_sync",								DE_LENGTH_OF_ARRAY(s_EGL_EXT_client_sync),								s_EGL_EXT_client_sync								},
1920	{ "EGL_EXT_device_base",								DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_base),								s_EGL_EXT_device_base								},
1921	{ "EGL_EXT_device_enumeration",							DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_enumeration),						s_EGL_EXT_device_enumeration						},
1922	{ "EGL_EXT_device_query",								DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_query),								s_EGL_EXT_device_query								},
1923	{ "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			},
1924	{ "EGL_EXT_output_base",								DE_LENGTH_OF_ARRAY(s_EGL_EXT_output_base),								s_EGL_EXT_output_base								},
1925	{ "EGL_EXT_platform_base",								DE_LENGTH_OF_ARRAY(s_EGL_EXT_platform_base),							s_EGL_EXT_platform_base								},
1926	{ "EGL_EXT_stream_consumer_egloutput",					DE_LENGTH_OF_ARRAY(s_EGL_EXT_stream_consumer_egloutput),				s_EGL_EXT_stream_consumer_egloutput					},
1927	{ "EGL_EXT_swap_buffers_with_damage",					DE_LENGTH_OF_ARRAY(s_EGL_EXT_swap_buffers_with_damage),					s_EGL_EXT_swap_buffers_with_damage					},
1928	{ "EGL_EXT_sync_reuse",									DE_LENGTH_OF_ARRAY(s_EGL_EXT_sync_reuse),								s_EGL_EXT_sync_reuse								},
1929	{ "EGL_HI_clientpixmap",								DE_LENGTH_OF_ARRAY(s_EGL_HI_clientpixmap),								s_EGL_HI_clientpixmap								},
1930	{ "EGL_KHR_cl_event2",									DE_LENGTH_OF_ARRAY(s_EGL_KHR_cl_event2),								s_EGL_KHR_cl_event2									},
1931	{ "EGL_KHR_debug",										DE_LENGTH_OF_ARRAY(s_EGL_KHR_debug),									s_EGL_KHR_debug										},
1932	{ "EGL_KHR_display_reference",							DE_LENGTH_OF_ARRAY(s_EGL_KHR_display_reference),						s_EGL_KHR_display_reference							},
1933	{ "EGL_KHR_fence_sync",									DE_LENGTH_OF_ARRAY(s_EGL_KHR_fence_sync),								s_EGL_KHR_fence_sync								},
1934	{ "EGL_KHR_image",										DE_LENGTH_OF_ARRAY(s_EGL_KHR_image),									s_EGL_KHR_image										},
1935	{ "EGL_KHR_image_base",									DE_LENGTH_OF_ARRAY(s_EGL_KHR_image_base),								s_EGL_KHR_image_base								},
1936	{ "EGL_KHR_lock_surface",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface),								s_EGL_KHR_lock_surface								},
1937	{ "EGL_KHR_lock_surface3",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface3),							s_EGL_KHR_lock_surface3								},
1938	{ "EGL_KHR_partial_update",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_partial_update),							s_EGL_KHR_partial_update							},
1939	{ "EGL_KHR_reusable_sync",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_reusable_sync),							s_EGL_KHR_reusable_sync								},
1940	{ "EGL_KHR_stream",										DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream),									s_EGL_KHR_stream									},
1941	{ "EGL_KHR_stream_attrib",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_attrib),							s_EGL_KHR_stream_attrib								},
1942	{ "EGL_KHR_stream_consumer_gltexture",					DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_consumer_gltexture),				s_EGL_KHR_stream_consumer_gltexture					},
1943	{ "EGL_KHR_stream_cross_process_fd",					DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_cross_process_fd),					s_EGL_KHR_stream_cross_process_fd					},
1944	{ "EGL_KHR_stream_fifo",								DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_fifo),								s_EGL_KHR_stream_fifo								},
1945	{ "EGL_KHR_stream_producer_eglsurface",					DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_producer_eglsurface),				s_EGL_KHR_stream_producer_eglsurface				},
1946	{ "EGL_KHR_swap_buffers_with_damage",					DE_LENGTH_OF_ARRAY(s_EGL_KHR_swap_buffers_with_damage),					s_EGL_KHR_swap_buffers_with_damage					},
1947	{ "EGL_KHR_wait_sync",									DE_LENGTH_OF_ARRAY(s_EGL_KHR_wait_sync),								s_EGL_KHR_wait_sync									},
1948	{ "EGL_MESA_drm_image",									DE_LENGTH_OF_ARRAY(s_EGL_MESA_drm_image),								s_EGL_MESA_drm_image								},
1949	{ "EGL_MESA_image_dma_buf_export",						DE_LENGTH_OF_ARRAY(s_EGL_MESA_image_dma_buf_export),					s_EGL_MESA_image_dma_buf_export						},
1950	{ "EGL_NOK_swap_region",								DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region),								s_EGL_NOK_swap_region								},
1951	{ "EGL_NOK_swap_region2",								DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region2),								s_EGL_NOK_swap_region2								},
1952	{ "EGL_NV_native_query",								DE_LENGTH_OF_ARRAY(s_EGL_NV_native_query),								s_EGL_NV_native_query								},
1953	{ "EGL_NV_post_sub_buffer",								DE_LENGTH_OF_ARRAY(s_EGL_NV_post_sub_buffer),							s_EGL_NV_post_sub_buffer							},
1954	{ "EGL_NV_stream_consumer_gltexture_yuv",				DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_consumer_gltexture_yuv),				s_EGL_NV_stream_consumer_gltexture_yuv				},
1955	{ "EGL_NV_stream_flush",								DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_flush),								s_EGL_NV_stream_flush								},
1956	{ "EGL_NV_stream_metadata",								DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_metadata),							s_EGL_NV_stream_metadata							},
1957	{ "EGL_NV_stream_reset",								DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_reset),								s_EGL_NV_stream_reset								},
1958	{ "EGL_NV_stream_sync",									DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_sync),								s_EGL_NV_stream_sync								},
1959	{ "EGL_NV_sync",										DE_LENGTH_OF_ARRAY(s_EGL_NV_sync),										s_EGL_NV_sync										},
1960	{ "EGL_NV_system_time",									DE_LENGTH_OF_ARRAY(s_EGL_NV_system_time),								s_EGL_NV_system_time								},
1961	{ "EGL_EXT_compositor",									DE_LENGTH_OF_ARRAY(s_EGL_EXT_compositor),								s_EGL_EXT_compositor								},
1962	{ "GL_APPLE_copy_texture_levels",						DE_LENGTH_OF_ARRAY(s_GL_APPLE_copy_texture_levels),						s_GL_APPLE_copy_texture_levels						},
1963	{ "GL_APPLE_framebuffer_multisample",					DE_LENGTH_OF_ARRAY(s_GL_APPLE_framebuffer_multisample),					s_GL_APPLE_framebuffer_multisample					},
1964	{ "GL_APPLE_sync",										DE_LENGTH_OF_ARRAY(s_GL_APPLE_sync),									s_GL_APPLE_sync										},
1965	{ "GL_EXT_debug_marker",								DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_marker),								s_GL_EXT_debug_marker								},
1966	{ "GL_EXT_discard_framebuffer",							DE_LENGTH_OF_ARRAY(s_GL_EXT_discard_framebuffer),						s_GL_EXT_discard_framebuffer						},
1967	{ "GL_EXT_map_buffer_range",							DE_LENGTH_OF_ARRAY(s_GL_EXT_map_buffer_range),							s_GL_EXT_map_buffer_range							},
1968	{ "GL_EXT_multi_draw_arrays",							DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_arrays),							s_GL_EXT_multi_draw_arrays							},
1969	{ "GL_EXT_multisampled_render_to_texture",				DE_LENGTH_OF_ARRAY(s_GL_EXT_multisampled_render_to_texture),			s_GL_EXT_multisampled_render_to_texture				},
1970	{ "GL_EXT_robustness",									DE_LENGTH_OF_ARRAY(s_GL_EXT_robustness),								s_GL_EXT_robustness									},
1971	{ "GL_EXT_texture_storage",								DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_storage),							s_GL_EXT_texture_storage							},
1972	{ "GL_IMG_multisampled_render_to_texture",				DE_LENGTH_OF_ARRAY(s_GL_IMG_multisampled_render_to_texture),			s_GL_IMG_multisampled_render_to_texture				},
1973	{ "GL_IMG_user_clip_plane",								DE_LENGTH_OF_ARRAY(s_GL_IMG_user_clip_plane),							s_GL_IMG_user_clip_plane							},
1974	{ "GL_NV_fence",										DE_LENGTH_OF_ARRAY(s_GL_NV_fence),										s_GL_NV_fence										},
1975	{ "GL_OES_EGL_image",									DE_LENGTH_OF_ARRAY(s_GL_OES_EGL_image),									s_GL_OES_EGL_image									},
1976	{ "GL_OES_blend_equation_separate",						DE_LENGTH_OF_ARRAY(s_GL_OES_blend_equation_separate),					s_GL_OES_blend_equation_separate					},
1977	{ "GL_OES_blend_func_separate",							DE_LENGTH_OF_ARRAY(s_GL_OES_blend_func_separate),						s_GL_OES_blend_func_separate						},
1978	{ "GL_OES_blend_subtract",								DE_LENGTH_OF_ARRAY(s_GL_OES_blend_subtract),							s_GL_OES_blend_subtract								},
1979	{ "GL_OES_draw_texture",								DE_LENGTH_OF_ARRAY(s_GL_OES_draw_texture),								s_GL_OES_draw_texture								},
1980	{ "GL_OES_fixed_point",									DE_LENGTH_OF_ARRAY(s_GL_OES_fixed_point),								s_GL_OES_fixed_point								},
1981	{ "GL_OES_framebuffer_object",							DE_LENGTH_OF_ARRAY(s_GL_OES_framebuffer_object),						s_GL_OES_framebuffer_object							},
1982	{ "GL_OES_mapbuffer",									DE_LENGTH_OF_ARRAY(s_GL_OES_mapbuffer),									s_GL_OES_mapbuffer									},
1983	{ "GL_OES_matrix_palette",								DE_LENGTH_OF_ARRAY(s_GL_OES_matrix_palette),							s_GL_OES_matrix_palette								},
1984	{ "GL_OES_point_size_array",							DE_LENGTH_OF_ARRAY(s_GL_OES_point_size_array),							s_GL_OES_point_size_array							},
1985	{ "GL_OES_query_matrix",								DE_LENGTH_OF_ARRAY(s_GL_OES_query_matrix),								s_GL_OES_query_matrix								},
1986	{ "GL_OES_single_precision",							DE_LENGTH_OF_ARRAY(s_GL_OES_single_precision),							s_GL_OES_single_precision							},
1987	{ "GL_OES_texture_cube_map",							DE_LENGTH_OF_ARRAY(s_GL_OES_texture_cube_map),							s_GL_OES_texture_cube_map							},
1988	{ "GL_OES_vertex_array_object",							DE_LENGTH_OF_ARRAY(s_GL_OES_vertex_array_object),						s_GL_OES_vertex_array_object						},
1989	{ "GL_QCOM_driver_control",								DE_LENGTH_OF_ARRAY(s_GL_QCOM_driver_control),							s_GL_QCOM_driver_control							},
1990	{ "GL_QCOM_extended_get",								DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get),								s_GL_QCOM_extended_get								},
1991	{ "GL_QCOM_extended_get2",								DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get2),							s_GL_QCOM_extended_get2								},
1992	{ "GL_QCOM_tiled_rendering",							DE_LENGTH_OF_ARRAY(s_GL_QCOM_tiled_rendering),							s_GL_QCOM_tiled_rendering							},
1993	{ "GL_AMD_framebuffer_multisample_advanced",			DE_LENGTH_OF_ARRAY(s_GL_AMD_framebuffer_multisample_advanced),			s_GL_AMD_framebuffer_multisample_advanced			},
1994	{ "GL_AMD_performance_monitor",							DE_LENGTH_OF_ARRAY(s_GL_AMD_performance_monitor),						s_GL_AMD_performance_monitor						},
1995	{ "GL_ANGLE_framebuffer_blit",							DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_blit),						s_GL_ANGLE_framebuffer_blit							},
1996	{ "GL_ANGLE_framebuffer_multisample",					DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_multisample),					s_GL_ANGLE_framebuffer_multisample					},
1997	{ "GL_ANGLE_instanced_arrays",							DE_LENGTH_OF_ARRAY(s_GL_ANGLE_instanced_arrays),						s_GL_ANGLE_instanced_arrays							},
1998	{ "GL_ANGLE_translated_shader_source",					DE_LENGTH_OF_ARRAY(s_GL_ANGLE_translated_shader_source),				s_GL_ANGLE_translated_shader_source					},
1999	{ "GL_EXT_EGL_image_storage",							DE_LENGTH_OF_ARRAY(s_GL_EXT_EGL_image_storage),							s_GL_EXT_EGL_image_storage							},
2000	{ "GL_EXT_base_instance",								DE_LENGTH_OF_ARRAY(s_GL_EXT_base_instance),								s_GL_EXT_base_instance								},
2001	{ "GL_EXT_blend_func_extended",							DE_LENGTH_OF_ARRAY(s_GL_EXT_blend_func_extended),						s_GL_EXT_blend_func_extended						},
2002	{ "GL_EXT_buffer_storage",								DE_LENGTH_OF_ARRAY(s_GL_EXT_buffer_storage),							s_GL_EXT_buffer_storage								},
2003	{ "GL_EXT_clear_texture",								DE_LENGTH_OF_ARRAY(s_GL_EXT_clear_texture),								s_GL_EXT_clear_texture								},
2004	{ "GL_EXT_clip_control",								DE_LENGTH_OF_ARRAY(s_GL_EXT_clip_control),								s_GL_EXT_clip_control								},
2005	{ "GL_EXT_copy_image",									DE_LENGTH_OF_ARRAY(s_GL_EXT_copy_image),								s_GL_EXT_copy_image									},
2006	{ "GL_EXT_debug_label",									DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_label),								s_GL_EXT_debug_label								},
2007	{ "GL_EXT_disjoint_timer_query",						DE_LENGTH_OF_ARRAY(s_GL_EXT_disjoint_timer_query),						s_GL_EXT_disjoint_timer_query						},
2008	{ "GL_EXT_draw_buffers",								DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers),								s_GL_EXT_draw_buffers								},
2009	{ "GL_EXT_draw_buffers_indexed",						DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers_indexed),						s_GL_EXT_draw_buffers_indexed						},
2010	{ "GL_EXT_draw_elements_base_vertex",					DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_elements_base_vertex),					s_GL_EXT_draw_elements_base_vertex					},
2011	{ "GL_EXT_draw_instanced",								DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_instanced),							s_GL_EXT_draw_instanced								},
2012	{ "GL_EXT_draw_transform_feedback",						DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_transform_feedback),					s_GL_EXT_draw_transform_feedback					},
2013	{ "GL_EXT_external_buffer",								DE_LENGTH_OF_ARRAY(s_GL_EXT_external_buffer),							s_GL_EXT_external_buffer							},
2014	{ "GL_EXT_geometry_shader",								DE_LENGTH_OF_ARRAY(s_GL_EXT_geometry_shader),							s_GL_EXT_geometry_shader							},
2015	{ "GL_EXT_instanced_arrays",							DE_LENGTH_OF_ARRAY(s_GL_EXT_instanced_arrays),							s_GL_EXT_instanced_arrays							},
2016	{ "GL_EXT_memory_object",								DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object),								s_GL_EXT_memory_object								},
2017	{ "GL_EXT_memory_object_fd",							DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_fd),							s_GL_EXT_memory_object_fd							},
2018	{ "GL_EXT_memory_object_win32",							DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_win32),						s_GL_EXT_memory_object_win32						},
2019	{ "GL_EXT_multi_draw_indirect",							DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_indirect),						s_GL_EXT_multi_draw_indirect						},
2020	{ "GL_EXT_multiview_draw_buffers",						DE_LENGTH_OF_ARRAY(s_GL_EXT_multiview_draw_buffers),					s_GL_EXT_multiview_draw_buffers						},
2021	{ "GL_EXT_occlusion_query_boolean",						DE_LENGTH_OF_ARRAY(s_GL_EXT_occlusion_query_boolean),					s_GL_EXT_occlusion_query_boolean					},
2022	{ "GL_EXT_polygon_offset_clamp",						DE_LENGTH_OF_ARRAY(s_GL_EXT_polygon_offset_clamp),						s_GL_EXT_polygon_offset_clamp						},
2023	{ "GL_EXT_primitive_bounding_box",						DE_LENGTH_OF_ARRAY(s_GL_EXT_primitive_bounding_box),					s_GL_EXT_primitive_bounding_box						},
2024	{ "GL_EXT_raster_multisample",							DE_LENGTH_OF_ARRAY(s_GL_EXT_raster_multisample),						s_GL_EXT_raster_multisample							},
2025	{ "GL_EXT_semaphore",									DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore),									s_GL_EXT_semaphore									},
2026	{ "GL_EXT_semaphore_fd",								DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_fd),								s_GL_EXT_semaphore_fd								},
2027	{ "GL_EXT_semaphore_win32",								DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_win32),							s_GL_EXT_semaphore_win32							},
2028	{ "GL_EXT_separate_shader_objects",						DE_LENGTH_OF_ARRAY(s_GL_EXT_separate_shader_objects),					s_GL_EXT_separate_shader_objects					},
2029	{ "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		},
2030	{ "GL_EXT_shader_pixel_local_storage2",					DE_LENGTH_OF_ARRAY(s_GL_EXT_shader_pixel_local_storage2),				s_GL_EXT_shader_pixel_local_storage2				},
2031	{ "GL_EXT_sparse_texture",								DE_LENGTH_OF_ARRAY(s_GL_EXT_sparse_texture),							s_GL_EXT_sparse_texture								},
2032	{ "GL_EXT_tessellation_shader",							DE_LENGTH_OF_ARRAY(s_GL_EXT_tessellation_shader),						s_GL_EXT_tessellation_shader						},
2033	{ "GL_EXT_texture_border_clamp",						DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_border_clamp),						s_GL_EXT_texture_border_clamp						},
2034	{ "GL_EXT_texture_buffer",								DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_buffer),							s_GL_EXT_texture_buffer								},
2035	{ "GL_EXT_texture_view",								DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_view),								s_GL_EXT_texture_view								},
2036	{ "GL_EXT_win32_keyed_mutex",							DE_LENGTH_OF_ARRAY(s_GL_EXT_win32_keyed_mutex),							s_GL_EXT_win32_keyed_mutex							},
2037	{ "GL_EXT_window_rectangles",							DE_LENGTH_OF_ARRAY(s_GL_EXT_window_rectangles),							s_GL_EXT_window_rectangles							},
2038	{ "GL_IMG_bindless_texture",							DE_LENGTH_OF_ARRAY(s_GL_IMG_bindless_texture),							s_GL_IMG_bindless_texture							},
2039	{ "GL_IMG_framebuffer_downsample",						DE_LENGTH_OF_ARRAY(s_GL_IMG_framebuffer_downsample),					s_GL_IMG_framebuffer_downsample						},
2040	{ "GL_INTEL_framebuffer_CMAA",							DE_LENGTH_OF_ARRAY(s_GL_INTEL_framebuffer_CMAA),						s_GL_INTEL_framebuffer_CMAA							},
2041	{ "GL_INTEL_performance_query",							DE_LENGTH_OF_ARRAY(s_GL_INTEL_performance_query),						s_GL_INTEL_performance_query						},
2042	{ "GL_KHR_blend_equation_advanced",						DE_LENGTH_OF_ARRAY(s_GL_KHR_blend_equation_advanced),					s_GL_KHR_blend_equation_advanced					},
2043	{ "GL_KHR_debug",										DE_LENGTH_OF_ARRAY(s_GL_KHR_debug),										s_GL_KHR_debug										},
2044	{ "GL_KHR_robustness",									DE_LENGTH_OF_ARRAY(s_GL_KHR_robustness),								s_GL_KHR_robustness									},
2045	{ "GL_KHR_parallel_shader_compile",						DE_LENGTH_OF_ARRAY(s_GL_KHR_parallel_shader_compile),					s_GL_KHR_parallel_shader_compile					},
2046	{ "GL_NV_bindless_texture",								DE_LENGTH_OF_ARRAY(s_GL_NV_bindless_texture),							s_GL_NV_bindless_texture							},
2047	{ "GL_NV_blend_equation_advanced",						DE_LENGTH_OF_ARRAY(s_GL_NV_blend_equation_advanced),					s_GL_NV_blend_equation_advanced						},
2048	{ "GL_NV_clip_space_w_scaling",							DE_LENGTH_OF_ARRAY(s_GL_NV_clip_space_w_scaling),						s_GL_NV_clip_space_w_scaling						},
2049	{ "GL_NV_conditional_render",							DE_LENGTH_OF_ARRAY(s_GL_NV_conditional_render),							s_GL_NV_conditional_render							},
2050	{ "GL_NV_conservative_raster",							DE_LENGTH_OF_ARRAY(s_GL_NV_conservative_raster),						s_GL_NV_conservative_raster							},
2051	{ "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		},
2052	{ "GL_NV_copy_buffer",									DE_LENGTH_OF_ARRAY(s_GL_NV_copy_buffer),								s_GL_NV_copy_buffer									},
2053	{ "GL_NV_coverage_sample",								DE_LENGTH_OF_ARRAY(s_GL_NV_coverage_sample),							s_GL_NV_coverage_sample								},
2054	{ "GL_NV_draw_buffers",									DE_LENGTH_OF_ARRAY(s_GL_NV_draw_buffers),								s_GL_NV_draw_buffers								},
2055	{ "GL_NV_draw_instanced",								DE_LENGTH_OF_ARRAY(s_GL_NV_draw_instanced),								s_GL_NV_draw_instanced								},
2056	{ "GL_NV_draw_vulkan_image",							DE_LENGTH_OF_ARRAY(s_GL_NV_draw_vulkan_image),							s_GL_NV_draw_vulkan_image							},
2057	{ "GL_NV_fragment_coverage_to_color",					DE_LENGTH_OF_ARRAY(s_GL_NV_fragment_coverage_to_color),					s_GL_NV_fragment_coverage_to_color					},
2058	{ "GL_NV_framebuffer_blit",								DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_blit),							s_GL_NV_framebuffer_blit							},
2059	{ "GL_NV_framebuffer_mixed_samples",					DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_mixed_samples),					s_GL_NV_framebuffer_mixed_samples					},
2060	{ "GL_NV_framebuffer_multisample",						DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_multisample),					s_GL_NV_framebuffer_multisample						},
2061	{ "GL_NV_gpu_shader5",									DE_LENGTH_OF_ARRAY(s_GL_NV_gpu_shader5),								s_GL_NV_gpu_shader5									},
2062	{ "GL_NV_instanced_arrays",								DE_LENGTH_OF_ARRAY(s_GL_NV_instanced_arrays),							s_GL_NV_instanced_arrays							},
2063	{ "GL_NV_internalformat_sample_query",					DE_LENGTH_OF_ARRAY(s_GL_NV_internalformat_sample_query),				s_GL_NV_internalformat_sample_query					},
2064	{ "GL_NV_memory_attachment",							DE_LENGTH_OF_ARRAY(s_GL_NV_memory_attachment),							s_GL_NV_memory_attachment							},
2065	{ "GL_NV_non_square_matrices",							DE_LENGTH_OF_ARRAY(s_GL_NV_non_square_matrices),						s_GL_NV_non_square_matrices							},
2066	{ "GL_NV_path_rendering",								DE_LENGTH_OF_ARRAY(s_GL_NV_path_rendering),								s_GL_NV_path_rendering								},
2067	{ "GL_NV_polygon_mode",									DE_LENGTH_OF_ARRAY(s_GL_NV_polygon_mode),								s_GL_NV_polygon_mode								},
2068	{ "GL_NV_read_buffer",									DE_LENGTH_OF_ARRAY(s_GL_NV_read_buffer),								s_GL_NV_read_buffer									},
2069	{ "GL_NV_sample_locations",								DE_LENGTH_OF_ARRAY(s_GL_NV_sample_locations),							s_GL_NV_sample_locations							},
2070	{ "GL_NV_scissor_exclusive",							DE_LENGTH_OF_ARRAY(s_GL_NV_scissor_exclusive),							s_GL_NV_scissor_exclusive							},
2071	{ "GL_NV_viewport_array",								DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_array),								s_GL_NV_viewport_array								},
2072	{ "GL_NV_viewport_swizzle",								DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_swizzle),							s_GL_NV_viewport_swizzle							},
2073	{ "GL_OES_copy_image",									DE_LENGTH_OF_ARRAY(s_GL_OES_copy_image),								s_GL_OES_copy_image									},
2074	{ "GL_OES_draw_buffers_indexed",						DE_LENGTH_OF_ARRAY(s_GL_OES_draw_buffers_indexed),						s_GL_OES_draw_buffers_indexed						},
2075	{ "GL_OES_draw_elements_base_vertex",					DE_LENGTH_OF_ARRAY(s_GL_OES_draw_elements_base_vertex),					s_GL_OES_draw_elements_base_vertex					},
2076	{ "GL_OES_geometry_shader",								DE_LENGTH_OF_ARRAY(s_GL_OES_geometry_shader),							s_GL_OES_geometry_shader							},
2077	{ "GL_OES_get_program_binary",							DE_LENGTH_OF_ARRAY(s_GL_OES_get_program_binary),						s_GL_OES_get_program_binary							},
2078	{ "GL_OES_primitive_bounding_box",						DE_LENGTH_OF_ARRAY(s_GL_OES_primitive_bounding_box),					s_GL_OES_primitive_bounding_box						},
2079	{ "GL_OES_sample_shading",								DE_LENGTH_OF_ARRAY(s_GL_OES_sample_shading),							s_GL_OES_sample_shading								},
2080	{ "GL_OES_tessellation_shader",							DE_LENGTH_OF_ARRAY(s_GL_OES_tessellation_shader),						s_GL_OES_tessellation_shader						},
2081	{ "GL_OES_texture_3D",									DE_LENGTH_OF_ARRAY(s_GL_OES_texture_3D),								s_GL_OES_texture_3D									},
2082	{ "GL_OES_texture_border_clamp",						DE_LENGTH_OF_ARRAY(s_GL_OES_texture_border_clamp),						s_GL_OES_texture_border_clamp						},
2083	{ "GL_OES_texture_buffer",								DE_LENGTH_OF_ARRAY(s_GL_OES_texture_buffer),							s_GL_OES_texture_buffer								},
2084	{ "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		},
2085	{ "GL_OES_texture_view",								DE_LENGTH_OF_ARRAY(s_GL_OES_texture_view),								s_GL_OES_texture_view								},
2086	{ "GL_OES_viewport_array",								DE_LENGTH_OF_ARRAY(s_GL_OES_viewport_array),							s_GL_OES_viewport_array								},
2087	{ "GL_OVR_multiview",									DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview),									s_GL_OVR_multiview									},
2088	{ "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	},
2089	{ "GL_QCOM_alpha_test",									DE_LENGTH_OF_ARRAY(s_GL_QCOM_alpha_test),								s_GL_QCOM_alpha_test								},
2090	{ "GL_QCOM_framebuffer_foveated",						DE_LENGTH_OF_ARRAY(s_GL_QCOM_framebuffer_foveated),						s_GL_QCOM_framebuffer_foveated						},
2091	{ "GL_QCOM_texture_foveated",							DE_LENGTH_OF_ARRAY(s_GL_QCOM_texture_foveated),							s_GL_QCOM_texture_foveated							},
2092	{ "GL_QCOM_shader_framebuffer_fetch_noncoherent",		DE_LENGTH_OF_ARRAY(s_GL_QCOM_shader_framebuffer_fetch_noncoherent),		s_GL_QCOM_shader_framebuffer_fetch_noncoherent		},
2093};
2094