From 0f8d0e3cfdbd9b11b2357ed3e1a11375e7af8e80 Mon Sep 17 00:00:00 2001
From: "github-classroom[bot]"
<66690702+github-classroom[bot]@users.noreply.github.com>
Date: Tue, 19 Mar 2024 02:01:17 +0000
Subject: Initial commit
---
.gitignore | 288 +
.gitmodules | 3 +
CMakeLists.txt | 104 +
Eigen | 1 +
README.md | 164 +
glew/LICENSE.txt | 73 +
glew/README.md | 3 +
glew/auto/EGL-Registry/.dummy | 0
glew/auto/EGL-Registry/.htaccess | 12 +
glew/auto/EGL-Registry/CODE_OF_CONDUCT.md | 1 +
glew/auto/EGL-Registry/README.md | 100 +
glew/auto/EGL-Registry/api/1.0/EGL/egl.h | 286 +
glew/auto/EGL-Registry/api/1.0/egl.h | 283 +
glew/auto/EGL-Registry/api/1.1/EGL/egl.h | 226 +
glew/auto/EGL-Registry/api/1.2/EGL/egl.h | 264 +
glew/auto/EGL-Registry/api/1.2/egl.h | 260 +
glew/auto/EGL-Registry/api/EGL/egl.h | 342 +
glew/auto/EGL-Registry/api/EGL/eglext.h | 1483 +
glew/auto/EGL-Registry/api/EGL/eglplatform.h | 169 +
glew/auto/EGL-Registry/api/KHR/khrplatform.h | 311 +
glew/auto/EGL-Registry/api/egl.xml | 3532 ++
glew/auto/EGL-Registry/api/egltest.c | 8 +
glew/auto/EGL-Registry/api/genheaders.py | 619 +
glew/auto/EGL-Registry/api/reg.py | 1168 +
glew/auto/EGL-Registry/api/registry.rnc | 270 +
.../extensions/ANDROID/EGL_ANDROID_GLES_layers.txt | 64 +
.../extensions/ANDROID/EGL_ANDROID_blob_cache.txt | 211 +
.../EGL_ANDROID_create_native_client_buffer.txt | 197 +
.../ANDROID/EGL_ANDROID_framebuffer_target.txt | 102 +
.../EGL_ANDROID_front_buffer_auto_refresh.txt | 70 +
.../ANDROID/EGL_ANDROID_get_frame_timestamps.txt | 259 +
.../EGL_ANDROID_get_native_client_buffer.txt | 102 +
.../ANDROID/EGL_ANDROID_image_native_buffer.txt | 108 +
.../ANDROID/EGL_ANDROID_native_fence_sync.txt | 281 +
.../ANDROID/EGL_ANDROID_presentation_time.txt | 140 +
.../extensions/ANDROID/EGL_ANDROID_recordable.txt | 140 +
.../EGL_ANGLE_d3d_share_handle_client_buffer.txt | 98 +
.../extensions/ANGLE/EGL_ANGLE_device_d3d.txt | 93 +
.../ANGLE/EGL_ANGLE_query_surface_pointer.txt | 88 +
...L_ANGLE_surface_d3d_texture_2d_share_handle.txt | 95 +
.../ANGLE/EGL_ANGLE_sync_control_rate.txt | 99 +
.../ANGLE/EGL_ANGLE_window_fixed_size.txt | 136 +
.../extensions/ARM/EGL_ARM_image_format.txt | 126 +
.../ARM/EGL_ARM_implicit_external_sync.txt | 219 +
.../ARM/EGL_ARM_pixmap_multisample_discard.txt | 185 +
.../extensions/EXT/EGL_EXT_bind_to_front.txt | 108 +
.../extensions/EXT/EGL_EXT_buffer_age.txt | 329 +
.../extensions/EXT/EGL_EXT_client_extensions.txt | 408 +
.../extensions/EXT/EGL_EXT_client_sync.txt | 146 +
.../extensions/EXT/EGL_EXT_compositor.txt | 400 +
.../extensions/EXT/EGL_EXT_config_select_group.txt | 111 +
.../EXT/EGL_EXT_create_context_robustness.txt | 169 +
.../extensions/EXT/EGL_EXT_device_base.txt | 243 +
.../extensions/EXT/EGL_EXT_device_drm.txt | 223 +
.../EXT/EGL_EXT_device_drm_render_node.txt | 106 +
.../extensions/EXT/EGL_EXT_device_enumeration.txt | 111 +
.../extensions/EXT/EGL_EXT_device_openwf.txt | 230 +
.../EXT/EGL_EXT_device_persistent_id.txt | 202 +
.../extensions/EXT/EGL_EXT_device_query.txt | 188 +
.../extensions/EXT/EGL_EXT_device_query_name.txt | 104 +
.../extensions/EXT/EGL_EXT_explicit_device.txt | 136 +
.../EXT/EGL_EXT_gl_colorspace_bt2020_linear.txt | 175 +
.../EXT/EGL_EXT_gl_colorspace_display_p3.txt | 137 +
...GL_EXT_gl_colorspace_display_p3_passthrough.txt | 139 +
.../extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt | 130 +
.../EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt | 127 +
.../EXT/EGL_EXT_image_dma_buf_import.txt | 428 +
.../EXT/EGL_EXT_image_dma_buf_import_modifiers.txt | 244 +
.../extensions/EXT/EGL_EXT_image_gl_colorspace.txt | 136 +
.../EXT/EGL_EXT_image_implicit_sync_control.txt | 131 +
.../extensions/EXT/EGL_EXT_multiview_window.txt | 126 +
.../extensions/EXT/EGL_EXT_output_base.txt | 564 +
.../extensions/EXT/EGL_EXT_pixel_format_float.txt | 136 +
.../extensions/EXT/EGL_EXT_platform_base.txt | 371 +
.../extensions/EXT/EGL_EXT_platform_device.txt | 161 +
.../extensions/EXT/EGL_EXT_platform_wayland.txt | 135 +
.../extensions/EXT/EGL_EXT_platform_x11.txt | 414 +
.../extensions/EXT/EGL_EXT_platform_xcb.txt | 382 +
.../extensions/EXT/EGL_EXT_present_opaque.txt | 118 +
.../extensions/EXT/EGL_EXT_protected_content.txt | 329 +
.../extensions/EXT/EGL_EXT_protected_surface.txt | 230 +
.../EXT/EGL_EXT_stream_consumer_egloutput.txt | 248 +
.../EXT/EGL_EXT_surface_CTA861_3_metadata.txt | 136 +
.../EXT/EGL_EXT_surface_SMPTE2086_metadata.txt | 247 +
.../extensions/EXT/EGL_EXT_surface_compression.txt | 289 +
.../EXT/EGL_EXT_swap_buffers_with_damage.txt | 343 +
.../extensions/EXT/EGL_EXT_sync_reuse.txt | 376 +
.../extensions/EXT/EGL_EXT_yuv_surface.txt | 393 +
.../extensions/HI/EGL_HI_clientpixmap.txt | 144 +
.../extensions/HI/EGL_HI_colorformats.txt | 138 +
.../extensions/IMG/EGL_IMG_context_priority.txt | 166 +
.../extensions/IMG/EGL_IMG_image_plane_attribs.txt | 156 +
.../extensions/KHR/EGL_KHR_cl_event.txt | 278 +
.../extensions/KHR/EGL_KHR_cl_event2.txt | 364 +
.../extensions/KHR/EGL_KHR_config_attribs.txt | 234 +
.../extensions/KHR/EGL_KHR_create_context.txt | 648 +
.../KHR/EGL_KHR_create_context_no_error.txt | 142 +
.../EGL-Registry/extensions/KHR/EGL_KHR_debug.txt | 573 +
.../extensions/KHR/EGL_KHR_display_reference.txt | 242 +
.../extensions/KHR/EGL_KHR_fence_sync.txt | 562 +
.../KHR/EGL_KHR_get_all_proc_addresses.txt | 206 +
.../extensions/KHR/EGL_KHR_gl_colorspace.txt | 197 +
.../extensions/KHR/EGL_KHR_gl_image.txt | 432 +
.../EGL-Registry/extensions/KHR/EGL_KHR_image.txt | 140 +
.../extensions/KHR/EGL_KHR_image_base.txt | 755 +
.../extensions/KHR/EGL_KHR_image_pixmap.txt | 158 +
.../extensions/KHR/EGL_KHR_lock_surface.txt | 727 +
.../extensions/KHR/EGL_KHR_lock_surface2.txt | 1077 +
.../extensions/KHR/EGL_KHR_lock_surface3.txt | 679 +
.../KHR/EGL_KHR_mutable_render_buffer.txt | 325 +
.../extensions/KHR/EGL_KHR_no_config_context.txt | 261 +
.../extensions/KHR/EGL_KHR_partial_update.txt | 501 +
.../extensions/KHR/EGL_KHR_platform_android.txt | 102 +
.../extensions/KHR/EGL_KHR_platform_gbm.txt | 295 +
.../extensions/KHR/EGL_KHR_platform_wayland.txt | 122 +
.../extensions/KHR/EGL_KHR_platform_x11.txt | 378 +
.../extensions/KHR/EGL_KHR_reusable_sync.txt | 575 +
.../EGL-Registry/extensions/KHR/EGL_KHR_stream.txt | 1091 +
.../KHR/EGL_KHR_stream_consumer_gltexture.txt | 402 +
.../KHR/EGL_KHR_stream_cross_process_fd.txt | 560 +
.../extensions/KHR/EGL_KHR_stream_fifo.txt | 433 +
.../KHR/EGL_KHR_stream_producer_aldatalocator.txt | 178 +
.../KHR/EGL_KHR_stream_producer_eglsurface.txt | 386 +
.../extensions/KHR/EGL_KHR_surfaceless_context.txt | 174 +
.../KHR/EGL_KHR_swap_buffers_with_damage.txt | 449 +
.../extensions/KHR/EGL_KHR_vg_parent_image.txt | 138 +
.../extensions/KHR/EGL_KHR_wait_sync.txt | 278 +
.../extensions/MESA/EGL_MESA_drm_image.txt | 157 +
.../MESA/EGL_MESA_image_dma_buf_export.txt | 147 +
.../extensions/MESA/EGL_MESA_platform_gbm.txt | 319 +
.../MESA/EGL_MESA_platform_surfaceless.txt | 120 +
.../extensions/MESA/EGL_MESA_query_driver.txt | 95 +
.../extensions/NOK/EGL_NOK_swap_region2.txt | 227 +
.../extensions/NOK/EGL_NOK_texture_from_pixmap.txt | 321 +
.../extensions/NV/EGL_NV_3dvision_surface.txt | 94 +
.../NV/EGL_NV_context_priority_realtime.txt | 195 +
.../extensions/NV/EGL_NV_coverage_sample.txt | 554 +
.../NV/EGL_NV_coverage_sample_resolve.txt | 127 +
.../extensions/NV/EGL_NV_cuda_event.txt | 206 +
.../extensions/NV/EGL_NV_depth_nonlinear.txt | 142 +
.../extensions/NV/EGL_NV_device_cuda.txt | 91 +
.../EGL-Registry/extensions/NV/EGL_NV_n_buffer.txt | 157 +
.../extensions/NV/EGL_NV_native_query.txt | 137 +
.../extensions/NV/EGL_NV_post_convert_rounding.txt | 85 +
.../extensions/NV/EGL_NV_post_sub_buffer.txt | 241 +
.../NV/EGL_NV_stream_consumer_eglimage.txt | 367 +
.../NV/EGL_NV_stream_consumer_gltexture_yuv.txt | 280 +
.../extensions/NV/EGL_NV_stream_dma.txt | 137 +
.../extensions/NV/EGL_NV_stream_fifo_next.txt | 105 +
.../NV/EGL_NV_stream_fifo_synchronous.txt | 211 +
.../extensions/NV/EGL_NV_stream_flush.txt | 132 +
.../extensions/NV/EGL_NV_stream_frame_limits.txt | 152 +
.../extensions/NV/EGL_NV_stream_metadata.txt | 335 +
.../extensions/NV/EGL_NV_stream_origin.txt | 298 +
.../extensions/NV/EGL_NV_stream_remote.txt | 472 +
.../extensions/NV/EGL_NV_stream_reset.txt | 306 +
.../extensions/NV/EGL_NV_stream_socket.txt | 229 +
.../extensions/NV/EGL_NV_stream_sync.txt | 198 +
.../EGL-Registry/extensions/NV/EGL_NV_sync.txt | 554 +
.../extensions/NV/EGL_NV_system_time.txt | 99 +
.../TIZEN/EGL_TIZEN_image_native_buffer.txt | 114 +
.../TIZEN/EGL_TIZEN_image_native_surface.txt | 121 +
.../extensions/WL/EGL_WL_bind_wayland_display.txt | 217 +
.../WL/EGL_WL_create_wayland_buffer_from_image.txt | 101 +
glew/auto/EGL-Registry/index.php | 382 +
glew/auto/EGL-Registry/registry.tcl | 770 +
glew/auto/EGL-Registry/sdk/docs/man/.htaccess | 13 +
glew/auto/EGL-Registry/sdk/docs/man/NOTES | 59 +
glew/auto/EGL-Registry/sdk/docs/man/README | 1 +
glew/auto/EGL-Registry/sdk/docs/man/bottom.php | 9 +
glew/auto/EGL-Registry/sdk/docs/man/copyright.xml | 21 +
.../auto/EGL-Registry/sdk/docs/man/db4-upgrade.xsl | 1455 +
.../sdk/docs/man/docbook4/eglBindAPI.xml | 130 +
.../sdk/docs/man/docbook4/eglBindTexImage.xml | 181 +
.../sdk/docs/man/docbook4/eglChooseConfig.xml | 929 +
.../sdk/docs/man/docbook4/eglCopyBuffers.xml | 129 +
.../sdk/docs/man/docbook4/eglCreateContext.xml | 220 +
.../docbook4/eglCreatePbufferFromClientBuffer.xml | 389 +
.../docs/man/docbook4/eglCreatePbufferSurface.xml | 333 +
.../docs/man/docbook4/eglCreatePixmapSurface.xml | 227 +
.../docs/man/docbook4/eglCreateWindowSurface.xml | 244 +
.../sdk/docs/man/docbook4/eglDestroyContext.xml | 84 +
.../sdk/docs/man/docbook4/eglDestroySurface.xml | 86 +
.../sdk/docs/man/docbook4/eglGetConfigAttrib.xml | 326 +
.../sdk/docs/man/docbook4/eglGetConfigs.xml | 114 +
.../sdk/docs/man/docbook4/eglGetCurrentContext.xml | 51 +
.../sdk/docs/man/docbook4/eglGetCurrentDisplay.xml | 52 +
.../sdk/docs/man/docbook4/eglGetCurrentSurface.xml | 66 +
.../sdk/docs/man/docbook4/eglGetDisplay.xml | 75 +
.../sdk/docs/man/docbook4/eglGetError.xml | 145 +
.../sdk/docs/man/docbook4/eglGetProcAddress.xml | 86 +
.../sdk/docs/man/docbook4/eglInitialize.xml | 109 +
.../sdk/docs/man/docbook4/eglIntro.xml | 264 +
.../sdk/docs/man/docbook4/eglMakeCurrent.xml | 203 +
.../sdk/docs/man/docbook4/eglQueryAPI.xml | 85 +
.../sdk/docs/man/docbook4/eglQueryContext.xml | 193 +
.../sdk/docs/man/docbook4/eglQueryString.xml | 142 +
.../sdk/docs/man/docbook4/eglQuerySurface.xml | 288 +
.../sdk/docs/man/docbook4/eglReleaseTexImage.xml | 110 +
.../sdk/docs/man/docbook4/eglReleaseThread.xml | 134 +
.../sdk/docs/man/docbook4/eglSurfaceAttrib.xml | 216 +
.../sdk/docs/man/docbook4/eglSwapBuffers.xml | 144 +
.../sdk/docs/man/docbook4/eglSwapInterval.xml | 103 +
.../sdk/docs/man/docbook4/eglTerminate.xml | 82 +
.../sdk/docs/man/docbook4/eglWaitClient.xml | 93 +
.../sdk/docs/man/docbook4/eglWaitGL.xml | 91 +
.../sdk/docs/man/docbook4/eglWaitNative.xml | 82 +
.../sdk/docs/man/docbook4/reference.xml | 174 +
glew/auto/EGL-Registry/sdk/docs/man/eglBindAPI.xml | 123 +
.../EGL-Registry/sdk/docs/man/eglBindTexImage.xml | 172 +
.../EGL-Registry/sdk/docs/man/eglChooseConfig.xml | 915 +
.../sdk/docs/man/eglClientWaitSync.xml | 161 +
.../EGL-Registry/sdk/docs/man/eglCopyBuffers.xml | 120 +
.../EGL-Registry/sdk/docs/man/eglCreateContext.xml | 212 +
.../EGL-Registry/sdk/docs/man/eglCreateImage.xml | 624 +
.../docs/man/eglCreatePbufferFromClientBuffer.xml | 386 +
.../sdk/docs/man/eglCreatePbufferSurface.xml | 359 +
.../sdk/docs/man/eglCreatePixmapSurface.xml | 87 +
.../docs/man/eglCreatePlatformPixmapSurface.xml | 270 +
.../docs/man/eglCreatePlatformWindowSurface.xml | 296 +
.../EGL-Registry/sdk/docs/man/eglCreateSync.xml | 311 +
.../sdk/docs/man/eglCreateWindowSurface.xml | 87 +
.../sdk/docs/man/eglDestroyContext.xml | 75 +
.../EGL-Registry/sdk/docs/man/eglDestroyImage.xml | 85 +
.../sdk/docs/man/eglDestroySurface.xml | 77 +
.../EGL-Registry/sdk/docs/man/eglDestroySync.xml | 98 +
.../sdk/docs/man/eglGetConfigAttrib.xml | 317 +
.../EGL-Registry/sdk/docs/man/eglGetConfigs.xml | 105 +
.../sdk/docs/man/eglGetCurrentContext.xml | 42 +
.../sdk/docs/man/eglGetCurrentDisplay.xml | 57 +
.../sdk/docs/man/eglGetCurrentSurface.xml | 58 +
.../EGL-Registry/sdk/docs/man/eglGetDisplay.xml | 87 +
.../auto/EGL-Registry/sdk/docs/man/eglGetError.xml | 143 +
.../sdk/docs/man/eglGetPlatformDisplay.xml | 122 +
.../sdk/docs/man/eglGetProcAddress.xml | 98 +
.../EGL-Registry/sdk/docs/man/eglGetSyncAttrib.xml | 148 +
.../EGL-Registry/sdk/docs/man/eglInitialize.xml | 100 +
glew/auto/EGL-Registry/sdk/docs/man/eglIntro.xml | 275 +
.../EGL-Registry/sdk/docs/man/eglMakeCurrent.xml | 321 +
.../auto/EGL-Registry/sdk/docs/man/eglQueryAPI.xml | 76 +
.../EGL-Registry/sdk/docs/man/eglQueryContext.xml | 184 +
.../EGL-Registry/sdk/docs/man/eglQueryString.xml | 179 +
.../EGL-Registry/sdk/docs/man/eglQuerySurface.xml | 310 +
.../sdk/docs/man/eglReleaseTexImage.xml | 101 +
.../EGL-Registry/sdk/docs/man/eglReleaseThread.xml | 125 +
.../EGL-Registry/sdk/docs/man/eglSurfaceAttrib.xml | 207 +
.../EGL-Registry/sdk/docs/man/eglSwapBuffers.xml | 152 +
.../EGL-Registry/sdk/docs/man/eglSwapInterval.xml | 94 +
.../EGL-Registry/sdk/docs/man/eglTerminate.xml | 73 +
.../EGL-Registry/sdk/docs/man/eglWaitClient.xml | 84 +
glew/auto/EGL-Registry/sdk/docs/man/eglWaitGL.xml | 82 +
.../EGL-Registry/sdk/docs/man/eglWaitNative.xml | 73 +
.../auto/EGL-Registry/sdk/docs/man/eglWaitSync.xml | 134 +
.../EGL-Registry/sdk/docs/man/headBackground.jpg | Bin 0 -> 9467 bytes
.../EGL-Registry/sdk/docs/man/html/EGL_300.png | Bin 0 -> 26048 bytes
.../EGL-Registry/sdk/docs/man/html/KhronosLogo.jpg | Bin 0 -> 2454 bytes
glew/auto/EGL-Registry/sdk/docs/man/html/accord.js | 58 +
.../sdk/docs/man/html/bullets-contract.gif | Bin 0 -> 82 bytes
.../EGL-Registry/sdk/docs/man/html/bullets-end.gif | Bin 0 -> 82 bytes
.../sdk/docs/man/html/bullets-expand.gif | Bin 0 -> 90 bytes
.../sdk/docs/man/html/eglBindAPI.xhtml | 160 +
.../sdk/docs/man/html/eglBindTexImage.xhtml | 228 +
.../sdk/docs/man/html/eglChooseConfig.xhtml | 1150 +
.../sdk/docs/man/html/eglClientWaitSync.xhtml | 226 +
.../sdk/docs/man/html/eglCopyBuffers.xhtml | 170 +
.../sdk/docs/man/html/eglCreateContext.xhtml | 287 +
.../sdk/docs/man/html/eglCreateImage.xhtml | 774 +
.../html/eglCreatePbufferFromClientBuffer.xhtml | 468 +
.../docs/man/html/eglCreatePbufferSurface.xhtml | 435 +
.../sdk/docs/man/html/eglCreatePixmapSurface.xhtml | 150 +
.../man/html/eglCreatePlatformPixmapSurface.xhtml | 341 +
.../man/html/eglCreatePlatformWindowSurface.xhtml | 368 +
.../sdk/docs/man/html/eglCreateSync.xhtml | 389 +
.../sdk/docs/man/html/eglCreateWindowSurface.xhtml | 149 +
.../sdk/docs/man/html/eglDestroyContext.xhtml | 121 +
.../sdk/docs/man/html/eglDestroyImage.xhtml | 132 +
.../sdk/docs/man/html/eglDestroySurface.xhtml | 123 +
.../sdk/docs/man/html/eglDestroySync.xhtml | 145 +
.../sdk/docs/man/html/eglGetConfigAttrib.xhtml | 508 +
.../sdk/docs/man/html/eglGetConfigs.xhtml | 169 +
.../sdk/docs/man/html/eglGetCurrentContext.xhtml | 70 +
.../sdk/docs/man/html/eglGetCurrentDisplay.xhtml | 86 +
.../sdk/docs/man/html/eglGetCurrentSurface.xhtml | 92 +
.../sdk/docs/man/html/eglGetDisplay.xhtml | 121 +
.../sdk/docs/man/html/eglGetError.xhtml | 233 +
.../sdk/docs/man/html/eglGetPlatformDisplay.xhtml | 172 +
.../sdk/docs/man/html/eglGetProcAddress.xhtml | 133 +
.../sdk/docs/man/html/eglGetSyncAttrib.xhtml | 231 +
.../sdk/docs/man/html/eglInitialize.xhtml | 149 +
.../EGL-Registry/sdk/docs/man/html/eglIntro.xhtml | 304 +
.../sdk/docs/man/html/eglMakeCurrent.xhtml | 381 +
.../sdk/docs/man/html/eglQueryAPI.xhtml | 107 +
.../sdk/docs/man/html/eglQueryContext.xhtml | 267 +
.../sdk/docs/man/html/eglQueryString.xhtml | 236 +
.../sdk/docs/man/html/eglQuerySurface.xhtml | 435 +
.../sdk/docs/man/html/eglReleaseTexImage.xhtml | 155 +
.../sdk/docs/man/html/eglReleaseThread.xhtml | 158 +
.../sdk/docs/man/html/eglSurfaceAttrib.xhtml | 274 +
.../sdk/docs/man/html/eglSwapBuffers.xhtml | 196 +
.../sdk/docs/man/html/eglSwapInterval.xhtml | 137 +
.../sdk/docs/man/html/eglTerminate.xhtml | 108 +
.../sdk/docs/man/html/eglWaitClient.xhtml | 114 +
.../EGL-Registry/sdk/docs/man/html/eglWaitGL.xhtml | 112 +
.../sdk/docs/man/html/eglWaitNative.xhtml | 108 +
.../sdk/docs/man/html/eglWaitSync.xhtml | 190 +
glew/auto/EGL-Registry/sdk/docs/man/html/index.php | 121 +
.../EGL-Registry/sdk/docs/man/html/indexflat.php | 135 +
.../EGL-Registry/sdk/docs/man/html/khronos-man.css | 209 +
.../EGL-Registry/sdk/docs/man/html/khronos-man.xsl | 126 +
.../EGL-Registry/sdk/docs/man/html/makeindex.py | 316 +
.../EGL-Registry/sdk/docs/man/html/old-egl-man.xsl | 174 +
.../EGL-Registry/sdk/docs/man/html/present.css | 47 +
.../auto/EGL-Registry/sdk/docs/man/html/start.html | 87 +
.../EGL-Registry/sdk/docs/man/html/style-index.css | 2 +
.../EGL-Registry/sdk/docs/man/html/undohtml.css | 9 +
glew/auto/EGL-Registry/sdk/docs/man/html/vn | 221 +
glew/auto/EGL-Registry/sdk/docs/man/index.php | 9 +
glew/auto/EGL-Registry/sdk/docs/man/mkshar | 3 +
glew/auto/EGL-Registry/sdk/docs/man/reference.xml | 182 +
glew/auto/EGL-Registry/sdk/docs/man/setvars | 5 +
glew/auto/EGL-Registry/sdk/docs/man/top.php | 46 +
.../EGL-Registry/sdk/docs/man/xhtml/EGL_300.png | Bin 0 -> 26048 bytes
.../EGL-Registry/sdk/docs/man/xhtml/Header.html | 37 +
.../EGL-Registry/sdk/docs/man/xhtml/Intro.html | 116 +
.../sdk/docs/man/xhtml/KhronosLogo.jpg | Bin 0 -> 2454 bytes
glew/auto/EGL-Registry/sdk/docs/man/xhtml/TOC.html | 179 +
.../sdk/docs/man/xhtml/bullets-contract.gif | Bin 0 -> 82 bytes
.../sdk/docs/man/xhtml/bullets-end.gif | Bin 0 -> 82 bytes
.../sdk/docs/man/xhtml/bullets-expand.gif | Bin 0 -> 90 bytes
.../sdk/docs/man/xhtml/copyright.inc.xsl | 15 +
glew/auto/EGL-Registry/sdk/docs/man/xhtml/ctop.xsl | 1319 +
.../EGL-Registry/sdk/docs/man/xhtml/egl-man.xsl | 274 +
.../sdk/docs/man/xhtml/eglBindAPI.html | 365 +
.../sdk/docs/man/xhtml/eglBindTexImage.html | 435 +
.../sdk/docs/man/xhtml/eglChooseConfig.html | 1361 +
.../sdk/docs/man/xhtml/eglCopyBuffers.html | 377 +
.../sdk/docs/man/xhtml/eglCreateContext.html | 488 +
.../xhtml/eglCreatePbufferFromClientBuffer.html | 669 +
.../docs/man/xhtml/eglCreatePbufferSurface.html | 605 +
.../sdk/docs/man/xhtml/eglCreatePixmapSurface.html | 494 +
.../sdk/docs/man/xhtml/eglCreateWindowSurface.html | 512 +
.../sdk/docs/man/xhtml/eglDestroyContext.html | 327 +
.../sdk/docs/man/xhtml/eglDestroySurface.html | 329 +
.../sdk/docs/man/xhtml/eglGetConfigAttrib.html | 715 +
.../sdk/docs/man/xhtml/eglGetConfigs.html | 375 +
.../sdk/docs/man/xhtml/eglGetCurrentContext.html | 274 +
.../sdk/docs/man/xhtml/eglGetCurrentDisplay.html | 275 +
.../sdk/docs/man/xhtml/eglGetCurrentSurface.html | 296 +
.../sdk/docs/man/xhtml/eglGetDisplay.html | 305 +
.../sdk/docs/man/xhtml/eglGetError.html | 430 +
.../sdk/docs/man/xhtml/eglGetProcAddress.html | 316 +
.../sdk/docs/man/xhtml/eglInitialize.html | 355 +
.../EGL-Registry/sdk/docs/man/xhtml/eglIntro.html | 492 +
.../sdk/docs/man/xhtml/eglMakeCurrent.html | 456 +
.../sdk/docs/man/xhtml/eglQueryAPI.html | 313 +
.../sdk/docs/man/xhtml/eglQueryContext.html | 474 +
.../sdk/docs/man/xhtml/eglQueryString.html | 401 +
.../sdk/docs/man/xhtml/eglQuerySurface.html | 599 +
.../sdk/docs/man/xhtml/eglReleaseTexImage.html | 362 +
.../sdk/docs/man/xhtml/eglReleaseThread.html | 364 +
.../sdk/docs/man/xhtml/eglSurfaceAttrib.html | 481 +
.../sdk/docs/man/xhtml/eglSwapBuffers.html | 385 +
.../sdk/docs/man/xhtml/eglSwapInterval.html | 344 +
.../sdk/docs/man/xhtml/eglTerminate.html | 314 +
.../sdk/docs/man/xhtml/eglWaitClient.html | 320 +
.../EGL-Registry/sdk/docs/man/xhtml/eglWaitGL.html | 318 +
.../sdk/docs/man/xhtml/eglWaitNative.html | 314 +
.../sdk/docs/man/xhtml/headBackground.jpg | Bin 0 -> 9467 bytes
.../EGL-Registry/sdk/docs/man/xhtml/index.html | 15 +
.../EGL-Registry/sdk/docs/man/xhtml/maketoc.pl | 354 +
.../EGL-Registry/sdk/docs/man/xhtml/opengl-man.xsl | 49 +
.../EGL-Registry/sdk/docs/man/xhtml/present.css | 47 +
.../auto/EGL-Registry/sdk/docs/man/xhtml/style.css | 2 +
.../EGL-Registry/sdk/docs/man/xhtml/styles-css.xsl | 214 +
.../EGL-Registry/sdk/docs/man/xhtml/undohtml.css | 9 +
glew/auto/EGL-Registry/specs/EGLTechNote0001.html | 110 +
.../specs/Khronos-1600-Transparent-May07.png | Bin 0 -> 145052 bytes
glew/auto/EGL-Registry/specs/eglspec.1.0.pdf | Bin 0 -> 238654 bytes
glew/auto/EGL-Registry/specs/eglspec.1.1.pdf | Bin 0 -> 301346 bytes
glew/auto/EGL-Registry/specs/eglspec.1.2.pdf | Bin 0 -> 478979 bytes
glew/auto/EGL-Registry/specs/eglspec.1.3.pdf | Bin 0 -> 516479 bytes
glew/auto/EGL-Registry/specs/eglspec.1.4.pdf | Bin 0 -> 342048 bytes
.../EGL-Registry/specs/eglspec.1.4.withchanges.pdf | Bin 0 -> 347659 bytes
glew/auto/EGL-Registry/specs/eglspec.1.5.pdf | Bin 0 -> 433708 bytes
.../EGL-Registry/specs/eglspec.1.5.withchanges.pdf | Bin 0 -> 435618 bytes
glew/auto/EGL-Registry/specs/igstyle.css | 185 +
glew/auto/EGL-Registry/specs/legal.html | 34 +
glew/auto/EGL-Registry/specs/legal.xhtml | 36 +
glew/auto/bin/filter_gl_ext.sh | 614 +
glew/auto/bin/filter_gles_ext.sh | 20 +
glew/auto/bin/filter_spec.py | 38 +
glew/auto/bin/make.pl | 224 +
glew/auto/bin/make_def_fun.pl | 37 +
glew/auto/bin/make_def_var.pl | 33 +
glew/auto/bin/make_enable_index.pl | 48 +
glew/auto/bin/make_header.pl | 73 +
glew/auto/bin/make_html.pl | 57 +
glew/auto/bin/make_index.pl | 41 +
glew/auto/bin/make_info.pl | 71 +
glew/auto/bin/make_info_list.pl | 49 +
glew/auto/bin/make_init.pl | 61 +
glew/auto/bin/make_initd.pl | 45 +
glew/auto/bin/make_list.pl | 75 +
glew/auto/bin/make_list2.pl | 46 +
glew/auto/bin/make_str.pl | 55 +
glew/auto/bin/make_struct_fun.pl | 38 +
glew/auto/bin/make_struct_var.pl | 33 +
glew/auto/bin/parse_spec.pl | 410 +
glew/auto/bin/parse_xml.py | 145 +
glew/auto/bin/update_ext.sh | 26 +
glew/auto/blacklist | 27 +
glew/auto/custom.txt | 7 +
glew/auto/doc/advanced.html | 130 +
glew/auto/doc/basic.html | 180 +
glew/auto/doc/build.html | 49 +
glew/auto/doc/credits.html | 2 +
glew/auto/doc/index.html | 113 +
glew/auto/doc/install.html | 126 +
glew/auto/doc/log.html | 1319 +
glew/auto/extensions/gl/.dummy | 0
glew/auto/extensions/gl/EGL_ANDROID_GLES_layers | 4 +
glew/auto/extensions/gl/EGL_ANDROID_blob_cache | 5 +
.../gl/EGL_ANDROID_create_native_client_buffer | 9 +
.../extensions/gl/EGL_ANDROID_framebuffer_target | 5 +
.../gl/EGL_ANDROID_front_buffer_auto_refresh | 5 +
.../extensions/gl/EGL_ANDROID_get_frame_timestamps | 24 +
.../gl/EGL_ANDROID_get_native_client_buffer | 5 +
.../extensions/gl/EGL_ANDROID_image_native_buffer | 5 +
.../extensions/gl/EGL_ANDROID_native_fence_sync | 9 +
.../extensions/gl/EGL_ANDROID_presentation_time | 5 +
glew/auto/extensions/gl/EGL_ANDROID_recordable | 5 +
.../gl/EGL_ANGLE_d3d_share_handle_client_buffer | 5 +
glew/auto/extensions/gl/EGL_ANGLE_device_d3d | 6 +
.../extensions/gl/EGL_ANGLE_query_surface_pointer | 5 +
.../EGL_ANGLE_surface_d3d_texture_2d_share_handle | 5 +
.../auto/extensions/gl/EGL_ANGLE_sync_control_rate | 5 +
.../auto/extensions/gl/EGL_ANGLE_window_fixed_size | 5 +
glew/auto/extensions/gl/EGL_ARM_image_format | 6 +
.../extensions/gl/EGL_ARM_implicit_external_sync | 5 +
.../gl/EGL_ARM_pixmap_multisample_discard | 5 +
glew/auto/extensions/gl/EGL_EXT_bind_to_front | 5 +
glew/auto/extensions/gl/EGL_EXT_buffer_age | 5 +
glew/auto/extensions/gl/EGL_EXT_client_extensions | 4 +
glew/auto/extensions/gl/EGL_EXT_client_sync | 7 +
glew/auto/extensions/gl/EGL_EXT_compositor | 15 +
.../auto/extensions/gl/EGL_EXT_config_select_group | 5 +
.../gl/EGL_EXT_create_context_robustness | 8 +
glew/auto/extensions/gl/EGL_EXT_device_base | 7 +
glew/auto/extensions/gl/EGL_EXT_device_drm | 6 +
.../extensions/gl/EGL_EXT_device_drm_render_node | 5 +
glew/auto/extensions/gl/EGL_EXT_device_enumeration | 5 +
glew/auto/extensions/gl/EGL_EXT_device_openwf | 6 +
.../extensions/gl/EGL_EXT_device_persistent_id | 8 +
glew/auto/extensions/gl/EGL_EXT_device_query | 10 +
glew/auto/extensions/gl/EGL_EXT_device_query_name | 5 +
glew/auto/extensions/gl/EGL_EXT_explicit_device | 5 +
.../gl/EGL_EXT_gl_colorspace_bt2020_linear | 5 +
.../extensions/gl/EGL_EXT_gl_colorspace_bt2020_pq | 5 +
.../extensions/gl/EGL_EXT_gl_colorspace_display_p3 | 5 +
.../gl/EGL_EXT_gl_colorspace_display_p3_linear | 5 +
.../EGL_EXT_gl_colorspace_display_p3_passthrough | 5 +
.../auto/extensions/gl/EGL_EXT_gl_colorspace_scrgb | 5 +
.../gl/EGL_EXT_gl_colorspace_scrgb_linear | 5 +
.../extensions/gl/EGL_EXT_image_dma_buf_import | 26 +
.../gl/EGL_EXT_image_dma_buf_import_modifiers | 17 +
.../auto/extensions/gl/EGL_EXT_image_gl_colorspace | 6 +
.../gl/EGL_EXT_image_implicit_sync_control | 7 +
glew/auto/extensions/gl/EGL_EXT_multiview_window | 5 +
glew/auto/extensions/gl/EGL_EXT_output_base | 17 +
glew/auto/extensions/gl/EGL_EXT_output_drm | 7 +
glew/auto/extensions/gl/EGL_EXT_output_openwf | 6 +
glew/auto/extensions/gl/EGL_EXT_pixel_format_float | 7 +
glew/auto/extensions/gl/EGL_EXT_platform_base | 7 +
glew/auto/extensions/gl/EGL_EXT_platform_device | 5 +
glew/auto/extensions/gl/EGL_EXT_platform_wayland | 5 +
glew/auto/extensions/gl/EGL_EXT_platform_x11 | 6 +
glew/auto/extensions/gl/EGL_EXT_platform_xcb | 6 +
glew/auto/extensions/gl/EGL_EXT_present_opaque | 5 +
glew/auto/extensions/gl/EGL_EXT_protected_content | 5 +
glew/auto/extensions/gl/EGL_EXT_protected_surface | 5 +
.../gl/EGL_EXT_stream_consumer_egloutput | 5 +
.../gl/EGL_EXT_surface_CTA861_3_metadata | 6 +
.../gl/EGL_EXT_surface_SMPTE2086_metadata | 15 +
.../auto/extensions/gl/EGL_EXT_surface_compression | 22 +
.../extensions/gl/EGL_EXT_swap_buffers_with_damage | 5 +
glew/auto/extensions/gl/EGL_EXT_sync_reuse | 5 +
glew/auto/extensions/gl/EGL_EXT_yuv_surface | 29 +
glew/auto/extensions/gl/EGL_HI_clientpixmap | 6 +
glew/auto/extensions/gl/EGL_HI_colorformats | 8 +
glew/auto/extensions/gl/EGL_IMG_context_priority | 8 +
.../auto/extensions/gl/EGL_IMG_image_plane_attribs | 6 +
glew/auto/extensions/gl/EGL_KHR_cl_event | 7 +
glew/auto/extensions/gl/EGL_KHR_cl_event2 | 8 +
.../gl/EGL_KHR_client_get_all_proc_addresses | 4 +
glew/auto/extensions/gl/EGL_KHR_config_attribs | 7 +
.../extensions/gl/EGL_KHR_context_flush_control | 7 +
glew/auto/extensions/gl/EGL_KHR_create_context | 18 +
.../extensions/gl/EGL_KHR_create_context_no_error | 5 +
glew/auto/extensions/gl/EGL_KHR_debug | 19 +
glew/auto/extensions/gl/EGL_KHR_display_reference | 6 +
glew/auto/extensions/gl/EGL_KHR_fence_sync | 7 +
.../extensions/gl/EGL_KHR_get_all_proc_addresses | 4 +
glew/auto/extensions/gl/EGL_KHR_gl_colorspace | 7 +
.../extensions/gl/EGL_KHR_gl_renderbuffer_image | 5 +
.../auto/extensions/gl/EGL_KHR_gl_texture_2D_image | 6 +
.../auto/extensions/gl/EGL_KHR_gl_texture_3D_image | 6 +
.../extensions/gl/EGL_KHR_gl_texture_cubemap_image | 10 +
glew/auto/extensions/gl/EGL_KHR_image | 8 +
glew/auto/extensions/gl/EGL_KHR_image_base | 6 +
glew/auto/extensions/gl/EGL_KHR_image_pixmap | 5 +
glew/auto/extensions/gl/EGL_KHR_lock_surface | 27 +
glew/auto/extensions/gl/EGL_KHR_lock_surface2 | 5 +
glew/auto/extensions/gl/EGL_KHR_lock_surface3 | 27 +
.../extensions/gl/EGL_KHR_mutable_render_buffer | 5 +
glew/auto/extensions/gl/EGL_KHR_no_config_context | 5 +
glew/auto/extensions/gl/EGL_KHR_partial_update | 6 +
glew/auto/extensions/gl/EGL_KHR_platform_android | 5 +
glew/auto/extensions/gl/EGL_KHR_platform_gbm | 5 +
glew/auto/extensions/gl/EGL_KHR_platform_wayland | 5 +
glew/auto/extensions/gl/EGL_KHR_platform_x11 | 6 +
glew/auto/extensions/gl/EGL_KHR_reusable_sync | 19 +
glew/auto/extensions/gl/EGL_KHR_stream | 22 +
glew/auto/extensions/gl/EGL_KHR_stream_attrib | 13 +
.../gl/EGL_KHR_stream_consumer_gltexture | 8 +
.../extensions/gl/EGL_KHR_stream_cross_process_fd | 7 +
glew/auto/extensions/gl/EGL_KHR_stream_fifo | 9 +
.../gl/EGL_KHR_stream_producer_aldatalocator | 4 +
.../gl/EGL_KHR_stream_producer_eglsurface | 6 +
.../auto/extensions/gl/EGL_KHR_surfaceless_context | 4 +
.../extensions/gl/EGL_KHR_swap_buffers_with_damage | 5 +
glew/auto/extensions/gl/EGL_KHR_vg_parent_image | 5 +
glew/auto/extensions/gl/EGL_KHR_wait_sync | 5 +
glew/auto/extensions/gl/EGL_MESA_drm_image | 14 +
.../extensions/gl/EGL_MESA_image_dma_buf_export | 6 +
glew/auto/extensions/gl/EGL_MESA_platform_gbm | 5 +
.../extensions/gl/EGL_MESA_platform_surfaceless | 5 +
glew/auto/extensions/gl/EGL_MESA_query_driver | 6 +
glew/auto/extensions/gl/EGL_NOK_swap_region | 5 +
glew/auto/extensions/gl/EGL_NOK_swap_region2 | 5 +
.../auto/extensions/gl/EGL_NOK_texture_from_pixmap | 5 +
glew/auto/extensions/gl/EGL_NV_3dvision_surface | 5 +
.../extensions/gl/EGL_NV_context_priority_realtime | 5 +
glew/auto/extensions/gl/EGL_NV_coverage_sample | 6 +
.../extensions/gl/EGL_NV_coverage_sample_resolve | 7 +
glew/auto/extensions/gl/EGL_NV_cuda_event | 7 +
glew/auto/extensions/gl/EGL_NV_depth_nonlinear | 7 +
glew/auto/extensions/gl/EGL_NV_device_cuda | 5 +
glew/auto/extensions/gl/EGL_NV_native_query | 7 +
.../extensions/gl/EGL_NV_post_convert_rounding | 4 +
glew/auto/extensions/gl/EGL_NV_post_sub_buffer | 6 +
glew/auto/extensions/gl/EGL_NV_quadruple_buffer | 5 +
.../gl/EGL_NV_robustness_video_memory_purge | 5 +
.../extensions/gl/EGL_NV_stream_consumer_eglimage | 12 +
.../gl/EGL_NV_stream_consumer_gltexture_yuv | 10 +
.../auto/extensions/gl/EGL_NV_stream_cross_display | 5 +
glew/auto/extensions/gl/EGL_NV_stream_cross_object | 5 +
.../extensions/gl/EGL_NV_stream_cross_partition | 5 +
.../auto/extensions/gl/EGL_NV_stream_cross_process | 5 +
glew/auto/extensions/gl/EGL_NV_stream_cross_system | 5 +
glew/auto/extensions/gl/EGL_NV_stream_dma | 6 +
glew/auto/extensions/gl/EGL_NV_stream_fifo_next | 6 +
.../extensions/gl/EGL_NV_stream_fifo_synchronous | 5 +
glew/auto/extensions/gl/EGL_NV_stream_flush | 5 +
glew/auto/extensions/gl/EGL_NV_stream_frame_limits | 6 +
glew/auto/extensions/gl/EGL_NV_stream_metadata | 21 +
glew/auto/extensions/gl/EGL_NV_stream_origin | 15 +
glew/auto/extensions/gl/EGL_NV_stream_remote | 12 +
glew/auto/extensions/gl/EGL_NV_stream_reset | 7 +
glew/auto/extensions/gl/EGL_NV_stream_socket | 7 +
glew/auto/extensions/gl/EGL_NV_stream_socket_inet | 5 +
glew/auto/extensions/gl/EGL_NV_stream_socket_unix | 5 +
glew/auto/extensions/gl/EGL_NV_stream_sync | 7 +
glew/auto/extensions/gl/EGL_NV_sync | 23 +
glew/auto/extensions/gl/EGL_NV_system_time | 6 +
glew/auto/extensions/gl/EGL_NV_triple_buffer | 5 +
.../extensions/gl/EGL_TIZEN_image_native_buffer | 5 +
.../extensions/gl/EGL_TIZEN_image_native_surface | 5 +
.../auto/extensions/gl/EGL_WL_bind_wayland_display | 14 +
.../gl/EGL_WL_create_wayland_buffer_from_image | 5 +
glew/auto/extensions/gl/GLX_3DFX_multisample | 6 +
glew/auto/extensions/gl/GLX_AMD_gpu_association | 23 +
.../extensions/gl/GLX_ARB_context_flush_control | 7 +
glew/auto/extensions/gl/GLX_ARB_create_context | 10 +
.../extensions/gl/GLX_ARB_create_context_no_error | 5 +
.../extensions/gl/GLX_ARB_create_context_profile | 7 +
.../gl/GLX_ARB_create_context_robustness | 8 +
glew/auto/extensions/gl/GLX_ARB_fbconfig_float | 6 +
glew/auto/extensions/gl/GLX_ARB_framebuffer_sRGB | 5 +
glew/auto/extensions/gl/GLX_ARB_get_proc_address | 5 +
glew/auto/extensions/gl/GLX_ARB_multisample | 6 +
.../gl/GLX_ARB_robustness_application_isolation | 5 +
.../gl/GLX_ARB_robustness_share_group_isolation | 5 +
.../extensions/gl/GLX_ARB_vertex_buffer_object | 5 +
glew/auto/extensions/gl/GLX_ATI_pixel_format_float | 5 +
glew/auto/extensions/gl/GLX_ATI_render_texture | 42 +
glew/auto/extensions/gl/GLX_EXT_buffer_age | 5 +
glew/auto/extensions/gl/GLX_EXT_context_priority | 8 +
.../gl/GLX_EXT_create_context_es2_profile | 5 +
.../gl/GLX_EXT_create_context_es_profile | 5 +
.../extensions/gl/GLX_EXT_fbconfig_packed_float | 6 +
glew/auto/extensions/gl/GLX_EXT_framebuffer_sRGB | 5 +
glew/auto/extensions/gl/GLX_EXT_get_drawable_type | 5 +
glew/auto/extensions/gl/GLX_EXT_import_context | 13 +
glew/auto/extensions/gl/GLX_EXT_libglvnd | 5 +
glew/auto/extensions/gl/GLX_EXT_no_config_context | 4 +
glew/auto/extensions/gl/GLX_EXT_scene_marker | 4 +
glew/auto/extensions/gl/GLX_EXT_stereo_tree | 7 +
glew/auto/extensions/gl/GLX_EXT_swap_control | 7 +
glew/auto/extensions/gl/GLX_EXT_swap_control_tear | 5 +
.../auto/extensions/gl/GLX_EXT_texture_from_pixmap | 39 +
glew/auto/extensions/gl/GLX_EXT_visual_info | 20 +
glew/auto/extensions/gl/GLX_EXT_visual_rating | 7 +
glew/auto/extensions/gl/GLX_INTEL_swap_event | 8 +
glew/auto/extensions/gl/GLX_MESA_agp_offset | 5 +
glew/auto/extensions/gl/GLX_MESA_copy_sub_buffer | 5 +
glew/auto/extensions/gl/GLX_MESA_pixmap_colormap | 5 +
glew/auto/extensions/gl/GLX_MESA_query_renderer | 19 +
glew/auto/extensions/gl/GLX_MESA_release_buffers | 5 +
glew/auto/extensions/gl/GLX_MESA_set_3dfx_mode | 7 +
glew/auto/extensions/gl/GLX_MESA_swap_control | 6 +
glew/auto/extensions/gl/GLX_NV_copy_buffer | 6 +
glew/auto/extensions/gl/GLX_NV_copy_image | 6 +
glew/auto/extensions/gl/GLX_NV_delay_before_swap | 5 +
glew/auto/extensions/gl/GLX_NV_float_buffer | 5 +
glew/auto/extensions/gl/GLX_NV_multigpu_context | 9 +
.../auto/extensions/gl/GLX_NV_multisample_coverage | 6 +
glew/auto/extensions/gl/GLX_NV_present_video | 7 +
.../gl/GLX_NV_robustness_video_memory_purge | 5 +
glew/auto/extensions/gl/GLX_NV_swap_group | 10 +
glew/auto/extensions/gl/GLX_NV_vertex_array_range | 6 +
glew/auto/extensions/gl/GLX_NV_video_capture | 13 +
glew/auto/extensions/gl/GLX_NV_video_out | 20 +
glew/auto/extensions/gl/GLX_OML_swap_method | 11 +
glew/auto/extensions/gl/GLX_OML_sync_control | 9 +
glew/auto/extensions/gl/GLX_SGIS_blended_overlay | 5 +
glew/auto/extensions/gl/GLX_SGIS_color_range | 4 +
glew/auto/extensions/gl/GLX_SGIS_multisample | 6 +
.../auto/extensions/gl/GLX_SGIS_shared_multisample | 6 +
glew/auto/extensions/gl/GLX_SGIX_fbconfig | 23 +
glew/auto/extensions/gl/GLX_SGIX_hyperpipe | 26 +
glew/auto/extensions/gl/GLX_SGIX_pbuffer | 36 +
glew/auto/extensions/gl/GLX_SGIX_swap_barrier | 6 +
glew/auto/extensions/gl/GLX_SGIX_swap_group | 5 +
glew/auto/extensions/gl/GLX_SGIX_video_resize | 11 +
.../extensions/gl/GLX_SGIX_visual_select_group | 5 +
glew/auto/extensions/gl/GLX_SGI_cushion | 5 +
glew/auto/extensions/gl/GLX_SGI_make_current_read | 6 +
glew/auto/extensions/gl/GLX_SGI_swap_control | 5 +
glew/auto/extensions/gl/GLX_SGI_video_sync | 6 +
.../extensions/gl/GLX_SUN_get_transparent_index | 5 +
glew/auto/extensions/gl/GLX_SUN_video_resize | 8 +
glew/auto/extensions/gl/GL_3DFX_multisample | 8 +
glew/auto/extensions/gl/GL_3DFX_tbuffer | 5 +
.../extensions/gl/GL_3DFX_texture_compression_FXT1 | 6 +
glew/auto/extensions/gl/GL_AMD_blend_minmax_factor | 6 +
.../extensions/gl/GL_AMD_compressed_3DC_texture | 6 +
.../extensions/gl/GL_AMD_compressed_ATC_texture | 7 +
glew/auto/extensions/gl/GL_AMD_conservative_depth | 4 +
glew/auto/extensions/gl/GL_AMD_debug_output | 23 +
.../auto/extensions/gl/GL_AMD_depth_clamp_separate | 6 +
glew/auto/extensions/gl/GL_AMD_draw_buffers_blend | 8 +
.../gl/GL_AMD_framebuffer_multisample_advanced | 12 +
.../gl/GL_AMD_framebuffer_sample_positions | 12 +
glew/auto/extensions/gl/GL_AMD_gcn_shader | 4 +
.../extensions/gl/GL_AMD_gpu_shader_half_float | 17 +
.../gl/GL_AMD_gpu_shader_half_float_fetch | 33 +
glew/auto/extensions/gl/GL_AMD_gpu_shader_int16 | 4 +
glew/auto/extensions/gl/GL_AMD_gpu_shader_int64 | 4 +
.../auto/extensions/gl/GL_AMD_interleaved_elements | 14 +
glew/auto/extensions/gl/GL_AMD_multi_draw_indirect | 6 +
glew/auto/extensions/gl/GL_AMD_name_gen_delete | 12 +
.../extensions/gl/GL_AMD_occlusion_query_event | 11 +
glew/auto/extensions/gl/GL_AMD_performance_monitor | 22 +
glew/auto/extensions/gl/GL_AMD_pinned_memory | 5 +
glew/auto/extensions/gl/GL_AMD_program_binary_Z400 | 5 +
glew/auto/extensions/gl/GL_AMD_query_buffer_object | 7 +
glew/auto/extensions/gl/GL_AMD_sample_positions | 6 +
.../gl/GL_AMD_seamless_cubemap_per_texture | 5 +
.../extensions/gl/GL_AMD_shader_atomic_counter_ops | 4 +
glew/auto/extensions/gl/GL_AMD_shader_ballot | 4 +
.../gl/GL_AMD_shader_explicit_vertex_parameter | 4 +
.../gl/GL_AMD_shader_image_load_store_lod | 4 +
.../extensions/gl/GL_AMD_shader_stencil_export | 4 +
.../gl/GL_AMD_shader_stencil_value_export | 4 +
.../extensions/gl/GL_AMD_shader_trinary_minmax | 4 +
glew/auto/extensions/gl/GL_AMD_sparse_texture | 15 +
.../gl/GL_AMD_stencil_operation_extended | 9 +
.../extensions/gl/GL_AMD_texture_gather_bias_lod | 4 +
glew/auto/extensions/gl/GL_AMD_texture_texture4 | 4 +
.../gl/GL_AMD_transform_feedback3_lines_triangles | 4 +
glew/auto/extensions/gl/GL_AMD_transform_feedback4 | 5 +
glew/auto/extensions/gl/GL_AMD_vertex_shader_layer | 4 +
.../extensions/gl/GL_AMD_vertex_shader_tessellator | 13 +
.../gl/GL_AMD_vertex_shader_viewport_index | 4 +
.../extensions/gl/GL_ANDROID_extension_pack_es31a | 4 +
glew/auto/extensions/gl/GL_ANGLE_depth_texture | 4 +
glew/auto/extensions/gl/GL_ANGLE_framebuffer_blit | 9 +
.../extensions/gl/GL_ANGLE_framebuffer_multisample | 8 +
glew/auto/extensions/gl/GL_ANGLE_instanced_arrays | 8 +
.../extensions/gl/GL_ANGLE_pack_reverse_row_order | 5 +
glew/auto/extensions/gl/GL_ANGLE_program_binary | 5 +
.../gl/GL_ANGLE_texture_compression_dxt1 | 8 +
.../gl/GL_ANGLE_texture_compression_dxt3 | 8 +
.../gl/GL_ANGLE_texture_compression_dxt5 | 8 +
glew/auto/extensions/gl/GL_ANGLE_texture_usage | 6 +
glew/auto/extensions/gl/GL_ANGLE_timer_query | 21 +
.../gl/GL_ANGLE_translated_shader_source | 6 +
glew/auto/extensions/gl/GL_APPLE_aux_depth_stencil | 5 +
glew/auto/extensions/gl/GL_APPLE_client_storage | 5 +
glew/auto/extensions/gl/GL_APPLE_clip_distance | 13 +
.../gl/GL_APPLE_color_buffer_packed_float | 4 +
.../extensions/gl/GL_APPLE_copy_texture_levels | 5 +
glew/auto/extensions/gl/GL_APPLE_element_array | 12 +
glew/auto/extensions/gl/GL_APPLE_fence | 14 +
glew/auto/extensions/gl/GL_APPLE_float_pixels | 18 +
.../auto/extensions/gl/GL_APPLE_flush_buffer_range | 8 +
.../extensions/gl/GL_APPLE_framebuffer_multisample | 13 +
glew/auto/extensions/gl/GL_APPLE_object_purgeable | 13 +
glew/auto/extensions/gl/GL_APPLE_pixel_buffer | 5 +
glew/auto/extensions/gl/GL_APPLE_rgb_422 | 8 +
glew/auto/extensions/gl/GL_APPLE_row_bytes | 6 +
glew/auto/extensions/gl/GL_APPLE_specular_vector | 5 +
glew/auto/extensions/gl/GL_APPLE_sync | 27 +
.../extensions/gl/GL_APPLE_texture_2D_limited_npot | 4 +
.../extensions/gl/GL_APPLE_texture_format_BGRA8888 | 6 +
glew/auto/extensions/gl/GL_APPLE_texture_max_level | 5 +
.../extensions/gl/GL_APPLE_texture_packed_float | 8 +
glew/auto/extensions/gl/GL_APPLE_texture_range | 13 +
glew/auto/extensions/gl/GL_APPLE_transform_hint | 5 +
.../extensions/gl/GL_APPLE_vertex_array_object | 9 +
.../auto/extensions/gl/GL_APPLE_vertex_array_range | 15 +
.../gl/GL_APPLE_vertex_program_evaluators | 21 +
glew/auto/extensions/gl/GL_APPLE_ycbcr_422 | 5 +
glew/auto/extensions/gl/GL_ARB_ES2_compatibility | 26 +
glew/auto/extensions/gl/GL_ARB_ES3_1_compatibility | 5 +
glew/auto/extensions/gl/GL_ARB_ES3_2_compatibility | 8 +
glew/auto/extensions/gl/GL_ARB_ES3_compatibility | 18 +
glew/auto/extensions/gl/GL_ARB_arrays_of_arrays | 4 +
glew/auto/extensions/gl/GL_ARB_base_instance | 7 +
glew/auto/extensions/gl/GL_ARB_bindless_texture | 21 +
glew/auto/extensions/gl/GL_ARB_blend_func_extended | 10 +
glew/auto/extensions/gl/GL_ARB_buffer_storage | 14 +
glew/auto/extensions/gl/GL_ARB_cl_event | 9 +
glew/auto/extensions/gl/GL_ARB_clear_buffer_object | 8 +
glew/auto/extensions/gl/GL_ARB_clear_texture | 7 +
glew/auto/extensions/gl/GL_ARB_clip_control | 11 +
glew/auto/extensions/gl/GL_ARB_color_buffer_float | 10 +
glew/auto/extensions/gl/GL_ARB_compatibility | 4 +
.../gl/GL_ARB_compressed_texture_pixel_storage | 12 +
glew/auto/extensions/gl/GL_ARB_compute_shader | 24 +
.../gl/GL_ARB_compute_variable_group_size | 9 +
.../gl/GL_ARB_conditional_render_inverted | 8 +
glew/auto/extensions/gl/GL_ARB_conservative_depth | 4 +
glew/auto/extensions/gl/GL_ARB_copy_buffer | 7 +
glew/auto/extensions/gl/GL_ARB_copy_image | 5 +
glew/auto/extensions/gl/GL_ARB_cull_distance | 6 +
glew/auto/extensions/gl/GL_ARB_debug_output | 31 +
glew/auto/extensions/gl/GL_ARB_depth_buffer_float | 7 +
glew/auto/extensions/gl/GL_ARB_depth_clamp | 5 +
glew/auto/extensions/gl/GL_ARB_depth_texture | 9 +
glew/auto/extensions/gl/GL_ARB_derivative_control | 4 +
glew/auto/extensions/gl/GL_ARB_direct_state_access | 103 +
glew/auto/extensions/gl/GL_ARB_draw_buffers | 22 +
glew/auto/extensions/gl/GL_ARB_draw_buffers_blend | 8 +
.../extensions/gl/GL_ARB_draw_elements_base_vertex | 8 +
glew/auto/extensions/gl/GL_ARB_draw_indirect | 8 +
glew/auto/extensions/gl/GL_ARB_draw_instanced | 4 +
glew/auto/extensions/gl/GL_ARB_enhanced_layouts | 7 +
.../extensions/gl/GL_ARB_explicit_attrib_location | 4 +
.../extensions/gl/GL_ARB_explicit_uniform_location | 5 +
.../gl/GL_ARB_fragment_coord_conventions | 4 +
.../extensions/gl/GL_ARB_fragment_layer_viewport | 4 +
glew/auto/extensions/gl/GL_ARB_fragment_program | 19 +
.../extensions/gl/GL_ARB_fragment_program_shadow | 4 +
glew/auto/extensions/gl/GL_ARB_fragment_shader | 7 +
.../extensions/gl/GL_ARB_fragment_shader_interlock | 4 +
.../gl/GL_ARB_framebuffer_no_attachments | 17 +
glew/auto/extensions/gl/GL_ARB_framebuffer_object | 98 +
glew/auto/extensions/gl/GL_ARB_framebuffer_sRGB | 5 +
glew/auto/extensions/gl/GL_ARB_geometry_shader4 | 27 +
glew/auto/extensions/gl/GL_ARB_get_program_binary | 11 +
.../extensions/gl/GL_ARB_get_texture_sub_image | 6 +
glew/auto/extensions/gl/GL_ARB_gl_spirv | 7 +
glew/auto/extensions/gl/GL_ARB_gpu_shader5 | 10 +
glew/auto/extensions/gl/GL_ARB_gpu_shader_fp64 | 34 +
glew/auto/extensions/gl/GL_ARB_gpu_shader_int64 | 48 +
glew/auto/extensions/gl/GL_ARB_half_float_pixel | 5 +
glew/auto/extensions/gl/GL_ARB_half_float_vertex | 5 +
glew/auto/extensions/gl/GL_ARB_imaging | 113 +
glew/auto/extensions/gl/GL_ARB_indirect_parameters | 8 +
glew/auto/extensions/gl/GL_ARB_instanced_arrays | 8 +
.../auto/extensions/gl/GL_ARB_internalformat_query | 6 +
.../extensions/gl/GL_ARB_internalformat_query2 | 104 +
glew/auto/extensions/gl/GL_ARB_invalidate_subdata | 10 +
.../auto/extensions/gl/GL_ARB_map_buffer_alignment | 5 +
glew/auto/extensions/gl/GL_ARB_map_buffer_range | 12 +
glew/auto/extensions/gl/GL_ARB_matrix_palette | 19 +
glew/auto/extensions/gl/GL_ARB_multi_bind | 10 +
glew/auto/extensions/gl/GL_ARB_multi_draw_indirect | 6 +
glew/auto/extensions/gl/GL_ARB_multisample | 14 +
glew/auto/extensions/gl/GL_ARB_multitexture | 73 +
glew/auto/extensions/gl/GL_ARB_occlusion_query | 17 +
glew/auto/extensions/gl/GL_ARB_occlusion_query2 | 5 +
.../extensions/gl/GL_ARB_parallel_shader_compile | 7 +
.../extensions/gl/GL_ARB_pipeline_statistics_query | 15 +
glew/auto/extensions/gl/GL_ARB_pixel_buffer_object | 8 +
glew/auto/extensions/gl/GL_ARB_point_parameters | 10 +
glew/auto/extensions/gl/GL_ARB_point_sprite | 6 +
.../auto/extensions/gl/GL_ARB_polygon_offset_clamp | 6 +
glew/auto/extensions/gl/GL_ARB_post_depth_coverage | 4 +
.../extensions/gl/GL_ARB_program_interface_query | 57 +
glew/auto/extensions/gl/GL_ARB_provoking_vertex | 9 +
glew/auto/extensions/gl/GL_ARB_query_buffer_object | 8 +
.../gl/GL_ARB_robust_buffer_access_behavior | 4 +
glew/auto/extensions/gl/GL_ARB_robustness | 31 +
.../gl/GL_ARB_robustness_application_isolation | 4 +
.../gl/GL_ARB_robustness_share_group_isolation | 4 +
glew/auto/extensions/gl/GL_ARB_sample_locations | 15 +
glew/auto/extensions/gl/GL_ARB_sample_shading | 7 +
glew/auto/extensions/gl/GL_ARB_sampler_objects | 19 +
glew/auto/extensions/gl/GL_ARB_seamless_cube_map | 5 +
.../gl/GL_ARB_seamless_cubemap_per_texture | 5 +
.../extensions/gl/GL_ARB_separate_shader_objects | 73 +
.../extensions/gl/GL_ARB_shader_atomic_counter_ops | 4 +
.../extensions/gl/GL_ARB_shader_atomic_counters | 34 +
glew/auto/extensions/gl/GL_ARB_shader_ballot | 4 +
glew/auto/extensions/gl/GL_ARB_shader_bit_encoding | 4 +
glew/auto/extensions/gl/GL_ARB_shader_clock | 4 +
.../extensions/gl/GL_ARB_shader_draw_parameters | 4 +
glew/auto/extensions/gl/GL_ARB_shader_group_vote | 4 +
.../extensions/gl/GL_ARB_shader_image_load_store | 70 +
glew/auto/extensions/gl/GL_ARB_shader_image_size | 4 +
glew/auto/extensions/gl/GL_ARB_shader_objects | 79 +
glew/auto/extensions/gl/GL_ARB_shader_precision | 4 +
.../extensions/gl/GL_ARB_shader_stencil_export | 4 +
.../gl/GL_ARB_shader_storage_buffer_object | 21 +
glew/auto/extensions/gl/GL_ARB_shader_subroutine | 21 +
.../gl/GL_ARB_shader_texture_image_samples | 4 +
glew/auto/extensions/gl/GL_ARB_shader_texture_lod | 4 +
.../gl/GL_ARB_shader_viewport_layer_array | 4 +
.../auto/extensions/gl/GL_ARB_shading_language_100 | 5 +
.../extensions/gl/GL_ARB_shading_language_420pack | 4 +
.../extensions/gl/GL_ARB_shading_language_include | 13 +
.../extensions/gl/GL_ARB_shading_language_packing | 4 +
glew/auto/extensions/gl/GL_ARB_shadow | 7 +
glew/auto/extensions/gl/GL_ARB_shadow_ambient | 5 +
glew/auto/extensions/gl/GL_ARB_sparse_buffer | 7 +
glew/auto/extensions/gl/GL_ARB_sparse_texture | 16 +
glew/auto/extensions/gl/GL_ARB_sparse_texture2 | 4 +
.../auto/extensions/gl/GL_ARB_sparse_texture_clamp | 4 +
glew/auto/extensions/gl/GL_ARB_spirv_extensions | 6 +
glew/auto/extensions/gl/GL_ARB_stencil_texturing | 5 +
glew/auto/extensions/gl/GL_ARB_sync | 26 +
glew/auto/extensions/gl/GL_ARB_tessellation_shader | 38 +
glew/auto/extensions/gl/GL_ARB_texture_barrier | 5 +
.../auto/extensions/gl/GL_ARB_texture_border_clamp | 5 +
.../extensions/gl/GL_ARB_texture_buffer_object | 10 +
.../gl/GL_ARB_texture_buffer_object_rgb32 | 4 +
.../auto/extensions/gl/GL_ARB_texture_buffer_range | 9 +
glew/auto/extensions/gl/GL_ARB_texture_compression | 22 +
.../extensions/gl/GL_ARB_texture_compression_bptc | 8 +
.../extensions/gl/GL_ARB_texture_compression_rgtc | 8 +
glew/auto/extensions/gl/GL_ARB_texture_cube_map | 16 +
.../extensions/gl/GL_ARB_texture_cube_map_array | 11 +
glew/auto/extensions/gl/GL_ARB_texture_env_add | 4 +
glew/auto/extensions/gl/GL_ARB_texture_env_combine | 26 +
.../auto/extensions/gl/GL_ARB_texture_env_crossbar | 4 +
glew/auto/extensions/gl/GL_ARB_texture_env_dot3 | 6 +
.../gl/GL_ARB_texture_filter_anisotropic | 6 +
.../extensions/gl/GL_ARB_texture_filter_minmax | 6 +
glew/auto/extensions/gl/GL_ARB_texture_float | 24 +
glew/auto/extensions/gl/GL_ARB_texture_gather | 7 +
.../gl/GL_ARB_texture_mirror_clamp_to_edge | 5 +
.../extensions/gl/GL_ARB_texture_mirrored_repeat | 5 +
glew/auto/extensions/gl/GL_ARB_texture_multisample | 29 +
.../extensions/gl/GL_ARB_texture_non_power_of_two | 4 +
.../auto/extensions/gl/GL_ARB_texture_query_levels | 4 +
glew/auto/extensions/gl/GL_ARB_texture_query_lod | 4 +
glew/auto/extensions/gl/GL_ARB_texture_rectangle | 10 +
glew/auto/extensions/gl/GL_ARB_texture_rg | 28 +
glew/auto/extensions/gl/GL_ARB_texture_rgb10_a2ui | 5 +
glew/auto/extensions/gl/GL_ARB_texture_stencil8 | 6 +
glew/auto/extensions/gl/GL_ARB_texture_storage | 8 +
.../gl/GL_ARB_texture_storage_multisample | 8 +
glew/auto/extensions/gl/GL_ARB_texture_swizzle | 9 +
glew/auto/extensions/gl/GL_ARB_texture_view | 10 +
glew/auto/extensions/gl/GL_ARB_timer_query | 9 +
glew/auto/extensions/gl/GL_ARB_transform_feedback2 | 15 +
glew/auto/extensions/gl/GL_ARB_transform_feedback3 | 10 +
.../gl/GL_ARB_transform_feedback_instanced | 6 +
.../gl/GL_ARB_transform_feedback_overflow_query | 6 +
glew/auto/extensions/gl/GL_ARB_transpose_matrix | 12 +
.../extensions/gl/GL_ARB_uniform_buffer_object | 47 +
glew/auto/extensions/gl/GL_ARB_vertex_array_bgra | 5 +
glew/auto/extensions/gl/GL_ARB_vertex_array_object | 9 +
glew/auto/extensions/gl/GL_ARB_vertex_attrib_64bit | 14 +
.../extensions/gl/GL_ARB_vertex_attrib_binding | 24 +
glew/auto/extensions/gl/GL_ARB_vertex_blend | 56 +
.../auto/extensions/gl/GL_ARB_vertex_buffer_object | 48 +
glew/auto/extensions/gl/GL_ARB_vertex_program | 145 +
glew/auto/extensions/gl/GL_ARB_vertex_shader | 14 +
.../gl/GL_ARB_vertex_type_10f_11f_11f_rev | 5 +
.../gl/GL_ARB_vertex_type_2_10_10_10_rev | 44 +
glew/auto/extensions/gl/GL_ARB_viewport_array | 27 +
glew/auto/extensions/gl/GL_ARB_window_pos | 20 +
glew/auto/extensions/gl/GL_ARM_mali_program_binary | 5 +
glew/auto/extensions/gl/GL_ARM_mali_shader_binary | 5 +
glew/auto/extensions/gl/GL_ARM_rgba8 | 5 +
.../extensions/gl/GL_ARM_shader_framebuffer_fetch | 6 +
.../GL_ARM_shader_framebuffer_fetch_depth_stencil | 4 +
.../gl/GL_ARM_texture_unnormalized_coordinates | 5 +
glew/auto/extensions/gl/GL_ATIX_point_sprites | 10 +
.../extensions/gl/GL_ATIX_texture_env_combine3 | 7 +
glew/auto/extensions/gl/GL_ATIX_texture_env_route | 7 +
.../gl/GL_ATIX_vertex_shader_output_point_size | 5 +
glew/auto/extensions/gl/GL_ATI_draw_buffers | 22 +
glew/auto/extensions/gl/GL_ATI_element_array | 10 +
glew/auto/extensions/gl/GL_ATI_envmap_bumpmap | 16 +
glew/auto/extensions/gl/GL_ATI_fragment_shader | 72 +
glew/auto/extensions/gl/GL_ATI_map_object_buffer | 6 +
glew/auto/extensions/gl/GL_ATI_meminfo | 7 +
glew/auto/extensions/gl/GL_ATI_pn_triangles | 15 +
glew/auto/extensions/gl/GL_ATI_separate_stencil | 10 +
glew/auto/extensions/gl/GL_ATI_shader_texture_lod | 4 +
.../auto/extensions/gl/GL_ATI_text_fragment_shader | 5 +
.../extensions/gl/GL_ATI_texture_compression_3dc | 5 +
.../auto/extensions/gl/GL_ATI_texture_env_combine3 | 7 +
glew/auto/extensions/gl/GL_ATI_texture_float | 16 +
glew/auto/extensions/gl/GL_ATI_texture_mirror_once | 6 +
glew/auto/extensions/gl/GL_ATI_vertex_array_object | 24 +
.../gl/GL_ATI_vertex_attrib_array_object | 7 +
glew/auto/extensions/gl/GL_ATI_vertex_streams | 59 +
glew/auto/extensions/gl/GL_DMP_program_binary | 7 +
glew/auto/extensions/gl/GL_DMP_shader_binary | 5 +
glew/auto/extensions/gl/GL_EXT_422_pixels | 8 +
glew/auto/extensions/gl/GL_EXT_Cg_shader | 6 +
glew/auto/extensions/gl/GL_EXT_EGL_image_array | 4 +
.../gl/GL_EXT_EGL_image_external_wrap_modes | 4 +
glew/auto/extensions/gl/GL_EXT_EGL_image_storage | 6 +
.../gl/GL_EXT_EGL_image_storage_compression | 7 +
glew/auto/extensions/gl/GL_EXT_EGL_sync | 4 +
glew/auto/extensions/gl/GL_EXT_YUV_target | 5 +
glew/auto/extensions/gl/GL_EXT_abgr | 5 +
glew/auto/extensions/gl/GL_EXT_base_instance | 7 +
glew/auto/extensions/gl/GL_EXT_bgra | 6 +
glew/auto/extensions/gl/GL_EXT_bindable_uniform | 13 +
glew/auto/extensions/gl/GL_EXT_blend_color | 10 +
.../extensions/gl/GL_EXT_blend_equation_separate | 7 +
glew/auto/extensions/gl/GL_EXT_blend_func_extended | 14 +
glew/auto/extensions/gl/GL_EXT_blend_func_separate | 9 +
glew/auto/extensions/gl/GL_EXT_blend_logic_op | 4 +
glew/auto/extensions/gl/GL_EXT_blend_minmax | 9 +
glew/auto/extensions/gl/GL_EXT_blend_subtract | 6 +
glew/auto/extensions/gl/GL_EXT_buffer_storage | 15 +
glew/auto/extensions/gl/GL_EXT_clear_texture | 6 +
glew/auto/extensions/gl/GL_EXT_clip_control | 11 +
glew/auto/extensions/gl/GL_EXT_clip_cull_distance | 15 +
glew/auto/extensions/gl/GL_EXT_clip_volume_hint | 5 +
glew/auto/extensions/gl/GL_EXT_cmyka | 8 +
glew/auto/extensions/gl/GL_EXT_color_buffer_float | 4 +
.../extensions/gl/GL_EXT_color_buffer_half_float | 10 +
glew/auto/extensions/gl/GL_EXT_color_subtable | 6 +
.../extensions/gl/GL_EXT_compiled_vertex_array | 8 +
.../gl/GL_EXT_compressed_ETC1_RGB8_sub_texture | 4 +
glew/auto/extensions/gl/GL_EXT_conservative_depth | 4 +
glew/auto/extensions/gl/GL_EXT_convolution | 37 +
glew/auto/extensions/gl/GL_EXT_coordinate_frame | 20 +
glew/auto/extensions/gl/GL_EXT_copy_image | 5 +
glew/auto/extensions/gl/GL_EXT_copy_texture | 9 +
glew/auto/extensions/gl/GL_EXT_cull_vertex | 9 +
glew/auto/extensions/gl/GL_EXT_debug_label | 12 +
glew/auto/extensions/gl/GL_EXT_debug_marker | 7 +
glew/auto/extensions/gl/GL_EXT_depth_bounds_test | 7 +
glew/auto/extensions/gl/GL_EXT_depth_clamp | 5 +
glew/auto/extensions/gl/GL_EXT_direct_state_access | 221 +
glew/auto/extensions/gl/GL_EXT_discard_framebuffer | 8 +
.../auto/extensions/gl/GL_EXT_disjoint_timer_query | 21 +
glew/auto/extensions/gl/GL_EXT_draw_buffers | 39 +
glew/auto/extensions/gl/GL_EXT_draw_buffers2 | 10 +
.../auto/extensions/gl/GL_EXT_draw_buffers_indexed | 12 +
.../extensions/gl/GL_EXT_draw_elements_base_vertex | 8 +
glew/auto/extensions/gl/GL_EXT_draw_instanced | 6 +
glew/auto/extensions/gl/GL_EXT_draw_range_elements | 7 +
.../extensions/gl/GL_EXT_draw_transform_feedback | 6 +
glew/auto/extensions/gl/GL_EXT_external_buffer | 7 +
glew/auto/extensions/gl/GL_EXT_float_blend | 4 +
glew/auto/extensions/gl/GL_EXT_fog_coord | 17 +
glew/auto/extensions/gl/GL_EXT_frag_depth | 4 +
glew/auto/extensions/gl/GL_EXT_fragment_lighting | 36 +
glew/auto/extensions/gl/GL_EXT_framebuffer_blit | 9 +
.../extensions/gl/GL_EXT_framebuffer_multisample | 10 +
.../gl/GL_EXT_framebuffer_multisample_blit_scaled | 6 +
glew/auto/extensions/gl/GL_EXT_framebuffer_object | 72 +
glew/auto/extensions/gl/GL_EXT_framebuffer_sRGB | 6 +
glew/auto/extensions/gl/GL_EXT_geometry_point_size | 37 +
glew/auto/extensions/gl/GL_EXT_geometry_shader | 37 +
glew/auto/extensions/gl/GL_EXT_geometry_shader4 | 27 +
.../extensions/gl/GL_EXT_gpu_program_parameters | 6 +
glew/auto/extensions/gl/GL_EXT_gpu_shader4 | 64 +
glew/auto/extensions/gl/GL_EXT_gpu_shader5 | 4 +
glew/auto/extensions/gl/GL_EXT_histogram | 27 +
glew/auto/extensions/gl/GL_EXT_index_array_formats | 4 +
glew/auto/extensions/gl/GL_EXT_index_func | 5 +
glew/auto/extensions/gl/GL_EXT_index_material | 5 +
glew/auto/extensions/gl/GL_EXT_index_texture | 4 +
glew/auto/extensions/gl/GL_EXT_instanced_arrays | 6 +
glew/auto/extensions/gl/GL_EXT_light_texture | 16 +
glew/auto/extensions/gl/GL_EXT_map_buffer_range | 12 +
glew/auto/extensions/gl/GL_EXT_memory_object | 34 +
glew/auto/extensions/gl/GL_EXT_memory_object_fd | 6 +
glew/auto/extensions/gl/GL_EXT_memory_object_win32 | 17 +
glew/auto/extensions/gl/GL_EXT_misc_attribute | 4 +
glew/auto/extensions/gl/GL_EXT_multi_draw_arrays | 6 +
glew/auto/extensions/gl/GL_EXT_multi_draw_indirect | 6 +
glew/auto/extensions/gl/GL_EXT_multiple_textures | 4 +
glew/auto/extensions/gl/GL_EXT_multisample | 23 +
.../extensions/gl/GL_EXT_multisample_compatibility | 6 +
.../gl/GL_EXT_multisampled_render_to_texture | 9 +
.../gl/GL_EXT_multisampled_render_to_texture2 | 4 +
.../extensions/gl/GL_EXT_multiview_draw_buffers | 12 +
.../GL_EXT_multiview_tessellation_geometry_shader | 4 +
.../gl/GL_EXT_multiview_texture_multisample | 4 +
.../extensions/gl/GL_EXT_multiview_timer_query | 4 +
.../extensions/gl/GL_EXT_occlusion_query_boolean | 9 +
.../auto/extensions/gl/GL_EXT_packed_depth_stencil | 8 +
glew/auto/extensions/gl/GL_EXT_packed_float | 7 +
glew/auto/extensions/gl/GL_EXT_packed_pixels | 9 +
glew/auto/extensions/gl/GL_EXT_paletted_texture | 29 +
glew/auto/extensions/gl/GL_EXT_pixel_buffer_object | 8 +
glew/auto/extensions/gl/GL_EXT_pixel_transform | 19 +
.../gl/GL_EXT_pixel_transform_color_table | 4 +
glew/auto/extensions/gl/GL_EXT_point_parameters | 10 +
glew/auto/extensions/gl/GL_EXT_polygon_offset | 8 +
.../auto/extensions/gl/GL_EXT_polygon_offset_clamp | 6 +
glew/auto/extensions/gl/GL_EXT_post_depth_coverage | 4 +
.../extensions/gl/GL_EXT_primitive_bounding_box | 6 +
glew/auto/extensions/gl/GL_EXT_protected_textures | 6 +
glew/auto/extensions/gl/GL_EXT_provoking_vertex | 9 +
glew/auto/extensions/gl/GL_EXT_pvrtc_sRGB | 8 +
glew/auto/extensions/gl/GL_EXT_raster_multisample | 22 +
glew/auto/extensions/gl/GL_EXT_read_format_bgra | 7 +
glew/auto/extensions/gl/GL_EXT_render_snorm | 12 +
glew/auto/extensions/gl/GL_EXT_rescale_normal | 5 +
glew/auto/extensions/gl/GL_EXT_robustness | 15 +
glew/auto/extensions/gl/GL_EXT_sRGB | 8 +
glew/auto/extensions/gl/GL_EXT_sRGB_write_control | 5 +
glew/auto/extensions/gl/GL_EXT_scene_marker | 6 +
glew/auto/extensions/gl/GL_EXT_secondary_color | 28 +
glew/auto/extensions/gl/GL_EXT_semaphore | 21 +
glew/auto/extensions/gl/GL_EXT_semaphore_fd | 5 +
glew/auto/extensions/gl/GL_EXT_semaphore_win32 | 6 +
.../extensions/gl/GL_EXT_separate_depth_stencil | 4 +
.../extensions/gl/GL_EXT_separate_shader_objects | 8 +
.../extensions/gl/GL_EXT_separate_specular_color | 7 +
.../extensions/gl/GL_EXT_shader_framebuffer_fetch | 6 +
.../GL_EXT_shader_framebuffer_fetch_non_coherent | 5 +
glew/auto/extensions/gl/GL_EXT_shader_group_vote | 4 +
.../gl/GL_EXT_shader_image_load_formatted | 4 +
.../extensions/gl/GL_EXT_shader_image_load_store | 61 +
.../gl/GL_EXT_shader_implicit_conversions | 4 +
glew/auto/extensions/gl/GL_EXT_shader_integer_mix | 4 +
glew/auto/extensions/gl/GL_EXT_shader_io_blocks | 4 +
.../GL_EXT_shader_non_constant_global_initializers | 4 +
.../gl/GL_EXT_shader_pixel_local_storage | 7 +
.../gl/GL_EXT_shader_pixel_local_storage2 | 10 +
.../extensions/gl/GL_EXT_shader_samples_identical | 4 +
glew/auto/extensions/gl/GL_EXT_shader_texture_lod | 4 +
glew/auto/extensions/gl/GL_EXT_shadow_funcs | 4 +
glew/auto/extensions/gl/GL_EXT_shadow_samplers | 8 +
.../extensions/gl/GL_EXT_shared_texture_palette | 5 +
glew/auto/extensions/gl/GL_EXT_sparse_texture | 22 +
glew/auto/extensions/gl/GL_EXT_sparse_texture2 | 4 +
glew/auto/extensions/gl/GL_EXT_static_vertex_array | 4 +
glew/auto/extensions/gl/GL_EXT_stencil_clear_tag | 6 +
glew/auto/extensions/gl/GL_EXT_stencil_two_side | 7 +
glew/auto/extensions/gl/GL_EXT_stencil_wrap | 6 +
glew/auto/extensions/gl/GL_EXT_subtexture | 7 +
.../extensions/gl/GL_EXT_tessellation_point_size | 48 +
glew/auto/extensions/gl/GL_EXT_tessellation_shader | 47 +
glew/auto/extensions/gl/GL_EXT_texture | 46 +
glew/auto/extensions/gl/GL_EXT_texture3D | 14 +
glew/auto/extensions/gl/GL_EXT_texture_array | 13 +
.../auto/extensions/gl/GL_EXT_texture_border_clamp | 10 +
glew/auto/extensions/gl/GL_EXT_texture_buffer | 18 +
.../extensions/gl/GL_EXT_texture_buffer_object | 10 +
.../gl/GL_EXT_texture_compression_astc_decode_mode | 5 +
...EXT_texture_compression_astc_decode_mode_rgb9e5 | 5 +
.../extensions/gl/GL_EXT_texture_compression_bptc | 8 +
.../extensions/gl/GL_EXT_texture_compression_dxt1 | 4 +
.../extensions/gl/GL_EXT_texture_compression_latc | 8 +
.../extensions/gl/GL_EXT_texture_compression_rgtc | 8 +
.../extensions/gl/GL_EXT_texture_compression_s3tc | 8 +
.../gl/GL_EXT_texture_compression_s3tc_srgb | 8 +
glew/auto/extensions/gl/GL_EXT_texture_cube_map | 16 +
.../extensions/gl/GL_EXT_texture_cube_map_array | 13 +
glew/auto/extensions/gl/GL_EXT_texture_edge_clamp | 5 +
glew/auto/extensions/gl/GL_EXT_texture_env | 4 +
glew/auto/extensions/gl/GL_EXT_texture_env_add | 4 +
glew/auto/extensions/gl/GL_EXT_texture_env_combine | 25 +
glew/auto/extensions/gl/GL_EXT_texture_env_dot3 | 6 +
.../gl/GL_EXT_texture_filter_anisotropic | 6 +
.../extensions/gl/GL_EXT_texture_filter_minmax | 6 +
.../extensions/gl/GL_EXT_texture_format_BGRA8888 | 5 +
.../gl/GL_EXT_texture_format_sRGB_override | 5 +
glew/auto/extensions/gl/GL_EXT_texture_integer | 57 +
glew/auto/extensions/gl/GL_EXT_texture_lod_bias | 7 +
.../auto/extensions/gl/GL_EXT_texture_mirror_clamp | 7 +
.../gl/GL_EXT_texture_mirror_clamp_to_edge | 5 +
glew/auto/extensions/gl/GL_EXT_texture_norm16 | 12 +
glew/auto/extensions/gl/GL_EXT_texture_object | 15 +
.../extensions/gl/GL_EXT_texture_perturb_normal | 7 +
glew/auto/extensions/gl/GL_EXT_texture_query_lod | 4 +
glew/auto/extensions/gl/GL_EXT_texture_rectangle | 8 +
glew/auto/extensions/gl/GL_EXT_texture_rg | 8 +
glew/auto/extensions/gl/GL_EXT_texture_sRGB | 20 +
glew/auto/extensions/gl/GL_EXT_texture_sRGB_R8 | 5 +
glew/auto/extensions/gl/GL_EXT_texture_sRGB_RG8 | 5 +
glew/auto/extensions/gl/GL_EXT_texture_sRGB_decode | 7 +
glew/auto/extensions/gl/GL_EXT_texture_shadow_lod | 4 +
.../extensions/gl/GL_EXT_texture_shared_exponent | 7 +
glew/auto/extensions/gl/GL_EXT_texture_snorm | 29 +
glew/auto/extensions/gl/GL_EXT_texture_storage | 34 +
.../gl/GL_EXT_texture_storage_compression | 22 +
glew/auto/extensions/gl/GL_EXT_texture_swizzle | 9 +
.../gl/GL_EXT_texture_type_2_10_10_10_REV | 5 +
glew/auto/extensions/gl/GL_EXT_texture_view | 10 +
glew/auto/extensions/gl/GL_EXT_timer_query | 7 +
glew/auto/extensions/gl/GL_EXT_transform_feedback | 26 +
glew/auto/extensions/gl/GL_EXT_unpack_subimage | 7 +
glew/auto/extensions/gl/GL_EXT_vertex_array | 45 +
glew/auto/extensions/gl/GL_EXT_vertex_array_bgra | 5 +
glew/auto/extensions/gl/GL_EXT_vertex_array_setXXX | 7 +
glew/auto/extensions/gl/GL_EXT_vertex_attrib_64bit | 27 +
glew/auto/extensions/gl/GL_EXT_vertex_shader | 157 +
glew/auto/extensions/gl/GL_EXT_vertex_weighting | 20 +
glew/auto/extensions/gl/GL_EXT_win32_keyed_mutex | 6 +
glew/auto/extensions/gl/GL_EXT_window_rectangles | 11 +
glew/auto/extensions/gl/GL_EXT_x11_sync_object | 6 +
glew/auto/extensions/gl/GL_FJ_shader_binary_GCCSO | 5 +
.../auto/extensions/gl/GL_GREMEDY_frame_terminator | 5 +
glew/auto/extensions/gl/GL_GREMEDY_string_marker | 5 +
.../extensions/gl/GL_HP_convolution_border_modes | 4 +
glew/auto/extensions/gl/GL_HP_image_transform | 10 +
glew/auto/extensions/gl/GL_HP_occlusion_test | 4 +
glew/auto/extensions/gl/GL_HP_texture_lighting | 4 +
glew/auto/extensions/gl/GL_IBM_cull_vertex | 5 +
.../extensions/gl/GL_IBM_multimode_draw_arrays | 6 +
glew/auto/extensions/gl/GL_IBM_rasterpos_clip | 5 +
glew/auto/extensions/gl/GL_IBM_static_data | 6 +
.../extensions/gl/GL_IBM_texture_mirrored_repeat | 5 +
glew/auto/extensions/gl/GL_IBM_vertex_array_lists | 28 +
glew/auto/extensions/gl/GL_IMG_bindless_texture | 10 +
.../extensions/gl/GL_IMG_framebuffer_downsample | 10 +
.../gl/GL_IMG_multisampled_render_to_texture | 10 +
glew/auto/extensions/gl/GL_IMG_program_binary | 5 +
glew/auto/extensions/gl/GL_IMG_read_format | 6 +
glew/auto/extensions/gl/GL_IMG_shader_binary | 5 +
.../extensions/gl/GL_IMG_texture_compression_pvrtc | 8 +
.../gl/GL_IMG_texture_compression_pvrtc2 | 6 +
.../gl/GL_IMG_texture_env_enhanced_fixed_function | 11 +
.../auto/extensions/gl/GL_IMG_texture_filter_cubic | 7 +
.../extensions/gl/GL_IMG_tile_region_protection | 7 +
glew/auto/extensions/gl/GL_INGR_color_clamp | 12 +
glew/auto/extensions/gl/GL_INGR_interlace_read | 5 +
glew/auto/extensions/gl/GL_INTEL_blackhole_render | 5 +
.../gl/GL_INTEL_conservative_rasterization | 5 +
.../gl/GL_INTEL_fragment_shader_ordering | 4 +
glew/auto/extensions/gl/GL_INTEL_framebuffer_CMAA | 5 +
glew/auto/extensions/gl/GL_INTEL_map_texture | 11 +
glew/auto/extensions/gl/GL_INTEL_parallel_arrays | 13 +
glew/auto/extensions/gl/GL_INTEL_performance_query | 34 +
.../gl/GL_INTEL_shader_integer_functions2 | 4 +
glew/auto/extensions/gl/GL_INTEL_texture_scissor | 6 +
.../extensions/gl/GL_KHR_blend_equation_advanced | 21 +
.../gl/GL_KHR_blend_equation_advanced_coherent | 4 +
.../extensions/gl/GL_KHR_context_flush_control | 7 +
glew/auto/extensions/gl/GL_KHR_debug | 55 +
glew/auto/extensions/gl/GL_KHR_no_error | 5 +
.../extensions/gl/GL_KHR_parallel_shader_compile | 7 +
.../gl/GL_KHR_robust_buffer_access_behavior | 4 +
glew/auto/extensions/gl/GL_KHR_robustness | 16 +
glew/auto/extensions/gl/GL_KHR_shader_subgroup | 16 +
.../gl/GL_KHR_texture_compression_astc_hdr | 52 +
.../gl/GL_KHR_texture_compression_astc_ldr | 52 +
.../gl/GL_KHR_texture_compression_astc_sliced_3d | 4 +
glew/auto/extensions/gl/GL_KTX_buffer_region | 13 +
glew/auto/extensions/gl/GL_MESAX_texture_stack | 10 +
glew/auto/extensions/gl/GL_MESA_bgra | 6 +
glew/auto/extensions/gl/GL_MESA_framebuffer_flip_x | 5 +
glew/auto/extensions/gl/GL_MESA_framebuffer_flip_y | 7 +
.../auto/extensions/gl/GL_MESA_framebuffer_swap_xy | 5 +
glew/auto/extensions/gl/GL_MESA_pack_invert | 5 +
.../extensions/gl/GL_MESA_program_binary_formats | 5 +
glew/auto/extensions/gl/GL_MESA_resize_buffers | 5 +
.../extensions/gl/GL_MESA_shader_integer_functions | 4 +
glew/auto/extensions/gl/GL_MESA_tile_raster_order | 4 +
glew/auto/extensions/gl/GL_MESA_window_pos | 28 +
glew/auto/extensions/gl/GL_MESA_ycbcr_texture | 7 +
..._NVX_blend_equation_advanced_multi_draw_buffers | 4 +
glew/auto/extensions/gl/GL_NVX_conditional_render | 6 +
glew/auto/extensions/gl/GL_NVX_gpu_memory_info | 9 +
glew/auto/extensions/gl/GL_NVX_gpu_multicast2 | 11 +
.../auto/extensions/gl/GL_NVX_linked_gpu_multicast | 9 +
glew/auto/extensions/gl/GL_NVX_progress_fence | 8 +
glew/auto/extensions/gl/GL_NV_3dvision_settings | 13 +
.../gl/GL_NV_EGL_stream_consumer_external | 8 +
.../gl/GL_NV_alpha_to_coverage_dither_control | 9 +
glew/auto/extensions/gl/GL_NV_bgr | 5 +
.../gl/GL_NV_bindless_multi_draw_indirect | 6 +
.../gl/GL_NV_bindless_multi_draw_indirect_count | 6 +
glew/auto/extensions/gl/GL_NV_bindless_texture | 17 +
.../extensions/gl/GL_NV_blend_equation_advanced | 56 +
.../gl/GL_NV_blend_equation_advanced_coherent | 4 +
glew/auto/extensions/gl/GL_NV_blend_minmax_factor | 6 +
glew/auto/extensions/gl/GL_NV_blend_square | 4 +
glew/auto/extensions/gl/GL_NV_clip_space_w_scaling | 8 +
glew/auto/extensions/gl/GL_NV_command_list | 40 +
glew/auto/extensions/gl/GL_NV_compute_program5 | 6 +
.../extensions/gl/GL_NV_compute_shader_derivatives | 4 +
glew/auto/extensions/gl/GL_NV_conditional_render | 10 +
glew/auto/extensions/gl/GL_NV_conservative_raster | 9 +
.../extensions/gl/GL_NV_conservative_raster_dilate | 8 +
.../gl/GL_NV_conservative_raster_pre_snap | 5 +
.../GL_NV_conservative_raster_pre_snap_triangles | 8 +
.../gl/GL_NV_conservative_raster_underestimation | 4 +
glew/auto/extensions/gl/GL_NV_copy_buffer | 7 +
glew/auto/extensions/gl/GL_NV_copy_depth_to_color | 6 +
glew/auto/extensions/gl/GL_NV_copy_image | 5 +
glew/auto/extensions/gl/GL_NV_deep_texture3D | 6 +
glew/auto/extensions/gl/GL_NV_depth_buffer_float | 11 +
glew/auto/extensions/gl/GL_NV_depth_clamp | 5 +
glew/auto/extensions/gl/GL_NV_depth_nonlinear | 5 +
.../auto/extensions/gl/GL_NV_depth_range_unclamped | 9 +
glew/auto/extensions/gl/GL_NV_draw_buffers | 38 +
glew/auto/extensions/gl/GL_NV_draw_instanced | 6 +
glew/auto/extensions/gl/GL_NV_draw_texture | 5 +
glew/auto/extensions/gl/GL_NV_draw_vulkan_image | 10 +
glew/auto/extensions/gl/GL_NV_evaluators | 37 +
.../extensions/gl/GL_NV_explicit_attrib_location | 4 +
glew/auto/extensions/gl/GL_NV_explicit_multisample | 17 +
.../auto/extensions/gl/GL_NV_fbo_color_attachments | 21 +
glew/auto/extensions/gl/GL_NV_fence | 14 +
glew/auto/extensions/gl/GL_NV_fill_rectangle | 5 +
glew/auto/extensions/gl/GL_NV_float_buffer | 19 +
glew/auto/extensions/gl/GL_NV_fog_distance | 7 +
.../extensions/gl/GL_NV_fragment_coverage_to_color | 7 +
glew/auto/extensions/gl/GL_NV_fragment_program | 16 +
glew/auto/extensions/gl/GL_NV_fragment_program2 | 9 +
glew/auto/extensions/gl/GL_NV_fragment_program4 | 4 +
.../extensions/gl/GL_NV_fragment_program_option | 4 +
.../gl/GL_NV_fragment_shader_barycentric | 4 +
.../extensions/gl/GL_NV_fragment_shader_interlock | 4 +
glew/auto/extensions/gl/GL_NV_framebuffer_blit | 9 +
.../extensions/gl/GL_NV_framebuffer_mixed_samples | 18 +
.../extensions/gl/GL_NV_framebuffer_multisample | 8 +
.../gl/GL_NV_framebuffer_multisample_coverage | 9 +
glew/auto/extensions/gl/GL_NV_generate_mipmap_sRGB | 4 +
glew/auto/extensions/gl/GL_NV_geometry_program4 | 8 +
glew/auto/extensions/gl/GL_NV_geometry_shader4 | 4 +
.../gl/GL_NV_geometry_shader_passthrough | 4 +
glew/auto/extensions/gl/GL_NV_gpu_multicast | 21 +
glew/auto/extensions/gl/GL_NV_gpu_program4 | 24 +
glew/auto/extensions/gl/GL_NV_gpu_program5 | 10 +
.../extensions/gl/GL_NV_gpu_program5_mem_extended | 4 +
glew/auto/extensions/gl/GL_NV_gpu_program_fp64 | 4 +
glew/auto/extensions/gl/GL_NV_gpu_shader5 | 66 +
glew/auto/extensions/gl/GL_NV_half_float | 52 +
glew/auto/extensions/gl/GL_NV_image_formats | 4 +
glew/auto/extensions/gl/GL_NV_instanced_arrays | 6 +
.../gl/GL_NV_internalformat_sample_query | 9 +
glew/auto/extensions/gl/GL_NV_light_max_exponent | 6 +
glew/auto/extensions/gl/GL_NV_memory_attachment | 20 +
glew/auto/extensions/gl/GL_NV_memory_object_sparse | 8 +
glew/auto/extensions/gl/GL_NV_mesh_shader | 56 +
glew/auto/extensions/gl/GL_NV_multisample_coverage | 5 +
.../extensions/gl/GL_NV_multisample_filter_hint | 5 +
glew/auto/extensions/gl/GL_NV_non_square_matrices | 16 +
glew/auto/extensions/gl/GL_NV_occlusion_query | 15 +
glew/auto/extensions/gl/GL_NV_pack_subimage | 7 +
glew/auto/extensions/gl/GL_NV_packed_depth_stencil | 6 +
glew/auto/extensions/gl/GL_NV_packed_float | 6 +
glew/auto/extensions/gl/GL_NV_packed_float_linear | 6 +
.../extensions/gl/GL_NV_parameter_buffer_object | 12 +
.../extensions/gl/GL_NV_parameter_buffer_object2 | 4 +
glew/auto/extensions/gl/GL_NV_path_rendering | 217 +
.../extensions/gl/GL_NV_path_rendering_shared_edge | 5 +
glew/auto/extensions/gl/GL_NV_pixel_buffer_object | 8 +
glew/auto/extensions/gl/GL_NV_pixel_data_range | 12 +
glew/auto/extensions/gl/GL_NV_platform_binary | 5 +
glew/auto/extensions/gl/GL_NV_point_sprite | 9 +
glew/auto/extensions/gl/GL_NV_polygon_mode | 11 +
glew/auto/extensions/gl/GL_NV_present_video | 16 +
glew/auto/extensions/gl/GL_NV_primitive_restart | 8 +
.../extensions/gl/GL_NV_primitive_shading_rate | 6 +
glew/auto/extensions/gl/GL_NV_query_resource_tag | 4 +
glew/auto/extensions/gl/GL_NV_read_buffer | 6 +
glew/auto/extensions/gl/GL_NV_read_buffer_front | 5 +
glew/auto/extensions/gl/GL_NV_read_depth | 4 +
glew/auto/extensions/gl/GL_NV_read_depth_stencil | 4 +
glew/auto/extensions/gl/GL_NV_read_stencil | 4 +
glew/auto/extensions/gl/GL_NV_register_combiners | 68 +
glew/auto/extensions/gl/GL_NV_register_combiners2 | 7 +
.../gl/GL_NV_representative_fragment_test | 5 +
.../gl/GL_NV_robustness_video_memory_purge | 5 +
glew/auto/extensions/gl/GL_NV_sRGB_formats | 14 +
glew/auto/extensions/gl/GL_NV_sample_locations | 15 +
.../gl/GL_NV_sample_mask_override_coverage | 4 +
glew/auto/extensions/gl/GL_NV_scissor_exclusive | 8 +
.../extensions/gl/GL_NV_shader_atomic_counters | 4 +
glew/auto/extensions/gl/GL_NV_shader_atomic_float | 4 +
.../auto/extensions/gl/GL_NV_shader_atomic_float64 | 4 +
.../extensions/gl/GL_NV_shader_atomic_fp16_vector | 4 +
glew/auto/extensions/gl/GL_NV_shader_atomic_int64 | 4 +
glew/auto/extensions/gl/GL_NV_shader_buffer_load | 20 +
.../gl/GL_NV_shader_noperspective_interpolation | 4 +
.../gl/GL_NV_shader_storage_buffer_object | 4 +
.../gl/GL_NV_shader_subgroup_partitioned | 5 +
.../extensions/gl/GL_NV_shader_texture_footprint | 4 +
glew/auto/extensions/gl/GL_NV_shader_thread_group | 7 +
.../auto/extensions/gl/GL_NV_shader_thread_shuffle | 4 +
glew/auto/extensions/gl/GL_NV_shading_rate_image | 32 +
.../auto/extensions/gl/GL_NV_shadow_samplers_array | 5 +
glew/auto/extensions/gl/GL_NV_shadow_samplers_cube | 5 +
.../auto/extensions/gl/GL_NV_stereo_view_rendering | 4 +
.../auto/extensions/gl/GL_NV_tessellation_program5 | 9 +
glew/auto/extensions/gl/GL_NV_texgen_emboss | 7 +
glew/auto/extensions/gl/GL_NV_texgen_reflection | 6 +
glew/auto/extensions/gl/GL_NV_texture_array | 17 +
glew/auto/extensions/gl/GL_NV_texture_barrier | 5 +
glew/auto/extensions/gl/GL_NV_texture_border_clamp | 6 +
.../extensions/gl/GL_NV_texture_compression_latc | 8 +
.../extensions/gl/GL_NV_texture_compression_s3tc | 8 +
.../gl/GL_NV_texture_compression_s3tc_update | 4 +
.../extensions/gl/GL_NV_texture_compression_vtc | 4 +
glew/auto/extensions/gl/GL_NV_texture_env_combine4 | 9 +
.../auto/extensions/gl/GL_NV_texture_expand_normal | 5 +
glew/auto/extensions/gl/GL_NV_texture_multisample | 12 +
.../extensions/gl/GL_NV_texture_npot_2D_mipmap | 4 +
glew/auto/extensions/gl/GL_NV_texture_rectangle | 8 +
.../gl/GL_NV_texture_rectangle_compressed | 4 +
glew/auto/extensions/gl/GL_NV_texture_shader | 77 +
glew/auto/extensions/gl/GL_NV_texture_shader2 | 32 +
glew/auto/extensions/gl/GL_NV_texture_shader3 | 21 +
glew/auto/extensions/gl/GL_NV_timeline_semaphore | 12 +
glew/auto/extensions/gl/GL_NV_transform_feedback | 40 +
glew/auto/extensions/gl/GL_NV_transform_feedback2 | 15 +
.../gl/GL_NV_uniform_buffer_unified_memory | 7 +
glew/auto/extensions/gl/GL_NV_vdpau_interop | 19 +
glew/auto/extensions/gl/GL_NV_vdpau_interop2 | 5 +
glew/auto/extensions/gl/GL_NV_vertex_array_range | 11 +
glew/auto/extensions/gl/GL_NV_vertex_array_range2 | 5 +
.../gl/GL_NV_vertex_attrib_integer_64bit | 25 +
.../gl/GL_NV_vertex_buffer_unified_memory | 41 +
glew/auto/extensions/gl/GL_NV_vertex_program | 151 +
glew/auto/extensions/gl/GL_NV_vertex_program1_1 | 4 +
glew/auto/extensions/gl/GL_NV_vertex_program2 | 4 +
.../extensions/gl/GL_NV_vertex_program2_option | 6 +
glew/auto/extensions/gl/GL_NV_vertex_program3 | 5 +
glew/auto/extensions/gl/GL_NV_vertex_program4 | 5 +
glew/auto/extensions/gl/GL_NV_video_capture | 45 +
glew/auto/extensions/gl/GL_NV_viewport_array | 24 +
glew/auto/extensions/gl/GL_NV_viewport_array2 | 4 +
glew/auto/extensions/gl/GL_NV_viewport_swizzle | 17 +
glew/auto/extensions/gl/GL_OES_EGL_image | 6 +
glew/auto/extensions/gl/GL_OES_EGL_image_external | 8 +
.../extensions/gl/GL_OES_EGL_image_external_essl3 | 4 +
.../extensions/gl/GL_OES_blend_equation_separate | 7 +
glew/auto/extensions/gl/GL_OES_blend_func_separate | 9 +
glew/auto/extensions/gl/GL_OES_blend_subtract | 9 +
glew/auto/extensions/gl/GL_OES_byte_coordinates | 4 +
.../gl/GL_OES_compressed_ETC1_RGB8_texture | 5 +
.../gl/GL_OES_compressed_paletted_texture | 14 +
glew/auto/extensions/gl/GL_OES_copy_image | 5 +
glew/auto/extensions/gl/GL_OES_depth24 | 5 +
glew/auto/extensions/gl/GL_OES_depth32 | 5 +
glew/auto/extensions/gl/GL_OES_depth_texture | 7 +
.../extensions/gl/GL_OES_depth_texture_cube_map | 9 +
.../auto/extensions/gl/GL_OES_draw_buffers_indexed | 12 +
glew/auto/extensions/gl/GL_OES_draw_texture | 5 +
glew/auto/extensions/gl/GL_OES_element_index_uint | 5 +
.../extensions/gl/GL_OES_extended_matrix_palette | 4 +
glew/auto/extensions/gl/GL_OES_fbo_render_mipmap | 4 +
.../extensions/gl/GL_OES_fragment_precision_high | 4 +
glew/auto/extensions/gl/GL_OES_framebuffer_object | 58 +
glew/auto/extensions/gl/GL_OES_geometry_point_size | 37 +
glew/auto/extensions/gl/GL_OES_geometry_shader | 37 +
glew/auto/extensions/gl/GL_OES_get_program_binary | 9 +
glew/auto/extensions/gl/GL_OES_gpu_shader5 | 4 +
glew/auto/extensions/gl/GL_OES_mapbuffer | 11 +
glew/auto/extensions/gl/GL_OES_matrix_get | 7 +
glew/auto/extensions/gl/GL_OES_matrix_palette | 24 +
.../auto/extensions/gl/GL_OES_packed_depth_stencil | 7 +
glew/auto/extensions/gl/GL_OES_point_size_array | 9 +
glew/auto/extensions/gl/GL_OES_point_sprite | 6 +
glew/auto/extensions/gl/GL_OES_read_format | 6 +
.../extensions/gl/GL_OES_required_internalformat | 19 +
glew/auto/extensions/gl/GL_OES_rgb8_rgba8 | 6 +
glew/auto/extensions/gl/GL_OES_sample_shading | 7 +
glew/auto/extensions/gl/GL_OES_sample_variables | 4 +
glew/auto/extensions/gl/GL_OES_shader_image_atomic | 4 +
glew/auto/extensions/gl/GL_OES_shader_io_blocks | 4 +
.../gl/GL_OES_shader_multisample_interpolation | 7 +
glew/auto/extensions/gl/GL_OES_single_precision | 10 +
.../auto/extensions/gl/GL_OES_standard_derivatives | 5 +
glew/auto/extensions/gl/GL_OES_stencil1 | 5 +
glew/auto/extensions/gl/GL_OES_stencil4 | 5 +
glew/auto/extensions/gl/GL_OES_stencil8 | 5 +
glew/auto/extensions/gl/GL_OES_surfaceless_context | 5 +
.../extensions/gl/GL_OES_tessellation_point_size | 47 +
glew/auto/extensions/gl/GL_OES_tessellation_shader | 47 +
glew/auto/extensions/gl/GL_OES_texture_3D | 14 +
.../auto/extensions/gl/GL_OES_texture_border_clamp | 14 +
glew/auto/extensions/gl/GL_OES_texture_buffer | 20 +
.../extensions/gl/GL_OES_texture_compression_astc | 52 +
glew/auto/extensions/gl/GL_OES_texture_cube_map | 26 +
.../extensions/gl/GL_OES_texture_cube_map_array | 13 +
.../auto/extensions/gl/GL_OES_texture_env_crossbar | 4 +
.../extensions/gl/GL_OES_texture_mirrored_repeat | 5 +
glew/auto/extensions/gl/GL_OES_texture_npot | 4 +
glew/auto/extensions/gl/GL_OES_texture_stencil8 | 6 +
.../gl/GL_OES_texture_storage_multisample_2d_array | 10 +
glew/auto/extensions/gl/GL_OES_texture_view | 10 +
glew/auto/extensions/gl/GL_OES_vertex_array_object | 9 +
glew/auto/extensions/gl/GL_OES_vertex_half_float | 5 +
.../extensions/gl/GL_OES_vertex_type_10_10_10_2 | 6 +
glew/auto/extensions/gl/GL_OML_interlace | 6 +
glew/auto/extensions/gl/GL_OML_resample | 10 +
glew/auto/extensions/gl/GL_OML_subsample | 6 +
glew/auto/extensions/gl/GL_OVR_multiview | 10 +
glew/auto/extensions/gl/GL_OVR_multiview2 | 4 +
...GL_OVR_multiview_multisampled_render_to_texture | 5 +
glew/auto/extensions/gl/GL_PGI_misc_hints | 24 +
glew/auto/extensions/gl/GL_PGI_vertex_hints | 26 +
glew/auto/extensions/gl/GL_QCOM_YUV_texture_gather | 4 +
glew/auto/extensions/gl/GL_QCOM_alpha_test | 8 +
glew/auto/extensions/gl/GL_QCOM_binning_control | 9 +
glew/auto/extensions/gl/GL_QCOM_driver_control | 8 +
glew/auto/extensions/gl/GL_QCOM_extended_get | 23 +
glew/auto/extensions/gl/GL_QCOM_extended_get2 | 8 +
.../auto/extensions/gl/GL_QCOM_frame_extrapolation | 5 +
.../extensions/gl/GL_QCOM_framebuffer_foveated | 8 +
glew/auto/extensions/gl/GL_QCOM_motion_estimation | 8 +
.../auto/extensions/gl/GL_QCOM_perfmon_global_mode | 5 +
.../extensions/gl/GL_QCOM_render_shared_exponent | 5 +
.../GL_QCOM_shader_framebuffer_fetch_noncoherent | 6 +
.../gl/GL_QCOM_shader_framebuffer_fetch_rate | 4 +
glew/auto/extensions/gl/GL_QCOM_shading_rate | 13 +
glew/auto/extensions/gl/GL_QCOM_texture_foveated | 12 +
glew/auto/extensions/gl/GL_QCOM_texture_foveated2 | 5 +
.../gl/GL_QCOM_texture_foveated_subsampled_layout | 6 +
glew/auto/extensions/gl/GL_QCOM_tiled_rendering | 38 +
.../auto/extensions/gl/GL_QCOM_writeonly_rendering | 5 +
.../extensions/gl/GL_REGAL_ES1_0_compatibility | 36 +
.../extensions/gl/GL_REGAL_ES1_1_compatibility | 17 +
glew/auto/extensions/gl/GL_REGAL_enable | 14 +
glew/auto/extensions/gl/GL_REGAL_error_string | 5 +
glew/auto/extensions/gl/GL_REGAL_extension_query | 6 +
glew/auto/extensions/gl/GL_REGAL_log | 15 +
glew/auto/extensions/gl/GL_REGAL_proc_address | 5 +
glew/auto/extensions/gl/GL_REND_screen_coordinates | 6 +
glew/auto/extensions/gl/GL_S3_s3tc | 10 +
glew/auto/extensions/gl/GL_SGIS_clip_band_hint | 4 +
glew/auto/extensions/gl/GL_SGIS_color_range | 13 +
glew/auto/extensions/gl/GL_SGIS_detail_texture | 6 +
glew/auto/extensions/gl/GL_SGIS_fog_function | 6 +
glew/auto/extensions/gl/GL_SGIS_generate_mipmap | 6 +
glew/auto/extensions/gl/GL_SGIS_line_texgen | 4 +
glew/auto/extensions/gl/GL_SGIS_multisample | 22 +
glew/auto/extensions/gl/GL_SGIS_multitexture | 19 +
glew/auto/extensions/gl/GL_SGIS_pixel_texture | 4 +
glew/auto/extensions/gl/GL_SGIS_point_line_texgen | 12 +
glew/auto/extensions/gl/GL_SGIS_shared_multisample | 5 +
glew/auto/extensions/gl/GL_SGIS_sharpen_texture | 6 +
glew/auto/extensions/gl/GL_SGIS_texture4D | 6 +
.../extensions/gl/GL_SGIS_texture_border_clamp | 5 +
glew/auto/extensions/gl/GL_SGIS_texture_edge_clamp | 5 +
glew/auto/extensions/gl/GL_SGIS_texture_filter4 | 6 +
glew/auto/extensions/gl/GL_SGIS_texture_lod | 8 +
glew/auto/extensions/gl/GL_SGIS_texture_select | 4 +
glew/auto/extensions/gl/GL_SGIX_async | 11 +
glew/auto/extensions/gl/GL_SGIX_async_histogram | 6 +
glew/auto/extensions/gl/GL_SGIX_async_pixel | 10 +
glew/auto/extensions/gl/GL_SGIX_bali_g_instruments | 8 +
glew/auto/extensions/gl/GL_SGIX_bali_r_instruments | 7 +
.../extensions/gl/GL_SGIX_bali_timer_instruments | 4 +
glew/auto/extensions/gl/GL_SGIX_blend_alpha_minmax | 6 +
glew/auto/extensions/gl/GL_SGIX_blend_cadd | 5 +
glew/auto/extensions/gl/GL_SGIX_blend_cmultiply | 5 +
.../extensions/gl/GL_SGIX_calligraphic_fragment | 4 +
glew/auto/extensions/gl/GL_SGIX_clipmap | 4 +
.../extensions/gl/GL_SGIX_color_matrix_accuracy | 5 +
.../extensions/gl/GL_SGIX_color_table_index_mode | 4 +
glew/auto/extensions/gl/GL_SGIX_complex_polar | 4 +
.../extensions/gl/GL_SGIX_convolution_accuracy | 5 +
glew/auto/extensions/gl/GL_SGIX_cube_map | 13 +
glew/auto/extensions/gl/GL_SGIX_cylinder_texgen | 4 +
glew/auto/extensions/gl/GL_SGIX_datapipe | 8 +
glew/auto/extensions/gl/GL_SGIX_decimation | 4 +
.../extensions/gl/GL_SGIX_depth_pass_instrument | 7 +
glew/auto/extensions/gl/GL_SGIX_depth_texture | 7 +
glew/auto/extensions/gl/GL_SGIX_dvc | 4 +
glew/auto/extensions/gl/GL_SGIX_flush_raster | 5 +
glew/auto/extensions/gl/GL_SGIX_fog_blend | 6 +
.../auto/extensions/gl/GL_SGIX_fog_factor_to_alpha | 4 +
glew/auto/extensions/gl/GL_SGIX_fog_layers | 12 +
glew/auto/extensions/gl/GL_SGIX_fog_offset | 6 +
glew/auto/extensions/gl/GL_SGIX_fog_patchy | 4 +
glew/auto/extensions/gl/GL_SGIX_fog_scale | 6 +
glew/auto/extensions/gl/GL_SGIX_fog_texture | 5 +
.../extensions/gl/GL_SGIX_fragment_lighting_space | 8 +
.../gl/GL_SGIX_fragment_specular_lighting | 21 +
.../extensions/gl/GL_SGIX_fragments_instrument | 7 +
glew/auto/extensions/gl/GL_SGIX_framezoom | 5 +
glew/auto/extensions/gl/GL_SGIX_icc_texture | 16 +
glew/auto/extensions/gl/GL_SGIX_igloo_interface | 13 +
glew/auto/extensions/gl/GL_SGIX_image_compression | 4 +
.../extensions/gl/GL_SGIX_impact_pixel_texture | 4 +
glew/auto/extensions/gl/GL_SGIX_instrument_error | 4 +
glew/auto/extensions/gl/GL_SGIX_interlace | 5 +
glew/auto/extensions/gl/GL_SGIX_ir_instrument1 | 4 +
glew/auto/extensions/gl/GL_SGIX_line_quality_hint | 5 +
glew/auto/extensions/gl/GL_SGIX_list_priority | 4 +
glew/auto/extensions/gl/GL_SGIX_mpeg1 | 15 +
glew/auto/extensions/gl/GL_SGIX_mpeg2 | 4 +
.../gl/GL_SGIX_nonlinear_lighting_pervertex | 8 +
glew/auto/extensions/gl/GL_SGIX_nurbs_eval | 24 +
.../extensions/gl/GL_SGIX_occlusion_instrument | 5 +
glew/auto/extensions/gl/GL_SGIX_packed_6bytes | 4 +
glew/auto/extensions/gl/GL_SGIX_pixel_texture | 5 +
glew/auto/extensions/gl/GL_SGIX_pixel_texture_bits | 4 +
glew/auto/extensions/gl/GL_SGIX_pixel_texture_lod | 4 +
glew/auto/extensions/gl/GL_SGIX_pixel_tiles | 4 +
glew/auto/extensions/gl/GL_SGIX_polynomial_ffd | 8 +
glew/auto/extensions/gl/GL_SGIX_quad_mesh | 6 +
glew/auto/extensions/gl/GL_SGIX_reference_plane | 5 +
glew/auto/extensions/gl/GL_SGIX_resample | 9 +
glew/auto/extensions/gl/GL_SGIX_scalebias_hint | 5 +
glew/auto/extensions/gl/GL_SGIX_shadow | 8 +
glew/auto/extensions/gl/GL_SGIX_shadow_ambient | 5 +
glew/auto/extensions/gl/GL_SGIX_slim | 8 +
glew/auto/extensions/gl/GL_SGIX_spotlight_cutoff | 5 +
glew/auto/extensions/gl/GL_SGIX_sprite | 8 +
glew/auto/extensions/gl/GL_SGIX_subdiv_patch | 4 +
glew/auto/extensions/gl/GL_SGIX_subsample | 9 +
glew/auto/extensions/gl/GL_SGIX_tag_sample_buffer | 5 +
glew/auto/extensions/gl/GL_SGIX_texture_add_env | 4 +
.../extensions/gl/GL_SGIX_texture_coordinate_clamp | 7 +
glew/auto/extensions/gl/GL_SGIX_texture_lod_bias | 4 +
.../gl/GL_SGIX_texture_mipmap_anisotropic | 6 +
.../extensions/gl/GL_SGIX_texture_multi_buffer | 5 +
glew/auto/extensions/gl/GL_SGIX_texture_phase | 5 +
glew/auto/extensions/gl/GL_SGIX_texture_range | 32 +
glew/auto/extensions/gl/GL_SGIX_texture_scale_bias | 8 +
.../auto/extensions/gl/GL_SGIX_texture_supersample | 4 +
glew/auto/extensions/gl/GL_SGIX_vector_ops | 6 +
.../auto/extensions/gl/GL_SGIX_vertex_array_object | 10 +
glew/auto/extensions/gl/GL_SGIX_vertex_preclip | 6 +
.../auto/extensions/gl/GL_SGIX_vertex_preclip_hint | 6 +
glew/auto/extensions/gl/GL_SGIX_ycrcb | 4 +
glew/auto/extensions/gl/GL_SGIX_ycrcb_subsample | 4 +
glew/auto/extensions/gl/GL_SGIX_ycrcba | 6 +
glew/auto/extensions/gl/GL_SGI_color_matrix | 15 +
glew/auto/extensions/gl/GL_SGI_color_table | 27 +
glew/auto/extensions/gl/GL_SGI_complex | 4 +
glew/auto/extensions/gl/GL_SGI_complex_type | 11 +
glew/auto/extensions/gl/GL_SGI_fft | 16 +
glew/auto/extensions/gl/GL_SGI_texture_color_table | 6 +
glew/auto/extensions/gl/GL_SUNX_constant_data | 7 +
.../extensions/gl/GL_SUN_convolution_border_modes | 5 +
glew/auto/extensions/gl/GL_SUN_global_alpha | 14 +
glew/auto/extensions/gl/GL_SUN_mesh_array | 6 +
glew/auto/extensions/gl/GL_SUN_read_video_pixels | 5 +
glew/auto/extensions/gl/GL_SUN_slice_accum | 5 +
glew/auto/extensions/gl/GL_SUN_triangle_list | 28 +
glew/auto/extensions/gl/GL_SUN_vertex | 44 +
glew/auto/extensions/gl/GL_VIV_shader_binary | 5 +
glew/auto/extensions/gl/GL_WIN_phong_shading | 6 +
glew/auto/extensions/gl/GL_WIN_scene_markerXXX | 4 +
glew/auto/extensions/gl/GL_WIN_specular_fog | 5 +
glew/auto/extensions/gl/GL_WIN_swap_hint | 5 +
glew/auto/extensions/gl/WGL_3DFX_multisample | 6 +
glew/auto/extensions/gl/WGL_3DL_stereo_control | 9 +
glew/auto/extensions/gl/WGL_AMD_gpu_association | 23 +
glew/auto/extensions/gl/WGL_ARB_buffer_region | 12 +
.../extensions/gl/WGL_ARB_context_flush_control | 7 +
glew/auto/extensions/gl/WGL_ARB_create_context | 12 +
.../extensions/gl/WGL_ARB_create_context_no_error | 5 +
.../extensions/gl/WGL_ARB_create_context_profile | 8 +
.../gl/WGL_ARB_create_context_robustness | 8 +
glew/auto/extensions/gl/WGL_ARB_extensions_string | 5 +
glew/auto/extensions/gl/WGL_ARB_framebuffer_sRGB | 5 +
glew/auto/extensions/gl/WGL_ARB_make_current_read | 10 +
glew/auto/extensions/gl/WGL_ARB_multisample | 6 +
glew/auto/extensions/gl/WGL_ARB_pbuffer | 18 +
glew/auto/extensions/gl/WGL_ARB_pixel_format | 56 +
glew/auto/extensions/gl/WGL_ARB_pixel_format_float | 5 +
glew/auto/extensions/gl/WGL_ARB_render_texture | 40 +
.../gl/WGL_ARB_robustness_application_isolation | 5 +
.../gl/WGL_ARB_robustness_share_group_isolation | 5 +
glew/auto/extensions/gl/WGL_ATI_pixel_format_float | 7 +
.../extensions/gl/WGL_ATI_render_texture_rectangle | 5 +
glew/auto/extensions/gl/WGL_EXT_colorspace | 7 +
.../gl/WGL_EXT_create_context_es2_profile | 5 +
.../gl/WGL_EXT_create_context_es_profile | 5 +
glew/auto/extensions/gl/WGL_EXT_depth_float | 5 +
.../auto/extensions/gl/WGL_EXT_display_color_table | 8 +
glew/auto/extensions/gl/WGL_EXT_extensions_string | 5 +
glew/auto/extensions/gl/WGL_EXT_framebuffer_sRGB | 5 +
glew/auto/extensions/gl/WGL_EXT_make_current_read | 8 +
glew/auto/extensions/gl/WGL_EXT_multisample | 6 +
glew/auto/extensions/gl/WGL_EXT_pbuffer | 19 +
glew/auto/extensions/gl/WGL_EXT_pixel_format | 52 +
.../gl/WGL_EXT_pixel_format_packed_float | 5 +
glew/auto/extensions/gl/WGL_EXT_swap_control | 6 +
glew/auto/extensions/gl/WGL_EXT_swap_control_tear | 4 +
.../extensions/gl/WGL_I3D_digital_video_control | 10 +
glew/auto/extensions/gl/WGL_I3D_gamma | 10 +
glew/auto/extensions/gl/WGL_I3D_genlock | 25 +
glew/auto/extensions/gl/WGL_I3D_image_buffer | 10 +
glew/auto/extensions/gl/WGL_I3D_swap_frame_lock | 8 +
glew/auto/extensions/gl/WGL_I3D_swap_frame_usage | 8 +
glew/auto/extensions/gl/WGL_NV_DX_interop | 15 +
glew/auto/extensions/gl/WGL_NV_DX_interop2 | 4 +
glew/auto/extensions/gl/WGL_NV_copy_image | 6 +
glew/auto/extensions/gl/WGL_NV_delay_before_swap | 5 +
glew/auto/extensions/gl/WGL_NV_float_buffer | 13 +
glew/auto/extensions/gl/WGL_NV_gpu_affinity | 13 +
glew/auto/extensions/gl/WGL_NV_multigpu_context | 9 +
.../auto/extensions/gl/WGL_NV_multisample_coverage | 6 +
glew/auto/extensions/gl/WGL_NV_present_video | 9 +
.../auto/extensions/gl/WGL_NV_render_depth_texture | 9 +
.../extensions/gl/WGL_NV_render_texture_rectangle | 7 +
glew/auto/extensions/gl/WGL_NV_swap_group | 10 +
glew/auto/extensions/gl/WGL_NV_vertex_array_range | 6 +
glew/auto/extensions/gl/WGL_NV_video_capture | 12 +
glew/auto/extensions/gl/WGL_NV_video_output | 24 +
glew/auto/extensions/gl/WGL_OML_sync_control | 10 +
glew/auto/src/eglew_head.h | 98 +
glew/auto/src/eglew_mid.h | 4 +
glew/auto/src/eglew_tail.h | 15 +
glew/auto/src/footer.html | 4 +
glew/auto/src/glew_head.c | 289 +
glew/auto/src/glew_head.h | 1139 +
glew/auto/src/glew_init_egl.c | 45 +
glew/auto/src/glew_init_gl.c | 209 +
glew/auto/src/glew_init_glx.c | 57 +
glew/auto/src/glew_init_tail.c | 68 +
glew/auto/src/glew_init_wgl.c | 41 +
glew/auto/src/glew_license.h | 32 +
glew/auto/src/glew_str_egl.c | 17 +
glew/auto/src/glew_str_glx.c | 17 +
glew/auto/src/glew_str_head.c | 9 +
glew/auto/src/glew_str_tail.c | 7 +
glew/auto/src/glew_str_wgl.c | 17 +
glew/auto/src/glew_tail.h | 69 +
glew/auto/src/glewinfo_egl.c | 6 +
glew/auto/src/glewinfo_gl.c | 7 +
glew/auto/src/glewinfo_glx.c | 6 +
glew/auto/src/glewinfo_head.c | 96 +
glew/auto/src/glewinfo_tail.c | 609 +
glew/auto/src/glewinfo_wgl.c | 8 +
glew/auto/src/glxew_head.h | 111 +
glew/auto/src/glxew_mid.h | 4 +
glew/auto/src/glxew_tail.h | 20 +
glew/auto/src/header.html | 96 +
glew/auto/src/khronos_license.h | 23 +
glew/auto/src/mesa_license.h | 24 +
glew/auto/src/wglew_head.h | 36 +
glew/auto/src/wglew_mid.h | 4 +
glew/auto/src/wglew_tail.h | 22 +
glew/build/cmake/CMakeLists.txt | 287 +
.../build/cmake/CopyImportedTargetProperties.cmake | 88 +
glew/build/cmake/cmake_uninstall.cmake.in | 26 +
glew/build/cmake/glew-config.cmake | 60 +
glew/build/cmake/testbuild/CMakeLists.txt | 25 +
glew/build/cmake/testbuild/main.c | 23 +
glew/build/vc10/common.props | 29 +
glew/build/vc12/common.props | 29 +
glew/build/vc14/common.props | 29 +
glew/build/vc15/common.props | 29 +
glew/build/vc6/glew.dsw | 71 +
glew/build/vc6/glew_shared.dsp | 122 +
glew/build/vc6/glew_static.dsp | 112 +
glew/build/vc6/glewinfo.dsp | 103 +
glew/build/vc6/visualinfo.dsp | 103 +
glew/cmake-testbuild.sh | 71 +
glew/config/config.guess | 1700 +
glew/config/version | 7 +
glew/doc/advanced.html | 230 +
glew/doc/basic.html | 280 +
glew/doc/build.html | 149 +
glew/doc/credits.html | 102 +
glew/doc/github.png | Bin 0 -> 1219 bytes
glew/doc/glew.css | 187 +
glew/doc/glew.html | 1071 +
glew/doc/glew.png | Bin 0 -> 9298 bytes
glew/doc/glew.txt | 29 +
glew/doc/glxew.html | 188 +
glew/doc/gpl.txt | 340 +
glew/doc/index.html | 213 +
glew/doc/install.html | 226 +
glew/doc/khronos.txt | 20 +
glew/doc/log.html | 1419 +
glew/doc/mesa.txt | 21 +
glew/doc/new.png | Bin 0 -> 1180 bytes
glew/doc/ogl_sm.jpg | Bin 0 -> 1617 bytes
glew/doc/travis.png | Bin 0 -> 2541 bytes
glew/doc/wglew.html | 169 +
glew/glew.pc.in | 11 +
glew/include/GL/eglew.h | 3230 +
glew/include/GL/glew.h | 26719 +++++++++
glew/include/GL/glxew.h | 1843 +
glew/include/GL/wglew.h | 1468 +
glew/original-readme.md | 255 +
glew/src/glew.c | 32522 ++++++++++
glew/src/glewinfo.c | 19392 ++++++
glew/src/visualinfo.c | 1283 +
meshes/armadillo.obj | 752 +
meshes/bean.obj | 2448 +
meshes/bunny.obj | 26142 ++++++++
meshes/cactus.obj | 752 +
meshes/cow.obj | 8724 +++
meshes/cube.obj | 44 +
meshes/peter.obj | 59655 +++++++++++++++++++
meshes/rectangle.obj | 686 +
meshes/sphere.obj | 1458 +
meshes/teapot.obj | 2194 +
meshes/tetrahedron.obj | 12 +
readme-videos/armadillo.gif | Bin 0 -> 1831687 bytes
readme-videos/bean.gif | Bin 0 -> 2039976 bytes
readme-videos/peter.gif | Bin 0 -> 6964791 bytes
readme-videos/sphere.gif | Bin 0 -> 1258776 bytes
readme-videos/teapot.gif | Bin 0 -> 1139394 bytes
readme-videos/tetrahedron.gif | Bin 0 -> 478109 bytes
resources/shaders/anchorPoint.frag | 10 +
resources/shaders/anchorPoint.geom | 41 +
resources/shaders/anchorPoint.vert | 16 +
resources/shaders/shader.frag | 18 +
resources/shaders/shader.vert | 18 +
resources/shaders/shaders.qrc | 9 +
src/arap.cpp | 57 +
src/arap.h | 46 +
src/glwidget.cpp | 304 +
src/glwidget.h | 72 +
src/graphics/camera.cpp | 196 +
src/graphics/camera.h | 55 +
src/graphics/graphicsdebug.cpp | 126 +
src/graphics/graphicsdebug.h | 15 +
src/graphics/meshloader.cpp | 65 +
src/graphics/meshloader.h | 18 +
src/graphics/shader.cpp | 286 +
src/graphics/shader.h | 97 +
src/graphics/shape.cpp | 272 +
src/graphics/shape.h | 72 +
src/main.cpp | 38 +
src/mainwindow.cpp | 17 +
src/mainwindow.h | 16 +
util/tiny_obj_loader.h | 2242 +
util/unsupportedeigenthing/OpenGLSupport | 322 +
1759 files changed, 316381 insertions(+)
create mode 100755 .gitignore
create mode 100644 .gitmodules
create mode 100644 CMakeLists.txt
create mode 160000 Eigen
create mode 100644 README.md
create mode 100644 glew/LICENSE.txt
create mode 100644 glew/README.md
create mode 100644 glew/auto/EGL-Registry/.dummy
create mode 100644 glew/auto/EGL-Registry/.htaccess
create mode 100644 glew/auto/EGL-Registry/CODE_OF_CONDUCT.md
create mode 100644 glew/auto/EGL-Registry/README.md
create mode 100644 glew/auto/EGL-Registry/api/1.0/EGL/egl.h
create mode 100644 glew/auto/EGL-Registry/api/1.0/egl.h
create mode 100644 glew/auto/EGL-Registry/api/1.1/EGL/egl.h
create mode 100644 glew/auto/EGL-Registry/api/1.2/EGL/egl.h
create mode 100644 glew/auto/EGL-Registry/api/1.2/egl.h
create mode 100644 glew/auto/EGL-Registry/api/EGL/egl.h
create mode 100644 glew/auto/EGL-Registry/api/EGL/eglext.h
create mode 100644 glew/auto/EGL-Registry/api/EGL/eglplatform.h
create mode 100644 glew/auto/EGL-Registry/api/KHR/khrplatform.h
create mode 100644 glew/auto/EGL-Registry/api/egl.xml
create mode 100644 glew/auto/EGL-Registry/api/egltest.c
create mode 100644 glew/auto/EGL-Registry/api/genheaders.py
create mode 100644 glew/auto/EGL-Registry/api/reg.py
create mode 100644 glew/auto/EGL-Registry/api/registry.rnc
create mode 100644 glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_GLES_layers.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_blob_cache.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_create_native_client_buffer.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_framebuffer_target.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_front_buffer_auto_refresh.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_image_native_buffer.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_presentation_time.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_recordable.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_d3d_share_handle_client_buffer.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_device_d3d.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_query_surface_pointer.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_surface_d3d_texture_2d_share_handle.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_sync_control_rate.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_window_fixed_size.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_image_format.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_implicit_external_sync.txt
create mode 100644 glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_pixmap_multisample_discard.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_bind_to_front.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_buffer_age.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_client_extensions.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_client_sync.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_compositor.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_config_select_group.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_create_context_robustness.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_base.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_drm.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_drm_render_node.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_enumeration.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_openwf.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_persistent_id.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_query.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_query_name.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_explicit_device.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_bt2020_linear.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_dma_buf_import.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_gl_colorspace.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_implicit_sync_control.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_multiview_window.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_output_base.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_pixel_format_float.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_base.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_device.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_wayland.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_x11.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_xcb.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_present_opaque.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_protected_content.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_protected_surface.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_stream_consumer_egloutput.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_SMPTE2086_metadata.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_compression.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_swap_buffers_with_damage.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_sync_reuse.txt
create mode 100644 glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_yuv_surface.txt
create mode 100644 glew/auto/EGL-Registry/extensions/HI/EGL_HI_clientpixmap.txt
create mode 100644 glew/auto/EGL-Registry/extensions/HI/EGL_HI_colorformats.txt
create mode 100644 glew/auto/EGL-Registry/extensions/IMG/EGL_IMG_context_priority.txt
create mode 100644 glew/auto/EGL-Registry/extensions/IMG/EGL_IMG_image_plane_attribs.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_cl_event.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_cl_event2.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_config_attribs.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_create_context.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_create_context_no_error.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_debug.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_display_reference.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_fence_sync.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_get_all_proc_addresses.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_gl_colorspace.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_gl_image.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image_base.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image_pixmap.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface2.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface3.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_mutable_render_buffer.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_no_config_context.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_partial_update.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_android.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_gbm.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_wayland.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_x11.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_reusable_sync.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_consumer_gltexture.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_cross_process_fd.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_fifo.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_producer_aldatalocator.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_producer_eglsurface.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_surfaceless_context.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_swap_buffers_with_damage.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_vg_parent_image.txt
create mode 100644 glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_wait_sync.txt
create mode 100644 glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_drm_image.txt
create mode 100644 glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_image_dma_buf_export.txt
create mode 100644 glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_gbm.txt
create mode 100644 glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_surfaceless.txt
create mode 100644 glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_query_driver.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NOK/EGL_NOK_swap_region2.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NOK/EGL_NOK_texture_from_pixmap.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_3dvision_surface.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_context_priority_realtime.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_coverage_sample.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_coverage_sample_resolve.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_cuda_event.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_depth_nonlinear.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_device_cuda.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_n_buffer.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_native_query.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_post_convert_rounding.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_post_sub_buffer.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_consumer_eglimage.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_consumer_gltexture_yuv.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_dma.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_fifo_next.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_fifo_synchronous.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_flush.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_frame_limits.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_metadata.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_origin.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_remote.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_reset.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_socket.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_sync.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_sync.txt
create mode 100644 glew/auto/EGL-Registry/extensions/NV/EGL_NV_system_time.txt
create mode 100644 glew/auto/EGL-Registry/extensions/TIZEN/EGL_TIZEN_image_native_buffer.txt
create mode 100644 glew/auto/EGL-Registry/extensions/TIZEN/EGL_TIZEN_image_native_surface.txt
create mode 100644 glew/auto/EGL-Registry/extensions/WL/EGL_WL_bind_wayland_display.txt
create mode 100644 glew/auto/EGL-Registry/extensions/WL/EGL_WL_create_wayland_buffer_from_image.txt
create mode 100644 glew/auto/EGL-Registry/index.php
create mode 100644 glew/auto/EGL-Registry/registry.tcl
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/.htaccess
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/NOTES
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/README
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/bottom.php
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/copyright.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/db4-upgrade.xsl
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglBindAPI.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglBindTexImage.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglChooseConfig.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCopyBuffers.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreateContext.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferSurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePixmapSurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreateWindowSurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglDestroyContext.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglDestroySurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetConfigAttrib.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetConfigs.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentContext.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentDisplay.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentSurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetDisplay.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetError.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetProcAddress.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglInitialize.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglIntro.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglMakeCurrent.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryAPI.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryContext.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryString.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQuerySurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglReleaseTexImage.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglReleaseThread.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSurfaceAttrib.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSwapBuffers.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSwapInterval.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglTerminate.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitClient.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitGL.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitNative.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/docbook4/reference.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglBindAPI.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglBindTexImage.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglChooseConfig.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglClientWaitSync.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglCopyBuffers.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglCreateContext.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglCreateImage.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglCreatePbufferFromClientBuffer.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglCreatePbufferSurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglCreatePixmapSurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglCreatePlatformPixmapSurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglCreatePlatformWindowSurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglCreateSync.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglCreateWindowSurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglDestroyContext.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglDestroyImage.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglDestroySurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglDestroySync.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglGetConfigAttrib.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglGetConfigs.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentContext.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentDisplay.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentSurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglGetDisplay.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglGetError.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglGetPlatformDisplay.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglGetProcAddress.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglGetSyncAttrib.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglInitialize.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglIntro.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglMakeCurrent.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglQueryAPI.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglQueryContext.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglQueryString.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglQuerySurface.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglReleaseTexImage.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglReleaseThread.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglSurfaceAttrib.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglSwapBuffers.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglSwapInterval.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglTerminate.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglWaitClient.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglWaitGL.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglWaitNative.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/eglWaitSync.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/headBackground.jpg
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/EGL_300.png
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/KhronosLogo.jpg
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/accord.js
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/bullets-contract.gif
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/bullets-end.gif
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/bullets-expand.gif
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglBindAPI.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglBindTexImage.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglChooseConfig.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglClientWaitSync.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglCopyBuffers.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateContext.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateImage.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePbufferFromClientBuffer.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePbufferSurface.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePixmapSurface.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePlatformPixmapSurface.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePlatformWindowSurface.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateSync.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateWindowSurface.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroyContext.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroyImage.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroySurface.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroySync.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglGetConfigAttrib.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglGetConfigs.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentContext.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentDisplay.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentSurface.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglGetDisplay.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglGetError.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglGetPlatformDisplay.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglGetProcAddress.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglGetSyncAttrib.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglInitialize.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglIntro.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglMakeCurrent.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryAPI.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryContext.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryString.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglQuerySurface.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglReleaseTexImage.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglReleaseThread.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglSurfaceAttrib.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglSwapBuffers.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglSwapInterval.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglTerminate.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitClient.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitGL.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitNative.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitSync.xhtml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/index.php
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/indexflat.php
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/khronos-man.css
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/khronos-man.xsl
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/makeindex.py
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/old-egl-man.xsl
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/present.css
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/start.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/style-index.css
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/undohtml.css
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/html/vn
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/index.php
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/mkshar
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/reference.xml
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/setvars
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/top.php
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/EGL_300.png
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/Header.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/Intro.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/KhronosLogo.jpg
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/TOC.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-contract.gif
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-end.gif
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-expand.gif
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/copyright.inc.xsl
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/ctop.xsl
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/egl-man.xsl
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglBindAPI.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglBindTexImage.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglChooseConfig.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCopyBuffers.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreateContext.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePbufferFromClientBuffer.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePbufferSurface.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePixmapSurface.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreateWindowSurface.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglDestroyContext.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglDestroySurface.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetConfigAttrib.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetConfigs.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentContext.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentDisplay.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentSurface.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetDisplay.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetError.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetProcAddress.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglInitialize.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglIntro.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglMakeCurrent.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryAPI.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryContext.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryString.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQuerySurface.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglReleaseTexImage.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglReleaseThread.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSurfaceAttrib.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSwapBuffers.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSwapInterval.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglTerminate.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitClient.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitGL.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitNative.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/headBackground.jpg
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/index.html
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/maketoc.pl
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/opengl-man.xsl
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/present.css
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/style.css
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/styles-css.xsl
create mode 100644 glew/auto/EGL-Registry/sdk/docs/man/xhtml/undohtml.css
create mode 100644 glew/auto/EGL-Registry/specs/EGLTechNote0001.html
create mode 100644 glew/auto/EGL-Registry/specs/Khronos-1600-Transparent-May07.png
create mode 100644 glew/auto/EGL-Registry/specs/eglspec.1.0.pdf
create mode 100644 glew/auto/EGL-Registry/specs/eglspec.1.1.pdf
create mode 100644 glew/auto/EGL-Registry/specs/eglspec.1.2.pdf
create mode 100644 glew/auto/EGL-Registry/specs/eglspec.1.3.pdf
create mode 100644 glew/auto/EGL-Registry/specs/eglspec.1.4.pdf
create mode 100644 glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdf
create mode 100644 glew/auto/EGL-Registry/specs/eglspec.1.5.pdf
create mode 100644 glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdf
create mode 100644 glew/auto/EGL-Registry/specs/igstyle.css
create mode 100644 glew/auto/EGL-Registry/specs/legal.html
create mode 100644 glew/auto/EGL-Registry/specs/legal.xhtml
create mode 100644 glew/auto/bin/filter_gl_ext.sh
create mode 100644 glew/auto/bin/filter_gles_ext.sh
create mode 100644 glew/auto/bin/filter_spec.py
create mode 100644 glew/auto/bin/make.pl
create mode 100644 glew/auto/bin/make_def_fun.pl
create mode 100644 glew/auto/bin/make_def_var.pl
create mode 100644 glew/auto/bin/make_enable_index.pl
create mode 100644 glew/auto/bin/make_header.pl
create mode 100644 glew/auto/bin/make_html.pl
create mode 100644 glew/auto/bin/make_index.pl
create mode 100644 glew/auto/bin/make_info.pl
create mode 100644 glew/auto/bin/make_info_list.pl
create mode 100644 glew/auto/bin/make_init.pl
create mode 100644 glew/auto/bin/make_initd.pl
create mode 100644 glew/auto/bin/make_list.pl
create mode 100644 glew/auto/bin/make_list2.pl
create mode 100644 glew/auto/bin/make_str.pl
create mode 100644 glew/auto/bin/make_struct_fun.pl
create mode 100644 glew/auto/bin/make_struct_var.pl
create mode 100644 glew/auto/bin/parse_spec.pl
create mode 100644 glew/auto/bin/parse_xml.py
create mode 100644 glew/auto/bin/update_ext.sh
create mode 100644 glew/auto/blacklist
create mode 100644 glew/auto/custom.txt
create mode 100644 glew/auto/doc/advanced.html
create mode 100644 glew/auto/doc/basic.html
create mode 100644 glew/auto/doc/build.html
create mode 100644 glew/auto/doc/credits.html
create mode 100644 glew/auto/doc/index.html
create mode 100644 glew/auto/doc/install.html
create mode 100644 glew/auto/doc/log.html
create mode 100644 glew/auto/extensions/gl/.dummy
create mode 100644 glew/auto/extensions/gl/EGL_ANDROID_GLES_layers
create mode 100644 glew/auto/extensions/gl/EGL_ANDROID_blob_cache
create mode 100644 glew/auto/extensions/gl/EGL_ANDROID_create_native_client_buffer
create mode 100644 glew/auto/extensions/gl/EGL_ANDROID_framebuffer_target
create mode 100644 glew/auto/extensions/gl/EGL_ANDROID_front_buffer_auto_refresh
create mode 100644 glew/auto/extensions/gl/EGL_ANDROID_get_frame_timestamps
create mode 100644 glew/auto/extensions/gl/EGL_ANDROID_get_native_client_buffer
create mode 100644 glew/auto/extensions/gl/EGL_ANDROID_image_native_buffer
create mode 100644 glew/auto/extensions/gl/EGL_ANDROID_native_fence_sync
create mode 100644 glew/auto/extensions/gl/EGL_ANDROID_presentation_time
create mode 100644 glew/auto/extensions/gl/EGL_ANDROID_recordable
create mode 100644 glew/auto/extensions/gl/EGL_ANGLE_d3d_share_handle_client_buffer
create mode 100644 glew/auto/extensions/gl/EGL_ANGLE_device_d3d
create mode 100644 glew/auto/extensions/gl/EGL_ANGLE_query_surface_pointer
create mode 100644 glew/auto/extensions/gl/EGL_ANGLE_surface_d3d_texture_2d_share_handle
create mode 100644 glew/auto/extensions/gl/EGL_ANGLE_sync_control_rate
create mode 100644 glew/auto/extensions/gl/EGL_ANGLE_window_fixed_size
create mode 100644 glew/auto/extensions/gl/EGL_ARM_image_format
create mode 100644 glew/auto/extensions/gl/EGL_ARM_implicit_external_sync
create mode 100644 glew/auto/extensions/gl/EGL_ARM_pixmap_multisample_discard
create mode 100644 glew/auto/extensions/gl/EGL_EXT_bind_to_front
create mode 100644 glew/auto/extensions/gl/EGL_EXT_buffer_age
create mode 100644 glew/auto/extensions/gl/EGL_EXT_client_extensions
create mode 100644 glew/auto/extensions/gl/EGL_EXT_client_sync
create mode 100644 glew/auto/extensions/gl/EGL_EXT_compositor
create mode 100644 glew/auto/extensions/gl/EGL_EXT_config_select_group
create mode 100644 glew/auto/extensions/gl/EGL_EXT_create_context_robustness
create mode 100644 glew/auto/extensions/gl/EGL_EXT_device_base
create mode 100644 glew/auto/extensions/gl/EGL_EXT_device_drm
create mode 100644 glew/auto/extensions/gl/EGL_EXT_device_drm_render_node
create mode 100644 glew/auto/extensions/gl/EGL_EXT_device_enumeration
create mode 100644 glew/auto/extensions/gl/EGL_EXT_device_openwf
create mode 100644 glew/auto/extensions/gl/EGL_EXT_device_persistent_id
create mode 100644 glew/auto/extensions/gl/EGL_EXT_device_query
create mode 100644 glew/auto/extensions/gl/EGL_EXT_device_query_name
create mode 100644 glew/auto/extensions/gl/EGL_EXT_explicit_device
create mode 100644 glew/auto/extensions/gl/EGL_EXT_gl_colorspace_bt2020_linear
create mode 100644 glew/auto/extensions/gl/EGL_EXT_gl_colorspace_bt2020_pq
create mode 100644 glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3
create mode 100644 glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3_linear
create mode 100644 glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3_passthrough
create mode 100644 glew/auto/extensions/gl/EGL_EXT_gl_colorspace_scrgb
create mode 100644 glew/auto/extensions/gl/EGL_EXT_gl_colorspace_scrgb_linear
create mode 100644 glew/auto/extensions/gl/EGL_EXT_image_dma_buf_import
create mode 100644 glew/auto/extensions/gl/EGL_EXT_image_dma_buf_import_modifiers
create mode 100644 glew/auto/extensions/gl/EGL_EXT_image_gl_colorspace
create mode 100644 glew/auto/extensions/gl/EGL_EXT_image_implicit_sync_control
create mode 100644 glew/auto/extensions/gl/EGL_EXT_multiview_window
create mode 100644 glew/auto/extensions/gl/EGL_EXT_output_base
create mode 100644 glew/auto/extensions/gl/EGL_EXT_output_drm
create mode 100644 glew/auto/extensions/gl/EGL_EXT_output_openwf
create mode 100644 glew/auto/extensions/gl/EGL_EXT_pixel_format_float
create mode 100644 glew/auto/extensions/gl/EGL_EXT_platform_base
create mode 100644 glew/auto/extensions/gl/EGL_EXT_platform_device
create mode 100644 glew/auto/extensions/gl/EGL_EXT_platform_wayland
create mode 100644 glew/auto/extensions/gl/EGL_EXT_platform_x11
create mode 100644 glew/auto/extensions/gl/EGL_EXT_platform_xcb
create mode 100644 glew/auto/extensions/gl/EGL_EXT_present_opaque
create mode 100644 glew/auto/extensions/gl/EGL_EXT_protected_content
create mode 100644 glew/auto/extensions/gl/EGL_EXT_protected_surface
create mode 100644 glew/auto/extensions/gl/EGL_EXT_stream_consumer_egloutput
create mode 100644 glew/auto/extensions/gl/EGL_EXT_surface_CTA861_3_metadata
create mode 100644 glew/auto/extensions/gl/EGL_EXT_surface_SMPTE2086_metadata
create mode 100644 glew/auto/extensions/gl/EGL_EXT_surface_compression
create mode 100644 glew/auto/extensions/gl/EGL_EXT_swap_buffers_with_damage
create mode 100644 glew/auto/extensions/gl/EGL_EXT_sync_reuse
create mode 100644 glew/auto/extensions/gl/EGL_EXT_yuv_surface
create mode 100644 glew/auto/extensions/gl/EGL_HI_clientpixmap
create mode 100644 glew/auto/extensions/gl/EGL_HI_colorformats
create mode 100644 glew/auto/extensions/gl/EGL_IMG_context_priority
create mode 100644 glew/auto/extensions/gl/EGL_IMG_image_plane_attribs
create mode 100644 glew/auto/extensions/gl/EGL_KHR_cl_event
create mode 100644 glew/auto/extensions/gl/EGL_KHR_cl_event2
create mode 100644 glew/auto/extensions/gl/EGL_KHR_client_get_all_proc_addresses
create mode 100644 glew/auto/extensions/gl/EGL_KHR_config_attribs
create mode 100644 glew/auto/extensions/gl/EGL_KHR_context_flush_control
create mode 100644 glew/auto/extensions/gl/EGL_KHR_create_context
create mode 100644 glew/auto/extensions/gl/EGL_KHR_create_context_no_error
create mode 100644 glew/auto/extensions/gl/EGL_KHR_debug
create mode 100644 glew/auto/extensions/gl/EGL_KHR_display_reference
create mode 100644 glew/auto/extensions/gl/EGL_KHR_fence_sync
create mode 100644 glew/auto/extensions/gl/EGL_KHR_get_all_proc_addresses
create mode 100644 glew/auto/extensions/gl/EGL_KHR_gl_colorspace
create mode 100644 glew/auto/extensions/gl/EGL_KHR_gl_renderbuffer_image
create mode 100644 glew/auto/extensions/gl/EGL_KHR_gl_texture_2D_image
create mode 100644 glew/auto/extensions/gl/EGL_KHR_gl_texture_3D_image
create mode 100644 glew/auto/extensions/gl/EGL_KHR_gl_texture_cubemap_image
create mode 100644 glew/auto/extensions/gl/EGL_KHR_image
create mode 100644 glew/auto/extensions/gl/EGL_KHR_image_base
create mode 100644 glew/auto/extensions/gl/EGL_KHR_image_pixmap
create mode 100644 glew/auto/extensions/gl/EGL_KHR_lock_surface
create mode 100644 glew/auto/extensions/gl/EGL_KHR_lock_surface2
create mode 100644 glew/auto/extensions/gl/EGL_KHR_lock_surface3
create mode 100644 glew/auto/extensions/gl/EGL_KHR_mutable_render_buffer
create mode 100644 glew/auto/extensions/gl/EGL_KHR_no_config_context
create mode 100644 glew/auto/extensions/gl/EGL_KHR_partial_update
create mode 100644 glew/auto/extensions/gl/EGL_KHR_platform_android
create mode 100644 glew/auto/extensions/gl/EGL_KHR_platform_gbm
create mode 100644 glew/auto/extensions/gl/EGL_KHR_platform_wayland
create mode 100644 glew/auto/extensions/gl/EGL_KHR_platform_x11
create mode 100644 glew/auto/extensions/gl/EGL_KHR_reusable_sync
create mode 100644 glew/auto/extensions/gl/EGL_KHR_stream
create mode 100644 glew/auto/extensions/gl/EGL_KHR_stream_attrib
create mode 100644 glew/auto/extensions/gl/EGL_KHR_stream_consumer_gltexture
create mode 100644 glew/auto/extensions/gl/EGL_KHR_stream_cross_process_fd
create mode 100644 glew/auto/extensions/gl/EGL_KHR_stream_fifo
create mode 100644 glew/auto/extensions/gl/EGL_KHR_stream_producer_aldatalocator
create mode 100644 glew/auto/extensions/gl/EGL_KHR_stream_producer_eglsurface
create mode 100644 glew/auto/extensions/gl/EGL_KHR_surfaceless_context
create mode 100644 glew/auto/extensions/gl/EGL_KHR_swap_buffers_with_damage
create mode 100644 glew/auto/extensions/gl/EGL_KHR_vg_parent_image
create mode 100644 glew/auto/extensions/gl/EGL_KHR_wait_sync
create mode 100644 glew/auto/extensions/gl/EGL_MESA_drm_image
create mode 100644 glew/auto/extensions/gl/EGL_MESA_image_dma_buf_export
create mode 100644 glew/auto/extensions/gl/EGL_MESA_platform_gbm
create mode 100644 glew/auto/extensions/gl/EGL_MESA_platform_surfaceless
create mode 100644 glew/auto/extensions/gl/EGL_MESA_query_driver
create mode 100644 glew/auto/extensions/gl/EGL_NOK_swap_region
create mode 100644 glew/auto/extensions/gl/EGL_NOK_swap_region2
create mode 100644 glew/auto/extensions/gl/EGL_NOK_texture_from_pixmap
create mode 100644 glew/auto/extensions/gl/EGL_NV_3dvision_surface
create mode 100644 glew/auto/extensions/gl/EGL_NV_context_priority_realtime
create mode 100644 glew/auto/extensions/gl/EGL_NV_coverage_sample
create mode 100644 glew/auto/extensions/gl/EGL_NV_coverage_sample_resolve
create mode 100644 glew/auto/extensions/gl/EGL_NV_cuda_event
create mode 100644 glew/auto/extensions/gl/EGL_NV_depth_nonlinear
create mode 100644 glew/auto/extensions/gl/EGL_NV_device_cuda
create mode 100644 glew/auto/extensions/gl/EGL_NV_native_query
create mode 100644 glew/auto/extensions/gl/EGL_NV_post_convert_rounding
create mode 100644 glew/auto/extensions/gl/EGL_NV_post_sub_buffer
create mode 100644 glew/auto/extensions/gl/EGL_NV_quadruple_buffer
create mode 100644 glew/auto/extensions/gl/EGL_NV_robustness_video_memory_purge
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_consumer_eglimage
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_consumer_gltexture_yuv
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_cross_display
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_cross_object
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_cross_partition
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_cross_process
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_cross_system
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_dma
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_fifo_next
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_fifo_synchronous
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_flush
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_frame_limits
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_metadata
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_origin
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_remote
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_reset
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_socket
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_socket_inet
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_socket_unix
create mode 100644 glew/auto/extensions/gl/EGL_NV_stream_sync
create mode 100644 glew/auto/extensions/gl/EGL_NV_sync
create mode 100644 glew/auto/extensions/gl/EGL_NV_system_time
create mode 100644 glew/auto/extensions/gl/EGL_NV_triple_buffer
create mode 100644 glew/auto/extensions/gl/EGL_TIZEN_image_native_buffer
create mode 100644 glew/auto/extensions/gl/EGL_TIZEN_image_native_surface
create mode 100644 glew/auto/extensions/gl/EGL_WL_bind_wayland_display
create mode 100644 glew/auto/extensions/gl/EGL_WL_create_wayland_buffer_from_image
create mode 100644 glew/auto/extensions/gl/GLX_3DFX_multisample
create mode 100644 glew/auto/extensions/gl/GLX_AMD_gpu_association
create mode 100644 glew/auto/extensions/gl/GLX_ARB_context_flush_control
create mode 100644 glew/auto/extensions/gl/GLX_ARB_create_context
create mode 100644 glew/auto/extensions/gl/GLX_ARB_create_context_no_error
create mode 100644 glew/auto/extensions/gl/GLX_ARB_create_context_profile
create mode 100644 glew/auto/extensions/gl/GLX_ARB_create_context_robustness
create mode 100644 glew/auto/extensions/gl/GLX_ARB_fbconfig_float
create mode 100644 glew/auto/extensions/gl/GLX_ARB_framebuffer_sRGB
create mode 100644 glew/auto/extensions/gl/GLX_ARB_get_proc_address
create mode 100644 glew/auto/extensions/gl/GLX_ARB_multisample
create mode 100644 glew/auto/extensions/gl/GLX_ARB_robustness_application_isolation
create mode 100644 glew/auto/extensions/gl/GLX_ARB_robustness_share_group_isolation
create mode 100644 glew/auto/extensions/gl/GLX_ARB_vertex_buffer_object
create mode 100644 glew/auto/extensions/gl/GLX_ATI_pixel_format_float
create mode 100644 glew/auto/extensions/gl/GLX_ATI_render_texture
create mode 100644 glew/auto/extensions/gl/GLX_EXT_buffer_age
create mode 100644 glew/auto/extensions/gl/GLX_EXT_context_priority
create mode 100644 glew/auto/extensions/gl/GLX_EXT_create_context_es2_profile
create mode 100644 glew/auto/extensions/gl/GLX_EXT_create_context_es_profile
create mode 100644 glew/auto/extensions/gl/GLX_EXT_fbconfig_packed_float
create mode 100644 glew/auto/extensions/gl/GLX_EXT_framebuffer_sRGB
create mode 100644 glew/auto/extensions/gl/GLX_EXT_get_drawable_type
create mode 100644 glew/auto/extensions/gl/GLX_EXT_import_context
create mode 100644 glew/auto/extensions/gl/GLX_EXT_libglvnd
create mode 100644 glew/auto/extensions/gl/GLX_EXT_no_config_context
create mode 100644 glew/auto/extensions/gl/GLX_EXT_scene_marker
create mode 100644 glew/auto/extensions/gl/GLX_EXT_stereo_tree
create mode 100644 glew/auto/extensions/gl/GLX_EXT_swap_control
create mode 100644 glew/auto/extensions/gl/GLX_EXT_swap_control_tear
create mode 100644 glew/auto/extensions/gl/GLX_EXT_texture_from_pixmap
create mode 100644 glew/auto/extensions/gl/GLX_EXT_visual_info
create mode 100644 glew/auto/extensions/gl/GLX_EXT_visual_rating
create mode 100644 glew/auto/extensions/gl/GLX_INTEL_swap_event
create mode 100644 glew/auto/extensions/gl/GLX_MESA_agp_offset
create mode 100644 glew/auto/extensions/gl/GLX_MESA_copy_sub_buffer
create mode 100644 glew/auto/extensions/gl/GLX_MESA_pixmap_colormap
create mode 100644 glew/auto/extensions/gl/GLX_MESA_query_renderer
create mode 100644 glew/auto/extensions/gl/GLX_MESA_release_buffers
create mode 100644 glew/auto/extensions/gl/GLX_MESA_set_3dfx_mode
create mode 100644 glew/auto/extensions/gl/GLX_MESA_swap_control
create mode 100644 glew/auto/extensions/gl/GLX_NV_copy_buffer
create mode 100644 glew/auto/extensions/gl/GLX_NV_copy_image
create mode 100644 glew/auto/extensions/gl/GLX_NV_delay_before_swap
create mode 100644 glew/auto/extensions/gl/GLX_NV_float_buffer
create mode 100644 glew/auto/extensions/gl/GLX_NV_multigpu_context
create mode 100644 glew/auto/extensions/gl/GLX_NV_multisample_coverage
create mode 100644 glew/auto/extensions/gl/GLX_NV_present_video
create mode 100644 glew/auto/extensions/gl/GLX_NV_robustness_video_memory_purge
create mode 100644 glew/auto/extensions/gl/GLX_NV_swap_group
create mode 100644 glew/auto/extensions/gl/GLX_NV_vertex_array_range
create mode 100644 glew/auto/extensions/gl/GLX_NV_video_capture
create mode 100644 glew/auto/extensions/gl/GLX_NV_video_out
create mode 100644 glew/auto/extensions/gl/GLX_OML_swap_method
create mode 100644 glew/auto/extensions/gl/GLX_OML_sync_control
create mode 100644 glew/auto/extensions/gl/GLX_SGIS_blended_overlay
create mode 100644 glew/auto/extensions/gl/GLX_SGIS_color_range
create mode 100644 glew/auto/extensions/gl/GLX_SGIS_multisample
create mode 100644 glew/auto/extensions/gl/GLX_SGIS_shared_multisample
create mode 100644 glew/auto/extensions/gl/GLX_SGIX_fbconfig
create mode 100644 glew/auto/extensions/gl/GLX_SGIX_hyperpipe
create mode 100644 glew/auto/extensions/gl/GLX_SGIX_pbuffer
create mode 100644 glew/auto/extensions/gl/GLX_SGIX_swap_barrier
create mode 100644 glew/auto/extensions/gl/GLX_SGIX_swap_group
create mode 100644 glew/auto/extensions/gl/GLX_SGIX_video_resize
create mode 100644 glew/auto/extensions/gl/GLX_SGIX_visual_select_group
create mode 100644 glew/auto/extensions/gl/GLX_SGI_cushion
create mode 100644 glew/auto/extensions/gl/GLX_SGI_make_current_read
create mode 100644 glew/auto/extensions/gl/GLX_SGI_swap_control
create mode 100644 glew/auto/extensions/gl/GLX_SGI_video_sync
create mode 100644 glew/auto/extensions/gl/GLX_SUN_get_transparent_index
create mode 100644 glew/auto/extensions/gl/GLX_SUN_video_resize
create mode 100644 glew/auto/extensions/gl/GL_3DFX_multisample
create mode 100644 glew/auto/extensions/gl/GL_3DFX_tbuffer
create mode 100644 glew/auto/extensions/gl/GL_3DFX_texture_compression_FXT1
create mode 100644 glew/auto/extensions/gl/GL_AMD_blend_minmax_factor
create mode 100644 glew/auto/extensions/gl/GL_AMD_compressed_3DC_texture
create mode 100644 glew/auto/extensions/gl/GL_AMD_compressed_ATC_texture
create mode 100644 glew/auto/extensions/gl/GL_AMD_conservative_depth
create mode 100644 glew/auto/extensions/gl/GL_AMD_debug_output
create mode 100644 glew/auto/extensions/gl/GL_AMD_depth_clamp_separate
create mode 100644 glew/auto/extensions/gl/GL_AMD_draw_buffers_blend
create mode 100644 glew/auto/extensions/gl/GL_AMD_framebuffer_multisample_advanced
create mode 100644 glew/auto/extensions/gl/GL_AMD_framebuffer_sample_positions
create mode 100644 glew/auto/extensions/gl/GL_AMD_gcn_shader
create mode 100644 glew/auto/extensions/gl/GL_AMD_gpu_shader_half_float
create mode 100644 glew/auto/extensions/gl/GL_AMD_gpu_shader_half_float_fetch
create mode 100644 glew/auto/extensions/gl/GL_AMD_gpu_shader_int16
create mode 100644 glew/auto/extensions/gl/GL_AMD_gpu_shader_int64
create mode 100644 glew/auto/extensions/gl/GL_AMD_interleaved_elements
create mode 100644 glew/auto/extensions/gl/GL_AMD_multi_draw_indirect
create mode 100644 glew/auto/extensions/gl/GL_AMD_name_gen_delete
create mode 100644 glew/auto/extensions/gl/GL_AMD_occlusion_query_event
create mode 100644 glew/auto/extensions/gl/GL_AMD_performance_monitor
create mode 100644 glew/auto/extensions/gl/GL_AMD_pinned_memory
create mode 100644 glew/auto/extensions/gl/GL_AMD_program_binary_Z400
create mode 100644 glew/auto/extensions/gl/GL_AMD_query_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_AMD_sample_positions
create mode 100644 glew/auto/extensions/gl/GL_AMD_seamless_cubemap_per_texture
create mode 100644 glew/auto/extensions/gl/GL_AMD_shader_atomic_counter_ops
create mode 100644 glew/auto/extensions/gl/GL_AMD_shader_ballot
create mode 100644 glew/auto/extensions/gl/GL_AMD_shader_explicit_vertex_parameter
create mode 100644 glew/auto/extensions/gl/GL_AMD_shader_image_load_store_lod
create mode 100644 glew/auto/extensions/gl/GL_AMD_shader_stencil_export
create mode 100644 glew/auto/extensions/gl/GL_AMD_shader_stencil_value_export
create mode 100644 glew/auto/extensions/gl/GL_AMD_shader_trinary_minmax
create mode 100644 glew/auto/extensions/gl/GL_AMD_sparse_texture
create mode 100644 glew/auto/extensions/gl/GL_AMD_stencil_operation_extended
create mode 100644 glew/auto/extensions/gl/GL_AMD_texture_gather_bias_lod
create mode 100644 glew/auto/extensions/gl/GL_AMD_texture_texture4
create mode 100644 glew/auto/extensions/gl/GL_AMD_transform_feedback3_lines_triangles
create mode 100644 glew/auto/extensions/gl/GL_AMD_transform_feedback4
create mode 100644 glew/auto/extensions/gl/GL_AMD_vertex_shader_layer
create mode 100644 glew/auto/extensions/gl/GL_AMD_vertex_shader_tessellator
create mode 100644 glew/auto/extensions/gl/GL_AMD_vertex_shader_viewport_index
create mode 100644 glew/auto/extensions/gl/GL_ANDROID_extension_pack_es31a
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_depth_texture
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_framebuffer_blit
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_framebuffer_multisample
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_instanced_arrays
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_pack_reverse_row_order
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_program_binary
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt1
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt3
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt5
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_texture_usage
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_timer_query
create mode 100644 glew/auto/extensions/gl/GL_ANGLE_translated_shader_source
create mode 100644 glew/auto/extensions/gl/GL_APPLE_aux_depth_stencil
create mode 100644 glew/auto/extensions/gl/GL_APPLE_client_storage
create mode 100644 glew/auto/extensions/gl/GL_APPLE_clip_distance
create mode 100644 glew/auto/extensions/gl/GL_APPLE_color_buffer_packed_float
create mode 100644 glew/auto/extensions/gl/GL_APPLE_copy_texture_levels
create mode 100644 glew/auto/extensions/gl/GL_APPLE_element_array
create mode 100644 glew/auto/extensions/gl/GL_APPLE_fence
create mode 100644 glew/auto/extensions/gl/GL_APPLE_float_pixels
create mode 100644 glew/auto/extensions/gl/GL_APPLE_flush_buffer_range
create mode 100644 glew/auto/extensions/gl/GL_APPLE_framebuffer_multisample
create mode 100644 glew/auto/extensions/gl/GL_APPLE_object_purgeable
create mode 100644 glew/auto/extensions/gl/GL_APPLE_pixel_buffer
create mode 100644 glew/auto/extensions/gl/GL_APPLE_rgb_422
create mode 100644 glew/auto/extensions/gl/GL_APPLE_row_bytes
create mode 100644 glew/auto/extensions/gl/GL_APPLE_specular_vector
create mode 100644 glew/auto/extensions/gl/GL_APPLE_sync
create mode 100644 glew/auto/extensions/gl/GL_APPLE_texture_2D_limited_npot
create mode 100644 glew/auto/extensions/gl/GL_APPLE_texture_format_BGRA8888
create mode 100644 glew/auto/extensions/gl/GL_APPLE_texture_max_level
create mode 100644 glew/auto/extensions/gl/GL_APPLE_texture_packed_float
create mode 100644 glew/auto/extensions/gl/GL_APPLE_texture_range
create mode 100644 glew/auto/extensions/gl/GL_APPLE_transform_hint
create mode 100644 glew/auto/extensions/gl/GL_APPLE_vertex_array_object
create mode 100644 glew/auto/extensions/gl/GL_APPLE_vertex_array_range
create mode 100644 glew/auto/extensions/gl/GL_APPLE_vertex_program_evaluators
create mode 100644 glew/auto/extensions/gl/GL_APPLE_ycbcr_422
create mode 100644 glew/auto/extensions/gl/GL_ARB_ES2_compatibility
create mode 100644 glew/auto/extensions/gl/GL_ARB_ES3_1_compatibility
create mode 100644 glew/auto/extensions/gl/GL_ARB_ES3_2_compatibility
create mode 100644 glew/auto/extensions/gl/GL_ARB_ES3_compatibility
create mode 100644 glew/auto/extensions/gl/GL_ARB_arrays_of_arrays
create mode 100644 glew/auto/extensions/gl/GL_ARB_base_instance
create mode 100644 glew/auto/extensions/gl/GL_ARB_bindless_texture
create mode 100644 glew/auto/extensions/gl/GL_ARB_blend_func_extended
create mode 100644 glew/auto/extensions/gl/GL_ARB_buffer_storage
create mode 100644 glew/auto/extensions/gl/GL_ARB_cl_event
create mode 100644 glew/auto/extensions/gl/GL_ARB_clear_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_ARB_clear_texture
create mode 100644 glew/auto/extensions/gl/GL_ARB_clip_control
create mode 100644 glew/auto/extensions/gl/GL_ARB_color_buffer_float
create mode 100644 glew/auto/extensions/gl/GL_ARB_compatibility
create mode 100644 glew/auto/extensions/gl/GL_ARB_compressed_texture_pixel_storage
create mode 100644 glew/auto/extensions/gl/GL_ARB_compute_shader
create mode 100644 glew/auto/extensions/gl/GL_ARB_compute_variable_group_size
create mode 100644 glew/auto/extensions/gl/GL_ARB_conditional_render_inverted
create mode 100644 glew/auto/extensions/gl/GL_ARB_conservative_depth
create mode 100644 glew/auto/extensions/gl/GL_ARB_copy_buffer
create mode 100644 glew/auto/extensions/gl/GL_ARB_copy_image
create mode 100644 glew/auto/extensions/gl/GL_ARB_cull_distance
create mode 100644 glew/auto/extensions/gl/GL_ARB_debug_output
create mode 100644 glew/auto/extensions/gl/GL_ARB_depth_buffer_float
create mode 100644 glew/auto/extensions/gl/GL_ARB_depth_clamp
create mode 100644 glew/auto/extensions/gl/GL_ARB_depth_texture
create mode 100644 glew/auto/extensions/gl/GL_ARB_derivative_control
create mode 100644 glew/auto/extensions/gl/GL_ARB_direct_state_access
create mode 100644 glew/auto/extensions/gl/GL_ARB_draw_buffers
create mode 100644 glew/auto/extensions/gl/GL_ARB_draw_buffers_blend
create mode 100644 glew/auto/extensions/gl/GL_ARB_draw_elements_base_vertex
create mode 100644 glew/auto/extensions/gl/GL_ARB_draw_indirect
create mode 100644 glew/auto/extensions/gl/GL_ARB_draw_instanced
create mode 100644 glew/auto/extensions/gl/GL_ARB_enhanced_layouts
create mode 100644 glew/auto/extensions/gl/GL_ARB_explicit_attrib_location
create mode 100644 glew/auto/extensions/gl/GL_ARB_explicit_uniform_location
create mode 100644 glew/auto/extensions/gl/GL_ARB_fragment_coord_conventions
create mode 100644 glew/auto/extensions/gl/GL_ARB_fragment_layer_viewport
create mode 100644 glew/auto/extensions/gl/GL_ARB_fragment_program
create mode 100644 glew/auto/extensions/gl/GL_ARB_fragment_program_shadow
create mode 100644 glew/auto/extensions/gl/GL_ARB_fragment_shader
create mode 100644 glew/auto/extensions/gl/GL_ARB_fragment_shader_interlock
create mode 100644 glew/auto/extensions/gl/GL_ARB_framebuffer_no_attachments
create mode 100644 glew/auto/extensions/gl/GL_ARB_framebuffer_object
create mode 100644 glew/auto/extensions/gl/GL_ARB_framebuffer_sRGB
create mode 100644 glew/auto/extensions/gl/GL_ARB_geometry_shader4
create mode 100644 glew/auto/extensions/gl/GL_ARB_get_program_binary
create mode 100644 glew/auto/extensions/gl/GL_ARB_get_texture_sub_image
create mode 100644 glew/auto/extensions/gl/GL_ARB_gl_spirv
create mode 100644 glew/auto/extensions/gl/GL_ARB_gpu_shader5
create mode 100644 glew/auto/extensions/gl/GL_ARB_gpu_shader_fp64
create mode 100644 glew/auto/extensions/gl/GL_ARB_gpu_shader_int64
create mode 100644 glew/auto/extensions/gl/GL_ARB_half_float_pixel
create mode 100644 glew/auto/extensions/gl/GL_ARB_half_float_vertex
create mode 100644 glew/auto/extensions/gl/GL_ARB_imaging
create mode 100644 glew/auto/extensions/gl/GL_ARB_indirect_parameters
create mode 100644 glew/auto/extensions/gl/GL_ARB_instanced_arrays
create mode 100644 glew/auto/extensions/gl/GL_ARB_internalformat_query
create mode 100644 glew/auto/extensions/gl/GL_ARB_internalformat_query2
create mode 100644 glew/auto/extensions/gl/GL_ARB_invalidate_subdata
create mode 100644 glew/auto/extensions/gl/GL_ARB_map_buffer_alignment
create mode 100644 glew/auto/extensions/gl/GL_ARB_map_buffer_range
create mode 100644 glew/auto/extensions/gl/GL_ARB_matrix_palette
create mode 100644 glew/auto/extensions/gl/GL_ARB_multi_bind
create mode 100644 glew/auto/extensions/gl/GL_ARB_multi_draw_indirect
create mode 100644 glew/auto/extensions/gl/GL_ARB_multisample
create mode 100644 glew/auto/extensions/gl/GL_ARB_multitexture
create mode 100644 glew/auto/extensions/gl/GL_ARB_occlusion_query
create mode 100644 glew/auto/extensions/gl/GL_ARB_occlusion_query2
create mode 100644 glew/auto/extensions/gl/GL_ARB_parallel_shader_compile
create mode 100644 glew/auto/extensions/gl/GL_ARB_pipeline_statistics_query
create mode 100644 glew/auto/extensions/gl/GL_ARB_pixel_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_ARB_point_parameters
create mode 100644 glew/auto/extensions/gl/GL_ARB_point_sprite
create mode 100644 glew/auto/extensions/gl/GL_ARB_polygon_offset_clamp
create mode 100644 glew/auto/extensions/gl/GL_ARB_post_depth_coverage
create mode 100644 glew/auto/extensions/gl/GL_ARB_program_interface_query
create mode 100644 glew/auto/extensions/gl/GL_ARB_provoking_vertex
create mode 100644 glew/auto/extensions/gl/GL_ARB_query_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_ARB_robust_buffer_access_behavior
create mode 100644 glew/auto/extensions/gl/GL_ARB_robustness
create mode 100644 glew/auto/extensions/gl/GL_ARB_robustness_application_isolation
create mode 100644 glew/auto/extensions/gl/GL_ARB_robustness_share_group_isolation
create mode 100644 glew/auto/extensions/gl/GL_ARB_sample_locations
create mode 100644 glew/auto/extensions/gl/GL_ARB_sample_shading
create mode 100644 glew/auto/extensions/gl/GL_ARB_sampler_objects
create mode 100644 glew/auto/extensions/gl/GL_ARB_seamless_cube_map
create mode 100644 glew/auto/extensions/gl/GL_ARB_seamless_cubemap_per_texture
create mode 100644 glew/auto/extensions/gl/GL_ARB_separate_shader_objects
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_atomic_counter_ops
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_atomic_counters
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_ballot
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_bit_encoding
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_clock
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_draw_parameters
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_group_vote
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_image_load_store
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_image_size
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_objects
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_precision
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_stencil_export
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_storage_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_subroutine
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_texture_image_samples
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_texture_lod
create mode 100644 glew/auto/extensions/gl/GL_ARB_shader_viewport_layer_array
create mode 100644 glew/auto/extensions/gl/GL_ARB_shading_language_100
create mode 100644 glew/auto/extensions/gl/GL_ARB_shading_language_420pack
create mode 100644 glew/auto/extensions/gl/GL_ARB_shading_language_include
create mode 100644 glew/auto/extensions/gl/GL_ARB_shading_language_packing
create mode 100644 glew/auto/extensions/gl/GL_ARB_shadow
create mode 100644 glew/auto/extensions/gl/GL_ARB_shadow_ambient
create mode 100644 glew/auto/extensions/gl/GL_ARB_sparse_buffer
create mode 100644 glew/auto/extensions/gl/GL_ARB_sparse_texture
create mode 100644 glew/auto/extensions/gl/GL_ARB_sparse_texture2
create mode 100644 glew/auto/extensions/gl/GL_ARB_sparse_texture_clamp
create mode 100644 glew/auto/extensions/gl/GL_ARB_spirv_extensions
create mode 100644 glew/auto/extensions/gl/GL_ARB_stencil_texturing
create mode 100644 glew/auto/extensions/gl/GL_ARB_sync
create mode 100644 glew/auto/extensions/gl/GL_ARB_tessellation_shader
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_barrier
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_border_clamp
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_buffer_object_rgb32
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_buffer_range
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_compression
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_compression_bptc
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_compression_rgtc
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_cube_map
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_cube_map_array
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_env_add
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_env_combine
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_env_crossbar
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_env_dot3
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_filter_anisotropic
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_filter_minmax
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_float
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_gather
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_mirror_clamp_to_edge
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_mirrored_repeat
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_multisample
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_non_power_of_two
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_query_levels
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_query_lod
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_rectangle
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_rg
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_rgb10_a2ui
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_stencil8
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_storage
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_storage_multisample
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_swizzle
create mode 100644 glew/auto/extensions/gl/GL_ARB_texture_view
create mode 100644 glew/auto/extensions/gl/GL_ARB_timer_query
create mode 100644 glew/auto/extensions/gl/GL_ARB_transform_feedback2
create mode 100644 glew/auto/extensions/gl/GL_ARB_transform_feedback3
create mode 100644 glew/auto/extensions/gl/GL_ARB_transform_feedback_instanced
create mode 100644 glew/auto/extensions/gl/GL_ARB_transform_feedback_overflow_query
create mode 100644 glew/auto/extensions/gl/GL_ARB_transpose_matrix
create mode 100644 glew/auto/extensions/gl/GL_ARB_uniform_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_ARB_vertex_array_bgra
create mode 100644 glew/auto/extensions/gl/GL_ARB_vertex_array_object
create mode 100644 glew/auto/extensions/gl/GL_ARB_vertex_attrib_64bit
create mode 100644 glew/auto/extensions/gl/GL_ARB_vertex_attrib_binding
create mode 100644 glew/auto/extensions/gl/GL_ARB_vertex_blend
create mode 100644 glew/auto/extensions/gl/GL_ARB_vertex_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_ARB_vertex_program
create mode 100644 glew/auto/extensions/gl/GL_ARB_vertex_shader
create mode 100644 glew/auto/extensions/gl/GL_ARB_vertex_type_10f_11f_11f_rev
create mode 100644 glew/auto/extensions/gl/GL_ARB_vertex_type_2_10_10_10_rev
create mode 100644 glew/auto/extensions/gl/GL_ARB_viewport_array
create mode 100644 glew/auto/extensions/gl/GL_ARB_window_pos
create mode 100644 glew/auto/extensions/gl/GL_ARM_mali_program_binary
create mode 100644 glew/auto/extensions/gl/GL_ARM_mali_shader_binary
create mode 100644 glew/auto/extensions/gl/GL_ARM_rgba8
create mode 100644 glew/auto/extensions/gl/GL_ARM_shader_framebuffer_fetch
create mode 100644 glew/auto/extensions/gl/GL_ARM_shader_framebuffer_fetch_depth_stencil
create mode 100644 glew/auto/extensions/gl/GL_ARM_texture_unnormalized_coordinates
create mode 100644 glew/auto/extensions/gl/GL_ATIX_point_sprites
create mode 100644 glew/auto/extensions/gl/GL_ATIX_texture_env_combine3
create mode 100644 glew/auto/extensions/gl/GL_ATIX_texture_env_route
create mode 100644 glew/auto/extensions/gl/GL_ATIX_vertex_shader_output_point_size
create mode 100644 glew/auto/extensions/gl/GL_ATI_draw_buffers
create mode 100644 glew/auto/extensions/gl/GL_ATI_element_array
create mode 100644 glew/auto/extensions/gl/GL_ATI_envmap_bumpmap
create mode 100644 glew/auto/extensions/gl/GL_ATI_fragment_shader
create mode 100644 glew/auto/extensions/gl/GL_ATI_map_object_buffer
create mode 100644 glew/auto/extensions/gl/GL_ATI_meminfo
create mode 100644 glew/auto/extensions/gl/GL_ATI_pn_triangles
create mode 100644 glew/auto/extensions/gl/GL_ATI_separate_stencil
create mode 100644 glew/auto/extensions/gl/GL_ATI_shader_texture_lod
create mode 100644 glew/auto/extensions/gl/GL_ATI_text_fragment_shader
create mode 100644 glew/auto/extensions/gl/GL_ATI_texture_compression_3dc
create mode 100644 glew/auto/extensions/gl/GL_ATI_texture_env_combine3
create mode 100644 glew/auto/extensions/gl/GL_ATI_texture_float
create mode 100644 glew/auto/extensions/gl/GL_ATI_texture_mirror_once
create mode 100644 glew/auto/extensions/gl/GL_ATI_vertex_array_object
create mode 100644 glew/auto/extensions/gl/GL_ATI_vertex_attrib_array_object
create mode 100644 glew/auto/extensions/gl/GL_ATI_vertex_streams
create mode 100644 glew/auto/extensions/gl/GL_DMP_program_binary
create mode 100644 glew/auto/extensions/gl/GL_DMP_shader_binary
create mode 100644 glew/auto/extensions/gl/GL_EXT_422_pixels
create mode 100644 glew/auto/extensions/gl/GL_EXT_Cg_shader
create mode 100644 glew/auto/extensions/gl/GL_EXT_EGL_image_array
create mode 100644 glew/auto/extensions/gl/GL_EXT_EGL_image_external_wrap_modes
create mode 100644 glew/auto/extensions/gl/GL_EXT_EGL_image_storage
create mode 100644 glew/auto/extensions/gl/GL_EXT_EGL_image_storage_compression
create mode 100644 glew/auto/extensions/gl/GL_EXT_EGL_sync
create mode 100644 glew/auto/extensions/gl/GL_EXT_YUV_target
create mode 100644 glew/auto/extensions/gl/GL_EXT_abgr
create mode 100644 glew/auto/extensions/gl/GL_EXT_base_instance
create mode 100644 glew/auto/extensions/gl/GL_EXT_bgra
create mode 100644 glew/auto/extensions/gl/GL_EXT_bindable_uniform
create mode 100644 glew/auto/extensions/gl/GL_EXT_blend_color
create mode 100644 glew/auto/extensions/gl/GL_EXT_blend_equation_separate
create mode 100644 glew/auto/extensions/gl/GL_EXT_blend_func_extended
create mode 100644 glew/auto/extensions/gl/GL_EXT_blend_func_separate
create mode 100644 glew/auto/extensions/gl/GL_EXT_blend_logic_op
create mode 100644 glew/auto/extensions/gl/GL_EXT_blend_minmax
create mode 100644 glew/auto/extensions/gl/GL_EXT_blend_subtract
create mode 100644 glew/auto/extensions/gl/GL_EXT_buffer_storage
create mode 100644 glew/auto/extensions/gl/GL_EXT_clear_texture
create mode 100644 glew/auto/extensions/gl/GL_EXT_clip_control
create mode 100644 glew/auto/extensions/gl/GL_EXT_clip_cull_distance
create mode 100644 glew/auto/extensions/gl/GL_EXT_clip_volume_hint
create mode 100644 glew/auto/extensions/gl/GL_EXT_cmyka
create mode 100644 glew/auto/extensions/gl/GL_EXT_color_buffer_float
create mode 100644 glew/auto/extensions/gl/GL_EXT_color_buffer_half_float
create mode 100644 glew/auto/extensions/gl/GL_EXT_color_subtable
create mode 100644 glew/auto/extensions/gl/GL_EXT_compiled_vertex_array
create mode 100644 glew/auto/extensions/gl/GL_EXT_compressed_ETC1_RGB8_sub_texture
create mode 100644 glew/auto/extensions/gl/GL_EXT_conservative_depth
create mode 100644 glew/auto/extensions/gl/GL_EXT_convolution
create mode 100644 glew/auto/extensions/gl/GL_EXT_coordinate_frame
create mode 100644 glew/auto/extensions/gl/GL_EXT_copy_image
create mode 100644 glew/auto/extensions/gl/GL_EXT_copy_texture
create mode 100644 glew/auto/extensions/gl/GL_EXT_cull_vertex
create mode 100644 glew/auto/extensions/gl/GL_EXT_debug_label
create mode 100644 glew/auto/extensions/gl/GL_EXT_debug_marker
create mode 100644 glew/auto/extensions/gl/GL_EXT_depth_bounds_test
create mode 100644 glew/auto/extensions/gl/GL_EXT_depth_clamp
create mode 100644 glew/auto/extensions/gl/GL_EXT_direct_state_access
create mode 100644 glew/auto/extensions/gl/GL_EXT_discard_framebuffer
create mode 100644 glew/auto/extensions/gl/GL_EXT_disjoint_timer_query
create mode 100644 glew/auto/extensions/gl/GL_EXT_draw_buffers
create mode 100644 glew/auto/extensions/gl/GL_EXT_draw_buffers2
create mode 100644 glew/auto/extensions/gl/GL_EXT_draw_buffers_indexed
create mode 100644 glew/auto/extensions/gl/GL_EXT_draw_elements_base_vertex
create mode 100644 glew/auto/extensions/gl/GL_EXT_draw_instanced
create mode 100644 glew/auto/extensions/gl/GL_EXT_draw_range_elements
create mode 100644 glew/auto/extensions/gl/GL_EXT_draw_transform_feedback
create mode 100644 glew/auto/extensions/gl/GL_EXT_external_buffer
create mode 100644 glew/auto/extensions/gl/GL_EXT_float_blend
create mode 100644 glew/auto/extensions/gl/GL_EXT_fog_coord
create mode 100644 glew/auto/extensions/gl/GL_EXT_frag_depth
create mode 100644 glew/auto/extensions/gl/GL_EXT_fragment_lighting
create mode 100644 glew/auto/extensions/gl/GL_EXT_framebuffer_blit
create mode 100644 glew/auto/extensions/gl/GL_EXT_framebuffer_multisample
create mode 100644 glew/auto/extensions/gl/GL_EXT_framebuffer_multisample_blit_scaled
create mode 100644 glew/auto/extensions/gl/GL_EXT_framebuffer_object
create mode 100644 glew/auto/extensions/gl/GL_EXT_framebuffer_sRGB
create mode 100644 glew/auto/extensions/gl/GL_EXT_geometry_point_size
create mode 100644 glew/auto/extensions/gl/GL_EXT_geometry_shader
create mode 100644 glew/auto/extensions/gl/GL_EXT_geometry_shader4
create mode 100644 glew/auto/extensions/gl/GL_EXT_gpu_program_parameters
create mode 100644 glew/auto/extensions/gl/GL_EXT_gpu_shader4
create mode 100644 glew/auto/extensions/gl/GL_EXT_gpu_shader5
create mode 100644 glew/auto/extensions/gl/GL_EXT_histogram
create mode 100644 glew/auto/extensions/gl/GL_EXT_index_array_formats
create mode 100644 glew/auto/extensions/gl/GL_EXT_index_func
create mode 100644 glew/auto/extensions/gl/GL_EXT_index_material
create mode 100644 glew/auto/extensions/gl/GL_EXT_index_texture
create mode 100644 glew/auto/extensions/gl/GL_EXT_instanced_arrays
create mode 100644 glew/auto/extensions/gl/GL_EXT_light_texture
create mode 100644 glew/auto/extensions/gl/GL_EXT_map_buffer_range
create mode 100644 glew/auto/extensions/gl/GL_EXT_memory_object
create mode 100644 glew/auto/extensions/gl/GL_EXT_memory_object_fd
create mode 100644 glew/auto/extensions/gl/GL_EXT_memory_object_win32
create mode 100644 glew/auto/extensions/gl/GL_EXT_misc_attribute
create mode 100644 glew/auto/extensions/gl/GL_EXT_multi_draw_arrays
create mode 100644 glew/auto/extensions/gl/GL_EXT_multi_draw_indirect
create mode 100644 glew/auto/extensions/gl/GL_EXT_multiple_textures
create mode 100644 glew/auto/extensions/gl/GL_EXT_multisample
create mode 100644 glew/auto/extensions/gl/GL_EXT_multisample_compatibility
create mode 100644 glew/auto/extensions/gl/GL_EXT_multisampled_render_to_texture
create mode 100644 glew/auto/extensions/gl/GL_EXT_multisampled_render_to_texture2
create mode 100644 glew/auto/extensions/gl/GL_EXT_multiview_draw_buffers
create mode 100644 glew/auto/extensions/gl/GL_EXT_multiview_tessellation_geometry_shader
create mode 100644 glew/auto/extensions/gl/GL_EXT_multiview_texture_multisample
create mode 100644 glew/auto/extensions/gl/GL_EXT_multiview_timer_query
create mode 100644 glew/auto/extensions/gl/GL_EXT_occlusion_query_boolean
create mode 100644 glew/auto/extensions/gl/GL_EXT_packed_depth_stencil
create mode 100644 glew/auto/extensions/gl/GL_EXT_packed_float
create mode 100644 glew/auto/extensions/gl/GL_EXT_packed_pixels
create mode 100644 glew/auto/extensions/gl/GL_EXT_paletted_texture
create mode 100644 glew/auto/extensions/gl/GL_EXT_pixel_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_EXT_pixel_transform
create mode 100644 glew/auto/extensions/gl/GL_EXT_pixel_transform_color_table
create mode 100644 glew/auto/extensions/gl/GL_EXT_point_parameters
create mode 100644 glew/auto/extensions/gl/GL_EXT_polygon_offset
create mode 100644 glew/auto/extensions/gl/GL_EXT_polygon_offset_clamp
create mode 100644 glew/auto/extensions/gl/GL_EXT_post_depth_coverage
create mode 100644 glew/auto/extensions/gl/GL_EXT_primitive_bounding_box
create mode 100644 glew/auto/extensions/gl/GL_EXT_protected_textures
create mode 100644 glew/auto/extensions/gl/GL_EXT_provoking_vertex
create mode 100644 glew/auto/extensions/gl/GL_EXT_pvrtc_sRGB
create mode 100644 glew/auto/extensions/gl/GL_EXT_raster_multisample
create mode 100644 glew/auto/extensions/gl/GL_EXT_read_format_bgra
create mode 100644 glew/auto/extensions/gl/GL_EXT_render_snorm
create mode 100644 glew/auto/extensions/gl/GL_EXT_rescale_normal
create mode 100644 glew/auto/extensions/gl/GL_EXT_robustness
create mode 100644 glew/auto/extensions/gl/GL_EXT_sRGB
create mode 100644 glew/auto/extensions/gl/GL_EXT_sRGB_write_control
create mode 100644 glew/auto/extensions/gl/GL_EXT_scene_marker
create mode 100644 glew/auto/extensions/gl/GL_EXT_secondary_color
create mode 100644 glew/auto/extensions/gl/GL_EXT_semaphore
create mode 100644 glew/auto/extensions/gl/GL_EXT_semaphore_fd
create mode 100644 glew/auto/extensions/gl/GL_EXT_semaphore_win32
create mode 100644 glew/auto/extensions/gl/GL_EXT_separate_depth_stencil
create mode 100644 glew/auto/extensions/gl/GL_EXT_separate_shader_objects
create mode 100644 glew/auto/extensions/gl/GL_EXT_separate_specular_color
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_framebuffer_fetch
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_framebuffer_fetch_non_coherent
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_group_vote
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_image_load_formatted
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_image_load_store
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_implicit_conversions
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_integer_mix
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_io_blocks
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_non_constant_global_initializers
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_pixel_local_storage
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_pixel_local_storage2
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_samples_identical
create mode 100644 glew/auto/extensions/gl/GL_EXT_shader_texture_lod
create mode 100644 glew/auto/extensions/gl/GL_EXT_shadow_funcs
create mode 100644 glew/auto/extensions/gl/GL_EXT_shadow_samplers
create mode 100644 glew/auto/extensions/gl/GL_EXT_shared_texture_palette
create mode 100644 glew/auto/extensions/gl/GL_EXT_sparse_texture
create mode 100644 glew/auto/extensions/gl/GL_EXT_sparse_texture2
create mode 100644 glew/auto/extensions/gl/GL_EXT_static_vertex_array
create mode 100644 glew/auto/extensions/gl/GL_EXT_stencil_clear_tag
create mode 100644 glew/auto/extensions/gl/GL_EXT_stencil_two_side
create mode 100644 glew/auto/extensions/gl/GL_EXT_stencil_wrap
create mode 100644 glew/auto/extensions/gl/GL_EXT_subtexture
create mode 100644 glew/auto/extensions/gl/GL_EXT_tessellation_point_size
create mode 100644 glew/auto/extensions/gl/GL_EXT_tessellation_shader
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture3D
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_array
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_border_clamp
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_buffer
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_compression_astc_decode_mode
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_compression_astc_decode_mode_rgb9e5
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_compression_bptc
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_compression_dxt1
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_compression_latc
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_compression_rgtc
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_compression_s3tc
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_compression_s3tc_srgb
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_cube_map
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_cube_map_array
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_edge_clamp
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_env
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_env_add
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_env_combine
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_env_dot3
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_filter_anisotropic
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_filter_minmax
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_format_BGRA8888
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_format_sRGB_override
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_integer
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_lod_bias
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_mirror_clamp
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_mirror_clamp_to_edge
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_norm16
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_object
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_perturb_normal
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_query_lod
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_rectangle
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_rg
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_sRGB
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_sRGB_R8
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_sRGB_RG8
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_sRGB_decode
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_shadow_lod
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_shared_exponent
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_snorm
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_storage
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_storage_compression
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_swizzle
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_type_2_10_10_10_REV
create mode 100644 glew/auto/extensions/gl/GL_EXT_texture_view
create mode 100644 glew/auto/extensions/gl/GL_EXT_timer_query
create mode 100644 glew/auto/extensions/gl/GL_EXT_transform_feedback
create mode 100644 glew/auto/extensions/gl/GL_EXT_unpack_subimage
create mode 100644 glew/auto/extensions/gl/GL_EXT_vertex_array
create mode 100644 glew/auto/extensions/gl/GL_EXT_vertex_array_bgra
create mode 100644 glew/auto/extensions/gl/GL_EXT_vertex_array_setXXX
create mode 100644 glew/auto/extensions/gl/GL_EXT_vertex_attrib_64bit
create mode 100644 glew/auto/extensions/gl/GL_EXT_vertex_shader
create mode 100644 glew/auto/extensions/gl/GL_EXT_vertex_weighting
create mode 100644 glew/auto/extensions/gl/GL_EXT_win32_keyed_mutex
create mode 100644 glew/auto/extensions/gl/GL_EXT_window_rectangles
create mode 100644 glew/auto/extensions/gl/GL_EXT_x11_sync_object
create mode 100644 glew/auto/extensions/gl/GL_FJ_shader_binary_GCCSO
create mode 100644 glew/auto/extensions/gl/GL_GREMEDY_frame_terminator
create mode 100644 glew/auto/extensions/gl/GL_GREMEDY_string_marker
create mode 100644 glew/auto/extensions/gl/GL_HP_convolution_border_modes
create mode 100644 glew/auto/extensions/gl/GL_HP_image_transform
create mode 100644 glew/auto/extensions/gl/GL_HP_occlusion_test
create mode 100644 glew/auto/extensions/gl/GL_HP_texture_lighting
create mode 100644 glew/auto/extensions/gl/GL_IBM_cull_vertex
create mode 100644 glew/auto/extensions/gl/GL_IBM_multimode_draw_arrays
create mode 100644 glew/auto/extensions/gl/GL_IBM_rasterpos_clip
create mode 100644 glew/auto/extensions/gl/GL_IBM_static_data
create mode 100644 glew/auto/extensions/gl/GL_IBM_texture_mirrored_repeat
create mode 100644 glew/auto/extensions/gl/GL_IBM_vertex_array_lists
create mode 100644 glew/auto/extensions/gl/GL_IMG_bindless_texture
create mode 100644 glew/auto/extensions/gl/GL_IMG_framebuffer_downsample
create mode 100644 glew/auto/extensions/gl/GL_IMG_multisampled_render_to_texture
create mode 100644 glew/auto/extensions/gl/GL_IMG_program_binary
create mode 100644 glew/auto/extensions/gl/GL_IMG_read_format
create mode 100644 glew/auto/extensions/gl/GL_IMG_shader_binary
create mode 100644 glew/auto/extensions/gl/GL_IMG_texture_compression_pvrtc
create mode 100644 glew/auto/extensions/gl/GL_IMG_texture_compression_pvrtc2
create mode 100644 glew/auto/extensions/gl/GL_IMG_texture_env_enhanced_fixed_function
create mode 100644 glew/auto/extensions/gl/GL_IMG_texture_filter_cubic
create mode 100644 glew/auto/extensions/gl/GL_IMG_tile_region_protection
create mode 100644 glew/auto/extensions/gl/GL_INGR_color_clamp
create mode 100644 glew/auto/extensions/gl/GL_INGR_interlace_read
create mode 100644 glew/auto/extensions/gl/GL_INTEL_blackhole_render
create mode 100644 glew/auto/extensions/gl/GL_INTEL_conservative_rasterization
create mode 100644 glew/auto/extensions/gl/GL_INTEL_fragment_shader_ordering
create mode 100644 glew/auto/extensions/gl/GL_INTEL_framebuffer_CMAA
create mode 100644 glew/auto/extensions/gl/GL_INTEL_map_texture
create mode 100644 glew/auto/extensions/gl/GL_INTEL_parallel_arrays
create mode 100644 glew/auto/extensions/gl/GL_INTEL_performance_query
create mode 100644 glew/auto/extensions/gl/GL_INTEL_shader_integer_functions2
create mode 100644 glew/auto/extensions/gl/GL_INTEL_texture_scissor
create mode 100644 glew/auto/extensions/gl/GL_KHR_blend_equation_advanced
create mode 100644 glew/auto/extensions/gl/GL_KHR_blend_equation_advanced_coherent
create mode 100644 glew/auto/extensions/gl/GL_KHR_context_flush_control
create mode 100644 glew/auto/extensions/gl/GL_KHR_debug
create mode 100644 glew/auto/extensions/gl/GL_KHR_no_error
create mode 100644 glew/auto/extensions/gl/GL_KHR_parallel_shader_compile
create mode 100644 glew/auto/extensions/gl/GL_KHR_robust_buffer_access_behavior
create mode 100644 glew/auto/extensions/gl/GL_KHR_robustness
create mode 100644 glew/auto/extensions/gl/GL_KHR_shader_subgroup
create mode 100644 glew/auto/extensions/gl/GL_KHR_texture_compression_astc_hdr
create mode 100644 glew/auto/extensions/gl/GL_KHR_texture_compression_astc_ldr
create mode 100644 glew/auto/extensions/gl/GL_KHR_texture_compression_astc_sliced_3d
create mode 100644 glew/auto/extensions/gl/GL_KTX_buffer_region
create mode 100644 glew/auto/extensions/gl/GL_MESAX_texture_stack
create mode 100644 glew/auto/extensions/gl/GL_MESA_bgra
create mode 100644 glew/auto/extensions/gl/GL_MESA_framebuffer_flip_x
create mode 100644 glew/auto/extensions/gl/GL_MESA_framebuffer_flip_y
create mode 100644 glew/auto/extensions/gl/GL_MESA_framebuffer_swap_xy
create mode 100644 glew/auto/extensions/gl/GL_MESA_pack_invert
create mode 100644 glew/auto/extensions/gl/GL_MESA_program_binary_formats
create mode 100644 glew/auto/extensions/gl/GL_MESA_resize_buffers
create mode 100644 glew/auto/extensions/gl/GL_MESA_shader_integer_functions
create mode 100644 glew/auto/extensions/gl/GL_MESA_tile_raster_order
create mode 100644 glew/auto/extensions/gl/GL_MESA_window_pos
create mode 100644 glew/auto/extensions/gl/GL_MESA_ycbcr_texture
create mode 100644 glew/auto/extensions/gl/GL_NVX_blend_equation_advanced_multi_draw_buffers
create mode 100644 glew/auto/extensions/gl/GL_NVX_conditional_render
create mode 100644 glew/auto/extensions/gl/GL_NVX_gpu_memory_info
create mode 100644 glew/auto/extensions/gl/GL_NVX_gpu_multicast2
create mode 100644 glew/auto/extensions/gl/GL_NVX_linked_gpu_multicast
create mode 100644 glew/auto/extensions/gl/GL_NVX_progress_fence
create mode 100644 glew/auto/extensions/gl/GL_NV_3dvision_settings
create mode 100644 glew/auto/extensions/gl/GL_NV_EGL_stream_consumer_external
create mode 100644 glew/auto/extensions/gl/GL_NV_alpha_to_coverage_dither_control
create mode 100644 glew/auto/extensions/gl/GL_NV_bgr
create mode 100644 glew/auto/extensions/gl/GL_NV_bindless_multi_draw_indirect
create mode 100644 glew/auto/extensions/gl/GL_NV_bindless_multi_draw_indirect_count
create mode 100644 glew/auto/extensions/gl/GL_NV_bindless_texture
create mode 100644 glew/auto/extensions/gl/GL_NV_blend_equation_advanced
create mode 100644 glew/auto/extensions/gl/GL_NV_blend_equation_advanced_coherent
create mode 100644 glew/auto/extensions/gl/GL_NV_blend_minmax_factor
create mode 100644 glew/auto/extensions/gl/GL_NV_blend_square
create mode 100644 glew/auto/extensions/gl/GL_NV_clip_space_w_scaling
create mode 100644 glew/auto/extensions/gl/GL_NV_command_list
create mode 100644 glew/auto/extensions/gl/GL_NV_compute_program5
create mode 100644 glew/auto/extensions/gl/GL_NV_compute_shader_derivatives
create mode 100644 glew/auto/extensions/gl/GL_NV_conditional_render
create mode 100644 glew/auto/extensions/gl/GL_NV_conservative_raster
create mode 100644 glew/auto/extensions/gl/GL_NV_conservative_raster_dilate
create mode 100644 glew/auto/extensions/gl/GL_NV_conservative_raster_pre_snap
create mode 100644 glew/auto/extensions/gl/GL_NV_conservative_raster_pre_snap_triangles
create mode 100644 glew/auto/extensions/gl/GL_NV_conservative_raster_underestimation
create mode 100644 glew/auto/extensions/gl/GL_NV_copy_buffer
create mode 100644 glew/auto/extensions/gl/GL_NV_copy_depth_to_color
create mode 100644 glew/auto/extensions/gl/GL_NV_copy_image
create mode 100644 glew/auto/extensions/gl/GL_NV_deep_texture3D
create mode 100644 glew/auto/extensions/gl/GL_NV_depth_buffer_float
create mode 100644 glew/auto/extensions/gl/GL_NV_depth_clamp
create mode 100644 glew/auto/extensions/gl/GL_NV_depth_nonlinear
create mode 100644 glew/auto/extensions/gl/GL_NV_depth_range_unclamped
create mode 100644 glew/auto/extensions/gl/GL_NV_draw_buffers
create mode 100644 glew/auto/extensions/gl/GL_NV_draw_instanced
create mode 100644 glew/auto/extensions/gl/GL_NV_draw_texture
create mode 100644 glew/auto/extensions/gl/GL_NV_draw_vulkan_image
create mode 100644 glew/auto/extensions/gl/GL_NV_evaluators
create mode 100644 glew/auto/extensions/gl/GL_NV_explicit_attrib_location
create mode 100644 glew/auto/extensions/gl/GL_NV_explicit_multisample
create mode 100644 glew/auto/extensions/gl/GL_NV_fbo_color_attachments
create mode 100644 glew/auto/extensions/gl/GL_NV_fence
create mode 100644 glew/auto/extensions/gl/GL_NV_fill_rectangle
create mode 100644 glew/auto/extensions/gl/GL_NV_float_buffer
create mode 100644 glew/auto/extensions/gl/GL_NV_fog_distance
create mode 100644 glew/auto/extensions/gl/GL_NV_fragment_coverage_to_color
create mode 100644 glew/auto/extensions/gl/GL_NV_fragment_program
create mode 100644 glew/auto/extensions/gl/GL_NV_fragment_program2
create mode 100644 glew/auto/extensions/gl/GL_NV_fragment_program4
create mode 100644 glew/auto/extensions/gl/GL_NV_fragment_program_option
create mode 100644 glew/auto/extensions/gl/GL_NV_fragment_shader_barycentric
create mode 100644 glew/auto/extensions/gl/GL_NV_fragment_shader_interlock
create mode 100644 glew/auto/extensions/gl/GL_NV_framebuffer_blit
create mode 100644 glew/auto/extensions/gl/GL_NV_framebuffer_mixed_samples
create mode 100644 glew/auto/extensions/gl/GL_NV_framebuffer_multisample
create mode 100644 glew/auto/extensions/gl/GL_NV_framebuffer_multisample_coverage
create mode 100644 glew/auto/extensions/gl/GL_NV_generate_mipmap_sRGB
create mode 100644 glew/auto/extensions/gl/GL_NV_geometry_program4
create mode 100644 glew/auto/extensions/gl/GL_NV_geometry_shader4
create mode 100644 glew/auto/extensions/gl/GL_NV_geometry_shader_passthrough
create mode 100644 glew/auto/extensions/gl/GL_NV_gpu_multicast
create mode 100644 glew/auto/extensions/gl/GL_NV_gpu_program4
create mode 100644 glew/auto/extensions/gl/GL_NV_gpu_program5
create mode 100644 glew/auto/extensions/gl/GL_NV_gpu_program5_mem_extended
create mode 100644 glew/auto/extensions/gl/GL_NV_gpu_program_fp64
create mode 100644 glew/auto/extensions/gl/GL_NV_gpu_shader5
create mode 100644 glew/auto/extensions/gl/GL_NV_half_float
create mode 100644 glew/auto/extensions/gl/GL_NV_image_formats
create mode 100644 glew/auto/extensions/gl/GL_NV_instanced_arrays
create mode 100644 glew/auto/extensions/gl/GL_NV_internalformat_sample_query
create mode 100644 glew/auto/extensions/gl/GL_NV_light_max_exponent
create mode 100644 glew/auto/extensions/gl/GL_NV_memory_attachment
create mode 100644 glew/auto/extensions/gl/GL_NV_memory_object_sparse
create mode 100644 glew/auto/extensions/gl/GL_NV_mesh_shader
create mode 100644 glew/auto/extensions/gl/GL_NV_multisample_coverage
create mode 100644 glew/auto/extensions/gl/GL_NV_multisample_filter_hint
create mode 100644 glew/auto/extensions/gl/GL_NV_non_square_matrices
create mode 100644 glew/auto/extensions/gl/GL_NV_occlusion_query
create mode 100644 glew/auto/extensions/gl/GL_NV_pack_subimage
create mode 100644 glew/auto/extensions/gl/GL_NV_packed_depth_stencil
create mode 100644 glew/auto/extensions/gl/GL_NV_packed_float
create mode 100644 glew/auto/extensions/gl/GL_NV_packed_float_linear
create mode 100644 glew/auto/extensions/gl/GL_NV_parameter_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_NV_parameter_buffer_object2
create mode 100644 glew/auto/extensions/gl/GL_NV_path_rendering
create mode 100644 glew/auto/extensions/gl/GL_NV_path_rendering_shared_edge
create mode 100644 glew/auto/extensions/gl/GL_NV_pixel_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_NV_pixel_data_range
create mode 100644 glew/auto/extensions/gl/GL_NV_platform_binary
create mode 100644 glew/auto/extensions/gl/GL_NV_point_sprite
create mode 100644 glew/auto/extensions/gl/GL_NV_polygon_mode
create mode 100644 glew/auto/extensions/gl/GL_NV_present_video
create mode 100644 glew/auto/extensions/gl/GL_NV_primitive_restart
create mode 100644 glew/auto/extensions/gl/GL_NV_primitive_shading_rate
create mode 100644 glew/auto/extensions/gl/GL_NV_query_resource_tag
create mode 100644 glew/auto/extensions/gl/GL_NV_read_buffer
create mode 100644 glew/auto/extensions/gl/GL_NV_read_buffer_front
create mode 100644 glew/auto/extensions/gl/GL_NV_read_depth
create mode 100644 glew/auto/extensions/gl/GL_NV_read_depth_stencil
create mode 100644 glew/auto/extensions/gl/GL_NV_read_stencil
create mode 100644 glew/auto/extensions/gl/GL_NV_register_combiners
create mode 100644 glew/auto/extensions/gl/GL_NV_register_combiners2
create mode 100644 glew/auto/extensions/gl/GL_NV_representative_fragment_test
create mode 100644 glew/auto/extensions/gl/GL_NV_robustness_video_memory_purge
create mode 100644 glew/auto/extensions/gl/GL_NV_sRGB_formats
create mode 100644 glew/auto/extensions/gl/GL_NV_sample_locations
create mode 100644 glew/auto/extensions/gl/GL_NV_sample_mask_override_coverage
create mode 100644 glew/auto/extensions/gl/GL_NV_scissor_exclusive
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_atomic_counters
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_atomic_float
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_atomic_float64
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_atomic_fp16_vector
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_atomic_int64
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_buffer_load
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_noperspective_interpolation
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_storage_buffer_object
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_subgroup_partitioned
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_texture_footprint
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_thread_group
create mode 100644 glew/auto/extensions/gl/GL_NV_shader_thread_shuffle
create mode 100644 glew/auto/extensions/gl/GL_NV_shading_rate_image
create mode 100644 glew/auto/extensions/gl/GL_NV_shadow_samplers_array
create mode 100644 glew/auto/extensions/gl/GL_NV_shadow_samplers_cube
create mode 100644 glew/auto/extensions/gl/GL_NV_stereo_view_rendering
create mode 100644 glew/auto/extensions/gl/GL_NV_tessellation_program5
create mode 100644 glew/auto/extensions/gl/GL_NV_texgen_emboss
create mode 100644 glew/auto/extensions/gl/GL_NV_texgen_reflection
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_array
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_barrier
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_border_clamp
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_compression_latc
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_compression_s3tc
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_compression_s3tc_update
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_compression_vtc
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_env_combine4
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_expand_normal
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_multisample
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_npot_2D_mipmap
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_rectangle
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_rectangle_compressed
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_shader
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_shader2
create mode 100644 glew/auto/extensions/gl/GL_NV_texture_shader3
create mode 100644 glew/auto/extensions/gl/GL_NV_timeline_semaphore
create mode 100644 glew/auto/extensions/gl/GL_NV_transform_feedback
create mode 100644 glew/auto/extensions/gl/GL_NV_transform_feedback2
create mode 100644 glew/auto/extensions/gl/GL_NV_uniform_buffer_unified_memory
create mode 100644 glew/auto/extensions/gl/GL_NV_vdpau_interop
create mode 100644 glew/auto/extensions/gl/GL_NV_vdpau_interop2
create mode 100644 glew/auto/extensions/gl/GL_NV_vertex_array_range
create mode 100644 glew/auto/extensions/gl/GL_NV_vertex_array_range2
create mode 100644 glew/auto/extensions/gl/GL_NV_vertex_attrib_integer_64bit
create mode 100644 glew/auto/extensions/gl/GL_NV_vertex_buffer_unified_memory
create mode 100644 glew/auto/extensions/gl/GL_NV_vertex_program
create mode 100644 glew/auto/extensions/gl/GL_NV_vertex_program1_1
create mode 100644 glew/auto/extensions/gl/GL_NV_vertex_program2
create mode 100644 glew/auto/extensions/gl/GL_NV_vertex_program2_option
create mode 100644 glew/auto/extensions/gl/GL_NV_vertex_program3
create mode 100644 glew/auto/extensions/gl/GL_NV_vertex_program4
create mode 100644 glew/auto/extensions/gl/GL_NV_video_capture
create mode 100644 glew/auto/extensions/gl/GL_NV_viewport_array
create mode 100644 glew/auto/extensions/gl/GL_NV_viewport_array2
create mode 100644 glew/auto/extensions/gl/GL_NV_viewport_swizzle
create mode 100644 glew/auto/extensions/gl/GL_OES_EGL_image
create mode 100644 glew/auto/extensions/gl/GL_OES_EGL_image_external
create mode 100644 glew/auto/extensions/gl/GL_OES_EGL_image_external_essl3
create mode 100644 glew/auto/extensions/gl/GL_OES_blend_equation_separate
create mode 100644 glew/auto/extensions/gl/GL_OES_blend_func_separate
create mode 100644 glew/auto/extensions/gl/GL_OES_blend_subtract
create mode 100644 glew/auto/extensions/gl/GL_OES_byte_coordinates
create mode 100644 glew/auto/extensions/gl/GL_OES_compressed_ETC1_RGB8_texture
create mode 100644 glew/auto/extensions/gl/GL_OES_compressed_paletted_texture
create mode 100644 glew/auto/extensions/gl/GL_OES_copy_image
create mode 100644 glew/auto/extensions/gl/GL_OES_depth24
create mode 100644 glew/auto/extensions/gl/GL_OES_depth32
create mode 100644 glew/auto/extensions/gl/GL_OES_depth_texture
create mode 100644 glew/auto/extensions/gl/GL_OES_depth_texture_cube_map
create mode 100644 glew/auto/extensions/gl/GL_OES_draw_buffers_indexed
create mode 100644 glew/auto/extensions/gl/GL_OES_draw_texture
create mode 100644 glew/auto/extensions/gl/GL_OES_element_index_uint
create mode 100644 glew/auto/extensions/gl/GL_OES_extended_matrix_palette
create mode 100644 glew/auto/extensions/gl/GL_OES_fbo_render_mipmap
create mode 100644 glew/auto/extensions/gl/GL_OES_fragment_precision_high
create mode 100644 glew/auto/extensions/gl/GL_OES_framebuffer_object
create mode 100644 glew/auto/extensions/gl/GL_OES_geometry_point_size
create mode 100644 glew/auto/extensions/gl/GL_OES_geometry_shader
create mode 100644 glew/auto/extensions/gl/GL_OES_get_program_binary
create mode 100644 glew/auto/extensions/gl/GL_OES_gpu_shader5
create mode 100644 glew/auto/extensions/gl/GL_OES_mapbuffer
create mode 100644 glew/auto/extensions/gl/GL_OES_matrix_get
create mode 100644 glew/auto/extensions/gl/GL_OES_matrix_palette
create mode 100644 glew/auto/extensions/gl/GL_OES_packed_depth_stencil
create mode 100644 glew/auto/extensions/gl/GL_OES_point_size_array
create mode 100644 glew/auto/extensions/gl/GL_OES_point_sprite
create mode 100644 glew/auto/extensions/gl/GL_OES_read_format
create mode 100644 glew/auto/extensions/gl/GL_OES_required_internalformat
create mode 100644 glew/auto/extensions/gl/GL_OES_rgb8_rgba8
create mode 100644 glew/auto/extensions/gl/GL_OES_sample_shading
create mode 100644 glew/auto/extensions/gl/GL_OES_sample_variables
create mode 100644 glew/auto/extensions/gl/GL_OES_shader_image_atomic
create mode 100644 glew/auto/extensions/gl/GL_OES_shader_io_blocks
create mode 100644 glew/auto/extensions/gl/GL_OES_shader_multisample_interpolation
create mode 100644 glew/auto/extensions/gl/GL_OES_single_precision
create mode 100644 glew/auto/extensions/gl/GL_OES_standard_derivatives
create mode 100644 glew/auto/extensions/gl/GL_OES_stencil1
create mode 100644 glew/auto/extensions/gl/GL_OES_stencil4
create mode 100644 glew/auto/extensions/gl/GL_OES_stencil8
create mode 100644 glew/auto/extensions/gl/GL_OES_surfaceless_context
create mode 100644 glew/auto/extensions/gl/GL_OES_tessellation_point_size
create mode 100644 glew/auto/extensions/gl/GL_OES_tessellation_shader
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_3D
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_border_clamp
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_buffer
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_compression_astc
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_cube_map
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_cube_map_array
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_env_crossbar
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_mirrored_repeat
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_npot
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_stencil8
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_storage_multisample_2d_array
create mode 100644 glew/auto/extensions/gl/GL_OES_texture_view
create mode 100644 glew/auto/extensions/gl/GL_OES_vertex_array_object
create mode 100644 glew/auto/extensions/gl/GL_OES_vertex_half_float
create mode 100644 glew/auto/extensions/gl/GL_OES_vertex_type_10_10_10_2
create mode 100644 glew/auto/extensions/gl/GL_OML_interlace
create mode 100644 glew/auto/extensions/gl/GL_OML_resample
create mode 100644 glew/auto/extensions/gl/GL_OML_subsample
create mode 100644 glew/auto/extensions/gl/GL_OVR_multiview
create mode 100644 glew/auto/extensions/gl/GL_OVR_multiview2
create mode 100644 glew/auto/extensions/gl/GL_OVR_multiview_multisampled_render_to_texture
create mode 100644 glew/auto/extensions/gl/GL_PGI_misc_hints
create mode 100644 glew/auto/extensions/gl/GL_PGI_vertex_hints
create mode 100644 glew/auto/extensions/gl/GL_QCOM_YUV_texture_gather
create mode 100644 glew/auto/extensions/gl/GL_QCOM_alpha_test
create mode 100644 glew/auto/extensions/gl/GL_QCOM_binning_control
create mode 100644 glew/auto/extensions/gl/GL_QCOM_driver_control
create mode 100644 glew/auto/extensions/gl/GL_QCOM_extended_get
create mode 100644 glew/auto/extensions/gl/GL_QCOM_extended_get2
create mode 100644 glew/auto/extensions/gl/GL_QCOM_frame_extrapolation
create mode 100644 glew/auto/extensions/gl/GL_QCOM_framebuffer_foveated
create mode 100644 glew/auto/extensions/gl/GL_QCOM_motion_estimation
create mode 100644 glew/auto/extensions/gl/GL_QCOM_perfmon_global_mode
create mode 100644 glew/auto/extensions/gl/GL_QCOM_render_shared_exponent
create mode 100644 glew/auto/extensions/gl/GL_QCOM_shader_framebuffer_fetch_noncoherent
create mode 100644 glew/auto/extensions/gl/GL_QCOM_shader_framebuffer_fetch_rate
create mode 100644 glew/auto/extensions/gl/GL_QCOM_shading_rate
create mode 100644 glew/auto/extensions/gl/GL_QCOM_texture_foveated
create mode 100644 glew/auto/extensions/gl/GL_QCOM_texture_foveated2
create mode 100644 glew/auto/extensions/gl/GL_QCOM_texture_foveated_subsampled_layout
create mode 100644 glew/auto/extensions/gl/GL_QCOM_tiled_rendering
create mode 100644 glew/auto/extensions/gl/GL_QCOM_writeonly_rendering
create mode 100644 glew/auto/extensions/gl/GL_REGAL_ES1_0_compatibility
create mode 100644 glew/auto/extensions/gl/GL_REGAL_ES1_1_compatibility
create mode 100644 glew/auto/extensions/gl/GL_REGAL_enable
create mode 100644 glew/auto/extensions/gl/GL_REGAL_error_string
create mode 100644 glew/auto/extensions/gl/GL_REGAL_extension_query
create mode 100644 glew/auto/extensions/gl/GL_REGAL_log
create mode 100644 glew/auto/extensions/gl/GL_REGAL_proc_address
create mode 100644 glew/auto/extensions/gl/GL_REND_screen_coordinates
create mode 100644 glew/auto/extensions/gl/GL_S3_s3tc
create mode 100644 glew/auto/extensions/gl/GL_SGIS_clip_band_hint
create mode 100644 glew/auto/extensions/gl/GL_SGIS_color_range
create mode 100644 glew/auto/extensions/gl/GL_SGIS_detail_texture
create mode 100644 glew/auto/extensions/gl/GL_SGIS_fog_function
create mode 100644 glew/auto/extensions/gl/GL_SGIS_generate_mipmap
create mode 100644 glew/auto/extensions/gl/GL_SGIS_line_texgen
create mode 100644 glew/auto/extensions/gl/GL_SGIS_multisample
create mode 100644 glew/auto/extensions/gl/GL_SGIS_multitexture
create mode 100644 glew/auto/extensions/gl/GL_SGIS_pixel_texture
create mode 100644 glew/auto/extensions/gl/GL_SGIS_point_line_texgen
create mode 100644 glew/auto/extensions/gl/GL_SGIS_shared_multisample
create mode 100644 glew/auto/extensions/gl/GL_SGIS_sharpen_texture
create mode 100644 glew/auto/extensions/gl/GL_SGIS_texture4D
create mode 100644 glew/auto/extensions/gl/GL_SGIS_texture_border_clamp
create mode 100644 glew/auto/extensions/gl/GL_SGIS_texture_edge_clamp
create mode 100644 glew/auto/extensions/gl/GL_SGIS_texture_filter4
create mode 100644 glew/auto/extensions/gl/GL_SGIS_texture_lod
create mode 100644 glew/auto/extensions/gl/GL_SGIS_texture_select
create mode 100644 glew/auto/extensions/gl/GL_SGIX_async
create mode 100644 glew/auto/extensions/gl/GL_SGIX_async_histogram
create mode 100644 glew/auto/extensions/gl/GL_SGIX_async_pixel
create mode 100644 glew/auto/extensions/gl/GL_SGIX_bali_g_instruments
create mode 100644 glew/auto/extensions/gl/GL_SGIX_bali_r_instruments
create mode 100644 glew/auto/extensions/gl/GL_SGIX_bali_timer_instruments
create mode 100644 glew/auto/extensions/gl/GL_SGIX_blend_alpha_minmax
create mode 100644 glew/auto/extensions/gl/GL_SGIX_blend_cadd
create mode 100644 glew/auto/extensions/gl/GL_SGIX_blend_cmultiply
create mode 100644 glew/auto/extensions/gl/GL_SGIX_calligraphic_fragment
create mode 100644 glew/auto/extensions/gl/GL_SGIX_clipmap
create mode 100644 glew/auto/extensions/gl/GL_SGIX_color_matrix_accuracy
create mode 100644 glew/auto/extensions/gl/GL_SGIX_color_table_index_mode
create mode 100644 glew/auto/extensions/gl/GL_SGIX_complex_polar
create mode 100644 glew/auto/extensions/gl/GL_SGIX_convolution_accuracy
create mode 100644 glew/auto/extensions/gl/GL_SGIX_cube_map
create mode 100644 glew/auto/extensions/gl/GL_SGIX_cylinder_texgen
create mode 100644 glew/auto/extensions/gl/GL_SGIX_datapipe
create mode 100644 glew/auto/extensions/gl/GL_SGIX_decimation
create mode 100644 glew/auto/extensions/gl/GL_SGIX_depth_pass_instrument
create mode 100644 glew/auto/extensions/gl/GL_SGIX_depth_texture
create mode 100644 glew/auto/extensions/gl/GL_SGIX_dvc
create mode 100644 glew/auto/extensions/gl/GL_SGIX_flush_raster
create mode 100644 glew/auto/extensions/gl/GL_SGIX_fog_blend
create mode 100644 glew/auto/extensions/gl/GL_SGIX_fog_factor_to_alpha
create mode 100644 glew/auto/extensions/gl/GL_SGIX_fog_layers
create mode 100644 glew/auto/extensions/gl/GL_SGIX_fog_offset
create mode 100644 glew/auto/extensions/gl/GL_SGIX_fog_patchy
create mode 100644 glew/auto/extensions/gl/GL_SGIX_fog_scale
create mode 100644 glew/auto/extensions/gl/GL_SGIX_fog_texture
create mode 100644 glew/auto/extensions/gl/GL_SGIX_fragment_lighting_space
create mode 100644 glew/auto/extensions/gl/GL_SGIX_fragment_specular_lighting
create mode 100644 glew/auto/extensions/gl/GL_SGIX_fragments_instrument
create mode 100644 glew/auto/extensions/gl/GL_SGIX_framezoom
create mode 100644 glew/auto/extensions/gl/GL_SGIX_icc_texture
create mode 100644 glew/auto/extensions/gl/GL_SGIX_igloo_interface
create mode 100644 glew/auto/extensions/gl/GL_SGIX_image_compression
create mode 100644 glew/auto/extensions/gl/GL_SGIX_impact_pixel_texture
create mode 100644 glew/auto/extensions/gl/GL_SGIX_instrument_error
create mode 100644 glew/auto/extensions/gl/GL_SGIX_interlace
create mode 100644 glew/auto/extensions/gl/GL_SGIX_ir_instrument1
create mode 100644 glew/auto/extensions/gl/GL_SGIX_line_quality_hint
create mode 100644 glew/auto/extensions/gl/GL_SGIX_list_priority
create mode 100644 glew/auto/extensions/gl/GL_SGIX_mpeg1
create mode 100644 glew/auto/extensions/gl/GL_SGIX_mpeg2
create mode 100644 glew/auto/extensions/gl/GL_SGIX_nonlinear_lighting_pervertex
create mode 100644 glew/auto/extensions/gl/GL_SGIX_nurbs_eval
create mode 100644 glew/auto/extensions/gl/GL_SGIX_occlusion_instrument
create mode 100644 glew/auto/extensions/gl/GL_SGIX_packed_6bytes
create mode 100644 glew/auto/extensions/gl/GL_SGIX_pixel_texture
create mode 100644 glew/auto/extensions/gl/GL_SGIX_pixel_texture_bits
create mode 100644 glew/auto/extensions/gl/GL_SGIX_pixel_texture_lod
create mode 100644 glew/auto/extensions/gl/GL_SGIX_pixel_tiles
create mode 100644 glew/auto/extensions/gl/GL_SGIX_polynomial_ffd
create mode 100644 glew/auto/extensions/gl/GL_SGIX_quad_mesh
create mode 100644 glew/auto/extensions/gl/GL_SGIX_reference_plane
create mode 100644 glew/auto/extensions/gl/GL_SGIX_resample
create mode 100644 glew/auto/extensions/gl/GL_SGIX_scalebias_hint
create mode 100644 glew/auto/extensions/gl/GL_SGIX_shadow
create mode 100644 glew/auto/extensions/gl/GL_SGIX_shadow_ambient
create mode 100644 glew/auto/extensions/gl/GL_SGIX_slim
create mode 100644 glew/auto/extensions/gl/GL_SGIX_spotlight_cutoff
create mode 100644 glew/auto/extensions/gl/GL_SGIX_sprite
create mode 100644 glew/auto/extensions/gl/GL_SGIX_subdiv_patch
create mode 100644 glew/auto/extensions/gl/GL_SGIX_subsample
create mode 100644 glew/auto/extensions/gl/GL_SGIX_tag_sample_buffer
create mode 100644 glew/auto/extensions/gl/GL_SGIX_texture_add_env
create mode 100644 glew/auto/extensions/gl/GL_SGIX_texture_coordinate_clamp
create mode 100644 glew/auto/extensions/gl/GL_SGIX_texture_lod_bias
create mode 100644 glew/auto/extensions/gl/GL_SGIX_texture_mipmap_anisotropic
create mode 100644 glew/auto/extensions/gl/GL_SGIX_texture_multi_buffer
create mode 100644 glew/auto/extensions/gl/GL_SGIX_texture_phase
create mode 100644 glew/auto/extensions/gl/GL_SGIX_texture_range
create mode 100644 glew/auto/extensions/gl/GL_SGIX_texture_scale_bias
create mode 100644 glew/auto/extensions/gl/GL_SGIX_texture_supersample
create mode 100644 glew/auto/extensions/gl/GL_SGIX_vector_ops
create mode 100644 glew/auto/extensions/gl/GL_SGIX_vertex_array_object
create mode 100644 glew/auto/extensions/gl/GL_SGIX_vertex_preclip
create mode 100644 glew/auto/extensions/gl/GL_SGIX_vertex_preclip_hint
create mode 100644 glew/auto/extensions/gl/GL_SGIX_ycrcb
create mode 100644 glew/auto/extensions/gl/GL_SGIX_ycrcb_subsample
create mode 100644 glew/auto/extensions/gl/GL_SGIX_ycrcba
create mode 100644 glew/auto/extensions/gl/GL_SGI_color_matrix
create mode 100644 glew/auto/extensions/gl/GL_SGI_color_table
create mode 100644 glew/auto/extensions/gl/GL_SGI_complex
create mode 100644 glew/auto/extensions/gl/GL_SGI_complex_type
create mode 100644 glew/auto/extensions/gl/GL_SGI_fft
create mode 100644 glew/auto/extensions/gl/GL_SGI_texture_color_table
create mode 100644 glew/auto/extensions/gl/GL_SUNX_constant_data
create mode 100644 glew/auto/extensions/gl/GL_SUN_convolution_border_modes
create mode 100644 glew/auto/extensions/gl/GL_SUN_global_alpha
create mode 100644 glew/auto/extensions/gl/GL_SUN_mesh_array
create mode 100644 glew/auto/extensions/gl/GL_SUN_read_video_pixels
create mode 100644 glew/auto/extensions/gl/GL_SUN_slice_accum
create mode 100644 glew/auto/extensions/gl/GL_SUN_triangle_list
create mode 100644 glew/auto/extensions/gl/GL_SUN_vertex
create mode 100644 glew/auto/extensions/gl/GL_VIV_shader_binary
create mode 100644 glew/auto/extensions/gl/GL_WIN_phong_shading
create mode 100644 glew/auto/extensions/gl/GL_WIN_scene_markerXXX
create mode 100644 glew/auto/extensions/gl/GL_WIN_specular_fog
create mode 100644 glew/auto/extensions/gl/GL_WIN_swap_hint
create mode 100644 glew/auto/extensions/gl/WGL_3DFX_multisample
create mode 100644 glew/auto/extensions/gl/WGL_3DL_stereo_control
create mode 100644 glew/auto/extensions/gl/WGL_AMD_gpu_association
create mode 100644 glew/auto/extensions/gl/WGL_ARB_buffer_region
create mode 100644 glew/auto/extensions/gl/WGL_ARB_context_flush_control
create mode 100644 glew/auto/extensions/gl/WGL_ARB_create_context
create mode 100644 glew/auto/extensions/gl/WGL_ARB_create_context_no_error
create mode 100644 glew/auto/extensions/gl/WGL_ARB_create_context_profile
create mode 100644 glew/auto/extensions/gl/WGL_ARB_create_context_robustness
create mode 100644 glew/auto/extensions/gl/WGL_ARB_extensions_string
create mode 100644 glew/auto/extensions/gl/WGL_ARB_framebuffer_sRGB
create mode 100644 glew/auto/extensions/gl/WGL_ARB_make_current_read
create mode 100644 glew/auto/extensions/gl/WGL_ARB_multisample
create mode 100644 glew/auto/extensions/gl/WGL_ARB_pbuffer
create mode 100644 glew/auto/extensions/gl/WGL_ARB_pixel_format
create mode 100644 glew/auto/extensions/gl/WGL_ARB_pixel_format_float
create mode 100644 glew/auto/extensions/gl/WGL_ARB_render_texture
create mode 100644 glew/auto/extensions/gl/WGL_ARB_robustness_application_isolation
create mode 100644 glew/auto/extensions/gl/WGL_ARB_robustness_share_group_isolation
create mode 100644 glew/auto/extensions/gl/WGL_ATI_pixel_format_float
create mode 100644 glew/auto/extensions/gl/WGL_ATI_render_texture_rectangle
create mode 100644 glew/auto/extensions/gl/WGL_EXT_colorspace
create mode 100644 glew/auto/extensions/gl/WGL_EXT_create_context_es2_profile
create mode 100644 glew/auto/extensions/gl/WGL_EXT_create_context_es_profile
create mode 100644 glew/auto/extensions/gl/WGL_EXT_depth_float
create mode 100644 glew/auto/extensions/gl/WGL_EXT_display_color_table
create mode 100644 glew/auto/extensions/gl/WGL_EXT_extensions_string
create mode 100644 glew/auto/extensions/gl/WGL_EXT_framebuffer_sRGB
create mode 100644 glew/auto/extensions/gl/WGL_EXT_make_current_read
create mode 100644 glew/auto/extensions/gl/WGL_EXT_multisample
create mode 100644 glew/auto/extensions/gl/WGL_EXT_pbuffer
create mode 100644 glew/auto/extensions/gl/WGL_EXT_pixel_format
create mode 100644 glew/auto/extensions/gl/WGL_EXT_pixel_format_packed_float
create mode 100644 glew/auto/extensions/gl/WGL_EXT_swap_control
create mode 100644 glew/auto/extensions/gl/WGL_EXT_swap_control_tear
create mode 100644 glew/auto/extensions/gl/WGL_I3D_digital_video_control
create mode 100644 glew/auto/extensions/gl/WGL_I3D_gamma
create mode 100644 glew/auto/extensions/gl/WGL_I3D_genlock
create mode 100644 glew/auto/extensions/gl/WGL_I3D_image_buffer
create mode 100644 glew/auto/extensions/gl/WGL_I3D_swap_frame_lock
create mode 100644 glew/auto/extensions/gl/WGL_I3D_swap_frame_usage
create mode 100644 glew/auto/extensions/gl/WGL_NV_DX_interop
create mode 100644 glew/auto/extensions/gl/WGL_NV_DX_interop2
create mode 100644 glew/auto/extensions/gl/WGL_NV_copy_image
create mode 100644 glew/auto/extensions/gl/WGL_NV_delay_before_swap
create mode 100644 glew/auto/extensions/gl/WGL_NV_float_buffer
create mode 100644 glew/auto/extensions/gl/WGL_NV_gpu_affinity
create mode 100644 glew/auto/extensions/gl/WGL_NV_multigpu_context
create mode 100644 glew/auto/extensions/gl/WGL_NV_multisample_coverage
create mode 100644 glew/auto/extensions/gl/WGL_NV_present_video
create mode 100644 glew/auto/extensions/gl/WGL_NV_render_depth_texture
create mode 100644 glew/auto/extensions/gl/WGL_NV_render_texture_rectangle
create mode 100644 glew/auto/extensions/gl/WGL_NV_swap_group
create mode 100644 glew/auto/extensions/gl/WGL_NV_vertex_array_range
create mode 100644 glew/auto/extensions/gl/WGL_NV_video_capture
create mode 100644 glew/auto/extensions/gl/WGL_NV_video_output
create mode 100644 glew/auto/extensions/gl/WGL_OML_sync_control
create mode 100644 glew/auto/src/eglew_head.h
create mode 100644 glew/auto/src/eglew_mid.h
create mode 100644 glew/auto/src/eglew_tail.h
create mode 100644 glew/auto/src/footer.html
create mode 100644 glew/auto/src/glew_head.c
create mode 100644 glew/auto/src/glew_head.h
create mode 100644 glew/auto/src/glew_init_egl.c
create mode 100644 glew/auto/src/glew_init_gl.c
create mode 100644 glew/auto/src/glew_init_glx.c
create mode 100644 glew/auto/src/glew_init_tail.c
create mode 100644 glew/auto/src/glew_init_wgl.c
create mode 100644 glew/auto/src/glew_license.h
create mode 100644 glew/auto/src/glew_str_egl.c
create mode 100644 glew/auto/src/glew_str_glx.c
create mode 100644 glew/auto/src/glew_str_head.c
create mode 100644 glew/auto/src/glew_str_tail.c
create mode 100644 glew/auto/src/glew_str_wgl.c
create mode 100644 glew/auto/src/glew_tail.h
create mode 100644 glew/auto/src/glewinfo_egl.c
create mode 100644 glew/auto/src/glewinfo_gl.c
create mode 100644 glew/auto/src/glewinfo_glx.c
create mode 100644 glew/auto/src/glewinfo_head.c
create mode 100644 glew/auto/src/glewinfo_tail.c
create mode 100644 glew/auto/src/glewinfo_wgl.c
create mode 100644 glew/auto/src/glxew_head.h
create mode 100644 glew/auto/src/glxew_mid.h
create mode 100644 glew/auto/src/glxew_tail.h
create mode 100644 glew/auto/src/header.html
create mode 100644 glew/auto/src/khronos_license.h
create mode 100644 glew/auto/src/mesa_license.h
create mode 100644 glew/auto/src/wglew_head.h
create mode 100644 glew/auto/src/wglew_mid.h
create mode 100644 glew/auto/src/wglew_tail.h
create mode 100644 glew/build/cmake/CMakeLists.txt
create mode 100644 glew/build/cmake/CopyImportedTargetProperties.cmake
create mode 100644 glew/build/cmake/cmake_uninstall.cmake.in
create mode 100644 glew/build/cmake/glew-config.cmake
create mode 100644 glew/build/cmake/testbuild/CMakeLists.txt
create mode 100644 glew/build/cmake/testbuild/main.c
create mode 100644 glew/build/vc10/common.props
create mode 100644 glew/build/vc12/common.props
create mode 100644 glew/build/vc14/common.props
create mode 100644 glew/build/vc15/common.props
create mode 100644 glew/build/vc6/glew.dsw
create mode 100644 glew/build/vc6/glew_shared.dsp
create mode 100644 glew/build/vc6/glew_static.dsp
create mode 100644 glew/build/vc6/glewinfo.dsp
create mode 100644 glew/build/vc6/visualinfo.dsp
create mode 100644 glew/cmake-testbuild.sh
create mode 100644 glew/config/config.guess
create mode 100644 glew/config/version
create mode 100644 glew/doc/advanced.html
create mode 100644 glew/doc/basic.html
create mode 100644 glew/doc/build.html
create mode 100644 glew/doc/credits.html
create mode 100644 glew/doc/github.png
create mode 100644 glew/doc/glew.css
create mode 100644 glew/doc/glew.html
create mode 100644 glew/doc/glew.png
create mode 100644 glew/doc/glew.txt
create mode 100644 glew/doc/glxew.html
create mode 100644 glew/doc/gpl.txt
create mode 100644 glew/doc/index.html
create mode 100644 glew/doc/install.html
create mode 100644 glew/doc/khronos.txt
create mode 100644 glew/doc/log.html
create mode 100644 glew/doc/mesa.txt
create mode 100644 glew/doc/new.png
create mode 100644 glew/doc/ogl_sm.jpg
create mode 100644 glew/doc/travis.png
create mode 100644 glew/doc/wglew.html
create mode 100644 glew/glew.pc.in
create mode 100644 glew/include/GL/eglew.h
create mode 100644 glew/include/GL/glew.h
create mode 100644 glew/include/GL/glxew.h
create mode 100644 glew/include/GL/wglew.h
create mode 100644 glew/original-readme.md
create mode 100644 glew/src/glew.c
create mode 100644 glew/src/glewinfo.c
create mode 100644 glew/src/visualinfo.c
create mode 100644 meshes/armadillo.obj
create mode 100644 meshes/bean.obj
create mode 100644 meshes/bunny.obj
create mode 100644 meshes/cactus.obj
create mode 100644 meshes/cow.obj
create mode 100644 meshes/cube.obj
create mode 100644 meshes/peter.obj
create mode 100644 meshes/rectangle.obj
create mode 100644 meshes/sphere.obj
create mode 100644 meshes/teapot.obj
create mode 100755 meshes/tetrahedron.obj
create mode 100644 readme-videos/armadillo.gif
create mode 100644 readme-videos/bean.gif
create mode 100644 readme-videos/peter.gif
create mode 100644 readme-videos/sphere.gif
create mode 100644 readme-videos/teapot.gif
create mode 100644 readme-videos/tetrahedron.gif
create mode 100644 resources/shaders/anchorPoint.frag
create mode 100644 resources/shaders/anchorPoint.geom
create mode 100644 resources/shaders/anchorPoint.vert
create mode 100755 resources/shaders/shader.frag
create mode 100755 resources/shaders/shader.vert
create mode 100755 resources/shaders/shaders.qrc
create mode 100644 src/arap.cpp
create mode 100644 src/arap.h
create mode 100755 src/glwidget.cpp
create mode 100755 src/glwidget.h
create mode 100644 src/graphics/camera.cpp
create mode 100644 src/graphics/camera.h
create mode 100644 src/graphics/graphicsdebug.cpp
create mode 100644 src/graphics/graphicsdebug.h
create mode 100644 src/graphics/meshloader.cpp
create mode 100644 src/graphics/meshloader.h
create mode 100644 src/graphics/shader.cpp
create mode 100644 src/graphics/shader.h
create mode 100644 src/graphics/shape.cpp
create mode 100644 src/graphics/shape.h
create mode 100755 src/main.cpp
create mode 100755 src/mainwindow.cpp
create mode 100755 src/mainwindow.h
create mode 100644 util/tiny_obj_loader.h
create mode 100644 util/unsupportedeigenthing/OpenGLSupport
diff --git a/.gitignore b/.gitignore
new file mode 100755
index 0000000..ceab4d3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,288 @@
+!core/
+*.*#
+*.a
+*.app
+*.autosave
+*.core
+*.debug
+*.embed.manifest
+*.moc
+*.o
+*.orig
+*.prl
+*.qm
+*.rc
+*.rej
+*.res
+*.so
+*.so.*
+*_pch.h.cpp
+*_resource.rc
+*_wrapper.bat
+*_wrapper.sh
+*~
+.#*
+.DS_Store
+.qmake.cache
+.qmake.stash
+.vscode
+Makefile*
+Thumbs.db
+core
+moc_*.cpp
+moc_*.h
+qrc_*.cpp
+tags
+ui_*.h
+wrapper.bat
+wrapper.sh
+
+# qtcreator generated files
+*.creator.user*
+*.pro.user*
+*.pyqtc.user*
+*.qbs.user*
+*.qmlproject.user*
+CMakeLists.txt.user*
+/share/qtcreator/examples/
+/share/qtcreator/externaltools/
+/share/qtcreator/fonts/
+/share/qtcreator/generic-highlighter/
+/share/qtcreator/qmldesigner/QtProject/
+/src/app/Info.plist
+/src/plugins/**/*.json
+/src/plugins/coreplugin/ide_version.h
+/src/libs/qt-breakpad/bin
+/.cmake/
+app_version.h
+phony.c
+
+# xemacs temporary files
+*.flc
+
+# Vim temporary files
+.*.swp
+
+# Visual Studio generated files
+*.ib_pdb_index
+*.idb
+*.ilk
+*.ncb
+*.opensdf
+*.pdb
+*.sdf
+*.sln
+*.suo
+*.vcproj
+*.vcxproj
+*vcproj.*.*.user
+*vcxproj.*
+
+# gcov files
+*.gcda
+*.gcno
+*.gcov
+
+# MinGW generated files
+*.Debug
+*.Release
+
+# Python byte code
+*.pyc
+
+# translation related:
+/share/qtcreator/translations/*_tr.h
+/share/qtcreator/translations/qtcreator_untranslated.ts
+
+# Qml caching files
+*.jsc
+*.qmlc
+
+# Squish generated files
+/tests/system/suite_*/config.xml
+
+# Clang tooling files
+compile_commands.json
+
+# Directories to ignore
+# ---------------------
+
+.moc/
+.obj/
+.pch/
+.rcc/
+.uic/
+.clangd/
+/*-debug/
+/*-release/
+/build*/
+/dist/gdb/*.gz
+/dist/gdb/python/
+/dist/gdb/qtcreator-*/
+/dist/gdb/source/
+/dist/gdb/staging/
+/doc/qbs/
+/doc/html/qtcreator/
+/doc/html/qtcreator-dev/
+/doc/html/qtdesignstudio/
+/doc/qtdesignstudio/doc/html
+/lib/
+/lib64/
+/libexec/
+debug/
+ipch/
+release/
+tmp/
+# ignore both a directory as well as a symlink
+/share/qtcreator/QtProject
+
+# Binaries
+# --------
+*.dll
+*.exe
+/bin/buildoutputparser
+/bin/clangbackend
+/bin/cpaster
+/bin/cplusplus-ast2png
+/bin/cplusplus-frontend
+/bin/cplusplus-keywordgen
+/bin/cplusplus-mkvisitor
+/bin/cplusplus-update-frontend
+/bin/qbs*
+/bin/qml2puppet
+/bin/qmlpuppet
+/bin/qtcreator
+/bin/qtcreator_crash_handler
+/bin/qtcreator_ctrlc_stub
+/bin/qtcreator_process_stub
+/bin/qtpromaker
+/bin/sdktool
+/share/doc/qtcreator/*.qch
+/share/qtcreator/qbs/
+/src/tools/examplesscanner/examplesscanner
+/src/tools/qml/qmldump/qmldump
+/src/tools/valgrindfake/valgrind-fake
+
+# Tests
+#------
+/tests/auto/aggregation/tst_aggregation
+/tests/auto/algorithm/tst_algorithm
+/tests/auto/changeset/tst_changeset
+/tests/auto/cplusplus/ast/tst_ast
+/tests/auto/cplusplus/c99/tst_c99
+/tests/auto/cplusplus/checksymbols/tst_checksymbols
+/tests/auto/cplusplus/codeformatter/tst_codeformatter
+/tests/auto/cplusplus/codegen/tst_codegen
+/tests/auto/cplusplus/cppselectionchanger/tst_cppselectionchanger
+/tests/auto/cplusplus/cxx11/tst_c99
+/tests/auto/cplusplus/cxx11/tst_cxx11
+/tests/auto/cplusplus/fileiterationorder/tst_fileiterationorder
+/tests/auto/cplusplus/findusages/tst_findusages
+/tests/auto/cplusplus/lexer/tst_lexer
+/tests/auto/cplusplus/lookup/tst_lookup
+/tests/auto/cplusplus/misc/tst_misc
+/tests/auto/cplusplus/preprocessor/tst_preprocessor
+/tests/auto/cplusplus/semantic/tst_semantic
+/tests/auto/cplusplus/simplifytypes/tst_simplifytypes
+/tests/auto/cplusplus/translationunit/tst_translationunit
+/tests/auto/cplusplus/typeprettyprinter/tst_typeprettyprinter
+/tests/auto/debugger/qt_tst_dumpers_*
+/tests/auto/debugger/tst_disassembler
+/tests/auto/debugger/tst_dumpers
+/tests/auto/debugger/tst_gdb
+/tests/auto/debugger/tst_namedemangler
+/tests/auto/debugger/tst_offsets
+/tests/auto/debugger/tst_olddumpers
+/tests/auto/debugger/tst_simplifytypes
+/tests/auto/debugger/tst_version
+/tests/auto/diff/differ/tst_differ
+/tests/auto/environment/tst_environment
+/tests/auto/extensionsystem/pluginmanager/tst_pluginmanager
+/tests/auto/extensionsystem/pluginspec/tst_pluginspec
+/tests/auto/externaltool/tst_externaltool
+/tests/auto/fakevim/tst_fakevim
+/tests/auto/filesearch/tst_filesearch
+/tests/auto/flamegraph/tst_flamegraph
+/tests/auto/generichighlighter/highlighterengine/tst_highlighterengine
+/tests/auto/generichighlighter/specificrules/tst_specificrules
+/tests/auto/ioutils/tst_ioutils
+/tests/auto/json/tst_json
+/tests/auto/mapreduce/tst_mapreduce
+/tests/auto/profilewriter/tst_profilewriter
+/tests/auto/qml/codemodel/check/tst_codemodel_check
+/tests/auto/qml/codemodel/dependencies/tst_dependencies
+/tests/auto/qml/codemodel/importscheck/tst_qml_imports_check
+/tests/auto/qml/persistenttrie/tst_trie_check
+/tests/auto/qml/qmldesigner/bauhaustests/tst_bauhaus
+/tests/auto/qml/qmldesigner/coretests/tst_coretests
+/tests/auto/qml/qmldesigner/coretests/tst_qmldesigner_core
+/tests/auto/qml/qmldesigner/propertyeditortests/tst_propertyeditor
+/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter
+/tests/auto/qml/qmljssimplereader/tst_qmljssimplereader
+/tests/auto/qml/qmlprojectmanager/fileformat/tst_fileformat
+/tests/auto/qml/qrcparser/tst_qrcparser
+/tests/auto/qml/reformatter/tst_reformatter
+/tests/auto/qtcprocess/tst_qtcprocess
+/tests/auto/runextensions/tst_runextensions
+/tests/auto/sdktool/tst_sdktool
+/tests/auto/ssh/tst_ssh
+/tests/auto/timeline/timelineabstractrenderer/tst_timelineabstractrenderer
+/tests/auto/timeline/timelineitemsrenderpass/tst_timelineitemsrenderpass
+/tests/auto/timeline/timelinemodel/tst_timelinemodel
+/tests/auto/timeline/timelinemodelaggregator/tst_timelinemodelaggregator
+/tests/auto/timeline/timelinenotesmodel/tst_timelinenotesmodel
+/tests/auto/timeline/timelinenotesrenderpass/tst_timelinenotesrenderpass
+/tests/auto/timeline/timelineoverviewrenderer/tst_timelineoverviewrenderer
+/tests/auto/timeline/timelinerenderer/tst_timelinerenderer
+/tests/auto/timeline/timelinerenderpass/tst_timelinerenderpass
+/tests/auto/timeline/timelinerenderstate/tst_timelinerenderstate
+/tests/auto/timeline/timelineselectionrenderpass/tst_timelineselectionrenderpass
+/tests/auto/timeline/timelinezoomcontrol/tst_timelinezoomcontrol
+/tests/auto/treeviewfind/tst_treeviewfind
+/tests/auto/utils/ansiescapecodehandler/tst_ansiescapecodehandler
+/tests/auto/utils/fileutils/tst_fileutils
+/tests/auto/utils/stringutils/tst_stringutils
+/tests/auto/utils/templateengine/tst_templateengine
+/tests/auto/utils/treemodel/tst_treemodel
+/tests/auto/valgrind/callgrind/tst_callgrindparsertests
+/tests/auto/valgrind/memcheck/modeldemo
+/tests/auto/valgrind/memcheck/testapps/free1/free1
+/tests/auto/valgrind/memcheck/testapps/free2/free2
+/tests/auto/valgrind/memcheck/testapps/invalidjump/invalidjump
+/tests/auto/valgrind/memcheck/testapps/leak1/leak1
+/tests/auto/valgrind/memcheck/testapps/leak2/leak2
+/tests/auto/valgrind/memcheck/testapps/leak3/leak3
+/tests/auto/valgrind/memcheck/testapps/leak4/leak4
+/tests/auto/valgrind/memcheck/testapps/overlap/overlap
+/tests/auto/valgrind/memcheck/testapps/syscall/syscall
+/tests/auto/valgrind/memcheck/testapps/uninit1/uninit1
+/tests/auto/valgrind/memcheck/testapps/uninit2/uninit2
+/tests/auto/valgrind/memcheck/testapps/uninit3/uninit3
+/tests/auto/valgrind/memcheck/tst_parsertests
+/tests/auto/valgrind/memcheck/tst_testrunner
+/tests/manual/debugger/gui/gui
+/tests/manual/debugger/helper/helper
+/tests/manual/debugger/simple/libsimple_test_plugin.*dylib
+/tests/manual/debugger/simple/simple_test_app
+/tests/manual/fakevim/tst_fakevim
+/tests/manual/pluginview/tst_plugindialog
+/tests/manual/preprocessor/pp
+/tests/manual/process/process
+/tests/manual/proparser/testreader
+/tests/manual/qml-ast2dot/qml-ast2dot
+/tests/manual/shootout/shootout
+/tests/manual/ssh/sftpfsmodel/sftpfsmodel
+/tests/manual/ssh/shell/shell
+/tests/tools/qml-ast2dot/qml-ast2dot
+/tests/unit/echoserver/echo
+/tests/unit/unittest/unittest
+
+# qbs builds
+/*-debug/
+/*-release/
+
+# MacOS
+.DS_Store
+
+# Eigen
+Eigen
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..79a321b
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "Eigen"]
+ path = Eigen
+ url = https://github.com/brown-cs-224/Eigen
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..9f8f4b0
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,104 @@
+cmake_minimum_required(VERSION 3.16)
+
+# Sets project name
+project(arap LANGUAGES CXX C)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+
+# Sets C++ standard
+set(CMAKE_CXX_STANDARD 20)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+# Specifies required Qt components
+find_package(Qt6 REQUIRED COMPONENTS Core)
+find_package(Qt6 REQUIRED COMPONENTS Concurrent)
+find_package(Qt6 REQUIRED COMPONENTS Xml)
+find_package(Qt6 REQUIRED COMPONENTS Widgets)
+find_package(Qt6 REQUIRED COMPONENTS OpenGL)
+find_package(Qt6 REQUIRED COMPONENTS OpenGLWidgets)
+find_package(Qt6 REQUIRED COMPONENTS Gui)
+
+# Allows you to include files from within those directories, without prefixing their filepaths
+include_directories(src)
+include_directories(libs)
+
+# Specifies .cpp and .h files to be passed to the compiler
+add_executable(${PROJECT_NAME}
+ src/main.cpp
+ src/mainwindow.cpp
+ src/arap.cpp
+ src/glwidget.cpp
+ src/graphics/camera.cpp
+ src/graphics/graphicsdebug.cpp
+ src/graphics/meshloader.cpp
+ src/graphics/shader.cpp
+ src/graphics/shape.cpp
+
+ src/mainwindow.h
+ src/arap.h
+ src/glwidget.h
+ src/graphics/camera.h
+ src/graphics/graphicsdebug.h
+ src/graphics/meshloader.h
+ src/graphics/shader.h
+ src/graphics/shape.h
+
+ util/tiny_obj_loader.h
+ util/unsupportedeigenthing/OpenGLSupport
+)
+
+# GLEW: this creates its library and allows you to `#include "GL/glew.h"`
+add_library(StaticGLEW STATIC glew/src/glew.c)
+include_directories(${PROJECT_NAME} PRIVATE glew/include)
+
+# Specifies libraries to be linked (Qt components, glew, etc)
+target_link_libraries(${PROJECT_NAME} PRIVATE
+ Qt::Concurrent
+ Qt::Core
+ Qt::Gui
+ Qt::OpenGL
+ Qt::OpenGLWidgets
+ Qt::Widgets
+ Qt::Xml
+ StaticGLEW
+)
+
+# This allows you to `#include "Eigen/..."`
+target_include_directories(${PROJECT_NAME} PRIVATE
+ Eigen
+)
+
+# Specifies other files
+qt6_add_resources(${PROJECT_NAME} "Resources"
+ PREFIX
+ "/"
+ FILES
+ resources/shaders/shader.frag
+ resources/shaders/shader.vert
+ resources/shaders/anchorPoint.vert
+ resources/shaders/anchorPoint.geom
+ resources/shaders/anchorPoint.frag
+)
+
+# GLEW: this provides support for Windows (including 64-bit)
+if (WIN32)
+ add_compile_definitions(GLEW_STATIC)
+ target_link_libraries(${PROJECT_NAME} PRIVATE
+ opengl32
+ glu32
+ )
+endif()
+
+# Set this flag to silence warnings on Windows
+if (MSVC OR MSYS OR MINGW)
+ set(CMAKE_CXX_FLAGS "-Wno-volatile")
+endif()
+
+# Set this flag to silence warnings on MacOS
+if (APPLE)
+ set(CMAKE_CXX_FLAGS "-Wno-deprecated-volatile")
+endif()
diff --git a/Eigen b/Eigen
new file mode 160000
index 0000000..e0f6401
--- /dev/null
+++ b/Eigen
@@ -0,0 +1 @@
+Subproject commit e0f640171a9771e778c78058581c7037b201baa1
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d583d15
--- /dev/null
+++ b/README.md
@@ -0,0 +1,164 @@
+# Assignment 4: As-Rigid-As-Possible Surface Modeling (ARAP)
+
+**Released:** 3/18/24
+
+**Due:** 4/5/24 @ 11:59pm EST
+
+In this assignment, you will implement a system for user-interactive deformation of 3D meshes. In your system, mesh vertices can be re-positioned by clicking and dragging. Your system will update the rest of the mesh in response to these user interactions such that it moves as-rigidly-as-possible (i.e. the deformation it exhibits is close to a rigid transformation). The end result is a deformation that looks physically-plausible, as if the mesh has an underlying rig / skeletal armature.
+
+To achieve this goal, you will need to formulate the deformation process as an optimization problem, in which you will alternate between estimating the best-fit rigid transformation for each mesh vertex and solving a sparse linear system to find new mesh vertex positions.
+
+## Relevant Reading
+
+- The lecture slides!
+- [As-Rigid-As-Possible Surface Modeling](https://igl.ethz.ch/projects/ARAP/arap_web.pdf) on the mathematics behind the ARAP algorithm.
+
+## Requirements
+
+This assignment is out of **100 points**.
+
+Your must implement exactly one feature: the algorithm described in the ARAP paper. That means, for each user interaction, your program must perform the following steps:
+
+- [Initialization](#initialization) **(35 points)**
+- [Iterative solving](#iterative-solving) **(45 points)**
+
+You will be graded for inclusion of the following as well:
+
+- [README](#readme) **(5 points)**
+- [Example videos](#example-videos) **(10 points)**
+
+This sums to **95 points**. To score **100 points** (or more!), you’ll need to implement some [extra features](#extra-features).
+
+### Initialization
+
+1. Set an initial value for the new vertex positions $p'$. Use the previous vertex positions $p$ for this. **(0 points)**
+2. Build the $L$ matrix. **(25 points)**
+ - Determine the one-ring neighbors of each vertex;
+ - Calculate the cotangent weight $w$ for each vertex;
+ - Fill in the $L$ matrix entries.
+3. Apply user constraints by deleting rows/columns from $L$. **(5 points)**
+4. Precompute the decomposition of the $L$ matrix. **(5 points)**
+ - If you unnecessarily recompute this decomposition, you will lose points for inefficiency.
+
+### Iterative Solving
+
+1. Determine the best-fit rotation transformations $R$ for the moved points $p'$ from original points $p$. **(20 points)**
+2. Optimize the positions $p'$ given $p$ and $R$ by solving a sparse linear system. You will need to update the right-hand side of the equation accordingly. **(25 points)**
+
+### README
+
+Your README **(5 points)** should describe:
+
+1. How to run your program, such as how to load a specific mesh; and
+2. _Briefly_, all the features your code implements, including any known bugs.
+ - E.g.: "I implemented ARAP ... and affine progressive meshes ... however, my program doesn't work in these specific cases: ..."
+
+You should also have all the [example videos](#example-videos) described in the next section embedded in your README.
+
+### Example Videos
+
+For this project, we ask that you demonstrate to us that your program achieves the following behavior specifications. You will do so by providing ≥1 video(s) per specification point below.
+
+| Program Specification | Our Example |
+| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------- |
+| Anchoring exactly one point, then moving that point, results in perfectly rigid motion (mostly translation, though some rotation for smaller meshes is acceptable). |  |
+| Anchoring exactly two points, then rotating one point around the other at a fixed distance, results in perfectly rigid rotation. |  |
+| Deformations are "permanent"; i.e. un-anchoring previously moved points leaves the mesh in its deformed state, and further deformations can be made on the deformed mesh. |  |
+| You should be able to make the armadillo wave. |  |
+| Attempting to deform `tetrahedron.obj` should not cause it to collapse or behave erratically. |  |
+| Attempting to deform a (large) mesh like `bunny.obj` or `peter.obj` should not cause your code to crash. |  |
+
+
+ How should I generate these example videos?
+
+We suggest screen-recording the [interactive viewer](#interactive-viewer) provided in [the stencil code](#resources).
+
+To embed these videos into your READMEs, you can convert these into animated GIFs (using `ffmpeg` or an online tool like [ezgif](https://ezgif.com)), then embed them in Markdown like so:
+
+``
+
+
+
+### Extra Features
+
+Each of the following features that you implement will earn you extra points. The features are ordered roughly by difficulty of implementation.
+
+- Parallelize your code **(5 points)**
+ - There are multiple opportunities to exploit parallelism. For instance, you could solve the linear systems for each coordinate (x, y, z) in parallel.
+- Improved interactivity **(8 points)**
+ - Implement some other way(s) to interact with the mesh beyond constraining/dragging single vertices.
+ - You could also look into allowing direct specification of rotations in addition to translations (see the "Rotation-Propagation" paragraph on page 6 of the paper).
+ - Please record a video of how you interact with the mesh.
+- Affine progressive meshes **(10 points)**
+ - The ARAP optimization can become slow for very high-resolution meshes. To get around this problem, one can try to solve the optimization on a lower-resolution mesh, and then interpolate the result back to the high-resolution mesh.
+ - See Section 3.2 of [this paper](https://www.dgp.toronto.edu/~hsuehtil/pdf/cubeStyle_high.pdf) for one way to do this. You will need to re-use your mesh simplification code from the Mesh assignment.
+ - You may find some example high-resolution meshes [here](https://graphics.stanford.edu/data/3Dscanrep/).
+ - Please record a video interacting with the high-resolution meshes.
+- Modified optimization objective **(15 points)**
+ - One can modify the basic ARAP optimization objective function to achieve other types of deformation.
+ - For example, [this paper](https://www.dgp.toronto.edu/~hsuehtil/pdf/cubeStyle_high.pdf) describes how adding an L1 regularizer to the objective produces 'cubified' meshes.
+ - Be aware that changing the objective may well change the method(s) you need to use to solve the resulting optimization problem.
+ - Please show at least 2 pairs of images comparing your modified ARAP results and the original results.
+- Something else!
+ - This list is not meant to be exhaustive--if you’ve got another advanced feature in mind, go for it! (though you may want to ask a TA or the instructor first if you’re concerned about whether the idea is feasible)
+
+**Any extra features you implement must be mentioned in your README, and each feature must be demonstrated in one or more videos.**
+
+## Grading
+
+We will initially grade your project based solely on your README, example videos, and code.
+
+We will then follow up with a short in-person grading session to resolve any outstanding issues.
+
+You can help us make grading go smoother by providing excellent [example videos](#example-videos), to prove to us that your program meets our specifications~!
+
+## Resources
+
+The stencil code is quite bare-bones: besides the main function, it provides code to load `.obj` files into a simple mesh representation (a list of vertices and a list of faces) and save that representation back to an `.obj` file. It also provides an interactive viewer for visualizing (and manipulating the vertices of) meshes.
+
+You’ll have to implement everything else: building the sparse linear system, any supporting data structures you need, etc.
+
+To test your program, you may use the `.obj` files in `/meshes`. You may also use any other 3D models you like.
+
+
+ Note about meshes with boundaries
+
+You do not need to support meshes with boundaries for any part of this assignment. That is to say, you can always assume that every edge has two adjacent faces, so you won't have to worry about special-casing for edges on the boundary.
+
+All the meshes provided in the stencil satisfy this property. If you choose to use any other meshes, it will be on you to make sure that this property is satisfied (else, your code might break).
+
+
+
+### Where To Start
+
+You'll want to look at `src/arap.cpp` to get started, as that's the only file you'll (definitely) need to change. You might also want to look at `src/glwidget.cpp`, if you're interested in adding new interactivity/controls to the program.
+
+### Interactive Viewer
+
+Speaking of controls, here's how you can interface with the interactive viewer:
+
+- You start in first-person camera mode:
+ - `WASD` to move, `left-click` and drag to rotate
+ - `R` and `F` to move vertically up and down
+- `C` to change to orbit camera mode
+- `Right-click` (and, optionally, drag) to anchor/un-anchor points.
+ - `Left-click` an anchored point to move it around
+- Minus (`-`) and equal (`=`) keys (click repeatedly) to change the size of the vertices
+
+### Solving Sparse Linear Systems In Eigen
+
+You'll want to look at [this page](https://eigen.tuxfamily.org/dox/group__TopicSparseSystems.html) in the Eigen documentation. We recommend using either the `SimplicialLLT` or `SimplicialLDLT` solvers, as they are specialized to be faster for symmetric positive definite (SPD) matrices (which your $L$ matrix is).
+
+## Submission Instructions
+
+Submit your Github repository to the "ARAP" assignment.
+
+## Implementation & Debugging Tips
+
+- Use `const` and `assert` wherever possible.
+- Check for uninitialized values.
+- Use Qt Creator's debugger.
+- The cotangent function can be negative, be sure to use the **positive** cotangent weights (the absolute value of the cotangent).
+- Verify that your $L$ matrix is **positive semi-definite** (has eigenvalues and a determinant greater than or equal to zero)
+- We provided helper functions in `graphics/shape.h`, all the public member function should be enough for you to complete the minimum requirement without having to modify our helper classes.
+- **REMINDER: Your code will run much faster if you compile in Release mode ;)**
diff --git a/glew/LICENSE.txt b/glew/LICENSE.txt
new file mode 100644
index 0000000..f707804
--- /dev/null
+++ b/glew/LICENSE.txt
@@ -0,0 +1,73 @@
+The OpenGL Extension Wrangler Library
+Copyright (C) 2002-2007, Milan Ikits
+Copyright (C) 2002-2007, Marcelo E. Magallon
+Copyright (C) 2002, Lev Povalahev
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+* The name of the author may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+
+Mesa 3-D graphics library
+Version: 7.0
+
+Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+Copyright (c) 2007 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
diff --git a/glew/README.md b/glew/README.md
new file mode 100644
index 0000000..94cbcc3
--- /dev/null
+++ b/glew/README.md
@@ -0,0 +1,3 @@
+# Glew Library for CS 1230
+
+Last updated on 8/30/22
\ No newline at end of file
diff --git a/glew/auto/EGL-Registry/.dummy b/glew/auto/EGL-Registry/.dummy
new file mode 100644
index 0000000..e69de29
diff --git a/glew/auto/EGL-Registry/.htaccess b/glew/auto/EGL-Registry/.htaccess
new file mode 100644
index 0000000..3872b67
--- /dev/null
+++ b/glew/auto/EGL-Registry/.htaccess
@@ -0,0 +1,12 @@
+RewriteEngine on
+
+# Avoid redirect loops
+RewriteCond %{ENV:REDIRECT_STATUS} 200
+RewriteRule ^ - [L]
+
+# Old versioned-by-date EGL specs redirected to the single per-version copy
+RewriteRule ^specs/eglspec.1.1.02.pdf https://www.khronos.org/registry/EGL/specs/eglspec.1.1.pdf [L,R=301]
+RewriteRule ^specs/eglspec.1.4.([0-9]+).pdf https://www.khronos.org/registry/EGL/specs/eglspec.1.4.pdf [L,R=301]
+RewriteRule ^specs/eglspec.1.4.withchanges.([0-9]+).pdf https://www.khronos.org/registry/EGL/specs/eglspec.1.4.withchanges.pdf [L,R=301]
+
+# RewriteRule ^xhtml/(.*)\.xml https://www.khronos.org/opengles/sdk/docs/man3/html/$1.xhtml [L,R=301]
diff --git a/glew/auto/EGL-Registry/CODE_OF_CONDUCT.md b/glew/auto/EGL-Registry/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..a11610b
--- /dev/null
+++ b/glew/auto/EGL-Registry/CODE_OF_CONDUCT.md
@@ -0,0 +1 @@
+A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil.
diff --git a/glew/auto/EGL-Registry/README.md b/glew/auto/EGL-Registry/README.md
new file mode 100644
index 0000000..1d01f54
--- /dev/null
+++ b/glew/auto/EGL-Registry/README.md
@@ -0,0 +1,100 @@
+# EGL-Registry
+
+The EGL-Registry repository contains the EGL API and Extension Registry,
+including specifications, reference pages and reference cards, and the
+enumerant registry. It is also used as a backing store for the web view of
+the registry at https://www.khronos.org/registry/egl/ ; commits to the
+master branch of this repository will be reflected there.
+
+In the past, the EGL registry was maintained in a public Subversion
+repository. The history in that repository has not been imported to github,
+but it is still available at
+https://cvs.khronos.org/svn/repos/registry/trunk/public/egl/ .
+
+Interesting files in this repository include:
+
+* index.php - toplevel index page for the web view. This relies on PHP
+ include files found elsewhere on www.khronos.org and so is not very useful
+ in isolation.
+* registry.tcl - extension number registry. Documents the names and index
+ numbers assigned to EGL extension specifications.
+* api/egl.xml - extension enumerant and API registry. Defines the EGL API,
+ including extensions, and is used to generate headers. Documents the EGL
+ enumerant ranges assigned to different vendors.
+* api/EGL/ and api/KHR/ - header files used by an EGL implementation.
+ EGL/eglext.h and EGL/egl.h are generated from egl.xml. The other headers
+ are handcoded and express OS and window system (platform) dependencies.
+* extensions/ - EGL extension specifications, grouped into vendor-specific
+ subdirectories.
+* sdk/ - EGL reference pages and reference cards. There are separate sets
+ for each API version.
+* specs/ - EGL specification documents.
+
+## Reserving EGL Enumerant Ranges
+
+EGL enumerants are documented in api/egl.xml . New ranges can be allocated
+by proposing a pull request to master modifying this file, following the
+existing examples. Allocate ranges starting at the lowest free values
+available (search for "Reservable for future use"). Ranges are not
+officially allocated until your pull request is *accepted* into master. At
+that point you can use values from your assigned range for API extensions.
+
+
+## Adding Extension Specifications
+
+Extension specification documents can be added by proposing a pull request
+to master, adding the specification .txt file and related changes under
+extensions/\/filename.txt. Your pull request must also:
+
+* Allocate an extension number in registry.tcl (follow the existing
+ `````` examples, search for "Next free extension number", and use
+ the lowest available extension number).
+* Include that extension number in the extension specification document.
+* Define the interfaces introduced by this extension in api/egl.xml,
+ following the examples of existing extensions. If you have difficulty
+ doing this, consult the registry schema documentation in the GL registry
+ at www.khronos.org/registry/gl/; you may also create Issues in the
+ EGL-Registry repository to request help.
+* Verify that the EGL headers regenerate properly after applying your XML
+ changes. In the api/ directory, you must be able to do the following without
+ errors:
+```
+ # Validate XML changes
+ make validate
+ # Verify headers build and are legal C
+ make clobber
+ make
+ make tests
+```
+* Finally, add a link from the extensions section of index.php to the
+ extension document, using the specified extension number, so it shows up
+ in the web view (this could in principle be generated automatically from
+ registry.tcl / egl.xml, but isn't at present).
+
+Sometimes extension text files contain inappropriate UTF-8 characters. They
+should be restricted to the ASCII subset of UTF-8 at present. They can be
+removed using the iconv Linux command-line tool via
+
+ iconv -c -f utf-8 -t ascii filename.txt
+
+(see internal Bugzilla issue 16141 for more).
+
+We may transition to an asciidoc-based extension specification format at
+some point.
+
+
+## Build Tools
+
+This section is not complete (see https://github.com/KhronosGroup/EGL-Registry/issues/92).
+
+To validate the XML and build the headers you will need at least GNU make,
+'jing' for the 'make validate' step (https://relaxng.org/jclark/jing.html),
+and Python 3.5 and the lxml.etree Python library
+(https://pypi.org/project/lxml/) for the 'make' step. The 'make tests' step
+requires whatever the C and C++ compilers configured for GNU make are,
+usually gcc and g++.
+
+All of these components are available prepackaged for major Linux
+distributions and for the Windows 10 Debian WSL.
+
+
diff --git a/glew/auto/EGL-Registry/api/1.0/EGL/egl.h b/glew/auto/EGL-Registry/api/1.0/EGL/egl.h
new file mode 100644
index 0000000..7b36e8a
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/1.0/EGL/egl.h
@@ -0,0 +1,286 @@
+/* Copyright 2006-2020 The Khronos Group Inc.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+/* Sketchy version of egl.h (really only for reserving
+ * enumerant values to EGL tokens and sanity checking
+ * prototypes).
+ *
+ * Last modified 2006/08/13
+ */
+
+#ifndef __egl_h_
+#define __egl_h_
+
+/* Windows calling convention boilerplate */
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
+#define WIN32_LEAN_AND_MEAN 1
+#include
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef EGLAPI
+#define EGLAPI extern
+#endif
+
+
+/* EGL Types */
+#include
+
+typedef int32_t EGLint;
+typedef unsigned int EGLBoolean;
+typedef unsigned int EGLenum;
+typedef void *EGLConfig;
+typedef void *EGLContext;
+typedef void *EGLDisplay;
+typedef void *EGLSurface;
+typedef void *EGLClientBuffer;
+/* NativeDisplayType, NativeWindowType, NativePixmapType TBD */
+
+/* EGL Versioning */
+#define EGL_VERSION_1_0 1
+#define EGL_VERSION_1_1 1
+#define EGL_VERSION_1_2 1
+#define EGL_VERSION_1_3 1
+
+/* EGL Enumerants. Exceptional cases aside, most
+ * enums are assigned unique values starting at 0x3000.
+ */
+
+/* EGL aliases */
+#define EGL_FALSE 0
+#define EGL_TRUE 1
+
+/* Out-of-band handle values */
+/* These values may vary depending on semantics of native concepts */
+#define EGL_DEFAULT_DISPLAY ((void *)0)
+#define EGL_NO_CONTEXT ((EGLContext)0)
+#define EGL_NO_DISPLAY ((EGLDisplay)0)
+#define EGL_NO_SURFACE ((EGLSurface)0)
+
+/* Out-of-band attribute value */
+#define EGL_DONT_CARE ((EGLint)-1)
+
+/* Errors / GetError return values */
+#define EGL_SUCCESS 0x3000
+#define EGL_NOT_INITIALIZED 0x3001
+#define EGL_BAD_ACCESS 0x3002
+#define EGL_BAD_ALLOC 0x3003
+#define EGL_BAD_ATTRIBUTE 0x3004
+#define EGL_BAD_CONFIG 0x3005
+#define EGL_BAD_CONTEXT 0x3006
+#define EGL_BAD_CURRENT_SURFACE 0x3007
+#define EGL_BAD_DISPLAY 0x3008
+#define EGL_BAD_MATCH 0x3009
+#define EGL_BAD_NATIVE_PIXMAP 0x300A
+#define EGL_BAD_NATIVE_WINDOW 0x300B
+#define EGL_BAD_PARAMETER 0x300C
+#define EGL_BAD_SURFACE 0x300D
+#define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */
+
+/* Reserved 0x300F-0x301F for additional errors */
+
+/* Config attributes */
+#define EGL_BUFFER_SIZE 0x3020
+#define EGL_ALPHA_SIZE 0x3021
+#define EGL_BLUE_SIZE 0x3022
+#define EGL_GREEN_SIZE 0x3023
+#define EGL_RED_SIZE 0x3024
+#define EGL_DEPTH_SIZE 0x3025
+#define EGL_STENCIL_SIZE 0x3026
+#define EGL_CONFIG_CAVEAT 0x3027
+#define EGL_CONFIG_ID 0x3028
+#define EGL_LEVEL 0x3029
+#define EGL_MAX_PBUFFER_HEIGHT 0x302A
+#define EGL_MAX_PBUFFER_PIXELS 0x302B
+#define EGL_MAX_PBUFFER_WIDTH 0x302C
+#define EGL_NATIVE_RENDERABLE 0x302D
+#define EGL_NATIVE_VISUAL_ID 0x302E
+#define EGL_NATIVE_VISUAL_TYPE 0x302F
+#define EGL_PRESERVED_RESOURCES 0x3030
+#define EGL_SAMPLES 0x3031
+#define EGL_SAMPLE_BUFFERS 0x3032
+#define EGL_SURFACE_TYPE 0x3033
+#define EGL_TRANSPARENT_TYPE 0x3034
+#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
+#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
+#define EGL_TRANSPARENT_RED_VALUE 0x3037
+#define EGL_NONE 0x3038 /* Attrib list terminator */
+#define EGL_BIND_TO_TEXTURE_RGB 0x3039
+#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
+#define EGL_MIN_SWAP_INTERVAL 0x303B
+#define EGL_MAX_SWAP_INTERVAL 0x303C
+#define EGL_LUMINANCE_SIZE 0x303D
+#define EGL_ALPHA_MASK_SIZE 0x303E
+#define EGL_COLOR_BUFFER_TYPE 0x303F
+#define EGL_RENDERABLE_TYPE 0x3040
+#define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */
+
+/* Reserved 0x3041-0x304F for additional config attributes */
+
+/* Config attribute values */
+#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */
+#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */
+#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */
+#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */
+#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */
+
+/* More config attribute values, for EGL_TEXTURE_FORMAT */
+#define EGL_NO_TEXTURE 0x305C
+#define EGL_TEXTURE_RGB 0x305D
+#define EGL_TEXTURE_RGBA 0x305E
+#define EGL_TEXTURE_2D 0x305F
+
+/* Config attribute mask bits */
+#define EGL_PBUFFER_BIT 0x01 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_PIXMAP_BIT 0x02 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_WINDOW_BIT 0x04 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_OPENGL_ES_BIT 0x01 /* EGL_RENDERABLE_TYPE mask bits */
+#define EGL_OPENVG_BIT 0x02 /* EGL_RENDERABLE_TYPE mask bits */
+#define EGL_OPENGL_ES2_BIT 0x04 /* EGL_RENDERABLE_TYPE mask bits */
+
+/* QueryString targets */
+#define EGL_VENDOR 0x3053
+#define EGL_VERSION 0x3054
+#define EGL_EXTENSIONS 0x3055
+#define EGL_CLIENT_APIS 0x308D
+
+/* QuerySurface / CreatePbufferSurface targets */
+#define EGL_HEIGHT 0x3056
+#define EGL_WIDTH 0x3057
+#define EGL_LARGEST_PBUFFER 0x3058
+#define EGL_TEXTURE_FORMAT 0x3080
+#define EGL_TEXTURE_TARGET 0x3081
+#define EGL_MIPMAP_TEXTURE 0x3082
+#define EGL_MIPMAP_LEVEL 0x3083
+#define EGL_RENDER_BUFFER 0x3086
+#define EGL_COLORSPACE 0x3087
+#define EGL_ALPHA_FORMAT 0x3088
+#define EGL_HORIZONTAL_RESOLUTION 0x3090
+#define EGL_VERTICAL_RESOLUTION 0x3091
+#define EGL_PIXEL_ASPECT_RATIO 0x3092
+#define EGL_SWAP_BEHAVIOR 0x3093
+
+/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
+#define EGL_BACK_BUFFER 0x3084
+#define EGL_SINGLE_BUFFER 0x3085
+
+/* OpenVG color spaces */
+#define EGL_COLORSPACE_sRGB 0x3089 /* EGL_COLORSPACE value */
+#define EGL_COLORSPACE_LINEAR 0x308A /* EGL_COLORSPACE value */
+
+/* OpenVG alpha formats */
+#define EGL_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */
+#define EGL_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */
+
+/* Constant scale factor by which fractional display resolutions &
+ * aspect ratio are scaled when queried as integer values.
+ */
+#define EGL_DISPLAY_SCALING 10000
+
+/* Unknown display resolution/aspect ratio */
+#define EGL_UNKNOWN ((EGLint)-1)
+
+/* Back buffer swap behaviors */
+#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */
+#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */
+
+/* CreatePbufferFromClientBuffer buffer types */
+#define EGL_OPENVG_IMAGE 0x3096
+
+/* QueryContext targets */
+#define EGL_CONTEXT_CLIENT_TYPE 0x3097
+
+/* CreateContext attributes */
+#define EGL_CONTEXT_CLIENT_VERSION 0x3098
+
+/* BindAPI/QueryAPI targets */
+#define EGL_OPENGL_ES_API 0x30A0
+#define EGL_OPENVG_API 0x30A1
+
+/* GetCurrentSurface targets */
+#define EGL_DRAW 0x3059
+#define EGL_READ 0x305A
+
+/* WaitNative engines */
+#define EGL_CORE_NATIVE_ENGINE 0x305B
+
+/* EGL extensions must request enum blocks from the OpenGL ARB
+ * Secretary, who maintains the EGL enumerant registry.
+ */
+
+
+
+/* EGL Functions */
+
+EGLAPI EGLint APIENTRY eglGetError();
+
+EGLAPI EGLDisplay APIENTRY eglGetDisplay(const char *display_id);
+EGLAPI EGLBoolean APIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
+EGLAPI EGLBoolean APIENTRY eglTerminate(EGLDisplay dpy);
+
+EGLAPI const char * APIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
+
+EGLAPI EGLBoolean APIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
+ EGLint config_size, EGLint *num_config);
+EGLAPI EGLBoolean APIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
+ EGLConfig *configs, EGLint config_size,
+ EGLint *num_config);
+EGLAPI EGLBoolean APIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
+ EGLint attribute, EGLint *value);
+
+EGLAPI EGLSurface APIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
+ NativeWindowType win,
+ const EGLint *attrib_list);
+EGLAPI EGLSurface APIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
+ const EGLint *attrib_list);
+EGLAPI EGLSurface APIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
+ NativePixmapType pixmap,
+ const EGLint *attrib_list);
+EGLAPI EGLBoolean APIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
+EGLAPI EGLBoolean APIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
+ EGLint attribute, EGLint *value);
+
+EGLAPI EGLBoolean APIENTRY eglBindAPI(EGLenum api);
+EGLAPI EGLenum APIENTRY eglQueryAPI(void);
+
+EGLAPI EGLBoolean APIENTRY eglWaitClient(void);
+
+EGLAPI EGLBoolean APIENTRY eglReleaseThread(void);
+
+EGLAPI EGLSurface APIENTRY eglCreatePbufferFromClientBuffer(
+ EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
+ EGLConfig config, const EGLint *attrib_list);
+
+EGLAPI EGLBoolean APIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
+ EGLint attribute, EGLint value);
+EGLAPI EGLBoolean APIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+EGLAPI EGLBoolean APIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+
+
+EGLAPI EGLBoolean APIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
+
+
+EGLAPI EGLContext APIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
+ EGLContext share_context,
+ const EGLint *attrib_list);
+EGLAPI EGLBoolean APIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
+EGLAPI EGLBoolean APIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
+ EGLSurface read, EGLContext ctx);
+
+EGLAPI EGLContext APIENTRY eglGetCurrentContext(void);
+EGLAPI EGLSurface APIENTRY eglGetCurrentSurface(EGLint readdraw);
+EGLAPI EGLDisplay APIENTRY eglGetCurrentDisplay(void);
+EGLAPI EGLBoolean APIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
+ EGLint attribute, EGLint *value);
+
+EGLAPI EGLBoolean APIENTRY eglWaitGL(void);
+EGLAPI EGLBoolean APIENTRY eglWaitNative(EGLint engine);
+EGLAPI EGLBoolean APIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
+EGLAPI EGLBoolean APIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
+ NativePixmapType target);
+
+EGLAPI void (* APIENTRY eglGetProcAddress(const char *procname))();
+
+#endif /* __egl_h_ */
diff --git a/glew/auto/EGL-Registry/api/1.0/egl.h b/glew/auto/EGL-Registry/api/1.0/egl.h
new file mode 100644
index 0000000..f433385
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/1.0/egl.h
@@ -0,0 +1,283 @@
+/* Sketchy version of egl.h (really only for reserving
+ * enumerant values to EGL tokens and sanity checking
+ * prototypes).
+ *
+ * Last modified 2006/08/13
+ */
+
+#ifndef __egl_h_
+#define __egl_h_
+
+/* Windows calling convention boilerplate */
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
+#define WIN32_LEAN_AND_MEAN 1
+#include
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef EGLAPI
+#define EGLAPI extern
+#endif
+
+
+/* EGL Types */
+#include
+
+typedef int32_t EGLint;
+typedef unsigned int EGLBoolean;
+typedef unsigned int EGLenum;
+typedef void *EGLConfig;
+typedef void *EGLContext;
+typedef void *EGLDisplay;
+typedef void *EGLSurface;
+typedef void *EGLClientBuffer;
+/* NativeDisplayType, NativeWindowType, NativePixmapType TBD */
+
+/* EGL Versioning */
+#define EGL_VERSION_1_0 1
+#define EGL_VERSION_1_1 1
+#define EGL_VERSION_1_2 1
+#define EGL_VERSION_1_3 1
+
+/* EGL Enumerants. Exceptional cases aside, most
+ * enums are assigned unique values starting at 0x3000.
+ */
+
+/* EGL aliases */
+#define EGL_FALSE 0
+#define EGL_TRUE 1
+
+/* Out-of-band handle values */
+/* These values may vary depending on semantics of native concepts */
+#define EGL_DEFAULT_DISPLAY ((void *)0)
+#define EGL_NO_CONTEXT ((EGLContext)0)
+#define EGL_NO_DISPLAY ((EGLDisplay)0)
+#define EGL_NO_SURFACE ((EGLSurface)0)
+
+/* Out-of-band attribute value */
+#define EGL_DONT_CARE ((EGLint)-1)
+
+/* Errors / GetError return values */
+#define EGL_SUCCESS 0x3000
+#define EGL_NOT_INITIALIZED 0x3001
+#define EGL_BAD_ACCESS 0x3002
+#define EGL_BAD_ALLOC 0x3003
+#define EGL_BAD_ATTRIBUTE 0x3004
+#define EGL_BAD_CONFIG 0x3005
+#define EGL_BAD_CONTEXT 0x3006
+#define EGL_BAD_CURRENT_SURFACE 0x3007
+#define EGL_BAD_DISPLAY 0x3008
+#define EGL_BAD_MATCH 0x3009
+#define EGL_BAD_NATIVE_PIXMAP 0x300A
+#define EGL_BAD_NATIVE_WINDOW 0x300B
+#define EGL_BAD_PARAMETER 0x300C
+#define EGL_BAD_SURFACE 0x300D
+#define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */
+
+/* Reserved 0x300F-0x301F for additional errors */
+
+/* Config attributes */
+#define EGL_BUFFER_SIZE 0x3020
+#define EGL_ALPHA_SIZE 0x3021
+#define EGL_BLUE_SIZE 0x3022
+#define EGL_GREEN_SIZE 0x3023
+#define EGL_RED_SIZE 0x3024
+#define EGL_DEPTH_SIZE 0x3025
+#define EGL_STENCIL_SIZE 0x3026
+#define EGL_CONFIG_CAVEAT 0x3027
+#define EGL_CONFIG_ID 0x3028
+#define EGL_LEVEL 0x3029
+#define EGL_MAX_PBUFFER_HEIGHT 0x302A
+#define EGL_MAX_PBUFFER_PIXELS 0x302B
+#define EGL_MAX_PBUFFER_WIDTH 0x302C
+#define EGL_NATIVE_RENDERABLE 0x302D
+#define EGL_NATIVE_VISUAL_ID 0x302E
+#define EGL_NATIVE_VISUAL_TYPE 0x302F
+#define EGL_PRESERVED_RESOURCES 0x3030
+#define EGL_SAMPLES 0x3031
+#define EGL_SAMPLE_BUFFERS 0x3032
+#define EGL_SURFACE_TYPE 0x3033
+#define EGL_TRANSPARENT_TYPE 0x3034
+#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
+#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
+#define EGL_TRANSPARENT_RED_VALUE 0x3037
+#define EGL_NONE 0x3038 /* Attrib list terminator */
+#define EGL_BIND_TO_TEXTURE_RGB 0x3039
+#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
+#define EGL_MIN_SWAP_INTERVAL 0x303B
+#define EGL_MAX_SWAP_INTERVAL 0x303C
+#define EGL_LUMINANCE_SIZE 0x303D
+#define EGL_ALPHA_MASK_SIZE 0x303E
+#define EGL_COLOR_BUFFER_TYPE 0x303F
+#define EGL_RENDERABLE_TYPE 0x3040
+#define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */
+
+/* Reserved 0x3041-0x304F for additional config attributes */
+
+/* Config attribute values */
+#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */
+#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */
+#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */
+#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */
+#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */
+
+/* More config attribute values, for EGL_TEXTURE_FORMAT */
+#define EGL_NO_TEXTURE 0x305C
+#define EGL_TEXTURE_RGB 0x305D
+#define EGL_TEXTURE_RGBA 0x305E
+#define EGL_TEXTURE_2D 0x305F
+
+/* Config attribute mask bits */
+#define EGL_PBUFFER_BIT 0x01 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_PIXMAP_BIT 0x02 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_WINDOW_BIT 0x04 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_OPENGL_ES_BIT 0x01 /* EGL_RENDERABLE_TYPE mask bits */
+#define EGL_OPENVG_BIT 0x02 /* EGL_RENDERABLE_TYPE mask bits */
+#define EGL_OPENGL_ES2_BIT 0x04 /* EGL_RENDERABLE_TYPE mask bits */
+
+/* QueryString targets */
+#define EGL_VENDOR 0x3053
+#define EGL_VERSION 0x3054
+#define EGL_EXTENSIONS 0x3055
+#define EGL_CLIENT_APIS 0x308D
+
+/* QuerySurface / CreatePbufferSurface targets */
+#define EGL_HEIGHT 0x3056
+#define EGL_WIDTH 0x3057
+#define EGL_LARGEST_PBUFFER 0x3058
+#define EGL_TEXTURE_FORMAT 0x3080
+#define EGL_TEXTURE_TARGET 0x3081
+#define EGL_MIPMAP_TEXTURE 0x3082
+#define EGL_MIPMAP_LEVEL 0x3083
+#define EGL_RENDER_BUFFER 0x3086
+#define EGL_COLORSPACE 0x3087
+#define EGL_ALPHA_FORMAT 0x3088
+#define EGL_HORIZONTAL_RESOLUTION 0x3090
+#define EGL_VERTICAL_RESOLUTION 0x3091
+#define EGL_PIXEL_ASPECT_RATIO 0x3092
+#define EGL_SWAP_BEHAVIOR 0x3093
+
+/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
+#define EGL_BACK_BUFFER 0x3084
+#define EGL_SINGLE_BUFFER 0x3085
+
+/* OpenVG color spaces */
+#define EGL_COLORSPACE_sRGB 0x3089 /* EGL_COLORSPACE value */
+#define EGL_COLORSPACE_LINEAR 0x308A /* EGL_COLORSPACE value */
+
+/* OpenVG alpha formats */
+#define EGL_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */
+#define EGL_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */
+
+/* Constant scale factor by which fractional display resolutions &
+ * aspect ratio are scaled when queried as integer values.
+ */
+#define EGL_DISPLAY_SCALING 10000
+
+/* Unknown display resolution/aspect ratio */
+#define EGL_UNKNOWN ((EGLint)-1)
+
+/* Back buffer swap behaviors */
+#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */
+#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */
+
+/* CreatePbufferFromClientBuffer buffer types */
+#define EGL_OPENVG_IMAGE 0x3096
+
+/* QueryContext targets */
+#define EGL_CONTEXT_CLIENT_TYPE 0x3097
+
+/* CreateContext attributes */
+#define EGL_CONTEXT_CLIENT_VERSION 0x3098
+
+/* BindAPI/QueryAPI targets */
+#define EGL_OPENGL_ES_API 0x30A0
+#define EGL_OPENVG_API 0x30A1
+
+/* GetCurrentSurface targets */
+#define EGL_DRAW 0x3059
+#define EGL_READ 0x305A
+
+/* WaitNative engines */
+#define EGL_CORE_NATIVE_ENGINE 0x305B
+
+/* EGL extensions must request enum blocks from the OpenGL ARB
+ * Secretary, who maintains the EGL enumerant registry.
+ */
+
+
+
+/* EGL Functions */
+
+EGLAPI EGLint APIENTRY eglGetError();
+
+EGLAPI EGLDisplay APIENTRY eglGetDisplay(const char *display_id);
+EGLAPI EGLBoolean APIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
+EGLAPI EGLBoolean APIENTRY eglTerminate(EGLDisplay dpy);
+
+EGLAPI const char * APIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
+
+EGLAPI EGLBoolean APIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
+ EGLint config_size, EGLint *num_config);
+EGLAPI EGLBoolean APIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
+ EGLConfig *configs, EGLint config_size,
+ EGLint *num_config);
+EGLAPI EGLBoolean APIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
+ EGLint attribute, EGLint *value);
+
+EGLAPI EGLSurface APIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
+ NativeWindowType win,
+ const EGLint *attrib_list);
+EGLAPI EGLSurface APIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
+ const EGLint *attrib_list);
+EGLAPI EGLSurface APIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
+ NativePixmapType pixmap,
+ const EGLint *attrib_list);
+EGLAPI EGLBoolean APIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
+EGLAPI EGLBoolean APIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
+ EGLint attribute, EGLint *value);
+
+EGLAPI EGLBoolean APIENTRY eglBindAPI(EGLenum api);
+EGLAPI EGLenum APIENTRY eglQueryAPI(void);
+
+EGLAPI EGLBoolean APIENTRY eglWaitClient(void);
+
+EGLAPI EGLBoolean APIENTRY eglReleaseThread(void);
+
+EGLAPI EGLSurface APIENTRY eglCreatePbufferFromClientBuffer(
+ EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
+ EGLConfig config, const EGLint *attrib_list);
+
+EGLAPI EGLBoolean APIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
+ EGLint attribute, EGLint value);
+EGLAPI EGLBoolean APIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+EGLAPI EGLBoolean APIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+
+
+EGLAPI EGLBoolean APIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
+
+
+EGLAPI EGLContext APIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
+ EGLContext share_context,
+ const EGLint *attrib_list);
+EGLAPI EGLBoolean APIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
+EGLAPI EGLBoolean APIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
+ EGLSurface read, EGLContext ctx);
+
+EGLAPI EGLContext APIENTRY eglGetCurrentContext(void);
+EGLAPI EGLSurface APIENTRY eglGetCurrentSurface(EGLint readdraw);
+EGLAPI EGLDisplay APIENTRY eglGetCurrentDisplay(void);
+EGLAPI EGLBoolean APIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
+ EGLint attribute, EGLint *value);
+
+EGLAPI EGLBoolean APIENTRY eglWaitGL(void);
+EGLAPI EGLBoolean APIENTRY eglWaitNative(EGLint engine);
+EGLAPI EGLBoolean APIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
+EGLAPI EGLBoolean APIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
+ NativePixmapType target);
+
+EGLAPI void (* APIENTRY eglGetProcAddress(const char *procname))();
+
+#endif /* __egl_h_ */
diff --git a/glew/auto/EGL-Registry/api/1.1/EGL/egl.h b/glew/auto/EGL-Registry/api/1.1/EGL/egl.h
new file mode 100644
index 0000000..99f2880
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/1.1/EGL/egl.h
@@ -0,0 +1,226 @@
+/* Copyright 2006-2020 The Khronos Group Inc.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#ifndef __egl_h_
+#define __egl_h_
+
+#include
+#include
+
+/*
+** egltypes.h is platform dependent. It defines:
+**
+** - EGL types and resources
+** - Native types
+** - EGL and native handle values
+**
+** EGL types and resources are to be typedef'ed with appropriate platform
+** dependent resource handle types. EGLint must be an integer of at least
+** 32-bit.
+**
+** NativeDisplayType, NativeWindowType and NativePixmapType are to be
+** replaced with corresponding types of the native window system in egl.h.
+**
+** EGL and native handle values must match their types.
+**
+** Example egltypes.h:
+*/
+
+#if 0
+
+#include
+#include
+
+/*
+** Types and resources
+*/
+typedef int EGLBoolean;
+typedef int32_t EGLint;
+typedef void *EGLDisplay;
+typedef void *EGLConfig;
+typedef void *EGLSurface;
+typedef void *EGLContext;
+
+/*
+** EGL and native handle values
+*/
+#define EGL_DEFAULT_DISPLAY ((NativeDisplayType)0)
+#define EGL_NO_CONTEXT ((EGLContext)0)
+#define EGL_NO_DISPLAY ((EGLDisplay)0)
+#define EGL_NO_SURFACE ((EGLSurface)0)
+
+#endif
+
+/*
+** Versioning and extensions
+*/
+#define EGL_VERSION_1_0 1
+#define EGL_VERSION_1_1 1
+
+/*
+** Boolean
+*/
+#define EGL_FALSE 0
+#define EGL_TRUE 1
+
+/*
+** Errors
+*/
+#define EGL_SUCCESS 0x3000
+#define EGL_NOT_INITIALIZED 0x3001
+#define EGL_BAD_ACCESS 0x3002
+#define EGL_BAD_ALLOC 0x3003
+#define EGL_BAD_ATTRIBUTE 0x3004
+#define EGL_BAD_CONFIG 0x3005
+#define EGL_BAD_CONTEXT 0x3006
+#define EGL_BAD_CURRENT_SURFACE 0x3007
+#define EGL_BAD_DISPLAY 0x3008
+#define EGL_BAD_MATCH 0x3009
+#define EGL_BAD_NATIVE_PIXMAP 0x300A
+#define EGL_BAD_NATIVE_WINDOW 0x300B
+#define EGL_BAD_PARAMETER 0x300C
+#define EGL_BAD_SURFACE 0x300D
+#define EGL_CONTEXT_LOST 0x300E
+/* 0x300F - 0x301F reserved for additional errors. */
+
+/*
+** Config attributes
+*/
+#define EGL_BUFFER_SIZE 0x3020
+#define EGL_ALPHA_SIZE 0x3021
+#define EGL_BLUE_SIZE 0x3022
+#define EGL_GREEN_SIZE 0x3023
+#define EGL_RED_SIZE 0x3024
+#define EGL_DEPTH_SIZE 0x3025
+#define EGL_STENCIL_SIZE 0x3026
+#define EGL_CONFIG_CAVEAT 0x3027
+#define EGL_CONFIG_ID 0x3028
+#define EGL_LEVEL 0x3029
+#define EGL_MAX_PBUFFER_HEIGHT 0x302A
+#define EGL_MAX_PBUFFER_PIXELS 0x302B
+#define EGL_MAX_PBUFFER_WIDTH 0x302C
+#define EGL_NATIVE_RENDERABLE 0x302D
+#define EGL_NATIVE_VISUAL_ID 0x302E
+#define EGL_NATIVE_VISUAL_TYPE 0x302F
+/*#define EGL_PRESERVED_RESOURCES 0x3030*/
+#define EGL_SAMPLES 0x3031
+#define EGL_SAMPLE_BUFFERS 0x3032
+#define EGL_SURFACE_TYPE 0x3033
+#define EGL_TRANSPARENT_TYPE 0x3034
+#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
+#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
+#define EGL_TRANSPARENT_RED_VALUE 0x3037
+#define EGL_NONE 0x3038 /* Also a config value */
+#define EGL_BIND_TO_TEXTURE_RGB 0x3039
+#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
+#define EGL_MIN_SWAP_INTERVAL 0x303B
+#define EGL_MAX_SWAP_INTERVAL 0x303C
+
+/*
+** Config values
+*/
+#define EGL_DONT_CARE ((EGLint) -1)
+
+#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */
+#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* " */
+#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */
+#define EGL_NO_TEXTURE 0x305C /* EGL_TEXTURE_FORMAT/TARGET value */
+#define EGL_TEXTURE_RGB 0x305D /* EGL_TEXTURE_FORMAT value */
+#define EGL_TEXTURE_RGBA 0x305E /* " */
+#define EGL_TEXTURE_2D 0x305F /* EGL_TEXTURE_TARGET value */
+
+/*
+** Config attribute mask bits
+*/
+#define EGL_PBUFFER_BIT 0x01 /* EGL_SURFACE_TYPE mask bit */
+#define EGL_PIXMAP_BIT 0x02 /* " */
+#define EGL_WINDOW_BIT 0x04 /* " */
+
+/*
+** String names
+*/
+#define EGL_VENDOR 0x3053 /* eglQueryString target */
+#define EGL_VERSION 0x3054 /* " */
+#define EGL_EXTENSIONS 0x3055 /* " */
+
+/*
+** Surface attributes
+*/
+#define EGL_HEIGHT 0x3056
+#define EGL_WIDTH 0x3057
+#define EGL_LARGEST_PBUFFER 0x3058
+#define EGL_TEXTURE_FORMAT 0x3080 /* For pbuffers bound as textures */
+#define EGL_TEXTURE_TARGET 0x3081 /* " */
+#define EGL_MIPMAP_TEXTURE 0x3082 /* " */
+#define EGL_MIPMAP_LEVEL 0x3083 /* " */
+
+/*
+** BindTexImage / ReleaseTexImage buffer target
+*/
+#define EGL_BACK_BUFFER 0x3084
+
+/*
+** Current surfaces
+*/
+#define EGL_DRAW 0x3059
+#define EGL_READ 0x305A
+
+/*
+** Engines
+*/
+#define EGL_CORE_NATIVE_ENGINE 0x305B
+
+/* 0x305C-0x3FFFF reserved for future use */
+
+/*
+** Functions
+*/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+GLAPI EGLint APIENTRY eglGetError (void);
+
+GLAPI EGLDisplay APIENTRY eglGetDisplay (NativeDisplayType display);
+GLAPI EGLBoolean APIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor);
+GLAPI EGLBoolean APIENTRY eglTerminate (EGLDisplay dpy);
+GLAPI const char * APIENTRY eglQueryString (EGLDisplay dpy, EGLint name);
+GLAPI void (* APIENTRY eglGetProcAddress (const char *procname))();
+
+GLAPI EGLBoolean APIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
+GLAPI EGLBoolean APIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
+GLAPI EGLBoolean APIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
+
+GLAPI EGLSurface APIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, NativeWindowType window, const EGLint *attrib_list);
+GLAPI EGLSurface APIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, NativePixmapType pixmap, const EGLint *attrib_list);
+GLAPI EGLSurface APIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
+GLAPI EGLBoolean APIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface);
+GLAPI EGLBoolean APIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
+
+/* EGL 1.1 render-to-texture APIs */
+GLAPI EGLBoolean APIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
+GLAPI EGLBoolean APIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+GLAPI EGLBoolean APIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+
+/* EGL 1.1 swap control API */
+GLAPI EGLBoolean APIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
+
+GLAPI EGLContext APIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_list, const EGLint *attrib_list);
+GLAPI EGLBoolean APIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx);
+GLAPI EGLBoolean APIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
+GLAPI EGLContext APIENTRY eglGetCurrentContext (void);
+GLAPI EGLSurface APIENTRY eglGetCurrentSurface (EGLint readdraw);
+GLAPI EGLDisplay APIENTRY eglGetCurrentDisplay (void);
+GLAPI EGLBoolean APIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
+
+GLAPI EGLBoolean APIENTRY eglWaitGL (void);
+GLAPI EGLBoolean APIENTRY eglWaitNative (EGLint engine);
+GLAPI EGLBoolean APIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface draw);
+GLAPI EGLBoolean APIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, NativePixmapType target);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ___egl_h_ */
diff --git a/glew/auto/EGL-Registry/api/1.2/EGL/egl.h b/glew/auto/EGL-Registry/api/1.2/EGL/egl.h
new file mode 100644
index 0000000..d67fd1a
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/1.2/EGL/egl.h
@@ -0,0 +1,264 @@
+/* Copyright 2006-2020 The Khronos Group Inc.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/* Reference egl.h for EGL 1.2
+ * Last modified 2006/10/24
+ */
+
+#ifndef __egl_h_
+#define __egl_h_
+
+/* EGL Types */
+#include
+
+typedef int32_t EGLint;
+typedef unsigned int EGLBoolean;
+typedef void *EGLConfig;
+typedef void *EGLContext;
+typedef void *EGLDisplay;
+typedef void *EGLSurface;
+
+/* Define NativeDisplayType, NativeWindowType, NativePixmapType in egltypes.h */
+#include
+
+/* EGL Versioning */
+#define EGL_VERSION_1_0 1
+#define EGL_VERSION_1_1 1
+#define EGL_VERSION_1_2 1
+
+/* EGL Enumerants. Exceptional cases aside, most
+ * enums are assigned unique values starting at 0x3000.
+ */
+
+/* EGL aliases */
+#define EGL_FALSE 0
+#define EGL_TRUE 1
+
+/* Out-of-band handle values */
+/* These values may vary depending on semantics of native concepts */
+#define EGL_DEFAULT_DISPLAY ((void *)0)
+#define EGL_NO_CONTEXT ((EGLContext)0)
+#define EGL_NO_DISPLAY ((EGLDisplay)0)
+#define EGL_NO_SURFACE ((EGLSurface)0)
+
+/* Out-of-band attribute value */
+#define EGL_DONT_CARE ((EGLint)-1)
+
+/* Errors / GetError return values */
+#define EGL_SUCCESS 0x3000
+#define EGL_NOT_INITIALIZED 0x3001
+#define EGL_BAD_ACCESS 0x3002
+#define EGL_BAD_ALLOC 0x3003
+#define EGL_BAD_ATTRIBUTE 0x3004
+#define EGL_BAD_CONFIG 0x3005
+#define EGL_BAD_CONTEXT 0x3006
+#define EGL_BAD_CURRENT_SURFACE 0x3007
+#define EGL_BAD_DISPLAY 0x3008
+#define EGL_BAD_MATCH 0x3009
+#define EGL_BAD_NATIVE_PIXMAP 0x300A
+#define EGL_BAD_NATIVE_WINDOW 0x300B
+#define EGL_BAD_PARAMETER 0x300C
+#define EGL_BAD_SURFACE 0x300D
+#define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */
+
+/* Reserved 0x300F-0x301F for additional errors */
+
+/* Config attributes */
+#define EGL_BUFFER_SIZE 0x3020
+#define EGL_ALPHA_SIZE 0x3021
+#define EGL_BLUE_SIZE 0x3022
+#define EGL_GREEN_SIZE 0x3023
+#define EGL_RED_SIZE 0x3024
+#define EGL_DEPTH_SIZE 0x3025
+#define EGL_STENCIL_SIZE 0x3026
+#define EGL_CONFIG_CAVEAT 0x3027
+#define EGL_CONFIG_ID 0x3028
+#define EGL_LEVEL 0x3029
+#define EGL_MAX_PBUFFER_HEIGHT 0x302A
+#define EGL_MAX_PBUFFER_PIXELS 0x302B
+#define EGL_MAX_PBUFFER_WIDTH 0x302C
+#define EGL_NATIVE_RENDERABLE 0x302D
+#define EGL_NATIVE_VISUAL_ID 0x302E
+#define EGL_NATIVE_VISUAL_TYPE 0x302F
+#define EGL_PRESERVED_RESOURCES 0x3030
+#define EGL_SAMPLES 0x3031
+#define EGL_SAMPLE_BUFFERS 0x3032
+#define EGL_SURFACE_TYPE 0x3033
+#define EGL_TRANSPARENT_TYPE 0x3034
+#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
+#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
+#define EGL_TRANSPARENT_RED_VALUE 0x3037
+#define EGL_NONE 0x3038 /* Attrib list terminator */
+#define EGL_BIND_TO_TEXTURE_RGB 0x3039
+#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
+#define EGL_MIN_SWAP_INTERVAL 0x303B
+#define EGL_MAX_SWAP_INTERVAL 0x303C
+#define EGL_LUMINANCE_SIZE 0x303D
+#define EGL_ALPHA_MASK_SIZE 0x303E
+#define EGL_COLOR_BUFFER_TYPE 0x303F
+#define EGL_RENDERABLE_TYPE 0x3040
+
+/* Reserved 0x3041-0x304F for additional config attributes */
+
+/* Config attribute values */
+#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */
+#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */
+#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */
+#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */
+#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */
+
+/* More config attribute values, for EGL_TEXTURE_FORMAT */
+#define EGL_NO_TEXTURE 0x305C
+#define EGL_TEXTURE_RGB 0x305D
+#define EGL_TEXTURE_RGBA 0x305E
+#define EGL_TEXTURE_2D 0x305F
+
+/* Config attribute mask bits */
+#define EGL_PBUFFER_BIT 0x01 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_PIXMAP_BIT 0x02 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_WINDOW_BIT 0x04 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_OPENGL_ES_BIT 0x01 /* EGL_RENDERABLE_TYPE mask bits */
+#define EGL_OPENVG_BIT 0x02 /* EGL_RENDERABLE_TYPE mask bits */
+
+/* QueryString targets */
+#define EGL_VENDOR 0x3053
+#define EGL_VERSION 0x3054
+#define EGL_EXTENSIONS 0x3055
+#define EGL_CLIENT_APIS 0x308D
+
+/* QuerySurface / CreatePbufferSurface targets */
+#define EGL_HEIGHT 0x3056
+#define EGL_WIDTH 0x3057
+#define EGL_LARGEST_PBUFFER 0x3058
+#define EGL_TEXTURE_FORMAT 0x3080
+#define EGL_TEXTURE_TARGET 0x3081
+#define EGL_MIPMAP_TEXTURE 0x3082
+#define EGL_MIPMAP_LEVEL 0x3083
+#define EGL_RENDER_BUFFER 0x3086
+#define EGL_COLORSPACE 0x3087
+#define EGL_ALPHA_FORMAT 0x3088
+#define EGL_HORIZONTAL_RESOLUTION 0x3090
+#define EGL_VERTICAL_RESOLUTION 0x3091
+#define EGL_PIXEL_ASPECT_RATIO 0x3092
+#define EGL_SWAP_BEHAVIOR 0x3093
+
+/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
+#define EGL_BACK_BUFFER 0x3084
+#define EGL_SINGLE_BUFFER 0x3085
+
+/* OpenVG color spaces */
+#define EGL_COLORSPACE_sRGB 0x3089 /* EGL_COLORSPACE value */
+#define EGL_COLORSPACE_LINEAR 0x308A /* EGL_COLORSPACE value */
+
+/* OpenVG alpha formats */
+#define EGL_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */
+#define EGL_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */
+
+/* Constant scale factor by which fractional display resolutions &
+ * aspect ratio are scaled when queried as integer values.
+ */
+#define EGL_DISPLAY_SCALING 10000
+
+/* Unknown display resolution/aspect ratio */
+#define EGL_UNKNOWN ((EGLint)-1)
+
+/* Back buffer swap behaviors */
+#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */
+#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */
+
+/* CreatePbufferFromClientBuffer buffer types */
+#define EGL_OPENVG_IMAGE 0x3096
+
+/* QueryContext targets */
+#define EGL_CONTEXT_CLIENT_TYPE 0x3097
+
+/* BindAPI/QueryAPI targets */
+#define EGL_OPENGL_ES_API 0x30A0
+#define EGL_OPENVG_API 0x30A1
+
+/* GetCurrentSurface targets */
+#define EGL_DRAW 0x3059
+#define EGL_READ 0x305A
+
+/* WaitNative engines */
+#define EGL_CORE_NATIVE_ENGINE 0x305B
+
+/* EGL extensions must request enum blocks from the OpenGL ARB
+ * Secretary, who maintains the EGL enumerant registry.
+ */
+
+
+
+/* EGL Functions */
+
+EGLint eglGetError();
+
+EGLDisplay eglGetDisplay(NativeDisplayType display_id);
+EGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
+EGLBoolean eglTerminate(EGLDisplay dpy);
+
+const char *eglQueryString(EGLDisplay dpy, EGLint name);
+
+EGLBoolean eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
+ EGLint config_size, EGLint *num_config);
+EGLBoolean eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
+ EGLConfig *configs, EGLint config_size,
+ EGLint *num_config);
+EGLBoolean eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
+ EGLint attribute, EGLint *value);
+
+EGLSurface eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
+ NativeWindowType win,
+ const EGLint *attrib_list);
+EGLSurface eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
+ const EGLint *attrib_list);
+EGLSurface eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
+ NativePixmapType pixmap,
+ const EGLint *attrib_list);
+EGLBoolean eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
+EGLBoolean eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
+ EGLint attribute, EGLint *value);
+
+EGLBoolean eglBindAPI(EGLenum api);
+EGLenum eglQueryAPI(void);
+
+EGLBoolean eglWaitClient(void);
+
+EGLBoolean eglReleaseThread(void);
+
+EGLSurface eglCreatePbufferFromClientBuffer(
+ EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
+ EGLConfig config, const EGLint *attrib_list);
+
+EGLBoolean eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
+ EGLint attribute, EGLint value);
+EGLBoolean eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+EGLBoolean eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+
+
+EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint interval);
+
+
+EGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config,
+ EGLContext share_context,
+ const EGLint *attrib_list);
+EGLBoolean eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
+EGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
+ EGLSurface read, EGLContext ctx);
+
+EGLContext eglGetCurrentContext(void);
+EGLSurface eglGetCurrentSurface(EGLint readdraw);
+EGLDisplay eglGetCurrentDisplay(void);
+EGLBoolean eglQueryContext(EGLDisplay dpy, EGLContext ctx,
+ EGLint attribute, EGLint *value);
+
+EGLBoolean eglWaitGL(void);
+EGLBoolean eglWaitNative(EGLint engine);
+EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
+EGLBoolean eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
+ NativePixmapType target);
+
+void (*eglGetProcAddress(const char *procname))();
+
+#endif /* __egl_h_ */
diff --git a/glew/auto/EGL-Registry/api/1.2/egl.h b/glew/auto/EGL-Registry/api/1.2/egl.h
new file mode 100644
index 0000000..bf27697
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/1.2/egl.h
@@ -0,0 +1,260 @@
+/* Reference egl.h for EGL 1.2
+ * Last modified 2006/10/24
+ */
+
+#ifndef __egl_h_
+#define __egl_h_
+
+/* EGL Types */
+#include
+
+typedef int32_t EGLint;
+typedef unsigned int EGLBoolean;
+typedef void *EGLConfig;
+typedef void *EGLContext;
+typedef void *EGLDisplay;
+typedef void *EGLSurface;
+
+/* Define NativeDisplayType, NativeWindowType, NativePixmapType in egltypes.h */
+#include
+
+/* EGL Versioning */
+#define EGL_VERSION_1_0 1
+#define EGL_VERSION_1_1 1
+#define EGL_VERSION_1_2 1
+
+/* EGL Enumerants. Exceptional cases aside, most
+ * enums are assigned unique values starting at 0x3000.
+ */
+
+/* EGL aliases */
+#define EGL_FALSE 0
+#define EGL_TRUE 1
+
+/* Out-of-band handle values */
+/* These values may vary depending on semantics of native concepts */
+#define EGL_DEFAULT_DISPLAY ((void *)0)
+#define EGL_NO_CONTEXT ((EGLContext)0)
+#define EGL_NO_DISPLAY ((EGLDisplay)0)
+#define EGL_NO_SURFACE ((EGLSurface)0)
+
+/* Out-of-band attribute value */
+#define EGL_DONT_CARE ((EGLint)-1)
+
+/* Errors / GetError return values */
+#define EGL_SUCCESS 0x3000
+#define EGL_NOT_INITIALIZED 0x3001
+#define EGL_BAD_ACCESS 0x3002
+#define EGL_BAD_ALLOC 0x3003
+#define EGL_BAD_ATTRIBUTE 0x3004
+#define EGL_BAD_CONFIG 0x3005
+#define EGL_BAD_CONTEXT 0x3006
+#define EGL_BAD_CURRENT_SURFACE 0x3007
+#define EGL_BAD_DISPLAY 0x3008
+#define EGL_BAD_MATCH 0x3009
+#define EGL_BAD_NATIVE_PIXMAP 0x300A
+#define EGL_BAD_NATIVE_WINDOW 0x300B
+#define EGL_BAD_PARAMETER 0x300C
+#define EGL_BAD_SURFACE 0x300D
+#define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */
+
+/* Reserved 0x300F-0x301F for additional errors */
+
+/* Config attributes */
+#define EGL_BUFFER_SIZE 0x3020
+#define EGL_ALPHA_SIZE 0x3021
+#define EGL_BLUE_SIZE 0x3022
+#define EGL_GREEN_SIZE 0x3023
+#define EGL_RED_SIZE 0x3024
+#define EGL_DEPTH_SIZE 0x3025
+#define EGL_STENCIL_SIZE 0x3026
+#define EGL_CONFIG_CAVEAT 0x3027
+#define EGL_CONFIG_ID 0x3028
+#define EGL_LEVEL 0x3029
+#define EGL_MAX_PBUFFER_HEIGHT 0x302A
+#define EGL_MAX_PBUFFER_PIXELS 0x302B
+#define EGL_MAX_PBUFFER_WIDTH 0x302C
+#define EGL_NATIVE_RENDERABLE 0x302D
+#define EGL_NATIVE_VISUAL_ID 0x302E
+#define EGL_NATIVE_VISUAL_TYPE 0x302F
+#define EGL_PRESERVED_RESOURCES 0x3030
+#define EGL_SAMPLES 0x3031
+#define EGL_SAMPLE_BUFFERS 0x3032
+#define EGL_SURFACE_TYPE 0x3033
+#define EGL_TRANSPARENT_TYPE 0x3034
+#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
+#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
+#define EGL_TRANSPARENT_RED_VALUE 0x3037
+#define EGL_NONE 0x3038 /* Attrib list terminator */
+#define EGL_BIND_TO_TEXTURE_RGB 0x3039
+#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
+#define EGL_MIN_SWAP_INTERVAL 0x303B
+#define EGL_MAX_SWAP_INTERVAL 0x303C
+#define EGL_LUMINANCE_SIZE 0x303D
+#define EGL_ALPHA_MASK_SIZE 0x303E
+#define EGL_COLOR_BUFFER_TYPE 0x303F
+#define EGL_RENDERABLE_TYPE 0x3040
+
+/* Reserved 0x3041-0x304F for additional config attributes */
+
+/* Config attribute values */
+#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */
+#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */
+#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */
+#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */
+#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */
+
+/* More config attribute values, for EGL_TEXTURE_FORMAT */
+#define EGL_NO_TEXTURE 0x305C
+#define EGL_TEXTURE_RGB 0x305D
+#define EGL_TEXTURE_RGBA 0x305E
+#define EGL_TEXTURE_2D 0x305F
+
+/* Config attribute mask bits */
+#define EGL_PBUFFER_BIT 0x01 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_PIXMAP_BIT 0x02 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_WINDOW_BIT 0x04 /* EGL_SURFACE_TYPE mask bits */
+#define EGL_OPENGL_ES_BIT 0x01 /* EGL_RENDERABLE_TYPE mask bits */
+#define EGL_OPENVG_BIT 0x02 /* EGL_RENDERABLE_TYPE mask bits */
+
+/* QueryString targets */
+#define EGL_VENDOR 0x3053
+#define EGL_VERSION 0x3054
+#define EGL_EXTENSIONS 0x3055
+#define EGL_CLIENT_APIS 0x308D
+
+/* QuerySurface / CreatePbufferSurface targets */
+#define EGL_HEIGHT 0x3056
+#define EGL_WIDTH 0x3057
+#define EGL_LARGEST_PBUFFER 0x3058
+#define EGL_TEXTURE_FORMAT 0x3080
+#define EGL_TEXTURE_TARGET 0x3081
+#define EGL_MIPMAP_TEXTURE 0x3082
+#define EGL_MIPMAP_LEVEL 0x3083
+#define EGL_RENDER_BUFFER 0x3086
+#define EGL_COLORSPACE 0x3087
+#define EGL_ALPHA_FORMAT 0x3088
+#define EGL_HORIZONTAL_RESOLUTION 0x3090
+#define EGL_VERTICAL_RESOLUTION 0x3091
+#define EGL_PIXEL_ASPECT_RATIO 0x3092
+#define EGL_SWAP_BEHAVIOR 0x3093
+
+/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
+#define EGL_BACK_BUFFER 0x3084
+#define EGL_SINGLE_BUFFER 0x3085
+
+/* OpenVG color spaces */
+#define EGL_COLORSPACE_sRGB 0x3089 /* EGL_COLORSPACE value */
+#define EGL_COLORSPACE_LINEAR 0x308A /* EGL_COLORSPACE value */
+
+/* OpenVG alpha formats */
+#define EGL_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */
+#define EGL_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */
+
+/* Constant scale factor by which fractional display resolutions &
+ * aspect ratio are scaled when queried as integer values.
+ */
+#define EGL_DISPLAY_SCALING 10000
+
+/* Unknown display resolution/aspect ratio */
+#define EGL_UNKNOWN ((EGLint)-1)
+
+/* Back buffer swap behaviors */
+#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */
+#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */
+
+/* CreatePbufferFromClientBuffer buffer types */
+#define EGL_OPENVG_IMAGE 0x3096
+
+/* QueryContext targets */
+#define EGL_CONTEXT_CLIENT_TYPE 0x3097
+
+/* BindAPI/QueryAPI targets */
+#define EGL_OPENGL_ES_API 0x30A0
+#define EGL_OPENVG_API 0x30A1
+
+/* GetCurrentSurface targets */
+#define EGL_DRAW 0x3059
+#define EGL_READ 0x305A
+
+/* WaitNative engines */
+#define EGL_CORE_NATIVE_ENGINE 0x305B
+
+/* EGL extensions must request enum blocks from the OpenGL ARB
+ * Secretary, who maintains the EGL enumerant registry.
+ */
+
+
+
+/* EGL Functions */
+
+EGLint eglGetError();
+
+EGLDisplay eglGetDisplay(NativeDisplayType display_id);
+EGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
+EGLBoolean eglTerminate(EGLDisplay dpy);
+
+const char *eglQueryString(EGLDisplay dpy, EGLint name);
+
+EGLBoolean eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
+ EGLint config_size, EGLint *num_config);
+EGLBoolean eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
+ EGLConfig *configs, EGLint config_size,
+ EGLint *num_config);
+EGLBoolean eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
+ EGLint attribute, EGLint *value);
+
+EGLSurface eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
+ NativeWindowType win,
+ const EGLint *attrib_list);
+EGLSurface eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
+ const EGLint *attrib_list);
+EGLSurface eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
+ NativePixmapType pixmap,
+ const EGLint *attrib_list);
+EGLBoolean eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
+EGLBoolean eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
+ EGLint attribute, EGLint *value);
+
+EGLBoolean eglBindAPI(EGLenum api);
+EGLenum eglQueryAPI(void);
+
+EGLBoolean eglWaitClient(void);
+
+EGLBoolean eglReleaseThread(void);
+
+EGLSurface eglCreatePbufferFromClientBuffer(
+ EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
+ EGLConfig config, const EGLint *attrib_list);
+
+EGLBoolean eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
+ EGLint attribute, EGLint value);
+EGLBoolean eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+EGLBoolean eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+
+
+EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint interval);
+
+
+EGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config,
+ EGLContext share_context,
+ const EGLint *attrib_list);
+EGLBoolean eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
+EGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
+ EGLSurface read, EGLContext ctx);
+
+EGLContext eglGetCurrentContext(void);
+EGLSurface eglGetCurrentSurface(EGLint readdraw);
+EGLDisplay eglGetCurrentDisplay(void);
+EGLBoolean eglQueryContext(EGLDisplay dpy, EGLContext ctx,
+ EGLint attribute, EGLint *value);
+
+EGLBoolean eglWaitGL(void);
+EGLBoolean eglWaitNative(EGLint engine);
+EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
+EGLBoolean eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
+ NativePixmapType target);
+
+void (*eglGetProcAddress(const char *procname))();
+
+#endif /* __egl_h_ */
diff --git a/glew/auto/EGL-Registry/api/EGL/egl.h b/glew/auto/EGL-Registry/api/EGL/egl.h
new file mode 100644
index 0000000..97d0878
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/EGL/egl.h
@@ -0,0 +1,342 @@
+#ifndef __egl_h_
+#define __egl_h_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: Apache-2.0
+**
+** This header is generated from the Khronos EGL XML API Registry.
+** The current version of the Registry, generator scripts
+** used to make the header, and the header can be found at
+** http://www.khronos.org/registry/egl
+**
+** Khronos $Git commit SHA1: 6fb1daea15 $ on $Git commit date: 2022-05-25 09:41:13 -0600 $
+*/
+
+#include
+
+#ifndef EGL_EGL_PROTOTYPES
+#define EGL_EGL_PROTOTYPES 1
+#endif
+
+/* Generated on date 20220525 */
+
+/* Generated C header for:
+ * API: egl
+ * Versions considered: .*
+ * Versions emitted: .*
+ * Default extensions included: None
+ * Additional extensions included: _nomatch_^
+ * Extensions removed: _nomatch_^
+ */
+
+#ifndef EGL_VERSION_1_0
+#define EGL_VERSION_1_0 1
+typedef unsigned int EGLBoolean;
+typedef void *EGLDisplay;
+#include
+#include
+typedef void *EGLConfig;
+typedef void *EGLSurface;
+typedef void *EGLContext;
+typedef void (*__eglMustCastToProperFunctionPointerType)(void);
+#define EGL_ALPHA_SIZE 0x3021
+#define EGL_BAD_ACCESS 0x3002
+#define EGL_BAD_ALLOC 0x3003
+#define EGL_BAD_ATTRIBUTE 0x3004
+#define EGL_BAD_CONFIG 0x3005
+#define EGL_BAD_CONTEXT 0x3006
+#define EGL_BAD_CURRENT_SURFACE 0x3007
+#define EGL_BAD_DISPLAY 0x3008
+#define EGL_BAD_MATCH 0x3009
+#define EGL_BAD_NATIVE_PIXMAP 0x300A
+#define EGL_BAD_NATIVE_WINDOW 0x300B
+#define EGL_BAD_PARAMETER 0x300C
+#define EGL_BAD_SURFACE 0x300D
+#define EGL_BLUE_SIZE 0x3022
+#define EGL_BUFFER_SIZE 0x3020
+#define EGL_CONFIG_CAVEAT 0x3027
+#define EGL_CONFIG_ID 0x3028
+#define EGL_CORE_NATIVE_ENGINE 0x305B
+#define EGL_DEPTH_SIZE 0x3025
+#define EGL_DONT_CARE EGL_CAST(EGLint,-1)
+#define EGL_DRAW 0x3059
+#define EGL_EXTENSIONS 0x3055
+#define EGL_FALSE 0
+#define EGL_GREEN_SIZE 0x3023
+#define EGL_HEIGHT 0x3056
+#define EGL_LARGEST_PBUFFER 0x3058
+#define EGL_LEVEL 0x3029
+#define EGL_MAX_PBUFFER_HEIGHT 0x302A
+#define EGL_MAX_PBUFFER_PIXELS 0x302B
+#define EGL_MAX_PBUFFER_WIDTH 0x302C
+#define EGL_NATIVE_RENDERABLE 0x302D
+#define EGL_NATIVE_VISUAL_ID 0x302E
+#define EGL_NATIVE_VISUAL_TYPE 0x302F
+#define EGL_NONE 0x3038
+#define EGL_NON_CONFORMANT_CONFIG 0x3051
+#define EGL_NOT_INITIALIZED 0x3001
+#define EGL_NO_CONTEXT EGL_CAST(EGLContext,0)
+#define EGL_NO_DISPLAY EGL_CAST(EGLDisplay,0)
+#define EGL_NO_SURFACE EGL_CAST(EGLSurface,0)
+#define EGL_PBUFFER_BIT 0x0001
+#define EGL_PIXMAP_BIT 0x0002
+#define EGL_READ 0x305A
+#define EGL_RED_SIZE 0x3024
+#define EGL_SAMPLES 0x3031
+#define EGL_SAMPLE_BUFFERS 0x3032
+#define EGL_SLOW_CONFIG 0x3050
+#define EGL_STENCIL_SIZE 0x3026
+#define EGL_SUCCESS 0x3000
+#define EGL_SURFACE_TYPE 0x3033
+#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
+#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
+#define EGL_TRANSPARENT_RED_VALUE 0x3037
+#define EGL_TRANSPARENT_RGB 0x3052
+#define EGL_TRANSPARENT_TYPE 0x3034
+#define EGL_TRUE 1
+#define EGL_VENDOR 0x3053
+#define EGL_VERSION 0x3054
+#define EGL_WIDTH 0x3057
+#define EGL_WINDOW_BIT 0x0004
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLCHOOSECONFIGPROC) (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOPYBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
+typedef EGLContext (EGLAPIENTRYP PFNEGLCREATECONTEXTPROC) (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPBUFFERSURFACEPROC) (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCONFIGATTRIBPROC) (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCONFIGSPROC) (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
+typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETCURRENTDISPLAYPROC) (void);
+typedef EGLSurface (EGLAPIENTRYP PFNEGLGETCURRENTSURFACEPROC) (EGLint readdraw);
+typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETDISPLAYPROC) (EGLNativeDisplayType display_id);
+typedef EGLint (EGLAPIENTRYP PFNEGLGETERRORPROC) (void);
+typedef __eglMustCastToProperFunctionPointerType (EGLAPIENTRYP PFNEGLGETPROCADDRESSPROC) (const char *procname);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLINITIALIZEPROC) (EGLDisplay dpy, EGLint *major, EGLint *minor);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLMAKECURRENTPROC) (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
+typedef const char *(EGLAPIENTRYP PFNEGLQUERYSTRINGPROC) (EGLDisplay dpy, EGLint name);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLTERMINATEPROC) (EGLDisplay dpy);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITGLPROC) (void);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITNATIVEPROC) (EGLint engine);
+#if EGL_EGL_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
+EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
+EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
+EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void);
+EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw);
+EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id);
+EGLAPI EGLint EGLAPIENTRY eglGetError (void);
+EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname);
+EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor);
+EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
+EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name);
+EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface);
+EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine);
+#endif
+#endif /* EGL_VERSION_1_0 */
+
+#ifndef EGL_VERSION_1_1
+#define EGL_VERSION_1_1 1
+#define EGL_BACK_BUFFER 0x3084
+#define EGL_BIND_TO_TEXTURE_RGB 0x3039
+#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
+#define EGL_CONTEXT_LOST 0x300E
+#define EGL_MIN_SWAP_INTERVAL 0x303B
+#define EGL_MAX_SWAP_INTERVAL 0x303C
+#define EGL_MIPMAP_TEXTURE 0x3082
+#define EGL_MIPMAP_LEVEL 0x3083
+#define EGL_NO_TEXTURE 0x305C
+#define EGL_TEXTURE_2D 0x305F
+#define EGL_TEXTURE_FORMAT 0x3080
+#define EGL_TEXTURE_RGB 0x305D
+#define EGL_TEXTURE_RGBA 0x305E
+#define EGL_TEXTURE_TARGET 0x3081
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDTEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASETEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSURFACEATTRIBPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPINTERVALPROC) (EGLDisplay dpy, EGLint interval);
+#if EGL_EGL_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval);
+#endif
+#endif /* EGL_VERSION_1_1 */
+
+#ifndef EGL_VERSION_1_2
+#define EGL_VERSION_1_2 1
+typedef unsigned int EGLenum;
+typedef void *EGLClientBuffer;
+#define EGL_ALPHA_FORMAT 0x3088
+#define EGL_ALPHA_FORMAT_NONPRE 0x308B
+#define EGL_ALPHA_FORMAT_PRE 0x308C
+#define EGL_ALPHA_MASK_SIZE 0x303E
+#define EGL_BUFFER_PRESERVED 0x3094
+#define EGL_BUFFER_DESTROYED 0x3095
+#define EGL_CLIENT_APIS 0x308D
+#define EGL_COLORSPACE 0x3087
+#define EGL_COLORSPACE_sRGB 0x3089
+#define EGL_COLORSPACE_LINEAR 0x308A
+#define EGL_COLOR_BUFFER_TYPE 0x303F
+#define EGL_CONTEXT_CLIENT_TYPE 0x3097
+#define EGL_DISPLAY_SCALING 10000
+#define EGL_HORIZONTAL_RESOLUTION 0x3090
+#define EGL_LUMINANCE_BUFFER 0x308F
+#define EGL_LUMINANCE_SIZE 0x303D
+#define EGL_OPENGL_ES_BIT 0x0001
+#define EGL_OPENVG_BIT 0x0002
+#define EGL_OPENGL_ES_API 0x30A0
+#define EGL_OPENVG_API 0x30A1
+#define EGL_OPENVG_IMAGE 0x3096
+#define EGL_PIXEL_ASPECT_RATIO 0x3092
+#define EGL_RENDERABLE_TYPE 0x3040
+#define EGL_RENDER_BUFFER 0x3086
+#define EGL_RGB_BUFFER 0x308E
+#define EGL_SINGLE_BUFFER 0x3085
+#define EGL_SWAP_BEHAVIOR 0x3093
+#define EGL_UNKNOWN EGL_CAST(EGLint,-1)
+#define EGL_VERTICAL_RESOLUTION 0x3091
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDAPIPROC) (EGLenum api);
+typedef EGLenum (EGLAPIENTRYP PFNEGLQUERYAPIPROC) (void);
+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASETHREADPROC) (void);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITCLIENTPROC) (void);
+#if EGL_EGL_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api);
+EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void);
+#endif
+#endif /* EGL_VERSION_1_2 */
+
+#ifndef EGL_VERSION_1_3
+#define EGL_VERSION_1_3 1
+#define EGL_CONFORMANT 0x3042
+#define EGL_CONTEXT_CLIENT_VERSION 0x3098
+#define EGL_MATCH_NATIVE_PIXMAP 0x3041
+#define EGL_OPENGL_ES2_BIT 0x0004
+#define EGL_VG_ALPHA_FORMAT 0x3088
+#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B
+#define EGL_VG_ALPHA_FORMAT_PRE 0x308C
+#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040
+#define EGL_VG_COLORSPACE 0x3087
+#define EGL_VG_COLORSPACE_sRGB 0x3089
+#define EGL_VG_COLORSPACE_LINEAR 0x308A
+#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020
+#endif /* EGL_VERSION_1_3 */
+
+#ifndef EGL_VERSION_1_4
+#define EGL_VERSION_1_4 1
+#define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0)
+#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200
+#define EGL_MULTISAMPLE_RESOLVE 0x3099
+#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A
+#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B
+#define EGL_OPENGL_API 0x30A2
+#define EGL_OPENGL_BIT 0x0008
+#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400
+typedef EGLContext (EGLAPIENTRYP PFNEGLGETCURRENTCONTEXTPROC) (void);
+#if EGL_EGL_PROTOTYPES
+EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void);
+#endif
+#endif /* EGL_VERSION_1_4 */
+
+#ifndef EGL_VERSION_1_5
+#define EGL_VERSION_1_5 1
+typedef void *EGLSync;
+typedef intptr_t EGLAttrib;
+typedef khronos_utime_nanoseconds_t EGLTime;
+typedef void *EGLImage;
+#define EGL_CONTEXT_MAJOR_VERSION 0x3098
+#define EGL_CONTEXT_MINOR_VERSION 0x30FB
+#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD
+#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
+#define EGL_NO_RESET_NOTIFICATION 0x31BE
+#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF
+#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
+#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
+#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0
+#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
+#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
+#define EGL_OPENGL_ES3_BIT 0x00000040
+#define EGL_CL_EVENT_HANDLE 0x309C
+#define EGL_SYNC_CL_EVENT 0x30FE
+#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0
+#define EGL_SYNC_TYPE 0x30F7
+#define EGL_SYNC_STATUS 0x30F1
+#define EGL_SYNC_CONDITION 0x30F8
+#define EGL_SIGNALED 0x30F2
+#define EGL_UNSIGNALED 0x30F3
+#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001
+#define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull
+#define EGL_TIMEOUT_EXPIRED 0x30F5
+#define EGL_CONDITION_SATISFIED 0x30F6
+#define EGL_NO_SYNC EGL_CAST(EGLSync,0)
+#define EGL_SYNC_FENCE 0x30F9
+#define EGL_GL_COLORSPACE 0x309D
+#define EGL_GL_COLORSPACE_SRGB 0x3089
+#define EGL_GL_COLORSPACE_LINEAR 0x308A
+#define EGL_GL_RENDERBUFFER 0x30B9
+#define EGL_GL_TEXTURE_2D 0x30B1
+#define EGL_GL_TEXTURE_LEVEL 0x30BC
+#define EGL_GL_TEXTURE_3D 0x30B2
+#define EGL_GL_TEXTURE_ZOFFSET 0x30BD
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
+#define EGL_IMAGE_PRESERVED 0x30D2
+#define EGL_NO_IMAGE EGL_CAST(EGLImage,0)
+typedef EGLSync (EGLAPIENTRYP PFNEGLCREATESYNCPROC) (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCPROC) (EGLDisplay dpy, EGLSync sync);
+typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBPROC) (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value);
+typedef EGLImage (EGLAPIENTRYP PFNEGLCREATEIMAGEPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEPROC) (EGLDisplay dpy, EGLImage image);
+typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYPROC) (EGLenum platform, void *native_display, const EGLAttrib *attrib_list);
+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list);
+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags);
+#if EGL_EGL_PROTOTYPES
+EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync);
+EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value);
+EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image);
+EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags);
+#endif
+#endif /* EGL_VERSION_1_5 */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/glew/auto/EGL-Registry/api/EGL/eglext.h b/glew/auto/EGL-Registry/api/EGL/eglext.h
new file mode 100644
index 0000000..d58da70
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/EGL/eglext.h
@@ -0,0 +1,1483 @@
+#ifndef __eglext_h_
+#define __eglext_h_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Copyright 2013-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: Apache-2.0
+**
+** This header is generated from the Khronos EGL XML API Registry.
+** The current version of the Registry, generator scripts
+** used to make the header, and the header can be found at
+** http://www.khronos.org/registry/egl
+**
+** Khronos $Git commit SHA1: 6fb1daea15 $ on $Git commit date: 2022-05-25 09:41:13 -0600 $
+*/
+
+#include
+
+#define EGL_EGLEXT_VERSION 20220525
+
+/* Generated C header for:
+ * API: egl
+ * Versions considered: .*
+ * Versions emitted: _nomatch_^
+ * Default extensions included: egl
+ * Additional extensions included: _nomatch_^
+ * Extensions removed: _nomatch_^
+ */
+
+#ifndef EGL_KHR_cl_event
+#define EGL_KHR_cl_event 1
+#define EGL_CL_EVENT_HANDLE_KHR 0x309C
+#define EGL_SYNC_CL_EVENT_KHR 0x30FE
+#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
+#endif /* EGL_KHR_cl_event */
+
+#ifndef EGL_KHR_cl_event2
+#define EGL_KHR_cl_event2 1
+typedef void *EGLSyncKHR;
+typedef intptr_t EGLAttribKHR;
+typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list);
+#endif
+#endif /* EGL_KHR_cl_event2 */
+
+#ifndef EGL_KHR_client_get_all_proc_addresses
+#define EGL_KHR_client_get_all_proc_addresses 1
+#endif /* EGL_KHR_client_get_all_proc_addresses */
+
+#ifndef EGL_KHR_config_attribs
+#define EGL_KHR_config_attribs 1
+#define EGL_CONFORMANT_KHR 0x3042
+#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020
+#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040
+#endif /* EGL_KHR_config_attribs */
+
+#ifndef EGL_KHR_context_flush_control
+#define EGL_KHR_context_flush_control 1
+#define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0
+#define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097
+#define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098
+#endif /* EGL_KHR_context_flush_control */
+
+#ifndef EGL_KHR_create_context
+#define EGL_KHR_create_context 1
+#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098
+#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
+#define EGL_CONTEXT_FLAGS_KHR 0x30FC
+#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
+#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
+#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE
+#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF
+#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001
+#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
+#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
+#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
+#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
+#define EGL_OPENGL_ES3_BIT_KHR 0x00000040
+#endif /* EGL_KHR_create_context */
+
+#ifndef EGL_KHR_create_context_no_error
+#define EGL_KHR_create_context_no_error 1
+#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3
+#endif /* EGL_KHR_create_context_no_error */
+
+#ifndef EGL_KHR_debug
+#define EGL_KHR_debug 1
+typedef void *EGLLabelKHR;
+typedef void *EGLObjectKHR;
+typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
+#define EGL_OBJECT_THREAD_KHR 0x33B0
+#define EGL_OBJECT_DISPLAY_KHR 0x33B1
+#define EGL_OBJECT_CONTEXT_KHR 0x33B2
+#define EGL_OBJECT_SURFACE_KHR 0x33B3
+#define EGL_OBJECT_IMAGE_KHR 0x33B4
+#define EGL_OBJECT_SYNC_KHR 0x33B5
+#define EGL_OBJECT_STREAM_KHR 0x33B6
+#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9
+#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA
+#define EGL_DEBUG_MSG_WARN_KHR 0x33BB
+#define EGL_DEBUG_MSG_INFO_KHR 0x33BC
+#define EGL_DEBUG_CALLBACK_KHR 0x33B8
+typedef EGLint (EGLAPIENTRYP PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib *value);
+typedef EGLint (EGLAPIENTRYP PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLint EGLAPIENTRY eglDebugMessageControlKHR (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDebugKHR (EGLint attribute, EGLAttrib *value);
+EGLAPI EGLint EGLAPIENTRY eglLabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
+#endif
+#endif /* EGL_KHR_debug */
+
+#ifndef EGL_KHR_display_reference
+#define EGL_KHR_display_reference 1
+#define EGL_TRACK_REFERENCES_KHR 0x3352
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBKHRPROC) (EGLDisplay dpy, EGLint name, EGLAttrib *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribKHR (EGLDisplay dpy, EGLint name, EGLAttrib *value);
+#endif
+#endif /* EGL_KHR_display_reference */
+
+#ifndef EGL_KHR_fence_sync
+#define EGL_KHR_fence_sync 1
+typedef khronos_utime_nanoseconds_t EGLTimeKHR;
+#ifdef KHRONOS_SUPPORT_INT64
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
+#define EGL_SYNC_CONDITION_KHR 0x30F8
+#define EGL_SYNC_FENCE_KHR 0x30F9
+typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
+typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync);
+EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
+#endif
+#endif /* KHRONOS_SUPPORT_INT64 */
+#endif /* EGL_KHR_fence_sync */
+
+#ifndef EGL_KHR_get_all_proc_addresses
+#define EGL_KHR_get_all_proc_addresses 1
+#endif /* EGL_KHR_get_all_proc_addresses */
+
+#ifndef EGL_KHR_gl_colorspace
+#define EGL_KHR_gl_colorspace 1
+#define EGL_GL_COLORSPACE_KHR 0x309D
+#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089
+#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A
+#endif /* EGL_KHR_gl_colorspace */
+
+#ifndef EGL_KHR_gl_renderbuffer_image
+#define EGL_KHR_gl_renderbuffer_image 1
+#define EGL_GL_RENDERBUFFER_KHR 0x30B9
+#endif /* EGL_KHR_gl_renderbuffer_image */
+
+#ifndef EGL_KHR_gl_texture_2D_image
+#define EGL_KHR_gl_texture_2D_image 1
+#define EGL_GL_TEXTURE_2D_KHR 0x30B1
+#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC
+#endif /* EGL_KHR_gl_texture_2D_image */
+
+#ifndef EGL_KHR_gl_texture_3D_image
+#define EGL_KHR_gl_texture_3D_image 1
+#define EGL_GL_TEXTURE_3D_KHR 0x30B2
+#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD
+#endif /* EGL_KHR_gl_texture_3D_image */
+
+#ifndef EGL_KHR_gl_texture_cubemap_image
+#define EGL_KHR_gl_texture_cubemap_image 1
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8
+#endif /* EGL_KHR_gl_texture_cubemap_image */
+
+#ifndef EGL_KHR_image
+#define EGL_KHR_image 1
+typedef void *EGLImageKHR;
+#define EGL_NATIVE_PIXMAP_KHR 0x30B0
+#define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0)
+typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
+#endif
+#endif /* EGL_KHR_image */
+
+#ifndef EGL_KHR_image_base
+#define EGL_KHR_image_base 1
+#define EGL_IMAGE_PRESERVED_KHR 0x30D2
+#endif /* EGL_KHR_image_base */
+
+#ifndef EGL_KHR_image_pixmap
+#define EGL_KHR_image_pixmap 1
+#endif /* EGL_KHR_image_pixmap */
+
+#ifndef EGL_KHR_lock_surface
+#define EGL_KHR_lock_surface 1
+#define EGL_READ_SURFACE_BIT_KHR 0x0001
+#define EGL_WRITE_SURFACE_BIT_KHR 0x0002
+#define EGL_LOCK_SURFACE_BIT_KHR 0x0080
+#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
+#define EGL_MATCH_FORMAT_KHR 0x3043
+#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
+#define EGL_FORMAT_RGB_565_KHR 0x30C1
+#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
+#define EGL_FORMAT_RGBA_8888_KHR 0x30C3
+#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
+#define EGL_LOCK_USAGE_HINT_KHR 0x30C5
+#define EGL_BITMAP_POINTER_KHR 0x30C6
+#define EGL_BITMAP_PITCH_KHR 0x30C7
+#define EGL_BITMAP_ORIGIN_KHR 0x30C8
+#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
+#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
+#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
+#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
+#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
+#define EGL_LOWER_LEFT_KHR 0x30CE
+#define EGL_UPPER_LEFT_KHR 0x30CF
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface);
+#endif
+#endif /* EGL_KHR_lock_surface */
+
+#ifndef EGL_KHR_lock_surface2
+#define EGL_KHR_lock_surface2 1
+#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
+#endif /* EGL_KHR_lock_surface2 */
+
+#ifndef EGL_KHR_lock_surface3
+#define EGL_KHR_lock_surface3 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value);
+#endif
+#endif /* EGL_KHR_lock_surface3 */
+
+#ifndef EGL_KHR_mutable_render_buffer
+#define EGL_KHR_mutable_render_buffer 1
+#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000
+#endif /* EGL_KHR_mutable_render_buffer */
+
+#ifndef EGL_KHR_no_config_context
+#define EGL_KHR_no_config_context 1
+#define EGL_NO_CONFIG_KHR EGL_CAST(EGLConfig,0)
+#endif /* EGL_KHR_no_config_context */
+
+#ifndef EGL_KHR_partial_update
+#define EGL_KHR_partial_update 1
+#define EGL_BUFFER_AGE_KHR 0x313D
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
+#endif
+#endif /* EGL_KHR_partial_update */
+
+#ifndef EGL_KHR_platform_android
+#define EGL_KHR_platform_android 1
+#define EGL_PLATFORM_ANDROID_KHR 0x3141
+#endif /* EGL_KHR_platform_android */
+
+#ifndef EGL_KHR_platform_gbm
+#define EGL_KHR_platform_gbm 1
+#define EGL_PLATFORM_GBM_KHR 0x31D7
+#endif /* EGL_KHR_platform_gbm */
+
+#ifndef EGL_KHR_platform_wayland
+#define EGL_KHR_platform_wayland 1
+#define EGL_PLATFORM_WAYLAND_KHR 0x31D8
+#endif /* EGL_KHR_platform_wayland */
+
+#ifndef EGL_KHR_platform_x11
+#define EGL_KHR_platform_x11 1
+#define EGL_PLATFORM_X11_KHR 0x31D5
+#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6
+#endif /* EGL_KHR_platform_x11 */
+
+#ifndef EGL_KHR_reusable_sync
+#define EGL_KHR_reusable_sync 1
+#ifdef KHRONOS_SUPPORT_INT64
+#define EGL_SYNC_STATUS_KHR 0x30F1
+#define EGL_SIGNALED_KHR 0x30F2
+#define EGL_UNSIGNALED_KHR 0x30F3
+#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5
+#define EGL_CONDITION_SATISFIED_KHR 0x30F6
+#define EGL_SYNC_TYPE_KHR 0x30F7
+#define EGL_SYNC_REUSABLE_KHR 0x30FA
+#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
+#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull
+#define EGL_NO_SYNC_KHR EGL_CAST(EGLSyncKHR,0)
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
+#endif
+#endif /* KHRONOS_SUPPORT_INT64 */
+#endif /* EGL_KHR_reusable_sync */
+
+#ifndef EGL_KHR_stream
+#define EGL_KHR_stream 1
+typedef void *EGLStreamKHR;
+typedef khronos_uint64_t EGLuint64KHR;
+#ifdef KHRONOS_SUPPORT_INT64
+#define EGL_NO_STREAM_KHR EGL_CAST(EGLStreamKHR,0)
+#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210
+#define EGL_PRODUCER_FRAME_KHR 0x3212
+#define EGL_CONSUMER_FRAME_KHR 0x3213
+#define EGL_STREAM_STATE_KHR 0x3214
+#define EGL_STREAM_STATE_CREATED_KHR 0x3215
+#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216
+#define EGL_STREAM_STATE_EMPTY_KHR 0x3217
+#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218
+#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219
+#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A
+#define EGL_BAD_STREAM_KHR 0x321B
+#define EGL_BAD_STATE_KHR 0x321C
+typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream);
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
+#endif
+#endif /* KHRONOS_SUPPORT_INT64 */
+#endif /* EGL_KHR_stream */
+
+#ifndef EGL_KHR_stream_attrib
+#define EGL_KHR_stream_attrib 1
+#ifdef KHRONOS_SUPPORT_INT64
+typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMATTRIBKHRPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamAttribKHR (EGLDisplay dpy, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value);
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
+#endif
+#endif /* KHRONOS_SUPPORT_INT64 */
+#endif /* EGL_KHR_stream_attrib */
+
+#ifndef EGL_KHR_stream_consumer_gltexture
+#define EGL_KHR_stream_consumer_gltexture 1
+#ifdef EGL_KHR_stream
+#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream);
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream);
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream);
+#endif
+#endif /* EGL_KHR_stream */
+#endif /* EGL_KHR_stream_consumer_gltexture */
+
+#ifndef EGL_KHR_stream_cross_process_fd
+#define EGL_KHR_stream_cross_process_fd 1
+typedef int EGLNativeFileDescriptorKHR;
+#ifdef EGL_KHR_stream
+#define EGL_NO_FILE_DESCRIPTOR_KHR EGL_CAST(EGLNativeFileDescriptorKHR,-1)
+typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
+typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream);
+EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
+#endif
+#endif /* EGL_KHR_stream */
+#endif /* EGL_KHR_stream_cross_process_fd */
+
+#ifndef EGL_KHR_stream_fifo
+#define EGL_KHR_stream_fifo 1
+#ifdef EGL_KHR_stream
+#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC
+#define EGL_STREAM_TIME_NOW_KHR 0x31FD
+#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE
+#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
+#endif
+#endif /* EGL_KHR_stream */
+#endif /* EGL_KHR_stream_fifo */
+
+#ifndef EGL_KHR_stream_producer_aldatalocator
+#define EGL_KHR_stream_producer_aldatalocator 1
+#ifdef EGL_KHR_stream
+#endif /* EGL_KHR_stream */
+#endif /* EGL_KHR_stream_producer_aldatalocator */
+
+#ifndef EGL_KHR_stream_producer_eglsurface
+#define EGL_KHR_stream_producer_eglsurface 1
+#ifdef EGL_KHR_stream
+#define EGL_STREAM_BIT_KHR 0x0800
+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
+#endif
+#endif /* EGL_KHR_stream */
+#endif /* EGL_KHR_stream_producer_eglsurface */
+
+#ifndef EGL_KHR_surfaceless_context
+#define EGL_KHR_surfaceless_context 1
+#endif /* EGL_KHR_surfaceless_context */
+
+#ifndef EGL_KHR_swap_buffers_with_damage
+#define EGL_KHR_swap_buffers_with_damage 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects);
+#endif
+#endif /* EGL_KHR_swap_buffers_with_damage */
+
+#ifndef EGL_KHR_vg_parent_image
+#define EGL_KHR_vg_parent_image 1
+#define EGL_VG_PARENT_IMAGE_KHR 0x30BA
+#endif /* EGL_KHR_vg_parent_image */
+
+#ifndef EGL_KHR_wait_sync
+#define EGL_KHR_wait_sync 1
+typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
+#endif
+#endif /* EGL_KHR_wait_sync */
+
+#ifndef EGL_ANDROID_GLES_layers
+#define EGL_ANDROID_GLES_layers 1
+#endif /* EGL_ANDROID_GLES_layers */
+
+#ifndef EGL_ANDROID_blob_cache
+#define EGL_ANDROID_blob_cache 1
+typedef khronos_ssize_t EGLsizeiANDROID;
+typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
+typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
+typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
+#endif
+#endif /* EGL_ANDROID_blob_cache */
+
+#ifndef EGL_ANDROID_create_native_client_buffer
+#define EGL_ANDROID_create_native_client_buffer 1
+#define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143
+#define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001
+#define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002
+#define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004
+typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint *attrib_list);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID (const EGLint *attrib_list);
+#endif
+#endif /* EGL_ANDROID_create_native_client_buffer */
+
+#ifndef EGL_ANDROID_framebuffer_target
+#define EGL_ANDROID_framebuffer_target 1
+#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147
+#endif /* EGL_ANDROID_framebuffer_target */
+
+#ifndef EGL_ANDROID_front_buffer_auto_refresh
+#define EGL_ANDROID_front_buffer_auto_refresh 1
+#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C
+#endif /* EGL_ANDROID_front_buffer_auto_refresh */
+
+#ifndef EGL_ANDROID_get_frame_timestamps
+#define EGL_ANDROID_get_frame_timestamps 1
+typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
+#define EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2)
+#define EGL_TIMESTAMP_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID,-1)
+#define EGL_TIMESTAMPS_ANDROID 0x3430
+#define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431
+#define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432
+#define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433
+#define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434
+#define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435
+#define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436
+#define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437
+#define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438
+#define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439
+#define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A
+#define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B
+#define EGL_READS_DONE_TIME_ANDROID 0x343C
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint name);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETNEXTFRAMEIDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint name);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingANDROID (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetNextFrameIdANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampsANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values);
+#endif
+#endif /* EGL_ANDROID_get_frame_timestamps */
+
+#ifndef EGL_ANDROID_get_native_client_buffer
+#define EGL_ANDROID_get_native_client_buffer 1
+struct AHardwareBuffer;
+typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer *buffer);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID (const struct AHardwareBuffer *buffer);
+#endif
+#endif /* EGL_ANDROID_get_native_client_buffer */
+
+#ifndef EGL_ANDROID_image_native_buffer
+#define EGL_ANDROID_image_native_buffer 1
+#define EGL_NATIVE_BUFFER_ANDROID 0x3140
+#endif /* EGL_ANDROID_image_native_buffer */
+
+#ifndef EGL_ANDROID_native_fence_sync
+#define EGL_ANDROID_native_fence_sync 1
+#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144
+#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145
+#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146
+#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1
+typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync);
+#endif
+#endif /* EGL_ANDROID_native_fence_sync */
+
+#ifndef EGL_ANDROID_presentation_time
+#define EGL_ANDROID_presentation_time 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
+#endif
+#endif /* EGL_ANDROID_presentation_time */
+
+#ifndef EGL_ANDROID_recordable
+#define EGL_ANDROID_recordable 1
+#define EGL_RECORDABLE_ANDROID 0x3142
+#endif /* EGL_ANDROID_recordable */
+
+#ifndef EGL_ANGLE_d3d_share_handle_client_buffer
+#define EGL_ANGLE_d3d_share_handle_client_buffer 1
+#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
+#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */
+
+#ifndef EGL_ANGLE_device_d3d
+#define EGL_ANGLE_device_d3d 1
+#define EGL_D3D9_DEVICE_ANGLE 0x33A0
+#define EGL_D3D11_DEVICE_ANGLE 0x33A1
+#endif /* EGL_ANGLE_device_d3d */
+
+#ifndef EGL_ANGLE_query_surface_pointer
+#define EGL_ANGLE_query_surface_pointer 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
+#endif
+#endif /* EGL_ANGLE_query_surface_pointer */
+
+#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle
+#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
+#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
+
+#ifndef EGL_ANGLE_sync_control_rate
+#define EGL_ANGLE_sync_control_rate 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateANGLE (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator);
+#endif
+#endif /* EGL_ANGLE_sync_control_rate */
+
+#ifndef EGL_ANGLE_window_fixed_size
+#define EGL_ANGLE_window_fixed_size 1
+#define EGL_FIXED_SIZE_ANGLE 0x3201
+#endif /* EGL_ANGLE_window_fixed_size */
+
+#ifndef EGL_ARM_image_format
+#define EGL_ARM_image_format 1
+#define EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287
+#define EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288
+#endif /* EGL_ARM_image_format */
+
+#ifndef EGL_ARM_implicit_external_sync
+#define EGL_ARM_implicit_external_sync 1
+#define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A
+#endif /* EGL_ARM_implicit_external_sync */
+
+#ifndef EGL_ARM_pixmap_multisample_discard
+#define EGL_ARM_pixmap_multisample_discard 1
+#define EGL_DISCARD_SAMPLES_ARM 0x3286
+#endif /* EGL_ARM_pixmap_multisample_discard */
+
+#ifndef EGL_EXT_bind_to_front
+#define EGL_EXT_bind_to_front 1
+#define EGL_FRONT_BUFFER_EXT 0x3464
+#endif /* EGL_EXT_bind_to_front */
+
+#ifndef EGL_EXT_buffer_age
+#define EGL_EXT_buffer_age 1
+#define EGL_BUFFER_AGE_EXT 0x313D
+#endif /* EGL_EXT_buffer_age */
+
+#ifndef EGL_EXT_client_extensions
+#define EGL_EXT_client_extensions 1
+#endif /* EGL_EXT_client_extensions */
+
+#ifndef EGL_EXT_client_sync
+#define EGL_EXT_client_sync 1
+#define EGL_SYNC_CLIENT_EXT 0x3364
+#define EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLCLIENTSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglClientSignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
+#endif
+#endif /* EGL_EXT_client_sync */
+
+#ifndef EGL_EXT_compositor
+#define EGL_EXT_compositor 1
+#define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460
+#define EGL_EXTERNAL_REF_ID_EXT 0x3461
+#define EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462
+#define EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC) (const EGLint *external_ref_ids, EGLint num_entries);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC) (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC) (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC) (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC) (EGLint external_win_id);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETSIZEEXTPROC) (EGLint external_win_id, EGLint width, EGLint height);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSWAPPOLICYEXTPROC) (EGLint external_win_id, EGLint policy);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextListEXT (const EGLint *external_ref_ids, EGLint num_entries);
+EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextAttributesEXT (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries);
+EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowListEXT (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries);
+EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowAttributesEXT (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries);
+EGLAPI EGLBoolean EGLAPIENTRY eglCompositorBindTexWindowEXT (EGLint external_win_id);
+EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetSizeEXT (EGLint external_win_id, EGLint width, EGLint height);
+EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSwapPolicyEXT (EGLint external_win_id, EGLint policy);
+#endif
+#endif /* EGL_EXT_compositor */
+
+#ifndef EGL_EXT_config_select_group
+#define EGL_EXT_config_select_group 1
+#define EGL_CONFIG_SELECT_GROUP_EXT 0x34C0
+#endif /* EGL_EXT_config_select_group */
+
+#ifndef EGL_EXT_create_context_robustness
+#define EGL_EXT_create_context_robustness 1
+#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
+#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
+#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE
+#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF
+#endif /* EGL_EXT_create_context_robustness */
+
+#ifndef EGL_EXT_device_base
+#define EGL_EXT_device_base 1
+typedef void *EGLDeviceEXT;
+#define EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0)
+#define EGL_BAD_DEVICE_EXT 0x322B
+#define EGL_DEVICE_EXT 0x322C
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
+typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
+EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
+#endif
+#endif /* EGL_EXT_device_base */
+
+#ifndef EGL_EXT_device_drm
+#define EGL_EXT_device_drm 1
+#define EGL_DRM_DEVICE_FILE_EXT 0x3233
+#define EGL_DRM_MASTER_FD_EXT 0x333C
+#endif /* EGL_EXT_device_drm */
+
+#ifndef EGL_EXT_device_drm_render_node
+#define EGL_EXT_device_drm_render_node 1
+#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377
+#endif /* EGL_EXT_device_drm_render_node */
+
+#ifndef EGL_EXT_device_enumeration
+#define EGL_EXT_device_enumeration 1
+#endif /* EGL_EXT_device_enumeration */
+
+#ifndef EGL_EXT_device_openwf
+#define EGL_EXT_device_openwf 1
+#define EGL_OPENWF_DEVICE_ID_EXT 0x3237
+#define EGL_OPENWF_DEVICE_EXT 0x333D
+#endif /* EGL_EXT_device_openwf */
+
+#ifndef EGL_EXT_device_persistent_id
+#define EGL_EXT_device_persistent_id 1
+#define EGL_DEVICE_UUID_EXT 0x335C
+#define EGL_DRIVER_UUID_EXT 0x335D
+#define EGL_DRIVER_NAME_EXT 0x335E
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEBINARYEXTPROC) (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceBinaryEXT (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size);
+#endif
+#endif /* EGL_EXT_device_persistent_id */
+
+#ifndef EGL_EXT_device_query
+#define EGL_EXT_device_query 1
+#endif /* EGL_EXT_device_query */
+
+#ifndef EGL_EXT_device_query_name
+#define EGL_EXT_device_query_name 1
+#define EGL_RENDERER_EXT 0x335F
+#endif /* EGL_EXT_device_query_name */
+
+#ifndef EGL_EXT_explicit_device
+#define EGL_EXT_explicit_device 1
+#endif /* EGL_EXT_explicit_device */
+
+#ifndef EGL_EXT_gl_colorspace_bt2020_linear
+#define EGL_EXT_gl_colorspace_bt2020_linear 1
+#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F
+#endif /* EGL_EXT_gl_colorspace_bt2020_linear */
+
+#ifndef EGL_EXT_gl_colorspace_bt2020_pq
+#define EGL_EXT_gl_colorspace_bt2020_pq 1
+#define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340
+#endif /* EGL_EXT_gl_colorspace_bt2020_pq */
+
+#ifndef EGL_EXT_gl_colorspace_display_p3
+#define EGL_EXT_gl_colorspace_display_p3 1
+#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363
+#endif /* EGL_EXT_gl_colorspace_display_p3 */
+
+#ifndef EGL_EXT_gl_colorspace_display_p3_linear
+#define EGL_EXT_gl_colorspace_display_p3_linear 1
+#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362
+#endif /* EGL_EXT_gl_colorspace_display_p3_linear */
+
+#ifndef EGL_EXT_gl_colorspace_display_p3_passthrough
+#define EGL_EXT_gl_colorspace_display_p3_passthrough 1
+#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490
+#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */
+
+#ifndef EGL_EXT_gl_colorspace_scrgb
+#define EGL_EXT_gl_colorspace_scrgb 1
+#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351
+#endif /* EGL_EXT_gl_colorspace_scrgb */
+
+#ifndef EGL_EXT_gl_colorspace_scrgb_linear
+#define EGL_EXT_gl_colorspace_scrgb_linear 1
+#define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350
+#endif /* EGL_EXT_gl_colorspace_scrgb_linear */
+
+#ifndef EGL_EXT_image_dma_buf_import
+#define EGL_EXT_image_dma_buf_import 1
+#define EGL_LINUX_DMA_BUF_EXT 0x3270
+#define EGL_LINUX_DRM_FOURCC_EXT 0x3271
+#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
+#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
+#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
+#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
+#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
+#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
+#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
+#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
+#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
+#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
+#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C
+#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
+#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
+#define EGL_ITU_REC601_EXT 0x327F
+#define EGL_ITU_REC709_EXT 0x3280
+#define EGL_ITU_REC2020_EXT 0x3281
+#define EGL_YUV_FULL_RANGE_EXT 0x3282
+#define EGL_YUV_NARROW_RANGE_EXT 0x3283
+#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284
+#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285
+#endif /* EGL_EXT_image_dma_buf_import */
+
+#ifndef EGL_EXT_image_dma_buf_import_modifiers
+#define EGL_EXT_image_dma_buf_import_modifiers 1
+#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
+#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
+#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
+#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
+#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
+#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
+#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
+#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
+#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
+#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
+#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufFormatsEXT (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers);
+#endif
+#endif /* EGL_EXT_image_dma_buf_import_modifiers */
+
+#ifndef EGL_EXT_image_gl_colorspace
+#define EGL_EXT_image_gl_colorspace 1
+#define EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D
+#endif /* EGL_EXT_image_gl_colorspace */
+
+#ifndef EGL_EXT_image_implicit_sync_control
+#define EGL_EXT_image_implicit_sync_control 1
+#define EGL_IMPORT_SYNC_TYPE_EXT 0x3470
+#define EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471
+#define EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472
+#endif /* EGL_EXT_image_implicit_sync_control */
+
+#ifndef EGL_EXT_multiview_window
+#define EGL_EXT_multiview_window 1
+#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134
+#endif /* EGL_EXT_multiview_window */
+
+#ifndef EGL_EXT_output_base
+#define EGL_EXT_output_base 1
+typedef void *EGLOutputLayerEXT;
+typedef void *EGLOutputPortEXT;
+#define EGL_NO_OUTPUT_LAYER_EXT EGL_CAST(EGLOutputLayerEXT,0)
+#define EGL_NO_OUTPUT_PORT_EXT EGL_CAST(EGLOutputPortEXT,0)
+#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D
+#define EGL_BAD_OUTPUT_PORT_EXT 0x322E
+#define EGL_SWAP_INTERVAL_EXT 0x322F
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
+typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
+typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports);
+EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value);
+EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
+EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value);
+EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
+#endif
+#endif /* EGL_EXT_output_base */
+
+#ifndef EGL_EXT_output_drm
+#define EGL_EXT_output_drm 1
+#define EGL_DRM_CRTC_EXT 0x3234
+#define EGL_DRM_PLANE_EXT 0x3235
+#define EGL_DRM_CONNECTOR_EXT 0x3236
+#endif /* EGL_EXT_output_drm */
+
+#ifndef EGL_EXT_output_openwf
+#define EGL_EXT_output_openwf 1
+#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238
+#define EGL_OPENWF_PORT_ID_EXT 0x3239
+#endif /* EGL_EXT_output_openwf */
+
+#ifndef EGL_EXT_pixel_format_float
+#define EGL_EXT_pixel_format_float 1
+#define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339
+#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A
+#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
+#endif /* EGL_EXT_pixel_format_float */
+
+#ifndef EGL_EXT_platform_base
+#define EGL_EXT_platform_base 1
+typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list);
+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list);
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list);
+#endif
+#endif /* EGL_EXT_platform_base */
+
+#ifndef EGL_EXT_platform_device
+#define EGL_EXT_platform_device 1
+#define EGL_PLATFORM_DEVICE_EXT 0x313F
+#endif /* EGL_EXT_platform_device */
+
+#ifndef EGL_EXT_platform_wayland
+#define EGL_EXT_platform_wayland 1
+#define EGL_PLATFORM_WAYLAND_EXT 0x31D8
+#endif /* EGL_EXT_platform_wayland */
+
+#ifndef EGL_EXT_platform_x11
+#define EGL_EXT_platform_x11 1
+#define EGL_PLATFORM_X11_EXT 0x31D5
+#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
+#endif /* EGL_EXT_platform_x11 */
+
+#ifndef EGL_EXT_platform_xcb
+#define EGL_EXT_platform_xcb 1
+#define EGL_PLATFORM_XCB_EXT 0x31DC
+#define EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE
+#endif /* EGL_EXT_platform_xcb */
+
+#ifndef EGL_EXT_present_opaque
+#define EGL_EXT_present_opaque 1
+#define EGL_PRESENT_OPAQUE_EXT 0x31DF
+#endif /* EGL_EXT_present_opaque */
+
+#ifndef EGL_EXT_protected_content
+#define EGL_EXT_protected_content 1
+#define EGL_PROTECTED_CONTENT_EXT 0x32C0
+#endif /* EGL_EXT_protected_content */
+
+#ifndef EGL_EXT_protected_surface
+#define EGL_EXT_protected_surface 1
+#endif /* EGL_EXT_protected_surface */
+
+#ifndef EGL_EXT_stream_consumer_egloutput
+#define EGL_EXT_stream_consumer_egloutput 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
+#endif
+#endif /* EGL_EXT_stream_consumer_egloutput */
+
+#ifndef EGL_EXT_surface_CTA861_3_metadata
+#define EGL_EXT_surface_CTA861_3_metadata 1
+#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360
+#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361
+#endif /* EGL_EXT_surface_CTA861_3_metadata */
+
+#ifndef EGL_EXT_surface_SMPTE2086_metadata
+#define EGL_EXT_surface_SMPTE2086_metadata 1
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346
+#define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347
+#define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348
+#define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349
+#define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A
+#define EGL_METADATA_SCALING_EXT 50000
+#endif /* EGL_EXT_surface_SMPTE2086_metadata */
+
+#ifndef EGL_EXT_surface_compression
+#define EGL_EXT_surface_compression 1
+#define EGL_SURFACE_COMPRESSION_EXT 0x34B0
+#define EGL_SURFACE_COMPRESSION_PLANE1_EXT 0x328E
+#define EGL_SURFACE_COMPRESSION_PLANE2_EXT 0x328F
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x34B1
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x34B2
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x34B4
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x34B5
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x34B6
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x34B7
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x34B8
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x34B9
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x34BA
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x34BB
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x34BC
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x34BD
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x34BE
+#define EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x34BF
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC) (EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list, EGLint *rates, EGLint rate_size, EGLint *num_rates);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQuerySupportedCompressionRatesEXT (EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list, EGLint *rates, EGLint rate_size, EGLint *num_rates);
+#endif
+#endif /* EGL_EXT_surface_compression */
+
+#ifndef EGL_EXT_swap_buffers_with_damage
+#define EGL_EXT_swap_buffers_with_damage 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects);
+#endif
+#endif /* EGL_EXT_swap_buffers_with_damage */
+
+#ifndef EGL_EXT_sync_reuse
+#define EGL_EXT_sync_reuse 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglUnsignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
+#endif
+#endif /* EGL_EXT_sync_reuse */
+
+#ifndef EGL_EXT_yuv_surface
+#define EGL_EXT_yuv_surface 1
+#define EGL_YUV_ORDER_EXT 0x3301
+#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
+#define EGL_YUV_SUBSAMPLE_EXT 0x3312
+#define EGL_YUV_DEPTH_RANGE_EXT 0x3317
+#define EGL_YUV_CSC_STANDARD_EXT 0x330A
+#define EGL_YUV_PLANE_BPP_EXT 0x331A
+#define EGL_YUV_BUFFER_EXT 0x3300
+#define EGL_YUV_ORDER_YUV_EXT 0x3302
+#define EGL_YUV_ORDER_YVU_EXT 0x3303
+#define EGL_YUV_ORDER_YUYV_EXT 0x3304
+#define EGL_YUV_ORDER_UYVY_EXT 0x3305
+#define EGL_YUV_ORDER_YVYU_EXT 0x3306
+#define EGL_YUV_ORDER_VYUY_EXT 0x3307
+#define EGL_YUV_ORDER_AYUV_EXT 0x3308
+#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313
+#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314
+#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315
+#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318
+#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319
+#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B
+#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C
+#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D
+#define EGL_YUV_PLANE_BPP_0_EXT 0x331B
+#define EGL_YUV_PLANE_BPP_8_EXT 0x331C
+#define EGL_YUV_PLANE_BPP_10_EXT 0x331D
+#endif /* EGL_EXT_yuv_surface */
+
+#ifndef EGL_HI_clientpixmap
+#define EGL_HI_clientpixmap 1
+struct EGLClientPixmapHI {
+ void *pData;
+ EGLint iWidth;
+ EGLint iHeight;
+ EGLint iStride;
+};
+#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74
+typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap);
+#endif
+#endif /* EGL_HI_clientpixmap */
+
+#ifndef EGL_HI_colorformats
+#define EGL_HI_colorformats 1
+#define EGL_COLOR_FORMAT_HI 0x8F70
+#define EGL_COLOR_RGB_HI 0x8F71
+#define EGL_COLOR_RGBA_HI 0x8F72
+#define EGL_COLOR_ARGB_HI 0x8F73
+#endif /* EGL_HI_colorformats */
+
+#ifndef EGL_IMG_context_priority
+#define EGL_IMG_context_priority 1
+#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100
+#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101
+#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102
+#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103
+#endif /* EGL_IMG_context_priority */
+
+#ifndef EGL_IMG_image_plane_attribs
+#define EGL_IMG_image_plane_attribs 1
+#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105
+#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106
+#endif /* EGL_IMG_image_plane_attribs */
+
+#ifndef EGL_MESA_drm_image
+#define EGL_MESA_drm_image 1
+#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
+#define EGL_DRM_BUFFER_USE_MESA 0x31D1
+#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2
+#define EGL_DRM_BUFFER_MESA 0x31D3
+#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4
+#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001
+#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002
+#define EGL_DRM_BUFFER_USE_CURSOR_MESA 0x00000004
+typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
+#endif
+#endif /* EGL_MESA_drm_image */
+
+#ifndef EGL_MESA_image_dma_buf_export
+#define EGL_MESA_image_dma_buf_export 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers);
+EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets);
+#endif
+#endif /* EGL_MESA_image_dma_buf_export */
+
+#ifndef EGL_MESA_platform_gbm
+#define EGL_MESA_platform_gbm 1
+#define EGL_PLATFORM_GBM_MESA 0x31D7
+#endif /* EGL_MESA_platform_gbm */
+
+#ifndef EGL_MESA_platform_surfaceless
+#define EGL_MESA_platform_surfaceless 1
+#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD
+#endif /* EGL_MESA_platform_surfaceless */
+
+#ifndef EGL_MESA_query_driver
+#define EGL_MESA_query_driver 1
+typedef char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERCONFIGPROC) (EGLDisplay dpy);
+typedef const char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERNAMEPROC) (EGLDisplay dpy);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI char *EGLAPIENTRY eglGetDisplayDriverConfig (EGLDisplay dpy);
+EGLAPI const char *EGLAPIENTRY eglGetDisplayDriverName (EGLDisplay dpy);
+#endif
+#endif /* EGL_MESA_query_driver */
+
+#ifndef EGL_NOK_swap_region
+#define EGL_NOK_swap_region 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#endif
+#endif /* EGL_NOK_swap_region */
+
+#ifndef EGL_NOK_swap_region2
+#define EGL_NOK_swap_region2 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
+#endif
+#endif /* EGL_NOK_swap_region2 */
+
+#ifndef EGL_NOK_texture_from_pixmap
+#define EGL_NOK_texture_from_pixmap 1
+#define EGL_Y_INVERTED_NOK 0x307F
+#endif /* EGL_NOK_texture_from_pixmap */
+
+#ifndef EGL_NV_3dvision_surface
+#define EGL_NV_3dvision_surface 1
+#define EGL_AUTO_STEREO_NV 0x3136
+#endif /* EGL_NV_3dvision_surface */
+
+#ifndef EGL_NV_context_priority_realtime
+#define EGL_NV_context_priority_realtime 1
+#define EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357
+#endif /* EGL_NV_context_priority_realtime */
+
+#ifndef EGL_NV_coverage_sample
+#define EGL_NV_coverage_sample 1
+#define EGL_COVERAGE_BUFFERS_NV 0x30E0
+#define EGL_COVERAGE_SAMPLES_NV 0x30E1
+#endif /* EGL_NV_coverage_sample */
+
+#ifndef EGL_NV_coverage_sample_resolve
+#define EGL_NV_coverage_sample_resolve 1
+#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131
+#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132
+#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
+#endif /* EGL_NV_coverage_sample_resolve */
+
+#ifndef EGL_NV_cuda_event
+#define EGL_NV_cuda_event 1
+#define EGL_CUDA_EVENT_HANDLE_NV 0x323B
+#define EGL_SYNC_CUDA_EVENT_NV 0x323C
+#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D
+#endif /* EGL_NV_cuda_event */
+
+#ifndef EGL_NV_depth_nonlinear
+#define EGL_NV_depth_nonlinear 1
+#define EGL_DEPTH_ENCODING_NV 0x30E2
+#define EGL_DEPTH_ENCODING_NONE_NV 0
+#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
+#endif /* EGL_NV_depth_nonlinear */
+
+#ifndef EGL_NV_device_cuda
+#define EGL_NV_device_cuda 1
+#define EGL_CUDA_DEVICE_NV 0x323A
+#endif /* EGL_NV_device_cuda */
+
+#ifndef EGL_NV_native_query
+#define EGL_NV_native_query 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap);
+#endif
+#endif /* EGL_NV_native_query */
+
+#ifndef EGL_NV_post_convert_rounding
+#define EGL_NV_post_convert_rounding 1
+#endif /* EGL_NV_post_convert_rounding */
+
+#ifndef EGL_NV_post_sub_buffer
+#define EGL_NV_post_sub_buffer 1
+#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
+#endif
+#endif /* EGL_NV_post_sub_buffer */
+
+#ifndef EGL_NV_quadruple_buffer
+#define EGL_NV_quadruple_buffer 1
+#define EGL_QUADRUPLE_BUFFER_NV 0x3231
+#endif /* EGL_NV_quadruple_buffer */
+
+#ifndef EGL_NV_robustness_video_memory_purge
+#define EGL_NV_robustness_video_memory_purge 1
+#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C
+#endif /* EGL_NV_robustness_video_memory_purge */
+
+#ifndef EGL_NV_stream_consumer_eglimage
+#define EGL_NV_stream_consumer_eglimage 1
+#define EGL_STREAM_CONSUMER_IMAGE_NV 0x3373
+#define EGL_STREAM_IMAGE_ADD_NV 0x3374
+#define EGL_STREAM_IMAGE_REMOVE_NV 0x3375
+#define EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR *modifiers, const EGLAttrib *attrib_list);
+typedef EGLint (EGLAPIENTRYP PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMACQUIREIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMRELEASEIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamImageConsumerConnectNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR *modifiers, const EGLAttrib *attrib_list);
+EGLAPI EGLint EGLAPIENTRY eglQueryStreamConsumerEventNV (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux);
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamAcquireImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync);
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamReleaseImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync);
+#endif
+#endif /* EGL_NV_stream_consumer_eglimage */
+
+#ifndef EGL_NV_stream_consumer_gltexture_yuv
+#define EGL_NV_stream_consumer_gltexture_yuv 1
+#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C
+#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D
+#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
+#endif
+#endif /* EGL_NV_stream_consumer_gltexture_yuv */
+
+#ifndef EGL_NV_stream_cross_display
+#define EGL_NV_stream_cross_display 1
+#define EGL_STREAM_CROSS_DISPLAY_NV 0x334E
+#endif /* EGL_NV_stream_cross_display */
+
+#ifndef EGL_NV_stream_cross_object
+#define EGL_NV_stream_cross_object 1
+#define EGL_STREAM_CROSS_OBJECT_NV 0x334D
+#endif /* EGL_NV_stream_cross_object */
+
+#ifndef EGL_NV_stream_cross_partition
+#define EGL_NV_stream_cross_partition 1
+#define EGL_STREAM_CROSS_PARTITION_NV 0x323F
+#endif /* EGL_NV_stream_cross_partition */
+
+#ifndef EGL_NV_stream_cross_process
+#define EGL_NV_stream_cross_process 1
+#define EGL_STREAM_CROSS_PROCESS_NV 0x3245
+#endif /* EGL_NV_stream_cross_process */
+
+#ifndef EGL_NV_stream_cross_system
+#define EGL_NV_stream_cross_system 1
+#define EGL_STREAM_CROSS_SYSTEM_NV 0x334F
+#endif /* EGL_NV_stream_cross_system */
+
+#ifndef EGL_NV_stream_dma
+#define EGL_NV_stream_dma 1
+#define EGL_STREAM_DMA_NV 0x3371
+#define EGL_STREAM_DMA_SERVER_NV 0x3372
+#endif /* EGL_NV_stream_dma */
+
+#ifndef EGL_NV_stream_fifo_next
+#define EGL_NV_stream_fifo_next 1
+#define EGL_PENDING_FRAME_NV 0x3329
+#define EGL_STREAM_TIME_PENDING_NV 0x332A
+#endif /* EGL_NV_stream_fifo_next */
+
+#ifndef EGL_NV_stream_fifo_synchronous
+#define EGL_NV_stream_fifo_synchronous 1
+#define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336
+#endif /* EGL_NV_stream_fifo_synchronous */
+
+#ifndef EGL_NV_stream_flush
+#define EGL_NV_stream_flush 1
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMFLUSHNVPROC) (EGLDisplay dpy, EGLStreamKHR stream);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglStreamFlushNV (EGLDisplay dpy, EGLStreamKHR stream);
+#endif
+#endif /* EGL_NV_stream_flush */
+
+#ifndef EGL_NV_stream_frame_limits
+#define EGL_NV_stream_frame_limits 1
+#define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337
+#define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338
+#endif /* EGL_NV_stream_frame_limits */
+
+#ifndef EGL_NV_stream_metadata
+#define EGL_NV_stream_metadata 1
+#define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250
+#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251
+#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252
+#define EGL_PRODUCER_METADATA_NV 0x3253
+#define EGL_CONSUMER_METADATA_NV 0x3254
+#define EGL_PENDING_METADATA_NV 0x3328
+#define EGL_METADATA0_SIZE_NV 0x3255
+#define EGL_METADATA1_SIZE_NV 0x3256
+#define EGL_METADATA2_SIZE_NV 0x3257
+#define EGL_METADATA3_SIZE_NV 0x3258
+#define EGL_METADATA0_TYPE_NV 0x3259
+#define EGL_METADATA1_TYPE_NV 0x325A
+#define EGL_METADATA2_TYPE_NV 0x325B
+#define EGL_METADATA3_TYPE_NV 0x325C
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
+EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data);
+#endif
+#endif /* EGL_NV_stream_metadata */
+
+#ifndef EGL_NV_stream_origin
+#define EGL_NV_stream_origin 1
+#define EGL_STREAM_FRAME_ORIGIN_X_NV 0x3366
+#define EGL_STREAM_FRAME_ORIGIN_Y_NV 0x3367
+#define EGL_STREAM_FRAME_MAJOR_AXIS_NV 0x3368
+#define EGL_CONSUMER_AUTO_ORIENTATION_NV 0x3369
+#define EGL_PRODUCER_AUTO_ORIENTATION_NV 0x336A
+#define EGL_LEFT_NV 0x336B
+#define EGL_RIGHT_NV 0x336C
+#define EGL_TOP_NV 0x336D
+#define EGL_BOTTOM_NV 0x336E
+#define EGL_X_AXIS_NV 0x336F
+#define EGL_Y_AXIS_NV 0x3370
+#endif /* EGL_NV_stream_origin */
+
+#ifndef EGL_NV_stream_remote
+#define EGL_NV_stream_remote 1
+#define EGL_STREAM_STATE_INITIALIZING_NV 0x3240
+#define EGL_STREAM_TYPE_NV 0x3241
+#define EGL_STREAM_PROTOCOL_NV 0x3242
+#define EGL_STREAM_ENDPOINT_NV 0x3243
+#define EGL_STREAM_LOCAL_NV 0x3244
+#define EGL_STREAM_PRODUCER_NV 0x3247
+#define EGL_STREAM_CONSUMER_NV 0x3248
+#define EGL_STREAM_PROTOCOL_FD_NV 0x3246
+#endif /* EGL_NV_stream_remote */
+
+#ifndef EGL_NV_stream_reset
+#define EGL_NV_stream_reset 1
+#define EGL_SUPPORT_RESET_NV 0x3334
+#define EGL_SUPPORT_REUSE_NV 0x3335
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLRESETSTREAMNVPROC) (EGLDisplay dpy, EGLStreamKHR stream);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglResetStreamNV (EGLDisplay dpy, EGLStreamKHR stream);
+#endif
+#endif /* EGL_NV_stream_reset */
+
+#ifndef EGL_NV_stream_socket
+#define EGL_NV_stream_socket 1
+#define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B
+#define EGL_SOCKET_HANDLE_NV 0x324C
+#define EGL_SOCKET_TYPE_NV 0x324D
+#endif /* EGL_NV_stream_socket */
+
+#ifndef EGL_NV_stream_socket_inet
+#define EGL_NV_stream_socket_inet 1
+#define EGL_SOCKET_TYPE_INET_NV 0x324F
+#endif /* EGL_NV_stream_socket_inet */
+
+#ifndef EGL_NV_stream_socket_unix
+#define EGL_NV_stream_socket_unix 1
+#define EGL_SOCKET_TYPE_UNIX_NV 0x324E
+#endif /* EGL_NV_stream_socket_unix */
+
+#ifndef EGL_NV_stream_sync
+#define EGL_NV_stream_sync 1
+#define EGL_SYNC_NEW_FRAME_NV 0x321F
+typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list);
+#endif
+#endif /* EGL_NV_stream_sync */
+
+#ifndef EGL_NV_sync
+#define EGL_NV_sync 1
+typedef void *EGLSyncNV;
+typedef khronos_utime_nanoseconds_t EGLTimeNV;
+#ifdef KHRONOS_SUPPORT_INT64
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6
+#define EGL_SYNC_STATUS_NV 0x30E7
+#define EGL_SIGNALED_NV 0x30E8
+#define EGL_UNSIGNALED_NV 0x30E9
+#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001
+#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull
+#define EGL_ALREADY_SIGNALED_NV 0x30EA
+#define EGL_TIMEOUT_EXPIRED_NV 0x30EB
+#define EGL_CONDITION_SATISFIED_NV 0x30EC
+#define EGL_SYNC_TYPE_NV 0x30ED
+#define EGL_SYNC_CONDITION_NV 0x30EE
+#define EGL_SYNC_FENCE_NV 0x30EF
+#define EGL_NO_SYNC_NV EGL_CAST(EGLSyncNV,0)
+typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
+typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
+EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync);
+EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync);
+EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
+EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode);
+EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value);
+#endif
+#endif /* KHRONOS_SUPPORT_INT64 */
+#endif /* EGL_NV_sync */
+
+#ifndef EGL_NV_system_time
+#define EGL_NV_system_time 1
+typedef khronos_utime_nanoseconds_t EGLuint64NV;
+#ifdef KHRONOS_SUPPORT_INT64
+typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void);
+typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void);
+EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void);
+#endif
+#endif /* KHRONOS_SUPPORT_INT64 */
+#endif /* EGL_NV_system_time */
+
+#ifndef EGL_NV_triple_buffer
+#define EGL_NV_triple_buffer 1
+#define EGL_TRIPLE_BUFFER_NV 0x3230
+#endif /* EGL_NV_triple_buffer */
+
+#ifndef EGL_TIZEN_image_native_buffer
+#define EGL_TIZEN_image_native_buffer 1
+#define EGL_NATIVE_BUFFER_TIZEN 0x32A0
+#endif /* EGL_TIZEN_image_native_buffer */
+
+#ifndef EGL_TIZEN_image_native_surface
+#define EGL_TIZEN_image_native_surface 1
+#define EGL_NATIVE_SURFACE_TIZEN 0x32A1
+#endif /* EGL_TIZEN_image_native_surface */
+
+#ifndef EGL_WL_bind_wayland_display
+#define EGL_WL_bind_wayland_display 1
+#define PFNEGLBINDWAYLANDDISPLAYWL PFNEGLBINDWAYLANDDISPLAYWLPROC
+#define PFNEGLUNBINDWAYLANDDISPLAYWL PFNEGLUNBINDWAYLANDDISPLAYWLPROC
+#define PFNEGLQUERYWAYLANDBUFFERWL PFNEGLQUERYWAYLANDBUFFERWLPROC
+struct wl_display;
+struct wl_resource;
+#define EGL_WAYLAND_BUFFER_WL 0x31D5
+#define EGL_WAYLAND_PLANE_WL 0x31D6
+#define EGL_TEXTURE_Y_U_V_WL 0x31D7
+#define EGL_TEXTURE_Y_UV_WL 0x31D8
+#define EGL_TEXTURE_Y_XUXV_WL 0x31D9
+#define EGL_TEXTURE_EXTERNAL_WL 0x31DA
+#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWLPROC) (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display);
+EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryWaylandBufferWL (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value);
+#endif
+#endif /* EGL_WL_bind_wayland_display */
+
+#ifndef EGL_WL_create_wayland_buffer_from_image
+#define EGL_WL_create_wayland_buffer_from_image 1
+#define PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC
+struct wl_buffer;
+typedef struct wl_buffer *(EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC) (EGLDisplay dpy, EGLImageKHR image);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI struct wl_buffer *EGLAPIENTRY eglCreateWaylandBufferFromImageWL (EGLDisplay dpy, EGLImageKHR image);
+#endif
+#endif /* EGL_WL_create_wayland_buffer_from_image */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/glew/auto/EGL-Registry/api/EGL/eglplatform.h b/glew/auto/EGL-Registry/api/EGL/eglplatform.h
new file mode 100644
index 0000000..99362a2
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/EGL/eglplatform.h
@@ -0,0 +1,169 @@
+#ifndef __eglplatform_h_
+#define __eglplatform_h_
+
+/*
+** Copyright 2007-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: Apache-2.0
+*/
+
+/* Platform-specific types and definitions for egl.h
+ *
+ * Adopters may modify khrplatform.h and this file to suit their platform.
+ * You are encouraged to submit all modifications to the Khronos group so that
+ * they can be included in future versions of this file. Please submit changes
+ * by filing an issue or pull request on the public Khronos EGL Registry, at
+ * https://www.github.com/KhronosGroup/EGL-Registry/
+ */
+
+#include
+
+/* Macros used in EGL function prototype declarations.
+ *
+ * EGL functions should be prototyped as:
+ *
+ * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
+ * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
+ *
+ * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
+ */
+
+#ifndef EGLAPI
+#define EGLAPI KHRONOS_APICALL
+#endif
+
+#ifndef EGLAPIENTRY
+#define EGLAPIENTRY KHRONOS_APIENTRY
+#endif
+#define EGLAPIENTRYP EGLAPIENTRY*
+
+/* The types NativeDisplayType, NativeWindowType, and NativePixmapType
+ * are aliases of window-system-dependent types, such as X Display * or
+ * Windows Device Context. They must be defined in platform-specific
+ * code below. The EGL-prefixed versions of Native*Type are the same
+ * types, renamed in EGL 1.3 so all types in the API start with "EGL".
+ *
+ * Khronos STRONGLY RECOMMENDS that you use the default definitions
+ * provided below, since these changes affect both binary and source
+ * portability of applications using EGL running on different EGL
+ * implementations.
+ */
+
+#if defined(EGL_NO_PLATFORM_SPECIFIC_TYPES)
+
+typedef void *EGLNativeDisplayType;
+typedef void *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN 1
+#endif
+#include
+
+typedef HDC EGLNativeDisplayType;
+typedef HBITMAP EGLNativePixmapType;
+typedef HWND EGLNativeWindowType;
+
+#elif defined(__EMSCRIPTEN__)
+
+typedef int EGLNativeDisplayType;
+typedef int EGLNativePixmapType;
+typedef int EGLNativeWindowType;
+
+#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */
+
+typedef int EGLNativeDisplayType;
+typedef void *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(WL_EGL_PLATFORM)
+
+typedef struct wl_display *EGLNativeDisplayType;
+typedef struct wl_egl_pixmap *EGLNativePixmapType;
+typedef struct wl_egl_window *EGLNativeWindowType;
+
+#elif defined(__GBM__)
+
+typedef struct gbm_device *EGLNativeDisplayType;
+typedef struct gbm_bo *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(__ANDROID__) || defined(ANDROID)
+
+struct ANativeWindow;
+struct egl_native_pixmap_t;
+
+typedef void* EGLNativeDisplayType;
+typedef struct egl_native_pixmap_t* EGLNativePixmapType;
+typedef struct ANativeWindow* EGLNativeWindowType;
+
+#elif defined(USE_OZONE)
+
+typedef intptr_t EGLNativeDisplayType;
+typedef intptr_t EGLNativePixmapType;
+typedef intptr_t EGLNativeWindowType;
+
+#elif defined(USE_X11)
+
+/* X11 (tentative) */
+#include
+#include
+
+typedef Display *EGLNativeDisplayType;
+typedef Pixmap EGLNativePixmapType;
+typedef Window EGLNativeWindowType;
+
+#elif defined(__unix__)
+
+typedef void *EGLNativeDisplayType;
+typedef khronos_uintptr_t EGLNativePixmapType;
+typedef khronos_uintptr_t EGLNativeWindowType;
+
+#elif defined(__APPLE__)
+
+typedef int EGLNativeDisplayType;
+typedef void *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(__HAIKU__)
+
+#include
+
+typedef void *EGLNativeDisplayType;
+typedef khronos_uintptr_t EGLNativePixmapType;
+typedef khronos_uintptr_t EGLNativeWindowType;
+
+#elif defined(__Fuchsia__)
+
+typedef void *EGLNativeDisplayType;
+typedef khronos_uintptr_t EGLNativePixmapType;
+typedef khronos_uintptr_t EGLNativeWindowType;
+
+#else
+#error "Platform not recognized"
+#endif
+
+/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
+typedef EGLNativeDisplayType NativeDisplayType;
+typedef EGLNativePixmapType NativePixmapType;
+typedef EGLNativeWindowType NativeWindowType;
+
+
+/* Define EGLint. This must be a signed integral type large enough to contain
+ * all legal attribute names and values passed into and out of EGL, whether
+ * their type is boolean, bitmask, enumerant (symbolic constant), integer,
+ * handle, or other. While in general a 32-bit integer will suffice, if
+ * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
+ * integer type.
+ */
+typedef khronos_int32_t EGLint;
+
+
+/* C++ / C typecast macros for special EGL handle values */
+#if defined(__cplusplus)
+#define EGL_CAST(type, value) (static_cast(value))
+#else
+#define EGL_CAST(type, value) ((type) (value))
+#endif
+
+#endif /* __eglplatform_h */
diff --git a/glew/auto/EGL-Registry/api/KHR/khrplatform.h b/glew/auto/EGL-Registry/api/KHR/khrplatform.h
new file mode 100644
index 0000000..0164644
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/KHR/khrplatform.h
@@ -0,0 +1,311 @@
+#ifndef __khrplatform_h_
+#define __khrplatform_h_
+
+/*
+** Copyright (c) 2008-2018 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+/* Khronos platform-specific types and definitions.
+ *
+ * The master copy of khrplatform.h is maintained in the Khronos EGL
+ * Registry repository at https://github.com/KhronosGroup/EGL-Registry
+ * The last semantic modification to khrplatform.h was at commit ID:
+ * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
+ *
+ * Adopters may modify this file to suit their platform. Adopters are
+ * encouraged to submit platform specific modifications to the Khronos
+ * group so that they can be included in future versions of this file.
+ * Please submit changes by filing pull requests or issues on
+ * the EGL Registry repository linked above.
+ *
+ *
+ * See the Implementer's Guidelines for information about where this file
+ * should be located on your system and for more details of its use:
+ * http://www.khronos.org/registry/implementers_guide.pdf
+ *
+ * This file should be included as
+ * #include
+ * by Khronos client API header files that use its types and defines.
+ *
+ * The types in khrplatform.h should only be used to define API-specific types.
+ *
+ * Types defined in khrplatform.h:
+ * khronos_int8_t signed 8 bit
+ * khronos_uint8_t unsigned 8 bit
+ * khronos_int16_t signed 16 bit
+ * khronos_uint16_t unsigned 16 bit
+ * khronos_int32_t signed 32 bit
+ * khronos_uint32_t unsigned 32 bit
+ * khronos_int64_t signed 64 bit
+ * khronos_uint64_t unsigned 64 bit
+ * khronos_intptr_t signed same number of bits as a pointer
+ * khronos_uintptr_t unsigned same number of bits as a pointer
+ * khronos_ssize_t signed size
+ * khronos_usize_t unsigned size
+ * khronos_float_t signed 32 bit floating point
+ * khronos_time_ns_t unsigned 64 bit time in nanoseconds
+ * khronos_utime_nanoseconds_t unsigned time interval or absolute time in
+ * nanoseconds
+ * khronos_stime_nanoseconds_t signed time interval in nanoseconds
+ * khronos_boolean_enum_t enumerated boolean type. This should
+ * only be used as a base type when a client API's boolean type is
+ * an enum. Client APIs which use an integer or other type for
+ * booleans cannot use this as the base type for their boolean.
+ *
+ * Tokens defined in khrplatform.h:
+ *
+ * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
+ *
+ * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
+ * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
+ *
+ * Calling convention macros defined in this file:
+ * KHRONOS_APICALL
+ * KHRONOS_APIENTRY
+ * KHRONOS_APIATTRIBUTES
+ *
+ * These may be used in function prototypes as:
+ *
+ * KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
+ * int arg1,
+ * int arg2) KHRONOS_APIATTRIBUTES;
+ */
+
+#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
+# define KHRONOS_STATIC 1
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APICALL
+ *-------------------------------------------------------------------------
+ * This precedes the return type of the function in the function prototype.
+ */
+#if defined(KHRONOS_STATIC)
+ /* If the preprocessor constant KHRONOS_STATIC is defined, make the
+ * header compatible with static linking. */
+# define KHRONOS_APICALL
+#elif defined(_WIN32)
+# define KHRONOS_APICALL __declspec(dllimport)
+#elif defined (__SYMBIAN32__)
+# define KHRONOS_APICALL IMPORT_C
+#elif defined(__ANDROID__)
+# define KHRONOS_APICALL __attribute__((visibility("default")))
+#else
+# define KHRONOS_APICALL
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIENTRY
+ *-------------------------------------------------------------------------
+ * This follows the return type of the function and precedes the function
+ * name in the function prototype.
+ */
+#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
+ /* Win32 but not WinCE */
+# define KHRONOS_APIENTRY __stdcall
+#else
+# define KHRONOS_APIENTRY
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIATTRIBUTES
+ *-------------------------------------------------------------------------
+ * This follows the closing parenthesis of the function prototype arguments.
+ */
+#if defined (__ARMCC_2__)
+#define KHRONOS_APIATTRIBUTES __softfp
+#else
+#define KHRONOS_APIATTRIBUTES
+#endif
+
+/*-------------------------------------------------------------------------
+ * basic type definitions
+ *-----------------------------------------------------------------------*/
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
+
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+/*
+ * To support platform where unsigned long cannot be used interchangeably with
+ * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
+ * Ideally, we could just use (u)intptr_t everywhere, but this could result in
+ * ABI breakage if khronos_uintptr_t is changed from unsigned long to
+ * unsigned long long or similar (this results in different C++ name mangling).
+ * To avoid changes for existing platforms, we restrict usage of intptr_t to
+ * platforms where the size of a pointer is larger than the size of long.
+ */
+#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
+#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
+#define KHRONOS_USE_INTPTR_T
+#endif
+#endif
+
+#elif defined(__VMS ) || defined(__sgi)
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
+
+/*
+ * Win32
+ */
+typedef __int32 khronos_int32_t;
+typedef unsigned __int32 khronos_uint32_t;
+typedef __int64 khronos_int64_t;
+typedef unsigned __int64 khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(__sun__) || defined(__digital__)
+
+/*
+ * Sun or Digital
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#if defined(__arch64__) || defined(_LP64)
+typedef long int khronos_int64_t;
+typedef unsigned long int khronos_uint64_t;
+#else
+typedef long long int khronos_int64_t;
+typedef unsigned long long int khronos_uint64_t;
+#endif /* __arch64__ */
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif 0
+
+/*
+ * Hypothetical platform with no float or int64 support
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#define KHRONOS_SUPPORT_INT64 0
+#define KHRONOS_SUPPORT_FLOAT 0
+
+#else
+
+/*
+ * Generic fallback
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#endif
+
+
+/*
+ * Types that are (so far) the same on all platforms
+ */
+typedef signed char khronos_int8_t;
+typedef unsigned char khronos_uint8_t;
+typedef signed short int khronos_int16_t;
+typedef unsigned short int khronos_uint16_t;
+
+/*
+ * Types that differ between LLP64 and LP64 architectures - in LLP64,
+ * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
+ * to be the only LLP64 architecture in current use.
+ */
+#ifdef KHRONOS_USE_INTPTR_T
+typedef intptr_t khronos_intptr_t;
+typedef uintptr_t khronos_uintptr_t;
+#elif defined(_WIN64)
+typedef signed long long int khronos_intptr_t;
+typedef unsigned long long int khronos_uintptr_t;
+#else
+typedef signed long int khronos_intptr_t;
+typedef unsigned long int khronos_uintptr_t;
+#endif
+
+#if defined(_WIN64)
+typedef signed long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
+typedef signed long int khronos_ssize_t;
+typedef unsigned long int khronos_usize_t;
+#endif
+
+#if KHRONOS_SUPPORT_FLOAT
+/*
+ * Float type
+ */
+typedef float khronos_float_t;
+#endif
+
+#if KHRONOS_SUPPORT_INT64
+/* Time types
+ *
+ * These types can be used to represent a time interval in nanoseconds or
+ * an absolute Unadjusted System Time. Unadjusted System Time is the number
+ * of nanoseconds since some arbitrary system event (e.g. since the last
+ * time the system booted). The Unadjusted System Time is an unsigned
+ * 64 bit value that wraps back to 0 every 584 years. Time intervals
+ * may be either signed or unsigned.
+ */
+typedef khronos_uint64_t khronos_utime_nanoseconds_t;
+typedef khronos_int64_t khronos_stime_nanoseconds_t;
+#endif
+
+/*
+ * Dummy value used to pad enum types to 32 bits.
+ */
+#ifndef KHRONOS_MAX_ENUM
+#define KHRONOS_MAX_ENUM 0x7FFFFFFF
+#endif
+
+/*
+ * Enumerated boolean type
+ *
+ * Values other than zero should be considered to be true. Therefore
+ * comparisons should not be made against KHRONOS_TRUE.
+ */
+typedef enum {
+ KHRONOS_FALSE = 0,
+ KHRONOS_TRUE = 1,
+ KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
+} khronos_boolean_enum_t;
+
+#endif /* __khrplatform_h_ */
diff --git a/glew/auto/EGL-Registry/api/egl.xml b/glew/auto/EGL-Registry/api/egl.xml
new file mode 100644
index 0000000..e9b9eaf
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/egl.xml
@@ -0,0 +1,3532 @@
+
+
+
+
+
+
+
+
+ #include <KHR/khrplatform.h>
+ #include <EGL/eglplatform.h>
+
+
+
+
+
+
+
+
+
+
+
+ struct AHardwareBuffer;
+ struct wl_buffer;
+ struct wl_display;
+ struct wl_resource;
+
+
+
+ typedef unsigned int EGLBoolean;
+ typedef unsigned int EGLenum;
+ typedef intptr_t EGLAttribKHR;
+ typedef intptr_t EGLAttrib;
+ typedef void *EGLClientBuffer;
+ typedef void *EGLConfig;
+ typedef void *EGLContext;
+ typedef void *EGLDeviceEXT;
+ typedef void *EGLDisplay;
+ typedef void *EGLImage;
+ typedef void *EGLImageKHR;
+ typedef void *EGLLabelKHR;
+ typedef void *EGLObjectKHR;
+ typedef void *EGLOutputLayerEXT;
+ typedef void *EGLOutputPortEXT;
+ typedef void *EGLStreamKHR;
+ typedef void *EGLSurface;
+ typedef void *EGLSync;
+ typedef void *EGLSyncKHR;
+ typedef void *EGLSyncNV;
+ typedef void (*__eglMustCastToProperFunctionPointerType)(void);
+ typedef khronos_utime_nanoseconds_t EGLTimeKHR;
+ typedef khronos_utime_nanoseconds_t EGLTime;
+ typedef khronos_utime_nanoseconds_t EGLTimeNV;
+ typedef khronos_utime_nanoseconds_t EGLuint64NV;
+ typedef khronos_uint64_t EGLuint64KHR;
+ typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
+ typedef int EGLNativeFileDescriptorKHR;
+ typedef khronos_ssize_t EGLsizeiANDROID;
+ typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
+ typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
+ struct EGLClientPixmapHI {
+ void *pData;
+ EGLint iWidth;
+ EGLint iHeight;
+ EGLint iStride;
+};
+
+ typedef void ( *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
+ #define PFNEGLBINDWAYLANDDISPLAYWL PFNEGLBINDWAYLANDDISPLAYWLPROC
+ #define PFNEGLUNBINDWAYLANDDISPLAYWL PFNEGLUNBINDWAYLANDDISPLAYWLPROC
+ #define PFNEGLQUERYWAYLANDBUFFERWL PFNEGLQUERYWAYLANDBUFFERWLPROC
+ #define PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EGLBoolean eglBindAPI
+ EGLenum api
+
+
+ EGLBoolean eglBindTexImage
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint buffer
+
+
+ EGLBoolean eglChooseConfig
+ EGLDisplay dpy
+ const EGLint *attrib_list
+ EGLConfig *configs
+ EGLint config_size
+ EGLint *num_config
+
+
+ EGLBoolean eglClientSignalSyncEXT
+ EGLDisplay dpy
+ EGLSync sync
+ const EGLAttrib *attrib_list
+
+
+ EGLint eglClientWaitSync
+ EGLDisplay dpy
+ EGLSync sync
+ EGLint flags
+ EGLTime timeout
+
+
+ EGLint eglClientWaitSyncKHR
+ EGLDisplay dpy
+ EGLSyncKHR sync
+ EGLint flags
+ EGLTimeKHR timeout
+
+
+
+ EGLint eglClientWaitSyncNV
+ EGLSyncNV sync
+ EGLint flags
+ EGLTimeNV timeout
+
+
+ EGLBoolean eglCopyBuffers
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLNativePixmapType target
+
+
+ EGLContext eglCreateContext
+ EGLDisplay dpy
+ EGLConfig config
+ EGLContext share_context
+ const EGLint *attrib_list
+
+
+ EGLImageKHR eglCreateDRMImageMESA
+ EGLDisplay dpy
+ const EGLint *attrib_list
+
+
+ EGLSyncNV eglCreateFenceSyncNV
+ EGLDisplay dpy
+ EGLenum condition
+ const EGLint *attrib_list
+
+
+ EGLImage eglCreateImage
+ EGLDisplay dpy
+ EGLContext ctx
+ EGLenum target
+ EGLClientBuffer buffer
+ const EGLAttrib *attrib_list
+
+
+ EGLImageKHR eglCreateImageKHR
+ EGLDisplay dpy
+ EGLContext ctx
+ EGLenum target
+ EGLClientBuffer buffer
+ const EGLint *attrib_list
+
+
+ EGLClientBuffer eglCreateNativeClientBufferANDROID
+ const EGLint *attrib_list
+
+
+ EGLSurface eglCreatePbufferFromClientBuffer
+ EGLDisplay dpy
+ EGLenum buftype
+ EGLClientBuffer buffer
+ EGLConfig config
+ const EGLint *attrib_list
+
+
+ EGLSurface eglCreatePbufferSurface
+ EGLDisplay dpy
+ EGLConfig config
+ const EGLint *attrib_list
+
+
+ EGLSurface eglCreatePixmapSurface
+ EGLDisplay dpy
+ EGLConfig config
+ EGLNativePixmapType pixmap
+ const EGLint *attrib_list
+
+
+ EGLSurface eglCreatePixmapSurfaceHI
+ EGLDisplay dpy
+ EGLConfig config
+ struct EGLClientPixmapHI *pixmap
+
+
+ EGLSurface eglCreatePlatformPixmapSurface
+ EGLDisplay dpy
+ EGLConfig config
+ void *native_pixmap
+ const EGLAttrib *attrib_list
+
+
+ EGLSurface eglCreatePlatformPixmapSurfaceEXT
+ EGLDisplay dpy
+ EGLConfig config
+ void *native_pixmap
+ const EGLint *attrib_list
+
+
+ EGLSurface eglCreatePlatformWindowSurface
+ EGLDisplay dpy
+ EGLConfig config
+ void *native_window
+ const EGLAttrib *attrib_list
+
+
+ EGLSurface eglCreatePlatformWindowSurfaceEXT
+ EGLDisplay dpy
+ EGLConfig config
+ void *native_window
+ const EGLint *attrib_list
+
+
+ EGLStreamKHR eglCreateStreamFromFileDescriptorKHR
+ EGLDisplay dpy
+ EGLNativeFileDescriptorKHR file_descriptor
+
+
+ EGLStreamKHR eglCreateStreamKHR
+ EGLDisplay dpy
+ const EGLint *attrib_list
+
+
+ EGLStreamKHR eglCreateStreamAttribKHR
+ EGLDisplay dpy
+ const EGLAttrib *attrib_list
+
+
+ EGLSurface eglCreateStreamProducerSurfaceKHR
+ EGLDisplay dpy
+ EGLConfig config
+ EGLStreamKHR stream
+ const EGLint *attrib_list
+
+
+ EGLSyncKHR eglCreateStreamSyncNV
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLenum type
+ const EGLint *attrib_list
+
+
+ EGLSync eglCreateSync
+ EGLDisplay dpy
+ EGLenum type
+ const EGLAttrib *attrib_list
+
+
+ EGLSyncKHR eglCreateSyncKHR
+ EGLDisplay dpy
+ EGLenum type
+ const EGLint *attrib_list
+
+
+ EGLSyncKHR eglCreateSync64KHR
+ EGLDisplay dpy
+ EGLenum type
+ const EGLAttribKHR *attrib_list
+
+
+
+ EGLSurface eglCreateWindowSurface
+ EGLDisplay dpy
+ EGLConfig config
+ EGLNativeWindowType win
+ const EGLint *attrib_list
+
+
+ EGLint eglDebugMessageControlKHR
+ EGLDEBUGPROCKHR callback
+ const EGLAttrib *attrib_list
+
+
+ EGLBoolean eglDestroyContext
+ EGLDisplay dpy
+ EGLContext ctx
+
+
+ EGLBoolean eglDestroyImage
+ EGLDisplay dpy
+ EGLImage image
+
+
+ EGLBoolean eglDestroyImageKHR
+ EGLDisplay dpy
+ EGLImageKHR image
+
+
+
+ EGLBoolean eglDestroyStreamKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+
+
+ EGLBoolean eglDestroySurface
+ EGLDisplay dpy
+ EGLSurface surface
+
+
+ EGLBoolean eglDestroySync
+ EGLDisplay dpy
+ EGLSync sync
+
+
+ EGLBoolean eglDestroySyncKHR
+ EGLDisplay dpy
+ EGLSyncKHR sync
+
+
+
+ EGLBoolean eglDestroySyncNV
+ EGLSyncNV sync
+
+
+ EGLint eglDupNativeFenceFDANDROID
+ EGLDisplay dpy
+ EGLSyncKHR sync
+
+
+ EGLBoolean eglExportDMABUFImageMESA
+ EGLDisplay dpy
+ EGLImageKHR image
+ int *fds
+ EGLint *strides
+ EGLint *offsets
+
+
+ EGLBoolean eglExportDMABUFImageQueryMESA
+ EGLDisplay dpy
+ EGLImageKHR image
+ int *fourcc
+ int *num_planes
+ EGLuint64KHR *modifiers
+
+
+ EGLBoolean eglExportDRMImageMESA
+ EGLDisplay dpy
+ EGLImageKHR image
+ EGLint *name
+ EGLint *handle
+ EGLint *stride
+
+
+ EGLBoolean eglFenceNV
+ EGLSyncNV sync
+
+
+ EGLBoolean eglGetConfigAttrib
+ EGLDisplay dpy
+ EGLConfig config
+ EGLint attribute
+ EGLint *value
+
+
+ EGLBoolean eglGetConfigs
+ EGLDisplay dpy
+ EGLConfig *configs
+ EGLint config_size
+ EGLint *num_config
+
+
+ EGLContext eglGetCurrentContext
+
+
+ EGLDisplay eglGetCurrentDisplay
+
+
+ EGLSurface eglGetCurrentSurface
+ EGLint readdraw
+
+
+ EGLDisplay eglGetDisplay
+ EGLNativeDisplayType display_id
+
+
+ char *eglGetDisplayDriverConfig
+ EGLDisplay dpy
+
+
+ const char *eglGetDisplayDriverName
+ EGLDisplay dpy
+
+
+ EGLint eglGetError
+
+
+ EGLBoolean eglGetMscRateANGLE
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint *numerator
+ EGLint *denominator
+
+
+ EGLClientBuffer eglGetNativeClientBufferANDROID
+ const struct AHardwareBuffer *buffer
+
+
+ EGLBoolean eglGetOutputLayersEXT
+ EGLDisplay dpy
+ const EGLAttrib *attrib_list
+ EGLOutputLayerEXT *layers
+ EGLint max_layers
+ EGLint *num_layers
+
+
+ EGLBoolean eglGetOutputPortsEXT
+ EGLDisplay dpy
+ const EGLAttrib *attrib_list
+ EGLOutputPortEXT *ports
+ EGLint max_ports
+ EGLint *num_ports
+
+
+ EGLDisplay eglGetPlatformDisplay
+ EGLenum platform
+ void *native_display
+ const EGLAttrib *attrib_list
+
+
+ EGLDisplay eglGetPlatformDisplayEXT
+ EGLenum platform
+ void *native_display
+ const EGLint *attrib_list
+
+
+ __eglMustCastToProperFunctionPointerType eglGetProcAddress
+ const char *procname
+
+
+ EGLNativeFileDescriptorKHR eglGetStreamFileDescriptorKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+
+
+ EGLBoolean eglGetSyncAttrib
+ EGLDisplay dpy
+ EGLSync sync
+ EGLint attribute
+ EGLAttrib *value
+
+
+ EGLBoolean eglGetSyncAttribKHR
+ EGLDisplay dpy
+ EGLSyncKHR sync
+ EGLint attribute
+ EGLint *value
+
+
+ EGLBoolean eglGetSyncAttribNV
+ EGLSyncNV sync
+ EGLint attribute
+ EGLint *value
+
+
+ EGLuint64NV eglGetSystemTimeFrequencyNV
+
+
+ EGLuint64NV eglGetSystemTimeNV
+
+
+ EGLBoolean eglInitialize
+ EGLDisplay dpy
+ EGLint *major
+ EGLint *minor
+
+
+ EGLint eglLabelObjectKHR
+ EGLDisplay display
+ EGLenum objectType
+ EGLObjectKHR object
+ EGLLabelKHR label
+
+
+ EGLBoolean eglLockSurfaceKHR
+ EGLDisplay dpy
+ EGLSurface surface
+ const EGLint *attrib_list
+
+
+ EGLBoolean eglMakeCurrent
+ EGLDisplay dpy
+ EGLSurface draw
+ EGLSurface read
+ EGLContext ctx
+
+
+ EGLBoolean eglOutputLayerAttribEXT
+ EGLDisplay dpy
+ EGLOutputLayerEXT layer
+ EGLint attribute
+ EGLAttrib value
+
+
+ EGLBoolean eglOutputPortAttribEXT
+ EGLDisplay dpy
+ EGLOutputPortEXT port
+ EGLint attribute
+ EGLAttrib value
+
+
+ EGLBoolean eglPostSubBufferNV
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint x
+ EGLint y
+ EGLint width
+ EGLint height
+
+
+ EGLBoolean eglPresentationTimeANDROID
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLnsecsANDROID time
+
+
+ EGLBoolean eglGetCompositorTimingSupportedANDROID
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint name
+
+
+ EGLBoolean eglGetCompositorTimingANDROID
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint numTimestamps
+ const EGLint *names
+ EGLnsecsANDROID *values
+
+
+ EGLBoolean eglGetNextFrameIdANDROID
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLuint64KHR *frameId
+
+
+ EGLBoolean eglGetFrameTimestampSupportedANDROID
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint timestamp
+
+
+ EGLBoolean eglGetFrameTimestampsANDROID
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLuint64KHR frameId
+ EGLint numTimestamps
+ const EGLint *timestamps
+ EGLnsecsANDROID *values
+
+
+ EGLenum eglQueryAPI
+
+
+ EGLBoolean eglQueryContext
+ EGLDisplay dpy
+ EGLContext ctx
+ EGLint attribute
+ EGLint *value
+
+
+ EGLBoolean eglQueryDebugKHR
+ EGLint attribute
+ EGLAttrib *value
+
+
+ EGLBoolean eglQueryDeviceAttribEXT
+ EGLDeviceEXT device
+ EGLint attribute
+ EGLAttrib *value
+
+
+ const char *eglQueryDeviceStringEXT
+ EGLDeviceEXT device
+ EGLint name
+
+
+ EGLBoolean eglQueryDevicesEXT
+ EGLint max_devices
+ EGLDeviceEXT *devices
+ EGLint *num_devices
+
+
+ EGLBoolean eglQueryDisplayAttribEXT
+ EGLDisplay dpy
+ EGLint attribute
+ EGLAttrib *value
+
+
+
+ EGLBoolean eglQueryDisplayAttribKHR
+ EGLDisplay dpy
+ EGLint name
+ EGLAttrib *value
+
+
+ EGLBoolean eglQueryDisplayAttribNV
+ EGLDisplay dpy
+ EGLint attribute
+ EGLAttrib *value
+
+
+
+ EGLBoolean eglQueryDmaBufFormatsEXT
+ EGLDisplay dpy
+ EGLint max_formats
+ EGLint *formats
+ EGLint *num_formats
+
+
+ EGLBoolean eglQueryDmaBufModifiersEXT
+ EGLDisplay dpy
+ EGLint format
+ EGLint max_modifiers
+ EGLuint64KHR *modifiers
+ EGLBoolean *external_only
+ EGLint *num_modifiers
+
+
+ EGLBoolean eglQueryNativeDisplayNV
+ EGLDisplay dpy
+ EGLNativeDisplayType *display_id
+
+
+ EGLBoolean eglQueryNativePixmapNV
+ EGLDisplay dpy
+ EGLSurface surf
+ EGLNativePixmapType *pixmap
+
+
+ EGLBoolean eglQueryNativeWindowNV
+ EGLDisplay dpy
+ EGLSurface surf
+ EGLNativeWindowType *window
+
+
+ EGLBoolean eglQueryOutputLayerAttribEXT
+ EGLDisplay dpy
+ EGLOutputLayerEXT layer
+ EGLint attribute
+ EGLAttrib *value
+
+
+ const char *eglQueryOutputLayerStringEXT
+ EGLDisplay dpy
+ EGLOutputLayerEXT layer
+ EGLint name
+
+
+ EGLBoolean eglQueryOutputPortAttribEXT
+ EGLDisplay dpy
+ EGLOutputPortEXT port
+ EGLint attribute
+ EGLAttrib *value
+
+
+ const char *eglQueryOutputPortStringEXT
+ EGLDisplay dpy
+ EGLOutputPortEXT port
+ EGLint name
+
+
+ EGLBoolean eglQueryStreamKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLenum attribute
+ EGLint *value
+
+
+ EGLBoolean eglQueryStreamAttribKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLenum attribute
+ EGLAttrib *value
+
+
+ EGLBoolean eglQueryStreamMetadataNV
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLenum name
+ EGLint n
+ EGLint offset
+ EGLint size
+ void *data
+
+
+ EGLBoolean eglQueryStreamTimeKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLenum attribute
+ EGLTimeKHR *value
+
+
+ EGLBoolean eglQueryStreamu64KHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLenum attribute
+ EGLuint64KHR *value
+
+
+ const char *eglQueryString
+ EGLDisplay dpy
+ EGLint name
+
+
+ EGLBoolean eglQuerySupportedCompressionRatesEXT
+ EGLDisplay dpy
+ EGLConfig config
+ const EGLAttrib *attrib_list
+ EGLint *rates
+ EGLint rate_size
+ EGLint *num_rates
+
+
+ EGLBoolean eglQuerySurface
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint attribute
+ EGLint *value
+
+
+ EGLBoolean eglQuerySurface64KHR
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint attribute
+ EGLAttribKHR *value
+
+
+ EGLBoolean eglQuerySurfacePointerANGLE
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint attribute
+ void **value
+
+
+ EGLBoolean eglReleaseTexImage
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint buffer
+
+
+ EGLBoolean eglReleaseThread
+
+
+ EGLBoolean eglResetStreamNV
+ EGLDisplay dpy
+ EGLStreamKHR stream
+
+
+ void eglSetBlobCacheFuncsANDROID
+ EGLDisplay dpy
+ EGLSetBlobFuncANDROID set
+ EGLGetBlobFuncANDROID get
+
+
+ EGLBoolean eglSetDamageRegionKHR
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint *rects
+ EGLint n_rects
+
+
+ EGLBoolean eglSetStreamAttribKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLenum attribute
+ EGLAttrib value
+
+
+ EGLBoolean eglSetStreamMetadataNV
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLint n
+ EGLint offset
+ EGLint size
+ const void *data
+
+
+ EGLBoolean eglSignalSyncKHR
+ EGLDisplay dpy
+ EGLSyncKHR sync
+ EGLenum mode
+
+
+ EGLBoolean eglSignalSyncNV
+ EGLSyncNV sync
+ EGLenum mode
+
+
+ EGLBoolean eglStreamAttribKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLenum attribute
+ EGLint value
+
+
+ EGLBoolean eglStreamConsumerAcquireKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+
+
+ EGLBoolean eglStreamConsumerAcquireAttribKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ const EGLAttrib *attrib_list
+
+
+ EGLBoolean eglStreamConsumerGLTextureExternalKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+
+
+ EGLBoolean eglStreamConsumerGLTextureExternalAttribsNV
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ const EGLAttrib *attrib_list
+
+
+ EGLBoolean eglStreamConsumerOutputEXT
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLOutputLayerEXT layer
+
+
+ EGLBoolean eglStreamConsumerReleaseKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+
+
+ EGLBoolean eglStreamConsumerReleaseAttribKHR
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ const EGLAttrib *attrib_list
+
+
+ EGLBoolean eglStreamFlushNV
+ EGLDisplay dpy
+ EGLStreamKHR stream
+
+
+ EGLBoolean eglSurfaceAttrib
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint attribute
+ EGLint value
+
+
+ EGLBoolean eglSwapBuffers
+ EGLDisplay dpy
+ EGLSurface surface
+
+
+ EGLBoolean eglSwapBuffersWithDamageEXT
+ EGLDisplay dpy
+ EGLSurface surface
+ const EGLint *rects
+ EGLint n_rects
+
+
+ EGLBoolean eglSwapBuffersWithDamageKHR
+ EGLDisplay dpy
+ EGLSurface surface
+ const EGLint *rects
+ EGLint n_rects
+
+
+ EGLBoolean eglSwapBuffersRegionNOK
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint numRects
+ const EGLint *rects
+
+
+ EGLBoolean eglSwapBuffersRegion2NOK
+ EGLDisplay dpy
+ EGLSurface surface
+ EGLint numRects
+ const EGLint *rects
+
+
+ EGLBoolean eglSwapInterval
+ EGLDisplay dpy
+ EGLint interval
+
+
+ EGLBoolean eglTerminate
+ EGLDisplay dpy
+
+
+ EGLBoolean eglUnlockSurfaceKHR
+ EGLDisplay dpy
+ EGLSurface surface
+
+
+ EGLBoolean eglUnsignalSyncEXT
+ EGLDisplay dpy
+ EGLSync sync
+ const EGLAttrib *attrib_list
+
+
+ EGLBoolean eglWaitClient
+
+
+ EGLBoolean eglWaitGL
+
+
+ EGLBoolean eglWaitNative
+ EGLint engine
+
+
+ EGLBoolean eglWaitSync
+ EGLDisplay dpy
+ EGLSync sync
+ EGLint flags
+
+
+ EGLint eglWaitSyncKHR
+ EGLDisplay dpy
+ EGLSyncKHR sync
+ EGLint flags
+
+
+ EGLBoolean eglCompositorSetContextListEXT
+ const EGLint *external_ref_ids
+ EGLint num_entries
+
+
+ EGLBoolean eglCompositorSetContextAttributesEXT
+ EGLint external_ref_id
+ const EGLint *context_attributes
+ EGLint num_entries
+
+
+ EGLBoolean eglCompositorSetWindowListEXT
+ EGLint external_ref_id
+ const EGLint *external_win_ids
+ EGLint num_entries
+
+
+ EGLBoolean eglCompositorSetWindowAttributesEXT
+ EGLint external_win_id
+ const EGLint *window_attributes
+ EGLint num_entries
+
+
+ EGLBoolean eglCompositorBindTexWindowEXT
+ EGLint external_win_id
+
+
+ EGLBoolean eglCompositorSetSizeEXT
+ EGLint external_win_id
+ EGLint width
+ EGLint height
+
+
+ EGLBoolean eglCompositorSwapPolicyEXT
+ EGLint external_win_id
+ EGLint policy
+
+
+ EGLBoolean eglBindWaylandDisplayWL
+ EGLDisplay dpy
+ struct wl_display *display
+
+
+ EGLBoolean eglUnbindWaylandDisplayWL
+ EGLDisplay dpy
+ struct wl_display *display
+
+
+ EGLBoolean eglQueryWaylandBufferWL
+ EGLDisplay dpy
+ struct wl_resource *buffer
+ EGLint attribute
+ EGLint *value
+
+
+ struct wl_buffer *eglCreateWaylandBufferFromImageWL
+ EGLDisplay dpy
+ EGLImageKHR image
+
+
+ EGLBoolean eglStreamImageConsumerConnectNV
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLint num_modifiers
+ const EGLuint64KHR *modifiers
+ const EGLAttrib *attrib_list
+
+
+ EGLint eglQueryStreamConsumerEventNV
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLTime timeout
+ EGLenum *event
+ EGLAttrib *aux
+
+
+ EGLBoolean eglStreamAcquireImageNV
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLImage *pImage
+ EGLSync sync
+
+
+ EGLBoolean eglStreamReleaseImageNV
+ EGLDisplay dpy
+ EGLStreamKHR stream
+ EGLImage image
+ EGLSync sync
+
+
+ EGLBoolean eglQueryDeviceBinaryEXT
+ EGLDeviceEXT device
+ EGLint name
+ EGLint max_size
+ void *value
+ EGLint *size
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/glew/auto/EGL-Registry/api/egltest.c b/glew/auto/EGL-Registry/api/egltest.c
new file mode 100644
index 0000000..cf3fe56
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/egltest.c
@@ -0,0 +1,8 @@
+/*
+ * Copyright 2013-2020 The Khronos Group Inc.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/* Simple test that generated EGL headers compile with C and C++ */
+#include "EGL/egl.h"
+#include "EGL/eglext.h"
diff --git a/glew/auto/EGL-Registry/api/genheaders.py b/glew/auto/EGL-Registry/api/genheaders.py
new file mode 100644
index 0000000..ce15d6d
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/genheaders.py
@@ -0,0 +1,619 @@
+#!/usr/bin/python -i
+#
+# Copyright 2013-2020 The Khronos Group Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+import sys, time, pdb, string, cProfile
+from reg import *
+
+# debug - start header generation in debugger
+# dump - dump registry after loading
+# profile - enable Python profiling
+# protect - whether to use #ifndef protections
+# registry - use specified XML registry instead of gl.xml
+# target - string name of target header, or all targets if None
+# timeit - time length of registry loading & header generation
+# validate - validate return & parameter group tags against
+debug = False
+dump = False
+profile = False
+protect = True
+target = None
+timeit = False
+validate= False
+# Default input / log files
+errFilename = None
+diagFilename = 'diag.txt'
+regFilename = 'gl.xml'
+
+
+# Simple timer functions
+startTime = None
+def startTimer():
+ global startTime
+ startTime = time.process_time()
+def endTimer(msg):
+ global startTime
+ endTime = time.process_time()
+ if (timeit):
+ write(msg, endTime - startTime)
+ startTime = None
+
+# Turn a list of strings into a regexp string matching exactly those strings
+def makeREstring(list):
+ return '^(' + '|'.join(list) + ')$'
+
+# These are "mandatory" OpenGL ES 1 extensions, to
+# be included in the core GLES/gl.h header.
+es1CoreList = [
+ 'GL_OES_read_format',
+ 'GL_OES_compressed_paletted_texture',
+ 'GL_OES_point_size_array',
+ 'GL_OES_point_sprite'
+]
+
+# Descriptive names for various regexp patterns used to select
+# versions and extensions
+
+allVersions = allExtensions = '.*'
+noVersions = noExtensions = None
+gl12andLaterPat = '1\.[2-9]|[234]\.[0-9]'
+gles2onlyPat = '2\.[0-9]'
+gles2through30Pat = '2\.[0-9]|3\.0'
+gles2through31Pat = '2\.[0-9]|3\.[01]'
+gles2through32Pat = '2\.[0-9]|3\.[012]'
+es1CorePat = makeREstring(es1CoreList)
+# Extensions in old glcorearb.h but not yet tagged accordingly in gl.xml
+glCoreARBPat = None
+glx13andLaterPat = '1\.[3-9]'
+
+# Copyright text prefixing all headers (list of strings).
+prefixStrings = [
+ '/*',
+ '** Copyright 2013-2020 The Khronos Group Inc.',
+ '** SPDX-' + 'License-Identifier: Apache-2.0',
+ '**',
+ '** This header is generated from the Khronos EGL XML API Registry.',
+ '** The current version of the Registry, generator scripts',
+ '** used to make the header, and the header can be found at',
+ '** http://www.khronos.org/registry/egl',
+ '**',
+ '** Khronos $' + 'Revision$ on $' + 'Date$',
+ '*/',
+ ''
+]
+
+# glext.h / glcorearb.h define calling conventions inline (no GL *platform.h)
+glExtPlatformStrings = [
+ '#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)',
+ '#ifndef WIN32_LEAN_AND_MEAN',
+ '#define WIN32_LEAN_AND_MEAN 1',
+ '#endif',
+ '#include ',
+ '#endif',
+ '',
+ '#ifndef APIENTRY',
+ '#define APIENTRY',
+ '#endif',
+ '#ifndef APIENTRYP',
+ '#define APIENTRYP APIENTRY *',
+ '#endif',
+ '#ifndef GLAPI',
+ '#define GLAPI extern',
+ '#endif',
+ ''
+]
+
+glCorearbPlatformStrings = glExtPlatformStrings + [
+ '/* glcorearb.h is for use with OpenGL core profile implementations.',
+ '** It should should be placed in the same directory as gl.h and',
+ '** included as .',
+ '**',
+ '** glcorearb.h includes only APIs in the latest OpenGL core profile',
+ '** implementation together with APIs in newer ARB extensions which ',
+ '** can be supported by the core profile. It does not, and never will',
+ '** include functionality removed from the core profile, such as',
+ '** fixed-function vertex and fragment processing.',
+ '**',
+ '** Do not #include both and either of or',
+ '** in the same source file.',
+ '*/',
+ ''
+]
+
+# wglext.h needs Windows include
+wglPlatformStrings = [
+ '#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)',
+ '#define WIN32_LEAN_AND_MEAN 1',
+ '#include ',
+ '#endif',
+ '',
+]
+
+# Different APIs use different *platform.h files to define calling
+# conventions
+gles1PlatformStrings = [ '#include ', '' ]
+gles2PlatformStrings = [ '#include ', '' ]
+gles3PlatformStrings = [ '#include ', '' ]
+glsc2PlatformStrings = [ '#include ', '' ]
+eglPlatformStrings = [ '#include ', '' ]
+
+# GLES headers have a small addition to calling convention headers for function pointer typedefs
+apiEntryPrefixStrings = [
+ '#ifndef GL_APIENTRYP',
+ '#define GL_APIENTRYP GL_APIENTRY*',
+ '#endif',
+ ''
+]
+
+# GLES 2/3 core API headers use a different protection mechanism for
+# prototypes, per bug 14206.
+glesProtoPrefixStrings = [
+ '#ifndef GL_GLES_PROTOTYPES',
+ '#define GL_GLES_PROTOTYPES 1',
+ '#endif',
+ ''
+]
+
+# EGL headers use a protection mechanism similar to GLES.
+eglProtoPrefixStrings = [
+ '#ifndef EGL_EGL_PROTOTYPES',
+ '#define EGL_EGL_PROTOTYPES 1',
+ '#endif',
+ ''
+]
+
+# Insert generation date in a comment for headers not having *GLEXT_VERSION macros
+genDateCommentString = [
+ format('/* Generated on date %s */' % time.strftime('%Y%m%d')),
+ ''
+]
+
+# GL_GLEXT_VERSION is defined only in glext.h
+glextVersionStrings = [
+ format('#define GL_GLEXT_VERSION %s' % time.strftime('%Y%m%d')),
+ ''
+]
+# WGL_WGLEXT_VERSION is defined only in wglext.h
+wglextVersionStrings = [
+ format('#define WGL_WGLEXT_VERSION %s' % time.strftime('%Y%m%d')),
+ ''
+]
+# GLX_GLXEXT_VERSION is defined only in glxext.h
+glxextVersionStrings = [
+ format('#define GLX_GLXEXT_VERSION %s' % time.strftime('%Y%m%d')),
+ ''
+]
+# EGL_EGLEXT_VERSION is defined only in eglext.h
+eglextVersionStrings = [
+ format('#define EGL_EGLEXT_VERSION %s' % time.strftime('%Y%m%d')),
+ ''
+]
+
+# Defaults for generating re-inclusion protection wrappers (or not)
+protectFile = protect
+protectFeature = protect
+protectProto = protect
+
+buildList = [
+ # GL API 1.2+ + extensions - GL/glext.h
+ CGeneratorOptions(
+ filename = 'GL/glext.h',
+ apiname = 'gl',
+ profile = 'compatibility',
+ versions = allVersions,
+ emitversions = gl12andLaterPat,
+ defaultExtensions = 'gl', # Default extensions for GL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + glExtPlatformStrings + glextVersionStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GLAPI ',
+ apientry = 'APIENTRY ',
+ apientryp = 'APIENTRYP '),
+ # GL core profile + extensions - GL/glcorearb.h
+ CGeneratorOptions(
+ filename = 'GL/glcorearb.h',
+ apiname = 'gl',
+ profile = 'core',
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = 'glcore', # Default extensions for GL core profile (only)
+ addExtensions = glCoreARBPat,
+ removeExtensions = None,
+ prefixText = prefixStrings + glCorearbPlatformStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GLAPI ',
+ apientry = 'APIENTRY ',
+ apientryp = 'APIENTRYP '),
+ # GLES 1.x API + mandatory extensions - GLES/gl.h (no function pointers)
+ CGeneratorOptions(
+ filename = 'GLES/gl.h',
+ apiname = 'gles1',
+ profile = 'common',
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = es1CorePat, # Add mandatory ES1 extensions in GLES1/gl.h
+ removeExtensions = None,
+ prefixText = prefixStrings + gles1PlatformStrings + genDateCommentString,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = False, # Core ES API functions are in the static link libraries
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GL_API ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 1.x extensions - GLES/glext.h
+ CGeneratorOptions(
+ filename = 'GLES/glext.h',
+ apiname = 'gles1',
+ profile = 'common',
+ versions = allVersions,
+ emitversions = noVersions,
+ defaultExtensions = 'gles1', # Default extensions for GLES 1
+ addExtensions = None,
+ removeExtensions = es1CorePat, # Remove mandatory ES1 extensions in GLES1/glext.h
+ prefixText = prefixStrings + apiEntryPrefixStrings + genDateCommentString,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GL_API ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 2.0 API - GLES2/gl2.h (now with function pointers)
+ CGeneratorOptions(
+ filename = 'GLES2/gl2.h',
+ apiname = 'gles2',
+ profile = 'common',
+ versions = gles2onlyPat,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + gles2PlatformStrings + apiEntryPrefixStrings + glesProtoPrefixStrings + genDateCommentString,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = 'nonzero', # Core ES API functions are in the static link libraries
+ protectProtoStr = 'GL_GLES_PROTOTYPES',
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 3.1 / 3.0 / 2.0 extensions - GLES2/gl2ext.h
+ CGeneratorOptions(
+ filename = 'GLES2/gl2ext.h',
+ apiname = 'gles2',
+ profile = 'common',
+ versions = gles2onlyPat,
+ emitversions = None,
+ defaultExtensions = 'gles2', # Default extensions for GLES 2
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + apiEntryPrefixStrings + genDateCommentString,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 3.2 API - GLES3/gl32.h (now with function pointers)
+ CGeneratorOptions(
+ filename = 'GLES3/gl32.h',
+ apiname = 'gles2',
+ profile = 'common',
+ versions = gles2through32Pat,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + gles3PlatformStrings + apiEntryPrefixStrings + glesProtoPrefixStrings + genDateCommentString,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = 'nonzero', # Core ES API functions are in the static link libraries
+ protectProtoStr = 'GL_GLES_PROTOTYPES',
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 3.1 API - GLES3/gl31.h (now with function pointers)
+ CGeneratorOptions(
+ filename = 'GLES3/gl31.h',
+ apiname = 'gles2',
+ profile = 'common',
+ versions = gles2through31Pat,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + gles3PlatformStrings + apiEntryPrefixStrings + glesProtoPrefixStrings + genDateCommentString,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = 'nonzero', # Core ES API functions are in the static link libraries
+ protectProtoStr = 'GL_GLES_PROTOTYPES',
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 3.0 API - GLES3/gl3.h (now with function pointers)
+ CGeneratorOptions(
+ filename = 'GLES3/gl3.h',
+ apiname = 'gles2',
+ profile = 'common',
+ versions = gles2through30Pat,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + gles3PlatformStrings + apiEntryPrefixStrings + glesProtoPrefixStrings + genDateCommentString,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = 'nonzero', # Core ES API functions are in the static link libraries
+ protectProtoStr = 'GL_GLES_PROTOTYPES',
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLSC 2.0 API - GLSC2/glsc2.h
+ CGeneratorOptions(
+ filename = 'GLSC2/glsc2.h',
+ apiname = 'glsc2',
+ profile = 'common',
+ versions = gles2onlyPat,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + glsc2PlatformStrings + apiEntryPrefixStrings + genDateCommentString,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = False,
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLSC 2.0 extensions - GLSC2/gl2ext.h
+ CGeneratorOptions(
+ filename = 'GLSC2/glsc2ext.h',
+ apiname = 'glsc2',
+ profile = 'common',
+ versions = gles2onlyPat,
+ emitversions = None,
+ defaultExtensions = 'glsc2', # Default extensions for GLSC 2
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + apiEntryPrefixStrings + genDateCommentString,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = False,
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # EGL API - EGL/egl.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'EGL/egl.h',
+ apiname = 'egl',
+ profile = None,
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + eglPlatformStrings + eglProtoPrefixStrings + genDateCommentString,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = 'nonzero',
+ protectProtoStr = 'EGL_EGL_PROTOTYPES',
+ apicall = 'EGLAPI ',
+ apientry = 'EGLAPIENTRY ',
+ apientryp = 'EGLAPIENTRYP '),
+ # EGL extensions - EGL/eglext.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'EGL/eglext.h',
+ apiname = 'egl',
+ profile = None,
+ versions = allVersions,
+ emitversions = None,
+ defaultExtensions = 'egl', # Default extensions for EGL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + eglPlatformStrings + eglextVersionStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'EGL_EGLEXT_PROTOTYPES',
+ apicall = 'EGLAPI ',
+ apientry = 'EGLAPIENTRY ',
+ apientryp = 'EGLAPIENTRYP '),
+ # GLX 1.* API - GL/glx.h
+ CGeneratorOptions(
+ filename = 'GL/glx.h',
+ apiname = 'glx',
+ profile = None,
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ # add glXPlatformStrings?
+ prefixText = prefixStrings + genDateCommentString,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GLX_GLXEXT_PROTOTYPES',
+ apicall = '',
+ apientry = '',
+ apientryp = ' *'),
+ # GLX 1.3+ API + extensions - GL/glxext.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'GL/glxext.h',
+ apiname = 'glx',
+ profile = None,
+ versions = allVersions,
+ emitversions = glx13andLaterPat,
+ defaultExtensions = 'glx', # Default extensions for GLX
+ addExtensions = None,
+ removeExtensions = None,
+ # add glXPlatformStrings?
+ prefixText = prefixStrings + glxextVersionStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GLX_GLXEXT_PROTOTYPES',
+ apicall = '',
+ apientry = '',
+ apientryp = ' *'),
+ # WGL API + extensions - GL/wgl.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'GL/wgl.h',
+ apiname = 'wgl',
+ profile = None,
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = 'wgl', # Default extensions for WGL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + wglPlatformStrings + genDateCommentString,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'WGL_WGLEXT_PROTOTYPES',
+ apicall = '',
+ apientry = 'WINAPI ',
+ apientryp = 'WINAPI * '),
+ # WGL extensions - GL/wglext.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'GL/wglext.h',
+ apiname = 'wgl',
+ profile = None,
+ versions = allVersions,
+ emitversions = None,
+ defaultExtensions = 'wgl', # Default extensions for WGL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + wglPlatformStrings + wglextVersionStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'WGL_WGLEXT_PROTOTYPES',
+ apicall = '',
+ apientry = 'WINAPI ',
+ apientryp = 'WINAPI * '),
+ # End of list
+ None
+]
+
+def genHeaders():
+ # Loop over targets, building each
+ generated = 0
+ for genOpts in buildList:
+ if (genOpts == None):
+ break
+ if (target and target != genOpts.filename):
+ # write('*** Skipping', genOpts.filename)
+ continue
+ write('*** Building', genOpts.filename)
+ generated = generated + 1
+ startTimer()
+ gen = COutputGenerator(errFile=errWarn,
+ warnFile=errWarn,
+ diagFile=diag)
+ reg.setGenerator(gen)
+ reg.apiGen(genOpts)
+ write('** Generated', genOpts.filename)
+ endTimer('Time to generate ' + genOpts.filename + ' =')
+ if (target and generated == 0):
+ write('Failed to generate target:', target)
+
+if __name__ == '__main__':
+ i = 1
+ while (i < len(sys.argv)):
+ arg = sys.argv[i]
+ i = i + 1
+ if (arg == '-debug'):
+ write('Enabling debug (-debug)', file=sys.stderr)
+ debug = True
+ elif (arg == '-dump'):
+ write('Enabling dump (-dump)', file=sys.stderr)
+ dump = True
+ elif (arg == '-noprotect'):
+ write('Disabling inclusion protection in output headers', file=sys.stderr)
+ protect = False
+ elif (arg == '-profile'):
+ write('Enabling profiling (-profile)', file=sys.stderr)
+ profile = True
+ elif (arg == '-registry'):
+ regFilename = sys.argv[i]
+ i = i+1
+ write('Using registry ', regFilename, file=sys.stderr)
+ elif (arg == '-time'):
+ write('Enabling timing (-time)', file=sys.stderr)
+ timeit = True
+ elif (arg == '-validate'):
+ write('Enabling group validation (-validate)', file=sys.stderr)
+ validate = True
+ elif (arg[0:1] == '-'):
+ write('Unrecognized argument:', arg, file=sys.stderr)
+ exit(1)
+ else:
+ target = arg
+ write('Using target', target, file=sys.stderr)
+
+ # Load & parse registry
+ reg = Registry()
+
+ startTimer()
+ tree = etree.parse(regFilename)
+ endTimer('Time to make ElementTree =')
+
+ startTimer()
+ reg.loadElementTree(tree)
+ endTimer('Time to parse ElementTree =')
+
+ if (validate):
+ reg.validateGroups()
+
+ if (dump):
+ write('***************************************')
+ write('Performing Registry dump to regdump.txt')
+ write('***************************************')
+ reg.dumpReg(filehandle = open('regdump.txt','w'))
+
+ # create error/warning & diagnostic files
+ if (errFilename):
+ errWarn = open(errFilename,'w')
+ else:
+ errWarn = sys.stderr
+ diag = open(diagFilename, 'w')
+
+ if (debug):
+ pdb.run('genHeaders()')
+ elif (profile):
+ import cProfile, pstats
+ cProfile.run('genHeaders()', 'profile.txt')
+ p = pstats.Stats('profile.txt')
+ p.strip_dirs().sort_stats('time').print_stats(50)
+ else:
+ genHeaders()
diff --git a/glew/auto/EGL-Registry/api/reg.py b/glew/auto/EGL-Registry/api/reg.py
new file mode 100644
index 0000000..6ac25f3
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/reg.py
@@ -0,0 +1,1168 @@
+#!/usr/bin/python -i
+#
+# Copyright 2013-2020 The Khronos Group Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+import io,os,re,string,sys
+from lxml import etree
+import subprocess
+
+def write(*args, **kwargs):
+ file = kwargs.pop('file', sys.stdout)
+ end = kwargs.pop('end', '\n')
+ file.write(' '.join([str(arg) for arg in args]))
+ file.write(end)
+
+# noneStr - returns string argument, or "" if argument is None.
+# Used in converting lxml Elements into text.
+# str - string to convert
+def noneStr(str):
+ if (str):
+ return str
+ else:
+ return ""
+
+# matchAPIProfile - returns whether an API and profile
+# being generated matches an element's profile
+# api - string naming the API to match
+# profile - string naming the profile to match
+# elem - Element which (may) have 'api' and 'profile'
+# attributes to match to.
+# If a tag is not present in the Element, the corresponding API
+# or profile always matches.
+# Otherwise, the tag must exactly match the API or profile.
+# Thus, if 'profile' = core:
+# with no attribute will match
+# will match
+# will not match
+# Possible match conditions:
+# Requested Element
+# Profile Profile
+# --------- --------
+# None None Always matches
+# 'string' None Always matches
+# None 'string' Does not match. Can't generate multiple APIs
+# or profiles, so if an API/profile constraint
+# is present, it must be asked for explicitly.
+# 'string' 'string' Strings must match
+#
+# ** In the future, we will allow regexes for the attributes,
+# not just strings, so that api="^(gl|gles2)" will match. Even
+# this isn't really quite enough, we might prefer something
+# like "gl(core)|gles1(common-lite)".
+def matchAPIProfile(api, profile, elem):
+ """Match a requested API & profile name to a api & profile attributes of an Element"""
+ match = True
+ # Match 'api', if present
+ if ('api' in elem.attrib):
+ if (api == None):
+ raise UserWarning("No API requested, but 'api' attribute is present with value '" +
+ elem.get('api') + "'")
+ elif (api != elem.get('api')):
+ # Requested API doesn't match attribute
+ return False
+ if ('profile' in elem.attrib):
+ if (profile == None):
+ raise UserWarning("No profile requested, but 'profile' attribute is present with value '" +
+ elem.get('profile') + "'")
+ elif (profile != elem.get('profile')):
+ # Requested profile doesn't match attribute
+ return False
+ return True
+
+# BaseInfo - base class for information about a registry feature
+# (type/group/enum/command/API/extension).
+# required - should this feature be defined during header generation
+# (has it been removed by a profile or version)?
+# declared - has this feature been defined already?
+# elem - lxml.etree Element for this feature
+# resetState() - reset required/declared to initial values. Used
+# prior to generating a new API interface.
+class BaseInfo:
+ """Represents the state of a registry feature, used during API generation"""
+ def __init__(self, elem):
+ self.required = False
+ self.declared = False
+ self.elem = elem
+ def resetState(self):
+ self.required = False
+ self.declared = False
+
+# TypeInfo - registry information about a type. No additional state
+# beyond BaseInfo is required.
+class TypeInfo(BaseInfo):
+ """Represents the state of a registry type"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+
+# GroupInfo - registry information about a group of related enums.
+# enums - dictionary of enum names which are in the group
+class GroupInfo(BaseInfo):
+ """Represents the state of a registry enumerant group"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.enums = {}
+
+# EnumInfo - registry information about an enum
+# type - numeric type of the value of the tag
+# ( '' for GLint, 'u' for GLuint, 'ull' for GLuint64 )
+class EnumInfo(BaseInfo):
+ """Represents the state of a registry enum"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.type = elem.get('type')
+ if (self.type == None):
+ self.type = ''
+
+# CmdInfo - registry information about a command
+# glxtype - type of GLX protocol { None, 'render', 'single', 'vendor' }
+# glxopcode - GLX protocol opcode { None, number }
+# glxequiv - equivalent command at GLX dispatch level { None, string }
+# vecequiv - equivalent vector form of a command taking multiple scalar args
+# { None, string }
+class CmdInfo(BaseInfo):
+ """Represents the state of a registry command"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.glxtype = None
+ self.glxopcode = None
+ self.glxequiv = None
+ self.vecequiv = None
+
+# FeatureInfo - registry information about an API
+# or
+# name - feature name string (e.g. 'GL_ARB_multitexture')
+# number - feature version number (e.g. 1.2).
+# features are unversioned and assigned version number 0.
+# category - category, e.g. VERSION or ARB/KHR/OES/ETC/vendor
+# emit - has this feature been defined already?
+class FeatureInfo(BaseInfo):
+ """Represents the state of an API feature (version/extension)"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.name = elem.get('name')
+ # Determine element category (vendor). Only works
+ # for elements.
+ if (elem.tag == 'feature'):
+ self.category = 'VERSION'
+ self.number = elem.get('number')
+ else:
+ self.category = self.name.split('_', 2)[1]
+ self.number = "0"
+ self.emit = False
+
+# Primary sort key for regSortFeatures.
+# Sorts by category of the feature name string:
+# Core API features (those defined with a tag)
+# ARB/KHR/OES (Khronos extensions)
+# other (EXT/vendor extensions)
+def regSortCategoryKey(feature):
+ if (feature.elem.tag == 'feature'):
+ return 0
+ elif (feature.category == 'ARB' or
+ feature.category == 'KHR' or
+ feature.category == 'OES'):
+ return 1
+ else:
+ return 2
+
+# Secondary sort key for regSortFeatures.
+# Sorts by extension name.
+def regSortNameKey(feature):
+ return feature.name
+
+# Tertiary sort key for regSortFeatures.
+# Sorts by feature version number.
+# elements all have version number "0"
+def regSortNumberKey(feature):
+ return feature.number
+
+# regSortFeatures - default sort procedure for features.
+# Sorts by primary key of feature category,
+# then by feature name within the category,
+# then by version number
+def regSortFeatures(featureList):
+ featureList.sort(key = regSortNumberKey)
+ featureList.sort(key = regSortNameKey)
+ featureList.sort(key = regSortCategoryKey)
+
+# GeneratorOptions - base class for options used during header production
+# These options are target language independent, and used by
+# Registry.apiGen() and by base OutputGenerator objects.
+#
+# Members
+# filename - name of file to generate, or None to write to stdout.
+# apiname - string matching 'apiname' attribute, e.g. 'gl'.
+# profile - string specifying API profile , e.g. 'core', or None.
+# versions - regex matching API versions to process interfaces for.
+# Normally '.*' or '[0-9]\.[0-9]' to match all defined versions.
+# emitversions - regex matching API versions to actually emit
+# interfaces for (though all requested versions are considered
+# when deciding which interfaces to generate). For GL 4.3 glext.h,
+# this might be '1\.[2-5]|[2-4]\.[0-9]'.
+# defaultExtensions - If not None, a string which must in its
+# entirety match the pattern in the "supported" attribute of
+# the . Defaults to None. Usually the same as apiname.
+# addExtensions - regex matching names of additional extensions
+# to include. Defaults to None.
+# removeExtensions - regex matching names of extensions to
+# remove (after defaultExtensions and addExtensions). Defaults
+# to None.
+# sortProcedure - takes a list of FeatureInfo objects and sorts
+# them in place to a preferred order in the generated output.
+# Default is core API versions, ARB/KHR/OES extensions, all
+# other extensions, alphabetically within each group.
+# The regex patterns can be None or empty, in which case they match
+# nothing.
+class GeneratorOptions:
+ """Represents options during header production from an API registry"""
+ def __init__(self,
+ filename = None,
+ apiname = None,
+ profile = None,
+ versions = '.*',
+ emitversions = '.*',
+ defaultExtensions = None,
+ addExtensions = None,
+ removeExtensions = None,
+ sortProcedure = regSortFeatures):
+ self.filename = filename
+ self.apiname = apiname
+ self.profile = profile
+ self.versions = self.emptyRegex(versions)
+ self.emitversions = self.emptyRegex(emitversions)
+ self.defaultExtensions = defaultExtensions
+ self.addExtensions = self.emptyRegex(addExtensions)
+ self.removeExtensions = self.emptyRegex(removeExtensions)
+ self.sortProcedure = sortProcedure
+ #
+ # Substitute a regular expression which matches no version
+ # or extension names for None or the empty string.
+ def emptyRegex(self,pat):
+ if (pat == None or pat == ''):
+ return '_nomatch_^'
+ else:
+ return pat
+
+# CGeneratorOptions - subclass of GeneratorOptions.
+#
+# Adds options used by COutputGenerator objects during C language header
+# generation.
+#
+# Additional members
+# prefixText - list of strings to prefix generated header with
+# (usually a copyright statement + calling convention macros).
+# protectFile - True if multiple inclusion protection should be
+# generated (based on the filename) around the entire header.
+# protectFeature - True if #ifndef..#endif protection should be
+# generated around a feature interface in the header file.
+# genFuncPointers - True if function pointer typedefs should be
+# generated
+# protectProto - Controls cpp protection around prototypes:
+# False - no protection
+# 'nonzero' - protectProtoStr must be defined to a nonzero value
+# True - protectProtoStr must be defined
+# protectProtoStr - #ifdef symbol to use around prototype
+# declarations, if protected
+# apicall - string to use for the function declaration prefix,
+# such as APICALL on Windows.
+# apientry - string to use for the calling convention macro,
+# in typedefs, such as APIENTRY.
+# apientryp - string to use for the calling convention macro
+# in function pointer typedefs, such as APIENTRYP.
+class CGeneratorOptions(GeneratorOptions):
+ """Represents options during C header production from an API registry"""
+ def __init__(self,
+ filename = None,
+ apiname = None,
+ profile = None,
+ versions = '.*',
+ emitversions = '.*',
+ defaultExtensions = None,
+ addExtensions = None,
+ removeExtensions = None,
+ sortProcedure = regSortFeatures,
+ prefixText = "",
+ genFuncPointers = True,
+ protectFile = True,
+ protectFeature = True,
+ protectProto = True,
+ protectProtoStr = True,
+ apicall = '',
+ apientry = '',
+ apientryp = ''):
+ GeneratorOptions.__init__(self, filename, apiname, profile,
+ versions, emitversions, defaultExtensions,
+ addExtensions, removeExtensions, sortProcedure)
+ self.prefixText = prefixText
+ self.genFuncPointers = genFuncPointers
+ self.protectFile = protectFile
+ self.protectFeature = protectFeature
+ self.protectProto = protectProto
+ self.protectProtoStr = protectProtoStr
+ self.apicall = apicall
+ self.apientry = apientry
+ self.apientryp = apientryp
+
+# OutputGenerator - base class for generating API interfaces.
+# Manages basic logic, logging, and output file control
+# Derived classes actually generate formatted output.
+#
+# ---- methods ----
+# OutputGenerator(errFile, warnFile, diagFile)
+# errFile, warnFile, diagFile - file handles to write errors,
+# warnings, diagnostics to. May be None to not write.
+# logMsg(level, *args) - log messages of different categories
+# level - 'error', 'warn', or 'diag'. 'error' will also
+# raise a UserWarning exception
+# *args - print()-style arguments
+# beginFile(genOpts) - start a new interface file
+# genOpts - GeneratorOptions controlling what's generated and how
+# endFile() - finish an interface file, closing it when done
+# beginFeature(interface, emit) - write interface for a feature
+# and tag generated features as having been done.
+# interface - element for the / to generate
+# emit - actually write to the header only when True
+# endFeature() - finish an interface.
+# genType(typeinfo,name) - generate interface for a type
+# typeinfo - TypeInfo for a type
+# genEnum(enuminfo, name) - generate interface for an enum
+# enuminfo - EnumInfo for an enum
+# name - enum name
+# genCmd(cmdinfo) - generate interface for a command
+# cmdinfo - CmdInfo for a command
+class OutputGenerator:
+ """Generate specified API interfaces in a specific style, such as a C header"""
+ def __init__(self,
+ errFile = sys.stderr,
+ warnFile = sys.stderr,
+ diagFile = sys.stdout):
+ self.outFile = None
+ self.errFile = errFile
+ self.warnFile = warnFile
+ self.diagFile = diagFile
+ # Internal state
+ self.featureName = None
+ self.genOpts = None
+ #
+ # logMsg - write a message of different categories to different
+ # destinations.
+ # level -
+ # 'diag' (diagnostic, voluminous)
+ # 'warn' (warning)
+ # 'error' (fatal error - raises exception after logging)
+ # *args - print()-style arguments to direct to corresponding log
+ def logMsg(self, level, *args):
+ """Log a message at the given level. Can be ignored or log to a file"""
+ if (level == 'error'):
+ strfile = io.StringIO()
+ write('ERROR:', *args, file=strfile)
+ if (self.errFile != None):
+ write(strfile.getvalue(), file=self.errFile)
+ raise UserWarning(strfile.getvalue())
+ elif (level == 'warn'):
+ if (self.warnFile != None):
+ write('WARNING:', *args, file=self.warnFile)
+ elif (level == 'diag'):
+ if (self.diagFile != None):
+ write('DIAG:', *args, file=self.diagFile)
+ else:
+ raise UserWarning(
+ '*** FATAL ERROR in Generator.logMsg: unknown level:' + level)
+ #
+ def beginFile(self, genOpts):
+ self.genOpts = genOpts
+ #
+ # Open specified output file. Not done in constructor since a
+ # Generator can be used without writing to a file.
+ if (self.genOpts.filename != None):
+ self.outFile = open(self.genOpts.filename, 'w')
+ else:
+ self.outFile = sys.stdout
+ def endFile(self):
+ self.errFile and self.errFile.flush()
+ self.warnFile and self.warnFile.flush()
+ self.diagFile and self.diagFile.flush()
+ self.outFile.flush()
+ if (self.outFile != sys.stdout and self.outFile != sys.stderr):
+ self.outFile.close()
+ self.genOpts = None
+ #
+ def beginFeature(self, interface, emit):
+ self.emit = emit
+ self.featureName = interface.get('name')
+ # If there's an additional 'protect' attribute in the feature, save it
+ self.featureExtraProtect = interface.get('protect')
+ def endFeature(self):
+ # Derived classes responsible for emitting feature
+ self.featureName = None
+ self.featureExtraProtect = None
+ #
+ # Type generation
+ def genType(self, typeinfo, name):
+ if (self.featureName == None):
+ raise UserWarning('Attempt to generate type', name,
+ 'when not in feature')
+ #
+ # Enumerant generation
+ def genEnum(self, enuminfo, name):
+ if (self.featureName == None):
+ raise UserWarning('Attempt to generate enum', name,
+ 'when not in feature')
+ #
+ # Command generation
+ def genCmd(self, cmd, name):
+ if (self.featureName == None):
+ raise UserWarning('Attempt to generate command', name,
+ 'when not in feature')
+
+# COutputGenerator - subclass of OutputGenerator.
+# Generates C-language API interfaces.
+#
+# ---- methods ----
+# COutputGenerator(errFile, warnFile, diagFile) - args as for
+# OutputGenerator. Defines additional internal state.
+# makeCDecls(cmd) - return C prototype and function pointer typedef for a
+# Element, as a list of two strings
+# cmd - Element for the
+# newline() - print a newline to the output file (utility function)
+# ---- methods overriding base class ----
+# beginFile(genOpts)
+# endFile()
+# beginFeature(interface, emit)
+# endFeature()
+# genType(typeinfo,name) - generate interface for a type
+# genEnum(enuminfo, name)
+# genCmd(cmdinfo)
+class COutputGenerator(OutputGenerator):
+ """Generate specified API interfaces in a specific style, such as a C header"""
+ def __init__(self,
+ errFile = sys.stderr,
+ warnFile = sys.stderr,
+ diagFile = sys.stdout):
+ OutputGenerator.__init__(self, errFile, warnFile, diagFile)
+ # Internal state - accumulators for different inner block text
+ self.typeBody = ''
+ self.enumBody = ''
+ self.cmdBody = ''
+ #
+ # makeCDecls - return C prototype and function pointer typedef for a
+ # command, as a two-element list of strings.
+ # cmd - Element containing a tag
+ def makeCDecls(self, cmd):
+ """Generate C function pointer typedef for Element"""
+ proto = cmd.find('proto')
+ params = cmd.findall('param')
+ # Begin accumulating prototype and typedef strings
+ pdecl = self.genOpts.apicall
+ tdecl = 'typedef '
+ #
+ # Insert the function return type/name.
+ # For prototypes, add APIENTRY macro before the name
+ # For typedefs, add (APIENTRYP ) around the name and
+ # use the PFNGLCMDNAMEPROC nameng convention.
+ # Done by walking the tree for element by element.
+ # lxml.etree has elem.text followed by (elem[i], elem[i].tail)
+ # for each child element and any following text
+ # Leading text
+ pdecl += noneStr(proto.text)
+ tdecl += noneStr(proto.text)
+ # For each child element, if it's a wrap in appropriate
+ # declaration. Otherwise append its contents and tail contents.
+ for elem in proto:
+ text = noneStr(elem.text)
+ tail = noneStr(elem.tail)
+ if (elem.tag == 'name'):
+ pdecl += self.genOpts.apientry + text + tail
+ tdecl += '(' + self.genOpts.apientryp + 'PFN' + text.upper() + 'PROC' + tail + ')'
+ else:
+ pdecl += text + tail
+ tdecl += text + tail
+ # Now add the parameter declaration list, which is identical
+ # for prototypes and typedefs. Concatenate all the text from
+ # a node without the tags. No tree walking required
+ # since all tags are ignored.
+ n = len(params)
+ paramdecl = ' ('
+ if n > 0:
+ for i in range(0,n):
+ paramdecl += ''.join([t for t in params[i].itertext()])
+ if (i < n - 1):
+ paramdecl += ', '
+ else:
+ paramdecl += 'void'
+ paramdecl += ');\n';
+ return [ pdecl + paramdecl, tdecl + paramdecl ]
+ #
+ def newline(self):
+ write('', file=self.outFile)
+ #
+ def beginFile(self, genOpts):
+ OutputGenerator.beginFile(self, genOpts)
+ # C-specific
+ #
+ # Multiple inclusion protection & C++ wrappers.
+ if (genOpts.protectFile and self.genOpts.filename):
+ headerSym = '__' + re.sub('\.h', '_h_', os.path.basename(self.genOpts.filename))
+ write('#ifndef', headerSym, file=self.outFile)
+ write('#define', headerSym, '1', file=self.outFile)
+ self.newline()
+ write('#ifdef __cplusplus', file=self.outFile)
+ write('extern "C" {', file=self.outFile)
+ write('#endif', file=self.outFile)
+ self.newline()
+ #
+ # User-supplied prefix text, if any (list of strings)
+ if (genOpts.prefixText):
+ try:
+ git_rev = subprocess.check_output(['git', 'rev-parse', '--short=10', 'HEAD']).decode('utf-8').strip()
+ git_date = subprocess.check_output(['git', 'log', '-1', '--format=%ai']).decode('utf-8').strip()
+ except (OSError, subprocess.CalledProcessError):
+ git_rev = 'unknown'
+ git_date = 'unknown'
+ for s in genOpts.prefixText:
+ s = s.replace('$Revision$', '$Git commit SHA1: ' + git_rev + ' $')
+ s = s.replace('$Date$', '$Git commit date: ' + git_date + ' $')
+ write(s, file=self.outFile)
+ #
+ # Some boilerplate describing what was generated - this
+ # will probably be removed later since the extensions
+ # pattern may be very long.
+ write('/* Generated C header for:', file=self.outFile)
+ write(' * API:', genOpts.apiname, file=self.outFile)
+ if (genOpts.profile):
+ write(' * Profile:', genOpts.profile, file=self.outFile)
+ write(' * Versions considered:', genOpts.versions, file=self.outFile)
+ write(' * Versions emitted:', genOpts.emitversions, file=self.outFile)
+ write(' * Default extensions included:', genOpts.defaultExtensions, file=self.outFile)
+ write(' * Additional extensions included:', genOpts.addExtensions, file=self.outFile)
+ write(' * Extensions removed:', genOpts.removeExtensions, file=self.outFile)
+ write(' */', file=self.outFile)
+ def endFile(self):
+ # C-specific
+ # Finish C++ wrapper and multiple inclusion protection
+ self.newline()
+ write('#ifdef __cplusplus', file=self.outFile)
+ write('}', file=self.outFile)
+ write('#endif', file=self.outFile)
+ if (self.genOpts.protectFile and self.genOpts.filename):
+ self.newline()
+ write('#endif', file=self.outFile)
+ # Finish processing in superclass
+ OutputGenerator.endFile(self)
+ def beginFeature(self, interface, emit):
+ # Start processing in superclass
+ OutputGenerator.beginFeature(self, interface, emit)
+ # C-specific
+ # Accumulate types, enums, function pointer typedefs, end function
+ # prototypes separately for this feature. They're only printed in
+ # endFeature().
+ self.typeBody = ''
+ self.enumBody = ''
+ self.cmdPointerBody = ''
+ self.cmdBody = ''
+ def endFeature(self):
+ # C-specific
+ # Actually write the interface to the output file.
+ if (self.emit):
+ self.newline()
+ if (self.genOpts.protectFeature):
+ write('#ifndef', self.featureName, file=self.outFile)
+ write('#define', self.featureName, '1', file=self.outFile)
+ if (self.typeBody != ''):
+ write(self.typeBody, end='', file=self.outFile)
+ #
+ # Don't add additional protection for derived type declarations,
+ # which may be needed by other features later on.
+ if (self.featureExtraProtect != None):
+ write('#ifdef', self.featureExtraProtect, file=self.outFile)
+ if (self.enumBody != ''):
+ write(self.enumBody, end='', file=self.outFile)
+ if (self.genOpts.genFuncPointers and self.cmdPointerBody != ''):
+ write(self.cmdPointerBody, end='', file=self.outFile)
+ if (self.cmdBody != ''):
+ if (self.genOpts.protectProto == True):
+ prefix = '#ifdef ' + self.genOpts.protectProtoStr + '\n'
+ suffix = '#endif\n'
+ elif (self.genOpts.protectProto == 'nonzero'):
+ prefix = '#if ' + self.genOpts.protectProtoStr + '\n'
+ suffix = '#endif\n'
+ elif (self.genOpts.protectProto == False):
+ prefix = ''
+ suffix = ''
+ else:
+ self.gen.logMsg('warn',
+ '*** Unrecognized value for protectProto:',
+ self.genOpts.protectProto,
+ 'not generating prototype wrappers')
+ prefix = ''
+ suffix = ''
+
+ write(prefix + self.cmdBody + suffix, end='', file=self.outFile)
+ if (self.featureExtraProtect != None):
+ write('#endif /*', self.featureExtraProtect, '*/', file=self.outFile)
+ if (self.genOpts.protectFeature):
+ write('#endif /*', self.featureName, '*/', file=self.outFile)
+ # Finish processing in superclass
+ OutputGenerator.endFeature(self)
+ #
+ # Type generation
+ def genType(self, typeinfo, name):
+ OutputGenerator.genType(self, typeinfo, name)
+ #
+ # Replace tags with an APIENTRY-style string
+ # (from self.genOpts). Copy other text through unchanged.
+ # If the resulting text is an empty string, don't emit it.
+ typeElem = typeinfo.elem
+ s = noneStr(typeElem.text)
+ for elem in typeElem:
+ if (elem.tag == 'apientry'):
+ s += self.genOpts.apientry + noneStr(elem.tail)
+ else:
+ s += noneStr(elem.text) + noneStr(elem.tail)
+ if (len(s) > 0):
+ self.typeBody += s + '\n'
+ #
+ # Enumerant generation
+ def genEnum(self, enuminfo, name):
+ OutputGenerator.genEnum(self, enuminfo, name)
+ #
+ # EnumInfo.type is a C value suffix (e.g. u, ull)
+ self.enumBody += '#define ' + name.ljust(33) + ' ' + enuminfo.elem.get('value')
+ #
+ # Handle non-integer 'type' fields by using it as the C value suffix
+ t = enuminfo.elem.get('type')
+ if (t != '' and t != 'i'):
+ self.enumBody += enuminfo.type
+ self.enumBody += '\n'
+ #
+ # Command generation
+ def genCmd(self, cmdinfo, name):
+ OutputGenerator.genCmd(self, cmdinfo, name)
+ #
+ decls = self.makeCDecls(cmdinfo.elem)
+ self.cmdBody += decls[0]
+ if (self.genOpts.genFuncPointers):
+ self.cmdPointerBody += decls[1]
+
+# Registry - object representing an API registry, loaded from an XML file
+# Members
+# tree - ElementTree containing the root
+# typedict - dictionary of TypeInfo objects keyed by type name
+# groupdict - dictionary of GroupInfo objects keyed by group name
+# enumdict - dictionary of EnumInfo objects keyed by enum name
+# cmddict - dictionary of CmdInfo objects keyed by command name
+# apidict - dictionary of Elements keyed by API name
+# extensions - list of Elements
+# extdict - dictionary of Elements keyed by extension name
+# gen - OutputGenerator object used to write headers / messages
+# genOpts - GeneratorOptions object used to control which
+# fetures to write and how to format them
+# emitFeatures - True to actually emit features for a version / extension,
+# or False to just treat them as emitted
+# Public methods
+# loadElementTree(etree) - load registry from specified ElementTree
+# loadFile(filename) - load registry from XML file
+# setGenerator(gen) - OutputGenerator to use
+# parseTree() - parse the registry once loaded & create dictionaries
+# dumpReg(maxlen, filehandle) - diagnostic to dump the dictionaries
+# to specified file handle (default stdout). Truncates type /
+# enum / command elements to maxlen characters (default 80)
+# generator(g) - specify the output generator object
+# apiGen(apiname, genOpts) - generate API headers for the API type
+# and profile specified in genOpts, but only for the versions and
+# extensions specified there.
+# apiReset() - call between calls to apiGen() to reset internal state
+# validateGroups() - call to verify that each or
+# with a 'group' attribute matches an actual existing group.
+# Private methods
+# addElementInfo(elem,info,infoName,dictionary) - add feature info to dict
+# lookupElementInfo(fname,dictionary) - lookup feature info in dict
+class Registry:
+ """Represents an API registry loaded from XML"""
+ def __init__(self):
+ self.tree = None
+ self.typedict = {}
+ self.groupdict = {}
+ self.enumdict = {}
+ self.cmddict = {}
+ self.apidict = {}
+ self.extensions = []
+ self.extdict = {}
+ # A default output generator, so commands prior to apiGen can report
+ # errors via the generator object.
+ self.gen = OutputGenerator()
+ self.genOpts = None
+ self.emitFeatures = False
+ def loadElementTree(self, tree):
+ """Load ElementTree into a Registry object and parse it"""
+ self.tree = tree
+ self.parseTree()
+ def loadFile(self, file):
+ """Load an API registry XML file into a Registry object and parse it"""
+ self.tree = etree.parse(file)
+ self.parseTree()
+ def setGenerator(self, gen):
+ """Specify output generator object. None restores the default generator"""
+ self.gen = gen
+ # addElementInfo - add information about an element to the
+ # corresponding dictionary
+ # elem - ///// Element
+ # info - corresponding {Type|Group|Enum|Cmd|Feature}Info object
+ # infoName - 'type' / 'group' / 'enum' / 'command' / 'feature' / 'extension'
+ # dictionary - self.{type|group|enum|cmd|api|ext}dict
+ # If the Element has an 'api' attribute, the dictionary key is the
+ # tuple (name,api). If not, the key is the name. 'name' is an
+ # attribute of the Element
+ def addElementInfo(self, elem, info, infoName, dictionary):
+ if ('api' in elem.attrib):
+ key = (elem.get('name'),elem.get('api'))
+ else:
+ key = elem.get('name')
+ if key in dictionary:
+ self.gen.logMsg('warn', '*** Attempt to redefine',
+ infoName, 'with key:', key)
+ else:
+ dictionary[key] = info
+ #
+ # lookupElementInfo - find a {Type|Enum|Cmd}Info object by name.
+ # If an object qualified by API name exists, use that.
+ # fname - name of type / enum / command
+ # dictionary - self.{type|enum|cmd}dict
+ def lookupElementInfo(self, fname, dictionary):
+ key = (fname, self.genOpts.apiname)
+ if (key in dictionary):
+ # self.gen.logMsg('diag', 'Found API-specific element for feature', fname)
+ return dictionary[key]
+ elif (fname in dictionary):
+ # self.gen.logMsg('diag', 'Found generic element for feature', fname)
+ return dictionary[fname]
+ else:
+ return None
+ def parseTree(self):
+ """Parse the registry Element, once created"""
+ # This must be the Element for the root
+ self.reg = self.tree.getroot()
+ #
+ # Create dictionary of registry types from toplevel tags
+ # and add 'name' attribute to each tag (where missing)
+ # based on its element.
+ #
+ # There's usually one block; more are OK
+ # Required attributes: 'name' or nested tag contents
+ self.typedict = {}
+ for type in self.reg.findall('types/type'):
+ # If the doesn't already have a 'name' attribute, set
+ # it from contents of its tag.
+ if (type.get('name') == None):
+ type.attrib['name'] = type.find('name').text
+ self.addElementInfo(type, TypeInfo(type), 'type', self.typedict)
+ #
+ # Create dictionary of registry groups from toplevel tags.
+ #
+ # There's usually one block; more are OK.
+ # Required attributes: 'name'
+ self.groupdict = {}
+ for group in self.reg.findall('groups/group'):
+ self.addElementInfo(group, GroupInfo(group), 'group', self.groupdict)
+ #
+ # Create dictionary of registry enums from toplevel tags
+ #
+ # There are usually many tags in different namespaces, but
+ # these are functional namespaces of the values, while the actual
+ # enum names all share the dictionary.
+ # Required attributes: 'name', 'value'
+ self.enumdict = {}
+ for enum in self.reg.findall('enums/enum'):
+ self.addElementInfo(enum, EnumInfo(enum), 'enum', self.enumdict)
+ #
+ # Create dictionary of registry commands from tags
+ # and add 'name' attribute to each tag (where missing)
+ # based on its element.
+ #
+ # There's usually only one block; more are OK.
+ # Required attributes: 'name' or tag contents
+ self.cmddict = {}
+ for cmd in self.reg.findall('commands/command'):
+ # If the doesn't already have a 'name' attribute, set
+ # it from contents of its tag.
+ if (cmd.get('name') == None):
+ cmd.attrib['name'] = cmd.find('proto/name').text
+ ci = CmdInfo(cmd)
+ self.addElementInfo(cmd, ci, 'command', self.cmddict)
+ #
+ # Create dictionaries of API and extension interfaces
+ # from toplevel and tags.
+ #
+ self.apidict = {}
+ for feature in self.reg.findall('feature'):
+ ai = FeatureInfo(feature)
+ self.addElementInfo(feature, ai, 'feature', self.apidict)
+ self.extensions = self.reg.findall('extensions/extension')
+ self.extdict = {}
+ for feature in self.extensions:
+ ei = FeatureInfo(feature)
+ self.addElementInfo(feature, ei, 'extension', self.extdict)
+ def dumpReg(self, maxlen = 40, filehandle = sys.stdout):
+ """Dump all the dictionaries constructed from the Registry object"""
+ write('***************************************', file=filehandle)
+ write(' ** Dumping Registry contents **', file=filehandle)
+ write('***************************************', file=filehandle)
+ write('// Types', file=filehandle)
+ for name in self.typedict:
+ tobj = self.typedict[name]
+ write(' Type', name, '->', etree.tostring(tobj.elem)[0:maxlen], file=filehandle)
+ write('// Groups', file=filehandle)
+ for name in self.groupdict:
+ gobj = self.groupdict[name]
+ write(' Group', name, '->', etree.tostring(gobj.elem)[0:maxlen], file=filehandle)
+ write('// Enums', file=filehandle)
+ for name in self.enumdict:
+ eobj = self.enumdict[name]
+ write(' Enum', name, '->', etree.tostring(eobj.elem)[0:maxlen], file=filehandle)
+ write('// Commands', file=filehandle)
+ for name in self.cmddict:
+ cobj = self.cmddict[name]
+ write(' Command', name, '->', etree.tostring(cobj.elem)[0:maxlen], file=filehandle)
+ write('// APIs', file=filehandle)
+ for key in self.apidict:
+ write(' API Version ', key, '->',
+ etree.tostring(self.apidict[key].elem)[0:maxlen], file=filehandle)
+ write('// Extensions', file=filehandle)
+ for key in self.extdict:
+ write(' Extension', key, '->',
+ etree.tostring(self.extdict[key].elem)[0:maxlen], file=filehandle)
+ # write('***************************************', file=filehandle)
+ # write(' ** Dumping XML ElementTree **', file=filehandle)
+ # write('***************************************', file=filehandle)
+ # write(etree.tostring(self.tree.getroot(),pretty_print=True), file=filehandle)
+ #
+ # typename - name of type
+ # required - boolean (to tag features as required or not)
+ def markTypeRequired(self, typename, required):
+ """Require (along with its dependencies) or remove (but not its dependencies) a type"""
+ self.gen.logMsg('diag', '*** tagging type:', typename, '-> required =', required)
+ # Get TypeInfo object for tag corresponding to typename
+ type = self.lookupElementInfo(typename, self.typedict)
+ if (type != None):
+ # Tag required type dependencies as required.
+ # This DOES NOT un-tag dependencies in a tag.
+ # See comments in markRequired() below for the reason.
+ if (required and ('requires' in type.elem.attrib)):
+ depType = type.elem.get('requires')
+ self.gen.logMsg('diag', '*** Generating dependent type',
+ depType, 'for type', typename)
+ self.markTypeRequired(depType, required)
+ type.required = required
+ else:
+ self.gen.logMsg('warn', '*** type:', typename , 'IS NOT DEFINED')
+ #
+ # features - Element for or tag
+ # required - boolean (to tag features as required or not)
+ def markRequired(self, features, required):
+ """Require or remove features specified in the Element"""
+ self.gen.logMsg('diag', '*** markRequired (features = , required =', required, ')')
+ # Loop over types, enums, and commands in the tag
+ # @@ It would be possible to respect 'api' and 'profile' attributes
+ # in individual features, but that's not done yet.
+ for typeElem in features.findall('type'):
+ self.markTypeRequired(typeElem.get('name'), required)
+ for enumElem in features.findall('enum'):
+ name = enumElem.get('name')
+ self.gen.logMsg('diag', '*** tagging enum:', name, '-> required =', required)
+ enum = self.lookupElementInfo(name, self.enumdict)
+ if (enum != None):
+ enum.required = required
+ else:
+ self.gen.logMsg('warn', '*** enum:', name , 'IS NOT DEFINED')
+ for cmdElem in features.findall('command'):
+ name = cmdElem.get('name')
+ self.gen.logMsg('diag', '*** tagging command:', name, '-> required =', required)
+ cmd = self.lookupElementInfo(name, self.cmddict)
+ if (cmd != None):
+ cmd.required = required
+ # Tag all parameter types of this command as required.
+ # This DOES NOT remove types of commands in a
+ # tag, because many other commands may use the same type.
+ # We could be more clever and reference count types,
+ # instead of using a boolean.
+ if (required):
+ # Look for in entire tree,
+ # not just immediate children
+ for ptype in cmd.elem.findall('.//ptype'):
+ self.gen.logMsg('diag', '*** markRequired: command implicitly requires dependent type', ptype.text)
+ self.markTypeRequired(ptype.text, required)
+ else:
+ self.gen.logMsg('warn', '*** command:', name, 'IS NOT DEFINED')
+ #
+ # interface - Element for or , containing
+ # and tags
+ # api - string specifying API name being generated
+ # profile - string specifying API profile being generated
+ def requireAndRemoveFeatures(self, interface, api, profile):
+ """Process and tags for a or """
+ # marks things that are required by this version/profile
+ for feature in interface.findall('require'):
+ if (matchAPIProfile(api, profile, feature)):
+ self.markRequired(feature,True)
+ # marks things that are removed by this version/profile
+ for feature in interface.findall('remove'):
+ if (matchAPIProfile(api, profile, feature)):
+ self.markRequired(feature,False)
+ #
+ # generateFeature - generate a single type / enum / command,
+ # and all its dependencies as needed.
+ # fname - name of feature (//
+ # ftype - type of feature, 'type' | 'enum' | 'command'
+ # dictionary - of *Info objects - self.{type|enum|cmd}dict
+ # genProc - bound function pointer for self.gen.gen{Type|Enum|Cmd}
+ def generateFeature(self, fname, ftype, dictionary, genProc):
+ f = self.lookupElementInfo(fname, dictionary)
+ if (f == None):
+ # No such feature. This is an error, but reported earlier
+ self.gen.logMsg('diag', '*** No entry found for feature', fname,
+ 'returning!')
+ return
+ #
+ # If feature isn't required, or has already been declared, return
+ if (not f.required):
+ self.gen.logMsg('diag', '*** Skipping', ftype, fname, '(not required)')
+ return
+ if (f.declared):
+ self.gen.logMsg('diag', '*** Skipping', ftype, fname, '(already declared)')
+ return
+ #
+ # Pull in dependent type declaration(s) of the feature.
+ # For types, there may be one in the 'required' attribute of the element
+ # For commands, there may be many in tags within the element
+ # For enums, no dependencies are allowed (though perhasps if you
+ # have a uint64 enum, it should require GLuint64)
+ if (ftype == 'type'):
+ if ('requires' in f.elem.attrib):
+ depname = f.elem.get('requires')
+ self.gen.logMsg('diag', '*** Generating required dependent type',
+ depname)
+ self.generateFeature(depname, 'type', self.typedict,
+ self.gen.genType)
+ elif (ftype == 'command'):
+ for ptype in f.elem.findall('.//ptype'):
+ depname = ptype.text
+ self.gen.logMsg('diag', '*** Generating required parameter type',
+ depname)
+ self.generateFeature(depname, 'type', self.typedict,
+ self.gen.genType)
+ #
+ # Actually generate the type only if emitting declarations
+ if self.emitFeatures:
+ self.gen.logMsg('diag', '*** Emitting', ftype, 'decl for', fname)
+ genProc(f, fname)
+ else:
+ self.gen.logMsg('diag', '*** Skipping', ftype, fname,
+ '(not emitting this feature)')
+ # Always mark feature declared, as though actually emitted
+ f.declared = True
+ #
+ # generateRequiredInterface - generate all interfaces required
+ # by an API version or extension
+ # interface - Element for or
+ def generateRequiredInterface(self, interface):
+ """Generate required C interface for specified API version/extension"""
+ #
+ # Loop over all features inside all tags.
+ # tags are ignored (handled in pass 1).
+ for features in interface.findall('require'):
+ for t in features.findall('type'):
+ self.generateFeature(t.get('name'), 'type', self.typedict,
+ self.gen.genType)
+ for e in features.findall('enum'):
+ self.generateFeature(e.get('name'), 'enum', self.enumdict,
+ self.gen.genEnum)
+ for c in features.findall('command'):
+ self.generateFeature(c.get('name'), 'command', self.cmddict,
+ self.gen.genCmd)
+ #
+ # apiGen(genOpts) - generate interface for specified versions
+ # genOpts - GeneratorOptions object with parameters used
+ # by the Generator object.
+ def apiGen(self, genOpts):
+ """Generate interfaces for the specified API type and range of versions"""
+ #
+ self.gen.logMsg('diag', '*******************************************')
+ self.gen.logMsg('diag', ' Registry.apiGen file:', genOpts.filename,
+ 'api:', genOpts.apiname,
+ 'profile:', genOpts.profile)
+ self.gen.logMsg('diag', '*******************************************')
+ #
+ self.genOpts = genOpts
+ # Reset required/declared flags for all features
+ self.apiReset()
+ #
+ # Compile regexps used to select versions & extensions
+ regVersions = re.compile(self.genOpts.versions)
+ regEmitVersions = re.compile(self.genOpts.emitversions)
+ regAddExtensions = re.compile(self.genOpts.addExtensions)
+ regRemoveExtensions = re.compile(self.genOpts.removeExtensions)
+ #
+ # Get all matching API versions & add to list of FeatureInfo
+ features = []
+ apiMatch = False
+ for key in self.apidict:
+ fi = self.apidict[key]
+ api = fi.elem.get('api')
+ if (api == self.genOpts.apiname):
+ apiMatch = True
+ if (regVersions.match(fi.number)):
+ # Matches API & version #s being generated. Mark for
+ # emission and add to the features[] list .
+ # @@ Could use 'declared' instead of 'emit'?
+ fi.emit = (regEmitVersions.match(fi.number) != None)
+ features.append(fi)
+ if (not fi.emit):
+ self.gen.logMsg('diag', '*** NOT tagging feature api =', api,
+ 'name =', fi.name, 'number =', fi.number,
+ 'for emission (does not match emitversions pattern)')
+ else:
+ self.gen.logMsg('diag', '*** NOT including feature api =', api,
+ 'name =', fi.name, 'number =', fi.number,
+ '(does not match requested versions)')
+ else:
+ self.gen.logMsg('diag', '*** NOT including feature api =', api,
+ 'name =', fi.name,
+ '(does not match requested API)')
+ if (not apiMatch):
+ self.gen.logMsg('warn', '*** No matching API versions found!')
+ #
+ # Get all matching extensions & add to the list.
+ # Start with extensions tagged with 'api' pattern matching the API
+ # being generated. Add extensions matching the pattern specified in
+ # regExtensions, then remove extensions matching the pattern
+ # specified in regRemoveExtensions
+ for key in self.extdict:
+ ei = self.extdict[key]
+ extName = ei.name
+ include = False
+ #
+ # Include extension if defaultExtensions is not None and if the
+ # 'supported' attribute matches defaultExtensions. The regexp in
+ # 'supported' must exactly match defaultExtensions, so bracket
+ # it with ^(pat)$.
+ pat = '^(' + ei.elem.get('supported') + ')$'
+ if (self.genOpts.defaultExtensions and
+ re.match(pat, self.genOpts.defaultExtensions)):
+ self.gen.logMsg('diag', '*** Including extension',
+ extName, "(defaultExtensions matches the 'supported' attribute)")
+ include = True
+ #
+ # Include additional extensions if the extension name matches
+ # the regexp specified in the generator options. This allows
+ # forcing extensions into an interface even if they're not
+ # tagged appropriately in the registry.
+ if (regAddExtensions.match(extName) != None):
+ self.gen.logMsg('diag', '*** Including extension',
+ extName, '(matches explicitly requested extensions to add)')
+ include = True
+ # Remove extensions if the name matches the regexp specified
+ # in generator options. This allows forcing removal of
+ # extensions from an interface even if they're tagged that
+ # way in the registry.
+ if (regRemoveExtensions.match(extName) != None):
+ self.gen.logMsg('diag', '*** Removing extension',
+ extName, '(matches explicitly requested extensions to remove)')
+ include = False
+ #
+ # If the extension is to be included, add it to the
+ # extension features list.
+ if (include):
+ ei.emit = True
+ features.append(ei)
+ else:
+ self.gen.logMsg('diag', '*** NOT including extension',
+ extName, '(does not match api attribute or explicitly requested extensions)')
+ #
+ # Sort the extension features list, if a sort procedure is defined
+ if (self.genOpts.sortProcedure):
+ self.genOpts.sortProcedure(features)
+ #
+ # Pass 1: loop over requested API versions and extensions tagging
+ # types/commands/features as required (in an block) or no
+ # longer required (in an block). It is possible to remove
+ # a feature in one version and restore it later by requiring it in
+ # a later version.
+ # If a profile other than 'None' is being generated, it must
+ # match the profile attribute (if any) of the and
+ # tags.
+ self.gen.logMsg('diag', '*** PASS 1: TAG FEATURES ********************************************')
+ for f in features:
+ self.gen.logMsg('diag', '*** PASS 1: Tagging required and removed features for',
+ f.name)
+ self.requireAndRemoveFeatures(f.elem, self.genOpts.apiname, self.genOpts.profile)
+ #
+ # Pass 2: loop over specified API versions and extensions printing
+ # declarations for required things which haven't already been
+ # generated.
+ self.gen.logMsg('diag', '*** PASS 2: GENERATE INTERFACES FOR FEATURES ************************')
+ self.gen.beginFile(self.genOpts)
+ for f in features:
+ self.gen.logMsg('diag', '*** PASS 2: Generating interface for',
+ f.name)
+ emit = self.emitFeatures = f.emit
+ if (not emit):
+ self.gen.logMsg('diag', '*** PASS 2: NOT declaring feature',
+ f.elem.get('name'), 'because it is not tagged for emission')
+ # Generate the interface (or just tag its elements as having been
+ # emitted, if they haven't been).
+ self.gen.beginFeature(f.elem, emit)
+ self.generateRequiredInterface(f.elem)
+ self.gen.endFeature()
+ self.gen.endFile()
+ #
+ # apiReset - use between apiGen() calls to reset internal state
+ #
+ def apiReset(self):
+ """Reset type/enum/command dictionaries before generating another API"""
+ for type in self.typedict:
+ self.typedict[type].resetState()
+ for enum in self.enumdict:
+ self.enumdict[enum].resetState()
+ for cmd in self.cmddict:
+ self.cmddict[cmd].resetState()
+ for cmd in self.apidict:
+ self.apidict[cmd].resetState()
+ #
+ # validateGroups - check that group= attributes match actual groups
+ #
+ def validateGroups(self):
+ """Validate group= attributes on and tags"""
+ # Keep track of group names not in tags
+ badGroup = {}
+ self.gen.logMsg('diag', '*** VALIDATING GROUP ATTRIBUTES ***')
+ for cmd in self.reg.findall('commands/command'):
+ proto = cmd.find('proto')
+ funcname = cmd.find('proto/name').text
+ if ('group' in proto.attrib.keys()):
+ group = proto.get('group')
+ # self.gen.logMsg('diag', '*** Command ', funcname, ' has return group ', group)
+ if (group not in self.groupdict.keys()):
+ # self.gen.logMsg('diag', '*** Command ', funcname, ' has UNKNOWN return group ', group)
+ if (group not in badGroup.keys()):
+ badGroup[group] = 1
+ else:
+ badGroup[group] = badGroup[group] + 1
+ for param in cmd.findall('param'):
+ pname = param.find('name')
+ if (pname != None):
+ pname = pname.text
+ else:
+ pname = type.get('name')
+ if ('group' in param.attrib.keys()):
+ group = param.get('group')
+ if (group not in self.groupdict.keys()):
+ # self.gen.logMsg('diag', '*** Command ', funcname, ' param ', pname, ' has UNKNOWN group ', group)
+ if (group not in badGroup.keys()):
+ badGroup[group] = 1
+ else:
+ badGroup[group] = badGroup[group] + 1
+ if (len(badGroup.keys()) > 0):
+ self.gen.logMsg('diag', '*** SUMMARY OF UNRECOGNIZED GROUPS ***')
+ for key in sorted(badGroup.keys()):
+ self.gen.logMsg('diag', ' ', key, ' occurred ', badGroup[key], ' times')
diff --git a/glew/auto/EGL-Registry/api/registry.rnc b/glew/auto/EGL-Registry/api/registry.rnc
new file mode 100644
index 0000000..be70668
--- /dev/null
+++ b/glew/auto/EGL-Registry/api/registry.rnc
@@ -0,0 +1,270 @@
+# Copyright 2013-2020 The Khronos Group Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# Relax NG schema for Khronos Registry XML
+# See https://www.github.com/KhronosGroup/EGL-Registry
+#
+# Last modified 2017/02/03
+# This definition is subject to change (mostly in the form of additions)
+
+namespace xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
+
+# Toplevel is a tag.
+# May be led by an optional tag containing e.g. copyrights.
+start = element registry {
+ (
+ element comment { text } ? |
+ Types * |
+ Groups * |
+ Enums * |
+ Commands * |
+ Feature * |
+ Extensions *
+ ) *
+}
+
+# defines a group of types
+Types = element types {
+ Type *
+}
+
+# defines a single type. It is usually a C typedef but
+# may contain arbitrary C code.
+# name - name of this type, if not present in the tag
+# api - matches a api attribute, if present
+# requires - name of another type definition required by this one
+# type - "group", if present, indicating a group of values in the
+# corresponding definition.
+# comment - unused
+# - substitutes for an APIENTRY-style macro on output
+# - contains typename
+Type = element type {
+ attribute api { text } ? ,
+ attribute requires { text } ? ,
+ attribute name { TypeName } ? ,
+ attribute type { text } ? ,
+ Comment ? ,
+ text ,
+ element apientry { text } ? ,
+ text ,
+ element name { TypeName } ? ,
+ text
+}
+
+# defines a group of enum groups
+Groups = element groups {
+ Group *
+}
+
+# defines a single enum group. Enums may
+# be in multiple groups.
+# name - group name
+# comment - unused
+# - members of the group
+
+Group = element group {
+ Name ,
+ Comment ? ,
+ element enum { Name } *
+}
+
+# defines a group of enumerants
+# namespace - identifies a numeric namespace
+# group - identifies a functional subset of the namespace - same as
+# start, end - beginning and end of a numeric range in the namespace
+# vendor - owner of the numeric range
+# type - "bitmask", if present
+# comment - unused
+Enums = element enums {
+ attribute namespace { text } ? ,
+ attribute group { text } ? ,
+ attribute type { text } ? ,
+ attribute start { Integer } ? ,
+ attribute end { Integer } ? ,
+ Vendor ? ,
+ Comment ? ,
+ (Enum | Unused) *
+}
+# defines a single enumerant
+# value - integer (including hex) value of the enumerant
+# api - matches a api attribute, if present
+# type - "u" (unsigned), "ull" (uint64), or integer if not present
+# name - enumerant name
+# alias - another enumerant this is semantically identical to
+# comment - unused
+Enum = element enum {
+ (
+ attribute value { Integer } &
+ attribute api { text } ? &
+ attribute type { TypeSuffix } ? &
+ attribute name { text } &
+ attribute alias { text } ? &
+ Comment ?
+ )
+}
+# defines a range of enumerants not currently being used
+# start, end - beginning and end of an unused numeric range
+# vendor - unused
+# comment - unused
+Unused = element unused {
+ attribute start { Integer } ,
+ attribute end { Integer } ? ,
+ Vendor ? ,
+ Comment ?
+}
+# defines a group of commands
+# namespace - identifies a function namespace
+Commands = element commands {
+ attribute namespace { text } ? ,
+ Command *
+}
+# defines a single command
+# is the C function prototype, including the return type
+# are function parameters, in order
+# is a name, if present
+# is the function / parameter name
+# The textual contents of and should be legal C
+# for those parts of a function declaration.
+# - denotes function aliasing
+# name - name of aliased function
+# - denotes scalar / vector function equivalence
+# name - name of corresponding vector form, e.g. (glColor3f -> glColor3fv)
+# - information about GLX protocol
+# type - "render", "single", or "vendor" for GLXRender, GLXSingle, GLXVendorPrivate{WithReply}
+# opcode - numeric opcode of specified type for this function
+# name - if present, protocol name (defaults to command name)
+# comment - unused
+Command = element command {
+ Comment ? ,
+ element proto {
+ attribute group { text } ? ,
+ text ,
+ element ptype { TypeName } ? ,
+ text ,
+ element name { text } ,
+ text
+ } ,
+ element param {
+ attribute group { text } ? ,
+ attribute len { text } ? ,
+ text ,
+ element ptype { TypeName } ? ,
+ text ,
+ element name { text } ,
+ text
+ } * ,
+ (
+ element alias {
+ Name
+ } ? &
+ element vecequiv {
+ Name
+ } ? &
+ element glx {
+ attribute type { text } ,
+ attribute opcode { xsd:integer } ,
+ Name ? ,
+ Comment ?
+ } *
+ )
+}
+# Each defines the interface of an API version (e.g. OpenGL 1.2)
+# api - API tag (e.g. 'gl', 'gles2', etc. - used internally, not
+# neccessarily an actual API name
+# name - version name (C preprocessor name, e.g. GL_VERSION_4_2)
+# number - version number, e.g. 4.2
+# protect - additional #ifdef symbol to place around the feature
+# / contains features to require or remove in
+# this version
+# profile - only require/remove when generated profile matches
+# comment - unused
+Feature = element feature {
+ attribute api { text } ,
+ Name ,
+ attribute number { xsd:float } ,
+ attribute protect { text } ?,
+ Comment ? ,
+ (
+ element require {
+ ProfileName ? ,
+ Comment ? ,
+ InterfaceElement *
+ } |
+ element remove {
+ ProfileName ? ,
+ Comment ? ,
+ InterfaceElement *
+ }
+ ) *
+}
+Extensions = element extensions {
+ Extension *
+}
+# Defines the interface of an API . Like a
+# tag, but with a slightly different api attribute.
+# api - regexp pattern matching one or more API tags, indicating
+# which APIs the extension is known to work with. The only
+# syntax supported is {|}* and each name must
+# exactly match an API being generated (implicit ^$ surrounding).
+# In addition, / tags also support an
+# api attribute:
+# api - only require/remove these features for the matching API.
+# Not a regular expression.
+Extension = element extension {
+ Name ,
+ attribute protect { text } ?,
+ attribute supported { StringGroup } ? ,
+ Comment ? ,
+ (
+ element require {
+ attribute api { text } ? ,
+ ProfileName ? ,
+ Comment ? ,
+ InterfaceElement *
+ } |
+ element remove {
+ attribute api { text } ? ,
+ ProfileName ? ,
+ Comment ? ,
+ InterfaceElement *
+ }
+ ) *
+}
+# Contents of a / tag, defining a group
+# of features to require or remove.
+# / / all have attributes
+# name - feature name which must match
+InterfaceElement =
+ element type {
+ Name ,
+ Comment ?
+ } |
+ element enum {
+ Name ,
+ Comment ?
+ } |
+ element command {
+ Name ,
+ Comment ?
+ }
+
+# Integers are allowed to be either decimal or C-hex (0x[0-9A-F]+), but
+# XML Schema types don't seem to support hex notation, so we use this
+# as a placeholder.
+Integer = text
+
+# TypeName is an argument/return value C type name
+TypeName = text
+
+# TypeSuffix is a C numeric type suffix, e.g. 'u' or 'ull'
+TypeSuffix = text
+
+# StringGroup is a regular expression with an implicit
+# '^(' and ')$' bracketing it.
+StringGroup = text
+
+# Repeatedly used attributes
+ProfileName = attribute profile { text }
+Vendor = attribute vendor { text }
+Comment = attribute comment { text }
+Name = attribute name { text }
diff --git a/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_GLES_layers.txt b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_GLES_layers.txt
new file mode 100644
index 0000000..eb2a7d9
--- /dev/null
+++ b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_GLES_layers.txt
@@ -0,0 +1,64 @@
+Name
+
+ ANDROID_GLES_layers
+
+Name Strings
+
+ EGL_ANDROID_GLES_layers
+
+Contributors
+
+ Cody Northrop
+
+Contact
+
+ Cody Northrop, Google LLC (cnorthrop 'at' google.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 1, March 3, 2019
+
+Number
+
+ EGL Extension #132
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Requires EGL 1.5 or EGL_EXT_client_extensions
+
+Overview
+
+ This extension indicates the EGL loader supports GLES layering on Android.
+ It does not add any requirements to drivers or hardware.
+
+ See frameworks/native/opengl/libs/EGL/GLES_layers.md in Android for
+ more information.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ None
+
+Issues
+
+ None
+
+Revision History
+
+#1 (Cody Northrop, March 3, 2019)
+ - Initial draft.
diff --git a/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_blob_cache.txt b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_blob_cache.txt
new file mode 100644
index 0000000..e984694
--- /dev/null
+++ b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_blob_cache.txt
@@ -0,0 +1,211 @@
+Name
+
+ ANDROID_blob_cache
+
+Name Strings
+
+ EGL_ANDROID_blob_cache
+
+Contributors
+
+ Jamie Gennis
+
+Contact
+
+ Jamie Gennis, Google Inc. (jgennis 'at' google.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 3, December 13, 2012
+
+Number
+
+ EGL Extension #48
+
+Dependencies
+
+ Requires EGL 1.0
+
+ This extension is written against the wording of the EGL 1.4 Specification
+
+Overview
+
+ Shader compilation and optimization has been a troublesome aspect of OpenGL
+ programming for a long time. It can consume seconds of CPU cycles during
+ application start-up. Additionally, state-based re-compiles done
+ internally by the drivers add an unpredictable element to application
+ performance tuning, often leading to occasional pauses in otherwise smooth
+ animations.
+
+ This extension provides a mechanism through which client API
+ implementations may cache shader binaries after they are compiled. It may
+ then retrieve those cached shaders during subsequent executions of the same
+ program. The management of the cache is handled by the application (or
+ middleware), allowing it to be tuned to a particular platform or
+ environment.
+
+ While the focus of this extension is on providing a persistent cache for
+ shader binaries, it may also be useful for caching other data. This is
+ perfectly acceptable, but the guarantees provided (or lack thereof) were
+ designed around the shader use case.
+
+ Note that although this extension is written as if the application
+ implements the caching functionality, on the Android OS it is implemented
+ as part of the Android EGL module. This extension is not exposed to
+ applications on Android, but will be used automatically in every
+ application that uses EGL if it is supported by the underlying
+ device-specific EGL implementation.
+
+New Types
+
+ /*
+ * EGLsizeiANDROID is a signed integer type for representing the size of a
+ * memory buffer.
+ */
+ #include
+ typedef khronos_ssize_t EGLsizeiANDROID;
+
+ /*
+ * EGLSetBlobFunc is a pointer to an application-provided function that a
+ * client API implementation may use to insert a key/value pair into the
+ * cache.
+ */
+ typedef void (*EGLSetBlobFuncANDROID) (const void* key,
+ EGLsizeiANDROID keySize, const void* value, EGLsizeiANDROID valueSize)
+
+ /*
+ * EGLGetBlobFunc is a pointer to an application-provided function that a
+ * client API implementation may use to retrieve a cached value from the
+ * cache.
+ */
+ typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void* key,
+ EGLsizeiANDROID keySize, void* value, EGLsizeiANDROID valueSize)
+
+New Procedures and Functions
+
+ void eglSetBlobCacheFuncsANDROID(EGLDisplay dpy,
+ EGLSetBlobFuncANDROID set,
+ EGLGetBlobFuncANDROID get);
+
+New Tokens
+
+ None.
+
+Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Add a new subsection after Section 3.8, page 50
+ (Synchronization Primitives)
+
+ "3.9 Persistent Caching
+
+ In order to facilitate persistent caching of internal client API state that
+ is slow to compute or collect, the application may specify callback
+ function pointers through which the client APIs can request data be cached
+ and retrieved. The command
+
+ void eglSetBlobCacheFuncsANDROID(EGLDisplay dpy,
+ EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
+
+ sets the callback function pointers that client APIs associated with
+ display can use to interact with caching functionality provided by
+ the application. points to a function that inserts a new value into
+ the cache and associates it with the given key. points to a function
+ that retrieves from the cache the value associated with a given key. The
+ semantics of these callback functions are described in Section 3.9.1 (Cache
+ Operations).
+
+ Cache functions may only be specified once during the lifetime of an
+ EGLDisplay. The and functions may be called at any time and
+ from any thread from the time at which eglSetBlobCacheFuncsANDROID is
+ called until the time that the last resource associated with is
+ deleted and itself is terminated. Concurrent calls to these
+ functions from different threads is also allowed.
+
+ If eglSetBlobCacheFuncsANDROID generates an error then all client APIs must
+ behave as though eglSetBlobCacheFuncsANDROID was not called for the display
+ . If or is NULL then an EGL_BAD_PARAMETER error is
+ generated. If a successful eglSetBlobCacheFuncsANDROID call was already
+ made for and the display has not since been terminated then an
+ EGL_BAD_PARAMETER error is generated.
+
+ 3.9.1 Cache Operations
+
+ To insert a new binary value into the cache and associate it with a given
+ key, a client API implementation can call the application-provided callback
+ function
+
+ void (*set) (const void* key, EGLsizeiANDROID keySize,
+ const void* value, EGLsizeiANDROID valueSize)
+
+ and are pointers to the beginning of the key and value,
+ respectively, that are to be inserted. and specify
+ the size in bytes of the data pointed to by and ,
+ respectively.
+
+ No guarantees are made as to whether a given key/value pair is present in
+ the cache after the set call. If a different value has been associated
+ with the given key in the past then it is undefined which value, if any, is
+ associated with the key after the set call. Note that while there are no
+ guarantees, the cache implementation should attempt to cache the most
+ recently set value for a given key.
+
+ To retrieve the binary value associated with a given key from the cache, a
+ client API implementation can call the application-provided callback
+ function
+
+ EGLsizeiANDROID (*get) (const void* key, EGLsizeiANDROID keySize,
+ void* value, EGLsizeiANDROID valueSize)
+
+ is a pointer to the beginning of the key. specifies the
+ size in bytes of the binary key pointed to by . If the cache contains
+ a value associated with the given key then the size of that binary value in
+ bytes is returned. Otherwise 0 is returned.
+
+ If the cache contains a value for the given key and its size in bytes is
+ less than or equal to then the value is written to the memory
+ pointed to by . Otherwise nothing is written to the memory pointed
+ to by .
+
+Issues
+
+ 1. How should errors be handled in the callback functions?
+
+ RESOLVED: No guarantees are made about the presence of values in the cache,
+ so there should not be a need to return error information to the client API
+ implementation. The cache implementation can simply drop a value if it
+ encounters an error during the 'set' callback. Similarly, it can simply
+ return 0 if it encouters an error in a 'get' callback.
+
+ 2. When a client API driver gets updated, that may need to invalidate
+ previously cached entries. How can the driver handle this situation?
+
+ RESPONSE: There are a number of ways the driver can handle this situation.
+ The recommended way is to include the driver version in all cache keys.
+ That way each driver version will use a set of cache keys that are unique
+ to that version, and conflicts should never occur. Updating the driver
+ could then leave a number of values in the cache that will never be
+ requested again. If needed, the cache implementation can handle those
+ values in some way, but the driver does not need to take any special
+ action.
+
+ 3. How much data can be stored in the cache?
+
+ RESPONSE: This is entirely dependent upon the cache implementation.
+ Presumably it will be tuned to store enough data to be useful, but not
+ enough to become problematic. :)
+
+Revision History
+
+#3 (Jon Leech, December 13, 2012)
+ - Fix typo in New Functions section & assign extension #.
+
+#2 (Jamie Gennis, April 25, 2011)
+ - Swapped the order of the size and pointer arguments to the get and set
+ functions.
+
+#1 (Jamie Gennis, April 22, 2011)
+ - Initial draft.
diff --git a/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_create_native_client_buffer.txt b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_create_native_client_buffer.txt
new file mode 100644
index 0000000..3e0c4a9
--- /dev/null
+++ b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_create_native_client_buffer.txt
@@ -0,0 +1,197 @@
+Name
+
+ ANDROID_create_native_client_buffer
+
+Name Strings
+
+ EGL_ANDROID_create_native_client_buffer
+
+Contributors
+
+ Craig Donner
+
+Contact
+
+ Craig Donner, Google Inc. (cdonner 'at' google.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 1, January 19, 2016
+
+Number
+
+ EGL Extension #99
+
+Dependencies
+
+ Requires EGL 1.2.
+
+ EGL_ANDROID_image_native_buffer and EGL_KHR_image_base are required.
+
+ This extension is written against the wording of the EGL 1.2
+ Specification as modified by EGL_KHR_image_base and
+ EGL_ANDROID_image_native_buffer.
+
+Overview
+
+ This extension allows creating an EGLClientBuffer backed by an Android
+ window buffer (struct ANativeWindowBuffer) which can be later used to
+ create an EGLImage.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ EGLClientBuffer eglCreateNativeClientBufferANDROID(
+ const EGLint *attrib_list)
+
+New Tokens
+
+ EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143
+ EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001
+ EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002
+ EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Add the following to section 2.5.1 "EGLImage Specification" (as modified by
+ the EGL_KHR_image_base and EGL_ANDROID_image_native_buffer specifications),
+ below the description of eglCreateImageKHR:
+
+ "The command
+
+ EGLClientBuffer eglCreateNativeClientBufferANDROID(
+ const EGLint *attrib_list)
+
+ may be used to create an EGLClientBuffer backed by an ANativeWindowBuffer
+ struct. EGL implementations must guarantee that the lifetime of the
+ returned EGLClientBuffer is at least as long as the EGLImage(s) it is bound
+ to, following the lifetime semantics described below in section 2.5.2; the
+ EGLClientBuffer must be destroyed no earlier than when all of its associated
+ EGLImages are destroyed by eglDestroyImageKHR. is a list of
+ attribute-value pairs which is used to specify the dimensions, format, and
+ usage of the underlying buffer structure. If is non-NULL, the
+ last attribute specified in the list must be EGL_NONE.
+
+ Attribute names accepted in are shown in Table aaa,
+ together with the for which each attribute name is valid, and
+ the default value used for each attribute if it is not included in
+ .
+
+ +---------------------------------+----------------------+---------------+
+ | Attribute | Description | Default Value |
+ | | | |
+ +---------------------------------+----------------------+---------------+
+ | EGL_NONE | Marks the end of the | N/A |
+ | | attribute-value list | |
+ | EGL_WIDTH | The width of the | 0 |
+ | | buffer data | |
+ | EGL_HEIGHT | The height of the | 0 |
+ | | buffer data | |
+ | EGL_RED_SIZE | The bits of Red in | 0 |
+ | | the color buffer | |
+ | EGL_GREEN_SIZE | The bits of Green in | 0 |
+ | | the color buffer | |
+ | EGL_BLUE_SIZE | The bits of Blue in | 0 |
+ | | the color buffer | |
+ | EGL_ALPHA_SIZE | The bits of Alpha in | 0 |
+ | | the color buffer | |
+ | | buffer data | |
+ | EGL_NATIVE_BUFFER_USAGE_ANDROID | The usage bits of | 0 |
+ | | the buffer data | |
+ +---------------------------------+----------------------+---------------+
+ Table aaa. Legal attributes for eglCreateNativeClientBufferANDROID
+ parameter.
+
+ The maximum width and height may depend on the amount of available memory,
+ which may also depend on the format and usage flags. The values of
+ EGL_RED_SIZE, EGL_GREEN_SIZE, and EGL_BLUE_SIZE must be non-zero and
+ correspond to a valid pixel format for the implementation. If EGL_ALPHA_SIZE
+ is non-zero then the combination of all four sizes must correspond to a
+ valid pixel format for the implementation. The
+ EGL_NATIVE_BUFFER_USAGE_ANDROID flag may include any of the following bits:
+
+ EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID: Indicates that the
+ created buffer must have a hardware-protected path to external display
+ sink. If a hardware-protected path is not available, then either don't
+ composite only this buffer (preferred) to the external sink, or (less
+ desirable) do not route the entire composition to the external sink.
+
+ EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID: The buffer will be
+ used to create a renderbuffer. This flag must not be set if
+ EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID is set.
+
+ EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID: The buffer will be used to
+ create a texture. This flag must not be set if
+ EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID is set.
+
+ Errors
+
+ If eglCreateNativeClientBufferANDROID fails, NULL will be returned, no
+ memory will be allocated, and one of the following errors will be
+ generated:
+
+ * If the value of EGL_WIDTH or EGL_HEIGHT is not positive, the error
+ EGL_BAD_PARAMETER is generated.
+
+ * If the combination of the values of EGL_RED_SIZE, EGL_GREEN_SIZE,
+ EGL_BLUE_SIZE, and EGL_ALPHA_SIZE is not a valid pixel format for the
+ EGL implementation, the error EGL_BAD_PARAMETER is generated.
+
+ * If the value of EGL_NATIVE_BUFFER_ANDROID is not a valid combination
+ of gralloc usage flags for the EGL implementation, or is incompatible
+ with the value of EGL_FORMAT, the error EGL_BAD_PARAMETER is
+ Generated.
+
+ * If both the EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID and
+ EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID are set in the value of
+ EGL_NATIVE_BUFFER_USAGE_ANDROID, the error EGL_BAD_PARAMETER is
+ Generated."
+
+Issues
+
+ 1. Should this extension define what combinations of formats and usage flags
+ EGL implementations are required to support?
+
+ RESOLVED: Partially.
+
+ The set of valid color combinations is implementation-specific and may
+ depend on additional EGL extensions, but generally RGB565 and RGBA888 should
+ be supported. The particular valid combinations for a given Android version
+ and implementation should be documented by that version.
+
+ 2. Should there be an eglDestroyNativeClientBufferANDROID to destroy the
+ client buffers created by this extension?
+
+ RESOLVED: No.
+
+ A destroy function would add several complications:
+
+ a) ANativeWindowBuffer is a reference counted object, may be used
+ outside of EGL.
+ b) The same buffer may back multiple EGLImages, though this usage may
+ result in undefined behavior.
+ c) The interactions between the lifetimes of EGLImages and their
+ EGLClientBuffers would become needlessly complex.
+
+ Because ANativeWindowBuffer is a reference counted object, implementations
+ of this extension should ensure the buffer has a lifetime at least as long
+ as a generated EGLImage (via EGL_ANDROID_image_native_buffer). The simplest
+ method is to increment the reference count of the buffer in
+ eglCreateImagKHR, and then decrement it in eglDestroyImageKHR. This should
+ ensure proper lifetime semantics.
+
+Revision History
+
+#2 (Craig Donner, April 15, 2016)
+ - Set color formats and usage bits explicitly using additional attributes,
+ and add value for new token EGL_NATIVE_BUFFER_USAGE_ANDROID.
+
+#1 (Craig Donner, January 19, 2016)
+ - Initial draft.
diff --git a/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_framebuffer_target.txt b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_framebuffer_target.txt
new file mode 100644
index 0000000..a15dfa8
--- /dev/null
+++ b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_framebuffer_target.txt
@@ -0,0 +1,102 @@
+Name
+
+ ANDROID_framebuffer_target
+
+Name Strings
+
+ EGL_ANDROID_framebuffer_target
+
+Contributors
+
+ Jamie Gennis
+
+Contact
+
+ Jamie Gennis, Google Inc. (jgennis 'at' google.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 1, September 20, 2012
+
+Number
+
+ EGL Extension #47
+
+Dependencies
+
+ Requires EGL 1.0
+
+ This extension is written against the wording of the EGL 1.4 Specification
+
+Overview
+
+ Android supports a number of different ANativeWindow implementations that
+ can be used to create an EGLSurface. One implementation, which is used to
+ send the result of performing window composition to a display, may have
+ some device-specific restrictions. Because of this, some EGLConfigs may
+ be incompatible with these ANativeWindows. This extension introduces a
+ new boolean EGLConfig attribute that indicates whether the EGLConfig
+ supports rendering to an ANativeWindow for which the buffers are passed to
+ the HWComposer HAL as a framebuffer target layer.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted by the parameter of eglGetConfigAttrib and
+ the parameter of eglChooseConfig:
+
+ EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147
+
+Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Section 3.4, Configuration Management, add a row to Table 3.1.
+
+ Attribute Type Notes
+ ------------------------------ ------- ---------------------------
+ EGL_FRAMEBUFFER_TARGET_ANDROID boolean whether use as a HWComposer
+ framebuffer target layer is
+ supported
+
+ Section 3.4, Configuration Management, add a row to Table 3.4.
+
+ Attribute Default Selection Sort Sort
+ Criteria Order Priority
+ ------------------------------ ------------- --------- ----- --------
+ EGL_FRAMEBUFFER_TARGET_ANDROID EGL_DONT_CARE Exact None
+
+ Section 3.4, Configuration Management, add a paragraph at the end of the
+ subsection titled Other EGLConfig Attribute Descriptions.
+
+ EGL_FRAMEBUFFER_TARGET_ANDROID is a boolean indicating whether the
+ config may be used to create an EGLSurface from an ANativeWindow for
+ which the buffers are to be passed to HWComposer as a framebuffer
+ target layer.
+
+ Section 3.4.1, Querying Configurations, change the last paragraph as follow
+
+ EGLConfigs are not sorted with respect to the parameters
+ EGL_BIND_TO_TEXTURE_RGB, EGL_BIND_TO_TEXTURE_RGBA, EGL_CONFORMANT,
+ EGL_LEVEL, EGL_NATIVE_RENDERABLE, EGL_MAX_SWAP_INTERVAL,
+ EGL_MIN_SWAP_INTERVAL, EGL_RENDERABLE_TYPE, EGL_SURFACE_TYPE,
+ EGL_TRANSPARENT_TYPE, EGL_TRANSPARENT_RED_VALUE,
+ EGL_TRANSPARENT_GREEN_VALUE, EGL_TRANSPARENT_BLUE_VALUE, and
+ EGL_RECORDABLE_ANDROID.
+
+Issues
+
+
+Revision History
+
+#1 (Jamie Gennis, September 20, 2012)
+ - Initial draft.
diff --git a/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_front_buffer_auto_refresh.txt b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_front_buffer_auto_refresh.txt
new file mode 100644
index 0000000..4c0e64c
--- /dev/null
+++ b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_front_buffer_auto_refresh.txt
@@ -0,0 +1,70 @@
+Name
+
+ ANDROID_front_buffer_auto_refresh
+
+Name Strings
+
+ EGL_ANDROID_front_buffer_auto_refresh
+
+Contributors
+
+ Pablo Ceballos
+
+Contact
+
+ Pablo Ceballos, Google Inc. (pceballos 'at' google.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 1, February 3, 2016
+
+Number
+
+ EGL Extension #XXX
+
+Dependencies
+
+ Requires EGL 1.2
+
+ This extension is written against the wording of the EGL 1.5 Specification
+
+Overview
+
+ This extension is intended for latency-sensitive applications that are doing
+ front-buffer rendering. It allows them to indicate to the Android compositor
+ that it should perform composition every time the display refreshes. This
+ removes the overhead of having to notify the compositor that the window
+ surface has been updated, but it comes at the cost of doing potentially
+ unneeded composition work if the window surface has not been updated.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C
+
+Add to the list of supported tokens for eglSurfaceAttrib in section 3.5.6
+"Surface Attributes", page 43:
+
+ If attribute is EGL_ANDROID_front_buffer_auto_refresh, then value specifies
+ whether to enable or disable auto-refresh in the Android compositor when
+ doing front-buffer rendering.
+
+Issues
+
+ None
+
+Revision History
+
+#1 (Pablo Ceballos, February 3, 2016)
+ - Initial draft.
diff --git a/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt
new file mode 100644
index 0000000..bf8d149
--- /dev/null
+++ b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt
@@ -0,0 +1,259 @@
+Name
+
+ ANDROID_get_frame_timestamps
+
+Name Strings
+
+ EGL_ANDROID_get_frame_timestamps
+
+Contributors
+
+ Brian Anderson
+ Dan Stoza
+ Pablo Ceballos
+ Jesse Hall
+ Fabien Sanglard
+
+Contact
+
+ Brian Anderson, Google Inc. (brianderson 'at' google.com)
+ Dan Stoza, Google Inc. (stoza 'at' google.com)
+ Pablo Ceballos, Google Inc. (pceballos 'at' google.com)
+ Jesse Hall, Google Inc. (jessehall 'at' google.com)
+ Fabien Sanglard, Google Inc. (sanglardf 'at' google.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 8, April 11, 2017
+
+Number
+
+ EGL Extension #122
+
+Dependencies
+
+ Requires EGL 1.2
+
+ This extension is written against the wording of the EGL 1.5 Specification
+
+Overview
+
+ This extension allows querying various timestamps related to the composition
+ and display of window surfaces.
+
+ Some examples of how this might be used:
+ - The display present time can be used to calculate end-to-end latency
+ of the entire graphics pipeline.
+ - The queue time and rendering complete time can be used to determine
+ how long the application's rendering took to complete. Likewise, the
+ composition start time and finish time can be used to determine how
+ long the compositor's rendering work took. In combination these can be
+ used to help determine if the system is GPU or CPU bound.
+
+New Types
+
+ /*
+ * EGLnsecsANDROID is a signed integer type for representing a time in
+ * nanoseconds.
+ */
+ #include
+ typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
+
+New Procedures and Functions
+
+ EGLBoolean eglGetNextFrameIdANDROID(EGLDisplay dpy, EGLSurface surface,
+ EGLuint64KHR *frameId);
+
+ EGLBoolean eglGetCompositorTimingANDROID(EGLDisplay dpy,
+ EGLSurface surface, EGLint numTimestamps,
+ const EGLint *names, EGLnsecsANDROID *values);
+
+ EGLBoolean eglGetFrameTimestampsANDROID(EGLDisplay dpy, EGLSurface surface,
+ EGLuint64KHR frameId, EGLint numTimestamps,
+ const EGLint *timestamps, EGLnsecsANDROID *values);
+
+ EGLBoolean eglGetFrameTimestampSupportedANDROID(EGLDisplay dpy,
+ EGLSurface surface, EGLint timestamp);
+
+New Tokens
+
+ EGL_TIMESTAMPS_ANDROID 0x3430
+ EGL_COMPOSITE_DEADLINE_ANDROID 0x3431
+ EGL_COMPOSITE_INTERVAL_ANDROID 0x3432
+ EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433
+ EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434
+ EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435
+ EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436
+ EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437
+ EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438
+ EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439
+ EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A
+ EGL_DEQUEUE_READY_TIME_ANDROID 0x343B
+ EGL_READS_DONE_TIME_ANDROID 0x343C
+ EGL_TIMESTAMP_PENDING_ANDROID -2
+ EGL_TIMESTAMP_INVALID_ANDROID -1
+
+Add to the list of supported tokens for eglSurfaceAttrib in section 3.5.6
+"Surface Attributes", page 43:
+
+ If attribute is EGL_TIMESTAMPS_ANDROID, then values specifies whether to
+ enable/disable timestamp collection for this surface. A value of EGL_TRUE
+ enables timestamp collection, while a value of EGL_FALSE disables it. The
+ initial value is false. If surface is not a window surface this has no
+ effect.
+Changes to Chapter 3 of the EGL 1.5 Specification (EGL Functions and Errors)
+
+ Add a new subsection under Section 3,
+
+ "3.13 Composition and Display Timestamps
+
+ The function
+
+ EGLBoolean eglGetNextFrameIdANDROID(EGLDisplay dpy, EGLSurface surface,
+ EGLuint64KHR *frameId);
+
+ Returns an identifier for the next frame to be swapped. The identifier can
+ be used to correlate a particular eglSwapBuffers with its timestamps in
+ eglGetFrameTimestampsANDROID. If any error is generated, the function will
+ return EGL_FALSE.
+
+ The function
+
+ EGLBoolean eglGetCompositorTimingANDROID(EGLDisplay dpy,
+ EGLSurface surface, EGLint numTimestamps,
+ const EGLint *names, EGLnsecsANDROID *values);
+
+ allows querying anticipated timestamps and durations related to the
+ composition and display of a window surface. The values are not associated
+ with a particular frame and can be retrieved before the first swap.
+
+ The eglGetCompositorTimingANDROID function takes an array of names to
+ query and returns their values in the corresponding indices of the values
+ array. The possible names that can be queried are:
+ - EGL_COMPOSITE_DEADLINE_ANDROID - The timestamp of the next time the
+ compositor will begin composition. This is effectively the deadline
+ for when the compositor must receive a newly queued frame.
+ - EGL_COMPOSITE_INTERVAL_ANDROID - The time delta between subsequent
+ composition events.
+ - EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID - The time delta between
+ the start of composition and the expected present time of that
+ composition. This can be used to estimate the latency of the
+ actual present time.
+
+ The function
+
+ EGLBoolean eglGetFrameTimestampsANDROID(EGLDisplay dpy,
+ EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps,
+ const EGLint *timestamps, EGLnsecsANDROID *values);
+
+ allows querying various timestamps related to the composition and display
+ of specific frames of a window surface.
+
+ The frameId indicates which frame to query. The implementation maintains a
+ limited history of timestamp data. If a query is made for a frame whose
+ timestamp history no longer exists then EGL_BAD_ACCESS is generated. If
+ timestamp collection has not been enabled for the surface then
+ EGL_BAD_SURFACE is generated. Timestamps for events that might still occur
+ will have the value EGL_TIMESTAMP_PENDING_ANDROID. Timestamps for events
+ that did not occur will have the value EGL_TIMESTAMP_INVALID_ANDROID.
+ Otherwise, the timestamp will be valid and indicate the event has occured.
+ Timestamp queries that are not supported will generate an EGL_BAD_PARAMETER
+ error. If any error is generated the function will return EGL_FALSE.
+
+ The application can poll for the timestamp of particular events by calling
+ eglGetFrameTimestamps over and over without needing to call any other EGL
+ function between calls. This is true even for the most recently swapped
+ frame. eglGetFrameTimestamps is thread safe and can be called from a
+ different thread than the swapping thread.
+
+ The eglGetFrameTimestampsANDROID function takes an array of timestamps to
+ query and returns timestamps in the corresponding indices of the values
+ array. The possible timestamps that can be queried are:
+ - EGL_REQUESTED_PRESENT_TIME_ANDROID - The time the application
+ requested this frame be presented. See EGL_ANDROID_presentation_time.
+ If the application does not request a presentation time explicitly,
+ this will correspond to buffer's queue time.
+ - EGL_RENDERING_COMPLETE_TIME_ANDROID - The time when all of the
+ application's rendering to the surface was completed.
+ - EGL_COMPOSITION_LATCH_TIME_ANDROID - The time when the compositor
+ selected this frame as the one to use for the next composition. The
+ latch is the earliest indication that the frame was submitted in time
+ to be composited.
+ - EGL_FIRST_COMPOSITION_START_TIME_ANDROID - The first time at which
+ the compositor began preparing composition for this frame.
+ - EGL_LAST_COMPOSITION_START_TIME_ANDROID - The last time at which the
+ compositor began preparing composition for this frame. If this frame
+ is composited only once, it will have the same value as
+ EGL_FIRST_COMPOSITION_START_TIME_ANDROID. If the value is not equal,
+ that indicates the subsequent frame was not submitted in time to be
+ latched by the compositor. Note: The value may not be updated for
+ every display refresh if the compositor becomes idle.
+ - EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID - The time at which
+ the compositor's rendering work for this frame finished. This will be
+ zero if composition was handled by the display and the compositor
+ didn't do any rendering.
+ - EGL_DISPLAY_PRESENT_TIME_ANDROID - The time at which this frame
+ started to scan out to the physical display.
+ - EGL_DEQUEUE_READY_TIME_ANDROID - The time when the buffer became
+ available for reuse as a buffer the client can target without
+ blocking. This is generally the point when all read commands of the
+ buffer have been submitted, but not necessarily completed.
+ - EGL_READS_DONE_TIME_ANDROID - The time at which all reads for the
+ purpose of display/composition were completed for this frame.
+
+ Not all implementations may support all of the above timestamp queries. The
+ functions
+
+ EGLBoolean eglGetCompositorTimingSupportedANDROID(EGLDisplay dpy,
+ EGLSurface surface, EGLint name);
+
+ and
+
+ EGLBoolean eglGetFrameTimestampSupportedANDROID(EGLDisplay dpy,
+ EGLSurface surface, EGLint timestamp);
+
+ allows querying which values are supported by the implementations of
+ eglGetCompositorTimingANDROID and eglGetFrameTimestampSupportedANDROID
+ respectively."
+
+Issues
+
+ None
+
+Revision History
+
+#9 (Chris Forbes, June 11, 2019)
+ - Fix eglGetFrameTimestampSupportedANDROID function name in extension
+ spec to match reality
+
+#8 (Brian Anderson, April 11, 2017)
+ - Use reserved enumerant values.
+
+#7 (Brian Anderson, March 21, 2017)
+ - Differentiate between pending events and events that did not occur.
+
+#6 (Brian Anderson, March 16, 2017)
+ - Remove DISPLAY_RETIRE_TIME_ANDROID.
+
+#5 (Brian Anderson, January 13, 2017)
+ - Add eglGetCompositorTimingANDROID.
+
+#4 (Brian Anderson, January 10, 2017)
+ - Use an absolute frameId rather than a relative framesAgo.
+
+#3 (Brian Anderson, November 30, 2016)
+ - Add EGL_COMPOSITION_LATCH_TIME_ANDROID,
+ EGL_LAST_COMPOSITION_START_TIME_ANDROID, and
+ EGL_DEQUEUE_READY_TIME_ANDROID.
+
+#2 (Brian Anderson, July 22, 2016)
+ - Replace EGL_QUEUE_TIME_ANDROID with EGL_REQUESTED_PRESENT_TIME_ANDROID.
+ - Add DISPLAY_PRESENT_TIME_ANDROID.
+
+#1 (Pablo Ceballos, May 31, 2016)
+ - Initial draft.
+
diff --git a/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt
new file mode 100644
index 0000000..285bba4
--- /dev/null
+++ b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt
@@ -0,0 +1,102 @@
+Name
+
+ ANDROID_get_native_client_buffer
+
+Name Strings
+
+ EGL_ANDROID_get_native_client_buffer
+
+Contributors
+
+ Craig Donner
+
+Contact
+
+ Craig Donner, Google Inc. (cdonner 'at' google.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 3, October 11, 2017
+
+Number
+
+ EGL Extension #123
+
+Dependencies
+
+ Requires EGL 1.2.
+
+ EGL_ANDROID_image_native_buffer and EGL_KHR_image_base are required.
+
+ This extension is written against the wording of the EGL 1.2
+ Specification as modified by EGL_KHR_image_base and
+ EGL_ANDROID_image_native_buffer.
+
+Overview
+
+ This extension allows creating an EGLClientBuffer from an Android
+ AHardwareBuffer object which can be later used to create an EGLImage.
+
+New Types
+
+ struct AHardwareBuffer
+
+New Procedures and Functions
+
+ EGLClientBuffer eglGetNativeClientBufferANDROID(const struct AHardwareBuffer *buffer)
+
+New Tokens
+
+ None
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Add the following to section 2.5.1 "EGLImage Specification" (as modified by
+ the EGL_KHR_image_base and EGL_ANDROID_image_native_buffer specifications),
+ below the description of eglCreateImageKHR:
+
+ "The command
+
+ EGLClientBuffer eglGetNativeClientBufferANDROID(
+ const struct AHardwareBuffer *buffer)
+
+ may be used to create an EGLClientBuffer from an AHardwareBuffer object.
+ EGL implementations must guarantee that the lifetime of the returned
+ EGLClientBuffer is at least as long as the EGLImage(s) it is bound to,
+ following the lifetime semantics described below in section 2.5.2; the
+ EGLClientBuffer must be destroyed no earlier than when all of its associated
+ EGLImages are destroyed by eglDestroyImageKHR.
+
+ Errors
+
+ If eglGetNativeClientBufferANDROID fails, NULL will be returned, no
+ memory will be allocated, and the following error will be generated:
+
+ * If the value of buffer is NULL, the error EGL_BAD_PARAMETER is
+ generated.
+
+Issues
+
+ 1. Should this extension define what particular AHardwareBuffer formats EGL
+ implementations are required to support?
+
+ RESOLVED: No.
+
+ The set of valid formats is implementation-specific and may depend on
+ additional EGL extensions. The particular valid combinations for a given
+ Android version and implementation should be documented by that version.
+
+Revision History
+
+#3 (Jesse Hall, October 11, 2017)
+ - Assigned extension number, fixed minor issues for publication
+
+#2 (Craig Donner, February 17, 2017)
+ - Fix typographical errors.
+
+#1 (Craig Donner, January 27, 2017)
+ - Initial draft.
diff --git a/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_image_native_buffer.txt b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_image_native_buffer.txt
new file mode 100644
index 0000000..7392d4f
--- /dev/null
+++ b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_image_native_buffer.txt
@@ -0,0 +1,108 @@
+Name
+
+ ANDROID_image_native_buffer
+
+Name Strings
+
+ EGL_ANDROID_image_native_buffer
+
+Contributors
+
+ Mathias Agopian
+ Jamie Gennis
+ Jesse Hall
+
+Contact
+
+ Jesse Hall, Google Inc. (jessehall 'at' google.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 1, November 28, 2012
+
+Number
+
+ EGL Extension #49
+
+Dependencies
+
+ EGL 1.2 is required.
+
+ EGL_KHR_image_base is required.
+
+ This extension is written against the wording of the EGL 1.2
+ Specification.
+
+Overview
+
+ This extension enables using an Android window buffer (struct
+ ANativeWindowBuffer) as an EGLImage source.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted by the parameter of eglCreateImageKHR:
+
+ EGL_NATIVE_BUFFER_ANDROID 0x3140
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Add to section 2.5.1 "EGLImage Specification" (as defined by the
+ EGL_KHR_image_base specification), in the description of
+ eglCreateImageKHR:
+
+ "Values accepted for are listed in Table aaa, below.
+
+ +----------------------------+-----------------------------------------+
+ | | Notes |
+ +----------------------------+-----------------------------------------+
+ | EGL_NATIVE_BUFFER_ANDROID | Used for ANativeWindowBuffer objects |
+ +----------------------------+-----------------------------------------+
+ Table aaa. Legal values for eglCreateImageKHR parameter
+
+ ...
+
+ If is EGL_NATIVE_BUFFER_ANDROID, must be a valid display,
+ must be EGL_NO_CONTEXT, must be a pointer to a valid
+ ANativeWindowBuffer object (cast into the type EGLClientBuffer), and
+ attributes other than EGL_IMAGE_PRESERVED_KHR are ignored."
+
+ Add to the list of error conditions for eglCreateImageKHR:
+
+ "* If is EGL_NATIVE_BUFFER_ANDROID and is not a
+ pointer to a valid ANativeWindowBuffer, the error EGL_BAD_PARAMETER
+ is generated.
+
+ * If is EGL_NATIVE_BUFFER_ANDROID and is not
+ EGL_NO_CONTEXT, the error EGL_BAD_CONTEXT is generated.
+
+ * If is EGL_NATIVE_BUFFER_ANDROID and was created
+ with properties (format, usage, dimensions, etc.) not supported by
+ the EGL implementation, the error EGL_BAD_PARAMETER is generated."
+
+Issues
+
+ 1. Should this extension define what combinations of ANativeWindowBuffer
+ properties implementations are required to support?
+
+ RESOLVED: No.
+
+ The requirements have evolved over time and will continue to change with
+ future Android releases. The minimum requirements for a given Android
+ version should be documented by that version.
+
+Revision History
+
+#1 (Jesse Hall, November 28, 2012)
+ - Initial draft.
diff --git a/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt
new file mode 100644
index 0000000..d72edd7
--- /dev/null
+++ b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt
@@ -0,0 +1,281 @@
+Name
+
+ ANDROID_native_fence_sync
+
+Name Strings
+
+ EGL_ANDROID_native_fence_sync
+
+Contributors
+
+ Jamie Gennis
+
+Contact
+
+ Jamie Gennis, Google Inc. (jgennis 'at' google.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 3, September 4, 2012
+
+Number
+
+ EGL Extension #50
+
+Dependencies
+
+ Requires EGL 1.1
+
+ This extension is written against the wording of the EGL 1.2 Specification
+
+ EGL_KHR_fence_sync is required.
+
+Overview
+
+ This extension enables the creation of EGL fence sync objects that are
+ associated with a native synchronization fence object that is referenced
+ using a file descriptor. These EGL fence sync objects have nearly
+ identical semantics to those defined by the KHR_fence_sync extension,
+ except that they have an additional attribute storing the file descriptor
+ referring to the native fence object.
+
+ This extension assumes the existence of a native fence synchronization
+ object that behaves similarly to an EGL fence sync object. These native
+ objects must have a signal status like that of an EGLSyncKHR object that
+ indicates whether the fence has ever been signaled. Once signaled the
+ native object's signal status may not change again.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ EGLint eglDupNativeFenceFDANDROID(
+ EGLDisplay dpy,
+ EGLSyncKHR);
+
+New Tokens
+
+ Accepted by the parameter of eglCreateSyncKHR, and returned
+ in when eglGetSyncAttribKHR is called with
+ EGL_SYNC_TYPE_KHR:
+
+ EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144
+
+ Accepted by the parameter of eglCreateSyncKHR:
+
+ EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145
+
+ Accepted by the parameter of eglCreateSyncKHR, and returned
+ by eglDupNativeFenceFDANDROID in the event of an error:
+
+ EGL_NO_NATIVE_FENCE_FD_ANDROID -1
+
+ Returned in when eglGetSyncAttribKHR is called with
+ EGL_SYNC_CONDITION_KHR:
+
+ EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Add the following after the sixth paragraph of Section 3.8.1 (Sync
+ Objects), added by KHR_fence_sync
+
+ "If is EGL_SYNC_NATIVE_FENCE_ANDROID, an EGL native fence sync
+ object is created. In this case the EGL_SYNC_NATIVE_FENCE_FD_ANDROID
+ attribute may optionally be specified. If this attribute is specified, it
+ must be set to either a file descriptor that refers to a native fence
+ object or to the value EGL_NO_NATIVE_FENCE_FD_ANDROID.
+
+ The default values for the EGL native fence sync object attributes are as
+ follows:
+
+ Attribute Name Initial Attribute Value(s)
+ --------------- --------------------------
+ EGL_SYNC_TYPE_KHR EGL_SYNC_NATIVE_FENCE_ANDROID
+ EGL_SYNC_STATUS_KHR EGL_UNSIGNALED_KHR
+ EGL_SYNC_CONDITION_KHR EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR
+ EGL_SYNC_NATIVE_FENCE_FD_ANDROID EGL_NO_NATIVE_FENCE_FD_ANDROID
+
+ If the EGL_SYNC_NATIVE_FENCE_FD_ANDROID attribute is not
+ EGL_NO_NATIVE_FENCE_FD_ANDROID then the EGL_SYNC_CONDITION_KHR attribute is
+ set to EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID and the EGL_SYNC_STATUS_KHR
+ attribute is set to reflect the signal status of the native fence object.
+ Additionally, the EGL implementation assumes ownership of the file
+ descriptor, so the caller must not use it after calling eglCreateSyncKHR."
+
+ Modify Section 3.8.1 (Sync Objects), added by KHR_fence_sync, starting at
+ the seventh paragraph
+
+ "When a fence sync object is created or when an EGL native fence sync
+ object is created with the EGL_SYNC_NATIVE_FENCE_FD_ANDROID attribute set
+ to EGL_NO_NATIVE_FENCE_FD_ANDROID, eglCreateSyncKHR also inserts a fence
+ command into the command stream of the bound client API's current context
+ (i.e., the context returned by eglGetCurrentContext), and associates it
+ with the newly created sync object.
+
+ After associating the fence command with an EGL native fence sync object,
+ the next Flush() operation performed by the current client API causes a
+ new native fence object to be created, and the
+ EGL_SYNC_NATIVE_FENCE_ANDROID attribute of the EGL native fence object is
+ set to a file descriptor that refers to the new native fence object. This
+ new native fence object is signaled when the EGL native fence sync object
+ is signaled.
+
+ When the condition of the sync object is satisfied by the fence command,
+ the sync is signaled by the associated client API context, causing any
+ eglClientWaitSyncKHR commands (see below) blocking on to unblock.
+ If the sync object is an EGL native fence sync object then the native
+ fence object is also signaled when the condition is satisfied. The
+ EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR condition is satisfied by completion
+ of the fence command corresponding to the sync object and all preceding
+ commands in the associated client API context's command stream. The sync
+ object will not be signaled until all effects from these commands on the
+ client API's internal and framebuffer state are fully realized. No other
+ state is affected by execution of the fence command.
+
+ The EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID condition is satisfied by the
+ signaling of the native fence object referred to by the
+ EGL_SYNC_NATIVE_FENCE_FD_ANDROID attribute. When this happens any
+ eglClientWaitSyncKHR commands blocking on unblock."
+
+ Modify the list of eglCreateSyncKHR errors in Section 3.8.1 (Sync Objects),
+ added by KHR_fence_sync
+
+ "Errors
+ ------
+
+ * If is not the name of a valid, initialized EGLDisplay,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_DISPLAY error is
+ generated.
+ * If is EGL_SYNC_FENCE_KHR and is neither NULL nor
+ empty (containing only EGL_NONE), EGL_NO_SYNC_KHR is returned and an
+ EGL_BAD_ATTRIBUTE error is generated.
+ * If is EGL_SYNC_NATIVE_FENCE_ANDROID and contains
+ an attribute other than EGL_SYNC_NATIVE_FENCE_FD_ANDROID,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_ATTRIBUTE error is
+ generated.
+ * If is not a supported type of sync object,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_ATTRIBUTE error is
+ generated.
+ * If is EGL_SYNC_FENCE_KHR or EGL_SYNC_NATIVE_FENCE_ANDROID and
+ no context is current for the bound API (i.e., eglGetCurrentContext
+ returns EGL_NO_CONTEXT), EGL_NO_SYNC_KHR is returned and an
+ EGL_BAD_MATCH error is generated.
+ * If is EGL_SYNC_FENCE_KHR or EGL_SYNC_NATIVE_FENCE_ANDROID and
+ does not match the EGLDisplay of the currently bound context for
+ the currently bound client API (the EGLDisplay returned by
+ eglGetCurrentDisplay()) then EGL_NO_SYNC_KHR is returned and an
+ EGL_BAD_MATCH error is generated.
+ * If is EGL_SYNC_FENCE_KHR or EGL_SYNC_NATIVE_FENCE_ANDROID and
+ the currently bound client API does not support the client API
+ extension indicating it can place fence commands, then EGL_NO_SYNC_KHR
+ is returned and an EGL_BAD_MATCH error is generated."
+
+ Modify table 3.cc in Section 3.8.1 (Sync Objects), added by KHR_fence_sync
+
+ "
+ Attribute Description Supported Sync Objects
+ ----------------- ----------------------- ----------------------
+ EGL_SYNC_TYPE_KHR Type of the sync object All
+ EGL_SYNC_STATUS_KHR Status of the sync object All
+ EGL_SYNC_CONDITION_KHR Signaling condition EGL_SYNC_FENCE_KHR and
+ EGL_SYNC_NATIVE_FENCE_ANDROID only
+ "
+
+ Modify the second paragraph description of eglDestroySyncKHR in Section
+ 3.8.1 (Sync Objects), added by KHR_fence_sync
+
+ "If no errors are generated, EGL_TRUE is returned, and will no
+ longer be the handle of a valid sync object. Additionally, if is an
+ EGL native fence sync object and the EGL_SYNC_NATIVE_FENCE_FD_ANDROID
+ attribute is not EGL_NO_NATIVE_FENCE_FD_ANDROID then that file descriptor
+ is closed."
+
+ Add the following after the last paragraph of Section 3.8.1 (Sync
+ Objects), added by KHR_fence_sync
+
+ The command
+
+ EGLint eglDupNativeFenceFDANDROID(
+ EGLDisplay dpy,
+ EGLSyncKHR sync);
+
+ duplicates the file descriptor stored in the
+ EGL_SYNC_NATIVE_FENCE_FD_ANDROID attribute of an EGL native fence sync
+ object and returns the new file descriptor.
+
+ Errors
+ ------
+
+ * If is not a valid sync object for ,
+ EGL_NO_NATIVE_FENCE_FD_ANDROID is returned and an EGL_BAD_PARAMETER
+ error is generated.
+ * If the EGL_SYNC_NATIVE_FENCE_FD_ANDROID attribute of is
+ EGL_NO_NATIVE_FENCE_FD_ANDROID, EGL_NO_NATIVE_FENCE_FD_ANDROID is
+ returned and an EGL_BAD_PARAMETER error is generated.
+ * If does not match the display passed to eglCreateSyncKHR
+ when was created, the behaviour is undefined."
+
+Issues
+
+ 1. Should EGLSyncKHR objects that wrap native fence objects use the
+ EGL_SYNC_FENCE_KHR type?
+
+ RESOLVED: A new sync object type will be added.
+
+ We don't want to require all EGL fence sync objects to wrap native fence
+ objects, so we need some way to tell the EGL implementation at sync object
+ creation whether the sync object should support querying the native fence
+ FD attribute. We could do this with either a new sync object type or with a
+ boolean attribute. It might be nice to pick up future signaling conditions
+ that might be added for fence sync objects, but there may be things that
+ get added that don't make sense in the context of native fence objects.
+
+ 2. Who is responsible for dup'ing the native fence file descriptors?
+
+ RESOLVED: Whenever a file descriptor is passed into or returned from an
+ EGL call in this extension, ownership of that file descriptor is
+ transfered. The recipient of the file descriptor must close it when it is
+ no longer needed, and the provider of the file descriptor must dup it
+ before providing it if they require continued use of the native fence.
+
+ 3. Can the EGL_SYNC_NATIVE_FENCE_FD_ANDROID attribute be queried?
+
+ RESOLVED: No.
+
+ Returning the file descriptor owned by the EGL implementation would
+ violate the file descriptor ownership rule described in issue #2. Having
+ eglGetSyncAttribKHR return a different (dup'd) file descriptor each time
+ it's called seems wrong, so a new function was added to explicitly dup the
+ file descriptor.
+
+ That said, the attribute is useful both as a way to pass an existing file
+ descriptor to eglCreateSyncKHR and as a way to describe the subsequent
+ behavior of EGL native fence sync objects, so it is left as an attribute
+ for which the value cannot be queried.
+
+Revision History
+
+#3 (Jamie Gennis, September 4, 2012)
+ - Reworded the extension to refer to "native fence" objects rather than
+ "Android fence" objects.
+ - Added a paragraph to the overview that describes assumptions about the
+ native fence sync objects.
+
+#2 (Jamie Gennis, July 23, 2012)
+ - Changed the file descriptor ownership transferring behavior.
+ - Added the eglDupAndroidFenceFDANDROID function.
+ - Removed EGL_SYNC_NATIVE_FENCE_FD_ANDROID from the table of gettable
+ attributes.
+ - Added language specifying that a native Android fence is created at the
+ flush following the creation of an EGL Android fence sync object that is
+ not passed an existing native fence.
+
+#1 (Jamie Gennis, May 29, 2012)
+ - Initial draft.
diff --git a/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_presentation_time.txt b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_presentation_time.txt
new file mode 100644
index 0000000..ac1f45e
--- /dev/null
+++ b/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_presentation_time.txt
@@ -0,0 +1,140 @@
+Name
+
+ ANDROID_presentation_time
+
+Name Strings
+
+ EGL_ANDROID_presentation_time
+
+Contributors
+
+ Jamie Gennis
+ Andy McFadden
+ Jesse Hall
+
+Contact
+
+ Jamie Gennis, Google Inc. (jgennis 'at' google.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 4, June 6, 2016
+
+Number
+
+ EGL Extension #98
+
+Dependencies
+
+ Requires EGL 1.1
+
+ This extension is written against the wording of the EGL 1.4 Specification
+
+Overview
+
+ Often when rendering a sequence of images, there is some time at which each
+ image is intended to be presented to the viewer. This extension allows
+ this desired presentation time to be specified for each frame rendered to
+ an EGLSurface, allowing the native window system to use it.
+
+New Types
+
+ /*
+ * EGLnsecsANDROID is a signed integer type for representing a time in
+ * nanoseconds.
+ */
+ #include
+ typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
+
+
+New Procedures and Functions
+
+ EGLBoolean eglPresentationTimeANDROID(
+ EGLDisplay dpy,
+ EGLSurface surface,
+ EGLnsecsANDROID time);
+
+New Tokens
+
+ None.
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Add a new subsection before Section 3.9.4, page 53 (Posting Errors)
+
+ "3.9.4 Presentation Time
+
+ The function
+
+ EGLBoolean eglPresentationTimeANDROID(EGLDisplay dpy, EGLSurface
+ surface, EGLnsecsANDROID time);
+
+ specifies the time at which the current color buffer of should be
+ presented to the viewer. The