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 33315. 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_GLES10[] = 46{ 47 "glActiveTexture", 48 "glAlphaFunc", 49 "glAlphaFuncx", 50 "glBindBuffer", 51 "glBindTexture", 52 "glBlendFunc", 53 "glBufferData", 54 "glBufferSubData", 55 "glClear", 56 "glClearColor", 57 "glClearColorx", 58 "glClearDepthf", 59 "glClearDepthx", 60 "glClearStencil", 61 "glClientActiveTexture", 62 "glClipPlanef", 63 "glClipPlanex", 64 "glColor4f", 65 "glColor4ub", 66 "glColor4x", 67 "glColorMask", 68 "glColorPointer", 69 "glCompressedTexImage2D", 70 "glCompressedTexSubImage2D", 71 "glCopyTexImage2D", 72 "glCopyTexSubImage2D", 73 "glCullFace", 74 "glDeleteBuffers", 75 "glDeleteTextures", 76 "glDepthFunc", 77 "glDepthMask", 78 "glDepthRangef", 79 "glDepthRangex", 80 "glDisable", 81 "glDisableClientState", 82 "glDrawArrays", 83 "glDrawElements", 84 "glEnable", 85 "glEnableClientState", 86 "glFinish", 87 "glFlush", 88 "glFogf", 89 "glFogfv", 90 "glFogx", 91 "glFogxv", 92 "glFrontFace", 93 "glFrustumf", 94 "glFrustumx", 95 "glGenBuffers", 96 "glGenTextures", 97 "glGetBooleanv", 98 "glGetBufferParameteriv", 99 "glGetClipPlanef", 100 "glGetClipPlanex", 101 "glGetError", 102 "glGetFixedv", 103 "glGetFloatv", 104 "glGetIntegerv", 105 "glGetLightfv", 106 "glGetLightxv", 107 "glGetMaterialfv", 108 "glGetMaterialxv", 109 "glGetPointerv", 110 "glGetString", 111 "glGetTexEnvfv", 112 "glGetTexEnviv", 113 "glGetTexEnvxv", 114 "glGetTexParameterfv", 115 "glGetTexParameteriv", 116 "glGetTexParameterxv", 117 "glHint", 118 "glIsBuffer", 119 "glIsEnabled", 120 "glIsTexture", 121 "glLightModelf", 122 "glLightModelfv", 123 "glLightModelx", 124 "glLightModelxv", 125 "glLightf", 126 "glLightfv", 127 "glLightx", 128 "glLightxv", 129 "glLineWidth", 130 "glLineWidthx", 131 "glLoadIdentity", 132 "glLoadMatrixf", 133 "glLoadMatrixx", 134 "glLogicOp", 135 "glMaterialf", 136 "glMaterialfv", 137 "glMaterialx", 138 "glMaterialxv", 139 "glMatrixMode", 140 "glMultMatrixf", 141 "glMultMatrixx", 142 "glMultiTexCoord4f", 143 "glMultiTexCoord4x", 144 "glNormal3f", 145 "glNormal3x", 146 "glNormalPointer", 147 "glOrthof", 148 "glOrthox", 149 "glPixelStorei", 150 "glPointParameterf", 151 "glPointParameterfv", 152 "glPointParameterx", 153 "glPointParameterxv", 154 "glPointSize", 155 "glPointSizex", 156 "glPolygonOffset", 157 "glPolygonOffsetx", 158 "glPopMatrix", 159 "glPushMatrix", 160 "glReadPixels", 161 "glRotatef", 162 "glRotatex", 163 "glSampleCoverage", 164 "glSampleCoveragex", 165 "glScalef", 166 "glScalex", 167 "glScissor", 168 "glShadeModel", 169 "glStencilFunc", 170 "glStencilMask", 171 "glStencilOp", 172 "glTexCoordPointer", 173 "glTexEnvf", 174 "glTexEnvfv", 175 "glTexEnvi", 176 "glTexEnviv", 177 "glTexEnvx", 178 "glTexEnvxv", 179 "glTexImage2D", 180 "glTexParameterf", 181 "glTexParameterfv", 182 "glTexParameteri", 183 "glTexParameteriv", 184 "glTexParameterx", 185 "glTexParameterxv", 186 "glTexSubImage2D", 187 "glTranslatef", 188 "glTranslatex", 189 "glVertexPointer", 190 "glViewport", 191}; 192 193static const char* s_GLES20[] = 194{ 195 "glActiveTexture", 196 "glAttachShader", 197 "glBindAttribLocation", 198 "glBindBuffer", 199 "glBindFramebuffer", 200 "glBindRenderbuffer", 201 "glBindTexture", 202 "glBlendColor", 203 "glBlendEquation", 204 "glBlendEquationSeparate", 205 "glBlendFunc", 206 "glBlendFuncSeparate", 207 "glBufferData", 208 "glBufferSubData", 209 "glCheckFramebufferStatus", 210 "glClear", 211 "glClearColor", 212 "glClearDepthf", 213 "glClearStencil", 214 "glColorMask", 215 "glCompileShader", 216 "glCompressedTexImage2D", 217 "glCompressedTexSubImage2D", 218 "glCopyTexImage2D", 219 "glCopyTexSubImage2D", 220 "glCreateProgram", 221 "glCreateShader", 222 "glCullFace", 223 "glDeleteBuffers", 224 "glDeleteFramebuffers", 225 "glDeleteProgram", 226 "glDeleteRenderbuffers", 227 "glDeleteShader", 228 "glDeleteTextures", 229 "glDepthFunc", 230 "glDepthMask", 231 "glDepthRangef", 232 "glDetachShader", 233 "glDisable", 234 "glDisableVertexAttribArray", 235 "glDrawArrays", 236 "glDrawElements", 237 "glEnable", 238 "glEnableVertexAttribArray", 239 "glFinish", 240 "glFlush", 241 "glFramebufferRenderbuffer", 242 "glFramebufferTexture2D", 243 "glFrontFace", 244 "glGenBuffers", 245 "glGenFramebuffers", 246 "glGenRenderbuffers", 247 "glGenTextures", 248 "glGenerateMipmap", 249 "glGetActiveAttrib", 250 "glGetActiveUniform", 251 "glGetAttachedShaders", 252 "glGetAttribLocation", 253 "glGetBooleanv", 254 "glGetBufferParameteriv", 255 "glGetError", 256 "glGetFloatv", 257 "glGetFramebufferAttachmentParameteriv", 258 "glGetIntegerv", 259 "glGetProgramInfoLog", 260 "glGetProgramiv", 261 "glGetRenderbufferParameteriv", 262 "glGetShaderInfoLog", 263 "glGetShaderPrecisionFormat", 264 "glGetShaderSource", 265 "glGetShaderiv", 266 "glGetString", 267 "glGetTexParameterfv", 268 "glGetTexParameteriv", 269 "glGetUniformLocation", 270 "glGetUniformfv", 271 "glGetUniformiv", 272 "glGetVertexAttribPointerv", 273 "glGetVertexAttribfv", 274 "glGetVertexAttribiv", 275 "glHint", 276 "glIsBuffer", 277 "glIsEnabled", 278 "glIsFramebuffer", 279 "glIsProgram", 280 "glIsRenderbuffer", 281 "glIsShader", 282 "glIsTexture", 283 "glLineWidth", 284 "glLinkProgram", 285 "glPixelStorei", 286 "glPolygonOffset", 287 "glReadPixels", 288 "glReleaseShaderCompiler", 289 "glRenderbufferStorage", 290 "glSampleCoverage", 291 "glScissor", 292 "glShaderBinary", 293 "glShaderSource", 294 "glStencilFunc", 295 "glStencilFuncSeparate", 296 "glStencilMask", 297 "glStencilMaskSeparate", 298 "glStencilOp", 299 "glStencilOpSeparate", 300 "glTexImage2D", 301 "glTexParameterf", 302 "glTexParameterfv", 303 "glTexParameteri", 304 "glTexParameteriv", 305 "glTexSubImage2D", 306 "glUniform1f", 307 "glUniform1fv", 308 "glUniform1i", 309 "glUniform1iv", 310 "glUniform2f", 311 "glUniform2fv", 312 "glUniform2i", 313 "glUniform2iv", 314 "glUniform3f", 315 "glUniform3fv", 316 "glUniform3i", 317 "glUniform3iv", 318 "glUniform4f", 319 "glUniform4fv", 320 "glUniform4i", 321 "glUniform4iv", 322 "glUniformMatrix2fv", 323 "glUniformMatrix3fv", 324 "glUniformMatrix4fv", 325 "glUseProgram", 326 "glValidateProgram", 327 "glVertexAttrib1f", 328 "glVertexAttrib1fv", 329 "glVertexAttrib2f", 330 "glVertexAttrib2fv", 331 "glVertexAttrib3f", 332 "glVertexAttrib3fv", 333 "glVertexAttrib4f", 334 "glVertexAttrib4fv", 335 "glVertexAttribPointer", 336 "glViewport", 337}; 338 339static const char* s_GLES30[] = 340{ 341 "glBeginQuery", 342 "glBeginTransformFeedback", 343 "glBindBufferBase", 344 "glBindBufferRange", 345 "glBindSampler", 346 "glBindTransformFeedback", 347 "glBindVertexArray", 348 "glBlitFramebuffer", 349 "glClearBufferfi", 350 "glClearBufferfv", 351 "glClearBufferiv", 352 "glClearBufferuiv", 353 "glClientWaitSync", 354 "glCompressedTexImage3D", 355 "glCompressedTexSubImage3D", 356 "glCopyBufferSubData", 357 "glCopyTexSubImage3D", 358 "glDeleteQueries", 359 "glDeleteSamplers", 360 "glDeleteSync", 361 "glDeleteTransformFeedbacks", 362 "glDeleteVertexArrays", 363 "glDrawArraysInstanced", 364 "glDrawBuffers", 365 "glDrawElementsInstanced", 366 "glDrawRangeElements", 367 "glEndQuery", 368 "glEndTransformFeedback", 369 "glFenceSync", 370 "glFlushMappedBufferRange", 371 "glFramebufferTextureLayer", 372 "glGenQueries", 373 "glGenSamplers", 374 "glGenTransformFeedbacks", 375 "glGenVertexArrays", 376 "glGetActiveUniformBlockName", 377 "glGetActiveUniformBlockiv", 378 "glGetActiveUniformsiv", 379 "glGetBufferParameteri64v", 380 "glGetBufferPointerv", 381 "glGetFragDataLocation", 382 "glGetInteger64i_v", 383 "glGetInteger64v", 384 "glGetIntegeri_v", 385 "glGetInternalformativ", 386 "glGetProgramBinary", 387 "glGetQueryObjectuiv", 388 "glGetQueryiv", 389 "glGetSamplerParameterfv", 390 "glGetSamplerParameteriv", 391 "glGetStringi", 392 "glGetSynciv", 393 "glGetTransformFeedbackVarying", 394 "glGetUniformBlockIndex", 395 "glGetUniformIndices", 396 "glGetUniformuiv", 397 "glGetVertexAttribIiv", 398 "glGetVertexAttribIuiv", 399 "glInvalidateFramebuffer", 400 "glInvalidateSubFramebuffer", 401 "glIsQuery", 402 "glIsSampler", 403 "glIsSync", 404 "glIsTransformFeedback", 405 "glIsVertexArray", 406 "glMapBufferRange", 407 "glPauseTransformFeedback", 408 "glProgramBinary", 409 "glProgramParameteri", 410 "glReadBuffer", 411 "glRenderbufferStorageMultisample", 412 "glResumeTransformFeedback", 413 "glSamplerParameterf", 414 "glSamplerParameterfv", 415 "glSamplerParameteri", 416 "glSamplerParameteriv", 417 "glTexImage3D", 418 "glTexStorage2D", 419 "glTexStorage3D", 420 "glTexSubImage3D", 421 "glTransformFeedbackVaryings", 422 "glUniform1ui", 423 "glUniform1uiv", 424 "glUniform2ui", 425 "glUniform2uiv", 426 "glUniform3ui", 427 "glUniform3uiv", 428 "glUniform4ui", 429 "glUniform4uiv", 430 "glUniformBlockBinding", 431 "glUniformMatrix2x3fv", 432 "glUniformMatrix2x4fv", 433 "glUniformMatrix3x2fv", 434 "glUniformMatrix3x4fv", 435 "glUniformMatrix4x2fv", 436 "glUniformMatrix4x3fv", 437 "glUnmapBuffer", 438 "glVertexAttribDivisor", 439 "glVertexAttribI4i", 440 "glVertexAttribI4iv", 441 "glVertexAttribI4ui", 442 "glVertexAttribI4uiv", 443 "glVertexAttribIPointer", 444 "glWaitSync", 445}; 446 447static const char* s_EGL_ANDROID_blob_cache[] = 448{ 449 "eglSetBlobCacheFuncsANDROID", 450}; 451 452static const char* s_EGL_ANDROID_create_native_client_buffer[] = 453{ 454 "eglCreateNativeClientBufferANDROID", 455}; 456 457static const char* s_EGL_ANDROID_native_fence_sync[] = 458{ 459 "eglDupNativeFenceFDANDROID", 460}; 461 462static const char* s_EGL_ANDROID_presentation_time[] = 463{ 464 "eglPresentationTimeANDROID", 465}; 466 467static const char* s_EGL_ANGLE_query_surface_pointer[] = 468{ 469 "eglQuerySurfacePointerANGLE", 470}; 471 472static const char* s_EGL_EXT_device_base[] = 473{ 474 "eglQueryDeviceAttribEXT", 475 "eglQueryDeviceStringEXT", 476 "eglQueryDevicesEXT", 477 "eglQueryDisplayAttribEXT", 478}; 479 480static const char* s_EGL_EXT_device_enumeration[] = 481{ 482 "eglQueryDevicesEXT", 483}; 484 485static const char* s_EGL_EXT_device_query[] = 486{ 487 "eglQueryDeviceAttribEXT", 488 "eglQueryDeviceStringEXT", 489 "eglQueryDisplayAttribEXT", 490}; 491 492static const char* s_EGL_EXT_image_dma_buf_import_modifiers[] = 493{ 494 "eglQueryDmaBufFormatsEXT", 495 "eglQueryDmaBufModifiersEXT", 496}; 497 498static const char* s_EGL_EXT_output_base[] = 499{ 500 "eglGetOutputLayersEXT", 501 "eglGetOutputPortsEXT", 502 "eglOutputLayerAttribEXT", 503 "eglOutputPortAttribEXT", 504 "eglQueryOutputLayerAttribEXT", 505 "eglQueryOutputLayerStringEXT", 506 "eglQueryOutputPortAttribEXT", 507 "eglQueryOutputPortStringEXT", 508}; 509 510static const char* s_EGL_EXT_platform_base[] = 511{ 512 "eglCreatePlatformPixmapSurfaceEXT", 513 "eglCreatePlatformWindowSurfaceEXT", 514 "eglGetPlatformDisplayEXT", 515}; 516 517static const char* s_EGL_EXT_stream_consumer_egloutput[] = 518{ 519 "eglStreamConsumerOutputEXT", 520}; 521 522static const char* s_EGL_EXT_swap_buffers_with_damage[] = 523{ 524 "eglSwapBuffersWithDamageEXT", 525}; 526 527static const char* s_EGL_HI_clientpixmap[] = 528{ 529 "eglCreatePixmapSurfaceHI", 530}; 531 532static const char* s_EGL_KHR_cl_event2[] = 533{ 534 "eglCreateSync64KHR", 535}; 536 537static const char* s_EGL_KHR_debug[] = 538{ 539 "eglDebugMessageControlKHR", 540 "eglLabelObjectKHR", 541 "eglQueryDebugKHR", 542}; 543 544static const char* s_EGL_KHR_fence_sync[] = 545{ 546 "eglClientWaitSyncKHR", 547 "eglCreateSyncKHR", 548 "eglDestroySyncKHR", 549 "eglGetSyncAttribKHR", 550}; 551 552static const char* s_EGL_KHR_image[] = 553{ 554 "eglCreateImageKHR", 555 "eglDestroyImageKHR", 556}; 557 558static const char* s_EGL_KHR_image_base[] = 559{ 560 "eglCreateImageKHR", 561 "eglDestroyImageKHR", 562}; 563 564static const char* s_EGL_KHR_lock_surface[] = 565{ 566 "eglLockSurfaceKHR", 567 "eglUnlockSurfaceKHR", 568}; 569 570static const char* s_EGL_KHR_lock_surface3[] = 571{ 572 "eglLockSurfaceKHR", 573 "eglQuerySurface64KHR", 574 "eglUnlockSurfaceKHR", 575}; 576 577static const char* s_EGL_KHR_partial_update[] = 578{ 579 "eglSetDamageRegionKHR", 580}; 581 582static const char* s_EGL_KHR_reusable_sync[] = 583{ 584 "eglClientWaitSyncKHR", 585 "eglCreateSyncKHR", 586 "eglDestroySyncKHR", 587 "eglGetSyncAttribKHR", 588 "eglSignalSyncKHR", 589}; 590 591static const char* s_EGL_KHR_stream[] = 592{ 593 "eglCreateStreamKHR", 594 "eglDestroyStreamKHR", 595 "eglQueryStreamKHR", 596 "eglQueryStreamu64KHR", 597 "eglStreamAttribKHR", 598}; 599 600static const char* s_EGL_KHR_stream_attrib[] = 601{ 602 "eglCreateStreamAttribKHR", 603 "eglQueryStreamAttribKHR", 604 "eglSetStreamAttribKHR", 605 "eglStreamConsumerAcquireAttribKHR", 606 "eglStreamConsumerReleaseAttribKHR", 607}; 608 609static const char* s_EGL_KHR_stream_consumer_gltexture[] = 610{ 611 "eglStreamConsumerAcquireKHR", 612 "eglStreamConsumerGLTextureExternalKHR", 613 "eglStreamConsumerReleaseKHR", 614}; 615 616static const char* s_EGL_KHR_stream_cross_process_fd[] = 617{ 618 "eglCreateStreamFromFileDescriptorKHR", 619 "eglGetStreamFileDescriptorKHR", 620}; 621 622static const char* s_EGL_KHR_stream_fifo[] = 623{ 624 "eglQueryStreamTimeKHR", 625}; 626 627static const char* s_EGL_KHR_stream_producer_eglsurface[] = 628{ 629 "eglCreateStreamProducerSurfaceKHR", 630}; 631 632static const char* s_EGL_KHR_swap_buffers_with_damage[] = 633{ 634 "eglSwapBuffersWithDamageKHR", 635}; 636 637static const char* s_EGL_KHR_wait_sync[] = 638{ 639 "eglWaitSyncKHR", 640}; 641 642static const char* s_EGL_MESA_drm_image[] = 643{ 644 "eglCreateDRMImageMESA", 645 "eglExportDRMImageMESA", 646}; 647 648static const char* s_EGL_MESA_image_dma_buf_export[] = 649{ 650 "eglExportDMABUFImageMESA", 651 "eglExportDMABUFImageQueryMESA", 652}; 653 654static const char* s_EGL_NOK_swap_region[] = 655{ 656 "eglSwapBuffersRegionNOK", 657}; 658 659static const char* s_EGL_NOK_swap_region2[] = 660{ 661 "eglSwapBuffersRegion2NOK", 662}; 663 664static const char* s_EGL_NV_native_query[] = 665{ 666 "eglQueryNativeDisplayNV", 667 "eglQueryNativePixmapNV", 668 "eglQueryNativeWindowNV", 669}; 670 671static const char* s_EGL_NV_post_sub_buffer[] = 672{ 673 "eglPostSubBufferNV", 674}; 675 676static const char* s_EGL_NV_stream_consumer_gltexture_yuv[] = 677{ 678 "eglStreamConsumerGLTextureExternalAttribsNV", 679}; 680 681static const char* s_EGL_NV_stream_metadata[] = 682{ 683 "eglQueryDisplayAttribNV", 684 "eglQueryStreamMetadataNV", 685 "eglSetStreamMetadataNV", 686}; 687 688static const char* s_EGL_NV_stream_reset[] = 689{ 690 "eglResetStreamNV", 691}; 692 693static const char* s_EGL_NV_stream_sync[] = 694{ 695 "eglCreateStreamSyncNV", 696}; 697 698static const char* s_EGL_NV_sync[] = 699{ 700 "eglClientWaitSyncNV", 701 "eglCreateFenceSyncNV", 702 "eglDestroySyncNV", 703 "eglFenceNV", 704 "eglGetSyncAttribNV", 705 "eglSignalSyncNV", 706}; 707 708static const char* s_EGL_NV_system_time[] = 709{ 710 "eglGetSystemTimeFrequencyNV", 711 "eglGetSystemTimeNV", 712}; 713 714static const char* s_GL_APPLE_copy_texture_levels[] = 715{ 716 "glCopyTextureLevelsAPPLE", 717}; 718 719static const char* s_GL_APPLE_framebuffer_multisample[] = 720{ 721 "glRenderbufferStorageMultisampleAPPLE", 722 "glResolveMultisampleFramebufferAPPLE", 723}; 724 725static const char* s_GL_APPLE_sync[] = 726{ 727 "glClientWaitSyncAPPLE", 728 "glDeleteSyncAPPLE", 729 "glFenceSyncAPPLE", 730 "glGetInteger64vAPPLE", 731 "glGetSyncivAPPLE", 732 "glIsSyncAPPLE", 733 "glWaitSyncAPPLE", 734}; 735 736static const char* s_GL_EXT_discard_framebuffer[] = 737{ 738 "glDiscardFramebufferEXT", 739}; 740 741static const char* s_GL_EXT_map_buffer_range[] = 742{ 743 "glFlushMappedBufferRangeEXT", 744 "glMapBufferRangeEXT", 745}; 746 747static const char* s_GL_EXT_multi_draw_arrays[] = 748{ 749 "glMultiDrawArraysEXT", 750 "glMultiDrawElementsEXT", 751}; 752 753static const char* s_GL_EXT_multisampled_render_to_texture[] = 754{ 755 "glFramebufferTexture2DMultisampleEXT", 756 "glRenderbufferStorageMultisampleEXT", 757}; 758 759static const char* s_GL_EXT_robustness[] = 760{ 761 "glGetGraphicsResetStatusEXT", 762 "glGetnUniformfvEXT", 763 "glGetnUniformivEXT", 764 "glReadnPixelsEXT", 765}; 766 767static const char* s_GL_EXT_texture_storage[] = 768{ 769 "glTexStorage1DEXT", 770 "glTexStorage2DEXT", 771 "glTexStorage3DEXT", 772 "glTextureStorage1DEXT", 773 "glTextureStorage2DEXT", 774 "glTextureStorage3DEXT", 775}; 776 777static const char* s_GL_IMG_multisampled_render_to_texture[] = 778{ 779 "glFramebufferTexture2DMultisampleIMG", 780 "glRenderbufferStorageMultisampleIMG", 781}; 782 783static const char* s_GL_IMG_user_clip_plane[] = 784{ 785 "glClipPlanefIMG", 786 "glClipPlanexIMG", 787}; 788 789static const char* s_GL_NV_fence[] = 790{ 791 "glDeleteFencesNV", 792 "glFinishFenceNV", 793 "glGenFencesNV", 794 "glGetFenceivNV", 795 "glIsFenceNV", 796 "glSetFenceNV", 797 "glTestFenceNV", 798}; 799 800static const char* s_GL_OES_EGL_image[] = 801{ 802 "glEGLImageTargetRenderbufferStorageOES", 803 "glEGLImageTargetTexture2DOES", 804}; 805 806static const char* s_GL_OES_blend_equation_separate[] = 807{ 808 "glBlendEquationSeparateOES", 809}; 810 811static const char* s_GL_OES_blend_func_separate[] = 812{ 813 "glBlendFuncSeparateOES", 814}; 815 816static const char* s_GL_OES_blend_subtract[] = 817{ 818 "glBlendEquationOES", 819}; 820 821static const char* s_GL_OES_draw_texture[] = 822{ 823 "glDrawTexfOES", 824 "glDrawTexfvOES", 825 "glDrawTexiOES", 826 "glDrawTexivOES", 827 "glDrawTexsOES", 828 "glDrawTexsvOES", 829 "glDrawTexxOES", 830 "glDrawTexxvOES", 831}; 832 833static const char* s_GL_OES_fixed_point[] = 834{ 835 "glAlphaFuncxOES", 836 "glClearColorxOES", 837 "glClearDepthxOES", 838 "glClipPlanexOES", 839 "glColor4xOES", 840 "glDepthRangexOES", 841 "glFogxOES", 842 "glFogxvOES", 843 "glFrustumxOES", 844 "glGetClipPlanexOES", 845 "glGetFixedvOES", 846 "glGetLightxvOES", 847 "glGetMaterialxvOES", 848 "glGetTexEnvxvOES", 849 "glGetTexParameterxvOES", 850 "glLightModelxOES", 851 "glLightModelxvOES", 852 "glLightxOES", 853 "glLightxvOES", 854 "glLineWidthxOES", 855 "glLoadMatrixxOES", 856 "glMaterialxOES", 857 "glMaterialxvOES", 858 "glMultMatrixxOES", 859 "glMultiTexCoord4xOES", 860 "glNormal3xOES", 861 "glOrthoxOES", 862 "glPointParameterxOES", 863 "glPointParameterxvOES", 864 "glPointSizexOES", 865 "glPolygonOffsetxOES", 866 "glRotatexOES", 867 "glSampleCoveragexOES", 868 "glScalexOES", 869 "glTexEnvxOES", 870 "glTexEnvxvOES", 871 "glTexParameterxOES", 872 "glTexParameterxvOES", 873 "glTranslatexOES", 874}; 875 876static const char* s_GL_OES_framebuffer_object[] = 877{ 878 "glBindFramebufferOES", 879 "glBindRenderbufferOES", 880 "glCheckFramebufferStatusOES", 881 "glDeleteFramebuffersOES", 882 "glDeleteRenderbuffersOES", 883 "glFramebufferRenderbufferOES", 884 "glFramebufferTexture2DOES", 885 "glGenFramebuffersOES", 886 "glGenRenderbuffersOES", 887 "glGenerateMipmapOES", 888 "glGetFramebufferAttachmentParameterivOES", 889 "glGetRenderbufferParameterivOES", 890 "glIsFramebufferOES", 891 "glIsRenderbufferOES", 892 "glRenderbufferStorageOES", 893}; 894 895static const char* s_GL_OES_mapbuffer[] = 896{ 897 "glGetBufferPointervOES", 898 "glMapBufferOES", 899 "glUnmapBufferOES", 900}; 901 902static const char* s_GL_OES_matrix_palette[] = 903{ 904 "glCurrentPaletteMatrixOES", 905 "glLoadPaletteFromModelViewMatrixOES", 906 "glMatrixIndexPointerOES", 907 "glWeightPointerOES", 908}; 909 910static const char* s_GL_OES_point_size_array[] = 911{ 912 "glPointSizePointerOES", 913}; 914 915static const char* s_GL_OES_query_matrix[] = 916{ 917 "glQueryMatrixxOES", 918}; 919 920static const char* s_GL_OES_single_precision[] = 921{ 922 "glClearDepthfOES", 923 "glClipPlanefOES", 924 "glDepthRangefOES", 925 "glFrustumfOES", 926 "glGetClipPlanefOES", 927 "glOrthofOES", 928}; 929 930static const char* s_GL_OES_texture_cube_map[] = 931{ 932 "glGetTexGenfvOES", 933 "glGetTexGenivOES", 934 "glGetTexGenxvOES", 935 "glTexGenfOES", 936 "glTexGenfvOES", 937 "glTexGeniOES", 938 "glTexGenivOES", 939 "glTexGenxOES", 940 "glTexGenxvOES", 941}; 942 943static const char* s_GL_OES_vertex_array_object[] = 944{ 945 "glBindVertexArrayOES", 946 "glDeleteVertexArraysOES", 947 "glGenVertexArraysOES", 948 "glIsVertexArrayOES", 949}; 950 951static const char* s_GL_QCOM_driver_control[] = 952{ 953 "glDisableDriverControlQCOM", 954 "glEnableDriverControlQCOM", 955 "glGetDriverControlStringQCOM", 956 "glGetDriverControlsQCOM", 957}; 958 959static const char* s_GL_QCOM_extended_get[] = 960{ 961 "glExtGetBufferPointervQCOM", 962 "glExtGetBuffersQCOM", 963 "glExtGetFramebuffersQCOM", 964 "glExtGetRenderbuffersQCOM", 965 "glExtGetTexLevelParameterivQCOM", 966 "glExtGetTexSubImageQCOM", 967 "glExtGetTexturesQCOM", 968 "glExtTexObjectStateOverrideiQCOM", 969}; 970 971static const char* s_GL_QCOM_extended_get2[] = 972{ 973 "glExtGetProgramBinarySourceQCOM", 974 "glExtGetProgramsQCOM", 975 "glExtGetShadersQCOM", 976 "glExtIsProgramBinaryQCOM", 977}; 978 979static const char* s_GL_QCOM_tiled_rendering[] = 980{ 981 "glEndTilingQCOM", 982 "glStartTilingQCOM", 983}; 984 985static const char* s_GL_AMD_performance_monitor[] = 986{ 987 "glBeginPerfMonitorAMD", 988 "glDeletePerfMonitorsAMD", 989 "glEndPerfMonitorAMD", 990 "glGenPerfMonitorsAMD", 991 "glGetPerfMonitorCounterDataAMD", 992 "glGetPerfMonitorCounterInfoAMD", 993 "glGetPerfMonitorCounterStringAMD", 994 "glGetPerfMonitorCountersAMD", 995 "glGetPerfMonitorGroupStringAMD", 996 "glGetPerfMonitorGroupsAMD", 997 "glSelectPerfMonitorCountersAMD", 998}; 999 1000static const char* s_GL_ANGLE_framebuffer_blit[] = 1001{ 1002 "glBlitFramebufferANGLE", 1003}; 1004 1005static const char* s_GL_ANGLE_framebuffer_multisample[] = 1006{ 1007 "glRenderbufferStorageMultisampleANGLE", 1008}; 1009 1010static const char* s_GL_ANGLE_instanced_arrays[] = 1011{ 1012 "glDrawArraysInstancedANGLE", 1013 "glDrawElementsInstancedANGLE", 1014 "glVertexAttribDivisorANGLE", 1015}; 1016 1017static const char* s_GL_ANGLE_translated_shader_source[] = 1018{ 1019 "glGetTranslatedShaderSourceANGLE", 1020}; 1021 1022static const char* s_GL_EXT_base_instance[] = 1023{ 1024 "glDrawArraysInstancedBaseInstanceEXT", 1025 "glDrawElementsInstancedBaseInstanceEXT", 1026 "glDrawElementsInstancedBaseVertexBaseInstanceEXT", 1027}; 1028 1029static const char* s_GL_EXT_blend_func_extended[] = 1030{ 1031 "glBindFragDataLocationEXT", 1032 "glBindFragDataLocationIndexedEXT", 1033 "glGetFragDataIndexEXT", 1034 "glGetProgramResourceLocationIndexEXT", 1035}; 1036 1037static const char* s_GL_EXT_buffer_storage[] = 1038{ 1039 "glBufferStorageEXT", 1040}; 1041 1042static const char* s_GL_EXT_copy_image[] = 1043{ 1044 "glCopyImageSubDataEXT", 1045}; 1046 1047static const char* s_GL_EXT_debug_label[] = 1048{ 1049 "glGetObjectLabelEXT", 1050 "glLabelObjectEXT", 1051}; 1052 1053static const char* s_GL_EXT_debug_marker[] = 1054{ 1055 "glInsertEventMarkerEXT", 1056 "glPopGroupMarkerEXT", 1057 "glPushGroupMarkerEXT", 1058}; 1059 1060static const char* s_GL_EXT_disjoint_timer_query[] = 1061{ 1062 "glBeginQueryEXT", 1063 "glDeleteQueriesEXT", 1064 "glEndQueryEXT", 1065 "glGenQueriesEXT", 1066 "glGetQueryObjecti64vEXT", 1067 "glGetQueryObjectivEXT", 1068 "glGetQueryObjectui64vEXT", 1069 "glGetQueryObjectuivEXT", 1070 "glGetQueryivEXT", 1071 "glIsQueryEXT", 1072 "glQueryCounterEXT", 1073}; 1074 1075static const char* s_GL_EXT_draw_buffers[] = 1076{ 1077 "glDrawBuffersEXT", 1078}; 1079 1080static const char* s_GL_EXT_draw_buffers_indexed[] = 1081{ 1082 "glBlendEquationSeparateiEXT", 1083 "glBlendEquationiEXT", 1084 "glBlendFuncSeparateiEXT", 1085 "glBlendFunciEXT", 1086 "glColorMaskiEXT", 1087 "glDisableiEXT", 1088 "glEnableiEXT", 1089 "glIsEnablediEXT", 1090}; 1091 1092static const char* s_GL_EXT_draw_elements_base_vertex[] = 1093{ 1094 "glDrawElementsBaseVertexEXT", 1095 "glDrawElementsInstancedBaseVertexEXT", 1096 "glDrawRangeElementsBaseVertexEXT", 1097 "glMultiDrawElementsBaseVertexEXT", 1098}; 1099 1100static const char* s_GL_EXT_draw_instanced[] = 1101{ 1102 "glDrawArraysInstancedEXT", 1103 "glDrawElementsInstancedEXT", 1104}; 1105 1106static const char* s_GL_EXT_geometry_shader[] = 1107{ 1108 "glFramebufferTextureEXT", 1109}; 1110 1111static const char* s_GL_EXT_instanced_arrays[] = 1112{ 1113 "glDrawArraysInstancedEXT", 1114 "glDrawElementsInstancedEXT", 1115 "glVertexAttribDivisorEXT", 1116}; 1117 1118static const char* s_GL_EXT_multi_draw_indirect[] = 1119{ 1120 "glMultiDrawArraysIndirectEXT", 1121 "glMultiDrawElementsIndirectEXT", 1122}; 1123 1124static const char* s_GL_EXT_multiview_draw_buffers[] = 1125{ 1126 "glDrawBuffersIndexedEXT", 1127 "glGetIntegeri_vEXT", 1128 "glReadBufferIndexedEXT", 1129}; 1130 1131static const char* s_GL_EXT_occlusion_query_boolean[] = 1132{ 1133 "glBeginQueryEXT", 1134 "glDeleteQueriesEXT", 1135 "glEndQueryEXT", 1136 "glGenQueriesEXT", 1137 "glGetQueryObjectuivEXT", 1138 "glGetQueryivEXT", 1139 "glIsQueryEXT", 1140}; 1141 1142static const char* s_GL_EXT_primitive_bounding_box[] = 1143{ 1144 "glPrimitiveBoundingBoxEXT", 1145}; 1146 1147static const char* s_GL_EXT_raster_multisample[] = 1148{ 1149 "glRasterSamplesEXT", 1150}; 1151 1152static const char* s_GL_EXT_separate_shader_objects[] = 1153{ 1154 "glActiveShaderProgramEXT", 1155 "glBindProgramPipelineEXT", 1156 "glCreateShaderProgramvEXT", 1157 "glDeleteProgramPipelinesEXT", 1158 "glGenProgramPipelinesEXT", 1159 "glGetProgramPipelineInfoLogEXT", 1160 "glGetProgramPipelineivEXT", 1161 "glIsProgramPipelineEXT", 1162 "glProgramParameteriEXT", 1163 "glProgramUniform1fEXT", 1164 "glProgramUniform1fvEXT", 1165 "glProgramUniform1iEXT", 1166 "glProgramUniform1ivEXT", 1167 "glProgramUniform1uiEXT", 1168 "glProgramUniform1uivEXT", 1169 "glProgramUniform2fEXT", 1170 "glProgramUniform2fvEXT", 1171 "glProgramUniform2iEXT", 1172 "glProgramUniform2ivEXT", 1173 "glProgramUniform2uiEXT", 1174 "glProgramUniform2uivEXT", 1175 "glProgramUniform3fEXT", 1176 "glProgramUniform3fvEXT", 1177 "glProgramUniform3iEXT", 1178 "glProgramUniform3ivEXT", 1179 "glProgramUniform3uiEXT", 1180 "glProgramUniform3uivEXT", 1181 "glProgramUniform4fEXT", 1182 "glProgramUniform4fvEXT", 1183 "glProgramUniform4iEXT", 1184 "glProgramUniform4ivEXT", 1185 "glProgramUniform4uiEXT", 1186 "glProgramUniform4uivEXT", 1187 "glProgramUniformMatrix2fvEXT", 1188 "glProgramUniformMatrix2x3fvEXT", 1189 "glProgramUniformMatrix2x4fvEXT", 1190 "glProgramUniformMatrix3fvEXT", 1191 "glProgramUniformMatrix3x2fvEXT", 1192 "glProgramUniformMatrix3x4fvEXT", 1193 "glProgramUniformMatrix4fvEXT", 1194 "glProgramUniformMatrix4x2fvEXT", 1195 "glProgramUniformMatrix4x3fvEXT", 1196 "glUseProgramStagesEXT", 1197 "glValidateProgramPipelineEXT", 1198}; 1199 1200static const char* s_GL_EXT_sparse_texture[] = 1201{ 1202 "glTexPageCommitmentEXT", 1203}; 1204 1205static const char* s_GL_EXT_tessellation_shader[] = 1206{ 1207 "glPatchParameteriEXT", 1208}; 1209 1210static const char* s_GL_EXT_texture_border_clamp[] = 1211{ 1212 "glGetSamplerParameterIivEXT", 1213 "glGetSamplerParameterIuivEXT", 1214 "glGetTexParameterIivEXT", 1215 "glGetTexParameterIuivEXT", 1216 "glSamplerParameterIivEXT", 1217 "glSamplerParameterIuivEXT", 1218 "glTexParameterIivEXT", 1219 "glTexParameterIuivEXT", 1220}; 1221 1222static const char* s_GL_EXT_texture_buffer[] = 1223{ 1224 "glTexBufferEXT", 1225 "glTexBufferRangeEXT", 1226}; 1227 1228static const char* s_GL_EXT_texture_filter_minmax[] = 1229{ 1230 "glRasterSamplesEXT", 1231}; 1232 1233static const char* s_GL_EXT_texture_view[] = 1234{ 1235 "glTextureViewEXT", 1236}; 1237 1238static const char* s_GL_INTEL_framebuffer_CMAA[] = 1239{ 1240 "glApplyFramebufferAttachmentCMAAINTEL", 1241}; 1242 1243static const char* s_GL_INTEL_performance_query[] = 1244{ 1245 "glBeginPerfQueryINTEL", 1246 "glCreatePerfQueryINTEL", 1247 "glDeletePerfQueryINTEL", 1248 "glEndPerfQueryINTEL", 1249 "glGetFirstPerfQueryIdINTEL", 1250 "glGetNextPerfQueryIdINTEL", 1251 "glGetPerfCounterInfoINTEL", 1252 "glGetPerfQueryDataINTEL", 1253 "glGetPerfQueryIdByNameINTEL", 1254 "glGetPerfQueryInfoINTEL", 1255}; 1256 1257static const char* s_GL_KHR_blend_equation_advanced[] = 1258{ 1259 "glBlendBarrierKHR", 1260}; 1261 1262static const char* s_GL_KHR_debug[] = 1263{ 1264 "glDebugMessageCallbackKHR", 1265 "glDebugMessageControlKHR", 1266 "glDebugMessageInsertKHR", 1267 "glGetDebugMessageLogKHR", 1268 "glGetObjectLabelKHR", 1269 "glGetObjectPtrLabelKHR", 1270 "glGetPointervKHR", 1271 "glObjectLabelKHR", 1272 "glObjectPtrLabelKHR", 1273 "glPopDebugGroupKHR", 1274 "glPushDebugGroupKHR", 1275}; 1276 1277static const char* s_GL_KHR_robustness[] = 1278{ 1279 "glGetGraphicsResetStatusKHR", 1280 "glGetnUniformfvKHR", 1281 "glGetnUniformivKHR", 1282 "glGetnUniformuivKHR", 1283 "glReadnPixelsKHR", 1284}; 1285 1286static const char* s_GL_NV_bindless_texture[] = 1287{ 1288 "glGetImageHandleNV", 1289 "glGetTextureHandleNV", 1290 "glGetTextureSamplerHandleNV", 1291 "glIsImageHandleResidentNV", 1292 "glIsTextureHandleResidentNV", 1293 "glMakeImageHandleNonResidentNV", 1294 "glMakeImageHandleResidentNV", 1295 "glMakeTextureHandleNonResidentNV", 1296 "glMakeTextureHandleResidentNV", 1297 "glProgramUniformHandleui64NV", 1298 "glProgramUniformHandleui64vNV", 1299 "glUniformHandleui64NV", 1300 "glUniformHandleui64vNV", 1301}; 1302 1303static const char* s_GL_NV_blend_equation_advanced[] = 1304{ 1305 "glBlendBarrierNV", 1306 "glBlendParameteriNV", 1307}; 1308 1309static const char* s_GL_NV_conditional_render[] = 1310{ 1311 "glBeginConditionalRenderNV", 1312 "glEndConditionalRenderNV", 1313}; 1314 1315static const char* s_GL_NV_conservative_raster[] = 1316{ 1317 "glSubpixelPrecisionBiasNV", 1318}; 1319 1320static const char* s_GL_NV_copy_buffer[] = 1321{ 1322 "glCopyBufferSubDataNV", 1323}; 1324 1325static const char* s_GL_NV_coverage_sample[] = 1326{ 1327 "glCoverageMaskNV", 1328 "glCoverageOperationNV", 1329}; 1330 1331static const char* s_GL_NV_draw_buffers[] = 1332{ 1333 "glDrawBuffersNV", 1334}; 1335 1336static const char* s_GL_NV_draw_instanced[] = 1337{ 1338 "glDrawArraysInstancedNV", 1339 "glDrawElementsInstancedNV", 1340}; 1341 1342static const char* s_GL_NV_fragment_coverage_to_color[] = 1343{ 1344 "glFragmentCoverageColorNV", 1345}; 1346 1347static const char* s_GL_NV_framebuffer_blit[] = 1348{ 1349 "glBlitFramebufferNV", 1350}; 1351 1352static const char* s_GL_NV_framebuffer_mixed_samples[] = 1353{ 1354 "glCoverageModulationNV", 1355 "glCoverageModulationTableNV", 1356 "glGetCoverageModulationTableNV", 1357 "glRasterSamplesEXT", 1358}; 1359 1360static const char* s_GL_NV_framebuffer_multisample[] = 1361{ 1362 "glRenderbufferStorageMultisampleNV", 1363}; 1364 1365static const char* s_GL_NV_instanced_arrays[] = 1366{ 1367 "glVertexAttribDivisorNV", 1368}; 1369 1370static const char* s_GL_NV_internalformat_sample_query[] = 1371{ 1372 "glGetInternalformatSampleivNV", 1373}; 1374 1375static const char* s_GL_NV_non_square_matrices[] = 1376{ 1377 "glUniformMatrix2x3fvNV", 1378 "glUniformMatrix2x4fvNV", 1379 "glUniformMatrix3x2fvNV", 1380 "glUniformMatrix3x4fvNV", 1381 "glUniformMatrix4x2fvNV", 1382 "glUniformMatrix4x3fvNV", 1383}; 1384 1385static const char* s_GL_NV_path_rendering[] = 1386{ 1387 "glCopyPathNV", 1388 "glCoverFillPathInstancedNV", 1389 "glCoverFillPathNV", 1390 "glCoverStrokePathInstancedNV", 1391 "glCoverStrokePathNV", 1392 "glDeletePathsNV", 1393 "glGenPathsNV", 1394 "glGetPathCommandsNV", 1395 "glGetPathCoordsNV", 1396 "glGetPathDashArrayNV", 1397 "glGetPathLengthNV", 1398 "glGetPathMetricRangeNV", 1399 "glGetPathMetricsNV", 1400 "glGetPathParameterfvNV", 1401 "glGetPathParameterivNV", 1402 "glGetPathSpacingNV", 1403 "glGetProgramResourcefvNV", 1404 "glInterpolatePathsNV", 1405 "glIsPathNV", 1406 "glIsPointInFillPathNV", 1407 "glIsPointInStrokePathNV", 1408 "glMatrixLoad3x2fNV", 1409 "glMatrixLoad3x3fNV", 1410 "glMatrixLoadTranspose3x3fNV", 1411 "glMatrixMult3x2fNV", 1412 "glMatrixMult3x3fNV", 1413 "glMatrixMultTranspose3x3fNV", 1414 "glPathCommandsNV", 1415 "glPathCoordsNV", 1416 "glPathCoverDepthFuncNV", 1417 "glPathDashArrayNV", 1418 "glPathGlyphIndexArrayNV", 1419 "glPathGlyphIndexRangeNV", 1420 "glPathGlyphRangeNV", 1421 "glPathGlyphsNV", 1422 "glPathMemoryGlyphIndexArrayNV", 1423 "glPathParameterfNV", 1424 "glPathParameterfvNV", 1425 "glPathParameteriNV", 1426 "glPathParameterivNV", 1427 "glPathStencilDepthOffsetNV", 1428 "glPathStencilFuncNV", 1429 "glPathStringNV", 1430 "glPathSubCommandsNV", 1431 "glPathSubCoordsNV", 1432 "glPointAlongPathNV", 1433 "glProgramPathFragmentInputGenNV", 1434 "glStencilFillPathInstancedNV", 1435 "glStencilFillPathNV", 1436 "glStencilStrokePathInstancedNV", 1437 "glStencilStrokePathNV", 1438 "glStencilThenCoverFillPathInstancedNV", 1439 "glStencilThenCoverFillPathNV", 1440 "glStencilThenCoverStrokePathInstancedNV", 1441 "glStencilThenCoverStrokePathNV", 1442 "glTransformPathNV", 1443 "glWeightPathsNV", 1444}; 1445 1446static const char* s_GL_NV_polygon_mode[] = 1447{ 1448 "glPolygonModeNV", 1449}; 1450 1451static const char* s_GL_NV_read_buffer[] = 1452{ 1453 "glReadBufferNV", 1454}; 1455 1456static const char* s_GL_NV_sample_locations[] = 1457{ 1458 "glFramebufferSampleLocationsfvNV", 1459 "glNamedFramebufferSampleLocationsfvNV", 1460 "glResolveDepthValuesNV", 1461}; 1462 1463static const char* s_GL_NV_viewport_array[] = 1464{ 1465 "glDepthRangeArrayfvNV", 1466 "glDepthRangeIndexedfNV", 1467 "glDisableiNV", 1468 "glEnableiNV", 1469 "glGetFloati_vNV", 1470 "glIsEnablediNV", 1471 "glScissorArrayvNV", 1472 "glScissorIndexedNV", 1473 "glScissorIndexedvNV", 1474 "glViewportArrayvNV", 1475 "glViewportIndexedfNV", 1476 "glViewportIndexedfvNV", 1477}; 1478 1479static const char* s_GL_OES_copy_image[] = 1480{ 1481 "glCopyImageSubDataOES", 1482}; 1483 1484static const char* s_GL_OES_draw_buffers_indexed[] = 1485{ 1486 "glBlendEquationSeparateiOES", 1487 "glBlendEquationiOES", 1488 "glBlendFuncSeparateiOES", 1489 "glBlendFunciOES", 1490 "glColorMaskiOES", 1491 "glDisableiOES", 1492 "glEnableiOES", 1493 "glIsEnablediOES", 1494}; 1495 1496static const char* s_GL_OES_draw_elements_base_vertex[] = 1497{ 1498 "glDrawElementsBaseVertexOES", 1499 "glDrawElementsInstancedBaseVertexOES", 1500 "glDrawRangeElementsBaseVertexOES", 1501 "glMultiDrawElementsBaseVertexOES", 1502}; 1503 1504static const char* s_GL_OES_geometry_shader[] = 1505{ 1506 "glFramebufferTextureOES", 1507}; 1508 1509static const char* s_GL_OES_get_program_binary[] = 1510{ 1511 "glGetProgramBinaryOES", 1512 "glProgramBinaryOES", 1513}; 1514 1515static const char* s_GL_OES_primitive_bounding_box[] = 1516{ 1517 "glPrimitiveBoundingBoxOES", 1518}; 1519 1520static const char* s_GL_OES_sample_shading[] = 1521{ 1522 "glMinSampleShadingOES", 1523}; 1524 1525static const char* s_GL_OES_tessellation_shader[] = 1526{ 1527 "glPatchParameteriOES", 1528}; 1529 1530static const char* s_GL_OES_texture_3D[] = 1531{ 1532 "glCompressedTexImage3DOES", 1533 "glCompressedTexSubImage3DOES", 1534 "glCopyTexSubImage3DOES", 1535 "glFramebufferTexture3DOES", 1536 "glTexImage3DOES", 1537 "glTexSubImage3DOES", 1538}; 1539 1540static const char* s_GL_OES_texture_border_clamp[] = 1541{ 1542 "glGetSamplerParameterIivOES", 1543 "glGetSamplerParameterIuivOES", 1544 "glGetTexParameterIivOES", 1545 "glGetTexParameterIuivOES", 1546 "glSamplerParameterIivOES", 1547 "glSamplerParameterIuivOES", 1548 "glTexParameterIivOES", 1549 "glTexParameterIuivOES", 1550}; 1551 1552static const char* s_GL_OES_texture_buffer[] = 1553{ 1554 "glTexBufferOES", 1555 "glTexBufferRangeOES", 1556}; 1557 1558static const char* s_GL_OES_texture_storage_multisample_2d_array[] = 1559{ 1560 "glTexStorage3DMultisampleOES", 1561}; 1562 1563static const char* s_GL_OES_texture_view[] = 1564{ 1565 "glTextureViewOES", 1566}; 1567 1568static const char* s_GL_OVR_multiview[] = 1569{ 1570 "glFramebufferTextureMultiviewOVR", 1571}; 1572 1573static const char* s_GL_QCOM_alpha_test[] = 1574{ 1575 "glAlphaFuncQCOM", 1576}; 1577 1578static const struct 1579{ 1580 const char* name; 1581 const int numFunctions; 1582 const char* const* functions; 1583} s_extensions[] = 1584{ 1585 { "EGL_ANDROID_blob_cache", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_blob_cache), s_EGL_ANDROID_blob_cache }, 1586 { "EGL_ANDROID_create_native_client_buffer", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_create_native_client_buffer), s_EGL_ANDROID_create_native_client_buffer }, 1587 { "EGL_ANDROID_native_fence_sync", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_native_fence_sync), s_EGL_ANDROID_native_fence_sync }, 1588 { "EGL_ANDROID_presentation_time", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_presentation_time), s_EGL_ANDROID_presentation_time }, 1589 { "EGL_ANGLE_query_surface_pointer", DE_LENGTH_OF_ARRAY(s_EGL_ANGLE_query_surface_pointer), s_EGL_ANGLE_query_surface_pointer }, 1590 { "EGL_EXT_device_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_base), s_EGL_EXT_device_base }, 1591 { "EGL_EXT_device_enumeration", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_enumeration), s_EGL_EXT_device_enumeration }, 1592 { "EGL_EXT_device_query", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_query), s_EGL_EXT_device_query }, 1593 { "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 }, 1594 { "EGL_EXT_output_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_output_base), s_EGL_EXT_output_base }, 1595 { "EGL_EXT_platform_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_platform_base), s_EGL_EXT_platform_base }, 1596 { "EGL_EXT_stream_consumer_egloutput", DE_LENGTH_OF_ARRAY(s_EGL_EXT_stream_consumer_egloutput), s_EGL_EXT_stream_consumer_egloutput }, 1597 { "EGL_EXT_swap_buffers_with_damage", DE_LENGTH_OF_ARRAY(s_EGL_EXT_swap_buffers_with_damage), s_EGL_EXT_swap_buffers_with_damage }, 1598 { "EGL_HI_clientpixmap", DE_LENGTH_OF_ARRAY(s_EGL_HI_clientpixmap), s_EGL_HI_clientpixmap }, 1599 { "EGL_KHR_cl_event2", DE_LENGTH_OF_ARRAY(s_EGL_KHR_cl_event2), s_EGL_KHR_cl_event2 }, 1600 { "EGL_KHR_debug", DE_LENGTH_OF_ARRAY(s_EGL_KHR_debug), s_EGL_KHR_debug }, 1601 { "EGL_KHR_fence_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_fence_sync), s_EGL_KHR_fence_sync }, 1602 { "EGL_KHR_image", DE_LENGTH_OF_ARRAY(s_EGL_KHR_image), s_EGL_KHR_image }, 1603 { "EGL_KHR_image_base", DE_LENGTH_OF_ARRAY(s_EGL_KHR_image_base), s_EGL_KHR_image_base }, 1604 { "EGL_KHR_lock_surface", DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface), s_EGL_KHR_lock_surface }, 1605 { "EGL_KHR_lock_surface3", DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface3), s_EGL_KHR_lock_surface3 }, 1606 { "EGL_KHR_partial_update", DE_LENGTH_OF_ARRAY(s_EGL_KHR_partial_update), s_EGL_KHR_partial_update }, 1607 { "EGL_KHR_reusable_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_reusable_sync), s_EGL_KHR_reusable_sync }, 1608 { "EGL_KHR_stream", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream), s_EGL_KHR_stream }, 1609 { "EGL_KHR_stream_attrib", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_attrib), s_EGL_KHR_stream_attrib }, 1610 { "EGL_KHR_stream_consumer_gltexture", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_consumer_gltexture), s_EGL_KHR_stream_consumer_gltexture }, 1611 { "EGL_KHR_stream_cross_process_fd", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_cross_process_fd), s_EGL_KHR_stream_cross_process_fd }, 1612 { "EGL_KHR_stream_fifo", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_fifo), s_EGL_KHR_stream_fifo }, 1613 { "EGL_KHR_stream_producer_eglsurface", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_producer_eglsurface), s_EGL_KHR_stream_producer_eglsurface }, 1614 { "EGL_KHR_swap_buffers_with_damage", DE_LENGTH_OF_ARRAY(s_EGL_KHR_swap_buffers_with_damage), s_EGL_KHR_swap_buffers_with_damage }, 1615 { "EGL_KHR_wait_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_wait_sync), s_EGL_KHR_wait_sync }, 1616 { "EGL_MESA_drm_image", DE_LENGTH_OF_ARRAY(s_EGL_MESA_drm_image), s_EGL_MESA_drm_image }, 1617 { "EGL_MESA_image_dma_buf_export", DE_LENGTH_OF_ARRAY(s_EGL_MESA_image_dma_buf_export), s_EGL_MESA_image_dma_buf_export }, 1618 { "EGL_NOK_swap_region", DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region), s_EGL_NOK_swap_region }, 1619 { "EGL_NOK_swap_region2", DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region2), s_EGL_NOK_swap_region2 }, 1620 { "EGL_NV_native_query", DE_LENGTH_OF_ARRAY(s_EGL_NV_native_query), s_EGL_NV_native_query }, 1621 { "EGL_NV_post_sub_buffer", DE_LENGTH_OF_ARRAY(s_EGL_NV_post_sub_buffer), s_EGL_NV_post_sub_buffer }, 1622 { "EGL_NV_stream_consumer_gltexture_yuv", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_consumer_gltexture_yuv), s_EGL_NV_stream_consumer_gltexture_yuv }, 1623 { "EGL_NV_stream_metadata", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_metadata), s_EGL_NV_stream_metadata }, 1624 { "EGL_NV_stream_reset", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_reset), s_EGL_NV_stream_reset }, 1625 { "EGL_NV_stream_sync", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_sync), s_EGL_NV_stream_sync }, 1626 { "EGL_NV_sync", DE_LENGTH_OF_ARRAY(s_EGL_NV_sync), s_EGL_NV_sync }, 1627 { "EGL_NV_system_time", DE_LENGTH_OF_ARRAY(s_EGL_NV_system_time), s_EGL_NV_system_time }, 1628 { "GL_APPLE_copy_texture_levels", DE_LENGTH_OF_ARRAY(s_GL_APPLE_copy_texture_levels), s_GL_APPLE_copy_texture_levels }, 1629 { "GL_APPLE_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_APPLE_framebuffer_multisample), s_GL_APPLE_framebuffer_multisample }, 1630 { "GL_APPLE_sync", DE_LENGTH_OF_ARRAY(s_GL_APPLE_sync), s_GL_APPLE_sync }, 1631 { "GL_EXT_discard_framebuffer", DE_LENGTH_OF_ARRAY(s_GL_EXT_discard_framebuffer), s_GL_EXT_discard_framebuffer }, 1632 { "GL_EXT_map_buffer_range", DE_LENGTH_OF_ARRAY(s_GL_EXT_map_buffer_range), s_GL_EXT_map_buffer_range }, 1633 { "GL_EXT_multi_draw_arrays", DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_arrays), s_GL_EXT_multi_draw_arrays }, 1634 { "GL_EXT_multisampled_render_to_texture", DE_LENGTH_OF_ARRAY(s_GL_EXT_multisampled_render_to_texture), s_GL_EXT_multisampled_render_to_texture }, 1635 { "GL_EXT_robustness", DE_LENGTH_OF_ARRAY(s_GL_EXT_robustness), s_GL_EXT_robustness }, 1636 { "GL_EXT_texture_storage", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_storage), s_GL_EXT_texture_storage }, 1637 { "GL_IMG_multisampled_render_to_texture", DE_LENGTH_OF_ARRAY(s_GL_IMG_multisampled_render_to_texture), s_GL_IMG_multisampled_render_to_texture }, 1638 { "GL_IMG_user_clip_plane", DE_LENGTH_OF_ARRAY(s_GL_IMG_user_clip_plane), s_GL_IMG_user_clip_plane }, 1639 { "GL_NV_fence", DE_LENGTH_OF_ARRAY(s_GL_NV_fence), s_GL_NV_fence }, 1640 { "GL_OES_EGL_image", DE_LENGTH_OF_ARRAY(s_GL_OES_EGL_image), s_GL_OES_EGL_image }, 1641 { "GL_OES_blend_equation_separate", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_equation_separate), s_GL_OES_blend_equation_separate }, 1642 { "GL_OES_blend_func_separate", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_func_separate), s_GL_OES_blend_func_separate }, 1643 { "GL_OES_blend_subtract", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_subtract), s_GL_OES_blend_subtract }, 1644 { "GL_OES_draw_texture", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_texture), s_GL_OES_draw_texture }, 1645 { "GL_OES_fixed_point", DE_LENGTH_OF_ARRAY(s_GL_OES_fixed_point), s_GL_OES_fixed_point }, 1646 { "GL_OES_framebuffer_object", DE_LENGTH_OF_ARRAY(s_GL_OES_framebuffer_object), s_GL_OES_framebuffer_object }, 1647 { "GL_OES_mapbuffer", DE_LENGTH_OF_ARRAY(s_GL_OES_mapbuffer), s_GL_OES_mapbuffer }, 1648 { "GL_OES_matrix_palette", DE_LENGTH_OF_ARRAY(s_GL_OES_matrix_palette), s_GL_OES_matrix_palette }, 1649 { "GL_OES_point_size_array", DE_LENGTH_OF_ARRAY(s_GL_OES_point_size_array), s_GL_OES_point_size_array }, 1650 { "GL_OES_query_matrix", DE_LENGTH_OF_ARRAY(s_GL_OES_query_matrix), s_GL_OES_query_matrix }, 1651 { "GL_OES_single_precision", DE_LENGTH_OF_ARRAY(s_GL_OES_single_precision), s_GL_OES_single_precision }, 1652 { "GL_OES_texture_cube_map", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_cube_map), s_GL_OES_texture_cube_map }, 1653 { "GL_OES_vertex_array_object", DE_LENGTH_OF_ARRAY(s_GL_OES_vertex_array_object), s_GL_OES_vertex_array_object }, 1654 { "GL_QCOM_driver_control", DE_LENGTH_OF_ARRAY(s_GL_QCOM_driver_control), s_GL_QCOM_driver_control }, 1655 { "GL_QCOM_extended_get", DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get), s_GL_QCOM_extended_get }, 1656 { "GL_QCOM_extended_get2", DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get2), s_GL_QCOM_extended_get2 }, 1657 { "GL_QCOM_tiled_rendering", DE_LENGTH_OF_ARRAY(s_GL_QCOM_tiled_rendering), s_GL_QCOM_tiled_rendering }, 1658 { "GL_AMD_performance_monitor", DE_LENGTH_OF_ARRAY(s_GL_AMD_performance_monitor), s_GL_AMD_performance_monitor }, 1659 { "GL_ANGLE_framebuffer_blit", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_blit), s_GL_ANGLE_framebuffer_blit }, 1660 { "GL_ANGLE_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_multisample), s_GL_ANGLE_framebuffer_multisample }, 1661 { "GL_ANGLE_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_instanced_arrays), s_GL_ANGLE_instanced_arrays }, 1662 { "GL_ANGLE_translated_shader_source", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_translated_shader_source), s_GL_ANGLE_translated_shader_source }, 1663 { "GL_EXT_base_instance", DE_LENGTH_OF_ARRAY(s_GL_EXT_base_instance), s_GL_EXT_base_instance }, 1664 { "GL_EXT_blend_func_extended", DE_LENGTH_OF_ARRAY(s_GL_EXT_blend_func_extended), s_GL_EXT_blend_func_extended }, 1665 { "GL_EXT_buffer_storage", DE_LENGTH_OF_ARRAY(s_GL_EXT_buffer_storage), s_GL_EXT_buffer_storage }, 1666 { "GL_EXT_copy_image", DE_LENGTH_OF_ARRAY(s_GL_EXT_copy_image), s_GL_EXT_copy_image }, 1667 { "GL_EXT_debug_label", DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_label), s_GL_EXT_debug_label }, 1668 { "GL_EXT_debug_marker", DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_marker), s_GL_EXT_debug_marker }, 1669 { "GL_EXT_disjoint_timer_query", DE_LENGTH_OF_ARRAY(s_GL_EXT_disjoint_timer_query), s_GL_EXT_disjoint_timer_query }, 1670 { "GL_EXT_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers), s_GL_EXT_draw_buffers }, 1671 { "GL_EXT_draw_buffers_indexed", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers_indexed), s_GL_EXT_draw_buffers_indexed }, 1672 { "GL_EXT_draw_elements_base_vertex", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_elements_base_vertex), s_GL_EXT_draw_elements_base_vertex }, 1673 { "GL_EXT_draw_instanced", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_instanced), s_GL_EXT_draw_instanced }, 1674 { "GL_EXT_geometry_shader", DE_LENGTH_OF_ARRAY(s_GL_EXT_geometry_shader), s_GL_EXT_geometry_shader }, 1675 { "GL_EXT_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_EXT_instanced_arrays), s_GL_EXT_instanced_arrays }, 1676 { "GL_EXT_multi_draw_indirect", DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_indirect), s_GL_EXT_multi_draw_indirect }, 1677 { "GL_EXT_multiview_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_EXT_multiview_draw_buffers), s_GL_EXT_multiview_draw_buffers }, 1678 { "GL_EXT_occlusion_query_boolean", DE_LENGTH_OF_ARRAY(s_GL_EXT_occlusion_query_boolean), s_GL_EXT_occlusion_query_boolean }, 1679 { "GL_EXT_primitive_bounding_box", DE_LENGTH_OF_ARRAY(s_GL_EXT_primitive_bounding_box), s_GL_EXT_primitive_bounding_box }, 1680 { "GL_EXT_raster_multisample", DE_LENGTH_OF_ARRAY(s_GL_EXT_raster_multisample), s_GL_EXT_raster_multisample }, 1681 { "GL_EXT_separate_shader_objects", DE_LENGTH_OF_ARRAY(s_GL_EXT_separate_shader_objects), s_GL_EXT_separate_shader_objects }, 1682 { "GL_EXT_sparse_texture", DE_LENGTH_OF_ARRAY(s_GL_EXT_sparse_texture), s_GL_EXT_sparse_texture }, 1683 { "GL_EXT_tessellation_shader", DE_LENGTH_OF_ARRAY(s_GL_EXT_tessellation_shader), s_GL_EXT_tessellation_shader }, 1684 { "GL_EXT_texture_border_clamp", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_border_clamp), s_GL_EXT_texture_border_clamp }, 1685 { "GL_EXT_texture_buffer", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_buffer), s_GL_EXT_texture_buffer }, 1686 { "GL_EXT_texture_filter_minmax", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_filter_minmax), s_GL_EXT_texture_filter_minmax }, 1687 { "GL_EXT_texture_view", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_view), s_GL_EXT_texture_view }, 1688 { "GL_INTEL_framebuffer_CMAA", DE_LENGTH_OF_ARRAY(s_GL_INTEL_framebuffer_CMAA), s_GL_INTEL_framebuffer_CMAA }, 1689 { "GL_INTEL_performance_query", DE_LENGTH_OF_ARRAY(s_GL_INTEL_performance_query), s_GL_INTEL_performance_query }, 1690 { "GL_KHR_blend_equation_advanced", DE_LENGTH_OF_ARRAY(s_GL_KHR_blend_equation_advanced), s_GL_KHR_blend_equation_advanced }, 1691 { "GL_KHR_debug", DE_LENGTH_OF_ARRAY(s_GL_KHR_debug), s_GL_KHR_debug }, 1692 { "GL_KHR_robustness", DE_LENGTH_OF_ARRAY(s_GL_KHR_robustness), s_GL_KHR_robustness }, 1693 { "GL_NV_bindless_texture", DE_LENGTH_OF_ARRAY(s_GL_NV_bindless_texture), s_GL_NV_bindless_texture }, 1694 { "GL_NV_blend_equation_advanced", DE_LENGTH_OF_ARRAY(s_GL_NV_blend_equation_advanced), s_GL_NV_blend_equation_advanced }, 1695 { "GL_NV_conditional_render", DE_LENGTH_OF_ARRAY(s_GL_NV_conditional_render), s_GL_NV_conditional_render }, 1696 { "GL_NV_conservative_raster", DE_LENGTH_OF_ARRAY(s_GL_NV_conservative_raster), s_GL_NV_conservative_raster }, 1697 { "GL_NV_copy_buffer", DE_LENGTH_OF_ARRAY(s_GL_NV_copy_buffer), s_GL_NV_copy_buffer }, 1698 { "GL_NV_coverage_sample", DE_LENGTH_OF_ARRAY(s_GL_NV_coverage_sample), s_GL_NV_coverage_sample }, 1699 { "GL_NV_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_NV_draw_buffers), s_GL_NV_draw_buffers }, 1700 { "GL_NV_draw_instanced", DE_LENGTH_OF_ARRAY(s_GL_NV_draw_instanced), s_GL_NV_draw_instanced }, 1701 { "GL_NV_fragment_coverage_to_color", DE_LENGTH_OF_ARRAY(s_GL_NV_fragment_coverage_to_color), s_GL_NV_fragment_coverage_to_color }, 1702 { "GL_NV_framebuffer_blit", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_blit), s_GL_NV_framebuffer_blit }, 1703 { "GL_NV_framebuffer_mixed_samples", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_mixed_samples), s_GL_NV_framebuffer_mixed_samples }, 1704 { "GL_NV_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_multisample), s_GL_NV_framebuffer_multisample }, 1705 { "GL_NV_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_NV_instanced_arrays), s_GL_NV_instanced_arrays }, 1706 { "GL_NV_internalformat_sample_query", DE_LENGTH_OF_ARRAY(s_GL_NV_internalformat_sample_query), s_GL_NV_internalformat_sample_query }, 1707 { "GL_NV_non_square_matrices", DE_LENGTH_OF_ARRAY(s_GL_NV_non_square_matrices), s_GL_NV_non_square_matrices }, 1708 { "GL_NV_path_rendering", DE_LENGTH_OF_ARRAY(s_GL_NV_path_rendering), s_GL_NV_path_rendering }, 1709 { "GL_NV_polygon_mode", DE_LENGTH_OF_ARRAY(s_GL_NV_polygon_mode), s_GL_NV_polygon_mode }, 1710 { "GL_NV_read_buffer", DE_LENGTH_OF_ARRAY(s_GL_NV_read_buffer), s_GL_NV_read_buffer }, 1711 { "GL_NV_sample_locations", DE_LENGTH_OF_ARRAY(s_GL_NV_sample_locations), s_GL_NV_sample_locations }, 1712 { "GL_NV_viewport_array", DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_array), s_GL_NV_viewport_array }, 1713 { "GL_OES_copy_image", DE_LENGTH_OF_ARRAY(s_GL_OES_copy_image), s_GL_OES_copy_image }, 1714 { "GL_OES_draw_buffers_indexed", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_buffers_indexed), s_GL_OES_draw_buffers_indexed }, 1715 { "GL_OES_draw_elements_base_vertex", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_elements_base_vertex), s_GL_OES_draw_elements_base_vertex }, 1716 { "GL_OES_geometry_shader", DE_LENGTH_OF_ARRAY(s_GL_OES_geometry_shader), s_GL_OES_geometry_shader }, 1717 { "GL_OES_get_program_binary", DE_LENGTH_OF_ARRAY(s_GL_OES_get_program_binary), s_GL_OES_get_program_binary }, 1718 { "GL_OES_primitive_bounding_box", DE_LENGTH_OF_ARRAY(s_GL_OES_primitive_bounding_box), s_GL_OES_primitive_bounding_box }, 1719 { "GL_OES_sample_shading", DE_LENGTH_OF_ARRAY(s_GL_OES_sample_shading), s_GL_OES_sample_shading }, 1720 { "GL_OES_tessellation_shader", DE_LENGTH_OF_ARRAY(s_GL_OES_tessellation_shader), s_GL_OES_tessellation_shader }, 1721 { "GL_OES_texture_3D", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_3D), s_GL_OES_texture_3D }, 1722 { "GL_OES_texture_border_clamp", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_border_clamp), s_GL_OES_texture_border_clamp }, 1723 { "GL_OES_texture_buffer", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_buffer), s_GL_OES_texture_buffer }, 1724 { "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 }, 1725 { "GL_OES_texture_view", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_view), s_GL_OES_texture_view }, 1726 { "GL_OVR_multiview", DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview), s_GL_OVR_multiview }, 1727 { "GL_QCOM_alpha_test", DE_LENGTH_OF_ARRAY(s_GL_QCOM_alpha_test), s_GL_QCOM_alpha_test }, 1728}; 1729