1/* WARNING! THIS IS A PROGRAMMATICALLY GENERATED CODE. DO NOT MODIFY THE CODE,
2 * SINCE THE CHANGES WILL BE LOST! MODIFY THE GENERATING PYTHON INSTEAD.
3 */
4
5const char** getCoreFunctionStrs (void)
6{
7	static const char* funcs[] =
8	{
9		"eglGetError",
10		"eglGetDisplay",
11		"eglInitialize",
12		"eglTerminate",
13		"eglQueryString",
14		"eglGetConfigs",
15		"eglChooseConfig",
16		"eglGetConfigAttrib",
17		"eglCreateWindowSurface",
18		"eglCreatePbufferSurface",
19		"eglCreatePixmapSurface",
20		"eglDestroySurface",
21		"eglQuerySurface",
22		"eglBindAPI",
23		"eglQueryAPI",
24		"eglWaitClient",
25		"eglReleaseThread",
26		"eglCreatePbufferFromClientBuffer",
27		"eglSurfaceAttrib",
28		"eglBindTexImage",
29		"eglReleaseTexImage",
30		"eglSwapInterval",
31		"eglCreateContext",
32		"eglDestroyContext",
33		"eglMakeCurrent",
34		"eglGetCurrentContext",
35		"eglGetCurrentSurface",
36		"eglGetCurrentDisplay",
37		"eglQueryContext",
38		"eglWaitGL",
39		"eglWaitNative",
40		"eglSwapBuffers",
41		"eglCopyBuffers",
42		DE_NULL
43	};
44
45	return funcs;
46}
47
48const char** getGlesFunctionStrs (void)
49{
50	static const char* funcs[] =
51	{
52		"glActiveTexture",
53		"glAlphaFunc",
54		"glAlphaFuncx",
55		"glBindTexture",
56		"glBlendFunc",
57		"glClear",
58		"glClearColor",
59		"glClearColorx",
60		"glClearDepthf",
61		"glClearDepthx",
62		"glClearStencil",
63		"glClientActiveTexture",
64		"glColor4f",
65		"glColor4x",
66		"glColorMask",
67		"glColorPointer",
68		"glCompressedTexImage2D",
69		"glCompressedTexSubImage2D",
70		"glCopyTexImage2D",
71		"glCopyTexSubImage2D",
72		"glCullFace",
73		"glDeleteTextures",
74		"glDepthFunc",
75		"glDepthMask",
76		"glDepthRangef",
77		"glDepthRangex",
78		"glDisable",
79		"glDisableClientState",
80		"glDrawArrays",
81		"glDrawElements",
82		"glEnable",
83		"glEnableClientState",
84		"glFinish",
85		"glFlush",
86		"glFogf",
87		"glFogfv",
88		"glFogx",
89		"glFogxv",
90		"glFrontFace",
91		"glFrustumf",
92		"glFrustumx",
93		"glGenTextures",
94		"glGetError",
95		"glGetIntegerv",
96		"glGetString",
97		"glHint",
98		"glLightModelf",
99		"glLightModelfv",
100		"glLightModelx",
101		"glLightModelxv",
102		"glLightf",
103		"glLightfv",
104		"glLightx",
105		"glLightxv",
106		"glLineWidth",
107		"glLineWidthx",
108		"glLoadIdentity",
109		"glLoadMatrixf",
110		"glLoadMatrixx",
111		"glLogicOp",
112		"glMaterialf",
113		"glMaterialfv",
114		"glMaterialx",
115		"glMaterialxv",
116		"glMatrixMode",
117		"glMultMatrixf",
118		"glMultMatrixx",
119		"glMultiTexCoord4f",
120		"glMultiTexCoord4x",
121		"glNormal3f",
122		"glNormal3x",
123		"glNormalPointer",
124		"glOrthof",
125		"glOrthox",
126		"glPixelStorei",
127		"glPointSize",
128		"glPointSizex",
129		"glPolygonOffset",
130		"glPolygonOffsetx",
131		"glPopMatrix",
132		"glPushMatrix",
133		"glReadPixels",
134		"glRotatef",
135		"glRotatex",
136		"glSampleCoverage",
137		"glSampleCoveragex",
138		"glScalef",
139		"glScalex",
140		"glScissor",
141		"glShadeModel",
142		"glStencilFunc",
143		"glStencilMask",
144		"glStencilOp",
145		"glTexCoordPointer",
146		"glTexEnvf",
147		"glTexEnvfv",
148		"glTexEnvx",
149		"glTexEnvxv",
150		"glTexImage2D",
151		"glTexParameterf",
152		"glTexParameterx",
153		"glTexSubImage2D",
154		"glTranslatef",
155		"glTranslatex",
156		"glVertexPointer",
157		"glViewport",
158		DE_NULL
159	};
160
161	return funcs;
162}
163
164const char** getGles2FunctionStrs (void)
165{
166	static const char* funcs[] =
167	{
168		"glAttachShader",
169		"glBindAttribLocation",
170		"glBindBuffer",
171		"glBindFramebuffer",
172		"glBindRenderbuffer",
173		"glBlendColor",
174		"glBlendEquation",
175		"glBlendEquationSeparate",
176		"glBlendFuncSeparate",
177		"glBufferData",
178		"glBufferSubData",
179		"glCheckFramebufferStatus",
180		"glCompileShader",
181		"glCreateProgram",
182		"glCreateShader",
183		"glDeleteBuffers",
184		"glDeleteFramebuffers",
185		"glDeleteProgram",
186		"glDeleteRenderbuffers",
187		"glDeleteShader",
188		"glDetachShader",
189		"glDisableVertexAttribArray",
190		"glEnableVertexAttribArray",
191		"glFramebufferRenderbuffer",
192		"glFramebufferTexture2D",
193		"glGenBuffers",
194		"glGenerateMipmap",
195		"glGenFramebuffers",
196		"glGenRenderbuffers",
197		"glGetActiveAttrib",
198		"glGetActiveUniform",
199		"glGetAttachedShaders",
200		"glGetAttribLocation",
201		"glGetBooleanv",
202		"glGetBufferParameteriv",
203		"glGetFloatv",
204		"glGetFramebufferAttachmentParameteriv",
205		"glGetProgramiv",
206		"glGetProgramInfoLog",
207		"glGetRenderbufferParameteriv",
208		"glGetShaderiv",
209		"glGetShaderInfoLog",
210		"glGetShaderPrecisionFormat",
211		"glGetShaderSource",
212		"glGetTexParameterfv",
213		"glGetTexParameteriv",
214		"glGetUniformfv",
215		"glGetUniformiv",
216		"glGetUniformLocation",
217		"glGetVertexAttribfv",
218		"glGetVertexAttribiv",
219		"glGetVertexAttribPointerv",
220		"glIsBuffer",
221		"glIsEnabled",
222		"glIsFramebuffer",
223		"glIsProgram",
224		"glIsRenderbuffer",
225		"glIsShader",
226		"glIsTexture",
227		"glLinkProgram",
228		"glReleaseShaderCompiler",
229		"glRenderbufferStorage",
230		"glShaderBinary",
231		"glShaderSource",
232		"glStencilFuncSeparate",
233		"glStencilMaskSeparate",
234		"glStencilOpSeparate",
235		"glTexParameterfv",
236		"glTexParameteri",
237		"glTexParameteriv",
238		"glUniform1f",
239		"glUniform1fv",
240		"glUniform1i",
241		"glUniform1iv",
242		"glUniform2f",
243		"glUniform2fv",
244		"glUniform2i",
245		"glUniform2iv",
246		"glUniform3f",
247		"glUniform3fv",
248		"glUniform3i",
249		"glUniform3iv",
250		"glUniform4f",
251		"glUniform4fv",
252		"glUniform4i",
253		"glUniform4iv",
254		"glUniformMatrix2fv",
255		"glUniformMatrix3fv",
256		"glUniformMatrix4fv",
257		"glUseProgram",
258		"glValidateProgram",
259		"glVertexAttrib1f",
260		"glVertexAttrib1fv",
261		"glVertexAttrib2f",
262		"glVertexAttrib2fv",
263		"glVertexAttrib3f",
264		"glVertexAttrib3fv",
265		"glVertexAttrib4f",
266		"glVertexAttrib4fv",
267		"glVertexAttribPointer",
268		DE_NULL
269	};
270
271	return funcs;
272}
273
274const char** getGles3FunctionStrs (void)
275{
276	static const char* funcs[] =
277	{
278		"glReadBuffer",
279		"glDrawRangeElements",
280		"glTexImage3D",
281		"glTexSubImage3D",
282		"glCopyTexSubImage3D",
283		"glCompressedTexImage3D",
284		"glCompressedTexSubImage3D",
285		"glGenQueries",
286		"glDeleteQueries",
287		"glIsQuery",
288		"glBeginQuery",
289		"glEndQuery",
290		"glGetQueryiv",
291		"glGetQueryObjectuiv",
292		"glUnmapBuffer",
293		"glGetBufferPointerv",
294		"glDrawBuffers",
295		"glUniformMatrix2x3fv",
296		"glUniformMatrix3x2fv",
297		"glUniformMatrix2x4fv",
298		"glUniformMatrix4x2fv",
299		"glUniformMatrix3x4fv",
300		"glUniformMatrix4x3fv",
301		"glBlitFramebuffer",
302		"glRenderbufferStorageMultisample",
303		"glFramebufferTextureLayer",
304		"glMapBufferRange",
305		"glFlushMappedBufferRange",
306		"glBindVertexArray",
307		"glDeleteVertexArrays",
308		"glGenVertexArrays",
309		"glIsVertexArray",
310		"glGetIntegeri_v",
311		"glBeginTransformFeedback",
312		"glEndTransformFeedback",
313		"glBindBufferRange",
314		"glBindBufferBase",
315		"glTransformFeedbackVaryings",
316		"glGetTransformFeedbackVarying",
317		"glVertexAttribIPointer",
318		"glGetVertexAttribIiv",
319		"glGetVertexAttribIuiv",
320		"glVertexAttribI4i",
321		"glVertexAttribI4ui",
322		"glVertexAttribI4iv",
323		"glVertexAttribI4uiv",
324		"glGetUniformuiv",
325		"glGetFragDataLocation",
326		"glUniform1ui",
327		"glUniform2ui",
328		"glUniform3ui",
329		"glUniform4ui",
330		"glUniform1uiv",
331		"glUniform2uiv",
332		"glUniform3uiv",
333		"glUniform4uiv",
334		"glClearBufferiv",
335		"glClearBufferuiv",
336		"glClearBufferfv",
337		"glClearBufferfi",
338		"glGetStringi",
339		"glCopyBufferSubData",
340		"glGetUniformIndices",
341		"glGetActiveUniformsiv",
342		"glGetUniformBlockIndex",
343		"glGetActiveUniformBlockiv",
344		"glGetActiveUniformBlockName",
345		"glUniformBlockBinding",
346		"glDrawArraysInstanced",
347		"glDrawElementsInstanced",
348		"glFenceSync",
349		"glIsSync",
350		"glDeleteSync",
351		"glClientWaitSync",
352		"glWaitSync",
353		"glGetInteger64v",
354		"glGetSynciv",
355		"glGetInteger64i_v",
356		"glGetBufferParameteri64v",
357		"glGenSamplers",
358		"glDeleteSamplers",
359		"glIsSampler",
360		"glBindSampler",
361		"glSamplerParameteri",
362		"glSamplerParameteriv",
363		"glSamplerParameterf",
364		"glSamplerParameterfv",
365		"glGetSamplerParameteriv",
366		"glGetSamplerParameterfv",
367		"glVertexAttribDivisor",
368		"glBindTransformFeedback",
369		"glDeleteTransformFeedbacks",
370		"glGenTransformFeedbacks",
371		"glIsTransformFeedback",
372		"glPauseTransformFeedback",
373		"glResumeTransformFeedback",
374		"glGetProgramBinary",
375		"glProgramBinary",
376		"glProgramParameteri",
377		"glInvalidateFramebuffer",
378		"glInvalidateSubFramebuffer",
379		"glTexStorage2D",
380		"glTexStorage3D",
381		"glGetInternalformativ",
382		DE_NULL
383	};
384
385	return funcs;
386}
387
388const char** getKhrLockSurfaceFuncStrs (void)
389{
390	static const char* funcs[] =
391	{
392		"eglLockSurfaceKHR",
393		"eglUnlockSurfaceKHR",
394		DE_NULL
395	};
396
397	return funcs;
398}
399
400const char** getOesSinglePrecisionFuncStrs (void)
401{
402	static const char* funcs[] =
403	{
404		"glDepthRangefOES",
405		"glFrustumfOES",
406		"glOrthofOES",
407		"glClipPlanefOES",
408		"glGetClipPlanefOES",
409		"glClearDepthfOES",
410		DE_NULL
411	};
412
413	return funcs;
414}
415
416const char** getQcomTiledRenderingFuncStrs (void)
417{
418	static const char* funcs[] =
419	{
420		"glStartTilingQCOM",
421		"glEndTilingQCOM",
422		DE_NULL
423	};
424
425	return funcs;
426}
427
428const char** getNvNativeQueryFuncStrs (void)
429{
430	static const char* funcs[] =
431	{
432		"eglQueryNativeDisplayNV",
433		"eglQueryNativeWindowNV",
434		"eglQueryNativePixmapNV",
435		DE_NULL
436	};
437
438	return funcs;
439}
440
441const char** getMesaDrmImageFuncStrs (void)
442{
443	static const char* funcs[] =
444	{
445		"eglCreateDRMImageMESA",
446		"eglExportDRMImageMESA",
447		DE_NULL
448	};
449
450	return funcs;
451}
452
453const char** getNvFenceFuncStrs (void)
454{
455	static const char* funcs[] =
456	{
457		"glDeleteFencesNV",
458		"glGenFencesNV",
459		"glIsFenceNV",
460		"glTestFenceNV",
461		"glGetFenceivNV",
462		"glFinishFenceNV",
463		"glSetFenceNV",
464		DE_NULL
465	};
466
467	return funcs;
468}
469
470const char** getOesBlendSubtractFuncStrs (void)
471{
472	static const char* funcs[] =
473	{
474		"glBlendEquationOES",
475		DE_NULL
476	};
477
478	return funcs;
479}
480
481const char** getKhrStreamConsumerGltextureFuncStrs (void)
482{
483	static const char* funcs[] =
484	{
485		"eglStreamConsumerGLTextureExternalKHR",
486		"eglStreamConsumerAcquireKHR",
487		"eglStreamConsumerReleaseKHR",
488		DE_NULL
489	};
490
491	return funcs;
492}
493
494const char** getQcomExtendedGet2FuncStrs (void)
495{
496	static const char* funcs[] =
497	{
498		"glExtGetShadersQCOM",
499		"glExtGetProgramsQCOM",
500		"glExtIsProgramBinaryQCOM",
501		"glExtGetProgramBinarySourceQCOM",
502		DE_NULL
503	};
504
505	return funcs;
506}
507
508const char** getExtMultiDrawArraysFuncStrs (void)
509{
510	static const char* funcs[] =
511	{
512		"glMultiDrawArraysEXT",
513		"glMultiDrawElementsEXT",
514		DE_NULL
515	};
516
517	return funcs;
518}
519
520const char** getOesMatrixPaletteFuncStrs (void)
521{
522	static const char* funcs[] =
523	{
524		"glCurrentPaletteMatrixOES",
525		"glLoadPaletteFromModelViewMatrixOES",
526		"glMatrixIndexPointerOES",
527		"glWeightPointerOES",
528		DE_NULL
529	};
530
531	return funcs;
532}
533
534const char** getExtSeparateShaderObjectsFuncStrs (void)
535{
536	static const char* funcs[] =
537	{
538		"glUseProgramStagesEXT",
539		"glActiveShaderProgramEXT",
540		"glCreateShaderProgramvEXT",
541		"glBindProgramPipelineEXT",
542		"glDeleteProgramPipelinesEXT",
543		"glGenProgramPipelinesEXT",
544		"glIsProgramPipelineEXT",
545		"glProgramParameteriEXT",
546		"glGetProgramPipelineivEXT",
547		"glProgramUniform1iEXT",
548		"glProgramUniform2iEXT",
549		"glProgramUniform3iEXT",
550		"glProgramUniform4iEXT",
551		"glProgramUniform1fEXT",
552		"glProgramUniform2fEXT",
553		"glProgramUniform3fEXT",
554		"glProgramUniform4fEXT",
555		"glProgramUniform1ivEXT",
556		"glProgramUniform2ivEXT",
557		"glProgramUniform3ivEXT",
558		"glProgramUniform4ivEXT",
559		"glProgramUniform1fvEXT",
560		"glProgramUniform2fvEXT",
561		"glProgramUniform3fvEXT",
562		"glProgramUniform4fvEXT",
563		"glProgramUniformMatrix2fvEXT",
564		"glProgramUniformMatrix3fvEXT",
565		"glProgramUniformMatrix4fvEXT",
566		"glValidateProgramPipelineEXT",
567		"glGetProgramPipelineInfoLogEXT",
568		DE_NULL
569	};
570
571	return funcs;
572}
573
574const char** getAngleTranslatedShaderSourceFuncStrs (void)
575{
576	static const char* funcs[] =
577	{
578		"glGetTranslatedShaderSourceANGLE",
579		DE_NULL
580	};
581
582	return funcs;
583}
584
585const char** getNvFramebufferMultisampleFuncStrs (void)
586{
587	static const char* funcs[] =
588	{
589		"glRenderbufferStorageMultisampleNV",
590		DE_NULL
591	};
592
593	return funcs;
594}
595
596const char** getNvDrawBuffersFuncStrs (void)
597{
598	static const char* funcs[] =
599	{
600		"glDrawBuffersNV",
601		DE_NULL
602	};
603
604	return funcs;
605}
606
607const char** getOesEglImageFuncStrs (void)
608{
609	static const char* funcs[] =
610	{
611		"glEGLImageTargetTexture2DOES",
612		"glEGLImageTargetRenderbufferStorageOES",
613		DE_NULL
614	};
615
616	return funcs;
617}
618
619const char** getKhrWaitSyncFuncStrs (void)
620{
621	static const char* funcs[] =
622	{
623		"eglWaitSyncKHR",
624		DE_NULL
625	};
626
627	return funcs;
628}
629
630const char** getNvSystemTimeFuncStrs (void)
631{
632	static const char* funcs[] =
633	{
634		"eglGetSystemTimeFrequencyNV",
635		"eglGetSystemTimeNV",
636		DE_NULL
637	};
638
639	return funcs;
640}
641
642const char** getExtRobustnessFuncStrs (void)
643{
644	static const char* funcs[] =
645	{
646		"glGetGraphicsResetStatusEXT",
647		"glReadnPixelsEXT",
648		"glGetnUniformfvEXT",
649		"glGetnUniformivEXT",
650		DE_NULL
651	};
652
653	return funcs;
654}
655
656const char** getKhrImageFuncStrs (void)
657{
658	static const char* funcs[] =
659	{
660		"eglCreateImageKHR",
661		"eglDestroyImageKHR",
662		DE_NULL
663	};
664
665	return funcs;
666}
667
668const char** getNvDrawInstancedFuncStrs (void)
669{
670	static const char* funcs[] =
671	{
672		"glDrawArraysInstancedNV",
673		"glDrawElementsInstancedNV",
674		DE_NULL
675	};
676
677	return funcs;
678}
679
680const char** getImgUserClipPlaneFuncStrs (void)
681{
682	static const char* funcs[] =
683	{
684		"glClipPlanefIMG",
685		"glClipPlanexIMG",
686		DE_NULL
687	};
688
689	return funcs;
690}
691
692const char** getOesQueryMatrixFuncStrs (void)
693{
694	static const char* funcs[] =
695	{
696		"glQueryMatrixxOES",
697		DE_NULL
698	};
699
700	return funcs;
701}
702
703const char** getNvCoverageSampleFuncStrs (void)
704{
705	static const char* funcs[] =
706	{
707		"glCoverageMaskNV",
708		"glCoverageOperationNV",
709		DE_NULL
710	};
711
712	return funcs;
713}
714
715const char** getExtDisjointTimerQueryFuncStrs (void)
716{
717	static const char* funcs[] =
718	{
719		"glGenQueriesEXT",
720		"glDeleteQueriesEXT",
721		"glIsQueryEXT",
722		"glBeginQueryEXT",
723		"glEndQueryEXT",
724		"glQueryCounterEXT",
725		"glGetQueryivEXT",
726		"glGetQueryObjectivEXT",
727		"glGetQueryObjectuivEXT",
728		"glGetQueryObjecti64vEXT",
729		"glGetQueryObjectui64vEXT",
730		DE_NULL
731	};
732
733	return funcs;
734}
735
736const char** getOesVertexArrayObjectFuncStrs (void)
737{
738	static const char* funcs[] =
739	{
740		"glBindVertexArrayOES",
741		"glDeleteVertexArraysOES",
742		"glGenVertexArraysOES",
743		"glIsVertexArrayOES",
744		DE_NULL
745	};
746
747	return funcs;
748}
749
750const char** getKhrReusableSyncFuncStrs (void)
751{
752	static const char* funcs[] =
753	{
754		"eglCreateSyncKHR",
755		"eglDestroySyncKHR",
756		"eglClientWaitSyncKHR",
757		"eglSignalSyncKHR",
758		"eglGetSyncAttribKHR",
759		DE_NULL
760	};
761
762	return funcs;
763}
764
765const char** getExtDebugLabelFuncStrs (void)
766{
767	static const char* funcs[] =
768	{
769		"glLabelObjectEXT",
770		"glGetObjectLabelEXT",
771		DE_NULL
772	};
773
774	return funcs;
775}
776
777const char** getExtMapBufferRangeFuncStrs (void)
778{
779	static const char* funcs[] =
780	{
781		"glMapBufferRangeEXT",
782		"glFlushMappedBufferRangeEXT",
783		DE_NULL
784	};
785
786	return funcs;
787}
788
789const char** getAngleFramebufferMultisampleFuncStrs (void)
790{
791	static const char* funcs[] =
792	{
793		"glRenderbufferStorageMultisampleANGLE",
794		DE_NULL
795	};
796
797	return funcs;
798}
799
800const char** getKhrStreamCrossProcessFdFuncStrs (void)
801{
802	static const char* funcs[] =
803	{
804		"eglGetStreamFileDescriptorKHR",
805		"eglCreateStreamFromFileDescriptorKHR",
806		DE_NULL
807	};
808
809	return funcs;
810}
811
812const char** getExtTextureStorageFuncStrs (void)
813{
814	static const char* funcs[] =
815	{
816		"glTexStorage1DEXT",
817		"glTexStorage2DEXT",
818		"glTexStorage3DEXT",
819		"glTextureStorage1DEXT",
820		"glTextureStorage2DEXT",
821		"glTextureStorage3DEXT",
822		DE_NULL
823	};
824
825	return funcs;
826}
827
828const char** getKhrStreamFifoFuncStrs (void)
829{
830	static const char* funcs[] =
831	{
832		"eglQueryStreamTimeKHR",
833		DE_NULL
834	};
835
836	return funcs;
837}
838
839const char** getOesMapbufferFuncStrs (void)
840{
841	static const char* funcs[] =
842	{
843		"glMapBufferOES",
844		"glUnmapBufferOES",
845		"glGetBufferPointervOES",
846		DE_NULL
847	};
848
849	return funcs;
850}
851
852const char** getNvPostSubBufferFuncStrs (void)
853{
854	static const char* funcs[] =
855	{
856		"eglPostSubBufferNV",
857		DE_NULL
858	};
859
860	return funcs;
861}
862
863const char** getOesTextureCubeMapFuncStrs (void)
864{
865	static const char* funcs[] =
866	{
867		"glTexGenfOES",
868		"glTexGenfvOES",
869		"glTexGeniOES",
870		"glTexGenivOES",
871		"glTexGenxOES",
872		"glTexGenxvOES",
873		"glGetTexGenfvOES",
874		"glGetTexGenivOES",
875		"glGetTexGenxvOES",
876		DE_NULL
877	};
878
879	return funcs;
880}
881
882const char** getKhrStreamProducerEglsurfaceFuncStrs (void)
883{
884	static const char* funcs[] =
885	{
886		"eglCreateStreamProducerSurfaceKHR",
887		DE_NULL
888	};
889
890	return funcs;
891}
892
893const char** getOesBlendEquationSeparateFuncStrs (void)
894{
895	static const char* funcs[] =
896	{
897		"glBlendEquationSeparateOES",
898		DE_NULL
899	};
900
901	return funcs;
902}
903
904const char** getExtDrawBuffersFuncStrs (void)
905{
906	static const char* funcs[] =
907	{
908		"glDrawBuffersEXT",
909		DE_NULL
910	};
911
912	return funcs;
913}
914
915const char** getOesFramebufferObjectFuncStrs (void)
916{
917	static const char* funcs[] =
918	{
919		"glIsRenderbufferOES",
920		"glBindRenderbufferOES",
921		"glDeleteRenderbuffersOES",
922		"glGenRenderbuffersOES",
923		"glRenderbufferStorageOES",
924		"glGetRenderbufferParameterivOES",
925		"glIsFramebufferOES",
926		"glBindFramebufferOES",
927		"glDeleteFramebuffersOES",
928		"glGenFramebuffersOES",
929		"glCheckFramebufferStatusOES",
930		"glFramebufferRenderbufferOES",
931		"glFramebufferTexture2DOES",
932		"glGetFramebufferAttachmentParameterivOES",
933		"glGenerateMipmapOES",
934		DE_NULL
935	};
936
937	return funcs;
938}
939
940const char** getExtDebugMarkerFuncStrs (void)
941{
942	static const char* funcs[] =
943	{
944		"glInsertEventMarkerEXT",
945		"glPushGroupMarkerEXT",
946		"glPopGroupMarkerEXT",
947		DE_NULL
948	};
949
950	return funcs;
951}
952
953const char** getExtMultisampledRenderToTextureFuncStrs (void)
954{
955	static const char* funcs[] =
956	{
957		"glRenderbufferStorageMultisampleEXT",
958		"glFramebufferTexture2DMultisampleEXT",
959		DE_NULL
960	};
961
962	return funcs;
963}
964
965const char** getExtDiscardFramebufferFuncStrs (void)
966{
967	static const char* funcs[] =
968	{
969		"glDiscardFramebufferEXT",
970		DE_NULL
971	};
972
973	return funcs;
974}
975
976const char** getOesFixedPointFuncStrs (void)
977{
978	static const char* funcs[] =
979	{
980		"glAlphaFuncxOES",
981		"glClearColorxOES",
982		"glClearDepthxOES",
983		"glClipPlanexOES",
984		"glColor4xOES",
985		"glDepthRangexOES",
986		"glFogxOES",
987		"glFogxvOES",
988		"glFrustumxOES",
989		"glGetClipPlanexOES",
990		"glGetFixedvOES",
991		"glGetLightxvOES",
992		"glGetMaterialxvOES",
993		"glGetTexEnvxvOES",
994		"glGetTexParameterxvOES",
995		"glLightModelxOES",
996		"glLightModelxvOES",
997		"glLightxOES",
998		"glLightxvOES",
999		"glLineWidthxOES",
1000		"glLoadMatrixxOES",
1001		"glMaterialxOES",
1002		"glMaterialxvOES",
1003		"glMultMatrixxOES",
1004		"glMultiTexCoord4xOES",
1005		"glNormal3xOES",
1006		"glOrthoxOES",
1007		"glPointParameterxOES",
1008		"glPointParameterxvOES",
1009		"glPointSizexOES",
1010		"glPolygonOffsetxOES",
1011		"glRotatexOES",
1012		"glSampleCoveragexOES",
1013		"glScalexOES",
1014		"glTexEnvxOES",
1015		"glTexEnvxvOES",
1016		"glTexParameterxOES",
1017		"glTexParameterxvOES",
1018		"glTranslatexOES",
1019		DE_NULL
1020	};
1021
1022	return funcs;
1023}
1024
1025const char** getImgMultisampledRenderToTextureFuncStrs (void)
1026{
1027	static const char* funcs[] =
1028	{
1029		"glRenderbufferStorageMultisampleIMG",
1030		"glFramebufferTexture2DMultisampleIMG",
1031		DE_NULL
1032	};
1033
1034	return funcs;
1035}
1036
1037const char** getOesGetProgramBinaryFuncStrs (void)
1038{
1039	static const char* funcs[] =
1040	{
1041		"glGetProgramBinaryOES",
1042		"glProgramBinaryOES",
1043		DE_NULL
1044	};
1045
1046	return funcs;
1047}
1048
1049const char** getAppleFramebufferMultisampleFuncStrs (void)
1050{
1051	static const char* funcs[] =
1052	{
1053		"glRenderbufferStorageMultisampleAPPLE",
1054		"glResolveMultisampleFramebufferAPPLE",
1055		DE_NULL
1056	};
1057
1058	return funcs;
1059}
1060
1061const char** getAppleCopyTextureLevelsFuncStrs (void)
1062{
1063	static const char* funcs[] =
1064	{
1065		"glCopyTextureLevelsAPPLE",
1066		DE_NULL
1067	};
1068
1069	return funcs;
1070}
1071
1072const char** getExtMultiviewDrawBuffersFuncStrs (void)
1073{
1074	static const char* funcs[] =
1075	{
1076		"glReadBufferIndexedEXT",
1077		"glDrawBuffersIndexedEXT",
1078		"glGetIntegeri_vEXT",
1079		DE_NULL
1080	};
1081
1082	return funcs;
1083}
1084
1085const char** getOesBlendFuncSeparateFuncStrs (void)
1086{
1087	static const char* funcs[] =
1088	{
1089		"glBlendFuncSeparateOES",
1090		DE_NULL
1091	};
1092
1093	return funcs;
1094}
1095
1096const char** getQcomExtendedGetFuncStrs (void)
1097{
1098	static const char* funcs[] =
1099	{
1100		"glExtGetTexturesQCOM",
1101		"glExtGetBuffersQCOM",
1102		"glExtGetRenderbuffersQCOM",
1103		"glExtGetFramebuffersQCOM",
1104		"glExtGetTexLevelParameterivQCOM",
1105		"glExtTexObjectStateOverrideiQCOM",
1106		"glExtGetTexSubImageQCOM",
1107		"glExtGetBufferPointervQCOM",
1108		DE_NULL
1109	};
1110
1111	return funcs;
1112}
1113
1114const char** getNvFramebufferBlitFuncStrs (void)
1115{
1116	static const char* funcs[] =
1117	{
1118		"glBlitFramebufferNV",
1119		DE_NULL
1120	};
1121
1122	return funcs;
1123}
1124
1125const char** getAndroidBlobCacheFuncStrs (void)
1126{
1127	static const char* funcs[] =
1128	{
1129		"eglSetBlobCacheFuncsANDROID",
1130		DE_NULL
1131	};
1132
1133	return funcs;
1134}
1135
1136const char** getAngleFramebufferBlitFuncStrs (void)
1137{
1138	static const char* funcs[] =
1139	{
1140		"glBlitFramebufferANGLE",
1141		DE_NULL
1142	};
1143
1144	return funcs;
1145}
1146
1147const char** getOesTexture3DFuncStrs (void)
1148{
1149	static const char* funcs[] =
1150	{
1151		"glTexImage3DOES",
1152		"glTexSubImage3DOES",
1153		"glCopyTexSubImage3DOES",
1154		"glCompressedTexImage3DOES",
1155		"glCompressedTexSubImage3DOES",
1156		"glFramebufferTexture3DOES",
1157		DE_NULL
1158	};
1159
1160	return funcs;
1161}
1162
1163const char** getKhrDebugFuncStrs (void)
1164{
1165	static const char* funcs[] =
1166	{
1167		"glDebugMessageControlKHR",
1168		"glDebugMessageInsertKHR",
1169		"glDebugMessageCallbackKHR",
1170		"glGetDebugMessageLogKHR",
1171		"glPushDebugGroupKHR",
1172		"glPopDebugGroupKHR",
1173		"glObjectLabelKHR",
1174		"glGetObjectLabelKHR",
1175		"glObjectPtrLabelKHR",
1176		"glGetObjectPtrLabelKHR",
1177		"glGetPointervKHR",
1178		DE_NULL
1179	};
1180
1181	return funcs;
1182}
1183
1184const char** getQcomAlphaTestFuncStrs (void)
1185{
1186	static const char* funcs[] =
1187	{
1188		"glAlphaFuncQCOM",
1189		DE_NULL
1190	};
1191
1192	return funcs;
1193}
1194
1195const char** getHiClientpixmapFuncStrs (void)
1196{
1197	static const char* funcs[] =
1198	{
1199		"eglCreatePixmapSurfaceHI",
1200		DE_NULL
1201	};
1202
1203	return funcs;
1204}
1205
1206const char** getKhrStreamFuncStrs (void)
1207{
1208	static const char* funcs[] =
1209	{
1210		"eglCreateStreamKHR",
1211		"eglDestroyStreamKHR",
1212		"eglStreamAttribKHR",
1213		"eglQueryStreamKHR",
1214		"eglQueryStreamu64KHR",
1215		DE_NULL
1216	};
1217
1218	return funcs;
1219}
1220
1221const char** getOesDrawTextureFuncStrs (void)
1222{
1223	static const char* funcs[] =
1224	{
1225		"glDrawTexsOES",
1226		"glDrawTexiOES",
1227		"glDrawTexxOES",
1228		"glDrawTexsvOES",
1229		"glDrawTexivOES",
1230		"glDrawTexxvOES",
1231		"glDrawTexfOES",
1232		"glDrawTexfvOES",
1233		DE_NULL
1234	};
1235
1236	return funcs;
1237}
1238
1239const char** getExtOcclusionQueryBooleanFuncStrs (void)
1240{
1241	static const char* funcs[] =
1242	{
1243		"glGenQueriesEXT",
1244		"glDeleteQueriesEXT",
1245		"glIsQueryEXT",
1246		"glBeginQueryEXT",
1247		"glEndQueryEXT",
1248		"glGetQueryivEXT",
1249		"glGetQueryObjectuivEXT",
1250		DE_NULL
1251	};
1252
1253	return funcs;
1254}
1255
1256const char** getAngleQuerySurfacePointerFuncStrs (void)
1257{
1258	static const char* funcs[] =
1259	{
1260		"eglQuerySurfacePointerANGLE",
1261		DE_NULL
1262	};
1263
1264	return funcs;
1265}
1266
1267const char** getNvReadBufferFuncStrs (void)
1268{
1269	static const char* funcs[] =
1270	{
1271		"glReadBufferNV",
1272		DE_NULL
1273	};
1274
1275	return funcs;
1276}
1277
1278const char** getNvInstancedArraysFuncStrs (void)
1279{
1280	static const char* funcs[] =
1281	{
1282		"glVertexAttribDivisorNV",
1283		DE_NULL
1284	};
1285
1286	return funcs;
1287}
1288
1289const char** getAngleInstancedArraysFuncStrs (void)
1290{
1291	static const char* funcs[] =
1292	{
1293		"glDrawArraysInstancedANGLE",
1294		"glDrawElementsInstancedANGLE",
1295		"glVertexAttribDivisorANGLE",
1296		DE_NULL
1297	};
1298
1299	return funcs;
1300}
1301
1302const char** getAmdPerformanceMonitorFuncStrs (void)
1303{
1304	static const char* funcs[] =
1305	{
1306		"glGetPerfMonitorGroupsAMD",
1307		"glGetPerfMonitorCountersAMD",
1308		"glGetPerfMonitorGroupStringAMD",
1309		"glGetPerfMonitorCounterStringAMD",
1310		"glGetPerfMonitorCounterInfoAMD",
1311		"glGenPerfMonitorsAMD",
1312		"glDeletePerfMonitorsAMD",
1313		"glSelectPerfMonitorCountersAMD",
1314		"glBeginPerfMonitorAMD",
1315		"glEndPerfMonitorAMD",
1316		"glGetPerfMonitorCounterDataAMD",
1317		DE_NULL
1318	};
1319
1320	return funcs;
1321}
1322
1323const char** getAndroidNativeFenceSyncFuncStrs (void)
1324{
1325	static const char* funcs[] =
1326	{
1327		"eglDupNativeFenceFDANDROID",
1328		DE_NULL
1329	};
1330
1331	return funcs;
1332}
1333
1334const char** getAppleSyncFuncStrs (void)
1335{
1336	static const char* funcs[] =
1337	{
1338		"glFenceSyncAPPLE",
1339		"glIsSyncAPPLE",
1340		"glDeleteSyncAPPLE",
1341		"glClientWaitSyncAPPLE",
1342		"glWaitSyncAPPLE",
1343		"glGetInteger64vAPPLE",
1344		"glGetSyncivAPPLE",
1345		DE_NULL
1346	};
1347
1348	return funcs;
1349}
1350
1351const char** getNvSyncFuncStrs (void)
1352{
1353	static const char* funcs[] =
1354	{
1355		"eglCreateFenceSyncNV",
1356		"eglDestroySyncNV",
1357		"eglFenceNV",
1358		"eglClientWaitSyncNV",
1359		"eglSignalSyncNV",
1360		"eglGetSyncAttribNV",
1361		DE_NULL
1362	};
1363
1364	return funcs;
1365}
1366
1367const char** getQcomDriverControlFuncStrs (void)
1368{
1369	static const char* funcs[] =
1370	{
1371		"glGetDriverControlsQCOM",
1372		"glGetDriverControlStringQCOM",
1373		"glEnableDriverControlQCOM",
1374		"glDisableDriverControlQCOM",
1375		DE_NULL
1376	};
1377
1378	return funcs;
1379}
1380
1381const char** getExtensionFuncStrs (const std::string& extensionName)
1382{
1383	if (extensionName == "EGL_KHR_lock_surface")
1384		return getKhrLockSurfaceFuncStrs();
1385	else if (extensionName == "GL_OES_single_precision")
1386		return getOesSinglePrecisionFuncStrs();
1387	else if (extensionName == "GL_QCOM_tiled_rendering")
1388		return getQcomTiledRenderingFuncStrs();
1389	else if (extensionName == "EGL_NV_native_query")
1390		return getNvNativeQueryFuncStrs();
1391	else if (extensionName == "EGL_MESA_drm_image")
1392		return getMesaDrmImageFuncStrs();
1393	else if (extensionName == "GL_NV_fence")
1394		return getNvFenceFuncStrs();
1395	else if (extensionName == "GL_OES_blend_subtract")
1396		return getOesBlendSubtractFuncStrs();
1397	else if (extensionName == "EGL_KHR_stream_consumer_gltexture")
1398		return getKhrStreamConsumerGltextureFuncStrs();
1399	else if (extensionName == "GL_QCOM_extended_get2")
1400		return getQcomExtendedGet2FuncStrs();
1401	else if (extensionName == "GL_EXT_multi_draw_arrays")
1402		return getExtMultiDrawArraysFuncStrs();
1403	else if (extensionName == "GL_OES_matrix_palette")
1404		return getOesMatrixPaletteFuncStrs();
1405	else if (extensionName == "GL_EXT_separate_shader_objects")
1406		return getExtSeparateShaderObjectsFuncStrs();
1407	else if (extensionName == "GL_ANGLE_translated_shader_source")
1408		return getAngleTranslatedShaderSourceFuncStrs();
1409	else if (extensionName == "GL_NV_framebuffer_multisample")
1410		return getNvFramebufferMultisampleFuncStrs();
1411	else if (extensionName == "GL_NV_draw_buffers")
1412		return getNvDrawBuffersFuncStrs();
1413	else if (extensionName == "GL_OES_EGL_image")
1414		return getOesEglImageFuncStrs();
1415	else if (extensionName == "EGL_KHR_wait_sync")
1416		return getKhrWaitSyncFuncStrs();
1417	else if (extensionName == "EGL_NV_system_time")
1418		return getNvSystemTimeFuncStrs();
1419	else if (extensionName == "GL_EXT_robustness")
1420		return getExtRobustnessFuncStrs();
1421	else if (extensionName == "EGL_KHR_image")
1422		return getKhrImageFuncStrs();
1423	else if (extensionName == "GL_NV_draw_instanced")
1424		return getNvDrawInstancedFuncStrs();
1425	else if (extensionName == "GL_IMG_user_clip_plane")
1426		return getImgUserClipPlaneFuncStrs();
1427	else if (extensionName == "GL_OES_query_matrix")
1428		return getOesQueryMatrixFuncStrs();
1429	else if (extensionName == "GL_NV_coverage_sample")
1430		return getNvCoverageSampleFuncStrs();
1431	else if (extensionName == "GL_EXT_disjoint_timer_query")
1432		return getExtDisjointTimerQueryFuncStrs();
1433	else if (extensionName == "GL_OES_vertex_array_object")
1434		return getOesVertexArrayObjectFuncStrs();
1435	else if (extensionName == "EGL_KHR_reusable_sync")
1436		return getKhrReusableSyncFuncStrs();
1437	else if (extensionName == "GL_EXT_debug_label")
1438		return getExtDebugLabelFuncStrs();
1439	else if (extensionName == "GL_EXT_map_buffer_range")
1440		return getExtMapBufferRangeFuncStrs();
1441	else if (extensionName == "GL_ANGLE_framebuffer_multisample")
1442		return getAngleFramebufferMultisampleFuncStrs();
1443	else if (extensionName == "EGL_KHR_stream_cross_process_fd")
1444		return getKhrStreamCrossProcessFdFuncStrs();
1445	else if (extensionName == "GL_EXT_texture_storage")
1446		return getExtTextureStorageFuncStrs();
1447	else if (extensionName == "EGL_KHR_stream_fifo")
1448		return getKhrStreamFifoFuncStrs();
1449	else if (extensionName == "GL_OES_mapbuffer")
1450		return getOesMapbufferFuncStrs();
1451	else if (extensionName == "EGL_NV_post_sub_buffer")
1452		return getNvPostSubBufferFuncStrs();
1453	else if (extensionName == "GL_OES_texture_cube_map")
1454		return getOesTextureCubeMapFuncStrs();
1455	else if (extensionName == "EGL_KHR_stream_producer_eglsurface")
1456		return getKhrStreamProducerEglsurfaceFuncStrs();
1457	else if (extensionName == "GL_OES_blend_equation_separate")
1458		return getOesBlendEquationSeparateFuncStrs();
1459	else if (extensionName == "GL_EXT_draw_buffers")
1460		return getExtDrawBuffersFuncStrs();
1461	else if (extensionName == "GL_OES_framebuffer_object")
1462		return getOesFramebufferObjectFuncStrs();
1463	else if (extensionName == "GL_EXT_debug_marker")
1464		return getExtDebugMarkerFuncStrs();
1465	else if (extensionName == "GL_EXT_multisampled_render_to_texture")
1466		return getExtMultisampledRenderToTextureFuncStrs();
1467	else if (extensionName == "GL_EXT_discard_framebuffer")
1468		return getExtDiscardFramebufferFuncStrs();
1469	else if (extensionName == "GL_OES_fixed_point")
1470		return getOesFixedPointFuncStrs();
1471	else if (extensionName == "GL_IMG_multisampled_render_to_texture")
1472		return getImgMultisampledRenderToTextureFuncStrs();
1473	else if (extensionName == "GL_OES_get_program_binary")
1474		return getOesGetProgramBinaryFuncStrs();
1475	else if (extensionName == "GL_APPLE_framebuffer_multisample")
1476		return getAppleFramebufferMultisampleFuncStrs();
1477	else if (extensionName == "GL_APPLE_copy_texture_levels")
1478		return getAppleCopyTextureLevelsFuncStrs();
1479	else if (extensionName == "GL_EXT_multiview_draw_buffers")
1480		return getExtMultiviewDrawBuffersFuncStrs();
1481	else if (extensionName == "GL_OES_blend_func_separate")
1482		return getOesBlendFuncSeparateFuncStrs();
1483	else if (extensionName == "GL_QCOM_extended_get")
1484		return getQcomExtendedGetFuncStrs();
1485	else if (extensionName == "GL_NV_framebuffer_blit")
1486		return getNvFramebufferBlitFuncStrs();
1487	else if (extensionName == "EGL_ANDROID_blob_cache")
1488		return getAndroidBlobCacheFuncStrs();
1489	else if (extensionName == "GL_ANGLE_framebuffer_blit")
1490		return getAngleFramebufferBlitFuncStrs();
1491	else if (extensionName == "GL_OES_texture_3D")
1492		return getOesTexture3DFuncStrs();
1493	else if (extensionName == "GL_KHR_debug")
1494		return getKhrDebugFuncStrs();
1495	else if (extensionName == "GL_QCOM_alpha_test")
1496		return getQcomAlphaTestFuncStrs();
1497	else if (extensionName == "EGL_HI_clientpixmap")
1498		return getHiClientpixmapFuncStrs();
1499	else if (extensionName == "EGL_KHR_stream")
1500		return getKhrStreamFuncStrs();
1501	else if (extensionName == "GL_OES_draw_texture")
1502		return getOesDrawTextureFuncStrs();
1503	else if (extensionName == "GL_EXT_occlusion_query_boolean")
1504		return getExtOcclusionQueryBooleanFuncStrs();
1505	else if (extensionName == "EGL_ANGLE_query_surface_pointer")
1506		return getAngleQuerySurfacePointerFuncStrs();
1507	else if (extensionName == "GL_NV_read_buffer")
1508		return getNvReadBufferFuncStrs();
1509	else if (extensionName == "GL_NV_instanced_arrays")
1510		return getNvInstancedArraysFuncStrs();
1511	else if (extensionName == "GL_ANGLE_instanced_arrays")
1512		return getAngleInstancedArraysFuncStrs();
1513	else if (extensionName == "GL_AMD_performance_monitor")
1514		return getAmdPerformanceMonitorFuncStrs();
1515	else if (extensionName == "EGL_ANDROID_native_fence_sync")
1516		return getAndroidNativeFenceSyncFuncStrs();
1517	else if (extensionName == "GL_APPLE_sync")
1518		return getAppleSyncFuncStrs();
1519	else if (extensionName == "EGL_NV_sync")
1520		return getNvSyncFuncStrs();
1521	else if (extensionName == "GL_QCOM_driver_control")
1522		return getQcomDriverControlFuncStrs();
1523	else
1524		return 0;
1525}
1526
1527const char** getExtensionStrs (void)
1528{
1529	static const char* extensions[] =
1530	{
1531		"EGL_KHR_config_attribs",
1532		"EGL_KHR_lock_surface",
1533		"EGL_KHR_image",
1534		"EGL_KHR_vg_parent_image",
1535		"EGL_KHR_gl_texture_2D_image",
1536		"EGL_KHR_gl_texture_cubemap_image",
1537		"EGL_KHR_gl_texture_3D_image",
1538		"EGL_KHR_gl_renderbuffer_image",
1539		"EGL_KHR_reusable_sync",
1540		"EGL_KHR_image_base",
1541		"EGL_KHR_image_pixmap",
1542		"EGL_IMG_context_priority",
1543		"EGL_KHR_lock_surface2",
1544		"EGL_NV_coverage_sample",
1545		"EGL_NV_depth_nonlinear",
1546		"EGL_NV_sync",
1547		"EGL_KHR_fence_sync",
1548		"EGL_HI_clientpixmap",
1549		"EGL_HI_colorformats",
1550		"EGL_MESA_drm_image",
1551		"EGL_NV_post_sub_buffer",
1552		"EGL_ANGLE_query_surface_pointer",
1553		"EGL_ANGLE_surface_d3d_texture_2d_share_handle",
1554		"EGL_NV_coverage_sample_resolve",
1555		"EGL_NV_system_time",
1556		"EGL_KHR_stream",
1557		"EGL_KHR_stream_consumer_gltexture",
1558		"EGL_KHR_stream_producer_eglsurface",
1559		"EGL_KHR_stream_producer_aldatalocator",
1560		"EGL_KHR_stream_fifo",
1561		"EGL_EXT_create_context_robustness",
1562		"EGL_ANGLE_d3d_share_handle_client_buffer",
1563		"EGL_KHR_create_context",
1564		"EGL_KHR_surfaceless_context",
1565		"EGL_KHR_stream_cross_process_fd",
1566		"EGL_EXT_multiview_window",
1567		"EGL_KHR_wait_sync",
1568		"EGL_NV_post_convert_rounding",
1569		"EGL_NV_native_query",
1570		"EGL_NV_3dvision_surface",
1571		"EGL_ANDROID_framebuffer_target",
1572		"EGL_ANDROID_blob_cache",
1573		"EGL_ANDROID_image_native_buffer",
1574		"EGL_ANDROID_native_fence_sync",
1575		"EGL_ANDROID_recordable",
1576		"EGL_EXT_buffer_age",
1577		"EGL_EXT_image_dma_buf_import",
1578		"EGL_ARM_pixmap_multisample_discard",
1579		"GL_APIENTRYP",
1580		"GL_OES_blend_equation_separate",
1581		"GL_OES_blend_func_separate",
1582		"GL_OES_blend_subtract",
1583		"GL_OES_compressed_ETC1_RGB8_texture",
1584		"GL_OES_depth24",
1585		"GL_OES_depth32",
1586		"GL_OES_draw_texture",
1587		"GL_OES_EGL_image",
1588		"GL_OES_EGL_image_external",
1589		"GL_OES_element_index_uint",
1590		"GL_OES_fixed_point",
1591		"GL_OES_framebuffer_object",
1592		"GL_OES_mapbuffer",
1593		"GL_OES_matrix_get",
1594		"GL_OES_matrix_palette",
1595		"GL_OES_packed_depth_stencil",
1596		"GL_OES_rgb8_rgba8",
1597		"GL_OES_stencil1",
1598		"GL_OES_stencil4",
1599		"GL_OES_stencil8",
1600		"GL_OES_stencil_wrap",
1601		"GL_OES_texture_cube_map",
1602		"GL_OES_texture_mirrored_repeat",
1603		"GL_OES_vertex_array_object",
1604		"GL_AMD_compressed_3DC_texture",
1605		"GL_AMD_compressed_ATC_texture",
1606		"GL_APPLE_framebuffer_multisample",
1607		"GL_APPLE_sync",
1608		"GL_APPLE_texture_format_BGRA8888",
1609		"GL_APPLE_texture_max_level",
1610		"GL_EXT_blend_minmax",
1611		"GL_EXT_discard_framebuffer",
1612		"GL_EXT_map_buffer_range",
1613		"GL_EXT_multisampled_render_to_texture",
1614		"GL_EXT_read_format_bgra",
1615		"GL_EXT_robustness",
1616		"GL_EXT_sRGB",
1617		"GL_EXT_texture_compression_dxt1",
1618		"GL_EXT_texture_filter_anisotropic",
1619		"GL_EXT_texture_format_BGRA8888",
1620		"GL_EXT_texture_lod_bias",
1621		"GL_EXT_texture_storage",
1622		"GL_IMG_read_format",
1623		"GL_IMG_texture_compression_pvrtc",
1624		"GL_IMG_texture_env_enhanced_fixed_function",
1625		"GL_IMG_user_clip_plane",
1626		"GL_IMG_multisampled_render_to_texture",
1627		"GL_NV_fence",
1628		"GL_QCOM_extended_get",
1629		"GL_QCOM_perfmon_global_mode",
1630		"GL_QCOM_writeonly_rendering",
1631		"GL_QCOM_tiled_rendering",
1632		"GL_OES_byte_coordinates",
1633		"GL_OES_extended_matrix_palette",
1634		"GL_OES_fbo_render_mipmap",
1635		"GL_OES_required_internalformat",
1636		"GL_OES_query_matrix",
1637		"GL_OES_single_precision",
1638		"GL_OES_texture_env_crossbar",
1639		"GL_APPLE_copy_texture_levels",
1640		"GL_APPLE_texture_2D_limited_npot",
1641		"GL_ARM_rgba8",
1642		"GL_EXT_multi_draw_arrays",
1643		"GL_QCOM_driver_control",
1644		"GL_QCOM_extended_get2",
1645		"GL_OES_compressed_paletted_texture",
1646		"GL_OES_get_program_binary",
1647		"GL_OES_standard_derivatives",
1648		"GL_OES_surfaceless_context",
1649		"GL_OES_texture_3D",
1650		"GL_OES_texture_half_float",
1651		"GL_OES_vertex_type_10_10_10_2",
1652		"GL_KHR_debug",
1653		"GL_KHR_texture_compression_astc_ldr",
1654		"GL_AMD_performance_monitor",
1655		"GL_AMD_program_binary_Z400",
1656		"GL_ANGLE_depth_texture",
1657		"GL_ANGLE_framebuffer_blit",
1658		"GL_ANGLE_framebuffer_multisample",
1659		"GL_ANGLE_instanced_arrays",
1660		"GL_ANGLE_pack_reverse_row_order",
1661		"GL_ANGLE_program_binary",
1662		"GL_ANGLE_texture_compression_dxt3",
1663		"GL_ANGLE_texture_compression_dxt5",
1664		"GL_ANGLE_texture_usage",
1665		"GL_ANGLE_translated_shader_source",
1666		"GL_APPLE_rgb_422",
1667		"GL_ARM_mali_program_binary",
1668		"GL_ARM_mali_shader_binary",
1669		"GL_EXT_color_buffer_half_float",
1670		"GL_EXT_debug_label",
1671		"GL_EXT_disjoint_timer_query",
1672		"GL_EXT_draw_buffers",
1673		"GL_EXT_multiview_draw_buffers",
1674		"GL_EXT_occlusion_query_boolean",
1675		"GL_EXT_separate_shader_objects",
1676		"GL_EXT_shader_framebuffer_fetch",
1677		"GL_EXT_shadow_samplers",
1678		"GL_EXT_texture_rg",
1679		"GL_EXT_texture_type_2_10_10_10_REV",
1680		"GL_EXT_unpack_subimage",
1681		"GL_DMP_shader_binary",
1682		"GL_FJ_shader_binary_GCCSO",
1683		"GL_IMG_program_binary",
1684		"GL_IMG_shader_binary",
1685		"GL_IMG_texture_compression_pvrtc2",
1686		"GL_NV_coverage_sample",
1687		"GL_NV_depth_nonlinear",
1688		"GL_NV_draw_buffers",
1689		"GL_NV_fbo_color_attachments",
1690		"GL_NV_framebuffer_blit",
1691		"GL_NV_framebuffer_multisample",
1692		"GL_NV_instanced_arrays",
1693		"GL_NV_read_buffer",
1694		"GL_NV_shadow_samplers_array",
1695		"GL_NV_shadow_samplers_cube",
1696		"GL_NV_sRGB_formats",
1697		"GL_NV_texture_border_clamp",
1698		"GL_QCOM_alpha_test",
1699		"GL_QCOM_binning_control",
1700		"GL_VIV_shader_binary",
1701		"GL_OES_depth_texture",
1702		"GL_OES_fragment_precision_high",
1703		"GL_OES_texture_float",
1704		"GL_OES_texture_float_linear",
1705		"GL_OES_texture_half_float_linear",
1706		"GL_OES_texture_npot",
1707		"GL_OES_vertex_half_float",
1708		"GL_EXT_debug_marker",
1709		"GL_EXT_shader_texture_lod",
1710		"GL_NV_draw_instanced",
1711		"GL_NV_generate_mipmap_sRGB",
1712		"GL_NV_read_buffer_front",
1713		"GL_NV_read_depth",
1714		"GL_NV_read_depth_stencil",
1715		"GL_NV_read_stencil",
1716		"GL_NV_texture_compression_s3tc_update",
1717		"GL_NV_texture_npot_2D_mipmap",
1718		DE_NULL
1719	};
1720
1721	return extensions;
1722}
1723