summaryrefslogtreecommitdiff
path: root/engine-ocean/External/glew/auto
diff options
context:
space:
mode:
Diffstat (limited to 'engine-ocean/External/glew/auto')
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/.dummy0
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/.htaccess12
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/CODE_OF_CONDUCT.md1
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/README.md100
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/1.0/EGL/egl.h286
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/1.0/egl.h283
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/1.1/EGL/egl.h226
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/1.2/EGL/egl.h264
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/1.2/egl.h260
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/EGL/egl.h342
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/EGL/eglext.h1483
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/EGL/eglplatform.h169
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/KHR/khrplatform.h311
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/egl.xml3532
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/egltest.c8
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/genheaders.py619
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/reg.py1168
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/api/registry.rnc270
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_GLES_layers.txt64
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_blob_cache.txt211
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_create_native_client_buffer.txt197
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_framebuffer_target.txt102
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_front_buffer_auto_refresh.txt70
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt259
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt102
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_image_native_buffer.txt108
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt281
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_presentation_time.txt140
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_recordable.txt140
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_d3d_share_handle_client_buffer.txt98
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_device_d3d.txt93
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_query_surface_pointer.txt88
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_surface_d3d_texture_2d_share_handle.txt95
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_sync_control_rate.txt99
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_window_fixed_size.txt136
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_image_format.txt126
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_implicit_external_sync.txt219
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_pixmap_multisample_discard.txt185
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_bind_to_front.txt108
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_buffer_age.txt329
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_client_extensions.txt408
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_client_sync.txt146
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_compositor.txt400
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_config_select_group.txt111
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_create_context_robustness.txt169
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_base.txt243
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_drm.txt223
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_drm_render_node.txt106
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_enumeration.txt111
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_openwf.txt230
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_persistent_id.txt202
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_query.txt188
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_query_name.txt104
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_explicit_device.txt136
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_bt2020_linear.txt175
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt137
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt139
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt130
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt127
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_dma_buf_import.txt428
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt244
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_gl_colorspace.txt136
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_implicit_sync_control.txt131
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_multiview_window.txt126
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_output_base.txt564
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_pixel_format_float.txt136
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_base.txt371
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_device.txt161
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_wayland.txt135
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_x11.txt414
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_xcb.txt382
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_present_opaque.txt118
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_protected_content.txt329
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_protected_surface.txt230
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_stream_consumer_egloutput.txt248
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt136
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_SMPTE2086_metadata.txt247
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_compression.txt289
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_swap_buffers_with_damage.txt343
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_sync_reuse.txt376
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_yuv_surface.txt393
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/HI/EGL_HI_clientpixmap.txt144
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/HI/EGL_HI_colorformats.txt138
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/IMG/EGL_IMG_context_priority.txt166
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/IMG/EGL_IMG_image_plane_attribs.txt156
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_cl_event.txt278
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_cl_event2.txt364
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_config_attribs.txt234
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_create_context.txt648
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_create_context_no_error.txt142
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_debug.txt573
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_display_reference.txt242
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_fence_sync.txt562
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_get_all_proc_addresses.txt206
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_gl_colorspace.txt197
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_gl_image.txt432
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image.txt140
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image_base.txt755
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image_pixmap.txt158
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface.txt727
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface2.txt1077
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface3.txt679
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_mutable_render_buffer.txt325
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_no_config_context.txt261
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_partial_update.txt501
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_android.txt102
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_gbm.txt295
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_wayland.txt122
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_x11.txt378
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_reusable_sync.txt575
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream.txt1091
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_consumer_gltexture.txt402
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_cross_process_fd.txt560
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_fifo.txt433
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_producer_aldatalocator.txt178
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_producer_eglsurface.txt386
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_surfaceless_context.txt174
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_swap_buffers_with_damage.txt449
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_vg_parent_image.txt138
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_wait_sync.txt278
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_drm_image.txt157
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_image_dma_buf_export.txt147
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_gbm.txt319
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_surfaceless.txt120
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_query_driver.txt95
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NOK/EGL_NOK_swap_region2.txt227
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NOK/EGL_NOK_texture_from_pixmap.txt321
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_3dvision_surface.txt94
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_context_priority_realtime.txt195
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_coverage_sample.txt554
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_coverage_sample_resolve.txt127
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_cuda_event.txt206
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_depth_nonlinear.txt142
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_device_cuda.txt91
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_n_buffer.txt157
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_native_query.txt137
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_post_convert_rounding.txt85
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_post_sub_buffer.txt241
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_consumer_eglimage.txt367
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_consumer_gltexture_yuv.txt280
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_dma.txt137
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_fifo_next.txt105
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_fifo_synchronous.txt211
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_flush.txt132
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_frame_limits.txt152
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_metadata.txt335
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_origin.txt298
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_remote.txt472
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_reset.txt306
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_socket.txt229
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_sync.txt198
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_sync.txt554
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_system_time.txt99
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/TIZEN/EGL_TIZEN_image_native_buffer.txt114
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/TIZEN/EGL_TIZEN_image_native_surface.txt121
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/WL/EGL_WL_bind_wayland_display.txt217
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/extensions/WL/EGL_WL_create_wayland_buffer_from_image.txt101
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/index.php382
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/registry.tcl770
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/.htaccess13
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/NOTES59
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/README1
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/bottom.php9
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/copyright.xml21
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/db4-upgrade.xsl1455
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglBindAPI.xml130
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglBindTexImage.xml181
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglChooseConfig.xml929
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCopyBuffers.xml129
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreateContext.xml220
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml389
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferSurface.xml333
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePixmapSurface.xml227
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreateWindowSurface.xml244
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglDestroyContext.xml84
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglDestroySurface.xml86
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetConfigAttrib.xml326
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetConfigs.xml114
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentContext.xml51
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentDisplay.xml52
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentSurface.xml66
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetDisplay.xml75
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetError.xml145
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetProcAddress.xml86
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglInitialize.xml109
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglIntro.xml264
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglMakeCurrent.xml203
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryAPI.xml85
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryContext.xml193
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryString.xml142
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQuerySurface.xml288
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglReleaseTexImage.xml110
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglReleaseThread.xml134
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSurfaceAttrib.xml216
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSwapBuffers.xml144
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSwapInterval.xml103
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglTerminate.xml82
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitClient.xml93
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitGL.xml91
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitNative.xml82
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/reference.xml174
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglBindAPI.xml123
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglBindTexImage.xml172
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglChooseConfig.xml915
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglClientWaitSync.xml161
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCopyBuffers.xml120
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateContext.xml212
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateImage.xml624
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePbufferFromClientBuffer.xml386
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePbufferSurface.xml359
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePixmapSurface.xml87
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePlatformPixmapSurface.xml270
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePlatformWindowSurface.xml296
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateSync.xml311
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateWindowSurface.xml87
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroyContext.xml75
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroyImage.xml85
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroySurface.xml77
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroySync.xml98
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetConfigAttrib.xml317
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetConfigs.xml105
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentContext.xml42
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentDisplay.xml57
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentSurface.xml58
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetDisplay.xml87
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetError.xml143
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetPlatformDisplay.xml122
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetProcAddress.xml98
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetSyncAttrib.xml148
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglInitialize.xml100
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglIntro.xml275
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglMakeCurrent.xml321
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryAPI.xml76
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryContext.xml184
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryString.xml179
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQuerySurface.xml310
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglReleaseTexImage.xml101
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglReleaseThread.xml125
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSurfaceAttrib.xml207
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSwapBuffers.xml152
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSwapInterval.xml94
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglTerminate.xml73
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitClient.xml84
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitGL.xml82
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitNative.xml73
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitSync.xml134
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/headBackground.jpgbin0 -> 9467 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/EGL_300.pngbin0 -> 26048 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/KhronosLogo.jpgbin0 -> 2454 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/accord.js58
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-contract.gifbin0 -> 82 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-end.gifbin0 -> 82 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-expand.gifbin0 -> 90 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglBindAPI.xhtml160
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglBindTexImage.xhtml228
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglChooseConfig.xhtml1150
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglClientWaitSync.xhtml226
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCopyBuffers.xhtml170
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateContext.xhtml287
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateImage.xhtml774
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePbufferFromClientBuffer.xhtml468
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePbufferSurface.xhtml435
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePixmapSurface.xhtml150
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePlatformPixmapSurface.xhtml341
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePlatformWindowSurface.xhtml368
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateSync.xhtml389
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateWindowSurface.xhtml149
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroyContext.xhtml121
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroyImage.xhtml132
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroySurface.xhtml123
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroySync.xhtml145
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetConfigAttrib.xhtml508
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetConfigs.xhtml169
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentContext.xhtml70
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentDisplay.xhtml86
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentSurface.xhtml92
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetDisplay.xhtml121
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetError.xhtml233
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetPlatformDisplay.xhtml172
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetProcAddress.xhtml133
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetSyncAttrib.xhtml231
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglInitialize.xhtml149
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglIntro.xhtml304
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglMakeCurrent.xhtml381
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryAPI.xhtml107
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryContext.xhtml267
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryString.xhtml236
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQuerySurface.xhtml435
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglReleaseTexImage.xhtml155
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglReleaseThread.xhtml158
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSurfaceAttrib.xhtml274
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSwapBuffers.xhtml196
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSwapInterval.xhtml137
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglTerminate.xhtml108
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitClient.xhtml114
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitGL.xhtml112
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitNative.xhtml108
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitSync.xhtml190
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/index.php121
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/indexflat.php135
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/khronos-man.css209
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/khronos-man.xsl126
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/makeindex.py316
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/old-egl-man.xsl174
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/present.css47
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/start.html87
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/style-index.css2
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/undohtml.css9
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/vn221
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/index.php9
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/mkshar3
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/reference.xml182
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/setvars5
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/top.php46
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/EGL_300.pngbin0 -> 26048 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/Header.html37
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/Intro.html116
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/KhronosLogo.jpgbin0 -> 2454 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/TOC.html179
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-contract.gifbin0 -> 82 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-end.gifbin0 -> 82 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-expand.gifbin0 -> 90 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/copyright.inc.xsl15
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/ctop.xsl1319
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/egl-man.xsl274
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglBindAPI.html365
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglBindTexImage.html435
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglChooseConfig.html1361
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCopyBuffers.html377
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreateContext.html488
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePbufferFromClientBuffer.html669
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePbufferSurface.html605
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePixmapSurface.html494
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreateWindowSurface.html512
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglDestroyContext.html327
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglDestroySurface.html329
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetConfigAttrib.html715
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetConfigs.html375
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentContext.html274
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentDisplay.html275
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentSurface.html296
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetDisplay.html305
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetError.html430
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetProcAddress.html316
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglInitialize.html355
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglIntro.html492
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglMakeCurrent.html456
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryAPI.html313
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryContext.html474
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryString.html401
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQuerySurface.html599
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglReleaseTexImage.html362
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglReleaseThread.html364
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSurfaceAttrib.html481
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSwapBuffers.html385
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSwapInterval.html344
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglTerminate.html314
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitClient.html320
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitGL.html318
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitNative.html314
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/headBackground.jpgbin0 -> 9467 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/index.html15
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/maketoc.pl354
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/opengl-man.xsl49
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/present.css47
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/style.css2
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/styles-css.xsl214
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/undohtml.css9
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/EGLTechNote0001.html110
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/Khronos-1600-Transparent-May07.pngbin0 -> 145052 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.0.pdfbin0 -> 238654 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.1.pdfbin0 -> 301346 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.2.pdfbin0 -> 478979 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.3.pdfbin0 -> 516479 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.4.pdfbin0 -> 342048 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdfbin0 -> 347659 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.5.pdfbin0 -> 433708 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdfbin0 -> 435618 bytes
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/igstyle.css185
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/legal.html34
-rw-r--r--engine-ocean/External/glew/auto/EGL-Registry/specs/legal.xhtml36
-rw-r--r--engine-ocean/External/glew/auto/bin/filter_gl_ext.sh614
-rw-r--r--engine-ocean/External/glew/auto/bin/filter_gles_ext.sh20
-rw-r--r--engine-ocean/External/glew/auto/bin/filter_spec.py38
-rw-r--r--engine-ocean/External/glew/auto/bin/make.pl224
-rw-r--r--engine-ocean/External/glew/auto/bin/make_def_fun.pl37
-rw-r--r--engine-ocean/External/glew/auto/bin/make_def_var.pl33
-rw-r--r--engine-ocean/External/glew/auto/bin/make_enable_index.pl48
-rw-r--r--engine-ocean/External/glew/auto/bin/make_header.pl73
-rw-r--r--engine-ocean/External/glew/auto/bin/make_html.pl57
-rw-r--r--engine-ocean/External/glew/auto/bin/make_index.pl41
-rw-r--r--engine-ocean/External/glew/auto/bin/make_info.pl71
-rw-r--r--engine-ocean/External/glew/auto/bin/make_info_list.pl49
-rw-r--r--engine-ocean/External/glew/auto/bin/make_init.pl61
-rw-r--r--engine-ocean/External/glew/auto/bin/make_initd.pl45
-rw-r--r--engine-ocean/External/glew/auto/bin/make_list.pl75
-rw-r--r--engine-ocean/External/glew/auto/bin/make_list2.pl46
-rw-r--r--engine-ocean/External/glew/auto/bin/make_str.pl55
-rw-r--r--engine-ocean/External/glew/auto/bin/make_struct_fun.pl38
-rw-r--r--engine-ocean/External/glew/auto/bin/make_struct_var.pl33
-rw-r--r--engine-ocean/External/glew/auto/bin/parse_spec.pl410
-rw-r--r--engine-ocean/External/glew/auto/bin/parse_xml.py145
-rw-r--r--engine-ocean/External/glew/auto/bin/update_ext.sh26
-rw-r--r--engine-ocean/External/glew/auto/blacklist27
-rw-r--r--engine-ocean/External/glew/auto/core/gl/EGL_EXT_device_base7
-rw-r--r--engine-ocean/External/glew/auto/core/gl/EGL_KHR_fence_sync7
-rw-r--r--engine-ocean/External/glew/auto/core/gl/EGL_KHR_image_base6
-rw-r--r--engine-ocean/External/glew/auto/core/gl/EGL_KHR_lock_surface327
-rw-r--r--engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_086
-rw-r--r--engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_122
-rw-r--r--engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_238
-rw-r--r--engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_316
-rw-r--r--engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_413
-rw-r--r--engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_559
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GLX_ARB_get_proc_address5
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GLX_ATI_pixel_format_float5
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GLX_ATI_render_texture42
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GLX_EXT_scene_marker4
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GLX_NV_vertex_array_range6
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GLX_SGIS_color_range4
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GLX_SGIX_hyperpipe26
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GLX_SUN_video_resize8
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_25
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_383
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_47
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_APPLE_float_pixels18
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_APPLE_pixel_buffer5
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_APPLE_texture_range13
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ARB_draw_instanced4
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ARB_imaging113
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ARB_instanced_arrays8
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ARB_internalformat_query2104
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ARB_matrix_palette19
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ARB_multitexture73
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ARB_robustness31
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ARB_separate_shader_objects73
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ARB_vertex_attrib_64bit14
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ARB_vertex_blend56
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ATIX_point_sprites10
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ATIX_texture_env_combine37
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ATIX_texture_env_route7
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ATIX_vertex_shader_output_point_size5
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ATI_envmap_bumpmap16
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ATI_map_object_buffer6
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ATI_pn_triangles15
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ATI_separate_stencil10
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ATI_shader_texture_lod4
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ATI_texture_compression_3dc5
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_ATI_vertex_streams59
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_Cg_shader6
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_bindable_uniform13
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_debug_marker7
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_depth_bounds_test7
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_draw_instanced6
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_draw_range_elements7
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_external_buffer7
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_fog_coord17
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_framebuffer_sRGB6
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_geometry_shader427
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_gpu_program_parameters6
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_gpu_shader464
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object34
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object_fd6
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object_win3217
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_packed_float7
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_pixel_buffer_object8
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_scene_marker6
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_secondary_color28
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore21
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore_fd5
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore_win326
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_array13
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_buffer_object10
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_compression_latc8
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_compression_rgtc8
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_cube_map16
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_edge_clamp5
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_integer57
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_rectangle8
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_shared_exponent7
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_timer_query7
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_EXT_vertex_shader157
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_KHR_context_flush_control7
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_KTX_buffer_region13
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NVX_gpu_memory_info9
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_depth_buffer_float11
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_depth_range_unclamped9
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program29
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program44
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program_option4
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_framebuffer_multisample_coverage9
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_geometry_program48
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_geometry_shader44
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_gpu_program424
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_gpu_program510
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_parameter_buffer_object12
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_present_video16
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_sample_locations15
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_tessellation_program59
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_transform_feedback40
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_vdpau_interop19
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program2_option6
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program35
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program45
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_SGIX_shadow8
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_SUN_read_video_pixels5
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_250
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_2_14
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_3147
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_490
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_575
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_2_0181
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_2_133
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_0164
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_142
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_229
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_37
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_021
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_13
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_213
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_36
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_48
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_59
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_629
-rw-r--r--engine-ocean/External/glew/auto/core/gl/GL_WIN_swap_hint5
-rw-r--r--engine-ocean/External/glew/auto/core/gl/WGL_NV_gpu_affinity13
-rw-r--r--engine-ocean/External/glew/auto/custom.txt7
-rw-r--r--engine-ocean/External/glew/auto/doc/advanced.html130
-rw-r--r--engine-ocean/External/glew/auto/doc/basic.html180
-rw-r--r--engine-ocean/External/glew/auto/doc/build.html49
-rw-r--r--engine-ocean/External/glew/auto/doc/credits.html2
-rw-r--r--engine-ocean/External/glew/auto/doc/index.html113
-rw-r--r--engine-ocean/External/glew/auto/doc/install.html126
-rw-r--r--engine-ocean/External/glew/auto/doc/log.html1319
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/.dummy0
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_GLES_layers4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_blob_cache5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_create_native_client_buffer9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_framebuffer_target5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_front_buffer_auto_refresh5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_get_frame_timestamps24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_get_native_client_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_image_native_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_native_fence_sync9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_presentation_time5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_recordable5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_d3d_share_handle_client_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_device_d3d6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_query_surface_pointer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_surface_d3d_texture_2d_share_handle5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_sync_control_rate5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_window_fixed_size5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_image_format6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_implicit_external_sync5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_pixmap_multisample_discard5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_bind_to_front5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_buffer_age5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_client_extensions4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_client_sync7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_compositor15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_config_select_group5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_create_context_robustness8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_base7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_drm6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_drm_render_node5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_enumeration5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_openwf6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_persistent_id8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_query10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_query_name5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_explicit_device5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_bt2020_linear5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_bt2020_pq5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p35
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3_linear5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3_passthrough5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_scrgb5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_scrgb_linear5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_dma_buf_import26
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_dma_buf_import_modifiers17
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_gl_colorspace6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_implicit_sync_control7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_multiview_window5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_base17
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_drm7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_openwf6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_pixel_format_float7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_base7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_device5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_wayland5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_x116
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_xcb6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_present_opaque5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_protected_content5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_protected_surface5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_stream_consumer_egloutput5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_CTA861_3_metadata6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_SMPTE2086_metadata15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_compression22
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_swap_buffers_with_damage5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_sync_reuse5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_yuv_surface29
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_HI_clientpixmap6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_HI_colorformats8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_IMG_context_priority8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_IMG_image_plane_attribs6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_cl_event7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_cl_event28
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_client_get_all_proc_addresses4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_config_attribs7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_context_flush_control7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_create_context18
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_create_context_no_error5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_debug19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_display_reference6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_fence_sync7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_get_all_proc_addresses4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_colorspace7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_renderbuffer_image5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_2D_image6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_3D_image6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_cubemap_image10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image_base6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image_pixmap5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface27
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface25
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface327
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_mutable_render_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_no_config_context5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_partial_update6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_android5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_gbm5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_wayland5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_x116
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_reusable_sync19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream22
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_attrib13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_consumer_gltexture8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_cross_process_fd7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_fifo9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_producer_aldatalocator4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_producer_eglsurface6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_surfaceless_context4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_swap_buffers_with_damage5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_vg_parent_image5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_wait_sync5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_drm_image14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_image_dma_buf_export6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_platform_gbm5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_platform_surfaceless5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_query_driver6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_swap_region5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_swap_region25
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_texture_from_pixmap5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_3dvision_surface5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_context_priority_realtime5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_coverage_sample6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_coverage_sample_resolve7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_cuda_event7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_depth_nonlinear7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_device_cuda5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_native_query7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_post_convert_rounding4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_post_sub_buffer6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_quadruple_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_robustness_video_memory_purge5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_consumer_eglimage12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_consumer_gltexture_yuv10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_display5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_object5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_partition5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_process5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_system5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_dma6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_fifo_next6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_fifo_synchronous5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_flush5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_frame_limits6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_metadata21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_origin15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_remote12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_reset7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket_inet5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket_unix5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_sync7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_sync23
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_system_time6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_NV_triple_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_TIZEN_image_native_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_TIZEN_image_native_surface5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_WL_bind_wayland_display14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/EGL_WL_create_wayland_buffer_from_image5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_3DFX_multisample6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_AMD_gpu_association23
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_context_flush_control7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_no_error5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_profile7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_robustness8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_fbconfig_float6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_framebuffer_sRGB5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_get_proc_address5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_multisample6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_robustness_application_isolation5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_robustness_share_group_isolation5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_vertex_buffer_object5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ATI_pixel_format_float5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_ATI_render_texture42
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_buffer_age5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_context_priority8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_create_context_es2_profile5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_create_context_es_profile5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_fbconfig_packed_float6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_framebuffer_sRGB5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_get_drawable_type5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_import_context13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_libglvnd5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_no_config_context4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_scene_marker4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_stereo_tree7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_swap_control7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_swap_control_tear5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_texture_from_pixmap39
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_visual_info20
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_visual_rating7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_INTEL_swap_event8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_agp_offset5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_copy_sub_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_pixmap_colormap5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_query_renderer19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_release_buffers5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_set_3dfx_mode7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_swap_control6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_copy_buffer6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_copy_image6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_delay_before_swap5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_float_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_multigpu_context9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_multisample_coverage6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_present_video7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_robustness_video_memory_purge5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_swap_group10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_vertex_array_range6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_video_capture13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_NV_video_out20
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_OML_swap_method11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_OML_sync_control9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_blended_overlay5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_color_range4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_multisample6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_shared_multisample6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_fbconfig23
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_hyperpipe26
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_pbuffer36
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_swap_barrier6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_swap_group5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_video_resize11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_visual_select_group5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_cushion5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_make_current_read6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_swap_control5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_video_sync6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SUN_get_transparent_index5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GLX_SUN_video_resize8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_multisample8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_tbuffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_texture_compression_FXT16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_blend_minmax_factor6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_compressed_3DC_texture6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_compressed_ATC_texture7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_conservative_depth4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_debug_output23
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_depth_clamp_separate6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_draw_buffers_blend8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_framebuffer_multisample_advanced12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_framebuffer_sample_positions12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gcn_shader4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_half_float17
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_half_float_fetch33
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_int164
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_int644
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_interleaved_elements14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_multi_draw_indirect6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_name_gen_delete12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_occlusion_query_event11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_performance_monitor22
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_pinned_memory5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_program_binary_Z4005
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_query_buffer_object7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_sample_positions6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_seamless_cubemap_per_texture5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_atomic_counter_ops4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_ballot4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_explicit_vertex_parameter4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_image_load_store_lod4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_stencil_export4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_stencil_value_export4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_trinary_minmax4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_sparse_texture15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_stencil_operation_extended9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_texture_gather_bias_lod4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_texture_texture44
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_transform_feedback3_lines_triangles4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_transform_feedback45
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_layer4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_tessellator13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_viewport_index4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANDROID_extension_pack_es31a4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_depth_texture4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_framebuffer_blit9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_framebuffer_multisample8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_instanced_arrays8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_pack_reverse_row_order5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_program_binary5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt18
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt38
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt58
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_usage6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_timer_query21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_translated_shader_source6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_aux_depth_stencil5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_client_storage5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_clip_distance13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_color_buffer_packed_float4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_copy_texture_levels5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_element_array12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_fence14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_float_pixels18
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_flush_buffer_range8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_framebuffer_multisample13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_object_purgeable13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_pixel_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_rgb_4228
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_row_bytes6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_specular_vector5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_sync27
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_2D_limited_npot4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_format_BGRA88886
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_max_level5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_packed_float8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_range13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_transform_hint5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_array_object9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_array_range15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_program_evaluators21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_ycbcr_4225
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES2_compatibility26
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_1_compatibility5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_2_compatibility8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_compatibility18
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_arrays_of_arrays4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_base_instance7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_bindless_texture21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_blend_func_extended10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_buffer_storage14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_cl_event9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clear_buffer_object8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clear_texture7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clip_control11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_color_buffer_float10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compatibility4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compressed_texture_pixel_storage12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compute_shader24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compute_variable_group_size9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_conditional_render_inverted8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_conservative_depth4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_copy_buffer7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_copy_image5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_cull_distance6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_debug_output31
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_buffer_float7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_clamp5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_texture9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_derivative_control4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_direct_state_access103
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_buffers22
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_buffers_blend8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_elements_base_vertex8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_indirect8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_instanced4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_enhanced_layouts7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_explicit_attrib_location4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_explicit_uniform_location5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_coord_conventions4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_layer_viewport4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_program19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_program_shadow4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_shader7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_shader_interlock4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_no_attachments17
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_object98
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_sRGB5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_geometry_shader427
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_get_program_binary11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_get_texture_sub_image6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gl_spirv7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader510
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader_fp6434
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader_int6448
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_half_float_pixel5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_half_float_vertex5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_imaging113
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_indirect_parameters8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_instanced_arrays8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_internalformat_query6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_internalformat_query2104
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_invalidate_subdata10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_map_buffer_alignment5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_map_buffer_range12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_matrix_palette19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multi_bind10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multi_draw_indirect6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multisample14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multitexture73
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_occlusion_query17
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_occlusion_query25
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_parallel_shader_compile7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_pipeline_statistics_query15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_pixel_buffer_object8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_point_parameters10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_point_sprite6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_polygon_offset_clamp6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_post_depth_coverage4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_program_interface_query57
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_provoking_vertex9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_query_buffer_object8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robust_buffer_access_behavior4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness31
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness_application_isolation4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness_share_group_isolation4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sample_locations15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sample_shading7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sampler_objects19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_seamless_cube_map5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_seamless_cubemap_per_texture5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_separate_shader_objects73
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_atomic_counter_ops4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_atomic_counters34
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_ballot4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_bit_encoding4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_clock4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_draw_parameters4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_group_vote4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_image_load_store70
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_image_size4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_objects79
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_precision4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_stencil_export4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_storage_buffer_object21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_subroutine21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_texture_image_samples4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_texture_lod4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_viewport_layer_array4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_1005
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_420pack4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_include13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_packing4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shadow7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shadow_ambient5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_buffer7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture_clamp4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_spirv_extensions6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_stencil_texturing5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sync26
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_tessellation_shader38
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_barrier5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_border_clamp5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_object10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_object_rgb324
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_range9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression22
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression_bptc8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression_rgtc8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_cube_map16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_cube_map_array11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_add4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_combine26
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_crossbar4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_dot36
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_filter_anisotropic6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_filter_minmax6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_float24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_gather7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_mirror_clamp_to_edge5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_mirrored_repeat5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_multisample29
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_non_power_of_two4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_query_levels4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_query_lod4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rectangle10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rg28
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rgb10_a2ui5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_stencil86
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_storage8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_storage_multisample8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_swizzle9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_view10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_timer_query9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback215
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback310
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback_instanced6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback_overflow_query6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transpose_matrix12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_uniform_buffer_object47
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_array_bgra5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_array_object9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_attrib_64bit14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_attrib_binding24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_blend56
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_buffer_object48
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_program145
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_shader14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_type_10f_11f_11f_rev5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_type_2_10_10_10_rev44
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_viewport_array27
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARB_window_pos20
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARM_mali_program_binary5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARM_mali_shader_binary5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARM_rgba85
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARM_shader_framebuffer_fetch6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARM_shader_framebuffer_fetch_depth_stencil4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ARM_texture_unnormalized_coordinates5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_point_sprites10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_texture_env_combine37
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_texture_env_route7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_vertex_shader_output_point_size5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_draw_buffers22
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_element_array10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_envmap_bumpmap16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_fragment_shader72
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_map_object_buffer6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_meminfo7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_pn_triangles15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_separate_stencil10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_shader_texture_lod4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_text_fragment_shader5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_compression_3dc5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_env_combine37
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_float16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_mirror_once6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_array_object24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_attrib_array_object7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_streams59
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_DMP_program_binary7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_DMP_shader_binary5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_422_pixels8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_Cg_shader6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_array4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_external_wrap_modes4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_storage6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_storage_compression7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_sync4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_YUV_target5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_abgr5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_base_instance7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_bgra6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_bindable_uniform13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_color10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_equation_separate7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_func_extended14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_func_separate9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_logic_op4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_minmax9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_subtract6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_buffer_storage15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clear_texture6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_control11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_cull_distance15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_volume_hint5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_cmyka8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_buffer_float4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_buffer_half_float10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_subtable6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_compiled_vertex_array8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_compressed_ETC1_RGB8_sub_texture4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_conservative_depth4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_convolution37
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_coordinate_frame20
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_copy_image5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_copy_texture9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_cull_vertex9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_debug_label12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_debug_marker7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_depth_bounds_test7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_depth_clamp5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_direct_state_access221
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_discard_framebuffer8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_disjoint_timer_query21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers39
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers210
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers_indexed12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_elements_base_vertex8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_instanced6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_range_elements7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_transform_feedback6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_external_buffer7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_float_blend4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_fog_coord17
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_frag_depth4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_fragment_lighting36
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_blit9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_multisample10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_multisample_blit_scaled6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_object72
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_sRGB6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_point_size37
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_shader37
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_shader427
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_program_parameters6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_shader464
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_shader54
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_histogram27
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_array_formats4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_func5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_material5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_texture4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_instanced_arrays6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_light_texture16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_map_buffer_range12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object34
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object_fd6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object_win3217
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_misc_attribute4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multi_draw_arrays6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multi_draw_indirect6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiple_textures4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisample23
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisample_compatibility6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisampled_render_to_texture9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisampled_render_to_texture24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_draw_buffers12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_tessellation_geometry_shader4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_texture_multisample4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_timer_query4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_occlusion_query_boolean9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_depth_stencil8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_float7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_pixels9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_paletted_texture29
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_buffer_object8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_transform19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_transform_color_table4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_point_parameters10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_polygon_offset8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_polygon_offset_clamp6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_post_depth_coverage4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_primitive_bounding_box6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_protected_textures6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_provoking_vertex9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pvrtc_sRGB8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_raster_multisample22
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_read_format_bgra7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_render_snorm12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_rescale_normal5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_robustness15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sRGB8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sRGB_write_control5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_scene_marker6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_secondary_color28
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore_fd5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore_win326
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_depth_stencil4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_shader_objects8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_specular_color7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_framebuffer_fetch6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_framebuffer_fetch_non_coherent5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_group_vote4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_image_load_formatted4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_image_load_store61
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_implicit_conversions4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_integer_mix4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_io_blocks4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_non_constant_global_initializers4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_pixel_local_storage7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_pixel_local_storage210
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_samples_identical4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_texture_lod4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shadow_funcs4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shadow_samplers8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shared_texture_palette5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sparse_texture22
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sparse_texture24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_static_vertex_array4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_clear_tag6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_two_side7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_wrap6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_subtexture7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_tessellation_point_size48
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_tessellation_shader47
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture46
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture3D14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_array13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_border_clamp10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_buffer18
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_buffer_object10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_astc_decode_mode5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_astc_decode_mode_rgb9e55
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_bptc8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_dxt14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_latc8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_rgtc8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_s3tc8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_s3tc_srgb8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_cube_map16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_cube_map_array13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_edge_clamp5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_add4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_combine25
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_dot36
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_filter_anisotropic6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_filter_minmax6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_format_BGRA88885
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_format_sRGB_override5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_integer57
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_lod_bias7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_mirror_clamp7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_mirror_clamp_to_edge5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_norm1612
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_object15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_perturb_normal7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_query_lod4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_rectangle8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_rg8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB20
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_R85
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_RG85
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_decode7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_shadow_lod4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_shared_exponent7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_snorm29
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_storage34
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_storage_compression22
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_swizzle9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_type_2_10_10_10_REV5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_view10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_timer_query7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_transform_feedback26
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_unpack_subimage7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array45
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array_bgra5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array_setXXX7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_attrib_64bit27
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_shader157
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_weighting20
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_win32_keyed_mutex6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_window_rectangles11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_EXT_x11_sync_object6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_FJ_shader_binary_GCCSO5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_GREMEDY_frame_terminator5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_GREMEDY_string_marker5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_HP_convolution_border_modes4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_HP_image_transform10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_HP_occlusion_test4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_HP_texture_lighting4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IBM_cull_vertex5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IBM_multimode_draw_arrays6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IBM_rasterpos_clip5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IBM_static_data6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IBM_texture_mirrored_repeat5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IBM_vertex_array_lists28
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IMG_bindless_texture10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IMG_framebuffer_downsample10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IMG_multisampled_render_to_texture10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IMG_program_binary5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IMG_read_format6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IMG_shader_binary5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_compression_pvrtc8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_compression_pvrtc26
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_env_enhanced_fixed_function11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_filter_cubic7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_IMG_tile_region_protection7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_INGR_color_clamp12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_INGR_interlace_read5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_blackhole_render5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_conservative_rasterization5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_fragment_shader_ordering4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_framebuffer_CMAA5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_map_texture11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_parallel_arrays13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_performance_query34
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_shader_integer_functions24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_texture_scissor6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_blend_equation_advanced21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_blend_equation_advanced_coherent4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_context_flush_control7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_debug55
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_no_error5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_parallel_shader_compile7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_robust_buffer_access_behavior4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_robustness16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_shader_subgroup16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_hdr52
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_ldr52
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_sliced_3d4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_KTX_buffer_region13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESAX_texture_stack10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESA_bgra6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_flip_x5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_flip_y7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_swap_xy5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESA_pack_invert5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESA_program_binary_formats5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESA_resize_buffers5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESA_shader_integer_functions4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESA_tile_raster_order4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESA_window_pos28
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_MESA_ycbcr_texture7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NVX_blend_equation_advanced_multi_draw_buffers4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NVX_conditional_render6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NVX_gpu_memory_info9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NVX_gpu_multicast211
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NVX_linked_gpu_multicast9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NVX_progress_fence8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_3dvision_settings13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_EGL_stream_consumer_external8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_alpha_to_coverage_dither_control9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_bgr5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_multi_draw_indirect6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_multi_draw_indirect_count6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_texture17
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_equation_advanced56
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_equation_advanced_coherent4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_minmax_factor6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_square4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_clip_space_w_scaling8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_command_list40
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_compute_program56
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_compute_shader_derivatives4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_conditional_render10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_dilate8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_pre_snap5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_pre_snap_triangles8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_underestimation4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_buffer7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_depth_to_color6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_image5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_deep_texture3D6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_buffer_float11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_clamp5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_nonlinear5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_range_unclamped9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_buffers38
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_instanced6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_texture5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_vulkan_image10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_evaluators37
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_explicit_attrib_location4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_explicit_multisample17
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_fbo_color_attachments21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_fence14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_fill_rectangle5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_float_buffer19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_fog_distance7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_coverage_to_color7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program29
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program44
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program_option4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_shader_barycentric4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_shader_interlock4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_blit9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_mixed_samples18
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_multisample8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_multisample_coverage9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_generate_mipmap_sRGB4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_program48
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_shader44
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_shader_passthrough4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_multicast21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program424
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program510
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program5_mem_extended4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program_fp644
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_shader566
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_half_float52
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_image_formats4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_instanced_arrays6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_internalformat_sample_query9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_light_max_exponent6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_memory_attachment20
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_memory_object_sparse8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_mesh_shader56
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_multisample_coverage5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_multisample_filter_hint5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_non_square_matrices16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_occlusion_query15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_pack_subimage7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_depth_stencil6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_float6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_float_linear6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_parameter_buffer_object12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_parameter_buffer_object24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_path_rendering217
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_path_rendering_shared_edge5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_pixel_buffer_object8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_pixel_data_range12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_platform_binary5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_point_sprite9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_polygon_mode11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_present_video16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_primitive_restart8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_primitive_shading_rate6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_query_resource_tag4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_buffer6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_buffer_front5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_depth4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_depth_stencil4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_stencil4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_register_combiners68
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_register_combiners27
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_representative_fragment_test5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_robustness_video_memory_purge5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_sRGB_formats14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_sample_locations15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_sample_mask_override_coverage4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_scissor_exclusive8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_counters4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_float4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_float644
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_fp16_vector4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_int644
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_buffer_load20
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_noperspective_interpolation4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_storage_buffer_object4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_subgroup_partitioned5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_texture_footprint4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_thread_group7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_thread_shuffle4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shading_rate_image32
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shadow_samplers_array5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_shadow_samplers_cube5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_stereo_view_rendering4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_tessellation_program59
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texgen_emboss7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texgen_reflection6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_array17
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_barrier5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_border_clamp6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_latc8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_s3tc8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_s3tc_update4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_vtc4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_env_combine49
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_expand_normal5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_multisample12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_npot_2D_mipmap4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_rectangle8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_rectangle_compressed4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader77
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader232
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader321
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_timeline_semaphore12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_transform_feedback40
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_transform_feedback215
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_uniform_buffer_unified_memory7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vdpau_interop19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vdpau_interop25
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_array_range11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_array_range25
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_attrib_integer_64bit25
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_buffer_unified_memory41
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program151
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program1_14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program2_option6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program35
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program45
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_video_capture45
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_array24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_array24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_swizzle17
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image_external8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image_external_essl34
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_equation_separate7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_func_separate9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_subtract9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_byte_coordinates4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_compressed_ETC1_RGB8_texture5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_compressed_paletted_texture14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_copy_image5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth245
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth325
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth_texture7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth_texture_cube_map9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_draw_buffers_indexed12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_draw_texture5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_element_index_uint5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_extended_matrix_palette4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_fbo_render_mipmap4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_fragment_precision_high4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_framebuffer_object58
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_geometry_point_size37
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_geometry_shader37
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_get_program_binary9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_gpu_shader54
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_mapbuffer11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_matrix_get7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_matrix_palette24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_packed_depth_stencil7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_point_size_array9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_point_sprite6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_read_format6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_required_internalformat19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_rgb8_rgba86
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_sample_shading7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_sample_variables4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_image_atomic4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_io_blocks4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_multisample_interpolation7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_single_precision10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_standard_derivatives5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil45
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil85
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_surfaceless_context5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_tessellation_point_size47
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_tessellation_shader47
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_3D14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_border_clamp14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_buffer20
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_compression_astc52
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_cube_map26
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_cube_map_array13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_env_crossbar4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_mirrored_repeat5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_npot4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_stencil86
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_storage_multisample_2d_array10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_view10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_array_object9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_half_float5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_type_10_10_10_26
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OML_interlace6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OML_resample10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OML_subsample6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview_multisampled_render_to_texture5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_PGI_misc_hints24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_PGI_vertex_hints26
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_YUV_texture_gather4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_alpha_test8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_binning_control9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_driver_control8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_extended_get23
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_extended_get28
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_frame_extrapolation5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_framebuffer_foveated8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_motion_estimation8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_perfmon_global_mode5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_render_shared_exponent5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shader_framebuffer_fetch_noncoherent6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shader_framebuffer_fetch_rate4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shading_rate13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated25
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated_subsampled_layout6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_tiled_rendering38
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_writeonly_rendering5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_ES1_0_compatibility36
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_ES1_1_compatibility17
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_enable14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_error_string5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_extension_query6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_log15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_proc_address5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_REND_screen_coordinates6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_S3_s3tc10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_clip_band_hint4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_color_range13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_detail_texture6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_fog_function6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_generate_mipmap6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_line_texgen4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_multisample22
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_multitexture19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_pixel_texture4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_point_line_texgen12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_shared_multisample5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_sharpen_texture6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture4D6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_border_clamp5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_edge_clamp5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_filter46
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_lod8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_select4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async_histogram6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async_pixel10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_g_instruments8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_r_instruments7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_timer_instruments4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_alpha_minmax6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_cadd5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_cmultiply5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_calligraphic_fragment4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_clipmap4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_color_matrix_accuracy5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_color_table_index_mode4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_complex_polar4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_convolution_accuracy5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_cube_map13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_cylinder_texgen4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_datapipe8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_decimation4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_depth_pass_instrument7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_depth_texture7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_dvc4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_flush_raster5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_blend6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_factor_to_alpha4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_layers12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_offset6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_patchy4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_scale6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_texture5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragment_lighting_space8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragment_specular_lighting21
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragments_instrument7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_framezoom5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_icc_texture16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_igloo_interface13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_image_compression4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_impact_pixel_texture4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_instrument_error4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_interlace5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ir_instrument14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_line_quality_hint5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_list_priority4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_mpeg115
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_mpeg24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_nonlinear_lighting_pervertex8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_nurbs_eval24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_occlusion_instrument5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_packed_6bytes4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture_bits4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture_lod4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_tiles4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_polynomial_ffd8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_quad_mesh6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_reference_plane5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_resample9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_scalebias_hint5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_shadow8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_shadow_ambient5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_slim8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_spotlight_cutoff5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_sprite8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_subdiv_patch4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_subsample9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_tag_sample_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_add_env4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_coordinate_clamp7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_lod_bias4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_mipmap_anisotropic6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_multi_buffer5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_phase5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_range32
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_scale_bias8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_supersample4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vector_ops6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_array_object10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_preclip6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_preclip_hint6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcb4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcb_subsample4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcba6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGI_color_matrix15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGI_color_table27
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGI_complex4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGI_complex_type11
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGI_fft16
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SGI_texture_color_table6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SUNX_constant_data7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SUN_convolution_border_modes5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SUN_global_alpha14
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SUN_mesh_array6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SUN_read_video_pixels5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SUN_slice_accum5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SUN_triangle_list28
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_SUN_vertex44
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_VIV_shader_binary5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_WIN_phong_shading6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_WIN_scene_markerXXX4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_WIN_specular_fog5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/GL_WIN_swap_hint5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_3DFX_multisample6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_3DL_stereo_control9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_AMD_gpu_association23
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_buffer_region12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_context_flush_control7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_no_error5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_profile8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_robustness8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_extensions_string5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_framebuffer_sRGB5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_make_current_read10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_multisample6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pbuffer18
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pixel_format56
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pixel_format_float5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_render_texture40
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_robustness_application_isolation5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_robustness_share_group_isolation5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ATI_pixel_format_float7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_ATI_render_texture_rectangle5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_colorspace7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_create_context_es2_profile5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_create_context_es_profile5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_depth_float5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_display_color_table8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_extensions_string5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_framebuffer_sRGB5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_make_current_read8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_multisample6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pbuffer19
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pixel_format52
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pixel_format_packed_float5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_swap_control6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_swap_control_tear4
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_digital_video_control10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_gamma10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_genlock25
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_image_buffer10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_swap_frame_lock8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_swap_frame_usage8
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_DX_interop15
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_DX_interop24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_copy_image6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_delay_before_swap5
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_float_buffer13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_gpu_affinity13
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_multigpu_context9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_multisample_coverage6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_present_video9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_render_depth_texture9
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_render_texture_rectangle7
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_swap_group10
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_vertex_array_range6
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_video_capture12
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_NV_video_output24
-rw-r--r--engine-ocean/External/glew/auto/extensions/gl/WGL_OML_sync_control10
-rw-r--r--engine-ocean/External/glew/auto/src/eglew_head.h98
-rw-r--r--engine-ocean/External/glew/auto/src/eglew_mid.h4
-rw-r--r--engine-ocean/External/glew/auto/src/eglew_tail.h15
-rw-r--r--engine-ocean/External/glew/auto/src/footer.html4
-rw-r--r--engine-ocean/External/glew/auto/src/glew_head.c289
-rw-r--r--engine-ocean/External/glew/auto/src/glew_head.h1139
-rw-r--r--engine-ocean/External/glew/auto/src/glew_init_egl.c45
-rw-r--r--engine-ocean/External/glew/auto/src/glew_init_gl.c209
-rw-r--r--engine-ocean/External/glew/auto/src/glew_init_glx.c57
-rw-r--r--engine-ocean/External/glew/auto/src/glew_init_tail.c68
-rw-r--r--engine-ocean/External/glew/auto/src/glew_init_wgl.c41
-rw-r--r--engine-ocean/External/glew/auto/src/glew_license.h32
-rw-r--r--engine-ocean/External/glew/auto/src/glew_str_egl.c17
-rw-r--r--engine-ocean/External/glew/auto/src/glew_str_glx.c17
-rw-r--r--engine-ocean/External/glew/auto/src/glew_str_head.c9
-rw-r--r--engine-ocean/External/glew/auto/src/glew_str_tail.c7
-rw-r--r--engine-ocean/External/glew/auto/src/glew_str_wgl.c17
-rw-r--r--engine-ocean/External/glew/auto/src/glew_tail.h69
-rw-r--r--engine-ocean/External/glew/auto/src/glewinfo_egl.c6
-rw-r--r--engine-ocean/External/glew/auto/src/glewinfo_gl.c7
-rw-r--r--engine-ocean/External/glew/auto/src/glewinfo_glx.c6
-rw-r--r--engine-ocean/External/glew/auto/src/glewinfo_head.c96
-rw-r--r--engine-ocean/External/glew/auto/src/glewinfo_tail.c609
-rw-r--r--engine-ocean/External/glew/auto/src/glewinfo_wgl.c8
-rw-r--r--engine-ocean/External/glew/auto/src/glxew_head.h111
-rw-r--r--engine-ocean/External/glew/auto/src/glxew_mid.h4
-rw-r--r--engine-ocean/External/glew/auto/src/glxew_tail.h20
-rw-r--r--engine-ocean/External/glew/auto/src/header.html96
-rw-r--r--engine-ocean/External/glew/auto/src/khronos_license.h23
-rw-r--r--engine-ocean/External/glew/auto/src/mesa_license.h24
-rw-r--r--engine-ocean/External/glew/auto/src/wglew_head.h36
-rw-r--r--engine-ocean/External/glew/auto/src/wglew_mid.h4
-rw-r--r--engine-ocean/External/glew/auto/src/wglew_tail.h22
1785 files changed, 117117 insertions, 0 deletions
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/.dummy b/engine-ocean/External/glew/auto/EGL-Registry/.dummy
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/.dummy
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/.htaccess b/engine-ocean/External/glew/auto/EGL-Registry/.htaccess
new file mode 100644
index 0000000..3872b67
--- /dev/null
+++ b/engine-ocean/External/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/engine-ocean/External/glew/auto/EGL-Registry/CODE_OF_CONDUCT.md b/engine-ocean/External/glew/auto/EGL-Registry/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..a11610b
--- /dev/null
+++ b/engine-ocean/External/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/engine-ocean/External/glew/auto/EGL-Registry/README.md b/engine-ocean/External/glew/auto/EGL-Registry/README.md
new file mode 100644
index 0000000..1d01f54
--- /dev/null
+++ b/engine-ocean/External/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/\<vendor\>/filename.txt. Your pull request must also:
+
+* Allocate an extension number in registry.tcl (follow the existing
+ ```<extension>``` 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/engine-ocean/External/glew/auto/EGL-Registry/api/1.0/EGL/egl.h b/engine-ocean/External/glew/auto/EGL-Registry/api/1.0/EGL/egl.h
new file mode 100644
index 0000000..7b36e8a
--- /dev/null
+++ b/engine-ocean/External/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 <windows.h>
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef EGLAPI
+#define EGLAPI extern
+#endif
+
+
+/* EGL Types */
+#include <sys/types.h>
+
+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/engine-ocean/External/glew/auto/EGL-Registry/api/1.0/egl.h b/engine-ocean/External/glew/auto/EGL-Registry/api/1.0/egl.h
new file mode 100644
index 0000000..f433385
--- /dev/null
+++ b/engine-ocean/External/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 <windows.h>
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef EGLAPI
+#define EGLAPI extern
+#endif
+
+
+/* EGL Types */
+#include <sys/types.h>
+
+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/engine-ocean/External/glew/auto/EGL-Registry/api/1.1/EGL/egl.h b/engine-ocean/External/glew/auto/EGL-Registry/api/1.1/EGL/egl.h
new file mode 100644
index 0000000..99f2880
--- /dev/null
+++ b/engine-ocean/External/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 <GLES/gl.h>
+#include <GLES/egltypes.h>
+
+/*
+** 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 <sys/types.h>
+#include <native_window_system.h>
+
+/*
+** 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/engine-ocean/External/glew/auto/EGL-Registry/api/1.2/EGL/egl.h b/engine-ocean/External/glew/auto/EGL-Registry/api/1.2/EGL/egl.h
new file mode 100644
index 0000000..d67fd1a
--- /dev/null
+++ b/engine-ocean/External/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 <sys/types.h>
+
+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/egltypes.h>
+
+/* 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/engine-ocean/External/glew/auto/EGL-Registry/api/1.2/egl.h b/engine-ocean/External/glew/auto/EGL-Registry/api/1.2/egl.h
new file mode 100644
index 0000000..bf27697
--- /dev/null
+++ b/engine-ocean/External/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 <sys/types.h>
+
+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/egltypes.h>
+
+/* 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/engine-ocean/External/glew/auto/EGL-Registry/api/EGL/egl.h b/engine-ocean/External/glew/auto/EGL-Registry/api/EGL/egl.h
new file mode 100644
index 0000000..97d0878
--- /dev/null
+++ b/engine-ocean/External/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 <EGL/eglplatform.h>
+
+#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 <KHR/khrplatform.h>
+#include <EGL/eglplatform.h>
+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/engine-ocean/External/glew/auto/EGL-Registry/api/EGL/eglext.h b/engine-ocean/External/glew/auto/EGL-Registry/api/EGL/eglext.h
new file mode 100644
index 0000000..d58da70
--- /dev/null
+++ b/engine-ocean/External/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 <EGL/eglplatform.h>
+
+#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/engine-ocean/External/glew/auto/EGL-Registry/api/EGL/eglplatform.h b/engine-ocean/External/glew/auto/EGL-Registry/api/EGL/eglplatform.h
new file mode 100644
index 0000000..99362a2
--- /dev/null
+++ b/engine-ocean/External/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 <KHR/khrplatform.h>
+
+/* 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 <windows.h>
+
+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 <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+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 <kernel/image.h>
+
+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<type>(value))
+#else
+#define EGL_CAST(type, value) ((type) (value))
+#endif
+
+#endif /* __eglplatform_h */
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/api/KHR/khrplatform.h b/engine-ocean/External/glew/auto/EGL-Registry/api/KHR/khrplatform.h
new file mode 100644
index 0000000..0164644
--- /dev/null
+++ b/engine-ocean/External/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 <KHR/khrplatform.h>
+ * 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 <stdint.h>
+ */
+#include <stdint.h>
+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 <inttypes.h>
+ */
+#include <inttypes.h>
+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 <stdint.h>
+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/engine-ocean/External/glew/auto/EGL-Registry/api/egl.xml b/engine-ocean/External/glew/auto/EGL-Registry/api/egl.xml
new file mode 100644
index 0000000..e9b9eaf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/api/egl.xml
@@ -0,0 +1,3532 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<registry>
+ <!--
+ Copyright 2013-2020 The Khronos Group Inc.
+ SPDX-License-Identifier: Apache-2.0
+ -->
+ <!--
+ This file, egl.xml, is the EGL API Registry. The older ".spec" file
+ format has been retired and will no longer be updated with new
+ extensions and API versions. The canonical version of the registry,
+ together with documentation, schema, and Python generator scripts used
+ to generate C header files for EGL, can be found in the Khronos Registry
+ at
+ https://www.github.com/KhronosGroup/EGL-Registry
+ -->
+
+ <!-- SECTION: EGL type definitions. Does not include GL types. -->
+ <types>
+ <!-- These are dependencies EGL types require to be declared legally -->
+ <type name="khrplatform">#include &lt;KHR/khrplatform.h&gt;</type>
+ <type name="eglplatform" requires="khrplatform">#include &lt;EGL/eglplatform.h&gt;</type>
+ <type name="khronos_utime_nanoseconds_t" requires="khrplatform"/>
+ <type name="khronos_stime_nanoseconds_t" requires="khrplatform"/>
+ <type name="khronos_uint64_t" requires="khrplatform"/>
+ <type name="khronos_ssize_t" requires="khrplatform"/>
+ <type name="EGLNativeDisplayType" requires="eglplatform"/>
+ <type name="EGLNativePixmapType" requires="eglplatform"/>
+ <type name="EGLNativeWindowType" requires="eglplatform"/>
+ <type name="EGLint" requires="eglplatform"/>
+ <type name="NativeDisplayType" requires="eglplatform"/>
+ <type name="NativePixmapType" requires="eglplatform"/>
+ <type name="NativeWindowType" requires="eglplatform"/>
+ <type>struct <name>AHardwareBuffer</name>;</type>
+ <type>struct <name>wl_buffer</name>;</type>
+ <type>struct <name>wl_display</name>;</type>
+ <type>struct <name>wl_resource</name>;</type>
+ <!-- Dummy placeholders for non-EGL types -->
+ <type name="Bool"/>
+ <!-- These are actual EGL types. -->
+ <type>typedef unsigned int <name>EGLBoolean</name>;</type>
+ <type>typedef unsigned int <name>EGLenum</name>;</type>
+ <type requires="khrplatform">typedef intptr_t <name>EGLAttribKHR</name>;</type>
+ <type requires="khrplatform">typedef intptr_t <name>EGLAttrib</name>;</type>
+ <type>typedef void *<name>EGLClientBuffer</name>;</type>
+ <type>typedef void *<name>EGLConfig</name>;</type>
+ <type>typedef void *<name>EGLContext</name>;</type>
+ <type>typedef void *<name>EGLDeviceEXT</name>;</type>
+ <type>typedef void *<name>EGLDisplay</name>;</type>
+ <type>typedef void *<name>EGLImage</name>;</type>
+ <type>typedef void *<name>EGLImageKHR</name>;</type>
+ <type>typedef void *<name>EGLLabelKHR</name>;</type>
+ <type>typedef void *<name>EGLObjectKHR</name>;</type>
+ <type>typedef void *<name>EGLOutputLayerEXT</name>;</type>
+ <type>typedef void *<name>EGLOutputPortEXT</name>;</type>
+ <type>typedef void *<name>EGLStreamKHR</name>;</type>
+ <type>typedef void *<name>EGLSurface</name>;</type>
+ <type>typedef void *<name>EGLSync</name>;</type>
+ <type>typedef void *<name>EGLSyncKHR</name>;</type>
+ <type>typedef void *<name>EGLSyncNV</name>;</type>
+ <type>typedef void (*<name>__eglMustCastToProperFunctionPointerType</name>)(void);</type>
+ <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTimeKHR</name>;</type>
+ <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTime</name>;</type>
+ <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTimeNV</name>;</type>
+ <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLuint64NV</name>;</type>
+ <type requires="khrplatform">typedef khronos_uint64_t <name>EGLuint64KHR</name>;</type>
+ <type requires="khrplatform">typedef khronos_stime_nanoseconds_t <name>EGLnsecsANDROID</name>;</type>
+ <type>typedef int <name>EGLNativeFileDescriptorKHR</name>;</type>
+ <type requires="khrplatform">typedef khronos_ssize_t <name>EGLsizeiANDROID</name>;</type>
+ <type requires="EGLsizeiANDROID">typedef void (*<name>EGLSetBlobFuncANDROID</name>) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);</type>
+ <type requires="EGLsizeiANDROID">typedef EGLsizeiANDROID (*<name>EGLGetBlobFuncANDROID</name>) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);</type>
+ <type>struct <name>EGLClientPixmapHI</name> {
+ void *pData;
+ EGLint iWidth;
+ EGLint iHeight;
+ EGLint iStride;
+};</type>
+ <!-- Backwards-compatibility hack: Downstream implementations shipped
+ incorrect function pointer names for some years. -->
+ <type>typedef void (<apientry/> *<name>EGLDEBUGPROCKHR</name>)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);</type>
+ <type>#define <name>PFNEGLBINDWAYLANDDISPLAYWL</name> PFNEGLBINDWAYLANDDISPLAYWLPROC</type>
+ <type>#define <name>PFNEGLUNBINDWAYLANDDISPLAYWL</name> PFNEGLUNBINDWAYLANDDISPLAYWLPROC</type>
+ <type>#define <name>PFNEGLQUERYWAYLANDBUFFERWL</name> PFNEGLQUERYWAYLANDBUFFERWLPROC</type>
+ <type>#define <name>PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL</name> PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC</type>
+ </types>
+
+ <!-- SECTION: EGL enumerant (token) definitions. -->
+
+ <!-- Bitmasks each have their own namespace, as do a few other
+ categories of enumeration -->
+
+ <enums namespace="EGLSurfaceTypeMask" type="bitmask" comment="EGL_SURFACE_TYPE bits">
+ <enum value="0x0001" name="EGL_PBUFFER_BIT"/>
+ <enum value="0x0002" name="EGL_PIXMAP_BIT"/>
+ <enum value="0x0004" name="EGL_WINDOW_BIT"/>
+ <enum value="0x0008" name="EGL_PBUFFER_IMAGE_BIT_TAO" comment="Unreleased TAO extension"/>
+ <enum value="0x0010" name="EGL_PBUFFER_PALETTE_IMAGE_BIT_TAO" comment="Unreleased TAO extension"/>
+ <enum value="0x0020" name="EGL_VG_COLORSPACE_LINEAR_BIT"/>
+ <enum value="0x0020" name="EGL_VG_COLORSPACE_LINEAR_BIT_KHR"/>
+ <enum value="0x0040" name="EGL_VG_ALPHA_FORMAT_PRE_BIT"/>
+ <enum value="0x0040" name="EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR"/>
+ <enum value="0x0080" name="EGL_LOCK_SURFACE_BIT_KHR"/>
+ <enum value="0x0100" name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
+ <enum value="0x0200" name="EGL_MULTISAMPLE_RESOLVE_BOX_BIT"/>
+ <enum value="0x0400" name="EGL_SWAP_BEHAVIOR_PRESERVED_BIT"/>
+ <enum value="0x0800" name="EGL_STREAM_BIT_KHR"/>
+ <!--
+ <enum value="0x0800" name="EGL_STREAM_BIT_NV" comment="Draft EGL_NV_stream_producer_eglsurface extension (bug 8064)"/>
+ -->
+ <enum value="0x1000" name="EGL_MUTABLE_RENDER_BUFFER_BIT_KHR"/>
+ </enums>
+
+ <enums namespace="EGLRenderableTypeMask" type="bitmask" comment="EGL_RENDERABLE_TYPE bits">
+ <enum value="0x0001" name="EGL_OPENGL_ES_BIT"/>
+ <enum value="0x0002" name="EGL_OPENVG_BIT"/>
+ <enum value="0x0004" name="EGL_OPENGL_ES2_BIT"/>
+ <enum value="0x0008" name="EGL_OPENGL_BIT"/>
+ <enum value="0x0010" name="EGL_INTEROP_BIT_KHR" comment="EGL_KHR_interop"/>
+ <enum value="0x0020" name="EGL_OPENMAX_IL_BIT_KHR" comment="EGL_KHR_interop"/>
+ <enum value="0x00000040" name="EGL_OPENGL_ES3_BIT"/>
+ <enum value="0x00000040" name="EGL_OPENGL_ES3_BIT_KHR" alias="EGL_OPENGL_ES3_BIT"/>
+ </enums>
+
+ <enums namespace="EGLLockUsageHintKHRMask" type="bitmask" comment="EGL_LOCK_USAGE_HINT_KHR bits">
+ <enum value="0x0001" name="EGL_READ_SURFACE_BIT_KHR"/>
+ <enum value="0x0002" name="EGL_WRITE_SURFACE_BIT_KHR"/>
+ </enums>
+
+ <enums namespace="EGLNativeBufferUsageFlags" type="bitmask" comment="EGL_NATIVE_BUFFER_USAGE_ANDROID bits">
+ <enum value="0x00000001" name="EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID"/>
+ <enum value="0x00000002" name="EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID"/>
+ <enum value="0x00000004" name="EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID"/>
+ </enums>
+
+ <enums namespace="EGLSyncFlagsKHR" type="bitmask" comment="Fence/reusable sync wait bits">
+ <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT_KHR" alias="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT_NV" alias="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
+ </enums>
+
+ <enums namespace="EGLDRMBufferUseMESAMask" type="bitmask" comment="EGL_DRM_BUFFER_USE_MESA bits">
+ <enum value="0x00000001" name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/>
+ <enum value="0x00000002" name="EGL_DRM_BUFFER_USE_SHARE_MESA"/>
+ <enum value="0x00000004" name="EGL_DRM_BUFFER_USE_CURSOR_MESA"/>
+ </enums>
+
+ <!-- Should be shared with GL, but aren't aren't since the
+ FORWARD_COMPATIBLE and DEBUG_BIT values are swapped in the
+ corresponding GL enums. Oops :-( -->
+ <enums namespace="EGLContextFlagMask" type="bitmask" comment="EGL_CONTEXT_FLAGS_KHR bits">
+ <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR"/>
+ <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR"/>
+ <enum value="0x00000004" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR"/>
+ </enums>
+
+ <enums namespace="EGLContextProfileMask" type="bitmask" comment="Shared with GL">
+ <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
+ <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR" alias="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
+ <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
+ <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR" alias="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
+ </enums>
+
+ <!-- The default ("API") enum namespace starts here. While some
+ assigned values may overlap, and different parts of the
+ namespace are reserved for different purposes, it is a single
+ namespace. The "class" attribute indicates some of the reserved
+ purposes but is by no means complete (and cannot be, since many
+ tokens are reused for different purposes in different
+ extensions and API versions). -->
+
+ <enums namespace="EGL" start="0x0000" end="0x2FFF" vendor="KHR" comment="Reserved for enumerants shared with WGL, GLX, and GL">
+ <enum value="0" name="EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR"/>
+ <enum value="0x2097" name="EGL_CONTEXT_RELEASE_BEHAVIOR_KHR"/>
+ <enum value="0x2098" name="EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR"/>
+ </enums>
+
+ <enums namespace="EGL" group="Boolean" vendor="ARB">
+ <enum value="0" name="EGL_FALSE"/>
+ <enum value="1" name="EGL_TRUE"/>
+ </enums>
+
+ <enums namespace="EGL" group="SpecialNumbers" vendor="ARB" comment="Tokens whose numeric value is intrinsically meaningful">
+ <enum value="EGL_CAST(EGLint,-1)" name="EGL_DONT_CARE"/>
+ <enum value="EGL_CAST(EGLint,-1)" name="EGL_UNKNOWN"/>
+ <enum value="-1" name="EGL_NO_NATIVE_FENCE_FD_ANDROID"/>
+ <enum value="0" name="EGL_DEPTH_ENCODING_NONE_NV"/>
+ <enum value="EGL_CAST(EGLContext,0)" name="EGL_NO_CONTEXT"/>
+ <enum value="EGL_CAST(EGLDeviceEXT,0)" name="EGL_NO_DEVICE_EXT"/>
+ <enum value="EGL_CAST(EGLDisplay,0)" name="EGL_NO_DISPLAY"/>
+ <enum value="EGL_CAST(EGLImage,0)" name="EGL_NO_IMAGE"/>
+ <enum value="EGL_CAST(EGLImageKHR,0)" name="EGL_NO_IMAGE_KHR"/>
+ <enum value="EGL_CAST(EGLNativeDisplayType,0)" name="EGL_DEFAULT_DISPLAY"/>
+ <enum value="EGL_CAST(EGLNativeFileDescriptorKHR,-1)" name="EGL_NO_FILE_DESCRIPTOR_KHR"/>
+ <enum value="EGL_CAST(EGLOutputLayerEXT,0)" name="EGL_NO_OUTPUT_LAYER_EXT"/>
+ <enum value="EGL_CAST(EGLOutputPortEXT,0)" name="EGL_NO_OUTPUT_PORT_EXT"/>
+ <enum value="EGL_CAST(EGLStreamKHR,0)" name="EGL_NO_STREAM_KHR"/>
+ <enum value="EGL_CAST(EGLSurface,0)" name="EGL_NO_SURFACE"/>
+ <enum value="EGL_CAST(EGLSync,0)" name="EGL_NO_SYNC"/>
+ <enum value="EGL_CAST(EGLSyncKHR,0)" name="EGL_NO_SYNC_KHR" alias="EGL_NO_SYNC"/>
+ <enum value="EGL_CAST(EGLSyncNV,0)" name="EGL_NO_SYNC_NV" alias="EGL_NO_SYNC"/>
+ <enum value="EGL_CAST(EGLConfig,0)" name="EGL_NO_CONFIG_KHR"/>
+ <enum value="10000" name="EGL_DISPLAY_SCALING"/>
+ <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER" type="ull"/>
+ <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER_KHR" type="ull" alias="EGL_FOREVER"/>
+ <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER_NV" type="ull" alias="EGL_FOREVER"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3000" end="0x305F" vendor="KHR">
+ <enum value="0x3000" name="EGL_SUCCESS"/>
+ <enum value="0x3001" name="EGL_NOT_INITIALIZED"/>
+ <enum value="0x3002" name="EGL_BAD_ACCESS"/>
+ <enum value="0x3003" name="EGL_BAD_ALLOC"/>
+ <enum value="0x3004" name="EGL_BAD_ATTRIBUTE"/>
+ <enum value="0x3005" name="EGL_BAD_CONFIG"/>
+ <enum value="0x3006" name="EGL_BAD_CONTEXT"/>
+ <enum value="0x3007" name="EGL_BAD_CURRENT_SURFACE"/>
+ <enum value="0x3008" name="EGL_BAD_DISPLAY"/>
+ <enum value="0x3009" name="EGL_BAD_MATCH"/>
+ <enum value="0x300A" name="EGL_BAD_NATIVE_PIXMAP"/>
+ <enum value="0x300B" name="EGL_BAD_NATIVE_WINDOW"/>
+ <enum value="0x300C" name="EGL_BAD_PARAMETER"/>
+ <enum value="0x300D" name="EGL_BAD_SURFACE"/>
+ <enum value="0x300E" name="EGL_CONTEXT_LOST"/>
+ <unused start="0x300F" end="0x301F" comment="for additional errors"/>
+ <enum value="0x3020" name="EGL_BUFFER_SIZE"/>
+ <enum value="0x3021" name="EGL_ALPHA_SIZE"/>
+ <enum value="0x3022" name="EGL_BLUE_SIZE"/>
+ <enum value="0x3023" name="EGL_GREEN_SIZE"/>
+ <enum value="0x3024" name="EGL_RED_SIZE"/>
+ <enum value="0x3025" name="EGL_DEPTH_SIZE"/>
+ <enum value="0x3026" name="EGL_STENCIL_SIZE"/>
+ <enum value="0x3027" name="EGL_CONFIG_CAVEAT"/>
+ <enum value="0x3028" name="EGL_CONFIG_ID"/>
+ <enum value="0x3029" name="EGL_LEVEL"/>
+ <enum value="0x302A" name="EGL_MAX_PBUFFER_HEIGHT"/>
+ <enum value="0x302B" name="EGL_MAX_PBUFFER_PIXELS"/>
+ <enum value="0x302C" name="EGL_MAX_PBUFFER_WIDTH"/>
+ <enum value="0x302D" name="EGL_NATIVE_RENDERABLE"/>
+ <enum value="0x302E" name="EGL_NATIVE_VISUAL_ID"/>
+ <enum value="0x302F" name="EGL_NATIVE_VISUAL_TYPE"/>
+ <enum value="0x3031" name="EGL_SAMPLES"/>
+ <enum value="0x3032" name="EGL_SAMPLE_BUFFERS"/>
+ <enum value="0x3033" name="EGL_SURFACE_TYPE"/>
+ <enum value="0x3034" name="EGL_TRANSPARENT_TYPE"/>
+ <enum value="0x3035" name="EGL_TRANSPARENT_BLUE_VALUE"/>
+ <enum value="0x3036" name="EGL_TRANSPARENT_GREEN_VALUE"/>
+ <enum value="0x3037" name="EGL_TRANSPARENT_RED_VALUE"/>
+ <enum value="0x3038" name="EGL_NONE" comment="Attribute list terminator"/>
+ <enum value="0x3039" name="EGL_BIND_TO_TEXTURE_RGB"/>
+ <enum value="0x303A" name="EGL_BIND_TO_TEXTURE_RGBA"/>
+ <enum value="0x303B" name="EGL_MIN_SWAP_INTERVAL"/>
+ <enum value="0x303C" name="EGL_MAX_SWAP_INTERVAL"/>
+ <enum value="0x303D" name="EGL_LUMINANCE_SIZE"/>
+ <enum value="0x303E" name="EGL_ALPHA_MASK_SIZE"/>
+ <enum value="0x303F" name="EGL_COLOR_BUFFER_TYPE"/>
+ <enum value="0x3040" name="EGL_RENDERABLE_TYPE"/>
+ <enum value="0x3041" name="EGL_MATCH_NATIVE_PIXMAP"/>
+ <enum value="0x3042" name="EGL_CONFORMANT"/>
+ <enum value="0x3042" name="EGL_CONFORMANT_KHR"/>
+ <enum value="0x3043" name="EGL_MATCH_FORMAT_KHR"/>
+ <unused start="0x3044" end="0x304F" comment="for additional config attributes"/>
+ <enum value="0x3050" name="EGL_SLOW_CONFIG"/>
+ <enum value="0x3051" name="EGL_NON_CONFORMANT_CONFIG"/>
+ <enum value="0x3052" name="EGL_TRANSPARENT_RGB"/>
+ <enum value="0x3053" name="EGL_VENDOR"/>
+ <enum value="0x3054" name="EGL_VERSION"/>
+ <enum value="0x3055" name="EGL_EXTENSIONS"/>
+ <enum value="0x3056" name="EGL_HEIGHT"/>
+ <enum value="0x3057" name="EGL_WIDTH"/>
+ <enum value="0x3058" name="EGL_LARGEST_PBUFFER"/>
+ <enum value="0x3059" name="EGL_DRAW"/>
+ <enum value="0x305A" name="EGL_READ"/>
+ <enum value="0x305B" name="EGL_CORE_NATIVE_ENGINE"/>
+ <enum value="0x305C" name="EGL_NO_TEXTURE"/>
+ <enum value="0x305D" name="EGL_TEXTURE_RGB"/>
+ <enum value="0x305E" name="EGL_TEXTURE_RGBA"/>
+ <enum value="0x305F" name="EGL_TEXTURE_2D"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3060-0x306F" vendor="TAO" comment="Reserved for Phil Huxley">
+ <unused start="0x3060" end="0x306F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3070-0x307F" vendor="NOK" comment="Reserved for Jani Vaarala">
+ <unused start="0x3070" end="0x307E"/>
+ <enum value="0x307F" name="EGL_Y_INVERTED_NOK"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3080-0x30AF" vendor="KHR">
+ <enum value="0x3080" name="EGL_TEXTURE_FORMAT"/>
+ <enum value="0x3081" name="EGL_TEXTURE_TARGET"/>
+ <enum value="0x3082" name="EGL_MIPMAP_TEXTURE"/>
+ <enum value="0x3083" name="EGL_MIPMAP_LEVEL"/>
+ <enum value="0x3084" name="EGL_BACK_BUFFER"/>
+ <enum value="0x3085" name="EGL_SINGLE_BUFFER"/>
+ <enum value="0x3086" name="EGL_RENDER_BUFFER"/>
+ <enum value="0x3087" name="EGL_COLORSPACE" alias="EGL_VG_COLORSPACE"/>
+ <enum value="0x3087" name="EGL_VG_COLORSPACE"/>
+ <enum value="0x3088" name="EGL_ALPHA_FORMAT" alias="EGL_VG_ALPHA_FORMAT"/>
+ <enum value="0x3088" name="EGL_VG_ALPHA_FORMAT"/>
+ <enum value="0x3089" name="EGL_COLORSPACE_sRGB"/>
+ <enum value="0x3089" name="EGL_GL_COLORSPACE_SRGB" alias="EGL_COLORSPACE_sRGB"/>
+ <enum value="0x3089" name="EGL_GL_COLORSPACE_SRGB_KHR" alias="EGL_COLORSPACE_sRGB"/>
+ <enum value="0x3089" name="EGL_VG_COLORSPACE_sRGB" alias="EGL_COLORSPACE_sRGB"/>
+ <enum value="0x308A" name="EGL_COLORSPACE_LINEAR"/>
+ <enum value="0x308A" name="EGL_GL_COLORSPACE_LINEAR" alias="EGL_COLORSPACE_LINEAR"/>
+ <enum value="0x308A" name="EGL_GL_COLORSPACE_LINEAR_KHR" alias="EGL_COLORSPACE_LINEAR"/>
+ <enum value="0x308A" name="EGL_VG_COLORSPACE_LINEAR" alias="EGL_COLORSPACE_LINEAR"/>
+ <enum value="0x308B" name="EGL_ALPHA_FORMAT_NONPRE" alias="EGL_VG_ALPHA_FORMAT_NONPRE"/>
+ <enum value="0x308B" name="EGL_VG_ALPHA_FORMAT_NONPRE"/>
+ <enum value="0x308C" name="EGL_ALPHA_FORMAT_PRE" alias="EGL_VG_ALPHA_FORMAT_PRE"/>
+ <enum value="0x308C" name="EGL_VG_ALPHA_FORMAT_PRE"/>
+ <enum value="0x308D" name="EGL_CLIENT_APIS"/>
+ <enum value="0x308E" name="EGL_RGB_BUFFER"/>
+ <enum value="0x308F" name="EGL_LUMINANCE_BUFFER"/>
+ <enum value="0x3090" name="EGL_HORIZONTAL_RESOLUTION"/>
+ <enum value="0x3091" name="EGL_VERTICAL_RESOLUTION"/>
+ <enum value="0x3092" name="EGL_PIXEL_ASPECT_RATIO"/>
+ <enum value="0x3093" name="EGL_SWAP_BEHAVIOR"/>
+ <enum value="0x3094" name="EGL_BUFFER_PRESERVED"/>
+ <enum value="0x3095" name="EGL_BUFFER_DESTROYED"/>
+ <enum value="0x3096" name="EGL_OPENVG_IMAGE"/>
+ <enum value="0x3097" name="EGL_CONTEXT_CLIENT_TYPE"/>
+ <enum value="0x3098" name="EGL_CONTEXT_CLIENT_VERSION"/>
+ <enum value="0x3098" name="EGL_CONTEXT_MAJOR_VERSION" alias="EGL_CONTEXT_CLIENT_VERSION"/>
+ <enum value="0x3098" name="EGL_CONTEXT_MAJOR_VERSION_KHR" alias="EGL_CONTEXT_CLIENT_VERSION"/>
+ <enum value="0x3099" name="EGL_MULTISAMPLE_RESOLVE"/>
+ <enum value="0x309A" name="EGL_MULTISAMPLE_RESOLVE_DEFAULT"/>
+ <enum value="0x309B" name="EGL_MULTISAMPLE_RESOLVE_BOX"/>
+ <enum value="0x309C" name="EGL_CL_EVENT_HANDLE"/>
+ <enum value="0x309C" name="EGL_CL_EVENT_HANDLE_KHR" alias="EGL_CL_EVENT_HANDLE"/>
+ <enum value="0x309D" name="EGL_GL_COLORSPACE"/>
+ <enum value="0x309D" name="EGL_GL_COLORSPACE_KHR" alias="EGL_GL_COLORSPACE"/>
+ <unused start="0x309E" end="0x309F"/>
+ <enum value="0x30A0" name="EGL_OPENGL_ES_API"/>
+ <enum value="0x30A1" name="EGL_OPENVG_API"/>
+ <enum value="0x30A2" name="EGL_OPENGL_API"/>
+ <unused start="0x30A3" end="0x30AF" comment="for additional client API names"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x30B0-0x30BF" vendor="NV" comment="Reserved for Ignacio Llamas">
+ <enum value="0x30B0" name="EGL_NATIVE_PIXMAP_KHR"/>
+ <enum value="0x30B1" name="EGL_GL_TEXTURE_2D"/>
+ <enum value="0x30B1" name="EGL_GL_TEXTURE_2D_KHR" alias="EGL_GL_TEXTURE_2D"/>
+ <enum value="0x30B2" name="EGL_GL_TEXTURE_3D"/>
+ <enum value="0x30B2" name="EGL_GL_TEXTURE_3D_KHR" alias="EGL_GL_TEXTURE_3D"/>
+ <enum value="0x30B3" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum value="0x30B3" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum value="0x30B4" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum value="0x30B4" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum value="0x30B5" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum value="0x30B5" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum value="0x30B6" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum value="0x30B6" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum value="0x30B7" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum value="0x30B7" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum value="0x30B8" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ <enum value="0x30B8" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ <enum value="0x30B9" name="EGL_GL_RENDERBUFFER"/>
+ <enum value="0x30B9" name="EGL_GL_RENDERBUFFER_KHR" alias="EGL_GL_RENDERBUFFER"/>
+ <enum value="0x30BA" name="EGL_VG_PARENT_IMAGE_KHR"/>
+ <enum value="0x30BC" name="EGL_GL_TEXTURE_LEVEL"/>
+ <enum value="0x30BC" name="EGL_GL_TEXTURE_LEVEL_KHR" alias="EGL_GL_TEXTURE_LEVEL"/>
+ <enum value="0x30BD" name="EGL_GL_TEXTURE_ZOFFSET"/>
+ <enum value="0x30BD" name="EGL_GL_TEXTURE_ZOFFSET_KHR" alias="EGL_GL_TEXTURE_ZOFFSET"/>
+ <enum value="0x30BE" name="EGL_POST_SUB_BUFFER_SUPPORTED_NV"/>
+ <enum value="0x30BF" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x30C0-0x30CF" vendor="KHR">
+ <enum value="0x30C0" name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
+ <enum value="0x30C1" name="EGL_FORMAT_RGB_565_KHR"/>
+ <enum value="0x30C2" name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
+ <enum value="0x30C3" name="EGL_FORMAT_RGBA_8888_KHR"/>
+ <enum value="0x30C4" name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
+ <enum value="0x30C5" name="EGL_LOCK_USAGE_HINT_KHR"/>
+ <enum value="0x30C6" name="EGL_BITMAP_POINTER_KHR"/>
+ <enum value="0x30C7" name="EGL_BITMAP_PITCH_KHR"/>
+ <enum value="0x30C8" name="EGL_BITMAP_ORIGIN_KHR"/>
+ <enum value="0x30C9" name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
+ <enum value="0x30CA" name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
+ <enum value="0x30CB" name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
+ <enum value="0x30CC" name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
+ <enum value="0x30CD" name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
+ <enum value="0x30CE" name="EGL_LOWER_LEFT_KHR"/>
+ <enum value="0x30CF" name="EGL_UPPER_LEFT_KHR"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x30D0" end="0x30DF" vendor="Symbian" comment="Reserved for Robert Palmer (bug #2545)">
+ <unused start="0x30D0" end="0x30D1"/>
+ <enum value="0x30D2" name="EGL_IMAGE_PRESERVED"/>
+ <enum value="0x30D2" name="EGL_IMAGE_PRESERVED_KHR"/>
+ <unused start="0x30D3" end="0x30D9"/>
+ <enum value="0x30DA" name="EGL_SHARED_IMAGE_NOK" comment="Unreleased extension"/>
+ <unused start="0x30DB" end="0x30DF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x30E0" end="0x30EF" vendor="NV" comment="Reserved for Russell Pflughaupt (bug #3314)">
+ <enum value="0x30E0" name="EGL_COVERAGE_BUFFERS_NV"/>
+ <enum value="0x30E1" name="EGL_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x30E2" name="EGL_DEPTH_ENCODING_NV"/>
+ <enum value="0x30E3" name="EGL_DEPTH_ENCODING_NONLINEAR_NV"/>
+ <unused start="0x30E4" end="0x30E5"/>
+ <enum value="0x30E6" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV"/>
+ <enum value="0x30E7" name="EGL_SYNC_STATUS_NV"/>
+ <enum value="0x30E8" name="EGL_SIGNALED_NV"/>
+ <enum value="0x30E9" name="EGL_UNSIGNALED_NV"/>
+ <enum value="0x30EA" name="EGL_ALREADY_SIGNALED_NV"/>
+ <enum value="0x30EB" name="EGL_TIMEOUT_EXPIRED_NV"/>
+ <enum value="0x30EC" name="EGL_CONDITION_SATISFIED_NV"/>
+ <enum value="0x30ED" name="EGL_SYNC_TYPE_NV"/>
+ <enum value="0x30EE" name="EGL_SYNC_CONDITION_NV"/>
+ <enum value="0x30EF" name="EGL_SYNC_FENCE_NV"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x30F0" end="0x30FF" vendor="KHR">
+ <enum value="0x30F0" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
+ <enum value="0x30F0" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR" alias="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
+ <enum value="0x30F1" name="EGL_SYNC_STATUS"/>
+ <enum value="0x30F1" name="EGL_SYNC_STATUS_KHR" alias="EGL_SYNC_STATUS"/>
+ <enum value="0x30F2" name="EGL_SIGNALED"/>
+ <enum value="0x30F2" name="EGL_SIGNALED_KHR" alias="EGL_SIGNALED"/>
+ <enum value="0x30F3" name="EGL_UNSIGNALED"/>
+ <enum value="0x30F3" name="EGL_UNSIGNALED_KHR" alias="EGL_UNSIGNALED"/>
+ <enum value="0x30F5" name="EGL_TIMEOUT_EXPIRED"/>
+ <enum value="0x30F5" name="EGL_TIMEOUT_EXPIRED_KHR" alias="EGL_TIMEOUT_EXPIRED"/>
+ <enum value="0x30F6" name="EGL_CONDITION_SATISFIED"/>
+ <enum value="0x30F6" name="EGL_CONDITION_SATISFIED_KHR" alias="EGL_CONDITION_SATISFIED"/>
+ <enum value="0x30F7" name="EGL_SYNC_TYPE"/>
+ <enum value="0x30F7" name="EGL_SYNC_TYPE_KHR" alias="EGL_SYNC_TYPE"/>
+ <enum value="0x30F8" name="EGL_SYNC_CONDITION"/>
+ <enum value="0x30F8" name="EGL_SYNC_CONDITION_KHR" alias="EGL_SYNC_CONDITION"/>
+ <enum value="0x30F9" name="EGL_SYNC_FENCE"/>
+ <enum value="0x30F9" name="EGL_SYNC_FENCE_KHR" alias="EGL_SYNC_FENCE"/>
+ <enum value="0x30FA" name="EGL_SYNC_REUSABLE_KHR"/>
+ <enum value="0x30FB" name="EGL_CONTEXT_MINOR_VERSION"/>
+ <enum value="0x30FB" name="EGL_CONTEXT_MINOR_VERSION_KHR" alias="EGL_CONTEXT_MINOR_VERSION"/>
+ <enum value="0x30FC" name="EGL_CONTEXT_FLAGS_KHR"/>
+ <enum value="0x30FD" name="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
+ <enum value="0x30FD" name="EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR" alias="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
+ <enum value="0x30FE" name="EGL_SYNC_CL_EVENT"/>
+ <enum value="0x30FE" name="EGL_SYNC_CL_EVENT_KHR" alias="EGL_SYNC_CL_EVENT"/>
+ <enum value="0x30FF" name="EGL_SYNC_CL_EVENT_COMPLETE"/>
+ <enum value="0x30FF" name="EGL_SYNC_CL_EVENT_COMPLETE_KHR" alias="EGL_SYNC_CL_EVENT_COMPLETE"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3100" end="0x310F" vendor="IMG" comment="Reserved for Ben Bowman (Khronos bug 4748)">
+ <enum value="0x3100" name="EGL_CONTEXT_PRIORITY_LEVEL_IMG"/>
+ <enum value="0x3101" name="EGL_CONTEXT_PRIORITY_HIGH_IMG"/>
+ <enum value="0x3102" name="EGL_CONTEXT_PRIORITY_MEDIUM_IMG"/>
+ <enum value="0x3103" name="EGL_CONTEXT_PRIORITY_LOW_IMG"/>
+ <unused start="0x3104"/>
+ <enum value="0x3105" name="EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG"/>
+ <enum value="0x3106" name="EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG"/>
+ <unused start="0x3107" end="0x310F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3110" end="0x311F" vendor="ATX" comment="Reserved for Tim Renouf, Antix (Khronos bug 4949)">
+ <enum value="0x3110" name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
+ <unused start="0x3111" end="0x311F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3120" end="0x312F" vendor="QCOM" comment="EGL_QCOM_create_image">
+ <enum value="0x3120" name="EGL_NEW_IMAGE_QCOM"/>
+ <enum value="0x3121" name="EGL_IMAGE_FORMAT_QCOM"/>
+ <enum value="0x3122" name="EGL_FORMAT_RGBA_8888_QCOM"/>
+ <enum value="0x3123" name="EGL_FORMAT_RGB_565_QCOM"/>
+ <enum value="0x3124" name="EGL_FORMAT_YUYV_QCOM"/>
+ <enum value="0x3125" name="EGL_FORMAT_UYVY_QCOM"/>
+ <enum value="0x3126" name="EGL_FORMAT_YV12_QCOM"/>
+ <enum value="0x3127" name="EGL_FORMAT_NV21_QCOM"/>
+ <enum value="0x3128" name="EGL_FORMAT_NV12_TILED_QCOM"/>
+ <enum value="0x3129" name="EGL_FORMAT_BGRA_8888_QCOM"/>
+ <enum value="0x312A" name="EGL_FORMAT_BGRX_8888_QCOM"/>
+ <unused start="0x312B" end="0x312E"/>
+ <enum value="0x312F" name="EGL_FORMAT_RGBX_8888_QCOM"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3130" end="0x313F" vendor="NV" comment="Reserved for Greg Prisament (Khronos bug 5166)">
+ <unused start="0x3130"/>
+ <enum value="0x3131" name="EGL_COVERAGE_SAMPLE_RESOLVE_NV"/>
+ <enum value="0x3132" name="EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV"/>
+ <enum value="0x3133" name="EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV"/>
+ <enum value="0x3134" name="EGL_MULTIVIEW_VIEW_COUNT_EXT"/>
+ <unused start="0x3135"/>
+ <enum value="0x3136" name="EGL_AUTO_STEREO_NV"/>
+ <unused start="0x3137"/>
+ <enum value="0x3138" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT"/>
+ <unused start="0x3139" end="0x313C"/>
+ <enum value="0x313D" name="EGL_BUFFER_AGE_KHR"/>
+ <enum value="0x313D" name="EGL_BUFFER_AGE_EXT" alias="EGL_BUFFER_AGE_KHR"/>
+ <unused start="0x313E" end="0x313F"/>
+ <enum value="0x313F" name="EGL_PLATFORM_DEVICE_EXT"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3140" end="0x314F" vendor="Google" comment="Reserved for Mathias Agopian (Khronos bug 5199)">
+ <enum value="0x3140" name="EGL_NATIVE_BUFFER_ANDROID"/>
+ <enum value="0x3141" name="EGL_PLATFORM_ANDROID_KHR"/>
+ <enum value="0x3142" name="EGL_RECORDABLE_ANDROID"/>
+ <enum value="0x3143" name="EGL_NATIVE_BUFFER_USAGE_ANDROID"/>
+ <enum value="0x3144" name="EGL_SYNC_NATIVE_FENCE_ANDROID"/>
+ <enum value="0x3145" name="EGL_SYNC_NATIVE_FENCE_FD_ANDROID"/>
+ <enum value="0x3146" name="EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID"/>
+ <enum value="0x3147" name="EGL_FRAMEBUFFER_TARGET_ANDROID"/>
+ <unused start="0x3148" end="0x314B"/>
+ <enum value="0x314C" name="EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID"/>
+ <enum value="0x314D" name="EGL_GL_COLORSPACE_DEFAULT_EXT"/>
+ <unused start="0x314E" end="0x314F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3150" end="0x315F" vendor="NOK" comment="Reserved for Robert Palmer (Khronos bug 5368)">
+ <unused start="0x3150" end="0x315F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3160" end="0x316F" vendor="Seaweed" comment="Reserved for Sree Sridharan (Khronos public bug 198)">
+ <unused start="0x3160" end="0x316F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3170" end="0x318F" vendor="QNX" comment="Reserved for Joel Pilon (Khronos bug 5834)">
+ <unused start="0x3170" end="0x318F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3190" end="0x31AF" vendor="FSL" comment="Reserved for Brian Murray, Freescale (Khronos bug 5939)">
+ <unused start="0x3190" end="0x31AF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x31B0" end="0x31BF" vendor="KHR" comment="Reserved for Marcus Lorentzon (Khronos bug 6437)">
+ <enum value="0x31B0" name="EGL_CONTEXT_OPENGL_DEBUG"/>
+ <enum value="0x31B1" name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE"/>
+ <enum value="0x31B2" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
+ <enum value="0x31B3" name="EGL_CONTEXT_OPENGL_NO_ERROR_KHR"/>
+ <unused start="0x31B4" end="0x31BC" comment="0x31B3-0x31BC formerly reserved for EGL_image_stream"/>
+ <enum value="0x31BD" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR" alias="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
+ <enum value="0x31BD" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
+ <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION"/>
+ <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION_KHR" alias="EGL_NO_RESET_NOTIFICATION"/>
+ <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION_EXT" alias="EGL_NO_RESET_NOTIFICATION"/>
+ <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET"/>
+ <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET_KHR" alias="EGL_LOSE_CONTEXT_ON_RESET"/>
+ <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET_EXT" alias="EGL_LOSE_CONTEXT_ON_RESET"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x31C0" end="0x31CF" vendor="QCOM" comment="Reserved for Maurice Ribble (Khronos bug 6644) - EGL_QCOM_create_image spec">
+ <enum value="0x31C0" name="EGL_FORMAT_R8_QCOM"/>
+ <enum value="0x31C1" name="EGL_FORMAT_RG88_QCOM"/>
+ <enum value="0x31C2" name="EGL_FORMAT_NV12_QCOM"/>
+ <enum value="0x31C3" name="EGL_FORMAT_SRGBX_8888_QCOM"/>
+ <enum value="0x31C4" name="EGL_FORMAT_SRGBA_8888_QCOM"/>
+ <enum value="0x31C5" name="EGL_FORMAT_YVYU_QCOM"/>
+ <enum value="0x31C6" name="EGL_FORMAT_VYUY_QCOM"/>
+ <enum value="0x31C7" name="EGL_FORMAT_IYUV_QCOM"/>
+ <enum value="0x31C8" name="EGL_FORMAT_RGB_888_QCOM"/>
+ <enum value="0x31C9" name="EGL_FORMAT_RGBA_5551_QCOM"/>
+ <enum value="0x31CA" name="EGL_FORMAT_RGBA_4444_QCOM"/>
+ <enum value="0x31CB" name="EGL_FORMAT_R_16_FLOAT_QCOM"/>
+ <enum value="0x31CC" name="EGL_FORMAT_RG_1616_FLOAT_QCOM"/>
+ <enum value="0x31CD" name="EGL_FORMAT_RGBA_16_FLOAT_QCOM"/>
+ <enum value="0x31CE" name="EGL_FORMAT_RGBA_1010102_QCOM"/>
+ <enum value="0x31CF" name="EGL_FORMAT_FLAG_QCOM"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x31D0" end="0x31DF" vendor="MESA" comment="Reserved for Kristian H&#248;gsberg (Khronos bug 6757)">
+ <enum value="0x31D0" name="EGL_DRM_BUFFER_FORMAT_MESA"/>
+ <enum value="0x31D1" name="EGL_DRM_BUFFER_USE_MESA"/>
+ <enum value="0x31D2" name="EGL_DRM_BUFFER_FORMAT_ARGB32_MESA"/>
+ <enum value="0x31D3" name="EGL_DRM_BUFFER_MESA"/>
+ <enum value="0x31D4" name="EGL_DRM_BUFFER_STRIDE_MESA"/>
+ <enum value="0x31D5" name="EGL_PLATFORM_X11_KHR"/>
+ <enum value="0x31D5" name="EGL_PLATFORM_X11_EXT" alias="EGL_PLATFORM_X11_KHR"/>
+ <enum value="0x31D6" name="EGL_PLATFORM_X11_SCREEN_KHR"/>
+ <enum value="0x31D6" name="EGL_PLATFORM_X11_SCREEN_EXT" alias="EGL_PLATFORM_X11_SCREEN_KHR"/>
+ <enum value="0x31D7" name="EGL_PLATFORM_GBM_KHR"/>
+ <enum value="0x31D7" name="EGL_PLATFORM_GBM_MESA" alias="EGL_PLATFORM_GBM_KHR"/>
+ <enum value="0x31D8" name="EGL_PLATFORM_WAYLAND_KHR"/>
+ <enum value="0x31D8" name="EGL_PLATFORM_WAYLAND_EXT" alias="EGL_PLATFORM_WAYLAND_KHR"/>
+ <enum value="0x31DC" name="EGL_PLATFORM_XCB_EXT"/>
+ <enum value="0x31DD" name="EGL_PLATFORM_SURFACELESS_MESA"/>
+ <enum value="0x31DE" name="EGL_PLATFORM_XCB_SCREEN_EXT"/>
+ <enum value="0x31DF" name="EGL_PRESENT_OPAQUE_EXT"/>
+ </enums>
+
+ <!-- Due to an oversight in development, these enums alias the above MESA
+ vendor range for EGL the X11/GBM/Wayland/surfaceless platforms.
+ They are both currently in wide use and cannot be changed, however
+ the tokens cannot be used in the same contexts and the aliasing is
+ therefore harmless. Future Wayland tokens should not create further
+ aliasing in this range.-->
+ <enums namespace="EGL" start="0x31D5" end="0x31DB" vendor="WL" comment="EGL_WL_bind_wayland_display">
+ <enum value="0x31D5" name="EGL_WAYLAND_BUFFER_WL"/>
+ <enum value="0x31D6" name="EGL_WAYLAND_PLANE_WL"/>
+ <enum value="0x31D7" name="EGL_TEXTURE_Y_U_V_WL"/>
+ <enum value="0x31D8" name="EGL_TEXTURE_Y_UV_WL"/>
+ <enum value="0x31D9" name="EGL_TEXTURE_Y_XUXV_WL"/>
+ <enum value="0x31DA" name="EGL_TEXTURE_EXTERNAL_WL"/>
+ <enum value="0x31DB" name="EGL_WAYLAND_Y_INVERTED_WL"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x31E0" end="0x31EF" vendor="HI" comment="Reserved for Mark Callow (Khronos bug 6799)">
+ <unused start="0x31E0" end="0x31EF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x31F0" end="0x31FF" vendor="KHR">
+ <unused start="0x31F0" end="0x31FB" comment="Placeholders for draft extensions follow"/>
+ <!--
+ <enum value="0x31F0" name="EGL_IMAGE_USE_AS_OPENGL_ES1_RENDERBUFFER_KHR" comment="Draft KHR_image_use_gl1_renderbuffer"/>
+ <enum value="0x31F1" name="EGL_IMAGE_USE_AS_OPENGL_ES1_TEXTURE_2D_KHR" comment="Draft KHR_image_use_gl1_texture_2d"/>
+ <enum value="0x31F2" name="EGL_IMAGE_USE_AS_OPENGL_ES1_TEXTURE_EXTERNAL_KHR" comment="Draft KHR_image_use_gl1_texture_external"/>
+ <enum value="0x31F3" name="EGL_IMAGE_USE_AS_OPENGL_ES2_RENDERBUFFER_KHR" comment="Draft KHR_image_use_gl2_renderbuffer"/>
+ <enum value="0x31F4" name="EGL_IMAGE_USE_AS_OPENGL_ES2_TEXTURE_2D_KHR" comment="Draft KHR_image_use_gl2_texture_2d"/>
+ <enum value="0x31F5" name="EGL_IMAGE_USE_AS_OPENGL_ES2_TEXTURE_EXTERNAL_KHR" comment="Draft KHR_image_use_gl2_texture_external"/>
+ <enum value="0x31F6" name="EGL_IMAGE_USE_AS_OPENVG_IMAGE_KHR" comment="Draft KHR_image_use_vg_vgimage"/>
+ <enum value="0x31F7" name="EGL_STREAM_CONSUMER_ATTACHMENT_MESA" comment="Draft EGL_MESA_image_stream_internal"/>
+ <enum value="0x31F8" name="EGL_NO_FORMAT_MESA" comment="Draft EGL_MESA_image_stream_internal"/>
+ <enum value="0x31F9" name="EGL_FORMAT_RGBA8888_MESA" comment="Draft EGL_MESA_image_stream_internal"/>
+ <enum value="0x31FA" name="EGL_FORMAT_RGB888_MESA" comment="Draft EGL_MESA_image_stream_internal"/>
+ <enum value="0x31FB" name="EGL_FORMAT_RGB565_MESA" comment="Draft EGL_MESA_image_stream_internal"/>
+ -->
+ <enum value="0x31FC" name="EGL_STREAM_FIFO_LENGTH_KHR"/>
+ <enum value="0x31FD" name="EGL_STREAM_TIME_NOW_KHR"/>
+ <enum value="0x31FE" name="EGL_STREAM_TIME_CONSUMER_KHR"/>
+ <enum value="0x31FF" name="EGL_STREAM_TIME_PRODUCER_KHR"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3200" end="0x320F" vendor="ANGLE" comment="Reserved for Daniel Koch, ANGLE Project (Khronos bug 7139)">
+ <enum value="0x3200" name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
+ <enum value="0x3201" name="EGL_FIXED_SIZE_ANGLE"/>
+ <unused start="0x3202" end="0x320F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3210" end="0x321F" vendor="KHR">
+ <enum value="0x3210" name="EGL_CONSUMER_LATENCY_USEC_KHR"/>
+ <unused start="0x3211"/>
+ <enum value="0x3212" name="EGL_PRODUCER_FRAME_KHR"/>
+ <enum value="0x3213" name="EGL_CONSUMER_FRAME_KHR"/>
+ <enum value="0x3214" name="EGL_STREAM_STATE_KHR"/>
+ <enum value="0x3215" name="EGL_STREAM_STATE_CREATED_KHR"/>
+ <enum value="0x3216" name="EGL_STREAM_STATE_CONNECTING_KHR"/>
+ <enum value="0x3217" name="EGL_STREAM_STATE_EMPTY_KHR"/>
+ <enum value="0x3218" name="EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR"/>
+ <enum value="0x3219" name="EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR"/>
+ <enum value="0x321A" name="EGL_STREAM_STATE_DISCONNECTED_KHR"/>
+ <enum value="0x321B" name="EGL_BAD_STREAM_KHR"/>
+ <enum value="0x321C" name="EGL_BAD_STATE_KHR"/>
+ <enum value="0x321D" name="EGL_BUFFER_COUNT_NV" comment="From EGL_NV_stream_producer_eglsurface, which has no known specification and was replaced by a KHR extension"/>
+ <enum value="0x321E" name="EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR"/>
+ <enum value="0x321F" name="EGL_SYNC_NEW_FRAME_NV"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3220" end="0x325F" vendor="NV" comment="Reserved for Greg Roth (Bug 8220)">
+ <unused start="0x3220" end="0x322A"/>
+ <enum value="0x322B" name="EGL_BAD_DEVICE_EXT"/>
+ <enum value="0x322C" name="EGL_DEVICE_EXT"/>
+ <enum value="0x322D" name="EGL_BAD_OUTPUT_LAYER_EXT"/>
+ <enum value="0x322E" name="EGL_BAD_OUTPUT_PORT_EXT"/>
+ <enum value="0x322F" name="EGL_SWAP_INTERVAL_EXT"/>
+ <enum value="0x3230" name="EGL_TRIPLE_BUFFER_NV"/>
+ <enum value="0x3231" name="EGL_QUADRUPLE_BUFFER_NV"/>
+ <unused start="0x3232"/>
+ <enum value="0x3233" name="EGL_DRM_DEVICE_FILE_EXT"/>
+ <enum value="0x3234" name="EGL_DRM_CRTC_EXT"/>
+ <enum value="0x3235" name="EGL_DRM_PLANE_EXT"/>
+ <enum value="0x3236" name="EGL_DRM_CONNECTOR_EXT"/>
+ <enum value="0x3237" name="EGL_OPENWF_DEVICE_ID_EXT"/>
+ <enum value="0x3238" name="EGL_OPENWF_PIPELINE_ID_EXT"/>
+ <enum value="0x3239" name="EGL_OPENWF_PORT_ID_EXT"/>
+ <enum value="0x323A" name="EGL_CUDA_DEVICE_NV"/>
+ <enum value="0x323B" name="EGL_CUDA_EVENT_HANDLE_NV"/>
+ <enum value="0x323C" name="EGL_SYNC_CUDA_EVENT_NV"/>
+ <enum value="0x323D" name="EGL_SYNC_CUDA_EVENT_COMPLETE_NV"/>
+ <unused start="0x323E"/>
+ <enum value="0x323F" name="EGL_STREAM_CROSS_PARTITION_NV"/>
+ <enum value="0x3240" name="EGL_STREAM_STATE_INITIALIZING_NV"/>
+ <enum value="0x3241" name="EGL_STREAM_TYPE_NV"/>
+ <enum value="0x3242" name="EGL_STREAM_PROTOCOL_NV"/>
+ <enum value="0x3243" name="EGL_STREAM_ENDPOINT_NV"/>
+ <enum value="0x3244" name="EGL_STREAM_LOCAL_NV"/>
+ <enum value="0x3245" name="EGL_STREAM_CROSS_PROCESS_NV"/>
+ <enum value="0x3246" name="EGL_STREAM_PROTOCOL_FD_NV"/>
+ <enum value="0x3247" name="EGL_STREAM_PRODUCER_NV"/>
+ <enum value="0x3248" name="EGL_STREAM_CONSUMER_NV"/>
+ <unused start="0x3239" end="0x324A"/>
+ <enum value="0x324B" name="EGL_STREAM_PROTOCOL_SOCKET_NV"/>
+ <enum value="0x324C" name="EGL_SOCKET_HANDLE_NV"/>
+ <enum value="0x324D" name="EGL_SOCKET_TYPE_NV"/>
+ <enum value="0x324E" name="EGL_SOCKET_TYPE_UNIX_NV"/>
+ <enum value="0x324F" name="EGL_SOCKET_TYPE_INET_NV"/>
+ <enum value="0x3250" name="EGL_MAX_STREAM_METADATA_BLOCKS_NV"/>
+ <enum value="0x3251" name="EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV"/>
+ <enum value="0x3252" name="EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV"/>
+ <enum value="0x3253" name="EGL_PRODUCER_METADATA_NV"/>
+ <enum value="0x3254" name="EGL_CONSUMER_METADATA_NV"/>
+ <enum value="0x3255" name="EGL_METADATA0_SIZE_NV"/>
+ <enum value="0x3256" name="EGL_METADATA1_SIZE_NV"/>
+ <enum value="0x3257" name="EGL_METADATA2_SIZE_NV"/>
+ <enum value="0x3258" name="EGL_METADATA3_SIZE_NV"/>
+ <enum value="0x3259" name="EGL_METADATA0_TYPE_NV"/>
+ <enum value="0x325A" name="EGL_METADATA1_TYPE_NV"/>
+ <enum value="0x325B" name="EGL_METADATA2_TYPE_NV"/>
+ <enum value="0x325C" name="EGL_METADATA3_TYPE_NV"/>
+ <unused start="0x325D" end="0x325F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3260" end="0x326F" vendor="BCOM" comment="Reserved for Gary Sweet, Broadcom (Public bug 620)">
+ <unused start="0x3260" end="0x326F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3270" end="0x328F" vendor="ARM" comment="Reserved for Tom Cooksey (Bug 9963)">
+ <enum value="0x3270" name="EGL_LINUX_DMA_BUF_EXT"/>
+ <enum value="0x3271" name="EGL_LINUX_DRM_FOURCC_EXT"/>
+ <enum value="0x3272" name="EGL_DMA_BUF_PLANE0_FD_EXT"/>
+ <enum value="0x3273" name="EGL_DMA_BUF_PLANE0_OFFSET_EXT"/>
+ <enum value="0x3274" name="EGL_DMA_BUF_PLANE0_PITCH_EXT"/>
+ <enum value="0x3275" name="EGL_DMA_BUF_PLANE1_FD_EXT"/>
+ <enum value="0x3276" name="EGL_DMA_BUF_PLANE1_OFFSET_EXT"/>
+ <enum value="0x3277" name="EGL_DMA_BUF_PLANE1_PITCH_EXT"/>
+ <enum value="0x3278" name="EGL_DMA_BUF_PLANE2_FD_EXT"/>
+ <enum value="0x3279" name="EGL_DMA_BUF_PLANE2_OFFSET_EXT"/>
+ <enum value="0x327A" name="EGL_DMA_BUF_PLANE2_PITCH_EXT"/>
+ <enum value="0x327B" name="EGL_YUV_COLOR_SPACE_HINT_EXT"/>
+ <enum value="0x327C" name="EGL_SAMPLE_RANGE_HINT_EXT"/>
+ <enum value="0x327D" name="EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT"/>
+ <enum value="0x327E" name="EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT"/>
+ <enum value="0x327F" name="EGL_ITU_REC601_EXT"/>
+ <enum value="0x3280" name="EGL_ITU_REC709_EXT"/>
+ <enum value="0x3281" name="EGL_ITU_REC2020_EXT"/>
+ <enum value="0x3282" name="EGL_YUV_FULL_RANGE_EXT"/>
+ <enum value="0x3283" name="EGL_YUV_NARROW_RANGE_EXT"/>
+ <enum value="0x3284" name="EGL_YUV_CHROMA_SITING_0_EXT"/>
+ <enum value="0x3285" name="EGL_YUV_CHROMA_SITING_0_5_EXT"/>
+ <enum value="0x3286" name="EGL_DISCARD_SAMPLES_ARM"/>
+ <enum value="0x3287" name="EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM"/>
+ <enum value="0x3288" name="EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM"/>
+ <unused start="0x3289" end="0x3289"/>
+ <enum value="0x328A" name="EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM"/>
+ <unused start="0x328B" end="0x328D"/>
+ <enum value="0x328E" name="EGL_SURFACE_COMPRESSION_PLANE1_EXT"/>
+ <enum value="0x328F" name="EGL_SURFACE_COMPRESSION_PLANE2_EXT"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3290" end="0x329F" vendor="MESA" comment="Reserved for John K&#229;re Alsaker (Public bug 757)">
+ <unused start="0x3290" end="0x329F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x32A0" end="0x32AF" vendor="Samsung" comment="Reserved for Dongyeon Kim (Public bug 880)">
+ <enum value="0x32A0" name="EGL_NATIVE_BUFFER_TIZEN"/>
+ <enum value="0x32A1" name="EGL_NATIVE_SURFACE_TIZEN"/>
+ <unused start="0x32A2" end="0x32AF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x32B0" end="0x32BF" vendor="QCOM" comment="Reserved for Jeff Vigil (Bug 10663) - EGL_QCOM_lock_image2 spec">
+ <enum value="0x32B0" name="EGL_IMAGE_NUM_PLANES_QCOM"/>
+ <enum value="0x32B1" name="EGL_IMAGE_PLANE_PITCH_0_QCOM"/>
+ <enum value="0x32B2" name="EGL_IMAGE_PLANE_PITCH_1_QCOM"/>
+ <enum value="0x32B3" name="EGL_IMAGE_PLANE_PITCH_2_QCOM"/>
+ <enum value="0x32B4" name="EGL_IMAGE_PLANE_DEPTH_0_QCOM"/>
+ <enum value="0x32B5" name="EGL_IMAGE_PLANE_DEPTH_1_QCOM"/>
+ <enum value="0x32B6" name="EGL_IMAGE_PLANE_DEPTH_2_QCOM"/>
+ <enum value="0x32B7" name="EGL_IMAGE_PLANE_WIDTH_0_QCOM"/>
+ <enum value="0x32B8" name="EGL_IMAGE_PLANE_WIDTH_1_QCOM"/>
+ <enum value="0x32B9" name="EGL_IMAGE_PLANE_WIDTH_2_QCOM"/>
+ <enum value="0x32BA" name="EGL_IMAGE_PLANE_HEIGHT_0_QCOM"/>
+ <enum value="0x32BB" name="EGL_IMAGE_PLANE_HEIGHT_1_QCOM"/>
+ <enum value="0x32BC" name="EGL_IMAGE_PLANE_HEIGHT_2_QCOM"/>
+ <enum value="0x32BD" name="EGL_IMAGE_PLANE_POINTER_0_QCOM"/>
+ <enum value="0x32BE" name="EGL_IMAGE_PLANE_POINTER_1_QCOM"/>
+ <enum value="0x32BF" name="EGL_IMAGE_PLANE_POINTER_2_QCOM"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x32C0" end="0x32CF" vendor="Vivante" comment="Reserved for Yanjun Zhang (Bug 11498)">
+ <enum value="0x32C0" name="EGL_PROTECTED_CONTENT_EXT"/>
+ <unused start="0x32C1" end="0x32CF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x32D0" end="0x32EF" vendor="QCOM" comment="Reserved for Jeff Vigil (Bug 11735) - EGL_QCOM_gpu_perf spec">
+ <enum value="0x32D0" name="EGL_GPU_PERF_HINT_QCOM"/>
+ <enum value="0x32D1" name="EGL_HINT_PERSISTENT_QCOM"/>
+ <unused start="0x32D2" end="0x32EF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x32F0" end="0x32FF" vendor="BCOM" comment="Reserved for Gary Sweet, Broadcom (Bug 12870)">
+ <unused start="0x32F0" end="0x32FF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3300" end="0x331F" vendor="QCOM" comment="Reserved for Jeff Vigil (Bugs 12973,12849) - EGL_EXT_yuv_surface spec TBD">
+ <enum value="0x3300" name="EGL_YUV_BUFFER_EXT"/>
+ <enum value="0x3301" name="EGL_YUV_ORDER_EXT"/>
+ <enum value="0x3302" name="EGL_YUV_ORDER_YUV_EXT"/>
+ <enum value="0x3303" name="EGL_YUV_ORDER_YVU_EXT"/>
+ <enum value="0x3304" name="EGL_YUV_ORDER_YUYV_EXT"/>
+ <enum value="0x3305" name="EGL_YUV_ORDER_UYVY_EXT"/>
+ <enum value="0x3306" name="EGL_YUV_ORDER_YVYU_EXT"/>
+ <enum value="0x3307" name="EGL_YUV_ORDER_VYUY_EXT"/>
+ <enum value="0x3308" name="EGL_YUV_ORDER_AYUV_EXT"/>
+ <unused start="0x3309"/>
+ <enum value="0x330A" name="EGL_YUV_CSC_STANDARD_EXT"/>
+ <enum value="0x330B" name="EGL_YUV_CSC_STANDARD_601_EXT"/>
+ <enum value="0x330C" name="EGL_YUV_CSC_STANDARD_709_EXT"/>
+ <enum value="0x330D" name="EGL_YUV_CSC_STANDARD_2020_EXT"/>
+ <unused start="0x330E" end="0x3310"/>
+ <enum value="0x3311" name="EGL_YUV_NUMBER_OF_PLANES_EXT"/>
+ <enum value="0x3312" name="EGL_YUV_SUBSAMPLE_EXT"/>
+ <enum value="0x3313" name="EGL_YUV_SUBSAMPLE_4_2_0_EXT"/>
+ <enum value="0x3314" name="EGL_YUV_SUBSAMPLE_4_2_2_EXT"/>
+ <enum value="0x3315" name="EGL_YUV_SUBSAMPLE_4_4_4_EXT"/>
+ <unused start="0x3316"/>
+ <enum value="0x3317" name="EGL_YUV_DEPTH_RANGE_EXT"/>
+ <enum value="0x3318" name="EGL_YUV_DEPTH_RANGE_LIMITED_EXT"/>
+ <enum value="0x3319" name="EGL_YUV_DEPTH_RANGE_FULL_EXT"/>
+ <enum value="0x331A" name="EGL_YUV_PLANE_BPP_EXT"/>
+ <enum value="0x331B" name="EGL_YUV_PLANE_BPP_0_EXT"/>
+ <enum value="0x331C" name="EGL_YUV_PLANE_BPP_8_EXT"/>
+ <enum value="0x331D" name="EGL_YUV_PLANE_BPP_10_EXT"/>
+ <unused start="0x331E" end="0x331F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3320" end="0x339F" vendor="NV" comment="Reserved for James Jones (Bug 13209)">
+ <unused start="0x3320" end="0x3327"/>
+ <enum value="0x3328" name="EGL_PENDING_METADATA_NV"/>
+ <enum value="0x3329" name="EGL_PENDING_FRAME_NV"/>
+ <enum value="0x332A" name="EGL_STREAM_TIME_PENDING_NV"/>
+ <unused start="0x332B"/>
+ <enum value="0x332C" name="EGL_YUV_PLANE0_TEXTURE_UNIT_NV"/>
+ <enum value="0x332D" name="EGL_YUV_PLANE1_TEXTURE_UNIT_NV"/>
+ <enum value="0x332E" name="EGL_YUV_PLANE2_TEXTURE_UNIT_NV"/>
+ <unused start="0x332F" end="0x3333"/>
+ <enum value="0x3334" name="EGL_SUPPORT_RESET_NV"/>
+ <enum value="0x3335" name="EGL_SUPPORT_REUSE_NV"/>
+ <enum value="0x3336" name="EGL_STREAM_FIFO_SYNCHRONOUS_NV"/>
+ <enum value="0x3337" name="EGL_PRODUCER_MAX_FRAME_HINT_NV"/>
+ <enum value="0x3338" name="EGL_CONSUMER_MAX_FRAME_HINT_NV"/>
+ <enum value="0x3339" name="EGL_COLOR_COMPONENT_TYPE_EXT"/>
+ <enum value="0x333A" name="EGL_COLOR_COMPONENT_TYPE_FIXED_EXT"/>
+ <enum value="0x333B" name="EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT"/>
+ <enum value="0x333C" name="EGL_DRM_MASTER_FD_EXT"/>
+ <enum value="0x333D" name="EGL_OPENWF_DEVICE_EXT"/>
+ <unused start="0x333E"/>
+ <enum value="0x333F" name="EGL_GL_COLORSPACE_BT2020_LINEAR_EXT"/>
+ <enum value="0x3340" name="EGL_GL_COLORSPACE_BT2020_PQ_EXT"/>
+ <enum value="0x3341" name="EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT"/>
+ <enum value="0x3342" name="EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT"/>
+ <enum value="0x3343" name="EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT"/>
+ <enum value="0x3344" name="EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT"/>
+ <enum value="0x3345" name="EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT"/>
+ <enum value="0x3346" name="EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT"/>
+ <enum value="0x3347" name="EGL_SMPTE2086_WHITE_POINT_X_EXT"/>
+ <enum value="0x3348" name="EGL_SMPTE2086_WHITE_POINT_Y_EXT"/>
+ <enum value="0x3349" name="EGL_SMPTE2086_MAX_LUMINANCE_EXT"/>
+ <enum value="0x334A" name="EGL_SMPTE2086_MIN_LUMINANCE_EXT"/>
+ <enum value="50000" name="EGL_METADATA_SCALING_EXT"/>
+ <unused start="0x334B"/>
+ <enum value="0x334C" name="EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV"/>
+ <enum value="0x334D" name="EGL_STREAM_CROSS_OBJECT_NV"/>
+ <enum value="0x334E" name="EGL_STREAM_CROSS_DISPLAY_NV"/>
+ <enum value="0x334F" name="EGL_STREAM_CROSS_SYSTEM_NV"/>
+ <enum value="0x3350" name="EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT"/>
+ <enum value="0x3351" name="EGL_GL_COLORSPACE_SCRGB_EXT"/>
+ <enum value="0x3352" name="EGL_TRACK_REFERENCES_KHR"/>
+ <unused start="0x3353" end="0x3356"/>
+ <enum value="0x3357" name="EGL_CONTEXT_PRIORITY_REALTIME_NV"/>
+ <unused start="0x3358" end="0x335B"/>
+ <enum value="0x335C" name="EGL_DEVICE_UUID_EXT"/>
+ <enum value="0x335D" name="EGL_DRIVER_UUID_EXT"/>
+ <enum value="0x335E" name="EGL_DRIVER_NAME_EXT"/>
+ <enum value="0x335F" name="EGL_RENDERER_EXT"/>
+ <enum value="0x3360" name="EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT"/>
+ <enum value="0x3361" name="EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT"/>
+ <enum value="0x3362" name="EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT"/>
+ <enum value="0x3363" name="EGL_GL_COLORSPACE_DISPLAY_P3_EXT"/>
+ <enum value="0x3364" name="EGL_SYNC_CLIENT_EXT"/>
+ <enum value="0x3365" name="EGL_SYNC_CLIENT_SIGNAL_EXT"/>
+ <enum value="0x3366" name="EGL_STREAM_FRAME_ORIGIN_X_NV"/>
+ <enum value="0x3367" name="EGL_STREAM_FRAME_ORIGIN_Y_NV"/>
+ <enum value="0x3368" name="EGL_STREAM_FRAME_MAJOR_AXIS_NV"/>
+ <enum value="0x3369" name="EGL_CONSUMER_AUTO_ORIENTATION_NV"/>
+ <enum value="0x336A" name="EGL_PRODUCER_AUTO_ORIENTATION_NV"/>
+ <enum value="0x336B" name="EGL_LEFT_NV"/>
+ <enum value="0x336C" name="EGL_RIGHT_NV"/>
+ <enum value="0x336D" name="EGL_TOP_NV"/>
+ <enum value="0x336E" name="EGL_BOTTOM_NV"/>
+ <enum value="0x336F" name="EGL_X_AXIS_NV"/>
+ <enum value="0x3370" name="EGL_Y_AXIS_NV"/>
+ <enum value="0x3371" name="EGL_STREAM_DMA_NV"/>
+ <enum value="0x3372" name="EGL_STREAM_DMA_SERVER_NV"/>
+ <enum value="0x3373" name="EGL_STREAM_CONSUMER_IMAGE_NV"/>
+ <enum value="0x3374" name="EGL_STREAM_IMAGE_ADD_NV"/>
+ <enum value="0x3375" name="EGL_STREAM_IMAGE_REMOVE_NV"/>
+ <enum value="0x3376" name="EGL_STREAM_IMAGE_AVAILABLE_NV"/>
+ <enum value="0x3377" name="EGL_DRM_RENDER_NODE_FILE_EXT"/>
+ <unused start="0x3378" end="0x339F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x33A0" end="0x33AF" vendor="ANGLE" comment="Reserved for Shannon Woods (Bug 13175)">
+ <enum value="0x33A0" name="EGL_D3D9_DEVICE_ANGLE"/>
+ <enum value="0x33A1" name="EGL_D3D11_DEVICE_ANGLE"/>
+ <unused start="0x33A2" end="0x33AF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x33B0" end="0x33BF" vendor="KHR" comment="Reserved for EGL_KHR_debug / Jeff Vigil (Bug 13357)">
+ <enum value="0x33B0" name="EGL_OBJECT_THREAD_KHR"/>
+ <enum value="0x33B1" name="EGL_OBJECT_DISPLAY_KHR"/>
+ <enum value="0x33B2" name="EGL_OBJECT_CONTEXT_KHR"/>
+ <enum value="0x33B3" name="EGL_OBJECT_SURFACE_KHR"/>
+ <enum value="0x33B4" name="EGL_OBJECT_IMAGE_KHR"/>
+ <enum value="0x33B5" name="EGL_OBJECT_SYNC_KHR"/>
+ <enum value="0x33B6" name="EGL_OBJECT_STREAM_KHR"/>
+ <unused start="0x33B7"/>
+ <enum value="0x33B8" name="EGL_DEBUG_CALLBACK_KHR"/>
+ <enum value="0x33B9" name="EGL_DEBUG_MSG_CRITICAL_KHR"/>
+ <enum value="0x33BA" name="EGL_DEBUG_MSG_ERROR_KHR"/>
+ <enum value="0x33BB" name="EGL_DEBUG_MSG_WARN_KHR"/>
+ <enum value="0x33BC" name="EGL_DEBUG_MSG_INFO_KHR"/>
+ <unused start="0x33BD" end="0x33BF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x33C0" end="0x33DF" vendor="BCOM" comment="Reserved for Gary Sweet (Bug 12203)">
+ <unused start="0x33C0" end="0x33DF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x33E0" end="0x342F" vendor="QCOM" comment="EGL_QCOM_create_image and EGL_QCOM_lock_image2">
+ <enum value="0x33E0" name="EGL_FORMAT_FLAG_UBWC_QCOM"/>
+ <enum value="0x33E1" name="EGL_FORMAT_FLAG_MACROTILE_QCOM"/>
+ <enum value="0x33E2" name="EGL_FORMAT_ASTC_4X4_QCOM"/>
+ <enum value="0x33E3" name="EGL_FORMAT_ASTC_5X4_QCOM"/>
+ <enum value="0x33E4" name="EGL_FORMAT_ASTC_5X5_QCOM"/>
+ <enum value="0x33E5" name="EGL_FORMAT_ASTC_6X5_QCOM"/>
+ <enum value="0x33E6" name="EGL_FORMAT_ASTC_6X6_QCOM"/>
+ <enum value="0x33E7" name="EGL_FORMAT_ASTC_8X5_QCOM"/>
+ <enum value="0x33E8" name="EGL_FORMAT_ASTC_8X6_QCOM"/>
+ <enum value="0x33E9" name="EGL_FORMAT_ASTC_8X8_QCOM"/>
+ <enum value="0x33EA" name="EGL_FORMAT_ASTC_10X5_QCOM"/>
+ <enum value="0x33EB" name="EGL_FORMAT_ASTC_10X6_QCOM"/>
+ <enum value="0x33EC" name="EGL_FORMAT_ASTC_10X8_QCOM"/>
+ <enum value="0x33ED" name="EGL_FORMAT_ASTC_10X10_QCOM"/>
+ <enum value="0x33EE" name="EGL_FORMAT_ASTC_12X10_QCOM"/>
+ <enum value="0x33EF" name="EGL_FORMAT_ASTC_12X12_QCOM"/>
+ <enum value="0x3400" name="EGL_FORMAT_ASTC_4X4_SRGB_QCOM"/>
+ <enum value="0x3401" name="EGL_FORMAT_ASTC_5X4_SRGB_QCOM"/>
+ <enum value="0x3402" name="EGL_FORMAT_ASTC_5X5_SRGB_QCOM"/>
+ <enum value="0x3403" name="EGL_FORMAT_ASTC_6X5_SRGB_QCOM"/>
+ <enum value="0x3404" name="EGL_FORMAT_ASTC_6X6_SRGB_QCOM"/>
+ <enum value="0x3405" name="EGL_FORMAT_ASTC_8X5_SRGB_QCOM"/>
+ <enum value="0x3406" name="EGL_FORMAT_ASTC_8X6_SRGB_QCOM"/>
+ <enum value="0x3407" name="EGL_FORMAT_ASTC_8X8_SRGB_QCOM"/>
+ <enum value="0x3408" name="EGL_FORMAT_ASTC_10X5_SRGB_QCOM"/>
+ <enum value="0x3409" name="EGL_FORMAT_ASTC_10X6_SRGB_QCOM"/>
+ <enum value="0x340A" name="EGL_FORMAT_ASTC_10X8_SRGB_QCOM"/>
+ <enum value="0x340B" name="EGL_FORMAT_ASTC_10X10_SRGB_QCOM"/>
+ <enum value="0x340C" name="EGL_FORMAT_ASTC_12X10_SRGB_QCOM"/>
+ <enum value="0x340D" name="EGL_FORMAT_ASTC_12X12_SRGB_QCOM"/>
+ <enum value="0x340E" name="EGL_FORMAT_TP10_QCOM"/>
+ <enum value="0x340F" name="EGL_FORMAT_NV12_Y_QCOM"/>
+ <enum value="0x3410" name="EGL_FORMAT_NV12_UV_QCOM"/>
+ <enum value="0x3411" name="EGL_FORMAT_NV21_VU_QCOM"/>
+ <enum value="0x3412" name="EGL_FORMAT_NV12_4R_QCOM"/>
+ <enum value="0x3413" name="EGL_FORMAT_NV12_4R_Y_QCOM"/>
+ <enum value="0x3414" name="EGL_FORMAT_NV12_4R_UV_QCOM"/>
+ <enum value="0x3415" name="EGL_FORMAT_P010_QCOM"/>
+ <enum value="0x3416" name="EGL_FORMAT_P010_Y_QCOM"/>
+ <enum value="0x3417" name="EGL_FORMAT_P010_UV_QCOM"/>
+ <enum value="0x3418" name="EGL_FORMAT_TP10_Y_QCOM"/>
+ <enum value="0x3419" name="EGL_FORMAT_TP10_UV_QCOM"/>
+ <unused start="0x341A" end="0x341F"/>
+ <enum value="0x3420" name="EGL_GENERIC_TOKEN_1_QCOM"/>
+ <enum value="0x3421" name="EGL_GENERIC_TOKEN_2_QCOM"/>
+ <enum value="0x3422" name="EGL_GENERIC_TOKEN_3_QCOM"/>
+ <unused start="0x3423" end="0x342F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3430" end="0x343F" vendor="ANDROID" comment="Reserved for Pablo Ceballos (Bug 15874)">
+ <enum value="EGL_CAST(EGLnsecsANDROID,-2)" name="EGL_TIMESTAMP_PENDING_ANDROID"/>
+ <enum value="EGL_CAST(EGLnsecsANDROID,-1)" name="EGL_TIMESTAMP_INVALID_ANDROID"/>
+ <enum value="0x3430" name="EGL_TIMESTAMPS_ANDROID"/>
+ <enum value="0x3431" name="EGL_COMPOSITE_DEADLINE_ANDROID"/>
+ <enum value="0x3432" name="EGL_COMPOSITE_INTERVAL_ANDROID"/>
+ <enum value="0x3433" name="EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID"/>
+ <enum value="0x3434" name="EGL_REQUESTED_PRESENT_TIME_ANDROID"/>
+ <enum value="0x3435" name="EGL_RENDERING_COMPLETE_TIME_ANDROID"/>
+ <enum value="0x3436" name="EGL_COMPOSITION_LATCH_TIME_ANDROID"/>
+ <enum value="0x3437" name="EGL_FIRST_COMPOSITION_START_TIME_ANDROID"/>
+ <enum value="0x3438" name="EGL_LAST_COMPOSITION_START_TIME_ANDROID"/>
+ <enum value="0x3439" name="EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID"/>
+ <enum value="0x343A" name="EGL_DISPLAY_PRESENT_TIME_ANDROID"/>
+ <enum value="0x343B" name="EGL_DEQUEUE_READY_TIME_ANDROID"/>
+ <enum value="0x343C" name="EGL_READS_DONE_TIME_ANDROID"/>
+ <unused start="0x343D" end="0x343F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3440" end="0x344F" vendor="ANDROID" comment="Reserved for Kristian Kristensen (Bug 16033)">
+ <enum value="0x3440" name="EGL_DMA_BUF_PLANE3_FD_EXT"/>
+ <enum value="0x3441" name="EGL_DMA_BUF_PLANE3_OFFSET_EXT"/>
+ <enum value="0x3442" name="EGL_DMA_BUF_PLANE3_PITCH_EXT"/>
+ <enum value="0x3443" name="EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT"/>
+ <enum value="0x3444" name="EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT"/>
+ <enum value="0x3445" name="EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT"/>
+ <enum value="0x3446" name="EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT"/>
+ <enum value="0x3447" name="EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT"/>
+ <enum value="0x3448" name="EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT"/>
+ <enum value="0x3449" name="EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT"/>
+ <enum value="0x344A" name="EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT"/>
+ <unused start="0x344B" end="0x344F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3450" end="0x345F" vendor="ANGLE" comment="Reserved for Shannon Woods (Bug 16106)">
+ <unused start="0x3450" end="0x345F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3460" end="0x346F" vendor="COREAVI" comment="Reserved for Daniel Herring (Bug 16162)">
+ <enum value="0x3460" name="EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT"/>
+ <enum value="0x3461" name="EGL_EXTERNAL_REF_ID_EXT"/>
+ <enum value="0x3462" name="EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT"/>
+ <enum value="0x3463" name="EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT"/>
+ <enum value="0x3464" name="EGL_FRONT_BUFFER_EXT"/>
+ <unused start="0x3465" end="0x346F"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3470" end="0x347F" vendor="EXT" comment="Reserved for Daniel Stone (PR 14)">
+ <enum value="0x3470" name="EGL_IMPORT_SYNC_TYPE_EXT"/>
+ <enum value="0x3471" name="EGL_IMPORT_IMPLICIT_SYNC_EXT"/>
+ <enum value="0x3472" name="EGL_IMPORT_EXPLICIT_SYNC_EXT"/>
+ </enums>
+ <enums namespace="EGL" start="0x3480" end="0x348F" vendor="ANGLE" comment="Reserved for Courtney Goeltzenleuchter - ANGLE (gitlab EGL bug 7)">
+ <unused start="0x3480" end="0x348F"/>
+ </enums>
+ <enums namespace="EGL" start="0x3490" end="0x349F" vendor="EXT" comment="Reserved for Courtney Goeltzenleuchter - Android (gitlab EGL bug 69)">
+ <enum value="0x3490" name="EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT"/>
+ <unused start="0x3491" end="0x349F"/>
+ </enums>
+ <enums namespace="EGL" start="0x34A0" end="0x34AF" vendor="ANGLE" comment="Reserved for Ken Russell - ANGLE (via github pull request)">
+ <unused start="0x34A0" end="0x34AF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x34B0" end="0x34BF" vendor="ARM" comment="Reserved for Jan-Harald Fredriksen (via github pull request)">
+ <enum value="0x34B0" name="EGL_SURFACE_COMPRESSION_EXT"/>
+ <enum value="0x34B1" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT"/>
+ <enum value="0x34B2" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT"/>
+ <unused start="0x34B3" end="0x34B3"/>
+ <enum value="0x34B4" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT"/>
+ <enum value="0x34B5" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT"/>
+ <enum value="0x34B6" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT"/>
+ <enum value="0x34B7" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT"/>
+ <enum value="0x34B8" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT"/>
+ <enum value="0x34B9" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT"/>
+ <enum value="0x34BA" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT"/>
+ <enum value="0x34BB" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT"/>
+ <enum value="0x34BC" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT"/>
+ <enum value="0x34BD" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT"/>
+ <enum value="0x34BE" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT"/>
+ <enum value="0x34BF" name="EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x34C0" end="0x34CF" vendor="EXT" comment="Reserved for Robert Mader (PR 124)">
+ <enum value="0x34C0" name="EGL_CONFIG_SELECT_GROUP_EXT"/>
+ <unused start="0x34C1" end="0x34CF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x34D0" end="0x34DF" vendor="ANGLE" comment="Reserved for Peng Huang - ANGLE (via github pull request)">
+ <unused start="0x34D0" end="0x34DF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x34E0" end="0x34EF" vendor="Huawei" comment="Reserved for Openharmony OS (via github pull request)">
+ <unused start="0x34E0" end="0x34EF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x34F0" end="0x34FF" vendor="ANGLE" comment="Reserved for Ken Russell - ANGLE (via github pull request)">
+ <unused start="0x34F0" end="0x34FF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x3500" end="0x352F" vendor="COREAVI" comment="Reserved for Daniel Herring (via github pull request)">
+ <unused start="0x3500" end="0x352F"/>
+ </enums>
+
+<!-- Please remember that new enumerant allocations must be obtained by
+ request to the Khronos API registrar (see comments at the top of this
+ file) File requests in the Khronos Bugzilla, EGL project, Registry
+ component. Also note that some EGL enum values are shared with other
+ Khronos APIs, and new ranges should be allocated with such overlaps in
+ mind. -->
+
+<!-- Reservable for future use. To generate a new range, allocate multiples
+ of 16 starting at the lowest available point in this block. -->
+ <enums namespace="EGL" start="0x3530" end="0x3FFF" vendor="KHR" comment="Reserved for future use">
+ <unused start="0x3530" end="0x3FFF"/>
+ </enums>
+
+ <enums namespace="EGL" start="0x8F70" end="0x8F7F" vendor="HI" comment="For Mark Callow, Khronos bug 4055. Shared with GL.">
+ <enum value="0x8F70" name="EGL_COLOR_FORMAT_HI"/>
+ <enum value="0x8F71" name="EGL_COLOR_RGB_HI"/>
+ <enum value="0x8F72" name="EGL_COLOR_RGBA_HI"/>
+ <enum value="0x8F73" name="EGL_COLOR_ARGB_HI"/>
+ <enum value="0x8F74" name="EGL_CLIENT_PIXMAP_POINTER_HI"/>
+ </enums>
+
+ <!-- SECTION: EGL command definitions. -->
+ <commands namespace="EGL">
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglBindAPI</name></proto>
+ <param><ptype>EGLenum</ptype> <name>api</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglBindTexImage</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglChooseConfig</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ <param><ptype>EGLConfig</ptype> *<name>configs</name></param>
+ <param><ptype>EGLint</ptype> <name>config_size</name></param>
+ <param><ptype>EGLint</ptype> *<name>num_config</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglClientSignalSyncEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLint</ptype> <name>eglClientWaitSync</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
+ <param><ptype>EGLint</ptype> <name>flags</name></param>
+ <param><ptype>EGLTime</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLint</ptype> <name>eglClientWaitSyncKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
+ <param><ptype>EGLint</ptype> <name>flags</name></param>
+ <param><ptype>EGLTimeKHR</ptype> <name>timeout</name></param>
+ <alias name="eglClientWaitSync"/>
+ </command>
+ <command>
+ <proto><ptype>EGLint</ptype> <name>eglClientWaitSyncNV</name></proto>
+ <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
+ <param><ptype>EGLint</ptype> <name>flags</name></param>
+ <param><ptype>EGLTimeNV</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglCopyBuffers</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLNativePixmapType</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLContext</ptype> <name>eglCreateContext</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param><ptype>EGLContext</ptype> <name>share_context</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLImageKHR</ptype> <name>eglCreateDRMImageMESA</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSyncNV</ptype> <name>eglCreateFenceSyncNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLenum</ptype> <name>condition</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLImage</ptype> <name>eglCreateImage</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLContext</ptype> <name>ctx</name></param>
+ <param><ptype>EGLenum</ptype> <name>target</name></param>
+ <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLImageKHR</ptype> <name>eglCreateImageKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLContext</ptype> <name>ctx</name></param>
+ <param><ptype>EGLenum</ptype> <name>target</name></param>
+ <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLClientBuffer</ptype> <name>eglCreateNativeClientBufferANDROID</name></proto>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePbufferFromClientBuffer</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLenum</ptype> <name>buftype</name></param>
+ <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePbufferSurface</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePixmapSurface</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param><ptype>EGLNativePixmapType</ptype> <name>pixmap</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePixmapSurfaceHI</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param>struct <ptype>EGLClientPixmapHI</ptype> *<name>pixmap</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformPixmapSurface</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param>void *<name>native_pixmap</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformPixmapSurfaceEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param>void *<name>native_pixmap</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformWindowSurface</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param>void *<name>native_window</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformWindowSurfaceEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param>void *<name>native_window</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLStreamKHR</ptype> <name>eglCreateStreamFromFileDescriptorKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLNativeFileDescriptorKHR</ptype> <name>file_descriptor</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLStreamKHR</ptype> <name>eglCreateStreamKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLStreamKHR</ptype> <name>eglCreateStreamAttribKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSurface</ptype> <name>eglCreateStreamProducerSurfaceKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateStreamSyncNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLenum</ptype> <name>type</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSync</ptype> <name>eglCreateSync</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLenum</ptype> <name>type</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateSyncKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLenum</ptype> <name>type</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateSync64KHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLenum</ptype> <name>type</name></param>
+ <param>const <ptype>EGLAttribKHR</ptype> *<name>attrib_list</name></param>
+ <alias name="eglCreateSync"/>
+ </command>
+ <command>
+ <proto><ptype>EGLSurface</ptype> <name>eglCreateWindowSurface</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param><ptype>EGLNativeWindowType</ptype> <name>win</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLint</ptype> <name>eglDebugMessageControlKHR</name></proto>
+ <param><ptype>EGLDEBUGPROCKHR</ptype> <name>callback</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroyContext</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLContext</ptype> <name>ctx</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroyImage</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLImage</ptype> <name>image</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroyImageKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
+ <alias name="eglDestroyImage"/>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroyStreamKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroySurface</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroySync</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroySyncKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
+ <alias name="eglDestroySync"/>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglDestroySyncNV</name></proto>
+ <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLint</ptype> <name>eglDupNativeFenceFDANDROID</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglExportDMABUFImageMESA</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
+ <param>int *<name>fds</name></param>
+ <param><ptype>EGLint</ptype> *<name>strides</name></param>
+ <param><ptype>EGLint</ptype> *<name>offsets</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglExportDMABUFImageQueryMESA</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
+ <param>int *<name>fourcc</name></param>
+ <param>int *<name>num_planes</name></param>
+ <param><ptype>EGLuint64KHR</ptype> *<name>modifiers</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglExportDRMImageMESA</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
+ <param><ptype>EGLint</ptype> *<name>name</name></param>
+ <param><ptype>EGLint</ptype> *<name>handle</name></param>
+ <param><ptype>EGLint</ptype> *<name>stride</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglFenceNV</name></proto>
+ <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetConfigAttrib</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetConfigs</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> *<name>configs</name></param>
+ <param><ptype>EGLint</ptype> <name>config_size</name></param>
+ <param><ptype>EGLint</ptype> *<name>num_config</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLContext</ptype> <name>eglGetCurrentContext</name></proto>
+ </command>
+ <command>
+ <proto><ptype>EGLDisplay</ptype> <name>eglGetCurrentDisplay</name></proto>
+ </command>
+ <command>
+ <proto><ptype>EGLSurface</ptype> <name>eglGetCurrentSurface</name></proto>
+ <param><ptype>EGLint</ptype> <name>readdraw</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLDisplay</ptype> <name>eglGetDisplay</name></proto>
+ <param><ptype>EGLNativeDisplayType</ptype> <name>display_id</name></param>
+ </command>
+ <command>
+ <proto>char *<name>eglGetDisplayDriverConfig</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ </command>
+ <command>
+ <proto>const char *<name>eglGetDisplayDriverName</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLint</ptype> <name>eglGetError</name></proto>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetMscRateANGLE</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> *<name>numerator</name></param>
+ <param><ptype>EGLint</ptype> *<name>denominator</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLClientBuffer</ptype> <name>eglGetNativeClientBufferANDROID</name></proto>
+ <param>const struct <ptype>AHardwareBuffer</ptype> *<name>buffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetOutputLayersEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ <param><ptype>EGLOutputLayerEXT</ptype> *<name>layers</name></param>
+ <param><ptype>EGLint</ptype> <name>max_layers</name></param>
+ <param><ptype>EGLint</ptype> *<name>num_layers</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetOutputPortsEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ <param><ptype>EGLOutputPortEXT</ptype> *<name>ports</name></param>
+ <param><ptype>EGLint</ptype> <name>max_ports</name></param>
+ <param><ptype>EGLint</ptype> *<name>num_ports</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLDisplay</ptype> <name>eglGetPlatformDisplay</name></proto>
+ <param><ptype>EGLenum</ptype> <name>platform</name></param>
+ <param>void *<name>native_display</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLDisplay</ptype> <name>eglGetPlatformDisplayEXT</name></proto>
+ <param><ptype>EGLenum</ptype> <name>platform</name></param>
+ <param>void *<name>native_display</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>__eglMustCastToProperFunctionPointerType</ptype> <name>eglGetProcAddress</name></proto>
+ <param>const char *<name>procname</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLNativeFileDescriptorKHR</ptype> <name>eglGetStreamFileDescriptorKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttrib</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttribKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttribNV</name></proto>
+ <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLuint64NV</ptype> <name>eglGetSystemTimeFrequencyNV</name></proto>
+ </command>
+ <command>
+ <proto><ptype>EGLuint64NV</ptype> <name>eglGetSystemTimeNV</name></proto>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglInitialize</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLint</ptype> *<name>major</name></param>
+ <param><ptype>EGLint</ptype> *<name>minor</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLint</ptype> <name>eglLabelObjectKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>display</name></param>
+ <param><ptype>EGLenum</ptype> <name>objectType</name></param>
+ <param><ptype>EGLObjectKHR</ptype> <name>object</name></param>
+ <param><ptype>EGLLabelKHR</ptype> <name>label</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglLockSurfaceKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglMakeCurrent</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>draw</name></param>
+ <param><ptype>EGLSurface</ptype> <name>read</name></param>
+ <param><ptype>EGLContext</ptype> <name>ctx</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglOutputLayerAttribEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttrib</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglOutputPortAttribEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttrib</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglPostSubBufferNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>x</name></param>
+ <param><ptype>EGLint</ptype> <name>y</name></param>
+ <param><ptype>EGLint</ptype> <name>width</name></param>
+ <param><ptype>EGLint</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglPresentationTimeANDROID</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLnsecsANDROID</ptype> <name>time</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetCompositorTimingSupportedANDROID</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetCompositorTimingANDROID</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>numTimestamps</name></param>
+ <param> const <ptype>EGLint</ptype> *<name>names</name></param>
+ <param><ptype>EGLnsecsANDROID</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetNextFrameIdANDROID</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLuint64KHR</ptype> *<name>frameId</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetFrameTimestampSupportedANDROID</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>timestamp</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglGetFrameTimestampsANDROID</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLuint64KHR</ptype> <name>frameId</name></param>
+ <param><ptype>EGLint</ptype> <name>numTimestamps</name></param>
+ <param> const <ptype>EGLint</ptype> *<name>timestamps</name></param>
+ <param><ptype>EGLnsecsANDROID</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLenum</ptype> <name>eglQueryAPI</name></proto>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryContext</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLContext</ptype> <name>ctx</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDebugKHR</name></proto>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDeviceAttribEXT</name></proto>
+ <param><ptype>EGLDeviceEXT</ptype> <name>device</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>const char *<name>eglQueryDeviceStringEXT</name></proto>
+ <param><ptype>EGLDeviceEXT</ptype> <name>device</name></param>
+ <param><ptype>EGLint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDevicesEXT</name></proto>
+ <param><ptype>EGLint</ptype> <name>max_devices</name></param>
+ <param><ptype>EGLDeviceEXT</ptype> *<name>devices</name></param>
+ <param><ptype>EGLint</ptype> *<name>num_devices</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDisplayAttribEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
+ <alias name="eglQueryDisplayAttribKHR"/>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDisplayAttribKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLint</ptype> <name>name</name></param>
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDisplayAttribNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
+ <alias name="eglQueryDisplayAttribKHR"/>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDmaBufFormatsEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLint</ptype> <name>max_formats</name></param>
+ <param><ptype>EGLint</ptype> *<name>formats</name></param>
+ <param><ptype>EGLint</ptype> *<name>num_formats</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDmaBufModifiersEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLint</ptype> <name>format</name></param>
+ <param><ptype>EGLint</ptype> <name>max_modifiers</name></param>
+ <param><ptype>EGLuint64KHR</ptype> *<name>modifiers</name></param>
+ <param><ptype>EGLBoolean</ptype> *<name>external_only</name></param>
+ <param><ptype>EGLint</ptype> *<name>num_modifiers</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativeDisplayNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLNativeDisplayType</ptype> *<name>display_id</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativePixmapNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surf</name></param>
+ <param><ptype>EGLNativePixmapType</ptype> *<name>pixmap</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativeWindowNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surf</name></param>
+ <param><ptype>EGLNativeWindowType</ptype> *<name>window</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryOutputLayerAttribEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>const char *<name>eglQueryOutputLayerStringEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
+ <param><ptype>EGLint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryOutputPortAttribEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>const char *<name>eglQueryOutputPortStringEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
+ <param><ptype>EGLint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLenum</ptype> <name>attribute</name></param>
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamAttribKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLenum</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamMetadataNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLenum</ptype> <name>name</name></param>
+ <param><ptype>EGLint</ptype> <name>n</name></param>
+ <param><ptype>EGLint</ptype> <name>offset</name></param>
+ <param><ptype>EGLint</ptype> <name>size</name></param>
+ <param>void *<name>data</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamTimeKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLenum</ptype> <name>attribute</name></param>
+ <param><ptype>EGLTimeKHR</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamu64KHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLenum</ptype> <name>attribute</name></param>
+ <param><ptype>EGLuint64KHR</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>const char *<name>eglQueryString</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQuerySupportedCompressionRatesEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLConfig</ptype> <name>config</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ <param><ptype>EGLint</ptype> *<name>rates</name></param>
+ <param><ptype>EGLint</ptype> <name>rate_size</name></param>
+ <param><ptype>EGLint</ptype> *<name>num_rates</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurface</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurface64KHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttribKHR</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurfacePointerANGLE</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param>void **<name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglReleaseTexImage</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglReleaseThread</name></proto>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglResetStreamNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto>void <name>eglSetBlobCacheFuncsANDROID</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSetBlobFuncANDROID</ptype> <name>set</name></param>
+ <param><ptype>EGLGetBlobFuncANDROID</ptype> <name>get</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSetDamageRegionKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> *<name>rects</name></param>
+ <param><ptype>EGLint</ptype> <name>n_rects</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSetStreamAttribKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLenum</ptype> <name>attribute</name></param>
+ <param><ptype>EGLAttrib</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSetStreamMetadataNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLint</ptype> <name>n</name></param>
+ <param><ptype>EGLint</ptype> <name>offset</name></param>
+ <param><ptype>EGLint</ptype> <name>size</name></param>
+ <param>const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSignalSyncKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
+ <param><ptype>EGLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSignalSyncNV</name></proto>
+ <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
+ <param><ptype>EGLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamAttribKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLenum</ptype> <name>attribute</name></param>
+ <param><ptype>EGLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerAcquireKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerAcquireAttribKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerGLTextureExternalKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerGLTextureExternalAttribsNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerOutputEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerReleaseKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerReleaseAttribKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamFlushNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSurfaceAttrib</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffers</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersWithDamageEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>rects</name></param>
+ <param><ptype>EGLint</ptype> <name>n_rects</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersWithDamageKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>rects</name></param>
+ <param><ptype>EGLint</ptype> <name>n_rects</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersRegionNOK</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>numRects</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>rects</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersRegion2NOK</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ <param><ptype>EGLint</ptype> <name>numRects</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>rects</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglSwapInterval</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLint</ptype> <name>interval</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglTerminate</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglUnlockSurfaceKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSurface</ptype> <name>surface</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglUnsignalSyncEXT</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglWaitClient</name></proto>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglWaitGL</name></proto>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglWaitNative</name></proto>
+ <param><ptype>EGLint</ptype> <name>engine</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglWaitSync</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
+ <param><ptype>EGLint</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLint</ptype> <name>eglWaitSyncKHR</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
+ <param><ptype>EGLint</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglCompositorSetContextListEXT</name></proto>
+ <param>const <ptype>EGLint</ptype> *<name>external_ref_ids</name></param>
+ <param><ptype>EGLint</ptype> <name>num_entries</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglCompositorSetContextAttributesEXT</name></proto>
+ <param><ptype>EGLint</ptype> <name>external_ref_id</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>context_attributes</name></param>
+ <param><ptype>EGLint</ptype> <name>num_entries</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglCompositorSetWindowListEXT</name></proto>
+ <param><ptype>EGLint</ptype> <name>external_ref_id</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>external_win_ids</name></param>
+ <param><ptype>EGLint</ptype> <name>num_entries</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglCompositorSetWindowAttributesEXT</name></proto>
+ <param><ptype>EGLint</ptype> <name>external_win_id</name></param>
+ <param>const <ptype>EGLint</ptype> *<name>window_attributes</name></param>
+ <param><ptype>EGLint</ptype> <name>num_entries</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglCompositorBindTexWindowEXT</name></proto>
+ <param><ptype>EGLint</ptype> <name>external_win_id</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglCompositorSetSizeEXT</name></proto>
+ <param><ptype>EGLint</ptype> <name>external_win_id</name></param>
+ <param><ptype>EGLint</ptype> <name>width</name></param>
+ <param><ptype>EGLint</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglCompositorSwapPolicyEXT</name></proto>
+ <param><ptype>EGLint</ptype> <name>external_win_id</name></param>
+ <param><ptype>EGLint</ptype> <name>policy</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglBindWaylandDisplayWL</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param>struct <ptype>wl_display</ptype> *<name>display</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglUnbindWaylandDisplayWL</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param>struct <ptype>wl_display</ptype> *<name>display</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryWaylandBufferWL</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param>struct <ptype>wl_resource</ptype> *<name>buffer</name></param>
+ <param><ptype>EGLint</ptype> <name>attribute</name></param>
+ <param><ptype>EGLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>struct <ptype>wl_buffer</ptype> *<name>eglCreateWaylandBufferFromImageWL</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamImageConsumerConnectNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLint</ptype> <name>num_modifiers</name></param>
+ <param>const <ptype>EGLuint64KHR</ptype> *<name>modifiers</name></param>
+ <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLint</ptype> <name>eglQueryStreamConsumerEventNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLTime</ptype> <name>timeout</name></param>
+ <param><ptype>EGLenum</ptype> *<name>event</name></param>
+ <param><ptype>EGLAttrib</ptype> *<name>aux</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamAcquireImageNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLImage</ptype> *<name>pImage</name></param>
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglStreamReleaseImageNV</name></proto>
+ <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
+ <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
+ <param><ptype>EGLImage</ptype> <name>image</name></param>
+ <param><ptype>EGLSync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto><ptype>EGLBoolean</ptype> <name>eglQueryDeviceBinaryEXT</name></proto>
+ <param><ptype>EGLDeviceEXT</ptype> <name>device</name></param>
+ <param><ptype>EGLint</ptype> <name>name</name></param>
+ <param><ptype>EGLint</ptype> <name>max_size</name></param>
+ <param>void *<name>value</name></param>
+ <param>EGLint *<name>size</name></param>
+ </command>
+ </commands>
+
+ <!-- SECTION: EGL API interface definitions. -->
+ <feature api="egl" name="EGL_VERSION_1_0" number="1.0">
+ <require>
+ <enum name="EGL_ALPHA_SIZE"/>
+ <enum name="EGL_BAD_ACCESS"/>
+ <enum name="EGL_BAD_ALLOC"/>
+ <enum name="EGL_BAD_ATTRIBUTE"/>
+ <enum name="EGL_BAD_CONFIG"/>
+ <enum name="EGL_BAD_CONTEXT"/>
+ <enum name="EGL_BAD_CURRENT_SURFACE"/>
+ <enum name="EGL_BAD_DISPLAY"/>
+ <enum name="EGL_BAD_MATCH"/>
+ <enum name="EGL_BAD_NATIVE_PIXMAP"/>
+ <enum name="EGL_BAD_NATIVE_WINDOW"/>
+ <enum name="EGL_BAD_PARAMETER"/>
+ <enum name="EGL_BAD_SURFACE"/>
+ <enum name="EGL_BLUE_SIZE"/>
+ <enum name="EGL_BUFFER_SIZE"/>
+ <enum name="EGL_CONFIG_CAVEAT"/>
+ <enum name="EGL_CONFIG_ID"/>
+ <enum name="EGL_CORE_NATIVE_ENGINE"/>
+ <enum name="EGL_DEPTH_SIZE"/>
+ <enum name="EGL_DONT_CARE"/>
+ <enum name="EGL_DRAW"/>
+ <enum name="EGL_EXTENSIONS"/>
+ <enum name="EGL_FALSE"/>
+ <enum name="EGL_GREEN_SIZE"/>
+ <enum name="EGL_HEIGHT"/>
+ <enum name="EGL_LARGEST_PBUFFER"/>
+ <enum name="EGL_LEVEL"/>
+ <enum name="EGL_MAX_PBUFFER_HEIGHT"/>
+ <enum name="EGL_MAX_PBUFFER_PIXELS"/>
+ <enum name="EGL_MAX_PBUFFER_WIDTH"/>
+ <enum name="EGL_NATIVE_RENDERABLE"/>
+ <enum name="EGL_NATIVE_VISUAL_ID"/>
+ <enum name="EGL_NATIVE_VISUAL_TYPE"/>
+ <enum name="EGL_NONE"/>
+ <enum name="EGL_NON_CONFORMANT_CONFIG"/>
+ <enum name="EGL_NOT_INITIALIZED"/>
+ <enum name="EGL_NO_CONTEXT"/>
+ <enum name="EGL_NO_DISPLAY"/>
+ <enum name="EGL_NO_SURFACE"/>
+ <enum name="EGL_PBUFFER_BIT"/>
+ <enum name="EGL_PIXMAP_BIT"/>
+ <enum name="EGL_READ"/>
+ <enum name="EGL_RED_SIZE"/>
+ <enum name="EGL_SAMPLES"/>
+ <enum name="EGL_SAMPLE_BUFFERS"/>
+ <enum name="EGL_SLOW_CONFIG"/>
+ <enum name="EGL_STENCIL_SIZE"/>
+ <enum name="EGL_SUCCESS"/>
+ <enum name="EGL_SURFACE_TYPE"/>
+ <enum name="EGL_TRANSPARENT_BLUE_VALUE"/>
+ <enum name="EGL_TRANSPARENT_GREEN_VALUE"/>
+ <enum name="EGL_TRANSPARENT_RED_VALUE"/>
+ <enum name="EGL_TRANSPARENT_RGB"/>
+ <enum name="EGL_TRANSPARENT_TYPE"/>
+ <enum name="EGL_TRUE"/>
+ <enum name="EGL_VENDOR"/>
+ <enum name="EGL_VERSION"/>
+ <enum name="EGL_WIDTH"/>
+ <enum name="EGL_WINDOW_BIT"/>
+ <command name="eglChooseConfig"/>
+ <command name="eglCopyBuffers"/>
+ <command name="eglCreateContext"/>
+ <command name="eglCreatePbufferSurface"/>
+ <command name="eglCreatePixmapSurface"/>
+ <command name="eglCreateWindowSurface"/>
+ <command name="eglDestroyContext"/>
+ <command name="eglDestroySurface"/>
+ <command name="eglGetConfigAttrib"/>
+ <command name="eglGetConfigs"/>
+ <command name="eglGetCurrentDisplay"/>
+ <command name="eglGetCurrentSurface"/>
+ <command name="eglGetDisplay"/>
+ <command name="eglGetError"/>
+ <command name="eglGetProcAddress"/>
+ <command name="eglInitialize"/>
+ <command name="eglMakeCurrent"/>
+ <command name="eglQueryContext"/>
+ <command name="eglQueryString"/>
+ <command name="eglQuerySurface"/>
+ <command name="eglSwapBuffers"/>
+ <command name="eglTerminate"/>
+ <command name="eglWaitGL"/>
+ <command name="eglWaitNative"/>
+ </require>
+ </feature>
+ <feature api="egl" name="EGL_VERSION_1_1" number="1.1">
+ <require>
+ <enum name="EGL_BACK_BUFFER"/>
+ <enum name="EGL_BIND_TO_TEXTURE_RGB"/>
+ <enum name="EGL_BIND_TO_TEXTURE_RGBA"/>
+ <enum name="EGL_CONTEXT_LOST"/>
+ <enum name="EGL_MIN_SWAP_INTERVAL"/>
+ <enum name="EGL_MAX_SWAP_INTERVAL"/>
+ <enum name="EGL_MIPMAP_TEXTURE"/>
+ <enum name="EGL_MIPMAP_LEVEL"/>
+ <enum name="EGL_NO_TEXTURE"/>
+ <enum name="EGL_TEXTURE_2D"/>
+ <enum name="EGL_TEXTURE_FORMAT"/>
+ <enum name="EGL_TEXTURE_RGB"/>
+ <enum name="EGL_TEXTURE_RGBA"/>
+ <enum name="EGL_TEXTURE_TARGET"/>
+ <command name="eglBindTexImage"/>
+ <command name="eglReleaseTexImage"/>
+ <command name="eglSurfaceAttrib"/>
+ <command name="eglSwapInterval"/>
+ </require>
+ </feature>
+ <feature api="egl" name="EGL_VERSION_1_2" number="1.2">
+ <require>
+ <enum name="EGL_ALPHA_FORMAT"/>
+ <enum name="EGL_ALPHA_FORMAT_NONPRE"/>
+ <enum name="EGL_ALPHA_FORMAT_PRE"/>
+ <enum name="EGL_ALPHA_MASK_SIZE"/>
+ <enum name="EGL_BUFFER_PRESERVED"/>
+ <enum name="EGL_BUFFER_DESTROYED"/>
+ <enum name="EGL_CLIENT_APIS"/>
+ <enum name="EGL_COLORSPACE"/>
+ <enum name="EGL_COLORSPACE_sRGB"/>
+ <enum name="EGL_COLORSPACE_LINEAR"/>
+ <enum name="EGL_COLOR_BUFFER_TYPE"/>
+ <enum name="EGL_CONTEXT_CLIENT_TYPE"/>
+ <enum name="EGL_DISPLAY_SCALING"/>
+ <enum name="EGL_HORIZONTAL_RESOLUTION"/>
+ <enum name="EGL_LUMINANCE_BUFFER"/>
+ <enum name="EGL_LUMINANCE_SIZE"/>
+ <enum name="EGL_OPENGL_ES_BIT"/>
+ <enum name="EGL_OPENVG_BIT"/>
+ <enum name="EGL_OPENGL_ES_API"/>
+ <enum name="EGL_OPENVG_API"/>
+ <enum name="EGL_OPENVG_IMAGE"/>
+ <enum name="EGL_PIXEL_ASPECT_RATIO"/>
+ <enum name="EGL_RENDERABLE_TYPE"/>
+ <enum name="EGL_RENDER_BUFFER"/>
+ <enum name="EGL_RGB_BUFFER"/>
+ <enum name="EGL_SINGLE_BUFFER"/>
+ <enum name="EGL_SWAP_BEHAVIOR"/>
+ <enum name="EGL_UNKNOWN"/>
+ <enum name="EGL_VERTICAL_RESOLUTION"/>
+ <command name="eglBindAPI"/>
+ <command name="eglQueryAPI"/>
+ <command name="eglCreatePbufferFromClientBuffer"/>
+ <command name="eglReleaseThread"/>
+ <command name="eglWaitClient"/>
+ </require>
+ </feature>
+ <feature api="egl" name="EGL_VERSION_1_3" number="1.3">
+ <require>
+ <enum name="EGL_CONFORMANT"/>
+ <enum name="EGL_CONTEXT_CLIENT_VERSION"/>
+ <enum name="EGL_MATCH_NATIVE_PIXMAP"/>
+ <enum name="EGL_OPENGL_ES2_BIT"/>
+ <enum name="EGL_VG_ALPHA_FORMAT"/>
+ <enum name="EGL_VG_ALPHA_FORMAT_NONPRE"/>
+ <enum name="EGL_VG_ALPHA_FORMAT_PRE"/>
+ <enum name="EGL_VG_ALPHA_FORMAT_PRE_BIT"/>
+ <enum name="EGL_VG_COLORSPACE"/>
+ <enum name="EGL_VG_COLORSPACE_sRGB"/>
+ <enum name="EGL_VG_COLORSPACE_LINEAR"/>
+ <enum name="EGL_VG_COLORSPACE_LINEAR_BIT"/>
+ </require>
+ </feature>
+ <feature api="egl" name="EGL_VERSION_1_4" number="1.4">
+ <require>
+ <enum name="EGL_DEFAULT_DISPLAY"/>
+ <enum name="EGL_MULTISAMPLE_RESOLVE_BOX_BIT"/>
+ <enum name="EGL_MULTISAMPLE_RESOLVE"/>
+ <enum name="EGL_MULTISAMPLE_RESOLVE_DEFAULT"/>
+ <enum name="EGL_MULTISAMPLE_RESOLVE_BOX"/>
+ <enum name="EGL_OPENGL_API"/>
+ <enum name="EGL_OPENGL_BIT"/>
+ <enum name="EGL_SWAP_BEHAVIOR_PRESERVED_BIT"/>
+ <command name="eglGetCurrentContext"/>
+ </require>
+ </feature>
+ <feature api="egl" name="EGL_VERSION_1_5" number="1.5">
+ <require comment="EGL_KHR_create_context features">
+ <enum name="EGL_CONTEXT_MAJOR_VERSION"/>
+ <enum name="EGL_CONTEXT_MINOR_VERSION"/>
+ <enum name="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
+ <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
+ <enum name="EGL_NO_RESET_NOTIFICATION"/>
+ <enum name="EGL_LOSE_CONTEXT_ON_RESET"/>
+ <enum name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
+ <enum name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
+ <enum name="EGL_CONTEXT_OPENGL_DEBUG"/>
+ <enum name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE"/>
+ <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
+ <enum name="EGL_OPENGL_ES3_BIT"/>
+ </require>
+ <require comment="EGL_EXT_create_context_robustness">
+ <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
+ <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
+ </require>
+ <require comment="EGL_EXT_client_extensions"/>
+ <require comment="EGL_KHR_cl_event2">
+ <enum name="EGL_CL_EVENT_HANDLE"/>
+ <enum name="EGL_SYNC_CL_EVENT"/>
+ <enum name="EGL_SYNC_CL_EVENT_COMPLETE"/>
+ </require>
+ <require comment="EGL_KHR_fence_sync">
+ <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
+ <enum name="EGL_SYNC_TYPE"/>
+ <enum name="EGL_SYNC_STATUS"/>
+ <enum name="EGL_SYNC_CONDITION"/>
+ <enum name="EGL_SIGNALED"/>
+ <enum name="EGL_UNSIGNALED"/>
+ <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum name="EGL_FOREVER"/>
+ <enum name="EGL_TIMEOUT_EXPIRED"/>
+ <enum name="EGL_CONDITION_SATISFIED"/>
+ <enum name="EGL_NO_SYNC"/>
+ <enum name="EGL_SYNC_FENCE"/>
+ <command name="eglCreateSync"/>
+ <command name="eglDestroySync"/>
+ <command name="eglClientWaitSync"/>
+ <command name="eglGetSyncAttrib"/>
+ </require>
+ <require comment="EGL_KHR_get_all_proc_addresses"/>
+ <require comment="EGL_KHR_client_get_all_proc_addresses"/>
+ <require comment="EGL_KHR_gl_colorspace">
+ <enum name="EGL_GL_COLORSPACE"/>
+ <enum name="EGL_GL_COLORSPACE_SRGB"/>
+ <enum name="EGL_GL_COLORSPACE_LINEAR"/>
+ </require>
+ <require comment="EGL_KHR_gl_renderbuffer_image">
+ <enum name="EGL_GL_RENDERBUFFER"/>
+ </require>
+ <require comment="EGL_KHR_gl_texture_2D_image">
+ <enum name="EGL_GL_TEXTURE_2D"/>
+ <enum name="EGL_GL_TEXTURE_LEVEL"/>
+ </require>
+ <require comment="EGL_KHR_gl_texture_3D_image">
+ <enum name="EGL_GL_TEXTURE_3D"/>
+ <enum name="EGL_GL_TEXTURE_ZOFFSET"/>
+ </require>
+ <require comment="EGL_KHR_gl_texture_cubemap_image">
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ </require>
+ <require comment="EGL_KHR_image_base">
+ <enum name="EGL_IMAGE_PRESERVED"/>
+ <enum name="EGL_NO_IMAGE"/>
+ <command name="eglCreateImage"/>
+ <command name="eglDestroyImage"/>
+ </require>
+ <require comment="EGL_EXT_platform_base">
+ <command name="eglGetPlatformDisplay"/>
+ <command name="eglCreatePlatformWindowSurface"/>
+ <command name="eglCreatePlatformPixmapSurface"/>
+ </require>
+ <require comment="EGL_KHR_surfaceless_context - just relaxes an error condition"/>
+ <require comment="EGL_KHR_wait_sync">
+ <command name="eglWaitSync"/>
+ </require>
+ </feature>
+
+ <!-- SECTION: EGL extension interface definitions -->
+ <extensions>
+ <extension name="EGL_ANDROID_blob_cache" supported="egl">
+ <require>
+ <command name="eglSetBlobCacheFuncsANDROID"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANDROID_create_native_client_buffer" supported="egl">
+ <require>
+ <enum name="EGL_NATIVE_BUFFER_USAGE_ANDROID"/>
+ <enum name="EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID"/>
+ <enum name="EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID"/>
+ <enum name="EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID"/>
+ <command name="eglCreateNativeClientBufferANDROID"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANDROID_framebuffer_target" supported="egl">
+ <require>
+ <enum name="EGL_FRAMEBUFFER_TARGET_ANDROID"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANDROID_get_native_client_buffer" supported="egl">
+ <require>
+ <command name="eglGetNativeClientBufferANDROID"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANDROID_front_buffer_auto_refresh" supported="egl">
+ <require>
+ <enum name="EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANDROID_image_native_buffer" supported="egl">
+ <require>
+ <enum name="EGL_NATIVE_BUFFER_ANDROID"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANDROID_native_fence_sync" supported="egl">
+ <require>
+ <enum name="EGL_SYNC_NATIVE_FENCE_ANDROID"/>
+ <enum name="EGL_SYNC_NATIVE_FENCE_FD_ANDROID"/>
+ <enum name="EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID"/>
+ <enum name="EGL_NO_NATIVE_FENCE_FD_ANDROID"/>
+ <command name="eglDupNativeFenceFDANDROID"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANDROID_presentation_time" supported="egl">
+ <require>
+ <command name="eglPresentationTimeANDROID"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANDROID_get_frame_timestamps" supported="egl">
+ <require>
+ <enum name="EGL_TIMESTAMP_PENDING_ANDROID"/>
+ <enum name="EGL_TIMESTAMP_INVALID_ANDROID"/>
+ <enum name="EGL_TIMESTAMPS_ANDROID"/>
+ <enum name="EGL_COMPOSITE_DEADLINE_ANDROID"/>
+ <enum name="EGL_COMPOSITE_INTERVAL_ANDROID"/>
+ <enum name="EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID"/>
+ <enum name="EGL_REQUESTED_PRESENT_TIME_ANDROID"/>
+ <enum name="EGL_RENDERING_COMPLETE_TIME_ANDROID"/>
+ <enum name="EGL_COMPOSITION_LATCH_TIME_ANDROID"/>
+ <enum name="EGL_FIRST_COMPOSITION_START_TIME_ANDROID"/>
+ <enum name="EGL_LAST_COMPOSITION_START_TIME_ANDROID"/>
+ <enum name="EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID"/>
+ <enum name="EGL_DISPLAY_PRESENT_TIME_ANDROID"/>
+ <enum name="EGL_DEQUEUE_READY_TIME_ANDROID"/>
+ <enum name="EGL_READS_DONE_TIME_ANDROID"/>
+ <command name="eglGetCompositorTimingSupportedANDROID"/>
+ <command name="eglGetCompositorTimingANDROID"/>
+ <command name="eglGetNextFrameIdANDROID"/>
+ <command name="eglGetFrameTimestampSupportedANDROID"/>
+ <command name="eglGetFrameTimestampsANDROID"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANDROID_recordable" supported="egl">
+ <require>
+ <enum name="EGL_RECORDABLE_ANDROID"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANDROID_GLES_layers" supported="egl"/>
+ <extension name="EGL_ANGLE_d3d_share_handle_client_buffer" supported="egl">
+ <require>
+ <enum name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANGLE_device_d3d" supported="egl">
+ <require>
+ <enum name="EGL_D3D9_DEVICE_ANGLE"/>
+ <enum name="EGL_D3D11_DEVICE_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANGLE_query_surface_pointer" supported="egl">
+ <require>
+ <command name="eglQuerySurfacePointerANGLE"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANGLE_surface_d3d_texture_2d_share_handle" supported="egl">
+ <require>
+ <enum name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANGLE_sync_control_rate" supported="egl">
+ <require>
+ <command name="eglGetMscRateANGLE"/>
+ </require>
+ </extension>
+ <extension name="EGL_ANGLE_window_fixed_size" supported="egl">
+ <require>
+ <enum name="EGL_FIXED_SIZE_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="EGL_ARM_implicit_external_sync" supported="egl">
+ <require>
+ <enum name="EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM"/>
+ </require>
+ </extension>
+ <extension name="EGL_ARM_pixmap_multisample_discard" supported="egl">
+ <require>
+ <enum name="EGL_DISCARD_SAMPLES_ARM"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_buffer_age" supported="egl">
+ <require>
+ <enum name="EGL_BUFFER_AGE_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_client_extensions" supported="egl"/>
+ <extension name="EGL_EXT_client_sync" supported="egl">
+ <require>
+ <enum name="EGL_SYNC_CLIENT_EXT"/>
+ <enum name="EGL_SYNC_CLIENT_SIGNAL_EXT"/>
+ <command name="eglClientSignalSyncEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_config_select_group" supported="egl">
+ <require>
+ <enum name="EGL_CONFIG_SELECT_GROUP_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_create_context_robustness" supported="egl">
+ <require>
+ <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT"/>
+ <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT"/>
+ <enum name="EGL_NO_RESET_NOTIFICATION_EXT"/>
+ <enum name="EGL_LOSE_CONTEXT_ON_RESET_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_device_base" supported="egl">
+ <require>
+ <enum name="EGL_NO_DEVICE_EXT"/>
+ <enum name="EGL_BAD_DEVICE_EXT"/>
+ <enum name="EGL_DEVICE_EXT"/>
+ <command name="eglQueryDeviceAttribEXT"/>
+ <command name="eglQueryDeviceStringEXT"/>
+ <command name="eglQueryDevicesEXT"/>
+ <command name="eglQueryDisplayAttribEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_device_drm" supported="egl">
+ <require>
+ <enum name="EGL_DRM_DEVICE_FILE_EXT"/>
+ <enum name="EGL_DRM_MASTER_FD_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_device_enumeration" supported="egl">
+ <require>
+ <command name="eglQueryDevicesEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_device_openwf" supported="egl">
+ <require>
+ <enum name="EGL_OPENWF_DEVICE_ID_EXT"/>
+ <enum name="EGL_OPENWF_DEVICE_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_device_query" supported="egl">
+ <require>
+ <enum name="EGL_NO_DEVICE_EXT"/>
+ <enum name="EGL_BAD_DEVICE_EXT"/>
+ <enum name="EGL_DEVICE_EXT"/>
+ <command name="eglQueryDeviceAttribEXT"/>
+ <command name="eglQueryDeviceStringEXT"/>
+ <command name="eglQueryDisplayAttribEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_gl_colorspace_bt2020_linear" supported="egl">
+ <require>
+ <enum name="EGL_GL_COLORSPACE_BT2020_LINEAR_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_gl_colorspace_bt2020_pq" supported="egl">
+ <require>
+ <enum name="EGL_GL_COLORSPACE_BT2020_PQ_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_gl_colorspace_scrgb" supported="egl">
+ <require>
+ <enum name="EGL_GL_COLORSPACE_SCRGB_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_gl_colorspace_scrgb_linear" supported="egl">
+ <require>
+ <enum name="EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_gl_colorspace_display_p3_linear" supported="egl">
+ <require>
+ <enum name="EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_gl_colorspace_display_p3" supported="egl">
+ <require>
+ <enum name="EGL_GL_COLORSPACE_DISPLAY_P3_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_gl_colorspace_display_p3_passthrough" supported="egl">
+ <require>
+ <enum name="EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_image_dma_buf_import" supported="egl">
+ <require>
+ <enum name="EGL_LINUX_DMA_BUF_EXT"/>
+ <enum name="EGL_LINUX_DRM_FOURCC_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE0_FD_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE0_OFFSET_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE0_PITCH_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE1_FD_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE1_OFFSET_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE1_PITCH_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE2_FD_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE2_OFFSET_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE2_PITCH_EXT"/>
+ <enum name="EGL_YUV_COLOR_SPACE_HINT_EXT"/>
+ <enum name="EGL_SAMPLE_RANGE_HINT_EXT"/>
+ <enum name="EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT"/>
+ <enum name="EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT"/>
+ <enum name="EGL_ITU_REC601_EXT"/>
+ <enum name="EGL_ITU_REC709_EXT"/>
+ <enum name="EGL_ITU_REC2020_EXT"/>
+ <enum name="EGL_YUV_FULL_RANGE_EXT"/>
+ <enum name="EGL_YUV_NARROW_RANGE_EXT"/>
+ <enum name="EGL_YUV_CHROMA_SITING_0_EXT"/>
+ <enum name="EGL_YUV_CHROMA_SITING_0_5_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_image_dma_buf_import_modifiers" supported="egl">
+ <require>
+ <enum name="EGL_DMA_BUF_PLANE3_FD_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE3_OFFSET_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE3_PITCH_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT"/>
+ <enum name="EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT"/>
+ <command name="eglQueryDmaBufFormatsEXT"/>
+ <command name="eglQueryDmaBufModifiersEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_image_gl_colorspace" supported="egl">
+ <require>
+ <enum name="EGL_GL_COLORSPACE"/>
+ <enum name="EGL_GL_COLORSPACE_DEFAULT_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_multiview_window" supported="egl">
+ <require>
+ <enum name="EGL_MULTIVIEW_VIEW_COUNT_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_output_base" supported="egl">
+ <require>
+ <type name="EGLOutputLayerEXT"/>
+ <type name="EGLOutputPortEXT"/>
+ <enum name="EGL_NO_OUTPUT_LAYER_EXT"/>
+ <enum name="EGL_NO_OUTPUT_PORT_EXT"/>
+ <enum name="EGL_BAD_OUTPUT_LAYER_EXT"/>
+ <enum name="EGL_BAD_OUTPUT_PORT_EXT"/>
+ <enum name="EGL_SWAP_INTERVAL_EXT"/>
+ <command name="eglGetOutputLayersEXT"/>
+ <command name="eglGetOutputPortsEXT"/>
+ <command name="eglOutputLayerAttribEXT"/>
+ <command name="eglQueryOutputLayerAttribEXT"/>
+ <command name="eglQueryOutputLayerStringEXT"/>
+ <command name="eglOutputPortAttribEXT"/>
+ <command name="eglQueryOutputPortAttribEXT"/>
+ <command name="eglQueryOutputPortStringEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_output_drm" supported="egl">
+ <require>
+ <enum name="EGL_DRM_CRTC_EXT"/>
+ <enum name="EGL_DRM_PLANE_EXT"/>
+ <enum name="EGL_DRM_CONNECTOR_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_output_openwf" supported="egl">
+ <require>
+ <enum name="EGL_OPENWF_PIPELINE_ID_EXT"/>
+ <enum name="EGL_OPENWF_PORT_ID_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_pixel_format_float" supported="egl">
+ <require>
+ <enum name="EGL_COLOR_COMPONENT_TYPE_EXT"/>
+ <enum name="EGL_COLOR_COMPONENT_TYPE_FIXED_EXT"/>
+ <enum name="EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_platform_base" supported="egl">
+ <require>
+ <command name="eglGetPlatformDisplayEXT"/>
+ <command name="eglCreatePlatformWindowSurfaceEXT"/>
+ <command name="eglCreatePlatformPixmapSurfaceEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_platform_device" supported="egl">
+ <require>
+ <enum name="EGL_PLATFORM_DEVICE_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_platform_wayland" supported="egl">
+ <require>
+ <enum name="EGL_PLATFORM_WAYLAND_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_platform_x11" supported="egl">
+ <require>
+ <enum name="EGL_PLATFORM_X11_EXT"/>
+ <enum name="EGL_PLATFORM_X11_SCREEN_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_platform_xcb" supported="egl">
+ <require>
+ <enum name="EGL_PLATFORM_XCB_EXT"/>
+ <enum name="EGL_PLATFORM_XCB_SCREEN_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_present_opaque" supported="egl">
+ <require>
+ <enum name="EGL_PRESENT_OPAQUE_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_protected_content" supported="egl">
+ <require>
+ <enum name="EGL_PROTECTED_CONTENT_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_protected_surface" supported="egl">
+ <require>
+ <enum name="EGL_PROTECTED_CONTENT_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_stream_consumer_egloutput" supported="egl">
+ <require>
+ <command name="eglStreamConsumerOutputEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_surface_SMPTE2086_metadata" supported="egl">
+ <require>
+ <enum name="EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT"/>
+ <enum name="EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT"/>
+ <enum name="EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT"/>
+ <enum name="EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT"/>
+ <enum name="EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT"/>
+ <enum name="EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT"/>
+ <enum name="EGL_SMPTE2086_WHITE_POINT_X_EXT"/>
+ <enum name="EGL_SMPTE2086_WHITE_POINT_Y_EXT"/>
+ <enum name="EGL_SMPTE2086_MAX_LUMINANCE_EXT"/>
+ <enum name="EGL_SMPTE2086_MIN_LUMINANCE_EXT"/>
+ <enum name="EGL_METADATA_SCALING_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_swap_buffers_with_damage" supported="egl">
+ <require>
+ <command name="eglSwapBuffersWithDamageEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_sync_reuse" supported="egl">
+ <require>
+ <command name="eglUnsignalSyncEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_yuv_surface" supported="egl">
+ <require>
+ <enum name="EGL_YUV_ORDER_EXT"/>
+ <enum name="EGL_YUV_NUMBER_OF_PLANES_EXT"/>
+ <enum name="EGL_YUV_SUBSAMPLE_EXT"/>
+ <enum name="EGL_YUV_DEPTH_RANGE_EXT"/>
+ <enum name="EGL_YUV_CSC_STANDARD_EXT"/>
+ <enum name="EGL_YUV_PLANE_BPP_EXT"/>
+ <enum name="EGL_YUV_BUFFER_EXT"/>
+ <enum name="EGL_YUV_ORDER_YUV_EXT"/>
+ <enum name="EGL_YUV_ORDER_YVU_EXT"/>
+ <enum name="EGL_YUV_ORDER_YUYV_EXT"/>
+ <enum name="EGL_YUV_ORDER_UYVY_EXT"/>
+ <enum name="EGL_YUV_ORDER_YVYU_EXT"/>
+ <enum name="EGL_YUV_ORDER_VYUY_EXT"/>
+ <enum name="EGL_YUV_ORDER_AYUV_EXT"/>
+ <enum name="EGL_YUV_SUBSAMPLE_4_2_0_EXT"/>
+ <enum name="EGL_YUV_SUBSAMPLE_4_2_2_EXT"/>
+ <enum name="EGL_YUV_SUBSAMPLE_4_4_4_EXT"/>
+ <enum name="EGL_YUV_DEPTH_RANGE_LIMITED_EXT"/>
+ <enum name="EGL_YUV_DEPTH_RANGE_FULL_EXT"/>
+ <enum name="EGL_YUV_CSC_STANDARD_601_EXT"/>
+ <enum name="EGL_YUV_CSC_STANDARD_709_EXT"/>
+ <enum name="EGL_YUV_CSC_STANDARD_2020_EXT"/>
+ <enum name="EGL_YUV_PLANE_BPP_0_EXT"/>
+ <enum name="EGL_YUV_PLANE_BPP_8_EXT"/>
+ <enum name="EGL_YUV_PLANE_BPP_10_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_HI_clientpixmap" supported="egl">
+ <require>
+ <enum name="EGL_CLIENT_PIXMAP_POINTER_HI"/>
+ <command name="eglCreatePixmapSurfaceHI"/>
+ </require>
+ </extension>
+ <extension name="EGL_HI_colorformats" supported="egl">
+ <require>
+ <enum name="EGL_COLOR_FORMAT_HI"/>
+ <enum name="EGL_COLOR_RGB_HI"/>
+ <enum name="EGL_COLOR_RGBA_HI"/>
+ <enum name="EGL_COLOR_ARGB_HI"/>
+ </require>
+ </extension>
+ <extension name="EGL_IMG_context_priority" supported="egl">
+ <require>
+ <enum name="EGL_CONTEXT_PRIORITY_LEVEL_IMG"/>
+ <enum name="EGL_CONTEXT_PRIORITY_HIGH_IMG"/>
+ <enum name="EGL_CONTEXT_PRIORITY_MEDIUM_IMG"/>
+ <enum name="EGL_CONTEXT_PRIORITY_LOW_IMG"/>
+ </require>
+ </extension>
+ <extension name="EGL_IMG_image_plane_attribs" supported="egl">
+ <require>
+ <enum name="EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG"/>
+ <enum name="EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_cl_event" supported="egl">
+ <require>
+ <enum name="EGL_CL_EVENT_HANDLE_KHR"/>
+ <enum name="EGL_SYNC_CL_EVENT_KHR"/>
+ <enum name="EGL_SYNC_CL_EVENT_COMPLETE_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_cl_event2" supported="egl">
+ <require>
+ <enum name="EGL_CL_EVENT_HANDLE_KHR"/>
+ <enum name="EGL_SYNC_CL_EVENT_KHR"/>
+ <enum name="EGL_SYNC_CL_EVENT_COMPLETE_KHR"/>
+ <command name="eglCreateSync64KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_config_attribs" supported="egl">
+ <require>
+ <enum name="EGL_CONFORMANT_KHR"/>
+ <enum name="EGL_VG_COLORSPACE_LINEAR_BIT_KHR"/>
+ <enum name="EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_client_get_all_proc_addresses" supported="egl" comment="Alias of EGL_KHR_get_all_proc_addresses"/>
+ <extension name="EGL_KHR_context_flush_control" supported="egl">
+ <require>
+ <enum name="EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR"/>
+ <enum name="EGL_CONTEXT_RELEASE_BEHAVIOR_KHR"/>
+ <enum name="EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_create_context" supported="egl">
+ <require>
+ <enum name="EGL_CONTEXT_MAJOR_VERSION_KHR"/>
+ <enum name="EGL_CONTEXT_MINOR_VERSION_KHR"/>
+ <enum name="EGL_CONTEXT_FLAGS_KHR"/>
+ <enum name="EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR"/>
+ <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR"/>
+ <enum name="EGL_NO_RESET_NOTIFICATION_KHR"/>
+ <enum name="EGL_LOSE_CONTEXT_ON_RESET_KHR"/>
+ <enum name="EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR"/>
+ <enum name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR"/>
+ <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR"/>
+ <enum name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR"/>
+ <enum name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR"/>
+ <enum name="EGL_OPENGL_ES3_BIT"/>
+ <enum name="EGL_OPENGL_ES3_BIT_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_create_context_no_error" supported="egl">
+ <require>
+ <enum name="EGL_CONTEXT_OPENGL_NO_ERROR_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_debug" supported="egl">
+ <require>
+ <!-- Explicit dependencies require to get EGLDEBUGPROCKHR dependencies correct -->
+ <type name="EGLLabelKHR"/>
+ <type name="EGLObjectKHR"/>
+ <enum name="EGL_OBJECT_THREAD_KHR"/>
+ <enum name="EGL_OBJECT_DISPLAY_KHR"/>
+ <enum name="EGL_OBJECT_CONTEXT_KHR"/>
+ <enum name="EGL_OBJECT_SURFACE_KHR"/>
+ <enum name="EGL_OBJECT_IMAGE_KHR"/>
+ <enum name="EGL_OBJECT_SYNC_KHR"/>
+ <enum name="EGL_OBJECT_STREAM_KHR"/>
+ <enum name="EGL_DEBUG_MSG_CRITICAL_KHR"/>
+ <enum name="EGL_DEBUG_MSG_ERROR_KHR"/>
+ <enum name="EGL_DEBUG_MSG_WARN_KHR"/>
+ <enum name="EGL_DEBUG_MSG_INFO_KHR"/>
+ <enum name="EGL_DEBUG_CALLBACK_KHR"/>
+ <command name="eglDebugMessageControlKHR"/>
+ <command name="eglQueryDebugKHR"/>
+ <command name="eglLabelObjectKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_display_reference" supported="egl">
+ <require>
+ <enum name="EGL_TRACK_REFERENCES_KHR"/>
+ <command name="eglQueryDisplayAttribKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_fence_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
+ <require>
+ <!-- Most interfaces also defined by EGL_KHR_reusable sync -->
+ <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR"/>
+ <enum name="EGL_SYNC_CONDITION_KHR"/>
+ <enum name="EGL_SYNC_FENCE_KHR"/>
+ <command name="eglCreateSyncKHR"/>
+ <command name="eglDestroySyncKHR"/>
+ <command name="eglClientWaitSyncKHR"/>
+ <command name="eglGetSyncAttribKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_get_all_proc_addresses" supported="egl"/>
+ <extension name="EGL_KHR_gl_colorspace" supported="egl">
+ <require>
+ <enum name="EGL_GL_COLORSPACE_KHR"/>
+ <enum name="EGL_GL_COLORSPACE_SRGB_KHR"/>
+ <enum name="EGL_GL_COLORSPACE_LINEAR_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_gl_renderbuffer_image" supported="egl">
+ <require>
+ <enum name="EGL_GL_RENDERBUFFER_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_gl_texture_2D_image" supported="egl">
+ <require>
+ <enum name="EGL_GL_TEXTURE_2D_KHR"/>
+ <enum name="EGL_GL_TEXTURE_LEVEL_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_gl_texture_3D_image" supported="egl">
+ <require>
+ <enum name="EGL_GL_TEXTURE_3D_KHR"/>
+ <enum name="EGL_GL_TEXTURE_ZOFFSET_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_gl_texture_cubemap_image" supported="egl">
+ <require>
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR"/>
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR"/>
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR"/>
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR"/>
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR"/>
+ <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_image" supported="egl">
+ <require>
+ <enum name="EGL_NATIVE_PIXMAP_KHR"/>
+ <enum name="EGL_NO_IMAGE_KHR"/>
+ <command name="eglCreateImageKHR"/>
+ <command name="eglDestroyImageKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_image_base" supported="egl">
+ <require>
+ <enum name="EGL_IMAGE_PRESERVED_KHR"/>
+ <enum name="EGL_NO_IMAGE_KHR"/>
+ <command name="eglCreateImageKHR"/>
+ <command name="eglDestroyImageKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_image_pixmap" supported="egl">
+ <require>
+ <enum name="EGL_NATIVE_PIXMAP_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_lock_surface" supported="egl">
+ <require>
+ <enum name="EGL_READ_SURFACE_BIT_KHR"/>
+ <enum name="EGL_WRITE_SURFACE_BIT_KHR"/>
+ <enum name="EGL_LOCK_SURFACE_BIT_KHR"/>
+ <enum name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
+ <enum name="EGL_MATCH_FORMAT_KHR"/>
+ <enum name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
+ <enum name="EGL_FORMAT_RGB_565_KHR"/>
+ <enum name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
+ <enum name="EGL_FORMAT_RGBA_8888_KHR"/>
+ <enum name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
+ <enum name="EGL_LOCK_USAGE_HINT_KHR"/>
+ <enum name="EGL_BITMAP_POINTER_KHR"/>
+ <enum name="EGL_BITMAP_PITCH_KHR"/>
+ <enum name="EGL_BITMAP_ORIGIN_KHR"/>
+ <enum name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
+ <enum name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
+ <enum name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
+ <enum name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
+ <enum name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
+ <enum name="EGL_LOWER_LEFT_KHR"/>
+ <enum name="EGL_UPPER_LEFT_KHR"/>
+ <command name="eglLockSurfaceKHR"/>
+ <command name="eglUnlockSurfaceKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_lock_surface2" supported="egl">
+ <require>
+ <enum name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_lock_surface3" supported="egl">
+ <require>
+ <enum name="EGL_READ_SURFACE_BIT_KHR"/>
+ <enum name="EGL_WRITE_SURFACE_BIT_KHR"/>
+ <enum name="EGL_LOCK_SURFACE_BIT_KHR"/>
+ <enum name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
+ <enum name="EGL_MATCH_FORMAT_KHR"/>
+ <enum name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
+ <enum name="EGL_FORMAT_RGB_565_KHR"/>
+ <enum name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
+ <enum name="EGL_FORMAT_RGBA_8888_KHR"/>
+ <enum name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
+ <enum name="EGL_LOCK_USAGE_HINT_KHR"/>
+ <enum name="EGL_BITMAP_PITCH_KHR"/>
+ <enum name="EGL_BITMAP_ORIGIN_KHR"/>
+ <enum name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
+ <enum name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
+ <enum name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
+ <enum name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
+ <enum name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
+ <enum name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
+ <enum name="EGL_BITMAP_POINTER_KHR"/>
+ <enum name="EGL_LOWER_LEFT_KHR"/>
+ <enum name="EGL_UPPER_LEFT_KHR"/>
+ <command name="eglLockSurfaceKHR"/>
+ <command name="eglUnlockSurfaceKHR"/>
+ <command name="eglQuerySurface64KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_mutable_render_buffer" supported="egl">
+ <require>
+ <enum name="EGL_MUTABLE_RENDER_BUFFER_BIT_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_no_config_context" supported="egl">
+ <require>
+ <enum name="EGL_NO_CONFIG_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_partial_update" supported="egl">
+ <require>
+ <enum name="EGL_BUFFER_AGE_KHR"/>
+ <command name="eglSetDamageRegionKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_platform_android" supported="egl">
+ <require>
+ <enum name="EGL_PLATFORM_ANDROID_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_platform_gbm" supported="egl">
+ <require>
+ <enum name="EGL_PLATFORM_GBM_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_platform_wayland" supported="egl">
+ <require>
+ <enum name="EGL_PLATFORM_WAYLAND_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_platform_x11" supported="egl">
+ <require>
+ <enum name="EGL_PLATFORM_X11_KHR"/>
+ <enum name="EGL_PLATFORM_X11_SCREEN_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_reusable_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
+ <require>
+ <enum name="EGL_SYNC_STATUS_KHR"/>
+ <enum name="EGL_SIGNALED_KHR"/>
+ <enum name="EGL_UNSIGNALED_KHR"/>
+ <enum name="EGL_TIMEOUT_EXPIRED_KHR"/>
+ <enum name="EGL_CONDITION_SATISFIED_KHR"/>
+ <enum name="EGL_SYNC_TYPE_KHR"/>
+ <enum name="EGL_SYNC_REUSABLE_KHR"/>
+ <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT_KHR"/>
+ <enum name="EGL_FOREVER_KHR"/>
+ <enum name="EGL_NO_SYNC_KHR"/>
+ <command name="eglCreateSyncKHR"/>
+ <command name="eglDestroySyncKHR"/>
+ <command name="eglClientWaitSyncKHR"/>
+ <command name="eglSignalSyncKHR"/>
+ <command name="eglGetSyncAttribKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_stream" protect="KHRONOS_SUPPORT_INT64" supported="egl">
+ <require>
+ <enum name="EGL_NO_STREAM_KHR"/>
+ <enum name="EGL_CONSUMER_LATENCY_USEC_KHR"/>
+ <enum name="EGL_PRODUCER_FRAME_KHR"/>
+ <enum name="EGL_CONSUMER_FRAME_KHR"/>
+ <enum name="EGL_STREAM_STATE_KHR"/>
+ <enum name="EGL_STREAM_STATE_CREATED_KHR"/>
+ <enum name="EGL_STREAM_STATE_CONNECTING_KHR"/>
+ <enum name="EGL_STREAM_STATE_EMPTY_KHR"/>
+ <enum name="EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR"/>
+ <enum name="EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR"/>
+ <enum name="EGL_STREAM_STATE_DISCONNECTED_KHR"/>
+ <enum name="EGL_BAD_STREAM_KHR"/>
+ <enum name="EGL_BAD_STATE_KHR"/>
+ <command name="eglCreateStreamKHR"/>
+ <command name="eglDestroyStreamKHR"/>
+ <command name="eglStreamAttribKHR"/>
+ <command name="eglQueryStreamKHR"/>
+ <command name="eglQueryStreamu64KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_stream_attrib" protect="KHRONOS_SUPPORT_INT64" supported="egl">
+ <require>
+ <enum name="EGL_CONSUMER_LATENCY_USEC_KHR"/>
+ <enum name="EGL_STREAM_STATE_KHR"/>
+ <enum name="EGL_STREAM_STATE_CREATED_KHR"/>
+ <enum name="EGL_STREAM_STATE_CONNECTING_KHR"/>
+ <command name="eglCreateStreamAttribKHR"/>
+ <command name="eglSetStreamAttribKHR"/>
+ <command name="eglQueryStreamAttribKHR"/>
+ <command name="eglStreamConsumerAcquireAttribKHR"/>
+ <command name="eglStreamConsumerReleaseAttribKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_stream_consumer_gltexture" protect="EGL_KHR_stream" supported="egl">
+ <require>
+ <enum name="EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR"/>
+ <command name="eglStreamConsumerGLTextureExternalKHR"/>
+ <command name="eglStreamConsumerAcquireKHR"/>
+ <command name="eglStreamConsumerReleaseKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_stream_cross_process_fd" protect="EGL_KHR_stream" supported="egl">
+ <require>
+ <enum name="EGL_NO_FILE_DESCRIPTOR_KHR"/>
+ <command name="eglGetStreamFileDescriptorKHR"/>
+ <command name="eglCreateStreamFromFileDescriptorKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_stream_fifo" protect="EGL_KHR_stream" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_FIFO_LENGTH_KHR"/>
+ <enum name="EGL_STREAM_TIME_NOW_KHR"/>
+ <enum name="EGL_STREAM_TIME_CONSUMER_KHR"/>
+ <enum name="EGL_STREAM_TIME_PRODUCER_KHR"/>
+ <command name="eglQueryStreamTimeKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_stream_producer_aldatalocator" protect="EGL_KHR_stream" supported="egl"/>
+ <extension name="EGL_KHR_stream_producer_eglsurface" protect="EGL_KHR_stream" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_BIT_KHR"/>
+ <command name="eglCreateStreamProducerSurfaceKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_surfaceless_context" supported="egl" comment="Just relaxes an error condition"/>
+ <extension name="EGL_KHR_swap_buffers_with_damage" supported="egl">
+ <require>
+ <command name="eglSwapBuffersWithDamageKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_vg_parent_image" supported="egl">
+ <require>
+ <enum name="EGL_VG_PARENT_IMAGE_KHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_KHR_wait_sync" supported="egl">
+ <require>
+ <command name="eglWaitSyncKHR"/>
+ </require>
+ </extension>
+ <extension name="EGL_MESA_drm_image" supported="egl">
+ <require>
+ <enum name="EGL_DRM_BUFFER_FORMAT_MESA"/>
+ <enum name="EGL_DRM_BUFFER_USE_MESA"/>
+ <enum name="EGL_DRM_BUFFER_FORMAT_ARGB32_MESA"/>
+ <enum name="EGL_DRM_BUFFER_MESA"/>
+ <enum name="EGL_DRM_BUFFER_STRIDE_MESA"/>
+ <enum name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/>
+ <enum name="EGL_DRM_BUFFER_USE_SHARE_MESA"/>
+ <enum name="EGL_DRM_BUFFER_USE_CURSOR_MESA"/>
+ <command name="eglCreateDRMImageMESA"/>
+ <command name="eglExportDRMImageMESA"/>
+ </require>
+ </extension>
+ <extension name="EGL_MESA_image_dma_buf_export" supported="egl">
+ <require>
+ <type name="EGLuint64KHR"/>
+ <command name="eglExportDMABUFImageQueryMESA"/>
+ <command name="eglExportDMABUFImageMESA"/>
+ </require>
+ </extension>
+ <extension name="EGL_MESA_platform_gbm" supported="egl">
+ <require>
+ <enum name="EGL_PLATFORM_GBM_MESA"/>
+ </require>
+ </extension>
+ <extension name="EGL_MESA_platform_surfaceless" supported="egl">
+ <require>
+ <enum name="EGL_PLATFORM_SURFACELESS_MESA"/>
+ </require>
+ </extension>
+ <extension name="EGL_MESA_query_driver" supported="egl">
+ <require>
+ <command name="eglGetDisplayDriverConfig"/>
+ <command name="eglGetDisplayDriverName"/>
+ </require>
+ </extension>
+ <extension name="EGL_NOK_swap_region" supported="egl">
+ <require>
+ <command name="eglSwapBuffersRegionNOK"/>
+ </require>
+ </extension>
+ <extension name="EGL_NOK_swap_region2" supported="egl">
+ <require>
+ <command name="eglSwapBuffersRegion2NOK"/>
+ </require>
+ </extension>
+ <extension name="EGL_NOK_texture_from_pixmap" supported="egl">
+ <require>
+ <enum name="EGL_Y_INVERTED_NOK"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_3dvision_surface" supported="egl">
+ <require>
+ <enum name="EGL_AUTO_STEREO_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_coverage_sample" supported="egl">
+ <require>
+ <enum name="EGL_COVERAGE_BUFFERS_NV"/>
+ <enum name="EGL_COVERAGE_SAMPLES_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_context_priority_realtime" supported="egl">
+ <require>
+ <enum name="EGL_CONTEXT_PRIORITY_REALTIME_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_coverage_sample_resolve" supported="egl">
+ <require>
+ <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_NV"/>
+ <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV"/>
+ <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_cuda_event" supported="egl">
+ <require>
+ <enum name="EGL_CUDA_EVENT_HANDLE_NV"/>
+ <enum name="EGL_SYNC_CUDA_EVENT_NV"/>
+ <enum name="EGL_SYNC_CUDA_EVENT_COMPLETE_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_depth_nonlinear" supported="egl">
+ <require>
+ <enum name="EGL_DEPTH_ENCODING_NV"/>
+ <enum name="EGL_DEPTH_ENCODING_NONE_NV"/>
+ <enum name="EGL_DEPTH_ENCODING_NONLINEAR_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_device_cuda" supported="egl">
+ <require>
+ <enum name="EGL_CUDA_DEVICE_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_native_query" supported="egl">
+ <require>
+ <command name="eglQueryNativeDisplayNV"/>
+ <command name="eglQueryNativeWindowNV"/>
+ <command name="eglQueryNativePixmapNV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_post_convert_rounding" supported="egl">
+ <require>
+ </require>
+ </extension>
+ <extension name="EGL_NV_post_sub_buffer" supported="egl">
+ <require>
+ <enum name="EGL_POST_SUB_BUFFER_SUPPORTED_NV"/>
+ <command name="eglPostSubBufferNV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_quadruple_buffer" supported="egl">
+ <require>
+ <enum name="EGL_QUADRUPLE_BUFFER_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_robustness_video_memory_purge" supported="egl">
+ <require>
+ <enum name="EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_consumer_gltexture_yuv" supported="egl">
+ <require>
+ <enum name="EGL_YUV_PLANE0_TEXTURE_UNIT_NV"/>
+ <enum name="EGL_YUV_PLANE1_TEXTURE_UNIT_NV"/>
+ <enum name="EGL_YUV_PLANE2_TEXTURE_UNIT_NV"/>
+ <enum name="EGL_YUV_NUMBER_OF_PLANES_EXT"/>
+ <enum name="EGL_YUV_BUFFER_EXT"/>
+ <command name="eglStreamConsumerGLTextureExternalAttribsNV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_cross_object" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_CROSS_OBJECT_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_cross_display" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_CROSS_DISPLAY_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_cross_partition" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_CROSS_PARTITION_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_cross_process" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_CROSS_PROCESS_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_cross_system" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_CROSS_SYSTEM_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_dma" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_DMA_NV"/>
+ <enum name="EGL_STREAM_DMA_SERVER_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_consumer_eglimage" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_CONSUMER_IMAGE_NV"/>
+ <enum name="EGL_STREAM_IMAGE_ADD_NV"/>
+ <enum name="EGL_STREAM_IMAGE_REMOVE_NV"/>
+ <enum name="EGL_STREAM_IMAGE_AVAILABLE_NV"/>
+ <command name="eglStreamImageConsumerConnectNV"/>
+ <command name="eglQueryStreamConsumerEventNV"/>
+ <command name="eglStreamAcquireImageNV"/>
+ <command name="eglStreamReleaseImageNV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_fifo_next" supported="egl">
+ <require>
+ <enum name="EGL_PENDING_FRAME_NV"/>
+ <enum name="EGL_STREAM_TIME_PENDING_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_fifo_synchronous" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_FIFO_SYNCHRONOUS_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_flush" supported="egl">
+ <require>
+ <command name="eglStreamFlushNV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_frame_limits" supported="egl">
+ <require>
+ <enum name="EGL_PRODUCER_MAX_FRAME_HINT_NV"/>
+ <enum name="EGL_CONSUMER_MAX_FRAME_HINT_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_metadata" supported="egl">
+ <require>
+ <enum name="EGL_MAX_STREAM_METADATA_BLOCKS_NV"/>
+ <enum name="EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV"/>
+ <enum name="EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV"/>
+ <enum name="EGL_PRODUCER_METADATA_NV"/>
+ <enum name="EGL_CONSUMER_METADATA_NV"/>
+ <enum name="EGL_PENDING_METADATA_NV"/>
+ <enum name="EGL_METADATA0_SIZE_NV"/>
+ <enum name="EGL_METADATA1_SIZE_NV"/>
+ <enum name="EGL_METADATA2_SIZE_NV"/>
+ <enum name="EGL_METADATA3_SIZE_NV"/>
+ <enum name="EGL_METADATA0_TYPE_NV"/>
+ <enum name="EGL_METADATA1_TYPE_NV"/>
+ <enum name="EGL_METADATA2_TYPE_NV"/>
+ <enum name="EGL_METADATA3_TYPE_NV"/>
+ <command name="eglQueryDisplayAttribNV"/>
+ <command name="eglSetStreamMetadataNV"/>
+ <command name="eglQueryStreamMetadataNV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_reset" supported="egl">
+ <require>
+ <enum name="EGL_SUPPORT_RESET_NV"/>
+ <enum name="EGL_SUPPORT_REUSE_NV"/>
+ <command name="eglResetStreamNV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_remote" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_STATE_INITIALIZING_NV"/>
+ <enum name="EGL_STREAM_TYPE_NV"/>
+ <enum name="EGL_STREAM_PROTOCOL_NV"/>
+ <enum name="EGL_STREAM_ENDPOINT_NV"/>
+ <enum name="EGL_STREAM_LOCAL_NV"/>
+ <enum name="EGL_STREAM_PRODUCER_NV"/>
+ <enum name="EGL_STREAM_CONSUMER_NV"/>
+ </require>
+ <require comment="Supported only if EGL_KHR_stream_cross_process_fd is supported">
+ <enum name="EGL_STREAM_PROTOCOL_FD_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_socket" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_PROTOCOL_SOCKET_NV"/>
+ <enum name="EGL_SOCKET_HANDLE_NV"/>
+ <enum name="EGL_SOCKET_TYPE_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_socket_inet" supported="egl">
+ <require>
+ <enum name="EGL_SOCKET_TYPE_INET_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_socket_unix" supported="egl">
+ <require>
+ <enum name="EGL_SOCKET_TYPE_UNIX_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_sync" supported="egl">
+ <require>
+ <enum name="EGL_SYNC_TYPE_KHR"/>
+ <enum name="EGL_SYNC_NEW_FRAME_NV"/>
+ <command name="eglCreateStreamSyncNV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
+ <require>
+ <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV"/>
+ <enum name="EGL_SYNC_STATUS_NV"/>
+ <enum name="EGL_SIGNALED_NV"/>
+ <enum name="EGL_UNSIGNALED_NV"/>
+ <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT_NV"/>
+ <enum name="EGL_FOREVER_NV"/>
+ <enum name="EGL_ALREADY_SIGNALED_NV"/>
+ <enum name="EGL_TIMEOUT_EXPIRED_NV"/>
+ <enum name="EGL_CONDITION_SATISFIED_NV"/>
+ <enum name="EGL_SYNC_TYPE_NV"/>
+ <enum name="EGL_SYNC_CONDITION_NV"/>
+ <enum name="EGL_SYNC_FENCE_NV"/>
+ <enum name="EGL_NO_SYNC_NV"/>
+ <command name="eglCreateFenceSyncNV"/>
+ <command name="eglDestroySyncNV"/>
+ <command name="eglFenceNV"/>
+ <command name="eglClientWaitSyncNV"/>
+ <command name="eglSignalSyncNV"/>
+ <command name="eglGetSyncAttribNV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_system_time" protect="KHRONOS_SUPPORT_INT64" supported="egl">
+ <require>
+ <command name="eglGetSystemTimeFrequencyNV"/>
+ <command name="eglGetSystemTimeNV"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_triple_buffer" supported="egl">
+ <require>
+ <enum name="EGL_TRIPLE_BUFFER_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_TIZEN_image_native_buffer" supported="egl">
+ <require>
+ <enum name="EGL_NATIVE_BUFFER_TIZEN"/>
+ </require>
+ </extension>
+ <extension name="EGL_TIZEN_image_native_surface" supported="egl">
+ <require>
+ <enum name="EGL_NATIVE_SURFACE_TIZEN"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_compositor" supported="egl">
+ <require>
+ <enum name="EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT"/>
+ <enum name="EGL_EXTERNAL_REF_ID_EXT"/>
+ <enum name="EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT"/>
+ <enum name="EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT"/>
+
+ <command name="eglCompositorSetContextListEXT"/>
+ <command name="eglCompositorSetContextAttributesEXT"/>
+ <command name="eglCompositorSetWindowListEXT"/>
+ <command name="eglCompositorSetWindowAttributesEXT"/>
+ <command name="eglCompositorBindTexWindowEXT"/>
+ <command name="eglCompositorSetSizeEXT"/>
+ <command name="eglCompositorSwapPolicyEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_surface_CTA861_3_metadata" supported="egl">
+ <require>
+ <enum name="EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT"/>
+ <enum name="EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_surface_compression" supported="egl">
+ <require>
+ <enum name="EGL_SURFACE_COMPRESSION_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_PLANE1_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_PLANE2_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT"/>
+ <enum name="EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT"/>
+ <command name="eglQuerySupportedCompressionRatesEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_image_implicit_sync_control" supported="egl">
+ <require>
+ <enum name="EGL_IMPORT_SYNC_TYPE_EXT"/>
+ <enum name="EGL_IMPORT_IMPLICIT_SYNC_EXT"/>
+ <enum name="EGL_IMPORT_EXPLICIT_SYNC_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_bind_to_front" supported="egl">
+ <require>
+ <enum name="EGL_FRONT_BUFFER_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_NV_stream_origin" supported="egl">
+ <require>
+ <enum name="EGL_STREAM_FRAME_ORIGIN_X_NV"/>
+ <enum name="EGL_STREAM_FRAME_ORIGIN_Y_NV"/>
+ <enum name="EGL_STREAM_FRAME_MAJOR_AXIS_NV"/>
+ <enum name="EGL_CONSUMER_AUTO_ORIENTATION_NV"/>
+ <enum name="EGL_PRODUCER_AUTO_ORIENTATION_NV"/>
+ <enum name="EGL_LEFT_NV"/>
+ <enum name="EGL_RIGHT_NV"/>
+ <enum name="EGL_TOP_NV"/>
+ <enum name="EGL_BOTTOM_NV"/>
+ <enum name="EGL_X_AXIS_NV"/>
+ <enum name="EGL_Y_AXIS_NV"/>
+ </require>
+ </extension>
+ <extension name="EGL_WL_bind_wayland_display" supported="egl">
+ <require>
+ <enum name="EGL_WAYLAND_BUFFER_WL"/>
+ <enum name="EGL_WAYLAND_PLANE_WL"/>
+ <enum name="EGL_TEXTURE_Y_U_V_WL"/>
+ <enum name="EGL_TEXTURE_Y_UV_WL"/>
+ <enum name="EGL_TEXTURE_Y_XUXV_WL"/>
+ <enum name="EGL_TEXTURE_EXTERNAL_WL"/>
+ <enum name="EGL_WAYLAND_Y_INVERTED_WL"/>
+
+ <command name="eglBindWaylandDisplayWL"/>
+ <command name="eglUnbindWaylandDisplayWL"/>
+ <command name="eglQueryWaylandBufferWL"/>
+ <type name="PFNEGLBINDWAYLANDDISPLAYWL"/>
+ <type name="PFNEGLUNBINDWAYLANDDISPLAYWL"/>
+ <type name="PFNEGLQUERYWAYLANDBUFFERWL"/>
+ </require>
+ </extension>
+ <extension name="EGL_WL_create_wayland_buffer_from_image" supported="egl">
+ <require>
+ <command name="eglCreateWaylandBufferFromImageWL"/>
+ <type name="PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL"/>
+ </require>
+ </extension>
+ <extension name="EGL_ARM_image_format" supported="egl">
+ <require>
+ <enum name="EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM"/>
+ <enum name="EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_device_query_name" supported="egl">
+ <require>
+ <enum name="EGL_RENDERER_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_device_persistent_id" supported="egl">
+ <require>
+ <enum name="EGL_DEVICE_UUID_EXT"/>
+ <enum name="EGL_DRIVER_UUID_EXT"/>
+ <enum name="EGL_DRIVER_NAME_EXT"/>
+ <command name="eglQueryDeviceBinaryEXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_device_drm_render_node" supported="egl">
+ <require>
+ <enum name="EGL_DRM_RENDER_NODE_FILE_EXT"/>
+ </require>
+ </extension>
+ <extension name="EGL_EXT_explicit_device" supported="egl">
+ <require>
+ <enum name="EGL_DEVICE_EXT"/>
+ </require>
+ </extension>
+ </extensions>
+</registry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/api/egltest.c b/engine-ocean/External/glew/auto/EGL-Registry/api/egltest.c
new file mode 100644
index 0000000..cf3fe56
--- /dev/null
+++ b/engine-ocean/External/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/engine-ocean/External/glew/auto/EGL-Registry/api/genheaders.py b/engine-ocean/External/glew/auto/EGL-Registry/api/genheaders.py
new file mode 100644
index 0000000..ce15d6d
--- /dev/null
+++ b/engine-ocean/External/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 <filename> - 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 <group>
+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 <windows.h>',
+ '#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 <GL/glcorearb.h>.',
+ '**',
+ '** 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 <GL/glcorearb.h> and either of <GL/gl.h> or',
+ '** <GL/glext.h> 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 <windows.h>',
+ '#endif',
+ '',
+]
+
+# Different APIs use different *platform.h files to define calling
+# conventions
+gles1PlatformStrings = [ '#include <GLES/glplatform.h>', '' ]
+gles2PlatformStrings = [ '#include <GLES2/gl2platform.h>', '' ]
+gles3PlatformStrings = [ '#include <GLES3/gl3platform.h>', '' ]
+glsc2PlatformStrings = [ '#include <GLSC2/gl2platform.h>', '' ]
+eglPlatformStrings = [ '#include <EGL/eglplatform.h>', '' ]
+
+# 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/engine-ocean/External/glew/auto/EGL-Registry/api/reg.py b/engine-ocean/External/glew/auto/EGL-Registry/api/reg.py
new file mode 100644
index 0000000..6ac25f3
--- /dev/null
+++ b/engine-ocean/External/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:
+# <remove> with no attribute will match
+# <remove profile='core'> will match
+# <remove profile='compatibility'> 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 <enum> 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 <feature>
+# or <extension>
+# name - feature name string (e.g. 'GL_ARB_multitexture')
+# number - feature version number (e.g. 1.2). <extension>
+# 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 <extension> 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 <feature> 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. <extension>
+# 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 <api> '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 <extension>. 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 <version> / <extension> 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
+# <command> Element, as a list of two strings
+# cmd - Element for the <command>
+# 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 <command> tag
+ def makeCDecls(self, cmd):
+ """Generate C function pointer typedef for <command> 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 <name>) around the name and
+ # use the PFNGLCMDNAMEPROC nameng convention.
+ # Done by walking the tree for <proto> 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 <name> 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 <param> 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 <apientry /> 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 <registry>
+# 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 <api> Elements keyed by API name
+# extensions - list of <extension> Elements
+# extdict - dictionary of <extension> 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 <proto> or <param>
+# 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 - <type>/<group>/<enum>/<command>/<feature>/<extension> 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 <registry>
+ self.reg = self.tree.getroot()
+ #
+ # Create dictionary of registry types from toplevel <types> tags
+ # and add 'name' attribute to each <type> tag (where missing)
+ # based on its <name> element.
+ #
+ # There's usually one <types> block; more are OK
+ # Required <type> attributes: 'name' or nested <name> tag contents
+ self.typedict = {}
+ for type in self.reg.findall('types/type'):
+ # If the <type> doesn't already have a 'name' attribute, set
+ # it from contents of its <name> 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 <groups> tags.
+ #
+ # There's usually one <groups> block; more are OK.
+ # Required <group> 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 <enums> tags
+ #
+ # There are usually many <enums> tags in different namespaces, but
+ # these are functional namespaces of the values, while the actual
+ # enum names all share the dictionary.
+ # Required <enums> 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 <command> tags
+ # and add 'name' attribute to each <command> tag (where missing)
+ # based on its <proto><name> element.
+ #
+ # There's usually only one <commands> block; more are OK.
+ # Required <command> attributes: 'name' or <proto><name> tag contents
+ self.cmddict = {}
+ for cmd in self.reg.findall('commands/command'):
+ # If the <command> doesn't already have a 'name' attribute, set
+ # it from contents of its <proto><name> 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 <api> and <extension> 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 <type> 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 <remove> 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 <require> or <remove> 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 = <too long to print>, 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 <remove>
+ # 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 <ptype> in entire <command> 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 <version> or <extension>, containing
+ # <require> and <remove> tags
+ # api - string specifying API name being generated
+ # profile - string specifying API profile being generated
+ def requireAndRemoveFeatures(self, interface, api, profile):
+ """Process <recquire> and <remove> tags for a <version> or <extension>"""
+ # <require> marks things that are required by this version/profile
+ for feature in interface.findall('require'):
+ if (matchAPIProfile(api, profile, feature)):
+ self.markRequired(feature,True)
+ # <remove> 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 (<type>/<enum>/<command>
+ # 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 <ptype> 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 <version> or <extension>
+ def generateRequiredInterface(self, interface):
+ """Generate required C interface for specified API version/extension"""
+ #
+ # Loop over all features inside all <require> tags.
+ # <remove> 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 <require> block) or no
+ # longer required (in an <exclude> 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 <require> and
+ # <remove> 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 <param> and <proto> tags"""
+ # Keep track of group names not in <group> 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/engine-ocean/External/glew/auto/EGL-Registry/api/registry.rnc b/engine-ocean/External/glew/auto/EGL-Registry/api/registry.rnc
new file mode 100644
index 0000000..be70668
--- /dev/null
+++ b/engine-ocean/External/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 <registry> tag.
+# May be led by an optional <comment> tag containing e.g. copyrights.
+start = element registry {
+ (
+ element comment { text } ? |
+ Types * |
+ Groups * |
+ Enums * |
+ Commands * |
+ Feature * |
+ Extensions *
+ ) *
+}
+
+# <types> defines a group of types
+Types = element types {
+ Type *
+}
+
+# <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 <name> tag
+# api - matches a <feature> 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 <enums> definition.
+# comment - unused
+# <apientry /> - substitutes for an APIENTRY-style macro on output
+# <name> - 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
+}
+
+# <groups> defines a group of enum groups
+Groups = element groups {
+ Group *
+}
+
+# <group> defines a single enum group. Enums may
+# be in multiple groups.
+# name - group name
+# comment - unused
+# <enum name=""> - members of the group
+
+Group = element group {
+ Name ,
+ Comment ? ,
+ element enum { Name } *
+}
+
+# <enums> defines a group of enumerants
+# namespace - identifies a numeric namespace
+# group - identifies a functional subset of the namespace - same as <group name="">
+# 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) *
+}
+# <enum> defines a single enumerant
+# value - integer (including hex) value of the enumerant
+# api - matches a <feature> 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 ?
+ )
+}
+# <unused> 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 ?
+}
+# <commands> defines a group of commands
+# namespace - identifies a function namespace
+Commands = element commands {
+ attribute namespace { text } ? ,
+ Command *
+}
+# <command> defines a single command
+# <proto> is the C function prototype, including the return type
+# <param> are function parameters, in order
+# <ptype> is a <type> name, if present
+# <name> is the function / parameter name
+# The textual contents of <proto> and <param> should be legal C
+# for those parts of a function declaration.
+# <alias> - denotes function aliasing
+# name - name of aliased function
+# <vecequiv> - denotes scalar / vector function equivalence
+# name - name of corresponding vector form, e.g. (glColor3f -> glColor3fv)
+# <glx> - 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 <feature> 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
+# <require> / <remove> 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 <extension>. Like a <feature>
+# 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 <name>{|<name>}* and each name must
+# exactly match an API being generated (implicit ^$ surrounding).
+# In addition, <require> / <remove> 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 <require> / <remove> tag, defining a group
+# of features to require or remove.
+# <type> / <enum> / <command> 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/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_GLES_layers.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_GLES_layers.txt
new file mode 100644
index 0000000..eb2a7d9
--- /dev/null
+++ b/engine-ocean/External/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/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_blob_cache.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_blob_cache.txt
new file mode 100644
index 0000000..e984694
--- /dev/null
+++ b/engine-ocean/External/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 <khrplatform.h>
+ 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 <dpy> can use to interact with caching functionality provided by
+ the application. <set> points to a function that inserts a new value into
+ the cache and associates it with the given key. <get> 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 <set> and <get> 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 <dpy> is
+ deleted and <dpy> 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
+ <dpy>. If <set> or <get> is NULL then an EGL_BAD_PARAMETER error is
+ generated. If a successful eglSetBlobCacheFuncsANDROID call was already
+ made for <dpy> 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)
+
+ <key> and <value> are pointers to the beginning of the key and value,
+ respectively, that are to be inserted. <keySize> and <valueSize> specify
+ the size in bytes of the data pointed to by <key> and <value>,
+ 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)
+
+ <key> is a pointer to the beginning of the key. <keySize> specifies the
+ size in bytes of the binary key pointed to by <key>. 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 <valueSize> then the value is written to the memory
+ pointed to by <value>. Otherwise nothing is written to the memory pointed
+ to by <value>.
+
+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/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_create_native_client_buffer.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_create_native_client_buffer.txt
new file mode 100644
index 0000000..3e0c4a9
--- /dev/null
+++ b/engine-ocean/External/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. <attrib_list> is a list of
+ attribute-value pairs which is used to specify the dimensions, format, and
+ usage of the underlying buffer structure. If <attrib_list> is non-NULL, the
+ last attribute specified in the list must be EGL_NONE.
+
+ Attribute names accepted in <attrib_list> are shown in Table aaa,
+ together with the <target> for which each attribute name is valid, and
+ the default value used for each attribute if it is not included in
+ <attrib_list>.
+
+ +---------------------------------+----------------------+---------------+
+ | 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
+ <attrib_list> 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/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_framebuffer_target.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_framebuffer_target.txt
new file mode 100644
index 0000000..a15dfa8
--- /dev/null
+++ b/engine-ocean/External/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 <attribute> parameter of eglGetConfigAttrib and
+ the <attrib_list> 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/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_front_buffer_auto_refresh.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_front_buffer_auto_refresh.txt
new file mode 100644
index 0000000..4c0e64c
--- /dev/null
+++ b/engine-ocean/External/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/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt
new file mode 100644
index 0000000..bf8d149
--- /dev/null
+++ b/engine-ocean/External/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 <khrplatform.h>
+ 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/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt
new file mode 100644
index 0000000..285bba4
--- /dev/null
+++ b/engine-ocean/External/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/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_image_native_buffer.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_image_native_buffer.txt
new file mode 100644
index 0000000..7392d4f
--- /dev/null
+++ b/engine-ocean/External/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 <target> 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 <target> are listed in Table aaa, below.
+
+ +----------------------------+-----------------------------------------+
+ | <target> | Notes |
+ +----------------------------+-----------------------------------------+
+ | EGL_NATIVE_BUFFER_ANDROID | Used for ANativeWindowBuffer objects |
+ +----------------------------+-----------------------------------------+
+ Table aaa. Legal values for eglCreateImageKHR <target> parameter
+
+ ...
+
+ If <target> is EGL_NATIVE_BUFFER_ANDROID, <dpy> must be a valid display,
+ <ctx> must be EGL_NO_CONTEXT, <buffer> 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 <target> is EGL_NATIVE_BUFFER_ANDROID and <buffer> is not a
+ pointer to a valid ANativeWindowBuffer, the error EGL_BAD_PARAMETER
+ is generated.
+
+ * If <target> is EGL_NATIVE_BUFFER_ANDROID and <ctx> is not
+ EGL_NO_CONTEXT, the error EGL_BAD_CONTEXT is generated.
+
+ * If <target> is EGL_NATIVE_BUFFER_ANDROID and <buffer> 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/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt
new file mode 100644
index 0000000..d72edd7
--- /dev/null
+++ b/engine-ocean/External/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 <type> parameter of eglCreateSyncKHR, and returned
+ in <value> when eglGetSyncAttribKHR is called with <attribute>
+ EGL_SYNC_TYPE_KHR:
+
+ EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144
+
+ Accepted by the <attrib_list> parameter of eglCreateSyncKHR:
+
+ EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145
+
+ Accepted by the <attrib_list> parameter of eglCreateSyncKHR, and returned
+ by eglDupNativeFenceFDANDROID in the event of an error:
+
+ EGL_NO_NATIVE_FENCE_FD_ANDROID -1
+
+ Returned in <value> when eglGetSyncAttribKHR is called with <attribute>
+ 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 <type> 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 <sync> 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 <sync> unblock."
+
+ Modify the list of eglCreateSyncKHR errors in Section 3.8.1 (Sync Objects),
+ added by KHR_fence_sync
+
+ "Errors
+ ------
+
+ * If <dpy> is not the name of a valid, initialized EGLDisplay,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_DISPLAY error is
+ generated.
+ * If <type> is EGL_SYNC_FENCE_KHR and <attrib_list> is neither NULL nor
+ empty (containing only EGL_NONE), EGL_NO_SYNC_KHR is returned and an
+ EGL_BAD_ATTRIBUTE error is generated.
+ * If <type> is EGL_SYNC_NATIVE_FENCE_ANDROID and <attrib_list> 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 <type> is not a supported type of sync object,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_ATTRIBUTE error is
+ generated.
+ * If <type> 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 <type> is EGL_SYNC_FENCE_KHR or EGL_SYNC_NATIVE_FENCE_ANDROID and
+ <dpy> 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 <type> 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 <sync> will no
+ longer be the handle of a valid sync object. Additionally, if <sync> 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 <sync> is not a valid sync object for <dpy>,
+ 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 <sync> is
+ EGL_NO_NATIVE_FENCE_FD_ANDROID, EGL_NO_NATIVE_FENCE_FD_ANDROID is
+ returned and an EGL_BAD_PARAMETER error is generated.
+ * If <dpy> does not match the display passed to eglCreateSyncKHR
+ when <sync> 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/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_presentation_time.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_presentation_time.txt
new file mode 100644
index 0000000..ac1f45e
--- /dev/null
+++ b/engine-ocean/External/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 <khrplatform.h>
+ 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 <surface> should be
+ presented to the viewer. The <time> parameter should be a time in
+ nanoseconds, but the exact meaning of the time depends on the native
+ window system's use of the presentation time. In situations where
+ an absolute time is needed such as displaying the color buffer on a
+ display device, the time should correspond to the system monotonic up-time
+ clock. For situations in which an absolute time is not needed such as
+ using the color buffer for video encoding, the presentation time of the
+ first frame may be arbitrarily chosen and those of subsequent frames
+ chosen relative to that of the first frame.
+
+ The presentation time may be set multiple times, with each call to
+ eglPresentationTimeANDROID overriding prior calls. Setting the
+ presentation time alone does not cause the color buffer to be made
+ visible, but if the color buffer is subsequently posted to a native window
+ or copied to a native pixmap then the presentation time of the surface at
+ that time may be passed along for the native window system to use.
+
+ If the surface presentation time is successfully set, EGL_TRUE is
+ returned. Otherwise EGL_FALSE is returned and an appropriate error is
+ set. If <dpy> is not the name of a valid, initialized EGLDisplay, an
+ EGL_BAD_DISPLAY error is generated. If <surface> is not a valid EGLSurface
+ then an EGL_BAD_SURFACE error is generated.
+
+Issues
+
+ 1. How is the presentation time used?
+
+ RESOLVED: The uses of the presentation time are intentionally not specified
+ in this extension. Some possible uses include Audio/Video synchronization,
+ video frame timestamps for video encoding, display latency metrics, and
+ display latency control.
+
+ 2. How can the current value of the clock that should be used for the
+ presentation time when an absolute time is needed be queried on Android?
+
+ RESOLVED: The current clock value can be queried from the Java
+ System.nanoTime() method, or from the native clock_gettime function by
+ passing CLOCK_MONOTONIC as the clock identifier.
+
+ 3. Should the presentation time be state which is used by eglSwapBuffers,
+ or should it be a new parameter to an extended variant of eglSwapBuffers?
+
+ RESOLVED: The presentation time should be new state which is used by
+ the existing eglSwapBuffers call. Adding new state composes better with
+ other (hypothetical) extensions that also modify the behavior of
+ eglSwapBuffers.
+
+Revision History
+
+#4 (Jon Leech, June 6, 2016)
+ - Clean up for publication. Make prototype parameter name 'surface'
+ match the spec body.
+
+#3 (Jesse Hall, June 26, 2013)
+ - Enumerated errors generated by eglPresentationTimeANDROID.
+ - Added Issue #3 with resolution.
+
+#2 (Jamie Gennis, April 1, 2013)
+ - Clarified how uses that either do or do not need an absolute time should
+ be handled.
+ - Specified the eglPresentationTimeANDROID return value.
+
+#1 (Jamie Gennis, January 8, 2013)
+ - Initial draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_recordable.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_recordable.txt
new file mode 100644
index 0000000..d21094e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANDROID/EGL_ANDROID_recordable.txt
@@ -0,0 +1,140 @@
+Name
+
+ ANDROID_recordable
+
+Name Strings
+
+ EGL_ANDROID_recordable
+
+Contributors
+
+ Jamie Gennis
+
+Contact
+
+ Jamie Gennis, Google Inc. (jgennis 'at' google.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 2, July 15, 2011
+
+Number
+
+ EGL Extension #51
+
+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 records the
+ rendered image as a video each time eglSwapBuffers gets called, 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 that records images to a video.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted by the <attribute> parameter of eglGetConfigAttrib and
+ the <attrib_list> parameter of eglChooseConfig:
+
+ EGL_RECORDABLE_ANDROID 0x3142
+
+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_RECORDABLE_ANDROID boolean whether video recording is
+ supported
+
+ Section 3.4, Configuration Management, add a row to Table 3.4.
+
+ Attribute Default Selection Sort Sort
+ Criteria Order Priority
+ ---------------------- ------------- --------- ----- --------
+ EGL_RECORDABLE_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_RECORDABLE_ANDROID is a boolean indicating whether the config may
+ be used to create an EGLSurface from an ANativeWindow that is a video
+ recorder as indicated by the NATIVE_WINDOW_IS_VIDEO_RECORDER query on
+ the ANativeWindow.
+
+ 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
+
+ 1. Should this functionality be exposed as a new attribute or as a bit in
+ the EGL_SURFACE_TYPE bitfield?
+
+ RESOLVED: It should be a new attribute. It does not make sense to use up a
+ bit in the limit-size bitfield for a platform-specific extension.
+
+ 2. How should the new attribute affect the sorting of EGLConfigs?
+
+ RESOLVED: It should not affect sorting. Some implementations may not have
+ any drawback associated with using a recordable EGLConfig. Such
+ implementations should not have to double-up some of their configs to one
+ sort earlier than . Implementations that do have drawbacks can use the
+ existing caveat mechanism to report this drawback to the client.
+
+ 3. How is this extension expected to be implemented?
+
+ RESPONSE: There are two basic approaches to implementing this extension
+ that were considered during its design. In both cases it is assumed that a
+ color space conversion must be performed at some point because most video
+ encoding formats use a YUV color space. The two approaches are
+ distinguished by the point at which this color space conversion is
+ performed.
+
+ One approach involves performing the color space conversion as part of the
+ eglSwapBuffers call before queuing the rendered image to the ANativeWindow.
+ In this case, the VisualID of the EGLConfig would correspond to a YUV
+ Android HAL pixel format from which the video encoder can read. The
+ EGLConfig would likely have the EGL_SLOW_CONFIG caveat because using that
+ config to render normal window contents would result in an RGB -> YUV color
+ space conversion when rendering the frame as well as a YUV -> RGB
+ conversion when compositing the window.
+
+ The other approach involves performing the color space conversion in the
+ video encoder. In this case, the VisualID of the EGLConfig would
+ correspond to an RGB HAL pixel format from which the video encoder can
+ read. The EGLConfig would likely not need to have any caveat set, as using
+ this config for normal window rendering would not have any added cost.
+
+Revision History
+
+#2 (Jamie Gennis, July 15, 2011)
+ - Added issue 3.
+
+#1 (Jamie Gennis, July 8, 2011)
+ - Initial draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_d3d_share_handle_client_buffer.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_d3d_share_handle_client_buffer.txt
new file mode 100644
index 0000000..b205883
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_d3d_share_handle_client_buffer.txt
@@ -0,0 +1,98 @@
+Name
+
+ ANGLE_d3d_share_handle_client_buffer
+
+Name Strings
+
+ EGL_ANGLE_d3d_share_handle_client_buffer
+
+Contributors
+
+ John Bauman
+ Alastair Patrick
+ Daniel Koch
+
+Contacts
+
+ John Bauman, Google Inc. (jbauman 'at' chromium.org)
+
+Status
+
+ Complete
+ Implemented (ANGLE r650)
+
+Version
+
+ Version 3, May 12, 2011
+
+Number
+
+ EGL Extension #38
+
+Dependencies
+
+ Requires the EGL_ANGLE_surface_d3d_texture_2d_share_handle extension.
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension allows creating EGL surfaces from handles to textures
+ shared from the Direct3D API or from
+ EGL_ANGLE_surface_texture_2d_share_handle.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted in the <buftype> parameter of eglCreatePbufferFromClientBuffer:
+
+ EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
+
+Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Replace the last sentence of paragraph 1 of Section 3.5.3 with the
+ following text.
+ "Currently, the only client API resources which may be bound in this
+ fashion are OpenVG VGImage objects and Direct3D share handles."
+
+ Replace the last sentence of paragraph 2 ("To bind a client API...") of
+ Section 3.5.3 with the following text.
+ "When <buftype> is EGL_OPENVG_IMAGE, the width and height of the pbuffer
+ are determined by the width and height of <buffer>. When <buftype> is
+ EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE, the width and height are specified
+ using EGL_WIDTH and EGL_HEIGHT, or else they default to zero. The width
+ and height must match the dimensions of the texture which the share handle
+ was created from or else an EGL_BAD_ALLOC error is generated."
+
+ Replace the third paragraph of Section 3.5.3 with the following text.
+ "<buftype> specifies the type of buffer to be bound. The only allowed values
+ of <buftype> are EGL_OPENVG_IMAGE and
+ EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE".
+
+ Append the following text to the fourth paragraph of Section 3.5.3.
+ "When <buftype> is EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE, <buffer> must be
+ a valid D3D share handle, cast into the type EGLClientBuffer. The handle
+ may be obtained from the Direct3D9Ex CreateTexture function, from DXGI's
+ GetSharedHandle method on an ID3D10Texture2D, or from the
+ EGL_ANGLE_surface_d3d_texture_2d_share_handle extension."
+
+Issues
+
+Revision History
+
+ Version 3, 2011/05/12
+ - publish
+
+ Version 2, 2011/05/03
+ - specify EGL_D3D_TEXTURE_2D_SHARE_HANDLE
+ - specify error if dimensions don't match
+
+ Version 1, 2011/04/12 - first draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_device_d3d.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_device_d3d.txt
new file mode 100644
index 0000000..8e606cd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_device_d3d.txt
@@ -0,0 +1,93 @@
+Name
+
+ ANGLE_device_d3d
+
+Name Strings
+
+ EGL_ANGLE_device_d3d
+
+Contributors
+
+ Jamie Madill (jmadill 'at' google.com)
+
+Contact
+
+ Jamie Madill (jmadill 'at' google.com)
+
+Status
+
+ Complete.
+
+Version
+
+ Version 1, Mar 25, 2015
+
+Number
+
+ EGL Extension #90
+
+Extension Type
+
+ EGL device extension
+
+Dependencies
+
+ This extension is written against the language of EGL 1.5 as
+ modified by EGL_EXT_device_query.
+
+ EGL_EXT_device_query is required.
+
+Overview
+
+ ANGLE has the ability to run GPU commands on a native D3D device.
+ This extension defines a mapping from an EGL device to a D3D
+ device, after it's queried from an EGL display.
+
+IP Status
+
+ No known claims.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as a queried <attribute> in eglQueryDeviceAttribEXT:
+
+ EGL_D3D9_DEVICE_ANGLE 0x33A0
+ EGL_D3D11_DEVICE_ANGLE 0x33A1
+
+Add a new section 2.1.3 (D3D Devices) after 2.1.2 (Devices)
+
+ Somewhat analogous to an EGL device, a D3D device establishes a
+ namespace for D3D operations. In the D3D APIs, such devices are
+ represented by pointers. For more details, see the D3D
+ documentation.
+
+Changes to section 3.2 (Devices)
+
+ Replace the paragraph immediately following the prototype for
+ eglQueryDeviceAttribEXT:
+
+ <attribute> may be either EGL_D3D9_DEVICE_ANGLE or EGL_D3D11_DEVICE_ANGLE.
+ On success, EGL_TRUE is returned, and a valid D3D9 or D3D11 device pointer
+ corresponding to the EGL device is returned in <value>. This handle
+ is compatible with D3D API functions. If the EGL device is not currently
+ associated with a D3D9 device and <attribute> is EGL_D3D9_DEVICE_ANGLE,
+ or if the EGL device is not currently associated with a D3D11 device and
+ <attribute> is EGL_D3D11_DEVICE_ANGLE, EGL_BAD_ATTRIBUTE is returned,
+ and <value> is left unchanged.
+
+Issues
+
+ None
+
+Revision History
+
+ Version 1, Mar 25, 2015 (Jamie Madill)
+ - Initial Draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_query_surface_pointer.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_query_surface_pointer.txt
new file mode 100644
index 0000000..75126fc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_query_surface_pointer.txt
@@ -0,0 +1,88 @@
+Name
+
+ ANGLE_query_surface_pointer
+
+Name Strings
+
+ EGL_ANGLE_query_surface_pointer
+
+Contributors
+
+ Vladimir Vukicevic
+ Daniel Koch
+
+Contacts
+
+ Vladimir Vukicevic (vladimir 'at' pobox.com)
+
+Status
+
+ Complete
+ Implemented (ANGLE r558)
+
+Version
+
+ Version 3, February 11, 2011
+
+Number
+
+ EGL Extension #28
+
+Dependencies
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension allows querying pointer-sized surface attributes,
+ thus avoiding problems with coercing 64-bit pointers into a 32-bit
+ integer.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ EGLBoolean eglQuerySurfacePointerANGLE(
+ EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint attribute,
+ void **value);
+
+New Tokens
+
+ None
+
+Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Add to the end of the paragraph starting with "To query an
+ attribute associated with an EGLSurface" in section 3.5.6,
+ "Surface Attributes":
+
+ "If the attribute type in table 3.5 is 'pointer', then
+ eglQuerySurface returns EGL_FALSE and an EGL_BAD_PARAMETER error
+ is generated. To query pointer attributes, call:
+
+ EGLBoolean eglQuerySurfacePointerANGLE(
+ EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint attribute,
+ void **value);
+
+ eglQuerySurfacePointerANGLE behaves identically to eglQuerySurface,
+ except that only attributes of type 'pointer' can be queried.
+ If an attribute queried via eglQuerySurfacePointerANGLE is not
+ of type 'pointer', then eglQuerySurfacePointer returns EGL_FALSE
+ and an EGL_BAD_PARAMETER error is generated."
+
+Issues
+
+Revision History
+
+ Version 3, 2011/02/11 - publish
+
+ Version 2, 2010/12/21 - fix typos.
+
+ Version 1, 2010/12/07 - first draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_surface_d3d_texture_2d_share_handle.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_surface_d3d_texture_2d_share_handle.txt
new file mode 100644
index 0000000..917e445
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_surface_d3d_texture_2d_share_handle.txt
@@ -0,0 +1,95 @@
+Name
+
+ ANGLE_surface_d3d_texture_2d_share_handle
+
+Name Strings
+
+ EGL_ANGLE_surface_d3d_texture_2d_share_handle
+
+Contributors
+
+ Vladimir Vukicevic
+ Daniel Koch
+
+Contacts
+
+ Vladimir Vukicevic (vladimir 'at' pobox.com)
+
+Status
+
+ Complete
+ Implemented (ANGLE r558)
+
+Version
+
+ Version 2, December 21, 2010
+
+Number
+
+ EGL Extension #29
+
+Dependencies
+
+ Requires the EGL_ANGLE_query_surface_pointer extension.
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ Some EGL implementations generate EGLSurface handles that are
+ backed by Direct3D 2D textures. For such surfaces, a D3D share
+ handle can be generated, allowing access to the same surface
+ from the Direct3D API.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted in the <attribute> parameter of eglQuerySurfacePointerANGLE:
+
+ EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
+
+Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Add to table 3.5, "Queryable surface attributes and types":
+
+ Attribute Type Description
+ --------- ---- -----------
+ EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE pointer Direct3D share handle
+
+ Add before the last paragraph in section 3.5, "Surface attributes":
+
+ "Querying EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE returns a Direct3D
+ share handle, or NULL if a share handle for the surface is not
+ available. The share handle must be queried using
+ eglQuerySurfaceAttribPointerANGLE. Before using a Direct3D surface
+ created with this share handle, ensure that all rendering
+ to the EGLSurface with EGL client APIs has completed.
+
+ The Direct3D share handle may be passed as the pSharedHandle
+ parameter of the Direct3D9Ex CreateTexture function, or via the
+ Direct3D10 OpenSharedResource function. If used with Direct3D 9,
+ the level argument to CreateTexture must be 1, and the dimensions
+ must match the dimensions of the EGL surface. If used with
+ Direct3D 10, OpenSharedResource should be called with the
+ ID3D10Texture2D uuid to obtain an ID3D10Texture2D object.
+
+Issues
+
+Revision History
+
+ Version 3, 2011/02/11 - publish
+
+ Version 2, 2010/12/21
+ - renamed token to EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE (adding "2D")
+ - renamed extension to ANGLE_surface_d3d_texture_2d_share_handle
+ - added language about supported usage of the shared handle from D3D
+
+ Version 1, 2010/12/07 - first draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_sync_control_rate.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_sync_control_rate.txt
new file mode 100644
index 0000000..4259145
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_sync_control_rate.txt
@@ -0,0 +1,99 @@
+Name
+
+ ANGLE_sync_control_rate
+
+Name Strings
+
+ EGL_ANGLE_sync_control_rate
+
+Contact
+
+ Jonah Ryan-Davis, Google (jonahr 'at' google.com)
+
+Status
+
+ Draft.
+
+Version
+
+ Version 1, 2020-03-24
+
+ Based on GLX_OML_sync_control Revision 6.0
+ Related to EGL_CHROMIUM_sync_control Revision 2.0
+
+Number
+
+ 142
+
+Dependencies
+
+ The extension is written against the EGL 1.2 Specification, although it
+ should work on other versions of these specifications.
+
+Overview
+
+ This extension provides counters which let applications know about the
+ timing of the last vertical retrace. By looking at the system clock, as
+ well as the refresh rate of the monitor, this should enable applications
+ to predict the position of future retraces so as to schedule an optimal
+ workload.
+
+ This extension incorporates the use of a counter that provides the
+ necessary synchronization. The graphics Media Stream Counter (or
+ graphics MSC) is a counter that is unique to the graphics subsystem
+ and increments for each vertical retrace that occurs.
+
+ By querying the MSC rate for a given surface, the application can
+ accurately predict the timing for the next vertical retraces and schedule
+ rendering accordingly.
+
+Issues
+
+ None.
+
+IP Status
+
+ No known issues.
+
+New Procedures and Functions
+
+ Bool eglGetMscRateANGLE(EGLDisplay* dpy,
+ EGLSurface surface,
+ int32_t* numerator,
+ int32_t* denominator)
+
+New Tokens
+
+ None
+
+Additions to the EGL 1.3 Specification
+
+ The graphics MSC value is incremented once for each screen refresh.
+ For a non-interlaced display, this means that the graphics MSC value
+ is incremented for each frame. For an interlaced display, it means
+ that it will be incremented for each field. For a multi-monitor
+ system, the monitor used to determine MSC is the one where the surface
+ is located. If the surface spans multiple monitors, the monitor used
+ to determine MSC is the one with the biggest coverage in pixels.
+
+ eglGetMscRateANGLE returns the rate at which the MSC will be incremented
+ for the display associated with <dpy> and <surface>. The rate is expressed
+ in Hertz as <numerator> / <denominator>. If the MSC rate in Hertz is an
+ integer, then <denominator> will be 1 and <numerator> will be
+ the MSC rate.
+
+Errors
+
+ The function eglGetMscRateANGLE returns FALSE on failure.
+ If <dpy> is not a valid EGLDisplay, EGL_BAD_DISPLAY is generated.
+ If <surface> is not a valid EGLSurface, EGL_BAD_SURFACE is generated.
+ If there is no current EGLContext, EGL_BAD_CONTEXT is generated.
+
+New Implementation Dependent State
+
+ None
+
+Revision History
+
+ Version 1, 2020-03-24 (Jonah Ryan-Davis)
+ - Initial draft, based on GLX_OML_sync_control revision 6.0.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_window_fixed_size.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_window_fixed_size.txt
new file mode 100644
index 0000000..6e60e86
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ANGLE/EGL_ANGLE_window_fixed_size.txt
@@ -0,0 +1,136 @@
+Name
+
+ ANGLE_window_fixed_size
+
+Name Strings
+
+ EGL_ANGLE_window_fixed_size
+
+Contributors
+
+ John Bauman
+ Shannon Woods
+
+Contacts
+
+ John Bauman, Google Inc. (jbauman 'at' google.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 4, February 24, 2014
+
+Number
+
+ EGL Extension #85
+
+Dependencies
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension allows creating a window surface with a fixed size that is
+ specified when it is created.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted by the <attribute> parameter of eglQuerySurface and by the
+ <attrib_list> parameter of eglCreateWindowSurface:
+
+ EGL_FIXED_SIZE_ANGLE 0x3201
+
+Additions to Chapter 3 of the EGL 1.4 Specification:
+
+ Modify the third paragraph of Section 3.5.1 (Creating On-Screen Rendering Surfaces)
+
+ "<attrib_list> specifies a list of attributes for the window. The list has
+ the same structure as described for eglChooseConfig. Attributes that can
+ be specified in <attrib_list> include EGL_RENDER_BUFFER,
+ EGL_VG_COLORSPACE, EGL_VG_ALPHA_FORMAT, EGL_FIXED_SIZE_ANGLE, EGL_WIDTH,
+ and EGL_HEIGHT."
+
+ Add before the last paragraph of Section 3.5.1
+
+ "EGL_FIXED_SIZE_ANGLE specifies whether the surface must be resized by the
+ implementation when the native window is resized. The default value is
+ EGL_FALSE. Its value can be EGL_TRUE, in which case the size must be
+ specified when the window is created, or EGL_FALSE, in which case the size
+ is taken from the native window. Its default value is EGL_FALSE.
+
+ If the value of EGL_FIXED_SIZE_ANGLE is EGL_TRUE, the window surface's
+ size in pixels is specified by the EGL_WIDTH and EGL_HEIGHT attributes,
+ and will not change throughout the lifetime of the surface. If its value
+ is EGL_FALSE, then the values of EGL_WIDTH and EGL_HEIGHT are ignored and
+ the window surface must be resized by the implementation subsequent to the
+ native window being resized, and prior to copying its contents to the
+ native window (e.g. in eglSwapBuffers, as described in section 3.9.1.1).
+ The default values for EGL_WIDTH and EGL_HEIGHT are zero. If the value
+ specified for either of EGL_WIDTH or EGL_HEIGHT is less than zero then an
+ EGL_BAD_PARAMETER error is generated."
+
+ Add the following entry to Table 3.5
+ (Queryable surface attributes and types)
+
+ Attribute Type Description
+ -------------------- ------- ---------------------------------------------
+ EGL_FIXED_SIZE_ANGLE boolean Surface will not be resized with a native
+ window
+
+ Replace the last paragraph on page 37 in Section 3.5.6 (Surface Attributes)
+
+ "Querying EGL_WIDTH and EGL_HEIGHT returns respectively the width and
+ height, in pixels, of the surface. For a pixmap surface or window surface
+ with EGL_FIXED_SIZE_ANGLE set to EGL_FALSE, these values are initially
+ equal to the width and height of the native window or pixmap with respect
+ to which the surface was created. If the native window is resized and the
+ corresponding window surface is not fixed size, the corresponding window
+ surface will eventually be resized by the implementation to match (as
+ discussed in section 3.9.1). If there is a discrepancy because EGL has not
+ yet resized the window surface, the size returned by eglQuerySurface will
+ always be that of the EGL surface, not the corresponding native window."
+
+ Add the following paragraph to Section 3.5.6 (Surface Attributes)
+
+ "Querying EGL_FIXED_SIZE_ANGLE returns EGL_FALSE if the surface will be
+ resized to match a native window, and EGL_TRUE if the surface cannot be
+ resized."
+
+ Alter the beginning of the first paragraph of Section 3.9.1.1 (Native
+ Window Resizing)
+
+ "If <surface> does not have EGL_FIXED_SIZE_ANGLE set and the native window
+ corresponding to <surface> has been resized prior to the swap, <surface>
+ must be resized to match."
+
+Issues
+
+ 1. Should there be a way to resize a window surface that had its size
+ specified initially.
+
+ RESOLVED: No. Surfaces that have their sizes specified initially must have
+ EGL_FIXED_SIZE_ANGLE set and can never be resized.
+
+Revision History
+
+ Version 4, 2014/02/24 - formatting changes.
+
+ Version 3, 2014/02/12 - ignore EGL_WIDTH and EGL_HEIGHT if
+ EGL_FIXED_SIZE_ANGLE is EGL_FALSE
+
+ Version 2, 2014/02/07 - rename to EGL_ANGLE_window_fixed_size, and add an
+ EGL_FIXED_SIZE_ANGLE token.
+
+ Version 1, 2014/02/05 - first draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_image_format.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_image_format.txt
new file mode 100644
index 0000000..c1a40ec
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_image_format.txt
@@ -0,0 +1,126 @@
+Name
+
+ ARM_image_format
+
+Name Strings
+
+ EGL_ARM_image_format
+
+Contributors
+
+ Jan-Harald Fredriksen
+
+Contact
+
+ Jan-Harald Fredriksen (jan-harald.fredriksen 'at' arm.com)
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Complete
+
+Version
+
+ Version 1 - February 18, 2020
+
+Number
+
+ 138
+
+Dependencies
+
+ This extension is written against the wording of the EGL 1.4
+ specification.
+
+ This extension reuses tokens from EGL_EXT_pixel_format_float.
+
+Overview
+
+ When an EGLImage is created from an existing image resource the
+ implementation will deduce the format of the image data from that
+ resource. In some cases, however, the implementation may not know how to
+ map the existing image resource to a known format. This extension extends
+ the list of attributes accepted by eglCreateImageKHR such that applications
+ can tell the implementation how to interpret the data.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as an attribute name in the <attrib_list> argument of
+ eglCreateImageKHR:
+ EGL_COLOR_COMPONENT_TYPE_EXT 0x3339
+
+ Accepted as attribute values for the EGL_COLOR_COMPONENT_TYPE_EXT attribute
+ of eglCreateImageKHR:
+
+ EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A
+ EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
+ EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287
+ EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288
+ EGL_RED_SIZE 0x3024
+ EGL_GREEN_SIZE 0x3023
+ EGL_BLUE_SIZE 0x3022
+ EGL_ALPHA_SIZE 0x3021
+
+Modifications to the EGL 1.4 Specification
+
+ Add the following rows to Table 3.xx: Legal attributes for
+ eglCreateImageKHR <attrib_list> parameter:
+
+ +------------------------------+------------------------------+-----------+---------------+
+ | Attribute | Description | Valid | Default Value |
+ | | | <target>s | |
+ +------------------------------+------------------------------+-----------+---------------+
+ | EGL_COLOR_COMPONENT_TYPE_EXT | Specifies the component | All | NA |
+ | | type the EGLImage source | | |
+ | | is interpreted as | | |
+ | EGL_RED_SIZE | Specifies the red component | All | NA |
+ | | size the EGLImage source | | |
+ | | is interpreted as | | |
+ | EGL_GREEN_SIZE | Specifies the green component| All | NA |
+ | | size the EGLImage source | | |
+ | | is interpreted as | | |
+ | EGL_BLUE_SIZE | Specifies the blue component | All | NA |
+ | | size the EGLImage source | | |
+ | | is interpreted as | | |
+ | EGL_ALPHA_SIZE | Specifies the alpha component| All | NA |
+ | | size the EGLImage source | | |
+ | | is interpreted as | | |
+ +------------------------------+------------------------------+-----------+---------------+
+
+ If <attrib_list> specifies values for EGL_COLOR_COMPONENT_TYPE_EXT,
+ EGL_RED_SIZE, EGL_GREEN_SIZE, EGL_BLUE_SIZE, or EGL_ALPHA_SIZE, the
+ implementation will treat these as hints for how to interpret the contents
+ of <buffer>.
+
+ EGL_COLOR_COMPONENT_TYPE_EXT indicates the component type of <buffer> and
+ must be either EGL_COLOR_COMPONENT_TYPE_FIXED_EXT for fixed-point,
+ EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT for floating-point,
+ EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM for unsigned integer, or
+ EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM for integer components.
+
+Add to the list of error conditions for eglCreateImageKHR:
+
+ * If the implementation is unable to interpret the contents <buffer>
+ according to the component types and sizes in <attrib_list>, then a
+ EGL_BAD_MATCH error is generated.
+
+Issues
+
+ 1. Should there be a way to specify the component order?
+
+ Resolved. No, the component order is interpreted to be R, G, B, A,
+ with R mapping to component 0. If the application needs a different
+ component order it can use swizzle in the client API side or in the
+ shader.
+
+Revision History
+
+ Version 1, 2020/02/18
+ - Internal revisions
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_implicit_external_sync.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_implicit_external_sync.txt
new file mode 100644
index 0000000..bce6a74
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_implicit_external_sync.txt
@@ -0,0 +1,219 @@
+Name
+
+ ARM_implicit_external_sync
+
+Name Strings
+
+ EGL_ARM_implicit_external_sync
+
+Contributors
+
+ David Garbett
+ Ray Smith
+
+Contacts
+
+ David Garbett, ARM Ltd. (david 'dot' garbett 'at' arm 'dot' com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 1, September 8, 2014
+
+Number
+
+ EGL Extension #103
+
+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 extends the "fence sync objects" defined in
+ EGL_KHR_fence_sync. It allows the condition that triggers the associated
+ fence command in the client API command stream to be explicitly specified on
+ fence object creation. It introduces a new condition that can be used to
+ ensure ordering between operations on buffers that may be accessed
+ externally to the client API, when those operations use an implicit
+ synchronization mechanism. Such a fence object will be signaled when all
+ prior commands affecting such buffers are guaranteed to be executed before
+ such external commands.
+
+ Applications have limited control over when a native buffer is read or
+ written by the GPU when imported as an EGLImageKHR or via
+ eglCreatePixmapSurface, which is controlled by the EGL and client API
+ implementations. While eglWaitClient or a client call such as glFinish
+ could be called, this forces all rendering to complete, which can result in
+ CPU/GPU serialization. Note this isn't an issue for window surfaces, where
+ eglSwapBuffers ensures the rendering occurs in the correct order for the
+ platform.
+
+ Some platforms have an implicit synchronization mechanism associated with
+ native resources, such as buffers. This means that accesses to the buffer
+ have an implicit ordering imposed on them, without involvement from the
+ application. However, this requires that an application that has imported
+ an affected buffer into EGL has a mechanism to flush any drawing operations
+ in flight such that they are waiting on the synchronization mechanism.
+ Otherwise the application cannot guarantee that subsequent operations (such
+ as displaying a rendered buffer) will occur after the commands performed by
+ the client API (such as rendering the buffer).
+
+ The mechanism to wait for the synchronization mechanism should not require
+ the application to wait for all rendering to complete, so that it can
+ continue preparing further commands asynchronously to the queued commands.
+ This extension provides this functionality using the new condition type for
+ fence sync objects, so the application only waits for the external
+ synchronization.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as a value of the EGL_SYNC_CONDITION_KHR attribute passed in the
+ <attrib_list> list to eglCreateSyncKHR when <type> is EGL_FENCE_SYNC_KHR,
+ and can populate <*value> when eglGetSyncAttribKHR is called with
+ <attribute> set to EGL_SYNC_CONDITION_KHR:
+
+ EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Add the following after the fifth paragraph of Section 3.8.1 (Sync Objects),
+ added by KHR_fence_sync:
+
+ "Typically client APIs are considered to execute commands in a linear queue,
+ where a prior command is executed and completes before a later command is
+ started. By default fence sync objects adhere to this model - a fence is
+ signaled once prior commands have completed. However on some platforms a
+ command in a client API may transition through multiple states before it
+ completes, which may impact other components of the system. Therefore the
+ condition that all prior commands must meet before the fence is triggered is
+ configurable."
+
+ Replace the sixth paragraph of Section 3.8.1 (Sync Objects), added by
+ KHR_fence_sync:
+
+ "If, <type> is EGL_SYNC_FENCE_KHR, a fence sync object is created. In this
+ case <attrib_list> can be NULL or empty, or can specify the
+ EGL_SYNC_CONDITION_KHR attribute. Attributes of the fence sync object have
+ the following default values:"
+
+ Replace the eighth paragraph of Section 3.8.1 (Sync Objects), added by
+ KHR_fence_sync:
+
+ "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 <sync> to unblock. The
+ condition is specified by the EGL_SYNC_CONDITION_KHR attribute passed to
+ eglCreateSyncKHR.
+
+ If the condition is specified as EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR, the
+ fence sync object 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.
+
+ If the condition is specified as
+ EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM, the fence sync object is
+ satisfied by the completion of the fence command corresponding to the sync
+ object, and the <submission> of all preceding commands in the associated
+ client API context's command stream. <Submission> defines the point in time
+ when a command has been queued on any implicit synchronization mechanisms
+ present on the platform which apply to any of the resources used by the
+ command. This enforces an ordering, as defined by the synchronization
+ mechanism, between the command and any other operations that also respect
+ the synchronization mechanism(s)."
+
+ Replace the second entry in the list of eglCreateSyncKHR errors in Section
+ 3.8.1 (Sync Objects), added by KHR_fence_sync:
+
+ " * If <type> is EGL_SYNC_FENCE_KHR and <attrib_list> contains an attribute
+ other than EGL_SYNC_CONDITION_KHR, EGL_NO_SYNC_KHR is returned and an
+ EGL_BAD_ATTRIBUTE error is generated.
+ * If <type> is EGL_SYNC_FENCE_KHR and the value specified for
+ EGL_SYNC_CONDITION_KHR is not EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR or
+ EGL_SYNC_PRIOR_COMMANDS_SUBMITTED_ARM, EGL_NO_SYNC_KHR is returned and
+ an EGL_BAD_ATTRIBUTE error is generated."
+
+Issues
+
+ 1. Could glFlush guarantee commands are submitted, making this extension
+ unnecessary?
+
+ RESOLVED: The Open GL ES 3.1 specification defines glFlush() as causing "all
+ previously issued GL commands to complete in finite time". There is no
+ requirement for the execution of commands to reach any specific point before
+ it returns - a valid implementation of glFlush() could spawn a new thread
+ that sleeps for a minute before submitting the pending commands. While an
+ implementation could decide to ensure all commands are submitted within
+ glFlush(), it could not be assumed to be the case across all
+ implementations.
+
+ In addition, there may be scenarios when submitting commands within
+ glFlush() is harmful. Waiting for command submission may have a performance
+ impact on some implementations that perform processing of commands
+ asynchronously. In addition such a change may restrict what is possible in
+ the future. For example if user events were introduced into OpenGL ES they
+ have the potential of introducing deadlocks if submission in glFlush() is
+ guaranteed.
+
+ 2. Should a new entry point be defined that flushes commands synchronously,
+ instead of the new fence type as defined by this extension?
+
+ RESOLVED: While a synchronous "flush and submit" entrypoint would meet the
+ requirements for this extension, there may be a small benefit in enabling
+ the application to continue processing between flushing and waiting for
+ submission. In addition, the semantics of the existing EGL_KHR_fence_sync
+ extension closely match what is required for this extension, so defining
+ the new functionality in terms of fences may enable simpler implementations.
+
+ 3. Should OpenGL ES 3 glFenceSync be extended in preference to
+ eglCreateSyncKHR?
+
+ RESOLVED: Some platforms are yet to move to a OpenGL ES 3 implementation, or
+ may be unwilling to expose OpenGL ES 3 entrypoints to applications. As
+ EGL_KHR_fence_sync is older than OpenGL ES 3, and is comparatively a small
+ change, it has a better chance of adoption in a platform.
+
+ In addition this extension is based on the idea that there are
+ platform-specific ways to interact with the client API command stream. As
+ this is platform-specific, and does not fit with the existing model
+ typically used by client APIs (such as Open GL ES) it is better placed in
+ EGL.
+
+ Finally extending EGL has the advantage that the extension applies to all
+ client APIs.
+
+ 4. Should a new <type> parameter be defined, instead of extending the
+ EGL_FENCE_SYNC_KHR fence sync objects defined by EGL_KHR_fence_sync?
+
+ RESOLVED: Whether the new functionality is defined as an extension to the
+ existing fence sync objects, or whether they are defined as a new type of
+ sync object, we must acknowledge that the model of a client API processing
+ commands serially (with prior commands completing before later commands are
+ executed) is too simplistic for some platforms.
+
+ Extending the existing fence sync objects allows us to use the existing
+ concept of conditions that trigger the fences. It also allows the maximum
+ amount of reuse of existing functionality, potentially simplifying the
+ implementation and the use of the extension by applications.
+
+Revision History
+#1 (David Garbett, September 8, 2014)
+ - Initial draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_pixmap_multisample_discard.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_pixmap_multisample_discard.txt
new file mode 100644
index 0000000..847a749
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/ARM/EGL_ARM_pixmap_multisample_discard.txt
@@ -0,0 +1,185 @@
+Name
+
+ ARM_pixmap_multisample_discard
+
+Name Strings
+
+ EGL_ARM_pixmap_multisample_discard
+
+Contributors
+
+ Arne Bergene Fossaa
+ Tom Cooksey
+ Endre Sund
+ David Garbett
+
+Contacts
+
+ Tom Cooksey (tom 'dot' cooksey 'at' arm 'dot' com)
+
+Status
+
+ Complete.
+
+Version
+
+ Version 1, March 5, 2013
+
+Number
+
+ EGL Extension #54
+
+Dependencies
+
+ EGL 1.0 is required.
+
+ This extension is written against the wording of the EGL 1.4 Specification.
+
+Overview
+
+ ARM_pixmap_multisample_discard adds an attribute to eglCreatePixmapSurface
+ that allows the client API implementation to resolve a multisampled pixmap
+ surface, therefore allowing the multisample buffer to be discarded.
+
+ Some GPU architectures - such as tile-based renderers - are capable of
+ performing multisampled rendering by storing multisample data in internal
+ high-speed memory and downsampling the data when writing out to external
+ memory after rendering has finished. Since per-sample data is never written
+ out to external memory, this approach saves bandwidth and storage space. In
+ this case multisample data gets discarded, however this is acceptable in
+ most cases.
+
+ The extension provides the EGL_DISCARD_SAMPLES_ARM attribute that allows
+ for implicit resolution when rendering to a pixmap surface. This complements
+ the OpenGL ES EXT_multisampled_render_to_texture extension which provides
+ similar functionality for rendering to an OpenGL ES texture.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as an attribute name in the <attrib_list> argument of
+ eglCreatePixmapSurface and by the <attribute> parameter of eglQuerySurface:
+
+ EGL_DISCARD_SAMPLES_ARM 0x3286
+
+Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Modify the second paragraph under "The Multisample Buffer" of Section 3.4,
+ page 18 (Configuration Management)
+
+ "Operations such as posting a surface with eglSwapBuffers (see section
+ 3.9.1, copying a surface with eglCopyBuffers (see section 3.9.2), reading
+ from the color buffer using client API commands, binding a client API
+ context to a surface (see section 3.7.3), and flushing to a pixmap surface
+ created with the EGL_DISCARD_SAMPLES_ARM attribute enabled (see
+ section 3.5.4) may cause resolution of the multisample buffer to the color
+ buffer."
+
+ Modify the fifth paragraph under "The Multisample Buffer" of Section 3.4,
+ page 18 (Configuration Management)
+
+ "There are no single-sample depth or stencil buffers for a multisample
+ EGLConfig, or with a pixmap surface created with the
+ EGL_DISCARD_SAMPLES_ARM attribute (see section 3.5.4). The only depth and
+ stencil buffers are those in the multisample buffer. If the color samples
+ in the multisample buffer store fewer bits than are stored in the color
+ buffers, this fact will not be reported accurately. Presumably a
+ compression scheme is being employed, and is expected to maintain an
+ aggregate resolution equal to that of the color buffers."
+
+ Modify the fifth paragraph of Section 3.5.4, page 34 (Creating Native
+ Pixmap Rendering Surfaces)
+
+ "attrib list specifies a list of attributes for the pixmap. The list has the
+ same structure as described for eglChooseConfig. Attributes that can be
+ specified in attrib list include EGL_VG_COLORSPACE, EGL_VG_ALPHA_FORMAT and
+ EGL_DISCARD_SAMPLES_ARM."
+
+ Add the following between paragraphs eight and nine of Section 3.5.4,
+ page 34 (Creating Native Pixmap Rendering Surfaces)
+
+ "EGL_DISCARD_SAMPLES_ARM specifies whether the client API implementation is
+ allowed to implicitly resolve the multisample buffer. On some GPU
+ architectures - such as tile-based renderers - an implicit resolve can avoid
+ writing the multisample buffer back to external memory as the multisample
+ data is stored in internal high-speed memory.
+
+ The implicit resolve can occur when the client API uses the pixmap as the
+ source or destination of any operation, when flushing to the pixmap or when
+ the client API unbinds (or breaks) the pixmap. When these operations occur
+ is dependent on the client API implementation. They can occur as an explicit
+ part of client API functions (such as glFinish, glReadPixels and
+ glCopyTexImage) or they can occur implicitly.
+
+ Further rendering causes the implementation to read the surface buffer and
+ any ancillary buffers back in as single-sampled data.
+ Therefore use of this attribute may result in lower quality images.
+
+ Valid values are EGL_TRUE, in which case the multisample buffer can be
+ discarded, or EGL_FALSE, in which case the multisample buffer is preserved.
+ The default value is EGL_FALSE.
+
+ Note that the multisample buffer may be discarded during eglMakeCurrent
+ regardless of the value of the EGL_DISCARD_SAMPLES_ARM attribute (see
+ section 3.7.3)."
+
+ Modify the ninth paragraph of Section 3.5.4, page 34 (Creating Native
+ Pixmap Rendering Surfaces)
+
+ "On failure eglCreatePixmapSurface returns EGL_NO_SURFACE. If the attributes
+ of pixmap do not correspond to config, then an EGL_BAD_MATCH error is
+ generated. If config does not support rendering to pixmaps (the
+ EGL_SURFACE_TYPE attribute does not contain EGL_PIXMAP_BIT), an
+ EGL_BAD_MATCH error is generated. If config does not support the colorspace
+ or alpha format attributes specified in attriblist (as defined for
+ eglCreateWindowSurface), an EGL_BAD_MATCH error is generated. If config does
+ not specify non-zero EGL_SAMPLES and EGL_SAMPLE_BUFFERS and the
+ EGL_DISCARD_SAMPLES_ARM attribute is set to EGL_TRUE, then an EGL_BAD_MATCH
+ error is generated. If config is not a valid EGLConfig, an EGL_BAD_CONFIG
+ error is generated. If pixmap is not a valid native pixmap handle, then an
+ EGL_BAD_NATIVE_PIXMAP error should be generated. If there is already an
+ EGLSurface associated with pixmap (as a result of a previous
+ eglCreatePixmapSurface call), then a EGL_BAD_ALLOC error is generated.
+ Finally, if the implementation cannot allocate resources for the new EGL
+ pixmap, an EGL_BAD_ALLOC error is generated."
+
+
+ Add the following entry to Table 3.5, page 36
+ (Queryable surface attributes and types)
+
+ Attribute Type Description
+ ------------------------- ------- ---------------------------------------
+ EGL_DISCARD_SAMPLES_ARM boolean Multisample resolve when flushing to
+ surface
+
+ Add the following paragraph before the last paragraph of Section 3.5.7,
+ page 38 (Surface Attributes)
+
+ "Querying EGL_DISCARD_SAMPLES_ARM returns whether a multisample resolve
+ is forced on every flush to the surface (see section 3.5.4). This will only
+ return EGL_TRUE for pixmap surfaces created with the EGL_DISCARD_SAMPLES_ARM
+ attribute set to EGL_TRUE. EGL_FALSE will be returned for window and
+ pbuffer surfaces."
+
+Issues
+
+ 1. Should eglSurfaceAttrib accept EGL_DISCARD_SAMPLES_ARM?
+ RESOLVED: No. The attribute should be decided at surface creation time.
+
+ 2. Should eglCreateWindowSurface or eglCreatePbufferSurface accept
+ EGL_DISCARD_SAMPLES_ARM?
+ RESOLVED: No. While the attribute could equally apply to window and
+ pbuffer surfaces, no use case has been identified to justify the
+ additional maintenance this would require.
+
+Revision History
+
+ Version 1, 2013/03/05 - Original release.
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_bind_to_front.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_bind_to_front.txt
new file mode 100644
index 0000000..e83f9c9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_bind_to_front.txt
@@ -0,0 +1,108 @@
+Name
+
+ EXT_bind_to_front
+
+Name Strings
+
+ EGL_EXT_bind_to_front
+
+
+Contributors
+
+ Daniel Herring
+
+Contacts
+
+ Daniel Herring, Core Avionics & Industrial Inc., daniel dot herring at ch1group dot com
+
+Status
+
+ Complete
+
+Version
+
+ Version 1.0, February 21, 2017
+
+Number
+
+ EGL Extension #121
+
+Dependencies
+
+ Requires EGL 1.2.
+
+Overview
+
+ This extension allows for using double buffered Pbuffers for rendering to textures, by
+ allowing a new enumeration to be used in eglBindTexImage. EGL_FRONT_BUFFER_EXT is used
+ to denote reading the textures data from the front buffer of a double buffered Pbuffer.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ EGL_FRONT_BUFFER_EXT 0x3464
+
+Modify Section 3.6.1 of the EGL 1.2 Specification, paragraph 1
+ Add EGL_FRONT_BUFFER_EXT to list of acceptable values for buffer attribute.
+
+Modify Section 3.6.2 of the EGL 1.2 Specification, paragraph 5
+ Add EGL_FRONT_BUFFER_EXT to list of acceptable values for buffer attribute.
+
+Modify Section 3.5.2 of the EGL 1.2 Specification, paragraph 4
+ Add EGL_RENDER_BUFFER to list of attributes which can be accepted in attrib_list.
+
+Add to Section 3.5.2 of the EGL 1.2 Specification
+ EGL_RENDER_BUFFER specifies the number of color buffers which should be useable by the
+ client API rendering to the Pbuffer. If its value is EGL_SINGLE_BUFFER, then there is
+ one color buffer the client APIs will render to directly. If its value is EGL_BACK_BUFFER,
+ then there are at least two color buffers the client API can render to. eglSwapBuffers
+ is used to switch which color buffer is currently being rendered to. By default, all
+ client APIs should render into the back buffer. The default value of EGL_RENDER_BUFFER
+ is EGL_SINGLE_BUFFER.
+
+Modify Section 2.2.2 of the EGL 1.2 Specification, paragraph 2
+ Pbuffer surfaces have a back buffer but no associated window, so the back buffer
+ need not be copied.
+ Change to:
+ Pbuffer surfaces have no associated window, and include a back buffer, used by
+ default, for rendering to by the client API. Pbuffers may have a front buffer
+ used during render to texture operations to provide a read only texture which may
+ be used while the back buffer is being rendered to.
+
+Modify Section 3.5.6
+ Querying EGL RENDER BUFFER returns the buffer which client API rendering
+ is requested to use. For a window surface, this is the same attribute value
+ specified when the surface was created. For a Pbuffer surface, it is always
+ EGL BACK BUFFER. For a pixmap surface, it is always EGL SINGLE BUFFER. To
+ determine the actual buffer being rendered to by a context, call eglQueryContext
+ (see section 3.7.4).
+
+ Change to:
+ Querying EGL RENDER BUFFER returns the buffer which client API rendering
+ is requested to use. For a window surface or Pbuffer surface, this is the
+ same attribute value specified when the surface was created. For a pixmap
+ surface, it is always EGL SINGLE BUFFER. To determine the actual buffer being
+ rendered to by a context, call eglQueryContext (see section 3.7.4).
+
+Revision History
+ Version 1.0, 21/02/2017 - Initial Version
+
+Question:
+ What if the implementation already uses double buffering for single buffered PBuffers?
+ Such as when an implementation must insert a resolve to a texture instead of being
+ able to use the same memory.
+Answer:
+ EGL_BACK_BUFFER would still refer to the resolved buffer. But in the case of the a
+ double buffer EGL_FRONT_BUFFER should be used to reference the resolved buffer instead
+ of EGL_BACK_BUFFER as in this case the user has specified 2 buffers and knows they want
+ the resolved buffer.
+ In the double buffer case where only a back draw and a front resolved buffer is used
+ the implementation may not support EGL_BACK_BUFFER and should generate an EGL_BAD_
+ PARAMETER error when not supporting EGL_BACK_BUFFER texture binding.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_buffer_age.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_buffer_age.txt
new file mode 100644
index 0000000..5e46fa9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_buffer_age.txt
@@ -0,0 +1,329 @@
+Name
+
+ EXT_buffer_age
+
+Name Strings
+
+ EGL_EXT_buffer_age
+
+Notice
+
+ Copyright 2011,2012 Intel Cooperation
+
+IP Status
+
+ No known IP claims.
+
+Contributors
+
+ Robert Bragg
+ Neil Roberts
+ Tapani Pälli
+ Kristian Høgsberg
+ Acorn Pooley
+ James Jones
+
+Contacts
+
+ Robert Bragg, Intel (robert.bragg 'at' intel.com)
+
+Status
+
+ Complete.
+
+Version
+
+ 12 - June 13, 2013
+
+Number
+
+ EGL Extension #52
+
+Dependencies
+
+ Requires EGL 1.4
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ The aim of this extension is to expose enough information to
+ applications about how the driver manages the set of front and
+ back buffers associated with a given surface to allow applications
+ to re-use the contents of old frames and minimize how much must be
+ redrawn for the next frame.
+
+ There are lots of different ways for a driver to manage these
+ buffers, from double buffering, different styles of triple
+ buffering and even n-buffering or simply single buffer rendering.
+ We also need to consider that power management events or memory
+ pressure events might also result in some of the buffers not
+ currently in-use being freed.
+
+ This extension lets applications query the age of the back buffer
+ contents for an EGL surface as the number of frames elapsed since
+ the contents were most recently defined. The back buffer can
+ either be reported as invalid (has an age of 0) or it may be
+ reported to contain the contents from n frames prior to the
+ current frame.
+
+ Once the application has queried the buffer age, the age of
+ contents remains valid until the end of the frame for all pixels
+ that continue to pass the pixel ownership test.
+
+ For many use-cases this extension can provide an efficient
+ alternative to using the EGL_BUFFER_PRESERVED swap behaviour. The
+ EGL_BUFFER_PRESERVED swap behaviour adds a direct dependency for
+ any frame n on frame n - 1 which can affect the pipelining of
+ multiple frames but also implies a costly copy-back of data to
+ initialize the back-buffer at the start of each frame.
+
+ For example if you consider a double buffered application drawing
+ a small spinning icon, but everything else in the scene is static.
+ If we know that 2 buffers are continuously being recycled each
+ time eglSwapBuffers is called then even though 100s of frames may
+ need to be drawn to animate the icon it can be seen that the two
+ buffers are remaining unchanged except within the bounds of the
+ icon. In this scenario ideally the application would simply
+ perform an incremental update of the old buffer instead of
+ redundantly redrawing all the static parts of the scene. The
+ problem up until now though has been that EGL doesn't report how
+ buffers may be recycled so it wasn't safe for applications to try
+ and reuse their contents. Now applications can keep track of all
+ the regions that have changed over the last n frames and by
+ knowing the age of the buffer they know how to efficiently repair
+ buffers that are re-cycled instead of redrawing the entire scene.
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ EGL_BUFFER_AGE_EXT 0x313D
+
+Additions to Section 2.2 of the EGL 1.4 Specification (Rendering
+Contexts and drawing surfaces)
+
+ Add the following text to a new subsection titled "Pixel
+ Ownership Test" after the subsection titled "Interaction With
+ Native Rendering":
+
+ A fragment produced by a client api through rasterization
+ with windows coordinates (x, y) only modifies the pixel in the
+ rendering surface at that location if it passes the pixel
+ ownership test defined by the native window system.
+
+ The pixel ownership test determines if the pixel at location
+ (x, y) in a rendering surface is currently owned by the client
+ api (more precisely, by this its context). If it is not, the
+ native window system decides the fate of the incoming
+ fragment. Possible results are that the fragment is discarded
+ or that some subset of the subsequent per-fragment operations
+ are applied to the fragment. This test allows the window
+ system to control the client api behavior, for instance, when
+ a window surface is obscured.
+
+ The pixel ownership test can only fail for window surfaces,
+ not for pixmap surfaces or pbuffer surfaces.
+
+ Most native window systems will be able to guarantee that no
+ fragment will ever fail the pixel ownership test, but a
+ notable exception to this is the X11 window system where,
+ depending on the driver, the pixel ownership test may fail
+ when portions of a window are obscured.
+
+Additions to Section 3.5 of the EGL 1.4 Specification (Rendering Surfaces)
+
+ Add the following to the table of "Queryable surface attributes
+ and types":
+
+ +----------------------+---------+-----------------------------+
+ | Attribute | Type | Description |
+ +----------------------+---------+-----------------------------+
+ | EGL_BUFFER_AGE_EXT | Integer | Age of back-buffer contents |
+ +----------------------+---------+-----------------------------+
+ Table aaa: Queryable surface attributes and types.
+
+
+ Add the following text to the subsection titled "Surface
+ Attributes" in the description for eglQuerySurface
+
+ Querying EGL_BUFFER_AGE_EXT returns the age of the color
+ contents of the current back-buffer as the number of frames
+ elapsed since it was most recently defined. Applications can,
+ under certain conditions described below, use this age to
+ safely rely on the contents of old back- buffers to
+ potentially reduce the amount of redrawing they do each frame.
+ A frame is the period between calls to any of the functions in
+ table 3.X, hereafter referred to as "frame boundaries."
+
+ Function name
+ --------------------
+ eglSwapBuffers
+
+ Table 3.X, Frame Boundary Functions
+
+ Buffers' ages are initialized to 0 at buffer creation time.
+ When a frame boundary is reached, the following occurs before
+ any exchanging or copying of color buffers:
+
+ * The current back buffer's age is set to 1.
+ * Any other color buffers' ages are incremented by 1 if
+ their age was previously greater than 0.
+
+ For the purposes of buffer age tracking, a buffer's content
+ is considered defined when its age is a value greater than 0.
+
+ For example, with a double buffered surface and an
+ implementation that swaps via buffer exchanges, the age would
+ usually be 2. With a triple buffered surface the age would
+ usually be 3. An age of 1 means the previous swap was
+ implemented as a copy. An age of 0 means the buffer has only
+ just been initialized and the contents are undefined. Single
+ buffered surfaces have no frame boundaries and therefore
+ always have an age of 0.
+
+ Frame boundaries are the only events that can set a buffer's
+ age to a positive value. Once EGL_BUFFER_AGE_EXT has been
+ queried then it can be assumed that the age will remain valid
+ until the next frame boundary. EGL implementations are
+ permitted, but not required, to reset the buffer age in
+ response to pixel ownership test changes for any pixels within
+ the drawable, or if new pixels are added to or removed from
+ the drawable, i.e., the drawable is resized. A reset of this
+ nature does not affect the age of content for pixels that pass
+ the pixel ownership test before and after the event that
+ caused the reset. In other words, applications can assume
+ that no event will invalidate the content of pixels that
+ continuously pass the pixel ownership test between when the
+ buffer age was queried and the following frame boundary.
+
+ It is up to applications to track pixel ownership using data
+ collected from relevant window system events, such as
+ configuration and expose events on X11.
+
+ If the EGL implementation decides to free un-used back-buffers
+ when the system is under memory pressure or in response to
+ power-management events then EGL will return an age of 0 when
+ it allocates a new buffer at the start of a new frame.
+
+ If the EGL_BUFFER_PRESERVED swap behaviour is in use then
+ it can be assumed that the age will always be 1. It is
+ recommended where possible though that the
+ EGL_BUFFER_PRESERVED swap behaviour not be used since it can
+ have severe performance consequences. Keeping track of the
+ buffer age and the regions that have changed over the last 2
+ or 3 frames instead can often replace the need for using
+ EGL_BUFFER_PRESERVED.
+
+ EGL_BUFFER_AGE_EXT state is a property of the EGL surface that
+ owns the buffers and lives in the address space of the
+ application. That is, if an EGL surface has been created from
+ a native window or pixmap that may be shared between
+ processes, the buffer age is not guaranteed to be synchronized
+ across the processes. Binding and unbinding a surface to and
+ from one or more contexts in the same address space will not
+ affect the ages of any buffers in that surface.
+
+ Add the following text to last paragraph of the subsection titled
+ "Surface Attributes" in the description for eglQuerySurface
+ errors.
+
+ If querying EGL_BUFFER_AGE_EXT and <surface> is not bound as
+ the draw surface to the calling threads current context
+ an EGL_BAD_SURFACE error is generated.
+
+Dependencies on OpenGL ES
+
+ None
+
+Dependencies on OpenVG
+
+ None
+
+Issues
+
+ 1) What are the semantics if EGL_BUFFER_PRESERVED is in use
+
+ RESOLVED: The age will always be 1 in this case. More
+ clarification about this was added along with the
+ recommendation to use the buffer age to reuse buffers instead
+ of EGL_BUFFER_PRESERVED when possible to avoid the
+ in-efficiencies of introducing a dependency for each frame on
+ the previous frame.
+
+ 2) How can an application know that all pixels of a re-usable
+ buffer were originally owned by the current context?
+
+ RESOLVED: It is up to the application to track pixel ownership
+ using existing window system specific events, such as X11
+ expose or configure notify events.
+
+ 3) What are the semantics if the buffer age attribute is queried for
+ a surface that isn't bound to the calling thread's context as the
+ draw surface?
+
+ RESOLVED: we report an EGL_BAD_SURFACE error as is similarly
+ done when calling eglSwapBuffers for such a surface.
+
+ 4) What is the buffer age of a single buffered surface?
+
+ RESOLVED: 0. This falls out implicitly from the buffer age
+ calculations, which dictate that a buffer's age starts at 0,
+ and is only incremented by frame boundaries. Since frame
+ boundary functions do not affect single buffered surfaces,
+ their age will always be 0.
+
+ 5) What guarantees are provided after querying the buffer age?
+
+ RESOLVED: The buffer age of pixels which continue to pass the
+ pixel ownership test must remain valid until the next frame
+ boundary otherwise applications can't be absolutely sure of
+ the consistency of their rendered content. Implementations
+ may reset the queryable age of the buffer when pixel ownership
+ changes occur. This is further clarified in section 3.5
+
+Revision History
+
+ Version 1, 25/07/2011
+ - First draft
+ Version 2, 03/08/2011
+ - Clarified semantics for using EGL_BUFFER_PRESERVED
+ Version 3, 01/09/2011
+ - Fixed a prototype inconsistency
+ Version 4, 03/11/2011
+ - Split out the buffer age parts from EGL_INTEL_start_frame
+ Version 5, 20/03/2012
+ - Document that once the age is queried it remains valid until
+ the end of the frame so we can remove the need for a separate
+ EGL_EXT_start_frame extension.
+ Version 6, 20/03/2012
+ - Clarify that only buffers who's contents were fully owned by
+ the context are tracked.
+ Version 7, 20/03/2012
+ - Document that an error will be generated if querying the age
+ for a surface not bound to the current context.
+ Version 8, 25/08/2012
+ - Update in line with changes made to the GLX_EXT_buffer_age draft spec
+ including more relaxed pixel ownership requirements and explicit
+ clarification of the buffer age calculation.
+ Version 9 20/09/2012
+ - Update in line with changes made to the EGL_EXT_buffer age
+ draft space
+ Version 10 29/11/2012
+ - Add pixel ownership test section and other minor
+ clarifications
+ Version 11 13/12/2012
+ - Allocated enumerant and marked complete.
+ Version 12, 13/06/2013, Chad Versace <chad.versace@intel.com>
+ - Remove the "all rights reserved" clause from the copyright notice. The
+ removal does not change the copyright notice's semantics, since the
+ clause is already implied by any unadorned copyright notice. But, the
+ removal does diminish the likelihood of unwarranted caution in readers
+ of the spec.
+ - Add "IP Status" section to explicitly state that this extension has no
+ knonw IP claims.
+ Version 13, 14/10/2021, Guanzhong Chen
+ - Fix an incorrect token name
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_client_extensions.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_client_extensions.txt
new file mode 100644
index 0000000..8e24447
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_client_extensions.txt
@@ -0,0 +1,408 @@
+Name
+
+ EXT_client_extensions
+
+Name Strings
+
+ EGL_EXT_client_extensions
+
+Contributors
+
+ Chad Versace <chad.versace@intel.com>
+ Ian Romanick <ian.d.romanick@intel.com>
+ Jakob Bornecrantz <jakob@vmware.com>
+ James Jones <jajones@nvidia.com>
+
+Contacts
+
+ Chad Versace <chad.versace@intel.com>
+
+Status
+
+ Complete
+
+Version
+
+ Version 11, 2013.10.10
+
+Number
+
+ EGL Extension #58
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Requires EGL 1.4.
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension introduces the concept of *extension type*, requires that
+ each EGL extension belong to exactly one type, and defines two types:
+ display and client. It also provides a method to query, without
+ initializing a display, the set of supported client extensions.
+
+ A display extension adds functionality to an individual EGLDisplay. This
+ type of extension has always existed but, until EGL_EXT_client_extensions,
+ lacked an identifying name.
+
+ A client extension adds functionality that is independent of any display.
+ In other words, it adds functionality to the EGL client library itself. This
+ is a new type of extension defined by EGL_EXT_client_extensions.
+ EGL_EXT_client_extensions is itself a client extension.
+
+ We suggest that each future extension clearly state its type by including
+ the following toplevel section in its extension specification, preceding the
+ Dependencies section. For client extensions, this suggestion is
+ a requirement.
+
+ Extension Type
+
+ <Either "EGL display extension" or "EGL client extension" or
+ a future extension type.>
+
+ By cleanly separating display extensions from client extensions,
+ EGL_EXT_client_extensions solves a bootstrap problem for future EGL
+ extensions that will modify display initialization. To query for such
+ extensions without EGL_EXT_client_extensions, an EGL client would need to
+ initialize a throw-away EGLDisplay solely to query its extension string.
+ Initialization of the throw-away display may have undesired side-effects
+ (discussed in the issues section below) for EGL clients that wish to use the
+ new methods of display initialization.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ None
+
+Additions to the EGL 1.4 Specification:
+
+
+ Add the following section to Chapter 2 "EGL Operation":
+
+ "2.n Extensions
+
+ EGL implementations may expose additional functionality beyond that
+ described by this specification. Additional functionality may include new
+ functions, new enumerant values, and extended behavior for existing
+ functions. Implementations advertise such extensions to EGL by exposing
+ *extension strings*, which are queryable with eglQueryString.
+
+ Each EGL extension belongs to exactly one of the following types:
+
+ Display Extensions
+ A *display extension* adds functionality to an individual
+ EGLDisplay. Different instances of EGLDisplay may support different
+ sets of display extensions.
+
+ Client Extensions
+ A *client extension* adds functionality that is independent of any
+ display. In other words, it adds functionality to the EGL client
+ library itself. In a given process, there exists exactly one set,
+ possibly empty, of supported client extensions. When the client
+ extension string is first queried, that set becomes immutable."
+
+ Replace the paragraph in section 3.3 "EGL Versioning" that begins "The
+ EGL_EXTENSIONS string" with the following text:
+
+ "The EGL_EXTENSIONS string describes which set of EGL extensions are
+ supported. The string is zero-terminated and contains a space-separated
+ list of extension names; extension names themselves do not contain spaces.
+ If there are no extensions to EGL, then the empty string is returned.
+
+ If <dpy> is EGL_NO_DISPLAY, then the EGL_EXTENSIONS string describes the set
+ of supported client extensions. If <dpy> is a valid, initialized display,
+ then the EGL_EXTENSIONS string describes the set of display extensions
+ supported by the given display. The set of supported client extensions is
+ disjoint from the set of extensions supported by any given display [fn].
+
+ [fn] This is a consequence of the requirement in Section 2.n Extensions that
+ each extension belong to exactly one extension type."
+
+ Replace the last paragraph of section 3.3 "EGL Versioning" with:
+
+ "On failure, NULL is returned. An EGL_BAD_DISPLAY error is generated if
+ <dpy> is not a valid display, unless <dpy> is EGL_NO_DISPLAY and <name> is
+ EGL_EXTENSIONS. An EGL_NOT_INITIALIZED error is generated if <dpy> is
+ a valid but uninitialized display. An EGL_BAD_PARAMETER error is generated
+ if <name> is not one of the values described above."
+
+Conformance Tests
+
+ 1. Before any call to eglGetDisplay, call `eglQueryString(EGL_NO_DISPLAY,
+ EGL_EXTENSIONS)`. Verify that either
+
+ a. The call returns NULL and generates EGL_BAD_DISPLAY.
+ b. The call returns an extension string that contains, at a minimum,
+ this extension and generates no error.
+
+ 2. Obtain a display with eglGetDisplay but do not initialize it. Verity
+ that passing the uninitialized display to `eglQueryString(dpy,
+ EGL_EXTENSIONS)` returns NULL and generates EGL_NOT_INITIALIZED.
+
+ 3. Obtain a list of display extensions by calling `eglQueryString(dpy,
+ EGL_EXTENSIONS)` on an initialized display. Obtain the list of client
+ extensions by calling `eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS)`.
+ If both calls succeed, verify the two lists are disjoint.
+
+Issues
+
+ 1. How should clients detect if this extension is supported?
+
+ RESOLVED: If an EGL implementation supports this extension, then
+ `eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS)` returns
+ a well-formed extension string and generates no error. Otherwise, it
+ returns NULL and generates EGL_BAD_DISPLAY.
+
+ 2. On EGL platforms that define EGL_NO_DISPLAY as NULL, does not calling
+ `eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS)` risk a null pointer
+ dereference? Therefore, how is it possible on such platforms for
+ a client to safely detect if this extension is supported?
+
+ RESOLVED: According to the EGL 1.4 specification, calling
+ `eglQueryString(EGL_NO_DISPLAY, name)` returns NULL and generates
+ EGL_BAD_DISPLAY. No null pointer dereference occurs even if the
+ platform defines EGL_NO_DISPLAY as NULL.
+
+ 3. What existing extensions should returned by
+ `eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS)`?
+
+ RESOLVED: Possibly EGL_NV_system_time.
+
+ 4. What should be the relationship between the extension string of
+ EGL_NO_DISPLAY and the extension string of a valid display? That is,
+ should the former be a subset of the latter? Should the two be
+ disjoint? Should the relationship remain undefined?
+
+ Another phrasing of this issue is: When, if ever, should client
+ extensions appear in a display's extension string?
+
+ RESOLVED: The extension string of EGL_NO_DISPLAY must be disjoint
+ from the extension string of any valid display. That is, EGL_NO_DISPLAY
+ must advertise only client extensions, and valid displays must not
+ advertise client extensions. By defining a clear relationship between
+ the two types of extension strings, we enforce consistent behavior among
+ implementations, thus preventing possible confusion from application
+ developers.
+
+ DISCUSSION: This resolution has special implications for systems where
+ libEGL is a vendor-independent library that loads and then dispatches
+ to the appropriate vendor-provided EGL library. The resolution requires
+ that client extensions, as well the construction of extension strings,
+ be at least partially implemented in the vendor-independent library.
+
+ The alternative resolution of mandating the 'superset' relation (that
+ is, that the extension string of a valid display must be a superset of
+ that of EGL_NO_DISPLAY) was rejected due to potential confusion on
+ behalf of the application developer as well as the driver implementer.
+ What follows is an example of each.
+
+ a) Suppose an EGL implementation supported creation of
+ a software-renderer EGLDisplay through a client extension named
+ EGL_XYZ_platform_software_renderer. If the 'superset' relation were
+ mandated, then each display, whether it were hardware-accelerated or
+ software-only, would advertise the EGL_XYZ_platform_software_renderer
+ extension string. This would likely confuse application developers.
+
+ b) If the 'superset' relation were mandated, then the possibility
+ exists that a vendor would ship a hybrid extension that is both
+ a client extension and a display extension. Such a hybrid extension
+ poses subtle difficulties for systems where libEGL is
+ a vendor-independent library that dispatches to the appropriate
+ vendor-provided EGL driver. On such a system, the extension's hybrid
+ nature may require that each vendor-provided EGL driver support the
+ extension before the vendor-independent EGL library could safely
+ expose the extension. By choosing the 'disjoint' relation rather
+ than 'superset', we prevent this problematic situation from
+ occuring.
+
+ 5. Should client extension specifications explicitly state they are
+ returned in the extension string of EGL_NO_DISPLAY?
+
+ RESOLVED: Yes. Enforce this by requiring that client extension
+ specifications contain the toplevel section "Extension Type".
+
+ 6. As explained in the overview section, this "extension solves
+ a bootstrap problem for future EGL extensions that modify display
+ initialization". What solutions to the bootstrap problem were
+ considered? Why was EGL_EXT_client_extensions chosen as the best
+ solution?
+
+ DISCUSSION: First let's discuss the exact nature of the bootstrap
+ problem and of the future EGL extensions that modify display
+ initialization.
+
+ Mesa's EGL implementation supports multiple native platforms (such as
+ Wayland, GBM, and X11) at runtime, and we expect that more
+ implementations will do so in the future. The EGL API is deficient for
+ such implementations because it does not yet provide a way for clients
+ to query the set of supported native platforms. Also, EGL provides no
+ way for clients to specify to which platform the native display belongs
+ during display initialization. (That is, eglGetDisplay has a native
+ display parameter, but no parameter specifying the native platform).
+
+ Future EGL extensions, currently under progress, will solve these
+ deficiencies in the EGL API by (1) adding a variant of eglGetDisplay
+ that allows specification of the platform to which the native display
+ belongs and (2) by advertising the set of native platforms supported by
+ the implementation.
+
+ However, there exists a bootstrap problem here. To query if a given
+ native platform is supported, the EGL client must initialize an
+ EGLDisplay to query its extension string. But, not yet knowing which
+ native platforms the EGL implementation supports, the client cannot
+ safely pass any native display to eglGetDisplay, and therefore cannot
+ obtain an extension string.
+
+ The following solutions to this bootstrap problem have been considered.
+ For conciseness, let's refer to the future EGL extensions that modify
+ display initialization as "client extensions".
+
+ 1. PROPOSED SOLUTION: To determine if an EGL implementation supports
+ a given client extension, require that the EGL client call
+ eglGetProcAddress on some function defined by the extension. If
+ eglGetProcAddress returns non-null, then the implementation
+ supports the extension.
+
+ ANALYSIS: The EGL 1.4 spec permits eglGetProcAddress to return
+ non-null for unrecognized function names. Therefore, this
+ solution's method may produce false positives on some
+ implementations.
+
+ Also, this solution does not permit detection of client extensions
+ that add no new functions.
+
+ 2. PROPOSED SOLUTION: To determine if an EGL implementation supports
+ a given client extension, the EGL client should examine the
+ extension string of EGL_DEFAULT_DISPLAY. Querying
+ EGL_DEFAULT_DISPLAY is a failsafe mechanism by which the EGL
+ client can obtain an extension string, because EGL_DEFAULT_DISPLAY
+ is a valid input to eglGetDisplay regardless of which platforms
+ the EGL implementation supports.
+
+ ANALYSIS: This solution is awkward. It requires that the client
+ initialize a throw-away EGLDisplay solely to query its extension
+ string, even though the desired extension is not a property of any
+ display but of the EGL library itself.
+
+ This solution also has a subtle fatal problem. It is not backwards
+ compatible with Mesa. As of 2013-06-07, Mesa's EGL implementation
+ stores at runtime a user-chosen native platform in global
+ write-once state. Calling eglGetDisplay is one action that
+ results in writing to that state. Therefore, if a client process
+ running on such a problematic version of Mesa initialized
+ EGL_DEFAULT_DISPLAY solely to detect some client extension, then
+ the client process would be confined for its lifetime to use only
+ that platform to which EGL_DEFAULT_DISPLAY belongs. This
+ confinement may be fatal if the process had wanted to use
+ a different platform.
+
+ 3. PROPOSED SOLUTION: Abandon the concept of client extensions.
+ Instead, in implementations that support multiple window systems
+ at runtime, eglGetDisplay should autodetect the platform to which
+ the native display belongs. A suitable error should be generated
+ if an unsupported native display is passed to eglGetDisplay.
+
+ ANALYSIS: For some native platforms, the display type is opaque
+ with no defined ABI. (For example, in libX11 the 'Display' type is
+ an opaque typedef). There exists no method by which eglGetDisplay
+ could reliably detect that the given native display belongs to
+ such a platform.
+
+ This solution also has a subtle fatal problem. The client
+ extensions will likely specify that an EGL client may create EGL
+ resources from multiple platforms in the same process. But, Mesa's
+ global write-once state, mentioned above, prevents using multiple
+ platforms in one process. Therefore, under this proposed solution
+ and on a system where a problematic version of Mesa is installed,
+ the client would be unable to detect if EGL supported multiple
+ platforms per process without committing to the platform to which
+ the first initialized display belonged.
+
+ 4. ACCEPTED SOLUTION: Allow the EGL client to query the extension
+ string of EGL_NO_DISPLAY, which would contain the client
+ extensions.
+
+ ANALYSIS: This solution does not require the initialization of
+ a throw-away EGLDisplay, nor does it require that native display
+ types have a fixed ABI.
+
+ This is the solution described by this extension specification,
+ EGL_EXT_client_extensions.
+
+Revision History
+
+ Version 11, 2013.10.10 (Chad Versace)
+ - Fix conformance test #3. It should require that the display extension
+ list be disjoint to rather than a superset of the client extension
+ list. (The 'superset' requirement was changed pre-publication to
+ 'disjoint' in version 8).
+
+ Version 10, 2013.07.03 (Chad Versace)
+ - Version 9 and 10 are identical due to a versioning error.
+
+ Version 9, 2013.07.03 (Chad Versace)
+ - Define the concept of *extension type*, require require that each EGL
+ extension belong to exactly one type, and define two types: display
+ and client.
+ - Suggest new section "Extension Type" for future extension
+ specifications.
+ - Add new section 2.n Extensions.
+ - Simplify modifications to section 3.3 by using the new extension type
+ terminology.
+
+ Version 8, 2013.07.01 (Chad Versace)
+ - Change resolution of Issue 4 from the 'superset' relation to the
+ 'disjoint' relation, according to discussion with Jakob Bornecrantz.
+ Acked by James Jones.
+
+ Version 7, 2013.06.10 (Chad Versace)
+ - Fix typos.
+ s/unitialized/uninitialized/
+ s/EGL_NO_EXTENSIONS/EGL_EXTENSIONS/
+
+ Version 6, 2013.06.07 (Chad Versace)
+ - Remove the Motivation section, merging its content into the Overview
+ section and Issue 6.
+
+ Version 5, 2013.06.07 (Chad Versace)
+ - Resolve issue 3 regarding classifying currently published extensions
+ as client extensions.
+ - Resolve issue 4 regarding the relationship among client and display
+ extension strings.
+ - Add and resolve issue 5, requiring client extension specifications
+ to contain language about the EGL_NO_DISPLAY extension string.
+
+ Version 4, 2013.05.14 (Chad Versace)
+ - Add issue 4.
+
+ Version 3, 2013.03.24 (Chad Versace)
+ - Fix conformance test condition 1.b. The returned extension string
+ should list, at a minimum, this extension. [Found by Ian Romanick].
+ - Add section "Movivation". [Requested by Ian Romanick].
+
+ Version 2, 2013.03.06 (Chad Versace)
+ - Remove enum EGL_CLIENT_EXTENSIONS_EXT. Reuse EGL_EXTENSIONS for that
+ purpose.
+ - To obtain client extensions, require the eglQueryString be called
+ with dpy=EGL_NO_DISPLAY rather than dpy=NULL. [Suggested by James
+ Jones].
+ - Add descriptions of conformance tests. [Suggested by Ian Romanick].
+ - Add sections "Overview" and "Issues".
+
+ Version 1, 2013.03.06 (Chad Versace)
+ - First draft
+
+# vim: filetype=text expandtab autoindent shiftwidth=4 textwidth=80:
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_client_sync.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_client_sync.txt
new file mode 100644
index 0000000..1868feb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_client_sync.txt
@@ -0,0 +1,146 @@
+Name
+
+ EXT_client_sync
+
+Name Strings
+
+ EGL_EXT_client_sync
+
+Contributors
+
+ Daniel Kartch
+
+Contacts
+
+ Daniel Kartch, NVIDIA Corporation (dkartch 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 2, April 20, 2018
+
+Number
+
+ EGL Extension #129
+
+Extension type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL_EXT_sync_reuse
+
+Overview
+
+ The EGL_KHR_reusable_sync extension defines an EGL_SYNC_REUSABLE_KHR
+ EGLSync type which is signaled and unsignaled by client events. The
+ EGL_EXT_sync_reuse extension allows all EGLSyncs to become reusable.
+ The signaling behavior associated with EGL_SYNC_REUSABLE_KHR is
+ still desirable, but the name becomes misleading if all EGLSyncs can
+ be reused. This extension defines an EGLSync type with equivalent
+ behavior, separating the signaling mechanism from the reusability.
+
+New Procedures and Functions
+
+ EGLBoolean eglClientSignalSyncEXT(
+ EGLDisplay dpy,
+ EGLSync sync,
+ const EGLAttrib *attrib_list);
+
+New Types
+
+ None
+
+New Tokens
+
+ Accepted by the <type> parameter of eglCreateSync, and returned
+ in <value> when eglGetSyncAttrib is called with <attribute>
+ EGL_SYNC_TYPE:
+
+ EGL_SYNC_CLIENT_EXT 0x3364
+
+ Returned in <value> when eglGetSyncAttrib is called with attribute
+ EGL_SYNC_CONDITION:
+
+ EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365
+
+Add to the list of sync object decriptions in 3.8.1 Sync Objects
+
+ A <client sync object> reflects the readiness of some client-side
+ state. Sync objects of this type are not visible to API contexts and
+ may not be used with eglWaitSync. They may be waited for with
+ eglClientWaitSync or polled with eglGetSyncAttrib as other sync
+ types.
+
+Add to the end of 3.8.1 Sync Objects
+
+ The command
+
+ EGLBoolean eglClientSignalSyncEXT(EGLDisplay dpy, EGLSync sync,
+ const EGLAttrib *attrib_list);
+
+ may be called to switch sync objects which support it to the
+ signaled state. Currently only sync objects with type
+ EGL_SYNC_CLIENT_EXT provide this support. The attribute list may be
+ used to provide additional information to the signaling operation,
+ as defined for the sync type.
+
+ Errors
+
+ eglClientSignalSyncEXT returns EGL_FALSE on failure, and has no
+ effect on <sync>.
+ If <dpy> is not the name of a valid, initialized EGLDisplay, an
+ EGL_BAD_DISPLAY error is generated.
+ If <sync> is not a valid sync object associated with <dpy>, an
+ EGL_BAD_PARAMETER error is generated.
+ If <attrib_list> contains an attribute name not defined for the
+ type of <sync>, an EGL_BAD_ATTRIBUTE error is generated.
+ If <sync>'s type does not support this direct signaling, an
+ EGL_BAD_ACCESS error is generated.
+
+Insert new subsection in 3.8.1 Sync Objects
+
+ 3.8.1.x Creating and Signaling Client Sync Objects
+
+ If type is EGL_SYNC_CLIENT_EXT, a client sync object is created. The
+ EGL_SYNC_STATUS attribute may be specified as either EGL_UNSIGNALED
+ or EGL_SIGNALED, and will default to EGL_UNSIGNALED. No other
+ attributes may be specified for a client sync object. The value of
+ EGL_SYNC_CONDITION will be set to EGL_SYNC_CLIENT_SIGNAL_EXT.
+
+ A client sync object in the unsignaled state will switch to the
+ signaled state when eglClientSignalSyncEXT is called. No attributes
+ are supported for signaling a sync object of this type. Signaling a
+ client sync object which is already in the signaled state will have
+ no effect.
+
+ A client sync object which is in the signaled state may be switched
+ back to the unsignaled state with eglUnsignalSyncEXT. No attributes
+ are supported for unsignaling a sync object of this type.
+
+Add to the error list for eglWaitSync in 3.8.1.3 Waiting for Sync
+Objects
+
+ If <sync> is of type EGL_SYNC_CLIENT_EXT, an EGL_BAD_ACCESS error is
+ generated.
+
+Issues
+
+ None
+
+Revision History
+
+ #2 (April 20, 2018) Daniel Kartch
+ - Renamed to EXT
+ - Fixed missing attrib_list in New Functions section
+ - Eliminated condition as an allowed attribute at creation. This
+ is inconsistent with other sync extensions, and there is no
+ need to make it configurable at this time. Future extensions
+ can make the condition configurable if desired.
+
+ #1 (Feburary 22, 2018) Daniel Kartch
+ - Initial draft as XXX
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_compositor.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_compositor.txt
new file mode 100644
index 0000000..6e98428
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_compositor.txt
@@ -0,0 +1,400 @@
+Name
+
+ EXT_compositor
+
+Name Strings
+
+ EGL_EXT_compositor
+
+Contributors
+
+ Marc Moody
+ Daniel Herring
+
+Contacts
+
+ Marc Moody, Boeing Inc., marc dot d dot moody at boeing dot com
+ Daniel Herring, Core Avionics & Industrial Inc., daniel dot herring at ch1group dot com
+
+Status
+
+ Complete
+
+Version
+ Version 1.0, February 3, 2017
+
+Number
+
+ EGL Extension #116
+
+Dependencies
+
+ Requires EGL 1.0.
+
+ This extension is written against the wording of the EGL 1.4
+ Specification - April 6, 2011, but may be implemented against earlier
+ versions.
+
+Overview
+
+ This extension allows for the composition of multiple windows within
+ a multi-partition EGL system. The extension allows a primary EGLContext and
+ window to be created for each display. All other windows are created using
+ non-displayable surfaces. A handle to each off-screen window is provided
+ to the primary EGLContext to allow the composition of all non-displayable windows
+ on a single display.
+
+ For each display, there is one EGLContext which has access to create on screen
+ windows, this is call the primary context for this display. All other EGLContexts
+ are referred to as secondary contexts.
+
+ This extension requires a multi-partition EGL driver to support asynchronous
+ rendering of off screen surfaces.
+
+ Information assurance is provided by preventing context and surface creation by
+ unregistered contexts and by preventing the non-primary contexts and surfaces
+ from rendering to the display.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ 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);
+
+
+New Tokens
+
+ New attributes accepted by the <attrib_list> argument of
+ eglCreateContext:
+
+ EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460
+
+ New attributes accepted by the <attrib_list> argument of
+ eglCreateContext and eglCreateWindowSurface:
+
+ EGL_EXTERNAL_REF_ID_EXT 0x3461
+
+ New attributes accepted by the <policy> argument of
+ eglCompositorSwapPolicyHint:
+
+ EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462
+
+ EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463
+
+Modify Section 3.7.1 of the EGL 1.4 Specification, paragraph 2
+ (Creating Rendering Contexts) on pg. 43
+ From:
+ If eglCreateContext succeeds, it initializes the context to the initial state defined
+ for the current rendering API, and returns a handle to it. The context can be
+ used to render to any compatible EGLSurface.
+
+ To:
+ If eglCreateContext succeeds, it initializes the context to the initial state defined
+ for the current rendering API, and returns a handle to it. The context can be
+ used to render to any compatible off-screen rendering surface (Sections 3.5.2
+ and 3.5.4). A secondary context can be used to render to compatible window surfaces
+ which have been associated with the context using eglCompositorSetWindowListEXT. A
+ non-secondary context can be used to render to any compatible EGLSurface.
+
+Modify Section 3.7.1 of EGL 1.4 Specification, paragraph 5
+ (Creating Rendering Contexts) on pg. 43
+ From:
+ attrib_list specifies a list of attributes for the context. The list has the same
+ structure as described for eglChooseConfig. The only attribute that can be specified
+ in attrib_list is EGL_CONTEXT_CLIENT_VERSION, and this attribute may only
+ be specified when creating a OpenGL ES context (e.g. when the current rendering
+ API is EGL_OPENGL_ES_API).
+
+ To:
+ attrib_list specifies a list of attributes for the context. The list has the same
+ structure as described for eglChooseConfig. The attributes that can be specified
+ in attrib_list are EGL_CONTEXT_CLIENT_VERSION, EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT,
+ EGL_EXTERNAL_REF_ID_EXT.
+
+Modify Section 3.7.1 of EGL 1.4 Specification, paragraph 7
+ (Creating Rendering Contexts) on pg. 43
+ From:
+ EGL_CONTEXT_CLIENT_VERSION determines which version of an OpenGL
+ ES context to create. An attribute value of 1 specifies creation of an OpenGL ES
+ 1.x context. An attribute value of 2 specifies creation of an OpenGL ES 2.x context.
+ The default value for EGL_CONTEXT_CLIENT_VERSION is 1.
+
+ To:
+ EGL_CONTEXT_CLIENT_VERSION determines which version of an OpenGL
+ ES context to create. An attribute value of 1 specifies creation of an OpenGL ES
+ 1.x context. An attribute value of 2 specifies creation of an OpenGL ES 2.x context.
+ The default value for EGL_CONTEXT_CLIENT_VERSION is 1. EGL_CONTEXT_CLIENT_VERSION
+ may only be specified when creating a OpenGL ES context (e.g. when the current
+ rendering API is EGL_OPENGL_ES_API).
+
+Additions to Section 3.7.1 of the EGL 1.4 Specification (Creating Rendering Contexts).
+
+ The first call to eglCreateContext with EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT
+ set as EGL_TRUE in the <attrib-list> returns an EGLContext handle which will
+ act as the primary context for the specified EGLDisplay. This shall be the
+ only context on this EGLDisplay which is able to be bound to an on-screen window
+ on the EGLDisplay. Subsequent calls to eglCreateContext, for the same display,
+ in any address space with EGL_PRIMIARY_COMPOSITOR_CONTEXT_EXT set as EGL_TRUE
+ shall return EGL_NO_CONTEXT.
+ Subsequent calls, in any address space for the same display, to eglCreateContext
+ which do not use EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT should use the the attribute
+ EGL_EXTERNAL_REF_ID_EXT and an external reference identifier to create a valid
+ EGLContext.
+ Subsequent calls, in any address space for the same display, to eglCreateContext
+ which do not use EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT and do not use
+ EGL_EXTERNAL_REF_ID_EXT shall not create a context and shall return
+ EGL_NO_CONTEXT and set the error EGL_BAD_ACCESS.
+
+ EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT notifies EGL that this context is the only
+ context allowed to render to a on screen window surface for this display. This
+ attribute is followed in the attribute list by either EGL_TRUE or EGL_FALSE.
+ EGL_EXTERNAL_REF_ID_EXT is followed by an external reference identifier which
+ associates this context with the list of allowed contexts set by
+ eglCompositorSetContextListEXT. If the reference identifier has already been
+ used to initiate another call to eglCreateContext in any address space, this
+ call shall fail and set the error EGL_BAD_ATTRIBUTE. IF the external reference
+ identifier is not a valid identifier the error EGL_BAD_ATTRIBUTE shall be set
+ and the call shall fail. If this attribute is set and the primary context has
+ not yet been created then the error EGL_BAD_MATCH and the call shall fail.
+
+ Only when the attributes specified via attrib_list and those specified for this
+ context using eglCompositorSetContextAttributesEXT are compatible will the
+ context be successfully created.
+
+Modify the list of parameters supported by eglCreateWindowSurface in section 3.5.1
+ (Creating On-Screen Rendering Surfaces) on p. 27:
+
+ An external window identifier (EGLuint external_win_id) is associated with
+ each off screen window. EGLNativeWindowType shall be EGLint and the
+ external window identifier shall be used as the value for the <win> parameter.
+ EGL_EXTERNAL_REF_ID_EXT with the context external reference id shall be in the
+ attrib_list. If the external window identifier and the external reference identifier
+ do not match a pair set using eglCompositorSetWindowListEXT window creation shall
+ fail.
+
+Add the function:
+
+ EGLBoolean eglCompositorSetContextListEXT(const EGLint *external_ref_ids,
+ EGLint num_entries);
+
+ This function is called by the primary context to establish the set of
+ all allowable secondary contexts by defining the set of external reference
+ identifiers. Secondary contexts shall identify their external reference
+ identifier by setting the EGL_EXTERNAL_REF_ID_EXT attribute when calling
+ eglCreateContext.
+ Calls to this function when the primary context for the display is not active,
+ shall return EGL_FALSE and do nothing. When this function is successful it
+ shall return EGL_TRUE and associate the list of external reference identifiers
+ with the active display.
+ This function shall only be called once per primary context. Subsequent calls
+ shall return EGL_FALSE and do nothing.
+
+ external_ref_ids shall be an array of user generated integers greater than 1.
+ num_entries shall specify the number of external_ref_ids.
+
+Add the function:
+
+ EGLBoolean eglCompositorSetContextAttributesEXT (EGLint external_ref_id,
+ const EGLint *context_attributes,
+ EGLint num_entries);
+
+ This function is called by the primary context to establish a list of compatible
+ context attributes.
+ Calls to this function when the primary context for the display is not active
+ shall return EGL_FALSE and do nothing. When the function is successful it shall
+ return EGL_TRUE and associate the given attributes to the subsequent
+ eglCreateContext call using the given external reference id.
+ The list of acceptable context_attributes is the same as the list for
+ eglCreateContext. Only when this list of attributes is compatible with those
+ used during context creation will the secondary context be created.
+ This function shall only be called once per secondary context, and must be called
+ before the secondary context is able to be created. Subsequent calls shall
+ return EGL_FALSE and do nothing.
+
+ num_entries shall specify the number of attributes in the list. This number
+ shall prevent accessing memory outside the attribute list, even if EGL_NONE is
+ not yet found in the list. If EGL_NONE is found sooner than this number of
+ attributes list parsing shall stop.
+
+Add the function:
+
+ EGLBoolean eglCompositorSetWindowListEXT (EGLint external_ref_id,
+ const EGLint *external_win_ids,
+ EGLint num_entries);
+
+ This function is called by the primary context to establish the set of
+ all allowable windows associated with a specific secondary context by defining
+ the set of external window identifiers. Window surface creation within secondary
+ contexts use the external window identifier as the native window handle parameter
+ of eglCreateWindowSurface and supply an external reference id as a window creation
+ attribute.
+ Calls to this function when the primary context for the display is not active,
+ shall return EGL_FALSE and do nothing. When this function is successful it
+ shall return EGL_TRUE and associate the list of external window identifiers
+ with the specified secondary context (external_ref_ids).
+
+ external_win_ids shall be an array of user generated integers greater than 1.
+ external window identifiers are unique within the primary EGLContext. Any
+ external window identifier may be associated with multiple secondary contexts
+ however only the first context which calls eglCreateWindowSurface shall
+ successfully create a window surface for the given window.
+ num_entries shall specify the number of external_ref_ids.
+
+Add the function:
+
+ EGLBoolean eglCompositorSetWindowAttributesEXT (EGLint external_win_id,
+ const EGLint *window_attributes,
+ EGLint num_entries);
+
+ This function is called by the primary context to set window specific attributes
+ for the specified external window id.
+
+ The list of valid attributes are: EGL_WIDTH, EGL_HEIGHT, EGL_VERTICAL_RESOLUTION,
+ EGL_HORIZONRAL_RESOLUTION, EGL_PIXEL_ASPECT_RATIO.
+ EGL_WIDTH and EGL_HEIGHT shall set the maximum width and height the secondary
+ context is able to create a window surface with.
+ EGL_VERTICAL_RESOLUTION, EGL_HORIZONTAL_RESOLUTION, and EGL_PIXEL_ASPECT_RATIO
+ shall set the values of these used by the secondary context.
+ Calls to this function when the primary context for the display is not active,
+ shall return EGL_FALSE and do nothing. When this function is successful it
+ shall return EGL_TRUE and associate the list of attributes with the off screen
+ window ID (external_win_id).
+ This function shall only be called once per window, and must be called before
+ the secondary context is able to create the window surface. Subsequent calls
+ shall return EGL_FALSE and do nothing.
+
+ num_entries shall specify the number of attributes in the list. This number
+ shall prevent accessing memory outside the attribute list, even if EGL_NONE is
+ not yet found in the list. If EGL_NONE is found sooner than this number of
+ attributes list parsing shall stop.
+
+Add the function:
+
+ EGLBoolean eglCompositorBindTexWindowEXT (EGLint external_win_id);
+
+ This function is similar to eglBindTexImage in that it binds the windows
+ color buffers to a texture object which can then be composited on the native
+ window by the primary context. This function shall only be callable within
+ the primary context while there is a texture object actively bound by the
+ native rendering API. The function shall return EGL_TRUE if the window is
+ successfully bound to the active texture object. The function shall return
+ EGL_FALSE if binding fails, the context is not the primary context, or the
+ external_win_id is not a valid external window reference as set using
+ eglCompositorSetWindowListEXT.
+
+Add the function:
+
+ EGLBoolean eglCompositorSetSizeEXT(EGLint external_win_id,
+ EGLint width, EGLint height);
+
+ This function shall be called by the primary context to set the width and
+ height of the window. This function returns EGL_FALSE when called by a context
+ other than the primary context. This function will also return EGL_FALSE if
+ the new width and height are larger than the maximums set by
+ eglCompositorSetWindowAttributesEXT. Upon successful window resizing the function
+ shall return EGL_TRUE.
+ Secondary contexts may use EGL to query the windows width and height at runtime
+ to detect window resize events. The window buffer resizing shall be applied
+ to the newly active buffer after the secondary context calls eglSwapBuffers.
+ This will leave an average of 2 buffers which will have to be scaled by the
+ native rendering API to the new resolution.
+
+Add the function:
+
+ EGLBoolean eglCompositorSwapPolicyEXT(EGLint external_win_id,
+ EGLint policy);
+
+ This function shall be called by the primary context to specify the handling
+ of buffer swaps of the context specified by external_ref_id.
+
+ When the policy is set to EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT, and the
+ secondary context completes a frame by calling eglSwapbuffers, and the
+ primary context is actively reading from the front buffer associated with
+ the external window ID, then the just completed frame is dropped, no buffer
+ swap occurs, and eglSwapBuffers will return EGL_TRUE.
+ If EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT is specified and the primary context
+ is actively reading from the front buffer associated with the external window
+ ID then the secondary context's call to eglSwapBuffers will return EGL_FALSE.
+ eglSwapBuffers will continue to return EGL_FALSE as long as the primary context
+ is actively reading from the front buffer. Once the primary context finishes
+ reading from the front buffer the next call to eglSwapBuffers will
+ return EGL_TRUE. It is up to the application to decide if it will wait until
+ eglSwapBuffers returns EGL_TRUE before rendering again. If the secondary
+ context continues to render after eglSwapBuffers returns EGL_FALSE then it will
+ be as if the swap policy was EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT.
+
+
+Revision History
+ Version 0.1, 30/08/2014 - first draft.
+ Version 0.2, 24/09/2014 second draft.
+ Version 0.3, 21/12/2016
+ Khronos vendor extension clean-up.
+ Version 0.4, 05/01/2016
+ - Change from context and display limitation to context and window limitations
+ - Added additional functions related to external window ids contexts.
+ Version 1.0, 03/02/2017
+ - Fixed misc issues related to parameter names and types.
+
+Question: How are external reference and window IDs assigned and managed? Are they
+ reserved somehow within a new EGL C header file?
+Answer: External IDs are assigned from the software component with the primary
+ context during an EGL initialization stage using eglCompositorSet*ListEXT.
+ The secondary contexts are provided the appropriate external reference ID
+ during end system integration. It is recommended that these values be able
+ to be set via a configuration parameter to the application, to ease
+ integration of multiple programs.
+
+Question: What happens when the secondary contexts render faster than the
+ primary context?
+Answer: This is based on the swap policy set by the compositor, and the rate
+ difference between the render and the compositor. Secondary contexts
+ will be notified by EGL_FALSE being returned if the windows front buffer
+ is currently being read by the compositor. However, if the compositor is
+ not currently reading the front buffer the swap will succeed and the
+ secondary contexts latest rendered frame will now be in the front buffer
+ to be composited.
+
+Question: What happens when the primary context renders faster than the
+ secondary context(s)?
+Answer: The contents of the windows front buffer will be repeated.
+
+Question: Does this infer any Z-ordering for the off-screen surfaces?
+Answer: No, the Z-order is applied by the compositor when doing the final on
+ screen rendering of the off-screen surfaces. Or may be set if a Z-ordering
+ extension is applied to the attribute list of the window using
+ eglCompositorSetWindowAttributesEXT
+
+Comments:
+
+The driver should also have to have enough protection in it to prevent a random
+software component from passing random buffer handles to the driver to prevent
+access to other software components.
+
+The driver may force use of double buffering event if the window surface was created
+using an EGL_RENDER_BUFFER attribute set to EGL_SINGLE_BUFFER.
+
+If EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT is not used to create a context for a specified
+display then EGL will act as though this extension is not enabled.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_config_select_group.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_config_select_group.txt
new file mode 100644
index 0000000..9721195
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_config_select_group.txt
@@ -0,0 +1,111 @@
+Name
+
+ EGL_EXT_config_select_group
+
+Name Strings
+
+ EGL_EXT_config_select_group
+
+Contributors
+
+ Hal Gentz <zegentzy@protonmail.com>
+ Adam Jackson <ajax@redhat.com>
+ Robert Mader <robert.mader@posteo.de>
+
+Contacts
+
+ Hal Gentz <zegentzy@protonmail.com>
+
+Status
+
+ Draft
+
+Version
+
+ Version 4, 2021-06-24
+
+Number
+
+ EGL Extension #145
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ This extension is written against the wording of the 2014.08.27 revision
+ of the EGL 1.5 Specification.
+
+Overview
+
+ This extension provides a mechanism to lower the config selection priority
+ of the configs returned by eglChooseConfig. A new config attribute is
+ introduced, providing a way for the implementation to group configs into
+ different config selection categories. The config selection priorities of
+ all the configs in one category may be higher or lower than the ones in
+ other categories. The config selection priorities in one category follow
+ the rules of eglChooseConfig. See also GLX_SGIX_visual_select_group.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as a new EGLConfig attribute:
+
+ EGL_CONFIG_SELECT_GROUP_EXT 0x34C0
+
+Additions to the EGL 1.5 Specification
+
+ In section 3.4 "Configuration Management", under the "Buffer Descriptions
+ and Attributes" heading, append to table 3.1 the following:
+
+ "EGL_CONFIG_SELECT_GROUP_EXT | integer | the config select group"
+
+ In section 3.4 "Configuration Management", under the "Other EGLConfig
+ Attribute Descriptions" heading, append to the end the following:
+
+ "The attribute EGL_CONFIG_SELECT_GROUP_EXT is used to specify the config
+ selection category of the config. Configs in the i-th category have a higher
+ config selection priority than those found in the (i+1)-th category.
+
+ "The attribute EGL_CONFIG_SELECT_GROUP_EXT is used by the implementation to
+ override the default sorting rules, by collecting configurations into
+ groups. It is not accepted by the <attrib_list> parameter of
+ eglChooseConfig, but it is accepted as the <attribute> in
+ eglGetConfigAtrrib."
+
+ In section 3.4 "Configuration Management", under the "Sorting of EGLConfigs"
+ heading, append to table 3.4 the following:
+
+ "EGL_CONFIG_SELECT_GROUP_EXT | 0 | Ignore | Smaller | 0"
+
+ In section 3.4 "Configuration Management", under the "Sorting of EGLConfigs"
+ heading, append before the list entry which starts with "1. Special: by
+ EGL_CONFIG_CAVEAT" the following entry:
+
+ "0. Smaller EGL_CONFIG_SELECT_GROUP_EXT."
+
+Issues
+
+ None
+
+Revision History
+
+ Version 4, 2021-06-24 (Robert Mader)
+ - Moved to EXT, changed enum value to 0x34C0.
+
+ Version 3, 2020-04-06 (Robert Mader)
+ - Changed enum value to 0x31DF, added contributors.
+
+ Version 2, 2019-07-11 (Hal Gentz)
+ - Resolved issues pointed out by Adam Jackson.
+
+ Version 1, 2019-06-21 (Hal Gentz)
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_create_context_robustness.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_create_context_robustness.txt
new file mode 100644
index 0000000..a78f878
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_create_context_robustness.txt
@@ -0,0 +1,169 @@
+Name
+
+ EXT_create_context_robustness
+
+Name Strings
+
+ EGL_EXT_create_context_robustness
+
+Contributors
+
+ Daniel Koch, TransGaming
+ Contributors to EGL_KHR_create_context
+
+Contact
+
+ Greg Roth (groth 'at' nvidia.com)
+
+Status
+
+ Complete.
+
+Version
+
+ Version 3, 2011/10/31
+
+Number
+
+ EGL Extension #37
+
+Dependencies
+
+ Requires EGL 1.4
+
+ Written against the EGL 1.4 specification.
+
+ An OpenGL implementation supporting GL_ARB_robustness, an OpenGL ES
+ implementation supporting GL_EXT_robustness, or an implementation
+ supporting equivalent functionality is required.
+
+Overview
+
+ This extension allows creating an OpenGL or OpenGL ES context
+ supporting robust buffer access behavior and a specified graphics
+ reset notification behavior.
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as an attribute name in the <*attrib_list> argument to
+ eglCreateContext:
+
+ EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
+ EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
+
+ Accepted as an attribute value for EGL_CONTEXT_RESET_NOTIFICATION_-
+ STRATEGY_EXT in the <*attrib_list> argument to eglCreateContext:
+
+ EGL_NO_RESET_NOTIFICATION_EXT 0x31BE
+ EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF
+
+Additions to the EGL 1.4 Specification
+
+ Replace section 3.7.1 "Creating Rendering Contexts" from the
+ fifth paragraph through the seventh paragraph:
+
+ <attrib_list> specifies a list of attributes for the context. The
+ list has the same structure as described for eglChooseConfig. If an
+ attribute is not specified in <attrib_list>, then the default value
+ specified below is used instead. <attrib_list> may be NULL or empty
+ (first attribute is EGL_NONE), in which case attributes assume their
+ default values as described below. Most attributes are only meaningful
+ for specific client APIs, and will generate an EGL_BAD_ATTRIBUTE
+ error when specified to create for another client API context.
+
+ Context Versions
+ ----------------
+
+ EGL_CONTEXT_CLIENT_VERSION determines which version of an OpenGL ES
+ context to create. This attribute may only be specified when creating
+ an OpenGL ES context (e.g. when the current rendering API is
+ EGL_OPENGL_ES_API). An attribute value of 1 specifies creation of an
+ OpenGL ES 1.x context. An attribute value of 2 specifies creation of an
+ Open GL ES 2.x context. The default value for EGL_CONTEXT_CLIENT_VERSION
+ is 1.
+
+ Context Robust Access
+ -------------
+
+ EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT indicates whether <robust buffer
+ access> should be enabled for the OpenGL ES context. Robust buffer
+ access is defined in the GL_EXT_robustness extension specification,
+ and the resulting context must support GL_EXT_robustness and robust
+ buffer access as described therein. The default value of
+ EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT is EGL_FALSE.
+
+ Context Reset Notification
+ --------------------------
+
+ The attribute name EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_-
+ EXT specifies the <reset notification behavior> of the rendering
+ context. This attribute is only meaningful for OpenGL ES contexts,
+ and specifying it for other types of contexts will generate an
+ EGL_BAD_ATTRIBUTE error.
+
+ Reset notification behavior is defined in the GL_EXT_robustness
+ extension for OpenGL ES, and the resulting context must support
+ GL_EXT_robustness and the specified reset strategy. The attribute
+ value may be either EGL_NO_RESET_NOTIFICATION_EXT or EGL_LOSE_-
+ CONTEXT_ON_RESET_EXT, which respectively result in disabling
+ delivery of reset notifications or the loss of all context state
+ upon reset notification as described by the GL_EXT_robustness. The
+ default value for EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT
+ is EGL_NO_RESET_NOTIFICATION_EXT.
+
+ Add to the eglCreateContext context creation errors:
+
+ * If <config> does not support a client API context compatible
+ with the requested context flags and context reset notification
+ behavior (for client API types where these attributes are
+ supported), then an EGL_BAD_CONFIG error is generated.
+
+ * If the reset notification behavior of <share_context> and the
+ newly created context are different then an EGL_BAD_MATCH error is
+ generated.
+
+
+Errors
+
+ EGL_BAD_CONFIG is generated if EGL_CONTEXT_OPENGL_ROBUST_ACCESS_-
+ EXT is set to EGL_TRUE and no GL context supporting the GL_EXT_-
+ robustness extension and robust access as described therein can be
+ created.
+
+ EGL_BAD_CONFIG is generated if no GL context supporting the
+ GL_EXT_robustness extension and the specified reset notification
+ behavior (the value of attribute EGL_CONTEXT_RESET_NOTIFICATION_-
+ STRATEGY_EXT) can be created.
+
+ BAD_MATCH is generated if the reset notification behavior of
+ <share_context> does not match the reset notification behavior of
+ the context being created.
+
+New State
+
+ None
+
+Conformance Tests
+
+ TBD
+
+Sample Code
+
+ TBD
+
+Issues
+
+ None
+
+Revision History
+
+ Rev. Date Author Changes
+ ---- ------------ --------- ----------------------------------------
+ 3 31 Oct 2011 groth Reverted to attribute for robust access. Now it's a
+ companion to rather than subset of KHR_create_context
+ 2 11 Oct 2011 groth Merged ANGLE and NV extensions.
+ 1 15 July 2011 groth Initial version
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_base.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_base.txt
new file mode 100644
index 0000000..aece774
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_base.txt
@@ -0,0 +1,243 @@
+Name
+
+ EXT_device_base
+
+Name Strings
+
+ EGL_EXT_device_base
+
+Contributors
+
+ James Jones
+ Daniel Kartch
+ Jamie Madill
+
+Contacts
+
+ James Jones, NVIDIA (jajones 'at' nvidia.com)
+
+Status
+
+ Complete
+
+ Rewritten in terms of split functionality in EXT_dispay_device and
+ EXT_device_enumeration.
+
+Version
+
+ Version 9 - March 24th, 2015
+
+Number
+
+ EGL Extension #72
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Written against the wording of EGL 1.5.
+
+ The specifications of EGL_EXT_device_query and
+ EGL_EXT_device_enumeration are required to determine the
+ specification of this extension, although those extensions may not
+ be supported.
+
+Overview
+
+ Increasingly, EGL and its client APIs are being used in place of
+ "native" rendering APIs to implement the basic graphics
+ functionality of native windowing systems. This creates demand
+ for a method to initialize EGL displays and surfaces directly on
+ top of native GPU or device objects rather than native window
+ system objects. The mechanics of enumerating the underlying
+ native devices and constructing EGL displays and surfaces from
+ them have been solved in various platform and implementation-
+ specific ways. The EGL device family of extensions offers a
+ standardized framework for bootstrapping EGL without the use of
+ any underlying "native" APIs or functionality.
+
+ This extension defines the first step of this bootstrapping
+ process: Device enumeration.
+
+New Types
+
+ As defined by EGL_EXT_device_query.
+
+New Functions
+
+ As defined by EGL_EXT_device_query and EGL_EXT_device_enumeration.
+
+New Tokens
+
+ As defined by EGL_EXT_device_query.
+
+Add to section "3.2 Devices"
+
+ "EGL_EXT_device_base is equivalent to the combination of the
+ functionality defined by EGL_EXT_device_query and
+ EGL_EXT_device_enumeration."
+
+Issues
+
+ 1. Should there be a mechanism (such as an attribute list) to
+ filter devices in eglQueryDevicesEXT()?
+
+ RESOLVED: No. This could develop too much complexity, like
+ the EGLConfig mechanism. Instead, force applications to query
+ all devices and implement any desired filtering themselves.
+
+ 2. Should there be an eglSetDeviceAttribEXT()?
+
+ RESOLVED: No. Device properties are immutable.
+
+ 3. Should a device file descriptor attribute be included in the
+ base specification?
+
+ RESOLVED: No. It seems like an arbitrary attribute to include
+ in the base extension. Other extensions can easily be added
+ if this or other device attributes are needed.
+
+ 4. Should EGLDeviceEXT handles be opaque pointers or 32-bit
+ values?
+
+ RESOLVED: Opaque pointers. The trend seems to be to use
+ opaque pointers for object handles, and opaque pointers allow
+ more implementation flexibility than 32-bit values.
+ Additionally, the introduction of the EGLAttrib type allows
+ inclusion of pointer-sized types in attribute lists, which was
+ the only major advantage of 32-bit types.
+
+ 5. Should eglQueryDisplayAttribEXT be defined as part of this
+ extension?
+
+ RESOLVED: Yes. There are no other known uses for this
+ function, so it should be defined here. If other uses are
+ found, future extension specifications can reference this
+ extension or retroactively move it to a separate extension.
+
+ 6. How should bonded GPU configurations, such as SLI or Crossfire
+ be enumerated? What about other hybrid rendering solutions?
+
+ RESOLVED: Bonded GPUs should appear as one device in this API,
+ since the client APIs generally treat them as one device.
+ Further queries can be added to distinguish the lower-level
+ hardware within these bonded devices.
+
+ Hybrid GPUs, which behave independently but are switched
+ between in a manner transparent to the user, should be
+ enumerated separately. This extension is intended to be used
+ at a level of the software stack below this type of automatic
+ switching or output sharing.
+
+ 7. Should this extension require all displays to have an
+ associated, queryable device handle?
+
+ RESOLVED: Yes. This allows creating new namespace containers
+ that all displays can be grouped in to and allows existing
+ applications with display-based initialization code to easily
+ add device-level functionality. Future extensions are
+ expected to expose methods to correlate EGL devices and native
+ devices, and to use devices as namespaces for future objects
+ and operations, such as cross-display EGL streams.
+
+ 8. Are device handles returned by EGL valid in other processes?
+
+ RESOLVED: No. Another level of indirection is required to
+ correlate two EGL devices in separate processes.
+
+ 9. Is a general display pointer query mechanism needed, or should
+ an eglGetDevice call be added to query a display's associated
+ device?
+
+ RESOLVED: A general mechanism is better. It may have other
+ uses in the future.
+
+ 10. Should a new type of extension be introduced to query device-
+ specific extensions?
+
+ RESOLVED: Yes. Without this mechanism, it is likely that most
+ device extensions would require a separate mechanism to
+ determine which devices actually support them. Further,
+ requiring all device-level extensions to be listed as client
+ extensions forces them to be implemented in the EGL client
+ library, or "ICD". This is unfortunate since vendors will
+ likely wish to expose vendor-specific device extensions.
+
+ These advantages were weighed against the one known
+ disadvantage of a separate extension type: Increasing the
+ complexity of this extension and the EGL extension mechanism
+ in general.
+
+ 11. Is eglQueryDeviceStringEXT necessary, or should the device
+ extension string be queried using eglQueryDeviceAttribEXT?
+
+ RESOLVED: Using a separate query seems more consistent with
+ how the current extension strings are queried.
+
+ 12. Should this extension contain both device enumeration and
+ the ability to query the device backing an EGLDisplay?
+
+ RESOLVED: This extension initially included both of these
+ abilities. To allow simpler implementations to add only the
+ ability to query the device of an existing EGLDisplay, this
+ extension was split into two separate extensions:
+
+ EGL_EXT_device_query
+ EGL_EXT_device_enumeration
+
+ The presence of this extension now only indicates support
+ for both of the above extensions.
+
+Revision History:
+
+ #9 (March 24th, 2015) James Jones
+ - Split the extension into two child extensions:
+ EGL_EXT_device_query
+ EGL_EXT_device_enumeration
+
+ #8 (May 16th, 2014) James Jones
+ - Marked the extension complete.
+ - Marked all issues resolved.
+
+ #7 (April 8th, 2014) James Jones
+ - Renamed eglGetDisplayAttribEXT back to
+ eglQueryDisplayAttribEXT.
+ - Update wording based on the EGL 1.5 specification.
+ - Use EGLAttrib instead of EGLAttribEXT.
+ - Assigned values to tokens.
+
+ #6 (November 6th, 2013) James Jones
+ - Added EGL_BAD_DEVICE_EXT error code.
+ - Renamed some functions for consistency with the core spec
+
+ #5 (November 6th, 2013) James Jones
+ - Specified this is a client extension
+ - Renamed eglQueryDisplayPointerEXT eglGetDisplayAttribEXT
+ and modified it to use the new EGLAttribEXT type rather than
+ a void pointer
+ - Introduced the "device" extension type.
+ - Added eglQueryDeviceStringEXT to query device extension
+ strings
+ - Removed issues 5, 10, and 12 as they are no longer relevant
+ - Added issues 10 and 11.
+
+ #4 (May 14th, 2013) James Jones
+ - Merged in EGL_EXT_display_attributes
+ - Changed eglGetDisplayPointerEXT to eglQueryDisplayPointerEXT
+ - Remove eglGetDisplayAttribEXT since it has no known use case
+
+ #3 (April 23rd, 2013) James Jones
+ - Include EGL_NO_DEVICE_EXT
+ - Added issues 8 and 9
+
+ #2 (April 18th, 2013) James Jones
+ - Reworded issue 3 and flipped the resolution
+ - Added issues 5, 6, and 7
+ - Filled in the actual spec language modifications
+ - Renamed from EGL_EXT_device to EGL_EXT_device_base
+ - Fixed some typos
+
+ #1 (April 16th, 2013) James Jones
+ - Initial Draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_drm.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_drm.txt
new file mode 100644
index 0000000..fa125fc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_drm.txt
@@ -0,0 +1,223 @@
+Name
+
+ EXT_device_drm
+ EXT_output_drm
+
+Name Strings
+
+ EGL_EXT_device_drm
+ EGL_EXT_output_drm
+
+Contributors
+
+ Daniel Kartch
+ James Jones
+ Christopher James Halse Rogers
+
+Contacts
+
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 5 - December 28th, 2015
+
+Number
+
+ EGL Extension #79
+
+Extension Type
+
+ EGL device extension for EGL_EXT_device_drm
+
+ EGL display extension for EGL_EXT_output_drm
+
+Dependencies
+
+ EGL_EXT_device_drm requires EGL_EXT_device_base.
+
+ EGL_EXT_device_drm interacts with EGL_EXT_platform_device
+
+ EGL_EXT_device_drm requires a DRM driver.
+
+ EGL_EXT_output_drm requires EGL_EXT_output_base.
+
+ EGL_EXT_output_drm requires a DRM driver which supports KMS.
+
+ An EGLDisplay supporting EGL_EXT_output_drm must be associated
+ with an EGLDevice supporting EGL_EXT_device_drm.
+
+Overview
+
+ Increasingly, EGL and its client APIs are being used in place of
+ "native" rendering APIs to implement the basic graphics
+ functionality of native windowing systems. This creates demand
+ for a method to initialize EGL displays and surfaces directly on
+ top of native GPU or device objects rather than native window
+ system objects. The mechanics of enumerating the underlying
+ native devices and constructing EGL displays and surfaces from
+ them have been solved in various platform and implementation-
+ specific ways. The EGL device family of extensions offers a
+ standardized framework for bootstrapping EGL without the use of
+ any underlying "native" APIs or functionality.
+
+ These extensions define how to map device and output handles between
+ EGL and DRM/KMS. An EGL implementation which provides these
+ extensions must have access to sufficient knowledge of the DRM
+ implementation to be able to perform these mappings. No requirements
+ are imposed on how this information is obtained, nor does this
+ support have any implications for how EGL devices and outputs are
+ implemented. Among the possibilities, support may be implemented in
+ a generic fashion by layering on top of DRM, or EGL and DRM backends
+ may be provided by the same vendor and share privileged lower level
+ resources. An implementation which supports these extensions may
+ support other low level device interfaces, such as OpenWF Display,
+ as well.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Added by EXT_device_drm:
+
+ Accepted as the <name> parameter of eglQueryDeviceStringEXT
+
+ EGL_DRM_DEVICE_FILE_EXT 0x3233
+
+ If EGL_EXT_platform_device is present, the following is accepted
+ in the <attrib_list> of eglGetPlatformDisplayEXT().
+
+ EGL_DRM_MASTER_FD_EXT 0x333C
+
+ Added by EXT_output_drm:
+
+ Accepted in the <attrib_list> of eglGetOutputLayersEXT and as
+ the <attribute> parameter of eglQueryOutputLayerAttribEXT
+
+ EGL_DRM_CRTC_EXT 0x3234
+ EGL_DRM_PLANE_EXT 0x3235
+
+ Accepted in the <attrib_list> of eglGetOutputPortsEXT and as
+ the <attribute> parameter of eglQueryOutputPortAttribEXT
+
+ EGL_DRM_CONNECTOR_EXT 0x3236
+
+New Behavior for EXT_device_drm
+
+ EGLDeviceEXTs may be mapped to DRM device files.
+
+ To obtain a DRM device file for an EGLDeviceEXT, call
+ eglQueryDeviceStringEXT with <name> set to EGL_DRM_DEVICE_FILE_EXT.
+ The function will return a pointer to a string containing the name
+ of the device file (e.g. "/dev/dri/cardN").
+
+If EGL_EXT_platform_device is present, replace the last sentence of the
+third paragraph in section 3.2 "Initialization" with the following:
+
+ When <platform> is EGL_PLATFORM_DEVICE_EXT, the only valid attribute
+ name is EGL_DRM_MASTER_FD_EXT. If specified, the value must be a file
+ descriptor with DRM master permissions on the DRM device associated
+ with the specified EGLDevice, as determined by EGL_DRM_DEVICE_FILE_EXT.
+ If the file descriptor does not refer to the correct DRM device or
+ does not have master permissions, the behavior is undefined. Calls to
+ eglGetPlatformDeviceEXT() with the same values for <platform> and
+ <native_display> but distinct EGL_DRM_MASTER_FD_EXT values will return
+ separate EGLDisplays.
+
+ If EGL requires the use of the DRM file descriptor beyond the duration
+ of the call to eglGetPlatformDispay(), it will duplicate it. If no
+ file descriptor is specified and EGL requires one, it will attempt to
+ open the device itself. Applications should only need to specify a
+ file descriptor in situations where EGL may fail to open a file
+ descriptor itself, generally due to lack of permissions, or when EGL
+ will fail to acquire DRM master permissions due to conflicts with an
+ existing DRM client. DRM master permissions are only required when EGL
+ must modify output attributes. This extension does not define any
+ situations in which output attributes will be modified.
+
+New Behavior for EXT_output_drm
+
+ KMS CRTC, plane, and connector IDs may be used to restrict EGL
+ output handle searches and may be queried from EGL output handles.
+
+ Add to Table 3.10.3.1 in EGL_EXT_output_base:
+
+ Attribute Type Access
+ --------------------- ------- ------
+ EGL_DRM_CRTC_EXT integer S|R
+ EGL_DRM_PLANE_EXT integer S|R
+
+ Add to Table 3.10.3.2 in EGL_EXT_output_base:
+
+ Attribute Type Access
+ --------------------- ------- ------
+ EGL_DRM_CONNECTOR_EXT integer S|R
+
+ Add to description of eglOutputLayerAttribEXT:
+
+ If <layer> corresponds to a KMS CRTC and <attribute> is
+ EGL_DRM_PLANE_EXT, or if <layer> corresponds to a KMS plane and
+ <attribute> is EGL_DRM_CRTC_EXT, an EGL_BAD_MATCH error is
+ generated.
+
+Issues
+
+ 1) Should different values of EGL_DRM_MASTER_FD_EXT result in separate
+ EGLDisplays?
+
+ RESOLVED: Yes. Consider an application made up of two independent
+ modules running in two independently scheduled threads. Each
+ module calls eglGetPlatformDisplayEXT():
+
+ int fd = open("/dev/dri/card0", O_RDWR);
+ int attr1[] = { EGL_DRM_MASTER_FD_EXT, fd };
+ dpy1 = eglGetPlatformDisplayEXT(EGL_PLATFORM_DEVICE_EXT,
+ eglDev,
+ attr1);
+
+ ...
+
+ dpy2 = eglGetPlatformDisplayEXT(EGL_PLATFORM_DEVICE_EXT,
+ eglDev,
+ NULL);
+
+ Presumably, if dpy1 == dpy2, they would both be using the same DRM
+ fd for output operations internally. That would mean display
+ attribute updates would likely fail if dpy2 happened to be created
+ before dpy1. This would be painful to debug. If dpy2 != dpy1,
+ failure for dpy2 would be consistent and obvious. The application
+ author would be required to work out a scheme to share the master
+ FD between modules before creating EGL displays.
+
+Revision History:
+
+ #5 (December 28th, 2015) James Jones
+ - Added EGL_DRM_MASTER_FD_EXT and associated
+ language.
+ - Added issue 1.
+
+ #4 (August 22nd, 2014) James Jones
+ - Marked complete.
+ - Listed Daniel as the contact.
+
+ #3 (June 5th, 2014) Daniel Kartch
+ - Assigned enumerated values for constants.
+
+ #2 (May 28th, 2014) Daniel Kartch
+ - Simplified description of new behavior based on refinements
+ to EGL_EXT_output_base.
+
+ #1 (January 31st, 2014) Daniel Kartch
+ - Initial draft, representing a signficant reworking of
+ functionality previously proposed in
+ EGL_EXT_native_device_drm.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_drm_render_node.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_drm_render_node.txt
new file mode 100644
index 0000000..4c08844
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_drm_render_node.txt
@@ -0,0 +1,106 @@
+Name
+
+ EXT_device_drm_render_node
+
+Name Strings
+
+ EXT_device_drm_render_node
+
+Contributors
+
+ James Jones
+ Simon Ser
+ Daniel Stone
+
+Contacts
+
+ James Jones, NVIDIA (jajones 'at' nvidia.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 1 - June 4th, 2021
+
+Number
+
+ EGL Extension #144
+
+Extension Type
+
+ EGL device extension
+
+Dependencies
+
+ Written based on the wording of the EGL 1.5 specification.
+
+ EGL_EXT_device_query is required.
+
+ EGL_EXT_device_drm interacts with this extension.
+
+Overview
+
+ The EGL_EXT_device_drm extension provided a method for applications
+ to query the DRM device node file associated with a given
+ EGLDeviceEXT object. However, it was not clear whether it referred to
+ the primary or render device node. This extension adds an enum to
+ refer explicitly to the render device node and defines the existing
+ EGL_DRM_DEVICE_FILE_EXT as explicitly refering to the primary device
+ node.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as the <name> parameter of eglQueryDeviceStringEXT
+
+ EGL_DRM_RENDER_NODE_FILE_EXT 0x3377
+
+Changes to section 3.2 (Devices)
+
+ Add the following paragraph to the description of
+ eglQueryDeviceStringEXT:
+
+ "To obtain a DRM device file for the render node associated with an
+ EGLDeviceEXT, call eglQueryDeviceStringEXT with <name> set to
+ EGL_DRM_RENDER_NODE_FILE_EXT. The function will return a pointer to
+ a string containing the name of the device file (e.g.
+ "/dev/dri/renderDN"), or NULL if the device has no associated DRM
+ render node."
+
+ If EGL_EXT_device_drm is present, append the following to the
+ paragraph in the same section describing EGL_DRM_DEVICE_FILE_EXT:
+
+ "If the EGL_EXT_device_drm_render_node extension is supported, the
+ value returned will refer to a primary device node, and will be NULL
+ if the device has no associated DRM primary node. If
+ EGL_EXT_device_drm_render_node is not supported, the value returned
+ will refer to a primary device node if there exists one associated
+ with the device. Otherwise, it will refer to a render device node if
+ there exists one associated with the device. If neither exists, NULL
+ is returned."
+
+Issues
+
+ 1) Should this extension clarify that EGL_DRM_DEVICE_FILE_EXT refers
+ only to primary device nodes?
+
+ RESOLVED: Yes, but only when this extension is supported. Existing
+ implementations return render node paths for that string when no
+ suitable primary node is available.
+
+Revision History:
+
+ #2 (June 8th, 2021) James Jones
+ - Added issue #1 and related spec changes.
+
+ #1 (June 4th, 2021) James Jones
+ - Initial draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_enumeration.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_enumeration.txt
new file mode 100644
index 0000000..c7920eb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_enumeration.txt
@@ -0,0 +1,111 @@
+Name
+
+ EXT_device_enumeration
+
+Name Strings
+
+ EGL_EXT_device_enumeration
+
+Contributors
+
+ James Jones
+ Jamie Madill
+
+Contacts
+
+ James Jones, NVIDIA (jajones 'at' nvidia.com)
+
+Status
+
+ Complete.
+
+Version
+
+ Version 1 - March 24th, 2015
+
+Number
+
+ EGL Extension #88
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Written against the wording of EGL 1.5.
+
+ Requires EGL 1.5 or an earlier verison of EGL with the
+ EGL_EXT_client_extensions extension.
+
+ Requires the EGL_EXT_device_query extension.
+
+Overview
+
+ Increasingly, EGL and its client APIs are being used in place of
+ "native" rendering APIs to implement the basic graphics
+ functionality of native windowing systems. This creates demand
+ for a method to initialize EGL displays and surfaces directly on
+ top of native GPU or device objects rather than native window
+ system objects. The mechanics of enumerating the underlying
+ native devices and constructing EGL displays and surfaces from
+ them have been solved in various platform and implementation-
+ specific ways. The EGL device family of extensions offers a
+ standardized framework for bootstrapping EGL without the use of
+ any underlying "native" APIs or functionality.
+
+ The original EGL_EXT_device_base extension combined the conceptually
+ separate operations of querying the underlying device used by a
+ given EGLDisplay and enumerating devices from scratch. It was later
+ identified that the former is useful even in EGL implementations
+ that have no need or ability to allow enumerating all the devices
+ available on a system. To accommodate this, the extension was
+ split in two.
+
+New Types
+
+ None
+
+New Functions
+
+ EGLBoolean eglQueryDevicesEXT(EGLint max_devices,
+ EGLDeviceEXT *devices,
+ EGLint *num_devices);
+
+Add the following at the beginning of section "3.2 Devices"
+
+ "EGL devices can be enumerated before EGL is initialized. Use:
+
+ EGLBoolean eglQueryDevicesEXT(EGLint max_devices,
+ EGLDeviceEXT *devices,
+ EGLint *num_devices);
+
+ "to obtain a list of all supported devices in the system. On
+ success, EGL_TRUE is returned, and <num_devices> devices are
+ stored in the array pointed to by <devices>. <num_devices> will
+ be less than or equal to <max_devices>. If <devices> is NULL,
+ then <max_devices> will be ignored, no devices will be returned in
+ <devices>, and <num_devices> will be set to the number of
+ supported devices in the system. All implementations must support
+ at least one device.
+
+ "On failure, EGL_FALSE is returned. An EGL_BAD_PARAMETER error is
+ generated if <max_devices> is less than or equal to zero unless
+ <devices> is NULL, or if <num_devices> is NULL."
+
+Remove the following paragraph from section "3.4 Display Attributes"
+
+ "Because the EGLDeviceEXT is a property of <dpy>, any use of an
+ associated EGLDeviceEXT after <dpy> has been terminated gives
+ undefined results. Querying an EGL_DEVICE_EXT from <dpy> after a
+ call to eglTerminate() (and subsequent re-initialization) may
+ return a different value."
+
+Issues
+
+ None
+
+Revision History:
+
+ #1 (March 24th, 2015) James Jones
+ - Initial branch from EGL_EXT_device_base version #8
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_openwf.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_openwf.txt
new file mode 100644
index 0000000..2fb4d3b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_openwf.txt
@@ -0,0 +1,230 @@
+Name
+
+ EXT_device_openwf
+ EXT_output_openwf
+
+Name Strings
+
+ EGL_EXT_device_openwf
+ EGL_EXT_output_openwf
+
+Contributors
+
+ Daniel Kartch
+ James Jones
+ Christopher James Halse Rogers
+
+Contacts
+
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 5 - January 21, 2016
+
+Number
+
+ EGL Extension #80
+
+Extension Type
+
+ EGL device extension for EGL_EXT_device_openwf
+
+ EGL display extension for EGL_EXT_output_openwf
+
+Dependencies
+
+ EGL_EXT_device_openwf requires EGL_EXT_device_base.
+
+ EGL_EXT_output_openwf requires EGL_EXT_output_base.
+
+ Both require OpenWF Display
+
+ EGL_EXT_device_openwf interacts with EGL_EXT_platform_device
+
+ An EGLDisplay supporting EGL_EXT_output_openwf must be associated
+ with an EGLDevice supporting EGL_EXT_device_openwf.
+
+Overview
+
+ Increasingly, EGL and its client APIs are being used in place of
+ "native" rendering APIs to implement the basic graphics
+ functionality of native windowing systems. This creates demand
+ for a method to initialize EGL displays and surfaces directly on
+ top of native GPU or device objects rather than native window
+ system objects. The mechanics of enumerating the underlying
+ native devices and constructing EGL displays and surfaces from
+ them have been solved in various platform and implementation-
+ specific ways. The EGL device family of extensions offers a
+ standardized framework for bootstrapping EGL without the use of
+ any underlying "native" APIs or functionality.
+
+ These extensions define how to map device and output handles between
+ EGL and OpenWF Display. An EGL implementation which provides these
+ extensions must have access to sufficient knowledge of the OpenWF
+ implementation to be able to perform these mappings. No requirements
+ are imposed on how this information is obtained, nor does this
+ support have any implications for how EGL devices and outputs are
+ implemented. An implementation which supports these extensions may
+ support other low level device interfaces, such as DRM/KMS, as well.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Added by EXT_device_openwf:
+
+ Accepted as the <attribute> parameter of eglQueryDeviceAttribEXT
+
+ EGL_OPENWF_DEVICE_ID_EXT 0x3237
+
+ If EGL_EXT_platform_device is present, the following is accepted
+ in the <attrib_list> of eglGetPlatformDisplayEXT().
+
+ EGL_OPENWF_DEVICE_EXT 0x333D
+
+ Added by EXT_output_openwf:
+
+ Accepted in the <attrib_list> of eglGetOutputLayersEXT and as
+ the <attribute> parameter of eglQueryOutputLayerAttribEXT
+
+ EGL_OPENWF_PIPELINE_ID_EXT 0x3238
+
+ Accepted in the <attrib_list> of eglGetOutputPortsEXT and as
+ the <attribute> parameter of eglQueryOutputPortAttribEXT
+
+ EGL_OPENWF_PORT_ID_EXT 0x3239
+
+New Behavior for EXT_device_openwf
+
+ EGLDeviceEXTs may be mapped to OpenWF Display devices.
+
+ To obtain a WFD_DEVICE_ID for an EGLDeviceEXT, call
+ eglQueryDeviceAtribEXT with <attribute> set to
+ EGL_OPENWF_DEVICE_ID_EXT.
+
+If EGL_EXT_platform_device is present, replace the last sentence of the
+third paragraph in section 3.2 "Initialization" with the following:
+
+ When <platform> is EGL_PLATFORM_DEVICE_EXT, the only valid attribute
+ name is EGL_OPENWF_DEVICE_EXT. If specified, the value must be a
+ WFDDevice created with the device ID returned by querying
+ EGL_OPENWF_DEVICE_ID_EXT from the specified EGLDevice. If the device
+ handle does not refer to the correct OpenWF device the behavior is
+ undefined. Calls to eglGetPlatformDeviceEXT() with the same values
+ for <platform> and <native_display> but distinct EGL_OPENWF_DEVICE_EXT
+ values will return separate EGLDisplays.
+
+ EGL may require the use of the OpenWF device beyond the duration of
+ the call to eglGetPlatformDisplayEXT(). The application must ensure
+ the device handle remains valid for the lifetime of the display
+ returned. If no OpenWF device handle is specified and EGL requires
+ one, it will attempt to create the device itself. Applications
+ should only need to specify an OpenWF device in situations where EGL
+ may fail to create one itself due to an existing instance of the same
+ underlying device in the process.
+
+New Behavior for EXT_output_openwf
+
+ OpenWF pipeline and port IDs may be used to restrict EGL output
+ handle searches and may be queried from EGL output handles.
+
+ Add to Table 3.10.3.1 in EGL_EXT_output_base:
+
+ Attribute Type Access
+ -------------------------- ------- ------
+ EGL_OPENWF_PIPELINE_ID_EXT integer S|R
+
+ Add to Table 3.10.3.2 in EGL_EXT_output_base:
+
+ Attribute Type Access
+ -------------------------- ------- ------
+ EGL_OPENWF_PORT_ID_EXT integer S|R
+
+Issues
+
+ 1. Although the overview says that we do not impose any
+ restrictions on how the features are implemented, restrictions
+ in the OpenWF specification combined with the chosen interface
+ here do implicitly impose limitations. Specifically, the
+ wfdCreate* functions can only be called once to obtain OpenWF
+ handles. This means that an EGLDevice/Output implementation
+ cannot be layered on top of OpenWF without preventing the
+ application from calling these functions. So we must assume that
+ the implementation instead has some backdoor into OpenWF to
+ obtain the object IDs. Possible resolutions include:
+ a) Keep the access model as is. This assumption is a reasonable
+ one.
+ b) Flip the requirement. The EGL device/output implementation
+ should always create the OpenWF handles itself. We can add
+ queries so that the application can get these handles from
+ EGL.
+ c) Generalize this extension to support both models. The
+ application would have to first query EGL to determine
+ whether or not it owns the handles, and then be prepared to
+ either query them from EGL or create them itself.
+ d) Require the application to provide its OpenWF device handle
+ if it has one.
+
+ RESOLVED: (d), though implementations are free to use (a) when
+ possible.
+
+ 2. Should different values of EGL_OPENWF_DEVICE_EXT result in separate
+ EGLDisplays?
+
+ RESOLVED: Yes. Consider an application made up of two independent
+ modules running in two independently scheduled threads. Each
+ module calls eglGetPlatformDisplayEXT():
+
+ WFDDevice wfdDev = wfdCreateDevice(WFD_DEFAULT_DEVICE_ID, NULL);
+ int attr1[] = { EGL_OPENWF_DEVICE_EXT, wfdDev };
+ dpy1 = eglGetPlatformDisplayEXT(EGL_PLATFORM_DEVICE_EXT,
+ eglDev,
+ attr1);
+
+ ...
+
+ dpy2 = eglGetPlatformDisplayEXT(EGL_PLATFORM_DEVICE_EXT,
+ eglDev,
+ NULL);
+
+ Presumably, if dpy1 == dpy2, they would both be using the same
+ WFDDevice for output operations internally. That would mean
+ output operations would likely fail if dpy2 happened to be created
+ before dpy1. This would be painful to debug. If dpy2 != dpy1,
+ failure for dpy2 would be consistent and obvious. The application
+ author would be required to work out a scheme to share the WFDDevice
+ between modules before creating EGL displays.
+
+Revision History:
+
+ #5 (January 21st, 2016) James Jones
+ - Add EGL_OPENWF_DEVICE_EXT to resolve issue 1.
+ - Added possible solution (d) to issue 1, and resolve to use it.
+ - Added issue 2.
+
+ #4 (August 22nd, 2014) James Jones
+ - Marked complete.
+ - Listed Daniel as the contact.
+
+ #3 (June 5th, 2014) Daniel Kartch
+ - Assign enumerated values for constants.
+
+ #2 (May 28th, 2014) Daniel Kartch
+ - Simplified description of new behavior based on refinements
+ to EGL_EXT_output_base.
+
+ #1 (January 31st, 2014) Daniel Kartch
+ - Initial draft, representing a signficant reworking of
+ functionality previously proposed in
+ EGL_EXT_native_device_openwf.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_persistent_id.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_persistent_id.txt
new file mode 100644
index 0000000..081a6d1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_persistent_id.txt
@@ -0,0 +1,202 @@
+Name
+
+ EXT_device_persistent_id
+
+Name Strings
+
+ EGL_EXT_device_persistent_id
+
+Contributors
+
+ Kyle Brenneman, NVIDIA (kbrenneman 'at' nvidia.com)
+
+Contact
+
+ Kyle Brenneman, NVIDIA (kbrenneman 'at' nvidia.com)
+
+Version
+
+ Version 1 - April 19, 2021
+
+Number
+
+ EGL Extension #142
+
+Extension Type
+
+ EGL device extension
+
+Dependencies
+
+ Written based on the wording of the EGL 1.5 specification.
+
+ EGL_EXT_device_query is required.
+
+Overview
+
+ Applications can query a list of EGLDeviceEXT handles, but those
+ handles are only valid within the process that queried them. An
+ application has no way, for example, to record its selection and
+ select the same device when run again later.
+
+ This extension provides a vendor name and a set of UUID's, which
+ provide a unique, persistent identifier for EGLDeviceEXT handles.
+ This allows applications to find the EGLDeviceEXT for the same
+ device across multiple processes, and across multiple APIs.
+
+New Procedures and Functions
+
+ EGLBoolean eglQueryDeviceBinaryEXT(EGLDeviceEXT device,
+ EGLint name,
+ EGLint max_size,
+ void *value,
+ EGLint *size);
+
+New Tokens
+
+ Accepted by the <name> parameter of eglQueryDeviceStringEXT:
+
+ EGL_DRIVER_NAME_EXT 0x335E
+
+ Accepted by the <name> parameter of eglQueryDeviceBinaryEXT:
+
+ EGL_DEVICE_UUID_EXT 0x335C
+ EGL_DRIVER_UUID_EXT 0x335D
+
+Changes to section 3.2 (Devices)
+
+ Add the following paragraph to the description of
+ eglQueryDeviceStringEXT:
+
+ EGL_DRIVER_NAME_EXT returns a string which identifies the driver
+ that controls the device. This string remains persistent across
+ multiple versions of a driver, and an application can use strcmp(3)
+ to compare the strings for equality. Otherwise, the contents are
+ implementation-defined.
+
+
+ Add to the end of section 3.2:
+
+ To query a binary attribute for a device, use:
+
+ EGLBoolean eglQueryDeviceBinaryEXT(EGLDeviceEXT device,
+ EGLint name,
+ EGLint max_size,
+ void *value,
+ EGLint *size);
+
+ On success, EGL_TRUE is returned. If <value> is NULL, then
+ <max_size> is ignored, and the size of the attribute in bytes is
+ returned in <size>.
+
+ On failure, EGL_FALSE is returned. An EGL_BAD_ATTRIBUTE error is
+ generated if <name> is not a valid attribute. An EGL_BAD_DEVICE_EXT
+ error is generated if <device> is not a valid EGLDeviceEXT.
+
+ If <value> is not NULL, then the attribute value is returned in
+ <value>. At most <max_size> bytes are written. <size> returns the
+ number of bytes that were actually written.
+
+ Note that the EGL_DEVICE_UUID_EXT and EGL_DRIVER_UUID_EXT attributes
+ are always 16-byte values, and so the application can simply use a
+ 16-byte buffer without needing to query the size beforehand. Future
+ extensions may add variable-length attributes.
+
+
+ EGL_DEVICE_UUID_EXT is a UUID that identifies a physical device,
+ returned as a 16-byte binary value. The device UUID uniquely
+ identifies a physical device, and is persistent across reboots,
+ processes, APIs, and (to the extent possible) driver versions.
+
+ EGL_DEVICE_UUID_EXT may or may not be persistent across changes in
+ hardware configuration. Similarly, it is not guaranteed to be unique
+ or persistent across different (physical or virtual) computers.
+
+ Note that EGL_DEVICE_UUID_EXT alone is not guaranteed to be unique
+ across all EGLDeviceEXT handles. If an EGL implementation supports
+ multiple drivers, and two drivers can use the same physical device,
+ then there will be a separate EGLDeviceEXT handle from each driver.
+ Both EGLDeviceEXT handles may use the same device UUID.
+
+ In that case, an application must use EGL_DRIVER_NAME_EXT or
+ EGL_DRIVER_UUID_EXT to distinguish between the two EGLDeviceEXT
+ handles.
+
+
+ EGL_DRIVER_UUID_EXT is a UUID that identifies a driver build
+ in use for a device. The driver UUID is persistent across reboots,
+ processes, and APIs, but is not persistent across driver versions.
+
+Issues
+
+ 1. Should we use UUID's or strings to identify devices?
+
+ RESOLVED: Use UUID's for devices, plus a vendor name string to
+ disambiguate devices that are supported by multiple drivers.
+
+ A device UUID and driver UUID allow an application to correlate
+ an EGLDeviceEXT with the same device in other APIs, such as a
+ VkPhysicalDevice in Vulkan.
+
+ A UUID does not impose any additional requirements on an EGL
+ implementation compared to a string: If an EGL implementation
+ could generate a string identifier, then the implementation can
+ simply hash that string to generate a UUID value.
+
+ 2. Can two EGLDeviceEXT handles have the same EGL_DEVICE_UUID_EXT?
+
+ RESOLVED: Yes, if they correspond to the same physical device.
+
+ The semantics of the device and driver UUID's are inherited from
+ Vulkan, which only requires that a device UUID be unique to a
+ physical device, not unique across VkPhysicalDevice handles.
+
+ 3. Do we need the EGL_DRIVER_NAME_EXT string?
+
+ RESOLVED: Yes, because the EGL_DEVICE_UUID_EXT alone is not
+ unique, and EGL_DRIVER_UUID_EXT is not persistent.
+
+ A (EGL_DRIVER_NAME_EXT, EGL_DEVICE_UUID_EXT) pair provides a
+ unique, persistent identifier.
+
+ In addition, on systems that use libglvnd, applications could
+ use EGL_DRIVER_NAME_EXT to match the vendor names from
+ GLX_EXT_libglvnd.
+
+ 4. What happens if an application stores a device UUID, and the
+ hardware configuration or driver version changes?
+
+ RESOLVED: The device UUID may become invalid, and the
+ application should select a new device.
+
+ If a device is removed from a system, then there will be no
+ EGLDeviceEXT handle for it, and thus no device UUID for it.
+
+ Similarly, if a device is moved within a system (e.g., plugged
+ into a different PCI slot), then a driver may not be able to
+ identify it as the same device, and so the device might get a
+ different UUID.
+
+ While not a requirement, drivers should still try to keep device
+ UUID's persistent whenever possible, to avoid invalidating
+ config files. Similarly, if a device is removed or replaced,
+ then a driver should try to ensure that the same device UUID
+ does not refer to a different device.
+
+ As an example, a driver could derive a UUID based on a PCI
+ vendor and device number, plus the PCI domain, bus, slot, and
+ function numbers:
+
+ * The PCI device number ensures that replacing a GPU with a
+ different model in the same PCI slot produces a different
+ device UUID string.
+ * Using the PCI bus numbers ensures that two identical
+ GPU's in the same system have unique UUID's.
+ * The whole tuple can easily stay persistent across driver
+ versions.
+
+Revision History
+
+ #1 (April 19, 2021) Kyle Brenneman
+
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_query.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_query.txt
new file mode 100644
index 0000000..b976aa9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_query.txt
@@ -0,0 +1,188 @@
+Name
+
+ EXT_device_query
+
+Name Strings
+
+ EGL_EXT_device_query
+
+Contributors
+
+ James Jones, NVIDIA (jajones 'at' nvidia.com)
+ Jamie Madill, Google (jmadill 'at' google.com)
+
+Contacts
+
+ Jamie Madill, Google (jmadill 'at' google.com)
+
+Status
+
+ Complete.
+
+Version
+
+ Version 1 - Mar 25rd, 2015
+
+Number
+
+ EGL Extension #89
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Written against the wording of EGL 1.5.
+
+ Requires EGL 1.5 or an earlier verison of EGL with the
+ EGL_EXT_client_extensions extension.
+
+Overview
+
+ Increasingly, EGL and its client APIs are being used in place of
+ "native" rendering APIs to implement the basic graphics
+ functionality of native windowing systems. This creates demand
+ for a method to access native GPU or device objects directly
+ rather than calling EGL or GL entry points.
+
+ This extension defines the method for an application to query
+ native device objects from an EGL Display.
+
+New Types
+
+ This is the type of a handle that represents an EGLDeviceEXT
+ object.
+
+ typedef void* EGLDeviceEXT;
+
+ If EGL 1.5 is not supported, the following type is added, as
+ defined in the EGL 1.5 specification:
+
+ typedef intptr_t EGLAttrib;
+
+New Functions
+
+ EGLBoolean eglQueryDeviceAttribEXT(EGLDeviceEXT device,
+ EGLint attribute,
+ EGLAttrib *value);
+
+ const char *eglQueryDeviceStringEXT(EGLDeviceEXT device,
+ EGLint name);
+
+ EGLBoolean eglQueryDisplayAttribEXT(EGLDisplay dpy,
+ EGLint attribute,
+ EGLAttrib *value);
+
+New Tokens
+
+ Functions with a return type of EGLDeviceEXT will return this
+ value on failure:
+
+ EGL_NO_DEVICE_EXT ((EGLDeviceEXT)0)
+
+ This error value will be generated by functions that take an
+ EGLDeviceEXT object as a parameter:
+
+ EGL_BAD_DEVICE_EXT 0x322B
+
+ Accepted by the <attribute> parameter of
+ eglQueryDisplayAttribEXT:
+
+ EGL_DEVICE_EXT 0x322C
+
+Add a new section "2.1.2 Devices" after "2.1.1 Scalar Types"
+
+ All EGL operations occur on an EGLDeviceEXT. However, devices
+ themselves expose no functionality. They are simple abstract
+ objects that exist only for the sake of enumeration and
+ defining a namespace.
+
+Modify the last sentence of section "2.1.3" Displays" to read:
+
+ Besides devices, objects are always specified by the combination
+ of an EGLDisplay parameter with a parameter representing the
+ handle of the object.
+
+Add a new extension type to the list in section "2.8 Extensions"
+
+ Device Extensions
+ A *device extension* adds functionality to an individual
+ EGLDeviceEXT. Different instances of EGLDeviceEXT may support
+ different sets of device extensions
+
+Add a new error to section "3.1 Errors"
+
+ EGL_BAD_DEVICE_EXT
+ An EGLDeviceEXT argument does not refer to a valid
+ EGLDeviceEXT. Any command taking an EGLDeviceEXT parameter
+ may generate this error.
+
+Add a section "3.2 Devices" after "3.1 Errors"
+
+ To query the properties of a device, use:
+
+ EGLBoolean eglQueryDeviceAttribEXT(EGLDeviceEXT device,
+ EGLint attribute,
+ EGLAttrib *value);
+
+ On success, EGL_TRUE is returned and the requested attribute value
+ is returned in <value>. Currently there are no valid values of
+ <attribute> defined.
+
+ On failure, EGL_FALSE is returned. An EGL_BAD_ATTRIBUTE error is
+ generated if <attribute> is not a valid attribute. An
+ EGL_BAD_DEVICE_EXT error is generated if <device> is not a valid
+ EGLDeviceEXT.
+
+ const char *eglQueryDeviceStringEXT(EGLDeviceEXT device,
+ EGLint name);
+
+ returns a pointer to a static, zero-terminated string describing
+ some aspect of the specified EGLDeviceEXT. <name> must be
+ EGL_EXTENSIONS.
+
+ The EGL_EXTENSIONS string describes which device extensions are
+ supported by <device>. The string is of the same format specified
+ for display and client extension strings in section 3.4. Note that
+ device extensions are properties of the device, and are distinct
+ from other extension strings.
+
+ On failure, NULL is returned. An EGL_BAD_DEVICE_EXT error is
+ generated if <device> is not a valid EGLDeviceEXT. An
+ EGL_BAD_PARAMETER error is generated if <name> is not one of the
+ values described above.
+
+Add a section "3.4 Display Attributes" after "3.3 EGL Versioning"
+
+ To query attributes of an initialized display, use:
+
+ EGLBoolean eglQueryDisplayAttribEXT(EGLDisplay dpy,
+ EGLint name,
+ EGLAttrib *value);
+
+ On success, EGL_TRUE is returned. If <name> is EGL_DEVICE_EXT,
+ the EGLDeviceEXT associated with <dpy> is returned in <value>.
+ All displays have an associated EGLDeviceEXT, regardless of how
+ they were created. A successful query of EGL_DEVICE_EXT will
+ never return EGL_NO_DEVICE_EXT.
+
+ On failure, EGL_FALSE is returned. An EGL_NOT_INITIALIZED error
+ is generated if EGL is not initialized for <dpy>. An
+ EGL_BAD_ATTRIBUTE error is generated if <name> is not a valid
+ value.
+
+ Because the EGLDeviceEXT is a property of <dpy>, any use of an
+ associated EGLDeviceEXT after <dpy> has been terminated gives
+ undefined results. Querying an EGL_DEVICE_EXT from <dpy> after a
+ call to eglTerminate() (and subsequent re-initialization) may
+ return a different value.
+
+Issues
+
+ None.
+
+Revision History:
+
+ #1 (Mar 25rd, 2015) Jamie Madill
+ - Initial Draft based on EGL_EXT_device_base
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_query_name.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_query_name.txt
new file mode 100644
index 0000000..bb2be91
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_device_query_name.txt
@@ -0,0 +1,104 @@
+Name
+
+ EXT_device_query_name
+
+Name Strings
+
+ EGL_EXT_device_query_name
+
+Contributors
+
+ Kyle Brenneman, NVIDIA (kbrenneman 'at' nvidia.com)
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Contact
+
+ Kyle Brenneman, NVIDIA (kbrenneman 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 1 - June 12, 2020
+
+Number
+
+ EGL Extension #140
+
+Extension Type
+
+ EGL device extension
+
+Dependencies
+
+ Written based on the wording of the EGL 1.5 specification.
+
+ EGL_EXT_device_query is required.
+
+Overview
+
+ The EGL_EXT_device_enumeration and EGL_EXT_device_query extensions
+ provide a list of devices and a list of extensions, but lacks a way
+ to find a name for a device that an application can present to a
+ user.
+
+ This extension adds two new strings that an application can query to
+ find human-readable names.
+
+New Types
+
+ None
+
+New Functions
+
+ None
+
+New Tokens
+
+ Accepted by the <name> parameter of eglQueryDeviceStringEXT:
+
+ EGL_RENDERER_EXT 0x335F
+
+New Device Queries
+
+ eglQueryDeviceStringEXT accepts two new attributes.
+
+ EGL_VENDOR and EGL_RENDERER_EXT return a human-readable name for the
+ vendor and device, respectively.
+
+ The format of the EGL_VENDOR and EGL_RENDERER strings is
+ implementation-dependent.
+
+ The EGL_VENDOR string for an EGLDeviceEXT is not required to match
+ the EGL_VENDOR string for an EGLDisplay or the GL_VENDOR string for
+ a context. Similarly, the EGL_RENDERER string is not required to
+ match the GL_RENDERER string for a context.
+
+Issues
+
+ 1. Do we need a device query, instead of just creating an
+ EGLDisplay and calling eglQueryString?
+
+ RESOLVED: Yes, a device-level query is useful, because some
+ devices might not be usable with EGL_EXT_platform_device. This
+ is especially true on systems where different devices are
+ handled by different drivers.
+
+ 2. If an application creates an EGLDisplay from an EGLDevice,
+ are the EGL_VENDOR strings required to match?
+
+ RESOLVED: No. Some implementations might not load a driver until
+ eglInitialize, and so might have a different or more specific
+ EGL_VENDOR string associated with an EGLDisplay than with an
+ EGLDeviceEXT. In addition, an implementation might select a
+ driver to use based on other parameters in
+ eglGetPlatformDisplay.
+
+Revision History
+
+ #1 (June 12, 2020) Kyle Brenneman
+
+ - Initial draft
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_explicit_device.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_explicit_device.txt
new file mode 100644
index 0000000..2ba8834
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_explicit_device.txt
@@ -0,0 +1,136 @@
+Name
+
+ EXT_explicit_device
+
+Name Strings
+
+ EGL_EXT_explicit_device
+
+Contributors
+
+ Adam Jackson
+ Nicolai Haehnle
+ Daniel Stone
+ Kyle Brenneman
+
+Contacts
+
+ Adam Jackson <ajax@redhat.com>
+
+Status
+
+ Complete
+
+Version
+
+ Version 3, 2022-04-21
+
+Number
+
+ EGL Extension #148
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Requires EGL_EXT_platform_base and EGL_EXT_device_enumeration.
+
+ EGL_EXT_platform_device trivially interacts with this extension.
+
+ This extension is written against the EGL 1.5 Specification.
+
+Overview
+
+ A system may support rendering with multiple devices for the same
+ windowing system. In that case, an EGL implementation must select a
+ default device based on the native display.
+
+ This extension allows an application to explicitly request a device
+ to use for rendering instead of the implementation's default.
+
+ This differs from EGL_EXT_platform_device in that
+ EGL_EXT_platform_device uses an EGLDeviceEXT instead of a native
+ display. Thus, EGL_EXT_platform_device allows offscreen rendering
+ to a pbuffer or FBO, but it does not require or use a windowing
+ system, and thus does not allow pixmap or window surfaces.
+
+ Using EGL_EXT_explicit_device with EGL_MESA_platform_surfaceless is
+ functionally identical to EGL_EXT_platform_device.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ None
+
+Additions to the EGL Specification
+
+ None
+
+New Behavior
+
+ If EGL_DEVICE_EXT is specified as an attribute for
+ eglGetPlatformDisplay, the value of the attribute is interpreted as
+ an EGLDeviceEXT as returned by eglQueryDevicesEXT.
+
+ If the EGL_DEVICE_EXT attribute is EGL_NO_DEVICE_EXT, then the
+ implementation will select a device automatically, as it would
+ normally.
+
+ If the EGL_DEVICE_EXT attribute is not EGL_NO_DEVICE_EXT, then the
+ implementation will use the specified device for rendering. If the
+ EGL_DEVICE_EXT attribute does not name a valid EGLDeviceEXT, then
+ EGL_BAD_DEVICE_EXT is generated.
+
+ An implementation might not support all devices for all native
+ displays. If the device and native display are not compatible for
+ any reason, then EGL_BAD_MATCH is generated.
+
+ If EGL_EXT_platform_device is supported, passing EGL_DEVICE_EXT as an
+ attribute to eglGetPlatformDisplay(EGL_PLATFORM_DEVICE_EXT) generates
+ EGL_BAD_ATTRIBUTE.
+
+Issues
+
+ 1. Should we have a separate function to query whether a device is
+ compatible with a native display?
+
+ RESOLVED: No. A separate query might require duplicating a lot of
+ the work that eglGetPlatformDisplay and eglInitialize would do,
+ which could be very slow.
+
+ 2. If an implementation can't support a device with a particular
+ native display, then should it fail in eglGetPlatformDisplay, or
+ can it defer any compatibility checks until eglInitialize?
+
+ RESOLVED: eglGetPlatformDisplay must check for compatibility and
+ should fail if the device and native display are not supported.
+
+ Without a separate function to check for compatibility, the only
+ way for an application to know which devices can work with a
+ native display is to try to use each device and see if it gets an
+ error. If the error is in eglInitialize, then an application
+ would have to create (and leak) a bunch of EGLDisplay handles
+ that it never intends to use.
+
+Revision History
+
+ Version 3, 2022-04-21 (Kyle Brenneman)
+ - Require eglGetPlatformDisplay (instead of eglInitialize) check
+ whether the device is supported with the native display.
+
+ Version 2, 2017-08-08 (Adam Jackson)
+ - Renamed from MESA_platform_device to EXT_explicit_device
+ - Make it an error to use this new attribute in conjunction with
+ EGL_EXT_platform_device
+
+ Version 1, 2017-07-14 (Adam Jackson)
+ - Initial version
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_bt2020_linear.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_bt2020_linear.txt
new file mode 100644
index 0000000..37eb6ba
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_bt2020_linear.txt
@@ -0,0 +1,175 @@
+Name
+
+ EXT_gl_colorspace_bt2020
+
+Name Strings
+
+ EGL_EXT_gl_colorspace_bt2020_linear
+ EGL_EXT_gl_colorspace_bt2020_pq
+
+Contributors
+
+ Tom Cooksey
+ Andrew Garrard
+ Jesse Hall
+ Mathias Heyer
+ Lauri Hyvarinen
+ Adam Jackson
+ James Jones
+ Daniel Koch
+ Jeff Leger
+ Weiwan Liu
+ Jeff Vigil
+
+Contact
+
+ Weiwan Liu (weiwliu 'at' nvidia.com)
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Complete
+
+Version
+
+ Version 7 - Nov 22, 2016
+
+Number
+
+ EGL Extension #107
+
+Dependencies
+
+ These extensions are written against the wording of the EGL 1.5
+ specification (August 27, 2014).
+
+ These extensions require EGL_KHR_gl_colorspace.
+
+Overview
+
+ Applications may wish to take advantage of a larger color gamut in the
+ BT.2020 (ITU-R Recommendation BT.2020) color space. These extensions allow
+ applications to do so by communicating to the platform the color space the
+ framebuffer data is in, i.e. BT.2020 color space, as well as the encoding
+ of the framebuffer data, which can be either linear or PQ (Dolby Perceptual
+ Quantizer - SMPTE ST 2084) encoding. Applications are expected to prepare
+ the framebuffer data properly.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as attribute values for EGL_GL_COLORSPACE by
+ eglCreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface:
+
+ [[ If EGL_EXT_gl_colorspace_bt2020_linear is supported ]]
+
+ EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F
+
+ [[ If EGL_EXT_gl_colorspace_bt2020_pq is supported ]]
+
+ EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340
+
+Modifications to the EGL 1.5 Specification
+
+ Insert below text in the 3rd paragraph on page 33 in 3.5.1 "Creating On-
+ Screen Rendering Surfaces, before "The default value of EGL_GL_COLORSPACE
+ is EGL_GL_COLORSPACE_LINEAR.":
+
+ [[ If EGL_EXT_gl_colorspace_bt2020_linear is supported ]]
+
+ If its value is EGL_GL_COLORSPACE_BT2020_LINEAR_EXT, then a linear BT.2020
+ color space is assumed, with a corresponding GL_FRAMEBUFFER_ATTACHMENT_-
+ COLOR_ENCODING value of GL_LINEAR.
+
+ [[ If EGL_EXT_gl_colorspace_bt2020_pq is supported ]]
+
+ If its value is EGL_GL_COLORSPACE_BT2020_PQ_EXT, then a non-linear, PQ
+ encoded BT.2020 color space is assumed, with a corresponding GL_FRAMEBUFFER-
+ _ATTACHMENT_COLOR_ENCODING value of GL_LINEAR, as neither OpenGL nor OpenGL
+ ES supports PQ framebuffers. Applications utilizing this option need to
+ ensure that PQ encoding is performed on the application side.
+
+ Modify the 4th paragraph on the same page:
+
+ Note that the EGL_GL_COLORSPACE_SRGB attribute is used only by OpenGL and
+ OpenGL ES contexts supporting sRGB framebuffers. EGL itself does not
+ distinguish multiple colorspace models. Refer to the "sRGB Conversion"
+ sections of the OpenGL 4.4 and OpenGL ES 3.0 specifications for more
+ information.
+
+ Add a paragraph after the 4th paragraph above:
+
+ [[ If EGL_EXT_gl_colorspace_bt2020_linear is supported ]]
+
+ When using a floating-point EGL surface with EGL_GL_COLORSPACE_BT2020_-
+ LINEAR_EXT, the output values in the display-referred range of [0.0, 1.0]
+ correspond to a luminance range of 0 to 80 nits, which is the same luminance
+ range for sRGB. To achieve a larger dynamic range of 0 to 10000 nits, which
+ is the same range for PQ, the display-referred output values can go beyond
+ 1.0 and to a range of [0.0, 125.0], where 0.0 corresponds to 0 nit and 125.0
+ corresponds to 10000 nits.
+
+ [[ If EGL_EXT_gl_colorspace_bt2020_pq is supported ]]
+
+ When using a floating-point EGL surface with EGL_GL_COLORSPACE_BT2020_PQ_-
+ EXT, to achieve the luminance range of 0 to 10000 nits (candela per square
+ meter) as defined by the SMPTE 2084 standard, applications can output values
+ in a display-referred range of [0.0, 1.0], where 0.0 corresponds to 0 nit
+ and 1.0 corresponds to 10000 nits.
+
+Errors
+
+ Modify below error in the "Errors" section on page 34:
+
+ "If config does not support the OpenVG colorspace or alpha format at-
+ tributes specified in attrib list (as defined for eglCreatePlatformWindow-
+ Surface), an EGL_BAD_MATCH error is generated."
+
+ To include OpenGL colorspace as well:
+
+ "If config does not support the OpenGL colorspace, the OpenVG colorspace or
+ alpha format attributes specified in attrib list (as defined for eglCreate-
+ PlatformWindowSurface), an EGL_BAD_MATCH error is generated."
+
+Issues
+
+ 1. When creating an EGL surface, what happens when the specified colorspace
+ is not compatible with or supported by the EGLConfig?
+
+ RESOLVED: There is currently no way to query the compatibility of a
+ EGLConfig and colorspace pair. So the only option is to define an error
+ case similar to that of OpenVG colorspace, i.e. if config does not
+ support the colorspace specified in attrib list (as defined for egl-
+ CreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface),
+ an EGL_BAD_MATCH error is generated.
+
+Revision History
+
+ Version 1, 2016/04/27
+ - Internal revisions
+
+ Version 2, 2016/05/20
+ - Rename to EXT
+
+ Version 3, 2016/05/25
+ - Add issues
+
+ Version 4, 2016/06/06
+ - Split up the extension and put each colorspace option into an individual
+ extension
+
+ Version 5, 2016/06/17
+ - Correct the meaning of the data from scene-referred to display-referred
+
+ Version 6, 2016/10/27
+ - Mark issue #1 as "RESOLVED" and add an error case
+
+ Version 7, 2016/11/22
+ - Change status to complete
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt
new file mode 100644
index 0000000..32e7ebc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt
@@ -0,0 +1,137 @@
+Name
+
+ EXT_gl_colorspace_display_p3
+
+Name Strings
+
+ EGL_EXT_gl_colorspace_display_p3_linear
+ EGL_EXT_gl_colorspace_display_p3
+
+Contributors
+
+ Courtney Goeltzenleuchter
+ Jesse Hall
+
+Contact
+
+ Courtney Goeltzenleuchter (courtneygo 'at' google.com)
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Draft
+
+Version
+
+ Version 2 - Oct 4, 2018
+
+Number
+
+ EGL Extension #118
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ These extensions are written against the wording of the EGL 1.5
+ specification (August 27, 2014).
+
+ These extensions require EGL_KHR_gl_colorspace.
+
+Overview
+
+ Applications that want to use the Display-P3 color space (DCI-P3 primaries
+ and linear or sRGB-like transfer function) can use this extension to
+ communicate to the platform that framebuffer contents represent colors in
+ the Display-P3 color space.
+ The application is responsible for producing appropriate framebuffer
+ contents, but will typically use built-in sRGB encoding in OpenGL and OpenGL
+ ES to accomplish this.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as attribute values for EGL_GL_COLORSPACE by
+ eglCreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface:
+
+ [[ If EGL_EXT_gl_colorspace_display_p3_linear is supported ]]
+
+ EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362
+
+ [[ If EGL_EXT_gl_colorspace_display_p3 is supported ]]
+
+ EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363
+
+Modifications to the EGL 1.5 Specification
+
+ Insert below text in the 3rd paragraph on page 33 in 3.5.1 "Creating On-
+ Screen Rendering Surfaces, before "The default value of EGL_GL_COLORSPACE
+ is EGL_GL_COLORSPACE_LINEAR.":
+
+ [[ If EGL_EXT_gl_colorspace_display_p3_linear is supported ]]
+
+ If its value is EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT, then a linear
+ Display-P3 color space is assumed, with a corresponding
+ GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING value of GL_LINEAR.
+
+ [[ If EGL_EXT_gl_colorspace_display_p3 is supported ]]
+
+ If its value is EGL_GL_COLORSPACE_DISPLAY_P3_EXT, then a non-linear, sRGB
+ encoded Display-P3 color space is assumed, with a corresponding GL_FRAME-
+ BUFFER_ATTACHMENT_COLOR_ENCODING value of GL_SRGB.
+ Only OpenGL and OpenGL ES contexts which support sRGB rendering must
+ respect requests for EGL_GL_COLORSPACE_SRGB_KHR, and only to sRGB
+ formats supported by the context (normally just SRGB8).
+
+ Modify the 4th paragraph on the same page:
+
+ Note that the EGL_GL_COLORSPACE_SRGB attribute is used only by OpenGL and
+ OpenGL ES contexts supporting sRGB framebuffers. EGL itself does not
+ distinguish multiple colorspace models. Refer to the "sRGB Conversion"
+ sections of the OpenGL 4.4 and OpenGL ES 3.0 specifications for more
+ information.
+
+Errors
+
+ Modify below error in the "Errors" section on page 34:
+
+ "If config does not support the OpenVG colorspace or alpha format at-
+ tributes specified in attrib list (as defined for eglCreatePlatformWindow-
+ Surface), an EGL_BAD_MATCH error is generated."
+
+ To include OpenGL colorspace as well:
+
+ "If config does not support the OpenGL colorspace, the OpenVG colorspace or
+ alpha format attributes specified in attrib list (as defined for eglCreate-
+ PlatformWindowSurface), an EGL_BAD_MATCH error is generated."
+
+Issues
+
+ 1. Removed section talking about HDR features, e.g. luminance > 80nits.
+ Do we want to keep that here in anticipation of HDR support in the future?
+
+ 2. When creating an EGL surface, what happens when the specified colorspace
+ is not compatible with or supported by the EGLConfig?
+
+ RESOLVED: There is currently no way to query the compatibility of a
+ EGLConfig and colorspace pair. So the only option is to define an error
+ case similar to that of OpenVG colorspace, i.e. if config does not
+ support the colorspace specified in attrib list (as defined for egl-
+ CreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface),
+ an EGL_BAD_MATCH error is generated.
+
+Revision History
+
+ Version 1, 2017/03/22
+ - Internal revisions
+
+ Version 2, 2018/10/04
+ - Fix typo to correct extension reference
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt
new file mode 100644
index 0000000..f0223a6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt
@@ -0,0 +1,139 @@
+Name
+
+ EXT_gl_colorspace_display_p3_passthrough
+
+Name Strings
+
+ EGL_EXT_gl_colorspace_display_p3_passthrough
+
+Contributors
+
+ Chris Forbes
+ Courtney Goeltzenleuchter
+
+Contact
+
+ Courtney Goeltzenleuchter (courtneygo 'at' google.com)
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Draft
+
+Version
+
+ Version 1 - Dec 4, 2018
+
+Number
+
+ EGL Extension #130
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ This extension is written against the wording of the EGL 1.5
+ specification (August 27, 2014).
+
+ This extension requires EGL_KHR_gl_colorspace.
+
+Overview
+
+ Applications that want to use the Display-P3 color space (DCI-P3 primaries
+ with sRGB-like transfer function) can use this extension to
+ communicate to the platform that framebuffer contents represent colors in
+ the non-linear Display-P3 color space.
+ The application is responsible for producing appropriate framebuffer
+ contents. An application would want to use this extension rather than
+ EGL_EXT_gl_colorspace_display_p3 if they apply the sRGB transfer function
+ themselves and do not need the HW to do it.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as attribute values for EGL_GL_COLORSPACE by
+ eglCreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface:
+
+ [[ If EGL_EXT_gl_colorspace_display_p3_linear is supported ]]
+
+ EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490
+
+Modifications to the EGL 1.5 Specification
+
+ Insert below text in the 3rd paragraph on page 33 in 3.5.1 "Creating On-
+ Screen Rendering Surfaces, before "The default value of EGL_GL_COLORSPACE
+ is EGL_GL_COLORSPACE_LINEAR.":
+
+ [[ If EGL_EXT_gl_colorspace_display_p3_passthrough is supported ]]
+
+ If its value is EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT, then a
+ non-linear, sRGB encoded Display-P3 color space is assumed, with a
+ corresponding GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING value of GL_LINEAR.
+ The application is responsible for applying the appropriate transfer
+ function when writing and reading pixels.
+
+ Insert below text after the 4th paragraph on the same page:
+
+ Note that the EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT attribute
+ indicates that a colorspace of Display P3 will be communicated to the
+ Window system. While EGL itself is color space agnostic, the surface
+ will eventually be presented to a display device with specific color
+ reproduction characteristics. If any color space transformations are
+ necessary before an image can be displayed, the color space of the
+ presented image must be known to the window system.
+
+Errors
+
+ Modify below error in the "Errors" section on page 34:
+
+ "If config does not support the OpenVG colorspace or alpha format at-
+ tributes specified in attrib list (as defined for eglCreatePlatformWindow-
+ Surface), an EGL_BAD_MATCH error is generated."
+
+ To include OpenGL colorspace as well:
+
+ "If config does not support the OpenGL colorspace, the OpenVG colorspace or
+ alpha format attributes specified in attrib list (as defined for eglCreate-
+ PlatformWindowSurface), an EGL_BAD_MATCH error is generated."
+
+Issues
+
+ 1. When creating an EGL surface, what happens when the specified colorspace
+ is not compatible with or supported by the EGLConfig?
+
+ RESOLVED: There is currently no way to query the compatibility of a
+ EGLConfig and colorspace pair. So the only option is to define an error
+ case similar to that of OpenVG colorspace, i.e. if config does not
+ support the colorspace specified in attrib list (as defined for egl-
+ CreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface),
+ an EGL_BAD_MATCH error is generated.
+
+ 2. Why the new enum instead of DISPLAY_P3_EXT + EXT_srgb_write_control?
+
+ RESOLVED:
+ We want to rely on "surface state" rather than a "context state", e.g.
+ EXT_srgb_write_control is global where we only want behavior to apply to
+ specific surface.
+
+ 3. Should sRGB framebuffer support affect the pixel path?
+
+ RESOLVED: No.
+
+ sRGB rendering is defined by GL/GLES. Specifically, glReadPixels and
+ other pixel paths operations are not affected by sRGB rendering. But
+ glBlitFramebuffer is. Though, of course, if this extension were to
+ apply it would be a no-op.
+
+Revision History
+
+ Version 1, 2018/12/04
+ - Internal revisions
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt
new file mode 100644
index 0000000..708fb17
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt
@@ -0,0 +1,130 @@
+Name
+
+ EXT_gl_colorspace_scrgb
+
+Name Strings
+
+ EGL_EXT_gl_colorspace_scrgb
+
+Contributors
+
+ Courtney Goeltzenleuchter
+ Lauri Hyvarinen
+ Weiwan Liu
+ Arun Swain
+
+Contact
+
+ Courtney Goeltzenleuchter (courtneygo 'at' google.com)
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Draft
+
+Version
+
+ Version 2 - August 25, 2017
+
+Number
+
+ EGL Extension #119
+
+Dependencies
+
+ This extension is written against the wording of the EGL 1.5 specification
+ (August 27, 2014).
+
+ This extension requires EGL_KHR_gl_colorspace and EGL_EXT_pixel_format_-
+ float, and interacts with EGL_EXT_surface_SMPTE2086_metadata. This extension
+ is closely related to EGL_EXT_gl_colorspace_scrgb_linear.
+
+Overview
+
+ This extension provides an extended sRGB (also called scRGB) color
+ space option for applications to choose from when creating an EGLSurface.
+ This extension defines the non-linear display referred scRGB color space.
+ It has the same white point and color primaries as sRGB, and thus is
+ backward-compatible with sRGB. Refer to the IEC 61966-2-2:2003 standard
+ for details on scRGB color space.
+
+ This extension chooses to use floating-point formats for scRGB color space.
+ For each color channel, the floating-point values of 0.0 and 1.0 still
+ correspond to sRGB chromaticities and luminance levels. However, scRGB
+ space allows for color values beyond the range of [0.0, 1.0], and can thus
+ achieve a larger color volume than that of sRGB. As it is display referred,
+ scRGB space makes assumptions of how the floating-point color values should
+ map to luminance levels by the underlying display pipeline. The expected
+ mapping is such that a color value of (1.0, 1.0, 1.0) corresponds to a
+ luminance level of 80 nits on a standardized studio monitor. As the color
+ value per channel goes beyond 1.0 and up to ~7.83, the corresponding
+ luminance levels also increase to a maximum of 10000 nits.
+
+ The application is responsible for applying the extended sRGB transfer
+ function to color values written to or read from a surface with a
+ colorspace of EGL_EXT_gl_colorspace_scrgb.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as attribute values for EGL_GL_COLORSPACE by
+ eglCreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface:
+
+ EGL_GL_COLORSPACE_SCRGB_EXT 0x3351
+
+Modifications to the EGL 1.5 Specification
+
+ Insert below text in the 3rd paragraph on page 33 in 3.5.1 "Creating On-
+ Screen Rendering Surfaces", before "The default value of EGL_GL_COLORSPACE
+ is EGL_GL_COLORSPACE_LINEAR.":
+
+ [[ If EGL_EXT_gl_colorspace_scrgb is supported ]]
+
+ If its value is EGL_GL_COLORSPACE_SCRGB_EXT, then a non-linear scRGB
+ color space is assumed. with a corresponding GL_FRAMEBUFFER_ATTACHMENT_-
+ COLOR_ENCODING value of GL_LINEAR as neither OpenGL nor OpenGL ES
+ supports framebuffers using an scRGB transfer function.
+ The application is responsible for applying the appropriate extended
+ sRGB transfer function when reading or writing to this buffer.
+ scRGB is defined to use the same primaries and white-point as sRGB.
+ See IEC 61966-2-2:2003 for details.
+
+ Add two paragraphs after the 4th paragraph above:
+
+ When using a floating-point EGL surface with EGL_GL_COLORSPACE_SCRGB_EXT,
+ the display-referred values in the range of (0.0, 0.0, 0.0) to
+ (1.0, 1.0, 1.0) correspond to a luminance range of 0 to 80 nits, which is
+ the same luminance range for sRGB. To achieve a larger dynamic range of up
+ to 10000 nits, the output values can go beyond 1.0 and to a range of
+ [0.0, ~7.83] for each channel.
+
+ The effective color gamut and luminance range of the content that extend
+ beyond those of sRGB may be described via EGL_EXT_surface_SMPTE2086_metadata.
+ It is highly recommended to supply such metadata, so the display pipeline
+ may use this information to transform the the colors in a manner that
+ attempts to preserve the creative intent of the color data.
+
+ In the "Errors" section on page 34 in 3.5.1 "Creating On Screen Rendering
+ Surfaces", change the 3rd error definition to:
+
+ * If config does not support the OpenGL colorspace, the OpenVG colorspace or
+ alpha format attributes specified in attrib list (as defined for
+ eglCreatePlatformWindowSurface), an EGL_BAD_MATCH error is generated.
+
+Issues
+
+ * Clarifications on the scRGB colorspace extensions
+
+Revision History
+
+ Version 1, 2017/06/21
+ - Initial draft
+
+ Version 2, 2017/08/25
+ - Clarify definition of color space
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt
new file mode 100644
index 0000000..084f4a0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt
@@ -0,0 +1,127 @@
+Name
+
+ EXT_gl_colorspace_scrgb_linear
+
+Name Strings
+
+ EGL_EXT_gl_colorspace_scrgb_linear
+
+Contributors
+
+ Courtney Goeltzenleuchter
+ Lauri Hyvarinen
+ Weiwan Liu
+ Arun Swain
+
+Contact
+
+ Weiwan Liu (weiwliu 'at' nvidia.com)
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Complete
+
+Version
+
+ Version 4 - August 25, 2017
+
+Number
+
+ EGL Extension #108
+
+Dependencies
+
+ This extension is written against the wording of the EGL 1.5 specification
+ (August 27, 2014).
+
+ This extension requires EGL_KHR_gl_colorspace and EGL_EXT_pixel_format_-
+ float, and interacts with EGL_EXT_surface_SMPTE2086_metadata. This extension
+ is closely related to the EGL_EXT_gl_colorspace_scrgb.
+
+Overview
+
+ This extension provides an extended sRGB (also called scRGB) color
+ space option for applications to choose from when creating an EGLSurface.
+ This extension defines the linear display referred scRGB color space.
+ It has the same white point and color primaries as sRGB, and thus is
+ backward-compatible with sRGB. Refer to the IEC 61966-2-2:2003 standard
+ for details on scRGB color space.
+
+ This extension chooses to use floating-point formats for scRGB color space.
+ For each color channel, the floating-point values of 0.0 and 1.0 still
+ correspond to sRGB chromaticities and luminance levels. However, scRGB
+ space allows for color values beyond the range of [0.0, 1.0], and can thus
+ achieve a larger color volume than that of sRGB. As it is display referred,
+ scRGB space makes assumptions of how the floating-point color values should
+ map to luminance levels by the underlying display pipeline. The expected
+ mapping is such that a color value of (1.0, 1.0, 1.0) corresponds to a
+ luminance level of 80 nits on a standardized studio monitor. As the color
+ value per channel goes beyond 1.0 and up to 125.0, the corresponding
+ luminance levels also increase linearly to a maximum of 10000 nits.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as attribute values for EGL_GL_COLORSPACE by
+ eglCreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface:
+
+ EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350
+
+Modifications to the EGL 1.5 Specification
+
+ Insert below text in the 3rd paragraph on page 33 in 3.5.1 "Creating On-
+ Screen Rendering Surfaces", before "The default value of EGL_GL_COLORSPACE
+ is EGL_GL_COLORSPACE_LINEAR.":
+
+ If its value is EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT, then a linear scRGB
+ color space is assumed, with a corresponding GL_FRAMEBUFFER_ATTACHMENT_-
+ COLOR_ENCODING value of GL_LINEAR. scRGB is defined to use the same
+ primaries and white-point as sRGB. See IEC 61966-2-2:2003 for details.
+
+ Add two paragraphs after the 4th paragraph above:
+
+ When using a floating-point EGL surface with EGL_GL_COLORSPACE_SCRGB_-
+ LINEAR_EXT, the display-referred values in the range of (0.0, 0.0, 0.0) to
+ (1.0, 1.0, 1.0) correspond to a luminance range of 0 to 80 nits, which is
+ the same luminance range for sRGB. To achieve a larger dynamic range of up
+ to 10000 nits, the output values can go beyond 1.0 and to a range of
+ [0.0, 125.0] for each channel.
+
+ The effective color gamut and luminance range of the content that extend
+ beyond those of sRGB may be described via EGL_EXT_surface_SMPTE2086_metadata.
+ It is highly recommended to supply such metadata, so the display pipeline
+ may use this information to transform the colors in a manner that
+ attempts to preserve the creative intent of the color data.
+
+ In the "Errors" section on page 34 in 3.5.1 "Creating On Screen Rendering
+ Surfaces", change the 3rd error definition to:
+
+ * If config does not support the OpenGL colorspace, the OpenVG colorspace or
+ alpha format attributes specified in attrib list (as defined for
+ eglCreatePlatformWindowSurface), an EGL_BAD_MATCH error is generated.
+
+Issues
+
+ * Clarifications on the scRGB colorspace extensions
+
+Revision History
+
+ Version 1, 2016/10/21
+ - Initial draft
+
+ Version 2, 2016/11/18
+ - Add reference to IEC 61966-2-2:2003 standard and minor wording changes
+
+ Version 3, 2016/11/22
+ - Change status to complete
+
+ Version 4, 2017/08/25
+ - Clarifications on the definition of scRGB colorspace
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_dma_buf_import.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_dma_buf_import.txt
new file mode 100644
index 0000000..17350d7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_dma_buf_import.txt
@@ -0,0 +1,428 @@
+Name
+
+ EXT_image_dma_buf_import
+
+Name Strings
+
+ EGL_EXT_image_dma_buf_import
+
+Contributors
+
+ Jesse Barker
+ Rob Clark
+ Tom Cooksey
+
+Contacts
+
+ Jesse Barker (jesse 'dot' barker 'at' linaro 'dot' org)
+ Tom Cooksey (tom 'dot' cooksey 'at' arm 'dot' com)
+
+Status
+
+ Complete.
+
+Version
+
+ Version 7, December 13, 2013
+
+Number
+
+ EGL Extension #53
+
+Dependencies
+
+ EGL 1.2 is required.
+
+ EGL_KHR_image_base is required.
+
+ The EGL implementation must be running on a Linux kernel supporting the
+ dma_buf buffer sharing mechanism.
+
+ This extension is written against the wording of the EGL 1.2 Specification.
+
+Overview
+
+ This extension allows creating an EGLImage from a Linux dma_buf file
+ descriptor or multiple file descriptors in the case of multi-plane YUV
+ images.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted by the <target> parameter of eglCreateImageKHR:
+
+ EGL_LINUX_DMA_BUF_EXT 0x3270
+
+ Accepted as an attribute in the <attrib_list> parameter of
+ eglCreateImageKHR:
+
+ EGL_LINUX_DRM_FOURCC_EXT 0x3271
+ EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
+ EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
+ EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
+ EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
+ EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
+ EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
+ EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
+ EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
+ EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
+ EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
+ EGL_SAMPLE_RANGE_HINT_EXT 0x327C
+ EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
+ EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
+
+ Accepted as the value for the EGL_YUV_COLOR_SPACE_HINT_EXT attribute:
+
+ EGL_ITU_REC601_EXT 0x327F
+ EGL_ITU_REC709_EXT 0x3280
+ EGL_ITU_REC2020_EXT 0x3281
+
+ Accepted as the value for the EGL_SAMPLE_RANGE_HINT_EXT attribute:
+
+ EGL_YUV_FULL_RANGE_EXT 0x3282
+ EGL_YUV_NARROW_RANGE_EXT 0x3283
+
+ Accepted as the value for the EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT &
+ EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT attributes:
+
+ EGL_YUV_CHROMA_SITING_0_EXT 0x3284
+ EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285
+
+
+Additions to Chapter 2 of the EGL 1.2 Specification (EGL Operation)
+
+ 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 <target> are listed in Table aaa, below.
+
+ +-------------------------+--------------------------------------------+
+ | <target> | Notes |
+ +-------------------------+--------------------------------------------+
+ | EGL_LINUX_DMA_BUF_EXT | Used for EGLImages imported from Linux |
+ | | dma_buf file descriptors |
+ +-------------------------+--------------------------------------------+
+ Table aaa. Legal values for eglCreateImageKHR <target> parameter
+
+ ...
+
+ If <target> is EGL_LINUX_DMA_BUF_EXT, <dpy> must be a valid display, <ctx>
+ must be EGL_NO_CONTEXT, and <buffer> must be NULL, cast into the type
+ EGLClientBuffer. The details of the image is specified by the attributes
+ passed into eglCreateImageKHR. Required attributes and their values are as
+ follows:
+
+ * EGL_WIDTH & EGL_HEIGHT: The logical dimensions of the buffer in pixels
+
+ * EGL_LINUX_DRM_FOURCC_EXT: The pixel format of the buffer, as specified
+ by drm_fourcc.h and used as the pixel_format parameter of the
+ drm_mode_fb_cmd2 ioctl.
+
+ * EGL_DMA_BUF_PLANE0_FD_EXT: The dma_buf file descriptor of plane 0 of
+ the image.
+
+ * EGL_DMA_BUF_PLANE0_OFFSET_EXT: The offset from the start of the
+ dma_buf of the first sample in plane 0, in bytes.
+
+ * EGL_DMA_BUF_PLANE0_PITCH_EXT: The number of bytes between the start of
+ subsequent rows of samples in plane 0. May have special meaning for
+ non-linear formats.
+
+ For images in an RGB color-space or those using a single-plane YUV format,
+ only the first plane's file descriptor, offset & pitch should be specified.
+ For semi-planar YUV formats, that first plane (plane 0) holds only the luma
+ samples and chroma samples are stored interleaved in a second plane (plane
+ 1). For fully planar YUV formats, the first plane (plane 0) continues to
+ hold the luma samples however the chroma samples are stored seperately in
+ two additional planes (plane 1 & plane 2). If present, planes 1 & 2 are
+ specified by the following attributes, which have the same meanings as
+ defined above for plane 0:
+
+ * EGL_DMA_BUF_PLANE1_FD_EXT
+ * EGL_DMA_BUF_PLANE1_OFFSET_EXT
+ * EGL_DMA_BUF_PLANE1_PITCH_EXT
+ * EGL_DMA_BUF_PLANE2_FD_EXT
+ * EGL_DMA_BUF_PLANE2_OFFSET_EXT
+ * EGL_DMA_BUF_PLANE2_PITCH_EXT
+
+ The ordering of samples within a plane is taken from the drm_fourcc
+ pixel_format specified for EGL_LINUX_DRM_FOURCC_EXT. For example, if
+ EGL_LINUX_DRM_FOURCC_EXT is set to DRM_FORMAT_NV12, the chroma plane
+ specified by EGL_DMA_BUF_PLANE1* contains samples in the order V, U,
+ whereas if EGL_LINUX_DRM_FOURCC_EXT is DRM_FORMAT_NV21, the order is U,
+ V. Similarly, the ordering of planes for fully-planar formats is also taken
+ from the pixel_format specified as EGL_LINUX_DRM_FOURCC_EXT. For example,
+ if EGL_LINUX_DRM_FOURCC_EXT is set to DRM_FORMAT_YUV410, the luma plane is
+ specified by EGL_DMA_BUF_PLANE0*, the plane containing U-samples is
+ specified by EGL_DMA_BUF_PLANE1* and the plane containing the V-samples is
+ specified by EGL_DMA_BUF_PLANE2*, whereas if EGL_LINUX_DRM_FOURCC_EXT is
+ set to DRM_FORMAT_YVU410, plane 1 contains the V-samples and plane 2
+ contains the U-samples.
+
+ In addition to the above required attributes, the application may also
+ provide hints as to how the data should be interpreted by the GL. If any of
+ these hints are not specified, the GL will guess based on the pixel format
+ passed as the EGL_LINUX_DRM_FOURCC_EXT attribute or may fall-back to some
+ default value. Not all GLs will be able to support all combinations of
+ these hints and are free to use whatever settings they choose to achieve
+ the closest possible match.
+
+ * EGL_YUV_COLOR_SPACE_HINT_EXT: The color-space the data is in. Only
+ relevant for images in a YUV format, ignored when specified for an
+ image in an RGB format. Accepted values are:
+ EGL_ITU_REC601_EXT, EGL_ITU_REC709_EXT & EGL_ITU_REC2020_EXT.
+
+ * EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT &
+ EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT: Where chroma samples are
+ sited relative to luma samples when the image is in a sub-sampled
+ format. When the image is not using chroma sub-sampling, the luma and
+ chroma samples are assumed to be co-sited. Siting is split into the
+ vertical and horizontal and is in a fixed range. A siting of zero
+ means the first luma sample is taken from the same position in that
+ dimension as the chroma sample. This is best illustrated in the
+ diagram below:
+
+ (0.5, 0.5) (0.0, 0.5) (0.0, 0.0)
+ + + + + + + + + * + * +
+ x x x x
+ + + + + + + + + + + + +
+
+ + + + + + + + + * + * +
+ x x x x
+ + + + + + + + + + + + +
+
+ Luma samples (+), Chroma samples (x) Chrome & Luma samples (*)
+
+ Note this attribute is ignored for RGB images and non sub-sampled
+ YUV images. Accepted values are: EGL_YUV_CHROMA_SITING_0_EXT (0.0)
+ & EGL_YUV_CHROMA_SITING_0_5_EXT (0.5)
+
+ * EGL_SAMPLE_RANGE_HINT_EXT: The numerical range of samples. Only
+ relevant for images in a YUV format, ignored when specified for
+ images in an RGB format. Accepted values are: EGL_YUV_FULL_RANGE_EXT
+ (0-256) & EGL_YUV_NARROW_RANGE_EXT (16-235).
+
+
+ If eglCreateImageKHR is successful for a EGL_LINUX_DMA_BUF_EXT target, the
+ EGL will take a reference to the dma_buf(s) which it will release at any
+ time while the EGLDisplay is initialized. It is the responsibility of the
+ application to close the dma_buf file descriptors."
+
+
+ Add to the list of error conditions for eglCreateImageKHR:
+
+ "* If <target> is EGL_LINUX_DMA_BUF_EXT and <buffer> is not NULL, the
+ error EGL_BAD_PARAMETER is generated.
+
+ * If <target> is EGL_LINUX_DMA_BUF_EXT, and the list of attributes is
+ incomplete, EGL_BAD_PARAMETER is generated.
+
+ * If <target> is EGL_LINUX_DMA_BUF_EXT, and the EGL_LINUX_DRM_FOURCC_EXT
+ attribute is set to a format not supported by the EGL, EGL_BAD_MATCH
+ is generated.
+
+ * If <target> is EGL_LINUX_DMA_BUF_EXT, and the EGL_LINUX_DRM_FOURCC_EXT
+ attribute indicates a single-plane format, EGL_BAD_ATTRIBUTE is
+ generated if any of the EGL_DMA_BUF_PLANE1_* or EGL_DMA_BUF_PLANE2_*
+ attributes are specified.
+
+ * If <target> is EGL_LINUX_DMA_BUF_EXT and the value specified for
+ EGL_YUV_COLOR_SPACE_HINT_EXT is not EGL_ITU_REC601_EXT,
+ EGL_ITU_REC709_EXT or EGL_ITU_REC2020_EXT, EGL_BAD_ATTRIBUTE is
+ generated.
+
+ * If <target> is EGL_LINUX_DMA_BUF_EXT and the value specified for
+ EGL_SAMPLE_RANGE_HINT_EXT is not EGL_YUV_FULL_RANGE_EXT or
+ EGL_YUV_NARROW_RANGE_EXT, EGL_BAD_ATTRIBUTE is generated.
+
+ * If <target> is EGL_LINUX_DMA_BUF_EXT and the value specified for
+ EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT or
+ EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT is not
+ EGL_YUV_CHROMA_SITING_0_EXT or EGL_YUV_CHROMA_SITING_0_5_EXT,
+ EGL_BAD_ATTRIBUTE is generated.
+
+ * If <target> is EGL_LINUX_DMA_BUF_EXT and one or more of the values
+ specified for a plane's pitch or offset isn't supported by EGL,
+ EGL_BAD_ACCESS is generated.
+
+
+Issues
+
+ 1. Should this be a KHR or EXT extension?
+
+ ANSWER: EXT. Khronos EGL working group not keen on this extension as it is
+ seen as contradicting the EGLStream direction the specification is going in.
+ The working group recommends creating additional specs to allow an EGLStream
+ producer/consumer connected to v4l2/DRM or any other Linux interface.
+
+ 2. Should this be a generic any platform extension, or a Linux-only
+ extension which explicitly states the handles are dma_buf fds?
+
+ ANSWER: There's currently no intention to port this extension to any OS not
+ based on the Linux kernel. Consequently, this spec can be explicitly written
+ against Linux and the dma_buf API.
+
+ 3. Does ownership of the file descriptor pass to the EGL library?
+
+ ANSWER: No, EGL does not take ownership of the file descriptors. It is the
+ responsibility of the application to close the file descriptors on success
+ and failure.
+
+ 4. How are the different YUV color spaces handled (BT.709/BT.601)?
+
+ ANSWER: The pixel formats defined in drm_fourcc.h only specify how the data
+ is laid out in memory. It does not define how that data should be
+ interpreted. Added a new EGL_YUV_COLOR_SPACE_HINT_EXT attribute to allow the
+ application to specify which color space the data is in to allow the GL to
+ choose an appropriate set of co-efficients if it needs to convert that data
+ to RGB for example.
+
+ 5. What chroma-siting is used for sub-sampled YUV formats?
+
+ ANSWER: The chroma siting is not specified by either the v4l2 or DRM APIs.
+ This is similar to the color-space issue (4) in that the chroma siting
+ doesn't affect how the data is stored in memory. However, the GL will need
+ to know the siting in order to filter the image correctly. While the visual
+ impact of getting the siting wrong is minor, provision should be made to
+ allow an application to specify the siting if desired. Added additional
+ EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT &
+ EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT attributes to allow the siting to
+ be specified using a set of pre-defined values (0 or 0.5).
+
+ 6. How can an application query which formats the EGL implementation
+ supports?
+
+ PROPOSAL: Don't provide a query mechanism but instead add an error condition
+ that EGL_BAD_MATCH is raised if the EGL implementation doesn't support that
+ particular format.
+
+ 7. Which image formats should be supported and how is format specified?
+
+ Seem to be two options 1) specify a new enum in this specification and
+ enumerate all possible formats. 2) Use an existing enum already in Linux,
+ either v4l2_mbus_pixelcode and/or those formats listed in drm_fourcc.h?
+
+ ANSWER: Go for option 2) and just use values defined in drm_fourcc.h.
+
+ 8. How can AYUV images be handled?
+
+ ANSWER: At least on fourcc.org and in drm_fourcc.h, there only seems to be
+ a single AYUV format and that is a packed format, so everything, including
+ the alpha component would be in the first plane.
+
+ 9. How can you import interlaced images?
+
+ ANSWER: Interlaced frames are usually stored with the top & bottom fields
+ interleaved in a single buffer. As the fields would need to be displayed as
+ at different times, the application would create two EGLImages from the same
+ buffer, one for the top field and another for the bottom. Both EGLImages
+ would set the pitch to 2x the buffer width and the second EGLImage would use
+ a suitable offset to indicate it started on the second line of the buffer.
+ This should work regardless of whether the data is packed in a single plane,
+ semi-planar or multi-planar.
+
+ If each interlaced field is stored in a separate buffer then it should be
+ trivial to create two EGLImages, one for each field's buffer.
+
+ 10. How are semi-planar/planar formats handled that have a different
+ width/height for Y' and CbCr such as YUV420?
+
+ ANSWER: The spec says EGL_WIDTH & EGL_HEIGHT specify the *logical* width and
+ height of the buffer in pixels. For pixel formats with sub-sampled Chroma
+ values, it should be trivial for the EGL implementation to calculate the
+ width/height of the Chroma sample buffers using the logical width & height
+ and by inspecting the pixel format passed as the EGL_LINUX_DRM_FOURCC_EXT
+ attribute. I.e. If the pixel format says it's YUV420, the Chroma buffer's
+ width = EGL_WIDTH/2 & height =EGL_HEIGHT/2.
+
+ 11. How are Bayer formats handled?
+
+ ANSWER: As of Linux 2.6.34, drm_fourcc.h does not include any Bayer formats.
+ However, future kernel versions may add such formats in which case they
+ would be handled in the same way as any other format.
+
+ 12. Should the spec support buffers which have samples in a "narrow range"?
+
+ Content sampled from older analogue sources typically don't use the full
+ (0-256) range of the data type storing the sample and instead use a narrow
+ (16-235) range to allow some headroom & toeroom in the signals to avoid
+ clipping signals which overshoot slightly during processing. This is
+ sometimes known as signals using "studio swing".
+
+ ANSWER: Add a new attribute to define if the samples use a narrow 16-235
+ range or the full 0-256 range.
+
+ 13. Specifying the color space and range seems cumbersome, why not just
+ allow the application to specify the full YUV->RGB color conversion matrix?
+
+ ANSWER: Some hardware may not be able to use an arbitrary conversion matrix
+ and needs to select an appropriate pre-defined matrix based on the color
+ space and the sample range.
+
+ 14. How do you handle EGL implementations which have restrictions on pitch
+ and/or offset?
+
+ ANSWER: Buffers being imported using dma_buf pretty much have to be
+ allocated by a kernel-space driver. As such, it is expected that a system
+ integrator would make sure all devices which allocate buffers suitable for
+ exporting make sure they use a pitch supported by all possible importers.
+ However, it is still possible eglCreateImageKHR can fail due to an
+ unsupported pitch. Added a new error to the list indicating this.
+
+ 15. Should this specification also describe how to export an existing
+ EGLImage as a dma_buf file descriptor?
+
+ ANSWER: No. Importing and exporting buffers are two separate operations and
+ importing an existing dma_buf fd into an EGLImage is useful functionality in
+ itself. Agree that exporting an EGLImage as a dma_buf fd is useful, E.g. it
+ could be used by an OpenMAX IL implementation's OMX_UseEGLImage function to
+ give access to the buffer backing an EGLImage to video hardware. However,
+ exporting can be split into a separate extension specification.
+
+
+Revision History
+
+#7 (Kristian H. Kristensen, December 13, 2017)
+ - Clarify plane ordering to match Linux FOURCC conventions (Bug 16017).
+
+#6 (David Garbett, December 05, 2013)
+ - Application now retains ownership of dma_buf file descriptors.
+
+#5 (Tom Cooksey, February 19, 2013)
+ - Assigned enum values
+ - Moved out of drafts
+
+#4 (Tom Cooksey, October 04, 2012)
+ - Fixed issue numbering!
+ - Added issues 8 - 15.
+ - Promoted proposal for Issue 3 to be the answer.
+ - Added an additional attribute to allow an application to specify the color
+ space as a hint which should address issue 4.
+ - Added an additional attribute to allow an application to specify the chroma
+ siting as a hint which should address issue 5.
+ - Added an additional attribute to allow an application to specify the sample
+ range as a hint which should address the new issue 12.
+ - Added language to end of error section clarifying who owns the fd passed
+ to eglCreateImageKHR if an error is generated.
+
+#3 (Tom Cooksey, August 16, 2012)
+ - Changed name from EGL_EXT_image_external and re-written language to
+ explicitly state this for use with Linux & dma_buf.
+ - Added a list of issues, including some still open ones.
+
+#2 (Jesse Barker, May 30, 2012)
+ - Revision to split eglCreateImageKHR functionality from export
+ Functionality.
+ - Update definition of EGLNativeBufferType to be a struct containing a list
+ of handles to support multi-buffer/multi-planar formats.
+
+#1 (Jesse Barker, March 20, 2012)
+ - Initial draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt
new file mode 100644
index 0000000..41b91c0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt
@@ -0,0 +1,244 @@
+Name
+
+ EXT_image_dma_buf_import_modifiers
+
+Name Strings
+
+ EGL_EXT_image_dma_buf_import_modifiers
+
+Contributors
+
+ Pekka Paalanen, Collabora Ltd.
+ Louis-Francis Ratté-Boulianne
+ Daniel Stone, Collabora Ltd.
+ Kristian Høgsberg
+
+Contacts
+
+ Pekka Paalanen (pq 'at' collabora 'dot' com)
+ Daniel Stone (daniels 'at' collabora 'dot' com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 5, March 12, 2019
+
+Number
+
+ EGL Extension #105
+
+Dependencies
+
+ EGL 1.2 is required.
+
+ EGL_KHR_image_base is required.
+ EGL_EXT_image_dma_buf_import is required.
+
+ The EGL implementation must be running on a Linux kernel supporting the
+ dma_buf buffer sharing mechanism.
+
+ This extension is written against the wording of the EGL 1.2 Specification.
+
+ In order to support imports for the GL_TEXTURE_EXTERNAL_OES target, a
+ compatible OpenGL ES implementation supporting GL_OES_EGL_image_external
+ must be present.
+
+Overview
+
+ This extension builds on EGL_EXT_image_dma_buf_import, in order to support
+ format modifiers used for tiling, compression, and additional non-linear
+ modes. It also adds support for a fourth auxiliary plane, and queries for
+ the implementation-supported types.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ 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)
+
+New Tokens
+
+ Accepted as an attribute in the <attrib_list> parameter of
+ eglCreateImageKHR:
+
+ EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
+ EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
+ EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
+ EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
+ EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
+ EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
+ EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
+ EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
+ EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
+ EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
+ EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
+
+New Types
+
+ This extension uses the 64-bit unsigned integer type EGLuint64KHR
+ first introduced by the EGL_KHR_stream extension, but does not
+ depend on that extension. The typedef may be reproduced separately
+ for this extension, if not already present in eglext.h.
+
+ typedef khronos_uint64_t EGLuint64KHR;
+
+
+Additions to Chapter 2 of the EGL 1.2 Specification (EGL Operation)
+
+ Add to section 2.5.1 "EGLImage Specification" (as defined by the
+ EGL_KHR_image_base specification), in the description of
+ eglCreateImageKHR:
+
+ If <target> is EGL_LINUX_DMA_BUF_EXT, both or neither of the following
+ attribute values may be given. These attribute values together form an
+ unsigned 64-bit value called a format modifier. Format modifiers are
+ specified by drm_fourcc.h and used as the modifier parameter of the
+ drm_mode_fb_cmd2 ioctl. If neither of the two attributes are given, or
+ if the modifier is explicitly declared to be DRM_FORMAT_MOD_INVALID, the
+ effective format modifier is implementation-defined. The two attributes
+ are:
+
+ * EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT: The lowest 32 bits of the
+ 64-bit format modifier.
+
+ * EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT: The highest 32 bits of the
+ 64-bit format modifier.
+
+ For semi-planar and planar YUV formats, or other formats which require
+ multiple memory planes, planes 1, 2 and 3 are specified by the following
+ attributes, which have the same meanings as defined above for plane 0:
+
+ * EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT
+ * EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT
+ * EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT
+ * EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT
+ * EGL_DMA_BUF_PLANE3_FD_EXT
+ * EGL_DMA_BUF_PLANE3_OFFSET_EXT
+ * EGL_DMA_BUF_PLANE3_PITCH_EXT
+ * EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT
+ * EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT
+
+ Modifiers may modify any attribute of a buffer import, including but not
+ limited to adding extra planes to a format which otherwise does not have
+ those planes. As an example, a modifier may add a plane for an external
+ compression buffer to a single-plane format. The exact meaning and effect
+ of any modifier is canonically defined by drm_fourcc.h, not as part of this
+ extension.
+
+ Implementations are required to validate the full combination of base
+ format and per-plane modifiers, and reject any combination which is not
+ explicitly supported.
+
+ Add to the list of error conditions for eglCreateImageKHR:
+
+ * If <target> is EGL_LINUX_DMA_BUF_EXT, and the list of attributes
+ contains EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT but not
+ EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT or vice versa, EGL_BAD_PARAMETER
+ is generated. This applies similarly for planes 1, 2, and 3 also.
+
+ Add section 2.5.3 "EGLImage dma_buf formats and modifiers"
+
+ The command
+
+ EGLBoolean eglQueryDmaBufFormatsEXT(
+ EGLDisplay dpy,
+ EGLint max_formats,
+ EGLint *formats,
+ EGLint *num_formats)
+
+ is used to query the dma_buf formats supported by <dpy>. Each format is
+ returned using its FourCC format as defined in the drm_fourcc.h header file.
+ EGL_TRUE is returned if QueryDmaBufFormatsEXT succeeds, EGL_FALSE indicates
+ failure to query.
+
+ * If <dpy> is not the handle of a valid EGLDisplay object, the error
+ EGL_BAD_DISPLAY is generated.
+
+ * If <max_formats> is 0, no formats are returned, but the total number
+ of formats is returned in <num_formats>, and no error is generated.
+
+ * If <max_formats> has a negative value, the error EGL_BAD_PARAMETER
+ is generated.
+
+ * If <max_formats> is a positive integer but <formats> is NULL, the error
+ EGL_BAD_PARAMETER is generated.
+
+ The command
+
+ EGLBoolean eglQueryDmaBufModifiersEXT(
+ EGLDisplay dpy,
+ EGLint format,
+ EGLint max_modifiers,
+ EGLuint64KHR *modifiers,
+ EGLBoolean *external_only,
+ EGLint *num_modifiers)
+
+ is used to query the dma_buf format modifiers supported by <dpy> for the
+ given format. The format must be one of those returned by the
+ eglQueryDmaBufFormatsEXT command. The returned modifiers should be
+ defined in the canonical drm_fourcc.h header file. If the user also
+ passes an array for <external_only>, this will be populated with whether
+ the requested format and modifier combination is only supported for use
+ with the GL_TEXTURE_EXTERNAL_OES texture target. If <dpy> cannot support
+ any context with GL_OES_EGL_image_external, the array will be populated with
+ EGL_FALSE. EGL_TRUE is returned if QueryDmaBufModifiersEXT succeeds,
+ EGL_FALSE indicates failure.
+
+ * If <dpy> is not the handle of a valid EGLDisplay object, the error
+ EGL_BAD_DISPLAY is generated.
+
+ * If <max_modifiers> is 0, no modifiers are returned, but the total
+ number of modifiers is returned in <num_modifiers>, and no error is
+ generated.
+
+ * If <max_modifiers> has a negative value, the error EGL_BAD_PARAMETER
+ is generated.
+
+ * If <max_modifiers> is a positive integer but <modifiers> is NULL, the
+ error EGL_BAD_PARAMETER is generated.
+
+ * If <format> is not one of the formats advertised by
+ QueryDmaBufFormatsEXT for the same <dpy>, the error EGL_BAD_PARAMETER
+ is generated.
+
+
+Revision History
+
+#5 (Daniel Stone, March 12, 2019)
+ - Correct description of behaviour when a modifier is not explicitly given;
+ zero is not correct as it is an explicit modifier itself (linear).
+
+#4 (Daniel Stone, October 20, 2016)
+ - Switch to EGLuint64KHR for modifier types.
+
+#3 (Daniel Stone, October 20, 2016)
+ - Clarify that the effect that modifiers can have.
+ - Disambiguate references to displays.
+ - Explicitly refer to max_formats/max_modifiers behaviour when zero.
+
+#2 (Daniel Stone, September 29, 2016)
+ - Add missing tokens for plane 3 FD/offset/pitch.
+ - Fix description.
+ - Allow max_formats/max_modifiers to be zero, to get the counter.
+ - Add external_only to modifiers query.
+
+#1 (Pekka Paalanen, October 14, 2015)
+ - Initial draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_gl_colorspace.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_gl_colorspace.txt
new file mode 100644
index 0000000..ab53660
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_gl_colorspace.txt
@@ -0,0 +1,136 @@
+Name
+
+ EXT_image_gl_colorspace
+
+Name Strings
+
+ EGL_EXT_image_gl_colorspace
+
+Contributors
+
+ Jesse Hall, Google
+ Philip Rideout, Google
+ Mohan Maiya, Qualcomm
+ Jan-Harald Fredriksen, ARM
+
+Contact
+
+ Krzysztof Kosiński, Google (krzysio 'at' google.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 9, February 26, 2018
+
+Number
+
+ EGL Extension #125
+
+Dependencies
+
+ Written against the EGL 1.5 specification.
+
+ Can be supported on EGL 1.4 provided that EGL_KHR_gl_colorspace is
+ implemented, as well as either EGL_KHR_image or EGL_KHR_image_base.
+
+ Interacts with the GL_OES_EGL_image_external specification.
+
+Overview
+
+ This extension relaxes the restriction that only the eglCreate*Surface
+ functions can accept the EGL_GL_COLORSPACE attribute. With this change,
+ eglCreateImage can also accept this attribute.
+
+New Tokens
+
+ EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D
+
+New Procedures and Functions
+
+ None.
+
+Additions to the EGL 1.5 Specification
+
+ Add to table 3.11 on page 75:
+
+ "Attribute Type Description
+ -------------------- ---- -----------
+ EGL_GL_COLORSPACE enum Color space for OpenGL and OpenGL ES"
+
+
+ Add the following paragraph to the end of section 3.9, "EGLImage
+ Specification and Management" on page 77:
+
+ "EGL_GL_COLORSPACE specifies the color space used by OpenGL and OpenGL
+ ES when rendering to the image, or sampling from the image. It has the
+ same meaning as when used with eglCreatePlatformWindowSurface, with the
+ exception that its default value is EGL_GL_COLORSPACE_DEFAULT_EXT. This
+ means that the color space should not be overriden. For example, if an
+ image is created from an existing OpenGL texture, then
+ GL_COLORSPACE_DEFAULT_EXT means that the original color space should be
+ preserved."
+
+
+ Add the following paragraphs to the "Errors" subsection in section 3.9
+ on page 76:
+
+ "If EGL_GL_COLORSPACE is not one of the legal values, the error
+ EGL_BAD_PARAMETER is generated."
+
+ "If ctx specifies a GL context that does not support creating an EGLImage
+ with the given value for EGL_GL_COLORSPACE, EGL_BAD_MATCH error is
+ generated."
+
+
+Interaction with OES_EGL_image_external:
+
+ The first sentence in the second to last paragraph in section 3.7.14
+ should be changed from:
+
+ "Sampling an external texture will return an RGBA vector in the same
+ colorspace as the source image."
+
+ to:
+
+ "Sampling an external texture will return an RGBA vector in the same color
+ space as the source image, unless the image's EGL_GL_COLORSPACE attribute
+ results in sRGB encoding as described in EGL_EXT_image_gl_colorspace."
+
+ The three parenthetical sentences in this same paragraph should be
+ simplified since they partially conflict with existing language in the
+ ES30 specification. Change them from:
+
+ "(But these RGB values will be in the same colorspace as the
+ original image. Colorspace here includes the linear or non-linear
+ encoding of the samples. For example, if the original image is in the
+ sRGB color space then the RGB value returned by the sampler will also
+ be sRGB, and if the original image is stored in ITU-R Rec. 601 YV12
+ then the RGB value returned by the sampler will be an RGB value in the
+ ITU-R Rec. 601 colorspace.)"
+
+ to:
+
+ "(For example, if the original image is stored in ITU-R Rec. 601 YV12
+ then the RGB value returned by the sampler will be an RGB value in the
+ ITU-R Rec. 601 colorspace.)"
+
+
+Issues
+
+Revision History
+
+ Rev. Date Author Changes
+ ---- -------- -------- -----------------------------------------
+ 1 11/22/17 philip Initial draft
+ 2 12/8/17 philip Add note about OES_EGL_image_external
+ 3 12/11/17 philip Changed from KHR to EXT.
+ 4 12/15/17 philip Add diffs against the EGL 1.5 specification.
+ 5 12/20/17 philip Add EGL_GL_COLORSPACE_DEFAULT_EXT.
+ 6 1/2/18 philip Updated changes to OES_EGL_image_external.
+ 7 1/2/18 philip Tweaked the changes to OES_EGL_image_external.
+ 8 2/2/18 philip Add value for EGL_GL_COLORSPACE_DEFAULT_EXT.
+ 9 2/26/18 krzysio Update contact information, finalize.
+ 9 4/20/18 krzysio Fix stray reference to KHR.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_implicit_sync_control.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_implicit_sync_control.txt
new file mode 100644
index 0000000..5660e0a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_image_implicit_sync_control.txt
@@ -0,0 +1,131 @@
+Name
+
+ EXT_image_implicit_sync_control
+
+Name Strings
+
+ EGL_EXT_image_implicit_sync_control
+
+Contributors
+
+ Daniel Stone, Collabora Ltd.
+
+Contacts
+
+ Daniel Stone (daniels 'at' collabora 'dot' com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 2, March 16, 2020
+
+Number
+
+ EGL Extension #120
+
+Dependencies
+
+ EGL 1.2 is required.
+
+ EGL_KHR_image_base and EGL_EXT_image_dma_buf_import are required.
+
+ The EGL implementation must be running on a Linux kernel supporting implicit
+ synchronization, as the usage is defined in the
+ EGL_ARM_implicit_external_sync extension, but does not require that extension.
+
+ This extension is written against the wording of the EGL 1.2 Specification.
+
+Overview
+
+ This extension allows a client to selectively use implicit or explicit
+ synchronization mechanisms when addressing externally-imported EGLImages.
+ A new token is added to EGLImage creation which allows the client to select
+ whether a platform's implicit synchronization will be in use for a buffer
+ imported into EGLImage.
+
+ Heterogeneous systems (supporting multiple APIs, mixed legacy/updated
+ clients, etc) already supporting implicit synchronization, may not be able
+ to change to explict synchronization in a single switch. This extension
+ allows synchronization to be controlled on a per-buffer basis, so explicit
+ synchronization can be enabled for a complete pipeline which supports it,
+ or implicit synchronization used otherwise.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as an attribute in the <attrib_list> parameter of
+ eglCreateImageKHR:
+
+ EGL_IMPORT_SYNC_TYPE_EXT 0x3470
+
+ Accepted as the value for the EGL_IMPORT_SYNC_TYPE_EXT attribute:
+
+ EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471
+ EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472
+
+New Types
+
+ None.
+
+Additions to Chapter 2 of the EGL 1.2 Specification (EGL Operation)
+
+ Add to section 2.5.1 "EGLImage Specification" (as defined by the
+ EGL_KHR_image_base specification), in the description of
+ eglCreateImageKHR:
+
+ Add the following to Table bbb (Legal attributes for eglCreateImageKHR
+ <attr_list> parameter), Section 2.5.1 (EGLImage Specification)
+
+ +-----------------------------+-------------------------+---------------------------+---------------+
+ | Attribute | Description | Valid <target>s | Default Value |
+ +-----------------------------+-------------------------+---------------------------+---------------+
+ | EGL_IMPORT_SYNC_TYPE_EXT | The type of | EGL_LINUX_DMA_BUF_EXT | EGL_IMPORT_ |
+ | | synchronization to | | IMPLICT_SYNC_ |
+ | | apply to previously | | EXT |
+ | | submitted rendering on | | |
+ | | the platform buffer | | |
+ +-----------------------------+-------------------------+---------------------------+---------------+
+ Table bbb. Legal attributes for eglCreateImageKHR <attrib_list> parameter
+
+ ...
+
+
+ Add to section 2.5.1 "EGLImage Specification" (as defined by the
+ EGL_KHR_image_base specification), in the description of
+ eglCreateImageKHR:
+
+ The behaviour of the imported buffer with regard to commands previously
+ submitted (including via other APIs and from other clients) is controlled
+ by the EGL_IMPORT_SYNC_TYPE_EXT attribute. If the default value of
+ implicit synchronization is used, the platform may synchronize any access
+ to the imported buffer, against accesses previously made (including by
+ other clients or APIs) to that same buffer. If explicit synchronization
+ is specified, the platform will not synchronize access to that buffer
+ against other accesses; the client must use another synchronization
+ mechanism if it wishes to order its accesses with respect to others.
+
+ Add to the list of error conditions for eglCreateImageKHR:
+
+ * If <attrib_list> contains the EGL_IMPORT_SYNC_TYPE_EXT name, but the
+ value is not one of EGL_IMPORT_IMPLICIT_SYNC_EXT or
+ EGL_IMPORT_EXPLICIT_SYNC_EXT, EGL_BAD_ATTRIBUTE is generated.
+
+
+Revision History
+
+#1 (Daniel Stone, May 15, 2017)
+ - Initial revision.
+
+#2 (Eric Engestrom, March 16, 2020)
+ - Change "bad attribute value" error from EGL_BAD_PARAMETER to
+ EGL_BAD_ATTRIBUTE to follow the EGL convention.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_multiview_window.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_multiview_window.txt
new file mode 100644
index 0000000..9cf0ff6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_multiview_window.txt
@@ -0,0 +1,126 @@
+Name
+
+ EXT_multiview_window
+
+Name Strings
+
+ EGL_EXT_multiview_window
+
+Contributors
+
+ Acorn Pooley
+ Greg Roth
+
+Contacts
+
+ Greg Roth (groth 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 3, Sept 03, 2011
+
+Number
+
+ EGL Extension #42
+
+Dependencies
+
+ Requires EGL 1.4
+
+ Written against the EGL 1.4 specification.
+
+Overview
+
+ Adds support for creating an onscreen EGLSurface containing
+ multiple color buffers.
+
+ EXT_multi_draw_buffers can be used with this extension to
+ render and display multiple color buffers to a supported
+ device.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as an attribute in the <attrib_list> parameter of
+ CreateWindowSurface:
+
+ EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134
+
+Additions to Chapter 3 of the EGL 1.2 Specification:
+
+ Additions to section 3.5.1 (Creating On-Screen Rendering Surfaces)
+
+ Alter the end of the second paragraph:
+
+ Attributes that can be specified in <attrib_list> include
+ EGL_RENDER_BUFFER, EGL_VG_COLORSPACE, EGL_VG_ALPHA_FORMAT, and
+ EGL_MULTIVIEW_VIEW_COUNT_EXT.
+
+ Add before the last paragraph of section 3.5.1:
+
+ EGL_MULTIVIEW_VIEW_COUNT_EXT specifies how many multiview color
+ buffers should be created for the surface. Each color buffer has
+ the same properties as the primary color buffer as specified by
+ window and surface attributes. The default value of
+ EGL_MULTIVIEW_VIEW_COUNT_EXT is one.
+
+ EGL may not be able to create as many multiview color buffers as
+ EGL_MULTIVIEW_VIEW_COUNT_EXT specifies. To determine the number
+ of multiview color buffers created by a context, call
+ eglQueryContext (see section 3.7.4).
+
+ Add to the last paragraph of section 3.5.1:
+
+ If the value specified for EGL_MULTIVIEW_VIEW_COUNT_EXT is less
+ than one, an EGL_BAD_PARAMETER error is generated. If the value
+ specified for EGL_MULTIVIEW_VIEW_COUNT_EXT is greater than one
+ and the <config> does not support multiple multiview color
+ buffers, an EGL_BAD_MATCH error is generated.
+
+ Additions to section 3.5.6 (Surface Attributes)
+
+ Add to table 3.5, "Queryable surface attributes and types"
+
+ Attribute Type Description
+ --------- ---- -----------
+ EGL_MULTIVIEW_VIEW_COUNT_EXT integer Requested multiview
+ color buffers
+
+ Add before the last paragraph describing eglQuerySurface:
+
+ Querying EGL_MULTIVIEW_VIEW_COUNT_EXT for a window surface
+ returns the number of multiview color buffers requested. For a
+ pbuffer or pixmap surface, the contents of <value> are not
+ modified. To determine the actual number of multiview color
+ buffers created by a context, call eglQueryContext (see
+ section 3.7.4).
+
+
+ Additions to section 3.7.4 (Context Queries)
+
+ Add before the last paragraph describing eglQueryContext:
+
+ Querying EGL_MULTIVIEW_VIEW_COUNT_EXT returns the number of
+ multiview color buffers created. The value returned depends on
+ properties of both the context, and the surface to which the
+ context is bound.
+
+Issues
+
+ None
+
+Revision History
+ Version 3, 03 Sept 2011 EXTify add support for multiple or single depth buffer.
+ Version 2, 02 Aug 2011 Responses to feedback.
+ Version 1, 14 April 2011 First draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_output_base.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_output_base.txt
new file mode 100644
index 0000000..1cbd112
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_output_base.txt
@@ -0,0 +1,564 @@
+Name
+
+ EXT_output_base
+
+Name Strings
+
+ EGL_EXT_output_base
+
+Contributors
+
+ Daniel Kartch
+ James Jones
+ Christopher James Halse Rogers
+
+Contacts
+
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 9 - August 22, 2014
+
+Number
+
+ EGL Extension #78
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Written against the wording of EGL 1.5, plus the EGL_EXT_device_base
+ specification.
+
+ Requires EGL_EXT_device_base
+
+Overview
+
+ Increasingly, EGL and its client APIs are being used in place of
+ "native" rendering APIs to implement the basic graphics
+ functionality of native windowing systems. This creates demand
+ for a method to initialize EGL displays and surfaces directly on
+ top of native GPU or device objects rather than native window
+ system objects. The mechanics of enumerating the underlying
+ native devices and constructing EGL displays and surfaces from
+ them have been solved in various platform and implementation-
+ specific ways. The EGL device family of extensions offers a
+ standardized framework for bootstrapping EGL without the use of
+ any underlying "native" APIs or functionality.
+
+ This extension defines new EGL resource types for referencing
+ display control hardware associated with an EGL device. Its purpose
+ is to allow rendering to be directed to a screen in the absence of
+ (or bypassing) a window system. Because the use models for these
+ resources are potentially diverse, only the objects themselves and
+ basic functions to acquire and query them are defined here. More
+ detailed functions and enumerants required to operate on outputs
+ are provided by separate extensions.
+
+New Types
+
+ A handle representing a portion of display control hardware which
+ accepts a single image as input and processes it for output on a
+ display device:
+
+ typedef void* EGLOutputLayerEXT;
+
+ A handle representing a portion of display control hardware which
+ transmits a signal to a display device:
+
+ typedef void* EGLOutputPortEXT;
+
+New Functions
+
+ 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);
+
+ EGLBoolean eglOutputLayerAttribEXT(
+ EGLDisplay dpy,
+ EGLOutputLayerEXT layer,
+ EGLint attribute,
+ EGLAttrib value);
+
+ EGLBoolean eglQueryOutputLayerAttribEXT(
+ EGLDisplay dpy,
+ EGLOutputLayerEXT layer,
+ EGLint attribute,
+ EGLAttrib *value);
+
+ const char* eglQueryOutputLayerStringEXT(
+ EGLDisplay dpy,
+ EGLOutputLayerEXT layer,
+ EGLint name);
+
+ EGLBoolean eglOutputPortAttribEXT(
+ EGLDisplay dpy,
+ EGLOutputPortEXT port,
+ EGLint attribute,
+ EGLAttrib value);
+
+ EGLBoolean eglQueryOutputPortAttribEXT(
+ EGLDisplay dpy,
+ EGLOutputPortEXT port,
+ EGLint attribute,
+ EGLAttrib *value);
+
+ const char* eglQueryOutputPortStringEXT(
+ EGLDisplay dpy,
+ EGLOutputPortEXT port,
+ EGLint name);
+
+New Tokens
+
+ Functions with a return type of EGLOutputLayerEXT will return this
+ value on failure:
+
+ EGL_NO_OUTPUT_LAYER_EXT ((EGLOutputLayerEXT)0)
+
+ Functions with a return type of EGLOutputPortEXT will return this
+ value on failure:
+
+ EGL_NO_OUTPUT_PORT_EXT ((EGLOutputPortEXT)0)
+
+ Functions which fail due to a bad EGLOutputLayerEXT handle will set
+ this error code:
+
+ EGL_BAD_OUTPUT_LAYER_EXT 0x322D
+
+ Functions which fail due to a bad EGLOutputPortEXT handle will set
+ this error code:
+
+ EGL_BAD_OUTPUT_PORT_EXT 0x322E
+
+ Functions which set or query the swap interval use this attribute
+ name:
+
+ EGL_SWAP_INTERVAL_EXT 0x322F
+
+Add a new section "2.1.4 Outputs" after "2.1.3 Displays":
+
+ An EGLDisplay may have zero or more associated EGLOutputLayerEXT
+ and EGLOutputPortEXT objects. These represent, respectively, the
+ inputs and outputs of display control hardware.
+
+ An EGLOutputLayerEXT is an abstract handle representing an element
+ of display control hardware which receives image data and processes
+ it for display. This processing is hardware-dependent, and may
+ include, but is not limited to, color space transformation, scaling
+ and rotation, and composition/blending with images from other
+ EGLOutputLayerEXTs.
+
+ An EGLOutputPortEXT is an abstract handle representing an element of
+ display control hardware which sends a signal to drive a display
+ screen. In general, this signal is the result of the processing of
+ one or more EGLOutputLayerEXTs.
+
+Add new entries to section "3.1 Errors":
+
+ EGL_BAD_OUTPUT_LAYER_EXT
+ An EGLOutputLayerEXT argument does not name a valid
+ EGLOutputLayerEXT. Any command taking an EGLOutputLayerEXT
+ parameter may generate this error.
+
+ EGL_BAD_OUTPUT_PORT_EXT
+ An EGLOutputPortEXT argument does not name a valid
+ EGLOutputPortEXT. Any command taking an EGLOutputPortEXT
+ parameter may generate this error.
+
+Add a new section "3.10 Device Outputs" after "3.9 Posting the Color Buffer":
+
+ 3.10 Device Outputs
+
+ A simple platform running a custom software suite may not require a
+ formal window system. Instead, individual applications or a
+ compositor may send rendering results directly to display control
+ hardware, represented by EGLOutputLayerEXT and EGLOutputPortEXT
+ handles.
+
+ As with other EGL resources, EGLOutputLayerEXT and EGLOutputPortEXT
+ handles are owned by an EGLDisplay, but not all EGLDisplays are
+ required to support these objects. In general, they will only be
+ available for EGLDisplays obtained from platforms which allow direct
+ manipulation of display devices.
+
+ 3.10.1 Acquiring Outputs
+
+ To obtain EGLOutputLayerEXT handles associated with a display which
+ match a list of attributes, use
+
+ EGLBoolean eglGetOutputLayersEXT(
+ EGLDisplay dpy,
+ const EGLAttrib *attrib_list,
+ EGLOutputLayerEXT *layers,
+ EGLint max_layers,
+ EGLint *num_layers)
+
+ On success, EGL_TRUE is returned. If <layers> is NULL, <max_layers>
+ is ignored and the number of output layers which match <attrib_list>
+ is returned in <num_layers>. Otherwise, up to <max_layers> matching
+ layers will be returned in <layers> and <num_layers> will be set to
+ the number of layer handles returned. The states of the output
+ layers are not altered by this query, and output layer handles can
+ be retrieved by multiple calls to this function.
+
+ <attrib_list> may be NULL or a list of name/value pairs terminated
+ by EGL_NONE. If no attributes are provided, all output layers
+ associated with <dpy> will match. Otherwise, only those layers
+ matching all attributes provided in the list will be returned,
+ unless the value specified is EGL_DONT_CARE. If there are no
+ matching layers but all parameters are otherwise valid, success is
+ returned but num_layers is set to 0.
+
+ On failure, EGL_FALSE will be returned and the memory referenced by
+ <layers> and <num_layers> will be unaffected. If <dpy> is not a
+ valid, initialized EGLDisplay, an EGL_BAD_DISPLAY error is
+ generated. If any name in <attrib_list> is not a valid layer
+ attribute name defined in Table 3.10.3.1, an EGL_BAD_ATTRIBUTE error
+ is generated. If any name in <attrib_list> does not allow search
+ access, an EGL_BAD_ACCESS error is generated.
+
+ To obtain EGLOutputPortEXT handles associated with a display which
+ match a list of attributes, use
+
+ EGLBoolean eglGetOutputPortsEXT(
+ EGLDisplay dpy,
+ const EGLAttrib *attrib_list,
+ EGLOutputPortEXT *ports,
+ EGLint max_ports,
+ EGLint *num_ports)
+
+ On success, EGL_TRUE is returned. If <ports> is NULL, <max_ports> is
+ ignored and the number of output ports which match <attrib_list> is
+ returned in <num_ports>. Otherwise, up to <max_ports> matching
+ layers will be returned in <ports> and <num_ports> will be set to
+ the number of port handles returned. The states of the output ports
+ are not altered by this query, and output port handles can be
+ retrieved by multiple calls to this function.
+
+ <attrib_list> may be NULL or a list of name/value pairs terminated
+ by EGL_NONE. If no attributes are provided, all output ports
+ associated with <dpy> will match. Otherwise, only those ports
+ matching all attributes provided in the list will be returned,
+ unless the value specified is EGL_DONT_CARE. If there are no
+ matching ports but all parameters are otherwise valid, success is
+ returned but num_ports is set to 0.
+
+ On failure, EGL_FALSE will be returned and the memory referenced by
+ <ports> and <num_ports> will be unaffected. If <dpy> is not a valid,
+ initialized EGLDisplay, an EGL_BAD_DISPLAY error is generated. If
+ any name in <attrib_list> is not a valid port attribute name defined
+ in Table 3.10.3.2, an EGL_BAD_ATTRIBUTE error is generated. If any
+ name in <attrib_list> does not allow search access, an
+ EGL_BAD_ACCESS error is generated.
+
+ 3.10.2 Lifetime of Output Handles
+
+ An initialized EGLDisplay has a fixed set of output layer and port
+ resources available. Implementations may defer creation of handles
+ and allocation of data structions for these objects until they are
+ first requested. However, once acquired, they remain valid as long
+ as the EGLDisplay is not terminated.
+
+ 3.10.3 Output Attributes
+
+ Valid attributes associated with output layers and ports are listed
+ in Tables 3.10.3.1 and 3.10.3.2, respectively. Additional attributes
+ may be defined by other extensions. The Access columns contain one
+ or more of the letters "S", "R", and W". A value of "S" indicates
+ the attribute may be used to restrict the search when obtaining a
+ list of output handles. A value of "R" indicates the value may be
+ queried from an output handle. A value of "W" indicates the value
+ may be modified using an output handle.
+
+ Attribute Type Access
+ --------------------- ------- ------
+ EGL_SWAP_INTERVAL_EXT integer R|W
+ EGL_MIN_SWAP_INTERVAL integer R
+ EGL_MAX_SWAP_INTERVAL integer R
+
+ Table 3.10.3.1 Output layer attributes
+
+ Attribute Type Access
+ --------------------- ------- ------
+ [no attributes supported]
+
+ Table 3.10.3.2 Output port attributes
+
+ 3.10.3.1 Querying Output Attributes
+
+ To query attributes of an EGLOutputLayerEXT, use
+
+ EGLBoolean eglQueryOutputLayerAttribEXT(
+ EGLDisplay dpy,
+ EGLOutputLayerEXT layer,
+ EGLint attribute,
+ EGLAttrib *value)
+
+ On success, this function returns EGL_TRUE and stores the value of
+ <attribute> in <value>.
+
+ On failure, EGL_FALSE is returned. If <dpy> is not a valid,
+ initialized EGLDisplay, an EGL_BAD_DISPLAY error is generated. If
+ <layer> is not a valid EGLOutputLayerEXT associated with <dpy>, an
+ EGL_BAD_OUTPUT_LAYER_EXT error is generated. If <attribute> is not a
+ valid layer attribute name defined in Table 3.10.3.1, an
+ EGL_BAD_ATTRIBUTE error is generated. If <attribute> has string
+ type or does not allow read access, an EGL_BAD_ACCESS error is
+ generated.
+
+ To query string properties of an EGLOutputLayerEXT, use
+
+ const char* eglQueryOutputLayerStringEXT(
+ EGLDisplay dpy,
+ EGLOutputLayerEXT layer,
+ EGLint attribute)
+
+ On success, this function returns a zero-terminated string
+ containing the value associated with <name>.
+
+ On failure, NULL is returned. If <dpy> is not a valid, initialized
+ EGLDisplay, an EGL_BAD_DISPLAY error is generated. If <layer> is not
+ a valid EGLOutputLayerEXT associated with <dpy>, an
+ EGL_BAD_OUTPUT_LAYER_EXT error is generated. If <name> is not a
+ valid layer attribute name defined in Table 3.10.3.1, an
+ EGL_BAD_ATTRIBUTE error is generated. If <attribute> has non-string
+ type or does not allow read access, an EGL_BAD_ACCESS error is
+ generated.
+
+ To query attributes of an EGLOutputPortEXT, use
+
+ EGLBoolean eglQueryOutputPortAttribEXT(
+ EGLDisplay dpy,
+ EGLOutputPortEXT port,
+ EGLint attribute,
+ EGLAttrib *value)
+
+ On success, this function returns EGL_TRUE and stores the value of
+ <attribute> in <value>.
+
+ On failure, EGL_FALSE is returned. If <dpy> is not a valid,
+ initialized EGLDisplay, an EGL_BAD_DISPLAY error is generated. If
+ <port> is not a valid EGLOutputPortEXT associated with <dpy>, an
+ EGL_BAD_OUTPUT_PORT_EXT error is generated. If <attribute> is not a
+ valid port attribute name defined in Table 3.10.3.2, an
+ EGL_BAD_ATTRIBUTE error is generated. If <attribute> has string
+ type or does not allow read access, an EGL_BAD_ACCESS error is
+ generated.
+
+ To query string properties of an EGLOutputPortEXT, use
+
+ const char* eglQueryOutputPortStringEXT(
+ EGLDisplay dpy,
+ EGLOutputPortEXT port,
+ EGLint attribute)
+
+ On success, this function returns a zero-terminated string
+ containing the value associated with <name>.
+
+ On failure, NULL is returned. If <dpy> is not a valid, initialized
+ EGLDisplay, an EGL_BAD_DISPLAY error is generated. If <port> is not
+ a valid EGLOutputPortEXT associated with <dpy>, an
+ EGL_BAD_OUTPUT_PORT_EXT error is generated. If <name> is not a
+ valid port attribute name defined in Table 3.10.3.2, an
+ EGL_BAD_ATTRIBUTE error is generated. If <attribute> has non-string
+ type or does not allow read access, an EGL_BAD_ACCESS error is
+ generated.
+
+ 3.10.3.2 Setting Output Attributes
+
+ To set attributes of an EGLOutputLayerEXT, use
+
+ EGLBoolean eglOutputLayerAttribEXT(
+ EGLDisplay dpy,
+ EGLOutputLayerEXT layer,
+ EGLint attribute,
+ EGLAttrib value)
+
+ On success, this function returns EGL_TRUE and sets the value of
+ <attribute> to <value>.
+
+ If <attribute> is EGL_SWAP_INTERVAL_EXT, the value provided will be
+ silently clamped to the range specified by the layer's
+ EGL_MIN_SWAP_INTERVAL and EGL_MAX_SWAP_INTERVAL values.
+
+ On failure, EGL_FALSE is returned. If <dpy> is not a valid,
+ initialized EGLDisplay, an EGL_BAD_DISPLAY error is generated. If
+ <layer> is not a valid EGLOutputLayerEXT associated with <dpy>, an
+ EGL_BAD_OUTPUT_LAYER_EXT error is generated. If <attribute> is not a
+ valid layer attribute name defined in Table 3.10.3.1, an
+ EGL_BAD_ATTRIBUTE error is generated. If <attribute> does not
+ allow write access, an EGL_BAD_ACCESS error is generated.
+
+ To set attributes of an EGLOutputPortEXT, use
+
+ EGLBoolean eglOutputPortAttribEXT(
+ EGLDisplay dpy,
+ EGLOutputPortEXT port,
+ EGLint attribute,
+ EGLAttrib value)
+
+ On success, this function returns EGL_TRUE and sets the value of
+ <attribute> to <value>.
+
+ On failure, EGL_FALSE is returned. If <dpy> is not a valid,
+ initialized EGLDisplay, an EGL_BAD_DISPLAY error is generated. If
+ <port> is not a valid EGLOutputPortEXT associated with <dpy>, an
+ EGL_BAD_OUTPUT_PORT_EXT error is generated. If <attribute> is not a
+ valid port attribute name defined in Table 3.10.3.2, an
+ EGL_BAD_ATTRIBUTE error is generated. If <attribute> does not
+ allow write access, an EGL_BAD_ACCESS error is generated.
+
+ 3.10.4 Setting Output Modes
+
+ EGL does not currently define any mechanims to adjust display
+ modes through EGLOutputPortEXTs. These may be added via additional
+ extensions.
+
+ 3.10.5 Posting to Outputs
+
+ EGL does not currently define any mechanisms to post rendering
+ results to EGLOutputsLayerEXTs. These may be added via additional
+ extensions. However, unless otherwise specified, such mechanims
+ will respect the layer's EGL_SWAP_INTERVAL_EXT value, which
+ specifies the minimum number of video frame periods for which the
+ frames should be displayed, in a manner analogous to using
+ eglSwapInterval for the current draw surface. The default value of
+ EGL_SWAP_INTERVAL_EXT is 1, clamped to the layer's
+ EGL_MIN_SWAP_INTERVAL and EGL_MAX_SWAP_INTERVAL values.
+
+ (Example: See extension specification
+ EGL_EXT_stream_consumer_egloutput)
+
+Issues
+
+ 1. Should this extension provide a mechanism to enumerate outputs
+ associated with an EGLDevice and set their modes?
+
+ RESOLVED: No. On many operating systems there already exist
+ standardized and/or widely accepted low level mechanisms for
+ performing these tasks. Duplicating this support in EGL would
+ impose an undesirable implementation burden where output handles
+ are only required as a means to direct rendering to a display
+ screen. Functions for enumerating screens or obtaining them from
+ platform-dependent representations will be provided by other
+ extensions.
+
+ 2. Should output layer and port handles be associated with an
+ EGLDisplay, or vice versa?
+
+ RESOLVED: Yes. Furthermore, it may only be possible to obtain
+ output handles from some EGLDisplays. The primary intended use
+ case is the EGLDisplay associated with an EGLDevice, through the
+ platform defined by EGL_EXT_platform_device. This represents raw
+ device access available in the absence of a window system.
+ EGLDisplays associated with other platforms typically represent
+ handles provided by window systems, which may not allow direct
+ access to the display control hardware.
+
+ 3. Can the EGLDeviceEXT handle be returned by a query function
+ which returns integer attributes?
+
+ RESOLVED: Yes. Function definition has been updated to use
+ EGLAttribEXT, which is compatible with EGL handles.
+
+ 4. What display mode properties should be queriable by the base
+ extension? Does the application require width/height/refresh or
+ should those be left to other mechanisms or additional
+ extensions? If hardware supports selecting a portion of the
+ image for display, or restricting an image to a portion of the
+ screen, or scaling an image to a different resolution for
+ display, should all these settings be queriable?
+
+ RESOLVED: The base extension will not define any display
+ properties. These will be left to future extensions if required.
+
+ 5. How should stereo/multiview displays be handled? Should all
+ views share a single output or does each one have its own?
+
+ UNRESOLVED. Left for a future extension to define.
+
+ 6. This extension is currently focused on individual display layers
+ for the purpose of directing rendering output. An API covering
+ all hardware would associate one or more of those layers with a
+ display port. Do we need to abstract both?
+
+ RESOLVED: Yes. Extension has been modified to abstract both
+ inputs (layers) and outputs (ports) of display control hardware.
+ An implementation is not required to return any ports in the
+ query function if it provides no means to operate on them.
+
+Revision History:
+
+ #9 (August 22nd, 2014) James Jones
+ - Marked complete.
+ - Added minor coments to issue 5.
+ - Listed Daniel as the contact.
+
+ #8 (June 10th, 2014) Daniel Kartch
+ - Fixed prototypes for layer/port attribute setting functions.
+
+ #7 (June 5th, 2014) Daniel Kartch
+ - Assigned enumerated values for constants.
+ - Indicated default swap interval value.
+
+ #6 (May 28th, 2014) Daniel Kartch
+ - Updated wording based on EGL 1.5 specification, using
+ EGLAttrib instead of EGLAttribEXT.
+ - Added functions to set layer and port attributes.
+ - Added table of valid attributes, with min/max/current swap
+ interval values, and adjusted function descriptions
+ accordingly.
+ - Refined description for output enumeration functions to better
+ indicate the effect of attribute list.
+ - Added effect of swap interval in posting section.
+
+ #5 (January 31st, 2014) Daniel Kartch
+ - Added eglGetOutput* functions, folding in and generalizing
+ functionality previously provided by EXT_native_output
+ extension.
+ - Separated descriptions for layer and port query functions for
+ clarity.
+
+ #4 (January 22nd, 2014) Daniel Kartch
+ - Added section clarifying that this extension provides no means
+ to use output ports to set display modes, but future
+ extensions may.
+
+ #3 (January 17th, 2014) Daniel Kartch
+ - Updated names of example extension for obtaining and using
+ output handles.
+ - Fixed typos.
+
+ #2 (November 12th, 2013) Daniel Kartch
+ - Replaced EGLOutput with EGLOutputLayer and added
+ EGLOutputPort (and modified/added corresponding functions), to
+ allow both inputs and outputs of display control hardware to
+ be abstracted.
+ - Modified attribute query functions to use EGLAttribEXT and
+ added string query functions.
+ - Removed display mode attributes. These can be defined by a
+ separate extension if desired.
+ - Removed destructor function for outputs and added section on
+ lifetime, as well as language describing their relationship to
+ EGLDisplays.
+
+ #1 (October 25nd, 2013) Daniel Kartch
+ - Initial draft
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_pixel_format_float.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_pixel_format_float.txt
new file mode 100644
index 0000000..a14adcb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_pixel_format_float.txt
@@ -0,0 +1,136 @@
+Name
+
+ EXT_pixel_format_float
+
+Name Strings
+
+ EGL_EXT_pixel_format_float
+
+Contributors
+
+ Tom Cooksey
+ Jesse Hall
+ Mathias Heyer
+ Adam Jackson
+ James Jones
+ Daniel Koch
+ Jeff Leger
+ Weiwan Liu
+ Jeff Vigil
+
+Contact
+
+ Weiwan Liu, NVIDIA (weiwliu 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 4 - Nov 22, 2016
+
+Number
+
+ EGL Extension #106
+
+Dependencies
+
+ This extension is written against the wording of the EGL 1.5 specification
+ (August 27, 2014).
+
+Overview
+
+ This extensions aims to provide similar functionality as GL_ARB_color_-
+ buffer_float, WGL_ARB_pixel_format_float and GLX_ARB_fbconfig_float. This
+ extension allows exposing new EGLConfigs that support formats with
+ floating-point RGBA components. This is done by introducing a new EGLConfig
+ attribute that represents the component type, i.e. fixed-point or
+ floating-point. Such new EGLConfigs can be used to create floating-point
+ rendering surfaces and contexts.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as an attribute name in the <attrib_list> argument of
+ eglChooseConfig, and the <attribute> argument of eglGetConfigAttrib:
+
+ EGL_COLOR_COMPONENT_TYPE_EXT 0x3339
+
+ Accepted as attribute values for the EGL_COLOR_COMPONENT_TYPE_EXT attribute
+ of eglChooseConfig:
+
+ EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A
+ EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
+
+ Additions to table 3.1, "EGLConfig attributes" in Section 3.4 "Configuration
+ Management":
+
+ Attribute Type Notes
+ --------- ---- ---------
+ EGL_COLOR_COMPONENT_TYPE_EXT enum color component type
+
+ Append one paragraph at the end of "The Color Buffer" section on page 21:
+
+ EGL_COLOR_COMPONENT_TYPE_EXT indicates the color buffer component type,
+ and must be either EGL_COLOR_COMPONENT_TYPE_FIXED_EXT for fixed-point
+ color buffers, or EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT for floating-point
+ color buffers.
+
+ Add one entry to Table 3.4 and increment "Sort Priority" between "2" and
+ "11" by one for existing entries:
+
+ Attribute Default
+ ----------- ------------
+ EGL_COLOR_COMPONENT_TYPE_EXT EGL_COLOR_COMPONENT_TYPE_FIXED_EXT
+
+ Selection Criteria Sort Order Priority
+ ------------------ ---------- --------
+ Exact Special 2
+
+ Insert before the entry for EGL_COLOR_BUFFER_TYPE, and increment its
+ numbering and subsequent numbering by one:
+
+ 2. Special: by EGL_COLOR_COMPONENT_TYPE_EXT where the precedence is
+ EGL_COLOR_COMPONENT_TYPE_FIXED_EXT, EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT
+
+ Change footnote 8 on page 30 to:
+
+ Within the same EGL_COLOR_COMPONENT_TYPE_EXT, this rule places configs
+ with deeper color buffers first in the list returned by
+ eglChooseConfig...
+
+Issues
+
+ 1. When reading from or rendering to a floating-point EGL surface, is there
+ any clamping performed on the values?
+
+ RESOLVED: It depends on the behavior of the client API. For example, in
+ OpenGL and ES, by default no clamping will be done on the floating-point
+ values, unless the clamping behavior is changed via the client API.
+
+ 2. When rendering to a floating-point EGL surface, since values may not be
+ clamped to [0, 1], what is the range of values that applications can use
+ to get display's "darkest black" and "brightest white"?
+
+ RESOLVED: It is not in the scope of this extension to define a range of
+ values that corresponds to display's capability. Please refer to the EGL
+ specification for the chosen colorspace (EGL_GL_COLORSPACE), where such a
+ reference range may be defined.
+
+Revision History
+
+ Rev. Date Author Changes
+ ---- -------- --------------- ------------------------------------------
+ 1 12/11/15 Weiwan Liu Initial version
+ 2 05/18/16 Weiwan Liu Rename to EXT
+ 3 05/31/16 Weiwan Liu Add issues
+ 4 11/22/16 Weiwan Liu Change status to complete
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_base.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_base.txt
new file mode 100644
index 0000000..80bd1bc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_base.txt
@@ -0,0 +1,371 @@
+Name
+
+ EXT_platform_base
+
+Name Strings
+
+ EGL_EXT_platform_base
+
+Contributors
+
+ Chad Versace <chad.versace@intel.com>
+ James Jones <jajones@nvidia.com>
+
+Contacts
+
+ Chad Versace <chad.versace@intel.com>
+
+Status
+
+ Complete
+
+Version
+
+ Version 9, 2014.01.09
+
+Number
+
+ EGL Extension #57
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Requires EGL 1.4.
+
+ Requires EGL_EXT_client_extensions to query its existence without
+ a display.
+
+ This extension is written against the wording of the 2013.02.11 revision
+ of the EGL 1.4 Specification.
+
+Overview
+
+ This extension defines functionality and behavior for EGL implementations
+ that support multiple platforms at runtime. For example, on Linux an EGL
+ implementation could support X11, Wayland, GBM (Generic Buffer Manager),
+ Surface Flinger, and perhaps other platforms.
+
+ In particular, this extension defines the following:
+
+ 1. A mechanism by which an EGL client can detect which platforms the
+ EGL implementation supports.
+
+ 2. New functions that enable an EGL client to specify to which
+ platform a native resource belongs when creating an EGL resource
+ from that native resource. For example, this extension enables an
+ EGL client to specify, when creating an EGLSurface from a native
+ window, that the window belongs to X11.
+
+ 3. That an EGL client is not restricted to interacting with a single
+ platform per process. A client process can create and manage EGL
+ resources from multiple platforms.
+
+ The generic term 'platform' is used throughout this extension
+ specification rather than 'window system' because not all EGL platforms
+ are window systems. In particular, those platforms that allow headless
+ rendering without a display server, such as GBM, are not window systems.
+
+ This extension does not specify behavior specific to any platform, nor
+ does it specify the set of platforms that an EGL implementation may
+ support. Platform-specific details lie outside this extension's scope and
+ are instead described by extensions layered atop this one.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ EGLDisplay eglGetPlatformDisplayEXT(
+ EGLenum platform,
+ void *native_display,
+ const EGLint *attrib_list);
+
+ EGLSurface eglCreatePlatformWindowSurfaceEXT(
+ EGLDisplay dpy,
+ EGLConfig config,
+ void *native_window,
+ const EGLint *attrib_list);
+
+ EGLSurface eglCreatePlatformPixmapSurfaceEXT(
+ EGLDisplay dpy,
+ EGLConfig config,
+ void *native_pixmap,
+ const EGLint *attrib_list);
+
+New Tokens
+
+ None
+
+Additions to the EGL 1.4 Specification
+
+ Replace each occurence of the term "window system" with "platform". The
+ rationale behind this change is that not all platforms are window systems,
+ yet the EGL 1.4 specification uses the two terms interchangeably. In
+ particular, platforms that allow headless rendering without a display
+ server, such as GBM, are not window systems.
+
+ Append the following paragraph to the initial, unnamed subsection of
+ section 2.1 "Native Window System and Rendering APIs".
+
+ "This specification does not define the set of platforms that may be
+ supported by the EGL implementation, nor does it specify behavior specific
+ to any platform. The set of supported platforms and their behavior is
+ defined by extensions. To detect if a particular platform is supported,
+ clients should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY using
+ eglQueryString.
+
+ Replace the text of section 3.2 "Initialization", from the start of the
+ section and up to and excluding the phrase "EGL may be intialized on
+ a display", with the following:
+
+ "A display can be obtained by calling
+
+ EGLDisplay eglGetPlatformDisplayEXT(
+ EGLenum platform,
+ void *native_display,
+ const EGLint *attrib_list);
+
+ EGL considers the returned EGLDisplay as belonging to the native platform
+ specified by <platform>. This specification defines no valid value for
+ <platform>. Any specification that does define a valid value for
+ <platform> will also define requirements for the <native_display>
+ parameter. For example, an extension specification that defines support
+ for the X11 platform may require that <native_display> be a pointer to an
+ X11 Display, and an extension specification that defines support for the
+ Microsoft Windows platform may require that <native_display> be a pointer
+ to a Windows Device Context.
+
+ All attribute names in <attrib_list> are immediately followed by the
+ corresponding desired value. The list is terminated with EGL_NONE. The
+ <attrib_list> is considered empty if either <attrib_list> is NULL or if
+ its first element is EGL_NONE. This specification defines no valid
+ attribute names for <attrib_list>.
+
+ Multiple calls made to eglGetPlatformDisplayEXT with the same <platform>
+ and <native_display> will return the same EGLDisplay handle.
+
+ An EGL_BAD_PARAMETER error is generated if <platform> has an invalid value.
+ If <platform> is valid but no display matching <native_display> is
+ available, then EGL_NO_DISPLAY is returned; no error condition is raised
+ in this case.
+
+ A display can also be obtained by calling
+
+ EGLDisplay eglGetDisplay(EGLNativeDisplayType display_id);
+
+ The behavior of eglGetDisplay is similar to that of
+ eglGetPlatformDisplayEXT, but is specifided in terms of implementation-
+ specific behavior rather than platform-specific extensions.
+ As for eglGetPlatformDisplayEXT, EGL considers the returned EGLDisplay
+ as belonging to the same platform as <display_id>. However, the set of
+ platforms to which <display_id> is permitted to belong, as well as the
+ actual type of <display_id>, are implementation-specific. If <display_id>
+ is EGL_DEFAULT_DISPLAY, a default display is returned. Multiple calls
+ made to eglGetDisplay with the same <display_id> will return the same
+ EGLDisplay handle. If no display matching <display_id> is available,
+ EGL_NO_DISPLAY is returned; no error condition is raised in this case."
+
+ In section 3.5.1 "Creating On-Screen Rendering Surfaces", replace the
+ second paragraph, which begins with "Using the platform-specific type" and
+ ends with "render into this surface", with the following:
+
+ "Then call
+
+ EGLSurface eglCreatePlatformWindowSurfaceEXT(
+ EGLDisplay dpy,
+ EGLConfig config,
+ void *native_window,
+ const EGLint *attrib_list);
+
+ eglCreatePlatformWindowSurfaceEXT creates an onscreen EGLSurface and
+ returns a handle to it. Any EGL context created with a compatible
+ EGLConfig can be used to render into this surface.
+
+ <native_window> must belong to the same platform as <dpy>, and EGL
+ considers the returned EGLSurface as belonging to that same platform. The
+ extension that defines the platform to which <dpy> belongs also defines
+ the requirements for the <native_window> parameter."
+
+ In the remainder of section 3.5.1, replace each occurrence of
+ 'eglCreateWindowSurface' with 'eglCreatePlatformWindowSurfaceEXT'.
+
+ Insert the sentence below after the first sentence of the last paragraph
+ of section 3.5.1:
+
+ "If <dpy> and <native_window> do not belong to the same platform, then
+ undefined behavior occurs. [1]"
+
+ Add the following footnote to section 3.5.1:
+
+ "[1] See section 3.1.0.2 "Parameter Validation".
+
+ Append the following to section 3.5.1:
+
+ "An on-screen rendering surface may also be created by calling
+
+ EGLSurface eglCreateWindowSurface(
+ EGLDisplay dpy,
+ EGLConfig config,
+ EGLNativeWindowType win,
+ const EGLint *attrib_list);
+
+ The behavior of eglCreateWindowSurface is identical to that of
+ eglCreatePlatformWindowSurfaceEXT except that the set of platforms to
+ which <dpy> is permitted to belong, as well as the actual type of <win>,
+ are implementation specific.
+
+ In section 3.5.4 "Creating Native Pixmap Rendering Surfaces", replace the
+ third paragraph, which begins with "Using the platform-specific type" and
+ ends with "render into this surface", with the following:
+
+ "Then call
+
+ EGLSurface eglCreatePlatformPixmapSurfaceEXT(
+ EGLDisplay dpy,
+ EGLConfig config,
+ void *native_pixmap,
+ const EGLint *attrib_list);
+
+ eglCreatePlatformPixmapSurfaceEXT creates an offscreen EGLSurface and
+ returns a handle to it. Any EGL context created with a compatible
+ EGLConfig can be used to render into this surface.
+
+ <native_pixmap> must belong to the same platform as <dpy>, and EGL
+ considers the returned EGLSurface as belonging to that same platform. The
+ extension that defines the platform to which <dpy> belongs also defines
+ the requirements for the <native_pixmap> parameter."
+
+ In the remainder of section 3.5.4, replace each occurrence of
+ 'eglCreatePixmapSurface' with 'eglCreatePlatformPixmapSurfaceEXT' and each
+ occurence of 'eglCreateWindowSurface' with
+ 'eglCreatePlatformWindowSurfaceEXT'.
+
+ Insert the sentence below after the first sentence of the last paragraph
+ of section 3.5.4:
+
+ "If <dpy> and <native_pixmap> do not belong to the same platform, then
+ undefined behavior occurs. [1]"
+
+ Add the following footnote to section 3.5.3:
+
+ "[1] See section 3.1.0.2 "Parameter Validation".
+
+ Append the following to section 3.5.2:
+
+ "An offscreen rendering surface may also be created by calling
+
+ EGLSurface eglCreatePixmapSurface(
+ EGLDisplay dpy,
+ EGLConfig config,
+ EGLNativePixmapType pixmap,
+ const EGLint *attrib_list);
+
+ The behavior of eglCreatePixmapSurface is identical to that of
+ eglCreatePlatformPixmapSurfaceEXT except that the set of platforms to
+ which <dpy> is permitted to belong, as well as the actual type of
+ <pixmap>, are implementation specific.
+
+Issues
+
+ 1. What rules define how EGL resources are shared among displays belonging
+ to different platforms?
+
+ RESOLVED: Neither the EGL 1.4 specification nor any extension allow EGL
+ resources to be shared among displays. This extension does not remove
+ that restriction.
+
+ 2. Rather than define the new function eglGetPlatformDisplayEXT(), should
+ this extension instead define new thread-local state for the currently
+ bound platform and an associated binding function, such as
+ eglBindPlatformEXT()?
+
+ RESOLVED: No, for the following reasons.
+
+ - A current trend among the Khronos workgroups is to remove use of
+ global state by introducing bindless objects. Introducing a new
+ thread-local binding point defies that trend.
+
+ - Additional specification language would be required to define
+ the interactions between the currently bound platform and all
+ EGL functions that accept an EGLDisplay. (For example, if the
+ currently bound platform is Wayland, then what is the result of
+ calling eglCreateWindowSurface() with a display and native
+ window belonging to X11?) By choosing to not introduce the
+ notion of a "currently bound platform", we obtain a cleaner
+ extension specification and eliminate for EGL users a class of
+ potential bugs.
+
+ 3. Should this extension define the notion of a default platform?
+
+ RESOLVED: No. eglGetDisplay() can be used if a default platform is
+ needed.
+
+ 4. Rather than define the new functions
+ eglCreatePlatform{Window,Pixmap}SurfaceEXT(), should we instead
+ redefine the EGLNative* types in eglplatform.h as void*?
+
+ RESOLVED: No, this introduces problems for X11 applications.
+
+ Suppose that a 64-bit X11 application is compiled against an old EGL
+ library (where EGLNativeWindowType is a typedef for XID, which is in
+ turn a typedef for a 64-bit unsigned integer on Fedora 18) and then
+ attempts to run against a new EGL library (where EGLNativeType is
+ a typedef for void*). To preserve the ABI of eglCreateWindowSurface()
+ in this situation, the new EGL library must re-interpret the
+ <native_window> parameter as an integer.
+
+ However, this preservation of the ABI breaks source compatibility for
+ existing X11 applications. To successfully compile, each call to
+
+ eglCreateWindowSurface(dpy, window, attribs)
+
+ in existing X11 application source code would need to be replaced with
+
+ eglCreateWindowSurface(dpy, (void*) window, attribs) .
+
+ Requiring such widespread code modifications would be an unnecessary
+ burden to developers and Linux package maintainers.
+
+Revision History
+
+ Version 9, 2014.01.09 (Jon Leech)
+ - Fix typo eglGetDisplayPlatformEXT -> eglGetPlatformDisplayEXT
+
+ Version 8, 2013.07.03 (Chad Versace)
+ - Add "Extension Type" section, required by EGL_EXT_client_extensions v9.
+
+ Version 7, 2013.06.07 (Chad Versace)
+ - Fix some awkward text (s/the EGL/EGL/).
+ - Remove text "attribute names are defined by platform-specific
+ extensions".
+
+ Version 6, 2013.06.07 (Chad Versace)
+ - To "Dependencies" section, expand text that discusses
+ EGL_EXT_client_extensions.
+
+ Version 5, 2013.05.18 (Chad Versace)
+ - Removed restriction that "attribute names are defined only by
+ platform-specific extensions".
+ - Resolve issue 3 as NO.
+ - Clarified some text and fixed grammatical errors.
+
+ Version 4, 2013.05.14 (Chad Versace)
+ - Add <attrib_list> parameter to eglGetPlatformDisplayEXT, per
+ feedback at the April Khronos F2F.
+
+ Version 3, 2013.04.26 (Chad Versace)
+ - Add issues 2, 3, 4.
+
+ Version 2, 2013.03.24 (Chad Versace)
+ - Complete draft by adding text for pixmaps.
+ - The footnotes regarding undefined behavior, simplify them by
+ simply referring to section 3.1.0.2.
+ - Add issue 1 from Eric Anholt <eric@anholt.net>.
+ - Fix spelling and formatting errors.
+
+ Version 1, 2013.03.13 (Chad Versace)
+ - Incomplete draft posted for review
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_device.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_device.txt
new file mode 100644
index 0000000..45c4fe3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_device.txt
@@ -0,0 +1,161 @@
+Name
+
+ EXT_platform_device
+
+Name Strings
+
+ EGL_EXT_platform_device
+
+Contributors
+
+ James Jones
+ Daniel Kartch
+
+Contacts
+
+ James Jones, NVIDIA (jajones 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 6 - May 16th, 2014
+
+Number
+
+ EGL Extension #73
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Requires EGL_EXT_device_base
+
+ Requires EGL_EXT_platform_base or EGL 1.5
+
+ Written against the wording of EGL 1.5
+
+Overview
+
+ Increasingly, EGL and its client APIs are being used in place of
+ "native" rendering APIs to implement the basic graphics
+ functionality of native windowing systems. This creates demand
+ for a method to initialize EGL displays and surfaces directly on
+ top of native GPU or device objects rather than native window
+ system objects. The mechanics of enumerating the underlying
+ native devices and constructing EGL displays and surfaces from
+ them have been solved in various platform and implementation-
+ specific ways. The EGL device family of extensions offers a
+ standardized framework for bootstrapping EGL without the use of
+ any underlying "native" APIs or functionality.
+
+ This extension defines a method to create an EGLDisplay from an
+ EGLDeviceEXT by treating the EGLDeviceEXT as an EGLNativeDisplay
+ object.
+
+New Types
+
+ None
+
+New Functions
+
+ None
+
+New Tokens
+
+ Accepted by the <platform> parameter of eglGetPlatformDisplayEXT
+ and eglGetPlatformDisplay:
+
+ EGL_PLATFORM_DEVICE_EXT 0x313F
+
+Replace the last paragraph of section 2.1 "Native Window System and
+Rendering APIs"
+
+ "This specification defines only the EGLDeviceEXT platform, and
+ behavior specific to it. Implementations may support other
+ platforms, but their existence and behavior is defined by
+ extensions. To detect support for other platforms, clients should
+ query the EGL_EXTENSIONS string of EGL_NO_DISPLAY using
+ eglQueryString (see section 3.3).
+
+Replace the second sentence of the paragraph following the
+eglGetPlatformDisplay prototype
+
+ "The only valid value for <platform> is EGL_PLATFORM_DEVICE_EXT.
+ When <platform> is EGL_PLATFORM_DEVICE_EXT, <native_display> must
+ be an EGLDeviceEXT object. Platform-specific extensions may
+ define other valid values for <platform>."
+
+Add the following sentence to the end of the second paragraph after
+the eglCreatePlatformWindowSurface prototype.
+
+ "There are no valid values of <native_window> when <dpy> belongs
+ to the EGL_PLATFORM_DEVICE_EXT platform."
+
+Add the following sentence to the end of the second paragraph after
+the eglCreatePlatformPixmapSurface prototype.
+
+ "There are no valid values of <native_pixmap> when <dpy> belongs
+ to the EGL_PLATFORM_DEVICE_EXT platform.
+
+Issues
+
+ 1. Do EGLDevice-backed displays support window or pixmap surfaces?
+ If so, what native objects are they associated with? If not,
+ are EGLDevice-backed displays useful in any way?
+
+ RESOLVED: This extension defines no method to create window or
+ pixmap surfaces on the EGLDeviceEXT platform. Other
+ extensions may define such functionality. Presumably, if
+ there are no other extensions that expose native window or
+ pixmap types associated with EGL devices, EGLDeviceEXT-backed
+ displays could expose EGLConfigs that only support rendering
+ to EGLStreamKHR or EGLPbuffer surfaces.
+
+ 2. Should the EGL_PLATFORM_DEVICE_EXT platform be included in the
+ EGL specification as a special "blessed" platform, or exist
+ only as an extension like other platforms?
+
+ RESOLVED: EGL devices are defined as part of the EGL
+ specification, so there's no reason to exclude their
+ associated platform from the core EGL specification. They are
+ not native objects, therefore they can not be referred to as a
+ native platform, even though they are used interchangeably
+ with native objects in this extension.
+
+Revision History:
+
+ #6 (May 16th, 2014) James Jones
+ - Marked the extension complete
+ - Marked all issues resolved
+
+ #5 (April 8th, 2014) James Jones
+ - Updated wording based on the EGL 1.5 spec
+ - Assigned values to tokens
+
+ #4 (November 6th, 2013) James Jones
+ - Specified this is a device extension
+ - Requires, rather than interacts with EGL_EXT_platform_base
+ - Removed EGL_SUPPORTS_PLATFORM_DEVICE_EXT. There is no need
+ for a separate query now that the name string is listed in
+ the per-device extension string
+
+ #3 (April 23rd, 2013) James Jones
+ - Fixed minor typos
+
+ #2 (April 18th, 2013) James Jones
+ - Moved eglGetDisplayPointerEXT to a stand-alone extension
+ - Renamed from EGL_EXT_device_display to
+ EGL_EXT_platform_device
+ - Filled in the actual spec language modifications
+ - Replaced issue 2, since the original was moved to
+ EGL_EXT_display_attributes
+ - Reworded issue 1.
+ - Fixed some typos
+
+ #1 (April 16th, 2013) James Jones
+ - Initial Draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_wayland.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_wayland.txt
new file mode 100644
index 0000000..3e5c0fa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_wayland.txt
@@ -0,0 +1,135 @@
+Name
+
+ EXT_platform_wayland
+
+Name Strings
+
+ EGL_EXT_platform_wayland
+
+Contributors
+
+ Chad Versace <chad.versace@intel.com>
+
+Contacts
+
+ Chad Versace <chad.versace@intel.com>
+
+Status
+
+ Complete
+
+Version
+
+ Version 4, 2014-03-10
+
+Number
+
+ EGL Extension #63
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Requires EGL_EXT_client_extensions to query its existence without
+ a display.
+
+ Requires EGL_EXT_platform_base.
+
+ This extension is written against the wording of version 7 of the
+ EGL_EXT_platform_base specification.
+
+Overview
+
+ This extension defines how to create EGL resources from native Wayland
+ resources using the functions defined by EGL_EXT_platform_base.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as the <platform> argument of eglGetPlatformDisplayEXT:
+
+ EGL_PLATFORM_WAYLAND_EXT 0x31D8
+
+Additions to the EGL Specification
+
+ None.
+
+New Behavior
+
+ To determine if the EGL implementation supports this extension, clients
+ should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
+
+ To obtain an EGLDisplay backed by a Wayland display, call
+ eglGetPlatformDisplayEXT with <platform> set to EGL_PLATFORM_WAYLAND_EXT. The
+ <native_display> parameter specifies the Wayland display to use and must
+ either point to a `struct wl_display` or be EGL_DEFAULT_DISPLAY. If
+ <native_display> is EGL_DEFAULT_DISPLAY, then EGL will create a new
+ wl_display structure by connecting to the default Wayland socket. The
+ manual page wl_display_connect(3) defines the location of the default
+ Wayland socket.
+
+ To obtain an on-screen rendering surface from a Wayland window, call
+ eglCreatePlatformWindowSurfaceEXT with a <dpy> that belongs to Wayland and
+ a <native_window> that points to a `struct wl_egl_surface`.
+
+ It is not valid to call eglCreatePlatformPixmapSurfaceEXT with a <dpy>
+ that belongs to Wayland. Any such call fails and generates
+ EGL_BAD_PARAMETER.
+
+Issues
+
+ 1. Should this extension permit EGL_DEFAULT_DISPLAY as input to
+ eglGetPlatformDisplayEXT()?
+
+ RESOLUTION: Yes. When given EGL_DEFAULT_DISPLAY, eglGetPlatformDisplayEXT
+ returns a display backed by the default Wayland display.
+
+ 2. Should this extension support creation EGLPixmap resources from Wayland
+ pixmaps?
+
+ RESOLVED. No. Wayland has no pixmap type.
+
+ 3. Should the extension namespace be EXT or MESA?
+
+ The only shipping EGL implementation today (2013-04-26) that supports
+ Wayland is Mesa. However, perhaps the extension should reside in the
+ EXT namespace in expectation that other vendors will also begin
+ supporting Wayland.
+
+ RESOLVED. Use the EXT namespace because other vendors have expressed
+ interest in Wayland.
+
+Revision History
+
+ Version 4, 2014-03-10(Chad Versace)
+ - Change resolution of issue #1 from "no" to "yes". Now
+ eglGetPlatformDisplayEXT accepts EGL_DEFAULT_DISPLAY for Wayland.
+ - Explain in more detail how EGL connects to the default Wayland
+ display.
+
+ Version 3, 2013-10-16 (Chad Versace)
+ - Resolve issue #3 to use EXT namespace.
+
+ Version 2, 2013-09-12 (Chad Versace)
+ - Update to wording of version 7 of EGL_EXT_platform_base spec.
+ - Add section "Extension Type".
+ - Rephrase the discussion of how to create a Wayland EGLDisplay
+ to follow the analogous discussion in the published
+ EGL_EXT_platform_x11 spec.
+ - Change resolution of issue 1 from yes to no, because of likely type
+ mismatch between EGL_DEFAULT_DISPLAY_TYPE and void*.
+
+ Version 1, 2013-04-26 (Chad Versace)
+ - Initial draft
+
+# vim:ai:et:sw=4:ts=4:
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_x11.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_x11.txt
new file mode 100644
index 0000000..19bfc35
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_x11.txt
@@ -0,0 +1,414 @@
+Name
+
+ EXT_platform_x11
+
+Name Strings
+
+ EGL_EXT_platform_x11
+
+Contributors
+
+ Chad Versace <chad.versace@intel.com>
+ James Jones <jajones@nvidia.com>
+
+Contacts
+
+ Chad Versace <chad.versace@intel.com>
+
+Status
+
+ Complete
+
+Version
+
+ Version 13, 2014-03-10
+
+Number
+
+ EGL Extension #59
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Requires EGL_EXT_client_extensions to query its existence without
+ a display.
+
+ Requires EGL_EXT_platform_base.
+
+ This extension is written against the wording of version 7 of the
+ EGL_EXT_platform_base specification.
+
+Overview
+
+ This extension defines how to create EGL resources from native X11
+ resources using the functions defined by EGL_EXT_platform_base.
+
+ This extension defines only how to create EGL resources from Xlib
+ resources. It does not define how to do so from xcb resources. All X11
+ types discussed here are defined by the header `Xlib.h`.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as the <platform> argument of eglGetPlatformDisplayEXT:
+
+ EGL_PLATFORM_X11_EXT 0x31D5
+
+ Accepted as an attribute name in the <attrib_list> argument of
+ eglGetPlatformDisplayEXT:
+
+ EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
+
+Additions to the EGL Specification
+
+ None.
+
+New Behavior
+
+ To determine if the EGL implementation supports this extension, clients
+ should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
+
+ On the X11 platform, an EGLDisplay refers to a specific X11 screen rather
+ than an X11 display connection. This is the case because separate X11
+ screens, even when belonging to the same X11 display connection, may
+ reside on different GPUs and/or be driven by different drivers. Therefore,
+ different X11 screens may have different EGL capabilities.
+
+ To obtain an EGLDisplay backed by an X11 screen, call
+ eglGetPlatformDisplayEXT with <platform> set to EGL_PLATFORM_X11_EXT. The
+ <native_display> parameter specifies the X11 display connection to use, and
+ must point to a valid X11 `Display` or be NULL. If <native_display> is
+ EGL_DEFAULT_DISPLAY, then EGL will create [1] a connection to the default
+ X11 display. The environment variable DISPLAY determines the default X11
+ display as described in the manual page for XOpenDisplay(3). The value of
+ attribute EGL_PLATFORM_X11_SCREEN_EXT specifies the X11 screen to use. If
+ the attribute is omitted from <attrib_list>, then the display connection's
+ default screen is used. Otherwise, the attribute's value must be a valid
+ screen on the display connection. If the attribute's value is not a valid
+ screen, then an EGL_BAD_ATTRIBUTE error is generated.
+
+ [fn1] The method by which EGL creates a connection to the default X11
+ display is an internal implementation detail. The implementation may use
+ XOpenDisplay, xcb_connect, or any other method.
+
+ To obtain an on-screen rendering surface from an X11 Window, call
+ eglCreatePlatformWindowSurfaceEXT with a <dpy> that belongs to X11 and
+ a <native_window> that points to an X11 Window.
+
+ To obtain an offscreen rendering surface from an X11 Pixmap, call
+ eglCreatePlatformPixmapSurfaceEXT with a <dpy> that belongs to X11 and
+ a <native_pixmap> that points to an X11 Pixmap.
+
+Issues
+
+ 1. Should this extension permit EGL_DEFAULT_DISPLAY as input to
+ eglGetPlatformDisplayEXT()?
+
+ RESOLVED. Yes. When given EGL_DEFAULT_DISPLAY, eglGetPlatformDisplayEXT
+ returns an EGLDisplay backed by the default X11 display.
+
+ 2. When given EGL_DEFAULT_DISPLAY, does eglGetPlatformDisplayEXT reuse an
+ existing X11 display connection or create a new one?
+
+ RESOLVED. eglGetPlatformDisplayEXT creates a new connection because the
+ alternative is infeasible. EGL cannot reliably detect if the client
+ process already has a X11 display connection.
+
+
+Example Code
+
+ // This example program creates two EGL surfaces: one from an X11 Window
+ // and the other from an X11 Pixmap.
+ //
+ // If the macro USE_EGL_EXT_PLATFORM_X11 is defined, then the program
+ // creates the surfaces using the methods defined in this specification.
+ // Otherwise, it uses the methods defined by the EGL 1.4 specification.
+ //
+ // Compile with `cc -std=c99 example.c -lX11 -lEGL`.
+
+ #include <stdlib.h>
+ #include <string.h>
+
+ #include <EGL/egl.h>
+ #include <X11/Xlib.h>
+
+ struct my_display {
+ Display *x11;
+ EGLDisplay egl;
+ };
+
+ struct my_config {
+ struct my_display dpy;
+ XVisualInfo *x11;
+ Colormap colormap;
+ EGLConfig egl;
+ };
+
+ struct my_window {
+ struct my_config config;
+ Window x11;
+ EGLSurface egl;
+ };
+
+ struct my_pixmap {
+ struct my_config config;
+ Pixmap x11;
+ EGLSurface egl;
+ };
+
+ static void
+ check_extensions(void)
+ {
+ #ifdef USE_EGL_EXT_PLATFORM_X11
+ const char *client_extensions = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
+
+ if (!client_extensions) {
+ // EGL_EXT_client_extensions is unsupported.
+ abort();
+ }
+ if (!strstr(client_extensions, "EGL_EXT_platform_x11")) {
+ abort();
+ }
+ #endif
+ }
+
+ static struct my_display
+ get_display(void)
+ {
+ struct my_display dpy;
+
+ dpy.x11 = XOpenDisplay(NULL);
+ if (!dpy.x11) {
+ abort();
+ }
+
+ #ifdef USE_EGL_EXT_PLATFORM_X11
+ dpy.egl = eglGetPlatformDisplayEXT(EGL_PLATFORM_X11_EXT, dpy.x11,
+ NULL);
+ #else
+ dpy.egl = eglGetDisplay(dpy.x11);
+ #endif
+
+ if (dpy.egl == EGL_NO_DISPLAY) {
+ abort();
+ }
+
+ EGLint major, minor;
+ if (!eglInitialize(dpy.egl, &major, &minor)) {
+ abort();
+ }
+
+ return dpy;
+ }
+
+ static struct my_config
+ get_config(struct my_display dpy)
+ {
+ struct my_config config = {
+ .dpy = dpy,
+ };
+
+ EGLint egl_config_attribs[] = {
+ EGL_BUFFER_SIZE, 32,
+ EGL_RED_SIZE, 8,
+ EGL_GREEN_SIZE, 8,
+ EGL_BLUE_SIZE, 8,
+ EGL_ALPHA_SIZE, 8,
+
+ EGL_DEPTH_SIZE, EGL_DONT_CARE,
+ EGL_STENCIL_SIZE, EGL_DONT_CARE,
+
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PIXMAP_BIT,
+ EGL_NONE,
+ };
+
+ EGLint num_configs;
+ if (!eglChooseConfig(dpy.egl,
+ egl_config_attribs,
+ &config.egl, 1,
+ &num_configs)) {
+ abort();
+ }
+ if (num_configs == 0) {
+ abort();
+ }
+
+ XVisualInfo x11_visual_info_template;
+ if (!eglGetConfigAttrib(dpy.egl,
+ config.egl,
+ EGL_NATIVE_VISUAL_ID,
+ (EGLint*) &x11_visual_info_template.visualid)) {
+ abort();
+ }
+
+ int num_visuals;
+ config.x11 = XGetVisualInfo(dpy.x11,
+ VisualIDMask,
+ &x11_visual_info_template,
+ &num_visuals);
+ if (!config.x11) {
+ abort();
+ }
+
+ config.colormap = XCreateColormap(dpy.x11,
+ RootWindow(dpy.x11, 0),
+ config.x11->visual,
+ AllocNone);
+ if (config.colormap == None) {
+ abort();
+ }
+
+ return config;
+ }
+
+ static struct my_window
+ get_window(struct my_config config)
+ {
+ XSetWindowAttributes attr;
+ unsigned long mask;
+
+ struct my_window window = {
+ .config = config,
+ };
+
+ attr.colormap = config.colormap;
+ mask = CWColormap;
+
+ window.x11 = XCreateWindow(config.dpy.x11,
+ DefaultRootWindow(config.dpy.x11), // parent
+ 0, 0, // x, y
+ 256, 256, // width, height
+ 0, // border_width
+ config.x11->depth,
+ InputOutput, // class
+ config.x11->visual,
+ mask, // valuemask
+ &attr); // attributes
+ if (!window.x11) {
+ abort();
+ }
+
+ #ifdef USE_EGL_EXT_PLATFORM_X11
+ window.egl = eglCreatePlatformWindowSurfaceEXT(config.dpy.egl,
+ config.egl,
+ &window.x11,
+ NULL);
+ #else
+ window.egl = eglCreateWindowSurface(config.dpy.egl,
+ config.egl,
+ window.x11,
+ NULL);
+ #endif
+
+ if (window.egl == EGL_NO_SURFACE) {
+ abort();
+ }
+
+ return window;
+ }
+
+ static struct my_pixmap
+ get_pixmap(struct my_config config)
+ {
+ struct my_pixmap pixmap = {
+ .config = config,
+ };
+
+ pixmap.x11 = XCreatePixmap(config.dpy.x11,
+ DefaultRootWindow(config.dpy.x11),
+ 256, 256, // width, height
+ config.x11->depth);
+ if (!pixmap.x11) {
+ abort();
+ }
+
+ #ifdef USE_EGL_EXT_PLATFORM_X11
+ pixmap.egl = eglCreatePlatformPixmapSurfaceEXT(config.dpy.egl,
+ config.egl,
+ &pixmap.x11,
+ NULL);
+ #else
+ pixmap.egl = eglCreatePixmapSurface(config.dpy.egl,
+ config.egl,
+ pixmap.x11,
+ NULL);
+ #endif
+
+ if (pixmap.egl == EGL_NO_SURFACE) {
+ abort();
+ }
+
+ return pixmap;
+ }
+
+ int
+ main(void)
+ {
+ check_extensions();
+
+ struct my_display dpy = get_display();
+ struct my_config config = get_config(dpy);
+ struct my_window window = get_window(config);
+ struct my_pixmap pixmap = get_pixmap(config);
+
+ return 0;
+ }
+
+Revision History
+
+ Version 13, 2014-03-10 (Chad Versace)
+ - Update text to reflect resolution of issue #1. State that
+ <native_display> may be EGL_DEFAULT_DISPLAY.
+ - Explain in more detail how EGL connects to the default X11 display.
+ - Add and resolve issue #2.
+
+ Version 12, 2014-02-11 (Chad Versace)
+ - Fix 2nd argument to XCreatePixmap in example code.
+
+ Version 11, 2013-07-10 (Jon Leech)
+ - Fix enumerant values and assign extension number for publication
+ (Bug 10240).
+
+ Version 10, 2013-07-03 (Chad Versace)
+ - Add "Extension Type" section, required by EGL_EXT_client_extensions v9.
+
+ Version 9, 2013-06-11 (Chad Versace)
+ - Replace reference to version 5 of EGL_EXT_platform_base to version 7.
+ - Add James Jones as contributor.
+
+ Version 8, 2013-06-07 (Chad Versace)
+ - Assign enum values to new tokens.
+
+ Version 7, 2013-06-07 (Chad Versace)
+ - Explicitly require EGL_EXT_client_extensions in the Dependencies
+ section.
+
+ Version 6, 2013-06-07 (Chad Versace)
+ - Add attribute EGL_PLATFORM_X11_SCREEN_EXT.
+
+ Version 5, 2013-06-07 (Chad Versace)
+ - Rephrase against version 7 of EGL_EXT_platform_base.
+
+ Version 4, 2013-06-07 (Chad Versace)
+ - Fix compilation of example code.
+
+ Version 3, 2013-04-26 (Chad Versace)
+ - Add missing EXT suffix to new token.
+
+ Version 2, 2013-04-22 (Chad Versace)
+ - Discuss EGL_DEFAULT_DISPLAY.
+ - Fix minor typographical and grammatical errors.
+
+ Version 1, 2013.03.24 (Chad Versace)
+ - First draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_xcb.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_xcb.txt
new file mode 100644
index 0000000..1411db6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_platform_xcb.txt
@@ -0,0 +1,382 @@
+Name
+
+ EXT_platform_xcb
+
+Name Strings
+
+ EGL_EXT_platform_xcb
+
+Contributors
+
+ Yuxuan Shui <yshuiv7@gmail.com>
+
+Contacts
+
+ Yuxuan Shui <yshuiv7@gmail.com>
+
+Status
+
+ Complete
+
+Version
+
+ Version 1, 2020-08-28
+
+Number
+
+ EGL Extension #141
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Requires EGL_EXT_client_extensions to query its existence without
+ a display.
+
+ Requires EGL_EXT_platform_base.
+
+ This extension is written against the wording of version 9 of the
+ EGL_EXT_platform_base specification.
+
+Overview
+
+ This extension defines how to create EGL resources from native X11
+ resources using the functions defined by EGL_EXT_platform_base.
+
+ The native X11 resources required by this extension are xcb resources.
+ All X11 types discussed here are defined by the header `xcb.h`.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as the <platform> argument of eglGetPlatformDisplayEXT:
+
+ EGL_PLATFORM_XCB_EXT 0x31DC
+
+ Accepted as an attribute name in the <attrib_list> argument of
+ eglGetPlatformDisplayEXT:
+
+ EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE
+
+Additions to the EGL Specification
+
+ None.
+
+New Behavior
+
+ To determine if the EGL implementation supports this extension, clients
+ should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
+
+ This extension defines the same set of behaviors as EGL_EXT_platform_x11,
+ except Xlib types are replaced with xcb types.
+
+ To obtain an EGLDisplay backed by an X11 screen, call
+ eglGetPlatformDisplayEXT with <platform> set to EGL_PLATFORM_XCB_EXT. The
+ <native_display> parameter specifies the X11 display connection to use, and
+ must point to a valid xcb `xcb_connection_t` or be EGL_DEFAULT_DISPLAY. If
+ <native_display> is EGL_DEFAULT_DISPLAY, then EGL will create [1] a
+ connection to the default X11 display. The environment variable DISPLAY
+ determines the default X11 display, and, unless overridden by the
+ EGL_PLATFORM_XCB_SCREEN_EXT attribute, the default X11 screen - as
+ described in the documentation of `xcb_connect`. If the environment
+ variable DISPLAY is not present in this case, the result is undefined. The
+ value of attribute EGL_PLATFORM_XCB_SCREEN_EXT specifies the X11 screen to
+ use. If the attribute is omitted from <attrib_list>, and <native_display>
+ is not EGL_DEFAULT_DISPLAY, then screen 0 will be used. Otherwise, the
+ attribute's value must be a valid screen on the display connection. If the
+ attribute's value is not a valid screen, then an EGL_BAD_ATTRIBUTE error is
+ generated.
+
+ [fn1] The method by which EGL creates a connection to the default X11
+ display is an internal implementation detail. The implementation may use
+ xcb_connect, or any other method.
+
+ To obtain an on-screen rendering surface from an X11 Window, call
+ eglCreatePlatformWindowSurfaceEXT with a <dpy> that belongs to X11 and
+ a <native_window> that points to an xcb_window_t.
+
+ To obtain an offscreen rendering surface from an X11 Pixmap, call
+ eglCreatePlatformPixmapSurfaceEXT with a <dpy> that belongs to X11 and
+ a <native_pixmap> that points to an xcb_pixmap_t.
+
+Issues
+
+ 1. As xcb_connection_t doesn't carry a screen number, how should a screen be
+ selected in eglGetPlatformDisplayEXT()?
+
+ RESOLVED. The screen will be chosen with the following logic:
+
+ * If EGL_PLATFORM_XCB_SCREEN_EXT is specified, it will always take
+ precedence. Whether <native_display> is EGL_DEFAULT_DISPLAY or not.
+
+ * Otherwise, if <native_display> is not EGL_DEFAULT_DISPLAY, then
+ screen 0 will be used.
+
+ * Otherwise, which is to say <native_display> is EGL_DEFAULT_DISPLAY.
+ Then the DISPLAY environment variable will be used to determine the
+ screen number. If DISPLAY contains a screen number, that will be
+ used; if not, then 0 will be used.
+
+ * If the DISPLAY environment variable is not present when
+ <native_display> is EGL_DEFAULT_DISPLAY, the result will be undefined.
+
+Example Code
+
+ // This example program creates two EGL surfaces: one from an X11 Window
+ // and the other from an X11 Pixmap.
+ //
+ // Compile with `cc example.c -lxcb -lEGL`.
+
+ #include <stddef.h>
+ #include <stdlib.h>
+ #include <string.h>
+
+ #include <EGL/egl.h>
+ #include <EGL/eglext.h>
+ #include <xcb/xcb.h>
+
+ struct my_display {
+ xcb_connection_t *x11;
+ int screen;
+ int root_of_screen;
+ EGLDisplay egl;
+ };
+
+ struct my_config {
+ struct my_display dpy;
+ xcb_colormap_t colormap;
+ xcb_visualid_t visualid;
+ int depth;
+ EGLConfig egl;
+ };
+
+ struct my_window {
+ struct my_config config;
+ xcb_window_t x11;
+ EGLSurface egl;
+ };
+
+ struct my_pixmap {
+ struct my_config config;
+ xcb_pixmap_t x11;
+ EGLSurface egl;
+ };
+
+ static void check_extensions(void) {
+ const char *client_extensions =
+ eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
+
+ if (!client_extensions) {
+ // EGL_EXT_client_extensions is unsupported.
+ abort();
+ }
+ if (!strstr(client_extensions, "EGL_EXT_platform_xcb")) {
+ abort();
+ }
+ }
+
+ xcb_screen_t *get_screen(xcb_connection_t *c, int screen) {
+ xcb_screen_iterator_t iter;
+
+ iter = xcb_setup_roots_iterator(xcb_get_setup(c));
+ for (; iter.rem; --screen, xcb_screen_next(&iter))
+ if (screen == 0)
+ return iter.data;
+
+ return NULL;
+ }
+
+ int get_visual_depth(xcb_connection_t *c, xcb_visualid_t visual) {
+ const xcb_setup_t *setup = xcb_get_setup(c);
+ for (xcb_screen_iterator_t i = xcb_setup_roots_iterator(setup); i.rem;
+ xcb_screen_next(&i)) {
+ for (xcb_depth_iterator_t j =
+ xcb_screen_allowed_depths_iterator(i.data);
+ j.rem; xcb_depth_next(&j)) {
+ const int len = xcb_depth_visuals_length(j.data);
+ const xcb_visualtype_t *visuals = xcb_depth_visuals(j.data);
+ for (int k = 0; k < len; k++) {
+ if (visual == visuals[k].visual_id) {
+ return j.data->depth;
+ }
+ }
+ }
+ }
+ abort();
+ }
+
+ static struct my_display get_display(void) {
+ struct my_display dpy;
+
+ dpy.x11 = xcb_connect(NULL, &dpy.screen);
+ if (!dpy.x11) {
+ abort();
+ }
+
+ dpy.egl = eglGetPlatformDisplayEXT(EGL_PLATFORM_XCB_EXT, dpy.x11,
+ (const EGLint[]){
+ EGL_PLATFORM_XCB_SCREEN_EXT,
+ dpy.screen,
+ EGL_NONE,
+ });
+
+ if (dpy.egl == EGL_NO_DISPLAY) {
+ abort();
+ }
+
+ EGLint major, minor;
+ if (!eglInitialize(dpy.egl, &major, &minor)) {
+ abort();
+ }
+
+ xcb_screen_t *screen = get_screen(dpy.x11, dpy.screen);
+ dpy.root_of_screen = screen->root;
+
+ return dpy;
+ }
+
+ static struct my_config get_config(struct my_display dpy) {
+ struct my_config config = {
+ .dpy = dpy,
+ };
+
+ EGLint egl_config_attribs[] = {
+ EGL_BUFFER_SIZE,
+ 32,
+ EGL_RED_SIZE,
+ 8,
+ EGL_GREEN_SIZE,
+ 8,
+ EGL_BLUE_SIZE,
+ 8,
+ EGL_ALPHA_SIZE,
+ 8,
+
+ EGL_DEPTH_SIZE,
+ EGL_DONT_CARE,
+ EGL_STENCIL_SIZE,
+ EGL_DONT_CARE,
+
+ EGL_RENDERABLE_TYPE,
+ EGL_OPENGL_ES2_BIT,
+ EGL_SURFACE_TYPE,
+ EGL_WINDOW_BIT | EGL_PIXMAP_BIT,
+ EGL_NONE,
+ };
+
+ EGLint num_configs;
+ if (!eglChooseConfig(dpy.egl, egl_config_attribs, &config.egl, 1,
+ &num_configs)) {
+ abort();
+ }
+ if (num_configs == 0) {
+ abort();
+ }
+
+ if (!eglGetConfigAttrib(dpy.egl, config.egl, EGL_NATIVE_VISUAL_ID,
+ (EGLint *)&config.visualid)) {
+ abort();
+ }
+
+ config.colormap = xcb_generate_id(dpy.x11);
+ if (xcb_request_check(dpy.x11,
+ xcb_create_colormap_checked(
+ dpy.x11, XCB_COLORMAP_ALLOC_NONE, config.colormap,
+ dpy.root_of_screen, config.visualid))) {
+ abort();
+ }
+
+ config.depth = get_visual_depth(dpy.x11, config.visualid);
+
+ return config;
+ }
+
+ static struct my_window get_window(struct my_config config) {
+ xcb_generic_error_t *e;
+
+ struct my_window window = {
+ .config = config,
+ };
+
+ window.x11 = xcb_generate_id(config.dpy.x11);
+ e = xcb_request_check(
+ config.dpy.x11,
+ xcb_create_window_checked(config.dpy.x11, // connection
+ XCB_COPY_FROM_PARENT, // depth
+ window.x11, // window id
+ config.dpy.root_of_screen, // root
+ 0, 0, // x, y
+ 256, 256, // width, height
+ 0, // border_width
+ XCB_WINDOW_CLASS_INPUT_OUTPUT, // class
+ config.visualid, // visual
+ XCB_CW_COLORMAP, // mask
+ (const int[]){
+ config.colormap,
+ XCB_NONE,
+ }));
+ if (e) {
+ abort();
+ }
+
+ window.egl = eglCreatePlatformWindowSurfaceEXT(config.dpy.egl, config.egl,
+ &window.x11, NULL);
+
+ if (window.egl == EGL_NO_SURFACE) {
+ abort();
+ }
+
+ return window;
+ }
+
+ static struct my_pixmap get_pixmap(struct my_config config) {
+ struct my_pixmap pixmap = {
+ .config = config,
+ };
+
+ pixmap.x11 = xcb_generate_id(config.dpy.x11);
+ if (xcb_request_check(
+ config.dpy.x11,
+ xcb_create_pixmap(config.dpy.x11, config.depth, pixmap.x11,
+ config.dpy.root_of_screen, 256, 256))) {
+ abort();
+ }
+
+ pixmap.egl = eglCreatePlatformPixmapSurfaceEXT(config.dpy.egl, config.egl,
+ &pixmap.x11, NULL);
+
+ if (pixmap.egl == EGL_NO_SURFACE) {
+ abort();
+ }
+
+ return pixmap;
+ }
+
+ int main(void) {
+ check_extensions();
+
+ struct my_display dpy = get_display();
+ struct my_config config = get_config(dpy);
+ struct my_window window = get_window(config);
+ struct my_pixmap pixmap = get_pixmap(config);
+
+ return 0;
+ }
+
+Revision History
+
+ Version 2, 2020.10.13 (Yuxuan Shui)
+ - Some wording changes
+ - Address the question about screen selection
+
+ Version 1, 2020.08.28 (Yuxuan Shui)
+ - First draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_present_opaque.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_present_opaque.txt
new file mode 100644
index 0000000..de2f6d8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_present_opaque.txt
@@ -0,0 +1,118 @@
+Name
+
+ EXT_present_opaque
+
+Name Strings
+
+ EGL_EXT_present_opaque
+
+Contributors
+
+ Eric Engestrom
+
+Contacts
+
+ Eric Engestrom (eric 'at' engestrom.ch)
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Complete
+
+Version
+
+ #1, August 8, 2021
+
+Number
+
+ EGL Extension #146
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL 1.4 and EGL_KHR_image_base extension
+
+ This extension is written against the wording of the EGL 1.4
+ specification, and EGL_KHR_image_base version 6.
+
+Overview
+
+ This extension adds a new EGL surface attribute EGL_PRESENT_OPAQUE_EXT
+ to indicate that the surface should be presented as opaque,
+ disregarding any alpha channel if present.
+ If surface attribute EGL_PRESENT_OPAQUE_EXT is EGL_TRUE, then the
+ surface will be presented as opaque.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ New EGLSurface attribute name:
+
+ EGL_PRESENT_OPAQUE_EXT 0x31DF
+
+
+Additions to Chapter 3 of the EGL 1.4 Specification (Rendering Surfaces)
+
+ Change the second paragraph in section 3.5 on p. 28 (describing
+ eglCreateWindowSurface):
+
+ "Attributes that can be specified in attrib list include EGL_RENDER_BUFFER,
+ EGL_PRESENT_OPAQUE_EXT, EGL_VG_COLORSPACE, and EGL_VG_ALPHA_FORMAT."
+
+ Add the following paragraph in section 3.5 on p. 28 before
+ "EGL_VG_COLORSPACE specifies the color space used by OpenVG"
+ (describing eglCreateWindowSurface attrib_list):
+
+ "EGL_PRESENT_OPAQUE_EXT specifies the presentation opacity mode
+ of the window surface. If its value is EGL_TRUE, then the
+ surface's alpha channel (if any) will be ignored and considered
+ fully opaque. If its value is EGL_FALSE, then the compositor
+ doesn't change its behaviour, and considers the surface's alpha
+ channel the same way as if the extension wasn't implemented. The
+ default value of EGL_PRESENT_OPAQUE_EXT is EGL_FALSE."
+
+ Add to Table 3.5: Queryable surface attributes and types on p. 37
+
+ EGL_PRESENT_OPAQUE_EXT boolean Surface presentation opacity mode
+
+ Add following the second paragraph in section 3.6 on p. 39 (describing
+ eglQuerySurface):
+
+ "Querying EGL_PRESENT_OPAQUE_EXT returns the presentation
+ opacity mode of the surface. The presentation opacity mode of
+ window surfaces is specified in eglCreateWindowSurface. The
+ presentation opacity mode of pbuffer and pixmap surfaces is
+ always EGL_FALSE."
+
+ Add following after "which must be a valid native pixmap handle." in section 3.9.2 on
+ p. 53 (describing eglCopyBuffers):
+
+ "If attribute EGL_PRESENT_OPAQUE_EXT of surface has value of EGL_TRUE, then
+ an EGL_BAD_ACCESS error is returned."
+
+Issues
+
+ None
+
+Revision History
+
+ Version 2, 2021-08-17 (Eric Engestrom)
+ - Re-worded the compositor's behaviour for EGL_FALSE.
+ - Marked extension as Complete.
+
+ Version 1, 2021-08-08 (Eric Engestrom)
+ - Initial draft
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_protected_content.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_protected_content.txt
new file mode 100644
index 0000000..2421161
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_protected_content.txt
@@ -0,0 +1,329 @@
+Name
+
+ EXT_protected_content
+
+Name Strings
+
+ EGL_EXT_protected_content
+
+Contributors
+
+ Ramesh Viswanathan
+ Brian Ellis
+ Colin Sharp
+ Rajeev Kulkarni
+ Mohan Maiya
+ Maurice Ribble
+ Craig Donner
+ Jan-Harald Fredriksen
+ Daniel Koch
+ Michael Golds
+ Ray Smith
+
+Contacts
+
+ Maurice Ribble (mribble 'at' qti.qualcomm.com)
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Complete.
+
+Version
+
+ Version 13, December 6, 2021
+
+Number
+
+ EGL Extension #97
+
+Dependencies
+
+ Requires EGL 1.4.
+
+ Interactions with EGL_KHR_image_base extension.
+
+ This extension is written against the wording of the EGL 1.4.
+ Specification (12/04/2013)
+
+ This extension has interactions with EGL_EXT_protected_surface if that
+ extension is supported. The interactions are described in the main text.
+
+Overview
+
+ This extension introduces the concept of protected contexts and protected
+ resources, specifically surfaces and EGLImages. Applications can choose at
+ creation time whether a context, surface or EGLImage is protected or not.
+
+ A protected context is required to allow the GPU to operate on protected
+ resources, including protected surfaces and protected EGLImages.
+
+ An explanation of undefined behavior in this extension: Several places
+ in this extension mention undefined behavior can result, which can
+ include program termination. The reason for this is because one way
+ to handle protected content is by using a protected virtual to physical
+ memory translation layer. With this sort of solution a system may generate
+ read or write faults when a non-protected source tries to access a protected
+ buffer. Depending on the system these faults might be ignored or they might
+ cause process termination. This undefined behavior should not include
+ actually allowing a transfer of data from a protected surface to a
+ non-protected surface.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as an attribute name in the <attrib_list> parameter of
+ eglCreateContext, eglCreateWindowSurface, and eglCreateImageKHR;
+ and as an parameter of eglQuerySurface and eglQueryContext:
+
+ EGL_PROTECTED_CONTENT_EXT 0x32C0
+
+
+Add a new section 2.7 entitled "Protected Content" at the end of Chapter 2 (EGL
+Operation)
+
+ "The attribute EGL_PROTECTED_CONTENT_EXT can be applied to EGL contexts,
+ EGL surfaces and EGLImages. If the attribute EGL_PROTECTED_CONTENT_EXT
+ is set to EGL_TRUE by the application, then the newly created EGL object
+ is said to be protected. A protected context is required to allow the
+ GPU to operate on protected resources, including protected surfaces and
+ protected EGLImages.
+
+ GPU operations are grouped into pipeline stages. Pipeline stages can be
+ defined to be protected or not protected. Each stage defines
+ restrictions on whether it can read or write protected and unprotected
+ resources, as follows:
+
+ When a GPU stage is protected, it:
+ - Can read from protected resources
+ - Can read from unprotected resources
+ - Can write to protected resources
+ - Can NOT write to unprotected resources
+
+ When a GPU stage is not protected, it:
+ - Can NOT read from protected resources
+ - Can read from unprotected resources
+ - Can NOT write to protected resources
+ - Can write to unprotected resources
+
+ Any accesses not following these restrictions will result in undefined
+ behavior.
+
+ This extension does not specify which pipeline stages of a protected
+ context are protected or not. This is left to a client API extension to
+ define. All stages in a regular (not protected) context are not
+ protected. However, if EGL_EXT_protected_surface is also supported, a
+ regular (not protected) context will execute stages where one or more
+ protected resources is accessed as if it were a protected context.
+
+ Note that the protection state of a stage may be left implementation
+ defined by a client API extension. This means that no guarantees can be
+ made about whether the stage will be protected or not protected.
+ Practically this means that the permitted operations for such a stage
+ are the intersection of the allowed operations for protected and not
+ protected stages, i.e it:
+
+ - Can NOT read from protected resources
+ - Can read from unprotected resources
+ - Can NOT write to protected resources
+ - Can NOT write to unprotected resources
+
+ Since this is not a very useful set of operations refer to the client API
+ extension to see what operations are actually allowed.
+
+ This extension does not guarantee the implementation abides by a
+ system's digital rights management requirements. It must be verified
+ beyond the existence of this extension that the implementation of this
+ extension is trustworthy according to the requirements of a content
+ protection system."
+
+Additions to Chapter 3 of the EGL 1.4 Specification (Rendering Contexts)
+
+ Change the fifth paragraph in section 3.7.1 Creating Rendering Contexts:
+
+ "attrib list specifies a list of attributes for the context. The
+ list has the same structure as described for eglChooseConfig.
+ Attributes that can be specified in attrib list include
+ EGL_CONTEXT_CLIENT_VERSION and EGL_PROTECTED_CONTENT_EXT. The
+ EGL_CONTEXT_CLIENT_VERSION attribute may only be specified when
+ creating a OpenGL ES context (e.g. when the current rendering API is
+ EGL_OPENGL_ES_API)."
+
+ Add the following paragraph in section 3.7.1 on p. 44 before "attrib list
+ may be NULL or empty (first attribute is EGL_NONE), in which case
+ attributes assume their default values as described below."
+
+ "EGL_PROTECTED_CONTENT_EXT specifies the protected state of the new
+ context. If its value is EGL_TRUE, then the context is said to be
+ protected. If its value is EGL_FALSE, then the context is not
+ protected. See section 2.7 (Protected Content) for more information
+ about protected contexts.
+
+ The default value of EGL_PROTECTED_CONTENT_EXT is EGL_FALSE."
+
+ Add the following paragraph in section 3.7.4 Context Queries. Add after
+ the last paragraph after eglQueryContext queries.
+
+ "Querying EGL_PROTECTED_CONTENT_EXT returns the current value"
+
+Additions to Chapter 3 of the EGL 1.4 Specification (Rendering Surfaces)
+
+ Change the second paragraph in section 3.5 on p. 28 (describing
+ eglCreateWindowSurface):
+
+ "Attributes that can be specified in attrib list include
+ EGL_RENDER_BUFFER, EGL_PROTECTED_CONTENT_EXT, EGL_VG_COLORSPACE, and
+ EGL_VG_ALPHA_FORMAT."
+
+ Add the following paragraph in section 3.5 on p. 28 before
+ "EGL_VG_COLORSPACE specifies the color space used by OpenVG" (describing
+ eglCreateWindowSurface(attrib_list):
+
+ "EGL_PROTECTED_CONTENT_EXT specifies the protected state of the
+ window surface. If its value is EGL_TRUE, then the surface content
+ is said to be protected. If its value is EGL_FALSE, then the surface
+ content is not protected. See section 2.7 (Protected Content) for
+ more information about protected and non-protected surfaces.
+
+ Client APIs will not allow contents of protected surfaces to be
+ accessed by non-protected contexts in the system (including
+ non-secure software running on the CPU). Such operations will result
+ in undefined behavior.
+
+ Calling eglSwapBuffers on such a protected surface will succeed, but
+ the contents may or may not be posted successfully depending on
+ whether those parts of the pipeline are capable of handling
+ protected content. Any disallowed operation will fail and result in
+ undefined behavior.
+
+ The default value of EGL_PROTECTED_CONTENT_EXT is EGL_FALSE."
+
+ Add the following paragraph in section 3.5.6 Surface Attributes. Add after
+ the last paragraph after eglQuerySurface attribute queries.
+
+ "Querying EGL_PROTECTED_CONTENT_EXT returns the current value"
+
+Additions to EGL_KHR_image_base extension specification
+
+ Add to section 2.5.1 Table bbb:
+ +-----------------------------+-------------------------+---------------+
+ | Attribute | Description | Default Value |
+ +-----------------------------+-------------------------+---------------+
+ | EGL_NONE | Marks the end of the | N/A |
+ | | attribute-value list | |
+ | EGL_IMAGE_PRESERVED_KHR | Whether to preserve | EGL_FALSE |
+ | | pixel data | |
+ | EGL_PROTECTED_CONTENT_EXT | Content protection | EGL_FALSE |
+ | | state | |
+ +-----------------------------+-------------------------+---------------+
+ Table bbb. Legal attributes for eglCreateImageKHR <attrib_list>
+ parameter
+
+ Add the following paragraph to section 2.5.1 before "Errors" (describing
+ eglCreateImageKHR):
+
+ "If the value of attribute EGL_PROTECTED_CONTENT_EXT is EGL_TRUE
+ and the EGLImage sources can be guaranteed to be protected, then the
+ EGLImage is said to be protected. See section 2.7 (Protected Content)
+ for more information about protected resources including EGLImages.
+
+ If the value of attribute EGL_PROTECTED_CONTENT_EXT is EGL_FALSE then:
+
+ - If EGLImage sources are not protected, the EGLImage is said to be
+ not protected. See section 2.7 (Protected Content) for more
+ information about non-protected resources including EGLImages.
+ - If EGLImage sources are protected then the EGLImage content will
+ be inaccessible to any client context irrespective of whether the
+ context is protected or not. Trying to access such an EGLImage's
+ content will result in undefined behavior."
+
+ Add the following to the Errors list in section 2.5.1
+
+ "If the value specified in <attrib_list> for EGL_PROTECTED_CONTENT_EXT
+ is EGL_TRUE, and EGL and its client is unable to make guarantees
+ regarding the protected state of the EGLImage source, the error
+ EGL_BAD_ACCESS is generated."
+
+Issues
+ 1) Can a protected context be shared with a non-protected context?
+
+ RESOLVED - Yes. The rule that protected surfaces can only be used by
+ protected contexts still applies. An example use case is where
+ someone wants to render to unprotected textures within an unprotected
+ context and then share it with a protected context to be used as a texture.
+
+ 2) Should all surfaces within a protected context be protected by default?
+
+ RESOLVED - No, several implementations have limited amounts of protected
+ memory, so the API will require opting into protected memory.
+
+ 3) Can these protected surfaces be used by stages other than fragment
+ shader stage?
+
+ RESOLVED - Some hardware can't handle this so this behavior is undefined
+ unless there is explicit working in some new spec saying the behavior is
+ defined. This is put as an issue because this is an EGL extension and
+ should not be controlling OpenGL functionality.
+
+ 4) Why is EGL_PROTECTED_CONTENT_EXT flag needed for EGLImages?
+
+ RESOLVED - A few reasons for having an explicit flag instead
+ of inferring the protected status from EGLImage sources -
+
+ 1) There are multiple EGL image extensions (EGL QCOM image, EGL
+ android image and so on) that accept buffers from external modules
+ instead of client resources or allow internally allocated memory.
+ For these use cases a protected attribute is useful, so we want to
+ keep this flag.
+ 2) An implementation might have a few non-standard setup steps that
+ need to be completed before a protected EGL image can be accessed.
+ This attribute along with a corresponding protected buffer will act
+ as a signal for the graphics driver to initiate/complete any such
+ steps.
+ 3) An application creating an image from an external resource may not
+ be aware of the fact that the resource is protected or may be unable
+ to access its content. The successful mapping of and access to a
+ protected buffer through an EGLImage will be predicated on the
+ buffer being protected, having a protected context and the intent of
+ the application to access that buffer by passing in EGL_TRUE for the
+ attribute EGL_PROTECTED_CONTENT_EXT.
+
+
+Revision History
+
+ Rev. Date Author Changes
+ ---- -------- -------- ----------------------------------------------
+ 1 09/24/14 Ramesh Initial draft.
+ 2 11/20/14 Rajeev Second draft.
+ 3 03/07/16 mribble Make EXT and clean up for release.
+ 4 03/10/16 mribble Cleanup.
+ 5 03/18/16 mribble Fix issues brought up by Khronos group.
+ 6 03/24/16 mribble Resolved some small issues found by Jan-Harald.
+ 7 03/25/16 mribble Fix createContext wording.
+ 8 03/30/16 mribble Added issue 5.
+ 9 04/05/16 mribble Added issue 6 and better defined eglImage case.
+ 10 04/08/16 rsmith - Added general section on protected content.
+ Protected context, surface and image creation now
+ refer to the general protected content principles.
+ - Added explicit definition of which stages are
+ protected, including allowing for the protected
+ state of a stage to be undefined.
+ - Formalised interactions with
+ EGL_EXT_protected_surface.
+ - Removed references to the GPU protected mode,
+ including issue 3.
+ 11 04/10/16 mribble Merge and cleanup.
+ 12 04/14/16 Jon Leech Cleanup formatting, reflow paragraphs and
+ quote additions consistently. Assign extension
+ number.
+ 13 12/06/21 Jeff Vigil Add queries for protected content attribute.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_protected_surface.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_protected_surface.txt
new file mode 100644
index 0000000..ec3665a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_protected_surface.txt
@@ -0,0 +1,230 @@
+Name
+
+ EXT_protected_surface
+
+Name Strings
+
+ EGL_EXT_protected_surface
+
+Contributors
+
+ Frido Garritsen, Vivante
+ Yanjun Zhang, Vivante
+ Pontus Lidman, Marvell
+ Jesse Hall, Google
+
+Contacts
+
+ Frido Garritsen (frido 'at' vivantecorp.com)
+ Yanjun Zhang (yzhang 'at' vivantecorp.com)
+
+Notice
+
+ Copyright 2013 Vivante Corporation
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Draft
+
+Version
+
+ #7, January 20, 2014
+
+Number
+
+ EGL Extension #67
+
+Dependencies
+
+ Requires EGL 1.4 and EGL_KHR_image_base extension
+
+ This extension is written against the wording of the EGL 1.4
+ Specification (12/04/2013), and EGL_KHR_image_base spec. version 6.
+
+Overview
+
+ This extension adds a new EGL surface attribute EGL_PROTECTED_CONTENT_EXT
+ to indicate if the content in the surface buffer is protected or not.
+ If surface attribute EGL_PROTECTED_CONTENT_EXT is EGL_TRUE, then the
+ surface content is only accessible to secure accesses. Any attempt to access
+ the buffer content non-securely will fail and result in undefined behavior
+ up to and including program termination. Also, any copy operations from the
+ protected surface to any non-protected surface by GPU are considered illegal.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ New EGLSurface attribute name:
+
+ EGL_PROTECTED_CONTENT_EXT 0x32C0
+
+
+Additions to Chapter 3 of the EGL 1.4 Specification (Rendering Surfaces)
+
+ Change the second paragraph in section 3.5 on p. 28 (describing eglCreateWindowSurface):
+
+ "Attributes that can be specified in attrib list include EGL_RENDER_BUFFER,
+ EGL_PROTECTED_CONTENT_EXT, EGL_VG_COLORSPACE, and EGL_VG_ALPHA_FORMAT."
+
+ Add the following paragraph in section 3.5 on p. 28 before "EGL_VG_COLORSPACE
+ specifies the color space used by OpenVG" (describing eglCreateWindowSurface
+ attrib_list):
+
+ "EGL_PROTECTED_CONTENT_EXT specifies the protection state of the window
+ surface. If its value is EGL_TRUE, then the surface content resides in a
+ secure memory region. Secure surfaces may be written to by client APIs
+ using any combination of protected and non-protected input data. EGL and
+ client APIs will not allow contents of protected surfaces to be accessed
+ by non-secure devices in the system (including non-secure software
+ running on the CPU). They will also not allow the contents to be copied
+ to non-protected surfaces. Copies within a protected surface, or from one
+ protected surface to another, are allowed. eglSwapBuffers is allowed for
+ protected surfaces if and only if the window system is able to maintain
+ the security of the buffer contents. Any disallowed operation will
+ fail and result in undefined behavior, up to and including program
+ termination. If EGL_PROTECTED_CONTENT_EXT is EGL_FALSE, then the surface
+ content can be accessed by secure or non-secure devices and can be copied
+ to any other surfaces. The definition of secure and non-secure access is
+ up to the implementation and is out of scope of this specification. The
+ default value of EGL_PROTECTED_CONTENT_EXT is EGL_FALSE."
+
+ Change the second paragraph in section 3.5 on p. 30 (describing
+ eglCreatePbufferSurface):
+
+ "Attributes that can be specified in attrib list include EGL_WIDTH,
+ EGL_HEIGHT, EGL_LARGEST_PBUFFER, EGL_TEXTURE_FORMAT, EGL_TEXTURE_TARGET,
+ EGL_MIPMAP_TEXTURE, EGL_PROTECTED_CONTENT_EXT, EGL_VG_COLORSPACE, and
+ EGL_VG_ALPHA_FORMAT."
+
+ Add following the second paragraph in section 3.5 on p. 31 (describing
+ eglCreatePbufferSurface attrib_list):
+
+ "EGL_PROTECTED_CONTENT_EXT specifies the protection state of the pbuffer
+ surface. If its value is EGL_TRUE, then the surface content resides in a
+ secure memory region. Secure surfaces may be written to by client APIs
+ using any combination of protected and non-protected input data. EGL and
+ client APIs will not allow contents of protected surfaces to be accessed
+ by non-secure devices in the system (including non-secure software
+ running on the CPU). They will also not allow the contents to be copied
+ to non-protected surfaces. Copies within a protected surface, or from one
+ protected surface to another, are allowed. Any disallowed operation will
+ fail and result in undefined behavior, up to and including program
+ termination. If EGL_PROTECTED_CONTENT_EXT is EGL_FALSE, then the surface
+ content can be accessed by secure or non-secure devices and can be copied
+ to any other surfaces. The definition of secure and non-secure access is
+ up to the implementation and is out of scope of this specification. The
+ default value of EGL_PROTECTED_CONTENT_EXT is EGL_FALSE."
+
+ Add to Table 3.5: Queryable surface attributes and types on p. 37
+
+ EGL_PROTECTED_CONTENT_EXT boolean Content protection state
+
+ Add following the second paragraph in section 3.6 on p. 39 (describing
+ eglQuerySurface):
+
+ "Querying EGL_PROTECTED_CONTENT_EXT returns the content protection state of
+ the surface. The protection state of window and pbuffer surfaces is specified
+ in eglCreateWindowSurface and eglCreatePbufferSurface. The protection state of
+ pixmap and client buffer (pbuffer) surfaces is always EGL_FALSE."
+
+ Add following after "if either draw or read are bound to contexts in another thread,
+ an EGL_BAD_ACCESS error is generated." in section 3.7.3 p46 (describing eglMakeCurrent
+ errors):
+
+ "If EGL_PROTECTED_CONTENT_EXT attributes of read is EGL_TRUE and
+ EGL_PROTECTED_CONTENT_EXT attributes of draw is EGL_FALSE, an
+ EGL_BAD_ACCESS error is generated."
+
+ Add following after "which must be a valid native pixmap handle." in section 3.9.2 on
+ p. 53 (describing eglCopyBuffers):
+
+ "If attribute EGL_PROTECTED_CONTENT_EXT of surface has value of EGL_TRUE, then
+ an EGL_BAD_ACCESS error is returned."
+
+
+Additions to EGL_KHR_image_base extension specification
+
+ Add to section 2.5.1 Table bbb:
+
+ +-----------------------------+-------------------------+---------------+
+ | Attribute | Description | Default Value |
+ +-----------------------------+-------------------------+---------------+
+ | EGL_NONE | Marks the end of the | N/A |
+ | | attribute-value list | |
+ | EGL_IMAGE_PRESERVED_KHR | Whether to preserve | EGL_FALSE |
+ | | pixel data | |
+ | EGL_PROTECTED_CONTENT_EXT | Content protection | EGL_FALSE |
+ | | state | |
+ +-----------------------------+-------------------------+---------------+
+ Table bbb. Legal attributes for eglCreateImageKHR <attrib_list> parameter
+
+ Add the following paragraph to section 2.5.1 before "Errors" (describing
+ eglCreateImageKHR):
+
+ "If the value of attribute EGL_PROTECTED_CONTENT_EXT is EGL_TRUE, then
+ image content is only accessible by secure devices in the system. A
+ complete definition of secure device is implementation-specific, but at
+ minimum a secure device must not expose the contents of a protected image
+ to non-secure devices or allow contents to be copied to non-protected
+ regions of memory. If an EGL client API cannot make such guarantees,
+ attempts to create an EGLImage sibling within that client API will fail
+ with an API-specific error.
+
+ If the value of attribute EGL_PROTECTED_CONTENT_EXT is EGL_FALSE, then the
+ surface content can be accessed by secure or non-secure devices and can be
+ copied to any other surfaces."
+
+Issues
+
+ 1. Should the spec define the behavior of secure and non-secure access?
+
+ PROPOSED: No. Different CPU and GPU architectures have different secure access
+ implementations. The behavior of secure access violation is also different. Some
+ architectures will take a CPU exeception. On other architectures, reads will get
+ zeroes and writes will have no effect. This includes DMA transactions. So it is
+ better to leave the defination of illegal operation behavior out of this
+ specification.
+
+ 2. Should the spec enumerate the legal and illegal operations in client APIs
+ such as OpenGL ES?
+
+ PROPOSED: No. Enumerating these is possible, but is likely to get out of date
+ as new extensions and client API versions are introduced. Better to state the
+ principles that determine whether an operation is legal or illegal. If a version
+ of this extension is promoted to KHR or core status, enumerating the legal
+ operations because there will be a greater expectation that future extensions
+ will consider interactions. For OpenGL ES 3.0, a non-normative list of examples
+ would be:
+ * glReadPixels is illegal when the READ framebuffer is protected,
+ * glCopyTexImage2D is illegal when the READ framebuffer is protected,
+ * glCopyTexSubImage2D is illegal when the READ framebuffer is protected, unless
+ the target texture is a protected pbuffer,
+ * glBlitFramebuffer is illegal if the READ framebuffer is protected and the
+ DRAW framebuffer is not protected.
+
+Revision History
+
+ Rev. Date Author Changes
+ ---- -------- -------- -------------------------------------------------
+ 7 01/20/14 Jesse Reword PROTECTED_CONTENT descriptions to be more specific
+ about legality of client API operations. Add issue #2.
+ 6 01/14/14 Yanjun Change the extension from vendor specific to EXT. Add
+ EGL_BAD_ACCESS error to eglMakeCurrent, eglCopyBuffers.
+ 5 01/13/14 Jesse Define illegal operation behavior more broadly.
+ 4 01/10/14 Pontus Update description of illegal operation behavior in
+ terms of secure memory region and secure access.
+ 3 01/03/14 Yanjun Define the GPU and CPU behavior for illegal operations.
+ 2 12/13/13 Yanjun Prohibit GPU illegal copy from the protected surface to
+ non-protected surface.
+ 1 12/11/13 Yanjun Initial draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_stream_consumer_egloutput.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_stream_consumer_egloutput.txt
new file mode 100644
index 0000000..61f3b0e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_stream_consumer_egloutput.txt
@@ -0,0 +1,248 @@
+Name
+
+ EXT_stream_consumer_egloutput
+
+Name Strings
+
+ EGL_EXT_stream_consumer_egloutput
+
+Contributors
+
+ Daniel Kartch
+ James Jones
+ Christopher James Halse Rogers
+
+Contacts
+
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 7 - December 28th, 2015
+
+Number
+
+ EGL Extension #81
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL_KHR_stream.
+ Requires EGL_EXT_output_base.
+
+Overview
+
+ Increasingly, EGL and its client APIs are being used in place of
+ "native" rendering APIs to implement the basic graphics
+ functionality of native windowing systems. This creates demand
+ for a method to initialize EGL displays and surfaces directly on
+ top of native GPU or device objects rather than native window
+ system objects. The mechanics of enumerating the underlying
+ native devices and constructing EGL displays and surfaces from
+ them have been solved in various platform and implementation-
+ specific ways. The EGL device family of extensions offers a
+ standardized framework for bootstrapping EGL without the use of
+ any underlying "native" APIs or functionality.
+
+ This extension describes how to bind EGLOutputLayerEXTs as stream
+ consumers to send rendering directly to a display device without an
+ intervening window system.
+
+New Types
+
+ None
+
+New Functions
+
+ EGLBoolean eglStreamConsumerOutputEXT(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLOutputLayerEXT layer);
+
+New Tokens
+
+ None
+
+Replace section "3.10.2.1 No way to connect consumer to EGLStream" in
+the EGL_KHR_stream extension with:
+
+ 3.10.2.1 EGLOutputLayerEXT consumer
+
+ Call
+
+ EGLBoolean eglStreamConsumerOutputEXT(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLOutputLayerEXT layer);
+
+ to connect <output> as the consumer of <stream>.
+
+ On failure EGL_FALSE is returned and an error is generated.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid,
+ initialized EGLDisplay.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStreamKHR created for <dpy>.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is not in state
+ EGL_STREAM_STATE_CREATED_KHR.
+
+ - EGL_BAD_OUTPUT_LAYER_EXT is generated if <layer> is not a
+ valid EGLOutputLayerEXT created for <dpy>.
+
+ On success, <layer> is bound to <stream>, <stream> is placed in the
+ EGL_STREAM_STATE_CONNECTING_KHR state, and EGL_TRUE is returned.
+ Initially, no changes occur to the image displayed on <layer>. When
+ the <stream> enters state EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR,
+ <layer> will begin displaying frames, without further action
+ required on the application's part, as they become available, taking
+ into account any timestamps, swap intervals, or other limitations
+ imposed by the stream or producer attributes.
+
+ Modifying the output layer's display mode is outside the scope of
+ EGL. If the producer does not automatically adjust it's dimensions
+ to match the consumer, then the caller is responsible for ensuring
+ that the producer's frame size and the display mode are compatible
+ before the first frame is placed in the stream. If these are not
+ compatible, the behavior is implementation dependent, but may not
+ hang or terminate. Among other possible behaviors, the
+ implementation may scale or letterbox the frames, post a blank image
+ to the display, or discard the frames without posting.
+
+ Many display mode setting APIs have a mechanism that restricts
+ which of their clients can modify output attributes. Since
+ EGLOutput stream consumers will need to modify output attributes,
+ they require access to a display mode setting API handle with the
+ appropriate capabilities. If the application fails to provide
+ access to such permissions or privileged native objects when creating
+ the EGLDisplay associated with an output stream consumer and EGL is
+ not able to acquire them, the behavior of the stream consumer will be
+ undefined. Similarly, if the application or operating system revokes
+ the output modification permissions provided to the EGLDisplay, or
+ revokes permissions from the privileged native objects provided to
+ the EGLDisplay, future behavior of the stream consumer is undefined.
+
+ If <layer> is rebound to a different stream by a subsequent call
+ to eglStreamConumerOutputEXT, then <stream> will be placed into the
+ EGL_STREAM_STATE_DISCONNECTED_KHR state.
+
+Issues
+
+ 1. What happens to the display if the stream is destroyed while
+ still connected?
+
+ RESOLVED: The EGLOutputLayer will maintain a reference to the
+ last frame consumed from the stream until a new frame is
+ received (through connection of a new stream or some interface
+ defined by another extension) or until the EGLOutputLayer is
+ destroyed. Until one of these occurs, the output will ensure
+ that memory containing the frame remains valid, but will do no
+ further reprogramming of the display layer state. In the event
+ the EGLOutputLayer is destroyed, the reference to the frame is
+ released, and random/invalid images may subsequently be
+ displayed if the application does not take separate action to
+ reprogram or disable the display. This behavior should
+ probably be defined in the EGL_EXT_output_base extension and
+ be shared regardless of the means by which the displayed image
+ was posted.
+
+ 2. What happens to the stream if the display output is flipped to a
+ different image by a mechanism outside EGL?
+
+ RESOLVED: Using native display APIs to directly change the
+ visible framebuffer while an EGLStream is bound to an
+ EGLOutputLayer has undefined results which depend on the
+ implementation, the display capabilities, and the
+ compatibility of the competing framebuffer sizes and formats.
+ A partial list of possible outcomes includes one interface
+ overriding the other, the visible image alternating between
+ the two frames, or the visible image becoming corrupted or
+ displaying random memory.
+
+ 3. What happens if the display mode settings are not compatible
+ with the size and/or format of the incoming frames?
+
+ RESOLVED: The behavior is implementation and device dependent.
+ The display may not terminate or hang, but otherwise may modify
+ or ignore the incoming frames. Additional extensions can be
+ defined if greater control of this behavior is desired.
+
+ 4. How can changes to the display mode settings be synchronized
+ with changes in the size/format of frames generated by the
+ producer?
+
+ RESOLVED: The base specification will assume that the
+ producer's frame size and the output layer's display mode are
+ established at initialization time and do not change for the
+ life of the stream. The ability to modify these states and
+ synchronize such modifications must be provided by additional
+ extensions.
+
+ 5. The EGL_KHR_stream_producer_eglsurface extension, which is
+ likely to be used as a producer for streams directed to outputs,
+ explicitly ignores eglSwapInterval. But a swap interval is
+ desirable when directing output to a display screen. How can
+ this functionality be provided?
+
+ RESOLVED: EGL_SWAP_INTERVAL_EXT added as an attribute to output
+ layers in the EGL_EXT_output_base specification.
+
+ 6. How does EGL acquire the necessary capabilities to modify
+ display attributes from the application?
+
+ RESOLVED: The application provides EGL with the necessary
+ permissions or native object handles when creating its EGLDisplay.
+
+ 7. What is the behavior of EGLOutput stream consumers when EGL does
+ not have the necessary permissions to modify output attributes?
+
+ RESOLVED: The behavior is undefined. Other options would be to
+ block consumption of frames indefinitely until permissions are
+ acquired via unspecified or native mechanisms, or to return
+ frames to the producer immediately when consumption fails due to
+ lack of permissions. However, both of these options may rely on
+ assumptions about the behavior of the underlying mode setting
+ APIs. Future extensions may refined the behavior of streams in
+ this case.
+
+Revision History:
+
+ #7 (December 28th, 2015) James Jones
+ - Added issues 6 and 7.
+ - Added language to document the resolution of issues 6 and 7.
+
+ #6 (August 22nd, 2014) James Jones
+ - Marked complete.
+ - Marked remaining unresolved issues resolved.
+ - Added an "Extension Type" section.
+ - Listed Daniel as the contact.
+
+ #5 (June 5th, 2014) Daniel Kartch
+ - Added resolution for issues 3 and 4 and updated description
+ accordingly.
+
+ #4 (May 28th, 2014) Daniel Kartch
+ - Added Issue 5 and its resolution.
+
+ #3 (January 17th, 2014) Daniel Kartch
+ - Updated issues section with some proposed solutions and new
+ issues.
+
+ #2 (November 13th, 2013) Daniel Kartch
+ - Replaced EGLOutputEXT with EGLOutputLayerEXT, as per changes
+ to EXT_output_base.
+ - Updated possible error states to reflect requirement that
+ output handles are now associated with a particular
+ EGLDisplay.
+
+ #1 (October 28th, 2013) Daniel Kartch
+ - Initial draft
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt
new file mode 100644
index 0000000..50764b5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt
@@ -0,0 +1,136 @@
+Name
+
+ EXT_surface_CTA861_3_metadata
+
+Name Strings
+
+ EGL_EXT_surface_CTA861_3_metadata
+
+Contact
+
+ Courtney Goeltzenleuchter (courtneygo 'at' google.com)
+
+Contributors
+
+ James Jones
+ Weiwan Liu
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Complete
+
+Version
+
+ Version 5 - Nov 29, 2016
+
+Number
+
+ EGL Extension #117
+
+Dependencies
+
+ This extension requires EGL 1.5 and EGL_EXT_surface_SMPTE2086_metadata.
+
+ This extension is written against the wording of the EGL 1.5 specification
+ (August 27, 2014).
+
+Overview
+
+ This extension adds additional EGL surface attributes for the metadata
+ defined by the CTA (Consumer Technology Association) 861.3 standard.
+ This metadata, in addition to the SMPTE 2086 metadata, is used to define the
+ color volume of the mastering display as well as the content (CTA-861.3),
+ The mastering display is the display where creative work is done and creative
+ intent is established. To preserve such creative intent as much as possible
+ and achieve consistent color reproduction on different viewing displays,
+ it is useful for the display pipeline to know the color volume of the
+ original mastering display where content is created or tuned. This avoids
+ performing unnecessary mapping of colors that are not displayable on the
+ original mastering display.
+
+ This extension adds the ability to pass the CTA-861.3 metadata via EGL,
+ from which the color volume can be derived. While the general purpose of the
+ metadata is to assist in the transformation between different color volumes
+ of different displays and help achieve better color reproduction, it is not
+ in the scope of this extension to define how exactly the metadata should be
+ used in such a process. It is up to the implementation to determine how to
+ make use of the metadata.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as attribute by eglSurfaceAttrib and eglQuerySurface:
+
+ EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360
+ EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361
+
+Additions to Chapter "3.5.6 Surface Attributes" of the EGL 1.5 Specification
+
+ Add the following paragraph before the "Errors" section on page 43,
+
+ If attribute is EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT or EGL_CTA861_3_-
+ MAX_FRAME_AVERAGE_LEVEL_EXT, then value indicates the corresponding
+ maximum content light level and maximum frame average level.
+ The unit of value is 1 nit (candela per square meter). The
+ floating-point luminance values should be multiplied by
+ EGL_METADATA_SCALING, a constant scaling factor of 50000, before being
+ passed into eglSurfaceAttrib as integers.
+
+ Exactly how the color volume information is used to assist the color
+ reproduction process is implementation dependant.
+
+ The initial values of EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT and
+ EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT are EGL_DONT_CARE, which causes the
+ hints to be ignored. If value is not in the implementation's supported
+ range for attribute, a EGL_INVALID_VALUE error is generated, and some or
+ all of the metadata fields are ignored.
+
+ Change the original footnote 12 at the end of section "3.5.6 Surface
+ Attributes" on page 45 to,
+
+ [13] EGL_DISPLAY_SCALING (10000) and EGL_METADATA_SCALING_EXT (50000)
+ are used where EGL needs to take or return floating-point attribute
+ values, which would normally be smaller than 1, as integers while still
+ retaining sufficient precision to be meaningful.
+
+ Addition to Table 3.5 "Queryable surface attributes and types",
+
+ Attribute Type
+ ------------------------------------------------
+ EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT integer
+ EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT integer
+
+ Description
+ --------------------------------------------------------------------------------------
+ Maximum content light level in nit multiplied by EGL_METADATA_SCALING_EXT
+ Maximum frame average light level in nit multiplied by EGL_METADATA_SCALING_EXT
+
+ Add the following paragraph at the end of section "3.5.6 Surface Attributes"
+ on page 45,
+
+ Querying EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT EGL_CTA861_3_MAX_-
+ FRAME_AVERAGE_LEVEL_EXT returns respectively the maximum content light level
+ and maximum frame average level respectively. The values returned are
+ in units of 1 nit (candela per square meter), multiplied by the constant
+ value EGL_METADATA_SCALING_EXT (50000). The value of EGL_CTA861_3_MAX_-
+ CONTENT_LIGHT_LEVEL_EXT and EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT can
+ be set via eglSurfaceAttrib as described above.
+
+Errors
+
+ Described in the body text above.
+
+Issues
+
+Revision History
+
+ Version 1, 2017/02/28
+ - Initial draft
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_SMPTE2086_metadata.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_SMPTE2086_metadata.txt
new file mode 100644
index 0000000..2fa0b2e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_SMPTE2086_metadata.txt
@@ -0,0 +1,247 @@
+Name
+
+ EXT_surface_SMPTE2086_metadata
+
+Name Strings
+
+ EGL_EXT_surface_SMPTE2086_metadata
+
+Contact
+
+ Weiwan Liu (weiwliu 'at' nvidia.com)
+
+Contributors
+
+ Tom Cooksey
+ Courtney Goeltzenleuchter
+ Mathias Heyer
+ Lauri Hyvarinen
+ James Jones
+ Daniel Koch
+ Jeff Leger
+ Sandeep Shinde
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Complete
+
+Version
+
+ Version 8 - Oct 16, 2017
+
+Number
+
+ EGL Extension #109
+
+Dependencies
+
+ This extension requires EGL 1.4.
+
+ This extension is written against the wording of the EGL 1.5 specification
+ (August 27, 2014).
+
+Overview
+
+ This extension adds a new set of EGL surface attributes for the metadata
+ defined by the SMPTE (the Society of Motion Picture and Television
+ Engineers) ST 2086 standard. The SMPTE 2086 metadata includes the color
+ primaries, white point and luminance range of the mastering display, which
+ all together define the color volume that contains all the possible colors
+ the mastering display can produce. The mastering display is the display
+ where creative work is done and creative intent is established. To preserve
+ such creative intent as much as possible and achieve consistent color
+ reproduction on different viewing displays, it is useful for the display
+ pipeline to know the color volume of the original mastering display where
+ content is created or tuned. This avoids performing unnecessary mapping of
+ colors that are not displayable on the original mastering display.
+
+ This extension adds the ability to pass the SMPTE 2086 metadata via EGL,
+ from which the color volume can be derived. While the general purpose of the
+ metadata is to assist in the transformation between different color volumes
+ of different displays and help achieve better color reproduction, it is not
+ in the scope of this extension to define how exactly the metadata should be
+ used in such a process. It is up to the implementation to determine how to
+ make use of the metadata.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as attribute by eglSurfaceAttrib and eglQuerySurface:
+
+ EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341
+ EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342
+ EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343
+ EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344
+ EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345
+ EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346
+ EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347
+ EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348
+ EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349
+ EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A
+
+Additions to Chapter "3.5.6 Surface Attributes" of the EGL 1.5 Specification
+
+ Add the following paragraph before the "Errors" section on page 43,
+
+ If attribute is EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT, EGL_SMPTE2086_-
+ DISPLAY_PRIMARY_RY_EXT, EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT, EGL_-
+ SMPTE2086_DISPLAY_PRIMARY_GY_EXT, EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT
+ or EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT, then value indicates the
+ corresponding xy chromaticity coordinate[12] of the mastering display's
+ red, green or blue color primary, as configured for the mastering
+ process. The floating-point display primary coordinates should be
+ multiplied by EGL_METADATA_SCALING_EXT (50000)[13], before being passed
+ into eglSurfaceAttrib as integers.
+
+ If attribute is EGL_SMPTE2086_WHITE_POINT_X_EXT or EGL_SMPTE2086_WHITE_-
+ POINT_Y_EXT, then value indicates the corresponding xy chromaticity
+ coordinate[12] of the mastering display's white point, as configured for
+ the mastering process. The floating-point white point chromaticity
+ coordinates should be multiplied by EGL_METADATA_SCALING_EXT (50000),
+ before being passed into eglSurfaceAttrib as integers.
+
+ If attribute is EGL_SMPTE2086_MAX_LUMINANCE_EXT or EGL_SMPTE2086_MIN_-
+ LUMINANCE_EXT, then value indicates the maximum or minimum display
+ luminance of the mastering display, as configured for the mastering
+ process. The unit of value is 1 nit (candela per square meter). The
+ floating-point luminance values should be multiplied by
+ EGL_METADATA_SCALING_EXT, a constant scaling factor of 50000, before
+ being passed into eglSurfaceAttrib as integers.
+
+ By defining the mastering display's color volume through color
+ primaries, white point, and luminance range, applications give EGL
+ and the underlying display pipeline hints as to how to reproduce colors
+ more closely to the original content when created on the mastering
+ display. Exactly how the color volume information is used to assist the
+ color reproduction process is implementation dependant.
+
+ The initial values of EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT, EGL_-
+ SMPTE2086_DISPLAY_PRIMARY_RY_EXT, EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT,
+ EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT, EGL_SMPTE2086_DISPLAY_PRIMARY_BX_-
+ EXT, EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT, EGL_SMPTE2086_WHITE_POINT_X_-
+ EXT, EGL_SMPTE2086_WHITE_POINT_Y_EXT, EGL_SMPTE2086_MAX_LUMINANCE_EXT
+ and EGL_SMPTE2086_MIN_LUMINANCE_EXT are EGL_DONT_CARE, which causes the
+ hints to be ignored. If value is not in the implementation's supported
+ range for attribute, a EGL_BAD_PARAMETER error is generated, and some or
+ all of the metadata fields are ignored.
+
+ Add the following footnote at the end of page 43, and increment all the
+ subsequent footnote numbers in Chapter 3,
+
+ [12] Chromaticity coordinates x and y are as specified in CIE
+ 15:2004 "Calculation of chromaticity coordinates" (Section 7.3) and are
+ limited to between 0 and 1 for real colors for the mastering display.
+
+ Change the original footnote 12 at the end of section "3.5.6 Surface
+ Attributes" on page 45 to,
+
+ [13] EGL_DISPLAY_SCALING (10000) and EGL_METADATA_SCALING_EXT (50000)
+ are used where EGL needs to take or return floating-point attribute
+ values, which would normally be smaller than 1, as integers while still
+ retaining sufficient precision to be meaningful.
+
+ Addition to Table 3.5 "Queryable surface attributes and types",
+
+ Attribute Type
+ ------------------------------------------------
+ EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT integer
+ EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT integer
+ EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT integer
+ EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT integer
+ EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT integer
+ EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT integer
+ EGL_SMPTE2086_WHITE_POINT_X_EXT integer
+ EGL_SMPTE2086_WHITE_POINT_Y_EXT integer
+ EGL_SMPTE2086_MAX_LUMINANCE_EXT integer
+ EGL_SMPTE2086_MIN_LUMINANCE_EXT integer
+
+ Description
+ ------------------------------------------------------------------------------------------
+ x chromaticity coordinate for red display primary multiplied by EGL_METADATA_SCALING_EXT
+ y chromaticity coordinate for red display primary multiplied by EGL_METADATA_SCALING_EXT
+ x chromaticity coordinate for green display primary multiplied by EGL_METADATA_SCALING_EXT
+ y chromaticity coordinate for green display primary multiplied by EGL_METADATA_SCALING_EXT
+ x chromaticity coordinate for blue display primary multiplied by EGL_METADATA_SCALING_EXT
+ y chromaticity coordinate for blue display primary multiplied by EGL_METADATA_SCALING_EXT
+ x chromaticity coordinate for white point multiplied by EGL_METADATA_SCALING_EXT
+ y chromaticity coordinate for white point multiplied by EGL_METADATA_SCALING_EXT
+ Maximum luminance in nit multiplied by EGL_METADATA_SCALING_EXT
+ Minimum luminance in nit multiplied by EGL_METADATA_SCALING_EXT
+
+ Add the following paragraph at the end of section "3.5.6 Surface Attributes"
+ on page 45,
+
+ Querying EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT, EGL_SMPTE2086_DISPLAY_-
+ PRIMARY_RY_EXT, EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT, EGL_SMPTE2086_-
+ DISPLAY_PRIMARY_GY_EXT, EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT or EGL_-
+ SMPTE2086_DISPLAY_PRIMARY_BY_EXT returns respectively the xy
+ chromaticity coordinate of the mastering display's red, green or blue
+ color primary, multiplied by the constant value EGL_METADATA_SCALING_EXT
+ (50000). The display primary coordinates can be set via eglSurfaceAttrib
+ as described above.
+
+ Querying EGL_SMPTE2086_WHITE_POINT_X_EXT, or EGL_SMPTE2086_WHITE_POINT_-
+ Y_EXT returns respectively the xy chromaticity coordinate of the
+ mastering display's white point, multiplied by the constant value EGL_-
+ METADATA_SCALING (50000). The white point coordinates can be set via
+ eglSurfaceAttrib as described above.
+
+ Querying EGL_SMPTE2086_MAX_LUMINANCE_EXT or EGL_SMPTE2086_MIN_-
+ LUMINANCE_EXT returns respectively the maximum and minimum display
+ luminance of the mastering display. The values returned are in units of
+ 1 nit (candela per square meter), multiplied by the constant value EGL_-
+ METADATA_SCALING (50000). The value of EGL_SMPTE2086_MAX_LUMINANCE_EXT
+ and EGL_SMPTE2086_MIN_LUMINANCE_EXT can be set via eglSurfaceAttrib as
+ described above.
+
+Errors
+
+ Described in the body text above.
+
+Issues
+
+ 1. Should this extension define a valid data range for each metadata field?
+
+ RESOLVED: No. It is not in the scope of this extension to define how the
+ metadata hints should be used in the display pipeline and, as a result,
+ what the valid data ranges are for the metadata fields. It is
+ implementation dependant, but related standards, such as SMPTE ST 2086,
+ can be used as reference. As described in the body, implemetations may
+ generate a EGL_BAD_PARAMTER error to notify applications that the input
+ metadata values are invalid or not supported.
+
+Revision History
+
+ Version 1, 2016/04/22
+ - Initial draft
+
+ Version 2, 2016/05/25
+ - Rename to EXT and introduce a new scaling factor
+
+ Version 3, 2016/10/19
+ - Add an error and revise issue 1
+
+ Version 4, 2016/11/22
+ - Change status to complete
+
+ Version 5, 2016/11/29
+ - Add token assigments
+
+ Version 6, 2017/02/28
+ - Add 'EXT' suffix to 'EGL_METADATA_SCALING'
+
+ Version 7, 2017/10/13
+ - Rename EGL_INVALID_VALUE (which doesn't exist) to EGL_FALSE
+
+ Version 8, 2017/10/16
+ - Fix v7 change to use EGL_BAD_PARAMETER as the error code
+ generated vs. EGL_FALSE which is the expected return value of
+ the function.
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_compression.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_compression.txt
new file mode 100644
index 0000000..6610017
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_surface_compression.txt
@@ -0,0 +1,289 @@
+Name
+
+ EXT_surface_compression
+
+Name Strings
+
+ EGL_EXT_surface_compression
+
+Contributors
+
+ Jan-Harald Fredriksen, Arm
+ Lisa Wu, Arm
+ George Liu, Arm
+ Laurie Hedge, Imagination Technologies
+
+Contact
+
+ Jan-Harald Fredriksen (jan-harald.fredriksen 'at' arm.com)
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Complete
+
+Version
+
+ Version 1 - November 15, 2021
+
+Number
+
+ EGL Extension #147
+
+Dependencies
+
+ These extensions are written against the wording of the EGL 1.5
+ specification (August 27, 2014).
+
+ This extension interacts with EGL_EXT_yuv_surface.
+
+Overview
+
+ Applications may wish to take advantage of framebuffer compression. Some
+ platforms may support framebuffer compression at fixed bitrates. Such
+ compression algorithms generally produce results that are visually lossless,
+ but the results are typically not bit exact when compared to a non-compressed
+ result.
+
+ This extension enables applications to opt-in to fixed-rate compression
+ for EGL window surfaces.
+
+ Compression may not be supported for all framebuffer formats. It can still
+ be requested for all formats and applications can query what level of compression
+ was actually enabled.
+
+New Procedures and Functions
+
+ EGLBoolean eglQuerySupportedCompressionRatesEXT(
+ EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list,
+ EGLint *rates, EGLint rate_size, EGLint *num_rates);
+
+New Tokens
+
+ New attributes accepted by the <attrib_list> argument of
+ eglCreatePlatformWindowSurface and eglCreateWindowSurface:
+ EGL_SURFACE_COMPRESSION_EXT 0x34B0
+
+ [Only if EGL_EXT_yuv_surface is supported]
+ EGL_SURFACE_COMPRESSION_PLANE1_EXT 0x328E
+ EGL_SURFACE_COMPRESSION_PLANE2_EXT 0x328F
+
+ Accepted as attribute values for EGL_SURFACE_COMPRESSION_EXT by
+ eglCreatePlatformWindowSurface and eglCreateWindowSurface:
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x34B1
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x34B2
+
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x34B4
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x34B5
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x34B6
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x34B7
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x34B8
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x34B9
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x34BA
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x34BB
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x34BC
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x34BD
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x34BE
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x34BF
+
+Modifications to the EGL 1.5 Specification
+
+ Modify section 3.5.1 "Creating On-Screen Rendering Surfaces:
+
+ Add EGL_SURFACE_COMPRESSION_EXT to the list of attributes that can
+ be specified in <attrib_list> for eglCreatePlatformWindowSurface.
+
+ Add the following paragraph:
+
+ EGL_SURFACE_COMPRESSION_EXT specifies the fixed-rate compression that may
+ be enabled for rendering to the window.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT, then fixed-rate
+ compression is disabled.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,
+ then the implementation may enable compression at a default,
+ implementation-defined, rate.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 1 bit and less than 2 bits per component.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 2 bits and less than 3 bits per component.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 3 bits and less than 4 bits per component.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 4 bits and less than 5 bits per component.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 5 bits and less than 6 bits per component.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 6 bits and less than 7 bits per component.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 7 bits and less than 8 bits per component.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 8 bits and less than 9 bits per component.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 9 bits and less than 10 bits per component.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 10 bits and less than 11 bits per component.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 11 bits and less than 12 bits per component.
+ If its value is EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT, then the
+ implementation may enable fixed-rate compression with a bitrate of at
+ least 12 bits per component.
+
+ For pixel formats with different number of bits per component, the
+ specified fixed-rate compression rate applies to the component with
+ the highest number of bits.
+
+ The default value of EGL_SURFACE_COMPRESSION_EXT is
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT.
+
+ [Only if EGL_EXT_yuv_surface is supported]
+
+ If _config_ describes a surface with multiple planes (the
+ value of the EGL_YUV_NUMBER_OF_PLANES_EXT attribute is larger than one),
+ then the fixed-rate compression rate can be specified independently for
+ the each plane.
+ In this case, EGL_SURFACE_COMPRESSION_EXT specifies the fixed-rate
+ compression that may be enabled for rendering to plane 0,
+ EGL_SURFACE_COMPRESSION_PLANE1_EXT specifies the fixed-rate
+ compression that may be enabled for rendering to plane 1, and
+ EGL_SURFACE_COMPRESSION_PLANE2_EXT specifies the fixed-rate compression
+ that may be enabled for rendering to plane 2.
+ The supported values of EGL_SURFACE_COMPRESSION_PLANE1_EXT and
+ EGL_SURFACE_COMPRESSION_PLANE2_EXT are the same as for
+ EGL_SURFACE_COMPRESSION_EXT.
+
+ If _config_ has more than one plane and the
+ EGL_SURFACE_COMPRESSION_PLANE1_EXT attribute is not specified,
+ then the value of EGL_SURFACE_COMPRESSION_EXT is used for all planes.
+ If _config_ has more than two planes and the
+ EGL_SURFACE_COMPRESSION_PLANE2_EXT attribute is not specified,
+ then the value of EGL_SURFACE_COMPRESSION_PLANE1_EXT is also used
+ for plane 2.
+
+ The default value of EGL_SURFACE_COMPRESSION_PLANE1_EXT and
+ EGL_SURFACE_COMPRESSION_PLANE2_EXT is EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT.
+
+ Modify section 3.5.6 "Surface Attributes"
+
+ Add entries to Table 3.5 "Queryable surface attributes and types":
+
+ EGL_SURFACE_COMPRESSION_EXT enum Fixed-rate compression
+
+ [Only if EGL_EXT_yuv_surface is supported]
+ EGL_SURFACE_COMPRESSION_PLANE1_EXT enum Fixed-rate compression for plane 1
+ EGL_SURFACE_COMPRESSION_PLANE2_EXT enum Fixed-rate compression for plane 2
+
+ Add the following paragraph:
+
+ Querying EGL_SURFACE_COMPRESSION_EXT returns the actual fixed-rate
+ compression applied to a surface. For YUV surfaces, the value applied to
+ the luma plane is returned. This value may be different to the one
+ requested when the surface was created.
+ For pbuffer and pixmap surfaces, the contents of <value> are not modified."
+
+ [Only if EGL_EXT_yuv_surface is supported]
+ Querying EGL_SURFACE_COMPRESSION_PLANE1_EXT returns the actual
+ fixed-rate compression applied to plane 1 of a YUV surface.
+ Querying EGL_SURFACE_COMPRESSION_PLANE2_EXT returns the actual
+ fixed-rate compression applied to plane 2 of a YUV surface.
+ These values may be different to the one requested when the surface was created.
+ For pbuffer and pixmap surfaces, the contents of <value> are not modified."
+
+ To get the list of all fixed-rate compression rates that are available on
+ a specified display and EGLConfig, call
+
+ EGLBoolean eglQuerySupportedCompressionRatesEXT(
+ EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list,
+ EGLint *rates, EGLint rate_size, EGLint *num_rates);
+
+ <attrib_list> specifies a list of attributes that will be provided when a surface is created with
+ this combination of display and EGLConfig. The accepted attributes are the same as for
+ eglCreatePlatformWindowSurface.
+ <rates> is a pointer to a buffer containing <rate_size> elements. On success, EGL_TRUE is
+ returned. The number of rates is returned in <num_rates>, and elements 0 through <num_rates>-1 of
+ <rates> are filled in with the available compression rates.
+ No more than <rate_size> compression rates will be returned even if more are available
+ on the specified display and config. However, if eglQuerySupportedCompressionRatesEXT is called with
+ <rates> = NULL, then no rates are returned, but the total number of rates available will be returned
+ in <num_rates>.
+ The possible values returned in <rates> are the attribute values accepted for
+ EGL_SURFACE_COMPRESSION_EXT by eglCreatePlatformWindowSurface and eglCreateWindowSurface, except
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT and EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT.
+
+Errors
+
+ [Only if EGL_EXT_yuv_surface is supported]
+ Add to the error section of eglCreatePlatformWindowSurface:
+
+ If the EGL_SURFACE_COMPRESSION_PLANE1_EXT attribute is specified and
+ _config_ does not describe a surface with at least 2 planes (the
+ EGL_YUV_NUMBER_OF_PLANES_EXT attribute is not greater than or
+ equal to 2), an EGL_BAD_MATCH error is generated.
+
+ If the EGL_SURFACE_COMPRESSION_PLANE2_EXT attribute is specified and
+ _config_ does not describe a surface with at least 3 planes (the
+ EGL_YUV_NUMBER_OF_PLANES_EXT attribute is not greater than or
+ equal to 3), an EGL_BAD_MATCH error is generated.
+
+ Add to the section describing eglQuerySupportedCompressionRatesEXT:
+
+ * On failure, EGL_FALSE is returned.
+ * An EGL_NOT_INITIALIZED error is generated if EGL is not initialized on <dpy>.
+ * An EGL_BAD_PARAMETER error is generated if <num_rates> is NULL.
+
+Issues
+
+ 1. Should fixed-rate compression be supported for pixmap or pbuffer
+ surfaces?
+
+ No, no use-cases have been identified for this.
+
+ 2. What is the result of querying EGL_SURFACE_COMPRESSION_EXT if
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT was requested?
+
+ Resolved.
+ The result will be the specific compression ratio chosen by the
+ implementation, or EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT if
+ no fixed-rate compression was applied.
+
+ 3. Should we expose different compressions rates per plane in this extension?
+
+ Yes.
+
+ 4. How can an application query the set of supported compression rates?
+
+ Resolved. Option B.
+
+ Two options were considered.
+
+ Option A:
+ Reuse eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
+
+ This is not ideal because:
+ - the compression modes are currently tied to the surface, not the EGLConfig
+ - we don't want this to affect EGLConfig selection etc.
+ - this query can only return a single value, so you'd need to query each of the
+ 12 bit rates separately.
+
+ Option B:
+ Add a new query, specifically for the compression rates. This addresses the concerns
+ with Option A, and is very similar to the mechanism used for the OpenGL ES API. Main
+ downside is that it adds additional functions to the API.
+
+Revision History
+
+ Version 1, 2021/11/15
+ - Internal revisions
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_swap_buffers_with_damage.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_swap_buffers_with_damage.txt
new file mode 100644
index 0000000..7a1f7fc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_swap_buffers_with_damage.txt
@@ -0,0 +1,343 @@
+Name
+
+ EXT_swap_buffers_with_damage
+
+Name Strings
+
+ EGL_EXT_swap_buffers_with_damage
+
+IP Status
+
+ No known IP claims.
+
+Contributors
+
+ Robert Bragg
+ Tapani Pälli
+ Kristian Høgsberg
+ Benjamin Franzke
+ Ian Stewart
+ James Jones
+
+Contacts
+
+ Robert Bragg, Intel (robert.bragg 'at' intel.com)
+
+Status
+
+ Published
+
+Version
+
+ Version 11, February 20, 2020
+
+Number
+
+ EGL Extension #55
+
+Dependencies
+
+ Requires EGL 1.4
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension provides a means to issue a swap buffers request to
+ display the contents of the current back buffer and also specify a
+ list of damage rectangles that can be passed to a system
+ compositor so it can minimize how much it has to recompose.
+
+ This should be used in situations where an application is only
+ animating a small portion of a surface since it enables the
+ compositor to avoid wasting time recomposing parts of the surface
+ that haven't changed.
+
+New Procedures and Functions
+
+ EGLBoolean eglSwapBuffersWithDamageEXT (
+ EGLDisplay dpy,
+ EGLSurface surface,
+ const EGLint *rects,
+ EGLint n_rects);
+
+New Tokens
+
+ None
+
+Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Add the following text to subsection 3.9.1 titled "Posting to a
+ Window" after the description of eglSwapBuffers.
+
+ As an alternative to eglSwapBuffers use:
+
+ EGLBoolean eglSwapBuffersWithDamageEXT (
+ EGLDisplay dpy,
+ EGLSurface surface,
+ const EGLint *rects,
+ EGLint n_rects);
+
+ to do the same thing as eglSwapBuffers but additionally report
+ a list of rectangles that define the region that has truly
+ changed since the last frame. To be clear; the entire contents
+ of the back buffer will still be swapped to the front so
+ applications using this API must still ensure that the entire
+ back buffer is consistent. The rectangles are only a hint for
+ the system compositor so it can avoid recomposing parts of the
+ surface that haven't really changed.
+ <rects> points to a list of integers in groups of four that
+ each describe a rectangle in screen coordinates in this
+ layout: {x, y, width, height}. The rectangles are specified
+ relative to the bottom-left of the surface and the x and y
+ components of each rectangle specify the bottom-left position
+ of that rectangle. <n_rects> determines how many groups of 4
+ integers can be read from <rects>. It is not necessary to
+ avoid overlaps of the specified rectangles.
+ If <n_rects> is 0 then <rects> is ignored and the entire
+ surface is implicitly damaged and the behaviour is equivalent
+ to calling eglSwapBuffers.
+ The error conditions checked for are the same as for the
+ eglSwapBuffers api.
+
+ Modify the first paragraph of Section 3.9.1 titled "Native Window
+ Resizing"
+
+ "If the native window corresponding to <surface> has been
+ resized prior to the swap, <surface> must be resized to match.
+ <surface> will normally be resized by the EGL implementation
+ at the time the native window is resized. If the
+ implementation cannot do this transparently to the client,
+ then eglSwapBuffers and eglSwapBuffersWithDamageEXT must
+ detect the change and resize surface prior to copying its
+ pixels to the native window. In this case the meaningfulness
+ of any damage rectangles forwarded by
+ eglSwapBuffersWithDamageEXT to the native window system is
+ undefined."
+
+ Modify the following sentences in Section 3.9.3, page 51 (Posting
+ Semantics)
+
+ Paragraph 2, first sentence:
+
+ "If <dpy> and <surface> are the display and surface for the
+ calling thread's current context, eglSwapBuffers,
+ eglSwapBuffersWithDamageEXT, and eglCopyBuffers perform an
+ implicit flush operation on the context (glFlush for OpenGL or
+ OpenGL ES context, vgFlush for an OpenVG context)."
+
+ Paragraph 3, first sentence:
+
+ "The destination of a posting operation (a visible window, for
+ eglSwapBuffers or eglSwapBuffersWithDamageEXT, or a native
+ pixmap, for eglCopyBuffers) should have the same number of
+ components and component sizes as the color buffer it's being
+ copied from."
+
+ Paragraph 6, first two sentences:
+
+ "The function
+
+ EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint
+ interval);
+
+ specifies the minimum number of video frame periods per color
+ buffer post operation for the window associated with the
+ current context. The interval takes effect when eglSwapBuffers
+ or eglSwapBuffersWithDamageEXT is first called subsequent to
+ the eglSwapInterval call."
+
+ Modify the following sentences in Section 3.9.4, page 52 (Posting
+ Errors)
+
+ Paragraph 1, first sentence:
+
+ "eglSwapBuffers, eglSwapBuffersWithDamageEXT, and
+ eglCopyBuffers return EGL_FALSE on failure."
+
+ Paragraph 1, seventh sentence:
+
+ "If eglSwapBuffers or eglSwapBuffersWithDamageEXT are called
+ and the native window associated with <surface> is no longer
+ valid, an EGL_BAD_NATIVE_WINDOW error is generated. If
+ eglSwapBuffersWithDamageEXT is called and <n_rects>, is less
+ than zero or <n_rects> is greater than zero but <rects> is
+ NULL, EGL_BAD_PARAMETER is generated."
+
+Dependencies on OpenGL ES
+
+ None
+
+Dependencies on OpenVG
+
+ None
+
+Issues
+
+1) Do applications have to make sure the rectangles don't overlap?
+
+ RESOLVED: No, that would be inconvenient for applications and we
+ see no difficulty for implementations to supporting overlapping
+ rectangles.
+
+2) Would it be valid for an implementation to discard the list of
+ rectangles internally and work just in terms of the
+ eglSwapBuffers api?
+
+ RESOLVED: Yes, the rectangles are only there for optimization
+ purposes so although it wouldn't be beneficial to applications if
+ it was convenient at times then it would be compliant for an
+ implementation to discard the rectangles and just call
+ eglSwapBuffers instead. The error conditions that should be
+ checked for are compatible with the requirements for
+ eglSwapBuffers.
+
+3) What origin should be used for damage rectangles?
+
+ RESOLVED: Bottom left since this is consistent with all other
+ uses of 2D window coordinates in EGL and OpenGL that specify a
+ bottom left origin.
+
+ Originally this specification was written with a top-left origin
+ for the damage rectangles even though it was known to be
+ inconsistent and that was because most window systems use a
+ top-left origin and there are some awkward semantic details
+ related to handling native window resizing that we had hoped to
+ simplify.
+
+ This extension and also several other existing EGL extensions
+ struggle to guarantee a reliable behaviour in response to native
+ window resizing which can happen asynchronously on some platforms
+ and this can make it difficult for applications to avoid certain
+ visual artefacts.
+
+ The crux of the problem is that when a native window is
+ asynchronously resized then the window system may maintain the old
+ buffer contents with respect to a different origin than EGL's
+ bottom left origin. For this extension that means that EGL damage
+ rectangles that are intended to map to specific surface contents
+ may end up mapping to different contents when a native window is
+ resized because the rectangles and buffer contents will be moved in
+ different directions in relation to the new window size.
+
+ In the end we decided that this issue isn't simply solved by
+ choosing to use a top-left origin and so we can instead aim for
+ consistency and clarify what guarantees we offer in relation to
+ native window resizing separate from this issue.
+
+4) What guarantees do we provide about the meaningfulness of EGL
+ damage rectangles that are forwarded to the native window system
+ when presenting to a native window that has been resized?
+
+ RESOLVED: The meaningfulness of those forwarded damage rectangles
+ is undefined since this simplifies the implementation requirements
+ and we saw very little benefit to applications from providing
+ stricter guarantees.
+
+ The number of applications that would be able to avoid fully
+ redrawing the contents of a window in response to a window resize
+ is expected to be so low that there would be almost no benefit to
+ defining strict guarantees here.
+
+ Since EGL already states that the contents of window surface
+ buffers become undefined when a native window has been resized,
+ this limitation doesn't introduce any new issue for applications
+ to consider. Applications should already fully redraw buffer
+ contents in response to a native window resize, unless they are
+ following some platform specific documentation that provides
+ additional guarantees.
+
+ For an example of the implementation details that make this an
+ awkward issue to provide guarantees for we can consider X11 based
+ platforms where native windows can be resized asynchronously with
+ respect to a client side EGL surface:
+
+ With X11 there may be multiple "gravity" transformations that can
+ affect how surface buffer content is positioned with respect to a
+ new native window size; there is the core X "bit gravity" and
+ there is the EGL driver gravity that determines how a surface's
+ contents with one size should be mapped to a native window with a
+ different size. Without very careful cooperation between the EGL
+ driver and the core X implementation and without the right
+ architecture to be able to do transforms atomically with respect
+ to different clients that may enact a window resize then it is not
+ possible to reliably map EGL damage rectangles to native window
+ coordinates.
+
+ The disadvantage of a driver that is not able to reliably map EGL
+ damage rectangles to native window coordinates is that a native
+ compositor may re-compose the wrong region of window. This may
+ result in a temporary artefact until the full window gets redrawn
+ and then re-composed. X11 already suffers other similar transient
+ artefacts when resizing windows.
+
+ The authors of this spec believe that even if a driver can't do
+ reliable mappings of EGL damage rectangles then compositors would
+ be able mitigate the majority of related artefacts by ignoring
+ sub-window damage during an interactive window resize.
+
+ The authors of this spec believe that that if an X11 driver did
+ want to reliably map EGL damage rectangles to the native window
+ coordinates then that may be technically feasible depending on the
+ driver architecture. For reference one approach that had been
+ considered (but not tested) is as follows:
+
+ 1) When eglSwapBuffersWithDamageEXT is called, send EGL damage
+ rectangles from the client to a driver component within the
+ xserver un-transformed in EGL window surface coordinates with a
+ bottom-left origin.
+
+ 2) Within the X server the driver component should look at the
+ bit-gravity of a window and use the bit-gravity convention to
+ copy EGL surface content to the front-buffer of a native window.
+
+ 3) Within the X server the driver component should use the same
+ gravity transform that was used to present the surface content
+ to also transform the EGL damage rectangle coordinates.
+
+ Note that because this transform is done in the xserver then
+ this is implicitly synchronized with all clients that would
+ otherwise be able to enact an asynchronous window resize.
+
+
+Revision History
+
+ Version 1, 29/07/2011
+ - First draft
+ Version 2, 03/08/2011
+ - Clarify that the rectangles passed may overlap
+ Version 3, 01/09/2011
+ - Fix a missing '*' in prototype to make rects a pointer
+ Version 4, 11,02,2012
+ - Clarify that implementing in terms of eglSwapBuffers would be
+ compliant.
+ Version 5, 11,02,2012
+ - Tweak the cases where we report BAD_PARAMETER errors
+ Version 6, 05/02/2013
+ - Specify more thorough updates across the EGL 1.4 spec
+ wherever it relates to the eglSwapBuffers api
+ - Clarify that passing <n_rects> of 0 behaves as if
+ eglSwapBuffers were called.
+ Version 7, 14/02/2013
+ - Specify that a bottom-left origin should be used for rectangles
+ Version 8, 19/03/2013
+ - Add Ian and James as contributors
+ - Add an issue explaining why we changed to a bottom-left origin
+ - Clarify that the behaviour is undefined when presenting to a
+ native window that has been resized.
+ - Document the awkward details that would be involved in
+ providing more strict guarantees when presenting to a native
+ window that has been resized.
+ Version 9, 12/06/2013, Chad Versace <chad.versace@intel.com>
+ - Remove the "all rights reserved" clause from the copyright notice. The
+ removal does not change the copyright notice's semantics, since the
+ clause is already implied by any unadorned copyright notice. But, the
+ removal does diminish the likelihood of unwarranted caution in readers
+ of the spec.
+ - Add "IP Status" section to explicitly state that this extension has no
+ knonw IP claims.
+ Version 10, 23/10/2014, Jon Leech
+ - Remove copyright after signoff from Intel.
+ Version 11, 20/02/2020, Jon Leech
+ - Constify rects parameter (EGL-Registry issue 98).
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_sync_reuse.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_sync_reuse.txt
new file mode 100644
index 0000000..4c8ebb1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_sync_reuse.txt
@@ -0,0 +1,376 @@
+Name
+
+ EXT_sync_reuse
+
+Name Strings
+
+ EGL_EXT_sync_reuse
+
+Contributors
+
+ Daniel Kartch
+ Jeff Vigil
+ Ray Smith
+
+Contacts
+
+ Daniel Kartch, NVIDIA Corporation (dkartch 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 4, May 16, 2018
+
+Number
+
+ EGL Extension #128
+
+Extension type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL 1.5 or EGL 1.4 with EGL_KHR_fence_sync
+
+ Interacts with EGL_KHR_reusable_sync
+ Interacts with EGL_ANDROID_native_fence_sync
+ Interacts with EGL_NV_cuda_event
+
+ This extension is written against the wording of the EGL 1.5
+ Specification.
+
+Overview
+
+ The original EGLSync extensions separated sync objects into two
+ types: fence sync objects signaled by one time events in an
+ API command pipeline; and reusable sync objects signaled by commands
+ which can be issued again and again. However, this conflates
+ reusability of the event triggering a sync object with the EGLSync
+ object itself.
+
+ Although the event associated with a fence sync object will only
+ occur once, there is no reason that it can't be replaced with a new
+ event. Doing so would avoid unnecessary allocation and free
+ operations in an application that repeatedly waits for events. With
+ the current interfaces, such applications must constantly create and
+ destroy new EGLSync objects.
+
+ This extension allows all sync objects to be reusable. When a sync
+ object is in the signaled state, it can be reset back to an
+ unsignaled state, regenerating or reevaluating the events that
+ trigger them. For fence sync objects, this means generating a new
+ fence in the current API. For OpenCL event sync objects, this means
+ waiting for a new OpenCL event handle. This mechanism also allows
+ sync objects to be created in the signaled state with no associated
+ fence/event, and have one applied later. Thus all EGLSyncs required
+ by an application can be allocated up front, before any rendering
+ operations have begun.
+
+New Types
+
+ None
+
+New Tokens
+
+ None
+
+New Procedures and Functions
+
+ EGLBoolean eglUnsignalSyncEXT(
+ EGLDisplay dpy,
+ EGLSync sync,
+ const EGLAttrib *attrib_list);
+
+Replace text of subsections of 3.8.1 through 3.8.1.2 of EGL 1.5
+Specification. Existing tables are preserved.
+
+ 3.8.1 Sync Objects
+
+ In addition to the aforementioned synchronization functions, which
+ provide an efficient means of serializing client and native API
+ operations within a thread, <sync objects> are provided to enable
+ synchronization of client API operations between threads and/or
+ between API contexts. Sync objects may be tested or waited upon by
+ application threads.
+
+ Sync objects have a status with two possible states: <signaled> and
+ <unsignaled>, and may initially be in either state. EGL may be asked
+ to wait for a sync object to become signaled, or a sync object’s
+ status may be queried.
+
+ Depending on the type of a sync object, its status may be changed
+ either by an external event, or by explicitly signaling and/or
+ unsignaling the sync. All sync objects are reusable. Once they enter
+ the signaled state, they may be changed back to unsignaled, possibly
+ replacing the associated external event that signals them.
+
+ Sync objects are associated with an EGLDisplay when they are
+ created, and have <attributes> defining additional aspects of the
+ sync object. All sync objects include attributes for their type and
+ their status. Additional attributes are discussed below for
+ different types of sync objects. If a sync object is created in the
+ signaled state, its initial attribute list may be incomplete, with
+ attributes necessary for its type provided when it is changed to
+ unsignaled.
+
+ <Fence sync objects> have an associated fence command in a client
+ API. A new fence command is generated whenever the sync object
+ enters the unsignaled state. When the client API executes the fence
+ command, an event is generated which signals the corresponding fence
+ sync object. Fence sync objects may not be explicitly signaled.
+ Fence sync objects may be used to wait for partial completion of a
+ client API command stream, as a more flexible form of glFinish or
+ vgFinish.
+
+ An <OpenCL event sync object> reflects the status of a corresponding
+ OpenCL event object to which the sync object is linked. This
+ provides another method of coordinating sharing of images between
+ EGL and OpenCL (see Chapter 9 of the OpenCL 1.0 Specification and
+ the cl_khr_egl_image extension). Waiting on such a sync object is
+ equivalent to waiting for completion of the linked OpenCL event
+ object.
+
+ The command
+
+ EGLSync eglCreateSync(EGLDisplay dpy, EGLenum type, const
+ EGLAttrib *attrib_list);
+
+ creates a sync object of the specified <type> associated with the
+ specified display <dpy>, and returns a handle to the new object.
+ <attrib list> is NULL or an attribute-value list specifying other
+ attributes of the sync object, terminated by an attribute entry
+ EGL_NONE. Attributes not specified in the list will be assigned
+ their default values.
+
+ The EGL_SYNC_STATUS attribute is defined for all sync types, but may
+ only be specified explicitly at creation time for some types of sync
+ objects, as discussed below. Other attributes are only allowed as
+ indicated below for the sync type.
+
+ Errors
+
+ eglCreateSync returns EGL_NO_SYNC on failure.
+ If <dpy> is not the name of a valid, initialized EGLDisplay, an
+ EGL_BAD_DISPLAY error is generated.
+ If <attrib_list> contains an attribute name not defined or not
+ allowed for the type of sync object being created, an
+ EGL_BAD_ATTRIBUTE error is generated.
+ If <type> is not a supported type of sync object, an
+ EGL_BAD_PARAMETER error is generated.
+ If <type> is EGL_SYNC_FENCE, the EGL_SYNC_STATUS attribute is
+ set to EGL_UNSIGNALED, and any of the following are true of the
+ current context for the bound API (the context returned by
+ eglGetCurrentContext), an EGL_BAD_MATCH error is generated:
+ * There is no current context (i.e., eglGetCurrentContext
+ returns EGL_NO_CONTEXT).
+ * <dpy> does not match the EGLDisplay of the context (the
+ EGLDisplay returned by eglGetCurrentDisplay).
+ * The context does not support fence commands.
+
+ While in the unsignaled state, the synchronization event associated
+ with a sync object cannot be changed. When the <condition> of a sync
+ object in the unsignaled state is satisfied, the sync is signaled,
+ causing any eglClientWaitSync or eglWaitSync commands (see below)
+ blocking on the sync to unblock.
+
+ Once signaled, a sync object may be reused for a new synchronization
+ event by switching it back to unsignaled. The command
+
+ EGLBoolean eglUnsignalSyncEXT(EGLDisplay dpy, EGLSync sync,
+ const EGLAttrib *attrib_list);
+
+ can be used to change the <sync> associated with display <dpy> from
+ the signaled state to the unsignaled state. The attribute list may
+ be used to provide or replace attributes specific to the sync type
+ as discussed below. The sync object's type and condition may not be
+ changed.
+
+ Errors
+
+ eglUnsignalSyncEXT returns EGL_FALSE on failure, and has no
+ effect on <sync>.
+ If <dpy> is not the name of a valid, initialized EGLDisplay, an
+ EGL_BAD_DISPLAY error is generated.
+ If <sync> is not a valid sync object associated with <dpy>, an
+ EGL_BAD_PARAMETER error is generated.
+ If <attrib_list> contains an attribute name not defined for the
+ type of <sync>, an EGL_BAD_ATTRIBUTE error is generated.
+ If <sync> is already in the unsignaled state, an EGL_BAD_ACCESS
+ error is generated.
+ If <sync>'s type is EGL_SYNC_FENCE and any of the following are
+ true of the current context for the bound API (the context
+ returned by eglGetCurrentContext), an EGL_BAD_MATCH error is
+ generated:
+ * There is no current context (i.e., eglGetCurrentContext
+ returns EGL_NO_CONTEXT).
+ * <dpy> does not match the EGLDisplay of the context (the
+ EGLDisplay returned by eglGetCurrentDisplay).
+ * The context does not support fence commands.
+ If <sync>'s type is EGL_SYNC_CL_EVENT and EGL_CL_EVENT_HANDLE
+ is not specified in <attrib_list>, then an EGL_BAD_ATTRIBUTE
+ error is generated.
+
+ 3.8.1.1 Creating and Signaling Fence Sync Objects
+
+ If type is EGL_SYNC_FENCE, a fence sync object is created. The
+ EGL_SYNC_STATUS attribute may be specified as either EGL_UNSIGNALED
+ or EGL_SIGNALED, and will default to EGL_UNSIGNALED. No other
+ attributes may be specified for a fence sync object, either with
+ eglCreateSync or eglUnsignalSyncEXT. Queriable attributes of the
+ fence sync object are set as shown in table 3.7.
+
+ When a fence sync object is created in the unsignaled state, or
+ switched to that state with eglUnsignalSyncEXT, a fence command is
+ inserted into the command stream of the bound client API’s current
+ context (i.e., the context returned by eglGetCurrentContext), and is
+ associated with the sync object.
+
+ The only condition supported for fence sync objects is
+ EGL_SYNC_PRIOR_COMMANDS_COMPLETE, which 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.
+
+ Generation of fence commands for fence sync objects requires support
+ from the bound client API, and will not succeed unless the client
+ API satisfies one of the following properties. Note that eglWaitSync
+ (see section 3.8.1.3) also requires satisfying these conditions.
+ * client API is OpenGL, and either the OpenGL version is 3.2 or
+ greater, or the GL_ARB_sync extension is supported.
+ * client API is OpenGL ES, and either the OpenGL ES version is 3.0
+ or greater, or the GL_OES_EGL_sync extension is supported.
+ * client API is OpenVG, and the VG_KHR_EGL_sync extension is
+ supported.
+
+ 3.8.1.2 Creating and Signaling OpenCL Event Sync Objects
+
+ If type is EGL_SYNC_CL_EVENT, an OpenCL event sync object is
+ created. The EGL_SYNC_STATUS attribute may not be explicitly
+ specified during creation of this type of sync object. If no
+ EGL_CL_EVENT_HANDLE attribute is specified at creation time, the
+ sync object will be created in the signaled state. Otherwise its
+ status will be determined by the provided OpenCL event, as described
+ below. An EGL_CL_EVENT_HANDLE must always be specified for
+ eglUnsignalSyncEXT.
+
+ To use an OpenCL event sync object, the EGL_SYNC_CL_EVENT attribute
+ must be set to a valid OpenCL <event> handle returned by a call to
+ clEnqueueReleaseGLObjects or clEnqueueReleaseEGLObjects; other types
+ of OpenCL event handles are not supported. Implementations are not
+ required to validate the OpenCL event, and passing an invalid event
+ handle in <attrib_list> may result in undefined behavior up to and
+ including program termination. Note that EGL_CL_EVENT_HANDLE is not
+ a queriable property of a sync object. Queriable attributes of the
+ OpenCL event sync object are set as shown in table 3.8.
+
+ The status of such a sync object depends on <event>. When the status
+ of <event> is CL_QUEUED, CL_SUBMITTED, or CL_RUNNING, the status of
+ the linked sync object will be EGL_UNSIGNALED. When the status of
+ <event> changes to CL_COMPLETE, the status of the linked sync object
+ will become EGL_SIGNALED.
+
+ The only condition supported for OpenCL event sync objects is
+ EGL_SYNC_CL_EVENT_COMPLETE, which is satisfied when the status of
+ the OpenCL event associated with the sync object changes to
+ CL_COMPLETE.
+
+ Associating an OpenCL event handle with a sync object places a
+ reference on the linked OpenCL object. When the sync object is
+ deleted or the event handle is replaced, the reference will be
+ removed from the OpenCL object.
+
+If EGL_KHR_reusable_sync is present, then for sync objects of type
+EGL_SYNC_REUSABLE_KHR, the initial value of EGL_SYNC_STATUS may be
+set to either EGL_UNSIGNALED or EGL_SIGNALED, and will default to
+EGL_UNSIGNALED.
+
+If EGL_ANDROID_native_fence_sync is present, then for native fence sync
+objects, the EGL_SYNC_NATIVE_FENCE_FD_ANDROID attribute may be specified
+in eglUnsignalSyncEXT as well as eglCreateSync. If it is set to anything
+other than EGL_NO_NATIVE_FENCE_FD_ANDROID at creation time, then its
+initial EGL_SYNC_STATUS will reflect the current status of the provided
+fence FD, and it is an error to specifically set the status. If it is
+set to EGL_NO_NATIVE_FENCE_FD_ANDROID, then its EGL_SYNC_STATUS may be
+set to either EGL_UNSIGNALED (the default) or EGL_SIGNALED. If the
+status is signaled, then no native fence will be generated until after
+it is switched to unsignaled. If eglUnsignalSyncEXT is called for a
+native fence sync object with an FD of EGL_NO_NATIVE_FENCE_FD_ANDROID,
+then a new native fence will be generated at the next Flush(), as
+described for eglCreateSync.
+
+If EGL_NV_cuda_event is present, then for CUDA event sync objects, the
+EGL_CUDA_EVENT_HANDLE_NV may be specified in eglUnsignalSyncEXT as well
+as eglCreateSync. The current CUDA event handle is evaluated at the time
+the EGL sync object becomes unsignaled, and subsequent modification of
+the CUDA object with cudaEventRecord has no effect on the sync object
+until it is signaled. Subsequently restoring the sync object to
+unsignaled will cause the CUDA object to be reevaluated.
+
+Issues
+
+ 1. Should a new attribute be required to specify a sync object as
+ reusable?
+
+ RESOLVED: No. The presence of this extension is sufficient to
+ indicate reusability of all sync objects. This will not create
+ any incompatibilities with existing applications that use sync
+ objects only once.
+
+ 2. Can we leverage the existing eglSignalSyncKHR function from
+ EGL_KHR_reusable_sync for this extension?
+
+ RESOLVED: No. Some types of sync objects require attributes
+ which are themselves single-use objects, and must be replaced
+ for the sync object to be reused. Therefore a new function which
+ takes an attribute list is required.
+
+ 3. Should the function for unsignaling be based on eglSignalSyncKHR
+ from the KHR_reusable_sync extension, and take a mode parameter
+ to distinguish signaling/unsignaling?
+
+ RESOLVED: No. While all sync objects will support unsignaling,
+ the reusable sync object is the only known one that supports
+ direct signaling, rather than signaling through some condition
+ being achieved. Therefore it is simplest to have the new
+ function only support unsignaling, and continue to use the old
+ extension for the one case where signaling is required.
+
+ 4. If the initial attribute list is incomplete (e.g. an OpenCL
+ event handle is not provided during creation of an OpenCL event
+ sync object), should the EGL_SYNC_STATUS default to EGL_SIGNALED
+ rather than generating an error if it is left unspecified?
+
+ RESOLVED: Handling of allowed/default values for EGL_SYNC_STATUS
+ is based on the sync type. For fence syncs, either value is
+ allowed, defaulting to EGL_UNSIGNALED. For OpenCL event syncs,
+ the value may not be specified, and instead is determined by
+ whether an OpenCL event is provided at creation time, and if so
+ by the status of that event.
+
+Revision History
+
+ #4 (May 16, 2018) Daniel Kartch
+ - Minor corrections to wording
+
+ #3 (April 20, 2018) Daniel Kartch
+ - Renamed to EXT
+ - Fixed grammatical errors and prepared for publication
+
+ #2 (January 23, 2018) Daniel Kartch
+ - Rewrote some sections for clarity, and fixed typos
+ - Changed default/allowed behavior for signal state at creation
+ time to be determined by the sync type and other attributes.
+ - Simplified interaction with EGL_KHR_reusable_sync.
+ - Refined interaction with EGL_ANDROID_native_fence_sync to
+ clarify allowed initial states for the sync status and fix the
+ description of when new native fences are generated.
+
+ #1 (January 16, 2018) Daniel Kartch
+ - Initial draft as XXX
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_yuv_surface.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_yuv_surface.txt
new file mode 100644
index 0000000..15b854e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/EXT/EGL_EXT_yuv_surface.txt
@@ -0,0 +1,393 @@
+Name
+
+ EXT_yuv_surface
+
+Name Strings
+
+ EGL_EXT_yuv_surface
+
+Contributors
+
+ Matt Trusten
+ Jeff Vigil
+ Arshad Bebal
+ Mohan Maiya
+ Amit Bansal
+ Tom Longo
+ Eric Engestrom
+
+Contacts
+
+ Jeff Vigil, Qualcomm (jvigil 'at' qualcomm.com)
+
+Notice
+
+ Copyright (c) 2014 Qualcomm Technologies, Inc. All Rights Reserved.
+ Qualcomm Technologies Proprietary and Confidential
+
+Status
+
+ Complete
+
+Version
+
+ Version 9, May 4th, 2017
+
+Number
+
+ EGL Extension #86
+
+Dependencies
+
+ EGL 1.4 is required.
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension defines a set of new EGL configuration attributes and values
+ which allows EGL to create and use YUV surfaces.
+
+ YUV formats can be described using a few simple parameters, and every format
+ can be given with these six parameters. These parameters include the color
+ order, the number of planes, subsample, plane depth, color conversion and
+ depth range.
+
+ This extension describes how EGL will handle YUV surfaces, but requires that
+ the client API describe how to fill such a surface. An example of such an
+ extension would be GL_EXT_yuv_target.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ A new set of EGLConfig attributes are available:
+ EGL_YUV_ORDER_EXT 0x3301
+ EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
+ EGL_YUV_SUBSAMPLE_EXT 0x3312
+ EGL_YUV_DEPTH_RANGE_EXT 0x3317
+ EGL_YUV_CSC_STANDARD_EXT 0x330A
+ EGL_YUV_PLANE_BPP_EXT 0x331A
+
+ Accepted as a new value for the EGL_COLOR_BUFFER_TYPE attribute:
+ EGL_YUV_BUFFER_EXT 0x3300
+
+ Accepted values for the EGL_YUV_ORDER_EXT attribute:
+ EGL_YUV_ORDER_YUV_EXT 0x3302
+ EGL_YUV_ORDER_YVU_EXT 0x3303
+ EGL_YUV_ORDER_YUYV_EXT 0x3304
+ EGL_YUV_ORDER_UYVY_EXT 0x3305
+ EGL_YUV_ORDER_YVYU_EXT 0x3306
+ EGL_YUV_ORDER_VYUY_EXT 0x3307
+ EGL_YUV_ORDER_AYUV_EXT 0x3308
+
+ Accepted values for the EGL_YUV_SUBSAMPLE_EXT attribute:
+ EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313
+ EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314
+ EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315
+
+ Accepted values for the EGL_YUV_DEPTH_RANGE_EXT attribute:
+ EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318
+ EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319
+
+ Accepted values for the EGL_YUV_CSC_STANDARD_EXT attribute:
+ EGL_YUV_CSC_STANDARD_601_EXT 0x330B
+ EGL_YUV_CSC_STANDARD_709_EXT 0x330C
+ EGL_YUV_CSC_STANDARD_2020_EXT 0x330D
+
+ Accepted values for the EGL_YUV_PLANE_BPP_EXT attribute:
+ EGL_YUV_PLANE_BPP_0_EXT 0x331B
+ EGL_YUV_PLANE_BPP_8_EXT 0x331C
+ EGL_YUV_PLANE_BPP_10_EXT 0x331D
+
+Additions to Chapter 2 of the EGL 1.4 Specification (EGL Operation)
+
+Change the options of paragraph 6 from section 2.2: Rendering Contexts and
+Drawing Surfaces
+
+ A context can be used with any EGLSurface that it is compatible with
+ (subject to the restrictions discussed in the section on address space). A
+ surface and context are compatible if
+ * They support the same type of color buffer (RGB or luminance)
+
+To the following:
+
+ A context can be used with any EGLSurface that it is compatible with
+ (subject to the restrictions discussed in the section on address space). A
+ surface and context are compatible if
+ * They support the same type of color buffer (RGB, YUV, or luminance)
+
+Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+Change the section marked from Buffer Descriptions and Attributes in Section 3.4
+to:
+
+ The Color Buffer
+
+ The color buffer contains pixel color values, and is shared by all
+ client APIs rendering to a surface.
+ EGL_COLOR_BUFFER_TYPE indicates the color buffer type, and must be
+ either EGL_RGB_BUFFER for an RGB color buffer, EGL_LUMINANCE_BUFFER for a
+ luminance color buffer, or EGL_YUV_BUFFER_EXT for a YUV color buffer. For
+ an RGB buffer, EGL_RED_SIZE, EGL_GREEN_SIZE, EGL_BLUE_SIZE must be non-zero,
+ and EGL_LUMINANCE_SIZE must be zero. For a luminance buffer, EGL_RED_SIZE,
+ EGL_GREEN_SIZE, EGL_BLUE_SIZE must be zero, and EGL_LUMINANCE_SIZE must be
+ non-zero. For both RGB and luminance color buffers, EGL_ALPHA_SIZE may be
+ zero or non-zero (the latter indicates the existence of a destination alpha
+ buffer). For a YUV buffer, all of EGL_RED_SIZE, EGL_GREEN_SIZE, EGL_BLUE_-
+ SIZE, EGL_LUMINANCE_SIZE, and EGL_ALPHA_SIZE must be zero. Instead, the
+ depth in bits per pixel for YUV is described using EGL_YUV_PLANE_BPP_EXT,
+ which describes the size of a single pixel in the Y plane, and the other
+ plane depths are derived from this.
+ EGL_YUV_ORDER_EXT is used to describe the plane order.
+ EGL_YUV_NUMBER_OF_PLANES_EXT describes the number of planes that will
+ be used for this surface. The allowed values for EGL_YUV_NUMBER_OF_PLANES_-
+ EXT must be greater than zero and not more than three.
+ EGL_YUV_SUBSAMPLE_EXT allows the user to decide how the surface will be
+ subsampled.
+
+ Valid combinations are:
+
+ EGL_YUV_SUBSAMPLE_EXT EGL_YUV_NUMBER_OF_PLANES_EXT EGL_YUV_ORDER_EXT EGL_YUV_PLANE_BPP_EXT
+ ------------------------- ----------------------------- ------------------ ------------------------
+ EGL_YUV_SUBSAMPLE_4_2_0_EXT 2 or 3 EGL_YUV_ORDER_YUV_EXT or EGL_YUV_PLANE_BPP_8_EXT or
+ EGL_YUV_ORDER_YVU_EXT EGL_YUV_PLANE_BPP_10_EXT
+
+ EGL_YUV_SUBSAMPLE_4_2_2_EXT 1 EGL_YUV_ORDER_YUYV_EXT or EGL_YUV_PLANE_BPP_8_EXT or
+ EGL_YUV_ORDER_YVYU_EXT or EGL_YUV_PLANE_BPP_10_EXT
+ EGL_YUV_ORDER_UYVY_EXT or
+ EGL_YUV_ORDER_VYUY_EXT
+
+ EGL_YUV_SUBSAMPLE_4_2_2_EXT 2 or 3 EGL_YUV_ORDER_YUV_EXT or EGL_YUV_PLANE_BPP_8_EXT or
+ EGL_YUV_ORDER_YVU_EXT EGL_YUV_PLANE_BPP_10_EXT
+
+ EGL_YUV_SUBSAMPLE_4_4_4_EXT 1 EGL_YUV_ORDER_AYUV_EXT EGL_YUV_PLANE_BPP_8_EXT or
+ EGL_YUV_PLANE_BPP_10_EXT
+
+ Usage examples:
+
+ Format Combination
+ ------------------ --------------------------------------------------------------
+ NV12 EGL_YUV_SUBSAMPLE_EXT = EGL_YUV_SUBSAMPLE_4_2_0_EXT
+ - YUV420 EGL_YUV_NUMBER_OF_PLANES_EXT = 2
+ - 2 Planes : Y + UV EGL_YUV_ORDER_EXT = EGL_YUV_ORDER_YUV_EXT
+ - 8 bit depth EGL_YUV_PLANE_BPP_EXT = EGL_YUV_PLANE_BPP_8_EXT
+
+ NV21 EGL_YUV_SUBSAMPLE_EXT = EGL_YUV_SUBSAMPLE_4_2_0_EXT
+ - YUV420 EGL_YUV_NUMBER_OF_PLANES_EXT = 2
+ - 2 Planes : Y + VU EGL_YUV_ORDER_EXT = EGL_YUV_ORDER_YVU_EXT
+ - 8 bit depth EGL_YUV_PLANE_BPP_EXT = EGL_YUV_PLANE_BPP_8_EXT
+
+ YV12 EGL_YUV_SUBSAMPLE_EXT = EGL_YUV_SUBSAMPLE_4_2_0_EXT
+ - YUV420 EGL_YUV_NUMBER_OF_PLANES_EXT = 3
+ - 3 Planes : Y + V + U EGL_YUV_ORDER_EXT = EGL_YUV_ORDER_YVU_EXT
+ - 8 bit depth EGL_YUV_PLANE_BPP_EXT = EGL_YUV_PLANE_BPP_8_EXT
+
+ YUY2 EGL_YUV_SUBSAMPLE_EXT = EGL_YUV_SUBSAMPLE_4_2_2_EXT
+ - YUV422 EGL_YUV_NUMBER_OF_PLANES_EXT = 1
+ - 1 Plane : Y + U + Y + V EGL_YUV_ORDER_EXT = EGL_YUV_ORDER_YUYV_EXT
+ - 8 bit depth EGL_YUV_PLANE_BPP_EXT = EGL_YUV_PLANE_BPP_8_EXT
+
+ AYUV EGL_YUV_SUBSAMPLE_EXT = EGL_YUV_SUBSAMPLE_4_4_4_EXT
+ - YUV444 EGL_YUV_NUMBER_OF_PLANES_EXT = 1
+ - 1 Plane : A + Y + U + V EGL_YUV_ORDER_EXT = EGL_YUV_ORDER_AYUV_EXT
+ - 8 bit depth EGL_YUV_PLANE_BPP_EXT = EGL_YUV_PLANE_BPP_8_EXT
+
+ YUV420 Semi-Planar 10 Bit EGL_YUV_SUBSAMPLE_EXT = EGL_YUV_SUBSAMPLE_4_2_0_EXT
+ - YUV420 EGL_YUV_NUMBER_OF_PLANES_EXT = 2
+ - 2 Planes : Y + UV EGL_YUV_ORDER_EXT = EGL_YUV_ORDER_YUV_EXT
+ - 10 bit depth EGL_YUV_PLANE_BPP_EXT = EGL_YUV_PLANE_BPP_10_EXT
+
+ YUV422 Interleaved 10 Bit EGL_YUV_SUBSAMPLE_EXT = EGL_YUV_SUBSAMPLE_4_2_2_EXT
+ - YUV422 EGL_YUV_NUMBER_OF_PLANES_EXT = 1
+ - 1 Plane : Y + U + Y + V EGL_YUV_ORDER_EXT = EGL_YUV_ORDER_YUYV_EXT
+ - 8 bit depth EGL_YUV_PLANE_BPP_EXT = EGL_YUV_PLANE_BPP_10_EXT
+
+ EGL_YUV_PLANE_BPP_EXT describes the bit depth for the different
+ planes of a YUV surface. The available options are EGL_YUV_PLANE_BPP_0_-
+ EXT, EGL_YUV_PLANE_BPP_8_EXT and EGL_YUV_PLANE_BPP_10_EXT. If EGL_YUV_-
+ PLANE_BPP_0_EXT is specified, no color buffer will be created for the
+ surface.
+ EGL_YUV_DEPTH_RANGE_EXT describes the range of the pixel value and is
+ dependent on the EGL_YUV_PLANE_BPP_EXT setting:
+
+ EGL_YUV_PLANE_BPP_EXT EGL_YUV_DEPTH_RANGE_LIMITED_EXT EGL_YUV_DEPTH_RANGE_FULL_EXT
+ (Inclusive) (Inclusive)
+ ------------------------- -------------------------------- -----------------------------
+ EGL_YUV_PLANE_BPP_8_EXT or Y: 16 to 235, UV: 16 to 240 Y: 0 to 255, UV: 0 to 255
+ EGL_YUV_PLANE_BPP_10_EXT Y: 64 to 940, UV: 64 to 960 Y: 0 to 1023, UV: 0 to 1023
+
+ If OpenGL or OpenGL ES rendering is supported for a luminance color
+ buffer (as described by the value of the EGL_RENDERABLE_TYPE attribute,
+ described below), it is treated as RGB rendering with the value of
+ GL_RED_BITS equal to EGL_LUMINANCE_SIZE and the values of GL_GREEN_BITS and
+ GL_BLUE_BITS equal to zero. The red component of fragments is written to the
+ luminance channel of the color buffer, the green and blue components are
+ discarded, and the alpha component is written to the alpha channel of the
+ color buffer (if present).
+ When rendering to the YUV surface, if EGL_YUV_ORDER_EXT is not EGL_-
+ YUV_ORDER_AYUV_EXT, the alpha channel will always be fully opaque.
+ Otherwise it is defined by the value provided to the alpha sample.
+ EGL_BUFFER_SIZE gives the total of the color component bits of the color
+ buffer for EGL_RGB_BUFFER or for EGL_LUMINANCE_BUFFER. For an RGB color
+ buffer, the total is the sum of EGL_RED_SIZE, EGL_GREEN_SIZE, EGL_BLUE_SIZE,
+ and EGL_ALPHA_SIZE. For a luminance color buffer, the total is the sum of
+ EGL_LUMINANCE_SIZE and EGL_ALPHA_SIZE. When EGL_COLOR_BUFFER_TYPE is of type
+ EGL_YUV_BUFFER_EXT, this will reflect the enumeration provided
+ as an integer) for EGL_YUV_PLANE_BPP_EXT, giving a value of 0, 8 or 10.
+
+ Other EGLConfig Attribute Descriptions
+
+ EGL_YUV_CSC_STANDARD_EXT can be set to either EGL_YUV_CSC_STANDARD_-
+ 601_EXT, EGL_YUV_CSC_STANDARD_709_EXT, or EGL_YUV_CSC_2020_EXT. If the
+ standard chosen is EGL_YUV_CSC_STANDARD_709_EXT, then the color conversion
+ follows the ITU-R BT.709 standard. If EGL_YUV_CSC_STANDARD_EXT is set to
+ EGL_YUV_CSC_2020_EXT, then the color conversion will be processed based on
+ ITU-R BT.2020.
+
+
+Change option 2 in the section marked as 3.4.1.2 Sorting of EGLConfigs to:
+
+ 2. Special: by EGL_COLOR_BUFFER_TYPE where the precendence is EGL_RGB_-
+ BUFFER, EGL_LUMINANCE_BUFFER, EGL_YUV_BUFFER_EXT.
+
+Change option 3 in the section marked as 3.4.1.2 Sorting of EGLConfigs to:
+
+ 3. Special: by larger total number of color bits (for an RGB color buffer,
+ this is the sum of EGL_RED_SIZE, EGL_GREEN_SIZE, EGL_BLUE_SIZE, and
+ EGL_ALPHA_SIZE; for a luminance color buffer, the sum of EGL_LUMINANCE_SIZE
+ and EGL_ALPHA_SIZE; for YUV color buffers, this returns the integer value
+ with respect to the enumeration provided for EGL_YUV_PLANE_BPP_EXT) If the
+ requrested number of bits in attrib_list for a particular color component
+ is 0 or EGL_DONT_CARE, then the number of bits for the component is not
+ considered. Due to this, YUV color buffers are always last based on this
+ rule.
+
+The following options should be added between options 9 and 10 in section
+3.4.1.2 (EGL_ALPHA_MASK_SIZE and EGL_NATIVE_VISUAL_TYPE):
+
+ 10. Special: EGL_YUV_ORDER_EXT will be sorted in the following order:
+ EGL_NONE, EGL_YUV_ORDER_YUV_EXT, EGL_YUV_ORDER_YVU_EXT, EGL_YUV_ORDER_-
+ YUYV_EXT, EGL_YUV_ORDER_YVYU_EXT, EGL_YUV_ORDER_UYVY_EXT, EGL_YUV_ORDER_-
+ VYUY_EXT, and EGL_YUV_ORDER_AYUV_EXT.
+
+Change option 10 in section 3.4.1.2 (EGL_NATIVE_VISUAL_TYPE) to:
+
+ 11. Special: by EGL_NATIVE_VISUAL_TYPE (the actual sort order is
+ implementation-deï¬ned, depending on the meaning of native visual types).
+
+New State
+
+ Add to table 3.1 (EGLConfig Attributes):
+
+ Attribute Type Notes
+ ----------------------------- ---- --------------------------------------------
+ EGL_YUV_ORDER_EXT enum The order in which the samples will be found
+ inside the surface
+ EGL_YUV_NUMBER_OF_PLANES_EXT integer Number of planes for the surface, in the range of [1,3]
+ EGL_YUV_SUBSAMPLE_EXT enum Describes the sampling rate of the different planes.
+ EGL_YUV_DEPTH_RANGE_EXT enum Luma plane range. limited is [16,240] and
+ full range is [0,255]
+ EGL_YUV_CSC_STANDARD_EXT enum The standard used for color conversion.
+ EGL_YUV_PLANE_BPP_EXT enum How many bits are used for each plane of
+ the YUV surface
+
+ Add to table 3.4 (Default values and match criteria for EGLConfig
+ attributes):
+
+ Attribute Default Selection Sort Sort
+ Criteria Order Priority
+ ------------------------- -------------------------------- --------- ------- --------
+ EGL_YUV_ORDER_EXT EGL_DONT_CARE Exact Special 10
+ EGL_YUV_NUMBER_OF_PLANES_EXT 0 At least None
+ EGL_YUV_SUBSAMPLE_EXT EGL_DONT_CARE Exact None
+ EGL_YUV_DEPTH_RANGE_EXT EGL_DONT_CARE Exact None
+ EGL_YUV_CSC_STANDARD_EXT EGL_DONT_CARE Exact None
+ EGL_YUV_PLANE_BPP_EXT EGL_DONT_CARE Exact None
+
+Issues
+ 1. How will a EGL surface created with a YUV config properly detect that
+ valid values were used when filling pixel data?
+
+ This problem occurs in situations when a specification which defines
+ rendering to the YUV surface cannot guarantee values that conform to the
+ configuration attributes. One possible situation for this is when a
+ the GL client is using GL_EXT_yuv_target and the EGL YUV surface is the
+ draw buffer. The shader can transform the values inside the shader, and
+ there is no guarantee that the values will fall into the EGL_YUV_DEPTH_-
+ RANGE_EXT value chosen. Other client specifications could have similar
+ issues and it may not be performant for some hardware to detect this
+ discrepancy. This includes interactions with extensions such as EGL_-
+ lock_surface, or any others that provide a mechanism to change the
+ contents of the YUV surface.
+
+ One of the problems that can occur in situations like this will be
+ compound mathematical error should operations need to take place on the
+ buffer data.
+
+ Proposal: Due to the performance problems or inability in some hardware
+ to deal with this issue, the pixel contents will be undefined and any
+ further operations to the pixel contents will also be undefined.
+ Therefore it is up to the application to guarantee the correct values
+ are stored within the surface. The EGL implementation need not attempt
+ any form of verification on the pixel data of the YUV surface, nor does
+ it have to guarantee the pixel data, even with communicating the surface
+ to other modules through a post or any other operation EGL performs.
+
+ 2. Should an EGL_COLOR_BUFFER_TYPE = EGL_DONT_CARE request enumerate all
+ YUV configs?
+
+ Resolved: Revision #9 changes the default values and selection criteria
+ to allow for full enumeration of all YUV configs. The default value of
+ EGL_COLOR_BUFFER_TYPE remains EGL_RGB_BUFFER, so this change only
+ affects explicit EGL_DONT_CARE requests.
+
+Example Configuration for NV12:
+
+ const EGLint config_attribs[] =
+ {
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_COLOR_BUFFER_TYPE, EGL_YUV_BUFFER_EXT,
+ EGL_YUV_ORDER_EXT, EGL_ORDER_YUV_EXT,
+ EGL_YUV_NUMBER_OF_PLANES_EXT, 2,
+ EGL_YUV_SUBSAMPLE_EXT, EGL_YUV_SUBSAMPLE_4_2_0_EXT,
+ EGL_YUV_DEPTH_RANGE_EXT, EGL_YUV_DEPTH_RANGE_LIMITED_EXT,
+ EGL_YUV_CSC_STANDARD_EXT, EGL_YUV_CSC_STANDARD_601_EXT,
+ EGL_YUV_PLANE_BPP_EXT, EGL_YUV_PLANE_BPP_8_EXT,
+ EGL_NONE
+ };
+
+Revision History
+#1 March 12th, 2014 Initial Draft.
+
+#2 March 25th, 2014 Reformated and added more detail.
+
+#3 March 26th, 2014 Added usage examples.
+ Added memory layout definitions.
+
+#4 March 26th, 2014 Fixed some typos and formatting.
+
+#5 May 21st, 2014 Fixed some inconsistencies.
+ Added EGL_YUV_PLANE_DEPTH_0_QCOM.
+
+#6 May 27th, 2014 Relaxed some requirements.
+ Changed EGL_YUV_PLANE_DEPTH_<0,8,10>_QCOM to
+ EGL_YUV_PLANE_BPP_<0,8,10>_QCOM.
+ Added more detail.
+
+#7 October 7th, 2014 Issue (1) added.
+ Minor updates made (EXT_yuv_target)
+
+#8 October 24th, 2014 Updated for EXT and token values.
+
+#9 April 26th, 2017 Changed attributes default values and selection
+ criteria (see issue #2).
+ Changed status from Draft to Complete.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/HI/EGL_HI_clientpixmap.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/HI/EGL_HI_clientpixmap.txt
new file mode 100644
index 0000000..5ca366d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/HI/EGL_HI_clientpixmap.txt
@@ -0,0 +1,144 @@
+Name
+
+ HI_clientpixmap
+
+Name Strings
+
+ EGL_HI_clientpixmap
+
+Contributors
+
+ Guillaume Portier
+
+Contacts
+
+ HI support. (support_renderion 'at' hicorp.co.jp)
+
+Status
+
+ Shipping (Revision 3).
+
+Version
+
+ Last Modified Date: June 7, 2010
+ Revision 3
+
+Number
+
+ EGL Extension #24
+
+Dependencies
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ The extension specified in this document provide a mechanism for
+ using memory allocated by the application as a color-buffer.
+
+
+New Types
+
+ EGLClientPixmapHI : specifies the width, height, stride, format
+ and memory pointer of the pixmap to be used by the function
+ eglCreatePixmapSurfaceHI to create the PixmapSurface.
+
+ Members:
+ void* pData;
+ Pointer to a memory buffer allocated by the application
+ that will contain the result of the drawing operations.
+ It is up to the application to ensure that the buffer
+ size corresponds to iHeight * iStride * sizeof(pixel).
+ EGLint iWidth;
+ Width of the buffer in pixels.
+ EGLint iHeight;
+ Height of the buffer in pixels. The height of the buffer
+ can be negative; in that case the result of the
+ drawing operations will be vertically swapped. When
+ positive, pData will point at the bottom-left corner
+ of the image; when negative, to the top-left corner.
+ EGLint iStride;
+ Stride of the buffer, in pixels. It is important to note
+ that each row of the buffer must start on 32-bit
+ boundaries.
+
+New Procedures and Functions
+
+ eglCreatePixmapSurfaceHI : creates an EGL ClientPixmap from
+ an EGLClientPixmapHI structure. eglCreatePixmapSurfaceHI usage
+ is identical to eglCreatePixmapSurface. In addition the ordering
+ of the color components in the color buffer can be specified by
+ the surface attribute described in the EGL_HI_colorformats
+ extension.
+
+ In order to update the pointer to the data of the surface, the application
+ can call eglSurfaceAttrib with the EGL_CLIENT_PIXMAP_POINTER_HI attribute.
+ See below for an example.
+
+New Tokens
+
+ None.
+
+Example
+
+
+ EGLClientPixmapHI pixmap;
+ EGLint attrib_list[] = {
+ EGL_RED_SIZE, 8,
+ EGL_GREEN_SIZE, 8,
+ EGL_BLUE_SIZE, 8,
+ EGL_ALPHA_SIZE, 8,
+ EGL_SURFACE_TYPE, EGL_PIXMAP_BIT,
+ // Specifying ARGB as a color format
+ EGL_COLOR_FORMAT_HI, EGL_COLOR_ARGB_HI,
+ EGL_NONE
+ };
+
+ // ‘access' being the memory to render into.
+ pixmap.pData = framebuffer.access;
+ pixmap.iWidht = framebuffer.width;
+ pixmap.iHeight = framebuffer.height;
+ pixmap.iStride = framebuffer.stride;
+
+
+
+ //Get Config ARGB8
+ eglChooseConfig(dpy, attrib_list, &config, 1, &num_config);
+
+ // Create the pixmap
+ #ifdef EGL_EGLEXT_PROTOTYPES
+
+ eglCreatePixmapSurfaceHI(eglDisplay, ppkConfig[0], &gHiPixmap);
+
+ #else
+
+ pfCreatePixmap = (PFNEGLCREATEPIXMAPSURFACEHIPROC)
+ eglGetProcAddress("eglCreatePixmapSurfaceHI");
+ pfCreatePixmap(eglDisplay, ppkConfig[0], &gHiPixmap);
+
+ #endif /* EGL_EGLEXT_PROTOTYPES */
+
+
+ // Update the surface data pointer, from now we will render into the
+ // memory pointed by 'access2'.
+ eglSurfaceAttrib(eglDisplay, eglSurface, EGL_CLIENT_PIXMAP_POINTER_HI,
+ offscreen.access2);
+
+Issues
+
+ None
+
+
+Revision History
+
+ June 7, 2010 (r3)
+ - Allow updating the pixmap data pointer using eglSurfaceAttrib with
+ the EGL_CLIENT_PIXMAP_POINTER_HI attribute.
+
+ June 16, 2009 (r2)
+ - Split HI_clientpixmap into two different extensions:
+ - HI_colorformats
+ - HI_clientpixmap
+
+ March 3, 2009 (r1)
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/HI/EGL_HI_colorformats.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/HI/EGL_HI_colorformats.txt
new file mode 100644
index 0000000..c8dc97a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/HI/EGL_HI_colorformats.txt
@@ -0,0 +1,138 @@
+Name
+
+ HI_colorformats
+
+Name Strings
+
+ EGL_HI_colorformats
+
+Contributors
+
+ Guillaume Portier
+
+Contacts
+
+ HI support. (support_renderion 'at' hicorp.co.jp)
+
+Status
+
+ Shipping (Revision 2)
+
+Version
+
+ Last Modified Date: June 7, 2010
+ Revision 2.1
+
+Number
+
+ EGL Extension #25
+
+Dependencies
+
+ These extensions are written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ The extensions specified in this document provide a mechanism for
+ creating ARGB color-buffers, as opposed to the default RGBA
+ format used by other EGL configurations.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted in the <attrib_list> parameter of eglChooseConfig.
+
+ EGL_COLOR_FORMAT_HI 0x8F70
+
+ Accepted as a value for the EGL_COLOR_FORMAT_HI token:
+
+ EGL_COLOR_RGB_HI 0x8F71
+ EGL_COLOR_RGBA_HI 0x8F72
+ EGL_COLOR_ARGB_HI 0x8F73
+
+
+ The default value for EGL_COLOR_FORMAT_HI is EGL_DONT_CARE.
+ If EGL_COLOR_FORMAT_HI is used with a value other than
+ EGL_DONT_CARE, EGL_COLOR_RGB_HI, EGL_COLOR_RGBA_HI or
+ EGL_COLOR_ARGB_HI then an EGL_BAD_ATTRIBUTE is generated.
+
+ EGL_COLOR_RGB_HI, EGL_COLOR_RGBA_HI and EGL_COLOR_ARGB_HI
+ specify the order of the color components in the color-buffer.
+ EGL_COLOR_RGB_HI must be used only with configurations having no
+ alpha component, currently only 565.
+
+ EGL_COLOR_RGBA_HI and EGL_COLOR_ARGB_HI must be used with
+ configurations having an alpha component. Currently available
+ configurations are:
+ - 4444
+ - 5551
+ - 8888
+ Currently EGL_COLOR_ARGB_HI can be used only with the
+ 8888 configuration.
+
+ If the value used for EGL_COLOR_FORMAT_HI does not match
+ the other specified attributes of the EGL config then an
+ EGL_BAD_MATCH is generated.
+
+ When EGL_COLOR_FORMAT_HI is unspecified or equals EGL_DONT_CARE,
+ eglChooseConfig returns configurations having all kinds of color
+ component ordering.
+
+ If eglCreatePixmapSurface is called with a configuration that
+ does not match the pixmap's native ordering then an EGL_BAD_MATCH
+ is generated. To be sure to call eglCreatePixmapSurface with a
+ compatible configuration, the application should either parse
+ the <configs> list returned by eglChooseConfig or explicitly specify
+ EGL_COLOR_FORMAT_HI to match the pixmap native format.
+
+Example
+
+ EGLint attrib_list[] = {
+ EGL_RED_SIZE, 8,
+ EGL_GREEN_SIZE, 8,
+ EGL_BLUE_SIZE, 8,
+ EGL_ALPHA_SIZE, 8,
+ EGL_SURFACE_TYPE, EGL_PIXMAP_BIT,
+
+ #ifdef USE_ARGB // Specifying ARGB as a color format
+ EGL_COLOR_FORMAT_HI, EGL_COLOR_ARGB_HI,
+ #else // Specifying RGBA as a color format
+ EGL_COLOR_FORMAT_HI, EGL_COLOR_RGBA_HI,
+ #endif
+
+ EGL_NONE
+ };
+
+ // Get one of the configuration matching the config_list
+ eglChooseConfig(dpy, attrib_list, &config, 1, &num_config);
+
+ // Create the pixmap
+ eglCreatePixmapSurface(dpy, config[0], pixmap, NULL);
+
+
+Issues
+
+ None.
+
+
+Revision History
+
+
+ June 7, 2010 (r2.1)
+ - Corrected mistaken description of EGL_COLOR_FORMAT_HI as
+ attribute for eglCreatePixmapSurface. Clarified other text.
+
+ June 16, 2009 (r2)
+ - Split HI_clientpixmap into two different extensions:
+ - HI_colorformats
+ - HI_clientpixmap
+
+ March 3, 2009 (r1)
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/IMG/EGL_IMG_context_priority.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/IMG/EGL_IMG_context_priority.txt
new file mode 100644
index 0000000..fa1b4a6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/IMG/EGL_IMG_context_priority.txt
@@ -0,0 +1,166 @@
+Name
+
+ IMG_context_priority
+
+Name Strings
+
+ EGL_IMG_context_priority
+
+Contributors
+
+ Ben Bowman, Imagination Techonologies
+ Graham Connor, Imagination Techonologies
+
+Contacts
+
+ Ben Bowman, Imagination Technologies (benji 'dot' bowman 'at'
+ imgtec 'dot' com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 1.1, 8 September 2009
+
+Number
+
+ EGL Extension #10
+
+Dependencies
+
+ Requires EGL 1.0.
+
+ This extension is written against the wording of the EGL 1.4
+ Specification - May 2, 2008 (but may be implemented against earlier
+ versions).
+
+Overview
+
+ This extension allows an EGLContext to be created with a priority
+ hint. It is possible that an implementation will not honour the
+ hint, especially if there are constraints on the number of high
+ priority contexts available in the system, or system policy limits
+ access to high priority contexts to appropriate system privilege
+ level. A query is provided to find the real priority level assigned
+ to the context after creation.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ New attributes accepted by the <attrib_list> argument of
+ eglCreateContext
+
+ EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100
+
+ New attribute values accepted in the <attrib_list> argument
+ of eglCreateContext:
+
+ EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101
+ EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102
+ EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103
+
+Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Modify the list of attributes supported by eglCreateContext in
+ section 3.7.1 (Creating Rendering Contexts) on p. 42:
+
+ "<attrib_list> specifies a list of attributes for the context.
+ The list has the same structure as described for
+ eglChooseConfig. The only attributes that can be specified in
+ <attrib_list> are EGL_CONTEXT_CLIENT_VERSION and
+ EGL_CONTEXT_PRIORITY_LEVEL_IMG. The EGL_CONTEXT_CLIENT_VERSION
+ attribute may only be specified when creating a OpenGL ES
+ context (e.g. when the current rendering API is
+ EGL_OPENGL_ES_API).
+
+ <attrib_list> may be NULL or empty (first attribute is
+ EGL_NONE), in which case attributes assume their default values
+ as described below.
+
+ EGL_CONTEXT_CLIENT_VERSION determines which version of an OpenGL
+ ES context to create. An attribute value of 1 specifies creation
+ of an OpenGL ES 1.x context. An attribute value of 2 specifies
+ creation of an OpenGL ES 2.x context. The default value for
+ EGL_CONTEXT_CLIENT_VERSION is 1.
+
+ EGL_CONTEXT_PRIORITY_LEVEL_IMG determines the priority level of
+ the context to be created. This attribute is a hint, as an
+ implementation may not support multiple contexts at some
+ priority levels and system policy may limit access to high
+ priority contexts to appropriate system privilege level. The
+ default value for EGL_CONTEXT_PRIORITY_LEVEL_IMG is
+ EGL_CONTEXT_PRIORITY_MEDIUM_IMG."
+
+
+ Modify the list of attributes supported by eglQueryContext in
+ section 3.7.4 (Context Queries) on p. 46:
+
+ "eglQueryContext returns in <value> the value of attribute for
+ <ctx>. <attribute> must be set to EGL_CONFIG_ID,
+ EGL_CONTEXT_CLIENT_TYPE, EGL_CONTEXT_CLIENT_VERSION,
+ EGL_RENDER_BUFFER, or EGL_CONTEXT_PRIORITY_LEVEL_IMG.
+
+ ...
+
+ Querying EGL_CONTEXT_PRIORITY_LEVEL_IMG returns the priority
+ this context was actually created with. Note: this may not be
+ the same as specified at context creation time, due to
+ implementation limits on the number of contexts that can be
+ created at a specific priority level in the system."
+
+ISSUES:
+
+ 1) Should the context priority be treated as a hint or a requirement
+
+ RESOLVED: The context priority should be a hint. System policy may
+ limit high priority contexts to appropriate system privilege level.
+ Implementations may have a limit on the number of context supported
+ at each priority, and may require all contexts within a process to
+ have the same priority level.
+
+ 2) Can an application find out what priority a context was assigned?
+
+ RESOLVED: Provide a query to find the assigned priority for a
+ context. An application may find that it has a lower (or higher)
+ priority than requested (although it probably cannot do much with
+ the information).
+
+ 3) How many priority levels should be defined?
+
+ RESOLVED: Three seems appropriate, as the highest provides the
+ largest GPU timeslice and reduced latency. It might be useful to
+ specify a low priority context which has a small timeslice and high
+ latency. It is possible that a request for LOW will actually return
+ MEDIUM on an implementation that doesn't differentiate between the
+ lower two levels.
+
+ 4) What should the default priority level be if not specified?
+
+ OPTION 1: HIGH - This allows applications that are unaware of
+ this extension to get the highest priority possible.
+
+ OPTIONS 2: MEDIUM - This allows truly high priority applications
+ to differentiate themselves from applications which are unaware
+ of this extension.
+
+ RESOLVED:
+ OPTION 2: MEDIUM - Allow truly high priority applications to
+ differentiate themselves.
+
+Revision History
+ Version 1.1, 08/09/2009 (Jon Leech) Assign extension number and
+ publish in the Registry. Formatting cleanup.
+ Version 1.0, 30/04/2009 - Final clean up. Marked issues as resolved,
+ take out draft status
+ Version 0.3, 22/04/2009 - enums assigned from Khronos registry.
+ Version 0.2, 02/04/2009 - feedback from gdc.
+ Version 0.1, 31/03/2009 - first draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/IMG/EGL_IMG_image_plane_attribs.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/IMG/EGL_IMG_image_plane_attribs.txt
new file mode 100644
index 0000000..35841dc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/IMG/EGL_IMG_image_plane_attribs.txt
@@ -0,0 +1,156 @@
+Name
+
+ IMG_image_plane_attribs
+
+Name Strings
+
+ EGL_IMG_image_plane_attribs
+
+Contributors
+
+ Ben Bowman
+ Alistair Strachan
+
+Contacts
+
+ Tobias Hector, Imagination Technologies (tobias 'dot' hector 'at'
+ imgtec 'dot' com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 0.4, October 18, 2015
+
+Number
+
+ EGL Extension #95
+
+Dependencies
+
+ EGL_KHR_image_base is required.
+
+ One of EGL_KHR_image, EGL_KHR_image_pixmap or
+ EGL_ANDROID_image_native_buffer is required.
+
+ This extension is written against the wording of the EGL 1.2
+ Specification as modified by EGL_KHR_image_base,
+ EGL_ANDROID_image_native_buffer and EGL_KHR_image_pixmap.
+ This extension interacts with GL_OES_EGL_image and GL_EXT_texture_rg.
+
+Overview
+
+ This extension allows creating an EGLImage from a single plane of a
+ multi-planar Android native image buffer (ANativeWindowBuffer) or
+ a native pixmap (EGLNativePixmap).
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted by the <attrib_list> parameter of eglCreateImageKHR:
+
+ EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105
+ EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106
+
+Additions to Chapter 2 of the EGL 1.2 Specification (EGL Operation)
+
+ Add to section 2.5.1 "EGLImage Specification" (as defined by the
+ EGL_KHR_image_base specification), in the description of
+ eglCreateImageKHR:
+
+ Add the following to Table bbb (Legal attributes for eglCreateImageKHR
+ <attr_list> parameter), Section 2.5.1 (EGLImage Specification)
+
+ +-----------------------------+-------------------------+---------------------------+---------------+
+ | Attribute | Description | Valid <target>s | Default Value |
+ +-----------------------------+-------------------------+---------------------------+---------------+
+ | EGL_NATIVE_BUFFER_MULTI | Whether a multiplane | EGL_NATIVE_BUFFER_ANDROID | EGL_FALSE |
+ | PLANE_SEPARATE_IMG | native buffer should be | EGL_NATIVE_PIXMAP_KHR | |
+ | | treated as separate | | |
+ | | buffers | | |
+ | | | | |
+ | EGL_NATIVE_BUFFER_ | Which plane of a multi- | EGL_NATIVE_BUFFER_ANDROID | 0 |
+ | PLANE_OFFSET_IMG | plane native buffer is | EGL_NATIVE_PIXMAP_KHR | |
+ | | used as the EGLImage | | |
+ | | source | | |
+ +-----------------------------+-------------------------+---------------------------+---------------+
+ Table bbb. Legal attributes for eglCreateImageKHR <attrib_list> parameter
+
+ ...
+
+ If <target> is EGL_NATIVE_BUFFER_ANDROID or EGL_NATIVE_PIXMAP_KHR, and
+ <buffer> is a handle to a valid multi-planar surface, such as a YUV420 2 or
+ 3 planar video surface, an EGLImage will be created from only one of the
+ planes, as opposed to a single image representing all of the planes as is
+ normally the case. The intention of this extension is that a call to
+ glEGLImageTargetTexture2DOES or EGLImageTargetRenderbufferStorageOES with an
+ EGLImage created from a single plane of a multiplanar buffer will result in
+ a GL_RED or GL_RG texture or renderbuffer, depending on the format of the
+ multiplanar buffer. This allows an application to work directly in the YUV
+ colorspace, rather than forcing a conversion to the linear RGB colorspace,
+ potentially losing precision.
+
+ The size of each image will represent the actual size of the data buffer
+ for that plane which may mean that the size of an EGLImage created from
+ plane 0 of a multi-planar buffer may not be the same as that of one
+ created from plane 1, which is determined by the YUV's sampling ratio (e.g.
+ a 420 will have planes 1 and 2, if present, represented by an image of half
+ the width).
+
+ Add to the list of error conditions for eglCreateImageKHR:
+
+ "* If EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG is EGL_TRUE, and <target>
+ is not EGL_NATIVE_BUFFER_ANDROID or EGL_NATIVE_PIXMAP_KHR, the error
+ EGL_BAD_PARAMETER is generated.
+
+ * If EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG is EGL_TRUE, and
+ EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG is greater than or equal to the
+ number of planes in <buffer>, the error EGL_BAD_MATCH is generated.
+
+ * If EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG is EGL_FALSE, and
+ EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG is greater than 0, the error
+ EGL_BAD_PARAMETER is generated.
+
+ * If EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG is EGL_TRUE, and the
+ format of <buffer> is not supported by the implementation,
+ EGL_BAD_PARAMETER is generated."
+
+Dependencies on EGL_KHR_image_pixmap or EGL_KHR_image
+
+ If neither of these extensions are supported, remove all references to
+ native pixmaps and EGL_NATIVE_PIXMAP_KHR.
+
+Dependencies on EGL_ANDROID_image_native_buffer
+
+ If this extension is not supported, remove all references to
+ ANativeWindowBuffer and EGL_NATIVE_BUFFER_ANDROID.
+
+Issues
+
+ None
+
+Revision History
+
+#0.4 (Tobias Hector, October, 2015)
+ - Add interactions with EGL_KHR_image_pixmap/EGL_KHR_image
+ - Added error language for unsupported formats
+#0.3 (Jon Leech, June 13, 2013)
+ - Add a "Valid Targets" column to table bbb for new attributes, matching
+ proposed changes in EGL_KHR_image_base (Bug 10151). Note that this
+ change implies a new error will be generated when <target> is not
+ EGL_NATIVE_BUFFER_ANDROID and EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG is
+ specified in <attrib_list>; this falls out from the generic
+ target-attribute matching error added to EGL_KHR_image_base.
+#0.2 (Ben Bowman, May 30, 2012)
+ - Fixed some typos
+#0.1 (Ben Bowman, May 30, 2012)
+ - First draft of extension .
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_cl_event.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_cl_event.txt
new file mode 100644
index 0000000..92f4a73
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_cl_event.txt
@@ -0,0 +1,278 @@
+Name
+
+ KHR_cl_event
+
+Name Strings
+
+ EGL_KHR_cl_event
+
+Contributors
+
+ Jon Leech, Khronos
+ Alon Or-bach, Samsung Electronics
+
+Contact
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+
+IP Status
+
+ No known claims.
+
+Notice
+
+ Copyright (c) 2010-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ This extension is obsolete and has been replaced by EGL_KHR_cl_event2.
+ Khronos recommends implementers who support this extension also
+ implement cl_event2, and begin transitioning developers to using that
+ extension. See issue 17 for the reason.
+
+ Complete. Approved by the EGL Working Group on 2013/05/15.
+ Approved by the Khronos Board of Promoters on 2013/07/19.
+
+Version
+
+ Version 10, December 4, 2013
+
+Number
+
+ EGL Extension #60
+
+Dependencies
+
+ EGL 1.4 and the EGL_KHR_fence_sync extension are required.
+
+ This extension is written against the language added to EGL 1.2 by
+ the EGL_KHR_fence_sync extension.
+
+ An OpenCL implementation supporting sharing OpenCL event objects
+ with EGL is required.
+
+Overview
+
+ This extension allows creating an EGL fence sync object linked to an
+ OpenCL event object, potentially improving efficiency of sharing
+ images between the two APIs. The companion cl_khr_egl_event
+ extension provides the complementary functionality of creating an
+ OpenCL event object from an EGL fence sync object.
+
+New Types
+
+ None. However, event handles of type cl_event, defined in the OpenCL
+ header files, may be included in the attribute list passed to
+ eglCreateSyncKHR.
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as attribute names in the <attrib_list> argument
+ of eglCreateSyncKHR:
+
+ EGL_CL_EVENT_HANDLE_KHR 0x309C
+
+ Returned in <values> for eglGetSyncAttribKHR <attribute>
+ EGL_SYNC_TYPE_KHR:
+
+ EGL_SYNC_CL_EVENT_KHR 0x30FE
+
+ Returned in <values> for eglGetSyncAttribKHR <attribute>
+ EGL_SYNC_CONDITION_KHR:
+
+ EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Add following the description of fence sync objects in section 3.8.1
+ (e.g. following the paragraph beginning "<Fence sync objects> are
+ created..."
+
+ "A <CL event sync object> reflects the status of a corresponding
+ OpenCL event object to which the sync object is linked. This
+ provides another method of coordinating sharing of images between
+ EGL and OpenCL (see Chapter 9 of the OpenCL 1.0 Specification and
+ the cl_khr_egl_sharing extension). Waiting on such a sync object is
+ equivalent to waiting for completion of the linked CL event object."
+
+ Add following the description of fence sync objects (prior to the
+ "Errors" section for eglCreateSyncKHR):
+
+ "If <type> is EGL_SYNC_CL_EVENT_KHR, a CL event sync object is
+ created. In this case <attrib_list> must contain the attribute
+ EGL_CL_EVENT_HANDLE_KHR, set to a valid OpenCL event. Note that
+ EGL_CL_EVENT_HANDLE_KHR is not a queriable property of a sync
+ object. Attributes of the CL event sync objects are set as follows:
+
+ Attribute Name Initial Attribute Value(s)
+ ------------- --------------------------
+ EGL_SYNC_TYPE_KHR EGL_SYNC_CL_EVENT_KHR
+ EGL_SYNC_STATUS_KHR Depends on status of <event>
+ EGL_SYNC_CONDITION_KHR EGL_SYNC_CL_EVENT_COMPLETE_KHR
+
+ The status of such a sync object depends on <event>. When the status
+ of <event> is CL_QUEUED, CL_SUBMITTED, or CL_RUNNING, the status of
+ the linked sync object will be EGL_UNSIGNALED_KHR. When the status
+ of <event> changes to CL_COMPLETE, the status of the linked sync
+ object will become EGL_SIGNALED_KHR.
+
+ Creating a linked sync object places a reference on the linked
+ OpenCL event object. When the sync object is deleted, the reference
+ will be removed from the event object.
+
+ However, implementations are not required to validate the OpenCL
+ event, and passing an invalid event handle in <attrib_list> may
+ result in undefined behavior up to and including program
+ termination."
+
+ Add to the "Errors" section for eglCreateSyncKHR:
+
+ "* If <type> is EGL_SYNC_CL_EVENT_KHR then
+
+ ** If EGL_CL_EVENT_HANDLE_KHR is not specified in <attrib_list>
+ or is not a valid OpenCL event handle returned by a call to
+ clEnqueueReleaseGLObjects or clEnqueueReleaseEGLObjects, then
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_ATTRIBUTE error is
+ generated.
+
+ Replace the EGL_SYNC_CONDITION_KHR row of table 3.cc with:
+
+ "Attribute Description Supported Sync Objects
+ ----------------- ----------------------- ----------------------
+ EGL_SYNC_CONDITION_KHR Signaling condition EGL_SYNC_FENCE_KHR or
+ EGL_SYNC_CL_EVENT_KHR
+
+ Table 3.cc Attributes Accepted by eglGetSyncAttribKHR Command"
+
+
+ Replace the second paragraph describing eglDestroySync with:
+
+ "If any eglClientWaitSyncKHR commands are blocking on <sync> when
+ eglDestroySyncKHR is called, <sync> is flagged for deletion and will
+ be deleted when the associated fence command or CL event object has
+ completed, and <sync> is no longer blocking any eglClientWaitSyncKHR
+ command. Otherwise, the sync object is destroyed immediately."
+
+Sample Code
+
+ None
+
+Conformance Tests
+
+ None yet
+
+Issues
+
+ 1) Does this extension need to introduce eglWaitSync
+ functionality?
+
+ RESOLVED: The EGL_KHR_wait_sync extension introduces this, to allow
+ server-side synchronization, without blocking the client from issuing
+ commands. Whilst this is not a required dependency, GPU-to-GPU
+ synchronization is the most likely use of this extension.
+
+ 2) What should the command to create a sync object linked to an
+ OpenCL event look like?
+
+ RESOLVED: We reuse the general attribute list mechanism rather than
+ having a constructor specific to CL events. This was intended in the
+ sync object design from the start.
+
+ 3) How will the OpenCL header dependencies interact with
+ specifying the API for this extension?
+
+ DISCUSSION: To use this extension, OpenCL event handles of type cl_event
+ are specified in the attribute lists passed to eglCreateSyncKHR. Because
+ no formal parameters are of type cl_event, the EGL headers do not need
+ to define this type. Applications must #include the appropriate OpenCL
+ header files as well as <EGL/eglext.h> when using this extension.
+
+ This issue resolution is consistent with the equivalent issue for
+ GL_ARB_cl_event.
+
+ 4) Should all possible statuses of the CL event be reflected through to the
+ state of the sync object?
+
+ DISCUSSION: CL event objects have four execution statuses:
+ CL_QUEUED, CL_SUBMITTED, CL_RUNNING, and CL_COMPLETE. GL sync
+ objects have only two statuses: UNSIGNALED and SIGNALED. The
+ cl_khr_gl_event extension maps UNSIGNALED into CL_SUBMITTED, and
+ SIGNALED into CL_COMPLETE.
+
+ RESOLVED: Invert the cl_khr_egl_event mapping. CL_QUEUED,
+ CL_SUBMITTED, and CL_RUNNING all map into UNSIGNALED.
+ CL_COMPLETE maps into SIGNALED.
+
+ This issue resolution is consistent with the equivalent issue for
+ GL_ARB_cl_event.
+
+ 5) Are there any restrictions on the use of a sync object linked to a CL
+ event object?
+
+ RESOLVED: No restrictions.
+
+ 6) How are sync object lifetimes defined?
+
+ RESOLVED: A sync object linked to a CL event object places a single
+ reference on the event. Deleting the sync object removes that reference.
+
+ eglDestroySync has a dependency on the completion of the linked event
+ object, and will not delete the sync objectwhile the event object has not
+ yet completed. This is equivalent to behavior of deleting a fence sync
+ object, where deletion of the object will be deferred until the underlying
+ fence command has completed.
+
+ This issue resolution is consistent with the equivalent issue for
+ GL_ARB_cl_event.
+
+ 7) Should all OpenCL events be supported?
+
+ RESOLVED: No. Only events returned by clEnqueueReleaseGLObjects, or
+ clEnqueueReleaseEGLObjects since those are the only known use cases for
+ this extension.
+
+ 8) Why has this extension been obsoleted and replaced by
+ EGL_KHR_cl_event2?
+
+ RESOLVED: Starting with the December 4, 2013 release of EGL 1.4, EGLint
+ is defined to be the same size as the native platform "int" type. Handle
+ and pointer attribute values *cannot* be represented in attribute lists
+ on platforms where sizeof(handle/pointer) > sizeof(int). Existing
+ extensions which assume this functionality are being replaced with new
+ extensions specifying new entry points to work around this issue. See
+ the latest EGL 1.4 Specification for more details.
+
+Revision History
+
+ Version 10, 2013/12/04 (Jon Leech) - add issue 8 explaining that OpenCL
+ event handles cannot be safely passed in attribute lists on 64-bit
+ platforms, and suggest using EGL_KHR_cl_event2 instead.
+
+ Version 9, 2013/08/12 (Jon Leech) - remove unused cl_event type from the
+ extension and from <EGL/eglext.h> (Bug 10661).
+
+ Version 8, 2013/07/19 (Jon Leech) - assign extension number and
+ missing enum value, and clean up a few typos for publication.
+
+ Version 7, 2013/07/08 (Jon Leech) - assign enums (Bug 10490).
+
+ Version 6, 2013/06/11 (Alon Or-bach) - typo correction
+
+ Version 5, 2013/05/30 (Alon Or-bach) - wording cleanup
+
+ Version 4, 2013/05/15 (Alon Or-bach) - updated issue resolutions as agreed,
+ consistent with GL_ARB_cl_event, including using typedef for cl_event
+
+ Version 3, 2013/04/25 (Alon Or-bach) - remove use of CL context,
+ accept events from clEnqueueAcquireEGLObjects and minor cleanup
+
+ Version 2, 2012/06/26 (Jon Leech) - update link to complementary CL
+ extension.
+
+ Version 1, 2010/05/18 (Jon Leech) - initial version based on
+ equivalent GL_ARB_cl_event extension.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_cl_event2.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_cl_event2.txt
new file mode 100644
index 0000000..953487c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_cl_event2.txt
@@ -0,0 +1,364 @@
+Name
+
+ KHR_cl_event2
+
+Name Strings
+
+ EGL_KHR_cl_event2
+
+Contributors
+
+ Jon Leech, Khronos
+ Alon Or-bach, Samsung Electronics
+ Tom Cooksey, ARM
+
+Contact
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+
+IP Status
+
+ No known claims.
+
+Notice
+
+ Copyright (c) 2010-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the EGL Working Group on December 4, 2013.
+
+Version
+
+ Version 5, December 4, 2013
+
+Number
+
+ EGL Extension #65
+
+Dependencies
+
+ EGL 1.4 and the EGL_KHR_fence_sync extension are required.
+
+ This extension is written against the language added to EGL 1.2 by
+ the EGL_KHR_fence_sync extension.
+
+ An OpenCL implementation supporting sharing OpenCL event objects
+ with EGL is required.
+
+ Khronos recommends obsoleting and replacing implementations of
+ EGL_KHR_cl_event with this extension as soon as possible.
+
+Overview
+
+ This extension allows creating an EGL sync object linked to an OpenCL
+ event object, potentially improving efficiency of sharing images between
+ the two APIs. The companion cl_khr_egl_event extension provides the
+ complementary functionality of creating an OpenCL event object from an
+ EGL sync object.
+
+ This extension is functionally identical to EGL_KHR_cl_event, but is
+ intended to replace that extension. It exists only to address an
+ implementation issue on 64-bit platforms where passing OpenCL event
+ handles in an EGLint attribute list value is impossible, because the
+ implementations use a 32-bit type for EGLint.
+
+ This extension also incorporates some required functionality from the
+ EGL_KHR_fence_sync extension, similarly modified for 64-bit platforms.
+
+New Types
+
+ /*
+ * EGLAttribKHR is a integer type used to pass arrays of attribute
+ * name/value pairs which may include pointer and handle attribute
+ * values.
+ */
+ #include <khrplatform.h>
+ typedef intptr_t EGLAttribKHR;
+
+ Event handles of type cl_event, defined in the OpenCL header files, may
+ be included in the attribute list passed to eglCreateSync64KHR.
+
+New Procedures and Functions
+
+ EGLSyncKHR eglCreateSync64KHR(
+ EGLDisplay dpy,
+ EGLenum type,
+ const EGLAttribKHR *attrib_list);
+
+New Tokens
+
+ Accepted as attribute names in the <attrib_list> argument
+ of eglCreateSync64KHR:
+
+ EGL_CL_EVENT_HANDLE_KHR 0x309C
+
+ Returned in <values> for eglGetSyncAttribKHR <attribute>
+ EGL_SYNC_TYPE_KHR:
+
+ EGL_SYNC_CL_EVENT_KHR 0x30FE
+
+ Returned in <values> for eglGetSyncAttribKHR <attribute>
+ EGL_SYNC_CONDITION_KHR:
+
+ EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Modify the language in section 3.8.1 (Sync Objects) starting at the
+ sixth paragraph, describing commands to create sync objects:
+
+ "The commands
+
+ EGLSyncKHR eglCreateSync64KHR(
+ EGLDisplay dpy,
+ EGLenum type,
+ const EGLAttribKHR *attrib_list);
+
+ and
+
+ EGLSyncKHR eglCreateSyncKHR(
+ EGLDisplay dpy,
+ EGLenum type,
+ const EGLint *attrib_list);
+
+ create a sync object ...
+
+ ... When a fence sync object is created, eglCreateSyncKHR and
+ eglCreateSync64KHR also insert a fence command into... "
+
+ Add following the eigth paragraph (the paragraph beginning "<Fence sync
+ objects> are created..."):
+
+ "A <CL event sync object> reflects the status of a corresponding OpenCL
+ event object to which the sync object is linked. This provides another
+ method of coordinating sharing of images between EGL and OpenCL (see
+ Chapter 9 of the OpenCL 1.0 Specification and the cl_khr_egl_sharing
+ extension). Waiting on such a sync object is equivalent to waiting for
+ completion of the linked CL event object.
+
+ CL event sync objects may only be created using the command
+ eglCreateSync64KHR, because they require an attribute which may not be
+ representable in the attrib_list argument of eglCreateSyncKHR."
+
+ Add following the description of fence sync objects (prior to the
+ "Errors" section for eglCreateSyncKHR):
+
+ "If <type> is EGL_SYNC_CL_EVENT_KHR, a CL event sync object is
+ created. In this case <attrib_list> must contain the attribute
+ EGL_CL_EVENT_HANDLE_KHR, set to a valid OpenCL event. Note that
+ EGL_CL_EVENT_HANDLE_KHR is not a queriable property of a sync
+ object. Attributes of the CL event sync objects are set as follows:
+
+ Attribute Name Initial Attribute Value(s)
+ ------------- --------------------------
+ EGL_SYNC_TYPE_KHR EGL_SYNC_CL_EVENT_KHR
+ EGL_SYNC_STATUS_KHR Depends on status of <event>
+ EGL_SYNC_CONDITION_KHR EGL_SYNC_CL_EVENT_COMPLETE_KHR
+
+ The status of such a sync object depends on <event>. When the status
+ of <event> is CL_QUEUED, CL_SUBMITTED, or CL_RUNNING, the status of
+ the linked sync object will be EGL_UNSIGNALED_KHR. When the status
+ of <event> changes to CL_COMPLETE, the status of the linked sync
+ object will become EGL_SIGNALED_KHR.
+
+ Creating a linked sync object places a reference on the linked
+ OpenCL event object. When the sync object is deleted, the reference
+ will be removed from the event object.
+
+ However, implementations are not required to validate the OpenCL
+ event, and passing an invalid event handle in <attrib_list> may
+ result in undefined behavior up to and including program
+ termination."
+
+ The command eglCreateSync64KHR must be used to create a CL event sync
+ object[fn1].
+
+ [fn1] If the implementation also supports the older EGL_KHR_cl_event
+ extension, then eglCreateSyncKHR may also be used to create a CL
+ event sync object. However, this use is not recommended because it
+ is not portable to platforms where OpenCL event handles are larger
+ than 32 bits."
+
+ Modify the ninth and tenth paragraphs, starting "When the condition":
+
+ "When the condition of the sync object is satisfied, the sync is
+ signaled by the associated client API context, causing any
+ eglClientWaitSyncKHR commands (see below) blocking on <sync> to unblock.
+
+ The only condition supported for fence sync objects is
+ EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR, which 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.
+
+ Each client API which supports fence commands indicates this support
+ in the form of a client API extension. If the GL_OES_EGL_sync
+ extension is supported by OpenGL ES (either version 1.x or 2.0), a
+ fence sync object may be created when the currently bound API is
+ OpenGL ES. If the VG_KHR_EGL_sync extension is supported by OpenVG,
+ a fence sync object may be created when the currently bound API is
+ OpenVG.
+
+ The only condition supported for CL event sync objects is
+ EGL_SYNC_CL_EVENT_COMPLETE_KHR, which is satisfied when the status of
+ the OpenCL event associated with the sync object changes to CL_COMPLETE."
+
+ Add to the "Errors" section for eglCreateSyncKHR and eglCreateSync64KHR:
+
+ "* If <type> is EGL_SYNC_CL_EVENT_KHR then
+
+ ** If eglCreateSyncKHR was called, then EGL_NO_SYNC_KHR is returned and
+ an EGL_BAD_ATTRIBUTE error is generated.
+
+ ** If eglCreateSync64KHR was called and EGL_CL_EVENT_HANDLE_KHR is not
+ specified in <attrib_list>, or its attribute value is not a valid
+ OpenCL event handle returned by a call to clEnqueueReleaseGLObjects
+ or clEnqueueReleaseEGLObjects, then EGL_NO_SYNC_KHR is returned and
+ an EGL_BAD_ATTRIBUTE error is generated."
+
+ Replace the EGL_SYNC_CONDITION_KHR row of table 3.cc with:
+
+ "Attribute Description Supported Sync Objects
+ ----------------- ----------------------- ----------------------
+ EGL_SYNC_CONDITION_KHR Signaling condition EGL_SYNC_FENCE_KHR or
+ EGL_SYNC_CL_EVENT_KHR
+
+ Table 3.cc Attributes Accepted by eglGetSyncAttribKHR Command"
+
+
+ Replace the second paragraph describing eglDestroySync with:
+
+ "If any eglClientWaitSyncKHR commands are blocking on <sync> when
+ eglDestroySyncKHR is called, <sync> is flagged for deletion and will
+ be deleted when the associated fence command or CL event object has
+ completed, and <sync> is no longer blocking any eglClientWaitSyncKHR
+ command. Otherwise, the sync object is destroyed immediately."
+
+Sample Code
+
+ None
+
+Conformance Tests
+
+ None yet
+
+Issues
+
+ Note that some issues from the EGL_KHR_cl_event and EGL_KHR_fence_sync
+ extensions also apply to this extension, which incorporates
+ functionality from both of those extensions while making it usable on a
+ 64-bit architecture. Issues specific to this extension are below.
+
+ 1) Why does this extension exist?
+
+ The existence of this extension is an unfortunate necessity. Khronos did
+ not define EGLint as a 64-bit type in the version of <khrplatform.h> we
+ provided, assuming that vendors on those platforms would do so. By the
+ time we discovered that not all vendors had done this, it was too late
+ to fix, because ABI considerations made it impossible for those vendors
+ to change to a 64-bit EGLint type. Our only option was to define new
+ extensions and commands using a new attribute type, EGLAttribKHR, which
+ is explicitly large enough to hold a pointer or handle.
+
+ 2) What is the relationship of this extension to EGL_KHR_cl_event?
+
+ RESOLVED: The only functional difference is that the new
+ eglCreateSync64KHR command must be used to create CL event sync objects.
+ This is necessary because some 64-bit platforms define EGLint as a
+ 32-bit type, making it impossible to pass an arbitrary OpenCL event
+ handle in the EGLint *attrib_list passed to eglCreateSyncKHR.
+
+ 3) How are pointer- and handle-sized attributes represented?
+
+ RESOLVED: Using the new type EGLAttribKHR, which is explicitly defined
+ as an integer type large enough to hold a pointer.
+
+ EGLAttribKHR is defined as an alias of the ISO C intptr_t type, rather
+ than using one of the explicitly-sized types from khrplatform.h.
+ Requiring this means that khrplatform.h must make sure to include the
+ appropriate header file (probably <stdint.h>) and that a C compiler
+ supporting intptr_t must be used. In the past we were concerned about
+ older C/C++ compilers, but this seems an acceptable choice in 2013.
+
+ We could choose to use intptr_t as the base type of attribute lists,
+ instead of the EGLAttribKHR alias. As Ian Romanick has pointed out
+ passionately in ARB discussions, modern C compilers are required to
+ support a well-defined set of scalar types. There is no requirement to
+ use API-specific scalar types when explicitly defining a C API.
+
+ However, there is some value in semantically tagging parameters with EGL
+ types. Also, using 'intptr_t *attrib_list' would be cosmetically
+ objectionable due to mixing EGL* and C native scalar types in EGL APIs.
+
+ We probably want to wait until there's an EGL API compatibility break -
+ a hypothetical "EGL 2.0" - before moving to native ISO C types in our
+ interfaces.
+
+ 4) Why is the new fence sync creation function defined here, instead of
+ in a separate EGL_KHR_fence_sync2 extension?
+
+ RESOLVED: eglCreateSync64KHR is defined here because this is the only
+ functionality requiring it, and we expect this extension to be a stopgap
+ for 64-bit platforms until the time that EGL 1.5 is defined. The EGL 1.5
+ core will presumably include only the EGLAttribKHR-based version of this
+ command.
+
+ If there are any new extensions using handle or pointer attributes in
+ the meantime, they should copy the EGLAttribKHR and eglCreateSync64KHR
+ language here as required. There is no harm in defining the same type or
+ command in multiple extensions, so long as the definitions are
+ compatible.
+
+ 5) Why is the new command called eglCreateSync64KHR?
+
+ UNRESOLVED: For consistency with OpenGL, which has '64'-suffixed
+ commands for representing 64-bit integers and arbitrary offsets into GPU
+ memory. If we ever support EGL on 128-bit platforms this would be a
+ silly naming convention, but that time is probably many decades away and
+ by then EGL 1.5 should be defined and widely supported. The name
+ eglCreateSync2KHR was originally suggested.
+
+ 6) Why is there no command for querying EGLAttribKHR attributes from
+ sync objects?
+
+ RESOLVED: Because the only sync attribute which requires the extra bits
+ in an EGLAttribKHR type is EGL_CL_EVENT_HANDLE_KHR, which is not
+ queryable. Sync attributes which are queryable will all fit into the
+ EGLint returned by eglGetSyncAttribKHR.
+
+ NOTE: It's unfortunate that this name is used, since it uses the
+ "AttribKHR" name for command returning EGLints. In EGL 1.5 we should use
+ a different name for the query.
+
+ 7) Does this extension replace EGL_KHR_fence_sync and EGL_KHR_cl_event?
+
+ RESOLVED: It does not replace EGL_KHR_fence_sync, but extends it to
+ support creation of a new type of sync object, the CL event sync object.
+
+ RESOLVED: It is intended to replace EGL_KHR_cl_event; this extension
+ must be used for OpenCL interop on 64-bit platforms, and we hope all
+ vendors will implement it even on 32-bit platforms, for maximum code
+ portability.
+
+Revision History
+
+ Version 5, 20130/12/04 (Jon Leech) - minor cleanup for public release.
+
+ Version 4, 20130/10/16 (Jon Leech) - add Dependencies and Overview text
+ noting that this extension obsoletes and should replace
+ EGL_KHR_cl_event.
+
+ Version 3, 20130/10/15 (Jon Leech) - change type of EGLAttribKHR from
+ uintptr to intptr (Bug 11027).
+
+ Version 2, 20130/10/12 (Jon Leech) - merge EGL_KHR_fence_sync2 with this
+ extension, change the naming scheme, define EGLAttribKHR as uintptr_t,
+ and add a new issues list.
+
+ Version 1, 2010/10/02 (Tom Cooksey) - initial version based on
+ EGL_KHR_cl_event and adding 64-bit EGLAttrKHR variants.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_config_attribs.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_config_attribs.txt
new file mode 100644
index 0000000..65634ca
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_config_attribs.txt
@@ -0,0 +1,234 @@
+Name
+
+ KHR_config_attribs
+
+Name Strings
+
+ EGL_KHR_config_attribs
+
+Contributors
+
+ Jon Leech
+
+Contacts
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+
+Notice
+
+ Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete
+
+Version
+
+ Version 5, April 5, 2007
+
+Number
+
+ EGL Extension #1
+
+Dependencies
+
+ Requires EGL 1.2
+
+ Some of the extended config attributes defined by this extension are
+ only relevant when specific client APIs are supported.
+
+ This extension is written against the wording of the EGL 1.2
+ Specification. It exists for backwards compatibility with
+ functionality introduced in EGL 1.3.
+
+Overview
+
+ This extension adds new EGL config attributes and attribute bits
+ that express limitations of configs on a per-API basis, including
+ whether client APIs created with respect to a config are expected to
+ pass conformance, and which optional OpenVG color space and alpha
+ mask format attributes are valid at surface creation time.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ New EGLConfig bitmask attribute name:
+
+ EGL_CONFORMANT_KHR 0x3042
+
+ Valid bitfields in the EGL_SURFACE_TYPE bitmask attribute
+ of EGLConfig:
+
+ EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020
+ EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040
+
+Additions to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Add to table 3.1, "EGLConfig attributes":
+
+ Attribute Type Notes
+ --------- ---- -----
+ EGL_CONFORMANT_KHR bitmask whether contexts created with
+ this config are conformant
+
+ Add to table 3.2, "Types of surfaces supported by an EGLConfig":
+
+ EGL Token Name Description
+ -------------- -----------
+ EGL_VG_COLORSPACE_LINEAR_BIT_KHR EGLConfig supports OpenVG rendering
+ in linear colorspace
+ EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR EGLConfig supports OpenVG rendering
+ with premultiplied alpha
+
+ Add following the second paragraph of "Other EGLConfig Attribute
+ Descriptions" in section 3.4 on p. 16:
+
+ "If EGL_VG_COLORSPACE_LINEAR_BIT_KHR is set in EGL_SURFACE_TYPE,
+ then the EGL_COLORSPACE attribute may be set to
+ EGL_COLORSPACE_LINEAR when creating a window, pixmap, or pbuffer
+ surface (see section 3.5)."
+
+ "If EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR is set in EGL_SURFACE_TYPE,
+ then the EGL_ALPHA_FORMAT attribute may be set to
+ EGL_ALPHA_FORMAT_PRE when creating a window, pixmap, or pbuffer
+ surface (see section 3.5)."
+
+ Add at the end of the fourth paragraph (description of
+ EGL_CONFIG_CAVEAT) on p. 17:
+
+ "... required OpenGL ES conformance tests (note that
+ EGL_NON_CONFORMANT_CONFIG is obsolete, and the same information
+ can be obtained from the EGL_CONFORMANT_KHR attribute on a
+ per-client-API basis, not just for OpenGL ES."
+
+ "EGL_CONFORMANT_KHR is a mask indicating if a client API context
+ created with respect to the corresponding EGLConfig will pass
+ the required conformance tests for that API. The valid bit
+ settings are the same as for EGL_RENDERABLE_TYPE, as defined in
+ table 3.3, but the presence or absence of each client API bit
+ determines whether the corresponding context will be conformant
+ or non-conformant(fn1)."
+
+ "(fn1) most EGLConfigs should be conformant for all supported
+ client APIs. Conformance requirements limit the number of
+ non-conformant configs that an implementation can define."
+
+ Add to the last paragraph of section 3.5.1 on p. 24 (describing
+ eglCreateWindowSurface):
+
+ "If <config> does not support the colorspace or alpha format
+ attributes specified in <attrib_list> (e.g. if EGL_COLORSPACE is
+ specified as EGL_COLORSPACE_LINEAR but the EGL_SURFACE_TYPE
+ attribute of <config> does not include
+ EGL_VG_COLORSPACE_LINEAR_BIT_KHR, or if EGL_ALPHA_FORMAT is
+ specified as EGL_ALPHA_FORMAT_PRE but EGL_SURFACE_TYPE does not
+ include EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR), an EGL_BAD_MATCH error
+ is generated."
+
+ Add to the next-to-last paragraph of section 3.5.2 on p. 26
+ (describing eglCreatePbufferSurface):
+
+ "If <config> does not support the colorspace or alpha format
+ attributes specified in <attrib_list> (as defined for
+ eglCreateWindowSurface), an EGL_BAD_MATCH error is generated."
+
+ Add to the last paragraph of section 3.5.4 on p. 29 (describing
+ eglCreatePixmapSurface):
+
+ "If <config> does not support the colorspace or alpha format
+ attributes specified in <attrib_list> (as defined for
+ eglCreateWindowSurface), an EGL_BAD_MATCH error is generated."
+
+Issues
+
+ 1) How should colorspace and alpha format restrictions be specified?
+ OpenVG implementations may not allow linear colorspace or
+ premultiplied alpha rendering to all configs they support.
+
+ RESOLVED: To maximize compatibility with EGL 1.3, we continue to
+ specify the desired colorspace and alpha format at surface
+ creation time. However, surface creation may fail if if the
+ specified colorspace or alpha format are not supported.
+
+ To allow apps to detect this situation, this extension adds
+ EGLConfig attributes specifying *if* linear colorspace and/or
+ premultiplied alpha formats are supported. If they are not
+ supported, surface creation with the corresponding attributes
+ set will fail with an EGL_BAD_MATCH error.
+
+ 2) How should the colorspace and alpha format capabilities be
+ exposed in EGLConfigs?
+
+ RESOLVED: as bitfields of the existing EGL_SURFACE_TYPE bitmask
+ attribute.
+
+ A separate bitmask might be more orthogonal, but there are
+ plenty of unused bits in EGL_SURFACE_TYPE and this minimizes API
+ and programming complexity.
+
+ 3) Are support for linear colorspace and and premultiplied alpha
+ formats orthogonal?
+
+ RESOLVED: Yes, according to the OpenVG Working Group. If they
+ were not orthogonal, we could not specify them as independent
+ bitfields.
+
+ 4) Should information about conformance be specified on a
+ per-client-API basis?
+
+ RESOLVED: Yes. This is needed for conformance testing and cannot
+ be expressed by the EGL_CONFIG_CAVEAT attribute, which is OpenGL
+ ES-specific.
+
+ 5) Should there also be a config attribute which specifies whether
+ EGL_RENDER_BUFFER will be respected?
+
+ UNRESOLVED: it would be consistent to add this attribute. but
+ it's not clear if there's a requirement for doing so yet.
+
+ 6) Does this extension introduce a regression against EGL 1.2?
+
+ RESOLVED: Yes. This is unavoidable, since we're allowing failure
+ of surface creation that was required to succeed in the past.
+ However, implementations that could not support the required
+ colorspace or alpha mask format were effectively non-conformant
+ (e.g. broken) in any event. The new EGL_SURFACE_TYPE attributes
+ at least allow apps to know that their request will not be
+ satisfied.
+
+Dependencies on OpenGL ES
+
+ If OpenGL ES is not supported, the EGL_OPENGL_ES_BIT in the
+ EGL_CONFORMANT_KHR is irrelevant.
+
+Dependencies on OpenVG
+
+ If OpenVG is not supported, the EGL_OPENVG_BIT bit in
+ EGL_CONFORMANT_KHR, and the EGL_VG_COLORSPACE_LINEAR_BIT_KHR and
+ EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR bits in EGL_SURFACE_TYPE, are
+ irrelevant.
+
+Revision History
+
+ Version 5, 2007/04/05 - add enum values corresponding to EGL 1.3
+ core features.
+ Version 4, 2006/10/24 - prefix the bitfield names with "VG" to
+ clarify that they only apply to OpenVG rendering to surfaces
+ (although the corresponding core EGL_COLORSPACE and
+ EGL_ALPHA_FORMAT attribute names do not currently include this
+ prefix). Use "KHR" suffix instead of "OES".
+ Version 3, 2006/10/15 - add new config attribute to express whether
+ configs are conformant on a per-API basis. Correct sRGB
+ terminology to linear (sRGB is the default, linear colorspace
+ rendering may not be supported). Change extension name
+ accordingly.
+ Version 2, 2006/09/26 - add _OES extension suffix to bitfield names.
+ Version 1, 2006/09/26 - first draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_create_context.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_create_context.txt
new file mode 100644
index 0000000..8c992c6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_create_context.txt
@@ -0,0 +1,648 @@
+Name
+
+ KHR_create_context
+
+Name Strings
+
+ EGL_KHR_create_context
+
+Contact
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+
+Notice
+
+ Copyright (c) 2010-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Approved by the Khronos Board of Promoters on February 3, 2012
+ Updated in version 14 to add ES3 context creation bit - see Issue 8
+
+Version
+
+ Version 16, 2015/01/15
+
+Number
+
+ EGL Extension #39
+
+Dependencies
+
+ EGL 1.4 is required.
+
+ Some of the capabilities of these extensions are only available when
+ OpenGL and OpenGL ES contexts supporting specific versions, specific
+ profiles, or specific extensions can be created. All such restrictions
+ are documented in the body of this extension specification.
+
+Overview
+
+ With the advent of new versions of OpenGL which deprecate features
+ and/or break backward compatibility with older versions, there is a need
+ and desire to indicate at context creation which interface will be used.
+ This extension adds a new context creation routine with attributes
+ specifying the OpenGL version, context properties, and profile requested
+ for the context. It also allows making an OpenGL 3.0 or later context
+ (or other client API context supporting the ability) current without
+ providing a default framebuffer. The new context creation attributes
+ are also defined to work for OpenGL ES context creation when that
+ makes sense, and the extension has been augmented to allow configs to
+ advertise support for creating OpenGL ES 3.0 contexts.
+
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as an attribute name in the <*attrib_list> argument of
+ eglCreateContext:
+
+ EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098
+ (this token is an alias for EGL_CONTEXT_CLIENT_VERSION)
+ EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
+ EGL_CONTEXT_FLAGS_KHR 0x30FC
+ EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
+ EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
+
+ Accepted as a bitfield value in the EGL_RENDERABLE_TYPE config
+ attribute to eglChooseConfig:
+
+ EGL_OPENGL_ES3_BIT_KHR 0x0040
+
+ Accepted as attribute values for
+ EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR:
+
+ EGL_NO_RESET_NOTIFICATION_KHR 0x31BE
+ EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF
+
+ Accepted as bits in the attribute value for EGL_CONTEXT_FLAGS_KHR in
+ <*attrib_list>:
+
+ EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001
+ EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
+ EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
+
+ Accepted as bits in the attribute value for
+ EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR in <*attrib_list>:
+
+ EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
+ EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
+
+Additions to the OpenGL / WGL / GLX Specifications
+
+ None. This specification is written for EGL.
+
+Additions to the EGL 1.4 Specification
+
+ Add to table 3.3 "Types of client APIs supported by an EGLConfig"
+
+ "EGL Token Name Client API and Version Supported
+ ---------------------- --------------------------------
+ EGL_OPENGL_ES3_BIT_KHR OpenGL ES 3.x"
+
+ Modify the last sentence of section 3.5.2 "Creating Off-Screen
+ Rendering Surfaces"
+
+ "Finally, an EGL_BAD_ATTRIBUTE error is generated if ... <config> does
+ not support OpenGL ES rendering (e.g. the EGL_RENDERABLE_TYPE
+ attribute does not include at least one of EGL_OPENGL_ES_BIT,
+ EGL_OPENGL_ES2_BIT, or EGL_OPENGL_ES3_BIT_KHR."
+
+ Modify section 3.7 "Rendering Contexts" in the paragraph near
+ the top of page 42:
+
+ "Only one OpenGL or OpenGL ES context may be current to a particular
+ thread, even if the implementation supports OpenGL and one or more
+ versions of OpenGL ES in the same runtime [fn12]."
+
+ Replace section 3.7.1 "Creating Rendering Contexts" from the
+ sixth paragraph through the end of the subsection with:
+
+ "<attrib_list> specifies a list of attributes for the context. The
+ list has the same structure as described for eglChooseConfig. If an
+ attribute is not specified in <attrib_list>, then the default value
+ specified below is used instead. Most attributes are only meaningful
+ for specific client APIs, and will generate an error when specified
+ to create for another client API context.
+
+ OpenGL and OpenGL ES Context Versions
+ -------------------------------------
+
+ The values for attributes EGL_CONTEXT_MAJOR_VERSION_KHR and
+ EGL_CONTEXT_MINOR_VERSION_KHR specify the requested client API
+ version. They are only meaningful for OpenGL and OpenGL ES contexts,
+ and specifying them for other types of contexts will generate an
+ error.
+
+ When the current rendering API is EGL_OPENGL_ES_API or
+ EGL_OPENGL_API, the values of EGL_CONTEXT_MAJOR_VERSION_KHR (the
+ <major version> and EGL_CONTEXT_MINOR_VERSION_KHR (the <minor
+ version>) request creation of an OpenGL ES or OpenGL context,
+ respectively, supporting the specified version (<major>.<minor>) of
+ that client API.
+ [fn: the EGL 1.4 token EGL_CONTEXT_CLIENT_VERSION is an alias for
+ EGL_CONTEXT_MAJOR_VERSION_KHR, and the tokens may be used
+ interchangeably.]
+ If successful, the context returned must be <backwards compatible>
+ with the requested version. Backwards compatibility is determined as
+ follows:
+
+ If the current rendering API is EGL_OPENGL_ES_API, then:
+
+ * If version 1.0 is requested, the context returned may implement
+ either OpenGL ES 1.0 or OpenGL ES 1.1.
+
+ * If version 1.1 is requested, the context returned must implement
+ OpenGL ES 1.1.
+
+ * If version 2.0, version 3.0, or a later version (when later
+ versions are defined by Khronos) is requested, the context
+ returned must implement the requested OpenGL ES version, or any
+ later version which is backwards compatible with the requested
+ version.
+
+ If the current rendering API is EGL_OPENGL_API, then:
+
+ * If a version less than or equal to OpenGL 3.0 is requested, the
+ context returned may implement any of the following versions:
+
+ * Any version no less than that requested and no greater than
+ 3.0.
+ * Version 3.1, if the GL_ARB_compatibility extension is also
+ implemented.
+ * The compatibility profile of version 3.2 or greater.
+
+ * If OpenGL 3.1 is requested, the context returned may implement
+ any of the following versions:
+
+ * Version 3.1. The GL_ARB_compatibility extension may or may
+ not be implemented, as determined by the implementation.
+ * The core profile of version 3.2 or greater.
+
+ * If OpenGL 3.2 or greater is requested, the context returned may
+ implement any of the following versions:
+
+ * The requested profile (see
+ EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR below) of the requested
+ version.
+ * The requested profile of any later version, so long as no
+ features have been removed from that later version and
+ profile.
+
+ Typically, the implementation will return the most recent version of
+ OpenGL it supports which is backwards compatible with the requested
+ version.
+
+ Querying the GL_VERSION string with glGetString in either OpenGL or
+ OpenGL ES (or the GL_MAJOR_VERSION and GL_MINOR_VERSION values with
+ glGetIntegerv, in an OpenGL 3.0 or later context) will return the
+ actual version supported by a context.
+
+ The default values for EGL_CONTEXT_MAJOR_VERSION_KHR and
+ EGL_CONTEXT_MINOR_VERSION_KHR are 1 and 0 respectively.
+
+ OpenGL Context Profiles
+ -----------------------
+
+ The value for attribute EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR
+ specifies a <profile> of the OpenGL API. This attribute is only
+ meaningful for OpenGL contexts, and specifying it for other types of
+ contexts, including OpenGL ES contexts, will generate an error.
+
+ When the current rendering API is EGL_OPENGL_API, the value of
+ EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR requests an OpenGL context
+ supporting the corresponding profile. If the
+ EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR bit is set in the attribute
+ value, then a context implementing the <core> profile of OpenGL is
+ returned. If the EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR
+ bit is set, then a context implementing the <compatibility> profile
+ is returned. If the requested OpenGL version is less than 3.2,
+ EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR is ignored and the functionality
+ of the context is determined solely by the requested version.
+
+ Querying the value of GL_CONTEXT_PROFILE_MASK with glGetIntegerv
+ will return the profile mask used to create the context. This query
+ is only supported in an OpenGL 3.2 or later context.
+
+ The default value for EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR is
+ EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR. All OpenGL 3.2 and later
+ implementations are required to implement the core profile, but
+ implementation of the compatibility profile is optional.
+
+ If the core profile is requested, then the context returned cannot
+ implement functionality defined only by the compatibility profile.
+
+ OpenGL and OpenGL ES Context Flags
+ ----------------------------------
+
+ The value for attribute EGL_CONTEXT_FLAGS_KHR specifies a set of flag
+ bits affecting the context. Flag bits are only meaningful when creating
+ certain types of contexts, as described for each bit below, and
+ specifying such a flag bit when creating another type of context will
+ generate an error.
+
+ If the EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR flag bit is set in
+ EGL_CONTEXT_FLAGS_KHR, then a <debug context> will be created. Debug
+ contexts are intended for use during application development, to
+ provide additional runtime checking, validation, and logging
+ functionality while possibly incurring performance penalties. The
+ additional functionality provided by debug contexts may vary
+ according to the implementation(fn). In some cases a debug context
+ may be identical to a non-debug context. This bit is supported for
+ OpenGL and OpenGL ES contexts.
+ [fn: Khronos is still defining the expected and required
+ features of debug contexts, so implementations are
+ currently free to implement "debug contexts" with little or
+ no debug functionality. However, OpenGL and OpenGL ES
+ implementations supporting the GL_KHR_debug extension
+ should enable it when this bit is set.]
+ [fn2: See issue 9 below for discussion of backwards
+ compatibility issues with the debug bit and OpenGL ES
+ contexts.]
+
+ If the EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR flag bit is set
+ in EGL_CONTEXT_FLAGS_KHR, then a <forward-compatible> context will
+ be created. Forward-compatible contexts are defined only for OpenGL
+ versions 3.0 and later. They must not support functionality marked
+ as <deprecated> by that version of the API, while a
+ non-forward-compatible context must support all functionality in
+ that version, deprecated or not. This bit is supported for OpenGL
+ contexts, and requesting a forward-compatible context for OpenGL
+ versions less than 3.0 will generate an error.
+
+ If the EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR bit is set in
+ EGL_CONTEXT_FLAGS_KHR, then a context supporting <robust buffer
+ access> will be created. Robust buffer access is defined in the
+ GL_ARB_robustness extension specification, and the resulting context
+ must also support either the GL_ARB_robustness extension, or a
+ version of OpenGL incorporating equivalent functionality. This bit
+ is supported for OpenGL contexts.
+
+ The default value of EGL_CONTEXT_FLAGS_KHR is zero.
+
+ OpenGL Context Reset Notification
+ ---------------------------------
+
+ The attribute name
+ EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR specifies the
+ <reset notification behavior> of the rendering context. This
+ attribute is only meaningful for OpenGL contexts, and specifying it
+ for other types of contexts, including OpenGL ES contexts, will
+ generate an error.
+
+ Reset notification behavior is defined in the GL_ARB_robustness
+ extension specification, and the resulting context must also support
+ either the GL_ARB_robustness extension, or a version of OpenGL or
+ incorporating equivalent functionality. The attribute value may be
+ either EGL_NO_RESET_NOTIFICATION_KHR or
+ EGL_LOSE_CONTEXT_ON_RESET_KHR, which respectively result in reset
+ notification behavior of GL_NO_RESET_NOTIFICATION_ARB and
+ GL_LOSE_CONTEXT_ON_RESET_ARB, as described by GL_ARB_robustness. The
+ default value for EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR
+ is EGL_NO_RESET_NOTIFICATION_KHR.
+
+ Errors
+ ------
+
+ On failure eglCreateContext returns EGL_NO_CONTEXT and generates an
+ EGL error with extended error information. Conditions that cause
+ failure include:
+
+ * If an attribute is specified that is not meaningful for the
+ client API type determined by the current rendering API, an
+ EGL_BAD_ATTRIBUTE error is generated.
+
+ * If the current rendering api is EGL_NONE, then an EGL_BAD_MATCH
+ error is generated (this situation can only arise in an
+ implementation which does not support OpenGL ES 1.x, and prior to
+ the first call to eglBindAPI).
+
+ * If share_context is neither EGL_NO_CONTEXT nor a valid context
+ of the same client API type as the newly created context, then
+ an EGL_BAD_CONTEXT error is generated.
+
+ * If <config> is not a valid EGLConfig, or does not support the
+ requested client API, then an EGL_BAD_CONFIG error is generated
+ (this includes requesting creation of an OpenGL ES 1.x, 2.0, or
+ 3.0 context when the EGL_RENDERABLE_TYPE attribute of <config>
+ does not contain EGL_OPENGL_ES_BIT, EGL_OPENGL_ES2_BIT, or
+ EGL_OPENGL_ES3_BIT_KHR respectively).
+
+ * If <config> does not support a client API context compatible
+ with the requested API major and minor version, context flags,
+ and context reset notification behavior (for client API types
+ where these attributes are supported), then an EGL_BAD_MATCH
+ error is generated.
+
+ * If an OpenGL context is requested, the requested version is
+ greater than 3.2, and the value for attribute
+ EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR has no bits set; has any
+ bits set other than EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR and
+ EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR; has more than
+ one of these bits set; or if the implementation does not support
+ the requested profile, then an EGL_BAD_MATCH error is generated.
+
+ * If an OpenGL or OpenGL ES context is requested and the server
+ context state for <share_context> exists in an address space
+ that cannot be shared with the newly created context, if
+ <share_context> was created on a different display than the one
+ referenced by <config>, if the reset notification behavior of
+ <share_context> and the newly created context are different, or
+ if the contexts are otherwise incompatible (for example, one
+ context being associated with a hardware device driver and the
+ other with a software renderer), then an EGL_BAD_MATCH error is
+ generated.
+
+ * If the server does not have enough resources to allocate the new
+ context, then an EGL_BAD_ALLOC error is generated.
+
+ * If an OpenGL context is requested and the values for attributes
+ EGL_CONTEXT_MAJOR_VERSION_KHR and EGL_CONTEXT_MINOR_VERSION_KHR,
+ when considered together with the value for attribute
+ EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR, specify an OpenGL
+ version and feature set that are not defined, than an
+ EGL_BAD_MATCH error is generated.
+
+ The defined versions of OpenGL at the time of writing are OpenGL
+ 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 2.0, 2.1, 3.0, 3.1, 3.2, 4.0, 4.1,
+ 4.2, and 4.3. Feature deprecation was introduced with OpenGL
+ 3.0, so forward-compatible contexts may only be requested for
+ OpenGL 3.0 and above. Thus, examples of invalid combinations of
+ attributes include:
+
+ - Major version < 1 or > 4
+ - Major version == 1 and minor version < 0 or > 5
+ - Major version == 2 and minor version < 0 or > 1
+ - Major version == 3 and minor version < 0 or > 2
+ - Major version == 4 and minor version < 0 or > 3
+ - Forward-compatible flag set and major version < 3
+
+ Because the purpose of forward-compatible contexts is to allow
+ application development on a specific OpenGL version with the
+ knowledge that the app will run on a future version, context
+ creation will fail if
+ EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR is set and the
+ context version returned cannot implement exactly the requested
+ version.
+
+ * If an OpenGL ES context is requested and the values for
+ attributes EGL_CONTEXT_MAJOR_VERSION_KHR and
+ EGL_CONTEXT_MINOR_VERSION_KHR specify an OpenGL ES version that
+ is not defined, than an EGL_BAD_MATCH error is generated.
+
+ The defined versions of OpenGL ES at the time of writing are
+ OpenGL ES 1.0, 1.1, 2.0, and 3.0. Examples of invalid
+ combinations of attributes include:
+
+ - Major version < 1 or > 3
+ - Major version == 1 and minor version < 0 or > 1
+ - Major version == 2 and minor version != 0
+ - Major version == 3 and minor version != 0
+
+ * If an attribute name or attribute value in <attrib_list> is not
+ recognized (including undefined or unsupported bits in bitmask
+ attributes), then an EGL_BAD_ATTRIBUTE error is generated."
+
+ In section 3.7.3, replace the following two error conditions in the
+ list of eglMakeCurrent errors:
+
+ " * If <ctx> is not a valid context, an EGL_BAD_CONTEXT error is
+ generated.
+ * If either <draw> or <read> are not valid EGL surfaces, an
+ EGL_BAD_SURFACE error is generated."
+
+ with the following error conditions:
+
+ " * If <ctx> is not a valid context and is not EGL_NO_CONTEXT, an
+ EGL_BAD_CONTEXT error is generated.
+ * If either <draw> or <read> are not valid EGL surfaces and are
+ not EGL_NO_SURFACE, an EGL_BAD_SURFACE error is generated.
+ * If <ctx> is EGL_NO_CONTEXT and either <draw> or <read> are not
+ EGL_NO_SURFACE, an EGL_BAD_MATCH error is generated.
+ * If either of <draw> or <read> is a valid surface and the other
+ is EGL_NO_SURFACE, an EGL_BAD_MATCH error is generated.
+ * If <ctx> does not support being bound without read and draw
+ surfaces, and both <draw> and <read> are EGL_NO_SURFACE, an
+ EGL_BAD_MATCH error is generated."
+
+ Replace the paragraph starting "If <ctx> is EGL_NO_CONTEXT and
+ <draw> and <read> are not EGL_NO_SURFACE..." with
+
+ "If both <draw> and <read> are EGL_NO_SURFACE, and <ctx> is an OpenGL
+ context supporting version 3.0 or later of the OpenGL API, then no
+ error is generated and the context is made current without a
+ <default framebuffer>. The meaning of this is defined in chapter 4
+ of the OpenGL 3.0 Specification."
+
+ Append to the paragraph starting "The first time an OpenGL or OpenGL
+ ES context is made current..." with
+
+ "If the first time <ctx> is made current, it is without a default
+ framebuffer (e.g. both <draw> and <read> are EGL_NO_SURFACE), then
+ the viewport and scissor regions are set as though
+ glViewport(0,0,0,0) and glScissor(0,0,0,0) were called."
+
+
+Errors
+
+ EGL errors for eglCreateContext as described in the body of the
+ specification.
+
+ eglMakeCurrent error behavior is relaxed to allow making an OpenGL
+ 3.0 or later context current without a default read or draw
+ framebuffer.
+
+Conformance Tests
+
+ TBD
+
+Sample Code
+
+ TBD
+
+Issues
+
+ Non-window-system dependent issues described in the
+ WGL_ARB_create_context extension specification in the OpenGL
+ Registry apply to EGL_KHR_create_context.
+
+ 1) Do enumerant values need to be shared with the equivalent WGL / GLX
+ extensions?
+
+ Mostly not. The only case where it's fairly important that the
+ values be identical is the EGL_CONTEXT_FLAGS_KHR attribute bitmask
+ values, which are also exposed through an OpenGL query.
+
+ 2) Why are some attribute values named EGL_CONTEXT_OPENGL_*?
+
+ It is possible that context flags and profiles will eventually be
+ defined for client APIs other than OpenGL. To allow for this
+ possibility, the names of the corresponding attribute values are
+ distinguished. For example, EGL_CONTEXT_FLAGS_KHR currently only has
+ flags defined for OpenGL context creation, and those flags are named
+ EGL_CONTEXT_OPENGL_*_BIT_KHR, but in time OpenVG context creation
+ might allow flags as well. Such flags would be named
+ EGL_CONTEXT_OPENVG_*_BIT_KHR.
+
+ 3) Why does EGL_CONTEXT_MAJOR_VERSION_KHR have a distinct numeric token
+ value when it is functionally equivalent to
+ EGL_CONTEXT_CLIENT_VERSION?
+
+ It no longer has a distinct token value; see issue 1.
+
+ 4) How will future versions of OpenGL ES interact with this extension?
+
+ Later context versions which are backwards compatibile with the
+ requested version can be returned, just as with OpenGL contexts.
+
+ 5) What happens when requesting a context requiring OpenGL functionality
+ that cannot be supported by the underlying GL implementation, such as
+ requesting lost context reset notification and/or robust buffer access
+ when the implementation does not support the functionality defined by
+ GL_ARB_robustness?
+
+ Context creation will fail and an EGL_BAD_MATCH error will be
+ generated. This case is included under the general language of the
+ fifth bullet point under "Errors" but this issue is added to for
+ clarity.
+
+ 6) How is robust buffer access and reset notification supported under
+ OpenGL ES?
+
+ RESOLVED: It is an error to request robust buffer access and/or reset
+ notification for OpenGL ES contexts. Exposing robust buffer access and
+ reset notification for OpenGL ES contexts may be defined in a future EGL
+ extension.
+
+ 7) Future support for OpenGL ES context creation.
+
+ If and when features available for OpenGL context creation are defined
+ for OpenGL ES context creation in the future, debug contexts, forward
+ compatible contexts, and robust buffer access contexts may be specified
+ using separate attributes rather than bitmasks. The reset notification
+ behavior attribute may be extended to cover OpenGL ES as well as OpenGL.
+
+ 8) Why was the EGL_OPENGL_ES3_BIT_KHR added in version 13 of the
+ extension? Doesn't this break backwards compatibility with older
+ versions of the extension?
+
+ Applications need the functionality to be confident that context
+ creation of an OpenGL ES 3.0 context will succeed (rather than trying
+ it with different configs until one that succeeds is found).
+
+ If this bit is passed into eglChooseConfig and the implementation
+ supports only an older version of the extension, an EGL_BAD_ATTIBUTE
+ error should be generated. Since no matching configs will be found, a
+ robustly-written application will fail (or fall back to an ES 2.0
+ rendering path) at this point. This is the same application behavior
+ that should result from not finding a matching config on an
+ implementation supporting version 13 of the extension, even though the
+ failure mode is different (EGL error vs. returning no matching
+ configs). The EGL Working Group considers this sufficiently benign
+ behavior, and the functionality important enough, to make the change.
+
+ 9) Why was OpenGL ES support for EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR added
+ in version 15 of the extension? Doesn't this break backwards
+ compatibility with older versions of the extension?
+
+ Now that the GL_KHR_debug extension is ratified and available,
+ OpenGL ES implementers needed a way to enable debug functionality,
+ and wanted to use the same mechanism as OpenGL. There is no
+ discovery mechanism for this capability, so an application creating
+ a OpenGL ES context with the debug bit set and running against an
+ older EGL driver should generate an error. The OpenGL ES Working
+ Group considers this benign behavior.
+
+ 10) Which error should be generated if robust buffer access or reset
+ notifications are requested under OpenGL ES?
+
+ As per Issue 6, this extension does not support creating robust contexts
+ for OpenGL ES. This is only supported via the EGL_EXT_create_context_-
+ robustness extension.
+
+ Attempting to use this extension to create robust OpenGL ES context
+ will generate an EGL_BAD_ATTRIBUTE error. This specific error is generated
+ because this extension does not define the EGL_CONTEXT_OPENGL_ROBUST_-
+ ACCESS_BIT_KHR and EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR bits
+ for OpenGL ES contexts. Thus, use of these bits fall under condition
+ described by: "If an attribute is specified that is not meaningful for
+ the client API type.." in the above specification.
+
+Revision History
+
+ Version 16, 2015/01/15
+ - Add issue 10.
+
+ Version 15, 2013/03/27
+ - Add OpenGL ES support for debug contexts (Bug 10035).
+
+ Version 14, 2012/09/19
+ - Assign enum value to new bit and published updated extension.
+
+ Version 13, 2012/07/29
+ - Add EGL_OPENGL_ES3_BIT_KHR to table 3.3 and sections 3.5.2, 3.7,
+ and 3.7.1. Add issue 8 explaining the addition.
+
+ Version 12, 2012/07/25
+ - Explicitly describe new OpenGL 4.3 and OpenGL ES 3.0 versions.
+ This is not a behavior change (Khronos Bug 9136).
+ - Make spec consistent so that asking for a forward-compatible GL
+ context for versions less than 3.0 is an error (Bug 9314).
+ - Change nonexistent EGL_BAD_PROFILE_KHR error generated when
+ asking for an unsupported or nonexistent GL profile to an
+ EGL_BAD_MATCH error (Bug 9314).
+ - Fix typos in spec body for several new tokens of form
+ "EGL_CONTEXT_OPENGL_*" which were missing the "OPENGL_" part
+ (Bug 9314).
+
+ Version 11, 2012/07/09 - change nonexistent EGL_BAD_VALUE error
+ to EGL_BAD_ATTRIBUTE (Khronos Bug 9269).
+
+ Version 10, 2011/11/22 - fix typo.
+
+ Version 9, 2011/11/09 - resolve issue 6 and add issue 7, limiting
+ various context creation attributes to apply only to OpenGL and not
+ to OpenGL ES.
+
+ Version 8, 2011/10/20 - change spec body to match BAD_MATCH error
+ returned in issue 5 when specifying context version and attributes
+ that collectively cannot be satisfied.
+
+ Version 7, 2011/10/19 - add issue 5 clarifying context creation
+ failures when requesting functionality that cannot be supported by a
+ GL or ES context, and issue 6 discussing the meaning of "equivalent
+ to GL_ARB_robustness".
+
+ Version 6, 2011/10/19 - minor cleanup & clarification of OpenGL ES
+ version requests.
+
+ Version 5, 2010/09/22 - add context reset notification strategy
+ attributes from GLX/WGL context creation extensions.
+
+ Version 4, 2010/09/22 - fix typo. Assign enumerant values and update
+ issue 1 to match. Add caveat to errors section so that invalid
+ attribute values for EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR only raise
+ errors when requesting an OpenGL context of version 3.2 or greater
+ (bug 6374). Add issue 4 and allow ES 2.0 context creation requests
+ to return later versions that are backwards-compatible (bug 6374).
+
+ Version 3, 2010/07/21 - remove surfaceless bit in favor of separate
+ per-client-API extensions which promise that contexts of a given
+ client API type can be bound without surfaces on that display. Add
+ robust buffer access bit from equivalent WGL/GLX context creation
+ extensions. Rename EGL_CONTEXT_FLAGS_KHR so it's not specific to
+ OpenGL.
+
+ Version 2, 2010/06/29 - add EGL_CONTEXT_OPENGL_SURFACELESS_BIT_KHR
+ context flag bit (bug 6082).
+
+ Version 1, 2010/06/29 - Initial version based on equivalent
+ WGL_ARB_create_context and GLX_ARB_create_context extensions.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_create_context_no_error.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_create_context_no_error.txt
new file mode 100644
index 0000000..499293c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_create_context_no_error.txt
@@ -0,0 +1,142 @@
+Name
+
+ KHR_create_context_no_error
+
+Name Strings
+
+ EGL_KHR_create_context_no_error
+
+Contributors
+
+ Maurice Ribble
+ Dominik Witczak
+ Christophe Riccio
+ Piers Daniell
+ Jon Leech
+ James Jones
+ Daniel Kartch
+ Steve Hill
+ Jan-Harald Fredriksen
+
+Contact
+
+ Maurice Ribble (mribble 'at' qti.qualcomm.com)
+
+Status
+
+ Complete.
+ Approved by the Khronos Board of Promoters on May 8, 2015.
+
+Version
+
+ Version 6, May 8, 2015
+
+Number
+
+ EGL Extension #91
+
+Dependencies
+
+ Requires EGL 1.4.
+
+ Written against the EGL 1.4 specification.
+
+ This spec interacts with GL_KHR_no_error (or equivalent) extension.
+
+Overview
+
+ This extension allows the creation of an OpenGL or OpenGL ES context that
+ doesn't generate errors if the context supports a no error mode. The
+ implications of this feature are discussed in the GL_KHR_no_error
+ extension.
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as an attribute name in the <*attrib_list> argument to
+ eglCreateContext:
+
+ EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3
+
+Additions to the EGL 1.4 Specification
+
+ Add the following to section 3.7.1 "Creating Rendering Contexts":
+
+ EGL_CONTEXT_OPENGL_NO_ERROR_KHR indicates whether a faster and lower power
+ mode should be enabled for the OpenGL ES context. In this mode instead of
+ GL errors occurring as defined in the OpenGL ES spec those errors will
+ result in undefined behavior. The default value of
+ EGL_CONTEXT_OPENGL_NO_ERROR_KHR is EGL_FALSE.
+
+Errors
+
+ BAD_MATCH is generated if the value of EGL_CONTEXT_OPENGL_NO_ERROR_KHR
+ used to create <share_context> does not match the value of
+ EGL_CONTEXT_OPENGL_NO_ERROR_KHR for the context being created.
+
+ BAD_MATCH is generated if the EGL_CONTEXT_OPENGL_NO_ERROR_KHR is TRUE at
+ the same time as a debug or robustness context is specified.
+
+New State
+
+ None
+
+Conformance Tests
+
+ TBD
+
+Issues
+
+ (1) How does this extension interact with debug and robust contexts?
+
+ RESOLVED: We decided it is an error in EGL if these bits were set at the same
+ time.
+
+ (2) Can a EGL_CONTEXT_OPENGL_NO_ERROR_KHR contexts share resources with
+ normal contexts?
+
+ RESOLVED: To join a share group all the contexts in that share group must
+ have this set the same or creation of the context fails.
+
+ (3) Can we also do this on GLX/WGL?
+
+ RESOLVED: This is an EGL extension. GLX/WGL should be handled with separate
+ extensions.
+
+ (4) Should this extension also expose a "no thread safety" mode? For example
+ to do the rendering on one thread but uploading data or compiling shaders
+ from others threads without having the cost of threaded safety kicking in
+ because none of these tasks overlap so we can handle with sync objects.
+ Compiling shaders, loading data and rendering are areas that removed
+ threading may help.
+
+ RESOLVED: No, this should be done as a separate extension.
+
+ (5) Should this be GL specific?
+
+ RESOLVED: Yes, because other context creation tokens have been API specific.
+ This is also the safer path since it's unknown if other APIs might want to do
+ this slightly differently.
+
+ (6) Should creating a context fail if the context created context does not
+ support a no error mode?
+
+ RESOLVED: No. Expect context creation to succeed even if the implementation
+ can't honor the request for a no error context. This reduces the number of
+ reasons creating a context can fail and seems to be a more forward looking
+ resolution considering context flags allow GL apps to query what context
+ flags are set.
+
+Revision History
+
+ Rev. Date Author Changes
+ ---- ------------ --------- ----------------------------------------
+ 1 Jan 28, 2015 ribble Initial version
+ 2 Jan 29, 2015 ribble Added issues list
+ 3 Jan 30, 2015 ribble Split into separate GL and EGL extensions
+ 4 Feb 18, 2015 ribble Resolved issues and cleanup
+ 5 Feb 25, 2015 ribble Rename, better define errors and cleanup
+ 6 May 8, 2015 Jon Leech Assign enum value and release.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_debug.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_debug.txt
new file mode 100644
index 0000000..e839a9e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_debug.txt
@@ -0,0 +1,573 @@
+Name
+
+ KHR_debug
+
+Name Strings
+
+ EGL_KHR_debug
+
+Contributors
+
+ Jeff Vigil, Qualcomm
+ Brian Ellis, Qualcomm
+ (Original contributors of Gl_KHR_debug extension for OpenGL/GL_ES)
+ Mark Callow, HI
+ John Leech, Khronos
+ Ray Smith, ARM
+ Prabindh Sundareson, Texas Instruments
+ James Jones, NVIDIA
+ Jesse Hall, Google
+
+Contact
+
+ Jeff Vigil (jvigil 'at' qualcomm.com)
+
+Notice
+
+ Copyright (c) 2012-2015 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete. Approved by the EGL Working Group on 2015/04/24.
+ Approved by the Khronos Board of Promoters on 2015/06/26.
+
+Version
+
+ Version 18, Modified Date: September 28, 2016
+
+Number
+
+ EGL Extension #92
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Applicable to any version of EGL 1.x, but written in relationship
+ to EGL 1.5.
+
+Overview
+
+ This extension allows EGL to notify applications when various events
+ occur that may be useful during application development and debugging.
+
+ These events are represented in the form of debug messages with a
+ human-readable string representation. Examples of debug events include
+ errors due to incorrect use of the EGL API, warnings of undefined behavior,
+ and performance warnings.
+
+ The "type" of the message roughly identifies the nature of the event that
+ caused the message. Examples include input errors, performance
+ information, or warnings about undefined behavior.
+
+ Messages are communicated to the application through an application-
+ defined callback function that is called by the EGL implementation on
+ each debug message. The motivation for the callback routine is to free
+ application developers from actively having to query whether an EGL error,
+ or any other debuggable event has happened after each call to a EGL
+ function. With a callback, developers can keep their code free of debug
+ checks, set breakpoints in the callback function, and only have to react
+ to messages as they occur. The callback also offers much more information
+ than just an error code.
+
+ To control the volume of debug output, types of messages can be enabled or
+ disabled. The mechanism is controlled by attributes passed to EGL. The
+ state of the message type control can be queried.
+
+ Debug output can be enabled and disabled by changing the callback function.
+ NULL will disable the feature while a valid function pointer will enable
+ it.
+
+ Finally, this extension defines a mechanism for EGL applications to
+ label their objects (contexts, surfaces, syncs, etc.) with a pointer
+ to an application provided structure. This pointer can be a descriptive
+ string, identifier or pointer to a structure. This enables the application
+ to associate the EGL object with application information. EGL will not
+ interpret this pointer as a string or any other meaning - just attach to
+ the object and pass back in the callback when that object is the primary
+ object of an event.
+
+IP Status
+
+ No known IP claims.
+
+New Procedures and Functions
+
+ EGLint eglDebugMessageControlKHR(
+ EGLDEBUGPROCKHR callback,
+ const EGLAttrib* attrib_list);
+
+ EGLBoolean eglQueryDebugKHR(
+ EGLint attribute,
+ EGLAttrib* value);
+
+ EGLInt eglLabelObjectKHR(
+ EGLDisplay display,
+ EGLenum objectType,
+ EGLObjectKHR object,
+ EGLLabelKHR label);
+
+New Types
+
+ A general type to identify EGL objects, such as EGLSurface or EGLContext.
+
+ typedef void* EGLObjectKHR;
+
+ A label is a string, ID or pointer to a structure that the application
+ can attach to an EGL object.
+
+ typedef void* EGLLabelKHR;
+
+ The callback function that applications can define, and is accepted by
+ eglDebugMessageControlKHR, is defined as:
+
+ typedef void (APIENTRY *EGLDEBUGPROCKHR)(
+ EGLenum error,
+ const char *command,
+ EGLint messageType,
+ EGLLabelKHR threadLabel,
+ EGLLabelKHR objectLabel,
+ const char* message);
+
+New Tokens
+
+ Tokens accepted by the <objectType> parameter of function
+ eglLabelObjectKHR:
+
+ EGL_OBJECT_THREAD_KHR 0x33B0
+ EGL_OBJECT_DISPLAY_KHR 0x33B1
+ EGL_OBJECT_CONTEXT_KHR 0x33B2
+ EGL_OBJECT_SURFACE_KHR 0x33B3
+ EGL_OBJECT_IMAGE_KHR 0x33B4
+ EGL_OBJECT_SYNC_KHR 0x33B5
+ EGL_OBJECT_STREAM_KHR 0x33B6
+
+ Tokens provided by the <messageType> parameter of EGLDEBUGPROCKHR
+ or the attributes input to eglControlDebugMessageKHR or attribute
+ of eglQueryDebugKHR:
+
+ EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9
+ EGL_DEBUG_MSG_ERROR_KHR 0x33BA
+ EGL_DEBUG_MSG_WARN_KHR 0x33BB
+ EGL_DEBUG_MSG_INFO_KHR 0x33BC
+
+ Tokens provided by the input attribute to eglQueryDebugKHR:
+
+ EGL_DEBUG_CALLBACK_KHR 0x33B8
+
+Additions to Chapter 3 of the EGL 1.5 Specification
+(EGL Functions and Errors)
+
+ Add new Section 3.13:
+
+ "3.13 - Debug Output
+
+ Application developers can obtain more information from EGL runtime in
+ the form of debug output. This information can include details about EGL
+ errors, undefined behavior, implementation-dependent performance warnings,
+ or other useful hints.
+
+ This information is communicated through a stream of debug messages that
+ are generated as EGL commands are executed. The application can
+ receive these messages through a callback routine.
+
+ Controls are provided for disabling classes of messages that the
+ application does not care about.
+
+ Debug output functionality is controlled with:
+
+ EGLint eglDebugMessageControlKHR(
+ EGLDEBUGPROCKHR callback,
+ const EGLAttrib* attrib_list);
+
+ If the <callback> parameter is NULL, then no messages are sent to the
+ callback function and the debug message generation is disabled. If the
+ <callback> parameter is a pointer to a valid callback function, as defined
+ by EGLDEBUGPROCKHR, then messages will be sent to that callback function.
+
+ The attribute list <attrib_list> contains a set of message type enums,
+ and each has a value of EGL_TRUE to enable that class of messages,
+ or value EGL_FALSE to disable that class of message.
+
+ If the <attrib_list> contains an unknown attribute or value the function
+ will return a EGL_BAD_ATTRIBUTE error.
+
+ If there is no error, then the function will set the updated callback,
+ set the updated message types and return EGL_SUCCESS.
+
+ The messages types, their purpose and initial states are given in
+ table 13.1 below. The parameter <attrib_list> needs only contain the
+ attributes to change; an application can call eglDebugMessageControl more
+ than once with a valid callback, and change the message type states as
+ desired.
+
+ When the callback is set to NULL; the attributes are reset to their
+ default values.
+
+ Debug Output Message Type Informs about Initial/Default state
+ ------------------------- ------------- ---------------------
+ EGL_DEBUG_MSG_CRITICAL_KHR Internal EGL driver failures ENABLED
+ i.e. EGL_BAD_ALLOC,
+ EGL_CONTEXT_LOST
+
+ EGL_DEBUG_MSG_ERROR_KHR Input and bad match errors ENABLED
+ i.e. EGL_BAD_CONTEXT,
+ EGL_BAD_PARAMETER...
+
+ EGL_DEBUG_MSG_WARN_KHR Warnings, code is EGL_SUCCESS, DISABLED
+ but message indicates
+ deprecated or inefficient
+ operation.
+
+ EGL_DEBUG_MSG_INFO_KHR Verbose operation DISABLED
+ Messages such as object
+ creation and destruction
+ or change in state.
+
+ ---------------------------------------------------------------------------
+ Table 13.1: Types of debug output messages. Each debug message is associated
+ with one of these types that describes the nature or class of the message.
+
+ 3.13.1 - Debug Message Callback
+
+ Applications must provide a callback function for receiving debug messages
+ of the following type:
+
+ typedef void (APIENTRY *EGLDEBUGPROCKHR)(
+ EGLenum error,
+ const char *command,
+ EGLint messageType,
+ EGLLabelKHR threadLabel,
+ EGLLabelKHR objectLabel,
+ const char* message);
+
+ The function's prototype must follow the type definition of EGLDEBUGPROCKHR.
+ Only one debug callback can be in-use for the application, and
+ further calls overwrite the previous callback. Specifying NULL as the
+ value of <callback> clears the current callback and disables message
+ output.
+
+ The callback will receive the following in its parameters:
+
+ <error> will contain an EGL error code, or EGL_SUCCESS, as applicable.
+
+ <command> will contain a pointer to a string. Example "eglBindApi".
+
+ <messageType> will contain one of the debug message types listed in
+ table 13.1.
+
+ <threadLabel> will contain the label attached to the current thread.
+ The <threadLabel> will be NULL if not set by the application. If the
+ message is from an internal thread, the label will be NULL.
+
+ <objectLabel> will contain the label attached to the primary object
+ of the message; Labels will be NULL if not set by the application.
+ The primary object should be the object the function operates on, see
+ table 13.2 which provides the recommended mapping between functions and
+ their primary object. This <objectLabel> may be NULL even though the
+ application labeled the object. This is because it is possible an error
+ was raised while executing the command before the primary object was
+ validated, therefore its label cannot be included in the callback.
+
+ <message> will contain a platform specific debug string message;
+ This string should provide added information to the application
+ developer regarding the condition that generated the message.
+ The format of a message is implementation-defined, although it should
+ represent a concise description of the event that caused the message
+ to be generated. Message strings can be NULL and should not be assumed
+ otherwise.
+
+ EGL Command Primary object
+ ------------------------- -------------
+
+ eglBindAPI thread
+ eglBindTexImage surface
+ eglChooseConfig display
+ eglClientWaitSync sync
+ eglCopyBuffers surface
+ eglCreateContext display
+ eglCreateImage display
+ eglCreatePbufferFromClientBuffer display
+ eglCreatePbufferSurface display
+ eglCreatePixmapSurface display
+ eglCreatePlatformWindowSurface display
+ eglCreatePlatformPixmapSurface display
+ eglCreateSync display
+ eglCreateWindowSurface display
+ eglDestroyContext context
+ eglDestroyImage image
+ eglDestroySurface surface
+ eglDestroySync sync
+ eglGetConfigAttrib display
+ eglGetConfigs display
+ eglGetCurrentContext context
+ eglGetCurrentDisplay display
+ eglGetCurrentSurface surface
+ eglGetDisplay thread
+ eglGetError thread
+ eglGetPlatformDisplay thread
+ eglGetSyncAttrib sync
+ eglInitialize display
+ eglMakeCurrent context
+ eglQueryAPI context
+ eglQueryContext context
+ eglQueryString display
+ eglQuerySurface surface
+ eglReleaseTexImage surface
+ eglReleaseThread thread
+ eglSurfaceAttrib surface
+ eglSwapBuffers surface
+ eglSwapInterval surface
+ eglTerminate display
+ eglWaitClient context
+ eglWaitGL context
+ eglWaitNative thread
+ eglWaitSync sync
+ eglDebugMessageControlKHR -none-
+ eglQueryDebugKHR -none-
+ eglLabelObjectKHR labeled object
+
+ ---------------------------------------------------------------------------
+ Table 13.2: Recommendation of primary object in a callback as result
+ of various EGL commands.
+
+ If the application has specified a <callback> function for receiving debug
+ output, the implementation will call that function whenever any enabled
+ message is generated. A message must be posted for every error since
+ debug messages can be used as an alternative to eglGetError() for error
+ detection and handling. Specifying a callback function does not affect the
+ behavior of eglGetError; errors are reported through both mechanisms.
+
+ Applications that specify a callback function must be aware of certain
+ special conditions when executing code inside a callback when it is
+ called by EGL. The memory for <message> is read-only, owned and managed
+ by EGL, and should only be considered valid for the duration of the
+ function call. Likewise the <command> string is read-only EGL managed
+ memory and should be considered valid only for the duration of the
+ callback.
+
+ Setting the label for EGL objects is optional and only intended for
+ applications to correlate application structures with EGL objects.
+ All object labels are initially NULL.
+
+ The behavior of calling any EGL operation, its client APIs, or window system
+ functions from within the callback function is undefined and may lead
+ to program termination. It should not be considered reentrant.
+
+ Only one debug callback may be registered at a time; registering a new
+ callback will replace the previous callback. The callback is used by any
+ thread that calls EGL, so if the application calls into EGL concurrently
+ from multiple threads it must ensure the callback is thread-safe.
+
+ EGL may employ internal threads to execute EGL commands. These threads can
+ post debug messages to the callback function. The labels for these
+ internal threads will be NULL.
+
+ 3.13.2 Debug Labels:
+
+ Debug labels provide a method for annotating any object (context, surface,
+ sync, etc.) with an application provided label. These labels may then be
+ used by the debug output or an external tool such as a debugger or profiler
+ to describe labeled objects.
+
+ The command
+
+ EGLint eglLabelObjectKHR(
+ EGLDisplay display,
+ EGLenum objectType,
+ EGLObjectKHR object,
+ EGLLabelKHR label);
+
+ enables the application to attach a label to a specified object.
+ The <display>, <objectType>, and <object> identify the object to be
+ labeled.
+
+ The <label> contains a pointer sized variable to attach to the
+ object. This label can be a integer identifier, string or pointer to a
+ application defined structure. EGL will not interpret this value;
+ it will merely provide it when the object is involved in a callback
+ message. The label for any object will initially be NULL until set by
+ the application.
+
+ An EGL_BAD_PARAMETER error is returned by eglLabelObjectKHR if <objectType>
+ doesn't match one of the object type enums. An EGL_BAD_PARAMETER is also
+ returned if the <objectType> is not a supported type; such as no support
+ for streams.
+
+ An EGL_BAD_PARAMETER error is returned by eglLabelObjectKHR if <object> is
+ invalid, unknown, NULL, or is not an object created with
+ EGLDisplay <display>.
+
+ When the <objectType> is EGL_OBJECT_THREAD_KHR, the <object> parameter
+ will be ignored by EGL. The thread is implicitly the active thread. It is
+ recommended that the application pass a NULL for the <object> parameter in
+ this case.
+
+ When the <objectType> is EGL_OBJECT_DISPLAY_KHR, the <object> parameter
+ must be the same as the <display> parameter - the Display to label. If
+ these do not match, in this case, a EGL_BAD_PARAMETER is generated.
+
+ The <display> does not need to be initialized for <objectType>
+ EGL_OBJECT_THREAD_KHR, or EGL_OBJECT_DISPLAY_KHR; However for all other
+ types it must be initialized in order to validate the <object> for
+ attaching a label.
+
+ If there is no error, then the function will set the label and return
+ EGL_SUCCESS.
+
+ 3.13.3 Debug Queries:
+
+ The command
+
+ EGLBoolean eglQueryDebugKHR(
+ EGLint attribute,
+ EGLAttrib* value);
+
+ enables the application to query the current value for the debug
+ attributes. On success the function returns EGL_TRUE.
+
+ If <attribute> is a message type enum, the value returned will
+ be either EGL_TRUE or EGL_FALSE to indicate whether the specified types of
+ messages are enabled or disabled respectively.
+
+ Querying for attribute EGL_DEBUG_CALLBACK_KHR will return the current
+ callback pointer. This feature is intended to enable layering of the
+ callback with helper libraries.
+
+ Querying for an unknown attribute will result in an EGL_BAD_ATTRIBUTE error
+ and a return of EGL_FALSE.
+
+Usage Examples
+
+ This example shows starting debug messaging and attaching string labels to
+ newly created objects.
+
+ void MyCallBack(EGLenum error,
+ const char *command,
+ EGLint messageType,
+ EGLLabelKHR threadLabel,
+ EGLLabelKHR objectLabel,
+ const char* message)
+ {
+ printf("Error: %x, With command %s, Type: %d,"
+ "Thread: %s, Object: %s, Message: %s.",
+ error, command, messageType, threadLabel, objectLabel, message);
+ }
+
+ EGLint result;
+
+ // DEBUG_MSG_ERROR and CRITICAL are enabled by default
+ EGLAttrib debugAttribs = {EGL_DEBUG_MSG_WARN_KHR, EGL_TRUE, EGL_NONE};
+ // Start up debug messaging:
+ result = eglDebugMessageControl(MyCallBack, debugAttribs);
+
+ // Label for the rendering thread.
+ EGLLabelKHR renderThreadLabel = (EGLLabelKHR)"Render thread";
+ result = eglLabelObject(NULL, EGL_OBJECT_THREAD_KHR, NULL, renderThreadLabel);
+
+ EGLDisplay dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+ EGLLabelKHR myDisplay = (EGLLabelKHR)"Default display";
+ result = eglLabelObject(dpy, EGL_OBJECT_DISPLAY_KHR, dpy, myDisplay);
+
+ eglInitialize(dpy);
+
+ EGLLabelKHR renderContextLabel = (EGLLabelKHR)"Render context";
+ EGLContext ctx = eglCreateContext(dpy, config, NULL, contextAttribs);
+ result = eglLabelObject(dpy, EGL_OBJECT_CONTEXT_KHR, ctx, renderContextLabel);
+
+
+Issues
+
+ 1. Why not use GL_KHR_debug?
+
+ RESOLVED: Most EGL use and object creation happens before creating a
+ GL context. And since EGL operations are thread related - the debug
+ messages should be too.
+
+ 2. Is the callback expected only to be called from the thread which it's
+ registered?
+
+ RESOLVED: In most cases when an application thread calls an EGL function,
+ it is expected that EGL upon detecting an error will callback using that
+ application thread. However, EGL may have internal helper threads that
+ execute operations. These threads can callback but will have no
+ threadLabel. It is the responsibility of EGL to ensure that if these
+ threads are blocked in the application's callback by a breakpoint; that
+ EGL does not fail. Internal threads are an implementation detail and
+ are not required.
+
+
+Revision History
+
+ Revision 18, 2016-07-28 (Jeff Vigil)
+ - Clarify return values/error codes.
+
+ Revision 17, 2015-09-23 (Jeff Vigil)
+ - Correct type name to "EGLDEBUGPROCKHR". Updated example code.
+
+ Revision 16, 2015-04-15 (Jeff Vigil)
+ - Clarified that <objectLabel> maybe NULL in the callback, if an error
+ is raised before the primary object handle is validated.
+
+ Revision 15, 2015-03-30 (Jeff Vigil)
+ - Further details to labeling of EGL_OBJECT_DISPLAY_KHR.
+
+ Revision 14, 2015-03-27 (Jeff Vigil)
+ - Further clarification of returns and errors. Add further details to
+ labeling of EGL_OBJECT_THREAD_KHR and EGL_OBJECT_DISPLAY_KHR.
+
+ Revision 13, 2015-03-26 (Jeff Vigil)
+ - Clarified returns and errors.
+
+ Revision 12, 2015-03-24 (Jeff Vigil)
+ - Improve readability. Add assigned enum values.
+
+ Revision 11, 2015-03-02 (Jeff Vigil)
+ - Clarify text regarding parameter attribute_list and its persistence.
+
+ Revision 10, 2015-02-25 (Jeff Vigil)
+ - Clarify text regarding callback blocking.
+ - The implementation must provide errors and success in callbacks so
+ that the callback replaces the use of eglGetError.
+ - <command> strings are read-only EGL memory.
+ - Specify default values for attributes.
+ - Fix typos.
+
+ Revision 9, 2015-02-03 (Jeff Vigil)
+ - Updated contributors.
+ - Add extension type.
+ - Add "KHR" to token and function names.
+ - Fix typos.
+ - Add query to get current callback pointer.
+
+ Revision 8, 2014-12-03 (Jeff Vigil)
+ - Add table containing recommendation for primary object in the callback.
+
+ Revision 7, 2014-10-21 (Jeff Vigil)
+ - Remove configs as a label-able object.
+ - Remove redundant text.
+ - Simplify to one callback per process, not per thread.
+
+ Revision 6, 2014-10-17 (Jeff Vigil)
+ - Add issues.
+ - Address internal EGL threads posting messages.
+
+ Revision 5, 2014-05-27 (Jeff Vigil)
+ - Add missing text for eglQueryDebug.
+ - Clarify threading model.
+
+ Revision 4, 2014-04-14 (Jeff Vigil)
+ - Fix due to feedback from EGL WG face-to-face conference.
+
+ Revision 3, 2014-04-10 (Jeff Vigil)
+ - Refinements.
+
+ Revision 2, 2014-02-21 (Jeff Vigil)
+ - Simplify API.
+
+ Revision 1, 2013-09-08 (Jeff Vigil)
+ - Work in progress for F2F, Based on GL_KHR_debug, replace GL with EGL
+ and remove GL spec specific text.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_display_reference.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_display_reference.txt
new file mode 100644
index 0000000..e432ed9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_display_reference.txt
@@ -0,0 +1,242 @@
+Name
+
+ KHR_display_reference
+
+Name Strings
+
+ EGL_KHR_display_reference
+
+Contributors
+
+ James Jones
+ Daniel Kartch
+
+Contacts
+
+ James Jones, NVIDIA (jajones 'at' nvidia.com)
+
+Status
+
+ Complete
+ Ratified by the Khronos Board of Promoters on March 31, 2017.
+
+Version
+
+ Version 4 - March 15, 2018
+
+Number
+
+ EGL Extension #126
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Written based on the wording of the EGL 1.5 specification.
+
+ Requires EGL_EXT_platform_base or EGL 1.5
+
+ Interacts with EGL platform extensions.
+
+ Interacts with the EGL_EXT_device_query extension.
+
+Overview
+
+ The existing semantics of EGLDisplay object lifetimes work well for
+ applications in which one module manages all EGL usage, and in which
+ EGL displays are expected to remain available until application
+ termination once they are instantiated. However, EGL does not
+ provide reasonable semantics in the case where applications rely on
+ toolkit libraries which use EGL independently from the application
+ itself.
+
+ This issue can be solved by adding a per-EGLDisplay reference
+ counter which is incremented by eglInitialize calls. Resource
+ destruction can then be deferred until a corresponding number of
+ eglTerminate calls is made. However, switching to this behavior
+ universally could cause backwards incompatibility problems with
+ existing applications that assume a single eglTerminate will
+ immediately free resources regardless of how many times the display
+ has been initialized.
+
+ We therefore must support both behaviors. A new attribute specified
+ when the EGLDisplay is obtained will indicate whether or not
+ reference counting is enabled. If an application requests the
+ EGLDisplay multiple times with different values for this attribute,
+ two separate displays will be returned. The one potential drawaback
+ is that these displays will have independent resource spaces, so
+ objects allocated from one cannot be used by the other. However, the
+ goal here is to support modules that access EGL independently. In
+ such a use case, they are not likely to need to share resources with
+ another module, particularly one that uses a different method for
+ accessing the display.
+
+New Types
+
+ None
+
+New Functions
+
+ EGLBoolean eglQueryDisplayAttribKHR(EGLDisplay dpy,
+ EGLint name,
+ EGLAttrib *value);
+
+New Tokens
+
+ Accepted as an attribute in the <attrib_list> parameter of
+ eglGetPlatformDisplay and the <name> parameter of
+ eglQueryDisplayAttribKHR:
+
+ EGL_TRACK_REFERENCES_KHR 0x3352
+
+In section "3.2 Initialization":
+
+Remove the sentence in the description of eglGetPlatformDisplay
+indicating no valid attribute names are defined, and add the following:
+
+ The EGL_TRACK_REFERENCES_KHR attribute may be set to EGL_TRUE or
+ EGL_FALSE to indicate whether or not an EGLDisplay that tracks
+ reference counts for eglInitialize and eglTerminate calls (as
+ described below) is desired. If not specified, the default is
+ platform dependent. Implementations are not required to support both
+ EGL_TRUE and EGL_FALSE for this attribute. If separate successful
+ calls are made to eglGetPlatformDisplay requesting default and non-
+ default behavior for reference counting, two independent EGLDisplays
+ will be returned.
+
+Also add to the Errors section:
+
+ An EGL_BAD_ATTRIBUTE error is generated if the requested value for
+ EGL_TRACK_REFERENCES_KHR is not supported.
+
+Replace the first sentence of the second paragraph of the description of
+eglInitialize with:
+
+ When a previously uninitialized display is initialized, its
+ reference count will be set to one. Initializing an already-
+ initialized display is allowed, and will return EGL_TRUE and update
+ the EGL version numbers, but has no other effect except to increment
+ the display's reference count if its EGL_TRACK_REFERENCES_KHR
+ attribute is EGL_TRUE.
+
+Insert after the declaration of eglTerminate:
+
+ If the specified display's EGL_TRACK_REFERENCES_KHR attribute is
+ EGL_FALSE, eglTerminate will immediately set its reference count
+ to zero. Otherwise, its reference count will be decremented if it
+ is above zero. When an initialized display's reference count reaches
+ zero, termination will occur.
+
+Replace the second sentence of the last paragraph with:
+
+ All displays start out uninitialized with a reference count of zero.
+
+Add to the end of section "3.3 EGL Queries".
+
+ To query non-string attributes of an initialized display, use:
+
+ EGLBoolean eglQueryDisplayAttribKHR(EGLDisplay dpy,
+ EGLint name,
+ EGLAttrib *value);
+
+ On success, EGL_TRUE is returned, and the value of the attribute
+ specified by <name> is returned in the space pointed to by <value>.
+
+ On failure, EGL_FALSE is returned. An EGL_NOT_INITIALIZED error
+ is generated if EGL is not initialized for <dpy>. An
+ EGL_BAD_ATTRIBUTE error is generated if <name> is not a valid
+ value. Currently, the only valid attribute name is
+ EGL_TRACK_REFERENCES_KHR.
+
+Interactions with EGL_KHR_platform_android:
+
+ If eglGetPlatformDisplay() is called with <platform> set to
+ EGL_PLATFORM_ANDROID_KHR, the default value of
+ EGL_TRACK_REFERENCES_KHR is EGL_TRUE.
+
+Interactions with EGL_EXT_platform_device, EGL_KHR_platform_gbm,
+EGL_KHR_platform_x11, and EGL_KHR_platform_wayland:
+
+ If eglGetPlatformDisplay() is called with <platform> set to
+ EGL_PLATFORM_DEVICE_EXT, EGL_PLATFORM_GBM_KHR, EGL_PLATFORM_X11_KHR,
+ or EGL_PLATFORM_WAYLAND_KHR, the default value of
+ EGL_TRACK_REFERENCES_KHR is EGL_FALSE.
+
+Interactions with EGL_EXT_device_query:
+
+ The eglQueryDisplayAttribKHR function defined here is equivalent to
+ eglQueryDisplayAttribEXT defined by EGL_EXT_device_query, and the
+ attribute names supported are a superset of those provided by both
+ extensions and any others which rely on them.
+
+Issues
+
+ 1. What is the default value for EGL_TRACK_REFERENCES_KHR?
+
+ RESOLUTION: For backwards compatibility reasons, the default
+ value is platform-specific. The Android platform has
+ historically implemented the behavior of
+ EGL_TRACK_REFERENCES_KHR = EGL_TRUE, while other platforms
+ defaulted to the opposite behavior. Application components
+ capable of supporting either behavior will be able to query
+ the value to determine how to proceed.
+
+ 2. Should the value of EGL_TRACK_REFERENCES_KHR affect whether
+ eglGetPlatformDisplay returns a new display handle or an
+ existing one given otherwise identical parameters?
+
+ RESOLUTION: Yes. For any given combination of platform display
+ handle and other attributes, calling eglGetPlatformDisplay
+ with different values for EGL_TRACK_REFERENCES_KHR will result
+ in two different EGLDisplay handles being returned.
+
+ Resources created with respect to one of these EGLDisplays will
+ not be accessible to the other. This restriction is unlikely to
+ cause issues, because the reference counting is added primarily
+ to support independent toolkits. Application components which
+ independently initialize and terminate the display are not
+ likely to share resources, particularly if they use different
+ methods for that initialization.
+
+ 3. Should the new display attribute be queryable?
+
+ RESOLUTION: Yes. Not all implemenations will support both TRUE
+ and FALSE for this attribute. Application components capable of
+ supporting either value will allow the default to be chosen, and
+ then query the value to determine how to handle termination.
+
+ 4. Should implementations which support this extension be required
+ to support both TRUE and FALSE for the attribute?
+
+ RESOLUTION: No. Lack of refcounting in the core specification is
+ considered by many to be a flaw, and some implementations/platforms
+ will choose to always provide refcounting behavior. This technically
+ makes them non-compliant. The addition of this extension should allow
+ that deviation.
+
+Revision History
+
+ #4 (March 15, 2018) Jon Leech
+
+ - Change extension number from 118 to 126 to avoid an accidental
+ collision.
+
+ #3 (January 12, 2017) Daniel Kartch
+
+ - Change to KHR.
+ - Allocate enum value.
+
+ #2 (November 15, 2016) Daniel Kartch
+
+ - Full termination portion split off into separate extension
+ EGL_XXX_full_termination.
+ - Update reference counting to have separate EGLDisplays for
+ the same native display, one with reference counting and
+ one without.
+ - Add query function to determine attribute value.
+
+ #1 (October 28, 2014) James Jones
+
+ - Initial draft as EGL_XXX_display_reference
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_fence_sync.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_fence_sync.txt
new file mode 100644
index 0000000..3cac80b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_fence_sync.txt
@@ -0,0 +1,562 @@
+Name
+
+ KHR_fence_sync
+
+Name Strings
+
+ EGL_KHR_fence_sync
+ GL_OES_EGL_sync
+ VG_KHR_EGL_sync
+
+Contributors
+
+ Acorn Pooley
+ Gary King
+ Gregory Prisament
+ Jon Leech
+
+Contacts
+
+ Acorn Pooley, NVIDIA Corporation (apooley 'at' nvidia.com)
+ Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
+ Gregory Prisament, NVIDIA Corporation (gprisament 'at' nvidia.com)
+ Jon Leech (jon 'at' alumni.caltech.edu)
+
+Notice
+
+ Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete. Approved by the EGL Working Group on March 3, 2010.
+ Approved by the Khronos Board of Promoters on April 30, 2010.
+
+Version
+
+ Version 24, January 31, 2014
+
+Number
+
+ EGL Extension #20
+ OpenGL ES Extension #75
+ OpenVG Extension #7
+
+Dependencies
+
+ Requires EGL 1.1
+
+ This extension is written against the wording of the EGL 1.2
+ Specification.
+
+Overview
+
+ This extension introduces the concept of "sync objects" into EGL.
+ Sync objects are a synchronization primitive, representing events
+ whose completion can be tested or waited upon. This extension
+ borrows heavily from the GL_ARB_sync extension and introduces a type
+ of sync object known as a "fence sync object" comparable to the
+ OpenGL fence sync object. The specification is designed to allow
+ additional types of sync objects to be easily introduced in later
+ extensions.
+
+ Fence sync objects have corresponding fence commands, which are
+ inserted into a client API command stream at the time the fence sync
+ is created. A fence sync object is used to wait for completion of
+ the corresponding fence command. This allows applications to request
+ a partial Finish of an API command stream, wherein all commands
+ issued in a particular client API context will be forced to complete
+ before control is returned to the calling thread.
+
+ This document describes three different extension strings
+ collectively. The "EGL_KHR_fence_sync" string indicates that fence
+ syncs and the corresponding interfaces (to create and place a fence,
+ destroy, query, and wait on) are supported.
+
+ The remaining extensions list valid client APIs for fence syncs. The
+ "GL_OES_EGL_sync" string indicates that a fence sync object can be
+ created in association with a fence command placed in the command
+ stream of a bound OpenGL ES context. The "VG_KHR_EGL_sync" string
+ indicates the same thing for a bound OpenVG context.
+
+New Types
+
+ /*
+ * EGLSyncKHR is an opaque handle to an EGL sync object
+ */
+ typedef void* EGLSyncKHR;
+
+ /*
+ * EGLTimeKHR is a 64-bit unsigned integer representing intervals
+ * in nanoseconds.
+ */
+ #include <khrplatform.h>
+ typedef khronos_utime_nanoseconds_t EGLTimeKHR;
+
+
+New Procedures and Functions
+
+ EGLSyncKHR eglCreateSyncKHR(
+ EGLDisplay dpy,
+ EGLenum type,
+ const EGLint *attrib_list);
+
+ EGLBoolean eglDestroySyncKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync);
+
+ EGLint eglClientWaitSyncKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint flags,
+ EGLTimeKHR timeout);
+
+ EGLBoolean eglGetSyncAttribKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint attribute,
+ EGLint *value);
+
+
+New Tokens
+
+ Accepted by the <type> parameter of eglCreateSyncKHR, and returned
+ in <value> when eglGetSyncAttribKHR is called with <attribute>
+ EGL_SYNC_TYPE_KHR:
+
+ EGL_SYNC_FENCE_KHR 0x30F9
+
+ Accepted by the <attribute> parameter of eglGetSyncAttribKHR:
+
+ EGL_SYNC_TYPE_KHR 0x30F7
+ EGL_SYNC_STATUS_KHR 0x30F1
+ EGL_SYNC_CONDITION_KHR 0x30F8
+
+ Returned in <value> when eglGetSyncAttribKHR is called with
+ <attribute> EGL_SYNC_STATUS_KHR:
+
+ EGL_SIGNALED_KHR 0x30F2
+ EGL_UNSIGNALED_KHR 0x30F3
+
+ Returned in <value> when eglGetSyncAttribKHR is called with
+ <attribute> EGL_SYNC_CONDITION_KHR:
+
+ EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
+
+ Accepted in the <flags> parameter of eglClientWaitSyncKHR:
+
+ EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
+
+ Accepted in the <timeout> parameter of eglClientWaitSyncKHR:
+
+ EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull
+
+ Returned by eglClientWaitSyncKHR:
+
+ EGL_TIMEOUT_EXPIRED_KHR 0x30F5
+ EGL_CONDITION_SATISFIED_KHR 0x30F6
+
+ Returned by eglCreateSyncKHR in the event of an error:
+
+ EGL_NO_SYNC_KHR ((EGLSyncKHR)0)
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Add a new subsection at the end of Section 3.8, page 43
+ (Synchronization Primitives)
+
+ "3.8.1 Sync Objects
+
+ In addition to the aforementioned synchronization functions, which
+ provide an efficient means of serializing client and native API
+ operations within a thread, <sync objects> are provided to enable
+ synchronization of client API operations between threads and/or
+ between API contexts. Sync objects may be tested or waited upon by
+ application threads.
+
+ Sync objects have a status with two possible states: <signaled> and
+ <unsignaled>. Initially, sync objects are unsignaled. EGL may be
+ asked to wait for a sync object to become signaled, or a sync
+ object's status may be queried.
+
+ Depending on the type of a sync object, its status may be changed
+ either by an external event, or by explicitly signaling and
+ unsignaling the sync.
+
+ Sync objects are associated with an EGLDisplay when they are
+ created, and have <attributes> defining additional aspects of the
+ sync object. All sync objects include attributes for their type and
+ their status. Additional attributes are discussed below
+ for different types of sync objects.
+
+ <Fence sync objects> are created in association with a <fence
+ command> in a client API. When the client API executes the fence
+ command, an event is generated which signals the corresponding fence
+ sync object. Fence sync objects may not be explicitly signaled, and
+ may only change their status once, from the initial unsignaled
+ status to signaled. Fence sync objects may be used to wait for
+ partial completion of a client API command stream, as a more
+ flexible form of glFinish / vgFinish.
+
+ The command
+
+ EGLSyncKHR eglCreateSyncKHR(
+ EGLDisplay dpy,
+ EGLenum type,
+ const EGLint *attrib_list);
+
+ creates a sync object of the specified <type> associated with the
+ specified display <dpy>, and returns a handle to the new object.
+ <attrib_list> is an attribute-value list specifying other attributes
+ of the sync object, terminated by an attribute entry EGL_NONE.
+ Attributes not specified in the list will be assigned their default
+ values.
+
+ If <type> is EGL_SYNC_FENCE_KHR, a fence sync object is created. In
+ this case <attrib_list> must be NULL or empty (containing only
+ EGL_NONE). Attributes of the fence sync object are
+ set as follows:
+
+ Attribute Name Initial Attribute Value(s)
+ --------------- --------------------------
+ EGL_SYNC_TYPE_KHR EGL_SYNC_FENCE_KHR
+ EGL_SYNC_STATUS_KHR EGL_UNSIGNALED_KHR
+ EGL_SYNC_CONDITION_KHR EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR
+
+ When a fence sync object is created, 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.
+
+ 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
+ <sync> to unblock. The only condition currently supported is
+ EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR, which 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.
+
+ Each client API which supports fence commands indicates this support
+ in the form of a client API extension. If the GL_OES_EGL_sync
+ extension is supported by OpenGL ES (either version 1.x or 2.0), a
+ fence sync object may be created when the currently bound API is
+ OpenGL ES. If the VG_KHR_EGL_sync extension is supported by OpenVG,
+ a fence sync object may be created when the currently bound API is
+ OpenVG.
+
+ Errors
+ ------
+
+ * If <dpy> is not the name of a valid, initialized EGLDisplay,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_DISPLAY error is
+ generated.
+ * If <attrib_list> is neither NULL nor empty (containing only
+ EGL_NONE), EGL_NO_SYNC_KHR is returned and an EGL_BAD_ATTRIBUTE
+ error is generated.
+ * If <type> is not a supported type of sync object,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_ATTRIBUTE error is
+ generated.
+ * If <type> is EGL_SYNC_FENCE_KHR 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 <type> is EGL_SYNC_FENCE_KHR and <dpy> 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 <type> is EGL_SYNC_FENCE_KHR 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.
+
+ The command
+
+ EGLint eglClientWaitSyncKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint flags,
+ EGLTimeKHR timeout);
+
+ blocks the calling thread until the specified sync object <sync> is
+ signaled, or until <timeout> nanoseconds have passed.
+
+ More than one eglClientWaitSyncKHR may be outstanding on the same
+ <sync> at any given time. When there are multiple threads blocked on
+ the same <sync> and the sync object is signaled, all such threads
+ are released, but the order in which they are released is not
+ defined.
+
+ If the value of <timeout> is zero, then eglClientWaitSyncKHR simply
+ tests the current status of <sync>. If the value of <timeout> is the
+ special value EGL_FOREVER_KHR, then eglClientWaitSyncKHR does not
+ time out. For all other values, <timeout> is adjusted to the closest
+ value allowed by the implementation-dependent timeout accuracy,
+ which may be substantially longer than one nanosecond.
+
+ eglClientWaitSyncKHR returns one of three status values describing
+ the reason for returning. A return value of EGL_TIMEOUT_EXPIRED_KHR
+ indicates that the specified timeout period expired before <sync>
+ was signaled, or if <timeout> is zero, indicates that <sync> is
+ not signaled. A return value of EGL_CONDITION_SATISFIED_KHR
+ indicates that <sync> was signaled before the timeout expired, which
+ includes the case when <sync> was already signaled when
+ eglClientWaitSyncKHR was called. If an error occurs then an error is
+ generated and EGL_FALSE is returned.
+
+ If the sync object being blocked upon will not be signaled in finite
+ time (for example, by an associated fence command issued previously,
+ but not yet flushed to the graphics pipeline), then
+ eglClientWaitSyncKHR may wait forever. To help prevent this behavior
+ (footnote1), if the EGL_SYNC_FLUSH_COMMANDS_BIT_KHR bit is set in
+ <flags>, and <sync> is unsignaled when eglClientWaitSyncKHR is
+ called, then the equivalent of Flush() will be performed for the
+ current API context (i.e., the context returned by
+ eglGetCurrentContext()) before blocking on <sync>. If no context is
+ current for the bound API, the EGL_SYNC_FLUSH_COMMANDS_BIT_KHR bit
+ is ignored.
+
+ [footnote 1: The simple Flush behavior defined by
+ EGL_SYNC_FLUSH_COMMANDS_BIT_KHR will not help when waiting for a
+ fence command issued in a different context's command stream.
+ Applications which block on a fence sync object must take
+ additional steps to ensure that the context from which the
+ associated fence command was issued has flushed that command to
+ the graphics pipeline.]
+
+ Errors
+ ------
+
+ * If <sync> is not a valid sync object for <dpy>, EGL_FALSE is
+ returned and an EGL_BAD_PARAMETER error is generated.
+ * If <dpy> does not match the EGLDisplay passed to
+ eglCreateSyncKHR when <sync> was created, the behaviour is
+ undefined.
+
+
+ The command
+
+ EGLBoolean eglGetSyncAttribKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint attribute,
+ EGLint *value);
+
+ is used to query attributes of the sync object <sync>. Legal values
+ for <attribute> depend on the type of sync object, as shown in table
+ 3.cc. Assuming no errors are generated, EGL_TRUE is returned and the
+ value of the queried attribute is returned in <value>.
+
+ 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 only
+
+ Table 3.cc Attributes Accepted by eglGetSyncAttribKHR Command
+
+ Errors
+ ------
+
+ * If <sync> is not a valid sync object for <dpy>, EGL_FALSE is
+ returned and an EGL_BAD_PARAMETER error is generated.
+ * If <dpy> does not match the display passed to eglCreateSyncKHR
+ when <sync> was created, the behaviour is undefined.
+ * If <attribute> is not one of the attributes in table 3.cc,
+ EGL_FALSE is returned and an EGL_BAD_ATTRIBUTE error is
+ generated.
+ * If <attribute> is not supported for the type of sync object
+ passed in <sync>, EGL_FALSE is returned and an EGL_BAD_MATCH
+ error is generated.
+
+ If any error occurs, <*value> is not modified.
+
+ The command
+
+ EGLBoolean eglDestroySyncKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync);
+
+ is used to destroy an existing sync object.
+
+ If any eglClientWaitSyncKHR commands are blocking on <sync> when
+ eglDestroySyncKHR is called, <sync> is flagged for deletion and will
+ be deleted when it is no longer associated with any fence command
+ and is no longer blocking any eglClientWaitSyncKHR command.
+
+ If no errors are generated, EGL_TRUE is returned, and <sync> will no
+ longer be the handle of a valid sync object.
+
+ Errors
+ ------
+
+ * If <sync> is not a valid sync object for <dpy>, EGL_FALSE is
+ returned and an EGL_BAD_PARAMETER error is generated.
+ * If <dpy> does not match the display passed to eglCreateSyncKHR
+ when <sync> was created, the behaviour is undefined.
+
+Issues
+
+ Note about the Issues
+ ---------------------
+ The wording for this extension was originally written as a single
+ extension defining two types of sync object; a "reusable sync
+ object" and a "fence sync object". That extension was split to
+ produce standalone extensions for each type of sync object, and
+ references to the other type removed from the specification
+ language. This issues list has been simplied to remove references to
+ reusable sync objects but is otherwise very similar to the
+ EGL_KHR_reusable_sync extension issues list.
+
+ 1. [REMOVED - found in the reusable_sync extension.]
+
+ 2. [REMOVED - found in the reusable_sync extension.]
+
+ 3. What does this extension provide that can not be accomplished
+ with the existing, more efficient eglWaitClient and eglWaitNative
+ API functions?
+
+ RESPONSE: eglWaitClient and eglWaitNative may be implemented in
+ extremely lightweight manners, in some cases not blocking the
+ calling thread at all; however, they can not be used to synchronize
+ between client API contexts and native APIs executing in separate
+ threads (or simply between client API contexts executing in separate
+ threads), such as between a thread with an active OpenGL context and
+ a second thread performing video decode.
+
+ 4. What does this extension provide that could not be accomplished
+ with native platform synchronization primitives and the existing
+ client API Finish commands?
+
+ RESPONSE: This extension provides a lighter-weight mechanism for
+ synchronizing an application with client API command streams than
+ the all-or-nothing Finish commands, enabling applications to block
+ until a subset of issued client API commands have completed.
+
+ 5. [REMOVED - found in the reusable_sync extension.]
+
+ 6. Please provide a more detailed description of how
+ eglClientWaitSyncKHR behaves.
+
+ RESOLVED: eglClientWaitSyncKHR blocks until the status of the sync
+ object transitions to the signaled state. Sync object status is
+ either signaled or unsignaled. More detailed rules describing
+ signalling follow (these may need to be imbedded into the actual
+ spec language):
+
+ * A fence sync object has two possible status values: signaled or
+ unsignaled.
+ * When created, the status of the sync object is unsignaled.
+ * A fence command is inserted into a command stream. A fence sync
+ object is not.
+ * A fence command, once its condition has been met, will set its
+ associated sync object to the signaled state. The only condition
+ currently supported is EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR.
+ * A wait function, such as ClientWaitSyncKHR, waits on a fence
+ sync object, not on a fence command.
+ * A wait function called on a sync object in the unsignaled state
+ will block. It unblocks (note, not "returns to the application")
+ when the sync object transitions to the signaled state.
+ * A wait function called on a sync object in the signaled state
+ will return immediately.
+
+ 7. [REMOVED - found in the reusable_sync extension.]
+
+ 8. [REMOVED - found in the reusable_sync extension.]
+
+ 9. Should eglDestroySyncKHR release all WaitSyncs placed on a fence
+ sync object?
+
+ RESOLVED: No. (note that this behavior differs from reusable syncs.)
+
+ Fence sync objects are intended to be signalled by the graphics
+ driver within a short period of time (typically less than 1 second
+ after creation) and so should not cause waiting threads to hang
+ forever. To reduce implementation complexity, fence sync objects are
+ defined to not release waiting threads; waiting threads are released
+ normally when their condition is satisfied or their timeout expires.
+ The handle to a fence sync object immediately becomes invalid
+ following a call to eglDestroySyncKHR.
+
+Revision History
+
+#24 (Jon Leech, January 31, 2014)
+ - Clarify return value of ClientWaitSyncKHR when called with <timeout>
+ of zero for an unsignaled <sync> (Bug 11576).
+#23 (Jon Leech, April 23, 2013)
+ - Simplify issues list to remove issues specific to reusable sync
+ objects and general sync object design issues.
+#22 (Jon Leech, June 15, 2010)
+ - Correct minor typos in GL/VG extension names.
+#21 (Jon Leech, May 5, 2010)
+ - Correct minor typos, assign extension numbers for EGL, OpenGL ES,
+ and OpenVG, and publish in the registry,
+#20 (Robert Palmer, July 14, 2009)
+ - Branch wording from draft KHR_sync specification. Remove ability
+ to create "reusable sync objects and all tokens/wording specific
+ to them.
+#19 (Robert Palmer, July 22, 2009)
+ - Replace specific eglCreateSyncKHR error cases for bad <type>
+ argument with extensible catch-all case.
+#18 (Robert Palmer, July 8, 2009)
+ - Issues 8 and 9 declared resolved in EGL meeting 2009-07-08
+#17 (Robert Palmer, July 8, 2009)
+ - Update eglDestroySyncKHR to special-case deletion of fence sync
+ objects. This is explained in issue 9.
+ - Corrected EGL_REUSABLE_SYNC_KHR -> EGL_SYNC_REUSABLE_KHR
+ - Define value for EGL_SYNC_REUSABLE_KHR
+ - Fix typo and whitespace
+#16 (Jon Leech, July 7, 2009)
+ - Update description of new tokens to match changes to the
+ eglCreateSyncKHR entry point in revision 15.
+#15 (Jon Leech, June 16, 2009)
+ - Define separate one-time fence sync and reusable sync extensions
+ and corresponding extension strings. Remove AUTO_RESET and
+ eglFenceKHR. Rename eglCreateFenceSyncKHR to eglCreateSyncKHR and
+ change initial status of reusable syncs to unsignaled. Clarify
+ which functions apply to which types of sync objects. Update
+ issues list.
+#14 (Jon Leech, April 29, 2009)
+ - Clarify that all waiters are woken up on signalling a sync.
+ Remove tabs to cleanup some formatting issues.
+#13 (Acorn Pooley, April 2, 2009)
+ - Renamed
+ GL_OES_egl_sync -> GL_OES_EGL_sync
+ VG_KHR_egl_sync -> VG_KHR_EGL_sync
+#12 (Jon Leech, April 1, 2009)
+ - Changed sync flags type from EGLuint to EGLint and add issue 7.
+#11 (Acorn Pooley, February 4, 2009)
+ - add error case to eglGetSyncAttribKHR.
+ - fix year on rev 8-10 (2008->2009)
+#10 (Acorn Pooley, February 4, 2009)
+ - clarify some error message descriptions
+#9 (Greg Prisament, January 15, 2009)
+ - Destroy now wakes up all waits (eglClientWaitSyncKHR)
+ - Add EGLDisplay <dpy> as first parameter to all commands
+ - Split into 3 extension strings, EGL_KHR_sync, GL_OES_egl_sync,
+ VG_KHR_egl_sync, all described in this document.
+ - Add attribute AUTO_RESET_KHR
+ - Time type uses the type from khrplatform.h
+ - Remove EGL_ALREADY_SIGNALLED
+#8 (Jon Leech, November 11, 2009)
+ - Assign enum values
+#7 (Acorn Pooley, October 30, 2008)
+ - Fix typos
+ - remove obsolete wording about Native sync objects (see issue 5)
+ - formatting: remove tabs, 80 columns
+#6 (Acorn Pooley, October 27, 2008)
+ - Corrected 'enum' to 'EGLenum' in prototypes.
+#5 (Jon Leech, September 9, 2008)
+ - Removed native sync support (eglCreateNativeSyncKHR and
+ EGL_SYNC_NATIVE_SYNC_KHR), and re-flowed spec to fit in 80 columns.
+#4 (Jon Leech, November 20, 2007)
+ - Corrected 'enum' to 'EGLenum' in prototypes.
+#3 (Jon Leech, April 5, 2007)
+ - Added draft Status and TBD Number
+#2 (November 27, 2006)
+ - Changed OES token to KHR
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_get_all_proc_addresses.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_get_all_proc_addresses.txt
new file mode 100644
index 0000000..f01c160
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_get_all_proc_addresses.txt
@@ -0,0 +1,206 @@
+Names
+
+ KHR_get_all_proc_addresses
+ KHR_client_get_all_proc_addresses
+
+Name Strings
+
+ EGL_KHR_get_all_proc_addresses
+ EGL_KHR_client_get_all_proc_addresses
+
+Contributors
+
+ Jon Leech
+ Marcus Lorentzon
+ Robert Palmer
+ Acorn Pooley
+ Greg Prisament
+ Chad Versace
+
+Contacts
+
+ James Jones, NVIDIA (jajones 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete. Approved by the EGL Working Group on April 3, 2013.
+ Ratified by the Khronos Board of Promoters on July 19, 2013.
+
+Version
+
+ Version 3 - July 31, 2013
+
+Number
+
+ EGL Extension #61
+
+Extension Types
+
+ EGL_KHR_get_all_proc_addresses is an EGL display extension
+ EGL_KHR_client_get_all_proc_addresses is an EGL client extension
+
+Dependencies
+
+ EGL 1.2 is required.
+
+ This extension is written based on the wording of the EGL 1.4
+ specification.
+
+ Interacts with EGL_EXT_client_extensions.
+
+Overview
+
+ eglGetProcAddress is currently defined to not support the querying
+ of non-extension EGL or client API functions. Non-extension
+ functions are expected to be exposed as library symbols that can
+ be resolved statically at link time, or dynamically at run time
+ using OS-specific runtime linking mechanisms.
+
+ With the addition of OpenGL and OpenGL ES 3 support to EGL, the
+ definition of a non-extension function becomes less clear. It is
+ common for one OpenGL library to implement many versions of
+ OpenGL. The suggested library name for OpenGL ES 3 is the same as
+ that of OpenGL ES 2. If OpenGL ES 3 applications linked
+ statically to OpenGL ES 3 functions are run on a system with only
+ OpenGL ES 2 support, they may fail to load. Similar problems
+ would be encountered by an application linking statically to
+ various OpenGL functions.
+
+ To avoid requiring applications to fall back to OS-specific
+ dynamic linking mechanisms, this extension drops the requirement
+ that eglGetProcAddress return only non-extension functions. If
+ the extension string is present, applications can query all EGL
+ and client API functions using eglGetProcAddress.
+
+ To allow users to query this extension before initializing a display, and
+ to also allow vendors to ship this extension without
+ EGL_EXT_client_extensions, two names are assigned to this extension: one
+ a display extension and the other a client extension. Identical
+ functionality is exposed by each name, but users query each name using
+ different methods. Users query EGL_KHR_get_all_proc_addresses in the
+ usual way; that is, by calling eglQueryString(dpy, EGL_EXTENSIONS) on an
+ initialized display. To query EGL_KHR_client_get_all_proc_addresses,
+ users must use a different method which is described below in the section
+ concerning EGL_EXT_client_extensions.
+
+New Types
+
+ None
+
+New functions
+
+ None
+
+New Tokens
+
+ None
+
+Rename section "3.10 Obtaining Extension Function Pointers" to "3.10
+Obtaining Function Pointers", and replace its content with the
+following:
+
+ "The client API and EGL extensions and versions which are available to a
+ client may vary at runtime, depending on factors such as the rendering
+ path being used (hardware or software), resources available to the
+ implementation, or updated device drivers. Therefore, the address of
+ functions may be queried at runtime. The function
+
+ void (*eglGetProcAddress(const char *procname))(void);
+
+ returns the address of the function named by <procName>. <procName> must
+ be a NULL-terminated string. The pointer returned should be cast to a
+ function pointer matching the function's definition in the corresponding
+ API or extension specification. A return value of NULL indicates that
+ the specified function does not exist for the implementation.
+
+ A non-NULL return value for eglGetProcAddress does not guarantee that a
+ function is actually supported at runtime. The client must also make a
+ corresponding query, such as glGetString(GL_EXTENSIONS) for OpenGL and
+ OpenGL ES extensions; vgGetString(VG_EXTENSIONS) for OpenVG extensions;
+ eglQueryString(dpy, EGL_EXTENSIONS) for EGL extensions; or query the
+ corresponding API's version for non-extension functions, to determine if
+ a function is supported by a particular client API context or display.
+
+ Client API function pointers returned by eglGetProcAddress are
+ independent of the display and the currently bound client API context,
+ and may be used by any client API context which supports the function.
+
+ eglGetProcAddress may be queried for all EGL and client API extension
+ and non-extension functions supported by the implementation (whether
+ those functions are supported by the current client API context or not).
+
+ For functions that are queryable with eglGetProcAddress, implementations
+ may also choose to export those functions statically from the object
+ libraries implementing them. However, portable clients cannot rely on
+ this behavior."
+
+Interactions with EGL_EXT_client_extensions
+
+ The EGL specification describes the behavior of eglGetProcAddress as
+ independent of any display. Therefore, this extension's functionality
+ falls under the classification 'client extension' rather than 'display
+ extension'. Accordingly, users may wish to query this extension before
+ initializing a display.
+
+ If the EGL_EXT_client_extensions is supported, then users can query this
+ extension by checking for the name EGL_KHR_client_get_all_proc_addresses
+ in the extension string of EGL_NO_DISPLAY.
+
+ The EGL implementation must expose the name
+ EGL_KHR_client_get_all_proc_addresses if and only if it exposes
+ EGL_KHR_get_all_proc_addresses and supports EGL_EXT_client_extensions.
+ This requirement eliminates the problematic situation where, if an EGL
+ implementation exposed only one name, then an EGL client would fail to
+ detect the extension if it queried only the other name.
+
+ Despite having two names assigned to this extension, the restrictions
+ described in EGL_EXT_client_extensions still apply. As
+ EGL_KHR_client_get_all_proc_addresses is defined as a client extension,
+ its name can appear only in the extension string of EGL_NO_DISPLAY and
+ not in the extension string of any valid display. The converse applies
+ to EGL_KHR_get_all_proc_addresses, as it is defined as a display
+ extension.
+
+Issues
+
+ 1. What should this spec be called?
+
+ PROPOSED: KHR_get_all_proc_addresses
+
+ 2. Should this extension be classified as a client extension, as defined
+ by EGL_EXT_client_extensions?
+
+ DISCUSSION: Yes and no.
+
+ Yes, because this extension exposes functionality that is solely
+ a property of the EGL library itself, independent of any display.
+ Such functionality falls under the classification of 'client
+ extension'.
+
+ No, because classifying it as a client extension would create
+ a dependency on EGL_EXT_client_extensions, and there exists no
+ precedent for a KHR extension that depends on an EXT extension.
+
+ RESOLUTION: Expose this extension under two names, one a client
+ extension and the other a display extension.
+
+Revision History
+
+ #3 (July 31, 2013) Chad Versace
+ - Assign additional name, EGL_KHR_client_get_all_proc_addresses.
+ - Add section "Extension Types", section "Interactions with
+ EGL_EXT_client_extensions", and issue #2.
+
+ #2 (March 6, 2013) Jon Leech
+ - Bring into sync with latest EGL 1.4 spec update and simplify
+ language describing which functions may be queried. Minor
+ formatting changes for greater consistency with other KHR
+ extension specs.
+
+ #1 (February 4, 2013) James Jones
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_gl_colorspace.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_gl_colorspace.txt
new file mode 100644
index 0000000..e3fbc38
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_gl_colorspace.txt
@@ -0,0 +1,197 @@
+Name
+
+ KHR_gl_colorspace
+
+Name Strings
+
+ EGL_KHR_gl_colorspace
+
+Contact
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Complete.
+ Version 3 approved by the EGL Working Group on September 13, 2013.
+ Ratified by the Khronos Board of Promoters on December 13, 2013.
+
+Version
+
+ Version 5, 2014/07/15
+
+Number
+
+ EGL Extension #66
+
+Dependencies
+
+ EGL 1.4 is required.
+
+ Some of the capabilities of these extensions are only available via
+ OpenGL or OpenGL ES contexts supporting sRGB default framebuffers,
+ as defined below.
+
+Overview
+
+ Applications may wish to use sRGB format default framebuffers to
+ more easily achieve sRGB rendering to display devices. This
+ extension allows creating EGLSurfaces which will be rendered to in
+ sRGB by OpenGL contexts supporting that capability.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as an attribute name by eglCreateWindowSurface,
+ eglCreatePbufferSurface and eglCreatePixmapSurface
+
+ EGL_GL_COLORSPACE_KHR 0x309D
+
+ Accepted as attribute values for EGL_GL_COLORSPACE_KHR by
+ eglCreateWindowSurface, eglCreatePbufferSurface and
+ eglCreatePixmapSurface
+
+ EGL_GL_COLORSPACE_SRGB_KHR 0x3089
+ EGL_GL_COLORSPACE_LINEAR_KHR 0x308A
+
+ (these enums are aliases of the corresponding VG colorspace
+ attribute values from EGL 1.3)
+
+Additions to the EGL 1.4 Specification
+
+ Modify the 2nd paragraph on page 29 in section 3.5.1 "Creating
+ On-Screen Rendering Surfaces:
+
+ "Note that the EGL_GL_COLORSPACE_KHR attribute is used only by OpenGL
+ and OpenGL ES contexts supporting sRGB framebuffers. EGL itself does
+ not distinguish multiple colorspace models. Refer to the ``sRGB
+ Conversion'' sections of the OpenGL 4.3 and OpenGL ES 3.0
+ specifications for more information."
+
+
+ Add preceding the 4th paragraph on this page:
+
+ "EGL_GL_COLORSPACE_KHR specifies the color space used by OpenGL and
+ OpenGL ES when rendering to the surface[fn1]. If its value is
+ EGL_GL_COLORSPACE_SRGB_KHR, then a non-linear, perceptually uniform
+ color space is assumed, with a corresponding
+ GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING value of GL_SRGB. If its value
+ is EGL_GL_COLORSPACE_LINEAR_KHR, then a linear color space is assumed,
+ with a corresponding GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING value of
+ GL_LINEAR. The default value of EGL_GL_COLORSPACE_KHR is
+ EGL_GL_COLORSPACE_LINEAR_KHR.
+
+ [fn1] Only OpenGL and OpenGL ES contexts which support sRGB
+ rendering must respect requests for EGL_GL_COLORSPACE_SRGB_KHR, and
+ only to sRGB formats supported by the context (normally just SRGB8)
+ Older versions not supporting sRGB rendering will ignore this
+ surface attribute. Applications using OpenGL must additionally
+ enable GL_FRAMEBUFFER_SRGB to perform sRGB rendering, even when an
+ sRGB surface is bound; this enable is not required (or supported)
+ for OpenGL ES."
+
+
+ Modify the 4th paragraph on page 30 in section 3.5.2,
+ "Creating Off-Screen Rendering Surfaces":
+
+ "... Attributes that can be specified in <attrib_list> include ...
+ EGL_GL_COLORSPACE_KHR, EGL_VG_COLORSPACE, and EGL_VG_ALPHA_FORMAT."
+
+
+ Add preceding the second paragraph on page 31 in section 3.5.2:
+
+ "EGL_GL_COLORSPACE_KHR has the same meaning and default values as when
+ used with eglCreateWindowSurface."
+
+
+ Modify the next to last paragraph on page 34 in section 3.5.4,
+ "Creating Native Pixmap Rendering Surfaces":
+
+ "... Attributes that can be specified in <attrib_list> include
+ EGL_GL_COLORSPACE_KHR, EGL_VG_COLORSPACE, and EGL_VG_ALPHA_FORMAT."
+
+
+ Add preceding the second paragraph on page 35 in section 3.5.4:
+
+ "EGL_GL_COLORSPACE_KHR has the same meaning and default values as when
+ used with eglCreateWindowSurface."
+
+
+ Add to table 3.5 on page 37:
+
+ "Attribute Type Description
+ -------------------- ---- -----------
+ EGL_GL_COLORSPACE_KHR enum Color space for OpenGL and OpenGL ES"
+
+
+Errors
+
+ New EGL errors as described in the body of the specification (to be
+ enumerated here in a later draft).
+
+Conformance Tests
+
+ TBD
+
+Sample Code
+
+ TBD
+
+Issues
+
+ 1) How about premultiplied alpha?
+
+ DISCUSSION: OpenGL doesn't expose this a property of the API, so there's
+ no point in exposing it through EGL as a hint to GL. Shaders deal with
+ premultiplied alpha.
+
+ 2) Do we need to determine EGL_GL_COLORSPACE_KHR from client buffer
+ attributes in section 3.5.3?
+
+ DISCUSSION: probably. Not done yet.
+
+ 3) How should EGL_GL_COLORSPACE_SRGB_KHR be capitalized?
+
+ DISCUSSION: Daniel prefers SRGB. The VG token uses sRGB which is a
+ rare case of an enum name containing a lower case letter. Currently
+ the spec uses SRGB.
+
+ 4) Explain differences in surface creation semantics vs.
+ EGL_VG_COLORSPACE.
+
+ DISCUSSION: The EGL 1.4 spec allows surface creation to fail with a
+ BAD_MATCH error when requesting an unsupported VG sRGB format. This
+ is relatively easy to detect since all OpenVG implementations must
+ support sRGB rendering to specified formats. It is trickier with
+ OpenGL and OpenGL ES for two reasons:
+
+ - Some GL/ES contexts may support sRGB rendering while other
+ contexts in the same runtime may not.
+ - Some contexts may support a broader range of sRGB formats than
+ others.
+
+ Possibly we should add EGL_GL_COLORSPACE_SRGB_BIT_KHR to
+ EGL_SURFACE_TYPE, but we've been deemphasizing EGLConfigs going
+ forward, and hopefully we can get away without doing this.
+
+Revision History
+
+ Version 1, 2013/04/26
+ - Initial draft based on proposal in bug 9995.
+ Version 2, 2013/04/26
+ - GL ES doesn't require GL_FRAMEBUFFER_SRGB enable.
+ Version 3, 2013/05/15
+ - Capitalize SRGB in token name, change reference from VG to GL/ES
+ in section 3.5.1, note that ES does not require FRAMEBUFFER_SRGB
+ enable, add issue 4, and fix typos (bug 9995).
+ Version 4, 2013/09/16
+ - Assign enum values.
+ Version 5, 2014/07/15
+ - Fix New Tokens section to include all relevant commands (Bug 12457).
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_gl_image.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_gl_image.txt
new file mode 100644
index 0000000..ab7f253
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_gl_image.txt
@@ -0,0 +1,432 @@
+Name
+
+ KHR_gl_texture_2D_image
+ KHR_gl_texture_cubemap_image
+ KHR_gl_texture_3D_image
+ KHR_gl_renderbuffer_image
+
+Name Strings
+
+ EGL_KHR_gl_texture_2D_image
+ EGL_KHR_gl_texture_cubemap_image
+ EGL_KHR_gl_texture_3D_image
+ EGL_KHR_gl_renderbuffer_image
+
+Contributors
+
+ Aaftab Munshi
+ Barthold Lichtenbelt
+ Gary King
+ Jeff Juliano
+ Jon Leech
+ Jonathan Grant
+ Acorn Pooley
+
+Contacts
+
+ Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the Khronos Board of Promoters on February 11, 2008.
+
+Version
+
+ Version 13, October 9, 2013
+
+Number
+
+ EGL Extension #5
+
+Dependencies
+
+ All extensions require EGL 1.2 and the EGL_KHR_image extension
+
+ These extensions are written against the wording of the EGL 1.2
+ Specification.
+
+ KHR_gl_texture_2D_image requires an OpenGL or OpenGL ES client API (any
+ version of either API).
+
+ KHR_gl_texture_cubemap_image requires an OpenGL or OpenGL ES client API
+ supporting texture cube maps, either in the core API or via extensions.
+
+ KHR_gl_texture_3D_image requires KHR_gl_texture_2D_image to be supported
+ by the EGL implementation. It also requires an OpenGL or OpenGL ES
+ client API supporting three-dimensional textures, either in the core API
+ or via extensions.
+
+ KHR_gl_renderbuffer_image requires KHR_gl_texture_2D_image to be
+ supported by the EGL implementation. It also requires an OpenGL or
+ OpenGL ES client API supporting renderbuffers, either in the core API or
+ via extensions.
+
+Overview
+
+ The extensions specified in this document provide a mechanism for
+ creating EGLImage objects from OpenGL and OpenGL ES (henceforth referred
+ to collectively as 'GL') API resources, including two- and three-
+ dimensional textures, cube maps and render buffers. For an overview of
+ EGLImage operation, please see the EGL_KHR_image specification.
+
+ Due to the number of available extensions for the OpenGL ES 1.1 and
+ OpenGL ES 2.0 APIs, this document is organized as 4 separate extensions,
+ described collectively. These extensions are separated based on the
+ required underlying GL functionality (described in the dependencies
+ section).
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted in the <target> parameter of eglCreateImageKHR:
+
+ EGL_GL_TEXTURE_2D_KHR 0x30B1
+
+ Accepted as an attribute in the <attr_list> parameter of
+ eglCreateImageKHR:
+
+ EGL_GL_TEXTURE_LEVEL_KHR 0x30BC
+
+ Added by KHR_gl_texture_cubemap_image:
+
+ Accepted in the <target> parameter of eglCreateImageKHR:
+
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8
+
+ Added by KHR_gl_texture_3D_image:
+
+ Accepted in the <target> parameter of eglCreateImageKHR:
+
+ EGL_GL_TEXTURE_3D_KHR 0x30B2
+
+ Accepted as an attribute in the <attr_list> parameter of
+ eglCreateImageKHR:
+
+ EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD
+
+ Added by KHR_gl_renderbuffer_image:
+
+ Accepted in the <target> parameter of eglCreateImageKHR:
+
+ EGL_GL_RENDERBUFFER_KHR 0x30B9
+
+
+Additions to the EGL Image (EGL_KHR_image) Specification:
+
+ Add the following to Table aaa (Legal values for eglCreateImageKHR
+ <target> parameter), Section 2.5.1 (EGLImage Specification)
+
+ +-------------------------------------+---------------------------------+
+ | <target> | Notes |
+ +-------------------------------------+---------------------------------+
+ | EGL_GL_TEXTURE_2D_KHR | Used for GL 2D texture images |
+ +-------------------------------------+---------------------------------+
+
+ If KHR_gl_texture_cubemap_image is supported:
+
+ +-----------------------------------------+-----------------------------+
+ | <target> | Notes |
+ +-----------------------------------------+-----------------------------+
+ | EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR | Used for the +X face of |
+ | | GL cubemap texture images |
+ +-----------------------------------------+-----------------------------+
+ | EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR | Used for the -X face of |
+ | | GL cubemap texture images |
+ +-----------------------------------------+-----------------------------+
+ | EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR | Used for the +Y face of |
+ | | GL cubemap texture images |
+ +-----------------------------------------+-----------------------------+
+ | EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR | Used for the -Y face of |
+ | | GL cubemap texture images |
+ +-----------------------------------------+-----------------------------+
+ | EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR | Used for the +Z face of |
+ | | GL cubemap texture images |
+ +-----------------------------------------+-----------------------------+
+ | EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR | Used for the -Z face of |
+ | | GL cubemap texture images |
+ +-----------------------------------------+-----------------------------+
+
+ If KHR_gl_texture_3D_image is supported:
+
+ +-------------------------------------+---------------------------------+
+ | <target> | Notes |
+ +-------------------------------------+---------------------------------+
+ | EGL_GL_TEXTURE_3D_KHR | Used for GL 3D texture images |
+ +-------------------------------------+---------------------------------+
+
+ If KHR_gl_renderbuffer_image is supported:
+
+ +-------------------------------------+---------------------------------+
+ | <target> | Notes |
+ +-------------------------------------+---------------------------------+
+ | EGL_GL_RENDERBUFFER_KHR | Used for GL renderbuffer images|
+ +-------------------------------------+---------------------------------+
+
+ Add the following to Table bbb (Legal attributes for eglCreateImageKHR
+ <attr_list> parameter), Section 2.5.1 (EGLImage Specification)
+
+ +---------------------------+-------------------------------+----------------------------+---------+
+ | | | Valid | Default |
+ | Attribute | Description | <target>s | Value |
+ +---------------------------+-------------------------------+----------------------------+---------+
+ | EGL_GL_TEXTURE_LEVEL_KHR | Specifies the mipmap level | EGL_GL_TEXTURE_2D_KHR, | 0 |
+ | | used as the EGLImage source. | EGL_GL_TEXTURE_CUBE_MAP_*, | |
+ | | Must be part of the complete | EGL_GL_TEXTURE_3D_KHR | |
+ | | texture object <buffer> | | |
+ +---------------------------+-------------------------------+----------------------------+---------+
+
+ If KHR_gl_texture_3D_image is supported:
+
+ +----------------------------+------------------------------+----------------------------+---------+
+ | | | Valid | Default |
+ | Attribute | Description | <target>s | Value |
+ +----------------------------+------------------------------+----------------------------+---------+
+ | EGL_GL_TEXTURE_ZOFFSET_KHR | Specifies the depth offset | EGL_GL_TEXTURE_3D_KHR | 0 |
+ | | of the image to use as the | | |
+ | | EGLImage source. Must be | | |
+ | | part of the complete texture| | |
+ | | object <buffer> | | |
+ +----------------------------+------------------------------+----------------------------+---------+
+
+
+ Insert the following text after paragraph 3 ("If <target> is
+ NATIVE_PIXMAP_KHR...") of Section 2.5.1 (EGLImage Specification)
+
+ "If <target> is EGL_GL_TEXTURE_2D_KHR, EGL_GL_TEXTURE_3D_KHR,
+ EGL_GL_RENDERBUFFER_KHR,
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR,
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR,
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR,
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR,
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR, or
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR,
+ <dpy> must be a valid EGLDisplay,
+ and <ctx> must be a valid GL API context on that display.
+
+ If <target> is EGL_GL_TEXTURE_2D_KHR, <buffer> must be the name of a
+ nonzero, GL_TEXTURE_2D target texture object, cast into
+ the type EGLClientBuffer. <attr_list> should specify the mipmap level
+ which will be used as the EGLImage source (EGL_GL_TEXTURE_LEVEL_KHR); the
+ specified mipmap level must be part of <buffer>. If not specified, the
+ default value listed in Table bbb will be used, instead. Additional
+ values specified in <attr_list> are ignored. The texture must be complete
+ unless the mipmap level to be used is 0, the texture has mipmap level 0
+ specified, and no other mipmap levels are specified.
+
+ If <target> is one of the EGL_GL_TEXTURE_CUBE_MAP_* enumerants, <buffer>
+ must be the name of a cube-complete, nonzero, GL_TEXTURE_CUBE_MAP (or
+ equivalent in GL extensions) target texture object, cast into the type
+ EGLClientBuffer. <attr_list> should specify the mipmap level which will
+ be used as the EGLImage source (EGL_GL_TEXTURE_LEVEL_KHR); the specified
+ mipmap level must be part of <buffer>. If not specified, the default
+ value listed in Table bbb will be used, instead. Additional values
+ specified in <attr_list> are ignored. The texture must be cube-complete
+ unless the mipmap level to be used is 0, the texture has mipmap level 0
+ specified for all faces, and no other mipmap levels are specified for any
+ faces.
+
+ If <target> is EGL_GL_TEXTURE_3D_KHR, <buffer> must be the name of a
+ complete, nonzero, GL_TEXTURE_3D (or equivalent in GL extensions) target
+ texture object, cast
+ into the type EGLClientBuffer. <attr_list> should specify the mipmap
+ level (EGL_GL_TEXTURE_LEVEL_KHR) and z-offset (EGL_GL_TEXTURE_ZOFFSET_KHR)
+ which will be used as the EGLImage source; the specified mipmap level must
+ be part of <buffer>, and the specified z-offset must be smaller than the
+ depth of the specified mipmap level. If a value is not specified, the
+ default value listed in Table bbb will be used, instead. Additional
+ values specified in <attr_list> are ignored. The texture must be
+ complete unless the mipmap level to be used is 0, the texture has mipmap
+ level 0 specified, and no other mipmap levels are specified.
+
+ If <target> is EGL_GL_RENDERBUFFER_KHR, <buffer> must be the name of a
+ complete, nonzero, non-multisampled GL_RENDERBUFFER (or equivalent in
+ extensions) target object, cast into the type EGLClientBuffer. Values
+ specified in <attr_list> are ignored."
+
+ Add the following errors to the end of the list in Section 2.5.1 (EGLImage
+ Specification):
+
+ " * If <target> is EGL_GL_TEXTURE_2D_KHR, EGL_GL_TEXTURE_CUBE_MAP_*_KHR,
+ EGL_GL_RENDERBUFFER_KHR or EGL_GL_TEXTURE_3D_KHR, and <dpy> is not a
+ valid EGLDisplay, the error EGL_BAD_DISPLAY is generated.
+
+ * If <target> is EGL_GL_TEXTURE_2D_KHR, EGL_GL_TEXTURE_CUBE_MAP_*_KHR,
+ EGL_GL_RENDERBUFFER_KHR or EGL_GL_TEXTURE_3D_KHR, and <ctx> is not a
+ valid EGLContext, the error EGL_BAD_CONTEXT is generated.
+
+ * If <target> is EGL_GL_TEXTURE_2D_KHR, EGL_GL_TEXTURE_CUBE_MAP_*_KHR,
+ EGL_GL_RENDERBUFFER_KHR or EGL_GL_TEXTURE_3D_KHR, and <ctx> is not a
+ valid GL context, or does not match the <dpy>, the error
+ EGL_BAD_MATCH is generated.
+
+ * If <target> is EGL_GL_TEXTURE_2D_KHR, EGL_GL_TEXTURE_CUBE_MAP_*_KHR
+ or EGL_GL_TEXTURE_3D_KHR and <buffer> is not the name of a
+ texture object of type <target>, the error EGL_BAD_PARAMETER
+ is generated.
+
+ * If <target> is EGL_GL_RENDERBUFFER_KHR and <buffer> is not the
+ name of a renderbuffer object, or if <buffer> is the name of a
+ multisampled renderbuffer object, the error EGL_BAD_PARAMETER is
+ generated.
+
+ * If EGL_GL_TEXTURE_LEVEL_KHR is nonzero, <target> is
+ EGL_GL_TEXTURE_2D_KHR, EGL_GL_TEXTURE_CUBE_MAP_*_KHR or
+ EGL_GL_TEXTURE_3D_KHR, and <buffer> is not the name of a complete
+ GL texture object, the error EGL_BAD_PARAMETER is generated.
+
+ * If EGL_GL_TEXTURE_LEVEL_KHR is 0, <target> is
+ EGL_GL_TEXTURE_2D_KHR, EGL_GL_TEXTURE_CUBE_MAP_*_KHR or
+ EGL_GL_TEXTURE_3D_KHR, <buffer> is the name of an incomplete GL
+ texture object, and any mipmap levels other than mipmap level 0
+ are specified, the error EGL_BAD_PARAMETER is generated.
+
+ * If EGL_GL_TEXTURE_LEVEL_KHR is 0, <target> is
+ EGL_GL_TEXTURE_2D_KHR or EGL_GL_TEXTURE_3D_KHR, <buffer> is not
+ the name of a complete GL texture object, and mipmap level 0 is
+ not specified, the error EGL_BAD_PARAMETER is generated.
+
+ * If EGL_GL_TEXTURE_LEVEL_KHR is 0, <target> is
+ EGL_GL_TEXTURE_CUBE_MAP_*_KHR, <buffer> is not the name of a
+ complete GL texture object, and one or more faces do not have
+ mipmap level 0 specified, the error EGL_BAD_PARAMETER is
+ generated.
+
+ * If <target> is EGL_GL_TEXTURE_2D_KHR,
+ EGL_GL_TEXTURE_CUBE_MAP_*_KHR, EGL_GL_RENDERBUFFER_KHR or
+ EGL_GL_TEXTURE_3D_KHR and <buffer> refers to the default GL
+ texture object (0) for the corresponding GL target, the error
+ EGL_BAD_PARAMETER is generated.
+
+ * If <target> is EGL_GL_TEXTURE_2D_KHR, EGL_GL_TEXTURE_CUBE_MAP_*_KHR,
+ or EGL_GL_TEXTURE_3D_KHR, and the value specified in <attr_list>
+ for EGL_GL_TEXTURE_LEVEL_KHR is not a valid mipmap level for the
+ specified GL texture object <buffer>, the error EGL_BAD_MATCH is
+ generated.
+
+ * If <target> is EGL_GL_TEXTURE_3D_KHR, and the value specified in
+ <attr_list> for EGL_GL_TEXTURE_ZOFFSET_KHR exceeds the depth
+ of the specified mipmap level-of-detail in <buffer>, the error
+ EGL_BAD_PARAMETER is generated."
+
+
+Issues
+
+ 1. What should happen if an application attempts to create an
+ EGLImage from a default OpenGL object (i.e., objects with
+ a name of 0)?
+
+ SUGGESTION: Disallow this operation, and generate an error.
+
+ 2. What happens when one of
+ glTexImage2D
+ glCopyTexImage2D
+ glCompressedTexImage2D
+ glTexImage3D
+ glCopyTexImage3D
+ glCompressedTexImage3D
+ is called on a texture which has a mipmap level which is an EGLImage
+ sibling?
+
+ RESOLVED: the EGLImage sibling is orphaned. The mipmap level and the
+ EGLImage no longer have any connection.
+
+ 3. What happens when one of
+ glTexSubImage2D
+ glCopyTexSubImage2D
+ glCompressedTexSubImage2D
+ glTexSubImage3D
+ glCopyTexSubImage3D
+ glCompressedTexSubImage3D
+ is called on a texture which has a mipmap level which is an EGLImage
+ sibling?
+
+ RESOLVED: the EGLImage sibling is NOT orphaned. The mipmap level
+ remains an EGLImage sibling.
+
+ 4. What happens when glGenerateMipmaps is called on a texture which has a
+ mipmap level which is an EGLImage sibling?
+
+ RESOLVED: If the texture is already complete, then the EGLImage
+ sibling is not orphaned, and the mipmap level remains an EGLImage
+ sibling. However, if the texture was not complete then the
+ EGLImage sibling IS orphaned. This is because the implementation
+ will implicitly alter the structure of the mipmap levels.
+
+ 5. What happens when the GL_GENERATE_MIPMAP bit causes a texture to be
+ respecified.
+
+ RESOLVED: If the texture is already complete, then the EGLImage
+ sibling is not orphaned, and the mipmap level remains an EGLImage
+ sibling. However, if the texture was not complete then the
+ EGLImage sibling IS orphaned. This is because the implementation
+ will implicitly alter the structure of the mipmap levels.
+
+ 6. Can an EGLImage be created from a multisampled GL image?
+
+ RESOLVED: NO. Attempting to create an EGLImage from a multisampled
+ GL renderbuffer is now an error. Attempting to create from a
+ multisampled OpenGL texture image is not possible because none of
+ the multisampled <target>s are supported.
+
+ 7. Are all types of two-dimensional GL images which might
+ be associated with EGLImages allowed?
+
+ Not yet. We could add new variants of these extensions to support
+ other image types such as rectangular and 2D array slice textures,
+ but haven't yet seen a need to do so.
+
+Revision History
+
+#13 (Jon Leech, October 9, 2013) - Define interactions with and support for
+ OpenGL and OpenGL ES 3.0, in addition to OpenGL ES 1/2. Add issue 7 (Bug
+ 10728).
+#12 (Jon Leech, September 16, 2013) - Add error when specifying a
+ renderbuffer <target> and passing a multisampled renderbuffer object.
+ Add issue 6 describing lack of support for multisampled EGLImages (Bug
+ 10728).
+#11 (Jon Leech, June 26, 2013) - Add error when specifying a renderbuffer
+ <target> and not passing a renderbuffer object (Bug 10384).
+#10 (Jon Leech, June 13, 2013) - Add a "Valid Targets" column to table bbb
+ for new attributes, matching proposed changes in EGL_KHR_image_base (Bug
+ 10151).
+#9 (Jon Leech, March 28, 2012)
+ - Fix spelling of *CUBE_MAP* tokens (from CUBEMAP) to agree with
+ eglext.h.
+#8 (Jon Leech, February 4, 2009)
+ - Change "non-default ... texture object" to "nonzero".
+#7 (Bruce Merry, January 20, 2009)
+ - Minor wording improvements on issues 4 and 5.
+#6 (Acorn Pooley, January 13, 2009)
+ - Modify completion requirement so textures with only mipmap level 0 can
+ be EGLImage source siblings. Add issues 2-5.
+#5 (Jon Leech, October 8, 2008)
+ - Updated status (approved as part of OpenKODE 1.0)
+#4 (Jon Leech, April 7, 2007)
+ - Assigned enumerant values
+ - Added OpenKODE 1.0 Provisional disclaimer
+#3 (December 14, 2006)
+ - Changed requirement to egl 1.2 to include EGLClientBuffer type.
+ - formatting to keep within 80 columns
+ - added error condition descriptions for <dpy> and <ctx>
+ - changed error condition for EGL_GL_TEXTURE_ZOFFSET_KHR too big to
+ be EGL_BAD_PARAMETER
+#2 (November 27, 2006)
+ - Changed OES token to KHR
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image.txt
new file mode 100644
index 0000000..430f537
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image.txt
@@ -0,0 +1,140 @@
+Name
+
+ KHR_image
+
+Name Strings
+
+ EGL_KHR_image
+
+Contributors
+
+ Jeff Juliano
+ Gary King
+ Jon Leech
+ Jonathan Grant
+ Barthold Lichtenbelt
+ Aaftab Munshi
+ Acorn Pooley
+ Chris Wynn
+
+Contacts
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+ Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the Khronos Board of Promoters on February 11, 2008.
+
+ Rewritten in terms of split functionality in KHR_image_base and
+ KHR_image_pixmap, approved by the Khronos Technical Working Group
+ on November 19, 2008.
+
+Version
+
+ Version 11, November 12, 2008
+
+Number
+
+ EGL Extension #3
+
+Dependencies
+
+ EGL 1.2 is required.
+
+ An EGL client API, such as OpenGL ES or OpenVG, is required.
+
+ The specifications of EGL_KHR_image_base and EGL_KHR_image_pixmap are
+ required to determine the specification of this extension, although
+ those extentions may not be supported.
+
+ This extension is written against the wording of the EGL 1.2
+ Specification.
+
+Overview
+
+ This extension defines a new EGL resource type that is suitable for
+ sharing 2D arrays of image data between client APIs, the EGLImage,
+ and allows creating EGLImages from EGL native pixmaps.
+
+New Types
+
+ As defined by EGL_KHR_image_base.
+
+New Procedures and Functions
+
+ As defined by EGL_KHR_image_base.
+
+New Tokens
+
+ As defined by EGL_KHR_image_base and EGL_KHR_image_pixmap, with the
+ exception that EGL_IMAGE_PRESERVED_KHR is not defined by this
+ extension.
+
+Additions to Chapter 2 of the EGL 1.2 Specification (EGL Operation)
+
+ EGL_KHR_image is equivalent to the combination of the functionality
+ defined by EGL_KHR_image_base and EGL_KHR_image_pixmap, with the
+ exception that if EGL_KHR_image is supported and EGL_KHR_image_base
+ is not, the attribute EGL_IMAGE_PRESERVED_KHR is not accepted in
+ <attrib_list>, However, the default value of this attribute is still
+ EGL_FALSE. In this situation, image preservation is always disabled.
+
+Issues
+
+ None (but see the issues lists for EGL_KHR_image_base and
+ EGL_KHR_image_pixmap).
+
+Revision History
+
+#11 (Jon Leech, November 12, 2008)
+ - Clarified image preservation behavior when using this extension.
+#10 (Jon Leech, October 22, 2008)
+ - Update description of interactions with EGL_KHR_image_base now
+ that the default value of EGL_IMAGE_PRESERVED_KHR is always FALSE.
+#9 (Jon Leech, October 21, 2008)
+ - Split functionality into new extensions EGL_KHR_image_base and
+ EGL_KHR_image_pixmap, and defined legacy non-preserved image behavior
+ when this extension is supported.
+#8 (Jon Leech, October 8, 2008)
+ - Updated status (approved as part of OpenKODE 1.0)
+#7 (Jon Leech, November 20, 2007)
+ - Corrected 'enum' to 'EGLenum' in prototypes.
+#6 (Jon Leech, April 5, 2007)
+ - Assigned enumerant values
+ - Added OpenKODE 1.0 Provisional disclaimer
+#5 (Jon Leech, February 26, 2007)
+ - Add eglCreateImageKHR error if native pixmaps are not supported by
+ EGL.
+#4 (December 14, 2006)
+ - Replaced EGL_OUT_OF_MEMORY error with EGL_BAD_ALLOC
+ - add "egl" and "EGL" to names to be consistant with spec
+ - formatting to keep within 80 columns
+ - Changed requirement to egl 1.2 to include EGLClientBuffer type.
+ - clarified some unclear error cases
+ - added some new error cases related to <dpy> and <ctx>
+ - add <dpy> param to eglCreateImageKHR and eglDestroyImageKHR
+#3 (November 27, 2006)
+ - Converted OES token to KHR token
+#2 (October 20, 2006)
+ - Split out API-specific image source types (VG, GL, etc.) into
+ individual extensions.
+ - Merged CreateImage2DOES and CreateImage3DOES functions into
+ a single CreateImageOES function with an attribute-value list.
+ - Removed the minimum requirements section (2.5.3), since this
+ doesn't make sense without the client-API specific extensions.
+ The minimum requirements should be migrated to the client-API
+ specific extension specifications.
+ - Added EGL_NO_IMAGE_OES default object, used as return value for
+ CreateImage*OES functions in the event of error conditions.
+ - Reworded issue 5, to clarify that the buffer sub-object (i.e.,
+ the unique resource specified by <ctx>, <target>, <buffer>,
+ and <attrib_list>) specified in CreateImage may not already be
+ an EGLImage sibling (either EGLImage source or EGLImage target).
+#1 Original release
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image_base.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image_base.txt
new file mode 100644
index 0000000..e6a7fb6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image_base.txt
@@ -0,0 +1,755 @@
+Name
+
+ KHR_image_base
+
+Name Strings
+
+ EGL_KHR_image_base
+
+Contributors
+
+ Jeff Juliano
+ Gary King
+ Jon Leech
+ Jonathan Grant
+ Barthold Lichtenbelt
+ Aaftab Munshi
+ Acorn Pooley
+ Chris Wynn
+
+Contacts
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+ Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2008-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete. Functionality approved (as part of KHR_image) by the
+ Khronos Board of Promoters on February 11, 2008.
+
+ Split into KHR_image_base and KHR_image_pixmap approved by the
+ Khronos Technical Working Group on November 19, 2008. Update to
+ version 5 approved on December 10, 2008.
+
+Version
+
+ Version 8, August 27, 2014
+
+Number
+
+ EGL Extension #8
+
+Dependencies
+
+ EGL 1.2 is required.
+
+ An EGL client API, such as OpenGL ES or OpenVG, is required.
+
+ This extension is written against the wording of the EGL 1.2
+ Specification.
+
+Overview
+
+ This extension defines a new EGL resource type that is suitable for
+ sharing 2D arrays of image data between client APIs, the EGLImage.
+ Although the intended purpose is sharing 2D image data, the
+ underlying interface makes no assumptions about the format or
+ purpose of the resource being shared, leaving those decisions to
+ the application and associated client APIs.
+
+Glossary
+
+ EGLImage: An opaque handle to a shared resource created by EGL
+ client APIs, presumably a 2D array of image data
+
+ EGLImage source: An object or sub-object originally created in
+ a client API (such as a mipmap level of a texture object
+ in OpenGL-ES, or a VGImage in OpenVG) which is used as
+ the <buffer> parameter in a call to eglCreateImageKHR.
+
+ EGLImage target: An object created in a client API (such as a
+ texture object in OpenGL-ES or a VGImage in OpenVG)
+ from a previously-created EGLImage
+
+ EGLImage sibling: The set of all EGLImage targets (in all
+ client API contexts) which are created from the
+ same EGLImage object, and the EGLImage source resouce
+ which was used to create that EGLImage.
+
+ Orphaning: The process of respecifying and/or deleting an EGLImage
+ sibling resource (inside a client API context) which
+ does not result in deallocation of the memory associated
+ with the EGLImage or affect rendering results using other
+ EGLImage siblings.
+
+ Referencing: The process of creating an EGLImage target resource
+ (inside a client API context) from an EGLImage.
+
+ Respecification: When the size, format, or other attributes of an
+ EGLImage sibling are changed via client API calls such as
+ gl*TexImage*. Respecification usually will result in
+ orphaning the sibling. Note that changing the pixel values of
+ the sibling (e.g. by rendering to it or by calling
+ gl*TexSubImage*) does not constitute respecification.
+
+New Types
+
+ /*
+ * EGLImageKHR is an object which can be used to create EGLImage
+ * target resources (inside client APIs).
+ */
+ typedef void* EGLImageKHR;
+
+New Procedures and Functions
+
+ EGLImageKHR eglCreateImageKHR(
+ EGLDisplay dpy,
+ EGLContext ctx,
+ EGLenum target,
+ EGLClientBuffer buffer,
+ const EGLint *attrib_list)
+
+ EGLBoolean eglDestroyImageKHR(
+ EGLDisplay dpy,
+ EGLImageKHR image)
+
+New Tokens
+
+ Returned by eglCreateImageKHR:
+
+ EGL_NO_IMAGE_KHR ((EGLImageKHR)0)
+
+ Accepted as an attribute in the <attrib_list> parameter of
+ eglCreateImageKHR:
+
+ EGL_IMAGE_PRESERVED_KHR 0x30D2
+
+Additions to Chapter 2 of the EGL 1.2 Specification (EGL Operation)
+
+ Add a new section "EGLImages" after section 2.4:
+
+ "2.5 EGLImages
+
+ As described in section 2.4, EGL allows contexts of the same client
+ API type to share significant amounts of state (such as OpenGL-ES
+ texture objects and OpenVG paths); however, in some cases it may
+ be desirable to share state between client APIs - an example would be
+ using a previously-rendered OpenVG image as an OpenGL-ES texture
+ object.
+
+ In order to facilitate these more complicated use-cases, EGL is capable
+ of creating EGL resources that can be shared between contexts of
+ different client APIs (called "EGLImages") from client API resources
+ such as texel arrays in OpenGL-ES texture objects or OpenVG VGImages
+ (collectively, the resources that are used to create EGLImages are
+ referred to as "EGLImage sources").
+
+ The EGL client APIs each provide mechanisms for creating appropriate
+ resource types (such as complete texture arrays or OpenVG VGImages) from
+ EGLImages through a API-specific mechanisms. Collectively, resources
+ which are created from EGLImages within client APIs are referred to as
+ "EGLImage targets." Each EGLImage may have multiple associated EGLImage
+ targets. Collectively, the EGLImage source and EGLImage targets
+ associated with an EGLImage object are referred to as "EGLImage
+ siblings."
+
+ 2.5.1 EGLImage Specification
+
+ The command
+
+ EGLImageKHR eglCreateImageKHR(
+ EGLDisplay dpy,
+ EGLContext ctx,
+ EGLenum target,
+ EGLClientBuffer buffer,
+ const EGLint *attrib_list)
+
+ is used to create an EGLImage from an existing image resource <buffer>.
+ <dpy> specifies the EGL display used for this operation.
+ <ctx> specifies the EGL client API context
+ used for this operation, or EGL_NO_CONTEXT if a client API context is not
+ required. <target> specifies the type of resource being used as the
+ EGLImage source (examples include two-dimensional textures in OpenGL ES
+ contexts and VGImage objects in OpenVG contexts). <buffer> is the name
+ (or handle) of a resource to be used as the EGLImage source, cast into the
+ type EGLClientBuffer. <attrib_list> is an list of attribute-value pairs
+ which is used to select sub-sections of <buffer> for use as the EGLImage
+ source, such as mipmap levels for OpenGL ES texture map resources, as well as
+ behavioral options, such as whether to preserve pixel data during creation. If
+ <attrib_list> is non-NULL, the last attribute specified in the list must
+ be EGL_NONE.
+
+ The resource specified by <dpy>, <ctx>, <target>, <buffer>, and
+ <attrib_list> must not itself be an EGLImage sibling, or bound to an EGL
+ PBuffer resource (eglBindTexImage, eglCreatePbufferFromClientBuffer).
+
+ Values accepted for <target> are listed in Table aaa, below(fn1).
+ (fn1) No values are defined by this extension. All functionality
+ to create EGLImages from other types of resources, such as
+ native pixmaps, GL textures, and VGImages, is layered in other
+ extensions.
+
+ +-------------------------+--------------------------------------------+
+ | <target> | Notes |
+ +-------------------------+--------------------------------------------+
+ +-------------------------+--------------------------------------------+
+ Table aaa. Legal values for eglCreateImageKHR <target> parameter
+
+ Attribute names accepted in <attrib_list> are shown in Table bbb,
+ together with the <target> for which each attribute name is valid, and
+ the default value used for each attribute if it is not included in
+ <attrib_list>.
+
+ +-------------------------+----------------------+-----------+---------------+
+ | Attribute | Description | Valid | Default Value |
+ | | | <target>s | |
+ +-------------------------+----------------------+-----------+---------------+
+ | EGL_NONE | Marks the end of the | All | N/A |
+ | | attribute-value list | | |
+ | EGL_IMAGE_PRESERVED_KHR | Whether to preserve | All | EGL_FALSE |
+ | | pixel data | | |
+ +-------------------------+----------------------+-----------+---------------+
+ Table bbb. Legal attributes for eglCreateImageKHR <attrib_list> parameter
+
+ This command returns an EGLImageKHR object corresponding to the image
+ data specified by <dpy>, <ctx>, <target>, <buffer> and <attrib_list> which
+ may be referenced by client API operations, or EGL_NO_IMAGE_KHR in the
+ event of an error.
+
+ If the value of attribute EGL_IMAGE_PRESERVED_KHR is EGL_FALSE (the
+ default), then all pixel data values associated with <buffer> will be
+ undefined after eglCreateImageKHR returns.
+
+ If the value of attribute EGL_IMAGE_PRESERVED_KHR is EGL_TRUE, then all
+ pixel data values associated with <buffer> are preserved.
+
+ Errors
+
+ If eglCreateImageKHR fails, EGL_NO_IMAGE_KHR will be returned, the
+ contents of <buffer> will be unaffected, and one of the following
+ errors will be generated:
+
+ * If <dpy> is not the handle of a valid EGLDisplay object, the error
+ EGL_BAD_DISPLAY is generated.
+
+ * If <ctx> is neither the handle of a valid EGLContext object on
+ <dpy> nor EGL_NO_CONTEXT, the error EGL_BAD_CONTEXT is
+ generated.
+
+ * If <target> is not one of the values in Table aaa, the error
+ EGL_BAD_PARAMETER is generated.
+
+ * If an attribute specified in <attrib_list> is not one of the
+ attributes listed in Table bbb, the error EGL_BAD_PARAMETER is
+ generated.
+
+ * If an attribute specified in <attrib_list> is not a valid attribute
+ for <target>, as shown in Table bbb, the error EGL_BAD_MATCH is
+ generated.
+
+ * If the resource specified by <dpy>, <ctx>, <target>, <buffer> and
+ <attrib_list> has an off-screen buffer bound to it (e.g., by a
+ previous call to eglBindTexImage), the error EGL_BAD_ACCESS is
+ generated.
+
+ * If the resource specified by <dpy>, <ctx>, <target>, <buffer> and
+ <attrib_list> is bound to an off-screen buffer (e.g., by a previous
+ call to eglCreatePbufferFromClientBuffer), the error
+ EGL_BAD_ACCESS is generated.
+
+ * If the resource specified by <dpy>, <ctx>, <target>, <buffer> and
+ <attrib_list> is itself an EGLImage sibling, the error
+ EGL_BAD_ACCESS is generated.
+
+ * If insufficient memory is available to complete the specified
+ operation, the error EGL_BAD_ALLOC is generated.
+
+ * If the call to eglCreateImageKHR fails for multiple reasons, the
+ generated error must be appropriate for one of the reasons,
+ although the specific error returned is undefined.
+
+ * If the value specified in <attrib_list> for EGL_IMAGE_PRESERVED_KHR
+ is EGL_TRUE, and an EGLImageKHR handle cannot be created from the
+ specified resource such that the pixel data values in <buffer> are
+ preserved, the error EGL_BAD_ACCESS is generated.
+
+ Note that the success or failure of eglCreateImageKHR should not affect
+ the ability to use <buffer> in its original API context (or context
+ share group) (although the pixel data values will be undefined if
+ EGL_IMAGE_PRESERVED_KHR is not EGL_TRUE).
+
+ 2.5.2 Lifetime and Usage of EGLImages
+
+ Once an EGLImage is created from an EGLImage source, the memory associated
+ with the EGLImage source will remain allocated (and all EGLImage siblings
+ in all client API contexts will be useable) as long as either of the
+ following conditions is true:
+ A) Any EGLImage siblings exist in any client API context
+ B) The EGLImage object exists inside EGL
+
+ The semantics for specifying, deleting and using EGLImage siblings are
+ client API-specific, and are described in the appropriate API
+ specifications.
+
+ If an application specifies an EGLImage sibling as the destination for
+ rendering and/or pixel download operations (e.g., as an OpenGL-ES
+ framebuffer object, glTexSubImage2D, etc.), the modified image results
+ will be observed by all EGLImage siblings in all client API contexts.
+ If multiple client API contexts access EGLImage sibling resources
+ simultaneously, with one or more context modifying the image data,
+ rendering results in all contexts accessing EGLImage siblings are
+ undefined.
+
+ Respecification and/or deletion of any EGLImage sibling (i.e., both
+ EGLImage source and EGLImage target resources) inside a client API
+ context (e.g., by issuing a subsequent call to
+ gl{Copy,Compressed}TexImage, glDeleteTextures, with the EGLImage
+ sibling resource as the target of the operation) affects only that
+ client API context and other contexts within its share group. The
+ specific semantics for this behavior are defined by each client API,
+ and generally results in orphaning of the EGLImage, and may also
+ include allocation of additional memory for the respecified resource
+ and/or copying of the EGLImage pixel data.
+
+ Operations inside EGL or any client API context which may affect the
+ lifetime of an EGLImage (or the memory allocated for the EGLImage),
+ such as respecifying and/or deleting an EGLImage sibling inside a
+ client API context, must be atomic.
+
+ Applications may create client API resources from an EGLImageKHR using
+ client API extensions outside the scope of this document (such as
+ GL_OES_EGL_image, which creates OpenGL ES texture and renderbuffer
+ objects). If the EGLImageKHR used to create the client resource was
+ created with the EGL_IMAGE_PRESERVED_KHR attribute set to EGL_TRUE, then
+ the pixel data values associated with the image will be preserved after
+ creating the client resource; otherwise, the pixel data values will be
+ undefined. If the EGLImageKHR was created with the
+ EGL_IMAGE_PRESERVED_KHR attribute set to EGL_TRUE, and EGL is unable to
+ create the client resource without modifying the pixel values, then
+ creation will fail and the pixel data values will be preserved.
+
+ The command
+
+ EGLBoolean eglDestroyImageKHR(
+ EGLDisplay dpy,
+ EGLImageKHR image)
+
+ is used to destroy the specified EGLImageKHR object <image>. Once
+ destroyed, <image> may not be used to create any additional EGLImage
+ target resources within any client API contexts, although existing
+ EGLImage siblings may continue to be used. EGL_TRUE is returned
+ if DestroyImageKHR succeeds, EGL_FALSE indicates failure.
+
+ * If <dpy> is not the handle of a valid EGLDisplay object, the error
+ EGL_BAD_DISPLAY is generated.
+
+ * If <image> is not a valid EGLImageKHR object created with respect
+ to <dpy>, the error EGL_BAD_PARAMETER is generated."
+
+ Add a new error to the list at the bottom of Section 3.5.3 (Binding
+ Off-Screen Rendering Surfaces to Client Buffers):
+
+ "* If the buffers contained in <buffer> consist of any EGLImage
+ siblings, an EGL_BAD_ACCESS error is generated."
+
+Issues
+
+ 1. What resource types should be supported by this extension?
+
+ RESOLVED: This specification is designed to support the
+ sharing of two-dimensional image resources between client APIs,
+ as these resources are a fundamental component of all modern
+ graphics APIs.
+
+ Other resources types (e.g., buffer objects) will not be directly
+ supported by this specification, due to a variety of reasons:
+
+ a. An absense of use cases for this functionality
+ b. Handling the semantics for some of these resources
+ (e.g., glMapBuffer) would significantly complicate
+ and delay this specification.
+ c. A desire to address the image-sharing use cases
+ as quickly as possible.
+
+ Should additional resource-sharing functionality be desired
+ in the future, the framework provided by this specification
+ should be extendable to handle more general resource
+ sharing.
+
+ 2. Should this specification address client API-specific resources
+ (OpenGL texture maps, OpenVG VGImages), or should that
+ functionality be provided by layered extensions?
+
+ SUGGESTION: Use layered extensions, even for for sharing image
+ data with native rendering APIs (the EGL_KHR_image_pixmap
+ extension).
+
+ There are two major arguments for using layered extensions:
+
+ 1. The two client APIs which are defined at the time of this
+ specification (OpenVG, OpenGL ES) may not always be
+ deployed on a device; many devices may choose to implement
+ just one of these two APIs. However, even single-API
+ devices may benefit from the ability to share image data
+ with native rendering APIs (provided in this specification)
+ or with the OpenMAX API.
+
+ 2. OpenGL ES defines a number of optional resource types
+ (cubemaps, renderbuffers, volumetric textures) which this
+ framework should support; however, implementations may not.
+ By layering each of these resource types in individual
+ extensions, implementations which are limited to just the
+ core OpenGL ES 1.1 (or OpenGL ES 2.0) features will not
+ need to add EGLImage enumerant support for unsupported
+ resource types.
+
+ The original EGL_KHR_image extension included native pixmap
+ functionality. We have now split the abstract base functionality
+ (the egl{Create,Destroy}ImageKHR APIs) from the native pixmap
+ functionality, and redefined EGL_KHR_image as the combination of
+ EGL_KHR_image_base and EGL_KHR_image_pixmap.
+
+ 3. Should attributes (width, height, format, etc.) for EGLImages
+ be queriable?
+
+ SUGGESTION: No. Given the wealth of attributes that we would
+ need to specify all possible EGLImages (and possible
+ memory layout optimizations performed by implementations), we
+ can dramatically simplify the API without loss of key
+ functionality by making EGLImages opaque and allowing
+ implementations to make the correct decisions internally.
+
+ 4. Should this specification allow the creation of EGLImages from
+ client API resources which are themselves EGLImage targets?
+
+ RESOLVED: No. This can make memory garbage collection and
+ reference counting more difficult, with no practical benefit.
+ Instead, generate an error if an application attempts to
+ create an EGLImage from an EGLImage target resource.
+
+ 5. Should this specification allow multiple EGLImages to be created
+ from the same EGLImage source resource?
+
+ RESOLVED: No. The resource <buffer> specified to
+ eglCreateImageKHR may include multiple sub-objects; examples are
+ mipmapped images and cubemaps in the OpenGL-ES API. However, the
+ EGLImage source is defined as the specific sub-object that is defined
+ by: <ctx>, <target>, <buffer>, and <attrib_list>. This sub-object must
+ not be an EGLImage sibling (either EGLImage source or EGLImage target)
+ when eglCreateImageKHR is called; however, other sub-objects in
+ <buffer> may be EGLImage siblings. This allows applications to share
+ individual cubemap faces, or individual mipmap levels of detail across
+ all of the supported APIs.
+
+ Note that the EGLImage source and any EGLImage target resources
+ will still be EGLImage siblings, even if the EGLImage object
+ is destroyed by a call to DestroyImageKHR.
+
+ 6. If an EGLImage sibling is respecified (or deleted), what
+ should happen to the EGLImage and any other EGLImage
+ siblings?
+
+ RESOLVED: The principle of least surprise would dictate that
+ respecification and/or deletion of a resource in one client API
+ should not adversely affect operation in other client APIs
+ (such as introducing errors).
+
+ Applying this to EGLImages, respecification and/or deletion
+ of one EGLImage sibling should not respecify/delete other
+ EGLImage siblings. Each client API will be responsible for
+ defining appropriate semantics to meet this restriction;
+ however, example behaviors may include one or more of:
+ allocating additional memory for the respecified resource,
+ deleting the EGLImage sibling resource without deallocating
+ the associated memory ("orphaning") and/or copying the
+ existing EGLImage pixel data to an alternate memory location.
+
+ The memory associated with EGLImage objects should remain
+ allocated as long as any EGLImage sibling resources exist
+ in any client API context.
+
+ 7. Should this specification address synchronization issues
+ when multiple client API contexts simultaneously access EGLImage
+ sibling resources?
+
+ RESOLVED: No. Including error-producing lock and synchronization
+ semantics would introduce additional (undesirable) validation
+ overhead in numerous common operations (e.g., glBindTexture,
+ glDrawArrays, etc.). Rather than burdening implementations (and
+ applications) with this overhead, a separate synchronization
+ mechanism should be exposed to applications.
+
+ 8. Should eglCreatePbufferFromClientBuffer accept buffer parameters
+ which are EGLImage siblings?
+
+ RESOLVED: No. Allowing this behavior creates very complex
+ circular dependency possibilities (CreateImage / DeriveImage /
+ CreatePbufferFromClientBuffer / BindTexImage /
+ CreateImage / ...) with no practical benefit. Therefore,
+ attempting to create a Pbuffer from a client buffer which
+ is an EGLImage sibling should generate an error.
+
+ 9. Should CreateImage accept client buffers which are bound to
+ Pbuffers (through eglBindTexImage)?
+
+ RESOLVED: No, for the same reasons listed in Issue 8.
+
+ 10. Should implementations be allowed to modify the pixel data in the
+ EGLImage source buffers specified to eglCreateImageKHR?
+
+ SUGGESTION: By allowing previously-existing image data to become
+ undefined after calls to eglCreateImageKHR, implementations are able
+ to perform any necessary reallocations required for cross-API
+ buffer compatibility (and/or performance), without requiring
+ copy-aside functionality. Because applications are able to
+ respecify the pixel data through mechanisms such as vgSubImage
+ and glTexSubImage, no use-cases are restricted by this.
+
+ Therefore, the current suggestion is to allow implementations
+ to leave pixel data undefined after calls to eglCreateImageKHR
+ functions. The current spec revision has been written in
+ this way.
+
+ 11. What is the correct mechanism for specifying the EGLImage source
+ resources used to create an EGLImage object?
+
+ RESOLVED: Three different mechanisms were discussed while
+ defining this extension:
+
+ A) Providing resource-specific creation functions, such as
+ eglCreateImage2DKHR, eglCreateImage3DKHR, etc.
+
+ B) Providing a single creation function which returns a
+ "NULL" EGLImage object, and requiring client APIs to
+ define additional functions which would allow client API
+ resources to be "bound" to the EGLImage object.
+
+ C) Provide a single resource creation function, and use
+ an attribute-value list with attributes specific to the
+ "target" image resource.
+
+ Initial specifications were written using Option (A); however,
+ it was believed that this structure would result in an increase
+ in the number of entry points over time as additional client APIs
+ and client API resource targets were added. Furthermore, reuse
+ of these functions was resulting in cases where parameters were
+ required to have modal behavior: a 2D image creation function
+ was required to have a mipmap level of detail parameter for
+ OpenGL ES texture maps, but this same parameter would need to be
+ 0 for OpenVG.
+
+ Option (B) provided some nice characteristics: as client APIs
+ continue to evolve, any extensions needed to allow EGLImage
+ creation could be isolated in the individual client API, rather
+ than necessitating an EGL extension. However, the creation of
+ "NULL" images created additional semantic complexity and error
+ conditions (e.g., attempting to derive an EGLImage target from a
+ "NULL" image), and every client API would need to provide a
+ function for every unique resource type; instead of one common
+ API function for pixmap, OpenGL 2D textures, and OpenVG VGImages,
+ three would be required.
+
+ This specification is written using Option (C). There is a
+ single CreateImage function, with a <target> parameter defining
+ the EGLImage source type, and an attribute-value list allowing
+ for additional selection of resource sub-sections. This
+ maximizes entry-point reuse, and minimizes the number of
+ redundant parameters an application may be required to send.
+ This framework allows for layered extensions to be easily
+ written, so little churn is expected as client APIs evolve.
+
+ 12. Should a context be explicitly provided to eglCreateImageKHR,
+ or should the context be deduced from the current thread's
+ bound API?
+
+ SUGGESTION: For clarity (both in usage and spec language), the
+ context containing the EGLImage source should be provided by the
+ application, rather than inferring the context from EGL state.
+
+ 13. Why does this extension define a new EGL object type, rather
+ than using the existing EGLSurface objects?
+
+ RESOLVED: Although controversial, the creation of a new,
+ opaque image object type removes several fundamental problems
+ with the EGLSurface (and Pbuffer) API:
+
+ 1) The tight compatibility requirements of EGLSurfaces
+ and EGLConfigs necessitated applications creating
+ (and calling MakeCurrent) for every unique pixel
+ format used during rendering. This has already caused
+ noticeable performance problems in OpenGL-ES (and
+ desktop OpenGL), and is the primary reason that
+ framebuffer objects were created.
+
+ 2) Application use-cases are centered around sharing of
+ color image data, although unique "sundry" buffers
+ (such as depth, stencil and alpha mask) may be used
+ in each client API.
+
+ 3) Extending the CreatePbuffer interface to support fully-
+ specifying all possible buffer attributes in all client
+ APIs will become unwieldy, particularly as new EGL
+ client APIs and pixel formats are introduced.
+
+ The EGLImage proposal addresses all three of these restrictions:
+
+ 1) is addressed by placing the burden of framebuffer management
+ inside the client API, and allowing EGLImages to be accessed
+ inside client APIs using an appropriate resource type (such
+ as OpenGL-ES renderbuffers). This follows the example provided
+ by the GL_OES_framebuffer_object specification.
+
+ 2) is addressed by defining EGLImages to be "trivial" two-
+ dimensional arrays of pixel data. Implementations may choose
+ to support creation of EGLImages from any type of pixel data,
+ and the association of multiple EGLImages and/or sundry
+ buffers into a single framebuffer is the responsibility of the
+ application and client API, using a mechanism such as
+ GL_OES_framebuffer_object.
+
+ 3) is addressed by defining EGLImages as opaque and
+ non-queriable. Although this introduces potential portability
+ problems (addressed separately in issue 15), it avoids the
+ ever-expanding problem of defining buffer compatibility as the
+ cartesian product of all possible buffer attributes.
+
+ 14. Since referencing EGLImages is the responsibility of the client
+ API, and may fail for implementation-dependent reasons,
+ doesn't this result in a potential portability problem?
+
+ UNRESOLVED: Yes, this portability problem (where referencing
+ succeeds on one platform but generates errors on a different
+ one) is very similar to the implementation-dependent
+ failure introduced in the EXT_framebuffer_object specification,
+ discussed (at length) in Issues (12), (37), (46), (48) and (61)
+ of that specification. Similar to that specification, this
+ specification should include some "minimum requirements"
+ language for EGLImage creation and referencing.
+
+ Since there are numerous references to an upcoming
+ "format restriction" API in the EXT_framebuffer_object
+ specification, it may be valuable to wait until that API is
+ defined before attempting to define a similar API for
+ EGLImages.
+
+ 15. Should creation of an EGLImage from an EGLImage source
+ introduce the possibility for errors in the EGLImage source's
+ owning context?
+
+ RESOLVED: No; although image data may be undefined (issue 11),
+ the (successful or unsuccessful) creation of an EGLImage should
+ not introduce additional error conditions in the EGLImage
+ source's owning context. Text added to the end of section
+ 2.5.1 describing this.
+
+ 16. Is it reasonable to require that when a preserved EGLImage is
+ used by layered extensions to create client API siblings of that
+ image, pixel data values are preserved?
+
+ UNRESOLVED: There are at least two extensions that reference
+ EGLImages to create EGLImage targets, VG_KHR_EGL_image and
+ GL_OES_EGL_image.
+
+ Each of these extensions makes provision for failing the creation of
+ the EGLImage target due to "an implementation-dependent reason".
+ This could include that the pixel data has been marked as preserved,
+ and that the implementation is not able to create the EGLImage
+ target without causing the pixel data of the original EGLImage
+ source <buffer> to become undefined.
+
+ Issue 14 of EGL_KHR_image also discusses the consequences of failure
+ for implementation-dependent reasons. This implies that all
+ extensions for referencing an EGLImage need to make provision for
+ implementation-dependent failure.
+
+ PROPOSED: Yes, this is reasonable. We should add "EGL_KHR_image_base
+ affects the behavior of this extension" sections to the ES and VG
+ extensions. Implementations can continue to export EGL_KHR_image if
+ they are unable to support preserved image functionality.
+
+ 17. Do EGLImage Target creation extensions such as VG_KHR_EGL_image and
+ GL_OES_EGL_image also need to be extended?
+
+ UNRESOLVED: The problem here is that both these extensions
+ explicitly state that pixel data becomes undefined when they
+ reference an EGLImage to create an EGLImage target.
+
+ One solution would be to allow this extension to do the defining on
+ behalf of these extensions. For example, the VG_KHR_EGL_image
+ extension on its own leaves the status of the pixel data undefined,
+ but when VG_KHR_EGL_image is combined with this extension, then the
+ status becomes defined (by this extension).
+
+ When combined with the reasons given in Issue 1, this means it is
+ possible to leave EGLImage Target creation extensions unchanged.
+
+ PROPOSED: Yes, augment these extensions as described in issue 16.
+
+ 18. Is it reasonable for developers to want to preserve pixel data upon
+ creation of EGLImage and EGLImage targets?
+
+ RESOLVED: Yes. This is necessary for composition implementations
+ using EGLImages as an encapsulation mechanism for moving data
+ between producer application, composition API, and composition
+ implementation(s).
+
+ 19. Should we really change the default value of EGL_IMAGE_PRESERVED_KHR
+ when EGL_KHR_image is supported?
+
+ RESOLVED: No. This is a subtle and hard to diagnose source of
+ errors, and the only way to write a portable app would still be
+ to explicitly specify the attribute value. By making the default
+ value FALSE no matter which of the two extension(s) are
+ supported, compatibility with EGL_KHR_image is preserved, and
+ apps must explicitly ask for preservation if they need it.
+
+ 20. Why is EGL_NO_DISPLAY not supported as the <dpy> argument for
+ creating and destroying images, unlike the original version of the
+ EGL_KHR_image specification?
+
+ RESOLVED: There are no defined use cases for this at present, so
+ there is no way to legally pass in EGL_NO_DISPLAY. If in the future,
+ a layered extension allows creation of images not associated with
+ any display, this behavior can be reintroduced.
+
+
+Revision History
+
+#8 (Jon Leech, August 27, 2014)
+ - Remove leftover comment saying that inapplicable attributes are
+ ignored (Bug 12585).
+
+#7 (Jon Leech, June 12, 2013)
+ - Add a column to table bbb specifying which <target>s attributes are
+ valid for, and a generic error if an attribute doesn't match <target>
+ (Bug 10151).
+
+#6 (Jon Leech, December 1, 2010)
+ - Clarify wording of EGL_BAD_CONTEXT error.
+
+#5 (Jon Leech, December 10, 2008)
+ - Change definition of EGL_NO_IMAGE_KHR to 0 (appropriately cast)
+ instead of a reference to an extern implementation-defined
+ variable.
+
+#4 (Jon Leech, November 25, 2008)
+ - Simplify error conditions for eglDestroyImage.
+
+#3 (Jon Leech, November 12, 2008)
+ - Added glossary entry for Respecification, updated description of
+ behavior with preserved images per suggestions from Acorn, and added
+ issue 20 regarding removal of EGL_NO_DISPLAY as a valid <dpy>.
+
+#2 (Jon Leech, October 22, 2008)
+ - Change default value of EGL_IMAGE_PRESERVED_KHR to EGL_FALSE.
+ Update issue 19.
+
+#1 (Jon Leech, October 21, 2008)
+ - Split abstract functionality from EGL_KHR_image into this extension,
+ and merged preserved image functionality from
+ EGL_SYMBIAN_image_preserved.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image_pixmap.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image_pixmap.txt
new file mode 100644
index 0000000..d7f7920
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_image_pixmap.txt
@@ -0,0 +1,158 @@
+Name
+
+ KHR_image_pixmap
+
+Name Strings
+
+ EGL_KHR_image_pixmap
+
+Contributors
+
+ Jeff Juliano
+ Gary King
+ Jon Leech
+ Jonathan Grant
+ Barthold Lichtenbelt
+ Aaftab Munshi
+ Acorn Pooley
+ Chris Wynn
+ Ray Smith
+
+Contacts
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+ Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2008-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete. Functionality approved (as part of KHR_image) by the
+ Khronos Board of Promoters on February 11, 2008.
+
+ Split into KHR_image_base and KHR_image_pixmap approved by the
+ Khronos Technical Working Group on November 19, 2008.
+
+Version
+
+ Version 5, November 13, 2013
+
+Number
+
+ EGL Extension #9
+
+Dependencies
+
+ EGL 1.2 is required.
+
+ EGL_KHR_image_base is required.
+
+ The EGL implementation must define an EGLNativePixmapType (although it
+ is not required either to export any EGLConfigs supporting rendering to
+ native pixmaps, or to support eglCreatePixmapSurface).
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension allows creating an EGLImage from a native pixmap
+ image.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted by the <target> parameter of eglCreateImageKHR:
+
+ EGL_NATIVE_PIXMAP_KHR 0x30B0
+
+Additions to Chapter 2 of the EGL 1.4 Specification (EGL Operation)
+
+ Rename section 2.2.2.1 "Native Surface Coordinate Systems" to "Native
+ Surface and EGLImage Pixmap Coordinate Systems" and add to the end of
+ the section:
+
+ "EGLImages created with target EGL_NATIVE_PIXMAP_KHR share the same
+ coordinate system as native pixmap surfaces. When that coordinate system
+ is inverted, client APIs must invert their <y> coordinate when accessing
+ such images as described above."
+
+ 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 <target> are listed in Table aaa, below.
+
+ +-------------------------+--------------------------------------------+
+ | <target> | Notes |
+ +-------------------------+--------------------------------------------+
+ | EGL_NATIVE_PIXMAP_KHR | Used for EGLNativePixmapType objects |
+ +-------------------------+--------------------------------------------+
+ Table aaa. Legal values for eglCreateImageKHR <target> parameter
+
+ ...
+
+ If <target> is EGL_NATIVE_PIXMAP_KHR, <dpy> must be a valid display, <ctx>
+ must be EGL_NO_CONTEXT; <buffer> must be a handle to a valid
+ NativePixmapType 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 <target> is EGL_NATIVE_PIXMAP_KHR and <buffer> is not a
+ valid native pixmap handle, or if <buffer> is a native pixmap
+ whose color buffer format is incompatible with the system's
+ EGLImage implementation, the error EGL_BAD_PARAMETER is
+ generated.
+
+ * If <target> is EGL_NATIVE_PIXMAP_KHR, and <dpy> is not a valid
+ EGLDisplay object the error EGL_BAD_DISPLAY is generated.
+
+ * If <target> is EGL_NATIVE_PIXMAP_KHR, and <ctx> is not EGL_NO_CONTEXT,
+ the error EGL_BAD_PARAMETER is generated.
+
+ * If <target> is EGL_NATIVE_PIXMAP_KHR, and <buffer> is not a handle
+ to a valid NativePixmapType object, the error EGL_BAD_PARAMETER
+ is generated."
+
+Issues
+
+ 1) Should this specification allow EGLImages to be created from native
+ pixmaps which already have a pixmap surface associated with them, and
+ vice versa?
+
+ RESOLVED: Yes. There are practical usecases for this, and it is
+ already the application's responsibility to handle any format
+ mismatch or synchronization issues that this may allow.
+
+Revision History
+
+#5 (Jon Leech, November 13, 2013)
+ - Add Issue #1 regarding use cases for multiple EGL consumer/producers
+ of a native pixmap (Bug 7779).
+
+#4 (Jon Leech, October 16, 2013)
+ - Add language allowing native pixmap and client API image y coordinate
+ convention to differ. Re-base extension against EGL 1.4 (Bug 9701).
+
+#3 (Jon Leech, November 25, 2008)
+ - Remove dependency on EGLConfig in error conditions.
+
+#2 (Jon Leech, November 12, 2008)
+ - Clarified dependency on EGLNativePixmapType such that pixmap configs
+ and surfaces are not required.
+
+#1 (Jon Leech, October 21, 2008)
+ - Split native pixmap functionality from EGL_KHR_image into a layered
+ extension on EGL_KHR_image_base, and note interaction with the new
+ EGL_IMAGE_PRESERVED_KHR attribute.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface.txt
new file mode 100644
index 0000000..2cab89e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface.txt
@@ -0,0 +1,727 @@
+Name
+
+ KHR_lock_surface
+
+Name Strings
+
+ EGL_KHR_lock_surface
+
+Contributors
+
+ Gary King
+ Jon Leech
+ Marko Lukat
+ Tim Renouf
+
+Contacts
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+
+Notice
+
+ Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ This extension, as well as the layered EGL_KHR_lock_surface2, are
+ obsolete and have been replaced by EGL_KHR_lock_surface3. Khronos
+ recommends implementers who support this extension and lock_surface2
+ also implement lock_surface3, and begin transitioning developers to
+ using that extension. See issue 17 for the reason.
+
+ Complete.
+ Version 17 approved by the Khronos Board of Promoters on
+ February 11, 2008.
+
+Version
+
+ Version 19, October 15, 2013
+
+Number
+
+ EGL Extension #2
+
+Dependencies
+
+ Requires EGL 1.0
+
+ This extension is written against the wording of the EGL 1.3
+ Specification.
+
+Overview
+
+ This extension allows mapping color buffers of EGL surfaces into the
+ client address space. This is useful primarily for software
+ rendering on low-end devices which do not support EGL client
+ rendering APIs, although it may be implemented efficiently on more
+ capable devices as well.
+
+ There is a newer EGL_KHR_lock_surface2 extension which slightly
+ modifies and clarifies the semantics of this extension. Vendors
+ should refer to EGL_KHR_lock_surface2 before deciding to implement
+ only EGL_KHR_lock_surface.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ EGLBoolean eglLockSurfaceKHR(EGLDisplay dpy, EGLSurface surface,
+ const EGLint *attrib_list);
+ EGLBoolean eglUnlockSurfaceKHR(EGLDisplay dpy,
+ EGLSurface surface);
+
+New Tokens
+
+ Returned in the EGL_SURFACE_TYPE bitmask attribute of EGLConfigs:
+
+ EGL_LOCK_SURFACE_BIT_KHR 0x0080
+ EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
+
+ Accepted as an attribute name in the <attrib_list> argument of
+ eglChooseConfig, and the <attribute> argument of eglGetConfigAttrib:
+
+ EGL_MATCH_FORMAT_KHR 0x3043
+
+ Accepted as attribute values for the EGL_MATCH_FORMAT_KHR attribute
+ of eglChooseConfig:
+
+ EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
+ EGL_FORMAT_RGB_565_KHR 0x30C1
+ EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
+ EGL_FORMAT_RGBA_8888_KHR 0x30C3
+
+ Accepted as attribute names in the <attrib_list> argument of
+ eglLockSurfaceKHR:
+
+ EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
+ EGL_LOCK_USAGE_HINT_KHR 0x30C5
+
+ Accepted as bit values in the EGL_LOCK_USAGE_HINT_KHR bitmask attribute
+ of eglLockSurfaceKHR:
+
+ EGL_READ_SURFACE_BIT_KHR 0x0001
+ EGL_WRITE_SURFACE_BIT_KHR 0x0002
+
+ Accepted by the <attribute> parameter of eglQuerySurface:
+
+ EGL_BITMAP_POINTER_KHR 0x30C6
+ EGL_BITMAP_PITCH_KHR 0x30C7
+ EGL_BITMAP_ORIGIN_KHR 0x30C8
+ EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
+ EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
+ EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
+ EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
+ EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
+
+ Returns in the *<value> parameter of eglQuerySurface when
+ <attribute> is EGL_BITMAP_ORIGIN_KHR:
+
+ EGL_LOWER_LEFT_KHR 0x30CE
+ EGL_UPPER_LEFT_KHR 0x30CF
+
+Additions to Chapter 2 of the EGL 1.3 Specification (EGL Operation)
+
+ Add to the end of section 2.2.2:
+
+ Finally, some surfaces may be <locked>, which allows the
+ implementation to map buffers of that surface into client memory
+ for use by software renderers(fn). Locked surfaces cannot be
+ used for any other purpose. When a locked surface is <unlocked>,
+ any changes to the mapped buffer(s) are reflected in the actual
+ graphics or system memory containing the surface.
+
+ [fn: on implementations not supporting mapping graphics
+ memory, or which do not wish to take the stability and
+ security risks that entail, mapping may be done using
+ copy-out and copy-in behavior.]
+
+Additions to Chapter 3 of the EGL 1.3 Specification (EGL Functions and Errors)
+
+ Add to the description of the EGL_BAD_ACCESS error in section 3.1:
+
+ "... or, a surface is locked)."
+
+ Add to table 3.2 ("Types of surfaces supported by an EGLConfig")
+
+ EGL Token Name Description
+ -------------------- ------------------------------------
+ EGL_LOCK_SURFACE_BIT_KHR EGLConfig allows locking surfaces
+ EGL_OPTIMAL_FORMAT_BIT_KHR This format is considered optimal
+ (preferred) when locking / mapping /
+ unlocking is being done.
+
+ Change the first paragraph under "Other EGLConfig Attribute
+ Descriptions" on p. 16:
+
+ "EGL_SURFACE_TYPE is a mask indicating both the surface types
+ that can be created by the corresponding EGLConfig (the config
+ is said to <support> those surface types), and the optional
+ behaviors such surfaces may allow. The valid bit settings are
+ shown in Table 3.2."
+
+ Add a new paragraph following the second paragraph of the same
+ section:
+
+ "If EGL_LOCK_SURFACE_BIT_KHR is set in EGL_SURFACE_TYPE_KHR, then
+ a surface created from the EGLConfig may be locked, mapped into
+ client memory, and unlocked. Locking is described in section
+ 3.5.6. If EGL_OPTIMAL_FORMAT_BIT_KHR is set in
+ EGL_SURFACE_TYPE_KHR, then the surface is considered optimal (by
+ the implementation) from a performance standpoint when buffer
+ mapping is being done.
+
+ Replace the second paragraph of section 3.3 "EGL Versioning":
+
+ "The EGL_CLIENT_APIS string describes which client rendering APIs
+ are supported. It is zero-terminated and contains a
+ space-separated list of API names, which may include
+ ``OpenGL_ES'' if OpenGL ES is supported, and ``OpenVG'' if
+ OpenVG is supported. If no client APIs are supported, then the
+ empty string is returned."
+
+ Insert a new paragraph and table in section 3.4.1 "Querying
+ Configurations", following the description of
+ EGL_MATCH_NATIVE_PIXMAP on page 21:
+
+ "If EGL_MATCH_FORMAT_KHR is specified in <attrib_list>, it must
+ be followed by one of the attribute values EGL_DONT_CARE,
+ EGL_NONE, or one of the format tokens in table
+ [locksurf.format].
+
+ When EGL_MATCH_FORMAT_KHR has the value EGL_NONE, only configs
+ which cannot be locked or mapped will match. Such configs must
+ not have the EGL_LOCK_SURFACE_BIT_KHR set in EGL_SURFACE_TYPE.
+
+ When EGL_MATCH_FORMAT_KHR has the value EGL_DONT_CARE, it is
+ ignored.
+
+ When EGL_MATCH_FORMAT_KHR has one of the values in table
+ [locksurf.format], only EGLConfigs describing surfaces whose
+ color buffers have the specified format, when mapped with
+ eglLockSurface, will match this attribute. In this case, the
+ EGL_<component>_SIZE attributes of resulting configs must agree
+ with the specific component sizes specified by the format."
+
+ Specific Format Name Description
+ -------------------- -----------
+ EGL_FORMAT_RGB_565_EXACT_KHR RGB565 fields in order from MSB to LSB within a 16-bit integer
+ EGL_FORMAT_RGB_565_KHR RGB565 fields in implementation-chosen order within a 16-bit integer
+ EGL_FORMAT_RGBA_8888_EXACT_KHR RGBA8888 fields in B, G, R, A byte order in memory
+ EGL_FORMAT_RGBA_8888_KHR RGBA8888 fields in implementation-chosen order within a 32-bit integer
+ ------------------------------------------------------------------------------------------------------
+ Table [locksurf.format]: Specific formats for mapped pixels.
+
+ Add to table 3.4 ("Default values and match critera for EGLConfig
+ attributes") on page 22:
+
+ Attribute Default Selection Sort Sort
+ Criteria Order Priority
+ -------------------- ------------- --------- ----- --------
+ EGL_MATCH_FORMAT_KHR EGL_DONT_CARE Exact None -
+
+ Add EGL_MATCH_FORMAT_KHR to the last paragraph in section 3.4.1 on
+ p. 23, describing attributes not used for sorting EGLConfigs.
+
+
+ Add a new section following the current section 3.5.5:
+
+ "3.5.6 Locking and Mapping Rendering Surfaces
+
+ A rendering surface may be <locked> by calling
+
+ EGLBoolean eglLockSurfaceKHR(EGLDisplay dpy,
+ EGLSurface surface,
+ const EGLint *attrib_list);
+
+ While a surface is locked, only two operations can be performed
+ on it. First, the color buffer of the surface may be <mapped>,
+ giving a pointer into client memory corresponding to the memory
+ of the mapped buffer, and attributes describing mapped buffers
+ may be queried. Second, the surface may be unlocked. Any
+ attempts to use a locked surface in other EGL APIs will fail and
+ generate an EGL_BAD_ACCESS error.
+
+ <attrib_list> specifies additional parameters affecting the locking
+ operation. The list has the same structure as described for
+ eglChooseConfig. Attributes that may be defined are shown in table
+ [locksurf.attr], together with their default values if not specified
+ in <attrib_list>, and possible values which may be specified for
+ them in <attrib_list>.
+
+ Attribute Name Type Default Value Possible Values
+ ----------------------- ------- ------------- -------------------------
+ EGL_MAP_PRESERVE_PIXELS_KHR boolean EGL_FALSE EGL_TRUE / EGL_FALSE
+ EGL_LOCK_USAGE_HINT_KHR bitmask EGL_READ_SURFACE_BIT_KHR | Any combination of
+ EGL_WRITE_SURFACE_BIT_KHR EGL_READ_SURFACE_BIT_KHR
+ and EGL_WRITE_SURFACE_BIT_KHR
+ --------------------------------------------------------------
+ Table [locksurf.attr]: eglLockSurfaceKHR attribute names,
+ default values, and possible values.
+
+ On failure, the surface is unaffected and eglLockSurfaceKHR
+ returns EGL_FALSE. An EGL_BAD_ACCESS error is generated if any
+ of these condition, are true:
+
+ * <surface> was created with an EGLConfig whose
+ EGL_SURFACE_TYPE attribute does not contain
+ EGL_LOCK_SURFACE_BIT_KHR.
+ * <surface> is already locked.
+ * Any client API is current to <surface>.
+
+ An EGL_BAD_ATTRIBUTE error is generated if an attribute or
+ attribute value not described in table [locksurf.attr] is
+ specified.
+
+ Mapping Buffers of a Locked Surface
+ -----------------------------------
+
+ The color buffer of a locked surface can be <mapped> by calling
+ eglQuerySurface (see section 3.5.7) with <attribute>
+ EGL_BITMAP_POINTER_KHR(fn). The query returns a pointer to a
+ buffer in client memory corresponding to the color buffer of
+ <surface>. In the case of a back-buffered surface, color buffer
+ refers to the back buffer
+
+ [fn: "mapped" only means that the pointer returned is
+ intended to *correspond* to graphics memory. Implementation
+ are not required to return an actual pointer into graphics
+ memory, and often will not.]
+
+ The contents of the mapped buffer are initially undefined(fn)
+ unless the EGL_MAP_PRESERVE_PIXELS_KHR attribute of
+ eglLockSurfaceKHR is set to EGL_TRUE, in which case the contents
+ of the buffer are taken from the contents of <surface>'s color
+ buffer. The default value of EGL_MAP_PRESERVE_PIXELS_KHR is
+ EGL_FALSE.
+
+ [fn: In order to avoid pipeline stalls and readback delays on
+ accelerated implementations, we do not mandate that the
+ current contents of a color buffer appear when it's mapped
+ to client memory, unless the EGL_MAP_PRESERVE_PIXELS_KHR
+ flag is set. Applications using mapped buffers which are not
+ preserved must write to every pixel of the buffer before
+ unlocking the surface. This constraint is considered
+ acceptable for the intended usage scenario (full-frame
+ software renderers).]
+
+ The EGL_LOCK_USAGE_HINT_KHR attribute of eglLockSurfaceKHR is a
+ bitmask describing the intended use of the mapped buffer. If the
+ mask contains EGL_READ_SURFACE_BIT_KHR, data will be read from
+ the mapped buffer. If the mask contains
+ EGL_WRITE_SURFACE_BIT_KHR, data will be written to the mapped
+ buffer. Implementations must support both reading and writing to
+ a mapped buffer regardless of the value of
+ EGL_LOCK_USAGE_HINT_KHR, but performance may be better if the
+ hint is consistent with the actual usage of the buffer. The
+ default value of EGL_LOCK_USAGE_HINT_KHR hints that both reads
+ and writes to the mapped buffer will be done.
+
+ Other attributes of the mapped buffer describe the format of
+ pixels it contains, including its pitch (EGL_BITMAP_PITCH_KHR),
+ origin, pixel size, and the bit width and location of each color
+ component within a pixel. These attributes may be queried using
+ eglQuerySurface, and are described in more detail in section
+ 3.5.7.
+
+ The EGL_BITMAP_POINTER_KHR and EGL_BITMAP_PITCH_KHR attributes
+ of a locked surface may change following successive calls to
+ eglLockSurfaceKHR(fn), so they must be queried each time a
+ buffer is mapped. Other attributes of a mapped buffer are
+ invariant and need be queried only once following surface
+ creation.
+
+ [fn: The pointer and pitch of a mapped buffer may change due
+ to display mode changes, for example.]
+
+ Mapping will not suceed if client memory to map the surface into
+ cannot be allocated. In this case, querying eglQuerySurface with
+ <attribute> EGL_BITMAP_POINTER_KHR will fail and generate an EGL
+ error.
+
+ Unlocking Surfaces
+ ------------------
+
+ A rendering surface may be <unlocked> by calling
+
+ EGLBoolean eglUnlockSurfaceKHR(EGLDisplay dpy,
+ EGLSurface surface);
+
+ Any mapped buffers of <surface> become unmapped following
+ eglUnlockSurfaceKHR. Any changes made to mapped buffers of
+ <surface> which it was locked are reflected in the surface after
+ unlocking(fn).
+
+ [fn: This language enables implementations to either map
+ video memory, or copy from a separate buffer in client
+ memory.]
+
+ If <surface> was created with an EGLConfig whose
+ EGL_SURFACE_TYPE attribute contains EGL_OPTIMAL_FORMAT_BIT_KHR,
+ then the surface is considered optimal (by the implementation)
+ from a performance standpoint when buffer mapping is being
+ done(fn).
+
+ [fn: This often means that the format of all mapped buffers
+ corresponds directly to the format of those buffers in
+ <surface>, so no format conversions are required during
+ unmapping. This results in a high-performance software
+ rendering path. But "optimal format" is really just a hint
+ from EGL that this config is preferred, whatever the actual
+ reason.]
+
+ On failure, eglUnlockSurfaceKHR returns EGL_FALSE. An
+ EGL_BAD_ACCESS error is generated if any of these conditions are
+ true:
+
+ * <surface> is already unlocked.
+ * A display mode change occurred while the surface was locked,
+ and the implementation was unable to reflect mapped buffer
+ state(fn). In this case, <surface> will still be unlocked.
+ However, the contents of the previously mapped buffers of
+ <surface> become undefined, rather than reflecting changes
+ made in the mapped buffers in client memory.
+
+ [fn: Usually this may only occur with window surfaces which
+ have been mapped. EGL does not have an event mechanism to
+ indicate display mode changes. If such a mechanism exists
+ (using native platform events or the OpenKODE event system),
+ applications should respond to mode changes by regenerating
+ all visible window content, including re-doing any software
+ rendering overlapping the mode change.]"
+
+ Add to table 3.5 ("Queryable surface attributes and types")
+
+ Attribute Type Description
+ --------- ---- -----------
+ EGL_BITMAP_POINTER_KHR pointer Address of a mapped color buffer (MCB).
+ EGL_BITMAP_PITCH_KHR integer Number of bytes between the start of
+ adjacent rows in an MCB.
+ EGL_BITMAP_ORIGIN_KHR enum Bitmap origin & direction
+ EGL_BITMAP_PIXEL_x_OFFSET_KHR integer Bit location of each color buffer
+ component within a pixel in an MCB.
+
+ Add to the description of eglQuerySurface properties in section
+ 3.5.6 (renumbered to 3.5.7) on page 33:
+
+ "Properties of a bitmap surface which may be queried include:
+ * EGL_BITMAP_POINTER_KHR, which maps the color buffer of a
+ locked surface and returns the address in client memory of
+ the mapped buffer.
+ * EGL_BITMAP_PITCH_KHR, which returns the number of bytes
+ between successive rows of a mapped buffer.
+ * EGL_BITMAP_ORIGIN_KHR, which describes the way in which a
+ mapped color buffer is displayed on the screen. Possible
+ values are either EGL_LOWER_LEFT_KHR or EGL_UPPER_LEFT_KHR,
+ indicating that the first pixel of the mapped buffer
+ corresponds to the lower left or upper left of a visible
+ window, respectively.
+ * EGL_BITMAP_PIXEL_<x>_OFFSET_KHR, which describes the bit
+ location of the least significant bit of each color
+ component of a pixel within a mapped buffer. <x> is one of
+ RED, GREEN, BLUE, ALPHA, or LUMINANCE.
+
+ The offset for a color component should be treated as the
+ number of bits to left shift the component value to place it
+ within a 16- (for RGB565 formats) or 32-bit (for RGBA8888
+ formats) integer containing the pixel(fn). If a color
+ component does not exist in the mapped buffer, then the bit
+ offset of that component is zero.
+
+ In addition to these attributes, the number of bits for each
+ color component of a pixel within a mapped buffer is obtained by
+ querying the EGL_<x>_SIZE attribute of the EGLConfig used to
+ create the surface, where <x> is <x> is one of RED, GREEN, BLUE,
+ ALPHA, or LUMINANCE. The size of a pixel in the mapped buffer,
+ in bytes, can be determined by querying the EGL_BUFFER_SIZE
+ attribute of the EGLConfig, rounding up to the nearest multiple
+ of 8, and converting from bits to bytes.
+
+ Querying EGL_BITMAP_POINTER_KHR and EGL_BITMAP_PITCH_KHR is only
+ allowed when <surface> is mapped (see section 3.5.6). Querying
+ either of these attributes for the first time after calling
+ eglLockSurfaceKHR causes the color buffer of the locked surface
+ to be mapped. Querying them again before unlocking the surface
+ will return the same values as the first time. However, after
+ calling eglUnlockSurfaceKHR, these properties become undefined.
+ After a second call to eglLockSurfaceKHR, these properties may
+ again be queried, but their values may have changed.
+
+ Other properties of the mapped color buffer of a surface are
+ invariant, and need be queried only once following surface
+ creation. If <surface> was created with an EGLConfig whose
+ EGL_SURFACE_TYPE attribute does not contain
+ EGL_LOCK_SURFACE_BIT_KHR, queries of EGL_BITMAP_ORIGIN_KHR and
+ EGL_BITMAP_PIXEL_<x>_OFFSET_KHR return undefined values."
+
+ Add to the description of eglQuerySurface errors in the last
+ paragraph of section 3.5.6 (renumbered to 3.5.7) on page 34:
+
+ "... If <attribute> is either EGL_BITMAP_POINTER_KHR or
+ EGL_BITMAP_PITCH_KHR, and either <surface> is not locked using
+ eglLockSurfaceKHR, or <surface> is locked but mapping fails,
+ then an EGL_BAD_ACCESS error is generated."
+
+Issues
+
+ 1) What is the rationale for this extension?
+
+ Software renderers on low-end implementations need an efficient way
+ to draw pixel data to the screen. High-end implementations must
+ support the same interface for compatibility, while not compromising
+ the accelerability of OpenGL ES and OpenVG client APIs using
+ dedicated graphics hardware and memory.
+
+ Using lock/unlock semantics enables low-end implementations to
+ expose pointers directly into display memory (as extremely dangerous
+ as that may be), while high-end implementations may choose to create
+ backing store in client memory when mapping a buffer, and copy it to
+ graphics memory when the surface is unlocked. Making the initial
+ contents of a mapped buffer undefined means that no readbacks from
+ graphics memory are required, avoiding pipeline stalls.
+
+ This extension is not intended to support mixed-mode (client API and
+ software) rendering. Since mapped buffer contents are undefined,
+ unless the buffer is explicitly preserved (which may be unacceptably
+ expensive on many implementations), applications doing software
+ rendering must touch every pixel of mapped buffers at least once
+ before unlocking the surface.
+
+ 2) Do we need to know if locked surfaces are "fast" or "native"?
+
+ RESOLVED: Yes. This is indicated with the EGL_OPTIMAL_FORMAT_BIT_KHR
+ of EGL_SURFACE_TYPE. However, note that there is no way to guarantee
+ what "fast" or "no format conversions" really means; this is little
+ more than an implementation hint.
+
+ 3) Should we be able to map buffers other than the color buffer?
+
+ RESOLVED: Not initially. However, the <attrib_list> parameter of
+ eglLockSurfaceKHR supports this in the future. There is no <buffer>
+ attribute to eglQuerySurface, so such a layered extension would have
+ to either create a new naming convention (such as
+ EGL_BITMAP_{DEPTH,COLOR,STENCIL,ALPHA_MASK}_POINTER), or define an
+ extended query eglQuerySurfaceBuffer() which takes a <buffer>
+ parameter. It would also be tricky to support interleaved depth /
+ stencil formats. But the attribute list offers some future-proofing
+ at low cost.
+
+ 4) What properties of mapped buffers can be queried?
+
+ RESOLVED: A pointer to the buffer and its pitch, both of which may
+ change in successive lock/unlock cycles. These may be queried only
+ while the underlying surface is locked, and are undefined after
+ unlocking. The first query following locking is the point at which
+ actual buffer mapping must occur.
+
+ RESOLVED: Additionally, the pixel size, origin, and color component
+ bitfield size and offset for each component, which are invariant
+ and may be queried at any time.
+
+ 5) How are mode changes indicated? What happens to the mapped
+ buffer during a mode change?
+
+ RESOLVED: UnlockSurfaceKHR fails and raises an error if a mode
+ change occurred while the surface was locked (although the surface
+ still ends up in the unlocked state - this is necessary since
+ there's no way to clear the error!). If a mode change occurs while a
+ buffer is mapped, the implementation must still allow the
+ application to access mapped buffer memory, even though the contents
+ of the mapped buffer may not be reflected in the changed window
+ after unmapping.
+
+ Note: There's no convenient way to indicate mode changes while
+ a surface is unlocked, despite that being useful to tell apps they
+ have to redraw. The problem is that we don't have an event system,
+ and the power management functionality is overkill since the only
+ resources which are likely to be damaged by a mode change are
+ visible window contents. Fortunately, this problem is beyond the
+ scope of this extension.
+
+ 6) Does locking a surface imply mapping its buffers?
+
+ RESOLVED: No. Locking simply places the surface in that state and
+ prevents it from being made current / swapped / etc. Buffers are
+ mapped only when their pointers or pitch are queried using
+ eglQuerySurface.
+
+ An interesting side effect of this resolution is that calling
+ eglLockSurfaceKHR immediately followed by eglUnlockSurfaceKHR DOES
+ NOT CHANGE THE CONTENTS OF BUFFERS, since none of them were mapped.
+ Likewise locking a surface, querying a buffer pointer or pitch, and
+ then unlocking it without changing the mapped buffer contents causes
+ the surface contents of the mapper buffer(s) to become undefined.
+
+ At the Atlanta F2F, there was a suggestion that eglLockSurfaceKHR
+ should immediately map the color buffer and return a pointer to it,
+ on the basis that this would make it harder for applications to
+ mistakenly use an old buffer pointer from a previous mapping cycle.
+ At the same time, people working on more powerful GPUs wanted the
+ lock operation to be lightweight. These are not consistent goals and
+ we have thus far chosen to separate the lightweight locking, and
+ more expensive mapping operations.
+
+ 7) Can buffer contents be preserved in mapping?
+
+ RESOLVED: Yes. The default behavior is to discard / leave undefined
+ the mapped buffer contents, but the EGL_MAP_PRESERVE_PIXELS_KHR flag
+ may be specified to eglLockSurfaceKHR.
+
+ 8) Should usage hints be provided during mapping?
+
+ RESOLVED: Yes, they may be provided in the EGL_LOCK_USAGE_HINT_KHR
+ bitmask attribute to eglLockSurfaceKHR. Implementations are required
+ to behave correctly no matter the value of the flag vs. the
+ operations actually performed, so the hint may be ignored.
+
+ 9) Should we be able to lock subrectangles of a surface?
+
+ RESOLVED: No. However, the attribute list parameter of
+ eglLockSurfaceKHR allows a layered extension to implement this
+ behavior by specifying an origin and size to map within the buffer.
+
+10) Should the BITMAP_PIXEL_<component>_OFFSET attributes belong to the
+ surface, or the config?
+
+ RESOLVED: Part of the surface. Configs supporting a specific format
+ are matched with config attribute EGL_MATCH_FORMAT_KHR, which
+ supports specific bit-exact formats such as
+ EGL_FORMAT_565_EXACT_KHR.
+
+11) Can the pixel size in a mapped buffer be derived from the
+ EGL_BUFFER_SIZE attribute of the config used to create it?
+
+ RESOLVED: Yes. In principle, hardware using padding bytes in its
+ framebuffer storage could be a problem, and a separate
+ BITMAP_PIXEL_SIZE surface attribute would be needed. However, we
+ don't think implementations are likely to waste graphics memory and
+ bandwidth in this fashion.
+
+12) How are color component locations within a pixel described?
+
+ RESOLVED: Each R, G, B, and A component has a queryable bit offset
+ within an integer. The size of the integer depends on the total size
+ of the pixel; for the 565 formats, the pixel is a 16-bit integer.
+ For the 8888 formats, the pixel is a 32-bit integer.
+
+ We cannot describe component locations with byte locations, since
+ the 565 formats have components straddling byte boundaries. However,
+ this means that offsets for the RGBA8888_EXACT format are different
+ between little- and big-endian CPUs, since the desired format is B,
+ G, R, A components laid out as bytes in increasing memory order.
+
+13) Can mapped buffer contents be affected by other EGL operations?
+
+ RESOLVED: No. A locked surface only allows two operations:
+ unlocking, and mapping. No other EGL operations can take place while
+ the surface is locked (if this were not the case, then
+ eglSwapBuffers might destroy the contents of a mapped buffer).
+
+ It is possible that operations outside the scope of EGL could affect
+ a mapped color buffer. For example, if a surface's color buffer were
+ made up of an EGLImage, one of the EGL client APIs could draw to
+ that image while it was mapped. Responsibility for avoiding this
+ situation is in the hands of the client.
+
+14) Can EGL_MATCH_FORMAT_KHR be queried for a config?
+
+ RESOLVED: Yes. Unlockable configs return EGL_NONE for this
+ attribute.
+
+15) Is a goal of this extension to support "mixed-mode" rendering (both
+ software and EGL client API rendering to the same surface)?
+
+ RESOLVED: No. An implementation *can* choose to export configs
+ supporting creation of lockable surfaces which also support
+ rendering by OpenGL ES, OpenVG, or other client APIs (when the
+ surface is not locked). But there is nothing in the extension
+ requiring this, and the motivation for the extension is simply to
+ support software rendering.
+
+16) Can mapping a locked surface fail?
+
+ RESOLVED: Yes, if memory can't be allocated in the client. This is
+ indicated by queries of EGL_BITMAP_POINTER_KHR and
+ EGL_BITMAP_PITCH_KHR failing and generating an EGL_BAD_ACCESS error.
+
+17) Why has this extension been obsoleted and replaced by
+ EGL_KHR_lock_surface3?
+
+ RESOLVED: Starting with the December 4, 2013 release of EGL 1.4, EGLint
+ is defined to be the same size as the native platform "int" type. Handle
+ and pointer attribute values *cannot* be represented in attribute lists
+ on platforms where sizeof(handle/pointer) > sizeof(int). Existing
+ extensions which assume this functionality are being replaced with new
+ extensions specifying new entry points to work around this issue. See
+ the latest EGL 1.4 Specification for more details.
+
+Revision History
+
+ Version 19, 2013/10/15 - Add issue 17 explaining that the bitmap pointer
+ cannot be safely queried using this extension on 64-bit platforms,
+ and suggest EGL_KHR_lock_surface3 instead. Change formal parameter
+ names from 'display' to 'dpy' to match other EGL APIs.
+ Version 18, 2010/03/23 - Added introductory remark referring to the
+ EGL_KHR_lock_surface2 extension. Clarified that it is the back
+ buffer of a back-buffered surface that is mapped.
+ Version 17, 2008/10/08 - Updated status (approved as part of
+ OpenKODE 1.0).
+ Version 16, 2008/01/24 - Add issue 16 noting that mapping can fail,
+ and a corresponding new error condition for eglQuerySurface.
+ Clean up the issues list.
+ Version 15, 2008/01/09 - Add issue 15 noting that supporting
+ mixed-mode rendering is not a goal or requirement of the
+ extension.
+ Version 14, 2007/11/07 - change ARGB_8888_EXACT back to
+ RGBA_8888_EXACT, since the offsets are now dependent on the
+ endianness of the CPU. Add issue 12 describing this, and clarify
+ that offsets are within a 16- or 32-bit integer depending on the
+ format. Added issue 13 clarifying that locked buffer contents
+ are not affected by eglSwapBuffers, because eglSwapBuffers
+ cannot be issued on a mapped surface. Allow querying
+ EGL_MATCH_FORMAT_KHR for a config, and added related issue 14.
+ Version 13, 2007/05/10 - change RGBA_8888_EXACT to ARGB_8888_EXACT
+ to match hardware layout.
+ Version 12, 2007/04/06 - clarify that when EGL_MATCH_FORMAT_KHR is
+ EGL_DONT_CARE, it does not affect component size of selected
+ configs.
+ Version 11, 2007/04/05 - add missing KHR suffix to some tokens.
+ Version 10, 2007/04/05 - assign enumerant values. Add OpenKODE 1.0
+ Provisional disclaimer.
+ Version 9, 2007/03/26 - add format tokens to "New Tokens"
+ section. Correct description of RGBA format tokens.
+ Version 8, 2007/03/26 - add issue 11 noting theoretical possibility
+ of EGL_BUFFER_SIZE not directly corresponding to the mapped
+ pixel size. Add EGL_MATCH_FORMAT_KHR attribute to
+ eglChooseConfig, and 565 / 8888 formats for it.
+ Version 7, 2007/03/25 - note in issue 5 that access to a mapped
+ buffer must continue to work even after a mode change. Add KHR
+ suffix to new functions and tokens. Remove BITMAP_PIXEL_<x>_BITS
+ and BITMAP_PIXEL_SIZE tokens, which duplicate information in the
+ EGLConfig. Add issue 10 asking whether bitmap pixel offset
+ attributes belong to the config, or to the surface.
+ Version 6, 2007/02/26 - allow EGL_CLIENT_APIS string to be empty in
+ implementations supporting only this extension.
+ Version 5, 2007/02/05 - update contributor list. Changed bit offset
+ queries to return LSB offset, rather than MSB offset.
+ Version 4, 2007/02/02 - correct extension name. Change
+ name of FAST_UNLOCK_BIT_KHR to OPTIMAL_FORMAT_BIT_KHR.
+ Replace buffer_mask parameter of eglLockSurfaceKHR with an
+ attribute list. Add the EGL_MAP_PRESERVE_PIXELS_KHR and
+ EGL_LOCK_USAGE_HINT_KHR attributes per request from Gary. Add issues
+ 7, 8, and 9 describing these attributes and how to support
+ locking subrects in a layered extension, by extending the
+ attribute list.
+ Version 3, 2007/02/01 - the implementation once again controls the
+ mapped buffer memory. There is no longer a separate bitmap
+ surface type; any type surface may potentially be mapped, using
+ lock/unlock semantics.
+ Version 2, 2006/12/22 - simplify by only supporting drawing from
+ client memory to EGL surface color buffers. Specify use of
+ OpenGL DrawPixels terminology. Change name of the extension to
+ EGL_KHR_draw_pixels, since there is no longer any "bitmap
+ surface" involved.
+ Version 1, 2006/12/14 - write up as formal spec language for
+ external review.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface2.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface2.txt
new file mode 100644
index 0000000..f7bae4d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface2.txt
@@ -0,0 +1,1077 @@
+Name
+
+ KHR_lock_surface2
+
+Name Strings
+
+ EGL_KHR_lock_surface2
+
+Contributors
+
+ Mark Callow
+ Gary King
+ Jon Leech
+ Marko Lukat
+ Alon Or-bach
+ Tim Renouf
+
+Contacts
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+
+Notice
+
+ Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ This extension is obsolete and has been replaced by
+ EGL_KHR_lock_surface3. Khronos recommends implementers who support this
+ extension also implement lock_surface3, and begin transitioning
+ developers to using that extension. See issue 21 for the reason.
+
+ Complete. Version 2 approved by the Khronos Board of Promoters on
+ May 28, 2010.
+ Implemented by Antix Labs.
+
+Version
+
+ Version 3, December 4, 2013
+
+Number
+
+ EGL Extension #16
+
+Dependencies
+
+ Requires EGL 1.0 and EGL_KHR_lock_surface version 18.
+
+ This extension is written against the wording of the EGL 1.3
+ and EGL 1.4 Specifications. Unless otherwise specified, each change
+ applies to both specifications. Unless otherwise specified, a page
+ number refers to the EGL 1.3 specification.
+
+ This extension is written against the wording of EGL_KHR_lock_surface
+ version 18.
+
+Overview
+
+ This extension slightly modifies and clarifies some semantic aspects
+ of the EGL_KHR_lock_surface extension, in a way that is backwards
+ compatible for applications.
+
+ The extension is presented here as the full text of the
+ EGL_KHR_lock_surface extension (minus the Status, Version, Number and
+ Dependencies sections at the start) as modified by the changes made by
+ this EGL_KHR_lock_surface2 extension. A diff utility can be used between
+ EGL_KHR_lock_surface version 18 and this EGL_KHR_lock_surface2 extension
+ to show the exact changes.
+
+ An application which needs to tell whether the implementation supports
+ EGL_KHR_lock_surface2, or just the original EGL_KHR_lock_surface, can
+ use eglQueryString with EGL_EXTENSIONS to query the list of
+ implemented extensions.
+
+ The changes over EGL_KHR_lock_surface can be summarized as follows:
+
+ * EGL_KHR_lock_surface had the EGL_MAP_PRESERVE_PIXELS_KHR attribute on
+ eglLockSurfaceKHR, but failed to point out how the surface attribute
+ EGL_SWAP_BEHAVIOR would interact with lock surface rendering.
+ EGL_KHR_lock_surface2 specifies that the locked buffer contains the
+ back buffer pixels if EGL_SWAP_BEHAVIOR is EGL_BUFFER_PRESERVED
+ _or_ if EGL_MAP_PRESERVE_PIXELS_KHR is EGL_TRUE, and provides a way to
+ set EGL_SWAP_BEHAVIOR on creation of a lockable window surface,
+ even if EGL_SWAP_BEHAVIOR is not otherwise modifiable.
+ EGL_SWAP_BEHAVIOR now defaults to EGL_BUFFER_PRESERVED for a
+ lockable surface.
+
+ * EGL_KHR_lock_surface failed to specify its interaction with the
+ EGL requirement that a context be current at eglSwapBuffers; no
+ context is used for lock surface rendering. EGL_KHR_lock_surface2
+ relaxes that requirement for a lockable window surface, in a way
+ that is anticipated to apply to all window surfaces in a future
+ version of EGL.
+
+ * Wording in EGL_KHR_lock_surface could be read to imply that almost
+ all surface attributes are invariant for a lockable surface.
+ EGL_KHR_lock_surface2 clarifies the wording.
+
+ * EGL_KHR_lock_surface2 clarifies what is returned when
+ the attribute EGL_MATCH_FORMAT_KHR is queried, especially when
+ one of the "inexact" formats was used to choose the config.
+
+ * EGL_KHR_lock_surface did not specify when a surface could change size.
+ EGL_KHR_lock_surface2 specifies that a surface cannot change size
+ when it is locked.
+
+ * EGL_KHR_lock_surface2 adds the config attribute
+ EGL_BITMAP_PIXEL_SIZE_KHR, to allow an application to dynamically
+ detect pixel layout for a format with a "hole", such as RGBU8888
+ (where "U" means "unused").
+
+New Tokens
+
+ Accepted by the <attribute> parameter of eglQuerySurface:
+
+ EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
+
+Full text of EGL_KHR_lock_surface plus EGL_KHR_lock_surface2:
+
+Overview
+
+ This extension allows mapping color buffers of EGL surfaces into the
+ client address space. This is useful primarily for software
+ rendering on low-end devices which do not support EGL client
+ rendering APIs, although it may be implemented efficiently on more
+ capable devices as well.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ EGLBoolean eglLockSurfaceKHR(EGLDisplay dpy, EGLSurface surface,
+ const EGLint *attrib_list);
+ EGLBoolean eglUnlockSurfaceKHR(EGLDisplay dpy,
+ EGLSurface surface);
+
+New Tokens
+
+ Returned in the EGL_SURFACE_TYPE bitmask attribute of EGLConfigs:
+
+ EGL_LOCK_SURFACE_BIT_KHR 0x0080
+ EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
+
+ Accepted as an attribute name in the <attrib_list> argument of
+ eglChooseConfig, and the <attribute> argument of eglGetConfigAttrib:
+
+ EGL_MATCH_FORMAT_KHR 0x3043
+
+ Accepted as attribute values for the EGL_MATCH_FORMAT_KHR attribute
+ of eglChooseConfig, and defined as possible values of that attribute
+ when querying it:
+
+ EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
+ EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
+
+ Accepted as attribute values for the EGL_MATCH_FORMAT_KHR attribute
+ of eglChooseConfig:
+
+ EGL_FORMAT_RGB_565_KHR 0x30C1
+ EGL_FORMAT_RGBA_8888_KHR 0x30C3
+
+ Accepted as attribute names in the <attrib_list> argument of
+ eglLockSurfaceKHR:
+
+ EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
+ EGL_LOCK_USAGE_HINT_KHR 0x30C5
+
+ Accepted as bit values in the EGL_LOCK_USAGE_HINT_KHR bitmask attribute
+ of eglLockSurfaceKHR:
+
+ EGL_READ_SURFACE_BIT_KHR 0x0001
+ EGL_WRITE_SURFACE_BIT_KHR 0x0002
+
+ Accepted by the <attribute> parameter of eglQuerySurface:
+
+ EGL_BITMAP_POINTER_KHR 0x30C6
+ EGL_BITMAP_PITCH_KHR 0x30C7
+ EGL_BITMAP_ORIGIN_KHR 0x30C8
+ EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
+ EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
+ EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
+ EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
+ EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
+ EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
+
+ Returns in the *<value> parameter of eglQuerySurface when
+ <attribute> is EGL_BITMAP_ORIGIN_KHR:
+
+ EGL_LOWER_LEFT_KHR 0x30CE
+ EGL_UPPER_LEFT_KHR 0x30CF
+
+Additions to Chapter 2 of the EGL 1.3 Specification (EGL Operation)
+
+ Add to the end of section 2.2.2:
+
+ Finally, some surfaces may be <locked>, which allows the
+ implementation to map buffers of that surface into client memory
+ for use by software renderers(fn). Locked surfaces cannot be
+ used for any other purpose. When a locked surface is <unlocked>,
+ any changes to the mapped buffer(s) are reflected in the actual
+ graphics or system memory containing the surface.
+
+ [fn: on implementations not supporting mapping graphics
+ memory, or which do not wish to take the stability and
+ security risks that entail, mapping may be done using
+ copy-out and copy-in behavior.]
+
+Additions to Chapter 3 of the EGL 1.3 Specification (EGL Functions and Errors)
+
+ Add to the description of the EGL_BAD_ACCESS error in section 3.1:
+
+ "... or, a surface is locked)."
+
+ Add to table 3.2 ("Types of surfaces supported by an EGLConfig")
+
+ EGL Token Name Description
+ -------------------- ------------------------------------
+ EGL_LOCK_SURFACE_BIT_KHR EGLConfig allows locking surfaces
+ EGL_OPTIMAL_FORMAT_BIT_KHR This format is considered optimal
+ (preferred) when locking / mapping /
+ unlocking is being done.
+
+ Change the first paragraph under "Other EGLConfig Attribute
+ Descriptions" on p. 16:
+
+ "EGL_SURFACE_TYPE is a mask indicating both the surface types
+ that can be created by the corresponding EGLConfig (the config
+ is said to <support> those surface types), and the optional
+ behaviors such surfaces may allow. The valid bit settings are
+ shown in Table 3.2."
+
+ Add a new paragraph following the second paragraph of the same
+ section:
+
+ "If EGL_LOCK_SURFACE_BIT_KHR is set in EGL_SURFACE_TYPE, then
+ a surface created from the EGLConfig may be locked, mapped into
+ client memory, and unlocked. Locking is described in section
+ 3.5.6. If EGL_OPTIMAL_FORMAT_BIT_KHR is set in
+ EGL_SURFACE_TYPE, then the surface is considered optimal (by
+ the implementation) from a performance standpoint when buffer
+ mapping is being done."
+
+ Replace the second paragraph of section 3.3 "EGL Versioning":
+
+ "The EGL_CLIENT_APIS string describes which client rendering APIs
+ are supported. It is zero-terminated and contains a
+ space-separated list of API names, which may include
+ ``OpenGL_ES'' if OpenGL ES is supported, and ``OpenVG'' if
+ OpenVG is supported. If no client APIs are supported, then the
+ empty string is returned."
+
+ Insert a new paragraph and table in section 3.4.1 "Querying
+ Configurations", following the description of
+ EGL_MATCH_NATIVE_PIXMAP on page 21:
+
+ "If EGL_MATCH_FORMAT_KHR is specified in <attrib_list>, it must
+ be followed by one of the attribute values EGL_DONT_CARE,
+ EGL_NONE, or one of the format tokens in table
+ [locksurf.format].
+
+ When EGL_MATCH_FORMAT_KHR has the value EGL_NONE, only configs
+ which cannot be locked or mapped will match. Such configs must
+ not have the EGL_LOCK_SURFACE_BIT_KHR set in EGL_SURFACE_TYPE.
+
+ When EGL_MATCH_FORMAT_KHR has the value EGL_DONT_CARE, it is
+ ignored.
+
+ When EGL_MATCH_FORMAT_KHR has one of the values in table
+ [locksurf.format], only EGLConfigs describing surfaces whose
+ color buffers have the specified format, when mapped with
+ eglLockSurface, will match this attribute. In this case, the
+ EGL_<component>_SIZE attributes of resulting configs must agree
+ with the specific component sizes specified by the format."
+
+ Specific Format Name Description
+ -------------------- -----------
+ EGL_FORMAT_RGB_565_EXACT_KHR RGB565 fields in order from MSB to LSB within a 16-bit integer
+ EGL_FORMAT_RGB_565_KHR RGB565 fields in implementation-chosen order within a 16-bit integer
+ EGL_FORMAT_RGBA_8888_EXACT_KHR RGBA8888 fields in B, G, R, A byte order in memory
+ EGL_FORMAT_RGBA_8888_KHR RGBA8888 fields in implementation-chosen order within a 32-bit integer
+ ------------------------------------------------------------------------------------------------------
+ Table [locksurf.format]: Specific formats for mapped pixels.
+
+ Add to table 3.4 ("Default values and match critera for EGLConfig
+ attributes") on page 22:
+
+ Attribute Default Selection Sort Sort
+ Criteria Order Priority
+ -------------------- ------------- --------- ----- --------
+ EGL_MATCH_FORMAT_KHR EGL_DONT_CARE Exact None -
+
+ Add EGL_MATCH_FORMAT_KHR to the last paragraph in section 3.4.1 on
+ p. 23, describing attributes not used for sorting EGLConfigs.
+
+ Add a new paragraph to the end of section 3.4.3 "Querying Configuration
+ Attributes":
+
+ "Querying the EGL_MATCH_FORMAT_KHR attribute results in EGL_NONE
+ for an EGLConfig that is not lockable, one of the "exact" formats
+ (EGL_FORMAT_RGB_565_EXACT_KHR, EGL_FORMAT_RGBA_8888_EXACT_KHR)
+ if the color buffer matches that format when mapped with
+ eglLockSurface, or for any other format a value that is not
+ EGL_NONE or EGL_DONT_CARE but is otherwise undefined. In particular,
+ the color buffer format matching one of the "inexact" formats
+ does not guarantee that that EGL_FORMAT_* value is returned."
+
+ In section 3.5.1 "Creating On-Screen Rendering Surfaces", add the
+ following to the paragraph that lists the attributes that can be set
+ in attrib_list:
+
+ "... and EGL_SWAP_BEHAVIOR."
+
+ and add a new penultimate paragraph:
+
+ "EGL_SWAP_BEHAVIOR specifies the initial value of the
+ EGL_SWAP_BEHAVIOR surface attribute (section 3.5.6), and is thus
+ either EGL_BUFFER_PRESERVED or EGL_BUFFER_DESTROYED. This setting
+ of EGL_SWAP_BEHAVIOR at surface creation time is supported only
+ for a lockable surface, i.e. where the EGLConfig has
+ EGL_LOCK_SURFACE_BIT_KHR set in EGL_SURFACE_TYPE."
+
+ In EGL 1.4, also add the following text to that same paragraph:
+
+ "For such a lockable surface, whether it is possible to change
+ the EGL_SWAP_BEHAVIOR attribute after surface creation is
+ determined by EGL_SWAP_BEHAVIOR_PRESERVED_BIT in the
+ EGL_SURFACE_TYPE EGLConfig attribute."
+
+ Add a new section following the current section 3.5.5:
+
+ "3.5.6 Locking and Mapping Rendering Surfaces
+
+ A rendering surface may be <locked> by calling
+
+ EGLBoolean eglLockSurfaceKHR(EGLDisplay dpy,
+ EGLSurface surface,
+ const EGLint *attrib_list);
+
+ While a surface is locked, only two operations can be performed
+ on it. First, a surface attribute may be queried using
+ eglQuerySurface. This includes the case of querying
+ EGL_BITMAP_POINTER_KHR, which causes the surface to be
+ <mapped> (if not already mapped) and gives
+ a pointer into client memory corresponding to the memory
+ of the mapped buffer. Second, the surface may be unlocked. Any
+ attempts to use a locked surface in other EGL APIs will fail and
+ generate an EGL_BAD_ACCESS error.
+
+ While a surface is locked, its dimensions (the values of the EGL_WIDTH
+ and EGL_HEIGHT surface attributes) do not change. They may change
+ at any other time, therefore an application must query these
+ attributes <after> the call to eglLockSurfaceKHR to ensure that it has
+ the correct size of the mapped buffer.
+
+ <attrib_list> specifies additional parameters affecting the locking
+ operation. The list has the same structure as described for
+ eglChooseConfig. Attributes that may be defined are shown in table
+ [locksurf.attr], together with their default values if not specified
+ in <attrib_list>, and possible values which may be specified for
+ them in <attrib_list>.
+
+ Attribute Name Type Default Value Possible Values
+ ----------------------- ------- ------------- -------------------------
+ EGL_MAP_PRESERVE_PIXELS_KHR boolean EGL_FALSE EGL_TRUE / EGL_FALSE
+ EGL_LOCK_USAGE_HINT_KHR bitmask EGL_READ_SURFACE_BIT_KHR | Any combination of
+ EGL_WRITE_SURFACE_BIT_KHR EGL_READ_SURFACE_BIT_KHR
+ and EGL_WRITE_SURFACE_BIT_KHR
+ --------------------------------------------------------------
+ Table [locksurf.attr]: eglLockSurfaceKHR attribute names,
+ default values, and possible values.
+
+ On failure, the surface is unaffected and eglLockSurfaceKHR
+ returns EGL_FALSE. An EGL_BAD_ACCESS error is generated if any
+ of these condition, are true:
+
+ * <surface> was created with an EGLConfig whose
+ EGL_SURFACE_TYPE attribute does not contain
+ EGL_LOCK_SURFACE_BIT_KHR.
+ * <surface> is already locked.
+ * Any client API is current to <surface>.
+
+ An EGL_BAD_ATTRIBUTE error is generated if an attribute or
+ attribute value not described in table [locksurf.attr] is
+ specified.
+
+ Mapping Buffers of a Locked Surface
+ -----------------------------------
+
+ The color buffer of a locked surface can be <mapped> by calling
+ eglQuerySurface (see section 3.5.7) with <attribute>
+ EGL_BITMAP_POINTER_KHR(fn). The query returns a pointer to a
+ buffer in client memory corresponding to the color buffer of
+ <surface>. In the case of a back-buffered surface, color buffer
+ refers to the back buffer.
+
+ [fn: "mapped" only means that the pointer returned is
+ intended to *correspond* to graphics memory. Implementation
+ are not required to return an actual pointer into graphics
+ memory, and often will not.]
+
+
+ The contents of the mapped buffer are initially undefined(fn)
+ unless either the EGL_MAP_PRESERVE_PIXELS_KHR attribute of
+ eglLockSurfaceKHR is set to EGL_TRUE, or (for a window surface)
+ the EGL_SWAP_BEHAVIOR surface attribute is set to
+ EGL_BUFFER_PRESERVE, in which case the contents
+ of the buffer are taken from the contents of <surface>'s color
+ buffer. The default value of EGL_MAP_PRESERVE_PIXELS_KHR is
+ EGL_FALSE.
+
+ [fn: In order to avoid pipeline stalls and readback delays on
+ accelerated implementations, we do not mandate that the
+ current contents of a color buffer appear when it's mapped
+ to client memory, unless the EGL_MAP_PRESERVE_PIXELS_KHR
+ flag is set or (for a window surface) EGL_SWAP_BEHAVIOR is
+ set to EGL_BUFFER_PRESERVE. Applications using mapped
+ buffers which are not
+ preserved must write to every pixel of the buffer before
+ unlocking the surface. This constraint is considered
+ acceptable for the intended usage scenario (full-frame
+ software renderers). Such an application may lock-render-unlock
+ multiple times per frame (i.e. per eglSwapBuffers) by setting
+ EGL_MAP_PRESERVE_PIXELS_KHR to EGL_TRUE for the second and
+ subsequent locks.
+
+ Note that EGL_SWAP_BEHAVIOR also controls whether the color
+ buffer contents are preserved over a call to eglSwapBuffers.]
+
+ The EGL_LOCK_USAGE_HINT_KHR attribute of eglLockSurfaceKHR is a
+ bitmask describing the intended use of the mapped buffer. If the
+ mask contains EGL_READ_SURFACE_BIT_KHR, data will be read from
+ the mapped buffer. If the mask contains
+ EGL_WRITE_SURFACE_BIT_KHR, data will be written to the mapped
+ buffer. Implementations must support both reading and writing to
+ a mapped buffer regardless of the value of
+ EGL_LOCK_USAGE_HINT_KHR, but performance may be better if the
+ hint is consistent with the actual usage of the buffer. The
+ default value of EGL_LOCK_USAGE_HINT_KHR hints that both reads
+ and writes to the mapped buffer will be done.
+
+ Other attributes of the mapped buffer describe the format of
+ pixels it contains, including its pitch (EGL_BITMAP_PITCH_KHR),
+ origin (EGL_BITMAP_ORIGIN_KHR), and the bit location of each color
+ component within a pixel (EGL_BITMAP_PIXEL_x_OFFSET_KHR). These
+ attributes may be queried using eglQuerySurface, and are described
+ in more detail in section 3.5.7.
+
+ The EGL_BITMAP_POINTER_KHR and EGL_BITMAP_PITCH_KHR attributes
+ of a locked surface may change following successive calls to
+ eglLockSurfaceKHR(fn), so they must be queried each time a
+ buffer is mapped. Other attributes of a mapped buffer (listed in
+ the paragraph above) are invariant and need be queried only once
+ following surface creation.
+
+ [fn: The pointer and pitch of a mapped buffer may change due
+ to display mode changes, for example.]
+
+ Mapping will not suceed if client memory to map the surface into
+ cannot be allocated. In this case, querying eglQuerySurface with
+ <attribute> EGL_BITMAP_POINTER_KHR will fail and generate an EGL
+ error.
+
+ Unlocking Surfaces
+ ------------------
+
+ A rendering surface may be <unlocked> by calling
+
+ EGLBoolean eglUnlockSurfaceKHR(EGLDisplay dpy,
+ EGLSurface surface);
+
+ Any mapped buffers of <surface> become unmapped following
+ eglUnlockSurfaceKHR. Any changes made to mapped buffers of
+ <surface> which it was locked are reflected in the surface after
+ unlocking(fn).
+
+ [fn: This language enables implementations to either map
+ video memory, or copy from a separate buffer in client
+ memory.]
+
+ If <surface> was created with an EGLConfig whose
+ EGL_SURFACE_TYPE attribute contains EGL_OPTIMAL_FORMAT_BIT_KHR,
+ then the surface is considered optimal (by the implementation)
+ from a performance standpoint when buffer mapping is being
+ done(fn).
+
+ [fn: This often means that the format of all mapped buffers
+ corresponds directly to the format of those buffers in
+ <surface>, so no format conversions are required during
+ unmapping. This results in a high-performance software
+ rendering path. But "optimal format" is really just a hint
+ from EGL that this config is preferred, whatever the actual
+ reason.]
+
+ On failure, eglUnlockSurfaceKHR returns EGL_FALSE. An
+ EGL_BAD_ACCESS error is generated if any of these conditions are
+ true:
+
+ * <surface> is already unlocked.
+ * A display mode change occurred while the surface was locked,
+ and the implementation was unable to reflect mapped buffer
+ state(fn). In this case, <surface> will still be unlocked.
+ However, the contents of the previously mapped buffers of
+ <surface> become undefined, rather than reflecting changes
+ made in the mapped buffers in client memory.
+
+ [fn: Usually this may only occur with window surfaces which
+ have been mapped. EGL does not have an event mechanism to
+ indicate display mode changes. If such a mechanism exists
+ (using native platform events or the OpenKODE event system),
+ applications should respond to mode changes by regenerating
+ all visible window content, including re-doing any software
+ rendering overlapping the mode change.]"
+
+ Add to table 3.5 ("Queryable surface attributes and types")
+
+ Attribute Type Description
+ --------- ---- -----------
+ EGL_BITMAP_POINTER_KHR pointer Address of a mapped color buffer (MCB).
+ EGL_BITMAP_PITCH_KHR integer Number of bytes between the start of
+ adjacent rows in an MCB.
+ EGL_BITMAP_ORIGIN_KHR enum Bitmap origin & direction
+ EGL_BITMAP_PIXEL_x_OFFSET_KHR integer Bit location of each color buffer
+ component within a pixel in an MCB.
+ EGL_BITMAP_PIXEL_SIZE_KHR integer Bits per pixel
+
+ In EGL 1.4 only, in the description of eglSurfaceAttrib properties
+ that can be set in section 3.5.6 (renumbered to 3.5.7), on page 35,
+ add to the first paragraph describing EGL_SWAP_BEHAVIOR:
+
+ "The value of EGL_SWAP_BEHAVIOR also affects the semantics of
+ eglLockSurfaceKHR for a lockable window surface. See section 3.5.6."
+
+ In EGL 1.4 only, in the description of eglSurfaceAttrib properties
+ that can be set in section 3.5.6 (renumbered to 3.5.7), on page 35,
+ change the paragraph concerning the initial value of EGL_SWAP_BEHAVIOR
+ to:
+
+ "The initial value of EGL_SWAP_BEHAVIOR is chosen by the
+ implementation, except for a lockable window surface (i.e. where the
+ EGLConfig has both EGL_LOCK_SURFACE_BIT_KHR and EGL_WINDOW_BIT set in
+ EGL_SURFACE_TYPE), where the default is EGL_BUFFER_PRESERVED, but it
+ may be overridden by specifying EGL_SWAP_BEHAVIOR to
+ eglCreateWindowSurface."
+
+ In EGL 1.3 only, in the description of eglQuerySurface properties
+ that can be queried in section 3.5.6 (renumbered to 3.5.7), on page 33,
+ add to the paragraph describing EGL_SWAP_BEHAVIOR:
+
+ "The value of EGL_SWAP_BEHAVIOR also affects the semantics of
+ eglLockSurfaceKHR for a lockable window surface. See section 3.5.6.
+ For a lockable window surface (one whose EGLConfig has both
+ EGL_LOCK_SURFACE_BIT_KHR and EGL_WINDOW_BIT set in EGL_SURFACE_TYPE),
+ the value of this attribute may be set in the eglCreateWindowSurface
+ call, and if not set there defaults to EGL_BUFFER_PRESERVED. See
+ section 3.5.1. The default for a non-lockable surface is chosen by the
+ implementation."
+
+ Add to the description of eglQuerySurface properties in section
+ 3.5.6 (renumbered to 3.5.7) on page 33:
+
+ "Properties of a bitmap surface which may be queried include:
+ * EGL_BITMAP_POINTER_KHR, which maps the color buffer of a
+ locked surface and returns the address in client memory of
+ the mapped buffer.
+ * EGL_BITMAP_PITCH_KHR, which returns the number of bytes
+ between successive rows of a mapped buffer.
+ * EGL_BITMAP_ORIGIN_KHR, which describes the way in which a
+ mapped color buffer is displayed on the screen. Possible
+ values are either EGL_LOWER_LEFT_KHR or EGL_UPPER_LEFT_KHR,
+ indicating that the first pixel of the mapped buffer
+ corresponds to the lower left or upper left of a visible
+ window, respectively.
+ * EGL_BITMAP_PIXEL_<x>_OFFSET_KHR, which describes the bit
+ location of the least significant bit of each color
+ component of a pixel within a mapped buffer. <x> is one of
+ RED, GREEN, BLUE, ALPHA, or LUMINANCE.
+
+ The offset for a color component should be treated as the
+ number of bits to left shift the component value to place it
+ within a n-bit
+ integer containing the pixel, where n is the number of bits
+ per pixel. If a color
+ component does not exist in the mapped buffer, then the bit
+ offset of that component is zero. If a color component
+ does exist but not in a single contiguous range of bits,
+ then the value of the attribute is EGL_UNKNOWN.
+
+ * EGL_BITMAP_PIXEL_SIZE_KHR, which returns the number of bits
+ per pixel, assumed to be least significant leftmost if there
+ are multiple pixels per byte. The attribute takes the value
+ EGL_UNKNOWN if this assumption is not true, or if pixels are not
+ laid out left to right in memory (for example pairs of 16-bit
+ pixels are swapped in memory).
+
+ In addition to these attributes, the number of bits for each
+ color component of a pixel within a mapped buffer is obtained by
+ querying the EGL_<x>_SIZE attribute of the EGLConfig used to
+ create the surface, where <x> is <x> is one of RED, GREEN, BLUE,
+ ALPHA, or LUMINANCE.
+
+ Querying EGL_BITMAP_POINTER_KHR and EGL_BITMAP_PITCH_KHR is only
+ allowed when <surface> is mapped (see section 3.5.6). Querying
+ either of these attributes for the first time after calling
+ eglLockSurfaceKHR causes the color buffer of the locked surface
+ to be mapped. Querying them again before unlocking the surface
+ will return the same values as the first time. However, after
+ calling eglUnlockSurfaceKHR, these properties become undefined.
+ After a second call to eglLockSurfaceKHR, these properties may
+ again be queried, but their values may have changed.
+
+ Other properties of the mapped color buffer of a surface
+ (in the list above) are
+ invariant, and need be queried only once following surface
+ creation. If <surface> was created with an EGLConfig whose
+ EGL_SURFACE_TYPE attribute does not contain
+ EGL_LOCK_SURFACE_BIT_KHR, queries of EGL_BITMAP_ORIGIN_KHR,
+ EGL_BITMAP_PIXEL_<x>_OFFSET_KHR and EGL_BITMAP_PIXEL_SIZE_KHR
+ return undefined values."
+
+ Add to the description of eglQuerySurface errors in the last
+ paragraph of section 3.5.6 (renumbered to 3.5.7) on page 34:
+
+ "... If <attribute> is either EGL_BITMAP_POINTER_KHR or
+ EGL_BITMAP_PITCH_KHR, and either <surface> is not locked using
+ eglLockSurfaceKHR, or <surface> is locked but mapping fails,
+ then an EGL_BAD_ACCESS error is generated."
+
+ In section 3.9.3 Posting Semantics on page 46, append to the first
+ paragraph:
+
+ "This restriction does not apply to lockable surfaces; for such
+ a surface, eglSwapBuffers and eglCopyBuffers may be called for
+ a surface not bound to any client API context(fn).
+
+ [fn: Normally this would only be done when using methods other
+ than client API rendering to specify the color buffer contents,
+ such as software rendering to a locked surface.]"
+
+ and replace the second paragraph ("If <dpy> and <surface> ... not be
+ executed until posting is completed.") with:
+
+ "If <surface> is bound to a current client API context for the calling
+ thread, eglSwapBuffers and eglCopyBuffers perform an implicit flush
+ operation on the context (glFlush for an OpenGL or OpenGL ES context,
+ vgFlush for an OpenVG context). Subsequent client API commands can be
+ issued immediately, but will not be executed until posting is
+ completed.
+
+ If <surface> is current to a client API context in any thread other
+ than the calling thread, eglSwapBuffers and eglCopyBuffers will fail.
+
+ and append the following sentence to the eglSwapInterval paragraph:
+
+ "The swap interval has no effect on an eglSwapBuffers for a surface
+ not bound to a current client API context."
+
+ In 3.9.4 Posting Errors, change the sentence "If <surface> is not bound
+ to the calling thread's current context, an EGL_BAD_SURFACE error is
+ generated." to:
+
+ "If <surface> is bound to a current context in a thread other
+ than the calling thread, an EGL_BAD_SURFACE error is generated."
+
+
+Issues
+
+ 1) What is the rationale for this extension?
+
+ Software renderers on low-end implementations need an efficient way
+ to draw pixel data to the screen. High-end implementations must
+ support the same interface for compatibility, while not compromising
+ the accelerability of OpenGL ES and OpenVG client APIs using
+ dedicated graphics hardware and memory.
+
+ Using lock/unlock semantics enables low-end implementations to
+ expose pointers directly into display memory (as extremely dangerous
+ as that may be), while high-end implementations may choose to create
+ backing store in client memory when mapping a buffer, and copy it to
+ graphics memory when the surface is unlocked. Making the initial
+ contents of a mapped buffer undefined means that no readbacks from
+ graphics memory are required, avoiding pipeline stalls.
+
+ This extension is not intended to support mixed-mode (client API and
+ software) rendering. Since mapped buffer contents are undefined,
+ unless the buffer is explicitly preserved (which may be unacceptably
+ expensive on many implementations), applications doing software
+ rendering must touch every pixel of mapped buffers at least once
+ before unlocking the surface.
+
+ 2) Do we need to know if locked surfaces are "fast" or "native"?
+
+ RESOLVED: Yes. This is indicated with the EGL_OPTIMAL_FORMAT_BIT_KHR
+ of EGL_SURFACE_TYPE. However, note that there is no way to guarantee
+ what "fast" or "no format conversions" really means; this is little
+ more than an implementation hint.
+
+ 3) Should we be able to map buffers other than the color buffer?
+
+ RESOLVED: Not initially. However, the <attrib_list> parameter of
+ eglLockSurfaceKHR supports this in the future. There is no <buffer>
+ attribute to eglQuerySurface, so such a layered extension would have
+ to either create a new naming convention (such as
+ EGL_BITMAP_{DEPTH,COLOR,STENCIL,ALPHA_MASK}_POINTER), or define an
+ extended query eglQuerySurfaceBuffer() which takes a <buffer>
+ parameter. It would also be tricky to support interleaved depth /
+ stencil formats. But the attribute list offers some future-proofing
+ at low cost.
+
+ 4) What properties of mapped buffers can be queried?
+
+ RESOLVED: A pointer to the buffer and its pitch, both of which may
+ change in successive lock/unlock cycles. These may be queried only
+ while the underlying surface is locked, and are undefined after
+ unlocking. The first query following locking is the point at which
+ actual buffer mapping must occur.
+
+ RESOLVED: Additionally, the pixel size, origin, and color component
+ bitfield size and offset for each component, which are invariant
+ and may be queried at any time.
+
+ 5) How are mode changes indicated? What happens to the mapped
+ buffer during a mode change?
+
+ RESOLVED: UnlockSurfaceKHR fails and raises an error if a mode
+ change occurred while the surface was locked (although the surface
+ still ends up in the unlocked state - this is necessary since
+ there's no way to clear the error!). If a mode change occurs while a
+ buffer is mapped, the implementation must still allow the
+ application to access mapped buffer memory, even though the contents
+ of the mapped buffer may not be reflected in the changed window
+ after unmapping.
+
+ Note: There's no convenient way to indicate mode changes while
+ a surface is unlocked, despite that being useful to tell apps they
+ have to redraw. The problem is that we don't have an event system,
+ and the power management functionality is overkill since the only
+ resources which are likely to be damaged by a mode change are
+ visible window contents. Fortunately, this problem is beyond the
+ scope of this extension.
+
+ 6) Does locking a surface imply mapping its buffers?
+
+ RESOLVED: No. Locking simply places the surface in that state and
+ prevents it from being made current / swapped / etc. Buffers are
+ mapped only when their pointers or pitch are queried using
+ eglQuerySurface.
+
+ An interesting side effect of this resolution is that calling
+ eglLockSurfaceKHR immediately followed by eglUnlockSurfaceKHR DOES
+ NOT CHANGE THE CONTENTS OF BUFFERS, since none of them were mapped.
+ Likewise locking a surface, querying a buffer pointer or pitch, and
+ then unlocking it without changing the mapped buffer contents causes
+ the surface contents of the mapper buffer(s) to become undefined.
+
+ At the Atlanta F2F, there was a suggestion that eglLockSurfaceKHR
+ should immediately map the color buffer and return a pointer to it,
+ on the basis that this would make it harder for applications to
+ mistakenly use an old buffer pointer from a previous mapping cycle.
+ At the same time, people working on more powerful GPUs wanted the
+ lock operation to be lightweight. These are not consistent goals and
+ we have thus far chosen to separate the lightweight locking, and
+ more expensive mapping operations.
+
+ 7) Can buffer contents be preserved in mapping?
+
+ RESOLVED: Yes. The default behavior is to discard / leave undefined
+ the mapped buffer contents, but the EGL_MAP_PRESERVE_PIXELS_KHR flag
+ may be specified to eglLockSurfaceKHR.
+
+ 8) Should usage hints be provided during mapping?
+
+ RESOLVED: Yes, they may be provided in the EGL_LOCK_USAGE_HINT_KHR
+ bitmask attribute to eglLockSurfaceKHR. Implementations are required
+ to behave correctly no matter the value of the flag vs. the
+ operations actually performed, so the hint may be ignored.
+
+ 9) Should we be able to lock subrectangles of a surface?
+
+ RESOLVED: No. However, the attribute list parameter of
+ eglLockSurfaceKHR allows a layered extension to implement this
+ behavior by specifying an origin and size to map within the buffer.
+
+10) Should the BITMAP_PIXEL_<component>_OFFSET attributes belong to the
+ surface, or the config?
+
+ RESOLVED: Part of the surface. Configs supporting a specific format
+ are matched with config attribute EGL_MATCH_FORMAT_KHR, which
+ supports specific bit-exact formats such as
+ EGL_FORMAT_565_EXACT_KHR.
+
+11) Can the pixel size in a mapped buffer be derived from the
+ EGL_BUFFER_SIZE attribute of the config used to create it?
+
+ RESOLVED: Yes. In principle, hardware using padding bytes in its
+ framebuffer storage could be a problem, and a separate
+ BITMAP_PIXEL_SIZE surface attribute would be needed. However, we
+ don't think implementations are likely to waste graphics memory and
+ bandwidth in this fashion.
+
+12) How are color component locations within a pixel described?
+
+ RESOLVED: Each R, G, B, and A component has a queryable bit offset
+ within an integer. The size of the integer depends on the total size
+ of the pixel; for the 565 formats, the pixel is a 16-bit integer.
+ For the 8888 formats, the pixel is a 32-bit integer.
+
+ We cannot describe component locations with byte locations, since
+ the 565 formats have components straddling byte boundaries. However,
+ this means that offsets for the RGBA8888_EXACT format are different
+ between little- and big-endian CPUs, since the desired format is B,
+ G, R, A components laid out as bytes in increasing memory order.
+
+13) Can mapped buffer contents be affected by other EGL operations?
+
+ RESOLVED: No. A locked surface only allows two operations:
+ unlocking, and mapping. No other EGL operations can take place while
+ the surface is locked (if this were not the case, then
+ eglSwapBuffers might destroy the contents of a mapped buffer).
+
+ It is possible that operations outside the scope of EGL could affect
+ a mapped color buffer. For example, if a surface's color buffer were
+ made up of an EGLImage, one of the EGL client APIs could draw to
+ that image while it was mapped. Responsibility for avoiding this
+ situation is in the hands of the client.
+
+14) Can EGL_MATCH_FORMAT_KHR be queried for a config?
+
+ RESOLVED: Yes. Unlockable configs return EGL_NONE for this
+ attribute.
+
+ For a config whose format matches one of the EGL_FORMAT_*_EXACT_KHR
+ definitions, that value is returned.
+
+ For a config whose format does not match one of the
+ EGL_FORMAT_*_EXACT_KHR definitions, but it does match one of the
+ inexact definitions, we do not want to specify that it returns that
+ value, since that precludes it returning an exact format if one were
+ to be defined in a future extension, or a future version of this
+ extension.
+
+ Therefore, for a config whose format does not match a defined
+ "exact" format, the attribute returns a value other than the defined
+ "exact" formats and EGL_NONE and EGL_DONT_CARE.
+
+15) Is a goal of this extension to support "mixed-mode" rendering (both
+ software and EGL client API rendering to the same surface)?
+
+ RESOLVED: No. An implementation *can* choose to export configs
+ supporting creation of lockable surfaces which also support
+ rendering by OpenGL ES, OpenVG, or other client APIs (when the
+ surface is not locked). But there is nothing in the extension
+ requiring this, and the motivation for the extension is simply to
+ support software rendering.
+
+16) Can mapping a locked surface fail?
+
+ RESOLVED: Yes, if memory can't be allocated in the client. This is
+ indicated by queries of EGL_BITMAP_POINTER_KHR and
+ EGL_BITMAP_PITCH_KHR failing and generating an EGL_BAD_ACCESS error.
+
+17) How does the application specify that it would like the pixels in the
+ mapped buffer to be preserved from the state at the last unlock?
+ [Bug 4410]
+
+ There are actually two items that need to be configurable:
+
+ a. Whether eglSwapBuffers preserves the color buffer.
+
+ b. Whether eglLockSurfaceKHR puts the color buffer pixels into the
+ locked buffer.
+
+ An implementation may use two different render paths depending on whether
+ the application is full frame rendering or incrementally rendering, where
+ the full frame rendering path may involve less copying than the
+ incrementally rendering path. The implementation needs to know in advance
+ which path to use; finding out from EGL_MAP_PRESERVE_PIXELS_KHR on
+ eglLockSurfaceKHR whether that lock should have the color buffer pixels
+ from the last eglUnlockSurfaceKHR in the last frame is too late.
+
+ This need to know in advance only applies to (a).
+
+ Note that the original EGL_KHR_lock_surface extension failed to state
+ that EGL_SWAP_BEHAVIOR needed to be set to EGL_BUFFER_PRESERVED for
+ incremental rendering.
+
+ RESOLVED: EGL_MAP_PRESERVE_PIXELS_KHR continues to control (b), as in the
+ original EGL_KHR_lock_surface extension. EGL_SWAP_BEHAVIOR continues
+ to control (a), as in unextended EGL. It is possible to set
+ EGL_SWAP_BEHAVIOR in eglCreateWindowSurface, even on EGL versions
+ before 1.4, and even if the config does not have
+ EGL_SWAP_BEHAVIOR_PRESERVED_BIT set in EGL_SURFACE_TYPE.
+
+ For a lockable window surface, EGL_SWAP_BEHAVIOR needs to default to
+ EGL_BUFFER_PRESERVED, and having EGL_SWAP_BEHAVIOR set to
+ EGL_BUFFER_PRESERVED needs to override EGL_MAP_PRESERVE_PIXELS_KHR. This is for
+ compatibility with version 1 of this extension, which had EGL_SWAP_BEHAVIOR
+ as the sole means of controlling (a) and (b).
+
+ This resolution is backward compatible with the original
+ EGL_KHR_lock_surface extension as it now defaults to preserving pixels,
+ and thus has that default for an old application that does not know about
+ setting EGL_SWAP_BEHAVIOR=EGL_BUFFER_DESTROYED to optimize full frame
+ rendering. The downside is a possible performance reduction of an old
+ application that does not want pixels preserved, until it is appropriately
+ modified and recompiled.
+
+18) When can a lockable surface change size? [Bug 4522]
+
+ RESOLVED: The surface cannot change size while it is locked. For any
+ window size change during that time, EGL defers the corresponding
+ surface size change until some time after the unlock.
+ The implication is that an application must get the surface size
+ _after_locking, otherwise the size may have changed in between the
+ attribute query and the lock.
+
+ As part of this change, using eglQuerySurface on any surface attribute
+ while the surface is locked has been allowed.
+
+19) Should we provide for more than one pixel per byte, or a format with
+ a "hole", or a byte-swapped 16-bit format? [Bug 4513]
+
+ For the use case where the application uses EGL_FORMAT_* to
+ determine the pixel format, this is not an issue. For the use case
+ where the application is written to cope with any format by reading
+ the EGL_BITMAP_* attributes and adjusting its rendering at runtime,
+ this is an issue.
+
+ RESOLVED: We add a new attribute EGL_BITMAP_PIXEL_SIZE_KHR which gives
+ the pixel size in bits.
+ The use of this attribute assumes that multiple pixels packed into
+ a byte are arranged least significant on the left, and that pixels
+ are arranged leftmost first in memory. If either of these assumptions
+ is false, then EGL_BITMAP_PIXEL_SIZE_KHR is EGL_UNKNOWN to indicate
+ that an application attempting to use these attributes to adjust its
+ rendering code will not work.
+
+ We also define that any of the EGL_BITMAP_PIXEL_x_OFFSET_KHR attributes
+ have a value of EGL_UNKNOWN if the corresponding color component is not
+ a contiguous bit range.
+
+20) EGL states that surface must be bound to the thread's current context
+ when posting, but there is no current context when using lock surface.
+ eglSwapInterval is also related to the context. [Bug 5923]
+
+ RESOLVED: The posting restrictions are relaxed, so it is allowed to
+ post for a surface not bound to any client API context. In this case
+ no eglSwapInterval setting affects an eglSwapBuffers. This relaxation
+ only applies to a lockable surface so that this extension continues
+ to be implementable as a middleware layer on top of a "real" EGL.
+ The relaxation applies to a surface that is both lockable and client
+ API renderable; the implicit flush in a post only occurs when the surface
+ is bound to a current API context. Posting a surface bound to a different
+ thread's current API context is still disallowed.
+
+21) Why has this extension been obsoleted and replaced by
+ EGL_KHR_lock_surface3?
+
+ RESOLVED: Starting with the December 4, 2013 release of EGL 1.4, EGLint
+ is defined to be the same size as the native platform "int" type. Handle
+ and pointer attribute values *cannot* be represented in attribute lists
+ on platforms where sizeof(handle/pointer) > sizeof(int). Existing
+ extensions which assume this functionality are being replaced with new
+ extensions specifying new entry points to work around this issue. See
+ the latest EGL 1.4 Specification for more details.
+
+
+Revision History
+
+ Version 3, 2013/12/04 - Add issue 21 explaining that the bitmap pointer
+ cannot be safely queried using this extension on 64-bit platforms,
+ and suggesting EGL_KHR_lock_surface3 instead. Change formal
+ parameter names from 'display' to 'dpy' to match other EGL APIs.
+ Version 2, 2010/03/10
+ Allocated extension number 16.
+ [Bug 6089] Clarified that it is the back buffer of a back-buffered
+ surface that is mapped.
+ [Bug 4410] Issue 17: Reinstate EGL_MAP_PRESERVE_PIXELS_KHR attribute on
+ eglLockSurfaceKHR as the means of configuring whether a locked
+ buffer contains pixel data from the color buffer, as in
+ EGL_KHR_lock_surface, but, for a lockable window surface,
+ make EGL_SWAP_BEHAVIOR=EGL_BUFFER_PRESERVED override the effect
+ of that attribute. Tidy wording so that behavior, and that the
+ default of EGL_SWAP_BEHAVIOR must be EGL_BUFFER_PRESERVED, only
+ applies to lockable window surfaces, not lockable pbuffer or
+ pixmap surfaces.
+ [Bug 5923] Issue 20: A config that is lockable and renderable by
+ an EGL client API is now allowed. Posting restrictions are relaxed
+ to allow posting for a lockable surface not bound to any client
+ API context.
+ [Bug 5143] Fixed typos EGL_SURFACE_TYPE_KHR. Added summary of
+ changes over EGL_KHR_lock_surface.
+ Version 1, 2010/01/19
+ [Bug 4410] Issue 17: Change to use EGL_SWAP_BEHAVIOR as the
+ primary means of determining whether the application wants pixels
+ preserved between lock/unlock cycles.
+ Allowed setting of EGL_SWAP_BEHAVIOR in
+ eglCreateWindowSurface for a lockable surface. Made the
+ default EGL_BUFFER_PRESERVED on a lockable surface to maintain
+ compatibility with the original lock surface extension.
+ [Bug 3192] Wording clarification to avoid accidentally suggesting
+ that almost all surface attributes are invariant.
+ [Bug 4518] Issue 14: Clarify the returned value when
+ EGL_MATCH_FORMAT_KHR is queried.
+ [Bug 4522] Issue 18: Clarify that a locked surface cannot change
+ size.
+ [Bug 4513] Issue 19: Added EGL_BITMAP_PIXEL_SIZE_KHR.
+ [Bug 5923] Issue 20: Must be no current context when posting
+ a lockable surface. In that case any eglSwapInterval setting
+ is ignored. Disallowed a config that is lockable and renderable
+ by an EGL client API.
+
+Revision History of original EGL_KHR_lock_surface extension
+
+ Version 18, 2010/03/23 - Added introductory remark referring to the
+ EGL_KHR_lock_surface2 extension.
+ Version 17, 2008/10/08 - Updated status (approved as part of
+ OpenKODE 1.0).
+ Version 16, 2008/01/24 - Add issue 16 noting that mapping can fail,
+ and a corresponding new error condition for eglQuerySurface.
+ Clean up the issues list.
+ Version 15, 2008/01/09 - Add issue 15 noting that supporting
+ mixed-mode rendering is not a goal or requirement of the
+ extension.
+ Version 14, 2007/11/07 - change ARGB_8888_EXACT back to
+ RGBA_8888_EXACT, since the offsets are now dependent on the
+ endianness of the CPU. Add issue 12 describing this, and clarify
+ that offsets are within a 16- or 32-bit integer depending on the
+ format. Added issue 13 clarifying that locked buffer contents
+ are not affected by eglSwapBuffers, because eglSwapBuffers
+ cannot be issued on a mapped surface. Allow querying
+ EGL_MATCH_FORMAT_KHR for a config, and added related issue 14.
+ Version 13, 2007/05/10 - change RGBA_8888_EXACT to ARGB_8888_EXACT
+ to match hardware layout.
+ Version 12, 2007/04/06 - clarify that when EGL_MATCH_FORMAT_KHR is
+ EGL_DONT_CARE, it does not affect component size of selected
+ configs.
+ Version 11, 2007/04/05 - add missing KHR suffix to some tokens.
+ Version 10, 2007/04/05 - assign enumerant values. Add OpenKODE 1.0
+ Provisional disclaimer.
+ Version 9, 2007/03/26 - add format tokens to "New Tokens"
+ section. Correct description of RGBA format tokens.
+ Version 8, 2007/03/26 - add issue 11 noting theoretical possibility
+ of EGL_BUFFER_SIZE not directly corresponding to the mapped
+ pixel size. Add EGL_MATCH_FORMAT_KHR attribute to
+ eglChooseConfig, and 565 / 8888 formats for it.
+ Version 7, 2007/03/25 - note in issue 5 that access to a mapped
+ buffer must continue to work even after a mode change. Add KHR
+ suffix to new functions and tokens. Remove BITMAP_PIXEL_<x>_BITS
+ and BITMAP_PIXEL_SIZE tokens, which duplicate information in the
+ EGLConfig. Add issue 10 asking whether bitmap pixel offset
+ attributes belong to the config, or to the surface.
+ Version 6, 2007/02/26 - allow EGL_CLIENT_APIS string to be empty in
+ implementations supporting only this extension.
+ Version 5, 2007/02/05 - update contributor list. Changed bit offset
+ queries to return LSB offset, rather than MSB offset.
+ Version 4, 2007/02/02 - correct extension name. Change
+ name of FAST_UNLOCK_BIT_KHR to OPTIMAL_FORMAT_BIT_KHR.
+ Replace buffer_mask parameter of eglLockSurfaceKHR with an
+ attribute list. Add the EGL_MAP_PRESERVE_PIXELS_KHR and
+ EGL_LOCK_USAGE_HINT_KHR attributes per request from Gary. Add issues
+ 7, 8, and 9 describing these attributes and how to support
+ locking subrects in a layered extension, by extending the
+ attribute list.
+ Version 3, 2007/02/01 - the implementation once again controls the
+ mapped buffer memory. There is no longer a separate bitmap
+ surface type; any type surface may potentially be mapped, using
+ lock/unlock semantics.
+ Version 2, 2006/12/22 - simplify by only supporting drawing from
+ client memory to EGL surface color buffers. Specify use of
+ OpenGL DrawPixels terminology. Change name of the extension to
+ EGL_KHR_draw_pixels, since there is no longer any "bitmap
+ surface" involved.
+ Version 1, 2006/12/14 - write up as formal spec language for
+ external review.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface3.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface3.txt
new file mode 100644
index 0000000..f85935c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_lock_surface3.txt
@@ -0,0 +1,679 @@
+Name
+
+ KHR_lock_surface3
+
+Name Strings
+
+ EGL_KHR_lock_surface3
+
+Contributors
+
+ Mark Callow
+ Gary King
+ Jon Leech
+ Marko Lukat
+ Alon Or-bach
+ Tim Renouf
+
+Contacts
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+
+Notice
+
+ Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the EGL Working Group on December 4, 2013.
+
+Version
+
+ Version 4, 2014/09/17
+
+Number
+
+ EGL Extension #64
+
+Dependencies
+
+ EGL 1.4 is required.
+
+ This extension is based on the EGL_KHR_lock_surface2 extension and
+ almost all language is copied from that extension. However, it is
+ standalone extension. The specification language has been re-based
+ against the EGL 1.4 Specification.
+
+ Khronos recommends obsoleting and replacing implementations of
+ EGL_KHR_lock_surface2 and EGL_KHR_lock_surface with this extension as
+ soon as possible.
+
+Overview
+
+ This extension allows mapping color buffers of EGL surfaces into the
+ client address space. This is useful primarily for software
+ rendering on low-end devices which do not support EGL client
+ rendering APIs, although it may be implemented efficiently on more
+ capable devices as well.
+
+ This extension is functionally identical to EGL_KHR_lock_surface2, but
+ is intended to replace that extension. It defines a new EGL type,
+ EGLAttribKHR, which is an integer type guaranteed to be large enough to
+ hold a pointer. A new surface query, eglQuerySurface64KHR, is defined to
+ query surface attributes which may not fit in than EGLint, such as a
+ mapped surface pointer.
+
+ The changes over EGL_KHR_lock_surface2 include:
+
+ * EGL_KHR_lock_surface3 defines the type EGLAttribKHR and the
+ command eglQuerySurface64KHR.
+ * eglQuerySurface64KHR must be used to query the
+ EGL_BITMAP_POINTER_KHR property of surfaces.
+
+New Types
+
+ /*
+ * EGLAttribKHR is a integer type used to pass arrays of attribute
+ * name/value pairs which may include pointer and handle attribute
+ * values.
+ */
+ #include <khrplatform.h>
+ typedef intptr_t EGLAttribKHR;
+
+New Procedures and Functions
+
+ EGLBoolean eglLockSurfaceKHR(EGLDisplay dpy, EGLSurface surface,
+ const EGLint *attrib_list);
+ EGLBoolean eglUnlockSurfaceKHR(EGLDisplay dpy,
+ EGLSurface surface);
+ EGLBoolean eglQuerySurface64KHR(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint attribute,
+ EGLAttribKHR *value);
+
+New Tokens
+
+ Returned in the EGL_SURFACE_TYPE bitmask attribute of EGLConfigs:
+
+ EGL_LOCK_SURFACE_BIT_KHR 0x0080
+ EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
+
+ Accepted as an attribute name in the <attrib_list> argument of
+ eglChooseConfig, and the <attribute> argument of eglGetConfigAttrib:
+
+ EGL_MATCH_FORMAT_KHR 0x3043
+
+ Accepted as attribute values for the EGL_MATCH_FORMAT_KHR attribute
+ of eglChooseConfig, and defined as possible values of that attribute
+ when querying it:
+
+ EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
+ EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
+
+ Accepted as attribute values for the EGL_MATCH_FORMAT_KHR attribute
+ of eglChooseConfig:
+
+ EGL_FORMAT_RGB_565_KHR 0x30C1
+ EGL_FORMAT_RGBA_8888_KHR 0x30C3
+
+ Accepted as attribute names in the <attrib_list> argument of
+ eglLockSurfaceKHR:
+
+ EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
+ EGL_LOCK_USAGE_HINT_KHR 0x30C5
+
+ Accepted as bit values in the EGL_LOCK_USAGE_HINT_KHR bitmask attribute
+ of eglLockSurfaceKHR:
+
+ EGL_READ_SURFACE_BIT_KHR 0x0001
+ EGL_WRITE_SURFACE_BIT_KHR 0x0002
+
+ Accepted by the <attribute> parameter of eglQuerySurface and
+ eglQuerySurface64KHR:
+
+ EGL_BITMAP_PITCH_KHR 0x30C7
+ EGL_BITMAP_ORIGIN_KHR 0x30C8
+ EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
+ EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
+ EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
+ EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
+ EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
+ EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
+
+ Accepted by the <attribute> parameter of eglQuerySurface64KHR:
+ EGL_BITMAP_POINTER_KHR 0x30C6
+
+ Returns in the *<value> parameter of eglQuerySurface when
+ <attribute> is EGL_BITMAP_ORIGIN_KHR:
+
+ EGL_LOWER_LEFT_KHR 0x30CE
+ EGL_UPPER_LEFT_KHR 0x30CF
+
+Additions to Chapter 2 of the EGL 1.4 Specification (EGL Operation)
+
+ Add to the end of section 2.2.2:
+
+ Finally, some surfaces may be <locked>, which allows the
+ implementation to map buffers of that surface into client memory
+ for use by software renderers(fn). Locked surfaces cannot be
+ used for any other purpose. When a locked surface is <unlocked>,
+ any changes to the mapped buffer(s) are reflected in the actual
+ graphics or system memory containing the surface.
+
+ [fn: on implementations not supporting mapping graphics
+ memory, or which do not wish to take the stability and
+ security risks that entail, mapping may be done using
+ copy-out and copy-in behavior.]
+
+Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Add to the description of the EGL_BAD_ACCESS error in section 3.1:
+
+ "... (for example, a context is bound in another thread, or a
+ surface is locked). Any command accessing ..."
+
+ Add to table 3.2 ("Types of surfaces supported by an EGLConfig")
+
+ EGL Token Name Description
+ -------------------- ------------------------------------
+ EGL_LOCK_SURFACE_BIT_KHR EGLConfig allows locking surfaces
+ EGL_OPTIMAL_FORMAT_BIT_KHR This format is considered optimal
+ (preferred) when locking / mapping /
+ unlocking is being done.
+
+ Change the first paragraph under "Other EGLConfig Attribute
+ Descriptions" on p. 16:
+
+ "EGL_SURFACE_TYPE is a mask indicating both the surface types
+ that can be created by the corresponding EGLConfig (the config
+ is said to <support> those surface types), and the optional
+ behaviors such surfaces may allow. The valid bit settings are
+ shown in Table 3.2."
+
+ Add a new paragraph following the second paragraph of the same
+ section:
+
+ "If EGL_LOCK_SURFACE_BIT_KHR is set in EGL_SURFACE_TYPE, then
+ a surface created from the EGLConfig may be locked, mapped into
+ client memory, and unlocked. Locking is described in section
+ 3.5.5ls. If EGL_OPTIMAL_FORMAT_BIT_KHR is set in
+ EGL_SURFACE_TYPE, then the surface is considered optimal (by
+ the implementation) from a performance standpoint when buffer
+ mapping is being done."
+
+ Replace the second paragraph of section 3.3 "EGL Versioning":
+
+ "The EGL_CLIENT_APIS string describes which client rendering APIs are
+ supported. It is zero-terminated and contains a space-separated list
+ of API names, which must include at least one of ``OpenGL'',
+ ``OpenGL_ES'', or OpenGL ES. If no client APIs are supported, then
+ the empty string is returned."
+
+ Insert a new paragraph and table in section 3.4.1.1 "Querying
+ Configurations", following the description of
+ EGL_MATCH_NATIVE_PIXMAP on page 24:
+
+ "If EGL_MATCH_FORMAT_KHR is specified in <attrib_list>, it must
+ be followed by one of the attribute values EGL_DONT_CARE,
+ EGL_NONE, or one of the format tokens in table
+ [locksurf.format].
+
+ When EGL_MATCH_FORMAT_KHR has the value EGL_NONE, only configs
+ which cannot be locked or mapped will match. Such configs must
+ not have the EGL_LOCK_SURFACE_BIT_KHR set in EGL_SURFACE_TYPE.
+
+ When EGL_MATCH_FORMAT_KHR has the value EGL_DONT_CARE, it is
+ ignored.
+
+ When EGL_MATCH_FORMAT_KHR has one of the values in table
+ [locksurf.format], only EGLConfigs describing surfaces whose
+ color buffers have the specified format, when mapped with
+ eglLockSurface, will match this attribute. In this case, the
+ EGL_<component>_SIZE attributes of resulting configs must agree
+ with the specific component sizes specified by the format."
+
+ Specific Format Name Description
+ -------------------- -----------
+ EGL_FORMAT_RGB_565_EXACT_KHR RGB565 fields in order from MSB to LSB within a 16-bit integer
+ EGL_FORMAT_RGB_565_KHR RGB565 fields in implementation-chosen order within a 16-bit integer
+ EGL_FORMAT_RGBA_8888_EXACT_KHR RGBA8888 fields in B, G, R, A byte order in memory
+ EGL_FORMAT_RGBA_8888_KHR RGBA8888 fields in implementation-chosen order within a 32-bit integer
+ ------------------------------------------------------------------------------------------------------
+ Table [locksurf.format]: Specific formats for mapped pixels.
+
+ Add to table 3.4 ("Default values and match critera for EGLConfig
+ attributes") on page 25:
+
+ Attribute Default Selection Sort Sort
+ Criteria Order Priority
+ -------------------- ------------- --------- ----- --------
+ EGL_MATCH_FORMAT_KHR EGL_DONT_CARE Exact None -
+
+ Add EGL_MATCH_FORMAT_KHR to the last paragraph in section 3.4.1 on
+ p. 26, describing attributes not used for sorting EGLConfigs.
+
+ Add a new paragraph to the end of section 3.4.3 "Querying Configuration
+ Attributes":
+
+ "Querying the EGL_MATCH_FORMAT_KHR attribute results in EGL_NONE
+ for an EGLConfig that is not lockable, one of the "exact" formats
+ (EGL_FORMAT_RGB_565_EXACT_KHR, EGL_FORMAT_RGBA_8888_EXACT_KHR)
+ if the color buffer matches that format when mapped with
+ eglLockSurface, or for any other format a value that is not
+ EGL_NONE or EGL_DONT_CARE but is otherwise undefined. In particular,
+ the color buffer format matching one of the "inexact" formats
+ does not guarantee that that EGL_FORMAT_* value is returned."
+
+ In section 3.5.1 "Creating On-Screen Rendering Surfaces", add to the
+ second paragraph on p. 28 listing attributes that can be set in
+ attrib_list:
+
+ "<attrib_list> specifies a list of attributes ... and
+ EGL_SWAP_BEHAVIOR."
+
+ and add preceding the paragraph starting "EGL_VG_COLORSPACE specifies
+ ..." on p. 28:
+
+ "EGL_SWAP_BEHAVIOR specifies the initial value of the
+ EGL_SWAP_BEHAVIOR surface attribute (section 3.5.6), and is thus
+ either EGL_BUFFER_PRESERVED or EGL_BUFFER_DESTROYED. This setting
+ of EGL_SWAP_BEHAVIOR at surface creation time is supported only
+ for a lockable surface, i.e. where the EGLConfig has
+ EGL_LOCK_SURFACE_BIT_KHR set in EGL_SURFACE_TYPE.
+
+ "For such a lockable surface, whether it is possible to change
+ the EGL_SWAP_BEHAVIOR attribute after surface creation is
+ determined by EGL_SWAP_BEHAVIOR_PRESERVED_BIT in the
+ EGL_SURFACE_TYPE EGLConfig attribute."
+
+ Add a new section following the current section 3.5.5:
+
+ "3.5.5ls Locking and Mapping Rendering Surfaces
+
+ A rendering surface may be <locked> by calling
+
+ EGLBoolean eglLockSurfaceKHR(EGLDisplay dpy,
+ EGLSurface surface,
+ const EGLint *attrib_list);
+
+ While a surface is locked, only two operations can be performed
+ on it. First, a surface attribute may be queried using
+ the query commands in section 3.5.6. This includes the case of
+ querying EGL_BITMAP_POINTER_KHR, which causes the surface to be
+ <mapped> (if not already mapped) and gives a pointer into client
+ memory corresponding to the memory of the mapped buffer. Second,
+ the surface may be unlocked. Any attempts to use a locked surface
+ in other EGL APIs will fail and generate an EGL_BAD_ACCESS error.
+
+ While a surface is locked, its dimensions (the values of the EGL_WIDTH
+ and EGL_HEIGHT surface attributes) do not change. They may change
+ at any other time, therefore an application must query these
+ attributes <after> the call to eglLockSurfaceKHR to ensure that it has
+ the correct size of the mapped buffer.
+
+ <attrib_list> specifies additional parameters affecting the locking
+ operation. The list has the same structure as described for
+ eglChooseConfig. Attributes that may be defined are shown in table
+ [locksurf.attr], together with their default values if not specified
+ in <attrib_list>, and possible values which may be specified for
+ them in <attrib_list>.
+
+ Attribute Name Type Default Value Possible Values
+ ----------------------- ------- ------------- -------------------------
+ EGL_MAP_PRESERVE_PIXELS_KHR boolean EGL_FALSE EGL_TRUE / EGL_FALSE
+ EGL_LOCK_USAGE_HINT_KHR bitmask EGL_READ_SURFACE_BIT_KHR | Any combination of
+ EGL_WRITE_SURFACE_BIT_KHR EGL_READ_SURFACE_BIT_KHR
+ and EGL_WRITE_SURFACE_BIT_KHR
+ --------------------------------------------------------------
+ Table [locksurf.attr]: eglLockSurfaceKHR attribute names,
+ default values, and possible values.
+
+ On failure, the surface is unaffected and eglLockSurfaceKHR
+ returns EGL_FALSE. An EGL_BAD_ACCESS error is generated if any
+ of these condition, are true:
+
+ * <surface> was created with an EGLConfig whose
+ EGL_SURFACE_TYPE attribute does not contain
+ EGL_LOCK_SURFACE_BIT_KHR.
+ * <surface> is already locked.
+ * Any client API is current to <surface>.
+
+ An EGL_BAD_ATTRIBUTE error is generated if an attribute or
+ attribute value not described in table [locksurf.attr] is
+ specified.
+
+ Mapping Buffers of a Locked Surface
+ -----------------------------------
+
+ The color buffer of a locked surface can be <mapped> by calling
+ eglQuerySurface64KHR (see section 3.5.6) with <attribute>
+ EGL_BITMAP_POINTER_KHR(fn). The query returns a pointer to a
+ buffer in client memory corresponding to the color buffer of
+ <surface>. In the case of a back-buffered surface, color buffer
+ refers to the back buffer.
+
+ [fn: "mapped" only means that the pointer returned is
+ intended to *correspond* to graphics memory. Implementation
+ are not required to return an actual pointer into graphics
+ memory, and often will not.]
+
+
+ The contents of the mapped buffer are initially undefined(fn)
+ unless either the EGL_MAP_PRESERVE_PIXELS_KHR attribute of
+ eglLockSurfaceKHR is set to EGL_TRUE, or (for a window surface)
+ the EGL_SWAP_BEHAVIOR surface attribute is set to
+ EGL_BUFFER_PRESERVE, in which case the contents
+ of the buffer are taken from the contents of <surface>'s color
+ buffer. The default value of EGL_MAP_PRESERVE_PIXELS_KHR is
+ EGL_FALSE.
+
+ [fn: In order to avoid pipeline stalls and readback delays on
+ accelerated implementations, we do not mandate that the
+ current contents of a color buffer appear when it's mapped
+ to client memory, unless the EGL_MAP_PRESERVE_PIXELS_KHR
+ flag is set or (for a window surface) EGL_SWAP_BEHAVIOR is
+ set to EGL_BUFFER_PRESERVE. Applications using mapped
+ buffers which are not
+ preserved must write to every pixel of the buffer before
+ unlocking the surface. This constraint is considered
+ acceptable for the intended usage scenario (full-frame
+ software renderers). Such an application may lock-render-unlock
+ multiple times per frame (i.e. per eglSwapBuffers) by setting
+ EGL_MAP_PRESERVE_PIXELS_KHR to EGL_TRUE for the second and
+ subsequent locks.
+
+ Note that EGL_SWAP_BEHAVIOR also controls whether the color
+ buffer contents are preserved over a call to eglSwapBuffers.]
+
+ The EGL_LOCK_USAGE_HINT_KHR attribute of eglLockSurfaceKHR is a
+ bitmask describing the intended use of the mapped buffer. If the
+ mask contains EGL_READ_SURFACE_BIT_KHR, data will be read from
+ the mapped buffer. If the mask contains
+ EGL_WRITE_SURFACE_BIT_KHR, data will be written to the mapped
+ buffer. Implementations must support both reading and writing to
+ a mapped buffer regardless of the value of
+ EGL_LOCK_USAGE_HINT_KHR, but performance may be better if the
+ hint is consistent with the actual usage of the buffer. The
+ default value of EGL_LOCK_USAGE_HINT_KHR hints that both reads
+ and writes to the mapped buffer will be done.
+
+ Other attributes of the mapped buffer describe the format of
+ pixels it contains, including its pitch (EGL_BITMAP_PITCH_KHR),
+ origin (EGL_BITMAP_ORIGIN_KHR), and the bit location of each color
+ component within a pixel (EGL_BITMAP_PIXEL_x_OFFSET_KHR). These
+ attributes may be queried using eglQuerySurface, and are described
+ in more detail in section 3.5.6.
+
+ The EGL_BITMAP_POINTER_KHR and EGL_BITMAP_PITCH_KHR attributes
+ of a locked surface may change following successive calls to
+ eglLockSurfaceKHR(fn), so they must be queried each time a
+ buffer is mapped. Other attributes of a mapped buffer (listed in
+ the paragraph above) are invariant and need be queried only once
+ following surface creation.
+
+ [fn: The pointer and pitch of a mapped buffer may change due
+ to display mode changes, for example.]
+
+ Mapping will not suceed if client memory to map the surface into
+ cannot be allocated. In this case, calling eglQuerySurface64KHR
+ with <attribute> EGL_BITMAP_POINTER_KHR will fail and generate an
+ EGL error.
+
+ Unlocking Surfaces
+ ------------------
+
+ A rendering surface may be <unlocked> by calling
+
+ EGLBoolean eglUnlockSurfaceKHR(EGLDisplay dpy,
+ EGLSurface surface);
+
+ Any mapped buffers of <surface> become unmapped following
+ eglUnlockSurfaceKHR. Any changes made to mapped buffers of
+ <surface> which it was locked are reflected in the surface after
+ unlocking(fn).
+
+ [fn: This language enables implementations to either map
+ video memory, or copy from a separate buffer in client
+ memory.]
+
+ If <surface> was created with an EGLConfig whose
+ EGL_SURFACE_TYPE attribute contains EGL_OPTIMAL_FORMAT_BIT_KHR,
+ then the surface is considered optimal (by the implementation)
+ from a performance standpoint when buffer mapping is being
+ done(fn).
+
+ [fn: This often means that the format of all mapped buffers
+ corresponds directly to the format of those buffers in
+ <surface>, so no format conversions are required during
+ unmapping. This results in a high-performance software
+ rendering path. But "optimal format" is really just a hint
+ from EGL that this config is preferred, whatever the actual
+ reason.]
+
+ On failure, eglUnlockSurfaceKHR returns EGL_FALSE. An
+ EGL_BAD_ACCESS error is generated if any of these conditions are
+ true:
+
+ * <surface> is already unlocked.
+ * A display mode change occurred while the surface was locked,
+ and the implementation was unable to reflect mapped buffer
+ state(fn). In this case, <surface> will still be unlocked.
+ However, the contents of the previously mapped buffers of
+ <surface> become undefined, rather than reflecting changes
+ made in the mapped buffers in client memory.
+
+ [fn: Usually this may only occur with window surfaces which
+ have been mapped. EGL does not have an event mechanism to
+ indicate display mode changes. If such a mechanism exists
+ (using native platform events or the OpenKODE event system),
+ applications should respond to mode changes by regenerating
+ all visible window content, including re-doing any software
+ rendering overlapping the mode change.]"
+
+ Modify table 3.5 ("Queryable surface attributes and types")
+ to add a new column "64-bit". Add new entries to table 3.5:
+
+ Attribute Type Description 64-bit
+ --------- ------- -------------------------- ---------
+ EGL_BITMAP_POINTER_KHR pointer Address of a mapped color [checked]
+ buffer (MCB).
+ EGL_BITMAP_PITCH_KHR integer Number of bytes between -
+ the start of adjacent rows
+ in an MCB.
+ EGL_BITMAP_ORIGIN_KHR enum Bitmap origin & direction -
+ EGL_BITMAP_PIXEL_x_- integer Bit location of each color -
+ OFFSET_KHR buffer component within a
+ pixel in an MCB.
+ EGL_BITMAP_PIXEL_- integer Bits per pixel -
+ SIZE_KHR
+
+ All previously existing entries in table 3.5 are given a "-" entry in
+ the new "64-bit" column.
+
+ In the description of eglSurfaceAttrib properties that can be set in
+ section 3.5.6, add to the description of EGL_SWAP_BEHAVIOR:
+
+ "It <attribute> is EGL_SWAP_BEHAVIOR ... The value of
+ EGL_SWAP_BEHAVIOR also affects the semantics of eglLockSurfaceKHR
+ for a lockable window surface. See section 3.5.6."
+
+ And modify the paragraph descirbing the initial value of
+ EGL_SWAP_BEHAVIOR:
+
+ "The initial value of EGL_SWAP_BEHAVIOR is chosen by the
+ implementation, except for a lockable window surface (i.e. where the
+ EGLConfig has both EGL_LOCK_SURFACE_BIT_KHR and EGL_WINDOW_BIT set in
+ EGL_SURFACE_TYPE). For a lockable window surface the default is
+ EGL_BUFFER_PRESERVED, but it may be overridden by specifying
+ EGL_SWAP_BEHAVIOR to eglCreateWindowSurface."
+
+ Add the prototype of the new surface query function immediately
+ following the prototype for eglQuerySurface on p. 37:
+
+ EGLBoolean eglQuerySurface64KHR(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint attribute,
+ EGLAttribKHR *value)
+
+ Modify the following paragraph:
+
+ "eglQuerySurface and eglQuerySurface64KHR return in <value> the
+ value of <attribute> for <surface>. <attribute> must be set to one
+ of the attributes in table 3.5. Attributes whose ``64-bit'' entry
+ is checked in table 3.5 may only be queried with
+ eglQuerySurface64KHR."
+
+ Add to the description of eglQuerySurface properties on p. 38:
+
+ "Properties of a bitmap surface which may be queried include:
+ * EGL_BITMAP_POINTER_KHR, which maps the color buffer of a
+ locked surface and returns the address in client memory of
+ the mapped buffer.
+ * EGL_BITMAP_PITCH_KHR, which returns the number of bytes
+ between successive rows of a mapped buffer.
+ * EGL_BITMAP_ORIGIN_KHR, which describes the way in which a
+ mapped color buffer is displayed on the screen. Possible
+ values are either EGL_LOWER_LEFT_KHR or EGL_UPPER_LEFT_KHR,
+ indicating that the first pixel of the mapped buffer
+ corresponds to the lower left or upper left of a visible
+ window, respectively.
+ * EGL_BITMAP_PIXEL_<x>_OFFSET_KHR, which describes the bit
+ location of the least significant bit of each color
+ component of a pixel within a mapped buffer. <x> is one of
+ RED, GREEN, BLUE, ALPHA, or LUMINANCE.
+
+ The offset for a color component should be treated as the
+ number of bits to left shift the component value to place it
+ within a n-bit
+ integer containing the pixel, where n is the number of bits
+ per pixel. If a color
+ component does not exist in the mapped buffer, then the bit
+ offset of that component is zero. If a color component
+ does exist but not in a single contiguous range of bits,
+ then the value of the attribute is EGL_UNKNOWN.
+
+ * EGL_BITMAP_PIXEL_SIZE_KHR, which returns the number of bits
+ per pixel, assumed to be least significant leftmost if there
+ are multiple pixels per byte. The attribute takes the value
+ EGL_UNKNOWN if this assumption is not true, or if pixels are not
+ laid out left to right in memory (for example pairs of 16-bit
+ pixels are swapped in memory).
+
+ In addition to these attributes, the number of bits for each
+ color component of a pixel within a mapped buffer is obtained by
+ querying the EGL_<x>_SIZE attribute of the EGLConfig used to
+ create the surface, where <x> is <x> is one of RED, GREEN, BLUE,
+ ALPHA, or LUMINANCE.
+
+ Querying EGL_BITMAP_POINTER_KHR and EGL_BITMAP_PITCH_KHR is only
+ allowed when <surface> is mapped (see section 3.5.5ls). Querying
+ either of these attributes for the first time after calling
+ eglLockSurfaceKHR causes the color buffer of the locked surface
+ to be mapped. Querying them again before unlocking the surface
+ will return the same values as the first time. However, after
+ calling eglUnlockSurfaceKHR, these properties become undefined.
+ After a second call to eglLockSurfaceKHR, these properties may
+ again be queried, but their values may have changed.
+
+ Other properties of the mapped color buffer of a surface
+ (in the list above) are
+ invariant, and need be queried only once following surface
+ creation. If <surface> was created with an EGLConfig whose
+ EGL_SURFACE_TYPE attribute does not contain
+ EGL_LOCK_SURFACE_BIT_KHR, queries of EGL_BITMAP_ORIGIN_KHR,
+ EGL_BITMAP_PIXEL_<x>_OFFSET_KHR and EGL_BITMAP_PIXEL_SIZE_KHR
+ return undefined values."
+
+ Add to the description of eglQuerySurface errors in the last
+ paragraph of section 3.5.6:
+
+ "eglQuerySurface and eglQuerySurface64KHR return EGL_FALSE on
+ failure ... If <attribute> is one of the attributes whose
+ ``64-bit'' entry is checked in table 3.5, then an
+ EGL_BAD_ATTRIBUTE error is generated if eglQuerySurface is called;
+ only eglQuerySurface64KHR is allowed for such attributes. If
+ <attribute> is either EGL_BITMAP_POINTER_KHR or
+ EGL_BITMAP_PITCH_KHR, and either <surface> is not locked using
+ eglLockSurfaceKHR, or <surface> is locked but mapping fails, then
+ an EGL_BAD_ACCESS error is generated. "
+
+ In section 3.9.3 Posting Semantics on page 53, append to the first
+ paragraph:
+
+ "<surface> must be bound to the calling thread's current context
+ ... This restriction does not apply to lockable surfaces; for such
+ a surface, eglSwapBuffers and eglCopyBuffers may be called for a
+ surface not bound to any client API context(fn).
+
+ [fn: Normally this would only be done when using methods other
+ than client API rendering to specify the color buffer contents,
+ such as software rendering to a locked surface.]"
+
+ Replace the second paragraph ("If <dpy> and <surface> ... not be
+ executed until posting is completed.") with:
+
+ "If <surface> is bound to a current client API context for the calling
+ thread, eglSwapBuffers and eglCopyBuffers perform an implicit flush
+ operation on the context (glFlush for an OpenGL or OpenGL ES context,
+ vgFlush for an OpenVG context). Subsequent client API commands can be
+ issued immediately, but will not be executed until posting is
+ completed.
+
+ If <surface> is current to a client API context in any thread other
+ than the calling thread, eglSwapBuffers and eglCopyBuffers will fail.
+
+ Append following the prototype for eglSwapInterval:
+
+ "specifies the minimum number of video frame periods ... The swap
+ interval has no effect on eglSwapBuffers for a surface not bound
+ to a current client API context."
+
+ In 3.9.4 Posting Errors, change the first paragraph:
+
+ "eglSwapBuffers and eglCopyBuffers return EGL_FALSE on failure. If
+ <surface> is not a valid EGL surface, an EGL_BAD_SURFACE error is
+ generated. If <surface> is bound to a current context in a thread
+ other than the calling thread, an EGL_BAD_SURFACE error is
+ generated." If <target> is not a valid native pixmap handle ..."
+
+Sample Code
+
+ None
+
+Conformance Tests
+
+ None yet
+
+Issues
+
+ The issues lists of EGL_KHR_lock_surface and EGL_KHR_lock_surface2 also
+ apply to this extension. In addition, issues related only to the reason
+ for defining the EGLAttribKHR and interfaces using that type may be
+ found in issues 1-3 of the EGL_KHR_cl_event2 extension specification.
+
+ 1) Is this extension backwards-compatible with EGL_KHR_lock_surface2?
+
+ RESOLVED: No. Querying the bitmap pointer must be done with the new
+ command eglQuerySurface64KHR when using this extension, to guide
+ developers down the right path even when writing 32-bit code.
+
+ However, if both lock_surface2 and this extension are supported, it is
+ possible to query the bitmap pointer using older calls, with the risk
+ that executing such code on a 64-bit platform will probably fail.
+
+Revision History
+
+ Version 4, 2014/09/17 (Jon Leech) - Fix bogus return type for
+ eglQuerySurface64KHR in New Functions section.
+
+ Version 3, 20130/12/04 (Jon Leech) - Minor cleanup for public release.
+ Change formal parameter names from 'display' to 'dpy' to match other EGL
+ APIs.
+
+ Version 2, 20130/10/16 (Jon Leech) - add Dependencies and Overview text
+ noting that this extension obsoletes and should replace
+ EGL_KHR_lock_surface2 and EGL_KHR_lock_surface.
+
+ Version 1, 2013/10/15 - Branched from approved EGL_KHR_lock_surface2.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_mutable_render_buffer.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_mutable_render_buffer.txt
new file mode 100644
index 0000000..9b72af4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_mutable_render_buffer.txt
@@ -0,0 +1,325 @@
+Name
+
+ KHR_mutable_render_buffer
+
+Name Strings
+
+ EGL_KHR_mutable_render_buffer
+
+Contributors
+
+ Alon Or-bach
+ John Carmack
+ Cass Everitt
+ Michael Gold
+ James Jones
+ Jesse Hall
+ Ray Smith
+
+Contact
+
+ Alon Or-bach, Samsung Electronics (alon.orbach 'at' samsung.com)
+
+IP Status
+
+ No known claims.
+
+Notice
+
+ Copyright (c) 2016 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Approved by the EGL Working Group on January 28, 2016
+ Ratified by the Khronos Board of Promoters on March 11, 2016
+
+Version
+
+ Version 12, January 29, 2016
+
+Number
+
+ EGL Extension #96
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ EGL 1.2 or later is required.
+
+ Written based on the EGL 1.5 specification (August 27, 2014).
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as a new value for the EGL_SURFACE_TYPE EGLConfig attribute:
+
+ EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x00001000
+
+Overview
+
+ The aim of this extension is to allow toggling of front-buffer rendering
+ for window surfaces after their initial creation.
+
+ This allows for implementations to switch between back-buffered and single-
+ buffered rendering without requiring re-creation of the surface. It is not
+ expected for toggling to be a frequent event.
+
+ This extension does not guarantee when rendering results appear on-screen.
+ To avoid incorrect results, applications will need to use mechanisms not
+ included in this extension to synchronize rendering with the display. This
+ functionality is not covered by this extension, and vendors are encouraged
+ to provide guidelines on how this is achieved on their implementation.
+
+Add to the list of supported tokens for EGL_SURFACE_TYPE in section 3.4
+"Configuration Management", page 23:
+
+ If EGL_MUTABLE_RENDER_BUFFER_BIT_KHR is set in EGL_SURFACE_TYPE, then the
+ EGL_RENDER_BUFFER attribute of a surface can be toggled between front
+ buffer and back buffer rendering using eglSurfaceAttrib (see section
+ 3.5.6).
+
+Add to the list of supported tokens for eglSurfaceAttrib in section 3.5.6
+"Surface Attributes", page 43:
+
+ If attribute is EGL_RENDER_BUFFER, then value specifies whether to render
+ to a back buffer by specifying EGL_BACK_BUFFER, or directly to the front
+ buffer by specifying EGL_SINGLE_BUFFER. The change to which buffer is
+ rendered to takes effect at the subsequent eglSwapBuffers call, as
+ described in section 3.10.1.2, and changes are considered pending up until
+ that point.
+
+ If attribute is EGL_RENDER_BUFFER, and the EGL_SURFACE_TYPE attribute of
+ the EGLConfig used to create surface does not contain
+ EGL_MUTABLE_RENDER_BUFFER_BIT_KHR, or the windowing system is unable to
+ support the requested rendering mode, an EGL_BAD_MATCH error is generated
+ and the EGL_RENDER_BUFFER state is left unchanged.
+
+Modify the following sentence in section 3.5.6 "Surface Attributes", page 45:
+
+ Querying EGL_RENDER_BUFFER returns the buffer which client API rendering
+ is requested to use. For a window surface, this is the attribute value
+ specified when the surface was created or last set via eglSurfaceAttrib.
+
+Modify the third bullet describing eglQueryContext in section 3.7.4, page 63:
+
+ If the context is bound to a window surface, then either EGL_BACK_BUFFER
+ or EGL_SINGLE_BUFFER may be returned. The value returned depends on
+ both the buffer requested by the setting of the EGL_RENDER_BUFFER property
+ of the surface (which may be queried by calling eglQuerySurface - see
+ section 3.5.6), and on the client API (not all client APIs support
+ single-buffer rendering to window surfaces). Some client APIs allow control
+ of whether rendering goes to the front or back buffer for back buffered
+ surfaces. This client API-specific choice is not reflected in the returned
+ value, which only describes the buffer that will be rendered to by default
+ if not overridden by the client API. If the EGL_RENDER_BUFFER attribute of
+ a surface is changed by calling eglSurfaceAttrib, the value returned by
+ eglQueryContext will change once eglSwapBuffers is called, as described in
+ section 3.10.1.2.
+
+Modify the following sentence in section 3.10.1 "Posting to a Window", page 79:
+
+ If surface is a single-buffered window, pixmap, or pbuffer surface for which
+ there is a pending change to the EGL_RENDER_BUFFER attribute, eglSwapBuffers
+ performs an implicit flush operation on the context and effects the
+ attribute change. If surface is a single-buffered window, pixmap, or pbuffer
+ surface for which there is no pending change to the EGL_RENDER_BUFFER
+ attribute, eglSwapBuffers has no effect.
+
+Add a new section 3.10.1.2 "Handling of render buffer attribute changes"
+
+ If there is a pending change to the EGL_RENDER_BUFFER attribute of a
+ surface, as described in section 3.5.6, the change to which buffer is
+ rendered to takes effect at the subsequent eglSwapBuffers call.
+
+ When switching to single-buffered from back-buffered rendering and the
+ surface's EGL_SWAP_BEHAVIOR attribute is set to EGL_BUFFER_DESTROYED, the
+ back buffers are considered to be undefined after calling eglSurfaceAttrib.
+ Only draw calls after this eglSurfaceAttrib call are guaranteed to affect
+ the back buffer content. If it is set to EGL_BUFFER_PRESERVED, the back
+ buffer contents are unaffected. At the next eglSwapBuffers call, the back
+ buffer is posted as the front buffer. After this, any draw calls take
+ effect on the front buffer.
+
+ When switching to back-buffered from single-buffered rendering, any draw
+ calls up until the next eglSwapBuffers call continues to affect the front
+ buffer, and this initial eglSwapBuffers call does not affect the window
+ content. The back buffer is considered to be undefined at this point, no
+ matter what the EGL_SWAP_BEHAVIOR attribute of the surface is set to. Once
+ the pending change has taken place during this initial eglSwapBuffers call,
+ further rendering affects the back buffer.
+
+ If the EGL_RENDER_BUFFER attribute is changed twice or more in succession
+ without new content rendered to the surface as described above, undefined
+ content may appear on-screen.
+
+
+Issues
+
+ 1) When should the switch between rendering modes occur?
+
+ RESOLVED: The switch should take effect after the subsequent eglSwapBuffers
+ call. The operation of the subsequent eglSwapBuffers call is according to
+ the current state (i.e the state before the eglSurfaceAttrib call), not the
+ pending state.
+
+ When switching to EGL_SINGLE_BUFFER, the current state is EGL_BACK_BUFFER
+ and therefore eglSwapBuffers posts the current back buffer. After this any
+ rendering takes effect on the front buffer.
+
+ When switching to EGL_BACK_BUFFER, the current state is EGL_SINGLE_BUFFER
+ and therefore eglSwapBuffers only flushes the current context. After this
+ any rendering takes effect on the back buffer.
+
+ 2) If this extension is advertised, should all surface configurations with
+ EGL_WINDOW_BIT in EGL_SURFACE_TYPE be required to support it?
+
+ RESOLVED: No. Add a config bit to indicate support for EGL_RENDER_BUFFER
+ toggling. If toggle performed when not supported, EGL_BAD_MATCH error is
+ generated.
+
+ 3) How often do we expect the switch between single and back buffering to
+ occur?
+
+ RESOLVED: It is not expected for the toggle to be a frequent call. For
+ example, we expect it to be called once when enabling a VR accessory and
+ once when disabling it.
+
+ 4) Do we need to reword section 3.7.4 (page 63)?
+
+ RESOLVED: Yes. Modified to explain how some client APIs can still override
+ the behavior and what value eglQueryContext is expected to return for
+ EGL_RENDER_BUFFER.
+
+ 5) Why not enable this via the client API, like OpenGL does via glDrawBuffer?
+
+ RESOLVED: This would not be possible on some platforms, where the swap chain
+ is controlled via EGL.
+
+ 6) Is this extension a client or display extension?
+
+ RESOLVED: This is a display extension.
+
+ 7) What state are back buffers after switching between single and back buffered
+ rendering?
+
+ RESOLVED: This is as set out in section 3.10.1.2.
+
+ 8) What guarantees of an onscreen update does this extension make?
+
+ RESOLVED: This extension does not make any additional guarantees to the
+ equivalent behavior of a window surface with EGL_RENDER_BUFFER set to the
+ same value at creation of the surface. When a surface is single-buffered,
+ any API call which is specified to explicitly or implicitly flush is
+ expected to affect the on-screen content in finite time, but no timing
+ guarantees are provided.
+
+ It is recommended that if ancillary buffers are not required, they are
+ invalidated before flushing to reduce unnecessary memory transfers on some
+ implementations (e.g. by calling glInvalidateFramebuffer for OpenGL ES).
+
+ 9) Should an implicit flush occur when eglSwapBuffers is called on a
+ single-buffered surface?
+
+ RESOLVED: Only when there is a pending EGL_RENDER_BUFFER change which will
+ be affected by this eglSwapBuffers call. Contexts must be flushed when
+ changing render targets.
+
+ 10) How does toggling EGL_RENDER_BUFFER affect client APIs?
+
+ RESOLVED: Changing the value of EGL_RENDER_BUFFER should result in the same
+ behavior in client APIs as binding a window surface with that mode to the
+ current context. For example, in OpenGL, it is akin to switching from a
+ drawable with a back buffer and front buffer to a drawable with only a
+ front buffer, or vice versa.
+
+ Note the effect of such an operation on the draw buffer and framebuffer
+ completeness, if applicable, is client API specific. OpenGL ES applications
+ will see no change and will be able to continue rendering without updating
+ the draw buffer, as OpenGL ES exposes only one renderable surface,
+ regardless of single or back-buffered drawables. OpenGL applications should
+ update the current draw buffer using glDrawBuffers() or similar commands to
+ ensure rendering targets the correct buffer after toggling
+ EGL_RENDER_BUFFER.
+
+ 11) How should interaction between multiple window surfaces be handled?
+
+ RESOLVED: This is left to platform vendors to define. Implementations may
+ choose to restrict use of front buffer rendering to forbid interaction
+ between multiple windows, or provide a buffer that is read by the display
+ or compositing hardware but not the final composited results to prevent
+ security concerns or undefined content.
+
+ 12) How should the name of the extension be?
+
+ RESOLVED: EGL_KHR_mutable_render_buffer
+
+
+Revision History
+
+#12 (Jon Leech, January 29, 2016)
+ - Assign enumerant value
+ - Update Status block
+
+#11 (Alon Or-bach, January 28, 2016)
+ - Updated issue 1 to be consistent with new resolution to issue 9
+ - Marked issues 7, 8 and 10 as resolved
+
+#10 (Alon Or-bach, January 28, 2016)
+ - Renamed extension to EGL_KHR_mutable_render_buffer, resolving issue 12
+ - Updates issue 7 resolution to just refer to spec
+ - Cleaned up section 3.10.1.2 wording
+ - Added wording to overview on lack of guarantee of rendering results
+
+#9 (Alon Or-bach, January 22, 2016)
+ - Marked issues 1, 9 and 11 as resolved
+ - Updated issue 4 to reflect previously agreed wording for section 3.7.4
+ - Updated issue 8 to indicate no new flush guarantees made by this extension
+ - New proposed resolution to issue 7 and modified section 3.10.1.2 to vary
+ whether back buffer content are undefined based on swap behavior
+ - Updated issue 10 with wording to explain differing client API behaviors
+ - Added error condition for windowing systems unable to support a requested
+ rendering mode in section 3.5.6
+ - New proposed resolution to issue 12 for extension naming
+ - Minor updates to wording (attribute instead of mode, overview phrasing)
+
+#8 (Ray Smith, January 5, 2016)
+ - Revert issue 1 resolution to that in revision 6, adding wording to section
+ 3.10.1 to make eglSwapBuffers effect pending state changes even for single
+ buffered surfaces.
+
+#7 (Alon Or-bach, December 17, 2015)
+ - New proposed resolution to issue 1 (explicit flush as update boundary),
+ updating the wording of 3.5.6, 3.7.4 3.10.1.2 to reflect this
+ - Added new issue 11 to reflect concerns about interactions between multiple
+ windows
+ - Added new issue 12 to determine extension name
+
+#6 (Alon Or-bach, November 11, 2015)
+ - Resolved issue 6 and proposed resolution to issue 4 (section 3.7.4)
+ - Added new issue 10 with proposed resolution
+
+#5 (Alon Or-bach, May 12, 2015)
+ - Updated section 3.10.1.2, changed resolution to issue 9
+
+#4 (Alon Or-bach, April 15, 2015)
+ - Added issue 9 and a typo fix
+
+#3 (Alon Or-bach, April 09, 2015)
+ - Added issue 7 and 8, wording on what content expected during mode switch
+
+#2 (Alon Or-bach, March 09, 2015)
+ - Cleanup, rename to XXX_set_render_buffer_mode
+
+#1 (Alon Or-bach, March 04, 2015)
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_no_config_context.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_no_config_context.txt
new file mode 100644
index 0000000..4493b20
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_no_config_context.txt
@@ -0,0 +1,261 @@
+Name
+
+ KHR_no_config_context
+
+Name Strings
+
+ EGL_KHR_no_config_context
+
+Contributors
+
+ Etay Meiri
+ Alon Or-bach
+ Jeff Vigil
+ Ray Smith
+ Michael Gold
+ James Jones
+ Daniel Kartch
+ Adam Jackson
+ Jon Leech
+
+Contact
+
+ Etay Meiri (etay.meiri 'at' intel.com)
+
+IP Status
+
+ No known IP claims.
+
+Status
+
+ Approved by the EGL Working Group on April 27, 2016
+
+ Approved by the Khronos Board of Promoters on July 22, 2016
+
+Version
+
+ Version 9, 2016/09/08
+
+Number
+
+ EGL Extension #101
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ EGL 1.4 is required. This extension is written against the EGL 1.5
+ Specification of August 27, 2014.
+
+ Some of the capabilities of these extensions are only available when
+ creating OpenGL or OpenGL ES contexts supporting specific versions or
+ capabilities. All such restrictions are documented in the body of this
+ extension specification.
+
+Overview
+
+ Modern GPUs allow contexts to render to almost any combination of
+ supported color and auxiliary buffer formats. Traditionally EGL context
+ creation is done with respect to an EGLConfig specifying buffer formats,
+ and constrains contexts to only work with surfaces created with a
+ "compatible" config.
+
+ This extension allows creation of GL & ES contexts without specifying an
+ EGLConfig.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as the <config> parameter of eglCreateContext:
+
+ EGL_NO_CONFIG_KHR ((EGLConfig)0)
+
+Additions to the EGL 1.5 Specification
+
+ Modify the 3rd paragraph of section 2.2 "Rendering Contexts and
+ Drawing Surfaces":
+
+ "Surfaces and contexts are both created with respect to an EGLConfig.
+ The EGLConfig describes the depth of the color buffer components and
+ the types, quantities and sizes of the ancillary buffers (i.e., the
+ depth, multisample, and stencil buffers). It is also possible to
+ create a context without using an EGLConfig, by specifying relevant
+ parameters at creation time (see sections 3.5 and 3.7, respectively)."
+
+ Modify the sixth paragraph of section 2.2:
+
+ "A context can be used with any EGLSurface that it is <compatible>
+ with (subject to the restrictions discussed in the section on
+ address space). A context and surface are compatible if they were
+ created with respect to the same EGLDisplay, and if either of the
+ following sets of conditions apply:
+
+ * The context was created without an EGLConfig. Such contexts match
+ any valid EGLSurface.
+
+ or,
+
+ * The context and surface support the same type of color buffer
+ (RGB or luminance).
+
+ * They have color buffers and ancillary buffers of the same depth.
+
+ ... replicate remainder of this bullet point ...
+
+ As long as the compatibility constraint and the address space ..."
+
+ Insert a new paragraph after paragraph 3 in section 3.7.1 "Creating
+ Rendering Contexts" on p. 51:
+
+ "<config> specifies an EGLConfig defining properties of the context. If
+ <config> is EGL_NO_CONFIG_KHR, the resulting context is said to be
+ created <without reference to an EGLConfig>. In this case, the context
+ must pass the required conformance tests for that client API and must
+ support being made current without a rendering surface. Such support is
+ guaranteed for OpenGL ES 2.0 implementations supporting the
+ GL_OES_surfaceless_context extension, OpenGL ES 3.0 and later versions
+ of OpenGL ES, and OpenGL 3.0 and later versions of OpenGL. Support for
+ other versions and other client APIs is implementation dependent."
+
+ Replace the EGL_BAD_CONFIG error for eglCreateContext on p. 56, and add
+ a new errors:
+
+ "* An EGL_BAD_CONFIG error is generated if <config> is neither
+ EGL_NO_CONFIG_KHR nor a valid <config>.
+
+ * An EGL_BAD_MATCH error is generated if <config> is EGL_NO_CONFIG_KHR,
+ and the requested client API type and version do not support being
+ made current without a rendering surface.
+
+ * An EGL_BAD_MATCH error is generated if <config> is EGL_NO_CONFIG_KHR,
+ and the implementation does not support the requested client API and
+ version."
+
+ Modify the first error for eglMakeCurrent in the list on p. 58:
+
+ "* An EGL_BAD_MATCH error is generated if <draw> or <read> are not
+ compatible with <ctx>, as described in section 2.2."
+
+ Modify the description of eglQueryContext in section 3.7.4 on p. 63:
+
+ "Querying EGL_CONFIG_ID returns the ID of the EGLConfig with respect
+ to which the context was created, or zero if created without
+ respect to an EGLConfig."
+
+Errors
+
+ As described in the body of the extension above.
+
+Conformance Tests
+
+ None
+
+Sample Code
+
+ None
+
+Dependencies On EGL 1.4
+
+ If implemented on EGL 1.4, interactions with EGL 1.5-specific features
+ are removed.
+
+Issues
+
+ 1) Should non-conformant no-config contexts be allowed to be created?
+
+ RESOLVED: No. We are not encouraging non-conformant contexts.
+
+ 2) Are no-config contexts constrained to those GL & ES implementations
+ which can support them?
+
+ RESOLVED: Yes. ES2 + OES_surfaceless_context, ES 3.0, and GL 3.0 all
+ support binding a surface without a context. This implies that they
+ don't need to know surface attributes at context creation time.
+
+ 3) For an OpenGL or OpenGL ES context created with no config, what is the
+ initial state of GL_DRAW_BUFFER and GL_READ_BUFFER for the default
+ framebuffer?
+
+ RESOLVED: This is an implementation detail rather than a spec issue.
+ glReadBuffer/glDrawBuffer have undefined results if called without a
+ current context. The GL_DRAW_BUFFER and GL_READ_BUFFER are set on the
+ first eglMakeCurrent call and can be updated in glReadBuffer and
+ glDrawBuffers calls after that. Therefore, the attribute value with
+ which the context is created is irrelevant from the point of view of the
+ spec and is left up to the implementation.
+
+ 4) Can eglMakeCurrent alter the GL_DRAW_BUFFER and GL_READ_BUFFER state of
+ the default framebuffer?
+
+ RESOLVED: Yes, but only on the first call to eglMakeCurrent. The two
+ relevant excerpts from the OpenGL 3.2 Core Profile Specification.
+ From Section 4.2.1 Selecting a Buffer for Writing:
+
+ For the default framebuffer, in the initial state the draw buffer
+ for fragment color zero is BACK if there is a back buffer; FRONT if
+ there is no back buffer; and NONE if no default framebuffer is
+ associated with the context.
+
+ From 4.3.3 Pixel Draw/Read State:
+
+ For the default framebuffer, in the initial state the read buffer is
+ BACK if there is a back buffer; FRONT if there is no back buffer;
+ and NONE if no default framebuffer is associated with the context.
+
+ Based on the above excerpts on the first call to eglMakeCurrent the
+ GL_DRAW_BUFFER and GL_READ_BUFFER are set to: GL_NONE if the surface is
+ NULL, GL_BACK if the surface is double buffered, GL_FRONT if the surface
+ is single buffered. Following calls to glReadBuffer and glDrawBuffers
+ change the GL_DRAW_BUFFER and GL_READ_BUFFER attributes and these values
+ persist even when the application change the current context.
+
+ 5) Should we add an eglCreateGenericContext which is the same as
+ eglCreateContext but without the config parameter?
+
+ RESOLVED: No.
+
+ 6) Can no-config contexts share state with contexts that has a config?
+
+ RESOLVED: Yes. This extension implies that the dependency of the context
+ on the config is quite minimal so no restriction w.r.t sharing should be
+ enforced.
+
+ 7) What surface types can be made current with a no-config context?
+
+ RESOLVED: any surface type supported by the implementation can be made
+ current with a no-config context.
+
+Revision History
+
+ Version 9. 2016/09/08 (Jon Leech) - Modify cast of EGL_NO_CONFIG_KHR to
+ (EGLConfig) per bug 15473.
+
+ Version 8. 2016/08/09 (Jon Leech) - Assign extension number, reflow
+ text, and publish.
+
+ Version 7. 2016/05/09 - Recorded vote at working group and sent to
+ Promoters for ratification.
+
+ Version 6. 2016/04/27 - Updated issue #6. Added an EGL_BAD_MATCH case to
+ eglCreateContext.
+
+ Version 5. 2016/04/20 - White space cleanup. Added extension type.
+ Cleaned up issues #1, #2, #4 and #6.
+
+ Version 4. 2016/03/24 - Added a list of contributers. Fixed resolution
+ of issue #3 and #4.
+
+ Version 3. 2016/03/10 - removed restriction to window surfaces only.
+ Removed comment on EGL_RENDERABLE_TYPE. Resolved issues 3 and 4. Added
+ issue 7.
+
+ Version 2, 2016/03/09 - querying EGL_CONFIG_ID on a context created
+ without a config returns zero. Contexts created without a config can
+ share state with contexts which were created with a config.
+
+ Version 1, 2016/01/27 - branch from draft EGL_KHR_no_config specification.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_partial_update.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_partial_update.txt
new file mode 100644
index 0000000..bd7cf47
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_partial_update.txt
@@ -0,0 +1,501 @@
+Name
+
+ KHR_partial_update
+
+Name Strings
+
+ EGL_KHR_partial_update
+
+Contributors
+
+ Ray Smith
+ Tom Cooksey
+ James Jones
+ Chad Versace
+ Jesse Hall
+
+Contact
+
+ Ray Smith, ARM (Raymond.Smith 'at' arm.com)
+
+IP Status
+
+ No known claims.
+
+Notice
+
+ Copyright (c) 2014 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the EGL Working Group on September 17, 2014.
+ Approved by the Khronos Board of Promoters on November 7, 2014.
+
+Version
+
+ Version 12, September 12, 2014
+
+Number
+
+ EGL Extension #83
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ EGL 1.4 or later is required.
+
+ Written based on the EGL 1.5 specification (March 12, 2014).
+
+ The behavior of part of this extension is different depending on whether the
+ EGL_EXT_buffer_age extension is also present.
+
+ This extension trivially interacts with EGL_KHR_swap_buffers_with_damage and
+ EGL_EXT_swap_buffers_with_damage. This extension is worded against the KHR
+ version, but the interactions with the EXT version are identical.
+
+New Procedures and Functions
+
+
+ EGLBoolean eglSetDamageRegionKHR(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint *rects,
+ EGLint n_rects);
+
+New Tokens
+
+ Accepted in the <attribute> parameter of eglQuerySurface:
+
+ EGL_BUFFER_AGE_KHR 0x313D
+
+Overview
+
+ The aim of this extension is to allow efficient partial updates for postable
+ surfaces. It allows implementations to completely avoid processing areas of
+ the surface which have not changed between frames, allowing increased
+ efficiency.
+
+ It does so by providing information and guarantees about the content of the
+ current back buffer which allow the application to "repair" only areas that
+ have become out of date since the particular back buffer was last used.
+
+ The information provided is in the form of the "age" of the buffer, that is,
+ how many frames ago it was last used as the back buffer for the surface. If
+ the application tracks what changes it has made to the surface since this
+ back buffer was last used, it can bring the entire back buffer up to date by
+ only re-rendering the areas it knows to be out of date.
+
+ Use of this extension provides a more efficient alternative to
+ EGL_BUFFER_PRESERVED swap behaviour. EGL_BUFFER_PRESERVED typically implies
+ an expensive full-frame copy at the beginning of the frame, as well as a
+ dependency on the previous frame. Usage of this extension avoids both and
+ requires only the necessary updates to a back buffer to be made.
+
+Terminology
+
+ This extension and the EGL_KHR_swap_buffers_with_damage extension both use
+ the word "damage" for subtly but significantly different purposes:
+
+ "Surface damage" is what the EGL_KHR_swap_buffers_with_damage extension
+ is concerned with. This is the area of the *surface* that changes between
+ frames for that surface. It concerns the differences between two buffers -
+ the current back buffer and the current front buffer. It is useful only to
+ the consumer.
+
+ "Buffer damage" is what the EGL_KHR_partial_update extension is concerned
+ with. This is the area of a particular buffer that has changed since that
+ same buffer was last used. As it only concerns changes to a single buffer,
+ there is no dependency on the next or previous frames or any other buffer.
+ It therefore cannot be used to infer anything about changes to the surface,
+ which requires linking one frame or buffer to another. Buffer damage is
+ therefore only useful to the producer.
+
+ Following are examples of the two different damage types. Note that the
+ final surface content is the same in both cases, but the damaged areas
+ differ according to the type of damage being discussed.
+
+Surface damage example (EGL_KHR_swap_buffers_with_damage)
+
+ The surface damage for frame n is the difference between frame n and frame
+ (n-1), and represents the area that a compositor must recompose.
+
+ Frame 0 Frame 1 Frame 2 Frame 3 Frame 4
+ +---------+ +---------+ +---------+ +---------+ +---------+
+ | | |#########| |#########| |#########| |#########|
+ | | | | |#########| |#########| |#########| Final surface
+ | | | | | | |#########| |#########| content
+ | | | | | | | | |#########|
+ +---------+ +---------+ +---------+ +---------+ +---------+
+
+ +---------+ +---------+ +---------+ +---------+ +---------+
+ |@@@@@@@@@| |@@@@@@@@@| | | | | | |
+ |@@@@@@@@@| | | |@@@@@@@@@| | | | | Surface damage
+ |@@@@@@@@@| | | | | |@@@@@@@@@| | |
+ |@@@@@@@@@| | | | | | | |@@@@@@@@@|
+ +---------+ +---------+ +---------+ +---------+ +---------+
+
+Buffer damage example (EGL_KHR_partial_update)
+
+ The buffer damage for a frame is the area changed since that same buffer was
+ last used. If the buffer has not been used before, the buffer damage is the
+ entire area of the buffer.
+
+ The buffer marked with an 'X' in the top left corner is the buffer that is
+ being used for that frame. This is the buffer to which the buffer age and
+ the buffer damage relate.
+
+ Note that this example shows a double buffered surface - the actual number
+ of buffers could be different and variable throughout the lifetime of the
+ surface. The age *must* therefore be queried for every frame.
+
+ Frame 0 Frame 1 Frame 2 Frame 3 Frame 4
+ +---------+ +---------+ +---------+ +---------+ +---------+
+ | | |#########| |#########| |#########| |#########|
+ | | | | |#########| |#########| |#########| Final surface
+ | | | | | | |#########| |#########| content
+ | | | | | | | | |#########|
+ +---------+ +---------+ +---------+ +---------+ +---------+
+
+ X---------+ +---------+ X---------+ +---------+ X---------+
+ | | | | |#########| |#########| |#########|
+ | | | | |#########| |#########| |#########| Buffer 1 content
+ | | | | | | | | |#########|
+ | | | | | | | | |#########|
+ +---------+ +---------+ +---------+ +---------+ +---------+
+
+ X---------+ +---------+ X---------+ +---------+
+ |#########| |#########| |#########| |#########|
+ | | | | |#########| |#########| Buffer 2 content
+ | | | | |#########| |#########|
+ | | | | | | | |
+ +---------+ +---------+ +---------+ +---------+
+
+ 0 0 2 2 2 Buffer age
+
+ +---------+ +---------+ +---------+ +---------+ +---------+
+ |@@@@@@@@@| |@@@@@@@@@| |@@@@@@@@@| | | | |
+ |@@@@@@@@@| |@@@@@@@@@| |@@@@@@@@@| |@@@@@@@@@| | | Buffer damage
+ |@@@@@@@@@| |@@@@@@@@@| | | |@@@@@@@@@| |@@@@@@@@@|
+ |@@@@@@@@@| |@@@@@@@@@| | | | | |@@@@@@@@@|
+ +---------+ +---------+ +---------+ +---------+ +---------+
+
+
+Add a new section entitled "Partial updates to postable surfaces" to section
+3.5:
+
+ The "damage region" defines the area of the buffer to which all rendering
+ commands must be restricted. It applies only for surfaces which can be
+ posted, as described in section 3.10, and only when the swap behavior is
+ EGL_BUFFER_DESTROYED.
+
+ The contents of the buffer outside of the damage region may always be relied
+ upon to contain the same content as the last time they were defined for the
+ current back buffer. See section 3.5.6 for how to query when the current
+ back buffer was last used, and therefore what those contents are.
+
+ If EGL_EXT_buffer_age is supported, the contents of the buffer inside the
+ damage region may also be relied upon to contain the same content as the
+ last time they were defined for the current back buffer. If
+ EGL_EXT_buffer_age is not supported, the contents of the buffer inside the
+ damage region are always undefined after calling eglSwapBuffers.
+
+ Setting the damage region appropriately can be used to efficiently update
+ only the necessary areas inbetween frames.
+
+ After posting the back buffer, the damage region is set to the full
+ dimensions of the surface. The damage region can only be changed by the
+ application before any client API commands that draw to the surface have
+ been made. After this, the damage region is frozen until the back buffer is
+ posted again.
+
+ Use the command
+ EGLBoolean eglSetDamageRegionKHR(
+ EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint *rects,
+ EGLint n_rects)
+
+ to set the damage region.
+
+ The damage region for <surface> is set to the area described by <n_rects> and
+ <rects> if all of the following conditions are met:
+
+ * <surface> is the current draw surface of the calling thread
+ * <surface> is a postable surface
+ * There have been no client API commands which result with rendering to
+ <surface> since eglSwapBuffers was last called with <surface>, or since
+ <surface> was created in case eglSwapBuffers has not yet been called with
+ <surface>.
+ * The surface's swap behavior is EGL_BUFFER_DESTROYED
+
+ <n_rects> specifies the number of rectangles comprising the damage region.
+ <rects> is a pointer to a list of values describing the rectangles. The list
+ should consist of <n_rects> groups of four values, with each group
+ representing a single rectangle in surface coordinates in the form {x, y,
+ width, height}. Coordinates are specified relative to the lower left corner
+ of the surface. It is not necessary to avoid overlaps of the specified
+ rectangles. Rectangles that lie (partially) outside of the current surface
+ dimensions (as queryable via the EGL_WIDTH and EGL_HEIGHT attributes) will
+ be clamped to the current surface dimensions.
+
+ If <n_rects> is zero, <rects> is ignored and the damage region is set to the
+ full dimensions of the surface.
+
+ If <n_rects> is not zero but the rectangles in <rects> describe a region of
+ zero area after clamping, the damage region is set to the empty region.
+
+ If <rects> contains more than (4 * <n_rects>) values, the remaining values
+ are ignored. If <rects> contains fewer than (4 * <n_rects>) values, the
+ behavior is undefined, up to and including program termination.
+
+ At all times, any client API rendering which falls outside of the damage
+ region results in undefined framebuffer contents for the entire framebuffer.
+ It is the client's responsibility to ensure that rendering is confined to
+ the current damage area.
+
+ If any client API commands resulting in rendering to <surface> have been
+ issued since eglSwapBuffers was last called with <surface>, or since the
+ surface was created in case eglSwapBuffers has not yet been called on it,
+ attempting to set the damage region will result in undefined framebuffer
+ contents for the entire framebuffer.
+
+ Errors
+ ------
+ eglSetDamageRegionKHR returns EGL_FALSE on failure:
+ * If <surface> is not a postable surface, an EGL_BAD_MATCH error is
+ generated
+ * If <surface> is not the current draw surface for the calling thread, an
+ EGL_BAD_MATCH error is generated
+ * If the value of EGL_SWAP_BEHAVIOR for <surface> is not
+ EGL_BUFFER_DESTROYED, an EGL_BAD_MATCH error is generated
+ * If eglSetDamageRegionKHR has already been called on <surface> since the
+ most recent frame boundary, an EGL_BAD_ACCESS error is generated
+ * If the EGL_BUFFER_AGE_KHR attribute of <surface> has not been queried
+ since the most recent frame boundary, an EGL_BAD_ACCESS error is generated
+
+Add before the final paragraph in section 3.5.6 "Surface Attributes":
+
+ Querying EGL_BUFFER_AGE_KHR returns the age of the color contents of the
+ current back buffer as the number of frames elapsed since it was most
+ recently defined. Under certain conditions described below, applications
+ can, in conjunction with the surface's damage region (see section 3.5.1),
+ use this age to safely rely on the contents of old back buffers to reduce
+ the amount of redrawing they do each frame.
+
+ To query the age of a surface, it must be the current draw surface for the
+ calling thread.
+
+ Function name
+ --------------------
+ eglSwapBuffers
+ eglSwapBuffersWithDamageKHR
+
+ Table 3.X, Frame Boundary Functions
+
+ Buffers' ages are initialized to 0 at buffer creation time. When a frame
+ boundary is reached, the following occurs before any exchanging or copying
+ of color buffers:
+
+ * The current back buffer's age is set to 1.
+ * Any other color buffers' ages are incremented by 1 if
+ their age was previously greater than 0.
+
+ For example, with a double buffered surface and an implementation that swaps
+ via buffer exchanges, the age would usually be 2. With a triple buffered
+ surface the age would usually be 3. An age of 1 usually means the previous
+ swap was implemented as a copy. An age of 0 means the buffer has only just
+ been initialized and the contents are undefined. Single buffered surfaces
+ have no frame boundaries and therefore always have an age of 0.
+
+ Where specified in terms of the current damage region (see section 3.5.6),
+ the relevant part of a buffer's content is considered defined when the
+ buffer's age is a value greater than 0.
+
+ Frame boundaries are the only events that can set a buffer's age to a
+ positive value. Once EGL_BUFFER_AGE_KHR has been queried then it can be
+ assumed that the age will remain valid until the next frame boundary. EGL
+ implementations are permitted, but not required, to reset the buffer age in
+ response to pixel ownership test changes for any pixels within the drawable,
+ or if new pixels are added to or removed from the drawable, i.e., the
+ drawable is resized. A reset of this nature does not affect the age of
+ content for pixels that pass the pixel ownership test before and after the
+ event that caused the reset. In other words, applications can assume that
+ no event will invalidate the content of pixels that continuously pass the
+ pixel ownership test between when the buffer age was queried and the
+ following frame boundary. It is up to applications to track pixel ownership
+ using data collected from relevant window system events, such as
+ configuration and expose events on the X11 platform.
+
+ EGL_BUFFER_AGE_KHR state is a property of the EGL surface that owns the
+ buffers and lives in the address space of the application. That is, if an
+ EGL surface has been created from a native window or pixmap that may be
+ shared between processes, the buffer age is not guaranteed to be
+ synchronized across the processes. Binding and unbinding a surface to and
+ from one or more contexts in the same address space will not affect the ages
+ of any buffers in that surface.
+
+Add to the list of errors for eglQuerySurface at the end of section 3.5.6
+"Surface Attributes":
+
+ If <attribute> is EGL_BUFFER_AGE_KHR and <surface> is not the current draw
+ surface for the calling thread, an EGL_BAD_SURFACE error is generated.
+
+Add to the end of section 3.10.1.1 "Native Window Resizing":
+
+ If eglSetDamageRegionKHR has been called with anything other than zero for
+ <n_rects>, a surface resize will cause the damage region to become
+ undefined. This will effectively cause the entire framebuffer content to
+ become undefined until the next frame.
+
+Dependencies on EGL_KHR_swap_buffers_with_damage
+
+ If EGL_KHR_swap_buffers_with_damage is not supported, all references to
+ eglSwapBuffersWithDamageKHR are removed.
+
+Issues
+
+ 1) What should happen if the client renders outside of the damage area?
+
+ RESOLVED: The entire framebuffer content will be undefined.
+
+ DISCUSSION: The definedness of different parts of the buffer varies across
+ implementations, making it hard to define, and providing any more specific
+ information may encourage improper and non-portable use of this extension.
+
+ 2) How does this interact with EGL_EXT_buffer_age?
+
+ RESOLVED: The initial content of the damage area differs depending on
+ whether EGL_EXT_buffer_age is present or not, making this extension fully
+ backwards compatible with EGL_EXT_buffer_age, while not depending on it.
+
+ 3) How does this interact with EGL_KHR_swap_buffers_with_damage?
+
+ RESOLVED: It does not interact materially with
+ EGL_KHR_swap_buffers_with_damage, except for the trivial interaction with
+ eglSwapBuffersWithDamageKHR being a frame boundary function if the extension
+ is also supported.
+
+ DISCUSSION: This extension only provides a way to efficiently update the
+ back buffer for a surface. It does not have any effect on the subsequent
+ posting of that buffer. For maximum efficiency, applications should use both
+ EGL_KHR_partial_update and EGL_KHR_swap_buffers_with_damage simultaneously.
+
+ 4) How does this interact with EGL_BUFFER_PRESERVED?
+
+ RESOLVED: It is an error to call eglSetDamageRegionKHR with a surface with
+ EGL_BUFFER_PRESERVED swap behavior. However, it is not an error to query the
+ age of the buffer in this case.
+
+ DISCUSSION: A layered extension will be proposed to guarantee that the age
+ of a buffer is always 1 after the first frame for a surface. This will
+ provide similar (but not identical) semantics to EGL_BUFFER_PRESERVED for
+ applications that need it.
+
+ 5) How does surface resizing affect the damage region?
+
+ RESOLVED: The damage region becomes undefined if a surface resize occurs
+ after it has been set to anything except the full buffer. Because rendering
+ outside the damage area results in undefined framebuffer contents, this
+ effectively means that the entire framebuffer content becomes undefined
+ until the next frame.
+
+ 6) What happens if the damage region is set after any client rendering
+ commands?
+
+ OPTION 1: An error is returned. Detecting this condition is non-trivial in
+ some implementations.
+
+ OPTION 2: The entire framebuffer contents become undefined.
+
+ RESOLVED: Option 2.
+
+ 7) Should the entire region be provided in advance of any rendering, or should
+ each region be supplied immediately before the rendering commands for that
+ region, and multiple regions can be defined per frame?
+
+ RESOLVED: The entire region must be provided in advance of any rendering.
+
+ 8) What should be the behavior if eglSetDamageRegionKHR is called multiple
+ times before the first rendering command?
+
+ RESOLVED: This is an error. The entire region must be provided during a
+ single call, with no overwrite or modify behavior needed.
+
+ 9) Is it allowed to set the damage region when the buffer age has not been
+ queried?
+
+ RESOLVED: This is an error. This could only make sense when the damage
+ region is the entire buffer, which it is initially anyway. Otherwise the
+ undamaged area needs to be defined to an age that the application doesn't
+ know about. It's not clear that this would ever be useful to the
+ application, because it can't know at this point which areas it needs to
+ update.
+
+10) What is the behavior if, after clamping, the damage region is empty?
+
+ RESOLVED: The damage region is set to empty.
+
+
+Revision History
+
+ Version 1, 28/01/2014
+ - Initial draft
+ Version 2, 05/02/2014
+ - Removed clip behavior, replaced with undefined framebuffer contents if
+ client renders outside of given damage region
+ - Renamed to EGL_KHR_partial_update from EGL_KHR_frame_clip
+ - Added detailed parameter descriptions and error conditions
+ - Added dependency on GL_XXX_damage_region
+ - Defined interactions with EGL_EXT_buffer_age
+ Version 3, 04/03/2014
+ - Removed dependency on GL_XXX_damage_region
+ - Changed error on defining damage region after drawcalls to be undefined
+ rendering results instead
+ - Redefined interactions with EGL_EXT_buffer_age to allow both to exist
+ Version 4, 20/03/2014
+ - Modified language to allow use with EGLStream producer surfaces
+ - Clarified that surface must be the current *draw* surface
+ - Changed n_rects=0 behavior to set the damage region to the entire surface
+ - Clarified that rendering outside the damage region results in the entire
+ framebuffer becoming undefined
+ Version 5, 20/03/2014
+ - Updated to be based on EGL 1.5 spec
+ Version 6, 23/04/2014
+ -Added the pixel ownership logic from EGL_EXT_buffer_age
+ -Ported over the detailed description of buffer age from EGL_EXT_buffer_age
+ -Added a "New Functions" and "New Tokens" section.
+ -Added dependencies on EGL_EXT_swap_buffers_with_damage
+ Version 7, 20/05/2014
+ - Removing a couple of now-obsolete sentences
+ - An age of 1 *usually* means the previous swap was implemented as a copy.
+ - Reworded "For the purposes of buffer age tracking..." to reference the
+ conditions under which the different parts of the buffer are actually
+ defined, which depend on the damage region
+ Version 8, 20/05/2014
+ - Added issues list
+ Version 9, 12/08/2014
+ - Removed outdated modification to "Posting to a Window"
+ - Changed names and order of rects/n_rects to match
+ EGL_EXT_swap_buffers_with_damage
+ - Resolved issue 3 on EGL_EXT_swap_buffers_with_damage interactions
+ - Resolved issue 4 on EGL_BUFFER_PRESERVED swap behavior
+ - Resolved issue 5 on surface resize behavior
+ - Resolved issue 7 on multiple calls to eglSetDamageRegionKHR
+ - Added issue 8 and suggested resolution
+ - Added issue 9 and suggested resolution
+ - Added issue 10 and suggested resolution
+ Version 10, 19/08/2014
+ - Added section on terminology and damage types
+ Version 11, 10/09/2014
+ - Resolved outstanding issues
+ Version 12, 12/09/2014
+ - Added the restriction that you can only query the age of a surface while
+ it is the current draw surface.
+ Version 13, 18/09/2015
+ - Marked as a Display extension
+ - Changed remaining references to EGL_EXT_swap_buffers_with_damage to
+ EGL_KHR_swap_buffers_with_damage
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_android.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_android.txt
new file mode 100644
index 0000000..6568b64
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_android.txt
@@ -0,0 +1,102 @@
+Name
+
+ KHR_platform_android
+
+Name Strings
+
+ EGL_KHR_platform_android
+
+Contributors
+
+ Jesse Hall <jessehall 'at' google.com>
+ The contributors to the EGL_KHR_platform_gbm extension, which this
+ extension was based on.
+
+Contacts
+
+ Jesse Hall <jessehall 'at' google.com>
+
+Status
+
+ Complete.
+ Approved by the EGL Working Group on January 31, 2014.
+ Ratified by the Khronos Board of Promoters on March 14, 2014.
+
+Version
+
+ Version 1, 2014/01/27
+
+Number
+
+ EGL Extension #68
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ EGL 1.5 is required.
+
+ This extension is written against the EGL 1.5 Specification (draft
+ 20140122).
+
+Overview
+
+ This extension defines how to create EGL resources from native Android
+ resources using the EGL 1.5 platform functionality.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as the <platform> argument of eglGetPlatformDisplay:
+
+ EGL_PLATFORM_ANDROID_KHR 0x3141
+
+Additions to the EGL Specification
+
+ None.
+
+New Behavior
+
+ To determine if the EGL implementation supports this extension, clients
+ should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
+
+ To obtain an EGLDisplay for the Android device, call eglGetPlatformDisplay
+ with <platform> set to EGL_PLATFORM_ANDROID_KHR and with <native_display>
+ set to EGL_DEFAULT_DISPLAY.
+
+ For each EGLConfig that belongs to the Android platform, the
+ EGL_NATIVE_VISUAL_ID attribute is an Android window format, such as
+ WINDOW_FORMAT_RGBA_8888.
+
+ To obtain a rendering surface from an Android native window, call
+ eglCreatePlatformWindowSurface with a <dpy> that belongs to the Android
+ platform and a <native_window> that points to a ANativeWindow.
+
+ It is not valid to call eglCreatePlatformPixmapSurface with a <dpy> that
+ belongs to the Android platform. Any such call fails and generates
+ an EGL_BAD_PARAMETER error.
+
+Issues
+
+ 1. Should this extension even exist? Android devices only support one
+ window system.
+
+ RESOLUTION: Yes. Although the Android Open Source Project master branch
+ only supports one window system, customized versions of Android could
+ extend that to support other window systems. More importantly, having a
+ platform extension allows EGL 1.5 applications to use the platform and
+ non-platform Get*Display and Create*WindowSurface calls interchangeably. As a user of the API it would be confusing if that didn't work.
+
+Revision History
+
+ Version 1, 2014/01/27 (Jesse Hall)
+ - Initial draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_gbm.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_gbm.txt
new file mode 100644
index 0000000..a4c04e0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_gbm.txt
@@ -0,0 +1,295 @@
+Name
+
+ KHR_platform_gbm
+
+Name Strings
+
+ EGL_KHR_platform_gbm
+
+Contributors
+
+ Chad Versace <chad.versace@intel.com>
+ Jon Leech (oddhack 'at' sonic.net)
+ Kristian Høgsberg <krh@bitplanet.org>
+
+Contacts
+
+ Chad Versace <chad.versace@intel.com>
+
+Status
+
+ Complete.
+ Approved by the EGL Working Group on January 31, 2014.
+ Ratified by the Khronos Board of Promoters on March 14, 2014.
+
+Version
+
+ Version 3, 2016/01/04
+
+Number
+
+ EGL Extension #69
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ EGL 1.5 is required.
+
+ This extension is written against the EGL 1.5 Specification (draft
+ 20140122).
+
+Overview
+
+ This extension defines how to create EGL resources from native GBM
+ resources using the EGL 1.5 platform functionality (GBM is a Generic
+ Buffer Manager for Linux).
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as the <platform> argument of eglGetPlatformDisplay:
+
+ EGL_PLATFORM_GBM_KHR 0x31D7
+
+Additions to the EGL Specification
+
+ None.
+
+New Behavior
+
+ To determine if the EGL implementation supports this extension, clients
+ should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
+
+ To obtain an EGLDisplay from an GBM device, call eglGetPlatformDisplay with
+ <platform> set to EGL_PLATFORM_GBM_KHR. The <native_display> parameter
+ specifies the GBM device to use and must either point to a `struct
+ gbm_device` or be EGL_DEFAULT_DISPLAY. If <native_display> is
+ EGL_DEFAULT_DISPLAY, then the resultant EGLDisplay will be backed by some
+ implementation-chosen GBM device.
+
+ For each EGLConfig that belongs to the GBM platform, the
+ EGL_NATIVE_VISUAL_ID attribute is a GBM color format, such as
+ GBM_FORMAT_XRGB8888.
+
+ To obtain a rendering surface from a GBM surface, call
+ eglCreatePlatformWindowSurface with a <dpy> that belongs to the GBM
+ platform and a <native_window> that points to a `struct gbm_surface`. If
+ <native_window> was created without the GBM_BO_USE_RENDERING flag, or if
+ the color format of <native_window> differs from the EGL_NATIVE_VISUAL_ID
+ of <config>, then the function fails and generates EGL_BAD_MATCH.
+
+ It is not valid to call eglCreatePlatformPixmapSurface with a <dpy> that
+ belongs to the GBM platform. Any such call fails and generates
+ an EGL_BAD_PARAMETER error.
+
+Issues
+
+ 1. Should this extension permit EGL_DEFAULT_DISPLAY as input to
+ eglGetPlatformDisplay?
+
+ RESOLUTION: Yes. When given EGL_DEFAULT_DISPLAY, eglGetPlatformDisplay
+ returns an EGLDisplay backed by an implementation-chosen GBM device.
+
+Example Code
+
+ // This example program creates an EGL surface from a GBM surface.
+ //
+ // If the macro EGL_KHR_platform_gbm is defined, then the program
+ // creates the surfaces using the methods defined in this specification.
+ // Otherwise, it uses the methods defined by the EGL 1.4 specification.
+ //
+ // Compile with `cc -std=c99 example.c -lgbm -lEGL`.
+
+ #include <stdlib.h>
+ #include <string.h>
+
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+
+ #include <EGL/egl.h>
+ #include <gbm.h>
+
+ struct my_display {
+ struct gbm_device *gbm;
+ EGLDisplay egl;
+ };
+
+ struct my_config {
+ struct my_display dpy;
+ EGLConfig egl;
+ };
+
+ struct my_window {
+ struct my_config config;
+ struct gbm_surface *gbm;
+ EGLSurface egl;
+ };
+
+ static void
+ check_extensions(void)
+ {
+ #ifdef EGL_KHR_platform_gbm
+ const char *client_extensions = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
+
+ if (!client_extensions) {
+ // No client extensions string available
+ abort();
+ }
+ if (!strstr(client_extensions, "EGL_KHR_platform_gbm")) {
+ abort();
+ }
+ #endif
+ }
+
+ static struct my_display
+ get_display(void)
+ {
+ struct my_display dpy;
+
+ int fd = open("/dev/dri/card0", O_RDWR | FD_CLOEXEC);
+ if (fd < 0) {
+ abort();
+ }
+
+ dpy.gbm = gbm_create_device(fd);
+ if (!dpy.gbm) {
+ abort();
+ }
+
+
+ #ifdef EGL_KHR_platform_gbm
+ dpy.egl = eglGetPlatformDisplay(EGL_PLATFORM_GBM_KHR, dpy.gbm, NULL);
+ #else
+ dpy.egl = eglGetDisplay(dpy.gbm);
+ #endif
+
+ if (dpy.egl == EGL_NO_DISPLAY) {
+ abort();
+ }
+
+ EGLint major, minor;
+ if (!eglInitialize(dpy.egl, &major, &minor)) {
+ abort();
+ }
+
+ return dpy;
+ }
+
+ static struct my_config
+ get_config(struct my_display dpy)
+ {
+ struct my_config config = {
+ .dpy = dpy,
+ };
+
+ EGLint egl_config_attribs[] = {
+ EGL_BUFFER_SIZE, 32,
+ EGL_DEPTH_SIZE, EGL_DONT_CARE,
+ EGL_STENCIL_SIZE, EGL_DONT_CARE,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
+ EGL_NONE,
+ };
+
+ EGLint num_configs;
+ if (!eglGetConfigs(dpy.egl, NULL, 0, &num_configs)) {
+ abort();
+ }
+
+ EGLConfig *configs = malloc(num_configs * sizeof(EGLConfig));
+ if (!eglChooseConfig(dpy.egl, egl_config_attribs,
+ configs, num_configs, &num_configs)) {
+ abort();
+ }
+ if (num_configs == 0) {
+ abort();
+ }
+
+ // Find a config whose native visual ID is the desired GBM format.
+ for (int i = 0; i < num_configs; ++i) {
+ EGLint gbm_format;
+
+ if (!eglGetConfigAttrib(dpy.egl, configs[i],
+ EGL_NATIVE_VISUAL_ID, &gbm_format)) {
+ abort();
+ }
+
+ if (gbm_format == GBM_FORMAT_XRGB8888) {
+ config.egl = configs[i];
+ free(configs);
+ return config;
+ }
+ }
+
+ // Failed to find a config with matching GBM format.
+ abort();
+ }
+
+ static struct my_window
+ get_window(struct my_config config)
+ {
+ struct my_window window = {
+ .config = config,
+ };
+
+ window.gbm = gbm_surface_create(config.dpy.gbm,
+ 256, 256,
+ GBM_FORMAT_XRGB8888,
+ GBM_BO_USE_RENDERING);
+ if (!window.gbm) {
+ abort();
+ }
+
+ #ifdef EGL_KHR_platform_gbm
+ window.egl = eglCreatePlatformWindowSurface(config.dpy.egl,
+ config.egl,
+ window.gbm,
+ NULL);
+ #else
+ window.egl = eglCreateWindowSurface(config.dpy.egl,
+ config.egl,
+ window.gbm,
+ NULL);
+ #endif
+
+ if (window.egl == EGL_NO_SURFACE) {
+ abort();
+ }
+
+ return window;
+ }
+
+ int
+ main(void)
+ {
+ check_extensions();
+
+ struct my_display dpy = get_display();
+ struct my_config config = get_config(dpy);
+ struct my_window window = get_window(config);
+
+ return 0;
+ }
+
+Revision History
+
+ Version 3, 2016-01-04 (Jon Leech)
+ - Free config memory allocated in sample code (Public Bug 1445).
+
+ Version 2, 2014/02/12 (Chad Versace)
+ - Change resolution of issue #1 from "no" to "yes". Now
+ eglGetPlatformDisplay accepts EGL_DEFAULT_DISPLAY for GBM.
+
+ Version 1, 2014/01/22 (Jon Leech)
+ - Promote EGL_MESA_platform_gbm to KHR to go with EGL 1.5.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_wayland.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_wayland.txt
new file mode 100644
index 0000000..d7315b3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_wayland.txt
@@ -0,0 +1,122 @@
+Name
+
+ KHR_platform_wayland
+
+Name Strings
+
+ EGL_KHR_platform_wayland
+
+Contributors
+
+ Chad Versace <chad.versace@intel.com>
+ Jon Leech (oddhack 'at' sonic.net)
+
+Contacts
+
+ Chad Versace <chad.versace@intel.com>
+
+Status
+
+ Complete.
+ Approved by the EGL Working Group on January 31, 2014.
+ Ratified by the Khronos Board of Promoters on March 14, 2014.
+
+Version
+
+ Version 2, 2014/02/18
+
+Number
+
+ EGL Extension #70
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ EGL 1.5 is required.
+
+ This extension is written against the EGL 1.5 Specification (draft
+ 20140122).
+
+ The behavior of part of this extension is different depending on whether
+ the EGL_EXT_buffer_age extension is also present.
+
+Overview
+
+ This extension defines how to create EGL resources from native Wayland
+ resources using the EGL 1.5 platform functionality.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as the <platform> argument of eglGetPlatformDisplay:
+
+ EGL_PLATFORM_WAYLAND_KHR 0x31D8
+
+Additions to the EGL Specification
+
+ None.
+
+New Behavior
+
+ To determine if the EGL implementation supports this extension, clients
+ should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
+
+ To obtain an EGLDisplay backed by a Wayland display, call
+ eglGetPlatformDisplay with <platform> set to EGL_PLATFORM_WAYLAND_KHR. The
+ <native_display> parameter specifies the Wayland display to use and must
+ either point to a `struct wl_display` or be EGL_DEFAULT_DISPLAY. If
+ <native_display> is EGL_DEFAULT_DISPLAY, then EGL will create a new
+ wl_display structure by connecting to the default Wayland socket. The
+ manual page wl_display_connect(3) defines the location of the default
+ Wayland socket.
+
+ To obtain an on-screen rendering surface from a Wayland window, call
+ eglCreatePlatformWindowSurface with a <dpy> that belongs to Wayland and
+ a <native_window> that points to a `struct wl_egl_surface`.
+
+ It is not valid to call eglCreatePlatformPixmapSurface with a <dpy> that
+ belongs to Wayland. Any such call fails and generates an
+ EGL_BAD_PARAMETER error.
+
+ Rendering to the obtained EGLSurface or querying it with EGL_BUFFER_AGE_KHR
+ will lock its back buffer preventing it from being dropped or resized,
+ until the next buffer swap. The rationale behind this behavior is to keep
+ operations result accurate until the next swap.
+
+Issues
+
+ 1. Should this extension permit EGL_DEFAULT_DISPLAY as input to
+ eglGetPlatformDisplay()?
+
+ RESOLUTION: Yes. When given EGL_DEFAULT_DISPLAY, eglGetPlatformDisplay
+ returns a display backed by the default Wayland display.
+
+ 2. Should this extension support creation of EGLPixmap resources from
+ Wayland pixmaps?
+
+ RESOLVED. No. Wayland has no pixmap type.
+
+Revision History
+ Version 3, 2022/07/14 (Kirill Chibisov)
+ - Clarify EGLSurface back buffer locking behavior with regards to
+ rendering and surface querying operations.
+ - Add dependency on EGL_EXT_buffer_age.
+
+ Version 2, 2014/02/18 (Chad Versace)
+ - Change resolution of issue #1 from "no" to "yes". Now
+ eglGetPlatformDisplay accepts EGL_DEFAULT_DISPLAY for Wayland.
+ - Explain in more detail how EGL connects to the default Wayland
+ display.
+
+ Version 1, 2014/01/22 (Jon Leech)
+ - Promote EGL_EXT_platform_wayland to KHR to go with EGL 1.5.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_x11.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_x11.txt
new file mode 100644
index 0000000..2c44141
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_platform_x11.txt
@@ -0,0 +1,378 @@
+Name
+
+ KHR_platform_x11
+
+Name Strings
+
+ EGL_KHR_platform_x11
+
+Contributors
+
+ Chad Versace <chad.versace@intel.com>
+ James Jones <jajones@nvidia.com>
+ Jon Leech (oddhack 'at' sonic.net)
+
+Contacts
+
+ Chad Versace <chad.versace@intel.com>
+
+Status
+
+ Complete.
+ Approved by the EGL Working Group on January 31, 2014.
+ Ratified by the Khronos Board of Promoters on March 14, 2014.
+
+Version
+
+ Version 3, 2014/02/18
+
+Number
+
+ EGL Extension #71
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ EGL 1.5 is required.
+
+ This extension is written against the EGL 1.5 Specification (draft
+ 20140122).
+
+Overview
+
+ This extension defines how to create EGL resources from native X11
+ resources using the EGL 1.5 platform functionality.
+
+ This extension only defines how to create EGL resources from Xlib
+ resources. It does not define how to do so from xcb resources. All X11
+ types discussed here are defined by the header `Xlib.h`.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as the <platform> argument of eglGetPlatformDisplay:
+
+ EGL_PLATFORM_X11_KHR 0x31D5
+
+ Accepted as an attribute name in the <attrib_list> argument of
+ eglGetPlatformDisplay:
+
+ EGL_PLATFORM_X11_SCREEN_KHR 0x31D6
+
+Additions to the EGL Specification
+
+ None.
+
+New Behavior
+
+ To determine if the EGL implementation supports this extension, clients
+ should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
+
+ On the X11 platform, an EGLDisplay refers to a specific X11 screen rather
+ than an X11 display connection. This is the case because separate X11
+ screens, even when belonging to the same X11 display connection, may
+ reside on different GPUs and/or be driven by different drivers. Therefore,
+ different X11 screens may have different EGL capabilities.
+
+ To obtain an EGLDisplay backed by an X11 screen, call eglGetPlatformDisplay
+ with <platform> set to EGL_PLATFORM_X11_KHR. The <native_display> parameter
+ specifies the X11 display connection to use, and must either point to
+ a valid X11 `Display` or be EGL_DEFAULT_DISPLAY. If <native_display> is
+ EGL_DEFAULT_DISPLAY, then EGL will create [1] a connection to the default
+ X11 display. The environment variable DISPLAY determines the default X11
+ display as described in the manual page for XOpenDisplay(3). The value of
+ attribute EGL_PLATFORM_X11_SCREEN_KHR specifies the X11 screen to use. If
+ the attribute is omitted from <attrib_list>, then the display connection's
+ default screen is used. Otherwise, the attribute's value must be a valid
+ screen on the display connection. If the attribute's value is not a valid
+ screen, then an EGL_BAD_ATTRIBUTE error is generated.
+
+ [fn1] The method by which EGL creates a connection to the default X11
+ display is an internal implementation detail. The implementation may use
+ XOpenDisplay, xcb_connect, or any other method.
+
+ To obtain an on-screen rendering surface from an X11 Window, call
+ eglCreatePlatformWindowSurface with a <dpy> that belongs to X11 and
+ a <native_window> that points to an X11 Window.
+
+ To obtain an offscreen rendering surface from an X11 Pixmap, call
+ eglCreatePlatformPixmapSurface with a <dpy> that belongs to X11 and
+ a <native_pixmap> that points to an X11 Pixmap.
+
+Issues
+
+ 1. Should this extension permit EGL_DEFAULT_DISPLAY as input to
+ eglGetPlatformDisplay()?
+
+ RESOLVED. Yes. When given EGL_DEFAULT_DISPLAY, eglGetPlatformDisplay
+ returns an EGLDisplay backed by the default X11 display.
+
+ 2. When given EGL_DEFAULT_DISPLAY, does eglGetPlatformDisplay reuse an
+ existing X11 display connection or create a new one?
+
+ RESOLVED. eglGetPlatformDisplay creates a new connection because the
+ alternative is infeasible. EGL cannot reliably detect if the client
+ process already has a X11 display connection.
+
+Example Code
+
+ // This example program creates two EGL surfaces: one from an X11 Window
+ // and the other from an X11 Pixmap.
+ //
+ // If the macro USE_EGL_KHR_PLATFORM_X11 is defined, then the program
+ // creates the surfaces using the methods defined in this specification.
+ // Otherwise, it uses the methods defined by the EGL 1.4 specification.
+ //
+ // Compile with `cc -std=c99 example.c -lX11 -lEGL`.
+
+ #include <stdlib.h>
+ #include <string.h>
+
+ #include <EGL/egl.h>
+ #include <X11/Xlib.h>
+
+ struct my_display {
+ Display *x11;
+ EGLDisplay egl;
+ };
+
+ struct my_config {
+ struct my_display dpy;
+ XVisualInfo *x11;
+ Colormap colormap;
+ EGLConfig egl;
+ };
+
+ struct my_window {
+ struct my_config config;
+ Window x11;
+ EGLSurface egl;
+ };
+
+ struct my_pixmap {
+ struct my_config config;
+ Pixmap x11;
+ EGLSurface egl;
+ };
+
+ static void
+ check_extensions(void)
+ {
+ #ifdef USE_EGL_KHR_PLATFORM_X11
+ const char *client_extensions = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
+
+ if (!client_extensions) {
+ // No client extensions string available
+ abort();
+ }
+ if (!strstr(client_extensions, "EGL_KHR_platform_x11")) {
+ abort();
+ }
+ #endif
+ }
+
+ static struct my_display
+ get_display(void)
+ {
+ struct my_display dpy;
+
+ dpy.x11 = XOpenDisplay(NULL);
+ if (!dpy.x11) {
+ abort();
+ }
+
+ #ifdef USE_EGL_KHR_PLATFORM_X11
+ dpy.egl = eglGetPlatformDisplay(EGL_PLATFORM_X11_KHR, dpy.x11, NULL);
+ #else
+ dpy.egl = eglGetDisplay(dpy.x11);
+ #endif
+
+ if (dpy.egl == EGL_NO_DISPLAY) {
+ abort();
+ }
+
+ EGLint major, minor;
+ if (!eglInitialize(dpy.egl, &major, &minor)) {
+ abort();
+ }
+
+ return dpy;
+ }
+
+ static struct my_config
+ get_config(struct my_display dpy)
+ {
+ struct my_config config = {
+ .dpy = dpy,
+ };
+
+ EGLint egl_config_attribs[] = {
+ EGL_BUFFER_SIZE, 32,
+ EGL_RED_SIZE, 8,
+ EGL_GREEN_SIZE, 8,
+ EGL_BLUE_SIZE, 8,
+ EGL_ALPHA_SIZE, 8,
+
+ EGL_DEPTH_SIZE, EGL_DONT_CARE,
+ EGL_STENCIL_SIZE, EGL_DONT_CARE,
+
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PIXMAP_BIT,
+ EGL_NONE,
+ };
+
+ EGLint num_configs;
+ if (!eglChooseConfig(dpy.egl,
+ egl_config_attribs,
+ &config.egl, 1,
+ &num_configs)) {
+ abort();
+ }
+ if (num_configs == 0) {
+ abort();
+ }
+
+ XVisualInfo x11_visual_info_template;
+ if (!eglGetConfigAttrib(dpy.egl,
+ config.egl,
+ EGL_NATIVE_VISUAL_ID,
+ (EGLint*) &x11_visual_info_template.visualid)) {
+ abort();
+ }
+
+ int num_visuals;
+ config.x11 = XGetVisualInfo(dpy.x11,
+ VisualIDMask,
+ &x11_visual_info_template,
+ &num_visuals);
+ if (!config.x11) {
+ abort();
+ }
+
+ config.colormap = XCreateColormap(dpy.x11,
+ RootWindow(dpy.x11, 0),
+ config.x11->visual,
+ AllocNone);
+ if (config.colormap == None) {
+ abort();
+ }
+
+ return config;
+ }
+
+ static struct my_window
+ get_window(struct my_config config)
+ {
+ XSetWindowAttributes attr;
+ unsigned long mask;
+
+ struct my_window window = {
+ .config = config,
+ };
+
+ attr.colormap = config.colormap;
+ mask = CWColormap;
+
+ window.x11 = XCreateWindow(config.dpy.x11,
+ DefaultRootWindow(config.dpy.x11), // parent
+ 0, 0, // x, y
+ 256, 256, // width, height
+ 0, // border_width
+ config.x11->depth,
+ InputOutput, // class
+ config.x11->visual,
+ mask, // valuemask
+ &attr); // attributes
+ if (!window.x11) {
+ abort();
+ }
+
+ #ifdef USE_EGL_KHR_PLATFORM_X11
+ window.egl = eglCreatePlatformWindowSurface(config.dpy.egl,
+ config.egl,
+ &window.x11,
+ NULL);
+ #else
+ window.egl = eglCreateWindowSurface(config.dpy.egl,
+ config.egl,
+ window.x11,
+ NULL);
+ #endif
+
+ if (window.egl == EGL_NO_SURFACE) {
+ abort();
+ }
+
+ return window;
+ }
+
+ static struct my_pixmap
+ get_pixmap(struct my_config config)
+ {
+ struct my_pixmap pixmap = {
+ .config = config,
+ };
+
+ pixmap.x11 = XCreatePixmap(config.dpy.x11,
+ DefaultRootWindow(config.dpy.x11),
+ 256, 256, // width, height
+ config.x11->depth);
+ if (!pixmap.x11) {
+ abort();
+ }
+
+ #ifdef USE_EGL_KHR_PLATFORM_X11
+ pixmap.egl = eglCreatePlatformPixmapSurface(config.dpy.egl,
+ config.egl,
+ &pixmap.x11,
+ NULL);
+ #else
+ pixmap.egl = eglCreatePixmapSurface(config.dpy.egl,
+ config.egl,
+ pixmap.x11,
+ NULL);
+ #endif
+
+ if (pixmap.egl == EGL_NO_SURFACE) {
+ abort();
+ }
+
+ return pixmap;
+ }
+
+ int
+ main(void)
+ {
+ check_extensions();
+
+ struct my_display dpy = get_display();
+ struct my_config config = get_config(dpy);
+ struct my_window window = get_window(config);
+ struct my_pixmap pixmap = get_pixmap(config);
+
+ return 0;
+ }
+
+Revision History
+
+ Version 3, 2014/02/18 (Chad Versace)
+ - Update text to reflect resolution of issue #1. State that
+ <native_display> may be EGL_DEFAULT_DISPLAY.
+ - Explain in more detail how EGL connects to the default X11 display.
+ - Add and resolve issue #2.
+
+ Version 2, 2014/02/11 (Chad Versace)
+ - Fix 2nd argument to XCreatePixmap in example code.
+
+ Version 1, 2014/01/22 (Jon Leech)
+ - Promote EGL_EXT_platform_x11 to KHR to go with EGL 1.5.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_reusable_sync.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_reusable_sync.txt
new file mode 100644
index 0000000..df49175
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_reusable_sync.txt
@@ -0,0 +1,575 @@
+Name
+
+ KHR_reusable_sync
+
+Name Strings
+
+ EGL_KHR_reusable_sync
+
+Contributors
+
+ Acorn Pooley
+ Gary King
+ Gregory Prisament
+ Jon Leech
+ Robert Palmer
+
+Contacts
+
+ Acorn Pooley, NVIDIA Corporation (apooley 'at' nvidia.com)
+ Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
+ Gregory Prisament, NVIDIA Corporation (gprisament 'at' nvidia.com)
+ Jon Leech (jon 'at' alumni.caltech.edu)
+ Robert Palmer (robert.palmer 'at' nokia.com)
+
+Notice
+
+ Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the Khronos Board of Promoters on August 28, 2009.
+
+Version
+
+ Version 22, January 31, 2014
+
+Number
+
+ EGL Extension #6
+
+Dependencies
+
+ Requires EGL 1.1
+
+ This extension is written against the wording of the EGL 1.2
+ Specification.
+
+Overview
+
+ This extension introduces the concept of "sync objects" into EGL.
+ Sync objects are a synchronization primitive, representing events
+ whose completion can be tested or waited upon. This extension
+ borrows from the GL_ARB_sync extension but introduces a type of sync
+ object known as "reusable sync object" comparable to an OS
+ semaphore. The specification is designed to allow additional types of
+ sync objects to be easily introduced in later extensions.
+
+ Reusable sync objects may be used to synchronize activity between
+ threads or between client APIs. Synchronization is accomplished by
+ explicitly changing the status of a reusable object using EGL API
+ commands.
+
+New Types
+
+ /*
+ * EGLSyncKHR is an opaque handle to an EGL sync object
+ */
+ typedef void* EGLSyncKHR;
+
+ /*
+ * EGLTimeKHR is a 64-bit unsigned integer representing intervals
+ * in nanoseconds.
+ */
+ #include <khrplatform.h>
+ typedef khronos_utime_nanoseconds_t EGLTimeKHR;
+
+
+New Procedures and Functions
+
+ EGLSyncKHR eglCreateSyncKHR(
+ EGLDisplay dpy,
+ EGLenum type,
+ const EGLint *attrib_list);
+
+ EGLBoolean eglDestroySyncKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync);
+
+ EGLint eglClientWaitSyncKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint flags,
+ EGLTimeKHR timeout);
+
+ EGLBoolean eglSignalSyncKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLenum mode);
+
+ EGLBoolean eglGetSyncAttribKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint attribute,
+ EGLint *value);
+
+
+New Tokens
+
+ Accepted by the <type> parameter of eglCreateSyncKHR, and returned
+ in <value> when eglGetSyncAttribKHR is called with <attribute>
+ EGL_SYNC_TYPE_KHR:
+
+ EGL_SYNC_REUSABLE_KHR 0x30FA
+
+ Accepted by the <attribute> parameter of eglGetSyncAttribKHR:
+
+ EGL_SYNC_TYPE_KHR 0x30F7
+ EGL_SYNC_STATUS_KHR 0x30F1
+
+ Accepted by the <mode> parameter of eglSignalSyncKHR and returned in
+ <value> when eglGetSyncAttribKHR is called with <attribute>
+ EGL_SYNC_STATUS_KHR:
+
+ EGL_SIGNALED_KHR 0x30F2
+ EGL_UNSIGNALED_KHR 0x30F3
+
+ Accepted in the <flags> parameter of eglClientWaitSyncKHR:
+
+ EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
+
+ Accepted in the <timeout> parameter of eglClientWaitSyncKHR:
+
+ EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull
+
+ Returned by eglClientWaitSyncKHR:
+
+ EGL_TIMEOUT_EXPIRED_KHR 0x30F5
+ EGL_CONDITION_SATISFIED_KHR 0x30F6
+
+ Returned by eglCreateSyncKHR in the event of an error:
+
+ EGL_NO_SYNC_KHR ((EGLSyncKHR)0)
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Add a new subsection at the end of Section 3.8, page 43
+ (Synchronization Primitives)
+
+ "3.8.1 Sync Objects
+
+ In addition to the aforementioned synchronization functions, which
+ provide an efficient means of serializing client and native API
+ operations within a thread, <sync objects> are provided to enable
+ synchronization of client API operations between threads and/or
+ between API contexts. Sync objects may be tested or waited upon by
+ application threads.
+
+ Sync objects have a status with two possible states: <signaled> and
+ <unsignaled>. Initially, sync objects are unsignaled. EGL may be
+ asked to wait for a sync object to become signaled, or a sync
+ object's status may be queried.
+
+ Depending on the type of a sync object, its status may be changed
+ either by an external event, or by explicitly signaling and
+ unsignaling the sync.
+
+ Sync objects are associated with an EGLDisplay when they are
+ created, and have <attributes> defining additional aspects of the
+ sync object. All sync objects include attributes for their type and
+ their status. Additional attributes are discussed below
+ for different types of sync objects.
+
+ <Reusable sync objects> are created in the unsignaled state, and may
+ be signaled and/or unsignaled repeatedly. Every transition of a
+ reusable sync object's status from unsignaled to signaled will
+ release any threads waiting on that sync object.
+
+ The command
+
+ EGLSyncKHR eglCreateSyncKHR(
+ EGLDisplay dpy,
+ EGLenum type,
+ const EGLint *attrib_list);
+
+ creates a sync object of the specified <type> associated with the
+ specified display <dpy>, and returns a handle to the new object.
+ <attrib_list> is an attribute-value list specifying other attributes
+ of the sync object, terminated by an attribute entry EGL_NONE.
+ Attributes not specified in the list will be assigned their default
+ values.
+
+ If <type> is EGL_SYNC_REUSABLE_KHR, a reusable sync object is
+ created. In this case <attrib_list> must be NULL or empty
+ (containing only EGL_NONE). Attributes of the reusable sync object
+ are set as follows:
+
+ Attribute Name Initial Attribute Value(s)
+ --------------- --------------------------
+ EGL_SYNC_TYPE_KHR EGL_SYNC_REUSABLE_KHR
+ EGL_SYNC_STATUS_KHR EGL_UNSIGNALED_KHR
+
+ Errors
+ ------
+
+ * If <dpy> is not the name of a valid, initialized EGLDisplay,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_DISPLAY error is
+ generated.
+ * If <attrib_list> is neither NULL nor empty (containing only
+ EGL_NONE), EGL_NO_SYNC_KHR is returned and an EGL_BAD_ATTRIBUTE
+ error is generated.
+ * If <type> is not a supported type of sync object,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_ATTRIBUTE error is
+ generated.
+
+ The command
+
+ EGLint eglClientWaitSyncKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint flags,
+ EGLTimeKHR timeout);
+
+ blocks the calling thread until the specified sync object <sync> is
+ signaled, or until <timeout> nanoseconds have passed.
+
+ More than one eglClientWaitSyncKHR may be outstanding on the same
+ <sync> at any given time. When there are multiple threads blocked on
+ the same <sync> and the sync object is signaled, all such threads
+ are released, but the order in which they are released is not
+ defined.
+
+ If the value of <timeout> is zero, then eglClientWaitSyncKHR simply
+ tests the current status of <sync>. If the value of <timeout> is the
+ special value EGL_FOREVER_KHR, then eglClientWaitSyncKHR does not
+ time out. For all other values, <timeout> is adjusted to the closest
+ value allowed by the implementation-dependent timeout accuracy,
+ which may be substantially longer than one nanosecond.
+
+ eglClientWaitSyncKHR returns one of three status values describing
+ the reason for returning. A return value of EGL_TIMEOUT_EXPIRED_KHR
+ indicates that the specified timeout period expired before <sync>
+ was signaled, or if <timeout> is zero, indicates that <sync> is
+ not signaled. A return value of EGL_CONDITION_SATISFIED_KHR
+ indicates that <sync> was signaled before the timeout expired, which
+ includes the case when <sync> was already signaled when
+ eglClientWaitSyncKHR was called. If an error occurs then an error is
+ generated and EGL_FALSE is returned.
+
+ If the EGL_SYNC_FLUSH_COMMANDS_BIT_KHR bit is set in
+ <flags>, and <sync> is unsignaled when eglClientWaitSyncKHR is
+ called, then the equivalent of Flush() will be performed for the
+ current API context (i.e., the context returned by
+ eglGetCurrentContext()) before blocking on <sync>. If no context is
+ current for the bound API, the EGL_SYNC_FLUSH_COMMANDS_BIT_KHR bit
+ is ignored.
+
+ If a sync object is destroyed while an eglClientWaitSyncKHR is
+ blocking on that object, eglClientWaitSyncKHR will unblock and
+ return immediately, just as if the sync object had been signaled
+ prior to being destroyed.
+
+ Errors
+ ------
+
+ * If <sync> is not a valid sync object for <dpy>, EGL_FALSE is
+ returned and an EGL_BAD_PARAMETER error is generated.
+ * If <dpy> does not match the EGLDisplay passed to
+ eglCreateSyncKHR when <sync> was created, the behaviour is
+ undefined.
+
+
+ The command
+
+ EGLBoolean eglSignalSyncKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLenum mode);
+
+ signals or unsignals the reusable sync object <sync> by changing its
+ status to <mode>, which must be one of the values in table 3.bb. If
+ as a result of calling eglSignalSyncKHR the status of <sync>
+ transitions from unsignaled to signaled, any eglClientWaitSyncKHR
+ commands blocking on <sync> will unblock.
+
+ Assuming no errors are generated, EGL_TRUE is returned.
+
+ Mode Effect
+ ------------------ -------------
+ EGL_SIGNALED_KHR Set the status of <sync> to signaled
+ EGL_UNSIGNALED_KHR Set the status of <sync> to unsignaled
+
+ Table 3.bb Modes Accepted by eglSignalSyncKHR Command
+
+ Errors
+ ------
+
+ * If <sync> is not a valid sync object for <dpy>, EGL_FALSE is
+ returned and an EGL_BAD_PARAMETER error is generated.
+ * If the type of <sync> is not EGL_SYNC_REUSABLE_KHR, EGL_FALSE is
+ returned and an EGL_BAD_MATCH error is generated.
+ * If <dpy> does not match the EGLDisplay passed to
+ eglCreateSyncKHR when <sync> was created, the behaviour is
+ undefined.
+
+
+ The command
+
+ EGLBoolean eglGetSyncAttribKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint attribute,
+ EGLint *value);
+
+ is used to query attributes of the sync object <sync>. Legal values
+ for <attribute> depend on the type of sync object, as shown in table
+ 3.cc. Assuming no errors are generated, EGL_TRUE is returned and the
+ value of the queried attribute is returned in <value>.
+
+ 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
+
+ Table 3.cc Attributes Accepted by eglGetSyncAttribKHR Command
+
+ Errors
+ ------
+
+ * If <sync> is not a valid sync object for <dpy>, EGL_FALSE is
+ returned and an EGL_BAD_PARAMETER error is generated.
+ * If <dpy> does not match the display passed to eglCreateSyncKHR
+ when <sync> was created, the behaviour is undefined.
+ * If <attribute> is not one of the attributes in table 3.cc,
+ EGL_FALSE is returned and an EGL_BAD_ATTRIBUTE error is
+ generated.
+ * If <attribute> is not supported for the type of sync object
+ passed in <sync>, EGL_FALSE is returned and an EGL_BAD_MATCH
+ error is generated.
+
+ If any error occurs, <*value> is not modified.
+
+ The command
+
+ EGLBoolean eglDestroySyncKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync);
+
+ is used to destroy an existing sync object. If any
+ eglClientWaitSyncKHR commands are blocking on <sync> when
+ eglDestroySyncKHR is called, they will be woken up, as if <sync>
+ were signaled.
+
+ If no errors are generated, EGL_TRUE is returned, and <sync> will no
+ longer be the handle of a valid sync object.
+
+ Errors
+ ------
+
+ * If <sync> is not a valid sync object for <dpy>, EGL_FALSE is
+ returned and an EGL_BAD_PARAMETER error is generated.
+ * If <dpy> does not match the display passed to eglCreateSyncKHR
+ when <sync> was created, the behaviour is undefined."
+
+Issues
+
+ Note about the Issues
+ ---------------------
+ The wording for this extension was originally written as a single
+ extension defining two types of sync object; a "reusable sync
+ object" and a "fence sync object". That extension was split to
+ produce standalone extensions for each type of sync object, and
+ references to the other type removed from the specification
+ language. This issues list has been simplied to remove references to
+ fence sync objects but is otherwise very similar to the
+ EGL_KHR_fence_sync extension issues list.
+
+ 1. Explain the key choices made in this extension.
+
+ RESPONSE: This extension has been written to enable adoption to be
+ as wide as possible, and to behave as similarly as possible to
+ synchronization primitives available in desktop OpenGL (e.g.,
+ NV_fence, ARB_sync).
+
+ In the interest of enabling widespread adoption, this extension
+ (following the ARB_sync model) has foregone the inclusion of
+ synchronization primitives and synchronization tests which may be
+ performed entirely inside client API command streams, instead
+ performing synchronization tests (eglClientWaitSyncKHR) inside the
+ application & host CPU.
+
+ In the interest of maintaining similarity with previous
+ synchronization primitives, this extension attempts to copy the
+ ARB_sync specification wherever possible (both functionally and
+ stylistically), only making changes where needed to operate inside
+ EGL (rather than a client API context) and match EGL naming
+ conventions.
+
+ 2. Why place this behavior in EGL, rather than in the client APIs?
+
+ RESPONSE: Ultimately, synchronization between multiple asynchronous
+ client API contexts (potentially executing in different threads) is
+ a problem which affects or will affect all EGL client APIs. Rather
+ than creating separate synchronization primitives in each of the
+ client APIs (and then wrapping them in an EGL container), in the
+ interest of developer simplicity & consistency this behavior is
+ being placed inside EGL.
+
+ 3. What does this extension provide that can not be accomplished
+ with the existing, more efficient eglWaitClient and eglWaitNative
+ API functions?
+
+ RESPONSE: eglWaitClient and eglWaitNative may be implemented in
+ extremely lightweight manners, in some cases not blocking the
+ calling thread at all; however, they can not be used to synchronize
+ between client API contexts and native APIs executing in separate
+ threads (or simply between client API contexts executing in separate
+ threads), such as between a thread with an active OpenGL context and
+ a second thread performing video decode.
+
+ 4. [REMOVED - found in the fence_sync extension.]
+
+ 5. Should integration with native platform synchronization objects
+ be included in this extension, or reserved for future
+ (platform-specific) extensions?
+
+ RESOLVED: Integration with native platform synchronization objects
+ should not be part of this extension, but can be added as future
+ layered extensions if needed. These layered extensions can be
+ platform-specific, or perhaps OpenKODE based.
+
+ Originally, this extension included the ability to create native
+ platform synchronization objects from EGLSync objects. This feature
+ was removed for a few reasons:
+
+ i) The proposed mechanism suggested mapping EGLSync objects to
+ pthread conditional variables on platforms with pthread support.
+ However, pthread conditional variables require an associated
+ mutex and there was no mechanism to relay this associated mutex
+ to the application.
+
+ ii) On certain platforms support for converting to native
+ platform synchronization objects adds great complexity to the
+ implementation.
+
+ iii) Now that OpenKODE is more mature, it would be better to
+ allow conversion from EGLSyncKHR objects to OpenKODE
+ synchronization primitives rather than platform-specific ones.
+ We suggest that this functionality, if needed, be added as a
+ layered extension instead of being included here. This way,
+ EGL_KHR_sync remains minimal and easy to implement on a variety
+ of platforms.
+
+ 6. Please provide a more detailed description of how
+ eglClientWaitSyncKHR behaves.
+
+ RESOLVED: eglClientWaitSyncKHR blocks until the status of the sync
+ object transitions to the signaled state. Sync object status is
+ either signaled or unsignaled. More detailed rules describing
+ signalling follow (these may need to be imbedded into the actual
+ spec language):
+
+ * A reusable sync object has two possible status values: signaled
+ or unsignaled.
+ * When created, the status of the sync object is unsignaled by
+ default.
+ * A reusable sync can be set to signaled or unsignaled
+ status using eglSignalSyncKHR.
+ * A wait function called on a sync object in the unsignaled state
+ will block. It unblocks (note, not "returns to the application")
+ when the sync object transitions to the signaled state.
+ * A wait function called on a sync object in the signaled state
+ will return immediately.
+
+ 7. Should the 'flags' argument to eglClientWaitSyncKHR be
+ EGLint or EGLuint?
+
+ RESOLVED: EGLint, setting a precedent for explicit bitmask types
+ in EGL going forward. We don't have an EGLuint type and it is
+ overkill for this purposes when other bitmasks (surface type
+ and api type) are already using EGLint attribute fields.
+
+ 8. Can multiple WaitSyncs be placed on the same sync object?
+
+ RESOLVED: Yes. This has been allowed all along but we now state it
+ more clearly in the spec language. However, there is some concern
+ that this is hard to implement and of limited use, and we might
+ remove this capability before approving the extension.
+
+ One way to do this while allowing multiple waiters at some future
+ point is to expose it through the API to developers as either a sync
+ attribute allowing multiple waits (default not allowing it), or a
+ parameter to WaitSync, which initially must be something like
+ EGL_SINGLE_WAIT_ONLY.
+
+ 9. Should eglDestroySyncKHR release all WaitSyncs placed on a
+ reusable sync object?
+
+ RESOLVED: Yes. It is safest to release all threads waiting on a
+ reusable object when the sync object is deleted so that waiting
+ threads do not wait forever.
+
+Revision History
+
+#22 (Jon Leech, January 31, 2014)
+ - Clarify return value of ClientWaitSyncKHR when called with <timeout>
+ of zero for an unsignaled <sync> (Bug 11576).
+#21 (Jon Leech, April 23, 2013)
+ - Simplify issues list to remove issues specific to fence sync
+ objects.
+#20 (Jon Leech, September 8, 2009)
+ - Change status to complete and note approval by the Promoters.
+ Minor formatting changes.
+#19 (Robert Palmer, July 14, 2009)
+ - Branch wording from draft KHR_sync specification. Remove ability
+ to create "fence sync objects and all tokens/wording specific to
+ them.
+#18 (Robert Palmer, July 8, 2009)
+ - Issues 8 and 9 declared resolved in EGL meeting 2009-07-08
+#17 (Robert Palmer, July 8, 2009)
+ - Update eglDestroySyncKHR to special-case deletion of fence sync
+ objects. This is explained in issue 9.
+ - Corrected EGL_REUSABLE_SYNC_KHR -> EGL_SYNC_REUSABLE_KHR
+ - Define value for EGL_SYNC_REUSABLE_KHR
+ - Fix typo and whitespace
+#16 (Jon Leech, July 7, 2009)
+ - Update description of new tokens to match changes to the
+ eglCreateSyncKHR entry point in revision 15.
+#15 (Jon Leech, June 16, 2009)
+ - Define separate one-time fence sync and reusable sync extensions
+ and corresponding extension strings. Remove AUTO_RESET and
+ eglFenceKHR. Rename eglCreateFenceSyncKHR to eglCreateSyncKHR and
+ change initial status of reusable syncs to unsignaled. Clarify
+ which functions apply to which types of sync objects. Update
+ issues list.
+#14 (Jon Leech, April 29, 2009)
+ - Clarify that all waiters are woken up on signalling a sync.
+ Remove tabs to cleanup some formatting issues.
+#13 (Acorn Pooley, April 2, 2009)
+ - Renamed
+ GL_OES_egl_sync -> GL_OES_EGL_sync
+ VG_KHR_egl_sync -> VG_KHR_EGL_sync
+#12 (Jon Leech, April 1, 2009)
+ - Changed sync flags type from EGLuint to EGLint and add issue 7.
+#11 (Acorn Pooley, February 4, 2009)
+ - add error case to eglGetSyncAttribKHR.
+ - fix year on rev 8-10 (2008->2009)
+#10 (Acorn Pooley, February 4, 2009)
+ - clarify some error message descriptions
+#9 (Greg Prisament, January 15, 2009)
+ - Destroy now wakes up all waits (eglClientWaitSyncKHR)
+ - Add EGLDisplay <dpy> as first parameter to all commands
+ - Split into 3 extension strings, EGL_KHR_sync, GL_OES_egl_sync,
+ VG_KHR_egl_sync, all described in this document.
+ - Add attribute AUTO_RESET_KHR
+ - Time type uses the type from khrplatform.h
+ - Remove EGL_ALREADY_SIGNALLED
+#8 (Jon Leech, November 11, 2009)
+ - Assign enum values
+#7 (Acorn Pooley, October 30, 2008)
+ - Fix typos
+ - remove obsolete wording about Native sync objects (see issue 5)
+ - formatting: remove tabs, 80 columns
+#6 (Acorn Pooley, October 27, 2008)
+ - Corrected 'enum' to 'EGLenum' in prototypes.
+#5 (Jon Leech, September 9, 2008)
+ - Removed native sync support (eglCreateNativeSyncKHR and
+ EGL_SYNC_NATIVE_SYNC_KHR), and re-flowed spec to fit in 80 columns.
+#4 (Jon Leech, November 20, 2007)
+ - Corrected 'enum' to 'EGLenum' in prototypes.
+#3 (Jon Leech, April 5, 2007)
+ - Added draft Status and TBD Number
+#2 (November 27, 2006)
+ - Changed OES token to KHR
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream.txt
new file mode 100644
index 0000000..34ebc13
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream.txt
@@ -0,0 +1,1091 @@
+Name
+
+ KHR_stream
+ KHR_stream_attrib
+
+Name Strings
+
+ EGL_KHR_stream
+ EGL_KHR_stream_attrib
+
+Contributors
+
+ Marcus Lorentzon
+ Acorn Pooley
+ Robert Palmer
+ Greg Prisament
+ Daniel Kartch
+ Miguel A. Vico Moya
+
+Contacts
+
+ Acorn Pooley, NVIDIA (apooley 'at' nvidia.com)
+ Marcus Lorentzon, ST-Ericsson AB (marcus.xm.lorentzon 'at' stericsson.com)
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2009-2016 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the Khronos Board of Promoters on December 2, 2011.
+
+Version
+
+ Version 27 - May 23, 2016
+
+Number
+
+ EGL Extension #32
+
+Dependencies
+
+ EGL_KHR_stream requires EGL 1.2.
+
+ EGL_KHR_stream_attrib requires EGL_KHR_stream and EGL 1.5.
+
+ EGL_KHR_stream_attrib interacts with
+ EGL_KHR_stream_consumer_gltexture.
+
+ This extension is written based on the wording of the EGL 1.2
+ specification.
+
+Overview
+
+ This extension defines a new object, the EGLStream, that can be
+ used to efficiently transfer a sequence of image frames from one
+ API to another. The EGLStream has mechanisms that can help keep
+ audio data synchronized to video data.
+
+ Each EGLStream is associated with a "producer" that generates
+ image frames and inserts them into the EGLStream. The producer is
+ responsible for inserting each image frame into the EGLStream at
+ the correct time so that the consumer can display the image frame
+ for the appropriate period of time.
+
+ Each EGLStream is also associated with a "consumer" that
+ retrieves image frames from the EGLStream. The consumer is
+ responsible for noticing that an image frame is available and
+ displaying it (or otherwise consuming it). The consumer is also
+ responsible for indicating the latency when that is possible (the
+ latency is the time that elapses between the time it is retrieved
+ from the EGLStream until the time it is displayed to the user).
+
+ Some APIs are stream oriented (examples: OpenMAX IL, OpenMAX AL).
+ These APIs may be connected directly to an EGLStream as a producer
+ or consumer. Once a stream oriented producer is "connected" to an
+ EGLStream and "started" it may insert image frames into the
+ EGLStream automatically with no further interaction from the
+ application. Likewise, once a stream oriented consumer is
+ "connected" to an EGLStream and "started" it may retrieve image
+ frames from the EGLStream automatically with no further interaction
+ from the application.
+
+ Some APIs are rendering oriented and require interaction with the
+ application during the rendering of each frame (examples: OpenGL,
+ OpenGL ES, OpenVG). These APIs will not automatically insert or
+ retrieve image frames into/from the EGLStream. Instead the
+ application must take explicit action to cause a rendering
+ oriented producer to insert an image frame or to cause a rendering
+ oriented consumer to retrieve an image frame.
+
+ The EGLStream conceptually operates as a mailbox. When the
+ producer has a new image frame it empties the mailbox (discards
+ the old contents) and inserts the new image frame into the
+ mailbox. The consumer retrieves the image frame from the mailbox
+ and examines it. When the consumer is finished examining the
+ image frame it is either placed back in the mailbox (if the
+ mailbox is empty) or discarded (if the mailbox is not empty).
+
+ Timing is mainly controlled by the producer. The consumer
+ operated with a fixed latency that it indicates to the producer
+ through the EGL_CONSUMER_LATENCY_USEC_KHR attribute. The consumer
+ is expected to notice when a new image frame is available in the
+ EGLStream, retrieve it, and display it to the user in the time
+ indicated by EGL_CONSUMER_LATENCY_USEC_KHR. The producer controls
+ when the image frame will be displayed by inserting it into the
+ stream at time
+ T - EGL_CONSUMER_LATENCY_USEC_KHR
+ where T is the time that the image frame is intended to appear to
+ the user.
+
+ This extension does not cover the details of how a producer or a
+ consumer works or is "connected" to an EGLStream. Different kinds
+ of producers and consumers work differently and are described in
+ additional extension specifications. (Examples of producer
+ specifications:
+ EGL_KHR_stream_producer_eglsurface
+ EGL_KHR_stream_producer_aldatalocator
+ OpenMAX_AL_EGLStream_DataLocator
+ Example of consumer extension specification:
+ EGL_KHR_stream_consumer_gltexture
+ )
+
+
+Glossary
+
+ EGLStream
+ An EGL object that transfers a sequence of image frames from one
+ API to another (e.g. video frames from OpenMAX AL to OpenGL ES).
+
+ Image frame
+ A single image in a sequence of images. The sequence may be
+ frames of video data decoded from a video file, images output by a
+ camera sensor, surfaces rendered using OpenGL ES commands, or
+ generated in some other manner. An image frame has a period of
+ time during which it is intended to be displayed on the screen
+ (starting with the "Image Frame Display Time" and ending with the
+ "Image Frame Display Time" of the next image frame in the
+ sequence).
+
+ Image Frame Insertion Time
+ The point in time when the producer inserts the image frame into
+ the EGLStream. This is the "Image Frame Intended Display Time"
+ minus the "Consumer Latency".
+
+ Image Frame Intended Display Time
+ The point in time when the user should first see the image frame
+ on the display screen.
+
+ Image Frame Actual Display Time
+ The point in time when the user actually first sees the image frame
+ on the display screen.
+
+ Consumer Latency
+ The elapsed time between an image frame's "Image Frame Insertion
+ Time" and its "Image Frame Actual Display Time". The consumer is
+ responsible for predicting this and indicating its value to the
+ EGLStream. The producer is responsible for using this value to
+ calculate the "Image Frame Insertion Time" for each image frame.
+ The application has access to this value through the
+ EGL_CONSUMER_LATENCY_USEC attribute.
+
+ Producer
+ The entity that inserts image frames into the EGLStream. The
+ producer is responsible for timing: it must insert image frames at
+ a point in time equal to the "Image Frame Intended Display Time"
+ minus the "Consumer Latency".
+
+ Consumer
+ The entity that retrieves image frames from the EGLStream. When
+ the image frames are to be displayed to the user the consumer is
+ responsible for calculating the "Consumer Latency" and reporting
+ it to the EGLSteam.
+
+ State (stream state)
+ At any given time an EGLStream is in one of several states. See
+ section "3.10.4.3 EGL_STREAM_STATE_KHR Attribute" in this
+ extension for a description of the states and what transitions
+ occur between them.
+
+New Types
+
+ This is the type of a handle that represents an EGLStream object.
+
+ typedef void* EGLStreamKHR;
+
+ This is a 64 bit unsigned integer.
+
+ typedef khronos_uint64_t EGLuint64KHR;
+
+New functions defined by EGL_KHR_stream
+
+ EGLStreamKHR eglCreateStreamKHR(
+ EGLDisplay dpy,
+ const EGLint *attrib_list);
+
+ EGLBoolean eglDestroyStreamKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream);
+
+ EGLBoolean eglStreamAttribKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLint value);
+
+ EGLBoolean eglQueryStreamKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLint *value);
+
+ EGLBoolean eglQueryStreamu64KHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLuint64KHR *value);
+
+New functions defined by EGL_KHR_stream_attrib
+
+ EGLStreamKHR eglCreateStreamAttribKHR(
+ EGLDisplay dpy,
+ const EGLAttrib *attrib_list);
+
+ EGLBoolean eglSetStreamAttribKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLAttrib value);
+
+ EGLBoolean eglQueryStreamAttribKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLAttrib *value);
+
+ EGLBoolean eglStreamConsumerAcquireAttribKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream
+ const EGLAttrib *attrib_list);
+
+ EGLBoolean eglStreamConsumerReleaseAttribKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ const EGLAttrib *attrib_list);
+
+New Tokens
+
+ This value is returned from eglCreateStreamKHR in the case of an
+ error. It is an error to attempt to use this value as a parameter
+ to any EGL or client API function.
+
+ EGL_NO_STREAM_KHR ((EGLStreamKHR)0)
+
+ This enum is accepted as an attribute in the <attrib_list> parameter
+ of eglCreateStreamKHR and as the <attribute> parameter of
+ eglStreamAttribKHR, eglSetStreamAttribKHR, eglQueryStreamKHR and
+ eglQueryStreamAttribKHR.
+
+ EGL_CONSUMER_LATENCY_USEC_KHR 0x3210
+
+ These enums are accepted as the <attribute> parameter of
+ eglQueryStreamu64KHR.
+
+ EGL_PRODUCER_FRAME_KHR 0x3212
+ EGL_CONSUMER_FRAME_KHR 0x3213
+
+ This enum is accepted as the <attribute> parameter of
+ eglQueryStreamKHR and eglQueryStreamAttribKHR.
+
+ EGL_STREAM_STATE_KHR 0x3214
+
+ Returned in the <value> parameter of eglQueryStreamKHR or
+ eglQueryStreamAttribKHR when <attribute> is EGL_STREAM_STATE.
+
+ EGL_STREAM_STATE_CREATED_KHR 0x3215
+ EGL_STREAM_STATE_CONNECTING_KHR 0x3216
+ EGL_STREAM_STATE_EMPTY_KHR 0x3217
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219
+ EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A
+
+ These errors may be generated by EGLStream calls.
+
+ EGL_BAD_STREAM_KHR 0x321B
+ EGL_BAD_STATE_KHR 0x321C
+
+Add a new section "2.5 Streams" after section "2.4 Shared State"
+
+ EGL allows efficient interoperation between APIs through the
+ EGLStream object. An EGLStream represents a sequence of image
+ frames.
+
+ Each EGLStream is associated with a producer that generates image
+ frames and inserts them into the EGLStream. Each EGLStream is
+ also associated with a consumer that retrieves image frames from
+ the EGLStream.
+
+Add a new section "3.10 EGLStreams" after section "3.9 Posting the
+Color Buffer"
+
+ 3.10 EGLStreams
+
+ EGL provides functions to create and destroy EGLStreams, for
+ querying and setting attributes of EGLStreams, and for connecting
+ EGLStreams to producers and consumers.
+
+ Each EGLStream may be connected to only one producer and one
+ consumer. Once an EGLStream is connected to a consumer, it will
+ be connected to that consumer until the EGLStream is destroyed.
+ Likewise, once an EGLStream is connected to a producer it will be
+ connected to that producer until the EGLStream is destroyed.
+ Further semantics are described for each type of consumer and
+ producer that can be connected.
+
+Add subsection 3.10.1 to section "3.10 EGLStreams"
+
+ 3.10.1 Creating an EGLStream
+
+ Call
+
+ EGLStreamKHR eglCreateStreamKHR(
+ EGLDisplay dpy,
+ const EGLint *attrib_list);
+
+ to create a new EGLStream. <dpy> specifies the EGLDisplay used for
+ this operation. The function returns a handle to the created
+ EGLStream.
+
+ The EGLStream cannot be used until it has been connected to a
+ consumer and then to a producer (refer to section "3.10.2
+ Connecting an EGLStream to a consumer" and section "3.10.3
+ Connecting an EGLStream to a producer"). It must be connected to
+ a consumer before being connected to a producer.
+
+ There is no way for the application to query the size,
+ colorformat, or number of buffers used in the EGLStream (although
+ these attributes may be available from the producer's API or the
+ consumer's API depending on what type of producer/consumer is
+ connected to the EGLStream).
+
+ The parameter <attrib_list> contains a list of attributes and
+ values to set for the EGLStream. Attributes not in the list are
+ set to default values. EGLStream attributes are described in
+ section "3.10.4 EGLStream Attributes".
+
+ If an error occurs eglCreateStreamKHR will return
+ EGL_NO_STREAM_KHR and generate an error.
+
+ - EGL_BAD_ATTRIBUTE is generated if any of the parameters in
+ attrib_list is not a valid EGLStream attribute.
+
+ - EGL_BAD_ACCESS is generated if any of the parameters in
+ attrib_list is read only.
+
+ - EGL_BAD_PARAMETER is generated if any of the values in
+ attrib_list is outside the valid range for the attribute.
+
+ - EGL_BAD_ALLOC is generated if not enough resources are
+ available to create the EGLStream.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid,
+ initialized EGLDisplay.
+
+If EGL_KHR_stream_attrib is present, add to the end of this section
+
+ Streams may also be created by calling
+
+ EGLStreamKHR eglCreateStreamAttribKHR(
+ EGLDisplay dpy,
+ const EGLAttrib *attrib_list);
+
+ This is equivalent to eglCreateStreamKHR, but allows pointer
+ and handle attributes to be provided on 64-bit systems.
+
+Add section 3.10.2 to section "3.10 EGLStreams"
+
+ 3.10.2 Connecting an EGLStream to a consumer.
+
+ Before using an EGLStream it must be connected to a consumer.
+
+ Refer to sections 3.10.2.1 and following for different ways to
+ connect a consumer to an EGLStream.
+
+ Once an EGLStream is connected to a consumer it will remain
+ connected to the same consumer until the EGLStream is destroyed.
+
+ If the consumer is destroyed then the EGLStream's state will
+ become EGL_STREAM_STATE_DISCONNECTED_KHR.
+
+ Any attempt to connect an EGLStream which is not in state
+ EGL_STREAM_STATE_CREATED_KHR will fail and generate an
+ EGL_BAD_STATE_KHR error.
+
+ When an EGLStream is connected to a consumer its state becomes
+ EGL_STREAM_STATE_CONNECTING_KHR.
+
+ 3.10.2.1 No way to connect consumer to EGLStream
+
+ EGL does not currently define any mechanisms to connect a consumer
+ to an EGLStream. These will be added via additional extensions.
+
+ (Example: See extension specification
+ EGL_KHR_stream_consumer_gltexture)
+
+If EGL_KHR_stream_attrib is present, add to the end of this section
+
+ 3.10.2.2 Acquiring and releasing consumer frames
+
+ Methods for acquiring frames from a stream and releasing them back
+ to a stream are dependent on the type of consumer. Some consumers
+ support calling
+
+ EGLBoolean eglStreamConsumerAcquireAttribKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream
+ const EGLAttrib *attrib_list);
+
+ to acquire the next available frame in <stream> and
+
+ EGLBoolean eglStreamConsumerReleaseAttribKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ const EGLAttrib *attrib_list);
+
+ to release a frame back to the stream.
+
+ Not all consumers are required to support either or both of these
+ functions. Where supported, the specific behavior is defined by the
+ consumer type, and may be affected by the contents of <attrib_list>.
+ <attrib_list> must either be NULL or a pointer to a list of
+ name/value pairs terminated by EGL_NONE. Valid attributes are
+ listed in tables 3.10.2.1 and 3.10.2.2.
+
+ Attribute Type Section
+ ------------------------ ---------- -------
+ Currently no acquire attributes are defined
+
+ Table 3.10.2.1 EGLStream Consumer Acquire Attributes
+
+ Attribute Type Section
+ ------------------------ ---------- -------
+ Currently no release attributes are defined
+
+ Table 3.10.2.2 EGLStream Consumer Release Attributes
+
+ If no new image frame is available in the stream,
+ eglStreamConsumerAcquireAtrribKHR may block, retrieve an old frame,
+ or return an error, as defined by the type of consumer. If one or
+ more image frames are already acquired by the consumer when
+ eglStreamConsumerAcquireAttribKHR is called, the behavior is
+ determined by the type of consumer.
+
+ If successful, eglStreamConsumerAcquireAttribKHR returns EGL_TRUE
+ and an image frame from <stream> will be bound into the address
+ space of the consumer as defined for its type.
+
+ On failure, the function returns EGL_FALSE and generates an error.
+ Additionally, image objects in the consumer's address space may
+ become invalid, as determined by the consumer type.
+
+ - EGL_BAD_ACCESS is generated if the consumer of <stream> does
+ not support acquiring frames through
+ eglStreamConsumerAcquireAttribKHR.
+
+ - EGL_BAD_STATE_KHR is no frame is available for acquisition
+ after any timeout determined by the consumer.
+
+ - EGL_BAD_ATTRIBUTE is generated if an attribute name in
+ <attrib_list> is not recognized or is not supported by the
+ consumer.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream created for <dpy>.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid
+ EGLDisplay.
+
+ - EGL_NOT_INITIALIZED is generated if <dpy> is not initialized.
+
+ Calling eglStreamConsumerReleaseAttribKHR will release a frame held
+ by the consumer back to the stream. If more than one frame is held
+ by the consumer, the frame returned is determined by the consumer
+ type and the contents of <attrib_list>. If no frames are currently
+ held, the behavior is determined by the consumer type. Once
+ returned, the consumer may no longer access the contents of the
+ frame, and attempts to do so will result in errors as determined by
+ the consumer type. Upon success, eglStreamConsumerReleaseAttribKHR
+ returns EGL_TRUE.
+
+ If eglStreamConsumerReleaseAttribKHR fails, EGL_FALSE is returned
+ and an error is generated.
+
+ - EGL_BAD_ACCESS is generated if the consumer of <stream> does
+ not support releasing frames through
+ eglStreamConsumerReleaseAttribKHR.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is not in state
+ EGL_STREAM_STATE_EMPTY_KHR,
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR or
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR.
+
+ - EGL_BAD_ATTRIBUTE is generated if an attribute name in
+ <attrib_list> is not recognized or is not supported by the
+ consumer.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream created for <dpy>.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid
+ EGLDisplay.
+
+ - EGL_NOT_INITIALIZED is generated if <dpy> is not initialized.
+
+If EGL_KHR_stream_consumer_gltexture is present in addition to
+EGL_KHR_stream_attrib, the eglStreamConsumerAcquireKHR function is
+equivalent to eglStreamConsumerAcquireAttribKHR with <attrib_list> set
+to NULL, the eglStreamConsumerReleaseKHR function is equivalent to
+eglStreamConsumerReleaseAttribKHR with <attrib_list> set to NULL, and
+the definitions provided for those functions define their behavior for
+a GL texture consumer.
+
+Add section 3.10.3 to section "3.10 EGLStreams"
+
+ 3.10.3 Connecting an EGLStream to a producer.
+
+ Before using an EGLStream it must be connected to a producer. The
+ EGLStream must be connected to a consumer before it may be
+ connected to a producer.
+
+ The size and colorformat of the images in the EGLStream are
+ determined by the EGL implementation based on the requirements of
+ the producer and the consumer. The EGL implementation may
+ determine these at the time the producer is connected to the
+ EGLStream, at the time that the first image frame is inserted into
+ the EGLStream, or any time in between (this is left up to the
+ implementation).
+
+ It is the responsibility of the producer to convert the images to
+ a form that the consumer can consume. The producer may negotiate
+ with the consumer as to what formats and sizes the consumer is
+ able to consume, but this negotiation (whether it occurs and how
+ it works) is an implementation detail. If the producer is unable
+ to convert the images to a form that the consumer can consume then
+ the attempt to connect the producer to the EGLStream will fail and
+ generate an EGL_BAD_MATCH error.
+
+ Refer to sections 3.10.3.1 and following for different ways to
+ connect a producer to an EGLStream.
+
+ Once an EGLStream is connected to a producer it will remain
+ connected to the same producer until the EGLStream is destroyed.
+ If the producer is destroyed then the EGLStream's state will
+ become EGL_STREAM_STATE_DISCONNECTED_KHR (refer to "3.10.4.3
+ EGL_STREAM_STATE_KHR Attribute").
+
+ Any attempt to connect an EGLStream which is not in state
+ EGL_STREAM_STATE_CONNECTING_KHR will fail and generate an
+ EGL_BAD_STATE_KHR error.
+
+ When an EGLStream is connected to a producer its state becomes
+ EGL_STREAM_STATE_EMPTY_KHR. At this point the producer may begin
+ inserting image frames and the consumer may begin consuming image
+ frames, so the state may immediately change to
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR and/or
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR.
+
+ 3.10.3.1 No way to connect producer to EGLStream
+
+ EGL does not currently define any mechanisms to connect a producer
+ to an EGLStream. These will be added via additional extensions.
+
+ (For example see extension specifications
+ EGL_KHR_stream_producer_eglsurface
+ EGL_KHR_stream_producer_aldatalocator
+ OpenMAX_AL_EGLStream_DataLocator
+ .)
+
+Add section 3.10.4 to section "3.10 EGLStreams"
+
+ 3.10.4 EGLStream Attributes
+
+ Each EGLStream contains a set of attributes and values as
+ described in table 3.10.4.4. Each attribute has a type and a
+ value and is either read-only (ro), read/write (rw) or initialize
+ only (io - meaning it may be set in the attrib_list but not
+ changed once the EGLStream is created).
+
+ Attribute Read/Write Type Section
+ -------------------------- ---------- ------ --------
+ EGL_STREAM_STATE_KHR ro EGLint 3.10.4.3
+ EGL_PRODUCER_FRAME_KHR ro EGLuint64KHR 3.10.4.4
+ EGL_CONSUMER_FRAME_KHR ro EGLuint64KHR 3.10.4.5
+ EGL_CONSUMER_LATENCY_USEC_KHR rw EGLint 3.10.4.6
+
+ Table 3.10.4.4 EGLStream Attributes
+
+ 3.10.4.1 Setting EGLStream Attributes
+
+ Call
+
+ EGLBoolean eglStreamAttribKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLint attribute,
+ EGLint value);
+
+ to set the value of an attribute for an EGLStream. The <value> is
+ the new value for <attribute>. Only read/write (rw) attributes
+ with type EGLint may be set with eglStreamAttribKHR (see "Table
+ 3.10.4.4 EGLStream Attributes").
+
+ If an error occurs, EGL_FALSE is returned and an error is
+ generated.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is in
+ EGL_STREAM_STATE_DISCONNECTED_KHR state.
+
+ - EGL_BAD_ATTRIBUTE is generated if <attribute> is not a valid
+ EGLStream attribute.
+
+ - EGL_BAD_ACCESS is generated if <attribute> is read only.
+
+ - EGL_BAD_PARAMETER is generated if value is outside the valid
+ range for <attribute>.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream created for <dpy>.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid,
+ initialized EGLDisplay.
+
+ 3.10.4.2 Querying EGLStream Attributes
+
+ Call
+
+ EGLBoolean eglQueryStreamKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLint attribute,
+ EGLint *value);
+
+ to query the value of an EGLStream's attribute with type EGLint
+ and call
+
+ EGLBoolean eglQueryStreamu64KHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLuint64KHR *value);
+
+ to query the value of an EGLStream's attribute with type
+ EGLuint64KHR.
+
+ If an error occurs EGL_FALSE is returned and an error is
+ generated.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream created for <dpy>.
+
+ - EGL_BAD_ATTRIBUTE is generated by eglQueryStreamKHR if
+ <attribute> is not a valid EGLStream attribute with type
+ EGLint.
+
+ - EGL_BAD_ATTRIBUTE is generated by eglQueryStreamu64KHR if
+ <attribute> is not a valid EGLStream attribute with type
+ EGLuint64KHR.
+
+ 3.10.4.3 EGL_STREAM_STATE_KHR Attribute
+
+ The EGL_STREAM_STATE_KHR attribute is read only. It indicates the
+ state of the EGLStream. The EGLStream may be in one of the
+ following states:
+
+ - EGL_STREAM_STATE_CREATED_KHR - The EGLStream has been created
+ but not yet connected to a producer or a consumer.
+
+ - EGL_STREAM_STATE_CONNECTING_KHR - The EGLStream has been
+ connected to a consumer but not yet connected to a producer.
+
+ - EGL_STREAM_STATE_EMPTY_KHR - the EGLStream has been connected
+ to a consumer and a producer, but the producer has not yet
+ inserted any image frames.
+
+ - EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR - the producer has
+ inserted at least one image frame that the consumer has not
+ yet retrieved.
+
+ - EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR - the producer has
+ inserted at least one image frame, and the consumer has
+ already retrieved the most recently inserted image frame.
+
+ - EGL_STREAM_STATE_DISCONNECTED_KHR - either the producer or the
+ consumer (or both) are no longer connected to the EGLStream
+ (e.g. because they have been destroyed). Once the
+ EGLStream is in this state it will remain in this state
+ until the EGLStream is destroyed. In this state only
+ eglQueryStreamKHR and eglDestroyStreamKHR are valid
+ operations.
+
+ Only the following state transitions may occur:
+
+ -> EGL_STREAM_STATE_CREATED_KHR
+ A new EGLStream is created in this state.
+
+ EGL_STREAM_STATE_CREATED_KHR ->
+ EGL_STREAM_STATE_CONNECTING_KHR
+ Occurs when a consumer is connected to the EGLStream.
+
+ EGL_STREAM_STATE_CONNECTING_KHR ->
+ EGL_STREAM_STATE_EMPTY_KHR
+ Occurs when a producer is connected to the EGLStream.
+
+ EGL_STREAM_STATE_EMPTY_KHR ->
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR
+ Occurs the first time the producer inserts an image frame.
+
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR ->
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR
+ Occurs when the consumer begins examining a newly inserted
+ image frame.
+
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR ->
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR
+ Occurs when the producer inserts a new image frame.
+
+ * ->
+ EGL_STREAM_STATE_DISCONNECTED_KHR
+ Occurs when the producer or consumer is destroyed or is
+ otherwise unable to function normally.
+
+
+ 3.10.4.4 EGL_PRODUCER_FRAME_KHR Attribute
+
+ The EGL_PRODUCER_FRAME_KHR attribute indicates how many image
+ frames have been inserted into the EGLStream by the producer.
+ This is also known as the "frame number" of the most recently
+ inserted frame (where the first frame inserted has a frame number
+ of 1). When EGL_STREAM_STATE_KHR is EGL_STREAM_STATE_CREATED_KHR,
+ EGL_STREAM_STATE_CONNECTING_KHR, or EGL_STREAM_STATE_EMPTY_KHR
+ then this value is 0. This value will wrap back to 0 after
+ about 10 million millennia.
+
+ 3.10.4.4 EGL_CONSUMER_FRAME_KHR Attribute
+
+ The EGL_CONSUMER_FRAME_KHR attribute indicates the frame number of
+ the image frame that the consumer most recently retrieved. This is
+ the value that EGL_PRODUCER_FRAME_KHR contained just after this
+ image frame was inserted into the EGLStream.
+
+ 3.10.4.5 EGL_CONSUMER_LATENCY_USEC_KHR Attribute
+
+ This attribute indicates the number of microseconds that elapse (on
+ average) from the time that an image frame is inserted into the
+ EGLStream by the producer until the image frame is visible to the
+ user.
+
+ It is the responsibility of the consumer to set this value. Some
+ types of consumers may simply set this value to zero or an
+ implementation constant value. Other consumers may adjust this
+ value dynamically as conditions change.
+
+ It is the responsibility of the producer to use this information to
+ insert image frames into the EGLStream at an appropriate time.
+ The producer should insert each image frame into the stream at the
+ time that frame should appear to the user MINUS the
+ EGL_CONSUMER_LATENCY_USEC_KHR value. Some types of producers may
+ ignore this value.
+
+ The application may modify this value to adjust the timing of the
+ stream (e.g. to make video frames coincide with an audio track
+ under direction from a user). However the value set by the
+ application may be overridden by some consumers that dynamically
+ adjust the value. This will be noted in the description of
+ consumers which do this.
+
+If EGL_KHR_stream_attrib is present, add to the end of section "3.10.4.1
+Setting EGLStream Attributes"
+
+ Attributes may also be set by calling
+
+ EGLBoolean eglSetStreamAttribKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLAttrib value);
+
+ This is equivalent to eglStreamAttribKHR, but allows attributes
+ with pointer and handle types, in addition to EGLint.
+
+If EGL_KHR_stream_attrib is present, add to the end of section "3.10.4.2
+Querying EGLStream Attributes"
+
+ Attributes may also be queried by calling
+
+ EGLBoolean eglQueryStreamAttribKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLAttrib *value);
+
+ This is equivalent to eglQueryStreamKHR, but allows attributes with
+ pointer and handle types, in addition to EGLint.
+
+Add sections 3.10.5 and 3.10.6 to section "3.10 EGLStreams"
+
+ 3.10.5 EGLStream operation
+
+ 3.10.5.1 EGLStream operation in mailbox mode
+
+ The EGLStream conceptually operates as a mailbox.
+
+ When the producer has a new image frame it empties the mailbox and
+ inserts the new image frame into the mailbox. If the image frame
+ is intended to be displayed at time T then the producer must
+ insert it into the EGLStream at time
+ T - EGL_CONSUMER_LATENCY_USEC_KHR
+
+ The consumer retrieves the image frame from the mailbox and
+ examines it. When the consumer is finished examining the image
+ frame it is either placed back in the mailbox (if the mailbox is
+ empty) or discarded (if the mailbox is not empty).
+
+ This operation implies 2 things:
+
+ - If the consumer consumes frames slower than the producer
+ inserts frames, then some frames may be lost (never seen by
+ the consumer).
+
+ - If the consumer consumes frames faster than the producer
+ inserts frames, then the consumer may see some frames more
+ than once.
+
+ Some details of EGLStream operation are dependent on the type of
+ producer and consumer that are connected to it. Refer to the
+ documentation for the producer and consumer for more details
+ (section 3.10.2.* and 3.10.3.*).
+
+
+ 3.10.6 Destroying an EGLStream
+
+ Call
+
+ EGLBoolean eglDestroyStreamKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream);
+
+ to mark an EGLStream for deletion. After this call returns the
+ <stream> will no longer be a valid stream handle. The resources
+ associated with the EGLStream may not be deleted until the
+ producer and consumer have released their references to the
+ resources (if any). Exactly how this is done is dependent on the
+ type of consumer and producer that is connected to the EGLStream.
+
+ If an error occurs, EGL_FALSE is returned and an error is
+ generated.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream created for <dpy>.
+
+
+Issues
+ 1. Are EGL_WIDTH and EGL_HEIGHT parameters needed?
+
+ RESOLVED: No. The width and height of images managed by the
+ stream are determined by the producer. No application access
+ to the size is currently required.
+
+ 2. Is EGL_BUFFER_SHOW_ALL_KHR required, or should the stream always
+ act as EGL_BUFFER_REPLACE_KHR?
+
+ RESOLVED: this has been removed. The old
+ EGL_BUFFER_SHOW_ALL_KHR behavior is described in a separate
+ extension: EGL_KHR_stream_fifo
+
+ 3. What are the exact semantics of the producer?
+
+ RESOLVED: The exact semantics vary depending on the type of
+ producer. Refer to the extension that defines the type of
+ producer for more information.
+
+ In general, the producer is responsible for inserting image
+ frames into the EGLStream at the correct time. The correct
+ time depends on how the image frames are being created and on
+ the value of EGL_CONSUMER_LATENCY_USEC_KHR.
+
+ 4. What are the exact semantics of the consumer?
+
+ RESOLVED: The exact semantics vary depending on the type of
+ consumer. Refer to the extension that defines the type of
+ consumer for more information.
+
+ In general, the consumer is responsible for retrieving image
+ frames from the EGLStream when they become available. The
+ consumer is also responsible for setting the
+ EGL_CONSUMER_LATENCY_USEC_KHR when that is possible.
+
+ 5. When will the EGLStream resources be deleted?
+
+ RESOLVED: this depends on the type of consumer and producer.
+ Refer to the description of the consumer and producer (e.g. in
+ the extension that describes them).
+
+ 6. How does A/V sync work?
+
+ RESOLVED: The producer is responsible for A/V sync, but the
+ consumer needs to help. The consumer indicates the latency
+ (the average time that it takes the consumer to retrieve an
+ image from the EGLStream and place it on the display screen)
+ by setting the EGL_CONSUMER_LATENCY_USEC_KHR. The producer
+ uses knowledge about the audio stream to determine the correct
+ time to display an image frame, and inserts the image frame at
+ that time MINUS the EGL_CONSUMER_LATENCY_USEC_KHR.
+
+ 7. What if the consumer cannot determine the latency?
+
+ RESOLVED: If the consumer does not set the
+ EGL_CONSUMER_LATENCY_USEC_KHR attribute then its default value
+ will be used. This default value is implementation defined
+ and may be zero. See the description of the specific type of
+ consumer you are using (e.g. the extension that defines it)
+ for more details related to that consumer.
+
+ 8. What colorformats are supported by EGLStream
+
+ RESOLVED: No specific formats are required, but it is expected
+ that this work with the main YUV formats supported by the
+ platform's video HW and the main RGB(A) formats supported by
+ the platform's OpenGL (ES) hardware. It is the responsibility
+ of the producer to negotiate a format that will work with the
+ consumer. If the internal formats supported by the producer
+ do not coincide with the internal formats supported by the
+ consumer then the producer may choose to convert to a format
+ that the consumer understands, or it may choose to fail and
+ generate an error when an attempt is made to connect it to the
+ EGLStream. Exactly which it does for which formats is further
+ discussed in the producer endpoint documentation (refer to the
+ extension that describes the producer endpoint).
+
+ 9. Is any EGLImage extension required by this extension?
+
+ RESOLVED: No. This extension may be implemented using some of
+ the same code that is used to implement EGLImages, but there
+ is no dependency on EGLImages.
+
+ 10. Why describe the "io" attribute type if no attributes use it.
+
+ RESOLVED: Future extensions will add attributes of "io" type
+ (initialize only - meaning they can be set in the attribute
+ list when creating the EGLStream, but not modified once the
+ EGLStream is created). Rather than requiring each such
+ extension to describe the "io" type (and possibly getting
+ slightly different definitions or types in different
+ extensions) the "io" type is defined here so that other
+ extensions can easily use it. This helps layered
+ extensions to all use the same language.
+
+
+Revision History
+
+ #27 (May 23, 2016) Daniel Kartch
+ - For compatibility with EGL 1.5 and support of 64-bit
+ platforms, add EGL_KHR_stream_attrib extension with variants
+ of original functions that accept attributes of type
+ EGLAttrib.
+ - Corrected line length violations.
+
+ #26 (July 12, 2012) Acorn Pooley
+ - Fix error in description of consumer latency.
+
+ #25 (October 12, 2011) Acorn Pooley
+ - Add issue 10
+
+ #24 (October 11, 2011) Acorn Pooley
+ - add error condition to eglDestroyStreamKHR
+
+ #23 (October 5, 2011) Acorn Pooley
+ - refer to related EGL_KHR_... extension specs rather than
+ EGL_NV_... ones.
+
+ #22 (September 27, 2011) Acorn Pooley
+ - Fix enum value for EGL_STREAM_STATE_KHR (bug 8064)
+
+ #21 (September 27, 2011) Acorn Pooley
+ - Assign enum values (bug 8064)
+
+ #20 (September 23, 2011) Acorn Pooley
+ - Rename EGL_NO_IMAGE_STREAM_KHR to EGL_NO_STREAM_KHR
+
+ #19 (Aug 3, 2011) Acorn Pooley
+ - fix some error conditions
+
+ #18 (Aug 2, 2011) Acorn Pooley
+ - Add eglQueryStreamu64KHR
+ - add EGLuint64KHR
+ - make EGL_PRODUCER_FRAME_KHR and EGL_CONSUMER_FRAME_KHR 64
+ bit.
+
+ #17 (Aug 2, 2011) Acorn Pooley
+ - fix grammar
+
+ #16 (July 6, 2011) Acorn Pooley
+ - rename from EGL_KHR_image_stream to EGL_KHR_stream
+
+ #15 (June 29, 2011) Acorn Pooley
+ - major re-write
+ - remove EGL_SWAP_MODE_KHR and EGL_BUFFER_SHOW_ALL_KHR
+ - add new functions:
+ eglStreamAttribKHR
+ eglQueryStreamKHR
+ - add new attributes:
+ EGL_CONSUMER_LATENCY_USEC_KHR
+ EGL_PRODUCER_FRAME_KHR
+ EGL_CONSUMER_FRAME_KHR
+ EGL_STREAM_STATE_KHR
+ - add concept of EGL_STREAM_STATE_KHR
+ - add new error:
+ EGL_BAD_STATE_KHR
+ - add more thorough overview section
+ - add description of buffering
+ - place the functions in section 3 of the spec (were in
+ section 2)
+ - mention some of the consumer and producer specs that may be
+ needed to make use of this extension.
+ - remove very old issues that no longer make any sense
+ - add new issues and resolutions
+
+ #14 (June 4, 2010) Greg Prisament
+ - fix minor typo
+
+ #13 (June 2, 2010) Marcus Lorentzon
+ - add EGL enum values
+
+ #12 (May 21, 2010) Marcus Lorentzon
+ - add clarifications on swap modes
+
+ #11 (April 13, 2010) Marcus Lorentzon
+ - fix tyops
+ - make eglDestroyStream return EGLBoolean, not void
+
+ #10 (March 17, 2010) Marcus Lorentzon
+ - fix typo
+ - remove obsolete text
+ - update issue 2 resolution
+
+ #9 (December 15, 2009) Marcus Lorentzon
+ - move EGL_IMAGE_USE_* attributes to the endpoint extension
+ - resolved issue 5
+
+ #8 (December 6, 2009) Marcus Lorentzon
+ - remove EGL_INIT_COLOR_KHR
+ - relax the definition of the Producer to allow not only video
+ frames to be generated
+ - clean up the language of recently produced, supplied, pending
+ images
+
+ #7 (October 19, 2009) Acorn Pooley
+ - Update based on comments from Robert and Bruce
+ - remove mention of OpenWF
+ - make EGL_BUFFER_REPLACE_KHR be the default EGL_SWAP_MODE_KHR
+ - add issue 5
+ - remove EGLAPI and EGLAPIENTRY
+
+ #6 (September 16, 2009) Acorn Pooley
+ - remove EGL_WIDTH and EGL_HEIGHT parameters
+ - add issue 4
+ - clarify swap modes
+ - other clarifications and simplifications
+
+ #5 (July 2, 2009) Acorn Pooley
+ - remove reference to no-longer-existing <images> parameter.
+ - mention dependancy on EGL_KHR_image_uses extension.
+ - add description of EGL_IMAGE_USE_AS_* enums.
+
+ #4 (June 3, 2009) Acorn Pooley
+ - Fix typos: change old EGLImageStream occurances to EGLStream
+
+ #3 (April 22, 2009) Marcus Lorentzon
+ - Updated revide comments
+ - Removed external image support
+
+ #2 (March 30, 2009) Marcus Lorentzon
+ - Replaced image surface with image stream
+
+ #1 (February 21, 2009) Marcus Lorentzon
+ - Initial draft
+
+# vim:ai:ts=4:sts=4:expandtab:textwidth=70
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_consumer_gltexture.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_consumer_gltexture.txt
new file mode 100644
index 0000000..e29551a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_consumer_gltexture.txt
@@ -0,0 +1,402 @@
+Name
+
+ KHR_stream_consumer_gltexture
+
+Name Strings
+
+ EGL_KHR_stream_consumer_gltexture
+
+Contributors
+
+ Acorn Pooley
+ Jamie Gennis
+ Marcus Lorentzon
+
+Contacts
+
+ Acorn Pooley, NVIDIA (apooley 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2011-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the Khronos Board of Promoters on December 2, 2011.
+
+Version
+
+ Version 11, June 18, 2012
+
+Number
+
+ EGL Extension #33
+
+Dependencies
+
+ Requires EGL 1.2.
+ Requires OpenGL ES 1.1 or OpenGL ES 2.0.
+
+ Requires the EGL_KHR_stream extension.
+ Requires the GL_NV_EGL_stream_consumer_external extension.
+
+Overview
+
+ This extension allows an OpenGL(ES) texture to be connected to an
+ EGLStream as its consumer. Image frames from the EGLStream can be
+ 'latched' into the texture as the contents of the texture. This
+ is equivalent to copying the image into the texture, but on most
+ implementations a copy is not needed so this is faster.
+
+New Procedures and Functions
+
+ EGLBoolean eglStreamConsumerGLTextureExternalKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream)
+
+ EGLBoolean eglStreamConsumerAcquireKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream);
+
+ EGLBoolean eglStreamConsumerReleaseKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream);
+
+New Tokens
+
+ Accepted as an attribute in the <attrib_list> parameter of
+ eglCreateStreamKHR and as the <attribute> parameter of
+ eglStreamAttribKHR and eglQueryStreamKHR
+
+ EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E
+
+Replace section "3.10.2.1 No way to connect consumer to EGLStream" in
+the EGL_KHR_stream extension with this:
+
+ 3.10.2.1 GL Texture External consumer
+
+ Call
+
+ EGLBoolean eglStreamConsumerGLTextureExternalKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream)
+
+ to connect the texture object currently bound to the active
+ texture unit's GL_TEXTURE_EXTERNAL_OES texture target in the
+ OpenGL or OpenGL ES context current to the calling thread as the
+ consumer of <stream>.
+
+ (Note: Before this can succeed a GL_TEXTURE_EXTERNAL_OES texture
+ must be bound to the active texture unit of the GL context current
+ to the calling thread. To create a GL_TEXTURE_EXTERNAL_OES
+ texture and bind it to the current context, call glBindTexture()
+ with <target> set to GL_TEXTURE_EXTERNAL_OES and <texture> set to
+ the name of the GL_TEXTURE_EXTERNAL_OES (which may or may not have
+ previously been created). This is described in the
+ GL_NV_EGL_stream_consumer_external extension.)
+
+ On failure EGL_FALSE is returned and an error is generated.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is not in state
+ EGL_STREAM_STATE_CREATED_KHR.
+
+ - EGL_BAD_ACCESS is generated if there is no GL context
+ current to the calling thread.
+
+ - EGL_BAD_ACCESS is generated unless a nonzero texture object
+ name is bound to the GL_TEXTURE_EXTERNAL_OES texture target
+ of the GL context current to the calling thread.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStreamKHR created for <dpy>.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid,
+ initialized EGLDisplay.
+
+
+ On success the texture is connected to the <stream>, <stream> is
+ placed in the EGL_STREAM_STATE_CONNECTING_KHR state, and EGL_TRUE is
+ returned.
+
+ If the texture is later deleted, connected to a different
+ EGLStream, or connected to an EGLImage, then <stream> will be
+ placed into the EGL_STREAM_STATE_DISCONNECTED_KHR state.
+
+ If the <stream> is later destroyed then the texture will be
+ "incomplete" until it is connected to a new EGLStream, connected
+ to a new EGLImage, or deleted.
+
+
+ Call
+
+ EGLBoolean eglStreamConsumerAcquireKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream);
+
+ to "latch" the most recent image frame from <stream> into the
+ texture that is the consumer of <stream>. The GLES context
+ containing the texture must be bound to the current thread. If
+ the GLES texture is also used in shared contexts current to other
+ threads then the texture must be re-bound in those contexts to
+ guarantee the new texture is used.
+
+ eglStreamConsumerAcquireKHR will block until either the timeout
+ specified by EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR expires, or the
+ value of EGL_BAD_STATE_KHR is neither EGL_STREAM_STATE_EMPTY_KHR nor
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR (whichever comes first).
+
+ Blocking effectively waits until a new image frame (that has never
+ been consumed) is available in the EGLStream. By default the
+ timeout is zero and the function does not block.
+
+ eglStreamConsumerAcquireKHR returns EGL_TRUE if an image frame was
+ successfully latched into the texture object.
+
+ If the producer has not inserted any new image frames since the
+ last call to eglStreamConsumerAcquireKHR then
+ eglStreamConsumerAcquireKHR will "latch" the same image frame it
+ latched last time eglStreamConsumerAcquireKHR was called. If the
+ producer has inserted one new image frame since the last call to
+ eglStreamConsumerAcquireKHR then eglStreamConsumerAcquireKHR will
+ "latch" the newly inserted image frame. If the producer has
+ inserted more than one new image frame since the last call to
+ eglStreamConsumerAcquireKHR then all but the most recently
+ inserted image frames are discarded and the
+ eglStreamConsumerAcquireKHR will "latch" the most recently
+ inserted image frame.
+
+ The application can use the value of EGL_CONSUMER_FRAME_KHR to
+ identify which image frame was actually latched.
+
+ On failure the texture becomes "incomplete", eglStreamConsumerAcquireKHR
+ returns EGL_FALSE, and an error is generated.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is not in state
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR or
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR.
+
+ - EGL_BAD_ACCESS is generated if there is no GL context
+ current to the calling thread, or if the GL context current
+ to the calling thread does not contain a texture that is
+ connected as the consumer of the EGLStream.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream created for <dpy>.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid,
+ initialized EGLDisplay.
+
+
+ After using the texture call
+
+ EGLBoolean eglStreamConsumerReleaseKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream);
+
+ to release the image frame back to the stream.
+ eglStreamConsumerReleaseKHR() will prevent the EGLStream and
+ producer from re-using and/or modifying the image frame until all
+ preceding GL commands that use the image frame as a texture have
+ completed. If eglStreamConsumerAcquireKHR() is called twice on the
+ same EGLStream without an intervening call to
+ eglStreamConsumerReleaseKHR() then eglStreamConsumerReleaseKHR() is
+ implicitly called at the start of eglStreamConsumerAcquireKHR().
+
+ After successfully calling eglStreamConsumerReleaseKHR the texture
+ becomes "incomplete".
+
+ If eglStreamConsumerReleaseKHR is called twice without a successful
+ intervening call to eglStreamConsumerAcquireKHR, or called with no
+ previous call to eglStreamConsumerAcquireKHR, then the call does
+ nothing and the texture remains in "incomplete" state. This is
+ not an error.
+
+ If eglStreamConsumerReleaseKHR fails EGL_FALSE is returned and an error is
+ generated.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is not in state
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR or
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR.
+
+ - EGL_BAD_ACCESS is generated if there is no GL context
+ current to the calling thread, or if the GL context current
+ to the calling thread does not contain the texture to which
+ the EGLStream is connected.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream created for <dpy>.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid,
+ initialized EGLDisplay.
+
+
+ The application should estimate the time that will elapse from the
+ time a new frame becomes available (i.e. the state becomes
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR) and the time the frame
+ is presented to the user. The application should set this as the
+ value of the EGL_CONSUMER_LATENCY_USEC attribute by calling
+ eglStreamAttribKHR(). The value will depend on the complexity of
+ the scene being rendered and the platform that the app is running
+ on. It may be difficult to estimate except by experimentation on
+ a specific platform. The default value is implementation
+ dependent and may be a good enough estimate for some situations.
+ If the estimate changes over time the application may modify the
+ value of EGL_CONSUMER_LATENCY_USEC.
+
+ If the EGLStream is deleted while an image frame is acquired (i.e.
+ after calling eglStreamConsumerAcquireKHR and before calling
+ eglStreamConsumerReleaseKHR) then the EGLStream resources will not
+ be freed until the acquired image frame is released. However it
+ is an error to call eglStreamConsumerReleaseKHR after deleting the
+ EGLStream because <stream> is no longer a valid handle. In this
+ situation the image can be released (and the EGLStream resources
+ freed) by doing any one of
+ - deleting the GL_TEXTURE_EXTERNAL (call glDeleteTextures)
+ - connecting the GL_TEXTURE_EXTERNAL to another EGLStream
+ (call eglStreamConsumerGLTextureExternalKHR)
+ - connecting the GL_TEXTURE_EXTERNAL to an EGLImage (if the
+ GL_OES_EGL_image_external extension is supported, call
+ glEGLImageTargetTexture2DOES)
+
+Add a new subsection 3.10.4.6 at the end of section "3.10.4 EGLStream
+Attributes" in the EGL_KHR_stream extension spec:
+
+ 3.10.4.6 EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR Attribute
+
+ This attribute is read/write. The default value is 0. It
+ indicates the maximum amount of time (in microseconds) that
+ eglStreamConsumerAcquireKHR should block. If 0 (the default) it
+ will not block at all. If negative it will block indefinitely.
+
+Issues
+ 1. How to notify the app when a new image is available
+ - callback?
+ - pro: easy to use
+ - con: introduces extra threads into EGL which does not define such
+ behavior now - would have to define a lot of semantics (e.g. what
+ can you call from the callback?)
+ - EGL_KHR_reusable_sync signaled?
+ - this is how EGL_KHR_stream_consumer_endpoint does it
+ - pro: simpler to specify
+ - pro: easy to use if that is all you are waiting for
+ - con: difficult to wait on this AND other events simultaneously?
+ - blocking call to eglStreamConsumerAcquireKHR?
+
+ RESOLVED: Use the EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR to make
+ eglStreamConsumerAcquireKHR blocking if desired. Additional
+ mechanisms can be added as layered extensions.
+
+ 2. What to call this extension?
+ EGL_NV_stream_consumer_gltexture
+ EGL_EXT_stream_consumer_gltexture
+ EGL_KHR_stream_consumer_gltexture
+ EGL_KHR_stream_consumer_gltexture_external
+
+ RESOLVED: EGL_KHR_stream_consumer_gltexture
+
+ 3. Should it be possible to connect an EGLStream to this consumer
+ (texture), and then later reconnect the same stream to a different
+ consumer?
+
+ RESOLVED: no
+
+ There may be reasons to allow this later, but for the time being
+ there is no use for this. Adding this functionality can be
+ considered in the future with a layered extension.
+
+ 4. Do we need both this extension and
+ GL_NV_EGL_stream_consumer_external? Should we just have one
+ extension that takes the place of both? If so should it be an
+ EGL or a GL extension?
+
+ UNRESOLVED
+
+ SUGGESTION: need both
+
+ See issue 1 in GL_NV_EGL_stream_consumer_external.txt
+
+ 5. What happens if the EGLStream is deleted while the consumer
+ has an image acquired?
+
+ This case is a problem because after the EGLStream is deleted
+ the EGLStreamKHR handle is no longer valid, which means
+ eglStreamConsumerReleaseKHR cannot be called (because it would
+ return EGL_BAD_STREAM).
+
+ Possible resolutions:
+
+ A) Do not allow the EGLStream to be deleted while an image is
+ acquired.
+
+ B) Allow the EGLStream to be deleted. Allow the EGLStreamKHR
+ handle to be used in a call to eglStreamConsumerReleaseKHR()
+ after it has been deleted.
+
+ C) Allow the EGLStream to be deleted. It is an error to call
+ eglStreamConsumerReleaseKHR() after the stream is deleted. To
+ release the image the app must
+ - delete the GL_TEXTURE_EXTERNAL texture object
+ or - connect another EGLStream to the GL_TEXTURE_EXTERNAL
+ texture object
+ or - connect an EGLImage to the GL_TEXTURE_EXTERNAL
+ texture object
+
+ D) Make the call to EGLStream implicitly call
+ eglStreamConsumerReleaseKHR if an image is acquired. This
+ requires the GL context is current to the thread that deletes
+ the EGLStream.
+
+ E) Make the call to EGLStream implicitly call
+ eglStreamConsumerReleaseKHR if an image is acquired, and state
+ that this has to work even if the GL context is current to a
+ different thread or not current to any thread.
+
+ Pros/cons:
+ - B violates EGL object handle lifetime policies
+ - E is hard/impossible to implement on some systems
+ - D makes deletion fail for complicated reasons
+ - A makes deletion fail for less complicated reasons
+
+ RESOLVED: option C
+
+Revision History
+
+ #11 (June 18. 2012) Acorn Pooley
+ - Replace EGLStream with EGLStreamKHR in function prototypes.
+
+ #10 (October 12, 2011) Acorn Pooley
+ - Fix confusing error in eglStreamConsumerAcquireKHR description.
+
+ #9 (October 4, 2011) Acorn Pooley
+ - Convert from an NV extension to a KHR extension
+
+ #8 (September 30, 2011) Acorn Pooley
+ - Add issue 5 and clarify EGLStream deletion while image is
+ acquired.
+
+ #7 (September 27, 2011) Acorn Pooley
+ - Assign enum values (bug 8064)
+
+ #6 (Aug 3, 2011) Acorn Pooley
+ - rename GL_OES_EGL_stream_external to
+ GL_NV_EGL_stream_consumer_external
+
+ #5 (Aug 2, 2011) Acorn Pooley
+ - Add dependency on GL_OES_EGL_stream_external
+
+ #4 (Aug 2, 2011) Acorn Pooley
+ - Fix spelling and grammar
+
+ #3 (July 6, 2011) Acorn Pooley
+ - Rename EGL_KHR_image_stream to EGL_KHR_stream
+
+ #2 (June 29, 2011) Acorn Pooley
+ - change how texture is connected to stream to match
+ EGL_KHR_stream spec.
+ - Add EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_NV
+
+ #1 (April 20, 2011) Acorn Pooley
+ - initial draft
+# vim:ai:ts=4:sts=4:expandtab:textwidth=70
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_cross_process_fd.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_cross_process_fd.txt
new file mode 100644
index 0000000..ecfefd6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_cross_process_fd.txt
@@ -0,0 +1,560 @@
+Name
+
+ KHR_stream_cross_process_fd
+
+Name Strings
+
+ EGL_KHR_stream_cross_process_fd
+
+Contributors
+
+ Acorn Pooley
+ Ian Stewart
+
+Contacts
+
+ Acorn Pooley, NVIDIA (apooley 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2011-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the EGL Working Group on June 6, 2012.
+ Approved by the Khronos Board of Promoters on July 27, 2012.
+
+Version
+
+ Version 8 - June 5, 2012
+
+Number
+
+ EGL Extension #41
+
+Dependencies
+
+ Requires EGL 1.2.
+ Requires EGL_KHR_stream
+
+ This extension is written based on the wording of the EGL 1.2
+ specification.
+
+ This extension interacts with the following extensions if they are
+ also present:
+ EGL_KHR_stream_producer_eglsurface
+ EGL_KHR_stream_consumer_gltexture
+ EGL_KHR_stream_producer_aldatalocator
+ EGL_KHR_stream_fifo
+
+Overview
+
+ This extension allows an EGLStreamKHR object handle to be
+ duplicated into another process so that the EGLStream producer can
+ be in one process while the EGLStream consumer can be in another
+ process.
+
+ Duplicating the EGLStreamKHR object handle into another process is
+ peformed in 3 steps
+
+ 1) Get a file descriptor associated with the EGLStream.
+ 2) Duplicate the file descriptor into another process.
+ 3) Create an EGLStreamKHR from the duplicated file descriptor in
+ the other process.
+
+ The file descriptor is obtained by calling
+ eglGetStreamFileDescriptorKHR().
+
+ Duplicating the file descriptor into another process is outside
+ the scope of this extension. See issue #1 for an example of how
+ to do this on a Linux system.
+
+ The EGLStreamKHR object handle is created in the second process by
+ passing the file descriptor to the
+ eglCreateStreamFromFileDescriptorKHR() function. This must be
+ done while the EGLStream is in the EGL_STREAM_STATE_CREATED_KHR
+ state.
+
+ Once the EGLStreamKHR object handle is created in the second
+ process, it refers to the same EGLStream as the EGLStreamKHR
+ object handle in the original process. A consumer can be
+ associated with the EGLStream from either process. A producer can
+ be associated with the EGLStream from either process.
+
+New Types
+
+ Represents a native OS file descriptor.
+
+ typedef int EGLNativeFileDescriptorKHR
+
+New Procedures and Functions
+
+ EGLNativeFileDescriptorKHR eglGetStreamFileDescriptorKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream);
+
+ EGLStreamKHR eglCreateStreamFromFileDescriptorKHR(
+ EGLDisplay dpy,
+ EGLNativeFileDescriptorKHR file_descriptor);
+
+New Tokens
+
+ Returned from eglGetStreamFileDescriptorKHR on error.
+
+ #define EGL_NO_FILE_DESCRIPTOR_KHR ((EGLNativeFileDescriptorKHR)(-1))
+
+Add a new section just after section "3.10.1 Creating an EGLStream" in
+the EGL_KHR_stream extension
+
+ 3.10.1.1 Duplicating an EGLStream from a file descriptor
+
+ Call
+
+ EGLNativeFileDescriptorKHR eglGetStreamFileDescriptorKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream);
+
+ to create a file descriptor that refers to the EGLStream.
+ <stream> must be an EGLStream in the EGL_STREAM_STATE_CREATED_KHR
+ state. eglGetStreamFileDescriptorKHR may be called at most once
+ for any <stream>.
+
+ On success a file descriptor is returned which can be used
+ to create a duplicate EGLStreamKHR handle which refers to the same
+ underlying EGLStream as <stream>. This file descriptor and file
+ descriptors duplicated from it should only be used in a call to
+ eglCreateStreamFromFileDescriptorKHR() and/or a call to close().
+ In particular reads, writes, and other operations on the file
+ descriptor result in undefined behavior.
+
+ On failure the functions returns EGL_NO_FILE_DESCRIPTOR_KHR and
+ generates an error
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid
+ initialized EGLDisplay
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStreamKHR handle created for <dpy>.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is not in the
+ EGL_STREAM_STATE_CREATED_KHR state or if
+ eglGetStreamFileDescriptorKHR() has previously been called
+ on this <stream>.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> was not created
+ by eglCreateStreamKHR (e.g. if it was created by
+ eglCreateStreamFromFileDescriptorKHR).
+
+ The file descriptor returned by eglGetStreamFileDescriptorKHR can
+ be duplicated into a different process address space using system
+ specific mechanisms outside the scope of this specification. (For
+ example, on a Linux system it can be sent over a UNIX domain
+ socket using sendmsg/recvmsg.)
+
+ Call
+
+ EGLStreamKHR eglCreateStreamFromFileDescriptorKHR(
+ EGLDisplay dpy,
+ EGLNativeFileDescriptorKHR file_descriptor);
+
+ to create an EGLStreamKHR handle. <file_descriptor> must be a
+ file descriptor returned by eglGetStreamFileDescriptorKHR or a
+ file descriptor duplicated from such a file descriptor (possibly
+ in a different process). The EGLStream must be in the
+ EGL_STREAM_STATE_CREATED_KHR or EGL_STREAM_STATE_CONNECTING_KHR
+ state.
+
+ On success an EGLStreamKHR handle is returned. This EGLStreamKHR
+ handle refers to the same EGLStream which was used to create the
+ <file_descriptor> or the file descriptor from which
+ <file_descriptor> was duplicated.
+
+ After the file descriptor is passed to
+ eglCreateStreamFromFileDescriptorKHR it may no longer be used to
+ create a new EGLStream.
+
+ On failure EGL_NO_STREAM_KHR is returned and an error is
+ generated.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid
+ initialized EGLDisplay
+
+ - EGL_BAD_ATTRIBUTE is generated if <file_descriptor> is
+ EGL_NO_FILE_DESCRIPTOR_KHR.
+
+ - EGL_BAD_ATTRIBUTE is generated if <file_descriptor> is
+ not an open file descriptor referring to an EGLStream
+ created on the same Native Display as <dpy>.
+
+ - EGL_BAD_ATTRIBUTE is generated if <file_descriptor> has
+ already been used to create a stream handle via a previous
+ call to eglCreateStreamFromFileDescriptorKHR.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is not in the
+ EGL_STREAM_STATE_CREATED_KHR or
+ EGL_STREAM_STATE_CONNECTING_KHR state.
+
+ The application should close the file descriptor and any file
+ descriptors duplicated from it once
+ eglCreateStreamFromFileDescriptorKHR has returned. Open file
+ descriptors will consume resources until they are closed or until
+ all processes that hold them open have terminated. Closing the
+ file descriptors after calling
+ eglCreateStreamFromFileDescriptorKHR will not affect the
+ associated EGLStream. If an application calls
+ eglGetStreamFileDescriptorKHR and then determines that the file
+ descriptor and/or the EGLStream is no longer needed then it may
+ (and should) close the file descriptor and destroy the EGLStream
+ (this is not considered an error).
+
+ If a process which has successfully connected a consumer or
+ producer to the EGLStream terminates (normally or abnormally) then
+ the EGLStream state becomes EGL_STREAM_STATE_DISCONNECTED_KHR.
+
+ If a process has created an EGLStreamKHR handle either with
+ eglCreateStreamKHR or eglCreateStreamFromFileDescriptorKHR but has
+ not connected a producer or consumer to the stream, and this
+ process terminates (normally or abnormally) then this has no
+ effect on the EGLStream.
+
+Interactions with the EGL_KHR_stream_producer_eglsurface extension.
+
+ The eglCreateStreamProducerSurfaceKHR() function can be called
+ from either the process that created the original EGLStreamKHR, or
+ from the process which called eglCreateStreamFromFileDescriptorKHR.
+
+Interactions with the EGL_KHR_stream_consumer_gltexture extension.
+
+ The eglStreamConsumerGLTextureExternalKHR() function can be called
+ from either the process that created the original EGLStreamKHR, or
+ from the process which called
+ eglCreateStreamFromFileDescriptorKHR. The
+ eglStreamConsumerAcquireKHR() and eglStreamConsumerReleaseKHR()
+ functions must be called from the same process that calls
+ eglStreamConsumerGLTextureExternalKHR() (or else they will fail
+ and generate an EGL_BAD_ACCESS error).
+
+Interactions with the EGL_KHR_stream_producer_aldatalocator extension.
+
+ The CreateMediaPlayer() method can be called from either the
+ process that created the original EGLStreamKHR, or from the
+ process which called eglCreateStreamFromFileDescriptorKHR.
+
+Interactions with the EGL_KHR_stream_fifo extension.
+
+ The queries for EGL_STREAM_FIFO_LENGTH_KHR,
+ EGL_STREAM_TIME_NOW_KHR, EGL_STREAM_TIME_CONSUMER_KHR, and
+ EGL_STREAM_TIME_PRODUCER_KHR can be made from either process. The
+ time values returned by the EGL_STREAM_TIME_NOW_KHR query will be
+ consistent between the two processes (i.e. if queried at the same
+ time from both processes, the same value (plus or minus some
+ margin of error) will be returned).
+
+Interactions with the EGL_NV_stream_cross_process_fd extension.
+
+ These extensions may both exist on the same implementation and
+ are functionally equivalent. Mixing and matching file descriptors
+ from one extension with functions from the other is allowed.
+
+Interactions with the EGL_NV_stream_sync extension.
+
+ The eglCreateStreamSyncNV() function may only be called from a
+ process which has successfully connected a consumer to the
+ EGLStream. Otherwise eglCreateStreamSyncNV generates a
+ EGL_BAD_ACCESS error.
+
+Issues
+ 1. How does the application transfer the file descriptor to
+ another process?
+
+ RESOLVED: This is outside the scope of this extension. The
+ application can use existing operating system mechanisms for
+ duplicating the file descriptor into another process. For
+ example on Linux a file descriptor can be sent over a UNIX
+ domain socket using the following code (call send_fd() to
+ send the file descriptor, and receive_fd() in the other
+ process to receive the file descriptor). (The following code
+ is placed into the public domain by its author, Acorn Pooley)
+
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+
+ #define FATAL_ERROR() exit(1)
+ #define SOCKET_NAME "/tmp/example_socket"
+
+ /* Send <fd_to_send> (a file descriptor) to another process */
+ /* over a unix domain socket named <socket_name>. */
+ /* <socket_name> can be any nonexistant filename. */
+ void send_fd(const char *socket_name, int fd_to_send)
+ {
+ int sock_fd;
+ struct sockaddr_un sock_addr;
+ struct msghdr msg;
+ struct iovec iov[1];
+ char ctrl_buf[CMSG_SPACE(sizeof(int))];
+ struct cmsghdr *cmsg = NULL;
+
+ sock_fd = socket(PF_UNIX, SOCK_STREAM, 0);
+ if (sock_fd < 0) FATAL_ERROR();
+
+ memset(&sock_addr, 0, sizeof(struct sockaddr_un));
+ sock_addr.sun_family = AF_UNIX;
+ strncpy(sock_addr.sun_path,
+ socket_name,
+ sizeof(sock_addr.sun_path)-1);
+
+ while (connect(sock_fd,
+ (const struct sockaddr*)&sock_addr,
+ sizeof(struct sockaddr_un))) {
+ printf("Waiting for reciever\n");
+ sleep(1);
+ }
+
+ memset(&msg, 0, sizeof(msg));
+
+ iov[0].iov_len = 1; // must send at least 1 byte
+ iov[0].iov_base = "x"; // any byte value (value ignored)
+ msg.msg_iov = iov;
+ msg.msg_iovlen = 1;
+
+ memset(ctrl_buf, 0, sizeof(ctrl_buf));
+ msg.msg_control = ctrl_buf;
+ msg.msg_controllen = sizeof(ctrl_buf);
+
+ cmsg = CMSG_FIRSTHDR(&msg);
+ cmsg->cmsg_level = SOL_SOCKET;
+ cmsg->cmsg_type = SCM_RIGHTS;
+ cmsg->cmsg_len = CMSG_LEN(sizeof(int));
+ *((int *) CMSG_DATA(cmsg)) = fd_to_send;
+
+ msg.msg_controllen = cmsg->cmsg_len;
+
+ if (sendmsg(sock_fd, &msg, 0) <= 0) FATAL_ERROR();
+
+ close(sock_fd);
+ }
+
+ /* Listen on a unix domain socket named <socket_name> and */
+ /* receive a file descriptor from another process. */
+ /* Returns the file descriptor. Note: the integer value */
+ /* of the file descriptor may be different from the */
+ /* integer value in the other process, but the file */
+ /* descriptors in each process will refer to the same file */
+ /* object in the kernel. */
+ int receive_fd(const char *socket_name)
+ {
+ int listen_fd;
+ struct sockaddr_un sock_addr;
+ int connect_fd;
+ struct sockaddr_un connect_addr;
+ socklen_t connect_addr_len = 0;
+ struct msghdr msg;
+ struct iovec iov[1];
+ char msg_buf[1];
+ char ctrl_buf[CMSG_SPACE(sizeof(int))];
+ struct cmsghdr *cmsg;
+
+ listen_fd = socket(PF_UNIX, SOCK_STREAM, 0);
+ if (listen_fd < 0) FATAL_ERROR();
+
+ unlink(socket_name);
+
+ memset(&sock_addr, 0, sizeof(struct sockaddr_un));
+ sock_addr.sun_family = AF_UNIX;
+ strncpy(sock_addr.sun_path,
+ socket_name,
+ sizeof(sock_addr.sun_path)-1);
+
+ if (bind(listen_fd,
+ (const struct sockaddr*)&sock_addr,
+ sizeof(struct sockaddr_un)))
+ FATAL_ERROR();
+
+ if (listen(listen_fd, 1)) FATAL_ERROR();
+
+ connect_fd = accept(
+ listen_fd,
+ (struct sockaddr *)&connect_addr,
+ &connect_addr_len);
+ close(listen_fd);
+ unlink(socket_name);
+ if (connect_fd < 0) FATAL_ERROR();
+
+ memset(&msg, 0, sizeof(msg));
+
+ iov[0].iov_base = msg_buf;
+ iov[0].iov_len = sizeof(msg_buf);
+ msg.msg_iov = iov;
+ msg.msg_iovlen = 1;
+
+ msg.msg_control = ctrl_buf;
+ msg.msg_controllen = sizeof(ctrl_buf);
+
+ if (recvmsg(connect_fd, &msg, 0) <= 0) FATAL_ERROR();
+
+ cmsg = CMSG_FIRSTHDR(&msg);
+ if (!cmsg) FATAL_ERROR();
+ if (cmsg->cmsg_level != SOL_SOCKET) FATAL_ERROR();
+ if (cmsg->cmsg_type != SCM_RIGHTS) FATAL_ERROR();
+
+ return *(int *) CMSG_DATA(cmsg);
+ }
+
+ 2. Does this extension work with all consumers and all producers?
+
+ RESOLVED: This extension is compatible with
+ EGL_KHR_stream_producer_eglsurface
+ EGL_KHR_stream_consumer_gltexture
+ EGL_KHR_stream_producer_aldatalocator
+ EGL_KHR_stream_fifo
+ as described in the Interactions sections. Whether an
+ EGLStream that has been duplicated into another process will
+ work with other types of consumers and producers should be
+ mentioned in the description of those consumers and producers.
+
+ 3. Does EGL create a file descriptor for every EGLStream when the
+ EGLStream is created, or is the file descriptor be created
+ when eglGetStreamFileDescriptorKHR is called?
+
+ RESOLVED: This is implementation dependent. However,
+ recommended behavior is to create the file descriptor when
+ eglGetStreamFileDescriptorKHR is called. This avoids
+ polluting the file descriptor namespace (which may have a
+ limited size on some systems) with descriptors for EGLStreams
+ which will only be used inside a single process. The
+ eglGetStreamFileDescriptorKHR function will fail and generate
+ an EGL_BAD_ALLOC error if it is unable to allocate a file
+ descriptor for the EGLStream.
+
+ 4. Should the EGLStream be created from the file descriptor with
+ the existing eglCreateStreamKHR function or with a new
+ function dedicated to that purpose?
+
+ The advantage of creating a new function is that a new
+ parameter can be added with a specific type. This is not
+ really necessary for this extension since a file descriptor is
+ a small integer which can fit into the EGLint in the
+ eglCreateStreamKHR attrib_list. However, other similar
+ extensions may be invented that use other types of handles
+ (not file descriptors) which may not fit into an EGLint.
+ Creating a dedicated function allows these other extensions to
+ use a similar function.
+
+ RESOLVED: Use a different function.
+
+ 5. How does this extension interact with the
+ EGL_NV_stream_cross_process_fd extension?
+
+ RESOLVED: These extensions may both exist on the same
+ implementation and are functionally equivalent. Mixing and
+ matching file descriptors from one extension with functions
+ from the other is allowed.
+
+ 6. Who should close the file descriptors and when?
+
+ There is no way for the EGL implementation to safely close all
+ the file descriptors associated with an EGLStream because some
+ of them may have been created using OS specific duping
+ mechanisms. Also, the app may need to close a descriptor if
+ it runs into an error before it is able to call
+ eglCreateStreamFromFileDescriptorKHR. Therefore the
+ application will need to close at least some of the created
+ file descriptors. To make things simple and clear it is
+ therefore left up to the app to close all the file
+ descriptors. The app is not *required* to do this, but not
+ doing so will "leak" file descriptors which will consume
+ resources until the process terminates.
+
+ Allowing the app to close all file descriptors as soon as
+ eglCreateStreamFromFileDescriptorKHR returns simplifies the
+ app (no need to keep track of open file descriptors).
+
+ RESOLVED: Application is responsible for closing all file
+ descriptors. They can be safely closed as soon as
+ eglCreateStreamFromFileDescriptorKHR returns.
+
+ 7. What happens when an invalid file descriptor is passed to
+ eglCreateStreamFromFileDescriptorKHR()?
+
+ RESOLVED: The implementation must detect this and generate an
+ error. If the file descriptor refers to a file then the
+ implementation may not modify the file, change the seek
+ location, or otherwise modify the file descriptor.
+
+ 8. What happens if one process hangs or crashes?
+
+ RESOLVED: If either the consumer's or producer's process
+ terminates (normally or abnormally) the EGL implementation
+ must notice this and place the EGLStream in
+ EGL_STREAM_STATE_DISCONNECTED_KHR state. If the consumer is
+ blocked in a eglStreamConsumerAcquireKHR() call, the call will
+ generate an EGL_BAD_STATE_KHR message and return EGL_FALSE.
+ If the consumer process has created a reusable sync object with
+ eglCreateStreamSyncNV() and is blocking in a
+ eglClientWaitSyncKHR() call, the call will block until the
+ timeout runs out.
+
+ If the producer process "hangs" (e.g. enters an infinite loop,
+ blocks in a kernel call, etc) then the consumer process will
+ continue to function. The consumer will continue to use the
+ last frame that the producer produced. If the producer has
+ not yet produced a frame then the EGLStream will be in
+ EGL_STREAM_STATE_EMPTY_KHR state and no frame will be
+ available. The consumer process can block in some situations:
+ - If a EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR is set then
+ eglStreamConsumerAcquireKHR() will block until the
+ timeout runs out (or indefinitely if timeout is
+ negative).
+ - eglClientWaitSyncKHR() will block until the timeout runs
+ out.
+
+ If the consumer process "hangs" then the producer process will
+ continue to function. If the EGLStream has had
+ EGL_STREAM_FIFO_LENGTH_KHR set to a nonzero value then the
+ producer will block indefinitely when it fills the fifo and
+ tries to insert another frame. Otherwise the producer will
+ not block (as new frames are inserted into the EGLStream old
+ ones will be discarded).
+
+Revision History
+
+ #8 (June 5, 2012) Acorn Pooley
+ - rename from XXX to KHR
+
+ #7 (June 5, 2012) Acorn Pooley
+ - Add issue 8.
+ - Better define EGLStream behavior when a process terminates.
+ - Add Interactions with the EGL_NV_stream_sync extension.
+
+ #6 (April 20, 2012) Ian Stewart
+ - Fix extension/function names in interactions
+ - Removed references to NV_stream_sync.
+ - Changed interactions with NV_stream_cross_process_fd such
+ that they are interchangeable.
+
+ #5 (April 18, 2012) Acorn Pooley
+ - Add issue 7
+ - define errors generated when passing invalid file descriptors
+
+ #4 (January 29, 2012) Acorn Pooley
+ - Fork EGL_XXX_stream_cross_process_fd.txt from
+ EGL_NV_stream_cross_process_fd.txt to make changes suggested
+ by working group.
+ - add issues 4, 5, and 6.
+
+ #3 (January 6, 2012) Acorn Pooley
+ - fix typos (EGLImage -> EGLStream)
+
+ #2 (December 7, 2011) Acorn Pooley
+ - Upload to Khronos for review
+
+ #1 (September 27, 2011) Acorn Pooley
+ - Initial draft
+
+# vim:ai:ts=4:sts=4:expandtab:textwidth=70
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_fifo.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_fifo.txt
new file mode 100644
index 0000000..3d9d985
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_fifo.txt
@@ -0,0 +1,433 @@
+Name
+
+ KHR_stream_fifo
+
+Name Strings
+
+ EGL_KHR_stream_fifo
+
+Contributors
+
+ Acorn Pooley
+
+Contacts
+
+ Acorn Pooley, NVIDIA (apooley 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2011-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the Khronos Board of Promoters on December 2, 2011.
+
+Version
+
+ Version 6, October 12, 2011
+
+Number
+
+ EGL Extension #36
+
+Dependencies
+
+ Requires EGL 1.2.
+ Requires the EGL_KHR_stream extension.
+
+ This extension is written based on the wording of the EGL 1.2
+ specification.
+
+ The EGL_KHR_stream_producer_eglsurface and
+ EGL_NV_stream_producer_eglsurface extensions affect the wording of
+ this extension.
+
+ The EGL_KHR_stream_producer_aldatalocator and
+ EGL_NV_stream_producer_aldatalocator extensions affect the wording
+ of this extension.
+
+ The EGL_KHR_stream_consumer_gltexture and
+ EGL_NV_stream_consumer_gltexture extensions affect the wording
+ of this extension.
+
+Overview
+
+ This extension allows an EGLStream to operate as a fifo rather
+ than as a mailbox.
+
+ The EGL_KHR_stream extension defines the EGLStream object.
+ The EGLStream object works like a 1 entry mailbox, allowing the
+ consumer to consume the frame that the producer most recently
+ inserted. If the consumer requests image frames faster than the
+ producer creates them then it gets the most recent one over and
+ over until a new one is inserted. If the producer inserts frames
+ faster than the consumer can consume them then the extra frames
+ are discarded. The producer is never stalled.
+
+ This extension allows an EGLStream to be placed into fifo mode.
+ In fifo mode no images are discarded. If the producer attempts to
+ insert a frame and the fifo is full then the producer will stall
+ until there is room in the fifo. When the consumer retrieves an
+ image frame from the EGLStream it will see the image frame that
+ immediately follows the image frame that it last retrieved (unless
+ no such frame has been inserted yet in which case it retrieves the
+ same image frame that it retrieved last time).
+
+ Timing of the EGLStream in mailbox mode, as described by the
+ EGL_KHR_stream extension, is the responsibility of the
+ producer (with help from the consumer in the form of the
+ EGL_CONSUMER_LATENCY_USEC_KHR hint).
+
+ In contrast, timing of an EGLStream in fifo mode is the
+ responsibility of the consumer. Each image frame in the fifo has
+ an associated timestamp set by the producer. The consumer can use
+ this timestamp to determine when the image frame is intended to be
+ displayed to the user.
+
+
+New Types
+
+ This type represents an absolute time in nanoseconds.
+
+ typedef khronos_utime_nanoseconds_t EGLTimeKHR
+
+New functions
+
+ EGLBoolean eglQueryStreamTimeKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLTimeKHR *value);
+
+New Tokens
+
+ Accepted as an attribute in the <attrib_list> parameter of
+ eglCreateStreamKHR and as the <attribute> parameter of
+ eglQueryStreamKHR.
+
+ EGL_STREAM_FIFO_LENGTH_KHR 0x31FC
+
+ These enums are accepted the <attribute> parameter of
+ eglQueryStreamTimeKHR.
+
+ EGL_STREAM_TIME_NOW_KHR 0x31FD
+ EGL_STREAM_TIME_CONSUMER_KHR 0x31FE
+ EGL_STREAM_TIME_PRODUCER_KHR 0x31FF
+
+Add 4 new entries to "Table 3.10.4.4 EGLStream Attributes" in the
+EGL_KHR_stream extension spec:
+
+ Attribute Read/Write Type Section
+ -------------------------- ---------- ---------- --------
+ EGL_STREAM_FIFO_LENGTH_KHR io EGLint 3.10.4.xx
+ EGL_STREAM_TIME_NOW_KHR ro EGLTimeKHR 3.10.4.xx
+ EGL_STREAM_TIME_CONSUMER_KHR ro EGLTimeKHR 3.10.4.xx
+ EGL_STREAM_TIME_PRODUCER_KHR ro EGLTimeKHR 3.10.4.xx
+
+Add a new paragraph to the end of section "3.10.4.2 Querying EGLStream
+Attributes" in the EGL_KHR_stream extension.
+
+ Call
+
+ EGLBoolean eglQueryStreamTimeKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLTimeKHR *value);
+
+ to query <attribute> from <stream> for attributes whose type is
+ EGLTimeKHR.
+
+ If an error occurs EGL_FALSE is returned and an error is
+ generated.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream created for <dpy>.
+
+ - EGL_BAD_ATTRIBUTE is generated if <attribute> is not a valid
+ EGLStream attribute with type EGLTimeKHR.
+
+
+Add new sections 3.1.4.xx at the end of section "3.10.4 EGLStream
+Attributes" in the EGL_KHR_stream extension.
+
+ 3.1.4.x EGL_STREAM_FIFO_LENGTH_KHR Attribute
+
+ The EGL_STREAM_FIFO_LENGTH_KHR may be set in the <attrib_list>
+ parameter of eglCreateStreamKHR(), but is read-only once the
+ stream is created. It can be queried with eglQueryStreamKHR().
+ Its default value is 0. Setting it to a value less than 0
+ generates an EGL_BAD_PARAMETER error.
+
+ When EGL_STREAM_FIFO_LENGTH_KHR is 0 the EGLStream operates in
+ mailbox mode as described in section "3.10.5.1 EGLStream operation
+ in mailbox mode"
+
+ When EGL_STREAM_FIFO_LENGTH_KHR is greater than 0 then the
+ EGLStream operates in fifo mode as described in section "3.10.5.2
+ EGLStream operation in fifo mode".
+
+ In fifo mode the EGLStream contains up to N image frames, where N
+ is the value of the EGL_STREAM_FIFO_LENGTH_KHR attribute.
+
+ The value of EGL_STREAM_FIFO_LENGTH_KHR is independent from the
+ number of internal buffers used by the producer. The producer may
+ require some number of internal buffers, but those are in addition
+ to the fifo buffers described by EGL_STREAM_FIFO_LENGTH_KHR.
+
+ 3.1.4.x+1 EGL_STREAM_TIME_NOW_KHR Attribute
+
+ This indicates the current time. It is measured as the number of
+ nanoseconds since some arbitrary event (e.g. the last time the
+ system rebooted).
+
+ 3.1.4.x+2 EGL_STREAM_TIME_CONSUMER_KHR Attribute
+
+ This indicates the timestamp of the image frame that the consumer
+ most recently consumed (i.e. frame number EGL_CONSUMER_FRAME_KHR).
+ The frame should first be displayed to the user when
+ EGL_STREAM_TIME_NOW_KHR matches this value.
+
+ In mailbox mode the timestamp for an image frame is always equal
+ to the time that the producer inserted the image frame into the
+ EGLStream, minus the value of EGL_CONSUMER_LATENCY_USEC_KHR.
+
+ In fifo mode the timestamp for an image frame is set by the
+ producer when it is inserted into the EGLStream.
+
+ The timestamp uses the same time units as EGL_STREAM_TIME_NOW_KHR.
+
+ 3.1.4.x+3 EGL_STREAM_TIME_PRODUCER_KHR Attribute
+
+ This indicates the timestamp of the image frame that the producer
+ most recently inserted into the EGLStream (i.e. frame number
+ EGL_PRODUCER_FRAME_KHR).
+
+
+Modify the first sentence of section "3.10.5.1 EGLStream operation in
+mailbox mode" in the EGL_KHR_stream extension to:
+
+ When the EGL_STREAM_FIFO_LENGTH_KHR attribute is 0
+ then the EGLStream conceptually operates as a mailbox.
+
+
+Add a new section after section "3.10.5.1 EGLStream operation in
+mailbox mode" in the EGL_KHR_stream extension.
+
+ 3.10.5.2 EGLStream operation in fifo mode
+
+ When the EGL_STREAM_FIFO_LENGTH_KHR attribute is greater than 0
+ then the EGLStream operates in fifo mode. The length of the fifo
+ is the value of the EGL_STREAM_FIFO_LENGTH_KHR attribute.
+
+ In fifo mode the EGLStream conceptually operates as a fifo.
+
+ When the consumer wants to consume a new image frame, behavior
+ depends on the state of the EGLStream. If the state is
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR then the fifo is not
+ empty and the image frame to consume is removed from the tail of
+ the fifo. If the state is
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR then the fifo is empty
+ and the consumer consumes the same frame that it most recently
+ consumed. Otherwise there are no image frames available to
+ consume (behavior in this case is described in the documentation
+ for each type of consumer - see section "3.10.2 Connecting an
+ EGLStream to a consumer").
+
+ If the fifo is empty when the consumer is finished consuming an
+ image frame then the consumer holds on to the image frame in case
+ it needs to be consumed again later (this happens if the consumer
+ wants to consume another image frame before the producer has
+ inserted a new image frame into the fifo). In this case the state
+ of the EGLStream will be EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR
+ until the producer inserts a new image frame (or until the state
+ becomes EGL_STREAM_STATE_DISCONNECTED_KHR).
+
+ The producer inserts image frames at the head of the fifo. If the
+ fifo is full (already contains <L> image frames, where <L> is the
+ value of the EGL_STREAM_FIFO_LENGTH_KHR attribute) then producer
+ is stalled until the fifo is no longer full. When the fifo is not
+ empty the EGLStream state is
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR.
+
+ This operation implies:
+
+ - Frames are never discarded until the consumer has examined
+ them.
+
+ - If the consumer consumes frames slower than the producer
+ inserts frames, then the producer will stall.
+
+ - If the consumer consumes frames faster than the producer
+ inserts frames, then the consumer may see some frames more
+ than once.
+
+ - The consumer can see each frame exactly once if it always
+ waits until the stream is in the
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR state before
+ retrieving an image from the stream.
+
+ In mailbox mode the producer is responsible for timing. In fifo
+ mode the consumer is responsible for timing.
+
+ In fifo mode the producer marks each image frame with a timestamp.
+ The timestamp indicates at what time the image frame should first
+ be visible to the user. Exactly how a producer sets the timestamp
+ is described in the documentation for each type of producer. If
+ the value of an image frame's timestamp is T then the producer
+ must insert that image frame *before* time
+ T - EGL_CONSUMER_LATENCY_USEC_KHR
+ Image frames must be inserted in increasing timestamp order.
+
+ The consumer is responsible for presenting each image frame to the
+ user at the time indicated by its timestamp. The consumer should
+ indicate its minimum latency to the producer by setting the
+ EGL_CONSUMER_LATENCY_USEC_KHR attribute.
+
+
+If the EGL_KHR_stream_producer_eglsurface or
+EGL_NV_stream_producer_eglsurface extension is present then add a
+paragraph to the end of section "3.10.3.1 Stream Surface Producer"
+from that extension:
+
+ If <stream>'s EGL_STREAM_FIFO_LENGTH_KHR value is nonzero then
+ <stream> operates in fifo mode. Each time the EGLSurface is
+ passed to eglSwapBuffers() an image frame is inserted into the
+ fifo. The eglSwapBuffers call sets the timestamp of the image
+ frame to the time that eglSwapBuffers was called PLUS the value of
+ the EGL_CONSUMER_LATENCY_USEC_KHR attribute.
+
+If the EGL_KHR_stream_producer_eglsurface or
+EGL_NV_stream_producer_eglsurface extension is present then add a
+paragraph to section "3.9.x Posting to a Stream"
+from that extension, between the 2nd paragraph (which begins "If
+<surface> is the producer of an EGLStream...") and the 3rd paragraph
+(which begins "When eglSwapBuffers returns the contents..."):
+
+ If the value of the EGL_STREAM_FIFO_LENGTH_KHR attribute, <L> is
+ greater than zero, and there are already <L> image frames in the
+ EGLStream fifo, then the eglSwapBuffers function blocks (does not
+ return and does not insert the new image frame) until there is
+ room in the EGLStream fifo (i.e. there are less than <L> image
+ frames in the fifo).
+
+If the EGL_KHR_stream_producer_aldatalocator or
+EGL_NV_stream_producer_aldatalocator extension is present then replace
+the 2nd to last paragraph (the one that starts "The OpenMAX AL object
+will use the value of...") of section "3.10.3.1 OpenMAX AL Stream
+Producer" from that extension with the following 2 paragraphs:
+
+ If <stream>'s EGL_STREAM_FIFO_LENGTH_KHR value is zero then the
+ stream operates in mailbox mode. The OpenMAX AL object will use
+ the value of the EGL_CONSUMER_LATENCY_USEC_KHR attribute of
+ <stream> to determine when to insert each image frame. If the
+ EGL_CONSUMER_LATENCY_USEC_KHR attribute is modified (by the
+ consumer and/or by the application) then then OpenMAX AL object
+ will adjust its timing within 500 milliseconds of the change. If
+ an image frame is intended to appear to the user at time T (e.g.
+ so that it is synchronized with audio) then the OpenMAX AL object
+ must insert the image frame at time
+ T - EGL_CONSUMER_LATENCY_USEC_KHR
+ and set the image frame's timestamp to T.
+
+ If the <stream>'s EGL_STREAM_FIFO_LENGTH_KHR value is nonzero then
+ <stream> operates in fifo mode. If an image frame is intended to
+ appear to the user at time T then the OpenMAX AL object will
+ insert the image frame into the fifo before time
+ T - EGL_CONSUMER_LATENCY_USEC_KHR
+ and set the image frame's timestamp to T.
+
+If the EGL_KHR_stream_consumer_gltexture or
+EGL_NV_stream_consumer_gltexture extension is present then replace the
+3rd to last paragraph (the one that starts "If the producer has not
+inserted any new image frames...") of section "3.10.2.1 GL Texture
+External consumer" from that extension with the following 2
+paragraphs:
+
+ When <stream>'s EGL_STREAM_FIFO_LENGTH_KHR value is zero then the
+ stream operates in mailbox mode. If the producer has not inserted
+ any new image frames since the last call to
+ eglStreamConsumerAcquireNV then eglStreamConsumerAcquireNV will
+ "latch" the same image frame it latched last time
+ eglStreamConsumerAcquireNV was called. If the producer has
+ inserted one new image frame since the last call to
+ eglStreamConsumerAcquireNV then the eglStreamConsumerAcquireNV
+ will "latch" the newly inserted image frame. If the producer has
+ inserted more than one new image frame since the last call to
+ eglStreamConsumerAcquireNV then all but the most recently inserted
+ image frames are discarded and the producer will "latch" the most
+ recently inserted image frame.
+
+ When <stream>'s EGL_STREAM_FIFO_LENGTH_KHR value is nonzero then
+ <stream> operates in fifo mode. Each call to
+ eglStreamConsumerAcquireNV "latches" the next image frame in the
+ fifo into the OpenGL texture, removing that image frame from the
+ fifo. If there are no new image frames in the fifo then
+ eglStreamConsumerAcquireNV will "latch" the same image frame it
+ latched last time eglStreamConsumerAcquireNV was called.
+
+
+Issues
+ 1. Is this extension useful?
+
+ RESOLVED: Yes. Browser vendors and others have expressed
+ interest.
+
+ 2. Why not include this functionality in the base EGL_KHR_stream
+ extension?
+
+ RESOLVED: Including it there was confusing. Several
+ developers interested in EGLStream have thought at first that
+ they want to use EGLStreams in fifo mode. Later after
+ thinking about it they realize standard mode (non-fifo or
+ "mailbox" mode) is more useful.
+
+ Mailbox mode is easier to use and is less confusing for
+ aldatalocator-producer, gltexture-consumer usecase which was
+ the primary usecase for the extension at the time it was
+ devised.
+
+ Trying to describe both mailbox mode and fifo mode in
+ the same extension made the extension complicated. It was
+ confusing when the timestamps were useful (only in fifo mode).
+ It was confusing how the EGL_CONSUMER_LATENCY_USEC_KHR
+ attribute worked in different modes.
+
+ these problems the fifo functionality was split into this
+ separate extension. This also allows existing consumer and
+ producer extensions to be defined in terms of mailbox mode,
+ simplifying them and making them easier to understand. Then
+ interactions with fifo mode can be described separately.
+
+ Also, the fifo mode is more complicated to use and implement than
+ the mailbox mode. It was thought that there might be problems
+ with the fifo mode that could lead to a new extension
+ replacing the fifo mode extension. By keeping the fifo mode
+ functionality segregated into its own extension this would be
+ easier to accomplish.
+
+Revision History
+
+ #6 (October 12, 2011) Acorn Pooley
+ - Clarify fifo mode operation. (Does not change behavior.)
+
+
+ #5 (October 11, 2011) Acorn Pooley
+ - Resolve issue 1
+ - fix typos
+ - add issue 2
+
+ #4 (September 27, 2011) Acorn Pooley
+ - Assign enum values (bug 8064)
+
+ #3 (July 6, 2011) Acorn Pooley
+ - Rename EGL_KHR_image_stream to EGL_KHR_stream
+
+ #2 (version #2 skipped)
+
+ #1 (July 1, 2011) Acorn Pooley
+ - Initial draft
+
+# vim:ai:ts=4:sts=4:expandtab:textwidth=70
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_producer_aldatalocator.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_producer_aldatalocator.txt
new file mode 100644
index 0000000..28f8963
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_producer_aldatalocator.txt
@@ -0,0 +1,178 @@
+Name
+
+ KHR_stream_producer_aldatalocator
+
+Name Strings
+
+ EGL_KHR_stream_producer_aldatalocator
+
+Contributors
+
+ Acorn Pooley
+
+Contacts
+
+ Acorn Pooley, NVIDIA (apooley 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2011-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the Khronos Board of Promoters on December 2, 2011.
+
+Version
+
+ Version 4, October 4, 2011
+
+Number
+
+ EGL Extension #35
+
+Dependencies
+
+ Requires EGL 1.2 or later.
+ Requires OpenMAX AL 1.1 or later.
+
+ Requires the EGL_KHR_stream extension.
+ Requires the OpenMAX_AL_EGLStream_DataLocator extension.
+
+Overview
+
+ This extension (in conjunction with the
+ OpenMAX_AL_EGLStream_DataLocator extension to OpenMAX AL)
+ allows an OpenMAX AL MediaPlayer object to be connected as the
+ producer of an EGLStream.
+
+ After the EGLStream is created and connected to a consumer, the
+ OpenMAX AL MediaPlayer object is created by calling <pEngine>'s
+ CreateMediaPlayer() method. The <pImageVideoSnk> argument points
+ to an XADataLocator_EGLStream containing the EGLStreamKHR handle
+ of the stream. The CreateMediaPlayer() method creates a
+ MediaPlayer object and connects it as the producer of the
+ EGLStream. (Note that the pFormat member of the XADataSink
+ structure is ignored in this case and may be NULL.)
+
+ Once connected the MediaPlayer inserts image frames into the
+ EGLStream.
+
+Replace section "3.10.3.1 No way to connect producer to EGLStream" in
+the EGL_KHR_stream extension with this:
+
+ 3.10.3.1 OpenMAX AL Stream Producer
+
+ An OpenMAX AL MediaPlayer object can act as a producer for an
+ EGLStream. First create the EGLStream and connect a consumer to
+ it so that the EGLStream is in EGL_STREAM_STATE_CONNECTING_KHR
+ state.
+
+ At this point the application can create an OpenMAX AL MediaPlayer
+ object as described in the OpenMAX AL specification and the
+ OpenMAX_AL_EGLStream_DataLocator extension. The application
+ should create an XADataSink structure with pLocator pointing to an
+ XADataLocator_EGLStream structure referencing the EGLStream (in
+ the pEGLStream member) and the EGLDisplay used to create the
+ EGLStream (in the pEGLDisplay member). The pFormat field of the
+ XADataSink is ignored and should be NULL. This XADataSink
+ structure is passed as the <pImageVideoSnk> argument to
+ <pEngine>'s CreateMediaPlayer() method.
+
+ If the OpenMAX AL implementation is unable to convert image frames
+ to a format usable by <stream>'s consumer then CreateMediaPlayer
+ will fail with a XA_RESULT_CONTENT_UNSUPPORTED error.
+
+ After CreateMediaPlayer() has returned successfully, <stream>'s
+ state will be one of
+ - EGL_STREAM_STATE_EMPTY_KHR
+ - EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR
+ - EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR
+ and the OpenMAX AL MediaPlayer object returned in <pPlayer> will
+ be connected as the producer of <stream>. If the MediaPlayer
+ object is destroyed then <stream>'s state will become
+ EGL_STREAM_STATE_DISCONNECTED_KHR.
+
+ Image and video frame data generated by the OpenMAX AL object (as
+ described in the OpenMAX AL spec) are inserted into <stream> (as
+ described in section "3.10.5 EGLStream operation" of the
+ EGL_KHR_stream extension).
+
+ The OpenMAX AL object will use the value of the
+ EGL_CONSUMER_LATENCY_USEC_KHR attribute of <stream> to determine
+ when to insert each image frame. If the
+ EGL_CONSUMER_LATENCY_USEC_KHR attribute is modified (by the
+ consumer and/or by the application) then OpenMAX AL object
+ will adjust its timing within 500 milliseconds of the change. If
+ an image frame is intended to appear to the user at time T (e.g.
+ so that it is synchronized with audio) then the OpenMAX AL object
+ must insert the image frame at time
+ T - EGL_CONSUMER_LATENCY_USEC_KHR
+
+Issues
+ 1. How many image frame buffers should be used?
+
+ RESOLVED: This is left up to the OpenMAX AL implementation.
+
+ 2. How is the image frame size determined?
+
+ Could also expose EGL_WIDTH and EGL_HEIGHT in the attrib_list
+ as a hint (or as a requirement) as to what size should be
+ used. However, a MediaPlayer object typically knows what size
+ to decode based on the source of the data. So this is
+ probably not necessary. If needed it can be added with a
+ layered extension.
+
+ RESOLVED: Leave this up to the OpenMAX AL MediaPlayer object.
+
+ 3. What image frame format should be used?
+
+ RESOLVED: This is a negotiation between the consumer and
+ producer, but ultimately the producer must convert to the
+ format that the consumer requests, or fail if that is not
+ possible.
+
+ Details of any such communication is implementation dependent
+ and outside the scope of this specification.
+
+ 4. Should this extension create an XADataSink structure rather
+ than making the application create its own as described in
+ OpenMAX_AL_EGLStream_DataLocator?
+
+ RESOLVED: NO no need to do this.
+
+ 5. (This issue no longer applies)
+ Should this extension allow the application to ignore the
+ XADataSink structure returned by eglStreamProducerALDataSource
+ and instead use its own?
+
+ RESOLVED: This issue no longer applies
+
+ 6. (This issue no longer applies)
+ Should eglStreamProducerALDataSource check that <ppDataSink>
+ is not NULL and that <ppDataSink> points to a pointer that is
+ NULL?
+
+ RESOLVED: This issue no longer applies
+
+
+Revision History
+
+ #4 (October 4, 2011) Acorn Pooley
+ - Convert from an NV extension to a KHR extension
+
+ #3 (September 23, 2011) Acorn Pooley
+ - Eliminate the eglStreamProducerALDataSource function.
+ - Rename AL0124b_EGLImageStream_DataLocator_Nokia to
+ OpenMAX_AL_EGLStream_DataLocator and point to new link.
+ - Resolve issue 2
+
+ #2 (July 6, 2011) Acorn Pooley
+ - remove the creation of the XADataSink by
+ eglStreamProducerALDataSource()
+
+ #1 (June 30, 2011) Acorn Pooley
+ - initial draft
+
+# vim:ai:ts=4:sts=4:expandtab:textwidth=70
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_producer_eglsurface.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_producer_eglsurface.txt
new file mode 100644
index 0000000..321ff7a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_stream_producer_eglsurface.txt
@@ -0,0 +1,386 @@
+Name
+
+ KHR_stream_producer_eglsurface
+
+Name Strings
+
+ EGL_KHR_stream_producer_eglsurface
+
+Contributors
+
+ Acorn Pooley
+ Jamie Gennis
+ Marcus Lorentzon
+
+Contacts
+
+ Acorn Pooley, NVIDIA (apooley 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2011-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the Khronos Board of Promoters on December 2, 2011.
+
+Version
+
+ Version 11, June 18, 2012
+
+Number
+
+ EGL Extension #34
+
+Dependencies
+
+ Requires EGL 1.2.
+ Requires OpenGL ES 1.1 or OpenGL ES 2.0.
+
+ Requires the EGL_KHR_stream extension.
+
+Overview
+
+ This extension allows an EGLSurface to be created as a producer of
+ images to an EGLStream. Each call to eglSwapBuffers posts a new
+ image frame into the EGLStream.
+
+New Procedures and Functions
+
+ EGLSurface eglCreateStreamProducerSurfaceKHR(
+ EGLDisplay dpy,
+ EGLConfig config,
+ EGLStreamKHR stream,
+ const EGLint *attrib_list)
+
+New Tokens
+
+ Bit that can appear in the EGL_SURFACE_TYPE of an EGLConfig:
+
+ EGL_STREAM_BIT_KHR 0x0800
+
+
+
+
+Add a row to "Table 3.2: Types of surfaces supported by an EGLConfig"
+in the EGL spec, right after the EGL_PBUFFER_BIT row:
+
+ EGL Token Name Description
+ -------------- --------------------------
+ EGL_STREAM_BIT_KHR EGLConfig supports streams
+
+
+In the second paragraph of section "Other EGLConfig Attribute
+Description" in the EGL spec, replace
+ EGL_WINDOW_BIT | EGL_PIXMAP_BIT | EGL_PBUFFER_BIT
+with
+ EGL_WINDOW_BIT | EGL_PIXMAP_BIT | EGL_PBUFFER_BIT | EGL_STREAM_BIT_KHR
+and replace
+ "...cannot be used to create a pbuffer or pixmap."
+with
+ "...cannot be used to create a pbuffer, pixmap, or stream."
+
+
+Replace section "3.10.3.1 No way to connect producer to EGLStream" in
+the EGL_KHR_stream extension with this:
+
+ 3.10.3.1 Stream Surface Producer
+
+ Call
+
+ EGLSurface eglCreateStreamProducerSurfaceKHR(
+ EGLDisplay dpy,
+ EGLConfig config,
+ EGLStreamKHR stream,
+ const EGLint *attrib_list)
+
+ to create an EGLSurface and connect it as the producer of
+ <stream>.
+
+ <attrib_list> specifies a list of attributes for <stream>. The
+ list has the same structure as described for eglChooseConfig. The
+ attributes EGL_WIDTH and EGL_HEIGHT must both be specified in the
+ <attrib_list>.
+
+ EGL_WIDTH and EGL_HEIGHT indicate the width and height
+ (respectively) of the images that makes up the stream.
+
+ The EGLSurface producer inserts an image frame into <stream> once
+ for each time it is passed to eglSwapBuffers(). The image frame
+ is inserted after the GL has finished previous rendering commands.
+ Refer to section "3.10.5 EGLStream operation" in the
+ EGL_KHR_stream extension specification for operation of the
+ EGLStream when an image frame is inserted into it.
+
+ If <stream> is not in the EGL_STREAM_STATE_EMPTY_KHR,
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR, or
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR when passed to
+ eglSwapBuffers(), then eglSwapBuffers will return EGL_FALSE and
+ generate an EGL_BAD_CURRENT_SURFACE error.
+
+ If the application would like to have the results of rendering
+ appear on the screen at a particular time then it must query the
+ value of EGL_CONSUMER_LATENCY_USEC_KHR after calling
+ eglCreateStreamProducerSurfaceKHR. This is the estimated time that
+ will elapse between the time the image frame is inserted into the
+ EGLStream and the time that the image frame will appear to the
+ user.
+
+ The image frame is not inserted into the EGLStream until the GL
+ has finished rendering it. Therefore predicting exactly when the
+ image frame will be inserted into the stream is nontrivial.
+
+ If it is critical that this frame of data reach the screen at a
+ particular point in time, then the application can
+ - render the frame (using GL/GLES commands)
+ - call glFinish (or use other synchronization techniques to
+ ensure rendering has completed).
+ - wait until the time that the frame should appear to the user
+ MINUS the value of EGL_CONSUMER_LATENCY_USEC_KHR.
+ - call eglSwapBuffers
+ This will allow the image frame to be inserted into the EGLStream
+ at the correct time ("Image Frame Intended Display Time" minus
+ "Consumer Latency") so that it will be displayed ("Image Frame
+ Actual Display Time" as close as possible to the desired time.
+
+ However, this will cause the GPU to operate in lockstep with the
+ CPU which can cause poor performance. In most cases it will be
+ more important for the image frame to appear to the user "as soon
+ as possible" rather than at a specific point in time. So in most
+ cases the application can ignore the value of
+ EGL_CONSUMER_LATENCY_USEC_KHR, not call glFinish, and not wait
+ before calling eglSwapBuffers.
+
+ On failure eglCreateStreamProducerSurfaceKHR returns EGL_NO_SURFACE
+ and generates an error.
+
+ - EGL_BAD_PARAMETER if EGL_WIDTH is not specified or is specified
+ with a value less than 1.
+
+ - EGL_BAD_PARAMETER if EGL_HEIGHT is not specified or is specified
+ with a value less than 1.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is not in state
+ EGL_STREAM_STATE_CONNECTING_KHR.
+
+ - EGL_BAD_MATCH is generated if <config> does not have the
+ EGL_STREAM_BIT_KHR set in EGL_SURFACE_TYPE.
+
+ - EGL_BAD_MATCH is generated if the implementation is not able to
+ convert color buffers described by <config> into image frames
+ that are acceptable by the consumer that is connected to
+ <stream>.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream created for <dpy>.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid,
+ initialized EGLDisplay.
+
+Add a section preceding "3.9.3 Posting Semantics" in the EGL
+specification:
+
+ 3.9.x Posting to a Stream
+
+ To post the color buffer to an EGLStream with an EGLSurface
+ producer, call
+
+ EGLBoolean eglSwapBuffers(
+ EGLDisplay dpy,
+ EGLSurface surface);
+
+ If <surface> is the producer of an EGLStream then the
+ contents of the color buffer are inserted as a new image frame
+ into the EGLStream.
+
+ When eglSwapBuffers returns the contents of the color buffer will
+ have been inserted into the EGLStream as described in section
+ "3.10.5 EGLStream operation" in the EGL_KHR_stream extension
+ specification, and the EGL_PRODUCER_FRAME_KHR attribute and
+ EGL_STREAM_STATE_KHR attribute values will reflect this.
+
+ The contents of the color buffer and all ancillary buffers are
+ always undefined after calling eglSwapBuffers.
+
+ eglSwapBuffers is never synchronized to a video frame when
+ <surface> is the producer for an EGLStream (it is as if the
+ swapinterval (set by eglSwapInterval, see below section "3.9.3
+ Posting Semantics") is 0).
+
+ It is implementation dependent whether eglSwapBuffers actually
+ waits for rendering to the color buffer to complete before
+ returning, but except for timing it must appear to the application
+ that all rendering to the EGLSurface (e.g. all previous gl
+ commands) completed before the image frame was inserted into the
+ EGLStream and eglSwapBuffers returned (as described below in
+ section "3.9.3 Posting Semantics").
+
+
+Add to section "3.9.4 Posting Errors" in the EGL specification a new
+sentence as the 2nd to last sentence in the first paragraph:
+
+ If eglSwapBuffers is called and the EGLStream associated with
+ surface is no longer valid, an EGL_BAD_STREAM_KHR error is
+ generated.
+
+
+Issues
+ 1. How many image frame buffers should be used?
+
+ DISCUSSION:
+ - leave up to implementation?
+ - leave up to producer?
+ - need hints from consumer?
+ - In practice 1, 2, and 3 buffers mean different semantics
+ which are visible to both the producer and consumer. Each
+ may be useful. I cannot think of a use for more than 3
+ buffers for EGL_KHR_stream_surface. (For a video producer
+ more than 3 often does make sense, but that is a different
+ extension.)
+
+ One possibility: expose EGL_BUFFER_COUNT_KHR to application.
+
+ It probably does not make sense to ever use more or less than
+ 3 buffers. One that is the EGLSurface back buffer. One that
+ is waiting for the consumer to acquire. And one that the
+ consumer has acquired and is actively consuming.
+
+ RESOLVED: remove the EGL_BUFFER_COUNT_KHR parameter and always
+ use 3 buffers. This attribute can be added back with a
+ layered extension later if needed.
+
+ 2. How is the resolution (width/height) of image frames set?
+
+ RESOLVED: The width and height are set with the required
+ EGL_WIDTH and EGL_HEIGHT attributes. These do not change for
+ the life of <stream>.
+
+ 3. How is the image format, zbuffering, etc set?
+
+ RESOLVED: These are all determined by the <config>. These do
+ not change for the life of <stream>.
+
+ 4. How does eglSwapBuffers act if there are already image frames
+ in the EGLStream when it is called.
+
+ RESOLVED: Frames are inserted into the EGLStream as described
+ in section "3.10.5 EGLStream operation" in the EGL_KHR_stream
+ extension specification. In particular:
+
+ If the value of EGL_STREAM_FIFO_LENGTH_KHR is 0 or if the
+ EGL_KHR_stream_fifo extension is not supported then the
+ new frame replaces any frames that already exist in the
+ EGLStream. If the consumer is already consuming a frame
+ then it continues to consume that same frame, but the next
+ time the consumer begins to consume a frame (e.g. the
+ next time eglStreamConsumerAcquireKHR() is called for a
+ gltexture consumer) the newly rendered image frame will be
+ consumed. (This is the standard behavior for ANY producer
+ when EGL_STREAM_FIFO_LENGTH_KHR is 0, described as "mailbox
+ mode").
+
+ If the EGL_KHR_stream_fifo extension is supported and the
+ value of EGL_STREAM_FIFO_LENGTH_KHR is greater than 0 then
+ the newly rendered frame will be inserted into the
+ EGLStream. If the EGLStream is full (already contains
+ EGL_STREAM_FIFO_LENGTH_KHR frames) then eglSwapBuffers
+ will block until there is room in the fifo. Note that
+ this can deadlock if the consumer is running in the same
+ thread as the producer since the consumer will never be
+ able to consume a frame if the thread is blocked waiting
+ for room in the fifo. This fifo-related behavior is
+ described in the EGL_KHR_stream_fifo specification (this
+ behavior is not specific to this producer; it works the
+ same for all producers and all consumers).
+
+ All rendering commands must complete before the color
+ buffer is inserted into the EGLStream, or at least this is how
+ the behavior must appear to the application.
+
+ To be precise: when eglSwapBuffers returns the rendering
+ commands may or may not actually be complete, but the
+ following must all be true:
+ - The EGL_PRODUCER_FRAME_KHR value reflects the frame that
+ was just swapped by eglSwapBuffers
+ - The EGL_STREAM_STATE_KHR indicates that the image frame
+ is available (i.e. its value is
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR)
+ - In mailbox mode if the consumer consumes a new frame it
+ will get this new frame (not an older frame). (For
+ example, with a EGL_NV_stream_consumer_gltexture
+ consumer, a call to eglStreamConsumerAcquireKHR() will
+ latch this new frame.)
+ - In fifo mode (see EGL_KHR_stream_fifo extension) if the
+ consumer consumes a new frame and all previous frames
+ have been consumed it will get this new frame (not an
+ older frame). (For example, with a
+ EGL_NV_stream_consumer_gltexture consumer, a call to
+ eglStreamConsumerAcquireKHR() will latch this new
+ frame.)
+ - If a consumer consumes the swapped frame, all GL (and
+ other API) commands called prior to eglSwapBuffers
+ will take effect on the image frame before the
+ consumer consumes it. In other words, the consumer
+ will never consume a partially rendered frame. (For
+ example, with EGL_NV_stream_consumer_gltexture
+ consumer, if the app does this:
+ eglSwapBuffers() // swap the producer EGLSurface
+ eglStreamConsumerAcquireKHR() // acquire the swapped image
+ glDrawArrays() // draw something using the texture
+ then the texture used in the glDrawArrays() command
+ will contain the image rendered by all gl (and/or
+ other API) commands preceding the eglSwapBuffers call
+ as if the app had called glFinish and/or eglWaitClient
+ just before calling eglSwapBuffers (but note that this
+ is implicit in eglSwapBuffers; the app does NOT need
+ to actually call glFinish or any other synchronization
+ functions in order to get this effect, and in fact
+ explicitly calling glFinish and/or eglWaitClient there
+ may significantly and negatively affect performance).)
+
+Revision History
+
+ #11 (June 18. 2012) Acorn Pooley
+ - Replace EGLStream with EGLStreamKHR in function prototypes.
+
+ #10 (June 15, 2012) Acorn Pooley
+ - Fix eglCreateStreamProducerSurfaceKHR name (was missing KHR)
+
+ #9 (October 17, 2011) Acorn Pooley
+ - Clarify issue 4
+
+ #8 (October 12, 2011) Acorn Pooley
+ - remove interactions with EGL_KHR_stream_fifo extension (they
+ are already decribed in that extension).
+
+ #7 (October 11, 2011) Acorn Pooley
+ - Add issue 4
+ - add changes to section 3.9 of the EGL spec to clarify
+ eglSwapBuffer behavior
+
+ #6 (October 4, 2011) Acorn Pooley
+ - Convert from an NV extension to a KHR extension
+
+ #5 (September 30, 2011) Acorn Pooley
+ - Remove EGL_BUFFER_COUNT_NV (0x321D) attribute and resolve issue 1.
+
+ #4 (September 27, 2011) Acorn Pooley
+ - Assign enum values (bug 8064)
+
+ #3 (July 6, 2011) Acorn Pooley
+ - Rename EGL_KHR_image_stream to EGL_KHR_stream
+
+ #2 (June 30, 2011) Acorn Pooley
+ - remove dependence on EGLImage
+ - clarify overview
+ - remove glossary (it can be seen in EGL_KHR_stream ext)
+ - Add EGL_STREAM_BIT
+ - clarify description
+ - describe attribute
+
+ #1 (April 20, 2011) Acorn Pooley
+ - initial draft
+
+# vim:ai:ts=4:sts=4:expandtab:textwidth=70
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_surfaceless_context.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_surfaceless_context.txt
new file mode 100644
index 0000000..4e8751b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_surfaceless_context.txt
@@ -0,0 +1,174 @@
+Name
+
+ KHR_surfaceless_context
+
+Name Strings
+
+ EGL_KHR_surfaceless_context
+
+Contributors
+
+ Acorn Pooley
+ Jon Leech
+ Kristian Hoegsberg
+ Steven Holte
+
+Contact
+
+ Acorn Pooley: apooley at nvidia dot com
+
+Notice
+
+ Copyright (c) 2010-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the EGL Working Group on June 6, 2012.
+ Approved by the Khronos Board of Promoters on July 27, 2012.
+
+Version
+
+ Version 4, 2012/05/03
+
+Number
+
+ EGL Extension #40
+
+Dependencies
+
+ EGL 1.0 is required.
+
+ The functionality of this extension is not supported by client OpenGL ES
+ contexts unless the GL_OES_surfaceless_context extension is supported by
+ those contexts.
+
+ Written against wording of EGL 1.4 specification.
+
+Overview
+
+ These extensions allows an application to make a context current by
+ passing EGL_NO_SURFACE for the write and read surface in the
+ call to eglMakeCurrent. The motivation is that applications that only
+ want to render to client API targets (such as OpenGL framebuffer
+ objects) should not need to create a throw-away EGL surface just to get
+ a current context.
+
+ The state of an OpenGL ES context with no default framebuffer provided
+ by EGL is the same as a context with an incomplete framebuffer object
+ bound.
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ None
+
+Additions to the EGL Specification section "3.7.3 Binding Contexts and
+Drawables"
+
+ Replace the following two error conditions in the
+ list of eglMakeCurrent errors:
+
+ " * If <ctx> is not a valid context, an EGL_BAD_CONTEXT error is
+ generated.
+ * If either <draw> or <read> are not valid EGL surfaces, an
+ EGL_BAD_SURFACE error is generated."
+
+ with the following error conditions:
+
+ " * If <ctx> is not a valid context and is not EGL_NO_CONTEXT, an
+ EGL_BAD_CONTEXT error is generated.
+ * If either <draw> or <read> are not valid EGL surfaces and are
+ not EGL_NO_SURFACE, an EGL_BAD_SURFACE error is generated.
+ * If <ctx> is EGL_NO_CONTEXT and either <draw> or <read> are not
+ EGL_NO_SURFACE, an EGL_BAD_MATCH error is generated.
+ * If either of <draw> or <read> is a valid surface and the other
+ is EGL_NO_SURFACE, an EGL_BAD_MATCH error is generated.
+ * If <ctx> does not support being bound without read and draw
+ surfaces, and both <draw> and <read> are EGL_NO_SURFACE, an
+ EGL_BAD_MATCH error is generated."
+
+ Replace the paragraph starting "If <ctx> is EGL_NO_CONTEXT and
+ <draw> and <read> are not EGL_NO_SURFACE..." with
+
+ "If both <draw> and <read> are EGL_NO_SURFACE, and <ctx> is a context
+ which supports being bound without read and draw surfaces, then no error
+ is generated and the context is made current without a
+ <default framebuffer>. The meaning of this is defined by the API of the
+ supporting context. (See chapter 4 of the OpenGL 3.0 Specification, and
+ the GL_OES_surfaceless_context OpenGL ES extension.)"
+
+ Append to the paragraph starting "The first time an OpenGL or OpenGL
+ ES context is made current..." with
+
+ "If the first time <ctx> is made current, it is without a default
+ framebuffer (e.g. both <draw> and <read> are EGL_NO_SURFACE), then
+ the viewport and scissor regions are set as though
+ glViewport(0,0,0,0) and glScissor(0,0,0,0) were called."
+
+Interactions with other extensions
+
+ The semantics of having a current context with no surface for OpenGL ES
+ 1.x and OpenGL ES 2.x are specified by the GL_OES_surfaceless_context
+ extension.
+
+Issues
+
+ 1) Do we need a mechanism to indicate which contexts may be bound with
+ <read> and <draw> set to NULL? Or is it ok to require that if this
+ extension is supported then any context of the particular API may be
+ made current with no surfaces?
+
+ RESOLVED. Because multiple API implementations may be available as
+ contexts we cannot guarantee that all OpenGL ES 1.x or OpenGL ES 2.x
+ contexts will support GL_OES_surfaceless_context. If the user attempts
+ to call eglMakeCurrent with EGL_NO_SURFACE on a context which does not
+ support it, this simply results in EGL_BAD_MATCH.
+
+ 2) Do we need to include all of the relevant "default framebuffer" language
+ from the OpenGL specification to properly specify OpenGL ES behavior
+ with no default framebuffer bound?
+
+ RESOLVED. Yes, the behaviour of the GLES contexts when no default
+ framebuffer is associated with the context has been moved to the OpenGL
+ ES extension OES_surfaceless_context.
+
+ 3) Since these EGL extensions also modify OpenGL ES behavior and introduce
+ a new error condition, do we want corresponding OpenGL ES extension
+ strings as well?
+
+ RESOLVED. Yes, see GL_OES_surfaceless_context extension.
+
+ 4) How does this document interact with EGL_KHR_create_context and OpenGL
+ contexts?
+
+ RESOLVED. Some language defining the error conditions of eglMakeCurrent
+ have been imported from the draft specification of EGL_KHR_create_context
+ and the definitions of the behaviour of the GLES contexts without a
+ default framebuffer have been moved to GL_OES_surfaceless_context. Any
+ further interactions are left to the create_context extension to define
+ when it is completed.
+
+Revision History
+
+ Version 5, 2014/01/07 (Jon Leech) - Correct references to
+ EXT_surfaceless_context with GL_OES_surfaceless_context.
+
+ Version 4, 2012/02/27 (Steven Holte) - Add language for error conditions
+ from EGL_KHR_create_context, and resolutions of issues. Combined API
+ specific extensions into a single extension.
+
+ Version 3, 2010/08/19 (Kristian Hoegsberg) - Move default framebuffer
+ language to new GLES extension (GL_OES_surfaceless_context) and make
+ this extension depend on that.
+
+ Version 2, 2010/08/03 (Jon Leech) - add default framebuffer language to
+ the OpenGL ES Specifications, including changes to initial GL state and
+ the FRAMEBUFFER_UNDEFINED incompleteness status when no default
+ framebuffer is bound.
+
+ Version 1, 2010/07/09 (Acorn Pooley) - Initial draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_swap_buffers_with_damage.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_swap_buffers_with_damage.txt
new file mode 100644
index 0000000..310dc39
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_swap_buffers_with_damage.txt
@@ -0,0 +1,449 @@
+Name
+
+ KHR_swap_buffers_with_damage
+
+Name Strings
+
+ EGL_KHR_swap_buffers_with_damage
+
+Contributors
+
+ Robert Bragg
+ Tapani Pälli
+ Kristian Høgsberg
+ Benjamin Franzke
+ Ian Stewart
+ James Jones
+ Ray Smith
+
+Contact
+
+ Robert Bragg, Intel (robert.bragg 'at' intel.com)
+
+IP Status
+
+ No known claims.
+
+Notice
+
+ Copyright (c) 2014 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the EGL Working Group on September 17, 2014.
+ Approved by the Khronos Board of Promoters on November 7, 2014.
+
+Version
+
+ Version 13, February 20, 2020
+
+Number
+
+ EGL Extension #84
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL 1.4
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension provides a means to issue a swap buffers request to
+ display the contents of the current back buffer and also specify a
+ list of damage rectangles that can be passed to a system
+ compositor so it can minimize how much it has to recompose.
+
+ This should be used in situations where an application is only
+ animating a small portion of a surface since it enables the
+ compositor to avoid wasting time recomposing parts of the surface
+ that haven't changed.
+
+Terminology
+
+ This extension and the EGL_KHR_partial_update extension both use the word
+ "damage" for subtly but significantly different purposes:
+
+ "Surface damage" is what the EGL_KHR_swap_buffers_with_damage extension
+ is concerned with. This is the area of the *surface* that changes between
+ frames for that surface. It concerns the differences between two buffers -
+ the current back buffer and the current front buffer. It is useful only to
+ the consumer.
+
+ "Buffer damage" is what the EGL_KHR_partial_update extension is concerned
+ with. This is the area of a particular buffer that has changed since that
+ same buffer was last used. As it only concerns changes to a single buffer,
+ there is no dependency on the next or previous frames or any other buffer.
+ It therefore cannot be used to infer anything about changes to the surface,
+ which requires linking one frame or buffer to another. Buffer damage is
+ therefore only useful to the producer.
+
+ Following are examples of the two different damage types. Note that the
+ final surface content is the same in both cases, but the damaged areas
+ differ according to the type of damage being discussed.
+
+Surface damage example (EGL_KHR_swap_buffers_with_damage)
+
+ The surface damage for frame n is the difference between frame n and frame
+ (n-1), and represents the area that a compositor must recompose.
+
+ Frame 0 Frame 1 Frame 2 Frame 3 Frame 4
+ +---------+ +---------+ +---------+ +---------+ +---------+
+ | | |#########| |#########| |#########| |#########|
+ | | | | |#########| |#########| |#########| Final surface
+ | | | | | | |#########| |#########| content
+ | | | | | | | | |#########|
+ +---------+ +---------+ +---------+ +---------+ +---------+
+
+ +---------+ +---------+ +---------+ +---------+ +---------+
+ |@@@@@@@@@| |@@@@@@@@@| | | | | | |
+ |@@@@@@@@@| | | |@@@@@@@@@| | | | | Surface damage
+ |@@@@@@@@@| | | | | |@@@@@@@@@| | |
+ |@@@@@@@@@| | | | | | | |@@@@@@@@@|
+ +---------+ +---------+ +---------+ +---------+ +---------+
+
+Buffer damage example (EGL_KHR_partial_update)
+
+ The buffer damage for a frame is the area changed since that same buffer was
+ last used. If the buffer has not been used before, the buffer damage is the
+ entire area of the buffer.
+
+ The buffer marked with an 'X' in the top left corner is the buffer that is
+ being used for that frame. This is the buffer to which the buffer age and
+ the buffer damage relate.
+
+ Note that this example shows a double buffered surface - the actual number
+ of buffers could be different and variable throughout the lifetime of the
+ surface. The age *must* therefore be queried for every frame.
+
+ Frame 0 Frame 1 Frame 2 Frame 3 Frame 4
+ +---------+ +---------+ +---------+ +---------+ +---------+
+ | | |#########| |#########| |#########| |#########|
+ | | | | |#########| |#########| |#########| Final surface
+ | | | | | | |#########| |#########| content
+ | | | | | | | | |#########|
+ +---------+ +---------+ +---------+ +---------+ +---------+
+
+ X---------+ +---------+ X---------+ +---------+ X---------+
+ | | | | |#########| |#########| |#########|
+ | | | | |#########| |#########| |#########| Buffer 1 content
+ | | | | | | | | |#########|
+ | | | | | | | | |#########|
+ +---------+ +---------+ +---------+ +---------+ +---------+
+
+ X---------+ +---------+ X---------+ +---------+
+ |#########| |#########| |#########| |#########|
+ | | | | |#########| |#########| Buffer 2 content
+ | | | | |#########| |#########|
+ | | | | | | | |
+ +---------+ +---------+ +---------+ +---------+
+
+ 0 0 2 2 2 Buffer age
+
+ +---------+ +---------+ +---------+ +---------+ +---------+
+ |@@@@@@@@@| |@@@@@@@@@| |@@@@@@@@@| | | | |
+ |@@@@@@@@@| |@@@@@@@@@| |@@@@@@@@@| |@@@@@@@@@| | | Buffer damage
+ |@@@@@@@@@| |@@@@@@@@@| | | |@@@@@@@@@| |@@@@@@@@@|
+ |@@@@@@@@@| |@@@@@@@@@| | | | | |@@@@@@@@@|
+ +---------+ +---------+ +---------+ +---------+ +---------+
+
+
+New Procedures and Functions
+
+ EGLBoolean eglSwapBuffersWithDamageKHR (
+ EGLDisplay dpy,
+ EGLSurface surface,
+ const EGLint *rects,
+ EGLint n_rects);
+
+New Tokens
+
+ None
+
+Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Add the following text to subsection 3.9.1 titled "Posting to a
+ Window" after the description of eglSwapBuffers.
+
+ As an alternative to eglSwapBuffers use:
+
+ EGLBoolean eglSwapBuffersWithDamageKHR (
+ EGLDisplay dpy,
+ EGLSurface surface,
+ const EGLint *rects,
+ EGLint n_rects);
+
+ to do the same thing as eglSwapBuffers but additionally report
+ a list of rectangles that define the region that has truly
+ changed since the last frame. To be clear; the entire contents
+ of the back buffer will still be swapped to the front so
+ applications using this API must still ensure that the entire
+ back buffer is consistent. The rectangles are only a hint for
+ the system compositor so it can avoid recomposing parts of the
+ surface that haven't really changed.
+ <rects> points to a list of integers in groups of four that
+ each describe a rectangle in screen coordinates in this
+ layout: {x, y, width, height}. The rectangles are specified
+ relative to the bottom-left of the surface and the x and y
+ components of each rectangle specify the bottom-left position
+ of that rectangle. <n_rects> determines how many groups of 4
+ integers can be read from <rects>. It is not necessary to
+ avoid overlaps of the specified rectangles.
+ If <n_rects> is 0 then <rects> is ignored and the entire
+ surface is implicitly damaged and the behaviour is equivalent
+ to calling eglSwapBuffers.
+ The error conditions checked for are the same as for the
+ eglSwapBuffers api.
+
+ Modify the first paragraph of Section 3.9.1 titled "Native Window
+ Resizing"
+
+ "If the native window corresponding to <surface> has been
+ resized prior to the swap, <surface> must be resized to match.
+ <surface> will normally be resized by the EGL implementation
+ at the time the native window is resized. If the
+ implementation cannot do this transparently to the client,
+ then eglSwapBuffers and eglSwapBuffersWithDamageKHR must
+ detect the change and resize surface prior to copying its
+ pixels to the native window. In this case the meaningfulness
+ of any damage rectangles forwarded by
+ eglSwapBuffersWithDamageKHR to the native window system is
+ undefined."
+
+ Modify the following sentences in Section 3.9.3, page 51 (Posting
+ Semantics)
+
+ Paragraph 2, first sentence:
+
+ "If <dpy> and <surface> are the display and surface for the
+ calling thread's current context, eglSwapBuffers,
+ eglSwapBuffersWithDamageKHR, and eglCopyBuffers perform an
+ implicit flush operation on the context (glFlush for OpenGL or
+ OpenGL ES context, vgFlush for an OpenVG context)."
+
+ Paragraph 3, first sentence:
+
+ "The destination of a posting operation (a visible window, for
+ eglSwapBuffers or eglSwapBuffersWithDamageKHR, or a native
+ pixmap, for eglCopyBuffers) should have the same number of
+ components and component sizes as the color buffer it's being
+ copied from."
+
+ Paragraph 6, first two sentences:
+
+ "The function
+
+ EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint
+ interval);
+
+ specifies the minimum number of video frame periods per color
+ buffer post operation for the window associated with the
+ current context. The interval takes effect when eglSwapBuffers
+ or eglSwapBuffersWithDamageKHR is first called subsequent to
+ the eglSwapInterval call."
+
+ Modify the following sentences in Section 3.9.4, page 52 (Posting
+ Errors)
+
+ Paragraph 1, first sentence:
+
+ "eglSwapBuffers, eglSwapBuffersWithDamageKHR, and
+ eglCopyBuffers return EGL_FALSE on failure."
+
+ Paragraph 1, seventh sentence:
+
+ "If eglSwapBuffers or eglSwapBuffersWithDamageKHR are called
+ and the native window associated with <surface> is no longer
+ valid, an EGL_BAD_NATIVE_WINDOW error is generated. If
+ eglSwapBuffersWithDamageKHR is called and <n_rects>, is less
+ than zero or <n_rects> is greater than zero but <rects> is
+ NULL, EGL_BAD_PARAMETER is generated."
+
+Dependencies on OpenGL ES
+
+ None
+
+Dependencies on OpenVG
+
+ None
+
+Issues
+
+1) Do applications have to make sure the rectangles don't overlap?
+
+ RESOLVED: No, that would be inconvenient for applications and we
+ see no difficulty for implementations to supporting overlapping
+ rectangles.
+
+2) Would it be valid for an implementation to discard the list of
+ rectangles internally and work just in terms of the
+ eglSwapBuffers api?
+
+ RESOLVED: Yes, the rectangles are only there for optimization
+ purposes so although it wouldn't be beneficial to applications if
+ it was convenient at times then it would be compliant for an
+ implementation to discard the rectangles and just call
+ eglSwapBuffers instead. The error conditions that should be
+ checked for are compatible with the requirements for
+ eglSwapBuffers.
+
+3) What origin should be used for damage rectangles?
+
+ RESOLVED: Bottom left since this is consistent with all other
+ uses of 2D window coordinates in EGL and OpenGL that specify a
+ bottom left origin.
+
+ Originally this specification was written with a top-left origin
+ for the damage rectangles even though it was known to be
+ inconsistent and that was because most window systems use a
+ top-left origin and there are some awkward semantic details
+ related to handling native window resizing that we had hoped to
+ simplify.
+
+ This extension and also several other existing EGL extensions
+ struggle to guarantee a reliable behaviour in response to native
+ window resizing which can happen asynchronously on some platforms
+ and this can make it difficult for applications to avoid certain
+ visual artefacts.
+
+ The crux of the problem is that when a native window is
+ asynchronously resized then the window system may maintain the old
+ buffer contents with respect to a different origin than EGL's
+ bottom left origin. For this extension that means that EGL damage
+ rectangles that are intended to map to specific surface contents
+ may end up mapping to different contents when a native window is
+ resized because the rectangles and buffer contents will be moved in
+ different directions in relation to the new window size.
+
+ In the end we decided that this issue isn't simply solved by
+ choosing to use a top-left origin and so we can instead aim for
+ consistency and clarify what guarantees we offer in relation to
+ native window resizing separate from this issue.
+
+4) What guarantees do we provide about the meaningfulness of EGL
+ damage rectangles that are forwarded to the native window system
+ when presenting to a native window that has been resized?
+
+ RESOLVED: The meaningfulness of those forwarded damage rectangles
+ is undefined since this simplifies the implementation requirements
+ and we saw very little benefit to applications from providing
+ stricter guarantees.
+
+ The number of applications that would be able to avoid fully
+ redrawing the contents of a window in response to a window resize
+ is expected to be so low that there would be almost no benefit to
+ defining strict guarantees here.
+
+ Since EGL already states that the contents of window surface
+ buffers become undefined when a native window has been resized,
+ this limitation doesn't introduce any new issue for applications
+ to consider. Applications should already fully redraw buffer
+ contents in response to a native window resize, unless they are
+ following some platform specific documentation that provides
+ additional guarantees.
+
+ For an example of the implementation details that make this an
+ awkward issue to provide guarantees for we can consider X11 based
+ platforms where native windows can be resized asynchronously with
+ respect to a client side EGL surface:
+
+ With X11 there may be multiple "gravity" transformations that can
+ affect how surface buffer content is positioned with respect to a
+ new native window size; there is the core X "bit gravity" and
+ there is the EGL driver gravity that determines how a surface's
+ contents with one size should be mapped to a native window with a
+ different size. Without very careful cooperation between the EGL
+ driver and the core X implementation and without the right
+ architecture to be able to do transforms atomically with respect
+ to different clients that may enact a window resize then it is not
+ possible to reliably map EGL damage rectangles to native window
+ coordinates.
+
+ The disadvantage of a driver that is not able to reliably map EGL
+ damage rectangles to native window coordinates is that a native
+ compositor may re-compose the wrong region of window. This may
+ result in a temporary artefact until the full window gets redrawn
+ and then re-composed. X11 already suffers other similar transient
+ artefacts when resizing windows.
+
+ The authors of this spec believe that even if a driver can't do
+ reliable mappings of EGL damage rectangles then compositors would
+ be able mitigate the majority of related artefacts by ignoring
+ sub-window damage during an interactive window resize.
+
+ The authors of this spec believe that that if an X11 driver did
+ want to reliably map EGL damage rectangles to the native window
+ coordinates then that may be technically feasible depending on the
+ driver architecture. For reference one approach that had been
+ considered (but not tested) is as follows:
+
+ 1) When eglSwapBuffersWithDamageKHR is called, send EGL damage
+ rectangles from the client to a driver component within the
+ xserver un-transformed in EGL window surface coordinates with a
+ bottom-left origin.
+
+ 2) Within the X server the driver component should look at the
+ bit-gravity of a window and use the bit-gravity convention to
+ copy EGL surface content to the front-buffer of a native window.
+
+ 3) Within the X server the driver component should use the same
+ gravity transform that was used to present the surface content
+ to also transform the EGL damage rectangle coordinates.
+
+ Note that because this transform is done in the xserver then
+ this is implicitly synchronized with all clients that would
+ otherwise be able to enact an asynchronous window resize.
+
+
+Revision History
+
+ Version 1, 29/07/2011
+ - First draft
+ Version 2, 03/08/2011
+ - Clarify that the rectangles passed may overlap
+ Version 3, 01/09/2011
+ - Fix a missing '*' in prototype to make rects a pointer
+ Version 4, 11,02,2012
+ - Clarify that implementing in terms of eglSwapBuffers would be
+ compliant.
+ Version 5, 11,02,2012
+ - Tweak the cases where we report BAD_PARAMETER errors
+ Version 6, 05/02/2013
+ - Specify more thorough updates across the EGL 1.4 spec
+ wherever it relates to the eglSwapBuffers api
+ - Clarify that passing <n_rects> of 0 behaves as if
+ eglSwapBuffers were called.
+ Version 7, 14/02/2013
+ - Specify that a bottom-left origin should be used for rectangles
+ Version 8, 19/03/2013
+ - Add Ian and James as contributors
+ - Add an issue explaining why we changed to a bottom-left origin
+ - Clarify that the behaviour is undefined when presenting to a
+ native window that has been resized.
+ - Document the awkward details that would be involved in
+ providing more strict guarantees when presenting to a native
+ window that has been resized.
+ Version 9, 12/06/2013, Chad Versace <chad.versace@intel.com>
+ - Remove the "all rights reserved" clause from the copyright notice. The
+ removal does not change the copyright notice's semantics, since the
+ clause is already implied by any unadorned copyright notice. But, the
+ removal does diminish the likelihood of unwarranted caution in readers
+ of the spec.
+ - Add "IP Status" section to explicitly state that this extension has no
+ knonw IP claims.
+ Version 10, 19/08/2014
+ - Draft for promoting to KHR
+ - Added section on terminology and damage types
+ Version 11, 10/09/2014
+ - Marked as display extension
+ Version 12, 11/05/2014
+ - Change copyright to Khronos after signoff from Intel.
+ Version 13, 20/02/2020, Jon Leech
+ - Constify rects parameter (EGL-Registry issue 98).
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_vg_parent_image.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_vg_parent_image.txt
new file mode 100644
index 0000000..719bb11
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_vg_parent_image.txt
@@ -0,0 +1,138 @@
+Name
+
+ KHR_vg_parent_image
+
+Name Strings
+
+ EGL_KHR_vg_parent_image
+
+Contributors
+
+ Ignacio Llamas
+ Gary King
+ Chris Wynn
+
+Contacts
+
+ Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
+
+Notice
+
+ Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the Khronos Board of Promoters on February 11, 2008.
+
+Version
+
+ Version 5, October 8, 2008
+
+Number
+
+ EGL Extension #4
+
+Dependencies
+
+ This extension requires EGL 1.2 and the EGL_KHR_image extension,
+ and an OpenVG implementation
+
+ This specification is written against the wording of the EGL Image
+ (EGL_KHR_image) specification.
+
+Overview
+
+ This extension provides a mechanism for creating EGLImage objects
+ from OpenVG VGImage API resources. For an overview of EGLImage
+ operation, please see the EGL_KHR_image specification.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ EGL_VG_PARENT_IMAGE_KHR 0x30BA
+
+
+Additions to the EGL Image (EGL_KHR_image) Specification:
+
+ Add the following to Table aaa (Legal values for CreateImageKHR
+ <target> parameter), Section 2.5.1 (EGLImage Specification)
+
+ +--------------------------+--------------------------------------------+
+ | <target> | Notes |
+ +--------------------------+--------------------------------------------+
+ | EGL_VG_PARENT_IMAGE_KHR | Used for OpenVG VGImage objects |
+ +--------------------------+--------------------------------------------+
+
+ Insert the following text after paragraph 3 ("If <target> is
+ NATIVE_PIXMAP_KHR...") of Section 2.5.1 (EGLImage Specification):
+
+ "If <target> is EGL_VG_PARENT_IMAGE_KHR, <dpy> must be a valid EGLDisplay,
+ <ctx> must be a valid OpenVG API context on that display, and <buffer>
+ must be a handle of a VGImage object valid in the specified context, cast
+ into the type EGLClientBuffer. Furthermore, the specified VGImage
+ <buffer> must not be a child image (i.e. the value returned by
+ vgGetParent(<buffer>) must be <buffer>). If the specified VGImage
+ <buffer> has any child images (i.e., vgChildImage has been previously
+ called with the parent parameter set to <buffer>), all child images will
+ be treated as EGLImage siblings after CreateImageKHR returns. Any values
+ specified in <attr_list> are ignored."
+
+ Add the following errors to the end of the list in Section 2.5.1 (EGLImage
+ Specification):
+
+ " * If <target> is EGL_VG_PARENT_IMAGE_KHR, and <dpy> is not a
+ valid EGLDisplay, the error EGL_BAD_DISPLAY is generated.
+
+ * If <target> is EGL_VG_PARENT_IMAGE_KHR and <ctx> is not a
+ valid EGLContext, the error EGL_BAD_CONTEXT is generated.
+
+ * If <target> is EGL_VG_PARENT_IMAGE_KHR and <ctx> is not a valid
+ OpenVG context, the error EGL_BAD_MATCH is returned.
+
+ * If <target> is EGL_VG_PARENT_IMAGE_KHR and <buffer> is not a handle
+ to a VGImage object in the specified API context <ctx>, the error
+ EGL_BAD_PARAMETER is generated.
+
+ * If <target> is EGL_VG_PARENT_IMAGE_KHR, and the VGImage specified by
+ <buffer> is a child image (i.e., vgGetParent(<buffer>) returns
+ a different handle), the error EGL_BAD_ACCESS is generated."
+
+Issues
+
+ 1. Should this specification allow the creation of EGLImages
+ from OpenVG child images?
+
+ RESOLVED: No. It is believed that properly addressing the
+ interaction of hardware restrictions (e.g., memory alignment),
+ arbitrary image subrectangles, scissor rectangles and viewport
+ rectangles may create an undue burden on implementers. In the
+ interest of providing a useful spec in a timely fashion, this
+ functionality has been disallowed, with the possibility of
+ providing it (if necessary) through a future layered extension.
+
+ This restriction is shared with eglCreatePbufferFromClientBuffer;
+ however, this specification allows EGL Images to be created
+ from VGImages which have child images, functionality not
+ previously available.
+
+Revision History
+
+#5 (Jon Leech, October 8, 2008)
+ - Updated status (approved as part of OpenKODE 1.0)
+#4 (Jon Leech, April 5, 2007)
+ - Assigned enumerant values
+ - Added OpenKODE 1.0 Provisional disclaimer
+#3 (December 14, 2006)
+ - Changed requirement to egl 1.2 to include EGLClientBuffer type.
+ - added error condition descriptions for <dpy> and <ctx>
+#2 (November 27, 2006)
+ - Changed OES token to KHR
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_wait_sync.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_wait_sync.txt
new file mode 100644
index 0000000..aeef96c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/KHR/EGL_KHR_wait_sync.txt
@@ -0,0 +1,278 @@
+Name
+
+ KHR_wait_sync
+
+Name Strings
+
+ EGL_KHR_wait_sync
+
+Contributors
+
+ Jon Leech
+ Tom Cooksey
+ Alon Or-bach
+
+Contacts
+
+ Jon Leech (jon 'at' alumni.caltech.edu)
+
+Notice
+
+ Copyright (c) 2012-2014 The Khronos Group Inc. Copyright terms at
+ http://www.khronos.org/registry/speccopyright.html
+
+Status
+
+ Complete.
+ Approved by the Khronos Board of Promoters on October 26, 2012.
+
+Version
+
+ Version 7, March 12, 2014
+
+Number
+
+ EGL Extension #43
+
+Dependencies
+
+ EGL 1.1 is required.
+
+ EGL_KHR_fence_sync is required.
+
+ EGL_KHR_reusable_sync is affected by this extension.
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension adds the ability to wait for signaling of sync objects
+ in the server for a client API context, rather than in the application
+ thread bound to that context. This form of wait does not necessarily
+ block the application thread which issued the wait (unlike
+ eglClientWaitSyncKHR), so the application may continue to issue commands
+ to the client API context or perform other work in parallel, leading to
+ increased performance. The best performance is likely to be achieved by
+ implementations which can perform this new wait operation in GPU
+ hardware, although this is not required.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ EGLint eglWaitSyncKHR(
+ EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint flags)
+
+New Tokens
+
+ None
+
+Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Add to section 3.8.1 "Sync Objects" (as already modified
+ by EGL_KHR_fence_sync and/or EGL_KHR_reusable_sync):
+
+ Following the description of eglClientWaitSyncKHR, add:
+
+ "The command
+
+ EGLint eglWaitSyncKHR(EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint flags)
+
+ is similar to eglClientWaitSyncKHR, but instead of blocking and not
+ returning to the application until <sync> is signaled, eglWaitSyncKHR
+ returns immediately. On success, EGL_TRUE is returned, and the server
+ for the client API context [fn1] will block until <sync> is signaled
+ [fn2].
+ [fn1 - the server may choose to wait either in the CPU executing
+ server-side code, or in the GPU hardware if it supports this
+ operation.]
+ [fn2 - eglWaitSyncKHR allows applications to continue to queue
+ commands from the application in anticipation of the sync being
+ signaled, potentially increasing parallelism between application,
+ client API server code, and the GPU. The server only blocks
+ execution of commands for the specific context on which
+ eglWaitSyncKHR was issued; other contexts implemented by the same
+ server are not affected.]
+
+ <sync> has the same meaning as for eglClientWaitSyncKHR.
+
+ <flags> must be 0.
+
+ Errors
+ ------
+ eglWaitSyncKHR returns EGL_FALSE on failure and generates an error as
+ specified below, but does not cause the server for the client API
+ context to block.
+
+ * If the current context for the currently bound client API does not
+ support the client API extension indicating it can perform server
+ waits, an EGL_BAD_MATCH error is generated.
+ * If no context is current for the currently bound client API (i.e.,
+ eglGetCurrentContext returns EGL_NO_CONTEXT), an EGL_BAD_MATCH error
+ is generated.
+ * If <dpy> does not match the EGLDisplay passed to eglCreateSyncKHR
+ when <sync> was created, the behavior is undefined.
+ * If <sync> is not a valid sync object for <dpy>, an EGL_BAD_PARAMETER
+ error is generated.
+ * If <flags> is not 0, an EGL_BAD_PARAMETER error is generated.
+
+ Each client API which supports eglWaitSyncKHR indicates this support in
+ the form of a client API extension. If the GL_OES_EGL_sync extension is
+ supported by any version of OpenGL ES, a server wait may be performed
+ when the currently bound API is OpenGL ES. If the VG_KHR_EGL_sync
+ extension is supported by OpenVG, a server wait may be performed when
+ the currently bound API is OpenVG."
+
+ Add new subsubsection following eglWaitSyncKHR:
+
+ "Multiple Waiters
+ ----------------
+
+ It is possible for the application thread calling a client API to be
+ blocked on a sync object in a eglClientWaitSyncKHR command, the server
+ for that client API context to be blocked as the result of a previous
+ eglWaitSyncKHR command, and for additional eglWaitSyncKHR commands to be
+ queued in the server, all for a single sync object. When the sync object
+ is signaled in this situation, the client will be unblocked, the server
+ will be unblocked, and all such queued eglWaitSyncKHR commands will
+ continue immediately when they are reached.
+
+ Sync objects may be waited on or signaled from multiple contexts of
+ different client API types in multiple threads simultaneously, although
+ some client APIs may not support eglWaitSyncKHR. This support is
+ determined by client API-specific extensions."
+
+ Additions to the EGL_KHR_reusable_sync extension, modifying the description
+ of eglSignalSyncKHR to include both client and server syncs:
+
+ "... If as a result of calling eglSignalSyncKHR the status of <sync>
+ transitions from unsignaled to signaled, any eglClientWaitSyncKHR
+ * or eglWaitSyncKHR *
+ commands blocking on <sync> will unblock. ..."
+
+ Additions to the EGL_KHR_reusable_sync extension, modifying the description
+ of eglDestroySyncKHR to include both client and server syncs:
+
+ "... If any eglClientWaitSyncKHR
+ * or eglWaitSyncKHR *
+ commands are blocking on <sync> when eglDestroySyncKHR is called, they
+ will be woken up, as if <sync> were signaled."
+
+
+ Additions to the EGL_KHR_fence_sync extension, modifying the description
+ of eglCreateSyncKHR to include both client and server syncs:
+
+ "... causing any eglClientWaitSyncKHR
+ * or eglWaitSyncKHR *
+ commands (see below) blocking on <sync> to unblock ..."
+
+ Additions to the EGL_KHR_fence_sync extension, modifying the description
+ of eglDestroySyncKHR to include both client and server syncs:
+
+ "... If any eglClientWaitSyncKHR
+ * or eglWaitSyncKHR *
+ commands are blocking on <sync> when eglDestroySyncKHR is called, <sync>
+ is flagged for deletion and will be deleted when it is no longer
+ associated with any fence command and is no longer blocking any
+ eglClientWaitSyncKHR or eglWaitSyncKHR commands."
+
+
+Issues
+
+ 1. Explain the key choices made in this extension.
+
+ RESPONSE: This extension has been written to behave as similarly as
+ possible to the glWaitSync functionality available in desktop OpenGL.
+ Server waits are functionality which was only available in GL syncs
+ until now.
+
+ In the interest of maintaining similarity with OpenGL sync objects, this
+ extension attempts to copy the glWaitSync functionality of OpenGL
+ wherever possible (both functionally and stylistically), only making
+ changes where needed to operate inside EGL (rather than a client API
+ context) and match EGL naming conventions.
+
+ 2. Must all EGL client APIs support server waits?
+
+ PROPOSED: Only if the client APIs also support fence syncs, which also
+ interacts with the server for that client API. The same client API
+ extensions defining fence sync support (GL_OES_EGL_sync and
+ VG_KHR_EGL_sync) are used here to indicate server wait ability for those
+ client APIs.
+
+ Reusable syncs in EGL_KHR_reusable_sync do not have this dependency,
+ because it is (at least in principle) possible for eglClientWaitSyncKHR
+ to be performed entirely within the EGL implementation. However,
+ eglWaitSyncKHR requires cooperation of the client API, whether fence
+ syncs or reusable syncs are being waited upon.
+
+ It would be possible to completely decouple fence syncs and the ability
+ to do server waits, but this would require new client API extensions.
+
+ 3. What is the relationship between EGL sync objects and OpenGL / OpenGL
+ ES sync objects?
+
+ RESPONSE: There is no direct relationship. GL and ES servers may not
+ even implement sync objects as defined by some versions of those APIs.
+ However, EGL sync objects are intended to be functionally equivalent to
+ GL sync objects, and the language describing them is drawn from the GL
+ specifications. Implementations supporting both forms of sync object
+ will probably use the same implementation internally.
+
+ 4. Should eglWaitSyncKHR take a timeout as a parameter as its equivalent
+ in OpenGL / OpenGL ES and eglWaitClientKHR does?
+
+ PROPOSED: No. A timeout is of limited use to a well-behaved application.
+ If a timeout was added, the result of it expiring is likely to be a
+ corrupted output. Adding a timeout would likely necessitate a way to
+ query if the wait completed because the condition was signaled or
+ because of a timeout. There doesn't seem to be an obvious, elegant API
+ mechanism to do that. If a timeout is needed in the future, it can be
+ added via an additional extension with a new entry-point.
+
+ 5. What happens if an application issues a server-side wait on a fence
+ which never gets signaled?
+
+ RESPONSE: Further rendering in the context which issued the server-side
+ wait will not progress. Any additional behavior is undefined and is
+ likely to be different depending on a particular implementation. Could
+ be handled in the same way as an extremely long-running GLSL shader.
+
+ 6. Does this extension affect the destruction behavior?
+
+ RESOLVED: No. The behavior of eglDestroySyncKHR is determined by the type
+ of sync object, and is not affected by this extension.
+
+Revision History
+
+#7 (Alon Or-bach, March 12, 2014)
+ - Clarified that eglDestroySyncKHR behavior is set in
+ EGL_KHR_fence_sync / EGL_KHR_reusable_sync and is not modified by this
+ extension (bug 11458).
+#6 (Jon Leech, January 24, 2013)
+ - eglWaitSyncKHR causes a server wait in OpenGL ES when GL_OES_EGL_sync
+ is supported, not a client wait as formerly specified (Bug 9493).
+#5 (Jon Leech, October 31, 2012)
+ - Change return type of eglWaitSyncKHR in spec body to EGLint to match
+ New Functions section, and rearrange description of return type and
+ errors section for clarity.
+#4 (Tom Cooksey, August 16, 2012)
+ - Removed timeout parameter and text relating to it. Add issue 4
+ discussing timeout parameter. Add issue 5 explaining the behavior of
+ waiting on a never-signaled fence. Minor corrections to use US English.
+#3 (Jon Leech, June 26, 2012)
+ - Fix typos (bug 9137).
+#2 (Jon Leech, June 20, 2012)
+ - Clarifications and language cleanup (Bug 9137). Some paragraph
+ reflowing. Note that eglWaitSyncKHR only blocks the server for the
+ specific context on which the wait was issued. Add issue 3 discussing
+ relationship to GL/ES sync objects.
+#1 (Jon Leech, June 6, 2012)
+ - Initial draft branched from GL 4.x API spec language.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_drm_image.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_drm_image.txt
new file mode 100644
index 0000000..0937d6b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_drm_image.txt
@@ -0,0 +1,157 @@
+Name
+
+ MESA_drm_image
+
+Name Strings
+
+ EGL_MESA_drm_image
+
+Contact
+
+ Kristian Høgsberg <krh@bitplanet.net>
+
+Status
+
+ Proposal
+
+Version
+
+ Version 4, November 23, 2017
+
+Number
+
+ EGL Extension #26
+
+Dependencies
+
+ Requires EGL 1.4 or later. This extension is written against the
+ wording of the EGL 1.4 specification.
+
+ EGL_KHR_base_image is required.
+
+Overview
+
+ This extension provides entry points for integrating EGLImage with the
+ Linux DRM mode setting and memory management drivers. The extension
+ lets applications create EGLImages without a client API resource and
+ lets the application get the DRM buffer handles.
+
+IP Status
+
+ Open-source; freely implementable.
+
+New Procedures and Functions
+
+ EGLImageKHR eglCreateDRMImageMESA(EGLDisplay dpy,
+ const EGLint *attrib_list);
+
+ EGLBoolean eglExportDRMImageMESA(EGLDisplay dpy,
+ EGLImageKHR image,
+ EGLint *name,
+ EGLint *handle,
+ EGLint *stride);
+
+New Tokens
+
+ Accepted in the <attrib_list> parameter of eglCreateDRMImageMESA:
+
+ EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
+ EGL_DRM_BUFFER_USE_MESA 0x31D1
+
+ Accepted as values for the EGL_IMAGE_FORMAT_MESA attribute:
+
+ EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2
+
+ Bits accepted in EGL_DRM_BUFFER_USE_MESA:
+
+ EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x0001
+ EGL_DRM_BUFFER_USE_SHARE_MESA 0x0002
+ EGL_DRM_BUFFER_USE_CURSOR_MESA 0x0004
+
+ Accepted in the <target> parameter of eglCreateImageKHR:
+
+ EGL_DRM_BUFFER_MESA 0x31D3
+
+ Use when importing drm buffer:
+
+ EGL_DRM_BUFFER_STRIDE_MESA 0x31D4
+ EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
+
+Additions to the EGL 1.4 Specification:
+
+ To create a DRM EGLImage, call
+
+ EGLImageKHR eglCreateDRMImageMESA(EGLDisplay dpy,
+ const EGLint *attrib_list);
+
+ In the attribute list, pass EGL_WIDTH, EGL_HEIGHT and format and
+ use in the attrib list using EGL_DRM_BUFFER_FORMAT_MESA and
+ EGL_DRM_BUFFER_USE_MESA. The only format specified by this
+ extension is EGL_DRM_BUFFER_FORMAT_ARGB32_MESA, where each pixel
+ is a CPU-endian, 32-bit quantity, with alpha in the upper 8 bits,
+ then red, then green, then blue. The bit values accepted by
+ EGL_DRM_BUFFER_USE_MESA are EGL_DRM_BUFFER_USE_SCANOUT_MESA,
+ EGL_DRM_BUFFER_USE_SHARE_MESA and EGL_DRM_BUFFER_USE_CURSOR_MESA.
+ EGL_DRM_BUFFER_USE_SCANOUT_MESA requests that the created EGLImage
+ should be usable as a scanout buffer with the DRM kernel
+ modesetting API. EGL_DRM_BUFFER_USE_SHARE_MESA requests that the
+ EGLImage can be shared with other processes by passing the
+ underlying DRM buffer name. EGL_DRM_BUFFER_USE_CURSOR_MESA
+ requests that the image must be usable as a cursor with KMS. When
+ EGL_DRM_BUFFER_USE_CURSOR_MESA is set, width and height must both
+ be 64.
+
+ To create a process local handle or a global DRM name for a
+ buffer, call
+
+ EGLBoolean eglExportDRMImageMESA(EGLDisplay dpy,
+ EGLImageKHR image,
+ EGLint *name,
+ EGLint *handle,
+ EGLint *stride);
+
+ If <name> is non-NULL, a global name is assigned to the image and
+ written to <name>, the handle (local to the DRM file descriptor,
+ for use with DRM kernel modesetting API) is written to <handle> if
+ non-NULL and the stride (in bytes) is written to <stride>, if
+ non-NULL.
+
+ Import a shared buffer by calling eglCreateImageKHR with
+ EGL_DRM_BUFFER_MESA as the target, using EGL_WIDTH, EGL_HEIGHT,
+ EGL_DRM_BUFFER_FORMAT_MESA, EGL_DRM_BUFFER_STRIDE_MESA
+ in the attrib list.
+
+Issues
+
+ 1. Why don't we use eglCreateImageKHR with a target that
+ indicates that we want to create an EGLImage from scratch?
+
+ RESOLVED: The eglCreateImageKHR entry point is reserved for
+ creating an EGLImage from an already existing client API
+ resource. This is fine when we're creating the EGLImage from
+ an existing DRM buffer name, it doesn't seem right to overload
+ the function to also allocate the underlying resource.
+
+ 2. Why don't we use an eglQueryImageMESA type functions for
+ querying the DRM EGLImage attributes (name, handle, and stride)?
+
+ RESOLVED: The eglQueryImage function has been proposed often,
+ but it goes against the EGLImage design. EGLImages are opaque
+ handles to a 2D array of pixels, which can be passed between
+ client APIs. By referencing an EGLImage in a client API, the
+ EGLImage target (a texture, a renderbuffer or such) can be
+ used to query the attributes of the EGLImage. We don't have a
+ full client API for creating and querying DRM buffers, though,
+ so we use a new EGL extension entry point instead.
+
+Revision History
+
+ Version 1, June 3, 2010
+ Initial draft (Kristian Høgsberg)
+ Version 2, August 25, 2010
+ Flesh out the extension a bit, add final EGL tokens, capture
+ some of the original discussion in the issues section.
+ Version 3, November 29, 2010 (Jon Leech)
+ Fix typo.
+ Version 4, November 23, 2017 (Kristian Høgsberg)
+ Fix typos, add EGL_DRM_BUFFER_USE_CURSOR_MESA
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_image_dma_buf_export.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_image_dma_buf_export.txt
new file mode 100644
index 0000000..cc9497e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_image_dma_buf_export.txt
@@ -0,0 +1,147 @@
+Name
+
+ MESA_image_dma_buf_export
+
+Name Strings
+
+ EGL_MESA_image_dma_buf_export
+
+Contributors
+
+ Dave Airlie
+
+Contact
+
+ Dave Airlie (airlied 'at' redhat 'dot' com)
+
+Status
+
+ Complete, shipping.
+
+Version
+
+ Version 3, May 5, 2015
+
+Number
+
+ EGL Extension #87
+
+Dependencies
+
+ Requires EGL 1.4 or later. This extension is written against the
+ wording of the EGL 1.4 specification.
+
+ EGL_KHR_base_image is required.
+
+ The EGL implementation must be running on a Linux kernel supporting the
+ dma_buf buffer sharing mechanism.
+
+Overview
+
+ This extension provides entry points for integrating EGLImage with the
+ dma-buf infrastructure. The extension allows creating a Linux dma_buf
+ file descriptor or multiple file descriptors, in the case of multi-plane
+ YUV image, from an EGLImage.
+
+ It is designed to provide the complementary functionality to
+ EGL_EXT_image_dma_buf_import.
+
+IP Status
+
+ Open-source; freely implementable.
+
+New Types
+
+ This extension uses the 64-bit unsigned integer type EGLuint64KHR
+ first introduced by the EGL_KHR_stream extension, but does not
+ depend on that extension. The typedef may be reproduced separately
+ for this extension, if not already present in eglext.h.
+
+ typedef khronos_uint64_t EGLuint64KHR;
+
+New Procedures and Functions
+
+ EGLBoolean eglExportDMABUFImageQueryMESA(EGLDisplay dpy,
+ EGLImageKHR image,
+ int *fourcc,
+ int *num_planes,
+ EGLuint64KHR *modifiers);
+
+ EGLBoolean eglExportDMABUFImageMESA(EGLDisplay dpy,
+ EGLImageKHR image,
+ int *fds,
+ EGLint *strides,
+ EGLint *offsets);
+
+New Tokens
+
+ None
+
+
+Additions to the EGL 1.4 Specification:
+
+ To mirror the import extension, this extension attempts to return
+ enough information to enable an exported dma-buf to be imported
+ via eglCreateImageKHR and EGL_LINUX_DMA_BUF_EXT token.
+
+ Retrieving the information is a two step process, so two APIs
+ are required.
+
+ The first entrypoint
+ EGLBoolean eglExportDMABUFImageQueryMESA(EGLDisplay dpy,
+ EGLImageKHR image,
+ int *fourcc,
+ int *num_planes,
+ EGLuint64KHR *modifiers);
+
+ is used to retrieve the pixel format of the buffer, as specified by
+ drm_fourcc.h, the number of planes in the image and the Linux
+ drm modifiers. <fourcc>, <num_planes> and <modifiers> may be NULL,
+ in which case no value is retrieved.
+
+ The second entrypoint retrieves the dma_buf file descriptors,
+ strides and offsets for the image. The caller should pass
+ arrays sized according to the num_planes values retrieved previously.
+ Passing arrays of the wrong size will have undefined results.
+ If the number of fds is less than the number of planes, then
+ subsequent fd slots should contain -1.
+
+ EGLBoolean eglExportDMABUFImageMESA(EGLDisplay dpy,
+ EGLImageKHR image,
+ int *fds,
+ EGLint *strides,
+ EGLint *offsets);
+
+ <fds>, <strides>, <offsets> can be NULL if the infomatation isn't
+ required by the caller.
+
+Issues
+
+1. Should the API look more like an attribute getting API?
+
+ANSWER: No, from a user interface pov, having to iterate across calling
+the API up to 12 times using attribs seems like the wrong solution.
+
+2. Should the API take a plane and just get the fd/stride/offset for that
+ plane?
+
+ANSWER: UNKNOWN,this might be just as valid an API.
+
+3. Does ownership of the file descriptor remain with the app?
+
+ANSWER: Yes, the app is responsible for closing any fds retrieved.
+
+4. If number of planes and number of fds differ what should we do?
+
+ANSWER: Return -1 for the secondary slots, as this avoids having
+to dup the fd extra times to make the interface sane.
+
+Revision History
+
+ Version 3, May, 2015
+ Just use the KHR 64-bit type.
+ Version 2, March, 2015
+ Add a query interface (Dave Airlie)
+ Version 1, June 3, 2014
+ Initial draft (Dave Airlie)
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_gbm.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_gbm.txt
new file mode 100644
index 0000000..e40a774
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_gbm.txt
@@ -0,0 +1,319 @@
+Name
+
+ MESA_platform_gbm
+
+Name Strings
+
+ EGL_MESA_platform_gbm
+
+Contributors
+
+ Chad Versace <chad.versace@intel.com>
+ Kristian Høgsberg <krh@bitplanet.org>
+
+Contacts
+
+ Chad Versace <chad.versace@intel.com>
+
+Status
+
+ Complete
+
+Version
+
+ Version 7, 2016/01/04
+
+Number
+
+ EGL Extension #62
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Requires EGL_EXT_client_extensions to query its existence without
+ a display.
+
+ Requires EGL_EXT_platform_base.
+
+ This extension is written against the wording of version 7 of the
+ EGL_EXT_platform_base specification.
+
+Overview
+
+ This extension defines how to create EGL resources from native GBM
+ resources using the functions defined by EGL_EXT_platform_base. (GBM is
+ a Generic Buffer Manager for Linux).
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as the <platform> argument of eglGetPlatformDisplayEXT:
+
+ EGL_PLATFORM_GBM_MESA 0x31D7
+
+Additions to the EGL Specification
+
+ None.
+
+New Behavior
+
+ To determine if the EGL implementation supports this extension, clients
+ should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
+
+ To obtain an EGLDisplay from an GBM device, call eglGetPlatformDisplayEXT with
+ <platform> set to EGL_PLATFORM_GBM_MESA. The <native_display> parameter
+ specifies the GBM device to use and must either point to a `struct
+ gbm_device` or be NULL. If <native_display> is NULL, then the resultant
+ EGLDisplay will be backed by some implementation-chosen GBM device.
+
+ For each EGLConfig that belongs to the GBM platform, the
+ EGL_NATIVE_VISUAL_ID attribute is a GBM color format, such as
+ GBM_FORMAT_XRGB8888.
+
+ To obtain a rendering surface from a GBM surface, call
+ eglCreatePlatformWindowSurfaceEXT with a <dpy> that belongs to the GBM
+ platform and a <native_window> that points to a `struct gbm_surface`. If
+ <native_window> was created without the GBM_BO_USE_RENDERING flag, or if
+ the color format of <native_window> differs from the EGL_NATIVE_VISUAL_ID
+ of <config>, then the function fails and generates EGL_BAD_MATCH.
+
+ It is not valid to call eglCreatePlatformPixmapSurfaceEXT with a <dpy> that
+ belongs to the GBM platform. Any such call fails and generates
+ EGL_BAD_PARAMETER.
+
+Issues
+
+ 1. Should this extension permit NULL as input to eglGetPlatformDisplayEXT?
+
+ RESOLUTION: Yes. When given NULL, eglGetPlatformDisplayEXT returns an
+ EGLDisplay backed by an implementation-chosen GBM device.
+
+Example Code
+
+ // This example program creates an EGL surface from a GBM surface.
+ //
+ // If the macro EGL_MESA_platform_gbm is defined, then the program
+ // creates the surfaces using the methods defined in this specification.
+ // Otherwise, it uses the methods defined by the EGL 1.4 specification.
+ //
+ // Compile with `cc -std=c99 example.c -lgbm -lEGL`.
+
+ #include <stdlib.h>
+ #include <string.h>
+
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+
+ #include <EGL/egl.h>
+ #include <gbm.h>
+
+ struct my_display {
+ struct gbm_device *gbm;
+ EGLDisplay egl;
+ };
+
+ struct my_config {
+ struct my_display dpy;
+ EGLConfig egl;
+ };
+
+ struct my_window {
+ struct my_config config;
+ struct gbm_surface *gbm;
+ EGLSurface egl;
+ };
+
+ static void
+ check_extensions(void)
+ {
+ #ifdef EGL_MESA_platform_gbm
+ const char *client_extensions = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
+
+ if (!client_extensions) {
+ // EGL_EXT_client_extensions is unsupported.
+ abort();
+ }
+ if (!strstr(client_extensions, "EGL_MESA_platform_gbm")) {
+ abort();
+ }
+ #endif
+ }
+
+ static struct my_display
+ get_display(void)
+ {
+ struct my_display dpy;
+
+ int fd = open("/dev/dri/card0", O_RDWR | FD_CLOEXEC);
+ if (fd < 0) {
+ abort();
+ }
+
+ dpy.gbm = gbm_create_device(fd);
+ if (!dpy.gbm) {
+ abort();
+ }
+
+
+ #ifdef EGL_MESA_platform_gbm
+ dpy.egl = eglGetPlatformDisplayEXT(EGL_PLATFORM_GBM_MESA, dpy.gbm, NULL);
+ #else
+ dpy.egl = eglGetDisplay(dpy.gbm);
+ #endif
+
+ if (dpy.egl == EGL_NO_DISPLAY) {
+ abort();
+ }
+
+ EGLint major, minor;
+ if (!eglInitialize(dpy.egl, &major, &minor)) {
+ abort();
+ }
+
+ return dpy;
+ }
+
+ static struct my_config
+ get_config(struct my_display dpy)
+ {
+ struct my_config config = {
+ .dpy = dpy,
+ };
+
+ EGLint egl_config_attribs[] = {
+ EGL_BUFFER_SIZE, 32,
+ EGL_DEPTH_SIZE, EGL_DONT_CARE,
+ EGL_STENCIL_SIZE, EGL_DONT_CARE,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
+ EGL_NONE,
+ };
+
+ EGLint num_configs;
+ if (!eglGetConfigs(dpy.egl, NULL, 0, &num_configs)) {
+ abort();
+ }
+
+ EGLConfig *configs = malloc(num_configs * sizeof(EGLConfig));
+ if (!eglChooseConfig(dpy.egl, egl_config_attribs,
+ configs, num_configs, &num_configs)) {
+ abort();
+ }
+ if (num_configs == 0) {
+ abort();
+ }
+
+ // Find a config whose native visual ID is the desired GBM format.
+ for (int i = 0; i < num_configs; ++i) {
+ EGLint gbm_format;
+
+ if (!eglGetConfigAttrib(dpy.egl, configs[i],
+ EGL_NATIVE_VISUAL_ID, &gbm_format)) {
+ abort();
+ }
+
+ if (gbm_format == GBM_FORMAT_XRGB8888) {
+ config.egl = configs[i];
+ free(configs);
+ return config;
+ }
+ }
+
+ // Failed to find a config with matching GBM format.
+ abort();
+ }
+
+ static struct my_window
+ get_window(struct my_config config)
+ {
+ struct my_window window = {
+ .config = config,
+ };
+
+ window.gbm = gbm_surface_create(config.dpy.gbm,
+ 256, 256,
+ GBM_FORMAT_XRGB8888,
+ GBM_BO_USE_RENDERING);
+ if (!window.gbm) {
+ abort();
+ }
+
+ #ifdef EGL_MESA_platform_gbm
+ window.egl = eglCreatePlatformWindowSurfaceEXT(config.dpy.egl,
+ config.egl,
+ window.gbm,
+ NULL);
+ #else
+ window.egl = eglCreateWindowSurface(config.dpy.egl,
+ config.egl,
+ window.gbm,
+ NULL);
+ #endif
+
+ if (window.egl == EGL_NO_SURFACE) {
+ abort();
+ }
+
+ return window;
+ }
+
+ int
+ main(void)
+ {
+ check_extensions();
+
+ struct my_display dpy = get_display();
+ struct my_config config = get_config(dpy);
+ struct my_window window = get_window(config);
+
+ return 0;
+ }
+
+Revision History
+
+ Version 8, 2018-05-25 (Krzysztof Kosiński)
+ - Corrected EGL_DEFAULT_DISPLAY to NULL. The second argument to
+ eglGetPlatformDisplayEXT has type void*, while EGL_DEFAULT_DISPLAY has
+ type EGLNativeDisplayType, which is not guaranteed to be convertible
+ to void* - it could be int, long or intptr_t.
+
+ Version 7, 2016-01-04 (Jon Leech)
+ - Free config memory allocated in sample code (Public Bug 1445).
+
+ Version 6, 2014-02-12 (Chad Versace)
+ - Change resolution of issue #1 from "no" to "yes". Now
+ eglGetPlatformDisplayEXT accepts EGL_DEFAULT_DISPLAY for GBM.
+
+ Version 5, 2013-010-15 (Chad Versace)
+ - Specify that EGL_NATIVE_VISUAL_ID is a GBM color format.
+ - Require for eglCreatePlatformWindowSurfaceEXT that the GBM color
+ format not differ between the EGLConfig and gbm_surface. (Suggested
+ by Kristian).
+ - Update example code to find matching EGL_NATIVE_VISUAL_ID.
+
+ Version 4, 2013-09-13 (Chad Versace)
+ - Update the text and example code to wording of version 7 of
+ EGL_EXT_platform_base spec.
+ - Add section "Extension Type".
+ - Resolve issue #1 to "No".
+ - Add issue #2.
+
+ Version 3, 2013-04-26 (Chad Versace)
+ - Add missing MESA suffix to new token.
+
+ Version 2, 2013-04-23 (Chad Versace)
+ - Add issue #1 regarding EGL_DEFAULT_DISPLAY.
+
+ Version 1, 2013.03.24 (Chad Versace)
+ - First draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_surfaceless.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_surfaceless.txt
new file mode 100644
index 0000000..6ba562c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_surfaceless.txt
@@ -0,0 +1,120 @@
+Name
+
+ MESA_platform_surfaceless
+
+Name Strings
+
+ EGL_MESA_platform_surfaceless
+
+Contributors
+
+ Chad Versace <chadversary@google.com>
+ Haixia Shi <hshi@google.com>
+ Stéphane Marchesin <marcheu@google.com>
+ Zach Reizner <zachr@chromium.org>
+ Gurchetan Singh <gurchetansingh@google.com>
+
+Contacts
+
+ Chad Versace <chadversary@google.com>
+
+Status
+
+ DRAFT
+
+Version
+
+ Version 2, 2016-10-13
+
+Number
+
+ EGL Extension #104
+
+Extension Type
+
+ EGL client extension
+
+Dependencies
+
+ Requires EGL 1.5 or later; or EGL 1.4 with EGL_EXT_platform_base.
+
+ This extension is written against the EGL 1.5 Specification (draft
+ 20140122).
+
+ This extension interacts with EGL_EXT_platform_base as follows. If the
+ implementation supports EGL_EXT_platform_base, then text regarding
+ eglGetPlatformDisplay applies also to eglGetPlatformDisplayEXT;
+ eglCreatePlatformWindowSurface to eglCreatePlatformWindowSurfaceEXT; and
+ eglCreatePlatformPixmapSurface to eglCreatePlatformPixmapSurfaceEXT.
+
+Overview
+
+ This extension defines a new EGL platform, the "surfaceless" platform. This
+ platfom's defining property is that it has no native surfaces, and hence
+ neither eglCreatePlatformWindowSurface nor eglCreatePlatformPixmapSurface
+ can be used. The platform is independent of any native window system.
+
+ The platform's intended use case is for enabling OpenGL and OpenGL ES
+ applications on systems where no window system exists. However, the
+ platform's permitted usage is not restricted to this case. Since the
+ platform is independent of any native window system, it may also be used on
+ systems where a window system is present.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as the <platform> argument of eglGetPlatformDisplay:
+
+ EGL_PLATFORM_SURFACELESS_MESA 0x31DD
+
+Additions to the EGL Specification
+
+ None.
+
+New Behavior
+
+ To determine if the EGL implementation supports this extension, clients
+ should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
+
+ To obtain an EGLDisplay on the surfaceless platform, call
+ eglGetPlatformDisplay with <platform> set to EGL_PLATFORM_SURFACELESS_MESA.
+ The <native_display> parameter must be EGL_DEFAULT_DISPLAY.
+
+ eglCreatePlatformWindowSurface fails when called with a <display> that
+ belongs to the surfaceless platform. It returns EGL_NO_SURFACE and
+ generates EGL_BAD_NATIVE_WINDOW. The justification for this unconditional
+ failure is that the surfaceless platform has no native windows, and
+ therefore the <native_window> parameter is always invalid.
+
+ Likewise, eglCreatePlatformPixmapSurface also fails when called with a
+ <display> that belongs to the surfaceless platform. It returns
+ EGL_NO_SURFACE and generates EGL_BAD_NATIVE_PIXMAP.
+
+ The surfaceless platform imposes no platform-specific restrictions on the
+ creation of pbuffers, as eglCreatePbufferSurface has no native surface
+ parameter. Specifically, if the EGLDisplay advertises an EGLConfig whose
+ EGL_SURFACE_TYPE attribute contains EGL_PBUFFER_BIT, then the EGLDisplay
+ permits the creation of pbuffers with that config.
+
+Issues
+
+ None.
+
+Revision History
+
+ Version 2, 2016-10-13 (Chad Versace)
+ - Assign enum values
+ - Define interfactions with EGL 1.4 and EGL_EXT_platform_base.
+ - Add Gurchetan as contributor, as he implemented the pbuffer support.
+
+ Version 1, 2016-09-23 (Chad Versace)
+ - Initial version
+ - Posted for review at
+ https://lists.freedesktop.org/archives/mesa-dev/2016-September/129549.html
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_query_driver.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_query_driver.txt
new file mode 100644
index 0000000..bf260bd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_query_driver.txt
@@ -0,0 +1,95 @@
+Name
+
+ MESA_query_driver
+
+Name Strings
+
+ EGL_MESA_query_driver
+
+Contact
+
+ Rob Clark <robdclark 'at' gmail.com>
+ Nicolai Hähnle <Nicolai.Haehnle 'at' amd.com>
+
+Contibutors
+
+ Veluri Mithun <velurimithun38 'at' gmail.com>
+
+Status
+
+ Complete
+
+Version
+
+ Version 3, 2019-01-24
+
+Number
+
+ EGL Extension 131
+
+Dependencies
+
+ EGL 1.0 is required.
+
+Overview
+
+ When an application has to query the name of a driver and for
+ obtaining driver's option list (UTF-8 encoded XML) of a driver
+ the below functions are useful.
+
+ XML file formally describes all available options and also
+ includes verbal descriptions in multiple languages. Its main purpose
+ is to be automatically processed by configuration GUIs.
+ The XML shall respect the following DTD:
+
+ <!ELEMENT driinfo (section*)>
+ <!ELEMENT section (description+, option+)>
+ <!ELEMENT description (enum*)>
+ <!ATTLIST description lang CDATA #REQUIRED
+ text CDATA #REQUIRED>
+ <!ELEMENT option (description+)>
+ <!ATTLIST option name CDATA #REQUIRED
+ type (bool|enum|int|float) #REQUIRED
+ default CDATA #REQUIRED
+ valid CDATA #IMPLIED>
+ <!ELEMENT enum EMPTY>
+ <!ATTLIST enum value CDATA #REQUIRED
+ text CDATA #REQUIRED>
+
+New Procedures and Functions
+
+ char* eglGetDisplayDriverConfig(EGLDisplay dpy);
+ const char* eglGetDisplayDriverName(EGLDisplay dpy);
+
+Description
+
+ By passing EGLDisplay as parameter to `eglGetDisplayDriverName` one can retrieve
+ driverName. Similarly passing EGLDisplay to `eglGetDisplayDriverConfig` we can retrieve
+ driverConfig options of the driver in XML format.
+
+ The string returned by `eglGetDisplayDriverConfig` is heap-allocated and caller
+ is responsible for freeing it.
+
+ EGL_BAD_DISPLAY is generated if `disp` is not an EGL display connection.
+
+ EGL_NOT_INITIALIZED is generated if `disp` has not been initialized.
+
+ If the implementation does not have enough resources to allocate the XML then an
+ EGL_BAD_ALLOC error is generated.
+
+New Tokens
+
+ No new tokens
+
+Issues
+
+ None
+
+
+Revision History
+
+ Version 1, 2018-11-05 - First draft (Veluri Mithun)
+ Version 2, 2019-01-23 - Final version (Veluri Mithun)
+ Version 3, 2019-01-24 - Mark as complete, add Khronos extension
+ number, fix parameter name in prototypes,
+ write revision history (Eric Engestrom)
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NOK/EGL_NOK_swap_region2.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NOK/EGL_NOK_swap_region2.txt
new file mode 100644
index 0000000..b09f551
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NOK/EGL_NOK_swap_region2.txt
@@ -0,0 +1,227 @@
+Name
+
+ NOK_swap_region2
+
+Name Strings
+
+ EGL_NOK_swap_region2
+
+Notice
+
+ Copyright 2010 Nokia. All rights reserved.
+
+Contributors
+
+ Robert Palmer
+ Sami Kyöstilä
+
+Contacts
+
+ Robert Palmer, Nokia (robert.palmer 'at' nokia.com)
+ Sami Kyöstilä, Nokia (sami.kyostila 'at' nokia.com)
+
+Status
+
+ Internally reviewed
+
+Version
+
+ 2 - April 29, 2010
+
+Number
+
+ EGL Extension #23
+
+Dependencies
+
+ Requires EGL 1.4
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension adds a new function which provides an alternative to
+ eglSwapBuffers. eglSwapBuffersRegion2NOK accepts two new parameters
+ in addition to those in eglSwapBuffers. The new parameters consist
+ of a pointer to a list of 4-integer blocks defining rectangles
+ (x, y, width, height) and an integer specifying the number of
+ rectangles in the list.
+
+ The new parameters allow users to declare the region of the surface
+ that has been updated. The implementation uses this information to transfer
+ the updated region to the front buffer. Only the pixels within the
+ specified region are copied; any rendering outside that region will not
+ become visible on the window surface. This in contrast with the
+ EGL_NOK_swap_region extension which treats the modified region only as a
+ hint.
+
+ This functional change is aimed at further reducing the processing and
+ bandwidth requirements of optimizations of applications whose graphics are
+ commonly subjected to region-based changes. Specifically, this extension
+ enables partial surface updates without requiring the use of preserved
+ swaps.
+
+New Procedures and Functions
+
+ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK(
+ EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint numRects,
+ const EGLint* rects);
+
+New Types
+
+ None
+
+New Tokens
+
+ None
+
+Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions
+and Errors)
+
+ Add the following text to the end of the first subsection in
+ section 3.9.1 (prior to 'Native Window Resizing' subsection):
+
+ "eglSwapBuffersRegion2NOK is an alternative to eglSwapBuffers
+ that allows the client to provide the region of the surface
+ which has been updated. This will allow processing and
+ bandwidth optimizations for applications whose graphics are
+ commonly subject to region-based changes.
+
+ eglSwapBuffersRegion2NOK behaves in the same way as
+ eglSwapBuffers with the following modification: the additional
+ parameters <numRects> and <rects> provide specify a region which was
+ rendered to by the application. The implementation uses this
+ information to combine the modified backbuffer region with the previous
+ frontbuffer to form the new frontbuffer. The implementation guarantees
+ that all of the pixels within the modified region are posted for
+ display and none of the pixels outside the region are sourced. Only
+ back buffered surfaces can be used with eglSwapBuffersRegion2NOK.
+
+ <rects> specifies a pointer to a list of 4-integer blocks
+ defining rectangles. The area covered by the rectangles
+ constitutes the region of the color buffer which has been
+ updated by the client. <numRects> specifies the number of
+ rectangles in the <rects> list. If <numRects> is set to zero
+ the update region is set to the width and height of the
+ surface.
+
+ Each rectangle is specified as an integer 4-tuple in the form
+ (x, y, width, height). The x and y values provided by the client
+ must specify the bottom left corner of each rectangle as the
+ origin of the coordinate system is bottom left. Rectangles are
+ clipped (restricted) to the bounds of the EGLSurface. A
+ rectangle with width or height less than or equal 0 is ignored.
+ The region is defined by the union of all the specified
+ rectangles. The rectangles as specified must be disjoint. If
+ the rectangles are not disjoint or the user has rendered
+ outside of the region declared, the rendering results are
+ undefined."
+
+ Insert "eglSwapBuffersRegion2NOK" appropriately after each instance
+ of "eglSwapBuffers" in the first paragraph in section 3.9.4
+
+ Add the following before the last sentence in the first
+ paragraph in section 3.9.4
+
+ "If eglSwapBuffersRegion2NOK is called and <numRects> is greater
+ than zero and <rects> is NULL, an EGL_BAD_PARAMETER error is
+ generated. If <numRects> is less than zero, an
+ EGL_BAD_PARAMETER error is generated."
+
+ "If eglSwapBuffersRegion2NOK is called with a single buffered
+ <surface>, an EGL_BAD_MATCH error is generated."
+
+Dependencies on OpenGL ES
+
+ None
+
+Dependencies on OpenVG
+
+ None
+
+
+Issues
+
+ 1) Is there a limit on the number of rectangles that can be used?
+ Should there be a specified number which are guaranteed to be
+ supported?
+
+ RESOLVED: This is limited by the amount of resources available to the
+ implementation. The implementation is free to fail with EGL_BAD_ALLOC if a
+ given update region cannot be processed due to resource constraints.
+
+ 2) Are there any limitations on the location or size of rectangles?
+
+ RESOLVED: The limitations placed on the validity of a rectangle is
+ that the width and height must be greater than zero and should not
+ overlap. Rectangles which have a width or height less than or equal
+ to zero will be ignored. If rectangles overlap the rendering
+ results are undefined. In addition all rectangles are clipped to
+ the area of the surface. Rectangles which are partially or
+ completely outside the boundary of the surface will not generate an
+ error.
+
+ 3) How does eglSwapBuffersRegion2NOK interact with incremental
+ rendering?
+
+ RESOLVED: This extension does not affect the client's ability to
+ perform incremental rendering. The ability to perform incremental
+ rendering is determined solely by the EGLSurface's
+ EGL_SWAP_BEHAVIOR attribute. The use of eglSwapBuffersRegion2NOK to
+ describe changed regions can still assist window system composition
+ optimizations even if the client is physically redrawing the entire
+ surface on every frame.
+
+ If EGL_SWAP_BEHAVIOR is EGL_BUFFER_PRESERVED, the client can
+ restrict their rendering to a particular region (e.g. using scissor
+ rects) and then declare this region using eglSwapBuffersRegion2NOK.
+
+ If EGL_SWAP_BEHAVIOR is EGL_BUFFER_DESTROYED, the client can
+ also restrict rendering to a particular region of the surface, but that
+ region must be completely re-rendered because the previous frame contents
+ are no longer available within that region. The application can then post
+ this region with eglSwapBuffersRegion2NOK. Since the buffer posting is
+ guaranteed to be limited to the declared region, the application does not
+ need to re-render or otherwise ensure pixel data outside the updated region
+ is valid.
+
+ 4) How is this extension an improvement over EGL_NOK_swap_region?
+
+ RESOLVED: This extension builds on the previous EGL_NOK_swap_region
+ extension by requiring that the implementation considers the update region
+ provided by the application as a mandate rather than a hint. This allows
+ for region-restricted rendering without requiring the use of preserved buffer
+ swaps which may be relatively expensive for the implementation.
+
+ Furthermore, whilst preserved swap behaviour is necessary for incremental
+ rendering, many applications fully re-render modified surface regions and
+ so don't require preserved swap behaviour. This extension provides a
+ lighter weight surface update mechanism for such applications.
+
+ 5) How does this extension compare to MESA_copy_sub_buffer?
+
+ RESOLVED: There are two main differences between MESA_copy_sub_buffer and
+ this extension:
+
+ 1. This extension allows for arbitrary update regions instead of a
+ single rectangle.
+
+ 2. eglSwapBuffersRegion2NOK is specified to be a frame swap, so the
+ implementation is free to apply destructive swap behavior in
+ conjunction with this function call. This may allow for a
+ performance improvement.
+
+Revision History
+
+ Version 1, 2010/04/28 (Sami Kyöstilä)
+ - First revision based on EGL_NOK_swap_region version 10.
+ Version 2, 2010/04/29 (Sami Kyöstilä)
+ - Specify operation in terms of copying from the back buffer into the
+ front buffer instead of involving the the system composition or the
+ display.
+ - Disallowed usage with anything else than back buffered surfaces.
+ - Clarified some sentences.
+ \ No newline at end of file
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NOK/EGL_NOK_texture_from_pixmap.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NOK/EGL_NOK_texture_from_pixmap.txt
new file mode 100644
index 0000000..ebc4ee0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NOK/EGL_NOK_texture_from_pixmap.txt
@@ -0,0 +1,321 @@
+Name
+
+ NOK_texture_from_pixmap
+
+Name Strings
+
+ EGL_NOK_texture_from_pixmap
+
+Notice
+
+ Copyright Nokia, 2009.
+
+Contributors
+
+
+Contact
+
+ Roland Scheidegger, Tungsten Graphics, sroland@tungstengraphics.com
+
+Status
+
+ Shipping on N900
+
+Version
+
+ 0.2 (13 Nov 2009)
+
+Number
+
+ EGL Extension #14
+
+Dependencies
+
+ EGL 1.1 is required.
+ Written against wording of EGL 1.4 specification.
+ OpenGL ES 2.0 is required.
+ GL_OES_texture_npot affects the definition of this extension.
+
+Overview
+
+ This extension allows a color buffer to be used for both rendering and
+ texturing.
+
+ EGL allows the use of color buffers of pbuffer drawables for texturing,
+ this extension extends this to allow the use of color buffers of pixmaps
+ too.
+ Other types of drawables could be supported by future extensions layered
+ on top of this extension, though only windows are really left which
+ are problematic.
+
+ The functionality of this extension is similar to WGL_ARB_render_texture
+ which was incorporated into EGL 1.1.
+ However, the purpose of this extension is not to provide
+ "render to texture" like functionality but rather the ability to bind
+ existing native drawables (for instance X pixmaps) to a texture. Though,
+ there is nothing that prohibits it from being used for "render to
+ texture".
+
+ - Windows are problematic as they can change size and therefore are not
+ supported by this extension.
+
+ - Only a color buffer of a EGL pixmap created using an EGLConfig with
+ attribute EGL_BIND_TO_TEXTURE_RGB or EGL_BIND_TO_TEXTURE_RGBA
+ set to TRUE can be bound as a texture.
+
+ - The texture internal format is determined when the color buffer
+ is associated with the texture, guaranteeing that the color
+ buffer format is equivalent to the texture internal format.
+
+ - A client can create a complete set of mipmap images.
+
+
+IP Status
+
+ There are no known IP issues.
+
+Issues
+
+ 1. What should this extension be called?
+
+ EGL_EXT_texture_from_pixmap seemed most appropriate, but eventually
+ was changed to EGL_NOK_texture_from_pixmap since it's unknown if other
+ vendors are interested in implementing this. Even though it builds
+ on top of the EGL render_to_texture functionality and thus the
+ specifiation wording is quite different to the GLX version, keep the
+ name from the GLX version (except the vendor prefix) since the intention
+ is the same. Layering of future extensions on top of this extension for
+ using other type of drawables as textures follows the same conventions
+ as vertex/pixel buffer objects and vertex/fragment programs.
+
+
+ 2. What should the default value for EGL_TEXTURE_TARGET be? Should
+ users be required to set this value if EGL_TEXTURE_FORMAT is not
+ EGL_TEXTURE_FORMAT_NONE ?
+
+ Unlike in OpenGL, in OES there is no difference between pot and npot
+ sized textures as far as the texture target is concerned, so
+ for all sizes EGL_TEXTURE_2D will be used for all pixmap sizes.
+ npot texture sizes (with reduced functionality) are only available
+ in OES 2.0 hence this version is required. While in theory it would be
+ possible to support this in OES 1.0 if pixmaps are restricted to power
+ of two sizes, it seems for all practical uses of this extension pixmap
+ sizes will be arbitrary.
+
+
+ 3. Should users be required to re-bind the drawable to a texture after
+ the drawable has been rendered to?
+
+ It is difficult to define what the contents of the texture would be if
+ we don't require this. Also, requiring this would allow implementations
+ to perform an implicit copy at this point if they could not support
+ texturing directly out of renderable memory.
+
+ The problem with defining the contents of the texture after rendering
+ has occured to the associated drawable is that there is no way to
+ synchronize the use of the buffer as a source and as a destination.
+ Direct OpenGL rendering is not necessarily done in the same command
+ stream as X rendering. At the time the pixmap is used as the source
+ for a texturing operation, it could be in a state halfway through a
+ copyarea operation in which half of it is say, white, and half is the
+ result of the copyarea operation. How is this defined? Worse, some
+ other OpenGL application could be halfway through a frame of rendering
+ when the composite manager sources from it. The buffer might just
+ contain the results of a "glClear" operation at that point.
+
+ To gurantee tear-free rendering, a composite manager (in this case
+ using X) would run as follows:
+
+ -receive request for compositing:
+ XGrabServer()
+ eglWaitNative() or XSync()
+ eglBindTexImage()
+
+ <Do rendering/compositing>
+
+ eglReleaseTexImage()
+ XUngrabServer()
+
+ Apps that don't synchronize like this would get what's available,
+ and that may or may not be what they expect.
+
+
+ 4. Rendering done by the window system may be y-inverted compared
+ to the standard OpenGL texture representation. More specifically:
+ the X Window system uses a coordinate system where the origin is in
+ the upper left; however, the GL uses a coordinate system where the
+ origin is in the lower left. Should we define the contents of the
+ texture as the y-inverted contents of the drawable?
+
+ X implementations may represent their drawables differently internally,
+ so y-inversion should be exposed as an EGLConfig attribute.
+ Applications will need to query this attribute and adjust their rendering
+ appropriately.
+
+ If a drawable is y-inverted and is bound to a texture, the contents of the
+ texture will be y-inverted with respect to the standard GL memory layout.
+ This means the contents of a pixmap of size (width, height) at pixmap
+ coordinate (x, y) will be at location (x, height-y-1) in the texture.
+ Applications will need to adjust their texture coordinates accordingly to
+ avoid drawing the texture contents upside down.
+
+
+
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted by the <Attribute> parameter of eglGetConfigAttrib and
+ the <attrib_list> parameter of eglChooseConfig:
+
+ EGL_Y_INVERTED_NOK 0x307F
+
+
+Additions to the OpenGL ES 2.0 Specification
+
+ None.
+
+
+Additions to the EGL Specification
+
+ Add to table 3.1, EGLConfig Attributes:
+
+ Attribute Type Notes
+ ------------------------------- ------- -----------------------------------
+ EGL_Y_INVERTED_NOK boolean True if the drawable's framebuffer
+ is y-inverted. This can be used to
+ determine if y-inverted texture
+ coordinates need to be used when
+ texturing from this drawable when
+ it is bound to a texture target.
+
+ Additions to table 3.4, Default values and match criteria for EGLConfig attributes:
+
+ Attribute Default Selection Criteria Priority
+ ------------------------------- -------------------- ------------------ ---------
+ EGL_Y_INVERTED_NOK EGL_DONT_CARE Exact
+
+ Modifications to 3.4, "Configuration Management"
+
+ Modify 3rd last paragraph ("EGL BIND TO TEXTURE RGB and..."):
+
+ EGL BIND TO TEXTURE RGB and EGL BIND TO TEXTURE RGBA are booleans
+ indicating whether the color buffers of a pbuffer or a pixmap created with
+ the EGLConfig can be bound to a OpenGL ES RGB or RGBA texture respectively.
+ Currently only pbuffers or pixmaps can be bound as textures, so these
+ attributes may only be EGL TRUE if the value of the EGL SURFACE TYPE
+ attribute includes EGL PBUFFER BIT or EGL_PIXMAP_BIT. It is possible to
+ bind a RGBA visual to a RGB texture, in which case the values in the alpha
+ component of the visual are ignored when the color buffer is used as a RGB
+ texture.
+
+ Add after this:
+
+ EGL_Y_INVERTED_NOK is a boolean describing the memory layout used for
+ drawables created with the EGLConfig. The attribute is True if the
+ drawable's framebuffer will be y-inverted. This can be used to determine
+ if y-inverted texture coordinates need to be used when texturing from this
+ drawable when it is bound to a texture target.
+
+ Modifications to 3.5.4, "Creating Native Pixmap Rendering Surfaces"
+
+ Modify paragraph 4 of the description of eglCreatePixmapSurface:
+
+ <attrib_list> specifies a list of attributes for the pixmap. The list has
+ the same structure as described for eglChooseConfig. Attributes that can
+ be specified in <attrib_list> include EGL_TEXTURE_FORMAT,
+ EGL_TEXTURE_TARGET, EGL_MIPMAP_TEXTURE, EGL_VG_COLORSPACE and
+ EGL_VG_ALPHA_FORMAT.
+ EGL_TEXTURE_FORMAT, EGL_TEXTURE_TARGET and EGL_MIPMAP_TEXTURE have the same
+ meaning and default values as when used with eglCreatePbufferSurface.
+
+
+ Modifications to section 3.6.1, "Binding a Surface to a OpenGL ES Texture"
+
+ Modify paragraph 2 of the description of eglBindTexImage:
+
+ The texture target, the texture format and the size of the texture
+ components are derived from attributes of the specified <surface>, which
+ must be a pbuffer or pixmap supporting one of the EGL_BIND_TO_TEXTURE_RGB
+ or EGL_BIND_TO_TEXTURE_RGBA attributes.
+
+ Modify paragraph 6 of the description of eglBindTexImage:
+
+ ...as though glFinish were called on the last context to which that surface
+ were bound. If <surface> is a pixmap, it also waits for all effects of
+ native drawing to complete.
+
+ Modify paragraph 7 of the description of eglBindTexImage:
+
+ After eglBindTexImage is called, the specified <surface> is no longer
+ available for reading or writing by client APIs. Any read operation,
+ such as glReadPixels or eglCopyBuffers, which reads values from any of the
+ surface’s color buffers or ancillary buffers will produce indeterminate
+ results. In addition, draw operations that are done to the surface before
+ its color buffer is released from the texture produce indeterminate
+ results. Specifically, if the surface is current to a context
+ and thread then rendering commands will be processed and the context state
+ will be updated, but the surface may or may not be written.
+ If the surface is a pixmap, it can still be accessed for reading or
+ writing by native rendering calls, however reading and writing will produce
+ indeterminate results and will leave the texture in an undefined state. It
+ is up to the application to implement any synchronization required.
+ eglSwapBuffers has no effect if it is called on a bound surface.
+
+ Modify paragraph 10 of the description of eglBindTexImage:
+
+ Texture mipmap levels are automatically generated when all of the following
+ conditions are met while calling eglBindTexImage:
+
+ - The EGL_MIPMAP_TEXTURE attribute of the pbuffer or pixmap being bound
+ is EGL_TRUE.
+ - The OpenGL ES texture parameter GL_GENERATE_MIPMAP is GL_TRUE for the
+ currently bound texture.
+ - The value of the EGL_MIPMAP_LEVEL attribute of the pbuffer or pixmap
+ being bound is equal to the value of the texture parameter
+ GL_TEXTURE_BASE_LEVEL.
+
+
+ Modifications to section 3.6.2, "Releasing a Surface from an OpenGL ES Texture"
+
+ Modify paragraph 1 of the description of eglReleaseTexImage:
+
+ ...The specified color buffer is released back to the surface. The surface
+ is made avalaible for reading and writing by client APIs when it no longer
+ has any color buffers bound as textures.
+
+ Modify paragraph 2 of the description of eglReleaseTexImage:
+
+ If the surface is a pixmap, the contents of the color buffer are
+ unaffected by eglReleaseTexImage. If the surface is a pbuffer,
+ the contents of the color buffer are undefined when it is first
+ released, in particular there is no guarantee that the texture
+ image is still present. In all cases, the contents of other
+ color buffers are unaffected by this call. ...
+
+ Modify paragraph 5 of the description of eglReleaseTexImage:
+
+ ...If <surface> is not a valid EGLSurface, or is not a bound pbuffer or
+ pixmap surface, then an EGL_BAD_SURFACE error is returned.
+
+
+
+Usage Examples
+
+(skipped for now)
+
+
+
+Version History
+
+ 0. 12 Aug 2008 - RS
+ Initial version derived from GLX_EXT_texture_from_pixmap and EGL.
+ 0.1 30 Sept 2008 - RS
+ Changed name from EXT to NOKIA.
+ Clarified / fixed wording wrt differences to pbuffers.
+ 0.2 13 Nov 2009 - Sami Kyöstilä <sami.kyostila@nokia.com>
+ Changed extension and token names to comply with Nokia extension naming
+ scheme. Clarified interaction with native rendering. Formatting.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_3dvision_surface.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_3dvision_surface.txt
new file mode 100644
index 0000000..c190687
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_3dvision_surface.txt
@@ -0,0 +1,94 @@
+Name
+
+ EGL_NV_3dvision_surface
+
+Name Strings
+
+ EGL_NV_3dvision_surface
+
+Contact
+
+ Greg Roth, NVIDIA (groth 'at' nvidia.com)
+
+Contributors
+
+ Swaminathan Narayanan, NVIDIA
+
+IP Status
+
+ NVIDIA Proprietary.
+
+Status
+
+ Complete
+
+Version
+
+ Last Modified Date: 02 December 2011
+ Revision: 1
+
+Number
+
+ EGL Extension #46
+
+Dependencies
+
+ Requires EGL 1.4
+
+ Written against the EGL 1.4 specification.
+
+Overview
+
+ NVIDIA 3D Vision provides stereoscopic 3d rendering without
+ requiring applications to change their rendering methods. However
+ there are cases where applications can benefit from adjusting 3D
+ vision parameters directly to experiment with this functionality in
+ applications not yet known to 3D Vision, to assist 3D Vision in
+ setting parameters correctly for unusual situations, or to present
+ application-specific user-accessible controls for 3D Vision
+ parameters.
+
+ This extension provides the ability to explicitly create a surface
+ with 3D Vision support regardless of application detection.
+
+IP Status
+
+ NVIDIA Proprietary
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as an attribute to the <attrib_list> parameter of
+ CreateWindowSurface and CreatePbufferSurface
+
+ EGL_AUTO_STEREO_NV 0x3136
+
+Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and
+Errors)
+
+ Additions to section 3.5.1 (Creating On-Screen Rendering Surfaces)
+
+ Alter the end of the second to last paragraph:
+
+ Attributes that can be specified in <attrib_list> include
+ EGL_RENDER_BUFFER, EGL_VG_COLORSPACE, EGL_VG_ALPHA_FORMAT,
+ and EGL_AUTO_STEREO_NV.
+
+ Add before the last paragraph of section 3.5.1:
+
+ EGL_AUTO_STEREO_NV specifies whether 3D Vision stereo
+ (stereo override) should be enabled in the driver. The default
+ value of EGL_AUTO_STEREO_NV is zero.
+
+Issues
+
+ None
+
+Revision History
+
+ Rev. Date Author Changes
+ ---- ------------- --------- ----------------------------------------
+ 1 02 Dec 2011 groth Split 3D Vision capability from previous extension.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_context_priority_realtime.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_context_priority_realtime.txt
new file mode 100644
index 0000000..5435c8c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_context_priority_realtime.txt
@@ -0,0 +1,195 @@
+Name
+
+ NV_context_priority_realtime
+
+Name Strings
+
+ EGL_NV_context_priority_realtime
+
+Contributors
+
+ Sandeep Shinde
+ Kirill Artamonov
+ Sami Kiminki
+ Donghan Ryu
+ Daniel Koch
+ Mark Kilgard
+
+Contacts
+
+ Sandeep Shinde, NVIDIA (sashinde 'at' nvidia 'dot' com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 4 - November 21, 2017
+
+Number
+
+ EGL Extension #124
+
+Dependencies
+
+ Requires EGL 1.0.
+
+ Requires EGL_IMG_context_priority
+
+ This extension is written against the wording of the EGL 1.5
+ Specification - August 27, 2014 (but may be implemented against earlier
+ versions).
+
+Overview
+
+ This extension allows an EGLContext to be created with one extra
+ priority level in addition to three priority levels that are part of
+ EGL_IMG_context_priority extension.
+
+ This new level has extra privileges that are not available to other three
+ levels. Some of the privileges may include:
+ - Allow realtime priority to only few contexts
+ - Allow realtime priority only to trusted applications
+ - Make sure realtime priority contexts are executed immediately
+ - Preempt any current context running on GPU on submission of
+ commands for realtime context
+
+ The mechanism for determining which EGL context is allowed to use this
+ priority level is platform dependent.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ New attribute value accepted for the EGL_CONTEXT_PRIORITY_LEVEL_IMG
+ attribute in the <attrib_list> argument of eglCreateContext:
+
+ EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357
+
+Additions to Chapter 3 of the EGL 1.5 Specification (EGL Functions and Errors)
+
+ Add a NEW section "3.7.1.7 Context Priority" to specify the context
+ priority attribute for EGL_IMG_context_priority and values:
+
+ "3.7.1.7 Context Priority
+
+ The attribute EGL_CONTEXT_PRIORITY_LEVEL_IMG specifies a context
+ priority hint for a context supporting context priority. This
+ attribute's value may be one of EGL_CONTEXT_PRIORITY_HIGH_IMG,
+ EGL_CONTEXT_PRIORITY_MEDIUM_IMG, EGL_CONTEXT_PRIORITY_LOW_IMG,
+ or EGL_CONTEXT_PRIORITY_REALTIME_NV. The default value for
+ EGL_CONTEXT_PRIORITY_LEVEL_IMG is EGL_CONTEXT_PRIORITY_MEDIUM_IMG.
+
+ This attribute is a hint, as an implementation may not support
+ multiple contexts at some priority levels and system policy may limit
+ access to high priority contexts to appropriate system privilege
+ level.
+
+ The value EGL_CONTEXT_PRIORITY_REALTIME_NV requests the created
+ context run at the highest possible priority and be capable of
+ preempting the current executing context when commands are flushed
+ by such a realtime context.
+
+ This attribute is supported only for OpenGL and OpenGL ES contexts."
+
+ Within section 3.7.4 "Context Queries" amend the eglQueryContext
+ discussion as follows:
+
+ Change the sentence describing the attribute parameter to include
+ EGL_CONTEXT_PRIORITY_LEVEL_IMG so it reads:
+
+ "attribute must be set to EGL_CONFIG_ID, EGL_CONTEXT_CLIENT_TYPE,
+ EGL_CONTEXT_CLIENT_VERSION, EGL_RENDER_BUFFER, or
+ EGL_CONTEXT_PRIORITY_LEVEL_IMG."
+
+ After the discussion of "Querying EGL_RENDER_BUFFER", add:
+
+ "Querying EGL_CONTEXT_PRIORITY_LEVEL_IMG returns the priority this
+ context was actually created with. Note: this may not be the same
+ as specified at context creation time, due to implementation limits
+ on the number of contexts that can be created at a specific priority
+ level in the system."
+
+Issues
+
+ 1) The EGL_IMG_context_priority extension is written to amend the EGL
+ 1.4 specification. Should this extension amend EGL 1.5 or 1.4?
+
+ RESOLVED: EGL 1.5 because it is newer and better organized to
+ extend context attributes.
+
+ EGL 1.5 rewrites 3.7.1 "Creating Rendering Contexts" to have subsections
+ for different context attributes. This extension adds a new such section
+ that includes the EGL_IMG_context_priority attribute and values too.
+
+ 2) Is context priority hint supported for both OpenGL and OpenGL ES contexts?
+
+ RESOLVED: Yes.
+
+ 3) What is the intended application of the realtime priority level?
+
+ RESOLVED: One anticipated application is the system compositor
+ for a Head Mounted Display (HMD) requires realtime recomposition
+ for time-warping.
+
+ 4) What action causes a context with realtime priority to preempt
+ other contexts?
+
+ RESOLVED: Preemption by a context with realtime priority should
+ occur when there are pending rendering commands and an implicit or
+ explicit flush (i.e. glFlush or glFinish) occurs.
+
+ 5) What does "trusted" or "appropriate system privilege level"
+ mean in practice for a Linux-based operating system such as Android?
+
+ RESOLVED: Trusted means an application that has higher privileges
+ than other apps such as having CAP_SYS_NICE capability. On Android
+ such applications have to be registered in advance with the OS;
+ unpriviledged third party app cannot acquire this capability.
+
+ This restriction exists so arbitrary applications do not starve or
+ otherwise compromise the interactivity of the system overall.
+
+ 6) In practice how many realtime priority contexts can exist in a system to
+ get best performance?
+
+ RESOLVED: Only one realtime priority context should be active at a given
+ moment to get best performance.
+
+ 7) Can a context created with a realtime priority hint that is
+ in fact given a realtime priority, subsequently find that realtime
+ priority revoked and, if revoked, can it be restored?
+
+ RESOLVED: No, once a context is created with specific priority level, the
+ priority will not change for lifetime of the context. This means there will
+ not be revoking or restoring of realtime priority to already created context.
+
+ 8) The attrib_list for eglCreateContext could list the attribute
+ EGL_CONTEXT_PRIORITY_LEVEL_IMG multiple times with different valid values.
+ What happens in this case?
+
+ RESOLVED: Behavior is undefined in this case.
+
+ NVIDIA's EGL implementation handles such case by using the last (valid) attribute
+ value listed in the attrib_list array as the effective attribute value for
+ creating the context.
+
+ The EGL specification is unfortunately silent on this issue.
+
+
+Revision History
+ Version 1, 2016/11/23 (Sandeep Shinde)
+ - Initial version
+ Version 2, 2017/10/13 (Mark Kilgard)
+ - Complete and convert to NV extension
+ Version 3, 2017/10/31 (Sandeep Shinde)
+ - Few minor corrections. Issue 6 resolved.
+ Version 4, 2017/11/21 (Sandeep Shinde)
+ - Update enum value and add extension number
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_coverage_sample.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_coverage_sample.txt
new file mode 100644
index 0000000..e016a6f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_coverage_sample.txt
@@ -0,0 +1,554 @@
+Name
+
+ NV_coverage_sample
+
+Name Strings
+
+ GL_NV_coverage_sample
+ EGL_NV_coverage_sample
+
+Contact
+
+ Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
+
+Notice
+
+ Copyright NVIDIA Corporation, 2005 - 2007
+
+Status
+
+ NVIDIA Proprietary
+
+Version
+
+ Last Modified Date: 2007/03/20
+ NVIDIA Revision: 1.0
+
+Number
+
+ EGL Extension #17
+ OpenGL ES Extension #72
+
+Dependencies
+
+ Written based on the wording of the OpenGL 2.0 specification
+ and the EXT_framebuffer_object specification.
+
+ Written based on the wording of the EGL 1.2 specification.
+
+ Requires OpenGL-ES 2.0 and OES_framebuffer_object.
+
+ Requires EGL 1.1.
+
+Overview
+
+ Anti-aliasing is a critical component for delivering high-quality
+ OpenGL rendering. Traditionally, OpenGL implementations have
+ implemented two anti-aliasing algorithms: edge anti-aliasing
+ and multisampling.
+
+ Edge anti-aliasing computes fractional fragment coverage for all
+ primitives in a rendered frame, and blends edges of abutting
+ and/or overlapping primitives to produce smooth results. The
+ image quality produced by this approach is exceptionally high;
+ however, applications are render their geometry perfectly ordered
+ back-to-front in order to avoid artifacts such as bleed-through.
+ Given the algorithmic complexity and performance cost of performing
+ exact geometric sorts, edge anti-aliasing has been used very
+ sparingly, and almost never in interactive games.
+
+ Multisampling, on the other hand, computes and stores subpixel
+ (a.k.a. "sample") coverage for rasterized fragments, and replicates
+ all post-alpha test operations (e.g., depth test, stencil test,
+ alpha blend) for each sample. After the entire scene is rendered,
+ the samples are filtered to compute the final anti-aliased image.
+ Because the post-alpha test operations are replicated for each sample,
+ all of the bleed-through and ordering artifacts that could occur with
+ edge anti-aliasing are avoided completely; however, since each sample
+ must be computed and stored separately, anti-aliasing quality is
+ limited by framebuffer storage and rendering performance.
+
+ This extension introduces a new anti-aliasing algorithm to OpenGL,
+ which dramatically improves multisampling quality without
+ adversely affecting multisampling's robustness or significantly
+ increasing the storage required, coverage sampling.
+
+ Coverage sampling adds an additional high-precision geometric
+ coverage buffer to the framebuffer, which is used to produce
+ high-quality filtered results (with or without the presence of a
+ multisample buffer). This coverage information is computed and stored
+ during rasterization; since applications may render objects where the
+ specified geometry does not correspond to the visual result (examples
+ include alpha-testing for "imposters," or extruded volume rendering
+ for stencil shadow volumes), coverage buffer updates may be masked
+ by the application, analagous to masking the depth buffer.
+
+IP Status
+
+ NVIDIA Proprietary
+
+New Procedures and Functions
+
+ void CoverageMaskNV( boolean mask )
+ void CoverageOperationNV( enum operation )
+
+New Tokens
+
+
+ Accepted by the <attrib_list> parameter of eglChooseConfig
+ and eglCreatePbufferSurface, and by the <attribute>
+ parameter of eglGetConfigAttrib
+
+ EGL_COVERAGE_BUFFERS_NV 0x30E0
+ EGL_COVERAGE_SAMPLES_NV 0x30E1
+
+ Accepted by the <internalformat> parameter of
+ RenderbufferStorageEXT and the <format> parameter of ReadPixels
+
+ COVERAGE_COMPONENT_NV 0x8ED0
+
+ Accepted by the <internalformat> parameter of
+ RenderbufferStorageEXT
+
+ COVERAGE_COMPONENT4_NV 0x8ED1
+
+ Accepted by the <operation> parameter of CoverageOperationNV
+
+ COVERAGE_ALL_FRAGMENTS_NV 0x8ED5
+ COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6
+ COVERAGE_AUTOMATIC_NV 0x8ED7
+
+ Accepted by the <attachment> parameter of
+ FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv
+
+ COVERAGE_ATTACHMENT_NV 0x8ED2
+
+ Accepted by the <buf> parameter of Clear
+
+ COVERAGE_BUFFER_BIT_NV 0x8000
+
+ Accepted by the <pname> parameter of GetIntegerv
+
+ COVERAGE_BUFFERS_NV 0x8ED3
+ COVERAGE_SAMPLES_NV 0x8ED4
+
+Changes to Chapter 4 of the OpenGL 2.0 Specification
+
+ Insert a new section, after Section 3.2.1 (Multisampling)
+
+ "3.2.2 Coverage Sampling
+
+ Coverage sampling is a mechanism to antialias all GL primitives: points,
+ lines, polygons, bitmaps and images. The technique is similar to
+ multisampling, with all primitives being sampled multiple times at each
+ pixel, and a sample resolve applied to compute the color values stored
+ in the framebuffer's color buffers. As with multisampling, coverage
+ sampling resolves color sample and coverage values to a single, displayable
+ color each time a pixel is updated, so antialiasing appears to be automatic
+ at the application level. Coverage sampling may be used simultaneously
+ with multisampling; however, this is not required.
+
+ An additional buffer, called the coverage buffer, is added to
+ the framebuffer. This buffer stores additional coverage information
+ that may be used to produce higher-quality antialiasing than what is
+ provided by conventional multisampling.
+
+ When the framebuffer includes a multisample buffer (3.5.6), the
+ samples contain this coverage information, and the framebuffer
+ does not include the coverage buffer.
+
+ If the value of COVERAGE_BUFFERS_NV is one, the rasterization of
+ all primitives is changed, and is referred to as coverage sample
+ rasterization. Otherwise, primitive rasterization is referred to
+ as multisample rasterization (if SAMPLE_BUFFERS is one) or
+ single-sample rasterization (otherwise). The value of
+ COVERAGE_BUFFERS_NV is queried by calling GetIntegerv with <pname>
+ set to COVERAGE_BUFFERS_NV.
+
+ During coverage sample rasterization the pixel fragment contents
+ are modified to include COVERAGE_SAMPLES_NV coverage values. The
+ value of COVERAGE_SAMPLES_NV is an implementation-dependent
+ constant, and is queried by calling GetIntegerv with <pname> set
+ to COVERAGE_SAMPLES_NV.
+
+ The command
+
+ CoverageOperationNV(enum operation)
+
+ may be used to modify the manner in which coverage sampling is
+ performed for all primitives. If <operation> is
+ COVERAGE_ALL_FRAGMENTS_NV, coverage sampling will be performed and the
+ coverage buffer updated for all fragments generated during rasterization.
+ If <operation> is COVERAGE_EDGE_FRAGMENTS_NV, coverage sampling will
+ only be performed for fragments generated at the edge of the
+ primitive (by only updating fragments at the edges of primitives,
+ applications may get better visual results when rendering partially
+ transparent objects). If <operation> is COVERAGE_AUTOMATIC_NV,
+ the GL will automatically select the appropriate coverage operation,
+ dependent on the GL blend mode and the use of gl_LastFragColor /
+ gl_LastFragData in the bound fragment program. If blending is enabled,
+ or gl_LastFragColor / gl_LastFragData appears in the bound fragment
+ program, COVERAGE_AUTOMATIC_NV will behave identically to
+ COVERAGE_EDGE_FRAGMENTS_NV; otherwise, COVERAGE_AUTOMATIC_NV will behave
+ identically to COVERAGE_ALL_FRAGMENTS_NV. The default coverage operation
+ is COVERAGE_AUTOMATIC_NV."
+
+ Insert a new section, after Section 3.3.3 (Point Multisample
+ Rasterization)
+
+ "3.3.4 Point Coverage Sample Rasterization
+
+ If the value of COVERAGE_BUFFERS_NV is one, then points are
+ rasterized using the following algorithm, regardless of whether
+ point antialiasing (POINT_SMOOTH) is enabled or disabled. Point
+ rasterization produces fragments using the same algorithm described
+ in section 3.3.3; however, sample points are divided into SAMPLES
+ multisample points and COVERAGE_SAMPLES_NV coverage sample points.
+
+ Rasterization for multisample points uses the algorithm described
+ in section 3.3.3. Rasterization for coverage sample points uses
+ implementation-dependent algorithms, ultimately storing the results
+ in the coverage buffer."
+
+ Insert a new section, after Section 3.4.4 (Line Multisample
+ Rasterization)
+
+ "3.4.5 Line Coverage Sample Rasterization
+
+ If the value of COVERAGE_BUFFERS_NV is one, then lines are
+ rasterized using the following algorithm, regardless of whether
+ line antialiasing (LINE_SMOOTH) is enabled or disabled. Line
+ rasterization produces fragments using the same algorithm described
+ in section 3.4.4; however, sample points are divided into SAMPLES
+ multisample points and COVERAGE_SAMPLES_NV coverage sample points.
+
+ Rasterization for multisample points uses the algorithm described in
+ section 3.4.4. Rasterization for coverage sample points uses
+ implementation-dependent algorithms, ultimately storing results in
+ the coverage buffer."
+
+ Insert a new section, after Section 3.5.6 (Polygon Multisample
+ Rasterization)
+
+ "3.5.7 Polygon Coverage Sample Rasterization
+
+ If the value of COVERAGE_BUFFERS_NV is one, then polygons are
+ rasterized using the following algorithm, regardless of whether
+ polygon antialiasing (POLYGON_SMOOTH) is enabled or disabled. Polygon
+ rasterization produces fragments using the same algorithm described in
+ section 3.5.6; however, sample points are divided into SAMPLES multisample
+ points and COVERAGE_SAMPLES_NV coverage sample points.
+
+ Rasterization for multisample points uses the algorithm described in
+ section 3.5.7. Rasterization for coverage sample points uses
+ implementation-dependent algorithms, ultimately storing results in the
+ coverage buffer."
+
+ Insert a new section, after Section 3.6.6 (Pixel Rectangle Multisample
+ Rasterization)
+
+ "3.6.7 Pixel Rectangle Coverage Sample Rasterization
+
+ If the value of COVERAGE_BUFFERS_NV is one, then pixel rectangles are
+ rasterized using the algorithm described in section 3.6.6."
+
+ Modify the first sentence of the second-to-last paragraph of section
+ 3.7 (Bitmaps) to read:
+
+ "Bitmap Multisample and Coverage Sample Rasterization
+
+ If MULTISAMPLE is enabled, and the value of SAMPLE_BUFFERS is one;
+ or if the value of COVERAGE_BUFFERS_NV is one, then bitmaps are
+ rasterized using the following algorithm. [...]"
+
+ Insert after the first paragraph of Section 4.2.2 (Fine Control of
+ Buffer Updates):
+
+ "The coverage buffer can be enabled or disabled for writing coverage
+ sample values using
+
+ void CoverageMaskNV( boolean mask );
+
+ If <mask> is non-zero, the coverage buffer is enabled for writing;
+ otherwise, it is disabled. In the initial state, the coverage
+ buffer is enabled for writing."
+
+ And change the text of the last 2 paragraphs of Section 4.2.2 to read:
+
+ "The state required for the various masking operations is three
+ integers and two bits: an integer for color indices, an integer for
+ the front and back stencil values, a bit for depth values, and a
+ bit for coverage sample values. A set of four bits is also required
+ indicating which components of an RGBA value should be written. In the
+ initial state, the integer masks are all ones, as are the bits
+ controlling the depth value, coverage sample value and RGBA component
+ writing.
+
+ Fine Control of Multisample Buffer Updates
+
+ When the value of SAMPLE_BUFFERS is one, ColorMask, DepthMask,
+ CoverageMask, and StencilMask or StencilMaskSeparate control the
+ modification of values in the multisample buffer. [...]"
+
+ Change paragraph 2 of Section 4.2.3 (Clearing the Buffers) to read:
+
+ "is the bitwise OR of a number of values indicating which buffers are to
+ be cleared. The values are COLOR_BUFFER_BIT, DEPTH_BUFFER_BIT,
+ STENCIL_BUFFER_BIT, ACCUM_BUFFER_BIT and COVERAGE_BUFFER_BIT_NV, indicating
+ the buffers currently enabled for color writing, the depth buffer,
+ the stencil buffer, the accumulation buffer and the virtual-coverage
+ buffer, respectively. [...]"
+
+ Insert a new paragraph after paragraph 4 of Section 4.3.2 (Reading Pixels)
+ (beginning with "If there is a multisample buffer ..."):
+
+ "If the <format> is COVERAGE_COMPONENT_NV, then values are taken from the
+ coverage buffer; again, if there is no coverage buffer, the error
+ INVALID_OPERATION occurs. When <format> is COVERAGE_COMPONENT_NV,
+ <type> must be GL_UNSIGNED_BYTE. Any other value for <type> will
+ generate the error INVALID_ENUM. If there is a multisample buffer, the
+ values are undefined."
+
+
+
+Modifications to the OES_framebuffer_object specification
+
+ Add a new table at the end of Section 4.4.2.1 (Renderbuffer Objects)
+
+ "+-------------------------+-----------------------+-----------+
+ | Sized internal format | Base Internal Format | C Samples |
+ +-------------------------+-----------------------+-----------+
+ | COVERAGE_COMPONENT4_NV | COVERAGE_COMPONENT_NV | 4 |
+ +-------------------------+-----------------------+-----------+
+ Table 1.ooo Desired component resolution for each sized internal
+ format that can be used only with renderbuffers"
+
+ Add to the bullet list in Section 4.4.4 (Framebuffer Completeness)
+
+ "An internal format is 'coverage-renderable' if it is COVERAGE_COMPONENT_NV
+ or one of the COVERAGE_COMPONENT_NV formats from table 1.ooo. No other
+ formats are coverage-renderable"
+
+ Add to the bullet list in Section 4.4.4.1 (Framebuffer Attachment
+ Completeness)
+
+ "If <attachment> is COVERAGE_ATTACHMENT_NV, then <image> must have a
+ coverage-renderable internal format."
+
+ Add a paragraph at the end of Section 4.4.4.2 (Framebuffer Completeness)
+
+ "The values of COVERAGE_BUFFERS_NV and COVERAGE_SAMPLES_NV are derived from
+ the attachments of the currently bound framebuffer object. If the current
+ FRAMEBUFFER_BINDING_OES is not 'framebuffer-complete', then both
+ COVERAGE_BUFFERS_NV and COVERAGE_SAMPLES_NV are undefined. Otherwise,
+ COVERAGE_SAMPLES_NV is equal to the number of coverage samples for the
+ image attached to COVERAGE_ATTACHMENT_NV, or zero if COVERAGE_ATTACHMENT_NV
+ is zero."
+
+Additions to the EGL 1.2 Specification
+
+ Add to Table 3.1 (EGLConfig attributes)
+ +---------------------------+---------+-----------------------------------+
+ | Attribute | Type | Notes |
+ +---------------------------+---------+-----------------------------------+
+ | EGL_COVERAGE_BUFFERS_NV | integer | number of coverage buffers |
+ | EGL_COVERAGE_SAMPLES_NV | integer | number of coverage samples per |
+ | | | pixel |
+ +---------------------------+---------+-----------------------------------+
+
+ Modify the first sentence of the last paragraph of the "Buffer
+ Descriptions and Attributes" subsection of Section 3.4 (Configuration
+ Management), p. 16
+
+ "There are no single-sample depth, stencil or coverage buffers for a
+ multisample EGLConfig; the only depth, stencil and coverage buffers are
+ those in the multisample buffer. [...]"
+
+ And add the following text at the end of that paragraph:
+
+ "The <coverage buffer> is used only by OpenGL ES. It contains primitive
+ coverage information that is used to produce a high-quality anti-aliased
+ image. The format of the coverage buffer is not specified, and its
+ contents are not directly accessible. Only the existence of the coverage
+ buffer, and the number of coverage samples it contains, are exposed by EGL.
+
+ EGL_COVERAGE_BUFFERS_NV indicates the number of coverage buffers, which
+ must be zero or one. EGL_COVERAGE_SAMPLES_NV gives the number of coverage
+ samples per pixel; if EGL_COVERAGE_BUFFERS_NV is zero, then
+ EGL_COVERAGE_SAMPLES_NV will also be zero."
+
+ Add to Table 3.4 (Default values and match criteria for EGLConfig
+ attributes)
+
+ +---------------------------+-----------+-------------+---------+---------+
+ | Attribute | Default | Selection | Sort | Sort |
+ | | | Criteria | Order | Priority|
+ +---------------------------+-----------+-------------+---------+---------+
+ | EGL_COVERAGE_BUFFERS_NV | 0 | At Least | Smaller | 7 |
+ | EGL_COVERAGE_SAMPLES_NV | 0 | At Least | Smaller | 8 |
+ +---------------------------+-----------+-------------+---------+---------+
+ And renumber existing sort priorities 7-11 as 9-13.
+
+ Modify the list in "Sorting of EGLConfigs" (Section 3.4.1, pg 20)
+
+ " [...]
+ 5. Smaller EGL_SAMPLE_BUFFERS
+ 6. Smaller EGL_SAMPLES
+ 7. Smaller EGL_COVERAGE_BUFFERS_NV
+ 8. Smaller EGL_COVERAGE_SAMPLES_NV
+ 9. Smaller EGL_DEPTH_SIZE
+ 10. Smaller EGL_STENCIL_SIZE
+ 11. Smaller EGL_ALPHA_MASK_SIZE
+ 12. Special: [...]
+ 13. Smaller EGL_CONFIG_ID [...]"
+
+Usage Examples
+
+ (1) Basic Coverage Sample Rasterization
+
+ glCoverageMaskNV(GL_TRUE);
+ glDepthMask(GL_TRUE);
+ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+
+ while (1)
+ {
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT |
+ GL_COVERAGE_BUFFER_BIT_NV);
+ glDrawElements(...);
+ eglSwapBuffers(...);
+ }
+
+ (2) Multi-Pass Rendering Algorithms
+
+ while (1)
+ {
+ glDepthMask(GL_TRUE);
+ glCoverageMaskNV(GL_TRUE);
+ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT |
+ GL_COVERAGE_BUFFER_BIT_NV);
+
+ // first render pass: render Z-only (occlusion surface), with
+ // coverage info. color writes are disabled
+
+ glCoverageMaskNV(GL_TRUE);
+ glDepthMask(GL_TRUE);
+ glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
+ glDepthFunc(GL_LESS);
+ glDrawElements(...);
+
+ // second render pass: set Z test to Z-equals, disable Z-writes &
+ // coverage writes. enable color writes. coverage may be
+ // disabled, because subsequent rendering passes are rendering
+ // identical geometry -- since the final coverage buffer will be
+ // unchanged, we can disable coverage writes as an optimization.
+
+ glCoverageMaskNV(GL_FALSE);
+ glDepthMask(GL_FALSE);
+ glDepthFunc(GL_EQUAL);
+ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ glDrawElements(...);
+
+ eglSwapBuffers();
+ }
+
+ (3) Rendering Translucent Objects on Top of Opaque Objects
+
+ while (1)
+ {
+ glDepthMask(GL_TRUE);
+ glCoverageMaskNV(GL_TRUE);
+ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT |
+ GL_COVERAGE_BUFFER_BIT_NV);
+
+ // render opaque, Z-buffered geometry with coverage info for the
+ // entire primitive. Overwrite coverage data for all fragments, so
+ // that interior fragments do not get resolved incorrectly.
+
+ glDepthFunc(GL_LESS);
+ glCoverageOperationNV(GL_COVERAGE_ALL_FRAGMENTS_NV);
+ glDrawElements(...);
+
+ // render translucent, Z-buffered geometry. to ensure that visible
+ // edges of opaque geometry remain anti-aliased, change the
+ // coverage operation to just edge fragments. this will maintain
+ // the coverage information underneath the translucent geometry,
+ // except at translucent edges.
+
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glCoverageOperationNV(GL_COVERAGE_EDGE_FRAGMENTS_NV);
+ glEnable(GL_BLEND);
+ glDrawElements(...);
+ glDisable(GL_BLEND);
+
+ eglSwapBuffers();
+ }
+
+ (4) Rendering Opacity-Mapped Particle Systems & HUDs on Top of Opaque
+ Geometry
+
+ while (1)
+ {
+ glDepthMask(GL_TRUE);
+ glCoverageMaskNV(GL_TRUE);
+ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT |
+ GL_COVERAGE_BUFFER_BIT_NV);
+
+ // render opaque, Z-buffered geometry, with coverage info.
+ glDepthFunc(GL_LESS);
+ glDrawElements(...);
+
+ // render opacity-mapped geometry. disable Z writes, enable alpha
+ // blending. also, disable coverage writes -- the edges of the
+ // geometry used for the HUD/particle system have alpha values
+ // tapering to zero, so edge coverage is uninteresting, and
+ // interior coverage should still refer to the underlying opaque
+ // geometry, so that opaque edges visible through the translucent
+ // regions remain anti-aliased.
+
+ glCoverageMaskNV(GL_FALSE);
+ glDepthMask(GL_FALSE);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+ glDrawElements(...);
+ glDisable(GL_BLEND);
+
+ eglSwapBuffers();
+ }
+
+
+Issues
+
+ 1. Is any specific discussion of coverage sampling resolves required,
+ particularly with respect to application-provided framebuffer objects?
+
+ RESOLVED: No. Because the coverage sampling resolve is an
+ implementation-dependent algorithm, it is always legal behavior for
+ framebuffer read / copy functions to return the value in the selected
+ ReadBuffer as if COVERAGE_BUFFERS_NV was zero. This allows
+ textures attached to the color attachment points of framebuffer objects
+ to behave predictably, even when COVERAGE_BUFFERS_NV is one.
+
+ Implementations are encouraged, whenever possible, to use the highest-
+ quality coverage sample resolve supported for calls to eglSwapBuffers,
+ eglCopyBuffers, ReadPixels, CopyPixels and CopyTex{Sub}Image.
+
+ 2. Should all render buffer & texture types be legal sources for image
+ resolves and coverage attachment?
+
+ RESOLVED: This spec should not place any arbitrary limits on usage;
+ however, there are many reasons why implementers may not wish to
+ support coverage sampling for all surface types.
+
+ Implementations may return FRAMEBUFFER_UNSUPPORTED_OES from
+ CheckFramebufferStatusOES if an object bound to COVERAGE_ATTACHMENT_NV
+ is incompatible with one or more objects bound to DEPTH_ATTACHMENT_OES,
+ STENCIL_ATTACHMENT_OES, or COLOR_ATTACHMENTi_OES.
+
+Revision History
+
+#1.0 - 20.03.2007
+
+ Renumbered enumerants. Reformatted to 80 columns.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_coverage_sample_resolve.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_coverage_sample_resolve.txt
new file mode 100644
index 0000000..fa5cc15
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_coverage_sample_resolve.txt
@@ -0,0 +1,127 @@
+Name
+
+ NV_coverage_sample_resolve
+
+Name Strings
+
+ EGL_NV_coverage_sample_resolve
+
+Contact
+
+ James Jones, NVIDIA Corporation (jajones 'at' nvidia.com)
+
+Notice
+
+ Copyright NVIDIA Corporation, 2011
+
+Status
+
+ NVIDIA Proprietary
+
+Version
+
+ Last Modified Date: 2011/04/13
+ NVIDIA Revision: 1.0
+
+Number
+
+ EGL Extension #30
+
+Dependencies
+
+ Written based on the wording of the EGL 1.4 specification.
+
+ Trivially interacts with EGL_NV_coverage_sample
+
+ Requires EGL 1.2.
+
+Overview
+
+ NV_coverage_sample introduced a method to improve rendering quality
+ using a separate buffer to store coverage information for pixels in
+ the color buffers. It also provided a mechanism to disable writing
+ to the coverage buffer when coverage sample filtering was not needed
+ or undesirable. However, it did not provide a way to disable
+ reading data from the coverage buffer at resolve time. In some
+ cases performance can be improved by eliminating these memory reads.
+ To that end, this extension exposes a surface attribute that allows
+ applications to specify when no coverage sample resolve is desired.
+
+IP Status
+
+ NVIDIA Proprietary
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted by the <attribute> parameter of eglSurfaceAttrib and
+ eglQuerySurface:
+
+ EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131
+
+ Accepted by the <value> parameter of eglSurfaceAttrib and returned
+ in the <value> parameter of eglQuerySurface when <attribute> is
+ EGL_COVERAGE_SAMPLE_RESOLVE_NV:
+
+ EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132
+ EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
+
+Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and
+Errors)
+
+ Additions to section 3.5.6 (Surface Attributes)
+
+ Replace the last sentence of paragraph 2 (p. 35):
+
+ "Attributes that can be specified are
+ EGL_COVERAGE_SAMPLE_RESOLVE_NV, EGL_MIPMAP_LEVEL,
+ EGL_MULTISAMPLE_RESOLVE, and EGL_SWAP_BEHAVIOR."
+
+ Add the following paragraphs between paragraphs 2 and 3 (p. 35):
+
+ "If <attribute> is EGL_COVERAGE_SAMPLE_RESOLVE_NV, then <value>
+ specifies the filter to use when resolving the coverage sample
+ buffer. A <value> of EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV chooses
+ the default implementation-defined filtering method, while
+ EGL_MULTISAMPLE_RESOLVE_NONE_NV disables filtering based on coverage
+ data.
+
+ "The initial value of EGL_COVERAGE_SAMPLE_RESOLVE_NV is
+ EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV."
+
+ Add the following paragraph after paragraph 13 (p. 36):
+
+ "Querying EGL_COVERAGE_SAMPLE_RESOLVE_NV returns the filtering
+ method used when performing coverage buffer resolution. The filter
+ may be either EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV or
+ EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV, as described above for
+ eglSurfaceAttrib."
+
+Interactions with EGL_NV_coverage_sample:
+
+ This extension relies on language in EGL_NV_coverage_sample to
+ describe the coverage sample buffer.
+
+ If EGL_NV_coverage_sample is not present, this extension has no
+ effect on rendering.
+
+Issues
+
+ 1. Should it be an error to set EGL_COVERAGE_SAMPLE_RESOLVE_NV on
+ surfaces that don't have a coverage buffer?
+
+ RESOLVED: No. EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV will behave
+ the same as EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV in this case.
+
+Revision History
+
+#1 (James Jones, 2011-04-13)
+
+ - Initial revision.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_cuda_event.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_cuda_event.txt
new file mode 100644
index 0000000..cc54749
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_cuda_event.txt
@@ -0,0 +1,206 @@
+Name
+
+ NV_cuda_event
+
+Name Strings
+
+ EGL_NV_cuda_event
+
+Contributors
+
+ Debalina Bhattacharjee
+ Michael Chock
+ James Jones
+ Daniel Kartch
+
+Contact
+
+ Michael Chock (mchock 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 2, June 28, 2018
+
+Number
+
+ EGL Extension #75
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ This extension is written against the language of EGL 1.5 and the
+ EGL_EXT_sync_reuse extension.
+
+ Either EGL_KHR_fence_sync and the EGLAttrib type or EGL 1.5 are
+ required.
+
+ This extension interacts with, but does not require,
+ EGL_EXT_sync_reuse.
+
+ This extension interacts with EGL_NV_device_cuda.
+
+Overview
+
+ This extension allows creating an EGL sync object linked to a CUDA
+ event object, potentially improving efficiency of sharing images and
+ compute results between the two APIs.
+
+IP Status
+
+ No known claims.
+
+New Types
+
+ A pointer to type cudaEvent_t, defined in the CUDA header files, may
+ be included in the attribute list passed to eglCreateSync.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as attribute names in the <attrib_list> argument
+ of eglCreateSync:
+
+ EGL_CUDA_EVENT_HANDLE_NV 0x323B
+
+ Returned in <values> for eglGetSyncAttrib <attribute>
+ EGL_SYNC_TYPE:
+
+ EGL_SYNC_CUDA_EVENT_NV 0x323C
+
+ Returned in <values> for eglGetSyncAttrib <attribute>
+ EGL_SYNC_CONDITION:
+
+ EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D
+
+Add to section 3.8.1 (Sync Objects) of the EGL 1.5 specification, after
+the sixth paragraph:
+
+ Likewise, a <CUDA event sync object> reflects the status of a
+ corresponding CUDA object. Waiting on this type of sync object is
+ equivalent to waiting for completion of the corresponding linked
+ CUDA event object.
+
+Add a new section following section 3.8.1.2 (Creating and Signaling
+OpenCL Event Sync Objects):
+
+ Section 3.8.1.X Creating and Signaling CUDA Event Sync Objects
+
+ If <type> is EGL_SYNC_CUDA_EVENT_NV, a CUDA event sync object is
+ created. The <attrib_list> may contain the attribute
+ EGL_CUDA_EVENT_HANDLE_NV, set to a pointer to a cudaEvent_t object.
+ If it does not contain this attribute, the sync object will start in
+ the signaled state, and an event attribute must be provided the
+ first time eglUnsignalSyncEXT is called. Otherwise, a call to
+ eglUnsignalSyncEXT may replace this event attribute or leave it
+ unspecified, causing the previous object to be reused.
+
+ A cudaEvent_t object provided to eglCreateSync or eglUnsignalSyncEXT
+ must be properly initialized and recorded by the CUDA API (using
+ cudaEventCreate and cudaEventRecord), and the CUDA device
+ used to create the event must correspond to <dpy>[fn1]. Note that
+ EGL_CUDA_EVENT_HANDLE_NV is not a queryable property of a sync
+ object.
+
+ [fn1] If EGL_NV_device_cuda is supported, it is sufficient that the
+ CUDA device used to create the CUDA event matches the
+ EGL_CUDA_DEVICE_NV attribute of <dpy>'s underlying EGL
+ device.
+
+ Attributes of the CUDA event sync object are set as follows:
+
+ Attribute Name Initial Attribute Value(s)
+ ------------- --------------------------
+ EGL_SYNC_TYPE EGL_SYNC_CUDA_EVENT_NV
+ EGL_SYNC_STATUS Depends on status of <event>
+ EGL_SYNC_CONDITION EGL_SYNC_CUDA_EVENT_COMPLETE_NV
+
+ If an <event> is linked to the sync object, the status of this type
+ of sync object depends on the state of <event> evaluated at the time
+ of the most recent call to eglCreateSync or eglUnsignalSyncEXT. If
+ all device work preceding the most recent call to cudaEventRecord on
+ the event has not yet completed, the status of the linked sync
+ object will be EGL_UNSIGNALED. If all such work has completed, the
+ status of the linked sync object will be EGL_SIGNALED. Calling
+ cudaEventRecord to modify an event has no effect on the sync object
+ while its status is EGL_UNSIGNALED, but will have an effect if the
+ event is reevaluated at a subsequent eglUnsignalSyncEXT call.
+
+ The only condition supported for CUDA event sync objects is
+ EGL_SYNC_CUDA_EVENT_COMPLETE_NV. It is satisfied when all device
+ work prior to the most recent call to cudaEventRecord at sync
+ unsignaling time has completed.
+
+If EGL_EXT_sync_reuse is not present, then change the second sentence of
+3.8.1.X above to "The <attrib_list> must contain ..." and omit the
+remaining sentences in the paragraph. Omit all references to
+eglUnsignalSyncEXT.
+
+In 3.8.1 (Sync Objects), if EGL_EXT_sync_reuse is present, then add the
+following to the error list for eglUnsignalSyncEXT. Otherwise add it to
+the error list for eglCreateSync:
+
+ If <type> is EGL_SYNC_CUDA_EVENT_NV and a EGL_CUDA_EVENT_HANDLE_NV
+ is not linked to the sync object, then an EGL_BAD_ATTRIBUTE error is
+ generated. If its attribute value is not a valid CUDA event pointer
+ or has not been initialized as described above, then
+ EGL_BAD_ATTRIBUTE may be generated, but the results are undefined
+ and may include program termination.
+
+Modify the third paragraph of section 3.8.1.4 (Querying Sync Object
+Attributes):
+
+ If any eglClientWaitSync or eglWaitSync commands are blocking on
+ <sync> when eglDestroySync is called, <sync> is flagged for deletion
+ and will be deleted when the associated fence command, OpenCL event
+ object, or CUDA event object has completed, and <sync> is no longer
+ blocking any such egl*WaitSync command. Otherwise, the sync object
+ is destroyed immediately.
+
+Replace the EGL_SYNC_CONDITION row of table 3.9 with:
+
+ Attribute Description Supported Sync Objects
+ ------------------ ----------------------- ----------------------
+ EGL_SYNC_CONDITION Signaling condition EGL_SYNC_FENCE,
+ EGL_SYNC_CL_EVENT, or
+ EGL_SYNC_CUDA_EVENT_NV
+
+ Table 3.9 Attributes Accepted by eglGetSyncAttrib
+
+
+Interactions with EGL versions prior to 1.5
+
+ This extension may be used with earlier versions of EGL, provided
+ that the EGL_KHR_fence_sync extension is supported. In this case,
+ replace all references to sync functions and tokens with
+ corresponding KHR-suffixed versions (e.g., replace eglCreateSync
+ with eglCreateSyncKHR).
+
+ Additionally, this extension may be used with the 64-bit types and
+ functions added to EGL_KHR_fence_sync introduced by
+ EGL_KHR_cl_event2 (EGLAttribKHR and eglCreateSync64KHR). Support
+ for OpenCL events is not required.
+
+Issues
+
+ None
+
+Revision History
+
+ Version 2, 2018/06/28 (Daniel Kartch)
+ - Rewritten to clearly define interactions with
+ EGL_EXT_sync_reuse, without requiring it
+ - Fixed incorrect CUDA function name
+ - Fixed table spacing
+
+ Version 1, 2014/06/20 (Michael Chock)
+ - initial version.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_depth_nonlinear.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_depth_nonlinear.txt
new file mode 100644
index 0000000..b46b3ca
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_depth_nonlinear.txt
@@ -0,0 +1,142 @@
+Name
+
+ NV_depth_nonlinear
+
+Name Strings
+
+ GL_NV_depth_nonlinear
+ EGL_NV_depth_nonlinear
+
+Contact
+
+ Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
+
+Notice
+
+ Copyright NVIDIA Corporation, 2005 - 2007.
+
+Status
+
+ NVIDIA Proprietary
+
+Version
+
+ Last Modified: 2007/03/20
+ NVIDIA Revision: 1.0
+
+Number
+
+ EGL Extension #18
+ OpenGL ES Extension #73
+
+Dependencies
+
+ Written based on the wording of the OpenGL 2.0 Specification and
+ EGL 1.2 Specification.
+
+ Requires EGL 1.1.
+
+ Requires OpenGL-ES 1.0.
+
+ OES_framebuffer_object affects the wording of this specification.
+
+Overview
+
+ Due to the perspective divide, conventional integer Z-buffers have
+ a hyperbolic distribution of encodings between the near plane
+ and the far plane. This can result in inaccurate depth testing,
+ particularly when the number of depth buffer bits is small
+ and objects are rendered near the far plane.
+
+ Particularly when the number of depth buffer bits is limited
+ (desirable and/or required in low-memory environments), artifacts
+ due to this loss of precision may occur even with relatively
+ modest far plane-to-near plane ratios (e.g., greater than 100:1).
+
+ Many attempts have been made to provide alternate encodings for
+ Z-buffer (or alternate formulations for the stored depth) to
+ reduce the artifacts caused by perspective division, such as
+ W-buffers, Z-complement buffers and floating-point 1-Z buffers.
+
+ This extension adds a non-linear encoded Z buffer to OpenGL,
+ which can improve the practically useful range of, e.g. 16-bit
+ depth buffers by up to a factor of 16, greatly improving depth
+ test quality in applications where the ratio between the near
+ and far planes can not be as tightly controlled.
+
+IP Status
+
+ NVIDIA Proprietary
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Accepted as a valid sized internal format by all functions accepting
+ sized internal formats with a base format of DEPTH_COMPONENT
+
+ DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C
+
+ Accepted by the <attrib_list> parameter of eglChooseConfig and
+ eglCreatePbufferSurface, and by the <attribute> parameter of
+ eglGetConfigAttrib
+
+ EGL_DEPTH_ENCODING_NV 0x30E2
+
+ Accepted as a value in the <attrib_list> parameter of eglChooseConfig
+ and eglCreatePbufferSurface, and returned in the <value> parameter
+ of eglGetConfigAttrib
+
+ EGL_DEPTH_ENCODING_NONE_NV 0
+ EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
+
+Changes to the OpenGL 2.0 Specification
+
+ Add the following line to table 3.16 (p. 154)
+
+ +--------------------------------+-----------------+------+
+ | Sized Internal Format | Base Internal | D |
+ | | Format | Bits |
+ +--------------------------------+-----------------+------+
+ | DEPTH_COMPONENT16_NONLINEAR_NV | DEPTH_COMPONENT | 16 |
+ +--------------------------------+-----------------+------+
+
+Changes to the EGL 1.2 Specification
+
+ Add the following line to table 3.1 (p. 14)
+
+ +--------------------------+------+---------------------------------------+
+ | Attribute | Type | Notes |
+ +--------------------------+------+---------------------------------------+
+ | EGL_DEPTH_ENCODING_NV | enum | Type of depth-buffer encoding employed|
+ +--------------------------+------+---------------------------------------+
+
+ Modify the description of the depth buffer in Section 3.4 (p. 15)
+
+ "The depth buffer is used only by OpenGL ES. It contains fragment depth
+ (Z) information generated during rasterization. EGL_DEPTH_SIZE indicates
+ the depth of this buffer in bits, and EGL_DEPTH_ENCODING_NV indicates which
+ alternate depth-buffer encoding (if any) should be used. Legal values for
+ EGL_DEPTH_ENCODING_NV are: EGL_DONT_CARE, EGL_DEPTH_ENCODING_NONE_NV and
+ EGL_DEPTH_ENCODING_NONLINEAR_NV."
+
+ Add the following line to table 3.4 (p. 20)
+
+ +-----------------------+---------------+-----------+-------+----------+
+ | Attribute | Default | Selection | Sort | Sort |
+ | | | Criteria | Order | Priority |
+ +-----------------------+---------------+-----------+-------+----------+
+ | EGL_DEPTH_ENCODING_NV | EGL_DONT_CARE | Exact | None | - |
+ +-----------------------+---------------+-------------------+----------+
+
+Issues
+
+ None
+
+Revision History
+
+#1.0 - 20.03.2007
+
+ Renumbered enumerants. Reformatted to 80 columns.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_device_cuda.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_device_cuda.txt
new file mode 100644
index 0000000..1fdc5d6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_device_cuda.txt
@@ -0,0 +1,91 @@
+Name
+
+ NV_device_cuda
+
+Name Strings
+
+ EGL_NV_device_cuda
+
+Contributors
+
+ Michael Chock
+ James Jones
+
+Contact
+
+ Michael Chock (mchock 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 1, June 21, 2014
+
+Number
+
+ EGL Extension #74
+
+Extension Type
+
+ EGL device extension
+
+Dependencies
+
+ This extension is written against the language of EGL 1.5 as
+ modified by EGL_EXT_device_base.
+
+ EGL_EXT_device_base is required.
+
+Overview
+
+ EGL and CUDA both have the capability to drive multiple devices,
+ such as GPUs, within a single system. To interoperate with one
+ another, both APIs must have compatible notions of such devices.
+ This extension defines a mapping from an EGL device to a CUDA device
+ enumerant.
+
+IP Status
+
+ No known claims.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted as a queried <attribute> in eglQueryDeviceAttribEXT:
+
+ EGL_CUDA_DEVICE_NV 0x323A
+
+Add a new section 2.1.3 (CUDA Devices) after 2.1.2 (Devices)
+
+ "Somewhat analogous to an EGL device, a CUDA device establishes a
+ namespace for CUDA operations. In the CUDA API, such a device is
+ represented by a C int. For more details, see the CUDA
+ documentation."
+
+Changes to section 3.2 (Device Enumeration)
+
+ Replace the paragraph immediately following the prototype for
+ eglQueryDeviceAttribEXT:
+
+ "The only valid value of <attribute> is EGL_CUDA_DEVICE_NV. On
+ success, EGL_TRUE is returned, and a valid CUDA device handle
+ corresponding to the EGL device is returned in <value>. This handle
+ is compatible with CUDA API functions."
+
+Issues
+
+ None
+
+Revision History
+
+ Version 1, 2014/06/24 (Michael Chock)
+ - initial version.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_n_buffer.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_n_buffer.txt
new file mode 100644
index 0000000..9004652
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_n_buffer.txt
@@ -0,0 +1,157 @@
+Name
+
+ NV_triple_buffer
+ NV_quadruple_buffer
+
+Name Strings
+
+ EGL_NV_triple_buffer
+ EGL_NV_quadruple_buffer
+
+Contributors
+
+ Daniel Kartch, NVIDIA Corporation
+ Tom McReynolds, NVIDIA Corporation
+ Santanu Thangaraj, NVIDIA Corporation
+
+Contact
+
+ Daniel Kartch, NVIDIA Corporation (dkartch 'at' nvidia.com)
+
+Status
+
+ Complete.
+
+Version
+
+ Version 1 - February 28, 2019
+
+Number
+
+ 133
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL 1.0
+
+ This extension is written against the wording of the EGL 1.3
+ Specification.
+
+Overview
+
+ NV_triple_buffer and NV_quadruple_buffer allow applications to
+ request additional back buffers, in order to produce greater and
+ less variable frame rates.
+
+ This document describes two related extensions, one dependent on
+ the other. Implementations may choose to support only
+ NV_triple_buffer and not NV_quadruple_buffer, but not vice versa.
+
+New Types
+
+ None
+
+New Procedures and Functions
+
+ None
+
+New Tokens
+
+ Added by NV_triple_buffer:
+
+ Accepted as a value for EGL_RENDER_BUFFER in the <attrib_list>
+ parameter of eglCreateWindowSurface:
+
+ EGL_TRIPLE_BUFFER_NV 0x3230
+
+ Added by NV_quadruple_buffer:
+
+ Accepted as a value for EGL_RENDER_BUFFER in the <attrib_list>
+ parameter of eglCreateWindowSurface:
+
+ EGL_QUADRUPLE_BUFFER_NV 0x3231
+
+Additions to the EGL 1.3 Specification:
+
+ Insert after third sentence of second paragraph of Section 2.2.2
+ (Rendering Models):
+
+ Windows may have more than one back buffer, allowing rendering
+ of a new frame to proceed while the copy requested by
+ eglSwapBuffers is still pending.
+
+ Replace the third sentence of the EGL_RENDER_BUFFER description in
+ Section 3.5.1 (Creating On-Screen Rendering Surfaces):
+
+ If its value is EGL_BACK_BUFFER, EGL_TRIPLE_BUFFER_NV, or
+ EGL_QUADRUPLE_BUFFER_NV, then client APIs should render into
+ the current back buffer. The implementation should provide
+ at least one, two, or three back buffers, respectively, which
+ will be used in rotation each frame.
+
+ Change first sentence of third bullet point of eglQueryContext
+ description in Section 3.7.4 (Context Queries):
+
+ If the context is bound to a window surface, then either
+ EGL_SINGLE_BUFFER, EGL_BACK_BUFFER, EGL_TRIPLE_BUFFER_NV, or
+ EGL_QUADRUPLE_BUFFER_NV may be returned.
+
+ Replace first sentence of eglSwapBuffers description in
+ Section 3.9.1
+ (Posting to a Window):
+
+ If surface is a back-buffered window surface, then the current
+ color buffer is copied to the native window associated with
+ that surface. If there is more than one back buffer, then the
+ next color buffer in rotation becomes current, and rendering
+ of the next frame may proceed before the copy takes place,
+ provided any previous swaps from the new current buffer have
+ completed.
+
+Issues
+
+ 1. Why do we need triple-buffering?
+
+ RESOLVED: With only a single back buffer and a non-zero swap
+ interval, eglSwapBuffers must block rendering to the back-
+ buffer until the copy has completed. This can leave the CPU
+ and/or GPU idle, wasting valuable compute time, and possibly
+ cause the next frame to be delivered later than otherwise could
+ have been. Additional buffers allow rendering to continue even
+ when a frame is awaiting display, maximizing our use of
+ computational resources.
+
+ 2. Why quadruple-buffering? Isn't triple-buffering enough to
+ produce frames as fast as the processor(s) and swap interval
+ allow?
+
+ RESOLVED: When there is only a single rendering stream
+ operating on a system, triple-buffering is sufficient. However,
+ if other threads are contending for resources, variable
+ latencies may be introduced. This is especially problematic
+ with video, where any deviation in frame rate from the recorded
+ media can produce visible artifacts. Additional buffers smooth
+ out these latencies, allowing a steady frame rate.
+
+ 3. Then why not arbitrary n-buffering?
+
+ RESOLVED: The TRIPLE/QUADRUPLE buffer specification fits nicely
+ into the RENDER_BUFFER attribute already in use for
+ eglCreateWindowSurface. Arbitrary buffer counts would require a
+ new attribute. Additionally, case studies indicated no
+ significant benefit to using more than three back buffers,
+ especially when factoring in the added memory cost.
+
+Revision History
+
+ #2 (February 28, 2019) Santanu Thangaraj
+ - Marked issues 1,2 and 3 as resolved.
+ - Included extension type section.
+ - Corrected line length violations.
+
+ #1 (August 12, 2008) Daniel Kartch
+ - Initial Draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_native_query.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_native_query.txt
new file mode 100644
index 0000000..ce35633
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_native_query.txt
@@ -0,0 +1,137 @@
+Name
+
+ NV_native_query
+
+Name Strings
+
+ EGL_NV_native_query
+
+Contributors
+
+ Mathias Heyer, NVIDIA
+ Daniel Kartch, NVIDIA
+ Peter Pipkorn, NVIDIA
+ Acorn Pooley, NVIDIA
+ Greg Roth, NVIDIA
+
+Contacts
+
+ Peter Pipkorn, NVIDIA Corporation (ppipkorn 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 0.4, 25 Sept, 2012
+
+Number
+
+ EGL Extension #45
+
+Dependencies
+
+ Requires EGL 1.0
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension allows an application to query which native display,
+ pixmap and surface corresponds to a EGL object.
+
+New Procedures and Functions
+
+ EGLBoolean eglQueryNativeDisplayNV(
+ EGLDisplay dpy,
+ EGLNativeDisplayType* display_id);
+
+ EGLBoolean eglQueryNativeWindowNV(
+ EGLDisplay dpy,
+ EGLSurface surf,
+ EGLNativeWindowType* window);
+
+ EGLBoolean eglQueryNativePixmapNV(
+ EGLDisplay dpy,
+ EGLSurface surf,
+ EGLNativePixmapType* pixmap);
+
+Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ In Chapter 3.2, after the description of eglInitialize and before the
+ description of eglTerminate insert
+
+ "While initialized, the native display that corresponds to an
+ EGLDisplay can retrieved by
+
+ EGLBoolean eglQueryNativeDisplayNV(
+ EGLDisplay dpy,
+ EGLNativeDisplayType* display_id);
+
+ If the <dpy> is a valid and initialized EGLDisplay, EGL_TRUE
+ will be returned and the native display handle will be written
+ to <display_id>. Otherwise EGL_FALSE will be returned and the
+ contents of <display_id> are left untouched. If the <dpy> is
+ not valid, an EGL_BAD_DISPLAY error will be generated. If <dpy>
+ is not initialized, an EGL_NOT_INITIALIZED error will be
+ generated. If <display_id> is NULL, an EGL_BAD_PARAMETER error
+ will be generated.
+
+ In Chapter 3.5 Rendering Surfaces, after section 3.5.1 insert
+
+ "The native window that corresponds to an EGLSurface can be
+ retrieved by
+
+ EGLBoolean eglQueryNativeWindowNV(
+ EGLDisplay dpy,
+ EGLSurface surf,
+ EGLNativeWindowType* win);
+
+ The corresponding native window will be written to <win>,
+ and EGL_TRUE will be returned. If the call fails, EGL_FALSE
+ will be returned, and content of <win> will not be modified.
+ If <dpy> is not a valid EGLDisplay, an EGL_BAD_DISPLAY error
+ will be generated. If <dpy> is not initialized, an EGL_NOT_-
+ INITIALIZED error will be generated. If <surf> is not a valid
+ EGLSurface, or <surf> does not have a corresponding native
+ window, an EGL_BAD_SURFACE error will be generated." If <win>
+ is NULL, an EGL_BAD_PARAMETER error will be generated.
+
+ After section 3.5.4 Creating Native Pixmap Rendering Surfaces insert
+
+ "The native pixmap that corresponds to an EGLSurface can be
+ retrieved by
+
+ EGLBoolean eglQueryNativePixmapNV(
+ EGLDisplay dpy,
+ EGLSurface surf,
+ EGLNativePixmapType* pixmap);
+
+ The corresponding native pixmap will be written to <pixmap>,
+ and EGL_TRUE will be returned. If the call fails, EGL_FALSE
+ will be returned, and the content of <pixmap> will not be
+ modified. If <dpy> is not a valid EGLDisplay, an EGL_BAD_-
+ DISPLAY error will be generated. If <dpy> is not initialized,
+ an EGL_NOT_INITIALIZED error will be generated. If <surf> is
+ not a valid EGLSurface, or <surf> does not have a corresponding
+ native pixmap, an EGL_BAD_SURFACE error will be generated." If
+ <pixmap> is NULL, an EGL_BAD_PARAMETER error will be
+ generated.
+
+Issues
+
+Revision History
+#4 (Greg Roth, Sept 25, 2012)
+ - Further document all potential errors for all functions
+
+#3 (Daniel Kartch, August 30, 2011)
+ - Add restriction that EGLDisplay be initialized
+
+#2 (Peter Pipkorn, December 16, 2009)
+ - Minor cleanup
+
+#1 (Peter Pipkorn, December 15, 2009)
+ - First Draft
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_post_convert_rounding.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_post_convert_rounding.txt
new file mode 100644
index 0000000..6b7c340
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_post_convert_rounding.txt
@@ -0,0 +1,85 @@
+Name
+
+ NV_post_convert_rounding
+
+Name Strings
+
+ EGL_NV_post_convert_rounding
+
+Contributors
+
+ Bryan Eyler, NVIDIA
+ Daniel Kartch, NVIDIA
+ Greg Roth, NVIDIA
+ Mark Vojkovich, NVIDIA
+ Nicolai de Haan Brogger, NVIDIA
+ Peter Pipkorn, NVIDIA
+
+Contacts
+
+ Nicolai de Haan Brogger, NVIDIA Corporation (nicolaid 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Last Modified 17 Oct 2012
+ Version 2
+
+Number
+
+ EGL Extension #44
+
+Dependencies
+
+ Requires EGL 1.0.
+
+ This extension is written against the wording of the EGL 1.4
+ Specification.
+
+Overview
+
+ This extension defines the conversions for posting operations
+ when the destination's number of components or component sizes do
+ not match the color buffer. This extension supports posting a 24 bit
+ (888) color buffer to a 16 bit (565) destination buffer, posting a
+ 16 bit (565) color buffer to a 24 bit (888) destination buffer, and
+ posting a component that is present in the source buffer, but not
+ present in the destination buffer.
+
+New Procedures and Functions
+
+ None
+
+Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and
+Errors)
+
+ In Chapter 3.9.3, replace paragraph 3 with:
+ " For each color component, if the bit depth of the color
+ buffer being posted is 24 (888) and the destination buffer is
+ 16 (565), the lower order bits of the color buffer are
+ truncated.
+
+ If the bit depth of the destination buffer is 24 (888) and the
+ color buffer being posted is 16 bit (565), a RGB gain and
+ rounding operation is applied to the color buffer values prior
+ to posting. The destination buffer will contain the rounded
+ (nearest) and clamped result of the vector product of [1.03125,
+ 1.015625, 1.03125] with the RGB values of the color buffer.
+
+ For cases where a component is present in the color buffer but
+ the matching component is not present in the destination
+ buffer, that component will be dropped."
+
+ In Chapter 3.9.3, remove paragraph 5.
+
+Issues
+
+Revision History
+#2 (Greg Roth, Oct 17, 2012)
+ - Clarify limitations and reformat a bit.
+
+#1 (Nicolai de Haan Brogger, July 07, 2010)
+ - First Draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_post_sub_buffer.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_post_sub_buffer.txt
new file mode 100644
index 0000000..69c113c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_post_sub_buffer.txt
@@ -0,0 +1,241 @@
+Name
+
+ NV_post_sub_buffer
+
+Name Strings
+
+ EGL_NV_post_sub_buffer
+
+Contributors
+
+ Arcady Goldmints-Orlov
+ James Jones
+ Daniel Kartch
+
+Contact
+
+ James Jones, NVIDIA Corporation (jajones 'at' nvidia.com)
+
+Status
+
+ Draft.
+
+Version
+
+ Version 3, November 5, 2010
+
+Number
+
+ EGL Extension #27
+
+Dependencies
+
+ Requires EGL 1.1
+
+ This extension is written against the wording of the EGL 1.4
+ Specification
+
+Overview
+
+ Many EGL client APIs do not support rendering to window surfaces
+ directly, so there is no way to efficiently make small updates to
+ window surfaces. Applications that need to perform many small updates
+ must either use the back-buffer preservation flag which forces
+ eglSwapBuffers to copy the entire back surface, or redraw the entire
+ back buffer on every update and hope eglSwapBuffers is implemented
+ using buffer-flipping. This extension provides a 3rd alternative: a
+ function which posts a sub-rectangle of a window surface and
+ preserves the back-buffer contents.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ EGLBoolean eglPostSubBufferNV(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint x, EGLint y,
+ EGLint width, EGLint height);
+
+New Tokens
+
+ Accepted by the <attribute> parameter of eglQuerySurface and by the
+ <attrib_list> parameter of eglCreateWindowSurface:
+
+ EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE
+
+Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
+
+ Modify the second paragraph of Section 3.5.1, page 27
+ (Creating On-Screen Rendering Surfaces)
+
+ "<attrib_list> specifies a list of attributes for the window. The list
+ has the same structure as described for eglChooseConfig. Attributes
+ that can be specified in <attrib_list> include EGL_POST_SUB_BUFFER_-
+ SUPPORTED_NV, EGL_RENDER_BUFFER, EGL_VG_COLORSPACE, and EGL_VG_ALPHA_-
+ FORMAT."
+
+ Add the following between paragraphs 4 and 5 of Section 3.5.1, page 27
+ (Creating On-Screen Rendering Surfaces)
+
+ "EGL_POST_SUB_BUFFER_SUPPORTED_NV specifies whether the application
+ would perfer a surface that supports sub-buffer post operations, as
+ described in section 3.9.1. Its values can be EGL_TRUE, in which case
+ the implementation will attempt to allocate a surface that supports
+ sub-buffer posts, or EGL_FALSE, in which case the implementation will
+ not take sub-buffer post capabilities into account.
+
+ "Implementations may not be able to support sub-buffer post
+ mechanisms, or may support them only on some native windows. Use
+ eglQuerySurface to determine a surface's capabilities (see section
+ 3.5.6)."
+
+ Add the following entry to Table 3.5, page 36
+ (Queryable surface attributes and types)
+
+ Attribute Type Description
+ -------------------------------- ------- ------------------------
+ EGL_POST_SUB_BUFFER_SUPPORTED_NV boolean Surface can be used with
+ eglPostSubBufferNV
+
+ Add the following paragraph to Section 3.5.6, page 37
+ (Surface Attributes)
+
+ "Querying EGL_POST_SUB_BUFFER_SUPPORTED_NV returns EGL_TRUE if the
+ surface can use eglPostSubBufferNV (See section 3.9.1) to post sub-
+ rectangles of the back color buffer. Otherwise, EGL_FALSE is
+ returned."
+
+ Replace all but the last paragraph of section Section 3.9.1, page 50
+ (Posting to a Window)
+
+ "To post the color buffer to a window, call
+
+ EGLBoolean eglSwapBuffers(EGLDisplay dpy,
+ EGLSurface surface);
+
+ "To post a sub-rectangle of the color buffer to a window, call
+
+ EGLBoolean eglPostSubBufferNV(EGLDisplay dpy,
+ EGLSurface surface, EGLint x, EGLint y,
+ EGLint width, EGLint height);
+
+ "Where <x> and <y> are pixel offsets from the bottom-left corner of
+ <surface>.
+
+ "If <surface> is a back-buffered surface, then the requested portion
+ of the color buffer is copied to the native window associated with
+ that surface. If <surface> is a single-buffered window, pixmap, or
+ pbuffer surface, eglSwapBuffers and eglPostSubBufferNV have no
+ effect.
+
+ "The contents of ancillary buffers are always undefined after calling
+ eglSwapBuffers or eglPostSubBufferNV. The contents of the color
+ buffer are unchanged if eglPostSubBufferNV is called, or if
+ eglSwapBuffers is called and the value of the EGL_SWAP_BEHAVIOR
+ attribute of <surface> is EGL_BUFFER_PRESERVED. The value of EGL_-
+ SWAP_BEHAVIOR can be set for some surfaces using eglSurfaceAttrib, as
+ described in section 3.5.6.
+
+ "Native Window Resizing
+
+ "If the native window corresponding to <surface> has been resized
+ prior to the swap, <surface> must be resized to match. <surface> will
+ normally be resized by the EGL implementation at the time the native
+ window is resized. If the implementation cannot do this transparently
+ to the client, then eglSwapBuffers and eglPostSubBufferNV must
+ detect the change and resize <surface> prior to copying its pixels to
+ the native window. The sub-rectangle defined by <x>, <y>, <width>, and
+ <height> parameters to eglPostSubBufferNV will be clamped to the
+ extents of <surface>. If, after clamping, the rectangle contains no
+ pixels, eglPostSubBufferNV will have no effect."
+
+ Modify the following sentences in Section 3.9.3, page 51 (Posting
+ Semantics)
+
+ Paragraph 2, first sentence:
+
+ "If <dpy> and <surface> are the display and surface for the calling
+ thread's current context, eglSwapBuffers, eglPostSubBufferNV, and
+ eglCopyBuffers perform an implicit flush operation on the context
+ (glFlush for OpenGL or OpenGL ES context, vgFlush for an OpenVG
+ context)."
+
+ Paragraph 3, first sentence:
+
+ "The destination of a posting operation (a visible window, for
+ eglSwapBuffers or eglPostSubBufferNV, or a native pixmap, for
+ eglCopyBuffers) should have the same number of components and
+ component sizes as the color buffer it's being copied from."
+
+ Paragraph 6, first two sentences:
+
+ "The function
+
+ EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint
+ interval);
+
+ specifes the minimum number of video frame periods per color buffer
+ post operation for the window associated with the current context. The
+ interval takes effect when eglSwapBuffers or eglPostSubBufferNV is
+ first called subsequent to the eglSwapInterval call."
+
+ Modify the following sentences in Section 3.9.4, page 52 (Posting
+ Errors)
+
+ Paragraph 1, first sentence:
+
+ "eglSwapBuffers, eglPostSubBufferNV, and eglCopyBuffers return
+ EGL_FALSE on failure."
+
+ Paragraph 1, seventh sentence:
+
+ "If eglSwapBuffers or eglPostSubBufferNV are called and the native
+ window associated with <surface> is no longer valid, an EGL_BAD_-
+ NATIVE_WINDOW error is generated. If eglPostSubBufferNV is called
+ and <x>, <y>, <width>, or <height> are less than zero, EGL_BAD_-
+ PARAMETER is generated."
+
+Issues
+
+ 1. Should all surfaces be required to support sub-buffer posts if
+ this extension is supported?
+
+ RESOLVED: No. Some implementations may support multiple types of
+ native windows. Support for sub-surface posting is therefore a
+ per-surface property, so a surface query should be used to determine
+ which surfaces support sub-surface posts.
+
+ 2. What should this extension be called?
+
+ RESOLVED: Names considered EGL_NV_copy_sub_buffer, EGL_NV_present_sub-
+ surface, EGL_NV_post_sub_buffer. eglCopySubBuffer() sounded too
+ similar to eglCopyBuffer(), which operates on different types of
+ surfaces. EGL_present_sub_surface was originally chosen as it was
+ sufficiently different than eglCopyBuffer(), but based on internal
+ feedback, the term "Post" is preferable to "Present" because it is
+ already used in the EGL spec to describe buffer presentation
+ operations. "Buffer" was chosen over "surface" at this point as well,
+ because it is more consistent with the eglSwapBuffers() and
+ eglCopyBuffer() commands, and eglPostSubBuffer() is still
+ differentiated enough from eglCopyBuffer() that the two won't be
+ confused.
+
+Revision History
+
+#3 (James Jones, November 5, 2010)
+ -Renamed from NV_present_sub_surface to NV_post_sub_buffer based on
+ feedback from internal reviews.
+
+ -Allowed EGL_POST_SUB_BUFFER_SUPPORTED_NV to be used as a hint when
+ creating window surfaces.
+
+ -Clarified that eglSwapInterval applies to all color-buffer post
+ operations affecting on-screen surfaces, not just eglSwapBuffers.
+
+#2 (James Jones, November 1, 2010)
+ - Fixed a few typos.
+
+#1 (James Jones, October 22, 2010)
+ - Initial revision, based on GLX_MESA_copy_sub_buffer
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_consumer_eglimage.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_consumer_eglimage.txt
new file mode 100644
index 0000000..432fdbf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_consumer_eglimage.txt
@@ -0,0 +1,367 @@
+Name
+
+ NV_stream_consumer_eglimage
+
+Name Strings
+
+ EGL_NV_stream_consumer_eglimage
+
+Contributors
+
+ Mukund Keshava
+ James Jones
+ Daniel Kartch
+ Sandeep Shinde
+ Pyarelal Knowles
+ Leo Xu
+
+Contacts
+
+ Mukund Keshava, NVIDIA (mkeshava 'at' nvidia.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 3 - November 27, 2019
+
+Number
+
+ EGL Extension #139
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires the EGL_KHR_stream extension.
+
+ Requires the EGL_EXT_sync_reuse extension.
+
+ This extension is written against the wording of the EGL 1.5
+ Specification
+
+Overview
+
+ An EGLStream consists of a sequence of image frames. This extension
+ allows these frames to be acquired as EGLImages. Frames from the
+ stream would be used as the content for the EGLImage.
+
+New Procedures and Functions
+
+ 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);
+
+New Tokens
+
+ Accepted by the <target> parameter of eglCreateImage:
+
+ EGL_STREAM_CONSUMER_IMAGE_NV 0x3373
+
+ Returned as an <event> from eglQueryStreamConsumerEventNV:
+
+ EGL_STREAM_IMAGE_ADD_NV 0x3374
+ EGL_STREAM_IMAGE_REMOVE_NV 0x3375
+ EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376
+
+Add to section "3.9 EGLImage Specification and Management" of
+the EGL 1.5 Specification, in the description of eglCreateImage:
+
+ "Values accepted for <target> are listed in Table 3.10, below.
+
+ +-------------------------------+-----------------------------------+
+ | <target> | Notes |
+ +-------------------------------+-----------------------------------+
+ | EGL_STREAM_CONSUMER_IMAGE_NV | Used with EGLStream objects |
+ +-------------------------------+-----------------------------------+
+ Table 3.10: Legal values for eglCreateImage target parameter.
+
+ If <target> is EGL_STREAM_CONSUMER_IMAGE_NV, a new EGLImage will be
+ created for the next consumer image frame in the EGLStream
+ referenced by <buffer> which is not currently bound to an EGLImage.
+ If the stream's producer reuses memory buffers for multiple image
+ frames, then an EGLImage obtained in this way will persist for the
+ next image frame that uses the same buffer, unless destroyed in
+ the interim. Otherwise, the user must create a new EGLImage for
+ every frame. Creating the EGLImage does not guarantee that the
+ image contents will be ready for use. The EGLImage must first be
+ acquired from the stream after creation.
+
+ If the EGLImage created for a consumer image frame is destroyed via
+ eglDestroyImage, a new EGLImage needs to be created via
+ eglCreateImage for the same consumer image frame.
+
+ <dpy> must be a valid initialized display. <ctx> must be
+ EGL_NO_CONTEXT. <buffer> must be a handle to a valid EGLStream
+ object, cast into the type EGLClientBuffer.
+
+ Add to the list of error conditions for eglCreateImage:
+
+ "* If <target> is EGL_STREAM_CONSUMER_IMAGE_NV and <buffer> is
+ not a valid stream handle associated with <dpy>, the error
+ EGL_BAD_STREAM_KHR is generated.
+
+ * If <target> is EGL_STREAM_CONSUMER_IMAGE_NV, and <ctx> is not
+ EGL_NO_CONTEXT, the error EGL_BAD_PARAMETER is generated.
+
+ * If <target> is EGL_STREAM_CONSUMER_IMAGE_NV, and there are no
+ buffers in the <stream> currently or if there are no buffers
+ associated with the stream that are not already bound to
+ EGLImages EGL_BAD_ACCESS is generated.
+
+ eglCreateImage needs to be called with EGL_STREAM_CONSUMER_IMAGE_NV
+ as the <target> for every valid buffer in the EGLStream.
+
+Add section "3.10.2 Connecting an EGLStream to a consumer" in the
+EGL_KHR_stream extension with this:
+
+ 3.10.2.2 EGLImage consumer
+
+ Call
+
+ EGLBoolean eglStreamImageConsumerConnectNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLint num_modifiers,
+ const EGLuint64KHR *modifiers,
+ const EGLAttrib* attrib_list);
+
+ to connect the EGLImage consumer to the <stream>. An EGLImage
+ consumer allows image frames inserted in the stream to be received
+ as EGLImages, which can then be bound to any other object which
+ supports EGLImage. For each image frame, an EGLImage must first be
+ created as described in section "3.9 EGLImage Specification and
+ Management" of the EGL 1.5 Specification, and then the frame
+ contents must be latched to the EGLImage as described below.
+
+ In <modifiers> the consumer can advertise an optional list of
+ supported DRM modifiers as described in
+ EXT_image_dma_buf_import_modifiers. This information could be
+ used by the producer to generate consumer supported image frames.
+
+ If not NULL, <attrib_list> points to an array of name/value
+ pairs, terminated by EGL_NONE. Currently no attributes are
+ supported.
+
+ On success, EGL_TRUE is returned.
+
+ - <stream> state is set to EGL_STREAM_STATE_CONNECTING_KHR
+ allowing the producer to be connected.
+
+ On failure, EGL_FALSE is returned and an error is generated.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not the handle of a
+ valid EGLDisplay object.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ valid stream handle associated with <dpy>.
+
+ - EGL_BAD_STATE_KHR is generated if the <stream> state is not
+ EGL_STREAM_STATE_CREATED_KHR before
+ eglStreamImageConsumerConnectNV is called.
+
+ Call
+
+ EGLint eglQueryStreamConsumerEventNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLTime timeout,
+ EGLenum *event,
+ EGLAttrib *aux);
+
+ to query the <stream> for the next pending event.
+ eglQueryStreamConsumerEventNV returns in <event> the event type
+ and returns in <aux> additional data associated with some events.
+
+ If no event is pending at the time eglQueryStreamConsumerEventNV is
+ called, it will wait up to <timeout> nanoseconds for one to arrive
+ before returning. If <timeout> is EGL_FOREVER, the function will
+ not time out and will only return if an event arrives or the stream
+ becomes disconnected.
+
+ On success, EGL_TRUE is returned. A new event will be returned.
+ The valid events are as follows:
+
+ - EGL_STREAM_IMAGE_ADD_NV is returned if a buffer is present in
+ the stream which has not yet been bound to an EGLImage with
+ eglCreateImage.
+
+ - EGL_STREAM_IMAGE_REMOVE_NV indicates that a buffer has been
+ removed from the stream and its EGLImage, whose handle is
+ returned in <aux>, can be destroyed when the consumer
+ application no longer requires it.
+
+ - EGL_STREAM_IMAGE_AVAILABLE_NV indicates that there is a
+ new frame available in the stream that can be acquired via
+ eglStreamAcquireImageNV.
+
+ On failure, EGL_FALSE is returned and an error is generated and
+ <event> and <aux> are not modified.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ valid stream handle associated with <dpy>.
+
+ EGL_TIMEOUT_EXPIRED is returned if the <timeout> duration is
+ complete, and there are no valid events that occured in this
+ duration. The <event> and <aux> parameters are not modified.
+
+ Call
+
+ EGLBoolean eglStreamAcquireImageNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLImage *pImage,
+ EGLSync sync);
+
+ to "latch" the next image frame in the image stream from <stream>
+ into an EGLImage.
+
+ If <sync> is not EGL_NO_SYNC, then it must be an EGLSync with a type
+ of EGL_SYNC_FENCE, and it must be signaled (e.g., created with
+ EGL_SYNC_STATUS set to EGL_SIGNALED). eglStreamAcquireImageNV will
+ reset the state of <sync> to unsignaled, and <sync> will be signaled
+ when the producer is done writing to the frame.
+
+ If <sync> is EGL_NO_SYNC, then eglStreamAcquireImageNV ignores the
+ sync object.
+
+ On success, EGL_TRUE is returned.
+
+ - <pImage> will have the most recent frame from the <stream>
+
+ On failure, eglStreamAcquireImageNV returns EGL_FALSE, and an error
+ is generated.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid,
+ initialized EGLDisplay.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ valid stream handle associated with <dpy>.
+
+ - EGL_BAD_ACCESS is generated if there are no frames in the
+ <stream> that are available to acquire.
+
+ - EGL_BAD_PARAMETER is generated if <sync> is not a valid
+ EGLSync object or EGL_NO_SYNC.
+
+ - EGL_BAD_ACCESS is generated if <sync> is not EGL_NO_SYNC and is
+ not a fence sync.
+
+ - EGL_BAD_ACCESS is generated if <sync> is not EGL_NO_SYNC and is
+ not in the signaled state.
+
+ Call
+
+ EGLBoolean eglStreamReleaseImageNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLImage image,
+ EGLSync sync);
+
+ to release the <image> frame back to the stream. This takes a
+ <sync> that indicates when the consumer will be done using the
+ frame. Before calling eglStreamReleaseImageNV, the <image>
+ needs to have previously been acquired with
+ eglStreamAcquireImageNV.
+
+ If <sync> is not EGL_NO_SYNC, then it must be an EGLSync with a
+ typeof EGL_SYNC_FENCE. eglStreamReleaseImageNV makes a copy of the
+ sync object, so the caller is free to delete or reuse <sync> as it
+ chooses.
+
+ If <sync> is EGL_NO_SYNC, then the sync object is ignored.
+
+ On success, EGL_TRUE is returned, and the frame is successfully
+ returned back to the stream.
+
+ On failure, eglStreamReleaseImageNV returns EGL_FALSE, and an
+ error is generated.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid,
+ initialized EGLDisplay.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is not in state
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR or
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream created for <dpy>.
+
+ - EGL_BAD_PARAMETER is generated if <image> is either invalid,
+ or is not held by the consumer.
+
+ - EGL_BAD_PARAMETER is generated if <sync> is not a valid
+ EGLSync object or EGL_NO_SYNC.
+
+ - EGL_BAD_ACCESS is generated if <sync> is not EGL_NO_SYNC and is
+ not a fence sync.
+
+ If an acquired EGLImage has not yet released when eglDestroyImage
+ is called, then, then an implicit eglStreamReleaseImageNV will be
+ called.
+
+Add a new subsection 3.10.4.3.1 at the end of section "3.10.4.3
+EGL_STREAM_STATE_KHR Attribute" in the EGL_KHR_stream extension spec:
+
+ 3.10.4.3.1 Interaction with EGL_STREAM_STATE_KHR
+
+ Image frames that have been presented to the stream on the producer
+ side, but have not been bound to an EGLImage on the consumer side
+ yet, do not affect the EGLStream state.
+
+ If a new frame is presented to the stream, the stream state goes
+ into EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR only if this frame is
+ bound to an EGLImage on the consumer, and if it has not already
+ been acquired.
+
+ If an EGLImage bound on the consumer side has been destroyed via
+ eglDestroyImage, then the stream goes into
+ EGL_STREAM_STATE_EMPTY_KHR if there are no consumer frames left,
+ that are bound to an EGLImage.
+
+Issues
+
+
+Revision History
+
+ #5 (December 15, 2021) Kyle Brenneman
+ - Corrected and clarified the <sync> parameters
+
+ #4 (December 10, 2021) Kyle Brenneman
+ - Added the missing const modifier for input parameters
+
+ #3 (November 27, 2019) Mukund Keshava
+ - Refined some subsections with more details
+
+ #2 (November 22, 2019) Mukund Keshava
+ - Refined some subsections with more details
+ - Added new subsection 3.10.4.3.1
+
+ #1 (November 13, 2019) Mukund Keshava
+ - initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_consumer_gltexture_yuv.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_consumer_gltexture_yuv.txt
new file mode 100644
index 0000000..4aa0a66
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_consumer_gltexture_yuv.txt
@@ -0,0 +1,280 @@
+Name
+
+ NV_stream_consumer_gltexture_yuv
+
+Name Strings
+
+ EGL_NV_stream_consumer_gltexture_yuv
+
+Contributors
+
+ James Jones
+ Daniel Kartch
+ Nikhil Mahale
+ Daniel Koch
+ Jeff Gilbert
+
+Contacts
+
+ James Jones, NVIDIA (jajones 'at' nvidia 'dot' com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 4 - November 14, 2017
+
+Number
+
+ EGL Extension #94
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL_KHR_stream_consumer_gltexture
+ References EGL_EXT_yuv_surface
+
+Interactions with EGL_EXT_yuv_surface
+
+ This extension makes use of several tokens defined in the
+ EGL_EXT_yuv_surface extension spec. However support for this
+ EGLStream extension does not require the EGLSurface extension, or
+ vice versa. Only the tokens are shared.
+
+Overview
+
+ The EGL_KHR_stream_consumer_gltexture extension allows EGLStream
+ frames to be latched to a GL texture for use in rendering. These
+ frames are assumed to be stored in RGB format and accessed as such
+ by shader programs. If the producer uses a different color space,
+ the stream implementation must perform an implicit conversion.
+
+ In cases where the producer operates in a native YUV color space, it
+ may be desirable for shaders to directly access the YUV components,
+ without conversion. This extension adds a new variant of the
+ function to bind GL textures as stream consumers which allows
+ attributes to specify the color space.
+
+New Types
+
+ None
+
+New Functions
+
+ EGLBoolean eglStreamConsumerGLTextureExternalAttribsNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ const EGLAttrib *attrib_list)
+
+New Tokens
+
+ Accepted as attribute name in <attrib_list> by
+ eglStreamConsumerGLTextureExternalAttribsNV:
+
+ EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C
+ EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D
+ EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E
+
+Reused Tokens From EGL_EXT_yuv_surface
+
+ Accepted as attribute name in <attrib_list> by
+ eglStreamConsumerGLTextureExternalAttribsNV:
+
+ EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
+
+ Accepted as value for EGL_COLOR_BUFFER_TYPE attribute in
+ <attrib_list> by eglStreamConsumerGLTextureExternalAttribsNV:
+
+ EGL_YUV_BUFFER_EXT 0x3300
+
+Replace entire description of eglStreamConsumerGLTextureExternalKHR in
+section "3.10.2.1 GL Texture External consumer" of
+EGL_KHR_stream_consumer_gltexture extension.
+
+ Call
+
+ EGLBoolean eglStreamConsumerGLTextureExternalAttribsNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ const EGLAttrib *attrib_list)
+
+ to connect one or more texture objects in the OpenGL or OpenGL ES
+ context current to the calling thread as the consumer(s) of
+ <stream>. The identity and format of the texture objects used are
+ determined by <attrib_list> and the current context state.
+
+ <attrib_list> must either be NULL or point to an array of name/value
+ pairs terminated by EGL_NONE. Valid attribute names are
+ EGL_COLOR_BUFFER_TYPE, EGL_YUV_NUMBER_OF_PLANES_EXT, and
+ EGL_YUV_PLANE<n>_TEXTURE_UNIT_NV.
+
+ If the value of EGL_COLOR_BUFFER_TYPE is EGL_RGB_BUFFER (the
+ default), then the stream will be connected to a single texture
+ whose contents are available to shaders as RGB values. If the value
+ of EGL_COLOR_BUFFER_TYPE is EGL_YUV_BUFFER_EXT the stream will be
+ connected to some number of planar textures, determined by the value
+ of EGL_YUV_NUMBER_OF_PLANES_EXT, whose contents are available to
+ shaders as YUV values. The mapping between YUV values and texture
+ contents is described in table 3.10.2.1.
+
+ If EGL_COLOR_BUFFER_TYPE is EGL_YUV_BUFFER_EXT, the default value of
+ EGL_YUV_NUMBER_OF_PLANES_EXT is 2. Otherwise it is 0.
+
+ PLANE0 PLANE1 PLANE2
+ # Planes Values Fields Values Fields Values Fields
+ --------------------------------------------------------------
+ 1 YUV XYZ unused unused
+ 2 Y X UV XY unused
+ 3 Y X U X V X
+
+ Table 3.10.2.1 YUV Planar Texture Mappings
+
+ If EGL_COLOR_BUFFER_TYPE is EGL_RGB_BUFFER, the stream is connected
+ to the texture object currently bound to the active texture unit's
+ GL_TEXTURE_EXTERNAL_OES texture target in the current context.
+
+ If EGL_COLOR_BUFFER_TYPE is EGL_YUV_BUFFER_EXT, attribute values
+ must be specified for EGL_YUV_PLANE<n>_TEXTURE_UNIT_NV for all <n>
+ less than the number of planes. The value of each attribute must
+ either be a valid texture unit index or EGL_NONE. No two of these
+ attributes may specify the same valid texture unit index or
+ reference separate texture units bound to the same texture object.
+ Plane <n> of the stream contents will be connected to the texture
+ object currently bound to the indexed texture unit's
+ GL_TEXTURE_EXTERNAL_OES texture target in the current context, or
+ will be left unused if the index is EGL_NONE.
+
+ Once connected, the stream will remain associated with the initial
+ texture object(s) even if the texture units are bound to new
+ textures.
+
+ (Note: Before this can succeed a GL_TEXTURE_EXTERNAL_OES texture
+ must be bound to the appropriate texture units of the GL context
+ current to the calling thread. To create a GL_TEXTURE_EXTERNAL_OES
+ texture and bind it to the current context, call glBindTexture()
+ with <target> set to GL_TEXTURE_EXTERNAL_OES and <texture> set to
+ the name of the GL_TEXTURE_EXTERNAL_OES (which may or may not have
+ previously been created). This is described in the
+ GL_NV_EGL_stream_consumer_external extension.)
+
+ On failure EGL_FALSE is returned and an error is generated.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid,
+ EGLDisplay.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStreamKHR created for <dpy>.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is not in state
+ EGL_STREAM_STATE_CREATED_KHR.
+
+ - EGL_BAD_ATTRIBUTE is generated if any attribute name in
+ <attrib_list> is not a valid attribute.
+
+ - EGL_BAD_PARAMETER is generated if the value of
+ EGL_COLOR_BUFFER_TYPE is not EGL_RGB_BUFFER or
+ EGL_YUV_BUFFER_EXT.
+
+ - EGL_BAD_MATCH is generated if EGL_COLOR_BUFFER_TYPE is
+ EGL_RGB_BUFFER and EGL_YUV_NUMBER_OF_PLANES_EXT is not 0, or
+ if EGL_COLOR_BUFFER_TYPE is EGL_YUV_BUFFER_EXT and
+ EGL_YUV_NUMBER_OF_PLANES_EXT is not 1, 2, or 3.
+
+ - EGL_BAD_MATCH is generated if any
+ EGL_YUV_PLANE<n>_TEXTURE_UNIT_NV is not specified for any <n>
+ less than EGL_YUV_NUMBER_OF_PLANES_EXT, or if it is specified
+ for any <n> greater than or equal to
+ EGL_YUV_NUMBER_OF_PLANES_EXT.
+
+ - EGL_BAD_ACCESS is generated if any
+ EGL_YUV_PLANE<n>_TEXTURE_UNIT_NV is set to anything other than
+ a valid texture unit index or EGL_NONE.
+
+ - EGL_BAD_ACCESS is generated if there is no GL context
+ current to the calling thread.
+
+ - EGL_BAD_ACCESS is generated unless nonzero texture object
+ names are bound the GL_TEXTURE_EXTERNAL_OES texture target
+ of each of the appropriate texture units of the GL context
+ current to the calling thread.
+
+ - EGL_BAD_ACCESS is generated if more than one planar surface
+ would be bound to the same texture object.
+
+ - EGL_BAD_ACCESS is generated if the implementation cannot
+ support the requested planar arrangement.
+
+ On success the texture(s) are connected to the <stream>, <stream>
+ is placed in the EGL_STREAM_STATE_CONNECTING_KHR state, and EGL_TRUE
+ is returned.
+
+ When a producer is later connected, if it cannot support the planar
+ arrangement of the GL texture connection, it will fail with an
+ EGL_BAD_ACCESS error.
+
+ If any texture is later deleted, connected to a different
+ EGLStream, or connected to an EGLImage, then <stream> will be
+ placed into the EGL_STREAM_STATE_DISCONNECTED_KHR state.
+
+ If the <stream> is later destroyed then the textures will be
+ "incomplete" until they are connected to a new EGLStream, connected
+ to a new EGLImage, or deleted.
+
+ The function
+
+ EGLBoolean eglStreamConsumerGLTextureExternalKHR(
+ EGLDisplay dpy,
+ EGLStreamKHR stream)
+
+ is equivalent to eglStreamConsumerGLTextureExternalAttribsNV with
+ <attrib_list> list set to NULL.
+
+In the remainder of section "3.10.2.1 GL Texture External consumer",
+replace all singular references to "texture" with "textures" and make
+appropriate grammatical modifications.
+
+Issues
+
+ 1. This competes with GL_EXT_yuv_target as a means for specifying
+ how YUV values can be directly accessed by a texture shader
+ without conversion to RGB. However, that extension also requires
+ a means to render to YUV surfaces in addition to using them as
+ textures. Should we go with the approach used here or create a
+ GL extension which defines a subset GL_EXT_yuv_target?
+
+ RESOLVED: The extension as is serves immediate needs. Conflicts
+ and overlap with other extensions will be addressed if and when
+ there is a need to promote to EXT.
+
+ 2. This also contradicts how previous extensions for EXTERNAL GL
+ textures bind multiplanar surfaces, using separate texture
+ objects rather than a single virtual texture object which
+ requires multiple texture units. This allows the application
+ greater control of the planar arrangement, and the ability to
+ leave planes unbound, which may reduce overhead for the
+ producer. But it makes applications less portabile if the
+ desired arrangement isn't supported.
+
+ RESOLVED: The extension as is serves immediate needs. Conflicts
+ and overlap with other extensions will be addressed if and when
+ there is a need to promote to EXT.
+
+Revision History
+
+ #4 (November 14, 2017) Mozilla Corporation
+ - Const-qualify attrib_list.
+
+ #3 (August 19, 2015) NVIDIA Corporation
+ - Added enum values.
+ - Cleaned up and added contact info for publication.
+
+ #2 (May 6, 2015) NVIDIA Corporation
+ - Consolidated error codes to make GL interaction simpler.
+
+ #1 (April 15, 2015) NVIDIA Corporation
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_dma.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_dma.txt
new file mode 100644
index 0000000..16716b0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_dma.txt
@@ -0,0 +1,137 @@
+Name
+
+ NV_stream_dma
+
+Name Strings
+
+ EGL_NV_stream_dma
+
+Contributors
+
+ Santanu Thangaraj
+ Daniel Kartch
+ Arihant Jejani
+
+Contacts
+
+ Santanu Thangaraj, NVIDIA (sthangaraj 'at' nvidia.com)
+ Arihant Jejani, NVIDIA (ajejani 'at' nvidia.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 1 - April 15, 2019
+
+Number
+
+ 135
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL_NV_stream_remote extension.
+
+ Requires EGL_NV_stream_cross_system extension.
+
+ Interacts with EGL_NV_stream_socket extensions.
+
+Overview:
+
+ This extension provides the framework for performing DMA transfers
+ between opposite ends of a single stream, if there is no shared
+ memory available between them.
+
+ In case of cross system streams the buffer contents of one end of
+ the stream is transferred to other end using sockets by
+ EGL_NV_stream_socket extension. Transferring buffer contents
+ through sockets is slower compared to DMA transfers. Since DMA
+ transfers have higher throughput compared to sockets, using
+ EGL_NV_stream_dma extension, applications can request EGL to
+ utilize DMA channels to perform buffer copies.
+
+New types
+
+ None
+
+New Procedures and functions
+
+ None
+
+New Tokens
+
+ Accepted as attribute names in eglCreateStreamKHR,
+ eglCreateStreamAttribKHR, eglQueryStreamKHR, and
+ eglQueryStreamAttribKHR:
+
+ EGL_STREAM_DMA_NV 0x3371
+ EGL_STREAM_DMA_SERVER_NV 0x3372
+
+Add to list of failures in section "3.10.1 Creating an EGLStream" in
+EGL_KHR stream:
+ - EGL_BAD_MATCH is generated if the value of EGL_STREAM_DMA_NV is
+ neither EGL_TRUE nor EGL_FALSE.
+ - EGL_BAD_MATCH is generated if the value of
+ EGL_STREAM_DMA_SERVER_NV is not EGL_DONT_CARE or a valid
+ DMA server identifier as defined by the platform.
+
+Add to "Table 3.10.4.4 EGLStream Attributes" in EGL_KHR_stream:
+
+ Attribute Read/Write Type Section
+ ------------------------ ----------- ------ ----------
+ EGL_STREAM_DMA_NV io EGLint 3.10.4.x
+ EGL_STREAM_DMA_SERVER_NV io platform dependent 3.10.4.x+1
+
+Add new subsections to the end of section "3.10.4 EGLStream Attributes"
+in EGL_KHR_stream:
+
+ 3.10.4.x EGL_STREAM_DMA_NV Attribute
+
+ The EGL_STREAM_DMA_NV attribute may be set when the stream is
+ created, and indicates whether the DMA channels have to be used to
+ transfer the buffer contents from producer to consumer. Legal
+ values are EGL_TRUE or EGL_FALSE. The default value is EGL_FALSE.
+
+ A value of EGL_TRUE indicates that EGL has to use DMA channels to
+ transfer buffers from producer to consumer.
+
+ If EGL_FALSE is specified, DMA channels will not be utilized for
+ buffer transfers.
+
+ 3.10.4.x+1 EGL_STREAM_DMA_SERVER_NV Attribute
+
+ The EGL_STREAM_DMA_SERVER_NV attribute is a platform dependent
+ identifier which may be set when the stream is created and it
+ indicates the server, which must be contacted to handle DMA
+ transfers, if that server is not local. Legal values, aside from
+ EGL_DONT_CARE, are determined by the implementation. The default
+ value is EGL_DONT_CARE.
+
+Issues
+
+ 1. What happens when application requests DMA copy using
+ EGL_STREAM_DMA_NV attribute in eglCreateStreamKHR or
+ eglCreateStreamAttribKHR API, but the system does not support
+ access to DMA channels?
+
+ RESOLVED: The functions return EGL_NO_STREAM_KHR and
+ EGL_BAD_ATTRIBUTE error is set.
+
+ 2. What happens when application requests DMA copy using
+ EGL_STREAM_DMA_NV attribute in eglCreateStreamKHR or
+ eglCreateStreamAttribKHR API, and the system supports DMA
+ channels, but currently none of the channels are available for
+ use?
+
+ RESOLVED: The functions return EGL_NO_STREAM_KHR and
+ EGL_BAD_ATTRIBUTE error is set.
+
+Revision History
+
+ #1 (April 15, 2019) Santanu Thangaraj
+ - Initial version
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_fifo_next.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_fifo_next.txt
new file mode 100644
index 0000000..8199487
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_fifo_next.txt
@@ -0,0 +1,105 @@
+Name
+
+ NV_stream_fifo_next
+
+Name Strings
+
+ EGL_NV_stream_fifo_next
+
+Contributors
+
+ Daniel Kartch
+ Miguel A. Vico
+
+Contacts
+
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 3 - October 27, 2016
+
+Number
+
+ EGL Extension #110
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL_KHR_stream_fifo
+
+Overview
+
+ When operating on a FIFO stream, a consumer may need to know the
+ timestamp associated with the next frame in the stream before
+ deciding whether to acquire it or reuse the previous frame. In the
+ case of a FIFO size of 1, the EGL_STREAM_TIME_PRODUCER_KHR attribute
+ is sufficient to determine this. However, when the size is greater
+ than 1, there may be frames available with earlier time stamps than
+ the one most recently inserted by the producer. This extension
+ enables querying of the next pending frame in a stream.
+
+New Types
+
+ None
+
+New Functions
+
+ None
+
+New Tokens
+
+ Accepted as the <attribute> parameter of eglQueryStreamu64KHR
+
+ EGL_PENDING_FRAME_NV 0x3329
+
+ Accepted as the <attribute> parameter of eglQueryStreamTimeKHR
+
+ EGL_STREAM_TIME_PENDING_NV 0x332A
+
+Add to "Table 3.10.4.4 EGLStream Attributes" in the EGL_KHR_stream
+extension spec:
+
+ Attribute Read/Write Type Section
+ -------------------------- ---------- ------------ --------
+ EGL_PENDING_FRAME_NV ro EGLuint64KHR 3.10.4.x
+ EGL_STREAM_TIME_PENDING_NV ro EGLTimeKHR 3.10.4.y
+
+Add new subsections to section "3.10.4 EGLStream Attributes" in the
+EGL_KHR_stream extension spec
+
+ 3.10.4.x EGL_PENDING_FRAME_NV Attribute
+
+ The EGL_PENDING_FRAME_NV attribute indicates the frame number of the
+ image frame that would be obtained if an acquire operation were
+ performed at the time of the query. This is the value that
+ EGL_PRODUCER_FRAME_KHR contained just after this image frame was
+ inserted into the stream.
+
+ 3.10.4.y EGL_STREAM_TIME_PENDING_NV Attribute
+
+ The EGL_STREAM_TIME_PENDING_NV attribute indicates the timestamp of
+ the image frame that would be obtained if an acquire operation were
+ performed at the time of the query.
+
+Issues
+
+ None
+
+Revision History
+
+ #3 (October 27, 2016) Daniel Kartch
+ - Clean up for publication
+
+ #2 (April 2nd, 2015) Miguel A. Vico
+ - Assigned enumerated values for constants.
+
+ #1 (March 20th, 2015) Daniel Kartch
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_fifo_synchronous.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_fifo_synchronous.txt
new file mode 100644
index 0000000..f34804f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_fifo_synchronous.txt
@@ -0,0 +1,211 @@
+Name
+
+ NV_stream_fifo_synchronous
+
+Name Strings
+
+ EGL_NV_stream_fifo_synchronous
+
+Contributors
+
+ Daniel Kartch
+ Adam Cheney
+
+Contacts
+
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 4 - October 27, 2016
+
+Number
+
+ EGL Extension #111
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL_KHR_stream_fifo
+
+Interactions with EGL_NV_stream_sync and
+EGL_KHR_stream_consumer_gltexture
+
+ This extension affects implementations of stream synchronization and
+ GL texture consumer extensions in that it alters when functions
+ waiting for new frames will be unblocked. However, as these waits
+ are still tied to transitions to the
+ EGL_STREAM_STATE_NEW_FRAME_AVAILALBLE_KHR state, no changes are
+ required to the wording of those specifications.
+
+Overview
+
+ On platforms which support asynchronous rendering, frames may be
+ inserted into a stream by the producer and become available to the
+ consumer before rendering of the images has completed. When this
+ happens, commands issued by the consumer which read from the image
+ must implicitly wait before they can be executed. In many use cases,
+ this is desirable behavior. Rendering pipelines are kept full, and
+ frames are created and processed as fast as possible.
+
+ However, in the case of a compositor which is consuming frames from
+ multiple producers at once, combining them into a single output
+ image, this can slow the compositor to the frame rate of the slowest
+ producer. If the application acquires and uses an image from one
+ producer which requires a long time to finish rendering, it will be
+ prevented from presenting new frames from faster producers in a
+ timely fashion. In this case, the compositor would prefer to reuse
+ an older frame from the slower producer until the new one is ready.
+
+ This could be handled with existing interfaces by the producer
+ issuing appropriate Finish call before inserting the frame into the
+ stream. However this requires the producer to have knowledge of the
+ consumer's use case, and also introduces undesirable bubbles into
+ the producer's pipeline which will slow it even further.
+
+ This extension allows streams to be configured to defer the
+ availability of new frames inserted by the producer until they are
+ ready to be used. The producer proceeds as normal, but the frames
+ visible to the consumer through query and acquire operations do not
+ update immediately.
+
+ Interactions of this feature with a stream operating in mailbox mode
+ would be hard to define. Because newly inserted frames replace
+ previous unacquired ones, it is possible that the consumer would
+ never see a completed frame become available. Therefore this feature
+ is only available for streams operating in FIFO mode.
+
+New Types
+
+ None
+
+New Functions
+
+ None
+
+New Tokens
+
+ Accepted as an attribute name in the <attrib_list> parameter of
+ eglCreateStreamKHR and a the <attribute> parameter of
+ eglQueryStreamKHR:
+
+ EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336
+
+Add new entry to table "3.10.4.4 EGLStream Attributes" in the
+EGL_KHR_stream extension
+
+ Attribute Read/Write Type Section
+ ------------------------------ ---------- ---------- --------
+ EGL_STREAM_FIFO_SYNCHRONOUS_NV io EGLBoolean 3.10.4.y
+
+Add new subsection to section "3.10.4 EGLStream Attributes" in the
+EGL_KHR_stream extension
+
+ 3.10.4.y EGL_STREAM_FIFO_SYNCHRONOUS_NV Attribute
+
+ The EGL_STREAM_FIFO_SYNCHRONOUS_NV attribute controls whether frames
+ inserted by the producer become available to the consumer
+ synchronously or asynchronously. If set to EGL_FALSE, then when a
+ present operation for a new frame successfully completes, the state
+ will immediately become EGL_STREAM_NEW_FRAME_AVAILABLE_KHR, queries
+ of the most recently produced frame will indicate this frame, and
+ acquire operations will be able to retrieve this frame. If set to
+ EGL_TRUE, then until any asynchronous rendering for this frame
+ completes, the state will not update, any queries of the most
+ recently produced frame will only indicate the frame whose rendering
+ most recently completed, and acquire operations will only obtain
+ older completed frames.
+
+ The default value is EGL_FALSE. If set to EGL_TRUE, the value of
+ EGL_STREAM_FIFO_LENGTH_KHR must be non-zero, or an EGL_BAD_MATCH
+ error will be generated.
+
+Replace first two sentences of section "3.10.4.4 EGL_PRODUCER_FRAME
+Attribute" in the EGL_KHR_stream extension
+
+ The EGL_PRODUCER_FRAME_KHR attribute indicates how many image
+ frames have become available for the consumer to acquire. This is
+ also known as the "frame number" of the most recent ready frame
+ (where the first frame inserted has a frame number of 1). In
+ asynchronous operation, this is the frame most recently inserted by
+ the producer. In synchronous operation, this is the frame whose
+ image content generation has most recently finished.
+
+Replace contents of section "3.10.4.x+3 EGL_STREAM_TIME_PRODUCER_KHR" in
+the EGL_KHR_stream_fifo extension
+
+ This indicates the timestamp of the most recent ready frame in the
+ EGLStream (i.e. frame number EGL_PRODUCER_FRAME_KHR).
+
+Replace the second through fifth paragraphs of "3.10.5.2 EGLStream operation
+in fifo mode" in the EGL_KHR_stream_fifo extension.
+
+ In fifo mode the EGLStream conceptually operates as a fifo. An image
+ frame in the fifo is considered "ready" if all operations on the
+ image scheduled prior to its insertion in the stream have completed,
+ or if the value of EGL_STREAM_FIFO_SYNCHRONOUS_NV is EGL_FALSE.
+
+ When the consumer wants to consume a new image frame, behavior
+ depends on the state of the EGLStream. If the state is
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR then the image frame at the
+ tail of the fifo is ready, and is removed from the fifo. If the
+ state is EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR then the fifo has
+ no ready image frames and the consumer consumes the same frame that
+ it most recently consumed. Otherwise there are no image frames
+ available to consume (behavior in this case is described in the
+ documentation for each type of consumer - see section "3.10.2
+ Connecting an EGLStream to a consumer").
+
+ When EGL_STREAM_FIFO_SYNCHRONOUS_NV is EGL_FALSE, any consumer
+ operations which read from the image frame must implicitly wait for
+ any producer operations used to generate the image contents to
+ complete. Apart from the assumption that any such operations will
+ eventually finish, there are no guaranteed bounds on the time
+ required, and therefore no guaranteed bounds on when the consumer's
+ operations will complete. In cases where reusing a previous frame is
+ preferable to unknown latency between the time a consumer acquires a
+ new frame and the time its processing of that frame is done,
+ EGL_STREAM_FIFO_SYNCHRONOUS_NV should be set to EGL_TRUE.
+
+ If there is no new ready frame at the tail of the fifo when the
+ consumer is finished consuming an image frame then the consumer
+ holds on to the image frame in case it needs to be consumed again
+ later (this happens if the consumer wants to consume another image
+ frame before the producer has inserted a new image frame into the
+ fifo, or before any such frame has finished rendering in the case of
+ synchronous operation). In this case the state of the EGLStream
+ will be EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR until a new image
+ frame is ready (or until the state becomes
+ EGL_STREAM_STATE_DISCONNECTED_KHR).
+
+ The producer inserts image frames at the head of the fifo. If the
+ fifo is full (already contains <L> image frames, where <L> is the
+ value of the EGL_STREAM_FIFO_LENGTH_KHR attribute) then the producer
+ is stalled until the fifo is no longer full. When there is at
+ least one ready frame at the tail of the fifo, the EGLStream state
+ is EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR.
+
+Issues
+
+ None
+
+Revision History
+
+ #4 (October 27, 2016) Daniel Kartch
+ - Clean up for publication
+
+ #3 (September 30, 2015) Daniel Kartch
+ - Reserve enum.
+
+ #2 (March 30, 2015) Daniel Kartch
+ - Fix grammatical and typographical errors.
+
+ #1 (March 27, 2015) Daniel Kartch
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_flush.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_flush.txt
new file mode 100644
index 0000000..0b26508
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_flush.txt
@@ -0,0 +1,132 @@
+Name
+
+ NV_stream_flush
+
+Name Strings
+
+ EGL_NV_stream_flush
+
+Contributors
+
+ Santanu Thangaraj
+ Daniel Kartch
+
+Contacts
+
+ Santanu Thangaraj, NVIDIA (sthangaraj 'at' nvidia.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 3 - April 11, 2018
+
+Number
+
+ 127
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires the EGL_KHR_stream extension.
+
+ Requires either the EGL_KHR_stream_cross_process_fd or
+ EGL_NV_stream_remote extensions.
+
+ This extension is written based on the wording of version 27 of
+ the EGL_KHR_stream extension.
+
+Overview:
+
+ The EGL_KHR_stream_cross_process_fd and EGL_NV_stream_remote
+ extensions do not guarantee that when the state of the EGLStream
+ object representing one endpoint of the stream changes,
+ the state of the other endpoint will immediately reflect
+ that change. Depending on the implementation, there may be some
+ latency in the propagation of state changes.
+
+ This latency will not affect any applications which rely solely
+ on the stream itself for communication. State changes made on
+ one side will eventually be visible on the other side,
+ and can then be responded to.
+
+ This only affects applications which use some additional means of
+ communication outside of the stream itself, which may encounter
+ race conditions. In particular, if an application inserts a frame
+ into a stream, then sends a message to the other side indicating
+ that the frame is ready, the other side may encounter an error if
+ it tries to acquire the frame and it is not yet available.
+
+ One solution is to force all operations that change state of one
+ endpoint to behave synchronously, and not return until the change
+ is reflected on the other endpoint. However this adds undesirable
+ delays for the majority of applications and operations where such
+ synchronization is not required. This extension instead provides
+ a means for applications to explicitly invoke such
+ synchronization only where required.
+
+New types
+
+ None
+
+New Procedures and functions
+
+ EGLBoolean eglStreamFlushNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream);
+
+New Tokens
+
+ None
+
+Add a new subsection "3.10.x EGLStream flush" at the end of section
+"3.10 EGLStreams" in EGL_KHR_stream extension.
+
+ The command
+
+ EGLBoolean eglStreamFlushNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream);
+
+ When called with either producer or consumer endpoint of the
+ stream, will block until any state changes made to this endpoint
+ prior to the call are visible on the EGLStream object of the other
+ endpoint.
+
+ On success, EGL_TRUE will be returned. On failure, EGL_FALSE will
+ be returned and an error will be generated.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is in
+ EGL_STREAM_STATE_DISCONNECTED_KHR state.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid
+ EGLDisplay.
+
+ - EGL_NOT_INITIALIZED is generated if <dpy> is not initialized.
+
+Issues
+
+ 1. When both producer and consumer are connected to a single
+ EGLStream object, what happens when eglStreamFlushNV is called?
+
+ RESOLVED: The function returns without any blocking.
+
+Revision History
+
+ #3 (April 11, 2018) Jon Leech
+ - Add missing NV suffix to eglStreamFlushNV
+
+ #2 (April 2, 2018) Santanu Thangaraj
+ - Update based on comments from Daniel Kartch
+ - General cleanup
+
+ #1 (March 26, 2018) Santanu Thangaraj
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_frame_limits.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_frame_limits.txt
new file mode 100644
index 0000000..75c0e49
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_frame_limits.txt
@@ -0,0 +1,152 @@
+Name
+
+ NV_stream_frame_limits
+
+Name Strings
+
+ EGL_NV_stream_frame_limits
+
+Contributors
+
+ Daniel Kartch
+
+Contacts
+
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 4 - October 27, 2016
+
+Number
+
+ EGL Extension #113
+
+Dependencies
+
+ Requires EGL_KHR_stream
+
+ Interacts with EGL_EXT_stream_consumer_egloutput
+
+Overview
+
+ Some stream consumers may allow more than one frame to be acquired
+ at a time, so that applications can operate on sequences of images
+ rather than individual images. This in turn may lead to producers
+ allocating additional buffers to keep the fifo full while fulfilling
+ the consumer's needs. Applications may wish to limit the resources
+ allocated for a given stream, and some stream implementations may be
+ able to operate more efficiently if they know in advance how many
+ buffers will be used.
+
+ This extension defines two new stream attributes which provide hints
+ as to how many frames the application will require, allowing the
+ implementation to plan accordingly.
+
+New functions
+
+ None
+
+New tokens
+
+ Accepted as an attribute name in the <attrib_list> parameter of
+ eglCreateStreamKHR and as the <attribute> parameter of
+ eglQueryStreamKHR.
+
+ EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337
+ EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338
+
+
+Add to "Table 3.10.4.4 EGLStream Attributes"
+
+ Attribute Read/Write Type Section
+ ------------------------------ ---------- ------ ----------
+ EGL_PRODUCER_MAX_FRAME_HINT_NV io EGLint 3.10.4.x
+ EGL_CONSUMER_MAX_FRAME_HINT_NV io EGLint 3.10.4.x+1
+
+Add new subsections to section "3.10.4 EGLStream Attributes"
+
+ 3.10.4.x EGL_PRODUCER_MAX_FRAME_HINT_NV Attribute
+
+ The EGL_PRODUCER_MAX_FRAME_HINT_NV attribute indicates a limit on how
+ many outstanding frames the producer application intends to have at
+ any given time. This includes all frames currently being generated,
+ waiting in in the stream's mailbox or FIFO, and held by the consumer.
+ Its default value is EGL_DONT_CARE.
+
+ The implementation may make use of this hint to determine how many
+ buffers or other resources to allocate for the stream. It is not
+ necessarily an error for an application to attempt to insert more
+ than this many frames into the stream at once. However, exceeding
+ available resources may cause a producer to block or return an error,
+ as per its specification.
+
+ 3.10.4.x+1 EGL_CONSUMER_MAX_FRAME_HINT_NV Attribute
+
+ The EGL_CONSUMER_MAX_FRAME_HINT_NV attribute indicates a limit on how
+ many frames the consumer application intends to acquire at the same
+ time. Its default value EGL_DONT_CARE.
+
+ The implementation may make use of this hint to determine how many
+ buffers or other resources to allocate for the stream. It is not
+ necessarily an error for an application to attempt to acquire more
+ than this many frames at once. However, exceeding available resources
+ may cause the consumer or producer to block or return an error, as per
+ their specifications.
+
+Add to the description of eglStreamConsumerOutputEXT in the
+EGL_KHR_stream_consumer_egloutput extension
+
+ When the producer generates frames faster than the output device can
+ display them, <stream>'s EGL_CONSUMER_MAX_FRAME_HINT_NV attribute can
+ be used to throttle the output. No more than the specified number of
+ frames will be scheduled for display at a time. If specified, the value
+ should be set to at least 2, to allow one frame to be displayed while
+ another is acquired and scheduled for display.
+
+Issues
+
+ 1. Is a generic stream extension really necessary, or can such
+ limits instead be imposed in the producer and consumer
+ interfaces?
+
+ RESOLVED: Yes, it is necessary. There are several use cases
+ where an application may need to impose limits and cannot do so
+ through the producer and consumer interfaces:
+ a) The producer and client interfaces are already published and
+ do not allow room for extension to impose limits.
+ b) The stream is cross-process, and one process needs to impose
+ limits on the endpoint provided by the other process.
+ In addition, a common method for imposing such limits simplifies
+ programming of large application suites which make use of
+ multiple types of producers and consumers, and allows the limits
+ on producer and consumer endpoints to be set to compatible
+ values.
+
+ 2. Should the attributes be hints or hard limits?
+
+ RESOLVED: Hints. The variety of possible producers and consumers
+ makes it difficult to specify what the behavior should be if a
+ hard limit is exceeded. The goal here is to allow the application
+ to coordinate its resource requirements with the implementation.
+ If it fails to limit itself to the hinted values, we allow
+ producers or consumers to block or fail as appropriate for their
+ interfaces, but do not require it.
+
+Revision History
+
+ #4 (October 27, 2016) Daniel Kartch
+ - Clean up for publication
+
+ #3 (September 14, 2106) Daniel Kartch
+ - Switched from hard limits to hints
+
+ #2 (January 8, 2016) Daniel Kartch
+ - Assigned enum values
+
+ #1 (October 30, 2015) Daniel Kartch
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_metadata.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_metadata.txt
new file mode 100644
index 0000000..d5a613e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_metadata.txt
@@ -0,0 +1,335 @@
+Name
+
+ NV_stream_metadata
+
+Name Strings
+
+ EGL_NV_stream_metadata
+
+Contributors
+
+ Daniel Kartch
+ Gajanan Bhat
+ Laszlo Weber
+ Lawrence Ibarria
+ Miguel A. Vico
+
+Contacts
+
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia 'dot' com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 8 - July 31, 2015
+
+Number
+
+ EGL Extension #93
+
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL_KHR_stream
+
+ Interacts with EGL_EXT_device_base
+
+Overview
+
+ Application suites which make use of streams to transmit images may
+ need to communicate additional data between the producer and
+ consumer, synchronized with the frame updates. This data may change
+ infrequently, such as a movie title and track number to be displayed
+ to the user, or every frame, such as a focal length and exposure
+ time used to process the image. Transmitting this data outside the
+ scope of the stream may be inconvenient, particularly in the case of
+ cross-process streams. But the nature of the data is highly
+ application-dependent, so it is not feasible for an EGL
+ implementation to define specific extensions for a broad range of
+ application data.
+
+ This extension provides a means for an application (or application
+ suite in the cross-process case) to associate arbitrary metadata
+ with a stream. Multiple metadata fields are available, allowing them
+ to be updated and used independently by separate subcomponents of
+ producers and consumers, respectively. The format of the data is
+ determined by the application, which is responsible for writing and
+ reading it correctly.
+
+New Types
+
+ None
+
+New Functions
+
+ EGLBoolean eglQueryDisplayAttribNV(
+ EGLDisplay dpy,
+ EGLint attribute,
+ EGLAttrib* value);
+
+ EGLBoolean eglSetStreamMetadataNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLint n,
+ EGLint offset,
+ EGLint size,
+ const void* data);
+
+ EGLBoolean eglQueryStreamMetadataNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum name,
+ EGLint n,
+ EGLint offset,
+ EGLint size,
+ void* data);
+
+New Tokens
+
+ Accepted as <attribute> by eglQueryDisplayAttribNV:
+
+ EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250
+ EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251
+ EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252
+
+ Accepted as <name> by eglQueryStreamMetatdataNV:
+
+ EGL_PRODUCER_METADATA_NV 0x3253
+ EGL_CONSUMER_METADATA_NV 0x3254
+ EGL_PENDING_METADATA_NV 0x3328
+
+ Accepted in <attrib_list> by eglCreateStreamKHR and as <attribute>
+ by eglQueryStreamKHR:
+
+ EGL_METADATA0_SIZE_NV 0x3255
+ EGL_METADATA1_SIZE_NV 0x3256
+ EGL_METADATA2_SIZE_NV 0x3257
+ EGL_METADATA3_SIZE_NV 0x3258
+
+ EGL_METADATA0_TYPE_NV 0x3259
+ EGL_METADATA1_TYPE_NV 0x325A
+ EGL_METADATA2_TYPE_NV 0x325B
+ EGL_METADATA3_TYPE_NV 0x325C
+
+
+Add to section "3.3 EGL Queries"
+
+ To query attributes of an initialized display, call
+
+ EGLBoolean eglQueryDisplayAttribNV(
+ EGLDisplay dpy,
+ EGLint attribute,
+ EGLAttrib* value)
+
+ On success, EGL_TRUE is returned, and the value associated with
+ attribute <name> is returned in <value>.
+
+ If <name> is EGL_MAX_STREAM_METADATA_BLOCKS_NV, the total number
+ of independent metadata blocks supported by each stream is returned.
+ If <name> is EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV, the maximum size
+ supported for an individual metadata block is returned. If <name> is
+ EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV, the maximum combined size of
+ all metadata blocks supported by a single stream is returned.
+
+ On failure, EGL_FALSE is returned. An EGL_BAD_DISPLAY error is
+ generated if <dpy> is not a valid initialized display. An
+ EGL_BAD_ATTRIBUTE error is generated if <name> is not a valid
+ attribute name.
+
+If EGL_EXT_device_base is present, eglQueryDisplayAttribNV is equivalent
+to eglQueryDisplayAttribEXT, and calls to either will return the same
+values.
+
+Add to table "3.10.4.4 EGLStream Attributes" in EGL_KHR_stream
+
+ Attribute Read/Write Type Section
+ ------------------------ ---------- ------ ----------
+ EGL_METADATA<n>_SIZE_NV io EGLint 3.10.4.x
+ EGL_METADATA<n>_TYPE_NV io EGLint 3.10.4.x+1
+
+Add new subsections to section "3.10.4 EGLStream Attributes" of
+EGL_KHR_stream
+
+ 3.10.4.x EGL_METADATA<n>_SIZE_NV
+
+ The EGL_METADATA<n>_SIZE_NV attribute indicates the size of the
+ <n>th metadata block associated with a stream. If <n> is not less
+ than the value of EGL_MAX_STREAM_METADATA_BLOCKS_NV for the parent
+ EGLDisplay, the attribute is treated as unknown.
+
+ These attributes may only be set when the stream is created. The
+ default value is 0. The value may not exceed that of
+ EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV for the parent EGLDisplay.
+ Furthermore, the total size of all metadata blocks may not exceed
+ the value of EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV. If either of
+ these restrictions are exceeded, an EGL_BAD_PARAMETER error is
+ generated.
+
+ 3.10.4.x+1 EGL_METADATA<n>_TYPE_NV
+
+ The EGL_METADATA<n>_TYPE_NV attribute indicates an optional
+ application-defined type associated with the stream's <n>th metadata
+ block. If <n> is not less than the value of
+ EGL_MAX_STREAM_METADATA_BLOCKS_NV for the parent EGLDisplay, the
+ attribute is treated as unknown.
+
+ These attributes may only be set when the stream is created. The
+ default value is 0. It is not required that a type be provided for
+ every metadata block for which a size has been specified. These may
+ be used to help separate application components coordinate their use
+ of the stream's metadata blocks.
+
+Add new section to "3.10 EGLStreams" of EGL_KHR_stream
+
+ 3.10.y EGLStream metadata
+
+ An application may associate arbitrary blocks of additional data
+ with the stream, to be updated in sync with the frames. The contents
+ and format of these data blocks are left to the application, subject
+ to size restrictions imposed by the implementation. The application
+ must specify the sizes of its metadata blocks at the time the stream
+ is created. The contents may be completely or partially modified
+ every frame or less frequently, as the application chooses. When a
+ new frame is inserted into the stream, a snapshot of the current
+ metadata contents are associated with the frame, and may then be
+ queried from the stream.
+
+ The contents of all metadata blocks of non-zero size are initialized
+ to zeroes. To modify the contents of a portion of a metadata block,
+ call
+
+ EGLBoolean eglSetStreamMetadataNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLint n,
+ EGLint offset,
+ EGLint size,
+ const void* data)
+
+ On success, EGL_TRUE is returned and the first <size> bytes pointed
+ to by <data> will be copied to the <n>th metadata block of <stream>,
+ starting at <offset> bytes from the beginning of the block. This
+ data will be associated with all subsequent frames inserted into the
+ stream until the contents are next modified.
+
+ On failure, EGL_FALSE is returned
+ - An EGL_BAD_DISPLAY error is generated if <dpy> is not a valid
+ display.
+ - An EGL_BAD_STREAM_KHR error is generated if <stream> is not a
+ valid stream associated with <dpy>.
+ - An EGL_BAD_STATE_KHR error is generated if the state of
+ <stream> is not EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR,
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR, or
+ EGL_STREAM_STATE_EMPTY_KHR.
+ - An EGL_BAD_ACCESS error is generated if the producer and
+ consumer endpoints of the stream are represented by separate
+ EGLStream objects, and the producer is not attached to
+ <stream>.
+ - An EGL_BAD_PARAMETER error is generated if <n> is negative or
+ is equal to or greather than the value of
+ EGL_MAX_STREAM_METADATA_BLOCKS_NV for <dpy>.
+ - An EGL_BAD_PARAMETER error is generated if <offset> or <size>
+ are negative, or if <offset>+<size> is greater than the value
+ of EGL_METADATA<n>_SIZE_NV for <stream>.
+
+ If <data> does not point to valid readable memory of at least <size>
+ bytes, undefined behavior will result. If the value of <size> is
+ zero, no error will occur, but the function will have no effect.
+
+ To query the contents of a metadata block for a frame, call
+
+ EGLBoolean eglQueryStreamMetadataNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum name,
+ EGLint n,
+ EGLint offset,
+ EGLint size,
+ void* data)
+
+ On success, EGL_TRUE is returned and <size> bytes starting from the
+ <offset>th byte of the <n>th metadata block of <stream> will be
+ copied into the memory pointed to by <data>. If <name> is
+ EGL_PRODUCER_METADATA_NV, the metadata will be taken from the frame
+ most recently inserted into the stream by the producer. If <name> is
+ EGL_CONSUMER_METADATA_NV, the metadata will be taken from the frame
+ most recently acquired by the consumer. If <name> is
+ EGL_PENDING_METADATA_NV, the metadata will be taken from the frame
+ which would be obtained if an acquire operation were performed at
+ the time of the query.
+
+ On failure, EGL_FALSE is returned
+ - An EGL_BAD_DISPLAY error is generated if <dpy> is not a valid
+ display.
+ - An EGL_BAD_STREAM_KHR error is generated if <stream> is not a
+ valid stream associated with <dpy>.
+ - An EGL_BAD_STATE_KHR error is generated if the state of
+ <stream> is not EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR or
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR.
+ - An EGL_BAD_ATTRIBUTE error is generated if <name> is not
+ EGL_PRODUCER_METADATA_NV, EGL_CONSUMER_METADATA_NV, or
+ EGL_PENDING_METADATA_NV.
+ - An EGL_BAD_PARAMETER error is generated if <n> is negative or
+ is equal to or greater than the value of
+ EGL_MAX_STREAM_METADATA_BLOCKS_NV for <dpy>.
+ - An EGL_BAD_PARAMETER error is generated if <offset> or <size>
+ are negative, or if <offset>+<size> is greater than the value
+ of EGL_METADATA<n>_SIZE_NV for <stream>.
+
+ If <data> does not point to valid writeable memory of at least
+ <size> bytes, undefined behavior will result. If the value of <size>
+ is zero, no error will occur, but the function will have no effect.
+
+Issues
+
+ 1. What happens if multiple calls are made to
+ eglSetStreamMetadataNV without presenting a new frame?
+
+ RESOLVED: If the calls specify overlapping ranges of the same
+ metadata block, the earlier data in the overlapped portion is
+ overwritten. Only the most recent values are associated with
+ the next frame when it is inserted into the stream.
+
+ 2. What happens if multiple frames are presented without calling
+ eglSetStreamMetadataNV?
+
+ RESOLVED: The most recently provided data is reused.
+
+Revision History
+
+ #8 (July 31, 2015) Daniel Kartch
+ - Cleaned up and added contact info for publication.
+
+ #7 (April 2, 2015) Miguel A. Vico
+ - Assigned enumerated value for metadata of pending frame.
+
+ #6 (March 20, 2015) Daniel Kartch
+ - Add query for metadata of pending frame.
+
+ #5 (January 15, 2015) Daniel Kartch
+ - Add paragraph of supported attributes to description of
+ eglQueryDisplayAttribNV.
+ - Added/updated error conditions to set/query functions.
+ - Fixed errors in prototypes.
+
+ #4 (January 6, 2015) Daniel Kartch
+ - Fixed errors in prototypes.
+ - Added enum values.
+
+ #3 (December 12, 2014) Daniel Kartch
+ - Clarified language on how metadata becomes associated with
+ frames inserted into the stream.
+ - Fixed typos.
+
+ #2 (December 12, 2014) Daniel Kartch
+ - Added offset and size to Set and Query functions.
+
+ #1 (December 11, 2014) Daniel Kartch
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_origin.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_origin.txt
new file mode 100644
index 0000000..5f56646
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_origin.txt
@@ -0,0 +1,298 @@
+Name
+
+ NV_stream_origin
+
+Name Strings
+
+ EGL_NV_stream_origin
+
+Contributors
+
+ Miguel A. Vico
+ James Jones
+ Daniel Kartch
+
+Contacts
+
+ Miguel A. Vico (mvicomoya 'AT' nvidia.com)
+
+Status
+
+ Complete.
+
+Version
+
+ Version 5 - May 20, 2019
+
+Number
+
+ 134
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires the EGL_KHR_stream extension.
+
+ This extension is written based on the wording of version 26 of the
+ EGL_KHR_stream extension.
+
+Overview
+
+ EGL does not define a frame orientation. However, window systems or
+ rendering APIs might.
+
+ Ideally, when using EGL streams, frame orientation is agreed upon by
+ both the connected consumer and producer and appropriate handling is
+ performed within EGL to satisfy both endpoints needs. Thus,
+ applications will rarely have to worry about frame orientation.
+
+ However, in some cases consumer applications such as compositors
+ might still need to access the frame data as provided by the
+ consumer. Hence, they need to know what orientation was set for the
+ stream frames. This will allow applications to adjust the way they
+ access the frame data.
+
+ Similarly, producer applications might need to adjust how rendering
+ commands are issued depending on the orientation set for the stream
+ frames.
+
+ This extension provides new attributes to allow EGL stream users to
+ query frame orientation and whether it is handled automatically by
+ the producer or consumer endpoints so that clients are not required
+ to take further actions.
+
+New Functions
+
+ None.
+
+New Tokens
+
+ Accepted as the <attribute> parameter of eglQueryStreamKHR and
+ eglQueryStreamAttribKHR:
+
+ EGL_STREAM_FRAME_ORIGIN_X_NV 0x3366
+ EGL_STREAM_FRAME_ORIGIN_Y_NV 0x3367
+ EGL_STREAM_FRAME_MAJOR_AXIS_NV 0x3368
+
+ EGL_CONSUMER_AUTO_ORIENTATION_NV 0x3369
+ EGL_PRODUCER_AUTO_ORIENTATION_NV 0x336A
+
+ Returned by eglQueryStreamKHR and eglQueryStreamAttribKHR when
+ attribute is EGL_STREAM_FRAME_ORIGIN_X_NV:
+
+ EGL_LEFT_NV 0x336B
+ EGL_RIGHT_NV 0x336C
+
+ Returned by eglQueryStreamKHR and eglQueryStreamAttribKHR when
+ attribute is EGL_STREAM_FRAME_ORIGIN_Y_NV:
+
+ EGL_TOP_NV 0x336D
+ EGL_BOTTOM_NV 0x336E
+
+ Returned by eglQueryStreamKHR and eglQueryStreamAttribKHR when
+ attribute is EGL_STREAM_FRAME_MAJOR_AXIS_NV:
+
+ EGL_X_AXIS_NV 0x336F
+ EGL_Y_AXIS_NV 0x3370
+
+Add to table "3.10.4.4 EGLStream Attributes"
+
+ Attribute Read/Write Type Section
+ --------------------------------- ---------- ---------- -----------
+ EGL_STREAM_FRAME_ORIGIN_X_NV ro EGLint 3.10.4.x
+ EGL_STREAM_FRAME_ORIGIN_Y_NV ro EGLint 3.10.4.x+1
+ EGL_STREAM_FRAME_MAJOR_AXIS_NV ro EGLint 3.10.4.x+2
+ EGL_CONSUMER_AUTO_ORIENTATION_NV ro EGLBoolean 3.10.4.x+3
+ EGL_PRODUCER_AUTO_ORIENTATION_NV ro EGLBoolean 3.10.4.x+4
+
+Add new subsections to the end of section "3.10.4 EGLStream Attributes"
+in EGL_KHR_stream:
+
+ 3.10.4.x EGL_STREAM_FRAME_ORIGIN_X_NV
+
+ EGL_STREAM_FRAME_ORIGIN_X_NV is a read-only attribute that
+ indicates the position on the X axis of the origin relative to the
+ stream images surface as agreed upon by consumer and producer.
+
+ The relative position on X may be one of the following:
+
+ - EGL_LEFT_NV - Coordinates on the X axis will be 0 on the left
+ border and increase towards the right border until <frame
+ width> is reached.
+
+ - EGL_RIGHT_NV - Coordinates on the X axis will be <frame width>
+ on the left border and decrease towards the right border until
+ 0 is reached.
+
+ - EGL_DONT_CARE - No orientation on the X axis was set by the EGL
+ implementation. Applications must coordinate what they are
+ doing.
+
+ EGL_STREAM_FRAME_ORIGIN_X_NV will not be defined until a consumer
+ and a producer are connected to the stream. Querying it before that
+ will generate an EGL_BAD_STATE_KHR error.
+
+
+ 3.10.4.x+1 EGL_STREAM_FRAME_ORIGIN_Y_NV
+
+ EGL_STREAM_FRAME_ORIGIN_Y_NV is a read-only attribute that
+ indicates the position on the Y axis of the origin relative to the
+ stream images surface as agreed upon by consumer and producer.
+
+ The relative position on Y may be one of the following:
+
+ - EGL_TOP_NV - Coordinates on the Y axis will be 0 on the top
+ border and increase towards the bottom border until <frame
+ height> is reached.
+
+ - EGL_BOTTOM_NV - Coordinates on the Y axis will be <frame
+ height> on the top border and decrease towards the bottom
+ border until 0 is reached.
+
+ - EGL_DONT_CARE - No orientation on the Y axis was set by the EGL
+ implementation. Applications must coordinate what they are
+ doing.
+
+ EGL_STREAM_FRAME_ORIGIN_Y_NV will not be defined until a consumer
+ and a producer are connected to the stream. Querying it before that
+ will generate an EGL_BAD_STATE_KHR error.
+
+
+ 3.10.4.x+2 EGL_STREAM_FRAME_MAJOR_AXIS_NV
+
+ EGL_STREAM_FRAME_MAJOR_AXIS_NV is a read-only attribute that
+ indicates whether the stream images are X-major or Y-major.
+
+ The major axis may be one of the following:
+
+ - EGL_X_AXIS_NV - Frames are laid out such that consecutive
+ pixels with same Y coordinate reside next to each other in
+ memory.
+
+ - EGL_Y_AXIS_NV - Frames are laid out such that consecutive
+ pixels with same X coordinate reside next to each other in
+ memory.
+
+ - EGL_DONT_CARE - No major axis was set by the EGL
+ implementation. Applications must coordinate what they are
+ doing.
+
+ EGL_STREAM_FRAME_MAJOR_AXIS_NV will not be defined until a consumer
+ and a producer are connected to the stream. Querying it before that
+ will generate an EGL_BAD_STATE_KHR error.
+
+
+ 3.10.4.x+3 EGL_CONSUMER_AUTO_ORIENTATION_NV
+
+ EGL_CONSUMER_AUTO_ORIENTATION_NV is a read-only attribute that
+ indicates whether the consumer endpoint will handle frame orientation
+ automatically so that the consumer application is not required to
+ take further actions.
+
+ The following values can be returned:
+
+ - EGL_TRUE - The consumer application can read frames as normal.
+ The consumer will flip images as needed if the expected
+ orientation does not match.
+
+ - EGL_FALSE - The consumer application is expected to query the
+ frame orientation and process images accordingly if it does not
+ match with the expected orientation.
+
+ EGL_CONSUMER_AUTO_ORIENTATION_NV will not be defined until a consumer
+ and a producer are connected to the stream. Querying it before that
+ will generate an EGL_BAD_STATE_KHR error.
+
+
+ 3.10.4.x+4 EGL_PRODUCER_AUTO_ORIENTATION_NV
+
+ EGL_PRODUCER_AUTO_ORIENTATION_NV is a read-only attribute that
+ indicates whether the producer endpoint will handle frame orientation
+ automatically so that the producer application is not required to
+ take further actions.
+
+ The following values can be returned:
+
+ - EGL_TRUE - The producer application can generate frames as
+ normal. The producer will flip images as needed if the
+ expected orientation does not match.
+
+ - EGL_FALSE - The producer application is expected to query the
+ frame orientation and generate images accordingly if it does
+ not match with the expected orientation.
+
+ EGL_PRODUCER_AUTO_ORIENTATION_NV will not be defined until a consumer
+ and a producer are connected to the stream. Querying it before that
+ will generate an EGL_BAD_STATE_KHR error.
+
+
+Add to the error list in section "3.10.4.2 Querying EGLStream
+Attributes":
+
+ - EGL_BAD_STATE_KHR is generated if <attribute> is any of
+ EGL_STREAM_FRAME_ORIGIN_X_NV, EGL_STREAM_FRAME_ORIGIN_Y_NV,
+ EGL_STREAM_FRAME_MAJOR_AXIS_NV, EGL_CONSUMER_AUTO_ORIENTATION_NV,
+ or EGL_PRODUCER_AUTO_ORIENTATION_NV and the stream is in
+ EGL_STREAM_STATE_CREATED_KHR or EGL_STREAM_STATE_CONNECTING_KHR
+ state.
+
+Issues
+
+ 1. Frame orientation is only needed for and relevant to specific
+ consumers and producers. What should the query of either
+ EGL_STREAM_FRAME_ORIGIN_X_NV, EGL_STREAM_FRAME_ORIGIN_Y_NV,
+ EGL_STREAM_FRAME_MAJOR_AXIS_NV when consumers or producers that do
+ not define a frame orientation are connected to the stream?
+
+ RESOLVED: If the consumer or producer connected to the stream does
+ not define a frame orientation, the queries will return
+ EGL_DONT_CARE and applications must coordinate what they do.
+
+ 2. What should the query return when the connected consumer or
+ producer defines a frame orientation but can actually handle any?
+
+ RESOLVED: Quering EGL_STREAM_FRAME_ORIGIN_X_NV,
+ EGL_STREAM_FRAME_ORIGIN_Y_NV, or EGL_STREAM_FRAME_MAJOR_AXIS_NV
+ will return the default frame orientation.
+
+ Querying EGL_CONSUMER_AUTO_ORIENTATION_NV or
+ EGL_PRODUCER_AUTO_ORIENTATION_NV will return whether the consumer
+ or producer can handle any orientation automatically so that
+ applications do not need to worry about it.
+
+ If querying EGL_CONSUMER_AUTO_ORIENTATION_NV or
+ EGL_PRODUCER_AUTO_ORIENTATION_NV returns EGL_FALSE, the
+ corresponding application is expected to query the frame
+ orientation and take the appropriate action if that does not match
+ the expected orientation.
+
+Revision History
+
+ #5 (May 20th, 2019) Miguel A. Vico
+ - Allocate extension number
+ - Mark extension as complete
+
+ #4 (January 30th, 2019) Miguel A. Vico
+ - Allocate values for added enumerants
+ - Minor fixes to the major axis attribute description
+
+ #3 (October 8th, 2018) Miguel A. Vico
+ - Collapsed producer and consumer orientation attributes
+ - Added major axis attribute to fully define orientation
+ - Added two new attributes to indicate whether the producer or
+ consumer can handle orientation automatically.
+ - Rewritten issue #1
+ - Added issue #2 and its resolution
+ - Overall spec changes to reflect the above points
+
+ #2 (August 19th, 2016) Miguel A. Vico
+ - Rename newly added attributes as consumer and producer
+ attributes
+ - Added both issue #1 and its resolution
+ - Overall spec changes to reflect the above points
+
+ #1 (August 1st, 2016) Miguel A. Vico
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_remote.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_remote.txt
new file mode 100644
index 0000000..c8eb464
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_remote.txt
@@ -0,0 +1,472 @@
+Name
+
+ NV_stream_remote
+ NV_stream_cross_object
+ NV_stream_cross_display
+ NV_stream_cross_process
+ NV_stream_cross_partition
+ NV_stream_cross_system
+
+Name Strings
+
+ EGL_NV_stream_remote
+
+Contributors
+
+ Daniel Kartch
+ Bogdan Naodovic
+ James Jones
+ Zander Clucas
+
+Contacts
+
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 4 - June 01, 2016
+
+Number
+
+ EGL Extension #114
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires EGL_KHR_stream
+
+ Interacts with EGL_KHR_stream_cross_process_fd
+
+ All EGL_NV_stream_cross_* extensions require EGL_NV_stream_remote,
+ but are independent of each other.
+
+Overview
+
+ This extension provides a generic framework for establishing stream
+ connections when the producer and consumer endpoints are not
+ associated with the same EGLStream object. The cross-process streams
+ allowed by the EGL_KHR_stream_cross_process_fd extension are one
+ example of such a connection. Other potential examples include
+ streams between objects associated with different EGLDisplays in a
+ single process, streams between processes residing in separate
+ virtual machine partitions on a single system, or streams between
+ entirely separate systems connected via the internet.
+
+ The approach used by EGL_KHR_stream_cross_process_fd has several
+ drawbacks:
+ - It creates a new pair of stream creation and query functions
+ which are specific to both the type of stream and the method
+ used for communicating the stream's identity. Extending this
+ methodology would require new pairs of functions for every new
+ type of stream connection.
+ - It allows creation of the connected stream objects without any
+ indication of which side will be the consumer and which will be
+ the producer. It even allows, although this was probably not
+ intended, a cross-process stream to be established, but have
+ both producer and consumer exist in the same process, with the
+ other process acting as a voyeur that can observe state and
+ perhaps modify attributes, but not operate on frames.
+ - The use of file descriptors generated by EGL in one process
+ and accessed by EGL in another to establish communication has
+ potential security flaws, and may not be available at all on
+ some real-time operating systems.
+
+ Rather than implement new connection types using this model, we
+ propose a more generic approach that does not require a
+ proliferation of new interfaces and avoids any ambiguities in how
+ the stream will be used. These extensions can coexist with
+ EGL_KHR_stream_cross_process_fd, but allow for more control of
+ stream communication by the applications.
+
+ These extensions provide the framework with which arbitrary stream
+ object pairs can be established, but by themselves are insufficient
+ to create such pairs. In addition, a separate extension must be
+ used to determine the protocol by which the two objects will
+ communicate. See for example the EGL_NV_stream_socket extension.
+
+ Several optional types of separate stream objects are defined,
+ with successive levels of remoteness. It should be assumed that
+ a more remote type will be less efficient in transfering images,
+ and therefore applications should choose the least remote type
+ available that is compatible with their use cases.
+
+New Types
+
+ None
+
+New Functions
+
+ None
+
+New Tokens
+
+ Returned by eglQueryStreamKHR and eglQueryStreamAttribKHR when
+ attribute is EGL_STREAM_STATE_KHR:
+
+ EGL_STREAM_STATE_INITIALIZING_NV 0x3240
+
+ Accepted as attribute names in eglCreateStreamKHR,
+ eglCreateStreamAttribKHR, eglQueryStreamKHR, and
+ eglQueryStreamAttribKHR:
+
+ EGL_STREAM_TYPE_NV 0x3241
+ EGL_STREAM_PROTOCOL_NV 0x3242
+ EGL_STREAM_ENDPOINT_NV 0x3243
+
+ Accepted by eglCreateStreamKHR and eglCreateStreamAttribKHR, and
+ returned by eglQueryStreamKHR and eglQueryStreamAttribKHR, as value
+ when attribute is EGL_STREAM_TYPE_NV, EGL_STREAM_PROTOCOL_NV or
+ EGL_STREAM_ENDPOINT_NV:
+
+ EGL_STREAM_LOCAL_NV 0x3244
+
+ When EGL_NV_stream_cross_object is present, accepted by
+ eglCreateStreamKHR and eglCreateStreamAttribKHR and returned by
+ eglQueryStreamKHR and eglQueryStreamAttribKHR as value for
+ attribute EGL_STREAM_TYPE_NV:
+
+ EGL_STREAM_CROSS_OBJECT_NV 0x334D
+
+ When EGL_NV_stream_cross_display is present, accepted by
+ eglCreateStreamKHR and eglCreateStreamAttribKHR and returned by
+ eglQueryStreamKHR and eglQueryStreamAttribKHR as value for
+ attribute EGL_STREAM_TYPE_NV:
+
+ EGL_STREAM_CROSS_DISPLAY_NV 0x334E
+
+ When EGL_NV_stream_cross_process is present, accepted as
+ value for attribute EGL_STREAM_TYPE_NV by eglCreateStreamKHR
+ and eglCreateStreamAttribKHR. When either
+ EGL_NV_stream_cross_process or EGL_KHR_stream_cross_process_fd
+ is present, returned by eglQueryStreamKHR and
+ eglQueryStreamAttribKHR for attribute EGL_STREAM_TYPE_NV:
+
+ EGL_STREAM_CROSS_PROCESS_NV 0x3245
+
+ When EGL_NV_stream_cross_partition is present, accepted by
+ eglCreateStreamKHR and eglCreateStreamAttribKHR and returned by
+ eglQueryStreamKHR and eglQueryStreamAttribKHR as value for
+ attribute EGL_STREAM_TYPE_NV:
+
+ EGL_STREAM_CROSS_PARTITION_NV 0x323F
+
+ When EGL_NV_stream_cross_system is present, accepted by
+ eglCreateStreamKHR and eglCreateStreamAttribKHR and returned by
+ eglQueryStreamKHR and eglQueryStreamAttribKHR as value for
+ attribute EGL_STREAM_TYPE_NV:
+
+ EGL_STREAM_CROSS_SYSTEM_NV 0x334F
+
+ If EGL_KHR_stream_cross_process_fd is present, returned by
+ eglQueryStreamKHR and eglQueryStreamAttribKHR when attribute is
+ EGL_STREAM_PROTOCOL_NV:
+
+ EGL_STREAM_PROTOCOL_FD_NV 0x3246
+
+ Accepted by eglCreateStreamKHR and eglCreateStreamAttribKHR, and
+ returned by eglQueryStreamKHR and eglQueryStreamAttribKHR when
+ attribute is EGL_STREAM_ENDPOINT_NV:
+
+ EGL_STREAM_PRODUCER_NV 0x3247
+ EGL_STREAM_CONSUMER_NV 0x3248
+
+Add to "Glossary" of EGL_KHR_stream:
+
+ Local stream
+ A stream implemented with both consumer and producer attached to a
+ single EGLStream object.
+
+ Remote stream
+ A stream implemented with two EGLStream objects that communicate
+ with each other, with the consumer attached to one object and the
+ producer attached to the other.
+
+Add to section "3.10.1 Creating an EGLStream" in EGL_KHR_stream:
+
+ If a remote EGLStream is created, as described in section "3.10.5.x
+ Remote streams", and is paired with an EGLStream object which has
+ conflicting values for some attributes, creation will succeed, but
+ the stream will enter state EGL_STREAM_STATE_DISCONNECTED_KHR once
+ communication is established.
+
+Add to list of failures in section "3.10.1 Creating an EGLStream" in
+EGL_KHR stream:
+
+ - EGL_BAD_MATCH is generated if the value of any one of the
+ EGL_STREAM_TYPE_NV, EGL_STREAM_PROTOCOL_NV, or
+ EGL_STREAM_ENDPOINT_NV attributes is EGL_STREAM_LOCAL_NV and
+ any other of these attributes is neither EGL_STREAM_LOCAL_NV
+ nor EGL_DONT_CARE.
+
+Add to section "3.10.2 Connecting an EGLStream to a consumer" in
+EGL_KHR_stream:
+
+ Any function which connects a consumer to an EGLStream will fail and
+ generate an EGL_BAD_ACCESS error if the value of the EGLStream's
+ EGL_STREAM_ENDPOINT_NV attribute is EGL_STREAM_PRODUCER_NV.
+
+Add to section "3.10.3 Connecting an EGLStream to a producer" in
+EGL_KHR_stream:
+
+ Any function which connects a producer to an EGLStream will fail and
+ generate an EGL_BAD_ACCESS error if the value of the EGLStream's
+ EGL_STREAM_ENDPOINT_NV attribute is EGL_STREAM_CONSUMER_NV.
+
+Add to "Table 3.10.4.4 EGLStream Attributes" in EGL_KHR_stream:
+
+ Attribute Read/Write Type Section
+ -------------------------- ---------- ------ ----------
+ EGL_STREAM_TYPE_NV io EGLint 3.10.4.x
+ EGL_STREAM_PROTOCOL_NV io EGLint 3.10.4.x+1
+ EGL_STREAM_ENDPOINT_NV io EGLint 3.10.4.x+2
+
+Add to beginning of state list in section "3.10.4.3 EGL_STREAM_STATE_KHR
+Attribute" in EGL_KHR_stream:
+
+ - EGL_STREAM_STATE_INITIALIZING_NV - The EGLStream object
+ represents one endpoint of a remote stream and has not yet
+ established communication with the opposite endpoint.
+
+Replace the first entry in the state transition table in section
+"3.10.4.3 EGL_STREAM_STATE_KHR Attribute" in EGL_KHR_stream:
+
+ -> EGL_STREAM_STATE_INITIALIZING_NV
+ A new remote EGLStream is created in this state.
+
+ EGL_STREAM_STATE_INITIALIZING_NV ->
+ EGL_STREAM_STATE_CREATED_KHR
+ Occurs when a remote EGLStream object establishes communication with
+ the opposite endpoint.
+
+ -> EGL_STREAM_STATE_CREATED_KHR
+ A new local EGLStream or EGLStream of undetermined type is created
+ in this state.
+
+Add new subsections to the end of section "3.10.4 EGLStream Attributes"
+in EGL_KHR_stream:
+
+ 3.10.4.x EGL_STREAM_TYPE_NV Attribute
+
+ The EGL_STREAM_TYPE_NV attribute may be set when the stream
+ is created, and indicates the type of connection between the
+ EGLStream objects to which the consumer and producer are attached.
+ Legal values are EGL_DONT_CARE and EGL_STREAM_LOCAL_NV. The
+ default value is EGL_DONT_CARE.
+
+ A value of EGL_STREAM_LOCAL_NV indicates that this is a local
+ stream with both consumer and producer connected to a single
+ EGLStream object.
+
+ If EGL_DONT_CARE is initially specified, the value of the attribute
+ will automatically be changed to the appropriate value once both
+ consumer and producer are attached, depending on the functions used.
+
+ Other possible values for EGL_STREAM_TYPE_NV may be defined by
+ additional extensions to indicate a remote stream. Where used,
+ the EGL_STREAM_PROTOCOL_NV attribute must also be set to a
+ communication protocol compatible with the stream type.
+
+ 3.10.4.x+1 EGL_STREAM_PROTOCOL_NV Attribute
+
+ The EGL_STREAM_PROTOCOL_NV attribute may be set when the stream is
+ created, and indicates the manner in which communication is
+ established between the EGLStream objects to which the consumer
+ and producer are attached. Legal values are EGL_DONT_CARE and
+ EGL_STREAM_LOCAL_NV. The default value is EGL_DONT_CARE.
+
+ A value of EGL_STREAM_LOCAL_NV indicates that this is a local
+ stream with both consumer and producer connected to a single
+ EGLStream object, so no communication protocol is required.
+
+ If EGL_DONT_CARE is initially specified, the value of the attribute
+ will automatically be changed to the appropriate value once both
+ consumer and producer are attached, depending on the functions used.
+
+ Other possible values for EGL_STREAM_PROTOCOL_NV may be defined by
+ additional extensions to indicate the communication protocol to be
+ used for a remote stream. Not all communication protocols are
+ compatible with all stream types, and vice versa. If incompatible
+ types and protocols are specified, an EGL_BAD_MATCH error will be
+ generated.
+
+ 3.10.4.x+2 EGL_STREAM_ENDPOINT_NV Attribute
+
+ The EGL_STREAM_ENDPOINT_NV attribute may be set when the stream is
+ created, and indicates the endpoints which will be attached to the
+ EGLStream object. Legal values are EGL_DONT_CARE,
+ EGL_STREAM_LOCAL_NV, EGL_STREAM_CONSUMER_NV, and
+ EGL_STREAM_PRODUCER_NV. The default value is EGL_DONT_CARE.
+
+ A value of EGL_STREAM_LOCAL_NV indicates that this is a local
+ stream with both consumer and producer connected to a single
+ EGLStream object.
+
+ A value of EGL_STREAM_CONSUMER_NV indicates that the EGLStream
+ object represents the consumer side of a remote stream.
+
+ A value of EGL_STREAM_PRODUCER_NV indicates that the EGLStream
+ object represents the producer side of a remote stream.
+
+ If EGL_DONT_CARE is initially specified, the value of the attribute
+ will automatically be changed to the appropriate value once both
+ consumer and producer are attached, depending on the functions used.
+
+If EGL_NV_stream_cross_object is present, in section 3.10.4.x above,
+add EGL_STREAM_CROSS_OBJECT_NV to the list of legal values, and insert
+
+ A value of EGL_STREAM_CROSS_OBJECT_NV indicates that the stream
+ object represents one endpoint of a remote stream whose other
+ endpoint is obtained from the same EGLDisplay.
+
+If EGL_NV_stream_cross_display is present, in section 3.10.4.x above,
+add EGL_STREAM_CROSS_DISPLAY_NV to the list of legal values, and insert
+
+ A value of EGL_STREAM_CROSS_DISPLAY_NV indicates that the stream
+ object represents one endpoint of a remote stream whose other
+ endpoint may be obtained from a different EGLDisplay in the same
+ process.
+
+If EGL_NV_stream_cross_process or EGL_NV_stream_cross_process_fd is
+present, in section "3.10.4.x" above, add EGL_STREAM_CROSS_PROCESS_NV
+to the list of legal values, and insert
+
+ A value of EGL_STREAM_CROSS_PROCESS_NV indicates that the stream
+ object represents one endpoint of a remote stream whose other
+ endpoint may reside in a separate process.
+
+If EGL_NV_stream_cross_partition is present, in section 3.10.4.x
+above, add EGL_STREAM_CROSS_PARTITION_NV to the list of legal values,
+and insert
+
+ A value of EGL_STREAM_CROSS_PARTITION_NV indicates that the stream
+ object represents one endpoint of a remote stream whose other
+ endpoint may reside in a separate virtual machine partition on
+ the same system. The partitions are not required to be using the
+ same operating systems, but must support compatible communication
+ protocols.
+
+If EGL_NV_stream_cross_system is present, in section 3.10.4.x above,
+add EGL_STREAM_CROSS_SYSTEM_NV to the list of legal values, and insert
+
+ A value of EGL_STREAM_CROSS_SYSTEM_NV indicates that the stream
+ object represents one endpoint of a remote stream whose other
+ endpoint may reside on an independent hardware system with no
+ directly sharable memory resources.
+
+If EGL_KHR_stream_cross_process_fd is present, in section 3.10.4.x+1
+above, add EGL_STREAM_PROTOCOL_FD_NV to the list of legal values, and
+insert
+
+ A value of EGL_STREAM_PROTOCOL_FD_NV indicates that the stream is
+ a remote stream whose communication is established using a file
+ descriptor. The details of what this file descriptor represents
+ are implementation dependent. If the EGL_STREAM_PROTOCOL_NV
+ attribute is initialized with this value, the EGL_STREAM_TYPE_NV
+ attribute must specify a value of EGL_STREAM_CROSS_PROCESS_NV or
+ an EGL_BAD_MATCH failure is generated.
+
+ If an initial value of EGL_DONT_CARE is specified and a file
+ descriptor is subsequently obtained with
+ eglGetStreamFileDescriptorKHR, the value will be automatically
+ changed to EGL_STREAM_PROTOCOL_FD_NV.
+
+Add a new subsection to the end of "3.10.5 EGLStream operation":
+
+ 3.10.5.x Remote streams
+
+ An EGLStream object may be created as the endpoint of a remote
+ stream by specifying EGL_STREAM_PRODUCER_NV or
+ EGL_STREAM_CONSUMER_NV as the value for its EGL_STREAM_ENDPOINT_NV
+ attribute. Valid and compatible EGL_STREAM_TYPE_NV and
+ EGL_STREAM_PROTOCOL_NV values other than EGL_DONT_CARE or
+ EGL_STREAM_LOCAL_NV must also be specified.
+
+ If a value for EGL_STREAM_ENDPOINT_NV is not specified, the stream
+ is assumed to be local, but other extensions (see for example
+ EGL_KHR_stream_cross_process_fd) may allow it to be converted to a
+ remote stream before the producer has been attached.
+
+ When an EGLStream object is created as remote, any unspecified
+ attribute will be initially set to a value of EGL_DONT_CARE. Pairs
+ of EGLStream objects representing opposite endpoints of a stream are
+ not required to specify the same attribute lists, but their
+ attributes must be compatible. When communication is established
+ between the endpoints, they will exchange attribute settings:
+ - If both endpoints have a value of EGL_DONT_CARE for an
+ attribute, the default value will be assigned.
+ - If one endpoint has a value of EGL_DONT_CARE for an attribute,
+ it will be set to the other endpoint's value.
+ - If neither endpoint has a value of EGL_DONT_CARE for an
+ attribute, their values must agree. In most cases, this means
+ the values must be identical, but this may not be true for all
+ attributes. In particular, one endpoint must specify an
+ EGL_STREAM_ENDPOINT_NV value of EGL_STREAM_CONSUMER_NV, and
+ the other must specify a value of EGL_STREAM_PRODUCER_NV.
+ If the values for any attribute are not compatible, the stream will
+ transition to the EGL_STREAM_STATE_DISCONNECTED_KHR state.
+
+ Additionally, if the two EGLStream objects representing a remote
+ stream are created for EGLDisplays which cannot share resources,
+ the stream will transition to the EGL_STREAM_STATE_DISCONNECTED_KHR
+ state.
+
+ When using remote streams, there may be latency in communicating
+ state changes between the EGLStream objects representing the two
+ endpoints. For instance, when a new frame is inserted into the
+ stream by the producer, the consumer endpoint may not immediately
+ transition to EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR. Similarly,
+ when a frame is acquired by the consumer, the producer endpoint may
+ not immediately transition to
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR. Applications should rely
+ only on the state of the endpoint on which they are operating to
+ determine the expected results of that operation.
+
+In section "3.10.1.1 Duplicating an EGLStream from a file descriptor" of
+the EGL_KHR_stream_cross_process_fd extension, add to the failure list
+for eglGetStreamFileDescriptor
+
+ - EGL_BAD_ACCESS is generated if the EGL_STREAM_TYPE_NV
+ attribute of <stream> is anything other than EGL_DONT_CARE or
+ EGL_STREAM_CROSS_PROCESS_NV.
+
+ - EGL_BAD_ACCESS is generated if the EGL_STREAM_PROTOCOL_NV
+ attribute of <stream> is anything other than EGL_DONT_CARE or
+ EGL_STREAM_PROTOCOL_FD_NV.
+
+ - EGL_BAD_ACCESS is generated if the EGL_STREAM_ENDPOINT_NV
+ attribute of <stream> is EGL_STREAM_LOCAL_NV.
+
+Issues
+
+ None
+
+Revision History
+
+ #4 (June 01, 2016)
+ - Removed sync object definition. It will be provided by a
+ separate extension.
+ - Folded in cross-partition extension.
+ - Added types for cross-object, cross-display, and
+ cross-system streams.
+ - General cleanup in preparation for publication.
+
+ #3 (September 16, 2015) Zander Clucas
+ - Removed dependence of the CROSS_PROCESS type on the
+ EGL_NV_cross_process_fd extension
+ - Added CROSS_PROCESS to the list of STREAM_TYPE legal values
+ - Added CROSS_PROCESS requirement for cross_process_fd protocol
+
+ #2 (December 11, 2014) Daniel Kartch
+ - Rewrote as NV draft for earlier release.
+ - Added section for creation of sync object.
+ - Reserved enum values.
+
+ #1 (October 10, 2014) Daniel Kartch
+ - Initial EXT draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_reset.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_reset.txt
new file mode 100644
index 0000000..1cb0d06
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_reset.txt
@@ -0,0 +1,306 @@
+Name
+
+ NV_stream_reset
+
+Name Strings
+
+ EGL_NV_stream_reset
+
+Contributors
+
+ Daniel Kartch
+
+Contacts
+
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 6 - October 27, 2016
+
+Number
+
+ EGL Extension #112
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ Requires the EGL_KHR_stream extension.
+
+ Modifies the EGL_KHR_stream_fifo extension.
+
+ Modifies the EGL_KHR_stream_consumer_gltexture extension.
+
+ Modifies the EGL_EXT_stream_consumer_egloutput extension.
+
+ Interacts with the EGL_KHR_stream_cross_process_fd and
+ EGL_NV_stream_remote extensions.
+
+ This extension is written based on the wording of version 26 of the
+ EGL_KHR_stream extension.
+
+Overview
+
+ The base stream extension requires that, once the producer inserts
+ the first frame into the stream, at least one frame is always
+ available to be acquired by the consumer until the stream
+ disconnects. However, there are some use cases in which the producer
+ or the consumer may wish to allow the stream to empty without
+ permanently disconnecting.
+
+ An example of a use case where the producer may wish to empty the
+ stream is a security or rear-view camera which temporarily stops
+ producing new frames, perhaps due to a hardware reset. Continuing to
+ display the last frame available would produce a false impression of
+ the current state, and should be avoided for safety reasons. A
+ better solution would be to let the consumer know there was no
+ available image, so that it could take appropriate actions, and then
+ recover when the camera begins streaming again.
+
+ This use case could be handled with existing functionality by
+ disconnecting and destroying the stream and then recreating and
+ reconnecting it when new frames are available. However, this can be
+ burdensome, particularly when the producer and consumer reside in
+ separate processes.
+
+ An example of a use case where the consumer may wish to empty the
+ stream is an image processer which operates on each frame exactly
+ once. After processing, it will not waste resources operating on the
+ same frame a second time. This use case can be handled by carefully
+ monitoring the availability of a new frame before performing an
+ acquire operation. But returning the buffer(s) as soon as they are
+ no longer needed allows for better resource management.
+
+ This extension allows a stream to be completely drained of existing
+ frames by the consumer or flushed of existing frames by the producer
+ without disconnecting, so that processing may continue again when
+ new frames are produced.
+
+New Functions
+
+ EGLBoolean eglResetStreamNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream);
+
+New Tokens
+
+ Accepted as an attribute in the <attrib_list> parameter of
+ eglCreateStreamKHR and the <attrib> parameter of eglQueryStreamKHR:
+
+ EGL_SUPPORT_RESET_NV 0x3334
+ EGL_SUPPORT_REUSE_NV 0x3335
+
+To table "3.10.4.4 EGLStream Attributes", add entry
+
+ Attribute Read/Write Type Section
+ -------------------------- ---------- ------ ----------
+ EGL_SUPPORT_RESET_NV io EGLint 3.10.4.x
+ EGL_SUPPORT_REUSE_NV io EGLint 3.10.4.x+1
+
+Modify entries in the list of state transitions in "3.10.4.3
+EGL_STREAM_STATE_KHR Attribute"
+
+ EGL_STREAM_STATE_EMPTY_KHR ->
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR
+ Occurs when the producer inserts the first image frame and any
+ subsequent frame after the stream has been drained.
+
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR ->
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR
+ Occurs when the producer inserts a new image frame and only
+ previously consumed frames are available.
+
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR ->
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR
+ Occurs when the consumer begins examining the last unconsumed
+ frame and reuse of old frames is enabled.
+
+Add entries to the list of state transitions in "3.10.4.3
+EGL_STREAM_STATE_KHR Attribute"
+
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR ->
+ EGL_STREAM_STATE_EMPTY_KHR
+ Occurs when the stream is reset.
+
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR ->
+ EGL_STREAM_STATE_EMPTY_KHR
+ Occurs when the stream is reset or, if reuse of old frames is
+ disabled, when the consumer begins examining the last unconsumed
+ frame.
+
+Add new sections at the end of section "3.10.4 EGLStream Attributes"
+
+ 3.10.4.x EGL_SUPPORT_RESET_NV Attribute
+
+ The EGL_SUPPORT_RESET_NV attribute may only be set when the stream
+ is created. By default, it is EGL_FALSE. If set to EGL_TRUE, the
+ stream will allow restoration of the stream state back to
+ EGL_STREAM_STATE_EMPTY_KHR state from
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR or
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR, releasing existing frames,
+ as described in section 3.10.5.x.
+
+ Not all consumers are required to support stream resets. Attempting
+ to attach a consumer which does not support resets to a stream with
+ EGL_SUPPORT_RESET_NV set to EGL_TRUE will fail with an
+ EGL_BAD_MATCH error.
+
+ Not all producers will provide a means to reset streams themselves,
+ but any producer may be connected to a stream which supports resets
+ and may be used with the eglStreamResetNV function.
+
+ 3.10.4.x+1 EGL_SUPPORT_REUSE_NV Attribute
+
+ The EGL_SUPPORT_REUSE_NV attribute may only be set when the stream
+ is created. By default, it is EGL_TRUE. If EGL_TRUE, then when the
+ consumer acquires the last available image frame from the stream, it
+ will be held for reuse until a new frame is inserted to replace it.
+ If EGL_FALSE, no frames will be available to the consumer until the
+ producer inserts a new one.
+
+Modify third paragraph of "3.10.5.1 EGLStream operation in mailbox mode"
+
+ The consumer retrieves the image frame from the mailbox and
+ examines it. When the consumer is finished examining the image
+ frame it is either placed back in the mailbox (if the mailbox is
+ empty, supports reuse of frames, and has not been reset) or
+ discarded (otherwise).
+
+If EGL_KHR_stream_fifo is present, insert at beginning of fourth paragraph
+of "3.10.5.2 EGLStream operation in fifo mode"
+
+ If the EGL_SUPPORT_REUSE_NV attribute is EGL_TRUE and the stream has
+ not been reset since the image frame was consumed, then if the fifo
+ is empty ...
+
+Insert a new paragraph after the above
+
+ If the EGL_SUPPORT_REUSE_NV attribute is EGL_FALSE or the stream has
+ been reset, then if the fifo is empty when the consumer is finished
+ consuming an image frame, the frame is discarded and the stream is
+ left in the EGL_STREAM_STATE_EMPTY_KHR state until new frames are
+ produced.
+
+Add a new section to "3.10.5 EGLStream operation"
+
+ 3.10.5.x EGLStream reset
+
+ For resource management or safety reasons, it may be necessary to
+ invalidate and reclaim frames pending in the stream. This is only
+ possible if the stream's EGL_SUPPORT_RESET_NV attribute is set to
+ EGL_TRUE.
+
+ Stream resets cause any unconsumed image frames waiting in the
+ stream to be immediately discarded, and place the stream in the
+ EGL_STREAM_STATE_EMPTY_KHR state. Frames currently held by the
+ consumer are not immediately affected, but will be discarded once
+ released, even if the stream would normally hold old frames for
+ reuse. After the reset, new frames inserted by the producer are
+ processed normally.
+
+ Stream resets may be issued by some producers as described in their
+ specifications, and may also be triggered by the application calling
+
+ EGLBoolean eglResetStreamNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream)
+
+ On success, EGL_TRUE is returned and a reset of the stream is
+ initiated. On failure, EGL_FALSE is returned and an error is
+ generated.
+
+ - EGL_BAD_DISPLAY is generated if <dpy> is not a valid
+ EGLDisplay.
+
+ - EGL_NOT_INITIALIZED is generated if <dpy> is not initialized.
+
+ - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
+ EGLStream created for <dpy>.
+
+ - EGL_BAD_STATE_KHR is generated if <stream> is in
+ EGL_STREAM_STATE_CREATED_KHR, EGL_STREAM_STATE_CONNECTING_KHR,
+ or EGL_STREAM_STATE_DISCONNECTED_KHR state.
+
+ - EGL_BAD_ACCESS is generated if <stream>'s
+ EGL_SUPPORT_RESET_NV attribute is not EGL_TRUE.
+
+ If a stream is already in the EGL_STREAM_STATE_EMPTY_KHR state, a
+ reset will have no effect.
+
+If EGL_KHR_stream_cross_process_fd or EGL_NV_stream_remote is present,
+add to the list of errors above
+
+ - EGL_BAD_ACCESS is generated if <stream> represents the
+ consumer endpoint of a stream whose producer endpoint is
+ represented by a different EGLStreamKHR handle (e.g. for
+ cross-process streams).
+
+If EGL_KHR_stream_consumer_gltexture is supported, modify the first
+sentence of the fifth paragraph of the description of
+eglStreamConsumerAcquireKHR
+
+ If the producer has not inserted any new image frames since the
+ last call to eglStreamConsumerAcquireKHR, and the stream has been
+ reset or does not support reuse of frames, then
+ eglStreamConsumerAcquireKHR will fail. If it has not been reset and
+ reuse is supported, then eglStreamConsumerAcquireKHR will "latch"
+ the same image frame it latched last time
+ eglStreamConsumerAcquireKHR was called.
+
+If EGL_EXT_stream_consumer_egloutput is supported, add to the
+description if eglStreamConsumerOutputEXT
+
+ If the stream is reset to the EGL_STREAM_STATE_EMPTY_KHR state, any
+ currently displayed frame will be released, and the displayed image
+ will be reset to some default state determined by the display
+ hardware and the implementation. Possible behavior includes, but is
+ not limited to, displaying a black screen, displaying a default
+ splash screen, displaying a "no input" message, or powering off the
+ display. If and when the stream again enters the
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR state, processing of frames
+ will resume as described above.
+
+Issues
+
+ 1. When this extension is present, should all streams automatically
+ support resetting?
+
+ RESOLVED: No. Applications which are not aware of this extension
+ may not be prepared to handle an unexpected return to the EMPTY
+ state. Therefore support for this feature must be explicitly
+ requested.
+
+Revision History
+
+ #6 (October 27, 2016) Daniel Kartch
+ - Clean up for publication
+
+ #5 (July 23rd, 2015) Daniel Kartch
+ - Added interaction with cross-process streams.
+
+ #4 (July 22nd, 2015) Daniel Kartch
+ - Added enum values.
+
+ #3 (July 20th, 2015) Daniel Kartch
+ - Changed to NV specification
+ - Removed flush option from eglResetStream. Resetting will
+ always flush pending frames.
+ - Added EGL_SUPPORT_REUSE_NV flag to control whether released
+ frames are saved or discarded immediately.
+ - Removed reference to unpublished stream_sequence extension.
+
+ #2 (August 21th, 2014) Daniel Kartch
+ - Added paragraph to indicate that producers do not impose
+ restrictions on use of reset.
+ - Clarified consumer behavior on reset.
+ - Added interactions with GL texture and EGLOutput consumers.
+
+ #1 (August 12th, 2014) Daniel Kartch
+ - Initial draft
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_socket.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_socket.txt
new file mode 100644
index 0000000..2d5e209
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_socket.txt
@@ -0,0 +1,229 @@
+Name
+
+ NV_stream_socket
+ NV_stream_socket_unix
+ NV_stream_socket_inet
+
+Name Strings
+
+ EGL_NV_stream_socket
+ EGL_NV_stream_socket_unix
+ EGL_NV_stream_socket_inet
+
+Contributors
+
+ Daniel Kartch
+ Bogdan Naodovic
+ James Jones
+ Zander Clucas
+ Tarun Bansal
+
+Contacts
+
+ Daniel Kartch, NVIDIA (dkartch 'at' nvidia.com)
+
+Status
+
+ Draft
+
+Version
+
+ Version 6 - October 27, 2016
+
+Number
+
+ EGL Extension #115
+
+Extension Type
+
+ EGL display extension
+
+Dependencies
+
+ EGL_NV_stream_socket requires EGL_NV_stream_remote.
+
+ EGL_NV_stream_socket_unix requires EGL_NV_stream_socket.
+
+ EGL_NV_stream_socket_inet requires EGL_NV_stream_socket.
+
+Overview
+
+ These extensions build on the framework for remote streams provided
+ in EGL_NV_stream_remote to define a means for two EGLStream objects
+ representing opposite ends of a single stream to establish
+ communication using a socket. The application is expected to create
+ and connnect both ends of the socket before creating the stream
+ objects.
+
+ The base EGL_NV_stream_socket extension defines most of the
+ attributes required to initialize the stream objects. The
+ EGL_NV_stream_socket_unix and EGL_NV_stream_socket_inet extensions
+ indicate support for UNIX domain and internet protocol socket types,
+ respectively. Additional extensions may provide support for other
+ socket types. The type of socket is important, as certain operations
+ are only available with certain types, which may influence how the
+ streams are implemented. For instance, UNIX domain sockets allow
+ file descriptors to be passed between processes, while internet
+ protocol sockets do not. This ability may allow more efficient
+ sharing of resources between the socket endpoints.
+
+ An application using this extension will bear some similarity to the
+ example code from the EGL_KHR_stream_cross_process_fd extension,
+ which also uses sockets to establish the communication between two
+ processes and then create a pair of EGLStream objects. The key
+ difference is that in that case, the sockets are merely a temporary
+ means to an end to pass a file descriptor between the processes.
+ Once that is accomplished, the sockets are discarded.
+
+ The file descriptor used by that extension may represent an
+ underlying object such as shared memory which allows more efficient
+ communication than the sockets themselves. However, there is nothing
+ preventing an implementation of EGL_NV_stream_socket from creating
+ and passing such a file descriptor as well, gaining the same
+ efficiency. Therefore, a protocol based on sockets will work at
+ least as well as one based on file descriptors, with the added
+ benefit of being more portable.
+
+New Types
+
+ None
+
+New Functions
+
+ None
+
+New Tokens for EGL_NV_stream_socket
+
+ Accepted by eglCreateStreamKHR and returned by eglQueryStreamKHR
+ when attribute is EGL_STREAM_PROTOCOL_NV:
+
+ EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B
+
+ Accepted as attribute names by eglCreateStreamKHR and
+ eglQueryStreamKHR functions
+
+ EGL_SOCKET_HANDLE_NV 0x324C
+ EGL_SOCKET_TYPE_NV 0x324D
+
+New Tokens for EGL_NV_stream_socket_unix
+
+ Accepted by eglCreateStreamKHR and returned by eglQueryStreamKHR
+ when attribute is EGL_SOCKET_TYPE_NV:
+
+ EGL_SOCKET_TYPE_UNIX_NV 0x324E
+
+New Tokens for EGL_NV_stream_socket_inet
+
+ Accepted by eglCreateStreamKHR and returned by eglQueryStreamKHR
+ when attribute is EGL_SOCKET_TYPE_NV:
+
+ EGL_SOCKET_TYPE_INET_NV 0x324F
+
+Add to list of failures in section "3.10.1 Creating an EGLStream" in EGL_KHR stream:
+
+ - EGL_BAD_MATCH is generated if the value of EGL_STREAM_PROTOCOL_NV
+ is EGL_STREAM_PROTOCOL_SOCKET_NV and values are not provided for
+ EGL_SOCKET_HANDLE_NV and EGL_SOCKET_TYPE_NV.
+
+Add to "Table 3.10.4.4 EGLStream Attributes" in EGL_KHR_stream:
+
+ Attribute Read/Write Type Section
+ -------------------------- ---------- ------ ----------
+ EGL_SOCKET_HANDLE_NV io EGLint 3.10.4.y
+ EGL_SOCKET_TYPE_NV io EGLint 3.10.4.y+1
+
+In section "3.10.4.x+1 EGL_STREAM_PROTOCOL_NV Attribute" of
+EGL_NV_stream_remote, add EGL_STREAM_PROTOCOL_SOCKET_NV to the list of
+legal values and add
+
+ A value of EGL_STREAM_PROTOCOL_SOCKET_NV indicates that the stream
+ is a remote stream whose communication is established using a socket
+ connection provided by the application. The details of the messages
+ passed through the socket are implementation dependent, and may be
+ influenced by the stream and socket types. This value for the
+ EGL_STREAM_PROTOCOL_NV attribute is compatible with values of
+ EGL_STREAM_CROSS_OBJECT_NV, EGL_STREAM_CROSS_DISPLAY_NV,
+ EGL_STREAM_CROSS_PROCESS_NV, and EGL_STREAM_CROSS_PARTITION_NV for
+ the EGL_STREAM_TYPE_NV attribute.
+
+Add new subsections to the end of section "3.10.4 EGLStream Attributes"
+in EGL_KHR_stream:
+
+ 3.10.4.y EGL_SOCKET_HANDLE_NV Attribute
+
+ The EGL_SOCKET_HANDLE_NV attribute may be set when the stream
+ is created, and provides the handle to a blocking socket which will
+ be used to communicate with the other endpoint of the stream. If the
+ value of EGL_STREAM_PROTOCOL_NV is not EGL_STREAM_PROTOCOL_SOCKET_NV,
+ this attribute is ignored.
+
+ The type of this value is operating system dependent, and the
+ default value will be an invalid socket handle for the operating
+ system. In particular, for unix-like operating systems, the value is
+ a socket file descriptor as returned by socket() and related
+ functions, and the default value is -1.
+
+ Prior to creating the EGLStream object, the application may use the
+ socket handle as it wishes. But once the EGLStream object has been
+ successfully created, it assumes full ownership of this socket. If
+ the application subsequently writes to, reads from, or closes the
+ socket, undefined behavior will result. Furthermore, if any data
+ sent over the socket prior to creating the EGLStream object is not
+ consumed before the opposite EGLStream object is created, undefined
+ behavior will result.
+
+ When the EGLStream object is deleted, the socket handle will be
+ closed by the stream.
+
+ 3.10.4.y+1 EGL_SOCKET_TYPE_NV Attribute
+
+ The EGL_SOCKET_TYPE_NV attribute may be set when the stream is
+ created, and indicates the type of the socket provided by the
+ EGL_STREAM_SOCKET_HANDLE_NV attribute. If the value of
+ EGL_STREAM_PROTOCOL_NV is not EGL_STREAM_PROTOCOL_SOCKET_NV this
+ attribute is ignored.
+
+ The default value is EGL_NONE.
+
+If EGL_NV_stream_socket_unix is present, add to section "3.10.4.y+1
+EGL_SOCKET_TYPE_NV Attribute" above:
+
+ A value of EGL_SOCKET_TYPE_UNIX_NV indicates that the socket handle
+ represents a Unix domain socket, created with SOCK_STREAM type.
+
+If EGL_NV_stream_socket_inet is present, add to section "3.10.4.y+1
+EGL_SOCKET_TYPE_NV Attribute" above:
+
+ A value of EGL_SOCKET_TYPE_INET_NV indicates that the socket handle
+ represents an internet protocol socket, created with SOCK_STREAM
+ type.
+
+Issues
+
+ None
+
+Revision History
+
+ #6 (October 27, 2016) Daniel Kartch
+ - Indicate that the socket handle provided should represent
+ a blocking socket.
+
+ #5 (June 7, 2016) Daniel Kartch
+ - Add contact and clean up in preparation for publication.
+
+ #4 (September 16, 2015) Zander Clucas
+ - Indicated STREAM_SOCKET_PROTOCOL as compatible with socket
+ type CROSS_PROCESS.
+
+ #3 (December 16, 2014) Daniel Kartch
+ - Refined overview to clarify comparison with
+ EGL_KHR_cross_process_fd.
+ - Indicated SOCK_STREAM as a requirement for the socket types.
+
+ #2 (December 11, 2014) Daniel Kartch
+ - Rewrote as NV draft for earlier release.
+ - Reserved enum values.
+
+ #1 (October 10, 2014) Daniel Kartch
+ - Initial EXT draft
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_sync.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_sync.txt
new file mode 100644
index 0000000..5604c4d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_stream_sync.txt
@@ -0,0 +1,198 @@
+Name
+
+ NV_stream_sync
+
+Name Strings
+
+ EGL_NV_stream_sync
+
+Contributors
+
+ Acorn Pooley
+ Marcus Lorentzon
+
+Contacts
+
+ Ian Stewart, NVIDIA (istewart 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 6, June 5, 2012
+
+Number
+
+ EGL Extension #56
+
+Dependencies
+
+ Requires EGL 1.2.
+ Requires EGL_KHR_stream extension
+ Requires EGL_KHR_reusable_sync
+
+ This extension is written based on the wording of the EGL 1.2
+ specification.
+
+Overview
+
+ This extension defines a new type of reusable sync object. This
+ sync object will be signaled each time a new image frame becomes
+ available in an EGLStream for the consumer to consume.
+
+New functions
+
+ EGLSyncKHR eglCreateStreamSyncNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum type,
+ const EGLint *attrib_list);
+
+New Tokens
+
+ Accepted by the <type> parameter of eglCreateSyncKHR, and returned
+ in <value> when eglGetSyncAttribKHR is called with <attribute>
+ EGL_SYNC_TYPE_KHR:
+
+ EGL_SYNC_NEW_FRAME_NV 0x321F
+
+
+Add a new paragraph to section "3.8.1 Sync Objects" in the
+EGL_KHR_reusable_sync extension, just before the paragraph that
+mentions the eglClientWaitSyncKHR function:
+
+ The command
+
+ EGLSyncKHR eglCreateStreamSyncNV(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum type,
+ const EGLint *attrib_list);
+
+ creates a sync object of the specified <type> associated with the
+ specified display <dpy> and the specified EGLStream <stream>, and
+ returns a handle to the new object. <attrib_list> is an
+ attribute-value list specifying other attributes of the sync
+ object, terminated by an attribute entry EGL_NONE. Attributes not
+ specified in the list will be assigned their default values. The
+ state of <stream> must not be EGL_STREAM_STATE_CREATED_KHR or
+ EGL_STREAM_STATE_DISCONNECTED_KHR.
+
+ If <type> is EGL_SYNC_NEW_FRAME_NV, a stream-new-frame reusable
+ sync object is created. In this case <attrib_list> must be NULL or
+ empty (containing only EGL_NONE). Attributes of the reusable
+ stream-new-frame sync object are set as follows:
+
+ Attribute Name Initial Attribute Value(s)
+ --------------- --------------------------
+ EGL_SYNC_TYPE_KHR EGL_SYNC_NEW_FRAME_NV
+ EGL_SYNC_STATUS_KHR EGL_UNSIGNALED_KHR
+
+ Any time the state of <stream> transitions to
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR (from any other state),
+ the returned stream-new-frame reusable sync object is signaled.
+ (This effectively means the sync object will become signaled
+ whenever the producer inserts a new image frame into the
+ EGLStream.)
+
+ EGL does not automatically unsignal the stream-new-frame reusable
+ sync object. Generally applications will want to unsignal the
+ sync object after it has been signaled so that the availability
+ of the next frame can
+ be detected.
+
+ Errors
+ ------
+
+ * If <dpy> is not the name of a valid, initialized EGLDisplay,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_DISPLAY error is
+ generated.
+ * If <attrib_list> is neither NULL nor empty (containing only
+ EGL_NONE), EGL_NO_SYNC_KHR is returned and an EGL_BAD_ATTRIBUTE
+ error is generated.
+ * If <stream> is not a valid EGLStream created for <dpy>,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_STREAM error is
+ generated.
+ * If <stream>'s state is EGL_STREAM_STATE_CREATED_KHR or
+ EGL_STREAM_STATE_DISCONNECTED_KHR then EGL_NO_SYNC_KHR is
+ returned and an EGL_BAD_ACCESS error is generated.
+ * If a sync object of <type> has already been created for
+ <stream> (and not destroyed), EGL_NO_SYNC_KHR is returned and
+ an EGL_BAD_ACCESS error is generated.
+ * If <type> is not a supported type of stream sync object,
+ EGL_NO_SYNC_KHR is returned and an EGL_BAD_ATTRIBUTE error is
+ generated.
+
+Issues
+ 1. Is this extension useful, or does the built in blocking
+ behavior of the consumer described by the
+ EGL_NV_stream_consumer_gltexture extension render this
+ un-useful?
+
+ RESOLVED: Yes. It is useful to have a thread waiting on the
+ signal.
+
+ 2. Does EGL automatically unsignal the sync object?
+
+ RESOLVED: No. After the sync object has been signaled, it is
+ up to the application to unsignal it before waiting on it
+ again. It is important to check for the availability of
+ another frame by querying EGL_PRODUCER_FRAME_KHR after
+ unsignaling the sync object and before waiting on the sync
+ object to prevent a race condition. This can be done using
+ the following code:
+
+ void ConsumeFrames(EGLDisplay dpy, EGLStreamKHR stream)
+ {
+ EGLuint64KHR last_frame = 0;
+ EGLuint64KHR new_frame = 0;
+ EGLSyncKHR sync;
+
+ sync = eglCreateStreamSyncNV(dpy,
+ stream,
+ EGL_SYNC_NEW_FRAME_NV,
+ 0);
+
+ for(;;) {
+ eglSignalSyncKHR(dpy, sync, EGL_UNSIGNALED_KHR);
+ eglQueryStreamu64KHR(dpy,
+ stream,
+ EGL_PRODUCER_FRAME_KHR,
+ &new_frame);
+ if (new_frame != last_frame) {
+ last_frame = new_frame;
+ ConsumeNewFrame(stream);
+ } else {
+ eglClientWaitSyncKHR(dpy, sync, 0, EGL_FOREVER_KHR);
+ }
+ }
+ }
+
+Revision History
+
+ #7 (July 10, 2013) Jon Leech
+ - Fix spelling of 'signalled' -> 'signaled' and assign extension
+ number for publication.
+
+ #6 (June 5, 2012) Acorn Pooley
+ - Add error if stream is in state EGL_STREAM_STATE_CREATED_KHR
+ or EGL_STREAM_STATE_DISCONNECTED_KHR when sync is created.
+
+ #5 (September 30, 2011) Acorn Pooley
+ - Change eglCreateStreamSyncKHR to eglCreateStreamSyncNV
+
+ #4 (September 28, 2011) Acorn Pooley
+ - Add issue 2
+ - Fix return type of eglCreateStreamSyncNV
+
+ #3 (September 27, 2011) Acorn Pooley
+ - Assign enum values (bug 8064)
+
+ #2 (July 6, 2011) Acorn Pooley
+ - Rename EGL_KHR_image_stream to EGL_KHR_stream
+
+ #1 (June 30, 2011) Acorn Pooley
+ - Initial draft
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_sync.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_sync.txt
new file mode 100644
index 0000000..0bf0077
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_sync.txt
@@ -0,0 +1,554 @@
+Name
+
+ NV_sync
+
+Name Strings
+
+ EGL_NV_sync
+
+Contributors
+
+ Gary King
+ Gregory Prisament
+ Acorn Pooley
+ Jon Leech
+
+Contacts
+
+ Acorn Pooley, NVIDIA Corporation (apooley 'at' nvidia.com)
+ Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 7, July 27, 2010
+
+Number
+
+ EGL Extension #19
+
+Dependencies
+
+ Requires EGL 1.1
+
+ This extension is written against the wording of the EGL 1.2
+ Specification.
+
+Overview
+
+ This extension introduces the concept of "sync objects" into EGL.
+ Sync objects are a synchronization primitive, representing events
+ whose completion can be tested or waited upon. This extension
+ borrows heavily from the GL_ARB_sync extension, and like that
+ extension, introduces only a single type of sync object, the
+ "fence sync object." Additional types of sync objects may be
+ introduced in later extensions.
+
+ Fence sync objects have corresponding fences, which are inserted
+ into client API command streams. A sync object can be queried
+ for a given condition, such as completion of the corresponding
+ fence. Fence completion allows applications to request a partial
+ Finish of an API command stream, wherein all commands issued in
+ a particular client API context will be forced to complete before
+ control is returned to the calling thread.
+
+ This extension is nearly identical to NVIDIA's original proposal for the
+ EGL_KHR_sync extension, which some minor differences outlined in Issue 7
+ below.
+
+New Types
+
+ /*
+ * EGLSyncNV is an opaque handle to an EGL sync object
+ */
+ typedef void* EGLSyncNV;
+
+ /*
+ * EGLTimeNV is a 64-bit unsigned integer representing intervals in
+ * nanoseconds (unadjusted standard time). A type defined in the
+ * standard Khronos <KHR/khrplatform.h> header is used instead of
+ * a less-portable native C type.
+ */
+ #include <KHR/khrplatform.h>
+ typedef khronos_utime_nanoseconds_t EGLTimeNV;
+
+New Procedures and Functions
+
+ EGLSyncNV eglCreateFenceSyncNV( EGLDisplay dpy,
+ EGLenum condition,
+ const EGLint *attrib_list );
+
+ EGLBoolean eglDestroySyncNV( EGLSyncNV sync );
+
+ EGLBoolean eglFenceNV( EGLSyncNV sync );
+
+ EGLint eglClientWaitSyncNV( EGLSyncNV sync,
+ EGLint flags, EGLTimeNV timeout );
+
+ EGLBoolean eglSignalSyncNV( EGLSyncNV sync, EGLenum mode );
+
+ EGLBoolean eglGetSyncAttribNV( EGLSyncNV sync, EGLint attribute,
+ EGLint *value );
+
+
+New Tokens
+
+ Accepted in the <condition> parameter of eglCreateFenceSyncNV, and
+ returned in <value> when eglGetSyncAttribNV is called with <attribute>
+ EGL_SYNC_CONDITION_NV:
+
+ EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6
+
+ Accepted as an attribute name in the <attrib_list> parameter of
+ eglCreateFenceSyncNV, and by the <attribute> parameter of
+ eglGetSyncAttribNV:
+
+ EGL_SYNC_STATUS_NV 0x30E7
+
+ Accepted as an attribute value in the <attrib_list> parameter of
+ eglCreateFenceSyncNV for the EGL_SYNC_STATUS_NV attribute, by
+ the <mode> parameter of eglSignalSyncNV and returned in <value>
+ when eglGetSyncAttribNV is called with <attribute>
+ EGL_SYNC_STATUS_NV:
+
+ EGL_SIGNALED_NV 0x30E8
+ EGL_UNSIGNALED_NV 0x30E9
+
+ Accepted in the <flags> parameter of eglClientWaitSyncNV:
+
+ EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001
+
+ Accepted in the <timeout> parameter of eglClientWaitSyncNV:
+
+ EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull
+
+ Returned by eglClientWaitSyncNV:
+
+ EGL_ALREADY_SIGNALED_NV 0x30EA
+ EGL_TIMEOUT_EXPIRED_NV 0x30EB
+ EGL_CONDITION_SATISFIED_NV 0x30EC
+
+ Accepted in the <attribute> parameter of eglGetSyncAttribNV:
+
+ EGL_SYNC_TYPE_NV 0x30ED
+ EGL_SYNC_CONDITION_NV 0x30EE
+
+ Returned in <value> when eglGetSyncAttribNV is called with
+ <attribute> EGL_SYNC_TYPE_NV:
+
+ EGL_SYNC_FENCE_NV 0x30EF
+
+ Returned by eglCreateFenceSyncNV in the event of an error:
+
+ EGL_NO_SYNC_NV ((EGLSyncNV)0)
+
+
+
+Changes to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors)
+
+ Add a new subsection at the end of Section 3.8, page 43
+ (Synchronization Primitives)
+
+ "3.8.1 Sync Objects
+ In addition to the aforementioned synchronization functions, which
+ provide an efficient means of serializing client and native API
+ operations within a thread, "Sync Objects" are provided to enable
+ synchronization of client API operations between threads and/or between
+ API contexts. Sync objects may be tested or waited upon by application
+ threads.
+
+ Sync objects have a status with two possible states: <signaled> and
+ <unsignaled>. Events may be associated with a sync object. When an
+ event is initially associated with a sync object, the object is
+ unsignaled (its status is set to unsignaled). Once a sync object has
+ been created, EGL may be asked to wait for a sync object to become
+ signaled. Sync objects may also be signaled or unsignaled explicitly.
+ Sync objects are associated with an EGLDisplay; this association
+ is made when the sync object is created.
+
+ Only one type of sync object is defined, the fence sync object, whose
+ associated events are triggered by fence commands which are inserted
+ into the command streams of client API contexts. Fence sync objects may
+ be used to wait for partial completion of a client API command stream,
+ as a more flexible form of glFinish / vgFinish.
+
+ The command
+
+ EGLSyncNV eglCreateFenceSyncNV( EGLDisplay dpy,
+ enum condition,
+ EGLint *attrib_list );
+
+ creates a fence sync object for the specified display <dpy> and returns
+ a handle to the new object. The sync object is assigned a type of
+ EGL_SYNC_FENCE_NV. <condition> must be
+ EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV. <attrib_list> is an attribute-value
+ list specifying other attributes of the sync object, terminated by an
+ attribute entry EGL_NONE. Attributes not specified in the list will be
+ assigned their default values. Attributes accepted by fence sync objects
+ are listed in table 3.aa
+
+ Attribute Name Attribute Value(s) Default Value
+ --------------- ------------------------------------ --------------
+ EGL_SYNC_STATUS_NV EGL_SIGNALED_NV, EGL_UNSIGNALED_NV EGL_SIGNALED_NV
+
+ Table 3.aa Fence Sync Object Attributes
+
+ * If <dpy> is not the name of a valid, initialized EGLDisplay,
+ EGL_NO_SYNC_NV is returned and an EGL_BAD_DISPLAY error is generated.
+
+ * If <condition> is not EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV,
+ EGL_NO_SYNC_NV is returned and an EGL_BAD_PARAMETER error is generated.
+
+ * If any attribute not appearing in table 3.?? is specified in
+ <attrib_list>, EGL_NO_SYNC_NV is returned and an EGL_BAD_ATTRIBUTE error is
+ generated.
+
+
+ The command
+
+ EGLBoolean eglFenceNV( EGLSyncNV sync );
+
+ inserts a fence command into the command stream of the bound API's current
+ context (i.e., the context returned by eglGetCurrentContext), and
+ assoicates it with sync object <sync>. <sync> must be a sync object
+ created with eglCreateFenceSyncNV, and the display associated with <sync>
+ must match the current display (i.e., the display returned by
+ eglGetCurrentDisplay). Calling eglFenceNV unsignals <sync>.
+
+ When the condition of <sync> is satisfied by the fence command, <sync> is
+ signaled by the associated client API context, causing any
+ eglClientWaitSyncNV commands (see below) blocking on <sync> to unblock.
+ The condition EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 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. <sync>
+ 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.
+
+ Multiple fence commands may be inserted in any client API command stream
+ for a single sync object. The sync object is unsignaled every time a new
+ fence command is issued, and signaled every time a previous fence command
+ completes, so its status is indeterminate until all fence commands
+ associated with the sync object have completed. However, each time a fence
+ command completes (signaling the sync object), at least one
+ eglClientWaitSyncNV command blocking on that sync object will unblock.
+
+ EGL_TRUE is returned upon successful insertion of the fence command.
+
+ * If <sync> is not a valid sync object with a type of EGL_SYNC_FENCE_NV,
+ EGL_FALSE is returned and an EGL_BAD_PARAMETER error is generated.
+
+ * If the display associated with <sync> does not match the current
+ display, EGL_FALSE is returned and an EGL_BAD_MATCH error is generated.
+
+ * If no context is current for the bound API (i.e., eglGetCurrentContext
+ returns EGL_NO_CONTEXT), EGL_FALSE is returned and an EGL_BAD_MATCH error
+ is generated.
+
+ The command
+
+ EGLint eglClientWaitSyncNV( EGLSyncNV sync, uint flags,
+ EGLTimeNV timeout );
+
+ blocks the calling thread until the specified sync object <sync> is
+ signaled, or until a specified timeout value expires. If <sync> is
+ signaled at the time eglClientWaitSyncNV is called then eglClientWaitSyncNV
+ will not block. If <sync> is unsignaled at the time eglClientWaitSyncNV is
+ called then eglClientWaitSyncNV will wait up to <timeout> nanoseconds for
+ <sync> to become signaled.
+
+ If the value of <timeout> is zero, then eglClientWaitSyncNV will never
+ block and simply tests the current status of <sync>. If the value of
+ <timeout> is the special value EGL_FOREVER_NV then eglClientWaitSyncNV
+ does not time out.
+
+ eglClientWaitSyncNV returns one of three status values describing the
+ reason for returning. A return value of EGL_ALREADY_SIGNALED_NV will
+ always be returned if <sync> was signaled when eglClientWaitSyncNV was
+ called, even if <timeout> is zero. A return value of
+ EGL_TIMEOUT_EXPIRED_NV indicates that indicates that the specified
+ timeout period expired before <sync> was signaled. A return value of
+ EGL_CONDITION_SATISFIED_NV indicates that <sync> was signaled before
+ the timeout expired.
+
+ Note that a fence sync object can be in the signaled state because one of
+ three events has occured:
+
+ 1. A previously inserte fence has completed and has signaled the sync
+ object.
+ 2. The sync object was created. Creation of a sync object sets it in the
+ signaled state by default, unless the attribute EGL_SYNC_STATUS_NV
+ is set to EGL_UNSIGNALED_NV in the attribute list.
+ 3. The sync object was signaled by a previously issued
+ eglSignalSyncNV(sync, EGL_SIGNALED_NV) command.
+
+ If the sync object being blocked upon will not be signaled in finite time
+ (for example, by an associated fence command issued previously, but not
+ yet flushed to the graphics pipeline), then eglClientWaitSyncNV may
+ wait forever. To help prevent this behavior (footnote1), if the
+ EGL_SYNC_FLUSH_COMMANDS_BIT_NV bit is set in <flags>, and <sync> is
+ unsignaled when eglClientWaitSyncNV is called, then the equivalent of
+ Flush() will be performed for the current API context (i.e., the context
+ returned by eglGetCurrentContext()) before blocking on <sync>. If no
+ context is current for the bound API, the EGL_SYNC_FLUSH_COMMANDS_BIT_NV
+ bit is ignored.
+
+ (footnote 1): The simple Flush behavior defined by
+ EGL_SYNC_FLUSH_COMMANDS_BIT_NV will not help when waiting for a fence
+ command issued in a different context's command stream. Applications
+ which block on a fence sync object must take additional steps to ensure
+ that the context from which the associated fence command was issued
+ has flushed that command to the graphics pipeline.
+
+ If a sync object is deleted when an eglClientWaitSyncNV is blocking on
+ that object, the behavior of eglClientWaitSyncNV is undefined. Some
+ possible behaviors are to return immediately, to wait for fence commands
+ associated with the deleted sync to complete, or to not return until the
+ timeout period expires.
+
+ * If <sync> is not a valid sync object, EGL_FALSE is returned and an
+ EGL_BAD_PARAMETER error is generated.
+
+
+ The command
+
+ EGLBoolean eglSignalSyncNV( EGLSyncNV sync, enum mode );
+
+ signals or unsignals the sync object <sync> by changing its status to
+ <mode>, which must be one of the values in table 3.bb. If, as a
+ result of calling eglSignalSyncNV, the status of <sync> transitions
+ from unsignaled to signaled, then at least one eglClientWaitSyncNV
+ commands blocking on <sync> will unblock.
+
+ Assuming no errors are generated, EGL_TRUE is returned.
+
+ Mode Effect
+ ------------------ -------------
+ EGL_SIGNALED_NV Set the status of <sync> to signaled
+ EGL_UNSIGNALED_NV Set the status of <sync> to unsignaled
+
+ Table 3.bb Modes Accepted by eglSignalSyncNV Command
+
+ * If <sync> is not a valid sync object, EGL_FALSE is returned and an
+ EGL_BAD_PARAMETER error is generated.
+
+
+ The command
+
+ EGLBoolean eglGetSyncAttribNV( EGLSyncNV sync, EGLint attribute,
+ EGLint *value );
+
+ is used to query attributes of the sync object <sync>. Legal values for
+ <attribute> depend on the type of sync object; these are listed in table 3.cc.
+ Assuming no errors are generated, EGL_TRUE is returned and the value of
+ the queried attribute is returned in <value>.
+
+ Attribute Description Supported Sync Objects
+ ----------------- ----------------------- ---------------------
+ EGL_SYNC_TYPE_NV Type of the sync object All
+ EGL_SYNC_STATUS_NV Status of the sync object All
+ EGL_SYNC_CONDITION_NV Signaling condition EGL_SYNC_FENCE_NV
+
+ * If <sync> is not a valid sync object, EGL_FALSE is returned and an
+ EGL_BAD_PARAMETER error is generated.
+
+ The command
+
+ EGLBoolean eglDestroySyncNV( EGLSyncNV sync );
+
+ is used to destroy an existing sync object. If any eglClientWaitSyncNV
+ commands are blocking on <sync> when eglDestroySyncNV is called, their
+ behavior is undefined. After calling eglDestroySyncNV, <sync> is no
+ longer a valid sync object. Assuming no errors are generated, EGL_TRUE
+ is returned.
+
+ * If <sync> is not a valid sync object, EGL_FALSE is returned and an
+ EGL_BAD_PARAMETER error is generated.
+
+Issues
+
+ 1. Explain the key choices made in this extension.
+
+ RESPONSE: This extension has been written to enable adoption to be as wide
+ as possible, and to behave as similarly as possible to synchronization
+ primitives available in desktop OpenGL (e.g., NV_fence, ARB_sync).
+
+ In the interest of enabling widespread adoption, this extension (following
+ the ARB_sync model) has foregone the inclusion of synchronization primitives
+ and synchronization tests which may be performed entirely inside client
+ API command streams, instead performing synchronization tests
+ (eglClientWaitSyncNV) inside the application & host CPU.
+
+ In the interest of maintaining similarity with previous synchronization
+ primitives, this extension attempts to copy the ARB_sync specification
+ wherever possible (both functionally and stylistically), only making
+ changes where needed to operate inside EGL (rather than a client API
+ context) and match EGL naming conventions.
+
+ 2. Why place this behavior in EGL, rather than in the client APIs?
+
+ RESPONSE: Ultimately, synchronization between multiple asynchronous client
+ API contexts (potentially executing in different threads) is a problem
+ which affects or will affect all EGL client APIs. Rather than creating
+ separate synchronization primitives in each of the client APIs (and then
+ wrapping them in an EGL container), in the interest of developer simplicity
+ & consistency this behavior is being placed inside EGL.
+
+ 3. What does this extension provide that can not be accomplished with the
+ existing, more efficient eglWaitClient and eglWaitNative API functions?
+
+ RESPONSE: eglWaitClient and eglWaitNative may be implemented in extremely
+ lightweight manners, in some cases not blocking the calling thread at
+ all; however, they can not be used to synchronize between client API
+ contexts and native APIs executing in separate threads (or simply between
+ client API contexts executing in separate threads), such as between a
+ thread with an active OpenGL context and a second thread performing
+ video decode.
+
+ 4. What does this extension provide that could not be accomplished with
+ native platform synchronization primitives and the existing client API
+ Finish commands?
+
+ RESPONSE: This extension provides a lighter-weight mechanism for
+ synchronizing an application with client API command streams than the
+ all-or-nothing Finish commands, enabling applications to block until
+ a subset of issued client API commands have completed.
+
+ 5. Should integration with native platform synchronization objects be
+ included in this extension, or reserved for future (platform-specific)
+ extensions?
+
+ RESOLVED: Integration with native platform synchronization objects should
+ not be part of this extension, but can be added as future layered
+ extensions if needed. These layered extensions can be platform-specific,
+ or perhaps OpenKODE based.
+
+ Originally, this extension included the ability to create native platform
+ synchronization objects from EGLSync objects. This feature was removed
+ for a few reasons:
+
+ i) The proposed mechanism suggested mapping EGLSync objects to pthread
+ conditional variables on platforms with pthread support. However,
+ pthread conditional variables require an associated mutex and there
+ was no mechanism to relay this associated mutex to the application.
+
+ ii) On certain platforms support for converting to native platform
+ synchronization objects adds great complexity to the implementation.
+
+ iii) Now that OpenKODE is more mature, it would be better to allow
+ conversion from EGLSyncNV objects to OpenKODE synchronization
+ primitives rather than platform-specific ones. We suggest that this
+ functionality, if needed, be added as a layered extension instead of
+ being included here. This way, EGL_NV_sync remains minimal and easy
+ to implement on a variety of platforms.
+
+ 6. Please provide a more detailed description of how ClientWaitSyncNV
+ behaves.
+
+ RESPONSE: Issue 18 in the ARB_sync specification includes a very
+ detailed description of ClientWaitSyncARB (the ARB_sync equivalent of
+ ClientWaitSyncNV). This is provided (unmodified) below:
+
+ Does ClientWaitSyncARB wait on an event, or on sync object
+ status? What is the meaning of sync object status?
+
+ RESOLVED: ClientWaitSyncARB blocks until the status of the sync
+ object transitions to the signaled state. Sync object status is
+ either signaled or unsignaled. More detailed rules describing
+ signalling follow (these need to be imbedded into the actual
+ spec language):
+
+ R1) A sync object has two possible status values: signaled or
+ unsignaled (corresponding to SYNC_STATUS_ARB values of
+ SIGNALED_ARB or UNSIGNALED_ARB, respectively).
+
+ R2) When created, the state of the sync object is signaled by
+ default, but may be explicitly set to unsignaled.
+
+ R3) A fence command is inserted into a command stream. A sync
+ object is not.
+
+ R4) When a fence command is inserted into a command stream using
+ FenceARB(), the status of the sync object associated with
+ that fence command is set to the unsignaled state.
+
+ R5) Multiple fence commands can be associated with the same sync
+ object.
+
+ R6) A fence command, once its condition has been met, will set
+ its associated sync object to the signaled state. The only
+ condition currently supported is
+ SYNC_PRIOR_COMMANDS_COMPLETE_ARB.
+
+ R7) A wait function, such as ClientWaitSyncARB, waits on a sync
+ object, not on a fence.
+
+ R8) A wait function, such as ClientWaitSyncARB, called on a sync
+ object in the unsignaled state will block. It unblocks
+ (note, not "returns to the application") when the sync
+ object transitions to the signaled state.
+
+ Some of the behaviors resulting from these rules are:
+
+ B1) Calling ClientWaitSyncARB with a timeout of 0 will return
+ TRUE if the sync object is in the signaled state. Note that
+ calling ClientWaitSyncARB with a timeout of 0 in a loop can
+ miss state transitions.
+ B2) Stacking fences is allowed. Each fence, once its condition
+ has been met, will set its associated sync object to the
+ signaled state. If the sync object is already in the
+ signaled state, it stays in that state.
+ B3) ClientWaitSyncARB could take a timeout parameter and return
+ a boolean. If the timeout period has expired,
+ ClientWaitSyncARB will unblock and return FALSE to the
+ caller. If ClientWaitSyncARB unblocks because the sync
+ object it was waiting on is in the signaled state, it will
+ return TRUE.
+ B4) We could define a FinishMultipleSync() command that will
+ unblock once all (or any) of the sync objects passed to it
+ are in the signaled state (also see issue 12).
+ B5) We could define a set/resetSyncObject function to manually
+ set the sync object in the signaled or unsignaled state.
+ This makes it easy for apps to reuse a sync object in the
+ multi-context case, so the sync object can be blocked upon
+ before a fence command is associated with it in the command
+ stream.
+ B6) We could define an API to convert a sync object into an OS
+ specific synchronization primitive (Events on Windows, file
+ descriptors or X-events or semaphores on Unix?)
+
+ 7) How does this extension differ from (relate to) EGL_KHR_sync:
+
+ RESPONSE:
+ As of the time of writing this, the EGL_KHR_sync specification has not
+ been finalized by Khronos and continues to undergo revision. However,
+ NVIDIA has the functionality outlined in this specification implemented
+ and has decided to make it available to developers immediately.
+
+ For the most part, EGL_KHR_sync is identical to revision 5 of EGL_KHR_sync
+ with the following changes:
+
+ a) Enum values are different
+ b) EGLTimeNV is unsigned long long instead of uint64_t.
+ c) Behaviour when there are multiple waiting threads is undefined.
+
+Revision History
+
+#7 (Jon Leech, July 27, 2010)
+ - Redefine EGLTimeNV type to use a typedef from the standard
+ Khronos headers instead of a native C type, for portability.
+#6 (Greg Prisament, May 28, 2009)
+ - Branch spec & turn it into an _NV extension.
+#5 (Greg Prisament, July 22, 2008)
+ - Removed NativeSyncKHR, CreateNativeSyncKHR, and corresponding wording.
+ - Correct EGLuint to EGLint (EGLuint doesn't exist).
+#4 (Jon Leech, November 20, 2007)
+ - Corrected 'enum' to 'EGLenum' in prototypes.
+#3 (Jon Leech, April 5, 2007)
+ - Added draft Status and TBD Number
+#2 (November 27, 2006)
+ - Changed OES token to KHR
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_system_time.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_system_time.txt
new file mode 100644
index 0000000..2f45147
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/NV/EGL_NV_system_time.txt
@@ -0,0 +1,99 @@
+Name
+
+ NV_system_time
+
+Name Strings
+
+ EGL_NV_system_time
+
+Contact
+
+ Jason Allen, NVIDIA Corporation (jallen 'at' nvidia.com)
+
+Status
+
+ TBD
+
+Version
+
+ Version 1, July 7, 2011
+
+Number
+
+ EGL Extension #31
+
+Dependencies
+
+ Requires EGL 1.2
+
+Overview
+
+ This extension exposes an alternative method of querying the system time
+ from the driver instead of the operating system.
+
+Issues
+
+ Add 64 bit types?
+
+ Yes, EGL doesn't support any 64 bit types so this extension adds int64
+ and uint64 types.
+
+New Types
+
+ EGLint64NV: 64bit signed integer
+ EGLuint64NV: 64bit unsigned integer
+
+New Procedures and Functions
+
+ EGLuint64NV eglGetSystemTimeFrequencyNV(void);
+ EGLuint64NV eglGetSystemTimeNV(void);
+
+New Tokens
+
+ None
+
+Description
+
+ The command:
+
+ EGLuint64NV eglGetSystemTimeFrequencyNV(void);
+
+ returns the frequency of the system timer, in counts per second. The
+ frequency will not change while the system is running.
+
+ The command:
+
+ EGLuint64NV eglGetSystemTimeNV(void);
+
+ returns the current value of the system timer. The system time in seconds
+ can be calculated by dividing the returned value by the frequency returned
+ by the eglGetSystemTimeFrequencyNV command.
+
+ Multiple calls to eglGetSystemTimeNV may return the same values, applications
+ need to be careful to avoid divide by zero errors when using the interval
+ calculated from successive eglGetSystemTimeNV calls.
+
+Usage Example
+
+ EGLuint64NV frequency = eglGetSystemTimeFrequencyNV();
+
+ loop
+ {
+ EGLuint64NV start = eglGetSystemTimeNV() / frequency;
+
+ // draw
+
+ EGLuint64NV end = eglGetSystemTimeNV() / frequency;
+
+ EGLuint64NV interval = end - start;
+ if (interval > 0)
+ update_animation(interval);
+
+ eglSwapBuffers(dpy, surface);
+ }
+
+Revision History
+
+#1 (Jon Leech, 2011/07/07)
+ - Add missing fields, assign extension number, and publish in the registry.
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/TIZEN/EGL_TIZEN_image_native_buffer.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/TIZEN/EGL_TIZEN_image_native_buffer.txt
new file mode 100644
index 0000000..72710b7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/TIZEN/EGL_TIZEN_image_native_buffer.txt
@@ -0,0 +1,114 @@
+Name
+
+ TIZEN_image_native_buffer
+
+Name Strings
+
+ EGL_TIZEN_image_native_buffer
+
+Contributors
+
+ Dongyeon Kim
+ Minsu Han
+ Inpyo Kang
+ Zeeshan Anwar
+
+Contact
+
+ Dongyeon Kim, Samsung Electronics (dy5.kim 'at' samsung.com)
+ Zeeshan Anwar, Samsung Electronics (z.anwar 'at' samsung.com)
+
+Status
+
+ This extension is obsolete and has been replaced by
+ EGL_TIZEN_image_native_buffer
+
+Version
+
+ Version 2, July 23, 2014
+
+Number
+
+ EGL Extension #76
+
+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 a Tizen native buffer (struct
+ native_buffer) as an EGLImage source.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted by the <target> parameter of eglCreateImageKHR:
+
+ EGL_NATIVE_BUFFER_TIZEN 0x32A0
+
+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 <target> are listed in Table aaa, below.
+
+ +-------------------------+--------------------------------------+
+ | <target> | Notes |
+ +-------------------------+--------------------------------------+
+ | EGL_NATIVE_BUFFER_TIZEN | Used for Tizen native_buffer objects |
+ +-------------------------+--------------------------------------+
+ Table aaa. Legal values for eglCreateImageKHR <target> parameter
+
+ ...
+
+ If <target> is EGL_NATIVE_BUFFER_TIZEN, <dpy> must be a valid display,
+ <ctx> must be EGL_NO_CONTEXT, <buffer> must be a pointer to a valid
+ native_buffer 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 <target> is EGL_NATIVE_BUFFER_TIZEN and <buffer> is not a
+ pointer to a valid native_buffer, the error EGL_BAD_PARAMETER
+ is generated.
+
+ * If <target> is EGL_NATIVE_BUFFER_TIZEN and <ctx> is not
+ EGL_NO_CONTEXT, the error EGL_BAD_CONTEXT is generated.
+
+ * If <target> is EGL_NATIVE_BUFFER_TIZEN and <buffer> 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 native_buffer
+ properties implementations are required to support?
+
+ RESOLVED: No.
+
+ The requirements have evolved over time and will continue to change with
+ future Tizen releases. The minimum requirements for a given Tizen
+ version should be documented by that version.
+
+
+Revision History
+
+#2 (Zeeshan Anwar, July 01, 2014)
+ - Assigned the value to EGL_NATIVE_BUFFER_TIZEN
+#1 (Dongyeon Kim, June 05, 2013)
+ - Initial draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/TIZEN/EGL_TIZEN_image_native_surface.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/TIZEN/EGL_TIZEN_image_native_surface.txt
new file mode 100644
index 0000000..3d8ed3c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/TIZEN/EGL_TIZEN_image_native_surface.txt
@@ -0,0 +1,121 @@
+Name
+
+ TIZEN_image_native_surface
+
+Name Strings
+
+ EGL_TIZEN_image_native_surface
+
+Contributors
+
+ Dongyeon Kim
+ Zeeshan Anwar
+ Minsu Han
+ Inpyo Kang
+
+Contact
+
+ Dongyeon Kim, Samsung Electronics (dy5.kim 'at' samsung.com)
+ Zeeshan Anwar, Samsung Electronics (z.anwar 'at' samsung.com)
+
+Status
+
+ Complete
+
+Version
+
+ Version 3, August 13, 2014
+
+Number
+
+ EGL Extension #77
+
+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
+
+ Tizen Buffer Manager (TBM) is a user space, generic memory
+ management framework to create and share memory buffers between
+ different system components. This extension enables using a Tizen
+ Buffer Manager (TBM) surface object (struct tbm_surface_h) as an
+ EGLImage source.
+
+New Types
+
+ None.
+
+New Procedures and Functions
+
+ None.
+
+New Tokens
+
+ Accepted by the <target> parameter of eglCreateImageKHR:
+
+ EGL_NATIVE_SURFACE_TIZEN 0x32A1
+
+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 <target> are listed in Table aaa, below.
+
+ +---------------------------+------------------------------------+
+ | <target> | Notes |
+ +---------------------------+------------------------------------+
+ | EGL_NATIVE_SURFACE_TIZEN | Used for Tizen tbm_surface_h objects |
+ +---------------------------+------------------------------------+
+ Table aaa. Legal values for eglCreateImageKHR <target> parameter
+
+ ...
+
+ If <target> is EGL_NATIVE_SURFACE_TIZEN, <dpy> must be a valid
+ display, <ctx> must be EGL_NO_CONTEXT, <buffer> must be a pointer
+ to a valid tbm_surface_h 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 <target> is EGL_NATIVE_SURFACE_TIZEN and <buffer> is not
+ a pointer to a valid tbm_surface_h, the error EGL_BAD_PARAMETER
+ is generated.
+
+ * If <target> is EGL_NATIVE_SURFACE_TIZEN and <ctx> is not
+ EGL_NO_CONTEXT, the error EGL_BAD_CONTEXT is generated.
+
+ * If <target> is EGL_NATIVE_SURFACE_TIZEN and <buffer> 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 tbm_surface_h
+ properties implementations are required to support?
+
+ RESOLVED: No.
+
+ The requirements have evolved over time and will continue to change
+ with future Tizen releases. The minimum requirements for a given
+ Tizen version should be documented by that version.
+
+
+Revision History
+#3 (Zeeshan Anwar, August 13, 2014)
+ - Changed tbm_surface to tbm_surface_h
+
+#2 (Zeeshan Anwar, July 23, 2014)
+ - Changed extension name and target name
+ - Assigned value to EGL_NATIVE_SURFACE_TIZEN
+
+#1 (Zeeshan Anwar, July 18, 2014)
+ - Initial draft.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/WL/EGL_WL_bind_wayland_display.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/WL/EGL_WL_bind_wayland_display.txt
new file mode 100644
index 0000000..2b2dd59
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/WL/EGL_WL_bind_wayland_display.txt
@@ -0,0 +1,217 @@
+Name
+
+ WL_bind_wayland_display
+
+Name Strings
+
+ EGL_WL_bind_wayland_display
+
+Contact
+
+ Kristian Høgsberg <krh@bitplanet.net>
+ Benjamin Franzke <benjaminfranzke@googlemail.com>
+
+Status
+
+ Complete
+
+Version
+
+ Version 6, July 14, 2017
+
+Number
+
+ EGL Extension #136
+
+Dependencies
+
+ Requires EGL 1.4 or later. This extension is written against the
+ wording of the EGL 1.4 specification.
+
+ EGL_KHR_image_base is required.
+
+Overview
+
+ This extension provides entry points for binding and unbinding the
+ wl_display of a Wayland compositor to an EGLDisplay. Binding a
+ wl_display means that the EGL implementation should provide one or
+ more interfaces in the Wayland protocol to allow clients to create
+ wl_buffer objects. On the server side, this extension also
+ provides a new target for eglCreateImageKHR, to create an EGLImage
+ from a wl_buffer.
+
+ Adding an implementation-specific Wayland interface, allows the
+ EGL implementation to define specific wayland requests and events,
+ needed for buffer sharing in an EGL Wayland platform.
+
+IP Status
+
+ Open-source; freely implementable.
+
+New Procedures and Functions
+
+ 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);
+
+New Tokens
+
+ Accepted as <target> in eglCreateImageKHR
+
+ EGL_WAYLAND_BUFFER_WL 0x31D5
+
+ Accepted in the <attrib_list> parameter of eglCreateImageKHR:
+
+ EGL_WAYLAND_PLANE_WL 0x31D6
+
+ Possible values for EGL_TEXTURE_FORMAT:
+
+ EGL_TEXTURE_Y_U_V_WL 0x31D7
+ EGL_TEXTURE_Y_UV_WL 0x31D8
+ EGL_TEXTURE_Y_XUXV_WL 0x31D9
+ EGL_TEXTURE_EXTERNAL_WL 0x31DA
+
+ Accepted in the <attribute> parameter of eglQueryWaylandBufferWL:
+
+ EGL_TEXTURE_FORMAT 0x3080
+ EGL_WAYLAND_Y_INVERTED_WL 0x31DB
+
+
+Additions to the EGL 1.4 Specification:
+
+ To bind a server-side wl_display to an EGLDisplay, call
+
+ EGLBoolean eglBindWaylandDisplayWL(EGLDisplay dpy,
+ struct wl_display *display);
+
+ To unbind a server-side wl_display from an EGLDisplay, call
+
+ EGLBoolean eglUnbindWaylandDisplayWL(EGLDisplay dpy,
+ struct wl_display *display);
+
+ eglBindWaylandDisplayWL returns EGL_FALSE when there is already a
+ wl_display bound to EGLDisplay otherwise EGL_TRUE.
+
+ eglUnbindWaylandDisplayWL returns EGL_FALSE when there is no
+ wl_display bound to the EGLDisplay currently otherwise EGL_TRUE.
+
+ XXXXXXXX
+ EGL_WAYLAND_BUFFER_WL
+
+
+ To query attributes of a wl_buffer created by the EGL
+ implementation installed by eglBindWaylandDisplayWL, call:
+
+ EGLBoolean eglQueryWaylandBufferWL(EGLDisplay dpy,
+ struct wl_resource *buffer,
+ EGLint attribute,
+ EGLint *value);
+
+ A wl_buffer can have several planes, typically in case of planar
+ YUV formats. Depending on the exact YUV format in use, the
+ compositor will have to create one or more EGLImages for the
+ various planes. The eglQueryWaylandBufferWL function should be
+ used to first query the wl_buffer texture format using
+ EGL_TEXTURE_FORMAT as the attribute. If the wl_buffer object is
+ not an EGL wl_buffer (wl_shm and other wayland extensions can
+ create wl_buffer objects of different types), this query will
+ return EGL_FALSE. In that case the wl_buffer can not be used with
+ EGL and the compositor should have another way to get the buffer
+ contents.
+
+ If eglQueryWaylandBufferWL succeeds, the returned value will be
+ one of EGL_TEXTURE_RGB, EGL_TEXTURE_RGBA, EGL_TEXTURE_Y_U_V_WL,
+ EGL_TEXTURE_Y_UV_WL, EGL_TEXTURE_Y_XUXV_WL. The value returned
+ describes how many EGLImages must be used, which components will
+ be sampled from each EGLImage and how they map to rgba components
+ in the shader. The naming conventions separates planes by _ and
+ within each plane, the order or R, G, B, A, Y, U, and V indicates
+ how those components map to the rgba value returned by the
+ sampler. X indicates that the corresponding component in the rgba
+ value isn't used.
+
+ RGB and RGBA buffer types:
+
+ EGL_TEXTURE_RGB
+ One plane, samples RGB from the texture to rgb in the
+ shader. Alpha channel is not valid.
+
+ EGL_TEXTURE_RGBA
+ One plane, samples RGBA from the texture to rgba in the
+ shader.
+
+ YUV buffer types:
+
+ EGL_TEXTURE_Y_U_V_WL
+ Three planes, samples Y from the first plane to r in
+ the shader, U from the second plane to r, and V from
+ the third plane to r.
+
+ EGL_TEXTURE_Y_UV_WL
+ Two planes, samples Y from the first plane to r in
+ the shader, U and V from the second plane to rg.
+
+ EGL_TEXTURE_Y_XUXV_WL
+ Two planes, samples Y from the first plane to r in
+ the shader, U and V from the second plane to g and a.
+
+ EGL_TEXTURE_EXTERNAL_WL
+ Treated as a single plane texture, but sampled with
+ samplerExternalOES according to OES_EGL_image_external
+
+ After querying the wl_buffer layout, create EGLImages for the
+ planes by calling eglCreateImageKHR with wl_buffer as
+ EGLClientBuffer, EGL_WAYLAND_BUFFER_WL as the target, NULL
+ context. If no attributes are given, an EGLImage will be created
+ for the first plane. For multi-planar buffers, specify the plane
+ to create the EGLImage for by using the EGL_WAYLAND_PLANE_WL
+ attribute. The value of the attribute is the index of the plane,
+ as defined by the buffer format. Writing to an EGLImage created
+ from a wl_buffer in any way (such as glTexImage2D, binding the
+ EGLImage as a renderbuffer etc) will result in undefined behavior.
+
+ Further, eglQueryWaylandBufferWL accepts attributes EGL_WIDTH and
+ EGL_HEIGHT to query the width and height of the wl_buffer.
+
+ Also, eglQueryWaylandBufferWL may accept
+ EGL_WAYLAND_Y_INVERTED_WL attribute to query orientation of
+ wl_buffer. If EGL_WAYLAND_Y_INVERTED_WL is supported
+ eglQueryWaylandBufferWL returns EGL_TRUE and value is a boolean
+ that tells if wl_buffer is y-inverted or not. If
+ EGL_WAYLAND_Y_INVERTED_WL is not supported
+ eglQueryWaylandBufferWL returns EGL_FALSE, in that case
+ wl_buffer should be treated as if value of
+ EGL_WAYLAND_Y_INVERTED_WL was EGL_TRUE.
+
+Issues
+
+Revision History
+
+ Version 1, March 1, 2011
+ Initial draft (Benjamin Franzke)
+ Version 2, July 5, 2012
+ Add EGL_WAYLAND_PLANE_WL attribute to allow creating an EGLImage
+ for different planes of planar buffer. (Kristian Høgsberg)
+ Version 3, July 10, 2012
+ Add eglQueryWaylandBufferWL and the various buffer
+ formats. (Kristian Høgsberg)
+ Version 4, July 19, 2012
+ Use EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, and EGL_TEXTURE_RGBA,
+ and just define the new YUV texture formats. Add support for
+ EGL_WIDTH and EGL_HEIGHT in the query attributes (Kristian Høgsberg)
+ Version 5, July 16, 2013
+ Change eglQueryWaylandBufferWL to take a resource pointer to the
+ buffer instead of a pointer to a struct wl_buffer, as the latter has
+ been deprecated. (Ander Conselvan de Oliveira)
+ Version 6, September 16, 2013
+ Add EGL_WAYLAND_Y_INVERTED_WL attribute to allow specifying
+ wl_buffer's orientation.
+ Version 7, July 14, 2017
+ Add EGL_WAYLAND_BUFFER_WL EGLImage target. Reword for inclusion in
+ Khronos registry.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/extensions/WL/EGL_WL_create_wayland_buffer_from_image.txt b/engine-ocean/External/glew/auto/EGL-Registry/extensions/WL/EGL_WL_create_wayland_buffer_from_image.txt
new file mode 100644
index 0000000..8395cae
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/extensions/WL/EGL_WL_create_wayland_buffer_from_image.txt
@@ -0,0 +1,101 @@
+Name
+
+ WL_create_wayland_buffer_from_image
+
+Name Strings
+
+ EGL_WL_create_wayland_buffer_from_image
+
+Contributors
+
+ Neil Roberts
+ Axel Davy
+ Daniel Stone
+
+Contact
+
+ Neil Roberts <neil.s.roberts@intel.com>
+
+Status
+
+ Complete
+
+Version
+
+ Version 2, October 25, 2013
+
+Number
+
+ EGL Extension #137
+
+Dependencies
+
+ Requires EGL 1.4 or later. This extension is written against the
+ wording of the EGL 1.4 specification.
+
+ EGL_KHR_base_image is required.
+
+Overview
+
+ This extension provides an entry point to create a wl_buffer which shares
+ its contents with a given EGLImage. The expected use case for this is in a
+ nested Wayland compositor which is using subsurfaces to present buffers
+ from its clients. Using this extension it can attach the client buffers
+ directly to the subsurface without having to blit the contents into an
+ intermediate buffer. The compositing can then be done in the parent
+ compositor.
+
+ The nested compositor can create an EGLImage from a client buffer resource
+ using the existing WL_bind_wayland_display extension. It should also be
+ possible to create buffers using other types of images although there is
+ no expected use case for that.
+
+IP Status
+
+ Open-source; freely implementable.
+
+New Procedures and Functions
+
+ struct wl_buffer *eglCreateWaylandBufferFromImageWL(EGLDisplay dpy,
+ EGLImageKHR image);
+
+New Tokens
+
+ None.
+
+Additions to the EGL 1.4 Specification:
+
+ To create a client-side wl_buffer from an EGLImage call
+
+ struct wl_buffer *eglCreateWaylandBufferFromImageWL(EGLDisplay dpy,
+ EGLImageKHR image);
+
+ The returned buffer will share the contents with the given EGLImage. Any
+ updates to the image will also be updated in the wl_buffer. Typically the
+ EGLImage will be generated in a nested Wayland compositor using a buffer
+ resource from a client via the EGL_WL_bind_wayland_display extension.
+
+ If there was an error then the function will return NULL. In particular it
+ will generate EGL_BAD_MATCH if the implementation is not able to represent
+ the image as a wl_buffer. The possible reasons for this error are
+ implementation-dependant but may include problems such as an unsupported
+ format or tiling mode or that the buffer is in memory that is inaccessible
+ to the GPU that the given EGLDisplay is using.
+
+Issues
+
+ 1) Under what circumstances can the EGL_BAD_MATCH error be generated? Does
+ this include for example unsupported tiling modes?
+
+ RESOLVED: Yes, the EGL_BAD_MATCH error can be generated for any reason
+ which prevents the implementation from representing the image as a
+ wl_buffer. For example, these problems can be but are not limited to
+ unsupported tiling modes, inaccessible memory or an unsupported pixel
+ format.
+
+Revision History
+
+ Version 1, September 6, 2013
+ Initial draft (Neil Roberts)
+ Version 2, October 25, 2013
+ Added a note about more possible reasons for returning EGL_BAD_FORMAT.
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/index.php b/engine-ocean/External/glew/auto/EGL-Registry/index.php
new file mode 100644
index 0000000..c5522f5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/index.php
@@ -0,0 +1,382 @@
+<?php
+$static_title = 'Khronos EGL Registry';
+
+include_once("../../assets/static_pages/khr_page_top.php");
+?>
+
+<p> The EGL registry contains specifications of the core API; specifications
+ of Khronos- and vendor-approved EGL extensions; header files
+ corresponding to the specifications; an enumerant and function registry;
+ and other related documentation. </p>
+
+<h6> EGL Core API Specification and Headers </h6>
+
+<p> The current version of EGL is EGL 1.5. </p>
+
+<ul>
+<li> <a href="specs/eglspec.1.5.pdf"> EGL 1.5 Specification </a> (updated
+ August 27, 2014) and <a href="specs/eglspec.1.5.withchanges.pdf">
+ Specification with changes marked </a>. </li>
+<li> <a href="api/EGL/egl.h"> &lt;EGL/egl.h&gt; </a> for EGL 1.5. </li>
+<li> <a href="api/EGL/eglext.h"> &lt;EGL/eglext.h&gt; </a> for EGL 1.5. </li>
+<li> <a href="api/EGL/eglplatform.h"> &lt;EGL/eglplatform.h&gt; </a> for EGL
+ 1.5. </li>
+<li> <a href="api/KHR/khrplatform.h"> &lt;KHR/khrplatform.h&gt; </a>
+ (required by the current EGL and OpenGL ES headers). </li>
+</ul>
+
+<h6> Reference Pages, Technical Notes and White Papers </h6>
+
+<ul>
+<li> <a href="sdk/docs/man/"> EGL 1.5 reference pages </a>
+<li> <a href="specs/EGLTechNote0001.html">EGL Technical Note #1 - EGL 1.4 and
+ ancillary buffer preservation </a>
+</ul>
+
+<h6> Older Specifications </h6>
+
+<p> Older versions of the EGL Specification provided for reference. </p>
+
+<ul>
+<li> <a href="specs/eglspec.1.4.pdf"> EGL 1.4 Specification </a> and
+ <a href="specs/eglspec.1.4.withchanges.pdf"> Specification with changes
+ marked </a>. </li>
+<li> <a href="specs/eglspec.1.3.pdf"> EGL 1.3 Specification </a> </li>
+<li> <a href="specs/eglspec.1.2.pdf"> EGL 1.2 Specification </a>
+ and corresponding
+ <a href="api/1.2/EGL/egl.h"> &lt;EGL/egl.h&gt; </a>. </li>
+<li> <a href="specs/eglspec.1.1.pdf"> EGL 1.1 Specification </a>
+ and corresponding
+ <a href="api/1.1/EGL/egl.h"> &lt;EGL/egl.h&gt; </a>. </li>
+<li> <a href="specs/eglspec.1.0.pdf"> EGL 1.0 Specification </a>
+ and corresponding
+ <a href="api/1.0/EGL/egl.h"> &lt;EGL/egl.h&gt; </a>. </li>
+</ul>
+
+<h6> EGL XML API Registry </h6>
+
+<p> The database from which EGL enumerant ranges are reserved and the
+ <tt>EGL/egl.h</tt> and <tt>EGL/eglext.h</tt> headers are built is called
+ <a href="api/egl.xml"> egl.xml </a>. It uses an XML schema and
+ processing scripts shared with the OpenGL and OpenGL ES registries. If
+ you need to generate modified headers or modify egl.xml, clone the <a
+ href="https://github.com/KhronosGroup/EGL-Registry"> EGL-Registry </a>
+ git repository and see the <a href="README.md"> README.md </a>
+ file to get started. </p>
+
+
+<h6> <a name="otherextspecs"></a>
+ Extension Specifications</h6>
+<ol>
+<li value=1> <a href="extensions/KHR/EGL_KHR_config_attribs.txt">EGL_KHR_config_attribs</a>
+</li>
+<li value=2> <a href="extensions/KHR/EGL_KHR_lock_surface.txt">EGL_KHR_lock_surface</a>
+</li>
+<li value=3> <a href="extensions/KHR/EGL_KHR_image.txt">EGL_KHR_image</a>
+</li>
+<li value=4> <a href="extensions/KHR/EGL_KHR_vg_parent_image.txt">EGL_KHR_vg_parent_image</a>
+</li>
+<li value=5> <a href="extensions/KHR/EGL_KHR_gl_image.txt">EGL_KHR_gl_texture_2D_image</a>
+ <br> <a href="extensions/KHR/EGL_KHR_gl_image.txt">EGL_KHR_gl_texture_cubemap_image</a>
+ <br> <a href="extensions/KHR/EGL_KHR_gl_image.txt">EGL_KHR_gl_texture_3D_image</a>
+ <br> <a href="extensions/KHR/EGL_KHR_gl_image.txt">EGL_KHR_gl_renderbuffer_image</a>
+</li>
+<li value=6> <a href="extensions/KHR/EGL_KHR_reusable_sync.txt">EGL_KHR_reusable_sync</a>
+</li>
+<li value=8> <a href="extensions/KHR/EGL_KHR_image_base.txt">EGL_KHR_image_base</a>
+</li>
+<li value=9> <a href="extensions/KHR/EGL_KHR_image_pixmap.txt">EGL_KHR_image_pixmap</a>
+</li>
+<li value=10> <a href="extensions/IMG/EGL_IMG_context_priority.txt">EGL_IMG_context_priority</a>
+</li>
+<li value=14> <a href="extensions/NOK/EGL_NOK_texture_from_pixmap.txt">EGL_NOK_texture_from_pixmap</a>
+</li>
+<li value=16> <a href="extensions/KHR/EGL_KHR_lock_surface2.txt">EGL_KHR_lock_surface2</a>
+</li>
+<li value=17> <a href="extensions/NV/EGL_NV_coverage_sample.txt">EGL_NV_coverage_sample</a>
+</li>
+<li value=18> <a href="extensions/NV/EGL_NV_depth_nonlinear.txt">EGL_NV_depth_nonlinear</a>
+</li>
+<li value=19> <a href="extensions/NV/EGL_NV_sync.txt">EGL_NV_sync</a>
+</li>
+<li value=20> <a href="extensions/KHR/EGL_KHR_fence_sync.txt">EGL_KHR_fence_sync</a>
+</li>
+<li value=23> <a href="extensions/NOK/EGL_NOK_swap_region2.txt">EGL_NOK_swap_region2</a>
+</li>
+<li value=24> <a href="extensions/HI/EGL_HI_clientpixmap.txt">EGL_HI_clientpixmap</a>
+</li>
+<li value=25> <a href="extensions/HI/EGL_HI_colorformats.txt">EGL_HI_colorformats</a>
+</li>
+<li value=26> <a href="extensions/MESA/EGL_MESA_drm_image.txt">EGL_MESA_drm_image</a>
+</li>
+<li value=27> <a href="extensions/NV/EGL_NV_post_sub_buffer.txt">EGL_NV_post_sub_buffer</a>
+</li>
+<li value=28> <a href="extensions/ANGLE/EGL_ANGLE_query_surface_pointer.txt">EGL_ANGLE_query_surface_pointer</a>
+</li>
+<li value=29> <a href="extensions/ANGLE/EGL_ANGLE_surface_d3d_texture_2d_share_handle.txt">EGL_ANGLE_surface_d3d_texture_2d_share_handle</a>
+</li>
+<li value=30> <a href="extensions/NV/EGL_NV_coverage_sample_resolve.txt">EGL_NV_coverage_sample_resolve</a>
+</li>
+<li value=31> <a href="extensions/NV/EGL_NV_system_time.txt">EGL_NV_system_time</a>
+</li>
+<li value=32> <a href="extensions/KHR/EGL_KHR_stream.txt">EGL_KHR_stream</a>
+ <br> <a href="extensions/KHR/EGL_KHR_stream.txt">EGL_KHR_stream_attrib</a>
+</li>
+<li value=33> <a href="extensions/KHR/EGL_KHR_stream_consumer_gltexture.txt">EGL_KHR_stream_consumer_gltexture</a>
+</li>
+<li value=34> <a href="extensions/KHR/EGL_KHR_stream_producer_eglsurface.txt">EGL_KHR_stream_producer_eglsurface</a>
+</li>
+<li value=35> <a href="extensions/KHR/EGL_KHR_stream_producer_aldatalocator.txt">EGL_KHR_stream_producer_aldatalocator</a>
+</li>
+<li value=36> <a href="extensions/KHR/EGL_KHR_stream_fifo.txt">EGL_KHR_stream_fifo</a>
+</li>
+<li value=37> <a href="extensions/EXT/EGL_EXT_create_context_robustness.txt">EGL_EXT_create_context_robustness</a>
+</li>
+<li value=38> <a href="extensions/ANGLE/EGL_ANGLE_d3d_share_handle_client_buffer.txt">EGL_ANGLE_d3d_share_handle_client_buffer</a>
+</li>
+<li value=39> <a href="extensions/KHR/EGL_KHR_create_context.txt">EGL_KHR_create_context</a>
+</li>
+<li value=40> <a href="extensions/KHR/EGL_KHR_surfaceless_context.txt">EGL_KHR_surfaceless_context</a>
+</li>
+<li value=41> <a href="extensions/KHR/EGL_KHR_stream_cross_process_fd.txt">EGL_KHR_stream_cross_process_fd</a>
+</li>
+<li value=42> <a href="extensions/EXT/EGL_EXT_multiview_window.txt">EGL_EXT_multiview_window</a>
+</li>
+<li value=43> <a href="extensions/KHR/EGL_KHR_wait_sync.txt">EGL_KHR_wait_sync</a>
+</li>
+<li value=44> <a href="extensions/NV/EGL_NV_post_convert_rounding.txt">EGL_NV_post_convert_rounding</a>
+</li>
+<li value=45> <a href="extensions/NV/EGL_NV_native_query.txt">EGL_NV_native_query</a>
+</li>
+<li value=46> <a href="extensions/NV/EGL_NV_3dvision_surface.txt">EGL_NV_3dvision_surface</a>
+</li>
+<li value=47> <a href="extensions/ANDROID/EGL_ANDROID_framebuffer_target.txt">EGL_ANDROID_framebuffer_target</a>
+</li>
+<li value=48> <a href="extensions/ANDROID/EGL_ANDROID_blob_cache.txt">EGL_ANDROID_blob_cache</a>
+</li>
+<li value=49> <a href="extensions/ANDROID/EGL_ANDROID_image_native_buffer.txt">EGL_ANDROID_image_native_buffer</a>
+</li>
+<li value=50> <a href="extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt">EGL_ANDROID_native_fence_sync</a>
+</li>
+<li value=51> <a href="extensions/ANDROID/EGL_ANDROID_recordable.txt">EGL_ANDROID_recordable</a>
+</li>
+<li value=52> <a href="extensions/EXT/EGL_EXT_buffer_age.txt">EGL_EXT_buffer_age</a>
+</li>
+<li value=53> <a href="extensions/EXT/EGL_EXT_image_dma_buf_import.txt">EGL_EXT_image_dma_buf_import</a>
+</li>
+<li value=54> <a href="extensions/ARM/EGL_ARM_pixmap_multisample_discard.txt">EGL_ARM_pixmap_multisample_discard</a>
+</li>
+<li value=55> <a href="extensions/EXT/EGL_EXT_swap_buffers_with_damage.txt">EGL_EXT_swap_buffers_with_damage</a>
+</li>
+<li value=56> <a href="extensions/NV/EGL_NV_stream_sync.txt">EGL_NV_stream_sync</a>
+</li>
+<li value=57> <a href="extensions/EXT/EGL_EXT_platform_base.txt">EGL_EXT_platform_base</a>
+</li>
+<li value=58> <a href="extensions/EXT/EGL_EXT_client_extensions.txt">EGL_EXT_client_extensions</a>
+</li>
+<li value=59> <a href="extensions/EXT/EGL_EXT_platform_x11.txt">EGL_EXT_platform_x11</a>
+</li>
+<li value=60> <a href="extensions/KHR/EGL_KHR_cl_event.txt">EGL_KHR_cl_event</a>
+</li>
+<li value=61> <a href="extensions/KHR/EGL_KHR_get_all_proc_addresses.txt">EGL_KHR_get_all_proc_addresses</a>
+ <br> <a href="extensions/KHR/EGL_KHR_get_all_proc_addresses.txt">EGL_KHR_client_get_all_proc_addresses</a>
+</li>
+<li value=62> <a href="extensions/MESA/EGL_MESA_platform_gbm.txt">EGL_MESA_platform_gbm</a>
+</li>
+<li value=63> <a href="extensions/EXT/EGL_EXT_platform_wayland.txt">EGL_EXT_platform_wayland</a>
+</li>
+<li value=64> <a href="extensions/KHR/EGL_KHR_lock_surface3.txt">EGL_KHR_lock_surface3</a>
+</li>
+<li value=65> <a href="extensions/KHR/EGL_KHR_cl_event2.txt">EGL_KHR_cl_event2</a>
+</li>
+<li value=66> <a href="extensions/KHR/EGL_KHR_gl_colorspace.txt">EGL_KHR_gl_colorspace</a>
+</li>
+<li value=67> <a href="extensions/EXT/EGL_EXT_protected_surface.txt">EGL_EXT_protected_surface</a>
+</li>
+<li value=68> <a href="extensions/KHR/EGL_KHR_platform_android.txt">EGL_KHR_platform_android</a>
+</li>
+<li value=69> <a href="extensions/KHR/EGL_KHR_platform_gbm.txt">EGL_KHR_platform_gbm</a>
+</li>
+<li value=70> <a href="extensions/KHR/EGL_KHR_platform_wayland.txt">EGL_KHR_platform_wayland</a>
+</li>
+<li value=71> <a href="extensions/KHR/EGL_KHR_platform_x11.txt">EGL_KHR_platform_x11</a>
+</li>
+<li value=72> <a href="extensions/EXT/EGL_EXT_device_base.txt">EGL_EXT_device_base</a>
+</li>
+<li value=73> <a href="extensions/EXT/EGL_EXT_platform_device.txt">EGL_EXT_platform_device</a>
+</li>
+<li value=74> <a href="extensions/NV/EGL_NV_device_cuda.txt">EGL_NV_device_cuda</a>
+</li>
+<li value=75> <a href="extensions/NV/EGL_NV_cuda_event.txt">EGL_NV_cuda_event</a>
+</li>
+<li value=76> <a href="extensions/TIZEN/EGL_TIZEN_image_native_buffer.txt">EGL_TIZEN_image_native_buffer</a>
+</li>
+<li value=77> <a href="extensions/TIZEN/EGL_TIZEN_image_native_surface.txt">EGL_TIZEN_image_native_surface</a>
+</li>
+<li value=78> <a href="extensions/EXT/EGL_EXT_output_base.txt">EGL_EXT_output_base</a>
+</li>
+<li value=79> <a href="extensions/EXT/EGL_EXT_device_drm.txt">EGL_EXT_device_drm</a>
+ <br> <a href="extensions/EXT/EGL_EXT_device_drm.txt">EGL_EXT_output_drm</a>
+</li>
+<li value=80> <a href="extensions/EXT/EGL_EXT_device_openwf.txt">EGL_EXT_device_openwf</a>
+ <br> <a href="extensions/EXT/EGL_EXT_device_openwf.txt">EGL_EXT_output_openwf</a>
+</li>
+<li value=81> <a href="extensions/EXT/EGL_EXT_stream_consumer_egloutput.txt">EGL_EXT_stream_consumer_egloutput</a>
+</li>
+<li value=83> <a href="extensions/KHR/EGL_KHR_partial_update.txt">EGL_KHR_partial_update</a>
+</li>
+<li value=84> <a href="extensions/KHR/EGL_KHR_swap_buffers_with_damage.txt">EGL_KHR_swap_buffers_with_damage</a>
+</li>
+<li value=85> <a href="extensions/ANGLE/EGL_ANGLE_window_fixed_size.txt">EGL_ANGLE_window_fixed_size</a>
+</li>
+<li value=86> <a href="extensions/EXT/EGL_EXT_yuv_surface.txt">EGL_EXT_yuv_surface</a>
+</li>
+<li value=87> <a href="extensions/MESA/EGL_MESA_image_dma_buf_export.txt">EGL_MESA_image_dma_buf_export</a>
+</li>
+<li value=88> <a href="extensions/EXT/EGL_EXT_device_enumeration.txt">EGL_EXT_device_enumeration</a>
+</li>
+<li value=89> <a href="extensions/EXT/EGL_EXT_device_query.txt">EGL_EXT_device_query</a>
+</li>
+<li value=90> <a href="extensions/ANGLE/EGL_ANGLE_device_d3d.txt">EGL_ANGLE_device_d3d</a>
+</li>
+<li value=91> <a href="extensions/KHR/EGL_KHR_create_context_no_error.txt">EGL_KHR_create_context_no_error</a>
+</li>
+<li value=92> <a href="extensions/KHR/EGL_KHR_debug.txt">EGL_KHR_debug</a>
+</li>
+<li value=93> <a href="extensions/NV/EGL_NV_stream_metadata.txt">EGL_NV_stream_metadata</a>
+</li>
+<li value=94> <a href="extensions/NV/EGL_NV_stream_consumer_gltexture_yuv.txt">EGL_NV_stream_consumer_gltexture_yuv</a>
+</li>
+<li value=95> <a href="extensions/IMG/EGL_IMG_image_plane_attribs.txt">EGL_IMG_image_plane_attribs</a>
+</li>
+<li value=96> <a href="extensions/KHR/EGL_KHR_mutable_render_buffer.txt">EGL_KHR_mutable_render_buffer</a>
+</li>
+<li value=97> <a href="extensions/EXT/EGL_EXT_protected_content.txt">EGL_EXT_protected_content</a>
+</li>
+<li value=98> <a href="extensions/ANDROID/EGL_ANDROID_presentation_time.txt">EGL_ANDROID_presentation_time</a>
+</li>
+<li value=99> <a href="extensions/ANDROID/EGL_ANDROID_create_native_client_buffer.txt">EGL_ANDROID_create_native_client_buffer</a>
+</li>
+<li value=100> <a href="extensions/ANDROID/EGL_ANDROID_front_buffer_auto_refresh.txt">EGL_ANDROID_front_buffer_auto_refresh</a>
+</li>
+<li value=101> <a href="extensions/KHR/EGL_KHR_no_config_context.txt">EGL_KHR_no_config_context</a>
+</li>
+<li value=102> <a href="https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_context_flush_control.txt">EGL_KHR_context_flush_control</a>
+</li>
+<li value=103> <a href="extensions/ARM/EGL_ARM_implicit_external_sync.txt">EGL_ARM_implicit_external_sync</a>
+</li>
+<li value=104> <a href="extensions/MESA/EGL_MESA_platform_surfaceless.txt">EGL_MESA_platform_surfaceless</a>
+</li>
+<li value=105> <a href="extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt">EGL_EXT_image_dma_buf_import_modifiers</a>
+</li>
+<li value=106> <a href="extensions/EXT/EGL_EXT_pixel_format_float.txt">EGL_EXT_pixel_format_float</a>
+</li>
+<li value=107> <a href="extensions/EXT/EGL_EXT_gl_colorspace_bt2020_linear.txt">EGL_EXT_gl_colorspace_bt2020_linear</a>
+ <br> <a href="extensions/EXT/EGL_EXT_gl_colorspace_bt2020_linear.txt">EGL_EXT_gl_colorspace_bt2020_pq</a>
+</li>
+<li value=108> <a href="extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt">EGL_EXT_gl_colorspace_scrgb_linear</a>
+</li>
+<li value=109> <a href="extensions/EXT/EGL_EXT_surface_SMPTE2086_metadata.txt">EGL_EXT_surface_SMPTE2086_metadata</a>
+</li>
+<li value=110> <a href="extensions/NV/EGL_NV_stream_fifo_next.txt">EGL_NV_stream_fifo_next</a>
+</li>
+<li value=111> <a href="extensions/NV/EGL_NV_stream_fifo_synchronous.txt">EGL_NV_stream_fifo_synchronous</a>
+</li>
+<li value=112> <a href="extensions/NV/EGL_NV_stream_reset.txt">EGL_NV_stream_reset</a>
+</li>
+<li value=113> <a href="extensions/NV/EGL_NV_stream_frame_limits.txt">EGL_NV_stream_frame_limits</a>
+</li>
+<li value=114> <a href="extensions/NV/EGL_NV_stream_remote.txt">EGL_NV_stream_remote</a>
+ <br> <a href="extensions/NV/EGL_NV_stream_remote.txt">EGL_NV_stream_cross_object</a>
+ <br> <a href="extensions/NV/EGL_NV_stream_remote.txt">EGL_NV_stream_cross_display</a>
+ <br> <a href="extensions/NV/EGL_NV_stream_remote.txt">EGL_NV_stream_cross_process</a>
+ <br> <a href="extensions/NV/EGL_NV_stream_remote.txt">EGL_NV_stream_cross_partition</a>
+ <br> <a href="extensions/NV/EGL_NV_stream_remote.txt">EGL_NV_stream_cross_system</a>
+</li>
+<li value=115> <a href="extensions/NV/EGL_NV_stream_socket.txt">EGL_NV_stream_socket</a>
+ <br> <a href="extensions/NV/EGL_NV_stream_socket.txt">EGL_NV_stream_socket_unix</a>
+ <br> <a href="extensions/NV/EGL_NV_stream_socket.txt">EGL_NV_stream_socket_inet</a>
+</li>
+<li value=116> <a href="extensions/EXT/EGL_EXT_compositor.txt">EGL_EXT_compositor</a>
+</li>
+<li value=117> <a href="extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt">EGL_EXT_surface_CTA861_3_metadata</a>
+</li>
+<li value=118> <a href="extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt">EGL_EXT_gl_colorspace_display_p3</a>
+</li>
+<li value=118> <a href="extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt">EGL_EXT_gl_colorspace_display_p3_linear</a>
+</li>
+<li value=119> <a href="extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt">EGL_EXT_gl_colorspace_scrgb (non-linear)</a>
+</li>
+<li value=120> <a href="extensions/EXT/EGL_EXT_image_implicit_sync_control.txt">EGL_EXT_image_implicit_sync_control</a>
+</li>
+<li value=121> <a href="extensions/EXT/EGL_EXT_bind_to_front.txt">EGL_EXT_bind_to_front</a>
+</li>
+<li value=122> <a href="extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt">EGL_ANDROID_get_frame_timestamps</a>
+</li>
+<li value=123> <a href="extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt">EGL_ANDROID_get_native_client_buffer</a>
+</li>
+<li value=124> <a href="extensions/NV/EGL_NV_context_priority_realtime.txt">EGL_NV_context_priority_realtime</a>
+</li>
+<li value=125> <a href="extensions/EXT/EGL_EXT_image_gl_colorspace.txt">EGL_EXT_image_gl_colorspace</a>
+</li>
+<li value=126> <a href="extensions/KHR/EGL_KHR_display_reference.txt">EGL_KHR_display_reference</a>
+</li>
+<li value=127> <a href="extensions/NV/EGL_NV_stream_flush.txt">EGL_NV_stream_flush</a>
+</li>
+<li value=128> <a href="extensions/EXT/EGL_EXT_sync_reuse.txt">EGL_EXT_sync_reuse</a>
+</li>
+<li value=129> <a href="extensions/EXT/EGL_EXT_client_sync.txt">EGL_EXT_client_sync</a>
+</li>
+<li value=130> <a href="extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt">EGL_EXT_gl_colorspace_display_p3_passthrough</a>
+</li>
+<li value=131> <a href="extensions/MESA/EGL_MESA_query_driver.txt">EGL_MESA_query_driver</a>
+</li>
+<li value=132> <a href="extensions/ANDROID/EGL_ANDROID_GLES_layers.txt">EGL_ANDROID_GLES_layers</a>
+</li>
+<li value=133> <a href="extensions/NV/EGL_NV_n_buffer.txt">EGL_NV_n_buffer</a>
+</li>
+<li value=134> <a href="extensions/NV/EGL_NV_stream_origin.txt">EGL_NV_stream_origin</a>
+</li>
+<li value=135> <a href="extensions/NV/EGL_NV_stream_dma.txt">EGL_NV_stream_dma</a>
+</li>
+<li value=136> <a href="extensions/WL/EGL_WL_bind_wayland_display.txt">EGL_WL_bind_wayland_display</a>
+</li>
+<li value=137> <a href="extensions/WL/EGL_WL_create_wayland_buffer_from_image.txt">EGL_WL_create_wayland_buffer_from_image</a>
+</li>
+<li value=139> <a href="extensions/NV/EGL_NV_stream_consumer_eglimage.txt">EGL_NV_stream_consumer_eglimage</a>
+</li>
+<li value=140> <a href="extensions/EXT/EGL_EXT_device_query_name.txt">EGL_EXT_device_query_name</a>
+</li>
+<li value=141> <a href="extensions/EXT/EGL_EXT_platform_xcb.txt">EGL_EXT_platform_xcb</a>
+</li>
+<li value=142> <a href="extensions/ANGLE/EGL_ANGLE_sync_control_rate.txt">EGL_ANGLE_sync_control_rate</a>
+</li>
+<li value=143> <a href="extensions/EXT/EGL_EXT_device_persistent_id.txt">EGL_EXT_device_persistent_id</a>
+</li>
+<li value=144> <a href="extensions/EXT/EGL_EXT_device_drm_render_node.txt">EGL_EXT_device_drm_render_node</a>
+</li>
+<li value=145> <a href="extensions/EXT/EGL_EXT_config_select_group.txt">EGL_EXT_config_select_group</a>
+</li>
+<li value=146> <a href="extensions/EXT/EGL_EXT_present_opaque.txt">EGL_EXT_present_opaque</a>
+</li>
+<li value=147> <a href="extensions/EXT/EGL_EXT_surface_compression.txt">EGL_EXT_surface_compression</a>
+</li>
+</ol>
+
+<h6> Providing Feedback on the Registry </h6>
+
+<p> Khronos welcomes comments and bug reports. To provide feedback on the
+ EGL registry itself (such as reporting missing content, bad links,
+ etc.), file an issue in the <a
+ href="https://github.com/KhronosGroup/EGL-Registry/issues">
+ EGL-Registry </a> Github project. </p>
+
+<p> For the EGL API, extensions, and headers, file a bug on the <a
+ href="http://www.khronos.org/bugzilla/"> Khronos Bugzilla </a>. Make
+ sure to fill in the &quot;Product&quot; field in the bug entry form as
+ &quot;EGL&quot;, and pick appropriate values for the Component and other
+ fields. </p>
+
+<?php include_once("../../assets/static_pages/khr_page_bottom.php"); ?>
+</body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/registry.tcl b/engine-ocean/External/glew/auto/EGL-Registry/registry.tcl
new file mode 100644
index 0000000..c2bfb63
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/registry.tcl
@@ -0,0 +1,770 @@
+# Copyright 2006-2021 The Khronos Group Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# registry.tcl
+#
+# This is a simple human-readable database defining the EGL extension
+# registry. For each extension, it includes an extension number, flags
+# if the extension is public, and includes a path to the extension
+# specification.
+#
+# The companion script 'regproc.tcl' uses this to build up the
+# extensions portion of the public registry, by copying out only
+# the public specifications.
+
+extension EGL_KHR_config_attribs {
+ number 1
+ flags public
+ filename extensions/KHR/EGL_KHR_config_attribs.txt
+}
+extension EGL_KHR_lock_surface {
+ number 2
+ flags public
+ filename extensions/KHR/EGL_KHR_lock_surface.txt
+}
+extension EGL_KHR_image {
+ number 3
+ flags public
+ filename extensions/KHR/EGL_KHR_image.txt
+}
+extension EGL_KHR_vg_parent_image {
+ number 4
+ flags public
+ filename extensions/KHR/EGL_KHR_vg_parent_image.txt
+}
+extension EGL_KHR_gl_texture_2D_image {
+ number 5
+ flags public
+ filename extensions/KHR/EGL_KHR_gl_image.txt
+ alias EGL_KHR_gl_texture_cubemap_image
+ alias EGL_KHR_gl_texture_3D_image
+ alias EGL_KHR_gl_renderbuffer_image
+}
+extension EGL_KHR_reusable_sync {
+ number 6
+ flags public
+ filename extensions/KHR/EGL_KHR_reusable_sync.txt
+}
+extension EGL_SYMBIAN_image_preserved {
+ number 7
+ flags private incomplete
+ filename extensions/SYMBIAN/EGL_SYMBIAN_image_preserved.txt
+}
+extension EGL_KHR_image_base {
+ number 8
+ flags public
+ filename extensions/KHR/EGL_KHR_image_base.txt
+}
+extension EGL_KHR_image_pixmap {
+ number 9
+ flags public
+ filename extensions/KHR/EGL_KHR_image_pixmap.txt
+}
+extension EGL_IMG_context_priority {
+ number 10
+ flags public
+ filename extensions/IMG/EGL_IMG_context_priority.txt
+}
+extension EGL_NOK_hibernate_context {
+ number 11
+ flags private
+ filename extensions/NOK/EGL_NOK_hibernate_context.txt
+}
+extension EGL_NOK_swap_region {
+ number 12
+ flags private
+ filename extensions/NOK/EGL_NOK_swap_region.txt
+}
+extension EGL_NOK_resource_profiling {
+ number 13
+ flags private
+ filename extensions/NOK/EGL_NOK_resource_profiling.txt
+}
+extension EGL_NOK_texture_from_pixmap {
+ number 14
+ flags public
+ filename extensions/NOK/EGL_NOK_texture_from_pixmap.txt
+}
+extension EGL_NOK_resource_profiling2 {
+ number 15
+ flags private
+ filename extensions/NOK/EGL_NOK_resource_profiling2.txt
+}
+extension EGL_KHR_lock_surface2 {
+ number 16
+ flags public
+ filename extensions/KHR/EGL_KHR_lock_surface2.txt
+}
+extension EGL_NV_coverage_sample {
+ number 17
+ flags public
+ filename extensions/NV/EGL_NV_coverage_sample.txt
+}
+extension EGL_NV_depth_nonlinear {
+ number 18
+ flags public
+ filename extensions/NV/EGL_NV_depth_nonlinear.txt
+}
+extension EGL_NV_sync {
+ number 19
+ flags public
+ filename extensions/NV/EGL_NV_sync.txt
+}
+extension EGL_KHR_fence_sync {
+ number 20
+ flags public
+ filename extensions/KHR/EGL_KHR_fence_sync.txt
+}
+extension EGL_NOK_surface_scaling {
+ number 21
+ flags private
+ filename extensions/NOK/EGL_NOK_surface_scaling.txt
+}
+extension EGL_NOK_image_shared {
+ number 22
+ flags private
+ filename extensions/NOK/EGL_NOK_image_shared.txt
+}
+extension EGL_NOK_swap_region2 {
+ number 23
+ flags public
+ filename extensions/NOK/EGL_NOK_swap_region2.txt
+}
+extension EGL_HI_clientpixmap {
+ number 24
+ flags public
+ filename extensions/HI/EGL_HI_clientpixmap.txt
+}
+extension EGL_HI_colorformats {
+ number 25
+ flags public
+ filename extensions/HI/EGL_HI_colorformats.txt
+}
+extension EGL_MESA_drm_image {
+ number 26
+ flags public
+ filename extensions/MESA/EGL_MESA_drm_image.txt
+}
+extension EGL_NV_post_sub_buffer {
+ number 27
+ flags public
+ filename extensions/NV/EGL_NV_post_sub_buffer.txt
+}
+extension EGL_ANGLE_query_surface_pointer {
+ number 28
+ flags public
+ filename extensions/ANGLE/EGL_ANGLE_query_surface_pointer.txt
+}
+extension EGL_ANGLE_surface_d3d_texture_2d_share_handle {
+ number 29
+ flags public
+ filename extensions/ANGLE/EGL_ANGLE_surface_d3d_texture_2d_share_handle.txt
+}
+extension EGL_NV_coverage_sample_resolve {
+ number 30
+ flags public
+ filename extensions/NV/EGL_NV_coverage_sample_resolve.txt
+}
+extension EGL_NV_system_time {
+ number 31
+ flags public
+ filename extensions/NV/EGL_NV_system_time.txt
+}
+extension EGL_KHR_stream {
+ number 32
+ flags public
+ filename extensions/KHR/EGL_KHR_stream.txt
+ alias EGL_KHR_stream_attrib
+}
+extension EGL_KHR_stream_consumer_gltexture {
+ number 33
+ flags public
+ filename extensions/KHR/EGL_KHR_stream_consumer_gltexture.txt
+}
+extension EGL_KHR_stream_producer_eglsurface {
+ number 34
+ flags public
+ filename extensions/KHR/EGL_KHR_stream_producer_eglsurface.txt
+}
+extension EGL_KHR_stream_producer_aldatalocator {
+ number 35
+ flags public
+ filename extensions/KHR/EGL_KHR_stream_producer_aldatalocator.txt
+}
+extension EGL_KHR_stream_fifo {
+ number 36
+ flags public
+ filename extensions/KHR/EGL_KHR_stream_fifo.txt
+}
+extension EGL_EXT_create_context_robustness {
+ number 37
+ flags public
+ filename extensions/EXT/EGL_EXT_create_context_robustness.txt
+}
+extension EGL_ANGLE_d3d_share_handle_client_buffer {
+ number 38
+ flags public
+ filename extensions/ANGLE/EGL_ANGLE_d3d_share_handle_client_buffer.txt
+}
+extension EGL_KHR_create_context {
+ number 39
+ flags public
+ filename extensions/KHR/EGL_KHR_create_context.txt
+}
+extension EGL_KHR_surfaceless_context {
+ number 40
+ flags public
+ filename extensions/KHR/EGL_KHR_surfaceless_context.txt
+}
+extension EGL_KHR_stream_cross_process_fd {
+ number 41
+ flags public
+ filename extensions/KHR/EGL_KHR_stream_cross_process_fd.txt
+}
+extension EGL_EXT_multiview_window {
+ number 42
+ flags public
+ filename extensions/EXT/EGL_EXT_multiview_window.txt
+}
+extension EGL_KHR_wait_sync {
+ number 43
+ flags public
+ filename extensions/KHR/EGL_KHR_wait_sync.txt
+}
+extension EGL_NV_post_convert_rounding {
+ number 44
+ flags public
+ filename extensions/NV/EGL_NV_post_convert_rounding.txt
+}
+extension EGL_NV_native_query {
+ number 45
+ flags public
+ filename extensions/NV/EGL_NV_native_query.txt
+}
+extension EGL_NV_3dvision_surface {
+ number 46
+ flags public
+ filename extensions/NV/EGL_NV_3dvision_surface.txt
+}
+extension EGL_ANDROID_framebuffer_target {
+ number 47
+ flags public
+ filename extensions/ANDROID/EGL_ANDROID_framebuffer_target.txt
+}
+extension EGL_ANDROID_blob_cache {
+ number 48
+ flags public
+ filename extensions/ANDROID/EGL_ANDROID_blob_cache.txt
+}
+extension EGL_ANDROID_image_native_buffer {
+ number 49
+ flags public
+ filename extensions/ANDROID/EGL_ANDROID_image_native_buffer.txt
+}
+extension EGL_ANDROID_native_fence_sync {
+ number 50
+ flags public
+ filename extensions/ANDROID/EGL_ANDROID_native_fence_sync.txt
+}
+extension EGL_ANDROID_recordable {
+ number 51
+ flags public
+ filename extensions/ANDROID/EGL_ANDROID_recordable.txt
+}
+extension EGL_EXT_buffer_age {
+ number 52
+ flags public
+ filename extensions/EXT/EGL_EXT_buffer_age.txt
+}
+extension EGL_EXT_image_dma_buf_import {
+ number 53
+ flags public
+ filename extensions/EXT/EGL_EXT_image_dma_buf_import.txt
+}
+extension EGL_ARM_pixmap_multisample_discard {
+ number 54
+ flags public
+ filename extensions/ARM/EGL_ARM_pixmap_multisample_discard.txt
+}
+extension EGL_EXT_swap_buffers_with_damage {
+ number 55
+ flags public
+ filename extensions/EXT/EGL_EXT_swap_buffers_with_damage.txt
+}
+extension EGL_NV_stream_sync {
+ number 56
+ flags public
+ filename extensions/NV/EGL_NV_stream_sync.txt
+}
+extension EGL_EXT_platform_base {
+ number 57
+ flags public
+ filename extensions/EXT/EGL_EXT_platform_base.txt
+}
+extension EGL_EXT_client_extensions {
+ number 58
+ flags public
+ filename extensions/EXT/EGL_EXT_client_extensions.txt
+}
+extension EGL_EXT_platform_x11 {
+ number 59
+ flags public
+ filename extensions/EXT/EGL_EXT_platform_x11.txt
+}
+extension EGL_KHR_cl_event {
+ number 60
+ flags public
+ filename extensions/KHR/EGL_KHR_cl_event.txt
+}
+extension EGL_KHR_get_all_proc_addresses {
+ number 61
+ flags public
+ filename extensions/KHR/EGL_KHR_get_all_proc_addresses.txt
+ alias EGL_KHR_client_get_all_proc_addresses
+}
+extension EGL_MESA_platform_gbm {
+ number 62
+ flags public
+ filename extensions/MESA/EGL_MESA_platform_gbm.txt
+}
+extension EGL_EXT_platform_wayland {
+ number 63
+ flags public
+ filename extensions/EXT/EGL_EXT_platform_wayland.txt
+}
+extension EGL_KHR_lock_surface3 {
+ number 64
+ flags public
+ filename extensions/KHR/EGL_KHR_lock_surface3.txt
+}
+extension EGL_KHR_cl_event2 {
+ number 65
+ flags public
+ filename extensions/KHR/EGL_KHR_cl_event2.txt
+}
+extension EGL_KHR_gl_colorspace {
+ number 66
+ flags public
+ filename extensions/KHR/EGL_KHR_gl_colorspace.txt
+}
+extension EGL_EXT_protected_surface {
+ number 67
+ flags public
+ filename extensions/EXT/EGL_EXT_protected_surface.txt
+}
+extension EGL_KHR_platform_android {
+ number 68
+ flags public
+ filename extensions/KHR/EGL_KHR_platform_android.txt
+}
+extension EGL_KHR_platform_gbm {
+ number 69
+ flags public
+ filename extensions/KHR/EGL_KHR_platform_gbm.txt
+}
+extension EGL_KHR_platform_wayland {
+ number 70
+ flags public
+ filename extensions/KHR/EGL_KHR_platform_wayland.txt
+}
+extension EGL_KHR_platform_x11 {
+ number 71
+ flags public
+ filename extensions/KHR/EGL_KHR_platform_x11.txt
+}
+extension EGL_EXT_device_base {
+ number 72
+ flags public
+ filename extensions/EXT/EGL_EXT_device_base.txt
+}
+extension EGL_EXT_platform_device {
+ number 73
+ flags public
+ filename extensions/EXT/EGL_EXT_platform_device.txt
+}
+extension EGL_NV_device_cuda {
+ number 74
+ flags public
+ filename extensions/NV/EGL_NV_device_cuda.txt
+}
+extension EGL_NV_cuda_event {
+ number 75
+ flags public
+ filename extensions/NV/EGL_NV_cuda_event.txt
+}
+extension EGL_TIZEN_image_native_buffer {
+ number 76
+ flags public
+ filename extensions/TIZEN/EGL_TIZEN_image_native_buffer.txt
+}
+extension EGL_TIZEN_image_native_surface {
+ number 77
+ flags public
+ filename extensions/TIZEN/EGL_TIZEN_image_native_surface.txt
+}
+extension EGL_EXT_output_base {
+ number 78
+ flags public
+ filename extensions/EXT/EGL_EXT_output_base.txt
+}
+extension EGL_EXT_device_drm {
+ number 79
+ flags public
+ filename extensions/EXT/EGL_EXT_device_drm.txt
+ alias EGL_EXT_output_drm
+}
+extension EGL_EXT_device_openwf {
+ number 80
+ flags public
+ filename extensions/EXT/EGL_EXT_device_openwf.txt
+ alias EGL_EXT_output_openwf
+}
+extension EGL_EXT_stream_consumer_egloutput {
+ number 81
+ flags public
+ filename extensions/EXT/EGL_EXT_stream_consumer_egloutput.txt
+}
+extension EGL_QCOM_gpu_perf {
+ number 82
+ flags private
+ filename extensions/QCOM/EGL_QCOM_gpu_perf.txt
+}
+extension EGL_KHR_partial_update {
+ number 83
+ flags public
+ filename extensions/KHR/EGL_KHR_partial_update.txt
+}
+extension EGL_KHR_swap_buffers_with_damage {
+ number 84
+ flags public
+ filename extensions/KHR/EGL_KHR_swap_buffers_with_damage.txt
+}
+extension EGL_ANGLE_window_fixed_size {
+ number 85
+ flags public
+ filename extensions/ANGLE/EGL_ANGLE_window_fixed_size.txt
+}
+extension EGL_EXT_yuv_surface {
+ number 86
+ flags public
+ filename extensions/EXT/EGL_EXT_yuv_surface.txt
+}
+extension EGL_MESA_image_dma_buf_export {
+ number 87
+ flags public
+ filename extensions/MESA/EGL_MESA_image_dma_buf_export.txt
+}
+extension EGL_EXT_device_enumeration {
+ number 88
+ flags public
+ filename extensions/EXT/EGL_EXT_device_enumeration.txt
+}
+extension EGL_EXT_device_query {
+ number 89
+ flags public
+ filename extensions/EXT/EGL_EXT_device_query.txt
+}
+extension EGL_ANGLE_device_d3d {
+ number 90
+ flags public
+ filename extensions/ANGLE/EGL_ANGLE_device_d3d.txt
+}
+extension EGL_KHR_create_context_no_error {
+ number 91
+ flags public
+ filename extensions/KHR/EGL_KHR_create_context_no_error.txt
+}
+extension EGL_KHR_debug {
+ number 92
+ flags public
+ filename extensions/KHR/EGL_KHR_debug.txt
+}
+extension EGL_NV_stream_metadata {
+ number 93
+ flags public
+ filename extensions/NV/EGL_NV_stream_metadata.txt
+}
+extension EGL_NV_stream_consumer_gltexture_yuv {
+ number 94
+ flags public
+ filename extensions/NV/EGL_NV_stream_consumer_gltexture_yuv.txt
+}
+extension EGL_IMG_image_plane_attribs {
+ number 95
+ flags public
+ filename extensions/IMG/EGL_IMG_image_plane_attribs.txt
+}
+extension EGL_KHR_mutable_render_buffer {
+ number 96
+ flags public
+ filename extensions/KHR/EGL_KHR_mutable_render_buffer.txt
+}
+extension EGL_EXT_protected_content {
+ number 97
+ flags public
+ filename extensions/EXT/EGL_EXT_protected_content.txt
+}
+extension EGL_ANDROID_presentation_time {
+ number 98
+ flags public
+ filename extensions/ANDROID/EGL_ANDROID_presentation_time.txt
+}
+extension EGL_ANDROID_create_native_client_buffer {
+ number 99
+ flags public
+ filename extensions/ANDROID/EGL_ANDROID_create_native_client_buffer.txt
+}
+extension EGL_ANDROID_front_buffer_auto_refresh {
+ number 100
+ flags public
+ filename extensions/ANDROID/EGL_ANDROID_front_buffer_auto_refresh.txt
+}
+extension EGL_KHR_no_config_context {
+ number 101
+ flags public
+ filename extensions/KHR/EGL_KHR_no_config_context.txt
+}
+extension EGL_KHR_context_flush_control {
+ number 102
+ flags public
+ filename ../OpenGL/extensions/KHR/KHR_context_flush_control.txt
+}
+extension EGL_ARM_implicit_external_sync {
+ number 103
+ flags public
+ filename extensions/ARM/EGL_ARM_implicit_external_sync.txt
+}
+extension EGL_MESA_platform_surfaceless {
+ number 104
+ flags public
+ filename extensions/MESA/EGL_MESA_platform_surfaceless.txt
+}
+extension EGL_EXT_image_dma_buf_import_modifiers {
+ number 105
+ flags public
+ filename extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt
+}
+extension EGL_EXT_pixel_format_float {
+ number 106
+ flags public
+ filename extensions/EXT/EGL_EXT_pixel_format_float.txt
+}
+extension EGL_EXT_gl_colorspace_bt2020_linear {
+ number 107
+ flags public
+ filename extensions/EXT/EGL_EXT_gl_colorspace_bt2020_linear.txt
+ alias EGL_EXT_gl_colorspace_bt2020_pq
+}
+extension EGL_EXT_gl_colorspace_scrgb_linear {
+ number 108
+ flags public
+ filename extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt
+}
+extension EGL_EXT_surface_SMPTE2086_metadata {
+ number 109
+ flags public
+ filename extensions/EXT/EGL_EXT_surface_SMPTE2086_metadata.txt
+}
+extension EGL_NV_stream_fifo_next {
+ number 110
+ flags public
+ filename extensions/NV/EGL_NV_stream_fifo_next.txt
+}
+extension EGL_NV_stream_fifo_synchronous {
+ number 111
+ flags public
+ filename extensions/NV/EGL_NV_stream_fifo_synchronous.txt
+}
+extension EGL_NV_stream_reset {
+ number 112
+ flags public
+ filename extensions/NV/EGL_NV_stream_reset.txt
+}
+extension EGL_NV_stream_frame_limits {
+ number 113
+ flags public
+ filename extensions/NV/EGL_NV_stream_frame_limits.txt
+}
+extension EGL_NV_stream_remote {
+ number 114
+ flags public
+ filename extensions/NV/EGL_NV_stream_remote.txt
+ alias EGL_NV_stream_cross_object
+ alias EGL_NV_stream_cross_display
+ alias EGL_NV_stream_cross_process
+ alias EGL_NV_stream_cross_partition
+ alias EGL_NV_stream_cross_system
+}
+extension EGL_NV_stream_socket {
+ number 115
+ flags public
+ filename extensions/NV/EGL_NV_stream_socket.txt
+ alias EGL_NV_stream_socket_unix
+ alias EGL_NV_stream_socket_inet
+}
+extension EGL_EXT_compositor {
+ number 116
+ flags public
+ filename extensions/EXT/EGL_EXT_compositor.txt
+}
+extension EGL_EXT_surface_CTA861_3_metadata {
+ number 117
+ flags public
+ filename extensions/EXT/EGL_EXT_surface_CTA861_3_metadata.txt
+}
+extension EGL_EXT_gl_colorspace_display_p3 {
+ number 118
+ flags public
+ filename extensions/EXT/EGL_EXT_colorspace_display_p3.txt
+}
+extension EGL_EXT_gl_colorspace_scrgb {
+ number 119
+ flags public
+ filename extensions/EXT/EGL_EXT_gl_colorspace_scrgb.txt
+}
+extension EGL_EXT_image_implicit_sync_control {
+ number 120
+ flags public
+ filename extensions/EXT/EGL_EXT_image_implicit_sync_control.txt
+}
+extension EGL_EXT_bind_to_front {
+ number 121
+ flags public
+ filename extensions/EXT/EGL_EXT_bind_to_front.txt
+}
+extension EGL_ANDROID_get_frame_timestamps {
+ number 122
+ flags public
+ filename extensions/ANDROID/EGL_ANDROID_get_frame_timestamps.txt
+}
+extension EGL_ANDROID_get_native_client_buffer {
+ number 123
+ flags public
+ filename extensions/ANDROID/EGL_ANDROID_get_native_client_buffer.txt
+}
+extension EGL_NV_context_priority_realtime {
+ number 124
+ flags public
+ filename extensions/NV/EGL_NV_context_priority_realtime.txt
+}
+extension EGL_EXT_image_gl_colorspace {
+ number 125
+ flags public
+ filename extensions/EXT/EGL_EXT_image_gl_colorspace.txt
+}
+extension EGL_KHR_display_reference {
+ number 126
+ flags public
+ filename extensions/KHR/EGL_KHR_display_reference.txt
+}
+extension EGL_NV_stream_flush {
+ number 127
+ flags public
+ filename extensions/NV/EGL_NV_stream_flush.txt
+}
+extension EGL_EXT_sync_reuse {
+ number 128
+ flags public
+ filename extensions/EXT/EGL_EXT_sync_reuse.txt
+}
+extension EGL_EXT_client_sync {
+ number 129
+ flags public
+ filename extensions/EXT/EGL_EXT_client_sync.txt
+}
+extension EGL_EXT_gl_colorspace_display_p3_passthrough {
+ number 130
+ flags public
+ filename extensions/EXT/EGL_EXT_gl_colorspace_display_p3_passthrough.txt
+}
+extension EGL_MESA_query_driver {
+ number 131
+ flags public
+ filename extensions/MESA/EGL_MESA_query_driver.txt
+}
+extension EGL_ANDROID_GLES_layers {
+ number 132
+ flags public
+ filename extensions/ANDROID/EGL_ANDROID_GLES_layers.txt
+}
+extension EGL_NV_n_buffer {
+ number 133
+ flags public
+ filename extensions/NV/EGL_NV_n_buffer.txt
+}
+extension EGL_NV_stream_origin {
+ number 134
+ flags public
+ filename extensions/NV/EGL_NV_stream_origin.txt
+}
+extension EGL_NV_stream_dma {
+ number 135
+ flags public
+ filename extensions/NV/EGL_NV_stream_dma.txt
+}
+extension EGL_WL_bind_wayland_display {
+ number 136
+ flags public
+ filename extensions/WL/EGL_WL_bind_wayland_display.txt
+}
+extension EGL_WL_create_wayland_buffer_from_image {
+ number 137
+ flags public
+ filename extensions/WL/EGL_WL_create_wayland_buffer_from_image.txt
+}
+extension EGL_ARM_image_format {
+ number 138
+ flags public
+ filename extensions/ARM/EGL_ARM_image_format.txt
+}
+extension EGL_NV_stream_consumer_eglimage {
+ number 139
+ flags public
+ filename extensions/NV/EGL_NV_stream_consumer_eglimage.txt
+}
+extension EGL_NV_stream_consumer_eglimage {
+ number 140
+ flags public
+ filename extensions/EXT/EGL_EXT_device_query_name.txt
+}
+extension EGL_EXT_platform_xcb {
+ number 141
+ flags public
+ filename extensions/EXT/EGL_EXT_platform_xcb.txt
+}
+extension EGL_ANGLE_sync_control_rate {
+ number 142
+ flags public
+ filename extensions/ANGLE/EGL_ANGLE_sync_control_rate.txt
+}
+extension EGL_EXT_device_persistent_id {
+ number 143
+ flags public
+ filename extensions/EXT/EGL_EXT_device_persistent_id.txt
+}
+extension EGL_EXT_device_drm_render_node {
+ number 144
+ flags public
+ filename extensions/EXT/EGL_EXT_device_drm_render_node.txt
+}
+extension EGL_EXT_config_select_group {
+ number 145
+ flags public
+ filename extensions/EXT/EGL_EXT_config_select_group.txt
+}
+extension EGL_EXT_present_opaque {
+ number 146
+ flags public
+ filename extensions/EXT/EGL_EXT_present_opaque.txt
+}
+extension EGL_EXT_surface_compression {
+ number 147
+ flags public
+ filename extensions/EXT/EGL_EXT_surface_compression.txt
+}
+extension EGL_EXT_explicit_device {
+ number 148
+ flags public
+ filename extensions/EXT/EGL_EXT_explicit_device.txt
+}
+# Next free extension number: 149
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/.htaccess b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/.htaccess
new file mode 100644
index 0000000..578915b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/.htaccess
@@ -0,0 +1,13 @@
+RewriteEngine on
+
+# Avoid redirect loops
+RewriteCond %{ENV:REDIRECT_STATUS} 200
+RewriteRule ^ - [L]
+
+# Unlike the OpenGL ES and OpenGL reference pages, we're not keeping
+# old versions of the EGL man pages around. Just redirect links to
+# egl/sdk/docs/man/xhtml/*.html to the new HTML 5 pages in html/*.xhtml.
+
+RewriteRule ^xhtml/$ https://www.khronos.org/registry/egl/sdk/docs/man/ [L,R=301]
+RewriteRule ^xhtml/index.html https://www.khronos.org/registry/egl/sdk/docs/man/ [L,R=301]
+RewriteRule ^xhtml/(.*)\.html https://www.khronos.org/registry/egl/sdk/docs/man/html/$1.xhtml [L,R=301]
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/NOTES b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/NOTES
new file mode 100644
index 0000000..710ee20
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/NOTES
@@ -0,0 +1,59 @@
+egl/ -> EGL Docbook 4.3 + OpenCL stuff
+es/ -> ES Docbook 5 + OpenCL stuff
+
+Only in es/ :
+ OK> accord.js - Javascript for accordion menus
+ OK> genheaders.py - unused
+ OK> makeindex.py - make accordion index frame
+ OK> opengl-man.css - CSS equivalent to content wrapped in old/styles-css.xsl
+ OK> start.html - start page
+ OK> ../index.html - main SDK index
+ OK> ../top.php - top bar of interface
+ OK> ../bottom.php - bottom section of interface
+ OK> style-index.css - CSS for index page
+
+Only in egl/ :
+ OK> EGL_300.png - icon
+ OK> KhronosLogo.jpg - icon
+ OK> index.html - main SDK index (equivalent to es/../index.php)
+ OK> Header.html - top bar of interface
+ OK> headBackground.jpg - background for Header.html
+ NO> TOC.html - accordion index frame, equivalent to output of makeindex.py
+ OK> Intro.html - equivalent to start.html
+ OK> copyright.inc.xsl - inserted by egl-man.xsl into each page
+ NO> ctop.xsl - no longer used?
+ NO> styles-css.xsl - equivalent to es/opengl-man.css
+ NO> maketoc.pl - replaced by es/makeindex.py
+
+Similar files:
+ OK> egl/egl-man.xsl - branched from opengl-man.xsl, should be compared to es/opengl-man.xsl
+ OK> egl/style.css - equivalent to es/style-index.css, includes a couple of other .css files
+ OK> egl/undohtml.css - identical, appears to reset CSS parameters
+ OK> egl/present.css - minor tweak to CSS class name, lev1 -> Level1
+ OK> egl/bullets*gif - accordion menu navigation bullets
+
+
+----------
+ Added from ES:
+ man/index.php - navigation framework, edited for correct title and top bar height
+ man/top.php - from ES but mostly replaced by egl/Header.html
+ man/bottom.php
+ man/headBackground.jpg - from ES
+
+ accord.js
+ bullets-{contract,end,expand}.gif - accordion menus
+ makeindex.py - with edits for EGL instead of ES
+ present.css - matching output of makeindex.py
+ Makefile - with edits from egl/Makefile
+ khronos-man.css - copied from es/opengl-man.css
+ start.html - with massive edits from egl/Intro.html
+ style-index.css - equivalent to egl/style.css
+ khronos-man.xsl - merged from egl/egl-man.xsl and es/opengl-man.xsl.
+ egl-man.xsl - stuff from old egl/egl-man.xsl not being used
+ (yet) in khronos-man.xsl.
+
+ Added from EGL:
+ EGL_300.png
+ KhronosLogo.jpg
+ undohtml.css
+ copyright.inc.xsl
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/README b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/README
new file mode 100644
index 0000000..9355121
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/README
@@ -0,0 +1 @@
+EGL reference pages, branched from /repos/ogles/branches/1.X/doc/man/xhtml
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/bottom.php b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/bottom.php
new file mode 100644
index 0000000..b90da9f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/bottom.php
@@ -0,0 +1,9 @@
+<html>
+<head>
+<title>EGL Reference Pages</title>
+</head>
+<frameset cols="280,*">
+ <frame frameborder="0" marginwidth="0" marginheight="0" src="html/indexflat.php">
+ <frame name="pagedisplay" frameborder="0" marginwidth="20" marginheight="20" src="html/start.html">
+</frameset>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/copyright.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/copyright.xml
new file mode 100644
index 0000000..e71ca98
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/copyright.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<para xmlns="http://docbook.org/ns/docbook" version="5.0">
+ <refsect3 xml:id="copyright">
+ <!-- <title>Copyright</title> -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg"/>
+ </imageobject>
+ <para>
+ Copyright &#169; 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </para>
+ </refsect3>
+</para>
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/db4-upgrade.xsl b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/db4-upgrade.xsl
new file mode 100644
index 0000000..2d3e1cd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/db4-upgrade.xsl
@@ -0,0 +1,1455 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:db = "http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ exclude-result-prefixes="exsl db"
+ version="1.0">
+
+<!--
+# ======================================================================
+# This file is part of DocBook V5.0CR5
+#
+# Copyright 2005 Norman Walsh, Sun Microsystems, Inc., and the
+# Organization for the Advancement of Structured Information
+# Standards (OASIS).
+#
+# Release: $Id: db4-upgrade.xsl 9828 2013-11-03 21:45:22Z tom_schr $
+#
+# Permission to use, copy, modify and distribute this stylesheet
+# and its accompanying documentation for any purpose and without fee
+# is hereby granted in perpetuity, provided that the above copyright
+# notice and this paragraph appear in all copies. The copyright
+# holders make no representation about the suitability of the schema
+# for any purpose. It is provided "as is" without expressed or implied
+# warranty.
+#
+# Please direct all questions, bug reports, or suggestions for changes
+# to the docbook@lists.oasis-open.org mailing list. For more
+# information, see http://www.oasis-open.org/docbook/.
+#
+# ======================================================================
+-->
+
+<xsl:param name="db5.version" select="'5.0'"/> <!-- DocBook version for the output 5.0 and 5.1 only current values -->
+<xsl:param name="db5.version.string" select="$db5.version"/> <!-- Set this if you want a local version number -->
+<xsl:param name="keep.numbered.sections" select="'0'"/> <!-- Set to 1 to keep numbered sections, default changes to recursive -->
+
+<xsl:variable name="version" select="'1.1'"/> <!-- version of this transform -->
+
+<xsl:output method="xml" encoding="utf-8" indent="no" omit-xml-declaration="yes"/>
+
+<xsl:preserve-space elements="*"/>
+<xsl:param name="rootid">
+ <xsl:choose>
+ <xsl:when test="/*/@id">
+ <xsl:value-of select="/*/@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>UNKNOWN</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:param>
+
+<xsl:param name="defaultDate" select="''"/>
+
+<xsl:template match="/">
+ <xsl:variable name="converted">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <xsl:comment>
+ <xsl:text> Converted by db4-upgrade version </xsl:text>
+ <xsl:value-of select="$version"/>
+ <xsl:text> </xsl:text>
+ </xsl:comment>
+ <xsl:text>&#10;</xsl:text>
+ <xsl:apply-templates select="exsl:node-set($converted)/*" mode="addNS"/>
+</xsl:template>
+
+<!-- Convert numbered sections into recursive sections, unless
+ $keep.numbered.sections is set to '1' -->
+<xsl:template match="sect1|sect2|sect3|sect4|sect5|section"
+ priority="200">
+ <xsl:choose>
+ <xsl:when test="$keep.numbered.sections = '1'">
+ <xsl:element name="{local-name(.)}">
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <section>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </section>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<!-- This is the template for the elements (book, article, set) that allow
+ title, subtitle, and titleabbrev before (or in) info, but not after.
+ If title, subtitle, or titleabbrev exist both inside and outside the
+ info block, everything is moved inside. Otherwise things are left as is. -->
+<xsl:template match="bookinfo|articleinfo|artheader|setinfo" priority="200">
+ <xsl:variable name="title.inside.info">
+ <xsl:choose>
+ <xsl:when test="./title or ./subtitle or ./titleabbrev">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="title.outside.info">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::title or preceding-sibling::subtitle or preceding-sibling::titleabbrev">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <info>
+ <xsl:if test="$title.inside.info = '1' and $title.outside.info = '1'">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Found title|subtitle|titleabbrev both inside and outside </xsl:text><xsl:value-of select="local-name(.)"/>
+ <xsl:text>. Moving all inside info element.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:if test="preceding-sibling::title and not(./title)">
+ <xsl:apply-templates select="preceding-sibling::title" mode="copy"/>
+ </xsl:if>
+ <xsl:if test="preceding-sibling::subtitle and not(./subtitle)">
+ <xsl:apply-templates select="preceding-sibling::subtitle" mode="copy"/>
+ </xsl:if>
+ <xsl:if test="preceding-sibling::titleabbrev and not(./titleabbrev)">
+ <xsl:apply-templates select="preceding-sibling::titleabbrev" mode="copy"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </info>
+</xsl:template>
+<!-- This is the template for the elements (all except book, article, set) that
+ allow title, subtitle, and titleabbrev after (or in) info, but not before.
+ If an info element exists, and there is a title, subtitle, or titleabbrev
+ after the info element, then the element is moved inside the info block.
+ However, if a duplicate element exists inside the info element, that element
+ is kept, and the one outside is dropped.-->
+<xsl:template match="appendixinfo|blockinfo|bibliographyinfo|glossaryinfo
+ |indexinfo|setindexinfo|chapterinfo
+ |sect1info|sect2info|sect3info|sect4info|sect5info|sectioninfo
+ |refsect1info|refsect2info|refsect3info|refsectioninfo
+ |referenceinfo|partinfo
+ |objectinfo|prefaceinfo|refsynopsisdivinfo
+ |screeninfo|sidebarinfo"
+ priority="200">
+ <xsl:variable name="title.inside.info">
+ <xsl:choose>
+ <xsl:when test="./title or ./subtitle or ./titleabbrev">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- place title/subtitle/titleabbrev inside if any of them are already inside.
+ otherwise place them before. -->
+ <xsl:choose>
+ <xsl:when test="$title.inside.info = '0'">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Keeping one or more title elements before </xsl:text><xsl:value-of select="local-name(.)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="following-sibling::title and not(./title)">
+ <xsl:apply-templates select="following-sibling::title" mode="copy"/>
+ </xsl:if>
+ <xsl:if test="following-sibling::subtitle and not(./subtitle)">
+ <xsl:apply-templates select="following-sibling::subtitle" mode="copy"/>
+ </xsl:if>
+ <xsl:if test="following-sibling::titleabbrev and not(./titleabbrev)">
+ <xsl:apply-templates select="following-sibling::titleabbrev" mode="copy"/>
+ </xsl:if>
+ <info>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </info>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Moving one or more title elements into </xsl:text><xsl:value-of select="local-name(.)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <info>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:if test="following-sibling::title and not(./title)">
+ <xsl:apply-templates select="following-sibling::title" mode="copy"/>
+ </xsl:if>
+ <xsl:if test="following-sibling::subtitle and not(./subtitle)">
+ <xsl:apply-templates select="following-sibling::subtitle" mode="copy"/>
+ </xsl:if>
+ <xsl:if test="following-sibling::titleabbrev and not(./titleabbrev)">
+ <xsl:apply-templates select="following-sibling::titleabbrev" mode="copy"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </info>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refentryinfo"
+ priority="200">
+ <info>
+ <xsl:call-template name="copy.attributes"/>
+
+ <xsl:if test="title">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Discarding title from refentryinfo!</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="titleabbrev">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Discarding titleabbrev from refentryinfo!</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="subtitle">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Discarding subtitle from refentryinfo!</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:apply-templates/>
+ </info>
+</xsl:template>
+
+<xsl:template match="refmiscinfo"
+ priority="200">
+ <refmiscinfo>
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress" select="'class'"/>
+ </xsl:call-template>
+ <xsl:if test="@class">
+ <xsl:choose>
+ <xsl:when test="@class = 'source'
+ or @class = 'version'
+ or @class = 'manual'
+ or @class = 'sectdesc'
+ or @class = 'software'">
+ <xsl:attribute name="class">
+ <xsl:value-of select="@class"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="class">
+ <xsl:value-of select="'other'"/>
+ </xsl:attribute>
+ <xsl:attribute name="otherclass">
+ <xsl:value-of select="@class"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </refmiscinfo>
+</xsl:template>
+
+<xsl:template match="corpauthor" priority="200">
+ <author>
+ <xsl:call-template name="copy.attributes"/>
+ <orgname>
+ <xsl:apply-templates/>
+ </orgname>
+ </author>
+</xsl:template>
+
+<xsl:template match="corpname" priority="200">
+ <orgname>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </orgname>
+</xsl:template>
+
+<xsl:template match="author[not(personname)]|editor[not(personname)]|othercredit[not(personname)]" priority="200">
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes"/>
+ <personname>
+ <xsl:apply-templates select="honorific|firstname|surname|othername|lineage"/>
+ </personname>
+ <xsl:apply-templates select="*[not(self::honorific|self::firstname|self::surname
+ |self::othername|self::lineage)]"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="address|programlisting|screen|funcsynopsisinfo
+ |classsynopsisinfo" priority="200">
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress" select="'format'"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+<!-- Suppress attributes with default values (i.e., added implicitly by DTD) -->
+<xsl:template match="productname" priority="200">
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress.default" select="'class=trade'"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="orderedlist" priority="200">
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress.default" select="'inheritnum=ignore continuation=restarts'"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="literallayout" priority="200">
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress" select="'format'"/><!-- Dropped entirely in DB5 -->
+ <xsl:with-param name="suppress.default" select="'class=normal'"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="equation" priority="200">
+ <xsl:choose>
+ <xsl:when test="not(title)">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param
+ name="message"
+ >Convert equation without title to informal equation.</xsl:with-param>
+ </xsl:call-template>
+ <informalequation>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </informalequation>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="imagedata|videodata|audiodata|textdata" priority="200">
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress" select="'srccredit'"/>
+ </xsl:call-template>
+ <xsl:if test="@srccredit">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Check conversion of srccredit </xsl:text>
+ <xsl:text>(othercredit="srccredit").</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <info>
+ <othercredit class="other" otherclass="srccredit">
+ <orgname>???</orgname>
+ <contrib>
+ <xsl:value-of select="@srccredit"/>
+ </contrib>
+ </othercredit>
+ </info>
+ </xsl:if>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="sgmltag" priority="200">
+ <tag>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:if test="@class = 'sgmlcomment'">
+ <xsl:attribute name="class">comment</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </tag>
+</xsl:template>
+
+<xsl:template match="inlinegraphic[@format='linespecific']" priority="210">
+ <textobject>
+ <textdata>
+ <xsl:call-template name="copy.attributes"/>
+ </textdata>
+ </textobject>
+</xsl:template>
+
+<xsl:template match="inlinegraphic" priority="200">
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata>
+ <xsl:call-template name="copy.attributes"/>
+ </imagedata>
+ </imageobject>
+ </inlinemediaobject>
+</xsl:template>
+
+<xsl:template match="graphic[@format='linespecific']" priority="210">
+ <mediaobject>
+ <textobject>
+ <textdata>
+ <xsl:call-template name="copy.attributes"/>
+ </textdata>
+ </textobject>
+ </mediaobject>
+</xsl:template>
+
+<xsl:template match="graphic" priority="200">
+ <mediaobject>
+ <imageobject>
+ <imagedata>
+ <xsl:call-template name="copy.attributes"/>
+ </imagedata>
+ </imageobject>
+ </mediaobject>
+</xsl:template>
+
+<xsl:template match="pubsnumber" priority="200">
+ <biblioid class="pubsnumber">
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </biblioid>
+</xsl:template>
+
+<xsl:template match="invpartnumber" priority="200">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Converting invpartnumber to biblioid otherclass="invpartnumber".</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <biblioid class="other" otherclass="invpartnumber">
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </biblioid>
+</xsl:template>
+
+<xsl:template match="contractsponsor" priority="200">
+ <xsl:variable name="contractnum"
+ select="preceding-sibling::contractnum|following-sibling::contractnum"/>
+
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Converting contractsponsor to othercredit="contractsponsor".</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <othercredit class="other" otherclass="contractsponsor">
+ <orgname>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </orgname>
+ <xsl:for-each select="$contractnum">
+ <contrib role="contractnum">
+ <xsl:apply-templates select="node()"/>
+ </contrib>
+ </xsl:for-each>
+ </othercredit>
+</xsl:template>
+
+<xsl:template match="contractnum" priority="200">
+ <xsl:if test="not(preceding-sibling::contractsponsor
+ |following-sibling::contractsponsor)
+ and not(preceding-sibling::contractnum)">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Converting contractnum to othercredit="contractnum".</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <othercredit class="other" otherclass="contractnum">
+ <orgname>???</orgname>
+ <xsl:for-each select="self::contractnum
+ |preceding-sibling::contractnum
+ |following-sibling::contractnum">
+ <contrib>
+ <xsl:apply-templates select="node()"/>
+ </contrib>
+ </xsl:for-each>
+ </othercredit>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="isbn|issn" priority="200">
+ <biblioid class="{local-name(.)}">
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </biblioid>
+</xsl:template>
+
+<xsl:template match="biblioid[count(*) = 1
+ and ulink
+ and normalize-space(text()) = '']" priority="200">
+ <biblioid xlink:href="{ulink/@url}">
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates select="ulink/node()"/>
+ </biblioid>
+</xsl:template>
+
+<xsl:template match="authorblurb" priority="200">
+ <personblurb>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </personblurb>
+</xsl:template>
+
+<xsl:template match="collabname" priority="200">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Check conversion of collabname </xsl:text>
+ <xsl:text>(orgname role="collabname").</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <orgname role="collabname">
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </orgname>
+</xsl:template>
+
+<xsl:template match="modespec" priority="200">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Discarding modespec (</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>).</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="mediaobjectco" priority="200">
+ <mediaobject>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates/>
+ </mediaobject>
+</xsl:template>
+
+<xsl:template match="remark">
+ <!-- get rid of any embedded markup if the version is 5.0. If it's > 5.0, leave markup in. -->
+ <remark>
+ <xsl:copy-of select="@*"/>
+ <xsl:choose>
+ <xsl:when test="$db5.version>5.0">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </remark>
+</xsl:template>
+
+<xsl:template match="biblioentry/title
+ |bibliomset/title
+ |biblioset/title
+ |bibliomixed/title" priority="400">
+ <citetitle>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates/>
+ </citetitle>
+</xsl:template>
+
+<xsl:template match="biblioentry/titleabbrev|biblioentry/subtitle
+ |bibliomset/titleabbrev|bibliomset/subtitle
+ |biblioset/titleabbrev|biblioset/subtitle
+ |bibliomixed/titleabbrev|bibliomixed/subtitle"
+ priority="400">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="biblioentry/contrib
+ |bibliomset/contrib
+ |bibliomixed/contrib" priority="200">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Check conversion of contrib </xsl:text>
+ <xsl:text>(othercontrib="contrib").</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <othercredit class="other" otherclass="contrib">
+ <orgname>???</orgname>
+ <contrib>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </contrib>
+ </othercredit>
+</xsl:template>
+
+<xsl:template match="link" priority="200">
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="ulink" priority="200">
+ <xsl:choose>
+ <xsl:when test="node()">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Converting ulink to link.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <link xlink:href="{@url}">
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress" select="'url'"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </link>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Converting ulink to uri.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <uri xlink:href="{@url}">
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress" select="'url'"/>
+ </xsl:call-template>
+ <xsl:value-of select="@url"/>
+ </uri>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="olink" priority="200">
+ <xsl:if test="@linkmode">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Discarding linkmode on olink.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="@targetdocent">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Converting olink targetdocent to targetdoc.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <olink targetdoc="{unparsed-entity-uri(@targetdocent)}">
+ <xsl:for-each select="@*">
+ <xsl:if test="name(.) != 'targetdocent'
+ and name(.) != 'linkmode'">
+ <xsl:copy/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </olink>
+ </xsl:when>
+ <xsl:otherwise>
+ <olink>
+ <xsl:for-each select="@*">
+ <xsl:if test="name(.) != 'linkmode'">
+ <xsl:copy/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </olink>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="biblioentry/firstname
+ |biblioentry/surname
+ |biblioentry/othername
+ |biblioentry/lineage
+ |biblioentry/honorific
+ |bibliomset/firstname
+ |bibliomset/surname
+ |bibliomset/othername
+ |bibliomset/lineage
+ |bibliomset/honorific" priority="200">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::firstname
+ |preceding-sibling::surname
+ |preceding-sibling::othername
+ |preceding-sibling::lineage
+ |preceding-sibling::honorific">
+ <!-- nop -->
+ </xsl:when>
+ <xsl:otherwise>
+ <personname>
+ <xsl:apply-templates select="../firstname
+ |../surname
+ |../othername
+ |../lineage
+ |../honorific" mode="copy"/>
+ </personname>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="areaset" priority="200">
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress" select="'coords'"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="date|pubdate" priority="200">
+ <xsl:variable name="rp1" select="substring-before(normalize-space(.), ' ')"/>
+ <xsl:variable name="rp2"
+ select="substring-before(substring-after(normalize-space(.), ' '),
+ ' ')"/>
+ <xsl:variable name="rp3"
+ select="substring-after(substring-after(normalize-space(.), ' '), ' ')"/>
+
+ <xsl:variable name="p1">
+ <xsl:choose>
+ <xsl:when test="contains($rp1, ',')">
+ <xsl:value-of select="substring-before($rp1, ',')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$rp1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="p2">
+ <xsl:choose>
+ <xsl:when test="contains($rp2, ',')">
+ <xsl:value-of select="substring-before($rp2, ',')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$rp2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="p3">
+ <xsl:choose>
+ <xsl:when test="contains($rp3, ',')">
+ <xsl:value-of select="substring-before($rp3, ',')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$rp3"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="date">
+ <xsl:choose>
+ <xsl:when test="string($p1+1) != 'NaN' and string($p3+1) != 'NaN'">
+ <xsl:choose>
+ <xsl:when test="$p2 = 'Jan' or $p2 = 'January'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-01-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p2 = 'Feb' or $p2 = 'February'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-02-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p2 = 'Mar' or $p2 = 'March'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-03-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p2 = 'Apr' or $p2 = 'April'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-04-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p2 = 'May'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-05-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p2 = 'Jun' or $p2 = 'June'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-06-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p2 = 'Jul' or $p2 = 'July'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-07-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p2 = 'Aug' or $p2 = 'August'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-08-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p2 = 'Sep' or $p2 = 'September'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-09-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p2 = 'Oct' or $p2 = 'October'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-10-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p2 = 'Nov' or $p2 = 'November'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-11-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p2 = 'Dec' or $p2 = 'December'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-12-</xsl:text>
+ <xsl:number value="$p1" format="01"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="string($p2+1) != 'NaN' and string($p3+1) != 'NaN'">
+ <xsl:choose>
+ <xsl:when test="$p1 = 'Jan' or $p1 = 'January'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-01-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p1 = 'Feb' or $p1 = 'February'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-02-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p1 = 'Mar' or $p1 = 'March'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-03-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p1 = 'Apr' or $p1 = 'April'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-04-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p1 = 'May'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-05-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p1 = 'Jun' or $p1 = 'June'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-06-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p1 = 'Jul' or $p1 = 'July'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-07-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p1 = 'Aug' or $p1 = 'August'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-08-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p1 = 'Sep' or $p1 = 'September'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-09-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p1 = 'Oct' or $p1 = 'October'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-10-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p1 = 'Nov' or $p1 = 'November'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-11-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:when test="$p1 = 'Dec' or $p1 = 'December'">
+ <xsl:number value="$p3" format="0001"/>
+ <xsl:text>-12-</xsl:text>
+ <xsl:number value="$p2" format="01"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="normalize-space($date) != normalize-space(.)">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Converted </xsl:text>
+ <xsl:value-of select="normalize-space(.)"/>
+ <xsl:text> into </xsl:text>
+ <xsl:value-of select="$date"/>
+ <xsl:text> for </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:value-of select="$date"/>
+ </xsl:copy>
+ </xsl:when>
+
+ <xsl:when test="$defaultDate != ''">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Unparseable date: </xsl:text>
+ <xsl:value-of select="normalize-space(.)"/>
+ <xsl:text> in </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text> (Using default: </xsl:text>
+ <xsl:value-of select="$defaultDate"/>
+ <xsl:text>)</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:copy-of select="$defaultDate"/>
+ <xsl:comment>
+ <xsl:value-of select="."/>
+ </xsl:comment>
+ </xsl:copy>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- these don't really matter anymore
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Unparseable date: </xsl:text>
+ <xsl:value-of select="normalize-space(.)"/>
+ <xsl:text> in </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ -->
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="title|subtitle|titleabbrev" priority="300">
+ <xsl:variable name="local.name" select="local-name(.)"/>
+ <xsl:variable name="parent.name" select="local-name(..)"/>
+
+ <!-- First three tests drop element if parent ZZZ already has
+ ZZZinfo/title (or subtitle, or titleabbrev). -->
+ <xsl:choose>
+ <xsl:when test="../*[local-name(.) = concat($parent.name, 'info')]/*[local-name(.) = $local.name]">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Check </xsl:text>
+ <xsl:value-of select="$parent.name"/>
+ <xsl:text> title.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- Before 4.0, <articleinfo> was known as <artheader> -->
+ <xsl:when test="$parent.name = 'article' and ../artheader/*[local-name(.) = $local.name]">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Check </xsl:text>
+ <xsl:value-of select="$parent.name"/>
+ <xsl:text> title.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="../blockinfo/*[local-name(.) = $local.name]">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Check </xsl:text>
+ <xsl:value-of select="$parent.name"/>
+ <xsl:text> title.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- always drop title, subtitle, and titleabbrev from refentryinfo -->
+ <xsl:when test="$parent.name = 'refentryinfo'">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Removing title in refentryinfo.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- Also drop title, subtitle, and titleabbrev when they appear after info.
+ The title is picked up and moved either into or before the info element
+ in the templates that handle info elements. -->
+ <xsl:when test="preceding-sibling::*[local-name(.) = concat($parent.name, 'info')]">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Removing </xsl:text><xsl:value-of select="$local.name"/>
+ <xsl:text> after </xsl:text><xsl:value-of select="$parent.name"/><xsl:text>info. Moved before or inside info.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- this covers block elements that use blockinfo-->
+ <xsl:when test="preceding-sibling::blockinfo">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Removing </xsl:text><xsl:value-of select="$local.name"/>
+ <xsl:text> after blockinfo. Moved before or inside info.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- The next clause removes title, subtitle, or titleabbrev if it was
+ moved inside the info block. Only happens when one or more of these
+ elements occurs both inside and outside the info element. -->
+ <xsl:when test="following-sibling::bookinfo[title|subtitle|titleabbrev] or
+ following-sibling::articleinfo[title|subtitle|titleabbrev] or
+ following-sibling::artheader[title|subtitle|titleabbrev] or
+ following-sibling::setinfo[title|subtitle|titleabbrev]">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Removing </xsl:text><xsl:value-of select="$local.name"/>
+ <xsl:text>. Has been moved inside info.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- Allow abstract inside valid biblio* elements, and inside info elements, otherwise drop -->
+<xsl:template match="abstract" priority="300">
+ <xsl:choose>
+ <xsl:when test="not(contains(name(parent::*),'info'))
+ and not(parent::biblioentry) and not(parent::bibliomixed)
+ and not(parent::bibliomset) and not(parent::biblioset)">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>CHECK abstract: removed from output (invalid location in 5.0).</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="copy"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm">
+ <!-- don't copy the defaulted significance='normal' attribute -->
+ <indexterm>
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress">
+ <xsl:if test="@significance = 'normal'">significance</xsl:if>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </indexterm>
+</xsl:template>
+
+<xsl:template match="ackno" priority="200">
+ <acknowledgements>
+ <xsl:copy-of select="@*"/>
+ <para>
+ <xsl:apply-templates/>
+ </para>
+ </acknowledgements>
+</xsl:template>
+
+<xsl:template match="lot|lotentry|tocback|tocchap|tocfront|toclevel1|
+ toclevel2|toclevel3|toclevel4|toclevel5|tocpart" priority="200">
+ <tocdiv>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates/>
+ </tocdiv>
+</xsl:template>
+
+<xsl:template match="action" priority="200">
+ <phrase remap="action">
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </phrase>
+</xsl:template>
+
+<xsl:template match="beginpage" priority="200">
+ <xsl:comment> beginpage pagenum=<xsl:value-of select="@pagenum"/> </xsl:comment>
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Replacing beginpage with comment</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="structname|structfield" priority="200">
+ <varname remap="{local-name(.)}">
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </varname>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- glossterm and term have broader content models in 4.x than 5.0.
+ Warn when an unsupported element is found under glossterm.
+ Because the synopsis elements can contain things that phrase cannot,
+ leave them as is and warn.
+ For other elements, change them into phrase recursively and lose attributes.
+-->
+<xsl:template match="glossterm|term">
+ <xsl:element name="{local-name(.)}">
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates mode="clean-terms"/>
+ </xsl:element>
+</xsl:template>
+
+<!-- Any other elements inside term or glossterm which doesn't have a
+ template rule are copied
+-->
+<xsl:template match="*" mode="clean-terms">
+ <xsl:apply-templates select="." mode="copy"/>
+</xsl:template>
+
+
+<!-- The synopsis elements have child elements that don't work inside phrase, plus
+ they have attributes that shouldn't be lost. So, leave as is, but warn. -->
+<xsl:template match="classsynopsis|cmdsynopsis|constructorsynopsis
+ |destructorsynopsis|fieldsynopsis|methodsynopsis|synopsis" mode="clean-terms">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>CHECK OUTPUT: Found </xsl:text><xsl:value-of select="local-name(.)"/>
+ <xsl:text> inside </xsl:text><xsl:value-of select="local-name(..)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:element name="{local-name(.)}">
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<!-- The following elements probably can be safely turned into phrase recursively -->
+<xsl:template match="authorinitials|corpcredit|interface|medialabel|othercredit|revhistory" mode="clean-terms">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Replacing </xsl:text><xsl:value-of select="local-name(.)"/>
+ <xsl:text> inside </xsl:text><xsl:value-of select="local-name(..)"/>
+ <xsl:text> with phrase.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <phrase remap="{local-name(.)}">
+ <!-- Don't copy attributes -->
+ <xsl:apply-templates mode="make-phrase"/>
+ </phrase>
+</xsl:template>
+
+<!-- affiliation can appear in a much smaller number of elements in 5.0. But, it contains
+ elements that cannot appear in a phrase. So, replace all child elements, recursively,
+ with <phrase remap="element name"... Don't keep attributes, which won't work on phrase. -->
+
+<xsl:template match="affiliation[not(parent::author) and not(parent::collab) and not(parent::editor) and not(parent::org) and not(parent::othercredit) and not(parent::person)]">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>CHECK OUTPUT: Converting </xsl:text><xsl:value-of select="local-name(.)"/>
+ <xsl:text> to phrase in </xsl:text><xsl:value-of select="local-name(..)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <phrase remap="{local-name(.)}">
+ <!-- Don't copy attributes -->
+ <xsl:apply-templates mode="make-phrase"/>
+ </phrase>
+</xsl:template>
+
+<!-- This template recursively changes an element with remap="name of element".
+ Does this recursively through children. -->
+<xsl:template match="*" mode="make-phrase">
+ <phrase remap="{local-name(.)}">
+ <!-- Don't copy attributes -->
+ <xsl:apply-templates mode="make-phrase"/>
+ </phrase>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<!-- 6 Feb 2008, ndw changed mode=copy so that it only copies the first level,
+ then it switches back to "normal" mode so that other rewriting templates
+ catch embedded fixes -->
+
+<!--
+<xsl:template match="ulink" priority="200" mode="copy">
+ <xsl:choose>
+ <xsl:when test="node()">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Converting ulink to phrase.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <phrase xlink:href="{@url}">
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress" select="'url'"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </phrase>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Converting ulink to uri.</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <uri xlink:href="{@url}">
+ <xsl:call-template name="copy.attributes">
+ <xsl:with-param name="suppress" select="'url'"/>
+ </xsl:call-template>
+ <xsl:value-of select="@url"/>
+ </uri>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sgmltag" priority="200" mode="copy">
+ <tag>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </tag>
+</xsl:template>
+-->
+
+<xsl:template match="*" mode="copy">
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+<!--
+<xsl:template match="comment()|processing-instruction()|text()" mode="copy">
+ <xsl:copy/>
+</xsl:template>
+-->
+
+<!-- ====================================================================== -->
+
+<xsl:template match="*">
+ <xsl:copy>
+ <xsl:call-template name="copy.attributes"/>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="comment()|processing-instruction()|text()">
+ <xsl:copy/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="copy.attributes">
+ <xsl:param name="src" select="."/>
+ <xsl:param name="suppress" select="''"/>
+ <xsl:param name="suppress.default" select="''"/>
+
+ <xsl:for-each select="$src/@*">
+ <xsl:variable name="suppressed.value">
+ <xsl:choose>
+ <xsl:when test="not(contains($suppress.default, concat(local-name(.),'=')))">
+ <xsl:text>this-value-never-matches</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before(substring-after(concat($suppress.default,' '), concat(local-name(.),'=')),' ')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'moreinfo'">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Discarding moreinfo on </xsl:text>
+ <xsl:value-of select="local-name($src)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'lang'">
+ <xsl:attribute name="xml:lang">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'id'">
+ <xsl:attribute name="xml:id">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$suppress = local-name(.)"/>
+ <xsl:when test=". = $suppressed.value"/>
+ <xsl:when test="local-name(.) = 'float'">
+ <xsl:choose>
+ <xsl:when test=". = '1'">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Discarding float on </xsl:text>
+ <xsl:value-of select="local-name($src)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:if test="not($src/@floatstyle)">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Adding floatstyle='normal' on </xsl:text>
+ <xsl:value-of select="local-name($src)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:attribute name="floatstyle">
+ <xsl:text>normal</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test=". = '0'">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Discarding float on </xsl:text>
+ <xsl:value-of select="local-name($src)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Discarding float on </xsl:text>
+ <xsl:value-of select="local-name($src)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:if test="not($src/@floatstyle)">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Adding floatstyle='</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>' on </xsl:text>
+ <xsl:value-of select="local-name($src)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:attribute name="floatstyle">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'entityref'">
+ <xsl:attribute name="fileref">
+ <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+ </xsl:attribute>
+ </xsl:when>
+
+ <xsl:when test="local-name($src) = 'simplemsgentry'
+ and local-name(.) = 'audience'">
+ <xsl:attribute name="msgaud">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="local-name($src) = 'simplemsgentry'
+ and local-name(.) = 'origin'">
+ <xsl:attribute name="msgorig">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="local-name($src) = 'simplemsgentry'
+ and local-name(.) = 'level'">
+ <xsl:attribute name="msglevel">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:when>
+
+ <!-- * for upgrading XSL litprog params documentation -->
+ <xsl:when test="local-name($src) = 'refmiscinfo'
+ and local-name(.) = 'role'
+ and . = 'type'
+ ">
+ <xsl:call-template name="emit-message">
+ <xsl:with-param name="message">
+ <xsl:text>Converting refmiscinfo@role=type to </xsl:text>
+ <xsl:text>@class=other,otherclass=type</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:attribute name="class">other</xsl:attribute>
+ <xsl:attribute name="otherclass">type</xsl:attribute>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:copy/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template match="*" mode="addNS">
+ <xsl:choose>
+ <xsl:when test="namespace-uri(.) = ''">
+ <xsl:element name="{local-name(.)}"
+ namespace="http://docbook.org/ns/docbook">
+ <xsl:if test="not(ancestor::*[namespace-uri(.)=''])">
+ <xsl:attribute name="version"><xsl:value-of select="$db5.version.string"/></xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="addNS"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy>
+ <xsl:if test="namespace-uri(.) = 'http://docbook.org/ns/docbook' and
+ not(ancestor::*[namespace-uri(.)='http://docbook.org/ns/docbook'])">
+ <xsl:attribute name="version"><xsl:value-of select="$db5.version.string"/></xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="addNS"/>
+ </xsl:copy>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="comment()|processing-instruction()|text()" mode="addNS">
+ <xsl:copy/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="emit-message">
+ <xsl:param name="message"/>
+ <xsl:message>
+ <xsl:value-of select="$message"/>
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="$rootid"/>
+ <xsl:text>)</xsl:text>
+ </xsl:message>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglBindAPI.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglBindAPI.xml
new file mode 100644
index 0000000..3dc1b20
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglBindAPI.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglBindAPI">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglBindAPI</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglBindAPI</refname>
+ <refpurpose>Set the current rendering API</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv><title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglBindAPI</function></funcdef>
+ <paramdef>EGLenum <parameter>api</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>api</parameter></term>
+ <listitem>
+ <para>
+ Specifies the client API to bind, one of
+ <constant>EGL_OPENGL_API</constant>,
+ <constant>EGL_OPENGL_ES_API</constant>, or
+ <constant>EGL_OPENVG_API</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglBindAPI</function> defines the current
+ rendering API for EGL in the thread it is called from. The
+ current rendering API is one of the client rendering APIs
+ supported by the EGL implementation, and affects the
+ behavior of other EGL commands including
+ <function>eglCreateContext</function>,
+ <function>eglGetCurrentContext</function>,
+ <function>eglGetCurrentDisplay</function>,
+ <function>eglGetCurrentSurface</function>,
+ <function>eglMakeCurrent</function>,
+ <function>eglWaitClient</function>, and
+ <function>eglWaitNative</function>.
+ </para>
+ <para>
+ If <parameter>api</parameter> is
+ <constant>EGL_OPENGL_API</constant>, the current rendering
+ API is set to the OpenGL API.
+ </para>
+ <para>
+ If <parameter>api</parameter> is
+ <constant>EGL_OPENGL_ES_API</constant>, the current
+ rendering API is set to the OpenGL ES API.
+ </para>
+ <para>
+ If <parameter>api</parameter> is
+ <constant>EGL_OPENVG_API</constant>, the current rendering
+ API is set to the OpenVG API.
+ </para>
+ <para>
+ If an error occurs, the current rendering API is unchanged.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ <function>eglBindAPI</function> and the corresponding
+ <constant>EGL_OPENGL_ES_API</constant> and
+ <constant>EGL_OPENVG_API</constant>
+ <parameter>api</parameter> parameters are supported only if
+ the EGL version is 1.2 or greater. The
+ <constant>EGL_OPENGL_API</constant> parameter is supported
+ only if the EGL version is 1.4 or greater.
+ </para>
+ <para>
+ The initial value of the current rendering API is
+ <constant>EGL_OPENGL_ES_API</constant> unless OpenGL ES is
+ not supported by an implementation, in which case the
+ initial value is <constant>EGL_NONE</constant> (however,
+ <constant>EGL_NONE</constant> is not a valid
+ <parameter>api</parameter> parameter to
+ <function>eglBindAPI</function>).
+ </para>
+ <para>
+ The current rendering API can be queried by calling
+ <function>eglQueryAPI</function>.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure.
+ </para>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>api</parameter> is not one of the accepted
+ tokens, or if the specified client API is not supported by
+ the EGL implementation.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQueryAPI</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglBindTexImage.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglBindTexImage.xml
new file mode 100644
index 0000000..70d05c7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglBindTexImage.xml
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglBindTexImage">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglBindTexImage</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglBindTexImage</refname>
+ <refpurpose>
+ Defines a two-dimensional texture image
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglBindTexImage</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ <paramdef>EGLint <parameter>buffer</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buffer</parameter></term>
+ <listitem><para>Specifies the texture image data.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ The texture image consists of the image data in <parameter>buffer</parameter> for the specified surface, and need not be copied.
+ </para>
+ <para>
+ The texture target, the texture format and the size of the texture components are derived from
+ attributes of the specified surface, which must be a pbuffer supporting one of the
+ <constant>EGL_BIND_TO_TEXTURE_RGB</constant> or <constant>EGL_BIND_TO_TEXTURE_RGBA</constant> attributes.
+ </para>
+ <para>
+ The pbuffer attribute <constant>EGL_TEXTURE_FORMAT</constant> determines the base internal format
+ of the texture.
+ </para>
+ <para>
+ The texture target is derived from the <constant>EGL_TEXTURE_TARGET</constant> attribute of surface.
+ If the attribute value is <constant>EGL_TEXTURE_2D</constant>, then <parameter>buffer</parameter> defines a texture for
+ the two-dimensional texture object which is bound to the current context (hereafter
+ referred to as the current texture object).
+ </para>
+ <para>
+ If <parameter>display</parameter> and <parameter>surface</parameter> are the display and surface for the calling thread's current
+ context, <function>eglBindTexImage</function> performs an implicit <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>.
+ For other surfaces, <function>eglBindTexImage</function> waits for all effects from previously issued OpenGL ES commands
+ drawing to the surface to complete before defining the texture image, as
+ though <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry> were called on the last context to which that surface were bound.
+ </para>
+ <para>
+ After <function>eglBindTexImage</function> is called, the specified surface is no longer available
+ for reading or writing. Any read operation, such as <citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry> or
+ <citerefentry><refentrytitle>eglCopyBuffers</refentrytitle></citerefentry>, which reads values from any of the surface's color buffers or ancillary
+ buffers will produce indeterminate results. In addition, draw operations that are
+ done to the surface before its color buffer is released from the texture produce indeterminate
+ results. Specifically, if the surface is current to a context and thread
+ then rendering commands will be processed and the context state will be updated,
+ but the surface may or may not be written.
+ </para>
+ <para>
+ Texture mipmap levels are automatically generated when all of the following
+ conditions are met while calling <function>eglBindTexImage</function>:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The <constant>EGL_MIPMAP_TEXTURE</constant> attribute of the pbuffer being bound is
+ <constant>EGL_TRUE</constant>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The OpenGL ES texture parameter <constant>GL_GENERATE_MIPMAP</constant> is <constant>GL_TRUE</constant> for
+ the currently bound texture.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The value of the <constant>EGL_MIPMAP_LEVEL</constant> attribute of the pbuffer being bound is
+ equal to the value of the texture parameter <constant>GL_TEXTURE_BASE_LEVEL</constant>.
+ In this case, additional mipmap levels are generated as described in section 3.8
+ of the OpenGL ES 1.1 Specification.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ In this case, additional mipmap levels are generated as described in section 3.8
+ of the OpenGL ES 1.1 Specification.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry> has no effect if it is
+ called on a bound surface.
+ </para>
+ <para>
+ Any existing images associated with the different mipmap levels of the texture object
+ are freed (it is as if <citerefentry><refentrytitle>glTexImage</refentrytitle></citerefentry>
+ was called with an image of zero width).
+ </para>
+ <para>
+ The color buffer is bound to a texture object. If the texture object is
+ shared between contexts, then the color buffer is also shared. If a texture object is
+ deleted before <citerefentry><refentrytitle>eglReleaseTexImage</refentrytitle></citerefentry> is called, then the color buffer is released and
+ the surface is made available for reading and writing.
+ </para>
+ <para>
+ It is not an error to call <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry> or
+ <citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry> to replace an
+ image of a texture object that has a color buffer bound to it. However, these calls
+ will cause the color buffer to be released back to the surface and new memory will
+ be allocated for the texture. Note that the color buffer is released even if the image
+ that is being defined is a mipmap level that was not defined by the color buffer.
+ </para>
+ <para>
+ <function>eglBindTexImage</function> is ignored if there is no current rendering context.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_BAD_ACCESS</constant> is generated if
+ <parameter>buffer</parameter> is already bound to a texture.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ surface attribute <constant>EGL_TEXTURE_FORMAT</constant> is
+ set to <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>buffer</parameter> is not a valid buffer
+ (currently only <constant>EGL_BACK_BUFFER</constant> may be
+ specified).
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL surface, or is
+ not a pbuffer surface supporting texture binding.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglReleaseTexImage</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglChooseConfig.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglChooseConfig.xml
new file mode 100644
index 0000000..09fd3d7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglChooseConfig.xml
@@ -0,0 +1,929 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglChooseConfig">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglChooseConfig</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglChooseConfig</refname>
+ <refpurpose>
+ return a list of EGL frame buffer configurations that match specified attributes
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglChooseConfig</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ <paramdef>EGLConfig * <parameter>configs</parameter></paramdef>
+ <paramdef>EGLint <parameter>config_size</parameter></paramdef>
+ <paramdef>EGLint * <parameter>num_config</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>Specifies attributes required to match by configs.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>configs</parameter></term>
+ <listitem><para>Returns an array of frame buffer configurations.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config_size</parameter></term>
+ <listitem><para>Specifies the size of the array of frame buffer configurations.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>num_config</parameter></term>
+ <listitem><para>Returns the number of frame buffer configurations returned.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglChooseConfig</function> returns in
+ <parameter>configs</parameter> a list of all
+ <acronym>EGL</acronym> frame buffer configurations that
+ match the attributes specified in
+ <parameter>attrib_list</parameter>. The returned
+ <type>EGLConfig</type>s can be used in any
+ <acronym>EGL</acronym> function that requires an
+ <acronym>EGL</acronym> frame buffer configuration.
+ </para>
+ <para>
+ If <parameter>configs</parameter> is not
+ <constant>NULL</constant>, up to
+ <parameter>config_size</parameter> configs will be returned
+ in the array pointed to by <parameter>configs</parameter>.
+ The number of configs actually returned will be returned in
+ *<parameter>num_config</parameter>.
+ </para>
+ <para>
+ If <parameter>configs</parameter> is
+ <constant>NULL</constant>, no configs will be returned in
+ <parameter>configs</parameter>. Instead, the total number of
+ configs matching <parameter>attrib_list</parameter> will be
+ returned in *<parameter>num_config</parameter>. In this case
+ <parameter>config_size</parameter> is ignored. This form of
+ <function>eglChooseConfig</function> is used to determine
+ the number of matching frame buffer configurations, followed
+ by allocating an array of <type>EGLConfig</type> to pass
+ into another call to <function>eglChooseConfig</function>
+ with all other parameters unchanged.
+ </para>
+ <para>
+ All attributes in <parameter>attrib_list</parameter>,
+ including boolean attributes, are immediately followed by
+ the corresponding desired value. The list is terminated with
+ <constant>EGL_NONE</constant>. If an attribute is not
+ specified in <parameter>attrib_list</parameter> then the
+ default value (see below) is used (and the attribute is said
+ to be specified implicitly). For example, if
+ <constant>EGL_DEPTH_SIZE</constant> is not specified then it
+ is assumed to be zero. For some attributes, the default is
+ <constant>EGL_DONT_CARE</constant> meaning that any value is
+ OK for this attribute, so the attribute will not be checked.
+ </para>
+ <para>
+ Attributes are matched in an attribute-specific manner. Some
+ of the attributes, such as <constant>EGL_LEVEL</constant>,
+ must match the specified value exactly. Others, such as,
+ <constant>EGL_RED_SIZE</constant> must meet or exceed the
+ specified minimum values. If more than one EGL frame buffer
+ configuration matching all attributes is found, then a list
+ of configurations, sorted according to the ``best'' match
+ criteria, is returned. The match criteria for each attribute
+ and the exact sorting order is defined below.
+ </para>
+ <para>
+ For the bitmask attributes
+ <constant>EGL_CONFORMANT</constant>,
+ <constant>EGL_RENDERABLE_TYPE</constant>, and
+ <constant>EGL_SURFACE_TYPE</constant>, only the nonzero bits
+ of the mask are considered when matching. Any bits that are
+ zero in the specified bitmask attribute value may be either
+ zero or one in the resulting config's attribute value.
+ </para>
+ <para>
+ Attributes which may appear in
+ <parameter>attrib_list</parameter>, and their descriptions
+ and allowed values, are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_ALPHA_MASK_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired alpha mask buffer size, in
+ bits. The smallest alpha mask buffers of at least
+ the specified size are preferred. The default value
+ is zero.
+ </para>
+ <para>
+ The alpha mask buffer is used only by OpenGL and
+ OpenGL ES client APIs.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_ALPHA_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the alpha component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest alpha component size
+ are preferred. Otherwise, color buffers with the
+ largest alpha component of at least the specified
+ size are preferred. The default value is zero.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BIND_TO_TEXTURE_RGB</constant></term>
+ <listitem><para>
+ Must be followed by
+ <constant>EGL_DONT_CARE</constant>,
+ <constant>EGL_TRUE</constant>, or
+ <constant>EGL_FALSE</constant>.
+ If <constant>EGL_TRUE</constant> is specified, then
+ only frame buffer configurations that support
+ binding of color buffers to an OpenGL ES RGB texture
+ will be considered. Currently only frame buffer
+ configurations that support pbuffers allow this. The
+ default value is <constant>EGL_DONT_CARE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BIND_TO_TEXTURE_RGBA</constant></term>
+ <listitem><para>
+ Must be followed by one of
+ <constant>EGL_DONT_CARE</constant>,
+ <constant>EGL_TRUE</constant>, or
+ <constant>EGL_FALSE</constant>.
+ If <constant>EGL_TRUE</constant> is specified, then
+ only frame buffer configurations that support
+ binding of color buffers to an OpenGL ES RGBA
+ texture will be considered. Currently only frame
+ buffer configurations that support pbuffers allow
+ this. The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BLUE_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the blue component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest blue component size
+ are preferred. Otherwise, color buffers with the
+ largest blue component of at least the specified
+ size are preferred. The default value is zero.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BUFFER_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired color buffer size, in bits.
+ The smallest color buffers of at least the specified
+ size are preferred. The default value is zero.
+ </para>
+ <para>
+ The color buffer size is the sum of
+ <constant>EGL_RED_SIZE</constant>,
+ <constant>EGL_GREEN_SIZE</constant>,
+ <constant>EGL_BLUE_SIZE</constant>, and
+ <constant>EGL_ALPHA_SIZE</constant>, and does not
+ include any padding bits which may be present in the
+ pixel format. It is usually preferable to specify
+ desired sizes for these color components
+ individually.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_COLOR_BUFFER_TYPE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by one of
+ <constant>EGL_RGB_BUFFER</constant> or
+ <constant>EGL_LUMINANCE_BUFFER</constant>.
+ </para>
+ <para>
+ <constant>EGL_RGB_BUFFER</constant> indicates
+ an RGB color buffer; in this case,
+ attributes <constant>EGL_RED_SIZE</constant>,
+ <constant>EGL_GREEN_SIZE</constant> and
+ <constant>EGL_BLUE_SIZE</constant> must be non-zero, and
+ <constant>EGL_LUMINANCE_SIZE</constant> must be zero.
+ </para>
+ <para>
+ <constant>EGL_LUMINANCE_BUFFER</constant> indicates a luminance color
+ buffer. In this case <constant>EGL_RED_SIZE</constant>,
+ <constant>EGL_GREEN_SIZE</constant>,
+ <constant>EGL_BLUE_SIZE</constant> must be zero, and
+ <constant>EGL_LUMINANCE_SIZE</constant> must be non-zero.
+ </para>
+ <para>
+ For both RGB and luminance color buffers,
+ <constant>EGL_ALPHA_SIZE</constant> may be zero or
+ non-zero.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_CAVEAT</constant></term>
+ <listitem>
+ <para>
+ Must be followed by
+ <constant>EGL_DONT_CARE</constant>,
+ <constant>EGL_NONE</constant>,
+ <constant>EGL_SLOW_CONFIG</constant>, or
+ <constant>EGL_NON_CONFORMANT_CONFIG</constant>.
+ </para>
+ <para>
+ If <constant>EGL_DONT_CARE</constant> is specified,
+ then configs are not matched for this attribute. The
+ default value is <constant>EGL_DONT_CARE</constant>.
+ </para>
+ <para>
+ If <constant>EGL_NONE</constant> is specified, then
+ configs are matched for this attribute, but only
+ configs with no caveats (neither
+ <constant>EGL_SLOW_CONFIG</constant> or
+ <constant>EGL_NON_CONFORMANT_CONFIG</constant>) will
+ be considered.
+ </para>
+ <para>
+ If <constant>EGL_SLOW_CONFIG</constant> is
+ specified, then only slow configs configurations
+ will be considered. The meaning of``slow'' is
+ implementation-dependent, but typically indicates a
+ non-hardware-accelerated (software) implementation.
+ </para>
+ <para>
+ If <constant>EGL_NON_CONFORMANT_CONFIG</constant> is
+ specified, then only configs supporting
+ non-conformant OpenGL ES contexts will be
+ considered.
+ </para>
+ <para>
+ If the EGL version is 1.3 or later, caveat
+ <constant>EGL_NON_CONFORMANT_CONFIG</constant> is
+ obsolete, since the same information can be
+ specified via the
+ <constant>EGL_CONFORMANT</constant> attribute on a
+ per-client-API basis, not just for OpenGL ES.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_ID</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a valid integer ID that
+ indicates the desired EGL frame buffer
+ configuration. When a
+ <constant>EGL_CONFIG_ID</constant> is specified, all
+ other attributes are ignored. The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para>
+ <para>
+ The meaning of config IDs is
+ implementation-dependent. They are used only to
+ uniquely identify different frame buffer
+ configurations.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFORMANT</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a bitmask indicating which types
+ of client API contexts created with respect to the
+ frame buffer configuration config must pass the
+ required conformance tests for that API. Mask bits
+ include:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_OPENGL_BIT</constant></term>
+ <listitem><para>
+ Config supports creating OpenGL contexts.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_OPENGL_ES_BIT</constant></term>
+ <listitem><para>
+ Config supports creating OpenGL ES 1.0
+ and/or 1.1 contexts.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_OPENGL_ES2_BIT</constant></term>
+ <listitem><para>
+ Config supports creating OpenGL ES 2.0 contexts.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_OPENVG_BIT</constant></term>
+ <listitem><para>
+ Config supports creating OpenVG contexts.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ For example, if the bitmask is set to
+ <constant>EGL_OPENGL_ES_BIT</constant>, only frame
+ buffer configurations that support creating
+ conformant OpenGL ES contexts will match. The
+ default value is zero.
+ </para>
+ <para>
+ Most EGLConfigs should be conformant for all
+ supported client APIs, and it is rarely desirable to
+ select a nonconformant config. Conformance
+ requirements limit the number of non-conformant
+ configs that an implementation can define.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_DEPTH_SIZE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a nonnegative integer that
+ indicates the desired depth buffer size, in bits.
+ The smallest depth buffers of at least the specified
+ size is preferred. If the desired size is zero,
+ frame buffer configurations with no depth buffer are
+ preferred. The default value is zero.
+ </para>
+ <para>
+ The depth buffer is used only by OpenGL and OpenGL
+ ES client APIs.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_GREEN_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the green component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest green component size
+ are preferred. Otherwise, color buffers with the
+ largest green component of at least the specified
+ size are preferred. The default value is zero.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LEVEL</constant></term>
+ <listitem><para>
+ Must be followed by an integer buffer level
+ specification. This specification is honored
+ exactly. Buffer level zero corresponds to the
+ default frame buffer of the display. Buffer level
+ one is the first overlay frame buffer, level two the
+ second overlay frame buffer, and so on. Negative
+ buffer levels correspond to underlay frame buffers.
+ The default value is zero.
+ </para>
+ <para>
+ Most imlementations do not support overlay or
+ underlay planes (buffer levels other than zero).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LUMINANCE_SIZE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the luminance
+ component of the color buffer, in bits. If this
+ value is zero, color buffers with the smallest
+ luminance component size are preferred. Otherwise,
+ color buffers with the largest luminance component
+ of at least the specified size are preferred. The
+ default value is zero.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MATCH_NATIVE_PIXMAP</constant></term>
+ <listitem>
+ <para>
+ Must be followed by the handle of a valid native
+ pixmap, cast to <type>EGLint</type>, or
+ <constant>EGL_NONE</constant>. If the value is not
+ <constant>EGL_NONE</constant>, only configs which
+ support creating pixmap surfaces with this pixmap
+ using
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>
+ will match this attribute. If the value is
+ <constant>EGL_NONE</constant>, then configs are not
+ matched for this attribute. The default value is
+ <constant>EGL_NONE</constant>.
+ </para>
+ <para>
+ <constant>EGL_MATCH_NATIVE_PIXMAP</constant> was
+ introduced due to the difficulty of determining an
+ <type>EGLConfig</type> compatibile with a native
+ pixmap using only color component sizes.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_NATIVE_RENDERABLE</constant></term>
+ <listitem><para>
+ Must be followed by
+ <constant>EGL_DONT_CARE</constant>,
+ <constant>EGL_TRUE</constant>, or
+ <constant>EGL_FALSE</constant>.
+ If <constant>EGL_TRUE</constant> is specified, then
+ only frame buffer configurations that allow native
+ rendering into the surface will be considered. The
+ default value is <constant>EGL_DONT_CARE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MAX_SWAP_INTERVAL</constant></term>
+ <listitem><para>
+ Must be followed by a integer that indicates the
+ maximum value that can be passed to
+ <citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry>.
+ The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MIN_SWAP_INTERVAL</constant></term>
+ <listitem><para>
+ Must be followed by a integer that indicates the
+ minimum value that can be passed to eglSwapInterval.
+ The default value is <constant>EGL_DONT_CARE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RED_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the red component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest red component size
+ are preferred. Otherwise, color buffers with the
+ largest red component of at least the specified size
+ are preferred. The default value is zero.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SAMPLE_BUFFERS</constant></term>
+ <listitem><para>
+ Must be followed by the minimum acceptable number of
+ multisample buffers. Configurations with the
+ smallest number of multisample buffers that meet or
+ exceed this minimum number are preferred. Currently
+ operation with more than one multisample buffer is
+ undefined, so only values of zero or one will
+ produce a match. The default value is zero.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SAMPLES</constant></term>
+ <listitem><para>
+ Must be followed by the minimum number of
+ samples required in multisample buffers.
+ Configurations with the smallest number of
+ samples that meet or exceed the specified
+ minimum number are preferred. Note that it is
+ possible for color samples in the multisample
+ buffer to have fewer bits than colors in the
+ main color buffers. However, multisampled
+ colors maintain at least as much color
+ resolution in aggregate as the main color
+ buffers.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_STENCIL_SIZE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a nonnegative integer that
+ indicates the desired stencil buffer size, in bits.
+ The smallest stencil buffers of at least the
+ specified size are preferred. If the desired size is
+ zero, frame buffer configurations with no stencil
+ buffer are preferred. The default value is zero.
+ </para>
+ <para>
+ The stencil buffer is used only by OpenGL and
+ OpenGL ES client APIs.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RENDERABLE_TYPE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a bitmask indicating which types
+ of client API contexts the frame buffer
+ configuration must support creating with
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>).
+ Mask bits are the same as for attribute
+ <constant>EGL_CONFORMANT</constant>. The default
+ value is <constant>EGL_OPENGL_ES_BIT</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SURFACE_TYPE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a bitmask indicating which EGL
+ surface types and capabilities the frame buffer
+ configuration must support. Mask bits include:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_MULTISAMPLE_RESOLVE_BOX_BIT</constant></term>
+ <listitem><para>
+ Config allows specifying box filtered
+ multisample resolve behavior with
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_PBUFFER_BIT</constant></term>
+ <listitem><para>
+ Config supports creating pixel buffer surfaces.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_PIXMAP_BIT</constant></term>
+ <listitem><para>
+ Config supports creating pixmap surfaces.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SWAP_BEHAVIOR_PRESERVED_BIT</constant></term>
+ <listitem><para>
+ Config allows setting swap behavior for
+ color buffers with
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant></term>
+ <listitem><para>
+ Config allows specifying OpenVG rendering
+ with premultiplied alpha values at surface
+ creation time (see
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ and
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>).
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_COLORSPACE_LINEAR_BIT</constant></term>
+ <listitem><para>
+ Config allows specifying OpenVG rendering in
+ a linear colorspace at surface creation time
+ (see
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ and
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>).
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_WINDOW_BIT</constant></term>
+ <listitem><para>
+ Config supports creating window surfaces.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ For example, if the bitmask is set to
+ <inlineequation>
+ <mml:math>
+ <mml:mi><constant>EGL_WINDOW_BIT</constant></mml:mi>
+ <mml:mo>|</mml:mo>
+ <mml:mi><constant>EGL_PIXMAP_BIT</constant></mml:mi>
+ </mml:math>
+ </inlineequation>,
+ only frame buffer configurations that support both
+ windows and pixmaps will be considered. The default
+ value is <constant>EGL_WINDOW_BIT</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_TYPE</constant></term>
+ <listitem><para>
+ Must be followed by one of
+ <constant>EGL_NONE</constant> or
+ <constant>EGL_TRANSPARENT_RGB</constant>. If
+ <constant>EGL_NONE</constant> is specified, then
+ only opaque frame buffer configurations will be
+ considered. If
+ <constant>EGL_TRANSPARENT_RGB</constant> is
+ specified, then only transparent frame buffer
+ configurations will be considered. The default value
+ is <constant>EGL_NONE</constant>.
+ </para>
+ <para>
+ Most implementations support only opaque frame
+ buffer configurations.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_RED_VALUE</constant></term>
+ <listitem><para>
+ Must be followed by an integer value indicating the
+ transparent red value. The value must be between
+ zero and the maximum color buffer value for red.
+ Only frame buffer configurations that use the
+ specified transparent red value will be considered.
+ The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para>
+ <para>
+ This attribute is ignored unless
+ <constant>EGL_TRANSPARENT_TYPE</constant> is included in
+ <parameter>attrib_list</parameter> and specified as
+ <constant>EGL_TRANSPARENT_RGB</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_GREEN_VALUE</constant></term>
+ <listitem><para>
+ Must be followed by an integer value indicating the
+ transparent green value. The value must be between
+ zero and the maximum color buffer value for green.
+ Only frame buffer configurations that use the
+ specified transparent green value will be
+ considered. The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para>
+ <para>
+ This attribute is ignored unless
+ <constant>EGL_TRANSPARENT_TYPE</constant> is included in
+ <parameter>attrib_list</parameter> and specified as
+ <constant>EGL_TRANSPARENT_RGB</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_BLUE_VALUE</constant></term>
+ <listitem><para>
+ Must be followed by an integer value indicating the
+ transparent blue value. The value must be between
+ zero and the maximum color buffer value for blue.
+ Only frame buffer configurations that use the
+ specified transparent blue value will be considered.
+ The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para>
+ <para>
+ This attribute is ignored unless
+ <constant>EGL_TRANSPARENT_TYPE</constant> is included in
+ <parameter>attrib_list</parameter> and specified as
+ <constant>EGL_TRANSPARENT_RGB</constant>.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ When more than one EGL frame buffer configuration matches
+ the specified attributes, a list of matching configurations
+ is returned. The list is sorted according to the following
+ precedence rules, which are applied in ascending order
+ (i.e., configurations that are considered equal by a lower
+ numbered rule are sorted by the higher numbered rule):
+ </para>
+ <orderedlist>
+ <listitem><para>
+ Special: by <constant>EGL_CONFIG_CAVEAT</constant>,
+ where the precedence is <constant>EGL_NONE</constant>,
+ <constant>EGL_SLOW_CONFIG</constant>, and
+ <constant>EGL_NON_CONFORMANT_CONFIG</constant>.
+ </para></listitem>
+ <listitem><para>
+ Special: by <constant>EGL_COLOR_BUFFER_TYPE</constant>,
+ where the precedence is
+ <constant>EGL_RGB_BUFFER</constant>,
+ <constant>EGL_LUMINANCE_BUFFER</constant>.
+ </para></listitem>
+ <listitem>
+ <para>
+ Special: by larger total number of color bits (for an
+ RGB color buffer, this is the sum of
+ <constant>EGL_RED_SIZE</constant>,
+ <constant>EGL_GREEN_SIZE</constant>,
+ <constant>EGL_BLUE_SIZE</constant>, and
+ <constant>EGL_ALPHA_SIZE</constant>; for a luminance
+ color buffer, the sum of
+ <constant>EGL_LUMINANCE_SIZE</constant> and
+ <constant>EGL_ALPHA_SIZE</constant>). If the requested
+ number of bits in <parameter>attrib_list</parameter> is
+ <constant>0</constant> or
+ <constant>EGL_DONT_CARE</constant> for a particular
+ color component, then the number of bits for that
+ component is not considered.
+ </para>
+ <para>
+ This sort rule places configs with deeper color buffers
+ before configs with shallower color buffers, which may
+ be counterintuitive.
+ </para>
+ </listitem>
+ <listitem><para>
+ Smaller <constant>EGL_BUFFER_SIZE</constant>.
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_SAMPLE_BUFFERS</constant>.
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_SAMPLES</constant>.
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_DEPTH_SIZE</constant>.
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_STENCIL_SIZE</constant>.
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_ALPHA_MASK_SIZE</constant>.
+ </para></listitem>
+ <listitem><para>
+ Special: <constant>EGL_NATIVE_VISUAL_TYPE</constant>
+ (the actual sort order is implementation-defined,
+ depending on the meaning of native visual types).
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_CONFIG_ID</constant> (this is
+ always the last sorting rule, and guarantees a unique
+ ordering).
+ </para></listitem>
+ </orderedlist>
+ <para>
+ <type>EGLConfigs</type> are not sorted with respect to the
+ attributes <constant>EGL_BIND_TO_TEXTURE_RGB</constant>,
+ <constant>EGL_BIND_TO_TEXTURE_RGBA</constant>,
+ <constant>EGL_CONFORMANT</constant>,
+ <constant>EGL_LEVEL</constant>,
+ <constant>EGL_NATIVE_RENDERABLE</constant>,
+ <constant>EGL_MAX_SWAP_INTERVAL</constant>,
+ <constant>EGL_MIN_SWAP_INTERVAL</constant>,
+ <constant>EGL_RENDERABLE_TYPE</constant>,
+ <constant>EGL_SURFACE_TYPE</constant>,
+ <constant>EGL_TRANSPARENT_TYPE</constant>,
+ <constant>EGL_TRANSPARENT_RED_VALUE</constant>,
+ <constant>EGL_TRANSPARENT_GREEN_VALUE</constant>, and
+ <constant>EGL_TRANSPARENT_BLUE_VALUE</constant>.
+ </para>
+ </refsect1>
+ <refsect1 id="examples"><title>Examples</title>
+ <para>
+ The following example specifies a frame buffer configuration
+ in the normal frame buffer (not an overlay or underlay). The
+ returned frame buffer configuration supports a color buffer
+ with at least 4 bits each of red, green and blue, and
+ possibly no alpha bits. The code shown in the example may or
+ may not have a depth buffer, or a stencil buffer.
+ </para>
+ <programlisting>EGLint const attrib_list[] = {
+ EGL_RED_SIZE, 4,
+ EGL_GREEN_SIZE, 4,
+ EGL_BLUE_SIZE, 4,
+ EGL_NONE
+};</programlisting>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ <constant>EGL_RENDERABLE_TYPE</constant> bit
+ <constant>EGL_OPENGL_BIT</constant>, and
+ <constant>EGL_SURFACE_TYPE</constant> bits
+ <constant>EGL_MULTISAMPLE_RESOLVE_BOX_BIT</constant> and
+ <constant>EGL_SWAP_BEHAVIOR_PRESERVED_BIT</constant> are
+ supported only if the EGL version is 1.4 or greater.
+ </para>
+ <para>
+ <constant>EGL_CONFORMANT</constant>,
+ <constant>EGL_MATCH_NATIVE_PIXMAP</constant>,
+ <constant>EGL_RENDERABLE_TYPE</constant> bit
+ <constant>EGL_OPENGL_ES2_BIT</constant>, and
+ <constant>EGL_SURFACE_TYPE</constant> bits
+ <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> and
+ <constant>EGL_VG_COLORSPACE_LINEAR_BIT</constant> are
+ supported only if the EGL version is 1.3 or greater.
+ </para>
+ <para>
+ <constant>EGL_ALPHA_MASK_SIZE</constant>,
+ <constant>EGL_COLOR_BUFFER_TYPE</constant>,
+ <constant>EGL_LUMINANCE_SIZE</constant>,
+ <constant>EGL_RENDERABLE_TYPE</constant>, and
+ <constant>EGL_RENDERABLE_TYPE</constant> bits
+ <constant>EGL_OPENGL_ES_BIT</constant> and
+ <constant>EGL_OPENVG_BIT</constant> are supported only if
+ the EGL version is 1.2 or greater.
+ </para>
+ <para>
+ If OpenGL or OpenGL ES rendering is supported for a
+ luminance color buffer, it is treated as RGB rendering with
+ the value of <constant>GL_RED_BITS</constant> equal to
+ <constant>EGL_LUMINANCE_SIZE</constant> and the values of
+ <constant>GL_GREEN_BITS</constant> and
+ <constant>GL_BLUE_BITS</constant> equal to zero. The red
+ component of fragments is written to the luminance channel
+ of the color buffer while the green and blue components are
+ discarded.
+ </para>
+ <para>
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>
+ and
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>
+ can be used to implement selection algorithms other than the
+ generic one implemented by
+ <function>eglChooseConfig</function>. Call
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>
+ to retrieve all the frame buffer configurations, or
+ alternatively, all the frame buffer configurations with a
+ particular set of attributes. Next call
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>
+ to retrieve additional attributes for the frame buffer
+ configurations and then select between them.
+ </para>
+ <para>
+ EGL implementors are strongly discouraged, but not
+ proscribed, from changing the selection algorithm used by
+ <function>eglChooseConfig</function>. Therefore, selections
+ may change from release to release of the client-side
+ library.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>configs</parameter> and
+ <parameter>num_config</parameter> are not modified when
+ <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attribute_list</parameter> contains an invalid frame buffer
+ configuration attribute or an
+ attribute value that is unrecognized or out of range.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>num_config</parameter> is <constant>NULL</constant>.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCopyBuffers.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCopyBuffers.xml
new file mode 100644
index 0000000..e493378
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCopyBuffers.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglCopyBuffers">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglCopyBuffers</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCopyBuffers</refname>
+ <refpurpose>
+ copy <acronym>EGL</acronym> surface color buffer to a native pixmap
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglCopyBuffers</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ <paramdef>NativePixmapType <parameter>native_pixmap</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface whose color buffer is to be copied.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>native_pixmap</parameter></term>
+ <listitem>
+ <para>
+ Specifies the native pixmap as target of the copy.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglCopyBuffers</function> copies the color buffer of
+ <parameter>surface</parameter> to <parameter>native_pixmap</parameter>.
+ </para>
+ <para>
+ <function>eglCopyBuffers</function> performs an implicit
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>
+ before it returns. Subsequent
+ GL commands may be issued immediately after calling
+ <function>eglCopyBuffers</function>,
+ but are not executed until copying of the color buffer is completed.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ The color buffer of <parameter>surface</parameter> is left unchanged
+ after calling <function>eglCopyBuffers</function>.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if swapping of the
+ surface buffers fails, <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL drawing surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_NATIVE_PIXMAP</constant> is generated if
+ the implementation does not support native pixmaps.
+ </para>
+ <para>
+ <constant>EGL_BAD_NATIVE_PIXMAP</constant> may be generated if
+ <parameter>native_pixmap</parameter> is not a valid native pixmap.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ the format of <parameter>native_pixmap</parameter> is not compatible
+ with the color buffer of <parameter>surface</parameter>.
+ </para>
+ <para>
+ <constant>EGL_CONTEXT_LOST</constant> is generated if a power management
+ event has occurred. The application must destroy all contexts and
+ reinitialise OpenGL ES state and objects to continue rendering.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreateContext.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreateContext.xml
new file mode 100644
index 0000000..3a05314
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreateContext.xml
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglCreateContext">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglCreateContext</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreateContext</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> rendering context
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLContext <function>eglCreateContext</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>EGLContext <parameter>share_context</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>
+ Specifies the
+ <acronym>EGL</acronym>
+ display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem><para>Specifies the EGL frame buffer configuration that
+ defines the frame buffer resource available to the rendering context.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>share_context</parameter></term>
+ <listitem><para>
+ Specifies another
+ <acronym>EGL</acronym>
+ rendering context with which to share data, as
+ defined by the client API corresponding to the
+ contexts. Data is also shared with all other
+ contexts with which
+ <parameter>share_context</parameter> shares data.
+ <constant>EGL_NO_CONTEXT</constant> indicates that
+ no sharing is to take place.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies attributes and attribute values for the
+ context being created. Only the attribute
+ <constant>EGL_CONTEXT_CLIENT_VERSION</constant> may
+ be specified.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglCreateContext</function> creates an EGL
+ rendering context for the current rendering API (as set with
+ <function>eglBindAPI</function>) and returns a handle to the
+ context. The context can then be used to render into an EGL
+ drawing surface. If <function>eglCreateContext</function>
+ fails to create a rendering context,
+ <constant>EGL_NO_CONTEXT</constant> is returned.
+ </para>
+ <para>
+ If <parameter>share_context</parameter> is not
+ <constant>EGL_NO_CONTEXT</constant>, then all shareable data
+ in the context (as defined by the client API specification
+ for the current rendering API) are shared by context
+ <parameter>share_context</parameter>, all other contexts
+ <parameter>share_context</parameter> already shares with,
+ and the newly created context. An arbitrary number of
+ rendering contexts can share data. However, all rendering
+ contexts that share data must themselves exist in the same
+ address space. Two rendering contexts share an address space
+ if both are owned by a single process.
+ </para>
+ <para>
+ <parameter>attrib_list</parameter> specifies a list of
+ attributes for the context. The list has the same structure
+ as described for <function>eglChooseConfig</function>. The
+ attributes and attribute values which may be specified are
+ as follows:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_CLIENT_VERSION</constant></term>
+ <listitem><para>
+ Must be followed by an integer that determines which
+ version of an OpenGL ES context to create. A value
+ of 1 specifies creation of an OpenGL ES 1.x context.
+ An attribute value of 2 specifies creation of an
+ OpenGL ES 2.x context. The default value is 1. This
+ attribute can only be specified when creating a
+ OpenGL ES context (e.g. when the current rendering
+ API is <constant>EGL_OPENGL_ES_API</constant>).
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ The current rendering API is only respected if the EGL
+ version is 1.2 or greater. Otherwise, an OpenGL ES context
+ will always be created.
+ </para>
+ <para>
+ The <constant>EGL_CONTEXT_CLIENT_VERSION</constant>
+ attribute is only supported if the EGL version is 1.3 or
+ greater.
+ </para>
+ <para>
+ A <firstterm>process</firstterm> is a single execution environment,
+ implemented in a single address space, consisting of one or more threads.
+ </para>
+ <para>
+ A <firstterm>thread</firstterm> is one of a set of subprocesses that
+ share a single address space, but maintain separate program counters,
+ stack spaces, and other related global data.
+ A thread is the only member of its subprocess group is equivalent to a
+ process.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_NO_CONTEXT</constant> is returned if creation of
+ the context fails.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ current rendering API is <constant>EGL_NONE</constant> (this
+ can only arise in an EGL implementation which does not
+ support OpenGL ES, prior to the first call to
+ <function>eglBindAPI</function>).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ server context state for
+ <parameter>share_context</parameter> exists in an address
+ space which cannot be shared with the newly created context,
+ if <parameter>share_context</parameter> was created on a
+ different display than the one referenced by
+ <parameter>config</parameter>, or if the contexts are
+ otherwise incompatible.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONFIG</constant> is generated if
+ <parameter>config</parameter> is not an EGL frame buffer
+ configuration, or does not support the current rendering
+ API. This includes requesting creation of an OpenGL ES 1.x
+ context when the <constant>EGL_RENDERABLE_TYPE</constant>
+ attribute of <parameter>config</parameter> does not contain
+ <constant>EGL_OPENGL_ES_BIT</constant>, or creation of an
+ OpenGL ES 2.x context when the attribute does not contain
+ <constant>EGL_OPENGL_ES2_BIT</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONTEXT</constant> is generated if
+ <parameter>share_context</parameter> is not an EGL rendering
+ context of the same client API type as the newly created
+ context and is not <constant>EGL_NO_CONTEXT</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains an invalid
+ context attribute or if an attribute is not recognized or
+ out of range. Note that attribute
+ <constant>EGL_CONTEXT_CLIENT_VERSION</constant> is
+ only valid when the current rendering API is
+ <constant>EGL_OPENGL_ES_API</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> is generated if there are not
+ enough resources to allocate the new context.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglDestroyContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml
new file mode 100644
index 0000000..bb311f3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferFromClientBuffer.xml
@@ -0,0 +1,389 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglCreatePbufferFromClientBuffer">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglCreatePbufferFromClientBuffer</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreatePbufferFromClientBuffer</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> pixel buffer surface
+ bound to an OpenVG image
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglCreatePbufferFromClientBuffer</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLenum <parameter>buftype</parameter></paramdef>
+ <paramdef>EGLClientBuffer <parameter>buffer</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buftype</parameter></term>
+ <listitem>
+ <para>
+ Specifies the type of client API buffer to be bound.
+ Must be <constant>EGL_OPENVG_IMAGE</constant>,
+ corresponding to an OpenVG <type>VGImage</type>
+ buffer.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buffer</parameter></term>
+ <listitem>
+ <para>
+ Specifies the OpenVG <type>VGImage</type> handle of
+ the buffer to be bound.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem><para>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies pixel buffer surface attributes.
+ May be <constant>NULL</constant> or empty
+ (first attribute is <constant>EGL_NONE</constant>).
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglCreatePbufferFromClientBuffer</function> creates an
+ off-screen pixel buffer surface and returns its handle. If
+ <function>eglCreatePbufferFromClientBuffer</function> fails to create
+ a pixel buffer surface, <constant>EGL_NO_SURFACE</constant>
+ is returned.
+ </para>
+ <para>
+ The new pixel buffer surface is similar to a pixel buffer
+ created with
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ but storage for the color buffer is provided by a client API
+ buffer. Other buffer required by
+ <parameter>config</parameter>, such as depth, stencil, and
+ alpha mask, are allocated by EGL.
+ </para>
+ <para>
+ <parameter>buftype</parameter> must be
+ <constant>EGL_OPENVG_IMAGE</constant>, corresponding to an
+ OpenVG <type>VGImage</type> buffer.
+ <parameter>buffer</parameter> must be a valid
+ <type>VGImage</type> handle in the current OpenVG context,
+ cast into the type <type>EGLClientBuffer</type>.
+ </para>
+ <para>
+ The height, width,, OpenVG alpha format, and OpenVG
+ colorspace (surface attributes
+ <constant>EGL_HEIGHT</constant>,
+ <constant>EGL_WIDTH</constant>,
+ <constant>EGL_VG_ALPHA_FORMAT</constant>, and
+ <constant>EGL_VG_COLORSPACE</constant>, respectively) of the
+ resulting surface are determined by the size and format of
+ <parameter>buffer</parameter>.
+ </para>
+ <para>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <constant>EGL_NONE</constant>. Accepted attributes are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_MIPMAP_TEXTURE</constant></term>
+ <listitem>
+ <para>
+ Specifies whether storage for mipmaps should be
+ allocated. Space for mipmaps will be set aside if
+ the attribute value is <constant>EGL_TRUE</constant>
+ and <constant>EGL_TEXTURE_FORMAT</constant> is not
+ <constant>EGL_NO_TEXTURE</constant>. The default
+ value is <constant>EGL_FALSE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_FORMAT</constant></term>
+ <listitem>
+ <para>
+ Specifies the format of the texture that will be
+ created when a pbuffer is bound to a texture map.
+ Possible values are
+ <constant>EGL_NO_TEXTURE</constant>,
+ <constant>EGL_TEXTURE_RGB</constant>, and
+ <constant>EGL_TEXTURE_RGBA</constant>. The default
+ value is <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_TARGET</constant></term>
+ <listitem>
+ <para>
+ Specifies the target for the texture that will be
+ created when the pbuffer is created with a texture
+ format of <constant>EGL_TEXTURE_RGB</constant> or
+ <constant>EGL_TEXTURE_RGBA</constant>. Possible
+ values are <constant>EGL_NO_TEXTURE</constant>, or
+ <constant>EGL_TEXTURE_2D</constant>. The default
+ value is <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ Any EGL rendering context that was created with respect to
+ <parameter>config</parameter> can be used to render into the
+ surface. Use
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ to attach an EGL rendering context to the surface.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ to retrieve the dimensions of the allocated pixel buffer
+ surface or the ID of <parameter>config</parameter>.
+ </para>
+ <para>
+ Use <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+ to destroy the surface.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ <function>eglCreatePbufferFromClientBuffer</function> is
+ supported only if the EGL version is 1.2 or greater, and if
+ the EGL implementation supports the OpenVG client API.
+ </para>
+ <para>
+ Currently
+ <function>eglCreatePbufferFromClientBuffer</function> only
+ supports binding OpenVG <type>VGImage</type> buffers to
+ pixel buffers. While other client API resources could be
+ supported in the future, mechanisms such as OpenGL ES
+ framebuffer objects, and the family of EGL and client API
+ extensions for defining and using <type>EGLImageKHR</type>
+ images, are a more flexible and general framework to satisfy
+ most of the same needs.
+ </para>
+ <para>
+ If the value of <parameter>config</parameter> attribute
+ <constant>EGL_TEXTURE_FORMAT</constant> is not
+ <constant>EGL_NO_TEXTURE</constant>, then the pbuffer width
+ and height specify the size of the level zero texture image
+ </para>
+ <para>
+ If <constant>EGL_LARGEST_PBUFFER</constant> is specified and
+ if the pbuffer will be used as a texture (i.e. the value of
+ <constant>EGL_TEXTURE_TARGET</constant> is
+ <constant>EGL_TEXTURE_2D</constant>, and the value of
+ <constant>EGL_TEXTURE FORMAT</constant> is
+ <constant>EGL_TEXTURE_RGB</constant> or
+ <constant>EGL_TEXTURE_RGBA</constant>), then the aspect
+ ratio will be preserved and the new width and height will be
+ valid sizes for the texture target (e.g. if the underlying
+ OpenGL ES implementation does not support non-power-of-two
+ textures, both the width and height will be a power of 2).
+ </para>
+ <para>
+ The contents of the depth and stencil buffers may not be
+ preserved when rendering a texture to the pbuffer and
+ switching which image of the texture is rendered to (e.g.,
+ switching from rendering one mipmap level to rendering
+ another).
+ </para>
+ <para>
+ Binding client API buffers to EGL pbuffers create the
+ possibility of race conditions, and of buffers being deleted
+ through one API while still in use in another API. To avoid
+ these problems, a number of constraints apply to bound
+ client API buffers:
+ <orderedlist>
+ <listitem>
+ <para>
+ Bound buffers may be used exclusively by either EGL,
+ or the client API that originally created them. For
+ example, if a <type>VGImage</type> is bound to a
+ pbuffer, and that pbuffer is bound to any client API
+ rendering context, then the <type>VGImage</type> may
+ not be used as the explicit source or destination of
+ any OpenVG operation. Errors resulting from such use
+ are described in client API specifications.
+ Similarly, while a <type>VGImage</type> is in use by
+ OpenVG, the pbuffer it is bound to may not be made
+ current to any client API context using
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Binding a buffer creates an additional reference to
+ it, and implementations must respect outstanding
+ references when destroying objects. For example, if
+ a <type>VGImage</type> is bound to a pbuffer,
+ destroying the image with
+ <function>vgDestroyImage</function> will not free
+ the underlying buffer, because it is still in use by
+ EGL. However, following
+ <function>vgDestroyImage</function> the buffer may
+ only be referred to via the EGL pbuffer handle,
+ since the OpenVG handle to that buffer no longer
+ exists. Similarly, destroying the pbuffer with
+ <function>eglDestroySurface</function> will not free
+ the underlying buffer, because it is still in use by
+ OpenVG . However, following
+ <function>eglDestroySurface</function> the buffer
+ may only be referred to via the OpenVG
+ <type>VGImage</type> handle, since the EGL pbuffer
+ handle no longer exists.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_NO_SURFACE</constant> is returned if creation of
+ the context fails.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONFIG</constant> is generated if
+ <parameter>config</parameter> is not an EGL frame buffer configuration.
+ </para>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>buftype</parameter> is not
+ <constant>EGL_OPENVG_IMAGE</constant>, or if
+ <parameter>buffer</parameter> is not a valid handle to a
+ <type>VGImage</type> object in the currently bound OpenVG
+ context.
+ </para>
+ <para>
+ <constant>EGL_BAD_ACCESS</constant> is generated if there is
+ no current OpenVG context, or if
+ <parameter>buffer</parameter> is already bound to another
+ pixel buffer or in use by OpenVG as discussed in the Notes
+ section above.
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> is generated if there are not
+ enough resources to allocate the new surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains an invalid pixel
+ buffer attribute or if an attribute value is not recognized
+ or out of range.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains any of the
+ attributes <constant>EGL_MIPMAP_TEXTURE</constant>,
+ <constant>EGL_TEXTURE_FORMAT</constant>, or
+ <constant>EGL_TEXTURE_TARGET</constant>, and
+ <parameter>config</parameter> does not support OpenGL ES
+ rendering (e.g. the EGL version is 1.2 or later, and the
+ <constant>EGL_RENDERABLE_TYPE</constant> attribute of
+ <parameter>config</parameter> does not include at least one
+ of <constant>EGL_OPENGL_ES_BIT</constant> or
+ <constant>EGL_OPENGL_ES2_BIT</constant>).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>config</parameter> does not support rendering to pixel buffers
+ (the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
+ <constant>EGL_PBUFFER_BIT</constant>).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ buffers contained in <parameter>buffer</parameter> do not
+ match the bit depths for those buffers specified by
+ <parameter>config</parameter>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ <constant>EGL_TEXTURE_FORMAT</constant> attribute is not
+ <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_WIDTH</constant> and/or
+ <constant>EGL_HEIGHT</constant> specify an invalid size
+ (e.g., the texture size is not a power of 2, and the
+ underlying OpenGL ES implementation does not support
+ non-power-of-two textures).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ the <constant>EGL_TEXTURE_FORMAT</constant> attribute is
+ <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_TEXTURE_TARGET</constant> is something other
+ than <constant>EGL_NO_TEXTURE</constant>; or,
+ <constant>EGL_TEXTURE_FORMAT</constant> is something other
+ than <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_TEXTURE_TARGET</constant> is
+ <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ implementation has additional constraints on which types of
+ client API buffers may be bound to pixel buffer surfaces.
+ For example, it is possible that the OpenVG implementation
+ might not support a <type>VGImage</type> being bound to a
+ pixel buffer which will be used as a mipmapped OpenGL ES
+ texture (e.g. whose <constant>EGL_MIPMAP_TEXTURE</constant>
+ attribute is <constant>TRUE</constant>). Any such
+ constraints should be documented by the implementation
+ release notes.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferSurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferSurface.xml
new file mode 100644
index 0000000..fbe9211
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePbufferSurface.xml
@@ -0,0 +1,333 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglCreatePbufferSurface">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglCreatePbufferSurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreatePbufferSurface</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> pixel buffer surface
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglCreatePbufferSurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem><para>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies pixel buffer surface attributes.
+ May be <constant>NULL</constant> or empty
+ (first attribute is <constant>EGL_NONE</constant>).
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglCreatePbufferSurface</function> creates an
+ off-screen pixel buffer surface and returns its handle. If
+ <function>eglCreatePbufferSurface</function> fails to create
+ a pixel buffer surface, <constant>EGL_NO_SURFACE</constant>
+ is returned.
+ </para>
+ <para>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <constant>EGL_NONE</constant>. Accepted attributes
+ are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_HEIGHT</constant></term>
+ <listitem>
+ <para>
+ Specifies the required height of the pixel buffer
+ surface. The default value is
+ <constant>0</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LARGEST_PBUFFER</constant></term>
+ <listitem>
+ <para>
+ Requests the largest available pixel buffer surface
+ when the allocation would otherwise fail. Use
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ to retrieve the dimensions of the allocated pixel
+ buffer. The default value is
+ <constant>EGL_FALSE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MIPMAP_TEXTURE</constant></term>
+ <listitem>
+ <para>
+ Specifies whether storage for mipmaps should be
+ allocated. Space for mipmaps will be set aside if
+ the attribute value is <constant>EGL_TRUE</constant>
+ and <constant>EGL_TEXTURE_FORMAT</constant> is not
+ <constant>EGL_NO_TEXTURE</constant>. The default
+ value is <constant>EGL_FALSE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_FORMAT</constant></term>
+ <listitem>
+ <para>
+ Specifies the format of the texture that will be
+ created when a pbuffer is bound to a texture map.
+ Possible values are
+ <constant>EGL_NO_TEXTURE</constant>,
+ <constant>EGL_TEXTURE_RGB</constant>, and
+ <constant>EGL_TEXTURE_RGBA</constant>. The default
+ value is <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_TARGET</constant></term>
+ <listitem>
+ <para>
+ Specifies the target for the texture that will be
+ created when the pbuffer is created with a texture
+ format of <constant>EGL_TEXTURE_RGB</constant> or
+ <constant>EGL_TEXTURE_RGBA</constant>. Possible
+ values are <constant>EGL_NO_TEXTURE</constant>, or
+ <constant>EGL_TEXTURE_2D</constant>. The default
+ value is <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
+ <listitem>
+ <para>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>,
+ then alpha values are not premultipled. If its value
+ is <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>,
+ then alpha values are premultiplied. The default
+ value of <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_COLORSPACE</constant></term>
+ <listitem>
+ <para>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <type>VGImageFormat</type> of form
+ <constant>VG_s*</constant>. If its value is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant>, then
+ a linear color space is assumed, with a
+ corresponding <type>VGImageFormat</type> of form
+ <constant>VG_l*</constant>. The default value of
+ <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_WIDTH</constant></term>
+ <listitem>
+ <para>
+ Specifies the required width of the pixel buffer
+ surface. The default value is
+ <constant>0</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ Any EGL rendering context that was created with respect to
+ <parameter>config</parameter> can be used to render into the
+ surface. Use
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ to attach an EGL rendering context to the surface.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ to retrieve the dimensions of the allocated pixel buffer
+ surface or the ID of <parameter>config</parameter>.
+ </para>
+ <para>
+ Use <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+ to destroy the surface.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ Attributes
+ <constant>EGL_RENDERABLE_TYPE</constant>,
+ <constant>EGL_VG_ALPHA_FORMAT</constant>, and
+ <constant>EGL_VG_COLORSPACE</constant>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <para>
+ If the value of <parameter>config</parameter> attribute
+ <constant>EGL_TEXTURE_FORMAT</constant> is not
+ <constant>EGL_NO_TEXTURE</constant>, then the pbuffer width
+ and height specify the size of the level zero texture image
+ </para>
+ <para>
+ If <constant>EGL_LARGEST_PBUFFER</constant> is specified and
+ if the pbuffer will be used as a texture (i.e. the value of
+ <constant>EGL_TEXTURE_TARGET</constant> is
+ <constant>EGL_TEXTURE_2D</constant>, and the value of
+ <constant>EGL_TEXTURE FORMAT</constant> is
+ <constant>EGL_TEXTURE_RGB</constant> or
+ <constant>EGL_TEXTURE_RGBA</constant>), then the aspect
+ ratio will be preserved and the new width and height will be
+ valid sizes for the texture target (e.g. if the underlying
+ OpenGL ES implementation does not support non-power-of-two
+ textures, both the width and height will be a power of 2).
+ </para>
+ <para>
+ The contents of the depth and stencil buffers may not be
+ preserved when rendering a texture to the pbuffer and
+ switching which image of the texture is rendered to (e.g.,
+ switching from rendering one mipmap level to rendering
+ another).
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_NO_SURFACE</constant> is returned if creation of
+ the context fails.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONFIG</constant> is generated if
+ <parameter>config</parameter> is not an EGL frame buffer configuration.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains an invalid pixel
+ buffer attribute or if an attribute value is not recognized
+ or out of range.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains any of the
+ attributes <constant>EGL_MIPMAP_TEXTURE</constant>,
+ <constant>EGL_TEXTURE_FORMAT</constant>, or
+ <constant>EGL_TEXTURE_TARGET</constant>, and
+ <parameter>config</parameter> does not support OpenGL ES
+ rendering (e.g. the EGL version is 1.2 or later, and the
+ <constant>EGL_RENDERABLE_TYPE</constant> attribute of
+ <parameter>config</parameter> does not include at least one
+ of <constant>EGL_OPENGL_ES_BIT</constant> or
+ <constant>EGL_OPENGL_ES2_BIT</constant>).
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> is generated if there are not
+ enough resources to allocate the new surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>config</parameter> does not support rendering to pixel buffers
+ (the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
+ <constant>EGL_PBUFFER_BIT</constant>).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ <constant>EGL_TEXTURE_FORMAT</constant> attribute is not
+ <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_WIDTH</constant> and/or
+ <constant>EGL_HEIGHT</constant> specify an invalid size
+ (e.g., the texture size is not a power of 2, and the
+ underlying OpenGL ES implementation does not support
+ non-power-of-two textures).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ the <constant>EGL_TEXTURE_FORMAT</constant> attribute is
+ <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_TEXTURE_TARGET</constant> is something other
+ than <constant>EGL_NO_TEXTURE</constant>; or,
+ <constant>EGL_TEXTURE_FORMAT</constant> is something other
+ than <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_TEXTURE_TARGET</constant> is
+ <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>config</parameter> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_PRE</constant> and the
+ <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>) or colorspace attribute (the
+ value of <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant> and the
+ <constant>EGL_VG_COLORSPACE_LINEAR_IT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>).
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePixmapSurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePixmapSurface.xml
new file mode 100644
index 0000000..15f72ec
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreatePixmapSurface.xml
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglCreatePixmapSurface">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglCreatePixmapSurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreatePixmapSurface</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> pixmap surface
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglCreatePixmapSurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>NativePixmapType <parameter>native_pixmap</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem><para>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>native_pixmap</parameter></term>
+ <listitem><para>Specifies the native pixmap.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies pixmap surface attributes.
+ May be <constant>NULL</constant> or empty
+ (first attribute is <constant>EGL_NONE</constant>).
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglCreatePixmapSurface</function> creates an
+ off-screen <acronym>EGL</acronym> pixmap surface and returns
+ its handle. If <function>eglCreatePixmapSurface</function>
+ fails to create a pixmap surface,
+ <constant>EGL_NO_SURFACE</constant> is returned.
+ </para>
+ <para>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <constant>EGL_NONE</constant>. Accepted attributes
+ are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
+ <listitem>
+ <para>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>,
+ then alpha values are not premultipled. If its value
+ is <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>,
+ then alpha values are premultiplied. The default
+ value of <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_COLORSPACE</constant></term>
+ <listitem>
+ <para>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <type>VGImageFormat</type> of form
+ <constant>VG_s*</constant>. If its value is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant>, then
+ a linear color space is assumed, with a
+ corresponding <type>VGImageFormat</type> of form
+ <constant>VG_l*</constant>. The default value of
+ <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ Any EGL rendering context that was created with respect to
+ <parameter>config</parameter> can be used to render into the
+ surface. Use
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ to attach an EGL rendering context to the surface.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ to retrieve the ID of <parameter>config</parameter>.
+ </para>
+ <para>
+ Use <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+ to destroy the surface.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ The <constant>EGL_MATCH_NATIVE_PIXMAP</constant> attribute
+ of
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>
+ can be used to select a frame buffer configuration matching
+ a specified native pixmap.
+ </para>
+ <para>
+ Attributes
+ <constant>EGL_VG_ALPHA_FORMAT</constant> and
+ <constant>EGL_VG_COLORSPACE</constant>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <!-- Might want to mention aliasing of EGL_VG_* -> EGL_* that occurred in EGL 1.3 -->
+ <para>
+ The <constant>EGL_VG_ALPHA_FORMAT</constant> and
+ <constant>EGL_VG_COLORSPACE</constant> attributes are used
+ only by OpenVG. EGL itself, and other client APIs such as
+ OpenGL and OpenGL ES , do not distinguish multiple
+ colorspace models. Refer to section 11.2 of the OpenVG 1.0
+ specification for more information. The native window
+ system's use and interpretation of alpha values is outside
+ the scope of EGL, although the preferred behavior is for the
+ window system to ignore the value of
+ <constant>EGL_VG_ALPHA_FORMAT</constant>.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_NO_SURFACE</constant> is returned if creation of
+ the context fails.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONFIG</constant> is generated if
+ <parameter>config</parameter> is not an EGL config.
+ </para>
+ <para>
+ <constant>EGL_BAD_NATIVE_PIXMAP</constant> may be generated if
+ <parameter>native_pixmap</parameter> is not a valid native pixmap.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains an invalid pixmap attribute
+ or if an attribute value is not recognized or out of range.
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> is generated if there are not
+ enough resources to allocate the new surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the attributes of
+ <parameter>native_pixmap</parameter> do not correspond to
+ <parameter>config</parameter> or if
+ <parameter>config</parameter> does not support rendering to pixmaps
+ (the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
+ <constant>EGL_PIXMAP_BIT</constant>).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>config</parameter> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_PRE</constant> and the
+ <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>) or colorspace attribute (the
+ value of <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant> and the
+ <constant>EGL_VG_COLORSPACE_LINEAR_IT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>).
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreateWindowSurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreateWindowSurface.xml
new file mode 100644
index 0000000..942cc73
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglCreateWindowSurface.xml
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglCreateWindowSurface">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglCreateWindowSurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreateWindowSurface</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> window surface
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglCreateWindowSurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>NativeWindowType <parameter>native_window</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem>
+ <para>Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>native_window</parameter></term>
+ <listitem><para>Specifies the native window.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies window surface attributes.
+ May be <constant>NULL</constant> or empty
+ (first attribute is <constant>EGL_NONE</constant>).
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglCreateWindowSurface</function> creates an EGL
+ window surface and returns its handle. If
+ <function>eglCreateWindowSurface</function> fails to create
+ a window surface, <constant>EGL_NO_SURFACE</constant> is
+ returned.
+ </para>
+ <para>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <constant>EGL_NONE</constant>. Accepted attributes
+ are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_RENDER_BUFFER</constant></term>
+ <listitem>
+ <para>
+ Specifies which buffer should be used for client API
+ rendering to the window. If its value is
+ <constant>EGL_SINGLE_BUFFER</constant>, then client
+ APIs should render directly into the visible window.
+ If its value is
+ <constant>EGL_BACK_BUFFER</constant>, then client
+ APIs should render into the back buffer. The default
+ value of <constant>EGL_RENDER_BUFFER</constant> is
+ <constant>EGL_BACK_BUFFER</constant>.
+ </para>
+ <para>
+ Client APIs may not be able to respect the requested
+ rendering buffer. To determine the actual buffer
+ being rendered to by a context, call
+ <citerefentry><refentrytitle>eglQueryContext</refentrytitle></citerefentry>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
+ <listitem>
+ <para>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>,
+ then alpha values are not premultipled. If its value
+ is <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>,
+ then alpha values are premultiplied. The default
+ value of <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_COLORSPACE</constant></term>
+ <listitem>
+ <para>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <type>VGImageFormat</type> of form
+ <constant>VG_s*</constant>. If its value is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant>, then
+ a linear color space is assumed, with a
+ corresponding <type>VGImageFormat</type> of form
+ <constant>VG_l*</constant>. The default value of
+ <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ Any EGL rendering context that was created with respect to
+ <parameter>config</parameter> can be used to render into the
+ surface. Use
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ to attach an EGL rendering context to the surface.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ to retrieve the ID of <parameter>config</parameter>.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+ to destroy the surface.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ Attributes <constant>EGL_RENDER_BUFFER</constant>,
+ <constant>EGL_VG_ALPHA_FORMAT</constant>, and
+ <constant>EGL_VG_COLORSPACE</constant>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <!-- Might want to mention aliasing of EGL_VG_* -> EGL_* that occurred in EGL 1.3 -->
+ <para>
+ The <constant>EGL_VG_ALPHA_FORMAT</constant> and
+ <constant>EGL_VG_COLORSPACE</constant> attributes are used
+ only by OpenVG. EGL itself, and other client APIs such as
+ OpenGL and OpenGL ES , do not distinguish multiple
+ colorspace models. Refer to section 11.2 of the OpenVG 1.0
+ specification for more information. The native window
+ system's use and interpretation of alpha values is outside
+ the scope of EGL, although the preferred behavior is for the
+ window system to ignore the value of
+ <constant>EGL_VG_ALPHA_FORMAT</constant> when compositing
+ window surfaces.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_NO_SURFACE</constant> is returned if creation of
+ the context fails.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONFIG</constant> is generated if
+ <parameter>config</parameter> is not an EGL frame buffer configuration.
+ </para>
+ <para>
+ <constant>EGL_BAD_NATIVE_WINDOW</constant> may be generated if
+ <parameter>native_window</parameter> is not a valid native window.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains an invalid window attribute
+ or if an attribute value is not recognized or is out of range.
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> is generated if there are not
+ enough resources to allocate the new surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the attributes of
+ <parameter>native_window</parameter> do not correspond to
+ <parameter>config</parameter> or if
+ <parameter>config</parameter> does not support rendering to windows
+ (the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
+ <constant>EGL_WINDOW_BIT</constant>).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>config</parameter> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_PRE</constant> and the
+ <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>) or colorspace attribute (the
+ value of <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant> and the
+ <constant>EGL_VG_COLORSPACE_LINEAR_IT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>).
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglDestroyContext.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglDestroyContext.xml
new file mode 100644
index 0000000..0edbf42
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglDestroyContext.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglDestroyContext">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglDestroyContext</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglDestroyContext</refname>
+ <refpurpose>
+ destroy an <acronym>EGL</acronym> rendering context
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglDestroyContext</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLContext <parameter>context</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>context</parameter></term>
+ <listitem><para>Specifies the EGL rendering context to be destroyed.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ If the EGL rendering context <parameter>context</parameter> is not
+ current to any thread,
+ <function>eglDestroyContext</function> destroys it immediately.
+ Otherwise, <parameter>context</parameter> is destroyed when it becomes
+ not current to any thread.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if destruction of
+ the context fails, <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONTEXT</constant> is generated if
+ <parameter>context</parameter> is not an EGL rendering context.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglDestroySurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglDestroySurface.xml
new file mode 100644
index 0000000..9693990
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglDestroySurface.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglDestroySurface">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglDestroySurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglDestroySurface</refname>
+ <refpurpose>
+ destroy an <acronym>EGL</acronym> surface
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglDestroySurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem><para>Specifies the EGL surface to be destroyed.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ If the EGL surface <parameter>surface</parameter> is not current to any
+ thread, <function>eglDestroySurface</function> destroys it immediately.
+ Otherwise, <parameter>surface</parameter> is destroyed when it becomes
+ not current to any thread.
+ Furthermore, resources associated with a pbuffer surface are not released until
+ all color buffers of that pbuffer bound to a texture object have been released.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if destruction of
+ the surface fails, <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL surface.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry> </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetConfigAttrib.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetConfigAttrib.xml
new file mode 100644
index 0000000..25bccac
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetConfigAttrib.xml
@@ -0,0 +1,326 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglGetConfigAttrib">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglGetConfigAttrib</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetConfigAttrib</refname>
+ <refpurpose>
+ return information about an <acronym>EGL</acronym> frame buffer
+ configuration
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglGetConfigAttrib</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>EGLint <parameter>attribute</parameter></paramdef>
+ <paramdef>EGLint * <parameter>value</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem><para>Specifies the EGL frame buffer configuration to be
+ queried.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attribute</parameter></term>
+ <listitem><para>Specifies the EGL rendering context attribute to be
+ returned.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>value</parameter></term>
+ <listitem><para>Returns the requested value.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglGetConfigAttrib</function> returns in
+ <parameter>value</parameter> the value of
+ <parameter>attribute</parameter> for
+ <parameter>config</parameter>
+ (config attributes are described in more detail in the
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>
+ reference page).
+ <parameter>attribute</parameter> can be one of the following:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_ALPHA_SIZE</constant></term>
+ <listitem><para>Returns the number of bits of alpha stored in the
+ color buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_ALPHA_MASK_SIZE</constant></term>
+ <listitem><para>
+ Returns the number of bits in the alpha mask buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BIND_TO_TEXTURE_RGB</constant></term>
+ <listitem><para>Returns <constant>EGL_TRUE</constant> if color buffers can be
+ bound to an RGB texture,
+ <constant>EGL_FALSE</constant> otherwise.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BIND_TO_TEXTURE_RGBA</constant></term>
+ <listitem><para>Returns <constant>EGL_TRUE</constant> if color buffers can be
+ bound to an RGBA texture,
+ <constant>EGL_FALSE</constant> otherwise.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BLUE_SIZE</constant></term>
+ <listitem><para>Returns the number of bits of blue stored in the
+ color buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BUFFER_SIZE</constant></term>
+ <listitem><para>Returns the depth of the color buffer.
+ It is the sum of
+ <constant>EGL_RED_SIZE</constant>,
+ <constant>EGL_GREEN_SIZE</constant>,
+ <constant>EGL_BLUE_SIZE</constant>, and
+ <constant>EGL_ALPHA_SIZE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_COLOR_BUFFER_TYPE</constant></term>
+ <listitem><para>
+ Returns the color buffer type. Possible types are
+ <constant>EGL_RGB_BUFFER</constant> and
+ <constant>EGL_LUMINANCE_BUFFER</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_CAVEAT</constant></term>
+ <listitem><para>Returns the caveats for the frame buffer configuration.
+ Possible caveat values are
+ <constant>EGL_NONE</constant>,
+ <constant>EGL_SLOW_CONFIG</constant>, and
+ <constant>EGL_NON_CONFORMANT</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_ID</constant></term>
+ <listitem><para>Returns the ID of the frame buffer configuration.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFORMANT</constant></term>
+ <listitem><para>
+ Returns a bitmask indicating which client API contexts
+ created with respect to this config are conformant.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_DEPTH_SIZE</constant></term>
+ <listitem><para>Returns the number of bits in the depth buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_GREEN_SIZE</constant></term>
+ <listitem><para>Returns the number of bits of green stored in the
+ color buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LEVEL</constant></term>
+ <listitem><para>Returns the frame buffer level.
+ Level zero is the default frame buffer.
+ Positive levels correspond to frame buffers that overlay the default
+ buffer and negative levels correspond to frame buffers that underlay
+ the default buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LUMINANCE_SIZE</constant></term>
+ <listitem>
+ <para>
+ Returns the number of bits of luminance stored in the luminance buffer.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MAX_PBUFFER_WIDTH</constant></term>
+ <listitem><para>Returns the maximum width of a pixel buffer surface in pixels.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MAX_PBUFFER_HEIGHT</constant></term>
+ <listitem><para>Returns the maximum height of a pixel buffer surface in pixels.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MAX_PBUFFER_PIXELS</constant></term>
+ <listitem><para>Returns the maximum size of a pixel buffer surface in pixels.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MAX_SWAP_INTERVAL</constant></term>
+ <listitem><para>Returns the maximum value that can be passed to eglSwapInterval.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MIN_SWAP_INTERVAL</constant></term>
+ <listitem><para>Returns the minimum value that can be passed to eglSwapInterval.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_NATIVE_RENDERABLE</constant></term>
+ <listitem><para>Returns <constant>EGL_TRUE</constant> if native rendering
+ APIs can render into the surface,
+ <constant>EGL_FALSE</constant> otherwise.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_NATIVE_VISUAL_ID</constant></term>
+ <listitem><para>Returns the ID of the associated native visual.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_NATIVE_VISUAL_TYPE</constant></term>
+ <listitem><para>Returns the type of the associated native visual.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RED_SIZE</constant></term>
+ <listitem><para>Returns the number of bits of red stored in the
+ color buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RENDERABLE_TYPE</constant></term>
+ <listitem>
+ <para>
+ Returns a bitmask indicating the types of supported
+ client API contexts.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SAMPLE_BUFFERS</constant></term>
+ <listitem><para>Returns the number of multisample buffers.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SAMPLES</constant></term>
+ <listitem><para>Returns the number of samples per pixel.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_STENCIL_SIZE</constant></term>
+ <listitem><para>Returns the number of bits in the stencil buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SURFACE_TYPE</constant></term>
+ <listitem><para>
+ Returns a bitmask indicating the types of supported EGL
+ surfaces.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_TYPE</constant></term>
+ <listitem><para>Returns the type of supported transparency.
+ Possible transparency values are:
+ <constant>EGL_NONE</constant>, and
+ <constant>EGL_TRANSPARENT_RGB</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_RED_VALUE</constant></term>
+ <listitem><para>Returns the transparent red value.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_GREEN_VALUE</constant></term>
+ <listitem><para>Returns the transparent green value.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_BLUE_VALUE</constant></term>
+ <listitem><para>Returns the transparent blue value.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ <constant>EGL_CONFORMANT</constant> is supported only if the
+ EGL version is 1.3 or greater.
+ </para>
+ <para>
+ <constant>EGL_ALPHA_MASK_SIZE</constant>,
+ <constant>EGL_COLOR_BUFFER_TYPE</constant>,
+ <constant>EGL_LUMINANCE_SIZE</constant>, and
+ <constant>EGL_RENDERABLE_TYPE</constant> are supported only
+ if the EGL version is 1.2 or greater.
+ </para>
+ <para>
+ While <constant>EGL_MATCH_NATIVE_PIXMAP</constant> can be
+ specified in the attribute list passed to
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ it is not an attribute of the resulting config and cannot be
+ queried using <function>eglGetConfigAttrib</function>.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>value</parameter> is not modified when
+ <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONFIG</constant> is generated if
+ <parameter>config</parameter> is not an EGL frame buffer configuration.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attribute</parameter> is not a valid frame buffer
+ configuration attribute.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetConfigs.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetConfigs.xml
new file mode 100644
index 0000000..4333862
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetConfigs.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglGetConfigs">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglGetConfigs</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetConfigs</refname>
+ <refpurpose>
+ return a list of all <acronym>EGL</acronym> frame buffer configurations
+ for a display
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglGetConfigs</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig * <parameter>configs</parameter></paramdef>
+ <paramdef>EGLint <parameter>config_size</parameter></paramdef>
+ <paramdef>EGLint * <parameter>num_config</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>configs</parameter></term>
+ <listitem><para>Returns a list of configs.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config_size</parameter></term>
+ <listitem><para>Specifies the size of the list of configs.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>num_config</parameter></term>
+ <listitem><para>Returns the number of configs returned.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglGetConfigs</function> returns a list of all
+ EGL frame buffer configurations that are available for the specified
+ display.
+ The items in the list can be used in any EGL function that requires
+ an EGL frame buffer configuration.
+ </para>
+ <para>
+ <parameter>configs</parameter> does not return values, if it is specified
+ as
+ <constant>NULL</constant>. This is useful for querying just the
+ number of all frame buffer configurations.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>
+ to retrieve individual attribute values of a frame buffer configuration.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>configs</parameter> and <parameter>num_config</parameter>
+ are not modified when
+ <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>num_config</parameter> is <constant>NULL</constant>.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentContext.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentContext.xml
new file mode 100644
index 0000000..6b6bc21
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentContext.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglGetCurrentContext">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglGetCurrentContext</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetCurrentContext</refname>
+ <refpurpose>
+ return the current <acronym>EGL</acronym> rendering context
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLContext <function>eglGetCurrentContext</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglGetCurrentContext</function> returns the current
+ <acronym>EGL</acronym> rendering context, as specified by
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ If no context is current, <constant>EGL_NO_CONTEXT</constant> is returned.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentDisplay.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentDisplay.xml
new file mode 100644
index 0000000..64bfa75
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentDisplay.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglGetCurrentDisplay">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglGetCurrentDisplay</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetCurrentDisplay</refname>
+ <refpurpose>
+ return the display for the current <acronym>EGL</acronym> rendering context
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLDisplay <function>eglGetCurrentDisplay</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglGetCurrentDisplay</function> returns the current
+ <acronym>EGL</acronym> display connection for the current
+ <acronym>EGL</acronym> rendering context, as specified by
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ If no context is current, <constant>EGL_NO_DISPLAY</constant> is returned.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry> </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentSurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentSurface.xml
new file mode 100644
index 0000000..075da4e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetCurrentSurface.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglGetCurrentSurface">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglGetCurrentSurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetCurrentSurface</refname>
+ <refpurpose>
+ return the read or draw surface for the current <acronym>EGL</acronym> rendering context
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglGetCurrentSurface</function></funcdef>
+ <paramdef>EGLint <parameter>readdraw</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>readdraw</parameter></term>
+ <listitem>
+ <para>
+ Specifies whether the <acronym>EGL</acronym> read or draw surface
+ is to be returned.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglGetCurrentSurface</function> returns the read or draw
+ surface attached to the current
+ <acronym>EGL</acronym> rendering context, as specified by
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ If no context is current, <constant>EGL_NO_SURFACE</constant> is returned.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry> </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetDisplay.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetDisplay.xml
new file mode 100644
index 0000000..01efe4f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetDisplay.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglGetDisplay">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglGetDisplay</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetDisplay</refname>
+ <refpurpose>
+ return an <acronym>EGL</acronym> display connection
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLDisplay <function>eglGetDisplay</function></funcdef>
+ <paramdef>NativeDisplayType <parameter>native_display</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>native_display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the display to connect to.
+ <constant>EGL_DEFAULT_DISPLAY</constant> indicates the default display.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglGetDisplay</function> obtains the
+ <acronym>EGL</acronym> display connection for the native
+ display <parameter>native_display</parameter>.
+ </para>
+ <para>
+ If <parameter>display_id</parameter> is
+ <constant>EGL_DEFAULT_DISPLAY</constant>, a default display connection is returned.
+ </para>
+ <para>
+ If no display connection matching <parameter>native_display</parameter> is
+ available, <constant>EGL_NO_DISPLAY</constant> is returned. No
+ error is generated.
+ </para>
+ <para>
+ Use <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ to initialize the display connection.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetError.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetError.xml
new file mode 100644
index 0000000..86658a7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetError.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglGetError">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglGetError</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetError</refname>
+ <refpurpose>
+ return error information
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLint <function>eglGetError</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglGetError</function> returns the error of the last
+ called <acronym>EGL</acronym> function in the current thread.
+ Initially, the error is set to <constant>EGL_SUCCESS</constant>.
+ </para>
+ <para>
+ The following errors are currently defined:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_SUCCESS</constant></term>
+ <listitem><para>The last function succeeded without error.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_NOT_INITIALIZED</constant></term>
+ <listitem><para>EGL is not initialized, or could not be initialized,
+ for the specified EGL display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_ACCESS</constant></term>
+ <listitem><para>EGL cannot access a requested resource
+ (for example a context is bound in another thread).
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_ALLOC</constant></term>
+ <listitem><para>EGL failed to allocate resources for the requested
+ operation.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_ATTRIBUTE</constant></term>
+ <listitem><para>An unrecognized attribute or attribute value was
+ passed in the attribute list.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_CONTEXT</constant></term>
+ <listitem><para>An <type>EGLContext</type> argument does not name a
+ valid EGL rendering context.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_CONFIG</constant></term>
+ <listitem><para>
+ An <type>EGLConfig</type> argument does not name a valid
+ EGL frame buffer configuration.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_CURRENT_SURFACE</constant></term>
+ <listitem><para>The current surface of the calling thread is a window,
+ pixel buffer or pixmap that is no longer valid.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_DISPLAY</constant></term>
+ <listitem><para>An <type>EGLDisplay</type> argument does not name a
+ valid EGL display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_SURFACE</constant></term>
+ <listitem><para>An <type>EGLSurface</type> argument does not name a
+ valid surface (window, pixel buffer or pixmap) configured for
+ GL rendering.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_MATCH</constant></term>
+ <listitem><para>Arguments are inconsistent (for example, a valid
+ context requires buffers not supplied by a valid surface).
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_PARAMETER</constant></term>
+ <listitem><para>One or more argument values are invalid.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_NATIVE_PIXMAP</constant></term>
+ <listitem><para>
+ A <type>NativePixmapType</type> argument does not refer to
+ a valid native pixmap.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_NATIVE_WINDOW</constant></term>
+ <listitem><para>A <type>NativeWindowType</type> argument does not refer
+ to a valid native window.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_LOST</constant></term>
+ <listitem><para>
+ A power management event has occurred. The application must destroy all
+ contexts and reinitialise OpenGL ES state and objects to continue rendering.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ A call to <function>eglGetError</function> sets the error to
+ <constant>EGL_SUCCESS</constant>.
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetProcAddress.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetProcAddress.xml
new file mode 100644
index 0000000..aac0bbd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglGetProcAddress.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglGetProcAddress">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglGetProcAddress</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetProcAddress</refname>
+ <refpurpose>
+ return a <acronym>GL</acronym> or an <acronym>EGL</acronym>
+ extension function
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>void (* <function>eglGetProcAddress</function>)()</funcdef>
+ <paramdef>char const * <parameter>procname</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>procname</parameter></term>
+ <listitem>
+ <para>
+ Specifies the name of the function to return.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglGetProcAddress</function> returns the address of
+ the extension function named by <parameter>procname</parameter>.
+ <parameter>procname</parameter>
+ must be a null-terminated string. The pointer returned
+ should be cast to a function pointer type matching the extension
+ function's definition in that extension specification. A return value
+ of <constant>NULL</constant> indicates that the specific
+ function does not exist for the <acronym>EGL</acronym> implementation.
+ </para>
+ <para>
+ A non-<constant>NULL</constant> return value does not guarantee
+ that an extension function is actually supported at runtime. The client
+ must also query
+ <citerefentry><refentrytitle>glGetString</refentrytitle></citerefentry>(<constant>GL_EXTENSIONS</constant>) or
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>(<parameter>display</parameter>,
+ <constant>EGL_EXTENSIONS</constant>) to determine if an
+ extension is supported by a particular context or display.
+ </para>
+ <para>
+ Function pointers returned by
+ <function>eglGetProcAddress</function> are independent of the
+ display and the currently bound context and may be used by any context
+ which supports the extension.
+ </para>
+ <para>
+ <function>eglGetProcAddress</function> may be queried for all
+ <acronym>GL</acronym> and <acronym>EGL</acronym> extension functions.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glGetString</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry> </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglInitialize.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglInitialize.xml
new file mode 100644
index 0000000..854c172
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglInitialize.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglInitialize">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglInitialize</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglInitialize</refname>
+ <refpurpose>
+ initialize an <acronym>EGL</acronym> display connection
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglInitialize</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLint * <parameter>major</parameter></paramdef>
+ <paramdef>EGLint * <parameter>minor</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection to initialize.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>major</parameter></term>
+ <listitem>
+ <para>
+ Returns the major version number of the EGL implementation.
+ May be <constant>NULL</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>minor</parameter></term>
+ <listitem>
+ <para>
+ Returns the minor version number of the EGL implementation.
+ May be <constant>NULL</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglInitialize</function> initialized the EGL display
+ connection obtained with
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>.
+ Initializing an already initialized EGL display connection has no
+ effect besides returning the version numbers.
+ </para>
+ <para>
+ <parameter>major</parameter> and <parameter>minor</parameter>
+ do not return values if they are specified as <constant>NULL</constant>.
+ </para>
+ <para>
+ Use <citerefentry><refentrytitle>eglTerminate</refentrytitle></citerefentry>
+ to release resources associated with an EGL display connection.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if
+ <function>eglInitialize</function> fails,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>major</parameter> and <parameter>minor</parameter> are not
+ modified when <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> cannot be initialized.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglTerminate</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglIntro.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglIntro.xml
new file mode 100644
index 0000000..d972451
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglIntro.xml
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglIntro">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglIntro</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglIntro</refname>
+ <refpurpose>
+ introduction to managing client API rendering through the
+ <acronym>EGL</acronym> API.
+ </refpurpose>
+ </refnamediv>
+ <refsect1 id="overview"><title>Overview</title>
+ <para>
+ The <firstterm>Khronos Native Platform Graphics
+ Interface</firstterm> (EGL) provides a means for rendering
+ using a <firstterm>client API</firstterm> such as OpenGL ES
+ (a 3D renderer for embedded systems), OpenGL (a functional
+ superset of OpenGL ES for desktop systems), and OpenVG (a 2D
+ vector graphics renderer) together with a native window
+ system, such as Microsoft Windows or the X Window System.
+ </para>
+ <para>
+ Depending on its implementation EGL might be more or less
+ tightly integrated into the native window system. Most EGL
+ functions require an EGL display connection, which can be
+ obtained by calling
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>
+ and passing in a native display handle or
+ <constant>EGL_DEFAULT_DISPLAY</constant>. To initialize and
+ query what EGL version is supported on the display
+ connection, call
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ Native window systems supporting EGL make a subset of their
+ visuals (which may also referred to as pixel formats, frame
+ buffer configurations, or other similar terms) available for
+ client API rendering. Windows and pixmaps created with these
+ visuals may also be rendered into using the native window
+ system API.
+ </para>
+ <para>
+ An EGL <firstterm>surface</firstterm> extends a native
+ window or pixmap with additional <firstterm>auxillary
+ buffers</firstterm>. These buffers include a color buffer, a
+ depth buffer, a stencil buffer, and an alpha mask buffer.
+ Some or all of the buffers listed are included in each EGL
+ frame buffer configuration.
+ </para>
+ <para>
+ EGL supports rendering into three types of surfaces:
+ windows, pixmaps and pixel buffers (pbuffers). EGL window
+ and pixmap surfaces are associated with corresponding
+ resources of the native window system. EGL pixel buffers are
+ EGL only resources, and do not accept rendering through the
+ native window system.
+ </para>
+ <para>
+ To render using a client API into an EGL surface, you must
+ determine the appropriate EGL frame buffer configuration,
+ which supports the rendering features the application
+ requires.
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>
+ returns an <type>EGLConfig</type> matching the required
+ attributes, if any. A complete list of EGL frame buffer
+ configurations can be obtained by calling
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>.
+ Attributes of a particular EGL frame buffer configuration
+ can be queried by calling
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ For EGL window and pixmap surfaces, a suitable native window
+ or pixmap with a matching native visual must be created
+ first. For a given EGL frame buffer configuration, the
+ native visual type and ID can be retrieved with a call to
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>.
+ For pixel buffers, no underlying native resource is
+ required.
+ </para>
+ <para>
+ To create an EGL window surface from a native window, call
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>.
+ To create an EGL pixmap surface from a native pixmap, call
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>.
+ To create a pixel buffer (pbuffer) surface (which has no
+ associated native buffer), call
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>
+ To create a pixel buffer (pbuffer) surface whose color
+ buffer is provided by an OpenVG <type>VGImage</type>, call
+ <citerefentry><refentrytitle>eglCreatePbufferFromClientBuffer</refentrytitle></citerefentry>.
+ Use
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+ to release previously allocated resources.
+ </para>
+ <para>
+ An EGL rendering context is required to bind client API
+ rendering to an EGL surface. An EGL surface and an EGL
+ rendering context must have compatible EGL frame buffer
+ configurations. To create an EGL rendering context, call
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>.
+ The type of client API context created (OpenGL ES, OpenVG,
+ etc.) can be changed by first calling
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ An EGL rendering context may be bound to one or two EGL
+ surfaces by calling
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ This context/surface(s) association specifies the
+ <firstterm>current context</firstterm> and
+ <firstterm>current surface</firstterm>, and is used by all
+ client API rendering commands for the bound context until
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ is called with different arguments.
+ </para>
+ <para>
+ Both native and client API commands may be used to operate
+ on certain surfaces, however, the two command streams are
+ not synchronized. Synchronization can be explicitly
+ specified using by calling
+ <citerefentry><refentrytitle>eglWaitCLient</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>,
+ and possibly by calling other native window system commands.
+ </para>
+ </refsect1>
+ <refsect1 id="examples"><title>Examples</title>
+ <para>
+ Below is a minimal example of creating an RGBA-format window that
+ allows rendering with OpenGL ES.
+ The window is cleared to yellow when the program runs. For simplicity,
+ the program does not check for any errors.
+ </para>
+<programlisting>
+#include &lt;stdlib.h&gt;
+#include &lt;unistd.h&gt;
+#include &lt;EGL/egl.h&gt;
+#include &lt;GLES/gl.h&gt;
+typedef ... NativeWindowType;
+extern NativeWindowType createNativeWindow(void);
+static EGLint const attribute_list[] = {
+ EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_NONE
+};
+int main(int argc, char ** argv)
+{
+ EGLDisplay display;
+ EGLConfig config;
+ EGLContext context;
+ EGLSurface surface;
+ NativeWindowType native_window;
+ EGLint num_config;
+
+ /* get an EGL display connection */
+ display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
+ /* initialize the EGL display connection */
+ eglInitialize(display, NULL, NULL);
+
+ /* get an appropriate EGL frame buffer configuration */
+ eglChooseConfig(display, attribute_list, &amp;config, 1, &amp;num_config);
+
+ /* create an EGL rendering context */
+ context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
+
+ /* create a native window */
+ native_window = createNativeWindow();
+
+ /* create an EGL window surface */
+ surface = eglCreateWindowSurface(display, config, native_window, NULL);
+
+ /* connect the context to the surface */
+ eglMakeCurrent(display, surface, surface, context);
+
+ /* clear the color buffer */
+ glClearColor(1.0, 1.0, 0.0, 1.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glFlush();
+
+ eglSwapBuffers(display, surface);
+
+ sleep(10);
+ return EXIT_SUCCESS;
+}
+</programlisting>
+ </refsect1>
+ <refsect1 id="usingeglextensions"><title>Using EGL Extensions</title>
+ <para>
+ All supported EGL extensions will have a corresponding definition in
+ <filename>egl.h</filename> and a token in the extensions string returned
+ by
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>.
+ </para>
+ </refsect1>
+ <refsect1 id="futureeglversions"><title>Future EGL Versions</title>
+ <para>
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ and
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>
+ can be used to determine at run-time what version of EGL is available.
+ To check the EGL version at compile-time, test whether
+ <constant>EGL_VERSION_<replaceable>x</replaceable>_<replaceable>y</replaceable></constant>
+ is defined, where <replaceable>x</replaceable> and
+ <replaceable>y</replaceable> are the major and minor version
+ numbers.
+ </para>
+ </refsect1>
+ <refsect1 id="files"><title>Files</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>GLES/egl.h</filename></term>
+ <listitem><para>
+ EGL header file
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+<!--
+ <citerefentry><refentrytitle>glIntro</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>,
+-->
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferFromClientBuffer</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglDestroyContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglTerminate</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitGL</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglMakeCurrent.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglMakeCurrent.xml
new file mode 100644
index 0000000..b237907
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglMakeCurrent.xml
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglMakeCurrent">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglMakeCurrent</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglMakeCurrent</refname>
+ <refpurpose>
+ attach an EGL rendering context to EGL surfaces
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglMakeCurrent</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>draw</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>read</parameter></paramdef>
+ <paramdef>EGLContext <parameter>context</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> display connection.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>draw</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> draw surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>read</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> read surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>context</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> rendering context
+ to be attached to the surfaces.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglMakeCurrent</function> binds <parameter>context</parameter>
+ to the current rendering thread and to the <parameter>draw</parameter>
+ and <parameter>read</parameter> surfaces. <parameter>draw</parameter>
+ is used for all GL operations except for any pixel data read back
+ (<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>, and
+ <citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>),
+ which is taken from the frame buffer values of
+ <parameter>read</parameter>.
+ </para>
+ <para>
+ If the calling thread has already a current rendering context, that
+ context is flushed and marked as no longer current.
+ </para>
+ <para>
+ The first time that <parameter>context</parameter> is made current,
+ the viewport and scissor dimensions are set to the size of the
+ <parameter>draw</parameter> surface. The viewport and
+ scissor are not modified when <parameter>context</parameter> is
+ subsequently made current.
+ </para>
+ <para>
+ To release the current context without assigning a new one, call
+ <function>eglMakeCurrent</function> with <parameter>draw</parameter>
+ and <parameter>read</parameter> set to
+ <constant>EGL_NO_SURFACE</constant> and <parameter>context</parameter>
+ set to <constant>EGL_NO_CONTEXT</constant>.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>, and
+ <citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry>
+ to query the current rendering context and associated display connection and surfaces.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise. If <constant>EGL_FALSE</constant>
+ is returned, the previously current rendering context and
+ surfaces (if any) remain unchanged.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>draw</parameter> or <parameter>read</parameter> is not an
+ EGL surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONTEXT</constant> is generated if
+ <parameter>context</parameter> is not an EGL rendering context.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>draw</parameter> or
+ <parameter>read</parameter>
+ are not compatible with
+ <parameter>context</parameter>, or if
+ <parameter>context</parameter> is set to
+ <constant>EGL_NO_CONTEXT</constant> and
+ <parameter>draw</parameter> or
+ <parameter>read</parameter>
+ are not set to
+ <constant>EGL_NO_SURFACE</constant>, or if
+ <parameter>draw</parameter> or
+ <parameter>read</parameter> are set to
+ <constant>EGL_NO_SURFACE</constant> and
+ <parameter>context</parameter> is not set to
+ <constant>EGL_NO_CONTEXT</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_ACCESS</constant> is generated if
+ <parameter>context</parameter>
+ is current to some other thread.
+ </para>
+ <para>
+ <constant>EGL_BAD_NATIVE_PIXMAP</constant> may be generated if
+ a native pixmap underlying either
+ <parameter>draw</parameter> or
+ <parameter>read</parameter>
+ is no longer valid.
+ </para>
+ <para>
+ <constant>EGL_BAD_NATIVE_WINDOW</constant> may be generated if
+ a native window underlying either
+ <parameter>draw</parameter> or
+ <parameter>read</parameter>
+ is no longer valid.
+ </para>
+ <para>
+ <constant>EGL_BAD_CURRENT_SURFACE</constant> is generated if
+ the previous context has unflushed commands and the previous surface
+ is no longer valid.
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> may be generated if
+ allocation of ancillary buffers for <parameter>draw</parameter> or
+ <parameter>read</parameter> were delayed until
+ <function>eglMakeCurrent</function> is called, and there are not
+ enough resources to allocate them.
+ </para>
+ <para>
+ <constant>EGL_CONTEXT_LOST</constant> is generated if a power management
+ event has occurred. The application must destroy all contexts and
+ reinitialise OpenGL ES state and objects to continue rendering.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryAPI.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryAPI.xml
new file mode 100644
index 0000000..359f64c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryAPI.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglQueryAPI">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglQueryAPI</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglQueryAPI</refname>
+ <refpurpose>Query the current rendering API</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv><title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLenum <function>eglQueryAPI</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglQueryAPI</function> returns the value of the
+ current rendering API for EGL in the thread it is called
+ from. The current rendering API is set by
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ and affects the behavior of other EGL commands.
+ </para>
+ <para>
+ The value returned will be one of the valid
+ <parameter>api</parameter> parameters to
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>, or
+ <constant>EGL_NONE</constant>.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ <function>eglQueryAPI</function> is supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <para>
+ The initial value of the current rendering API is
+ <constant>EGL_OPENGL_ES_API</constant> unless OpenGL ES is
+ not supported by an implementation, in which case the
+ initial value is <constant>EGL_NONE</constant> (however,
+ <constant>EGL_NONE</constant> is not a valid
+ <parameter>api</parameter> parameter to
+ <function>eglQueryAPI</function>).
+ </para>
+ <para>
+ The current rendering API can be changed by calling
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ None.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryContext.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryContext.xml
new file mode 100644
index 0000000..7137ad2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryContext.xml
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglQueryContext">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglQueryContext</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglQueryContext</refname>
+ <refpurpose>
+ return <acronym>EGL</acronym> rendering context information
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglQueryContext</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLContext <parameter>context</parameter></paramdef>
+ <paramdef>EGLint <parameter>attribute</parameter></paramdef>
+ <paramdef>EGLint * <parameter>value</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>context</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL rendering context to query.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attribute</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL rendering context attribute to be returned.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>value</parameter></term>
+ <listitem>
+ <para>
+ Returns the requested value.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglQueryContext</function> returns in
+ <parameter>value</parameter> the value of
+ <parameter>attribute</parameter> for <parameter>context</parameter>.
+ <parameter>attribute</parameter> can be one of the following:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_ID</constant></term>
+ <listitem><para>
+ Returns the ID of the EGL frame buffer configuration
+ with respect to which the context was created.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_CLIENT_TYPE</constant></term>
+ <listitem><para>
+ Returns the type of client API which the context
+ supports (one of
+ <constant>EGL_OPENGL_API</constant>,
+ <constant>EGL_OPENGL_ES_API</constant>, or
+ <constant>EGL_OPENVG_API</constant>).
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_CLIENT_VERSION</constant></term>
+ <listitem><para>
+ Returns the version of the client API which the
+ context supports, as specified at context creation
+ time. The resulting value is only meaningful for an
+ OpenGL ES context.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RENDER_BUFFER</constant></term>
+ <listitem>
+ <para>
+ Returns the buffer which client API rendering
+ via the context will use. The value returned
+ depends on properties of both the context, and
+ the surface to which the context is bound:
+ </para>
+ <itemizedlist>
+ <listitem><para>
+ If the context is bound to a pixmap surface,
+ then <constant>EGL_SINGLE_BUFFER</constant> will
+ be returned.
+ </para></listitem>
+ <listitem><para>
+ If the context is bound to a pbuffer surface,
+ then <constant>EGL_BACK_BUFFER</constant> will
+ be returned.
+ </para></listitem>
+ <listitem><para>
+ If the context is bound to a window surface,
+ then either <constant>EGL_BACK_BUFFER</constant>
+ or <constant>EGL_SINGLE_BUFFER</constant> may be
+ returned. The value returned depends on both the
+ buffer requested by the setting of the
+ <constant>EGL_RENDER_BUFFER</constant> property
+ of the surface (which may be queried by calling
+ <function>eglQuerySurface</function>), and on
+ the client API (not all client APIs support
+ single-buffer rendering to window surfaces).
+ </para></listitem>
+ <listitem><para>
+ If the context is not bound to a surface, such
+ as an OpenGL ES context bound to a framebuffer
+ object, then <constant>EGL_NONE</constant> will
+ be returned.
+ </para></listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ Attributes <constant>EGL_CONTEXT_CLIENT_TYPE</constant> and
+ <constant>EGL_RENDER_BUFFER</constant> are supported only if
+ the EGL version is 1.2 or greater.
+ </para>
+ <para>
+ Attribute <constant>EGL_CONTEXT_CLIENT_VERSION</constant> is
+ supported only if the EGL version is 1.3 or greater.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>value</parameter> is not modified when
+ <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONTEXT</constant> is generated if
+ <parameter>context</parameter> is not an EGL rendering context.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attribute</parameter> is not a valid context attribute.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryString.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryString.xml
new file mode 100644
index 0000000..0799e18
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQueryString.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglQueryString">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglQueryString</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglQueryString</refname>
+ <refpurpose>
+ return a string describing an <acronym>EGL</acronym> display connection
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>char const * <function>eglQueryString</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLint <parameter>name</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>name</parameter></term>
+ <listitem>
+ <para>
+ Specifies a symbolic constant, one of
+ <constant>EGL_CLIENT_APIS</constant>,
+ <constant>EGL_VENDOR</constant>,
+ <constant>EGL_VERSION</constant>, or
+ <constant>EGL_EXTENSIONS</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglQueryString</function> returns a pointer to a
+ static string describing an EGL display connection.
+ <parameter>name</parameter> can be one of the following:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_CLIENT_APIS</constant></term>
+ <listitem><para>
+ Returns a string describing which client rendering
+ APIs are supported. The string contains a
+ space-separate list of API names. The list must
+ include at least one of <code>OpenGL</code>,
+ <code>OpenGL_ES</code>, or <code>OpenVG</code>.
+ These strings correspond respectively to values
+ <constant>EGL_OPENGL_API</constant>,
+ <constant>EGL_OPENGL_ES_API</constant>, and
+ <constant>EGL_OPENVG_API</constant> of the
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ <parameter>api</parameter> argument.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VENDOR</constant></term>
+ <listitem><para>
+ Returns the company responsible for this EGL implementation. This
+ name does not change from release to release.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VERSION</constant></term>
+ <listitem><para>
+ Returns a version or release number.
+ The <constant>EGL_VERSION</constant> string is laid out as
+ follows:</para>
+ <para>
+ <replaceable>major_version</replaceable>.<replaceable>minor_version</replaceable>
+ space
+ <replaceable>vendor_specific_info</replaceable>
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_EXTENSIONS</constant></term>
+ <listitem><para>
+ Returns a space separated list of supported extensions to EGL.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ <constant>EGL_CLIENT_APIS</constant> is supported only if
+ the EGL version is 1.2 or greater.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>NULL</constant> is returned on failure.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>name</parameter> is not an accepted value.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQuerySurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQuerySurface.xml
new file mode 100644
index 0000000..1053cd2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglQuerySurface.xml
@@ -0,0 +1,288 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglQuerySurface">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglQuerySurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglQuerySurface</refname>
+ <refpurpose>
+ return <acronym>EGL</acronym> surface information
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglQuerySurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ <paramdef>EGLint <parameter>attribute</parameter></paramdef>
+ <paramdef>EGLint * <parameter>value</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface to query.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attribute</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface attribute to be returned.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>value</parameter></term>
+ <listitem>
+ <para>
+ Returns the requested value.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglQuerySurface</function> returns in
+ <parameter>value</parameter> the value of
+ <parameter>attribute</parameter> for <parameter>surface</parameter>.
+ <parameter>attribute</parameter> can be one of the following:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_ID</constant></term>
+ <listitem><para>
+ Returns the ID of the EGL frame buffer configuration
+ with respect to which the surface was created.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_HEIGHT</constant></term>
+ <listitem><para>
+ Returns the height of the surface in pixels.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_HORIZONTAL_RESOLUTION</constant></term>
+ <listitem><para>
+ Returns the horizontal dot pitch of the display on
+ which a window surface is visible. The value
+ returned is equal to the actual dot pitch, in
+ pixels/meter, multiplied by the constant value
+ <constant>EGL_DISPLAY_SCALING</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LARGEST_PBUFFER</constant></term>
+ <listitem><para>
+ Returns the same attribute value specified when the
+ surface was created with
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>.
+ For a window or pixmap surface,
+ <parameter>value</parameter> is not modified.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MIPMAP_LEVEL</constant></term>
+ <listitem><para>
+ Returns which level of the mipmap to render to, if
+ texture has mipmaps.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MIPMAP_TEXTURE</constant></term>
+ <listitem><para>
+ Returns <constant>EGL_TRUE</constant> if texture has
+ mipmaps, <constant>EGL_FALSE</constant> otherwise.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MULTISAMPLE_RESOLVE</constant></term>
+ <listitem>
+ <para>
+ Returns the filter used when resolving the
+ multisample buffer. The filter may be either
+ <constant>EGL_MULTISAMPLE_RESOLVE_DEFAULT</constant>
+ or <constant>EGL_MULTISAMPLE_RESOLVE_BOX</constant>,
+ as described for
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_PIXEL_ASPECT_RATIO</constant></term>
+ <listitem><para>
+ Returns the aspect ratio of an individual pixel (the
+ ratio of a pixel's width to its height). The value
+ returned is equal to the actual aspect ratio
+ multiplied by the constant value
+ <constant>EGL_DISPLAY_SCALING</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RENDER_BUFFER</constant></term>
+ <listitem><para>
+ Returns the buffer which client API rendering is
+ requested to use. For a window surface, this is the
+ same attribute value specified when the surface was
+ created. For a pbuffer surface, it is always
+ <constant>EGL_BACK_BUFFER</constant>. For a pixmap
+ surface, it is always
+ <constant>EGL_SINGLE_BUFFER</constant>. To determine
+ the actual buffer being rendered to by a context,
+ call
+ <citerefentry><refentrytitle>eglQueryContext</refentrytitle></citerefentry>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SWAP_BEHAVIOR</constant></term>
+ <listitem><para>
+ Returns the effect on the color buffer when posting
+ a surface with
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>.
+ Swap behavior may be either
+ <constant>EGL_BUFFER_PRESERVED</constant> or
+ <constant>EGL_BUFFER_DESTROYED</constant>, as
+ described for
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_FORMAT</constant></term>
+ <listitem><para>
+ Returns format of texture. Possible values are
+ <constant>EGL_NO_TEXTURE</constant>,
+ <constant>EGL_TEXTURE_RGB</constant>, and
+ <constant>EGL_TEXTURE_RGBA</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_TARGET</constant></term>
+ <listitem><para>
+ Returns type of texture. Possible values are
+ <constant>EGL_NO_TEXTURE</constant>, or
+ <constant>EGL_TEXTURE_2D</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VERTICAL_RESOLUTION</constant></term>
+ <listitem><para>
+ Returns the vertical dot pitch of the display on
+ which a window surface is visible. The value
+ returned is equal to the actual dot pitch, in
+ pixels/meter, multiplied by the constant value
+ <constant>EGL_DISPLAY_SCALING</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_WIDTH</constant></term>
+ <listitem><para>
+ Returns the width of the surface in pixels.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ Attribute <constant>EGL_MULTISAMPLE_RESOLVE</constant> is
+ supported only if the EGL version is 1.4 or greater.
+ </para>
+ <para>
+ Attributes <constant>EGL_DISPLAY_SCALING</constant>.
+ <constant>EGL_HORIZONTAL_RESOLUTION</constant>,
+ <constant>EGL_PIXEL_ASPECT_RATIO</constant>,
+ <constant>EGL_RENDER_BUFFER</constant>,
+ <constant>EGL_SWAP_BEHAVIOR</constant>, and
+ <constant>EGL_VERTICAL_RESOLUTION</constant> are supported
+ only if the EGL version is 1.2 or greater.
+ </para>
+ <para>
+ Querying attributes <constant>EGL_TEXTURE_FORMAT</constant>,
+ <constant>EGL_TEXTURE_TARGET</constant>,
+ <constant>EGL_MIPMAP_TEXTURE</constant>, or
+ <constant>EGL_MIPMAP_LEVEL</constant> for a non-pbuffer
+ surface is not an error, but <parameter>value</parameter> is
+ not modified.
+ </para>
+ <para>
+ <constant>EGL_DISPLAY_SCALING</constant> is the constant
+ value 10000. Floating-point values such as resolution and
+ pixel aspect ratio are scaled by this value before being
+ returned as integers so that sufficient precision to be
+ meaningful will be retained in the returned value.
+ </para>
+ <para>
+ For an offscreen (pbuffer or pixmap) surface, or a surface
+ whose pixel dot pitch or aspect ratio are unknown, querying
+ <constant>EGL_HORIZONTAL_RESOLUTION</constant>,
+ <constant>EGL_PIXEL_ASPECT_RATIO</constant>, or
+ <constant>EGL_VERTICAL_RESOLUTION</constant> will return the
+ constant value <constant>EGL_UNKNOWN</constant> (-1).
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>value</parameter> is not modified when
+ <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attribute</parameter> is not a valid surface attribute.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglReleaseTexImage.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglReleaseTexImage.xml
new file mode 100644
index 0000000..408fbf5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglReleaseTexImage.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglReleaseTexImage">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglReleaseTexImage</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglReleaseTexImage</refname>
+ <refpurpose>
+ Releases a color buffer that is being used as a texture
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglReleaseTexImage</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ <paramdef>EGLint <parameter>buffer</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buffer</parameter></term>
+ <listitem><para>Specifies the texture image data.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ The specified color buffer is released back to the surface. The surface is made
+ available for reading and writing when it no longer has any color buffers bound as
+ textures.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ If the specified color buffer is no longer bound to a texture (e.g., because the
+ texture object was deleted) then eglReleaseTexImage has no effect. No error is
+ generated.
+ </para>
+ <para>
+ The contents of the color buffer are undefined when it is first released. In particular,
+ there is no guarantee that the texture image is still present. However, the contents of
+ other color buffers are unaffected by this call. Also, the contents of the depth and stencil buffers
+ are not affected by <citerefentry><refentrytitle>eglBindTexImage</refentrytitle></citerefentry>
+ and <function>eglReleaseTexImage</function>.
+ </para>
+ <para>
+ After a color buffer is released from a texture (either explicitly by calling
+ <function>eglReleaseTexImage</function> or implicitly by calling a routine such as
+ <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>),
+ all texture images that were defined by the color buffer become <constant>NULL</constant>
+ (it is as if <citerefentry><refentrytitle>glTexImage</refentrytitle></citerefentry> was called with an image of zero width).
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ surface attribute <constant>EGL_TEXTURE_FORMAT</constant> is
+ set to <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>buffer</parameter> is not a valid buffer
+ (currently only <constant>EGL_BACK_BUFFER</constant> may be
+ specified).
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL surface, or is
+ not a bound pbuffer surface.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglBindTexImage</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglReleaseThread.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglReleaseThread.xml
new file mode 100644
index 0000000..c37f903
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglReleaseThread.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglReleaseThread">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglReleaseThread</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglReleaseThread</refname>
+ <refpurpose>Release EGL per-thread state</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv><title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglReleaseThread</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglReleaseThread</function> returns the EGL to its
+ state at thread initialization, releasing all per-thread
+ state including the error status returned by
+ <command>eglGetError</command>, the currently bound
+ rendering API defined by <command>eglBindAPI</command>, and
+ the current contexts for each supported client API. The
+ overhead of maintaining this state may be objectionable in
+ applications which create and destroy many threads, but only
+ call EGL or client APIs in a few of those threads at any
+ given time.
+ </para>
+ <para>
+ <constant>EGL_TRUE</constant> is returned on success, and the
+ following actions are taken:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ For each client API supported by EGL, if there is a
+ currently bound context, that context is released.
+ This is equivalent to calling
+ <function>eglMakeCurrent</function> with ctx set to
+ <constant>EGL_NO_CONTEXT</constant> and both draw
+ and read set to <constant>EGL_NO_SURFACE</constant>
+ (see section 3.7.3).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The current rendering API is reset to its value at
+ thread initialization (see
+ <command>eglBindAPI</command>).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Any additional implementation-dependent per-thread
+ state maintained by EGL is marked for deletion as
+ soon as possible.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ <function>eglReleaseThread</function> may be called in any
+ thread at any time, and may be called more than once in a
+ single thread. The initialization status of EGL (see section
+ 3.2) is not affected by releasing the thread; only
+ per-thread state is affected.
+ </para>
+ <para>
+ Resources explicitly allocated by calls to EGL, such as
+ contexts, surfaces, and configuration lists, are not
+ affected by <function>eglReleaseThread</function>. Such
+ resources belong not to the thread, but to the EGL
+ implementation as a whole.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ <function>eglReleaseThread</function> is supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <para>
+ Applications may call other EGL routines from a thread
+ following <function>eglReleaseThread</function>, but any
+ such call may reallocate the EGL state previously released.
+ In particular, calling <function>eglGetError</function>
+ immediately following a successful call to
+ <function>eglReleaseThread</function> will return
+ <constant>EGL_SUCCESS</constant>, but will also result in
+ reallocating per-thread state.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise. There are no
+ defined conditions under which failure will occur. Even if
+ EGL is not initialized on any EGLDisplay,
+ <function>eglReleaseThread</function> should succeed.
+ </para>
+ <para>
+ However, platform-dependent failures may be signaled through
+ the value returned from <function>eglGetError</function>.
+ Unless the platform-dependent behavior is known, a failed
+ call to <function>eglReleaseThread</function> should be
+ assumed to leave the current rendering API, and the
+ currently bound contexts for each supported client API, in
+ an unknown state.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetError</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSurfaceAttrib.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSurfaceAttrib.xml
new file mode 100644
index 0000000..0487c6b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSurfaceAttrib.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglSurfaceAttrib">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglSurfaceAttrib</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglSurfaceAttrib</refname>
+ <refpurpose>
+ set an <acronym>EGL</acronym> surface attribute
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglSurfaceAttrib</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ <paramdef>EGLint <parameter>attribute</parameter></paramdef>
+ <paramdef>EGLint <parameter>value</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attribute</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface attribute to set.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>value</parameter></term>
+ <listitem>
+ <para>
+ Specifies the attributes required value.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglSurfaceAttrib</function> sets the value of
+ <parameter>attribute</parameter> for
+ <parameter>surface</parameter> to
+ <parameter>value</parameter>.
+ <parameter>attribute</parameter> can be one of the
+ following:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_MIPMAP_LEVEL</constant></term>
+ <listitem><para>
+ For mipmap textures, the
+ <constant>EGL_MIPMAP_LEVEL</constant> attribute
+ indicates which level of the mipmap should be
+ rendered. If the value of this attribute is outside
+ the range of supported mipmap levels, the closest
+ valid mipmap level is selected for rendering. The
+ default value is <constant>0</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MULTISAMPLE_RESOLVE</constant></term>
+ <listitem>
+ <para>
+ Specifies the filter to use when resolving the
+ multisample buffer (this may occur when swapping or
+ copying the surface, or when changing the client API
+ context bound to the surface). A
+ <parameter>value</parameter> of
+ <constant>EGL_MULTISAMPLE_RESOLVE_DEFAULT</constant>
+ chooses the default implementation-defined filtering
+ method, while
+ <constant>EGL_MULTISAMPLE_RESOLVE_BOX</constant>
+ chooses a one-pixel wide box filter placing equal
+ weighting on all multisample values.
+ </para>
+ <para>
+ The initial value of
+ <constant>EGL_MULTISAMPLE_RESOLVE</constant> is
+ <constant>EGL_MULTISAMPLE_RESOLVE_DEFAULT</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SWAP_BEHAVIOR</constant></term>
+ <listitem>
+ <para>
+ Specifies the effect on the color buffer of posting
+ a surface with
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>.
+ A <parameter>value</parameter> of
+ <constant>EGL_BUFFER_PRESERVED</constant> indicates
+ that color buffer contents are unaffected, while
+ <constant>EGL_BUFFER_DESTROYED</constant> indicates
+ that color buffer contents may be destroyed or
+ changed by the operation.
+ </para>
+ <para>
+ The initial value of
+ <constant>EGL_SWAP_BEHAVIOR</constant> is chosen by
+ the implementation.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ Attribute <constant>EGL_MULTISAMPLE_RESOLVE</constant> is
+ supported only if the EGL version is 1.4 or greater.
+ </para>
+ <para>
+ Attribute <constant>EGL_SWAP_BEHAVIOR</constant> is
+ supported only if the EGL version is 1.2 or greater.
+ </para>
+ <para>
+ If the value of pbuffer attribute
+ <constant>EGL_TEXTURE_FORMAT</constant> is
+ <constant>EGL_NO_TEXTURE</constant>, the value of attribute
+ <constant>EGL_TEXTURE_TARGET</constant> is
+ <constant>EGL_NO_TEXTURE</constant>, or
+ <parameter>surface</parameter> is not a pbuffer, then
+ attribute <constant>EGL_MIPMAP_LEVEL</constant> may be set,
+ but has no effect.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>attribute</parameter> is
+ <constant>EGL_MULTISAMPLE_RESOLVE</constant>,
+ <parameter>value</parameter> is
+ <constant>EGL_MULTISAMPLE_RESOLVE_BOX</constant>, and the
+ <constant>EGL_SURFACE_TYPE</constant> attribute of the
+ <type>EGLConfig</type> used to create
+ <parameter>surface</parameter> does not contain
+ <constant>EGL_MULTISAMPLE_RESOLVE_BOX_BIT</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>attribute</parameter> is
+ <constant>EGL_SWAP_BEHAVIOR</constant>,
+ <parameter>value</parameter> is
+ <constant>EGL_BUFFER_PRESERVED</constant>, and the
+ <constant>EGL_SURFACE_TYPE</constant> attribute of the
+ <type>EGLConfig</type> used to create
+ <parameter>surface</parameter> does not contain
+ <constant>EGL_SWAP_BEHAVIOR_PRESERVED_BIT</constant>.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attribute</parameter> is not a valid surface attribute.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSwapBuffers.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSwapBuffers.xml
new file mode 100644
index 0000000..6e1ad73
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSwapBuffers.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglSwapBuffers">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglSwapBuffers</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglSwapBuffers</refname>
+ <refpurpose>
+ post <acronym>EGL</acronym> surface color buffer to a native window
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglSwapBuffers</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL drawing surface whose buffers are to be swapped.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ If <parameter>surface</parameter> is a window surface,
+ <function>eglSwapBuffers</function> posts its color buffer
+ to the associated native window.
+ </para>
+ <para>
+ The contents of ancillary buffers are always undefined after
+ calling <function>eglSwapBuffers</function>. The contents of
+ the color buffer are left unchanged if the value of the
+ <constant>EGL_SWAP_BEHAVIOR</constant> attribute of
+ <parameter>surface</parameter> is
+ <constant>EGL_BUFFER_PRESERVED</constant>, and are undefined
+ if the value is <constant>EGL_BUFFER_DESTROYED</constant>.
+ The value of <constant>EGL_SWAP_BEHAVIOR</constant> can be
+ set for some surfaces using
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ <function>eglSwapBuffers</function> performs an implicit
+ flush operation on the context (<function>glFlush</function>
+ for an OpenGL ES or OpenGL context,
+ <function>vgFlush</function> for an OpenVG context) bound to
+ <parameter>surface</parameter> before swapping. Subsequent
+ client API commands may be issued on that context
+ immediately after calling
+ <function>eglSwapBuffers</function>, but are not executed
+ until the buffer exchange is completed.
+ </para>
+ <para>
+ If <parameter>surface</parameter> is a pixel buffer or a pixmap,
+ <function>eglSwapBuffers</function>
+ has no effect, and no error is generated.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ Attribute <constant>EGL_SWAP_BEHAVIOR</constant> is
+ supported only if the EGL version is 1.2 or greater. In
+ earlier versions, behavior is as though the attribute
+ exists, and always has the value
+ <constant>EGL_BUFFER_DESTROYED</constant>.
+ </para>
+ <para>
+ The EGL 1.4 specification was updated to acknowledge that
+ ancillary buffers are not necessarily preserved after a
+ swap, and that the <constant>EGL_SWAP_BEHAVIOR</constant>
+ attribute applies only to the color buffer. This change in
+ the specification acknowledged the behavior of many shipping
+ implementations, and is not intended to result in behavior
+ changes in any existing implementation. Applications which
+ require preservation of ancillary buffers across a swap
+ should be aware that not all implementations can preserve
+ them, and that EGL 1.4 has no way to query whether or not
+ they are preserved.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if swapping of the
+ surface buffers fails, <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL drawing surface.
+ </para>
+ <para>
+ <constant>EGL_CONTEXT_LOST</constant> is generated if a power management
+ event has occurred. The application must destroy all contexts and
+ reinitialise OpenGL ES state and objects to continue rendering.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCopyBuffers</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSwapInterval.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSwapInterval.xml
new file mode 100644
index 0000000..4ec5aba
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglSwapInterval.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglSwapInterval">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglSwapInterval</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglSwapInterval</refname>
+ <refpurpose>
+ specifies the minimum number of video frame periods
+ per buffer swap for the window associated with the current context.
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglSwapInterval</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLint <parameter>interval</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>interval</parameter></term>
+ <listitem>
+ <para>
+ Specifies the minimum number of video frames that are displayed before
+ a buffer swap will occur.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ The interval takes effect when <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry> is
+ first called subsequent to the <function>eglSwapInterval</function> call.
+ </para>
+ <para>
+ The <parameter>interval</parameter> specified by the function applies to the draw surface
+ bound to the context that is current on the calling thread.
+ </para>
+ <para>
+ If <parameter>interval</parameter> is set to a value of <constant>0</constant>, buffer swaps are not synchronized to a
+ video frame, and the swap happens as soon as the render is complete. interval
+ is silently clamped to minimum and maximum implementation dependent
+ valuesbefore being stored; these values are defined by <type>EGLConfig</type> attributes
+ <constant>EGL_MIN_SWAP_INTERVAL</constant> and <constant>EGL_MAX_SWAP_INTERVAL</constant> respectively.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ The swap interval has no effect on <citerefentry><refentrytitle>eglCopyBuffers</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ The default swap interval is 1.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure, <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONTEXT</constant> is generated if there is no current context
+ on the calling thread.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if there is no surface
+ bound to the current context.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglTerminate.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglTerminate.xml
new file mode 100644
index 0000000..966b8c8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglTerminate.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglTerminate">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglTerminate</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglTerminate</refname>
+ <refpurpose>
+ terminate an <acronym>EGL</acronym> display connection
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglTerminate</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection to terminate.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ <function>eglTerminate</function> releases resources associated with
+ an EGL display connection. Termination marks all EGL resources associated
+ with the EGL display connection for deletion. If contexts or surfaces
+ associated with <parameter>display</parameter> is current to any thread,
+ they are not released until they are no longer current as a result of
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ Terminating an already terminated EGL display connection has no effect.
+ A terminated display may be re-initialized by calling
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ again.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if
+ <function>eglTerminate</function> fails,
+ <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitClient.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitClient.xml
new file mode 100644
index 0000000..0ec3714
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitClient.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglWaitClient">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglWaitClient</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglWaitClient</refname>
+ <refpurpose>
+ Complete client API execution prior to subsequent native
+ rendering calls
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglWaitClient</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ All rendering calls for the currently bound context, for the
+ current rendering API, made prior to
+ <function>eglWaitClient</function> are guaranteed to be
+ executed before native rendering calls made after
+ <function>eglWaitClient</function>. The same result can be
+ achieved using client API-specific commands such as
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>
+ or
+ <citerefentry><refentrytitle>vgFinish</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ <function>eglWaitClient</function> is ignored if there is no
+ current EGL rendering context for the current rendering API.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if
+ <function>eglWaitClient</function> fails,
+ <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ If there is no current context for the current rendering
+ API, the function has no effect but still returns
+ <constant>EGL_TRUE</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_CURRENT_SURFACE</constant> is generated if
+ the surface associated with the current context has a native
+ window or pixmap, and that window or pixmap is no longer
+ valid.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ <function>eglWaitClient</function> is supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <para>
+ <function>eglWaitClient</function> is a generalized version
+ of <function>eglWaitGL</function>, supporting multiple
+ client APIs.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitGL</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>vgFinish</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitGL.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitGL.xml
new file mode 100644
index 0000000..3da6f96
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitGL.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglWaitGL">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglWaitGL</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglWaitGL</refname>
+ <refpurpose>
+ Complete GL execution prior to subsequent native rendering
+ calls
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglWaitGL</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ All OpenGL ES rendering calls for the currently bound OpenGL
+ ES context made prior to <function>eglWaitGL</function> are
+ guaranteed to be executed before native rendering calls made
+ after <function>eglWaitGL</function>. The same result can be
+ achieved using
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ <function>eglWaitGL</function> is ignored if there is no
+ current EGL rendering context for OpenGL ES.
+ </para>
+ </refsect1>
+ <refsect1 id="notes"><title>Notes</title>
+ <para>
+ <function>eglWaitClient</function> is supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <para>
+ <function>eglWaitClient</function> is a generalized version
+ of <function>eglWaitGL</function>, supporting multiple
+ client APIs. For backwards compatibility,
+ <function>eglWaitGL</function> continues to be supported and
+ is equivalent to the series of commands
+ </para>
+ <programlisting>
+ EGLenum api = <function>eglQueryAPI</function>();
+ <function>eglBindAPI</function>(<constant>EGL_OPENGL_ES_API</constant>);
+ <function>eglWaitClient</function>();
+ <function>eglBindAPI</function>(api);
+ </programlisting>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if
+ <function>eglWaitGL</function> fails,
+ <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_CURRENT_SURFACE</constant> is generated if
+ the surface associated with the current context has a native
+ window or pixmap, and that window or pixmap is no longer
+ valid.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitNative.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitNative.xml
new file mode 100644
index 0000000..0a44340
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/eglWaitNative.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+ "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry xml:base="" id="eglWaitNative">
+ <refentryinfo>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </refentryinfo>
+ <refmeta>
+ <refentrytitle>eglWaitNative</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglWaitNative</refname>
+ <refpurpose>
+ complete native execution prior to subsequent GL rendering calls
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglWaitNative</function></funcdef>
+ <paramdef>EGLint <parameter>engine</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>engine</parameter></term>
+ <listitem>
+ <para>
+ Specifies a particular marking engine to be waited on.
+ Must be <constant>EGL_CORE_NATIVE_ENGINE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 id="description"><title>Description</title>
+ <para>
+ Native rendering calls made prior to <function>eglWaitNative</function>
+ are guaranteed to be executed before GL rendering calls made after
+ <function>eglWaitNative</function>.
+ </para>
+ <para>
+ <function>eglWaitNative</function>
+ is ignored if there is no current
+ <acronym>EGL</acronym>
+ rendering context.
+ </para>
+ </refsect1>
+ <refsect1 id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>engine</parameter> is not a recognized marking engine.
+ </para>
+ <para>
+ <constant>EGL_BAD_CURRENT_SURFACE</constant>
+ is generated if the surface associated with the current context has a
+ native window or pixmap, and that window or pixmap is no longer valid.
+ </para>
+ </refsect1>
+ <refsect1 id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitGL</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <refsect3 id="Copyright"><title></title>
+ <!-- Content included from copyright.inc.xsl -->
+ <imageobject>
+ <imagedata fileref="KhronosLogo.jpg" format="jpg" />
+ </imageobject>
+ <para />
+ </refsect3>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/reference.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/reference.xml
new file mode 100644
index 0000000..0aa0603
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/docbook4/reference.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.2//EN" "DTD/docbook/docbookx.dtd">
+<!--
+ Copyright 2003-2010 Khronos Group.
+ This material may be distributed subject to the terms and conditions set forth in
+ the Open Publication License, v 1.0, 8 June 1999.
+ http://opencontent.org/openpub/
+-->
+<book xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>
+ EGL Reference Manual
+ </title>
+ <subtitle>
+ Version 1.4
+ </subtitle>
+ <bookinfo>
+ <author>
+ <firstname>Claude</firstname>
+ <surname>Knaus</surname>
+ </author>
+ <author>
+ <firstname>Jon</firstname>
+ <surname>Leech</surname>
+ </author>
+ <date>October 2010</date>
+ <releaseinfo>Draft Version 20101012</releaseinfo>
+ <subjectset>
+ <subject>EGL</subject>
+ </subjectset>
+ <keywordset>
+ <keyword>EGL</keyword>
+ <keyword>man</keyword>
+ <keyword>reference</keyword>
+ </keywordset>
+ <xi:include href="legal-notice.xml"/>
+ </bookinfo>
+ <toc>
+ <title>Contents</title>
+ <!-- generated by LaTeX -->
+ </toc>
+ <chapter>
+ <title>Preface</title>
+ <sect1>
+ <title>Style Conventions</title>
+ <para>
+ The following style conventions apply to this document:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><function>Bold</function></term>
+ <listitem><para>Command and function names</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>Italics</parameter></term>
+ <listitem>Variables and parameters</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Regular</term>
+ <listitem><para>Ordinary text</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>Monospace</constant></term>
+ <listitem><para>Constants and source code</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </sect1>
+ </chapter>
+ <chapter>
+ <title>Summary of Commands and Routines</title>
+ <sect1>
+ <title>EGL Functions</title>
+ <para>Manage or query display connections:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglTerminate</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Request EGL and client API extension functions:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglGetProcAddress</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Query errors:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglGetError</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Request or query frame buffer configurations:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Manage or query the current rendering API:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglQueryAPI</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Manage or query EGL rendering contexts:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglDestroyContext</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglQueryContext</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Manage or query EGL surfaces:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Synchronize execution:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglWaitGL</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Post and copy buffers:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglCopyBuffers</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Bind pixel buffer surfaces to OpenGL ES textures:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglBindTexImage</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglReleaseTexImage</refentrytitle></citerefentry></member>
+ </simplelist>
+ </sect1>
+ </chapter>
+ <chapter>
+ <title>EGL Reference Pages</title>
+ <xi:include href="eglBindAPI.xml"/>
+ <xi:include href="eglBindTexImage.xml"/>
+ <xi:include href="eglChooseConfig.xml"/>
+ <xi:include href="eglCopyBuffers.xml"/>
+ <xi:include href="eglCreateContext.xml"/>
+ <xi:include href="eglCreatePbufferSurface.xml"/>
+ <xi:include href="eglCreatePixmapSurface.xml"/>
+ <xi:include href="eglCreateWindowSurface.xml"/>
+ <xi:include href="eglDestroyContext.xml"/>
+ <xi:include href="eglDestroySurface.xml"/>
+ <xi:include href="eglGetConfigAttrib.xml"/>
+ <xi:include href="eglGetConfigs.xml"/>
+ <xi:include href="eglGetCurrentContext.xml"/>
+ <xi:include href="eglGetCurrentDisplay.xml"/>
+ <xi:include href="eglGetCurrentSurface.xml"/>
+ <xi:include href="eglGetDisplay.xml"/>
+ <xi:include href="eglGetError.xml"/>
+ <xi:include href="eglGetProcAddress.xml"/>
+ <xi:include href="eglInitialize.xml"/>
+ <xi:include href="eglIntro.xml"/>
+ <xi:include href="eglMakeCurrent.xml"/>
+ <xi:include href="eglQueryAPI.xml"/>
+ <xi:include href="eglQueryContext.xml"/>
+ <xi:include href="eglQueryString.xml"/>
+ <xi:include href="eglQuerySurface.xml"/>
+ <xi:include href="eglReleaseTexImage.xml"/>
+ <xi:include href="eglReleaseThread.xml"/>
+ <xi:include href="eglSurfaceAttrib.xml"/>
+ <xi:include href="eglSwapBuffers.xml"/>
+ <xi:include href="eglSwapInterval.xml"/>
+ <xi:include href="eglTerminate.xml"/>
+ <xi:include href="eglWaitClient.xml"/>
+ <xi:include href="eglWaitGL.xml"/>
+ <xi:include href="eglWaitNative.xml"/>
+ </chapter>
+ <xi:include href="license-full.xml"/>
+</book>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglBindAPI.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglBindAPI.xml
new file mode 100644
index 0000000..0874cb3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglBindAPI.xml
@@ -0,0 +1,123 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglBindAPI">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglBindAPI</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglBindAPI</refname>
+ <refpurpose>Set the current rendering API</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv><title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglBindAPI</function></funcdef>
+ <paramdef>EGLenum <parameter>api</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>api</parameter></term>
+ <listitem>
+ <para>
+ Specifies the client API to bind, one of
+ <constant>EGL_OPENGL_API</constant>,
+ <constant>EGL_OPENGL_ES_API</constant>, or
+ <constant>EGL_OPENVG_API</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglBindAPI</function> defines the current
+ rendering API for EGL in the thread it is called from. The
+ current rendering API is one of the client rendering APIs
+ supported by the EGL implementation, and affects the
+ behavior of other EGL commands including
+ <function>eglCreateContext</function>,
+ <function>eglGetCurrentContext</function>,
+ <function>eglGetCurrentDisplay</function>,
+ <function>eglGetCurrentSurface</function>,
+ <function>eglMakeCurrent</function>,
+ <function>eglSwapInterval</function>,
+ <function>eglWaitClient</function>, and
+ <function>eglWaitNative</function>.
+ </para>
+ <para>
+ If <parameter>api</parameter> is
+ <constant>EGL_OPENGL_API</constant>, the current rendering
+ API is set to the OpenGL API.
+ </para>
+ <para>
+ If <parameter>api</parameter> is
+ <constant>EGL_OPENGL_ES_API</constant>, the current
+ rendering API is set to the OpenGL ES API.
+ </para>
+ <para>
+ If <parameter>api</parameter> is
+ <constant>EGL_OPENVG_API</constant>, the current rendering
+ API is set to the OpenVG API.
+ </para>
+ <para>
+ If an error occurs, the current rendering API is unchanged.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglBindAPI</function> and the corresponding
+ <constant>EGL_OPENGL_ES_API</constant> and
+ <constant>EGL_OPENVG_API</constant>
+ <parameter>api</parameter> parameters are supported only if
+ the EGL version is 1.2 or greater. The
+ <constant>EGL_OPENGL_API</constant> parameter is supported
+ only if the EGL version is 1.4 or greater.
+ </para>
+ <para>
+ The initial value of the current rendering API is
+ <constant>EGL_OPENGL_ES_API</constant> unless OpenGL ES is
+ not supported by an implementation, in which case the
+ initial value is <constant>EGL_NONE</constant> (however,
+ <constant>EGL_NONE</constant> is not a valid
+ <parameter>api</parameter> parameter to
+ <function>eglBindAPI</function>).
+ </para>
+ <para>
+ The current rendering API can be queried by calling
+ <function>eglQueryAPI</function>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure.
+ </para>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>api</parameter> is not one of the accepted
+ tokens, or if the specified client API is not supported by
+ the EGL implementation.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQueryAPI</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglBindTexImage.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglBindTexImage.xml
new file mode 100644
index 0000000..81779e3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglBindTexImage.xml
@@ -0,0 +1,172 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglBindTexImage">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglBindTexImage</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglBindTexImage</refname>
+ <refpurpose>
+ Defines a two-dimensional texture image
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglBindTexImage</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ <paramdef>EGLint <parameter>buffer</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buffer</parameter></term>
+ <listitem><para>Specifies the texture image data.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ The texture image consists of the image data in <parameter>buffer</parameter> for the specified surface, and need not be copied.
+ </para>
+ <para>
+ The texture target, the texture format and the size of the texture components are derived from
+ attributes of the specified surface, which must be a pbuffer supporting one of the
+ <constant>EGL_BIND_TO_TEXTURE_RGB</constant> or <constant>EGL_BIND_TO_TEXTURE_RGBA</constant> attributes.
+ </para>
+ <para>
+ The pbuffer attribute <constant>EGL_TEXTURE_FORMAT</constant> determines the base internal format
+ of the texture.
+ </para>
+ <para>
+ The texture target is derived from the <constant>EGL_TEXTURE_TARGET</constant> attribute of surface.
+ If the attribute value is <constant>EGL_TEXTURE_2D</constant>, then <parameter>buffer</parameter> defines a texture for
+ the two-dimensional texture object which is bound to the current context (hereafter
+ referred to as the current texture object).
+ </para>
+ <para>
+ If <parameter>display</parameter> and <parameter>surface</parameter> are the display and surface for the calling thread's current
+ context, <function>eglBindTexImage</function> performs an implicit <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>.
+ For other surfaces, <function>eglBindTexImage</function> waits for all effects from previously issued OpenGL ES commands
+ drawing to the surface to complete before defining the texture image, as
+ though <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry> were called on the last context to which that surface were bound.
+ </para>
+ <para>
+ After <function>eglBindTexImage</function> is called, the specified surface is no longer available
+ for reading or writing. Any read operation, such as <citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry> or
+ <citerefentry><refentrytitle>eglCopyBuffers</refentrytitle></citerefentry>, which reads values from any of the surface's color buffers or ancillary
+ buffers will produce indeterminate results. In addition, draw operations that are
+ done to the surface before its color buffer is released from the texture produce indeterminate
+ results. Specifically, if the surface is current to a context and thread
+ then rendering commands will be processed and the context state will be updated,
+ but the surface may or may not be written.
+ </para>
+ <para>
+ Texture mipmap levels are automatically generated when all of the following
+ conditions are met while calling <function>eglBindTexImage</function>:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The <constant>EGL_MIPMAP_TEXTURE</constant> attribute of the pbuffer being bound is
+ <constant>EGL_TRUE</constant>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The OpenGL ES texture parameter <constant>GL_GENERATE_MIPMAP</constant> is <constant>GL_TRUE</constant> for
+ the currently bound texture.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The value of the <constant>EGL_MIPMAP_LEVEL</constant> attribute of the pbuffer being bound is
+ equal to the value of the texture parameter <constant>GL_TEXTURE_BASE_LEVEL</constant>.
+ In this case, additional mipmap levels are generated as described in section 3.8
+ of the OpenGL ES 1.1 Specification.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ In this case, additional mipmap levels are generated as described in section 3.8
+ of the OpenGL ES 1.1 Specification.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry> has no effect if it is
+ called on a bound surface.
+ </para>
+ <para>
+ Any existing images associated with the different mipmap levels of the texture object
+ are freed (it is as if <citerefentry><refentrytitle>glTexImage</refentrytitle></citerefentry>
+ was called with an image of zero width).
+ </para>
+ <para>
+ The color buffer is bound to a texture object. If the texture object is
+ shared between contexts, then the color buffer is also shared. If a texture object is
+ deleted before <citerefentry><refentrytitle>eglReleaseTexImage</refentrytitle></citerefentry> is called, then the color buffer is released and
+ the surface is made available for reading and writing.
+ </para>
+ <para>
+ It is not an error to call <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry> or
+ <citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry> to replace an
+ image of a texture object that has a color buffer bound to it. However, these calls
+ will cause the color buffer to be released back to the surface and new memory will
+ be allocated for the texture. Note that the color buffer is released even if the image
+ that is being defined is a mipmap level that was not defined by the color buffer.
+ </para>
+ <para>
+ <function>eglBindTexImage</function> is ignored if there is no current rendering context.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_BAD_ACCESS</constant> is generated if
+ <parameter>buffer</parameter> is already bound to a texture.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ surface attribute <constant>EGL_TEXTURE_FORMAT</constant> is
+ set to <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>buffer</parameter> is not a valid buffer
+ (currently only <constant>EGL_BACK_BUFFER</constant> may be
+ specified).
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL surface, or is
+ not a pbuffer surface supporting texture binding.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglReleaseTexImage</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglChooseConfig.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglChooseConfig.xml
new file mode 100644
index 0000000..87c7ce1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglChooseConfig.xml
@@ -0,0 +1,915 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglChooseConfig">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglChooseConfig</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglChooseConfig</refname>
+ <refpurpose>
+ return a list of EGL frame buffer configurations that match specified attributes
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglChooseConfig</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ <paramdef>EGLConfig * <parameter>configs</parameter></paramdef>
+ <paramdef>EGLint <parameter>config_size</parameter></paramdef>
+ <paramdef>EGLint * <parameter>num_config</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>Specifies attributes required to match by configs.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>configs</parameter></term>
+ <listitem><para>Returns an array of frame buffer configurations.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config_size</parameter></term>
+ <listitem><para>Specifies the size of the array of frame buffer configurations.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>num_config</parameter></term>
+ <listitem><para>Returns the number of frame buffer configurations returned.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglChooseConfig</function> returns in
+ <parameter>configs</parameter> a list of all
+ <acronym>EGL</acronym> frame buffer configurations that
+ match the attributes specified in
+ <parameter>attrib_list</parameter>. The returned
+ <type>EGLConfig</type>s can be used in any
+ <acronym>EGL</acronym> function that requires an
+ <acronym>EGL</acronym> frame buffer configuration.
+ </para>
+ <para>
+ If <parameter>configs</parameter> is not
+ <constant>NULL</constant>, up to
+ <parameter>config_size</parameter> configs will be returned
+ in the array pointed to by <parameter>configs</parameter>.
+ The number of configs actually returned will be returned in
+ *<parameter>num_config</parameter>.
+ </para>
+ <para>
+ If <parameter>configs</parameter> is
+ <constant>NULL</constant>, no configs will be returned in
+ <parameter>configs</parameter>. Instead, the total number of
+ configs matching <parameter>attrib_list</parameter> will be
+ returned in *<parameter>num_config</parameter>. In this case
+ <parameter>config_size</parameter> is ignored. This form of
+ <function>eglChooseConfig</function> is used to determine
+ the number of matching frame buffer configurations, followed
+ by allocating an array of <type>EGLConfig</type> to pass
+ into another call to <function>eglChooseConfig</function>
+ with all other parameters unchanged.
+ </para>
+ <para>
+ All attributes in <parameter>attrib_list</parameter>,
+ including boolean attributes, are immediately followed by
+ the corresponding desired value. The list is terminated with
+ <constant>EGL_NONE</constant>. If an attribute is not
+ specified in <parameter>attrib_list</parameter> then the
+ default value (see below) is used (and the attribute is said
+ to be specified implicitly). For example, if
+ <constant>EGL_DEPTH_SIZE</constant> is not specified then it
+ is assumed to be zero. For some attributes, the default is
+ <constant>EGL_DONT_CARE</constant> meaning that any value is
+ OK for this attribute, so the attribute will not be checked.
+ </para>
+ <para>
+ Attributes are matched in an attribute-specific manner. Some
+ of the attributes, such as <constant>EGL_LEVEL</constant>,
+ must match the specified value exactly. Others, such as,
+ <constant>EGL_RED_SIZE</constant> must meet or exceed the
+ specified minimum values. If more than one EGL frame buffer
+ configuration matching all attributes is found, then a list
+ of configurations, sorted according to the ``best'' match
+ criteria, is returned. The match criteria for each attribute
+ and the exact sorting order is defined below.
+ </para>
+ <para>
+ For the bitmask attributes
+ <constant>EGL_CONFORMANT</constant>,
+ <constant>EGL_RENDERABLE_TYPE</constant>, and
+ <constant>EGL_SURFACE_TYPE</constant>, only the nonzero bits
+ of the mask are considered when matching. Any bits that are
+ zero in the specified bitmask attribute value may be either
+ zero or one in the resulting config's attribute value.
+ </para>
+ <para>
+ Attributes which may appear in
+ <parameter>attrib_list</parameter>, and their descriptions
+ and allowed values, are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_ALPHA_MASK_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired alpha mask buffer size, in
+ bits. The smallest alpha mask buffers of at least
+ the specified size are preferred. The default value
+ is zero.
+ </para>
+ <para>
+ The alpha mask buffer is used only by OpenVG.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_ALPHA_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the alpha component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest alpha component size
+ are preferred. Otherwise, color buffers with the
+ largest alpha component of at least the specified
+ size are preferred. The default value is zero.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BIND_TO_TEXTURE_RGB</constant></term>
+ <listitem><para>
+ Must be followed by
+ <constant>EGL_DONT_CARE</constant>,
+ <constant>EGL_TRUE</constant>, or
+ <constant>EGL_FALSE</constant>.
+ If <constant>EGL_TRUE</constant> is specified, then
+ only frame buffer configurations that support
+ binding of color buffers to an OpenGL ES RGB texture
+ will be considered. Currently only frame buffer
+ configurations that support pbuffers allow this. The
+ default value is <constant>EGL_DONT_CARE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BIND_TO_TEXTURE_RGBA</constant></term>
+ <listitem><para>
+ Must be followed by one of
+ <constant>EGL_DONT_CARE</constant>,
+ <constant>EGL_TRUE</constant>, or
+ <constant>EGL_FALSE</constant>.
+ If <constant>EGL_TRUE</constant> is specified, then
+ only frame buffer configurations that support
+ binding of color buffers to an OpenGL ES RGBA
+ texture will be considered. Currently only frame
+ buffer configurations that support pbuffers allow
+ this. The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BLUE_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the blue component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest blue component size
+ are preferred. Otherwise, color buffers with the
+ largest blue component of at least the specified
+ size are preferred. The default value is zero.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BUFFER_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired color buffer size, in bits.
+ The smallest color buffers of at least the specified
+ size are preferred. The default value is zero.
+ </para>
+ <para>
+ The color buffer size is the sum of
+ <constant>EGL_RED_SIZE</constant>,
+ <constant>EGL_GREEN_SIZE</constant>,
+ <constant>EGL_BLUE_SIZE</constant>, and
+ <constant>EGL_ALPHA_SIZE</constant>, and does not
+ include any padding bits which may be present in the
+ pixel format. It is usually preferable to specify
+ desired sizes for these color components
+ individually.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_COLOR_BUFFER_TYPE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by one of
+ <constant>EGL_RGB_BUFFER</constant> or
+ <constant>EGL_LUMINANCE_BUFFER</constant>.
+ </para>
+ <para>
+ <constant>EGL_RGB_BUFFER</constant> indicates
+ an RGB color buffer; in this case,
+ attributes <constant>EGL_RED_SIZE</constant>,
+ <constant>EGL_GREEN_SIZE</constant> and
+ <constant>EGL_BLUE_SIZE</constant> must be non-zero, and
+ <constant>EGL_LUMINANCE_SIZE</constant> must be zero.
+ </para>
+ <para>
+ <constant>EGL_LUMINANCE_BUFFER</constant> indicates a luminance color
+ buffer. In this case <constant>EGL_RED_SIZE</constant>,
+ <constant>EGL_GREEN_SIZE</constant>,
+ <constant>EGL_BLUE_SIZE</constant> must be zero, and
+ <constant>EGL_LUMINANCE_SIZE</constant> must be non-zero.
+ </para>
+ <para>
+ For both RGB and luminance color buffers,
+ <constant>EGL_ALPHA_SIZE</constant> may be zero or
+ non-zero.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_CAVEAT</constant></term>
+ <listitem>
+ <para>
+ Must be followed by
+ <constant>EGL_DONT_CARE</constant>,
+ <constant>EGL_NONE</constant>,
+ <constant>EGL_SLOW_CONFIG</constant>, or
+ <constant>EGL_NON_CONFORMANT_CONFIG</constant>.
+ </para>
+ <para>
+ If <constant>EGL_DONT_CARE</constant> is specified,
+ then configs are not matched for this attribute. The
+ default value is <constant>EGL_DONT_CARE</constant>.
+ </para>
+ <para>
+ If <constant>EGL_NONE</constant> is specified, then
+ configs are matched for this attribute, but only
+ configs with no caveats (neither
+ <constant>EGL_SLOW_CONFIG</constant> or
+ <constant>EGL_NON_CONFORMANT_CONFIG</constant>) will
+ be considered.
+ </para>
+ <para>
+ If <constant>EGL_SLOW_CONFIG</constant> is
+ specified, then only slow configs configurations
+ will be considered. The meaning of``slow'' is
+ implementation-dependent, but typically indicates a
+ non-hardware-accelerated (software) implementation.
+ </para>
+ <para>
+ If <constant>EGL_NON_CONFORMANT_CONFIG</constant> is
+ specified, then only configs supporting
+ non-conformant OpenGL ES contexts will be
+ considered.
+ </para>
+ <para>
+ If the EGL version is 1.3 or later, caveat
+ <constant>EGL_NON_CONFORMANT_CONFIG</constant> is
+ obsolete, since the same information can be
+ specified via the
+ <constant>EGL_CONFORMANT</constant> attribute on a
+ per-client-API basis, not just for OpenGL ES.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_ID</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a valid integer ID that
+ indicates the desired EGL frame buffer
+ configuration. When a
+ <constant>EGL_CONFIG_ID</constant> is specified, all
+ other attributes are ignored. The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para>
+ <para>
+ The meaning of config IDs is
+ implementation-dependent. They are used only to
+ uniquely identify different frame buffer
+ configurations.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFORMANT</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a bitmask indicating which types
+ of client API contexts created with respect to the
+ frame buffer configuration config must pass the
+ required conformance tests for that API. Mask bits
+ include:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_OPENGL_BIT</constant></term>
+ <listitem><para>
+ Config supports creating OpenGL contexts.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_OPENGL_ES_BIT</constant></term>
+ <listitem><para>
+ Config supports creating OpenGL ES 1.0
+ and/or 1.1 contexts.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_OPENGL_ES2_BIT</constant></term>
+ <listitem><para>
+ Config supports creating OpenGL ES 2.0 contexts.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_OPENVG_BIT</constant></term>
+ <listitem><para>
+ Config supports creating OpenVG contexts.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ For example, if the bitmask is set to
+ <constant>EGL_OPENGL_ES_BIT</constant>, only frame
+ buffer configurations that support creating
+ conformant OpenGL ES contexts will match. The
+ default value is zero.
+ </para>
+ <para>
+ Most EGLConfigs should be conformant for all
+ supported client APIs, and it is rarely desirable to
+ select a nonconformant config. Conformance
+ requirements limit the number of non-conformant
+ configs that an implementation can define.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_DEPTH_SIZE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a nonnegative integer that
+ indicates the desired depth buffer size, in bits.
+ The smallest depth buffers of at least the specified
+ size is preferred. If the desired size is zero,
+ frame buffer configurations with no depth buffer are
+ preferred. The default value is zero.
+ </para>
+ <para>
+ The depth buffer is used only by OpenGL and OpenGL
+ ES client APIs.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_GREEN_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the green component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest green component size
+ are preferred. Otherwise, color buffers with the
+ largest green component of at least the specified
+ size are preferred. The default value is zero.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LEVEL</constant></term>
+ <listitem><para>
+ Must be followed by an integer buffer level
+ specification. This specification is honored
+ exactly. Buffer level zero corresponds to the
+ default frame buffer of the display. Buffer level
+ one is the first overlay frame buffer, level two the
+ second overlay frame buffer, and so on. Negative
+ buffer levels correspond to underlay frame buffers.
+ The default value is zero.
+ </para>
+ <para>
+ Most platforms do not support buffer levels other than
+ zero. The behavior of windows placed in overlay and
+ underlay planes depends on the underlying platform.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LUMINANCE_SIZE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the luminance
+ component of the color buffer, in bits. If this
+ value is zero, color buffers with the smallest
+ luminance component size are preferred. Otherwise,
+ color buffers with the largest luminance component
+ of at least the specified size are preferred. The
+ default value is zero.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MATCH_NATIVE_PIXMAP</constant></term>
+ <listitem>
+ <para>
+ Must be followed by the handle of a valid native
+ pixmap, cast to <type>EGLint</type>, or
+ <constant>EGL_NONE</constant>. If the value is not
+ <constant>EGL_NONE</constant>, only configs which
+ support creating pixmap surfaces with this pixmap
+ using
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>
+ will match this attribute. If the value is
+ <constant>EGL_NONE</constant>, then configs are not
+ matched for this attribute. The default value is
+ <constant>EGL_NONE</constant>.
+ </para>
+ <para>
+ <constant>EGL_MATCH_NATIVE_PIXMAP</constant> was
+ introduced due to the difficulty of determining an
+ <type>EGLConfig</type> compatibile with a native
+ pixmap using only color component sizes.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_NATIVE_RENDERABLE</constant></term>
+ <listitem><para>
+ Must be followed by
+ <constant>EGL_DONT_CARE</constant>,
+ <constant>EGL_TRUE</constant>, or
+ <constant>EGL_FALSE</constant>.
+ If <constant>EGL_TRUE</constant> is specified, then
+ only frame buffer configurations that allow native
+ rendering into the surface will be considered. The
+ default value is <constant>EGL_DONT_CARE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MAX_SWAP_INTERVAL</constant></term>
+ <listitem><para>
+ Must be followed by a integer that indicates the
+ maximum value that can be passed to
+ <citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry>.
+ The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MIN_SWAP_INTERVAL</constant></term>
+ <listitem><para>
+ Must be followed by a integer that indicates the
+ minimum value that can be passed to eglSwapInterval.
+ The default value is <constant>EGL_DONT_CARE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RED_SIZE</constant></term>
+ <listitem><para>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the red component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest red component size
+ are preferred. Otherwise, color buffers with the
+ largest red component of at least the specified size
+ are preferred. The default value is zero.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SAMPLE_BUFFERS</constant></term>
+ <listitem><para>
+ Must be followed by the minimum acceptable number of
+ multisample buffers. Configurations with the
+ smallest number of multisample buffers that meet or
+ exceed this minimum number are preferred. Currently
+ operation with more than one multisample buffer is
+ undefined, so only values of zero or one will
+ produce a match. The default value is zero.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SAMPLES</constant></term>
+ <listitem><para>
+ Must be followed by the minimum number of
+ samples required in multisample buffers.
+ Configurations with the smallest number of
+ samples that meet or exceed the specified
+ minimum number are preferred. Note that it is
+ possible for color samples in the multisample
+ buffer to have fewer bits than colors in the
+ main color buffers. However, multisampled
+ colors maintain at least as much color
+ resolution in aggregate as the main color
+ buffers.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_STENCIL_SIZE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a nonnegative integer that
+ indicates the desired stencil buffer size, in bits.
+ The smallest stencil buffers of at least the
+ specified size are preferred. If the desired size is
+ zero, frame buffer configurations with no stencil
+ buffer are preferred. The default value is zero.
+ </para>
+ <para>
+ The stencil buffer is used only by OpenGL and
+ OpenGL ES client APIs.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RENDERABLE_TYPE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a bitmask indicating which types
+ of client API contexts the frame buffer
+ configuration must support creating with
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>).
+ Mask bits are the same as for attribute
+ <constant>EGL_CONFORMANT</constant>. The default
+ value is <constant>EGL_OPENGL_ES_BIT</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SURFACE_TYPE</constant></term>
+ <listitem>
+ <para>
+ Must be followed by a bitmask indicating which EGL
+ surface types and capabilities the frame buffer
+ configuration must support. Mask bits include:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_MULTISAMPLE_RESOLVE_BOX_BIT</constant></term>
+ <listitem><para>
+ Config allows specifying box filtered
+ multisample resolve behavior with
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_PBUFFER_BIT</constant></term>
+ <listitem><para>
+ Config supports creating pixel buffer surfaces.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_PIXMAP_BIT</constant></term>
+ <listitem><para>
+ Config supports creating pixmap surfaces.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SWAP_BEHAVIOR_PRESERVED_BIT</constant></term>
+ <listitem><para>
+ Config allows setting swap behavior for
+ color buffers with
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant></term>
+ <listitem><para>
+ Config allows specifying OpenVG rendering
+ with premultiplied alpha values at surface
+ creation time (see
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ and
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>).
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_COLORSPACE_LINEAR_BIT</constant></term>
+ <listitem><para>
+ Config allows specifying OpenVG rendering in
+ a linear colorspace at surface creation time
+ (see
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ and
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>).
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_WINDOW_BIT</constant></term>
+ <listitem><para>
+ Config supports creating window surfaces.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ For example, if the bitmask is set to
+ <constant>EGL_WINDOW_BIT</constant> |
+ <constant>EGL_PIXMAP_BIT</constant>,
+ only frame buffer configurations that support both
+ windows and pixmaps will be considered. The default
+ value is <constant>EGL_WINDOW_BIT</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_TYPE</constant></term>
+ <listitem><para>
+ Must be followed by one of
+ <constant>EGL_NONE</constant> or
+ <constant>EGL_TRANSPARENT_RGB</constant>. If
+ <constant>EGL_NONE</constant> is specified, then
+ only opaque frame buffer configurations will be
+ considered. If
+ <constant>EGL_TRANSPARENT_RGB</constant> is
+ specified, then only transparent frame buffer
+ configurations will be considered. The default value
+ is <constant>EGL_NONE</constant>.
+ </para>
+ <para>
+ Most implementations support only opaque frame
+ buffer configurations.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_RED_VALUE</constant></term>
+ <listitem><para>
+ Must be followed by an integer value indicating the
+ transparent red value. The value must be between
+ zero and the maximum color buffer value for red.
+ Only frame buffer configurations that use the
+ specified transparent red value will be considered.
+ The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para>
+ <para>
+ This attribute is ignored unless
+ <constant>EGL_TRANSPARENT_TYPE</constant> is included in
+ <parameter>attrib_list</parameter> and specified as
+ <constant>EGL_TRANSPARENT_RGB</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_GREEN_VALUE</constant></term>
+ <listitem><para>
+ Must be followed by an integer value indicating the
+ transparent green value. The value must be between
+ zero and the maximum color buffer value for green.
+ Only frame buffer configurations that use the
+ specified transparent green value will be
+ considered. The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para>
+ <para>
+ This attribute is ignored unless
+ <constant>EGL_TRANSPARENT_TYPE</constant> is included in
+ <parameter>attrib_list</parameter> and specified as
+ <constant>EGL_TRANSPARENT_RGB</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_BLUE_VALUE</constant></term>
+ <listitem><para>
+ Must be followed by an integer value indicating the
+ transparent blue value. The value must be between
+ zero and the maximum color buffer value for blue.
+ Only frame buffer configurations that use the
+ specified transparent blue value will be considered.
+ The default value is
+ <constant>EGL_DONT_CARE</constant>.
+ </para>
+ <para>
+ This attribute is ignored unless
+ <constant>EGL_TRANSPARENT_TYPE</constant> is included in
+ <parameter>attrib_list</parameter> and specified as
+ <constant>EGL_TRANSPARENT_RGB</constant>.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ When more than one EGL frame buffer configuration matches
+ the specified attributes, a list of matching configurations
+ is returned. The list is sorted according to the following
+ precedence rules, which are applied in ascending order
+ (i.e., configurations that are considered equal by a lower
+ numbered rule are sorted by the higher numbered rule):
+ </para>
+ <orderedlist>
+ <listitem><para>
+ Special: by <constant>EGL_CONFIG_CAVEAT</constant>,
+ where the precedence is <constant>EGL_NONE</constant>,
+ <constant>EGL_SLOW_CONFIG</constant>, and
+ <constant>EGL_NON_CONFORMANT_CONFIG</constant>.
+ </para></listitem>
+ <listitem><para>
+ Special: by <constant>EGL_COLOR_BUFFER_TYPE</constant>,
+ where the precedence is
+ <constant>EGL_RGB_BUFFER</constant>,
+ <constant>EGL_LUMINANCE_BUFFER</constant>.
+ </para></listitem>
+ <listitem>
+ <para>
+ Special: by larger total number of color bits (for an
+ RGB color buffer, this is the sum of
+ <constant>EGL_RED_SIZE</constant>,
+ <constant>EGL_GREEN_SIZE</constant>,
+ <constant>EGL_BLUE_SIZE</constant>, and
+ <constant>EGL_ALPHA_SIZE</constant>; for a luminance
+ color buffer, the sum of
+ <constant>EGL_LUMINANCE_SIZE</constant> and
+ <constant>EGL_ALPHA_SIZE</constant>). If the requested
+ number of bits in <parameter>attrib_list</parameter> is
+ <constant>0</constant> or
+ <constant>EGL_DONT_CARE</constant> for a particular
+ color component, then the number of bits for that
+ component is not considered.
+ </para>
+ <para>
+ This sort rule places configs with deeper color buffers
+ before configs with shallower color buffers, which may
+ be counterintuitive.
+ </para>
+ </listitem>
+ <listitem><para>
+ Smaller <constant>EGL_BUFFER_SIZE</constant>.
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_SAMPLE_BUFFERS</constant>.
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_SAMPLES</constant>.
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_DEPTH_SIZE</constant>.
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_STENCIL_SIZE</constant>.
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_ALPHA_MASK_SIZE</constant>.
+ </para></listitem>
+ <listitem><para>
+ Special: <constant>EGL_NATIVE_VISUAL_TYPE</constant>
+ (the actual sort order is implementation-defined,
+ depending on the meaning of native visual types).
+ </para></listitem>
+ <listitem><para>
+ Smaller <constant>EGL_CONFIG_ID</constant> (this is
+ always the last sorting rule, and guarantees a unique
+ ordering).
+ </para></listitem>
+ </orderedlist>
+ <para>
+ <type>EGLConfigs</type> are not sorted with respect to the
+ attributes <constant>EGL_BIND_TO_TEXTURE_RGB</constant>,
+ <constant>EGL_BIND_TO_TEXTURE_RGBA</constant>,
+ <constant>EGL_CONFORMANT</constant>,
+ <constant>EGL_LEVEL</constant>,
+ <constant>EGL_NATIVE_RENDERABLE</constant>,
+ <constant>EGL_MAX_SWAP_INTERVAL</constant>,
+ <constant>EGL_MIN_SWAP_INTERVAL</constant>,
+ <constant>EGL_RENDERABLE_TYPE</constant>,
+ <constant>EGL_SURFACE_TYPE</constant>,
+ <constant>EGL_TRANSPARENT_TYPE</constant>,
+ <constant>EGL_TRANSPARENT_RED_VALUE</constant>,
+ <constant>EGL_TRANSPARENT_GREEN_VALUE</constant>, and
+ <constant>EGL_TRANSPARENT_BLUE_VALUE</constant>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="examples"><title>Examples</title>
+ <para>
+ The following example specifies a frame buffer configuration
+ in the normal frame buffer (not an overlay or underlay). The
+ returned frame buffer configuration supports a color buffer
+ with at least 4 bits each of red, green and blue, and
+ possibly no alpha bits. The code shown in the example may or
+ may not have a depth buffer, or a stencil buffer.
+ </para>
+ <programlisting>EGLint const attrib_list[] = {
+ EGL_RED_SIZE, 4,
+ EGL_GREEN_SIZE, 4,
+ EGL_BLUE_SIZE, 4,
+ EGL_NONE
+};</programlisting>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <constant>EGL_RENDERABLE_TYPE</constant> bit
+ <constant>EGL_OPENGL_BIT</constant>, and
+ <constant>EGL_SURFACE_TYPE</constant> bits
+ <constant>EGL_MULTISAMPLE_RESOLVE_BOX_BIT</constant> and
+ <constant>EGL_SWAP_BEHAVIOR_PRESERVED_BIT</constant> are
+ supported only if the EGL version is 1.4 or greater.
+ </para>
+ <para>
+ <constant>EGL_CONFORMANT</constant>,
+ <constant>EGL_MATCH_NATIVE_PIXMAP</constant>,
+ <constant>EGL_RENDERABLE_TYPE</constant> bit
+ <constant>EGL_OPENGL_ES2_BIT</constant>, and
+ <constant>EGL_SURFACE_TYPE</constant> bits
+ <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> and
+ <constant>EGL_VG_COLORSPACE_LINEAR_BIT</constant> are
+ supported only if the EGL version is 1.3 or greater.
+ </para>
+ <para>
+ <constant>EGL_ALPHA_MASK_SIZE</constant>,
+ <constant>EGL_COLOR_BUFFER_TYPE</constant>,
+ <constant>EGL_LUMINANCE_SIZE</constant>,
+ <constant>EGL_RENDERABLE_TYPE</constant>, and
+ <constant>EGL_RENDERABLE_TYPE</constant> bits
+ <constant>EGL_OPENGL_ES_BIT</constant> and
+ <constant>EGL_OPENVG_BIT</constant> are supported only if
+ the EGL version is 1.2 or greater.
+ </para>
+ <para>
+ If OpenGL or OpenGL ES rendering is supported for a
+ luminance color buffer, it is treated as RGB rendering with
+ the value of <constant>GL_RED_BITS</constant> equal to
+ <constant>EGL_LUMINANCE_SIZE</constant> and the values of
+ <constant>GL_GREEN_BITS</constant> and
+ <constant>GL_BLUE_BITS</constant> equal to zero. The red
+ component of fragments is written to the luminance channel
+ of the color buffer while the green and blue components are
+ discarded.
+ </para>
+ <para>
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>
+ and
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>
+ can be used to implement selection algorithms other than the
+ generic one implemented by
+ <function>eglChooseConfig</function>. Call
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>
+ to retrieve all the frame buffer configurations, or
+ alternatively, all the frame buffer configurations with a
+ particular set of attributes. Next call
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>
+ to retrieve additional attributes for the frame buffer
+ configurations and then select between them.
+ </para>
+ <para>
+ EGL implementors are strongly discouraged, but not
+ proscribed, from changing the selection algorithm used by
+ <function>eglChooseConfig</function>. Therefore, selections
+ may change from release to release of the client-side
+ library.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>configs</parameter> and
+ <parameter>num_config</parameter> are not modified when
+ <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attribute_list</parameter> contains an invalid frame buffer
+ configuration attribute or an
+ attribute value that is unrecognized or out of range.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>num_config</parameter> is <constant>NULL</constant>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglClientWaitSync.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglClientWaitSync.xml
new file mode 100644
index 0000000..a6b7478
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglClientWaitSync.xml
@@ -0,0 +1,161 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglClientWaitSync">
+ <info>
+ <copyright>
+ <year>2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglClientWaitSync</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglClientWaitSync</refname>
+ <refpurpose>
+ Wait in the client for a sync object to be signalled
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLint <function>eglClientWaitSync</function></funcdef>
+ <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSync <parameter>sync</parameter></paramdef>
+ <paramdef>EGLint <parameter>flags</parameter></paramdef>
+ <paramdef>EGLTime <parameter>timeout</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>
+ Specifies the <acronym>EGL</acronym> display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>sync</parameter></term>
+ <listitem><para>
+ Specifies the sync object to wait on.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>flags</parameter></term>
+ <listitem><para>
+ Specifies flags controlling wait behavior.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>timeout</parameter></term>
+ <listitem><para>
+ Specifies wait timeout interval.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglClientWaitSync</function> blocks the calling thread
+ until the specified sync object <parameter>sync</parameter> is
+ signaled, or until <parameter>timeout</parameter> nanoseconds
+ have passed.
+ </para>
+ <para>
+ More than one <function>eglClientWaitSync</function> may be
+ outstanding on the same <parameter>sync</parameter> at any given
+ time. When there are multiple threads blocked on the same
+ <parameter>sync</parameter> and the sync object is signaled, all
+ such threads are released, but the order in which they are
+ released is not defined.
+ </para>
+ <para>
+ If the value of <parameter>timeout</parameter> is zero, then
+ <function>eglClientWaitSync</function> simply tests the current
+ status of <parameter>sync</parameter>. If the value of
+ <parameter>timeout</parameter> is the special value
+ <constant>EGL_FOREVER</constant>, then
+ <function>eglClientWaitSync</function> does not time out. For
+ all other values, <parameter>timeout</parameter> is adjusted to
+ the closest value allowed by the implementation-dependent
+ timeout accuracy, which may be substantially longer than one
+ nanosecond.
+ </para>
+ <para>
+ <function>eglClientWaitSync</function> returns one of three
+ status values describing the reason for returning. A return
+ value of <constant>EGL_TIMEOUT_EXPIRED</constant> indicates that
+ the specified timeout period expired before
+ <parameter>sync</parameter> was signaled, or if
+ <parameter>timeout</parameter> is zero, indicates that
+ <parameter>sync</parameter> is not signaled. A return value of
+ <constant>EGL_CONDITION_SATISFIED</constant> indicates that
+ <parameter>sync</parameter> was signaled before the timeout
+ expired, which includes the case when
+ <parameter>sync</parameter> was already signaled when
+ <function>eglClientWaitSync</function> was called. If an error
+ occurs then an error is generated and
+ <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ If the sync object being blocked upon will not be signaled in
+ finite time (for example, by an associated fence command issued
+ previously, but not yet flushed to the graphics pipeline), then
+ <function>eglClientWaitSync</function> may wait forever. To help
+ prevent this behavior, if the
+ <constant>EGL_SYNC_FLUSH_COMMANDS_BIT</constant> bit is set in
+ <parameter>flags</parameter>, and <parameter>sync</parameter> is
+ unsignaled when <function>eglClientWaitSync</function> is
+ called, then the equivalent of Flush() will be performed for the
+ current API context (i.e., the context returned by
+ <function>eglGetCurrentContext</function>) before blocking on
+ <parameter>sync</parameter>. If no context is current for the
+ bound API, the <constant>EGL_SYNC_FLUSH_COMMANDS_BIT</constant>
+ bit is ignored.
+ </para>
+ <para>
+ Note: the simple Flush behavior defined by
+ <constant>EGL_SYNC_FLUSH_COMMANDS_BIT</constant> will not help
+ when waiting for a fence command issued in a different context's
+ command stream. Applications which block on a fence sync object
+ must take additional steps to ensure that the context from which
+ the associated fence command was issued has flushed that command
+ to the graphics pipeline.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <function>eglClientWaitSync</function> returns
+ <constant>EGL_FALSE</constant> on failure.
+ </para>
+ <para>
+ If <parameter>sync</parameter> is not a valid sync object for
+ <parameter>display</parameter>, an
+ <constant>EGL_BAD_PARAMETER</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>display</parameter> does not match the
+ <type>EGLDisplay</type> passed to
+ <function>eglCreateSync</function> when
+ <parameter>sync</parameter> was created, the behaviour is
+ undefined.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglClientWaitSync</function> is available only if the
+ EGL version is 1.5 or greater.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitSync</refentrytitle></citerefentry>,
+ <function>glFinish</function>,
+ <function>vgFinish</function>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCopyBuffers.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCopyBuffers.xml
new file mode 100644
index 0000000..0541f20
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCopyBuffers.xml
@@ -0,0 +1,120 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCopyBuffers">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglCopyBuffers</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCopyBuffers</refname>
+ <refpurpose>
+ copy <acronym>EGL</acronym> surface color buffer to a native pixmap
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglCopyBuffers</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ <paramdef>NativePixmapType <parameter>native_pixmap</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface whose color buffer is to be copied.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>native_pixmap</parameter></term>
+ <listitem>
+ <para>
+ Specifies the native pixmap as target of the copy.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglCopyBuffers</function> copies the color buffer of
+ <parameter>surface</parameter> to <parameter>native_pixmap</parameter>.
+ </para>
+ <para>
+ <function>eglCopyBuffers</function> performs an implicit
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>
+ before it returns. Subsequent
+ GL commands may be issued immediately after calling
+ <function>eglCopyBuffers</function>,
+ but are not executed until copying of the color buffer is completed.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ The color buffer of <parameter>surface</parameter> is left unchanged
+ after calling <function>eglCopyBuffers</function>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if swapping of the
+ surface buffers fails, <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL drawing surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_NATIVE_PIXMAP</constant> is generated if
+ the implementation does not support native pixmaps.
+ </para>
+ <para>
+ <constant>EGL_BAD_NATIVE_PIXMAP</constant> may be generated if
+ <parameter>native_pixmap</parameter> is not a valid native pixmap.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ the format of <parameter>native_pixmap</parameter> is not compatible
+ with the color buffer of <parameter>surface</parameter>.
+ </para>
+ <para>
+ <constant>EGL_CONTEXT_LOST</constant> is generated if a power management
+ event has occurred. The application must destroy all contexts and
+ reinitialise OpenGL ES state and objects to continue rendering.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateContext.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateContext.xml
new file mode 100644
index 0000000..73c54b6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateContext.xml
@@ -0,0 +1,212 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreateContext">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglCreateContext</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreateContext</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> rendering context
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLContext <function>eglCreateContext</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>EGLContext <parameter>share_context</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>
+ Specifies the
+ <acronym>EGL</acronym>
+ display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem><para>Specifies the EGL frame buffer configuration that
+ defines the frame buffer resource available to the rendering context.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>share_context</parameter></term>
+ <listitem><para>
+ Specifies another
+ <acronym>EGL</acronym>
+ rendering context with which to share data, as
+ defined by the client API corresponding to the
+ contexts. Data is also shared with all other
+ contexts with which
+ <parameter>share_context</parameter> shares data.
+ <constant>EGL_NO_CONTEXT</constant> indicates that
+ no sharing is to take place.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies attributes and attribute values for the
+ context being created. Only the attribute
+ <constant>EGL_CONTEXT_CLIENT_VERSION</constant> may
+ be specified.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglCreateContext</function> creates an EGL
+ rendering context for the current rendering API (as set with
+ <function>eglBindAPI</function>) and returns a handle to the
+ context. The context can then be used to render into an EGL
+ drawing surface. If <function>eglCreateContext</function>
+ fails to create a rendering context,
+ <constant>EGL_NO_CONTEXT</constant> is returned.
+ </para>
+ <para>
+ If <parameter>share_context</parameter> is not
+ <constant>EGL_NO_CONTEXT</constant>, then all shareable data
+ in the context (as defined by the client API specification
+ for the current rendering API) are shared by context
+ <parameter>share_context</parameter>, all other contexts
+ <parameter>share_context</parameter> already shares with,
+ and the newly created context. An arbitrary number of
+ rendering contexts can share data. However, all rendering
+ contexts that share data must themselves exist in the same
+ address space. Two rendering contexts share an address space
+ if both are owned by a single process.
+ </para>
+ <para>
+ <parameter>attrib_list</parameter> specifies a list of
+ attributes for the context. The list has the same structure
+ as described for <function>eglChooseConfig</function>. The
+ attributes and attribute values which may be specified are
+ as follows:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_MAJOR_VERSION</constant></term>
+ <listitem><para>
+ Must be followed by an integer specifying the requested
+ major version of an OpenGL or OpenGL ES context. The
+ default value is 1. This attribute is an alias of the
+ older <constant>EGL_CONTEXT_CLIENT_VERSION</constant>,
+ and the tokens may be used interchangeably.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_MINOR_VERSION</constant></term>
+ <listitem><para>
+ Must be followed by an integer specifying the requested
+ minor version of an OpenGL or OpenGL ES context. The
+ default value is 0.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_OPENGL_PROFILE_MASK</constant></term>
+ <listitem><para>
+ Must be followed by an integer bitmask specifying the
+ <firstterm>profile</firstterm> of an OpenGL context.
+ Bits which may be set include
+ <constant>EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT</constant>
+ for a core profile and
+ <constant>EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT</constant>
+ for a compatibility profile. The default value is
+ <constant>EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT</constant>.
+ All OpenGL 3.2 and later implementations are required to
+ implement the core profile, but implementation of the
+ compatibility profile is optional.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_OPENGL_DEBUG</constant></term>
+ <listitem><para>
+ Must be followed by <constant>EGL_TRUE</constant>,
+ specifying that an OpenGL or OpenGL ES <firstterm>debug
+ context</firstterm> should be created, or
+ <constant>EGL_FALSE</constant>, if a non-debug context
+ should be created. The default value is
+ <constant>EGL_FALSE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE</constant></term>
+ <listitem><para>
+ Must be followed by <constant>EGL_TRUE</constant>,
+ specifying that a
+ <firstterm>forward-compatible</firstterm> OpenGL context
+ should be created, or <constant>EGL_FALSE</constant>, if
+ a non-forward-compatible context should be created. The
+ default value is <constant>EGL_FALSE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_OPENGL_ROBUST_ACCESS</constant></term>
+ <listitem><para>
+ Must be followed by <constant>EGL_TRUE</constant>,
+ specifying that an OpenGL or OpenGL ES context
+ supporting <firstterm>robust buffer access</firstterm>
+ should be created, or <constant>EGL_FALSE</constant>, if
+ a non-robust context should be created. The default
+ value is <constant>EGL_FALSE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY</constant></term>
+ <listitem><para>
+ Must be followed by
+ <constant>EGL_LOSE_CONTEXT_ON_RESET</constant>,
+ specifying that an OpenGL or OpenGL ES context with
+ reset notification behavior
+ <constant>GL_LOSE_CONTEXT_ON_RESET_ARB</constant> should
+ be created, or
+ <constant>EGL_NO_RESET_NOTIFICATION</constant>,
+ specifying that an OpenGL or OpenGL ES context with
+ reset notification behavior
+ <constant>GL_NO_RESET_NOTIFICATION_ARB</constant> should
+ be created, as described by the
+ <constant>GL_ARB_robustness</constant> extension.
+ </para><para>
+ If the
+ <constant>EGL_CONTEXT_OPENGL_ROBUST_ACCESS</constant>
+ attribute is not set to <constant>EGL_TRUE</constant>,
+ context creation will not fail, but the resulting
+ context may not support robust buffer access, and
+ therefore may not support the requested reset
+ notification strategy The default value for
+ <constant>EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY</constant>
+ is <constant>EGL_NO_RESET_NOTIFICATION</constant> .
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ There are many possible interactions between requested OpenGL
+ and OpenGL ES context creation attributes, depending on the API
+ versions and extensions supported by the implementation. These
+ interactions are described in detail in the EGL 1.5
+ Specification, but are not listed here for compactness. The
+ requested attributes may not be able to be satisfied, but
+ context creation may still succeed. Applications should ensure
+ that the OpenGL or OpenGL ES contexts supports needed features
+ before using them, by determining the actual context version,
+ supported extensions, and supported context flags using runtime
+ queries.
+ </para>
+ </refsect1>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateImage.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateImage.xml
new file mode 100644
index 0000000..8072ec3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateImage.xml
@@ -0,0 +1,624 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreateImage">
+ <info>
+ <copyright>
+ <year>2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglCreateImage</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreateImage</refname>
+ <refpurpose>
+ Create a new <type>EGLImage</type> object
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLImage <function>eglCreateImage</function></funcdef>
+ <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLContext <parameter>context</parameter></paramdef>
+ <paramdef>EGLenum <parameter>target</parameter></paramdef>
+ <paramdef>EGLClientBuffer <parameter>buffer</parameter></paramdef>
+ <paramdef>const EGLAttrib *<parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>
+ Specifies the <acronym>EGL</acronym> display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>context</parameter></term>
+ <listitem><para>
+ Specifies the client API context for which the image is
+ created.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>target</parameter></term>
+ <listitem><para>
+ Specifies the type of resource used as the image source.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buffer</parameter></term>
+ <listitem><para>
+ Specifies the resource to be used as the image source.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies attributes used to select sub-sections of the
+ resource to be used as the image source.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglCreateImage</function> is used to create an
+ <type>EGLImage</type> object from an existing image resource
+ <parameter>buffer</parameter>. <parameter>display</parameter>
+ specifies the EGL display used for this operation.
+ <parameter>context</parameter> specifies the EGL client API
+ context used for this operation, or
+ <constant>EGL_NO_CONTEXT</constant> if a client API context is
+ not required. <parameter>target</parameter> specifies the type
+ of resource being used as the <type>EGLImage</type> source
+ (examples include two-dimensional textures in OpenGL ES contexts
+ and <type>VGImage</type> objects in OpenVG contexts).
+ <parameter>buffer</parameter> is the name (or handle) of a
+ resource to be used as the <type>EGLImage</type> source, cast
+ into the type <type>EGLClientBuffer</type>.
+ <parameter>attrib_list</parameter> is a list of attribute-value
+ pairs which is used to select sub-sections of
+ <parameter>buffer</parameter> for use as the
+ <type>EGLImage</type> source, such as mipmap levels for OpenGL
+ ES texture map resources, as well as behavioral options, such as
+ whether to preserve pixel data during creation. If
+ <parameter>attrib_list</parameter> is
+ non-<constant>NULL</constant>, the last attribute specified in
+ the list must be <constant>EGL_NONE</constant>.
+ </para>
+ <para>
+ The resource specified by <parameter>display</parameter>,
+ <parameter>context</parameter>, <parameter>target</parameter>,
+ <parameter>buffer</parameter>, and
+ <parameter>attrib_list</parameter> must not itself be an
+ <type>EGLImage</type> sibling, or bound to a pbuffer
+ <type>EGLSurface</type> resource
+ (<function>eglBindTexImage</function>,
+ <function>eglCreatePbufferFromClientBuffer</function>).
+ </para>
+ <para>
+ Values accepted for <parameter>target</parameter> are shown in
+ table <xref linkend="tab-imagetarget"/>.
+ </para>
+ <table frame="all" xml:id="tab-imagetarget">
+ <title>
+ Legal values for <function>eglCreateImage</function> <parameter>target</parameter>
+ </title>
+ <tgroup cols="2" align="left" colsep="1" rowsep="1">
+ <thead>
+ <row>
+ <entry><parameter>target</parameter></entry>
+ <entry>Notes</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><constant>EGL_GL_TEXTURE_2D</constant></entry>
+ <entry>Used for GL 2D texture images</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant></entry>
+ <entry>Used for the +X face of GL cubemap texture images</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant></entry>
+ <entry>Used for the -X face of GL cubemap texture images</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant></entry>
+ <entry>Used for the +Y face of GL cubemap texture images</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant></entry>
+ <entry>Used for the -Y face of GL cubemap texture images</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant></entry>
+ <entry>Used for the +Z face of GL cubemap texture images</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant></entry>
+ <entry>Used for the -Z face of GL cubemap texture images</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_GL_TEXTURE_3D</constant></entry>
+ <entry>Used for OpenGL and OpenGL ES 3D texture images</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_GL_RENDERBUFFER</constant></entry>
+ <entry>Used for OpenGL and OpenGL ES renderbuffer images</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <para>
+ Attribute names accepted in <parameter>attrib_list</parameter>
+ are shown in table <xref linkend="tab-imageattr"/>, together
+ with the <parameter>target</parameter> for which each attribute
+ name is valid, and the default value used for each attribute if
+ it is not included in <parameter>attrib_list</parameter>.
+ </para>
+ <table frame="all" xml:id="tab-imageattr">
+ <title>
+ Legal attributes for <function>eglCreateImage</function>
+ <parameter>attrib_list</parameter> parameter
+ </title>
+ <tgroup cols="4" align="left" colsep="1" rowsep="1">
+ <thead>
+ <row>
+ <entry><parameter>target</parameter></entry>
+ <entry>Notes</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Attribute</entry>
+ <entry>Description</entry>
+ <entry>Valid <parameter>target</parameter>s</entry>
+ <entry>Default Value</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_NONE</constant></entry>
+ <entry>Marks the end of the attribute-value list</entry>
+ <entry>All</entry>
+ <entry>N/A</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_GL_TEXTURE_LEVEL</constant></entry>
+ <entry>
+ Specifies the mipmap level used as the
+ <type>EGLImage</type> source. Must be part of
+ the complete texture object
+ <parameter>buffer</parameter>
+ </entry>
+ <entry>
+ <constant>EGL_GL_TEXTURE_2D</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>, or
+ <constant>EGL_GL_TEXTURE_3D</constant>
+ </entry>
+ <entry>0</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_GL_TEXTURE_ZOFFSET</constant></entry>
+ <entry>
+ Specifies the depth offset of the image to use
+ as the <type>EGLImage</type> source. Must be
+ part of the complete texture object
+ <parameter>buffer</parameter>
+ </entry>
+ <entry><constant>EGL_GL_TEXTURE_3D</constant></entry>
+ <entry>0</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_IMAGE_PRESERVED</constant></entry>
+ <entry>Whether to preserve pixel data</entry>
+ <entry>All</entry>
+ <entry><constant>EGL_FALSE</constant></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <para>
+ <function>eglCreateImage</function> returns an
+ <type>EGLImage</type> object corresponding to the image data
+ specified by <parameter>display</parameter>,
+ <parameter>context</parameter>, <parameter>target</parameter>,
+ <parameter>buffer</parameter> and
+ <parameter>attrib_list</parameter> which may be referenced by
+ client API operations.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_2D</constant>,
+ <constant>EGL_GL_TEXTURE_3D</constant>,
+ <constant>EGL_GL_RENDERBUFFER</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>,
+ <parameter>display</parameter> must be a valid
+ <type>EGLDisplay</type>, and <parameter>context</parameter> must
+ be a valid OpenGL or OpenGL ES API context on that display.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_2D</constant>,
+ <parameter>buffer</parameter> must be the name of a nonzero,
+ <constant>GL_TEXTURE_2D</constant> target texture object, cast
+ into the type <type>EGLClientBuffer</type>.
+ </para>
+ <para>
+ If <parameter>target</parameter> is one of the
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant> enumerants,
+ <parameter>buffer</parameter> must be the name of a nonzero,
+ <constant>GL_TEXTURE_CUBE_MAP</constant> (or equivalent in GL
+ extensions) target texture object, cast into the type
+ <type>EGLClientBuffer</type>.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_3D</constant>,
+ <parameter>buffer</parameter> must be the name of a nonzero,
+ <constant>GL_TEXTURE_3D</constant> (or equivalent in GL
+ extensions) target texture object, cast into the type
+ <type>EGLClientBuffer</type>.
+ </para>
+ <para>
+ <parameter>attrib_list</parameter> should specify the mipmap
+ level (<constant>EGL_GL_TEXTURE_LEVEL</constant>) and, where
+ applicable, z-offset
+ (<constant>EGL_GL_TEXTURE_ZOFFSET</constant>) which will be used
+ as the <type>EGLImage</type> source; If not specified, the
+ default values listed in table <xref linkend="tab-imageattr"/>
+ will be used instead. Additional values specified in are
+ ignored.
+ </para>
+ <para>
+ There must exist some levels <emphasis>x</emphasis> and
+ <emphasis>y</emphasis> such that the mipmap level requested lies
+ between <emphasis>x</emphasis> and <emphasis>y</emphasis>
+ (inclusive), the texture would be mipmap complete were
+ <emphasis>x</emphasis> substituted for the base level and
+ <emphasis>y</emphasis> substituted for the max level, and all
+ levels less than <emphasis>x</emphasis> or greater than
+ <emphasis>y</emphasis> are unspecified. For cubemaps a single
+ pair <emphasis>x</emphasis> and <emphasis>y</emphasis> must
+ apply to all faces. For three-dimensional textures, the
+ specified z-offset must be smaller than the depth of the
+ specified mipmap level.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_RENDERBUFFER</constant>,
+ <parameter>buffer</parameter> must be the name of a complete,
+ nonzero, non-multisampled <constant>GL_RENDERBUFFER</constant>
+ (or equivalent in extensions) target object, cast into the type
+ <type>EGLClientBuffer</type>. Values specified in
+ <parameter>attrib_list</parameter> are ignored.
+ </para>
+ <para>
+ If the value of attribute
+ <constant>EGL_IMAGE_PRESERVED</constant> is
+ <constant>EGL_FALSE</constant> (the default), then all pixel
+ data values associated with <parameter>buffer</parameter> will
+ be undefined after <function>eglCreateImage</function> returns.
+ </para>
+ <para>
+ If the value of attribute
+ <constant>EGL_IMAGE_PRESERVED</constant> is
+ <constant>EGL_TRUE</constant>, then all pixel data values
+ associated with <parameter>buffer</parameter> are preserved.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <function>eglCreateImage</function> returns
+ <constant>EGL_NO_IMAGE</constant> on failure. The contents of
+ <parameter>buffer</parameter> will be unaffected.
+ </para>
+ <para>
+ If <parameter>display</parameter> is not the handle of a valid
+ <type>EGLDisplay</type> object, the error
+ <constant>EGL_BAD_DISPLAY</constant> is generated.
+ </para>
+ <para>
+ If <parameter>context</parameter> is neither the handle of a
+ valid <type>EGLContext</type> object on
+ <parameter>display</parameter> nor
+ <constant>EGL_NO_CONTEXT</constant>, the error
+ <constant>EGL_BAD_CONTEXT</constant> is generated.
+ </para>
+ <para>
+ If <parameter>target</parameter> is not one of the values in
+ table <xref linkend="tab-imagetarget"/>, the error
+ <constant>EGL_BAD_PARAMETER</constant> is generated.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_2D</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>,
+ <constant>EGL_GL_RENDERBUFFER</constant> or
+ <constant>EGL_GL_TEXTURE_3D</constant>, and
+ <parameter>display</parameter> is not a valid
+ <type>EGLDisplay</type>, the error
+ <constant>EGL_BAD_DISPLAY</constant> is generated.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_2D</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>,
+ <constant>EGL_GL_RENDERBUFFER</constant> or
+ <constant>EGL_GL_TEXTURE_3D</constant>, and
+ <parameter>context</parameter> is not a valid
+ <type>EGLContext</type>, the error
+ <constant>EGL_BAD_CONTEXT</constant> is generated.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_2D</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>,
+ <constant>EGL_GL_RENDERBUFFER</constant> or
+ <constant>EGL_GL_TEXTURE_3D</constant>, and
+ <parameter>context</parameter> is not a valid GL context, or
+ does not match the <parameter>display</parameter>, the error
+ <constant>EGL_BAD_MATCH</constant> is generated.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_2D</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant> or
+ <constant>EGL_GL_TEXTURE_3D</constant> and
+ <parameter>buffer</parameter> is not the name of a texture
+ object of type <parameter>target</parameter>, the error
+ <constant>EGL_BAD_PARAMETER</constant> is generated.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_RENDERBUFFER</constant> and
+ <parameter>buffer</parameter> is not the name of a renderbuffer
+ object, or if <parameter>buffer</parameter> is the name of a
+ multisampled renderbuffer object, the error
+ <constant>EGL_BAD_PARAMETER</constant> is generated.
+ </para>
+ <para>
+ If <constant>EGL_GL_TEXTURE_LEVEL</constant> is nonzero,
+ <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_2D</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant> or
+ <constant>EGL_GL_TEXTURE_3D</constant>, and
+ <parameter>buffer</parameter> is not the name of a complete GL
+ texture object, the error <constant>EGL_BAD_PARAMETER</constant>
+ is generated.
+ </para>
+ <para>
+ If <constant>EGL_GL_TEXTURE_LEVEL</constant> is 0,
+ <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_2D</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant> or
+ <constant>EGL_GL_TEXTURE_3D</constant>,
+ <parameter>buffer</parameter> is the name of an incomplete GL
+ texture object, and any mipmap levels other than mipmap level 0
+ are specified, the error <constant>EGL_BAD_PARAMETER</constant>
+ is generated.
+ </para>
+ <para>
+ If <constant>EGL_GL_TEXTURE_LEVEL</constant> is 0,
+ <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_2D</constant> or
+ <constant>EGL_GL_TEXTURE_3D</constant>,
+ <parameter>buffer</parameter> is not the name of a complete GL
+ texture object, and mipmap level 0 is not specified, the error
+ <constant>EGL_BAD_PARAMETER</constant> is generated.
+ </para>
+ <para>
+ If <constant>EGL_GL_TEXTURE_LEVEL</constant> is 0,
+ <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>,
+ <parameter>buffer</parameter> is not the name of a complete GL
+ texture object, and one or more faces do not have mipmap level 0
+ specified, the error <constant>EGL_BAD_PARAMETER</constant> is
+ generated.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_2D</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>,
+ <constant>EGL_GL_RENDERBUFFER</constant> or
+ <constant>EGL_GL_TEXTURE_3D</constant> and
+ <parameter>buffer</parameter> refers to the default GL texture
+ object (0) for the corresponding GL target, the error
+ <constant>EGL_BAD_PARAMETER</constant> is generated.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_2D</constant>,
+ <constant>EGL_GL_TEXTURE_CUBE_MAP_*</constant>, or
+ <constant>EGL_GL_TEXTURE_3D</constant>, and the value specified
+ in <parameter>attrib_list</parameter> for
+ <constant>EGL_GL_TEXTURE_LEVEL</constant> is not a valid mipmap
+ level for the specified GL texture object
+ <parameter>buffer</parameter>, the error
+ <constant>EGL_BAD_MATCH</constant> is generated.
+ </para>
+ <para>
+ If <parameter>target</parameter> is
+ <constant>EGL_GL_TEXTURE_3D</constant>, and the value specified
+ in <parameter>attrib_list</parameter> for
+ <constant>EGL_GL_TEXTURE_ZOFFSET</constant> exceeds the depth of
+ the specified mipmap level-of-detail in
+ <parameter>buffer</parameter>, the error
+ <constant>EGL_BAD_PARAMETER</constant> is generated.
+ </para>
+ <para>
+ If an attribute specified in <parameter>attrib_list</parameter>
+ is not one of the attributes shown in table <xref
+ linkend="tab-imageattr"/>, the error
+ <constant>EGL_BAD_PARAMETER</constant> is generated.
+ </para>
+ <para>
+ If an attribute specified in <parameter>attrib_list</parameter>
+ is not a valid attribute for <parameter>target</parameter>, as
+ shown in table <xref linkend="tab-imageattr"/>, the error
+ <constant>EGL_BAD_MATCH</constant> is generated.
+ </para>
+ <para>
+ If the resource specified by <parameter>display</parameter>,
+ <parameter>context</parameter>, <parameter>target</parameter>,
+ <parameter>buffer</parameter> and
+ <parameter>attrib_list</parameter> has an off-screen buffer
+ bound to it (e.g., by a previous call to
+ <function>eglBindTexImage</function>), the error
+ <constant>EGL_BAD_ACCESS</constant> is generated.
+ </para>
+ <para>
+ If the resource specified by <parameter>display</parameter>,
+ <parameter>context</parameter>, <parameter>target</parameter>,
+ <parameter>buffer</parameter> and
+ <parameter>attrib_list</parameter> is bound to an off-screen
+ buffer (e.g., by a previous call to
+ <function>eglCreatePbufferFromClientBuffer</function>), the
+ error <constant>EGL_BAD_ACCESS</constant> is generated.
+ </para>
+ <para>
+ If the resource specified by <parameter>display</parameter>,
+ <parameter>context</parameter>, <parameter>target</parameter>,
+ <parameter>buffer</parameter> and
+ <parameter>attrib_list</parameter> is itself an
+ <type>EGLImage</type> sibling, the error
+ <constant>EGL_BAD_ACCESS</constant> is generated.
+ </para>
+ <para>
+ If insufficient memory is available to complete the specified
+ operation, the error <constant>EGL_BAD_ALLOC</constant> is
+ generated.
+ </para>
+ <para>
+ If the value specified in <parameter>attrib_list</parameter> for
+ <constant>EGL_IMAGE_PRESERVED</constant> is
+ <constant>EGL_TRUE</constant>, and an <type>EGLImage</type>
+ handle cannot be created from the specified resource such that
+ the pixel data values in <parameter>buffer</parameter> are
+ preserved, the error <constant>EGL_BAD_ACCESS</constant> is
+ generated.
+ </para>
+ <para>
+ Note that the success or failure of
+ <function>eglCreateImage</function> should not affect the
+ ability to use <parameter>buffer</parameter> in its original API
+ context (or context share group) (although the pixel data values
+ will be undefined if the command succeeds and the value of
+ <constant>EGL_IMAGE_PRESERVED</constant> is not
+ <constant>EGL_TRUE</constant>).
+ </para>
+ </refsect1>
+ <refsect1 xml:id="lifetime"><title>Lifetime and Usage of <type>EGLImage</type>s</title>
+ <para>
+ Once an <type>EGLImage</type> is created from an
+ <type>EGLImage</type> source, the memory associated with the
+ <type>EGLImage</type> source will remain allocated (and all
+ <type>EGLImage</type> siblings in all client API contexts will
+ be useable) as long as either of the following conditions is
+ true:
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Any <type>EGLImage</type> siblings exist in any client
+ API context
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <type>EGLImage</type> object exists inside EGL
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ The semantics for specifying, deleting and using
+ <type>EGLImage</type> siblings are client API-specific, and are
+ described in the appropriate API specifications.
+ </para>
+ <para>
+ If an application specifies an <type>EGLImage</type> sibling as
+ the destination for rendering and/or pixel download operations
+ (e.g., as an OpenGL or OpenGL ES framebuffer object,
+ <function>glTexSubImage2D</function>, etc.), the modified image
+ results will be observed by all <type>EGLImage</type> siblings
+ in all client API contexts. If multiple client API contexts
+ access <type>EGLImage</type> sibling resources simultaneously,
+ with one or more context modifying the image data, rendering
+ results in all contexts accessing <type>EGLImage</type> siblings
+ are undefined.
+ </para>
+ <para>
+ Respecification and/or deletion of any <type>EGLImage</type>
+ sibling (i.e., both <type>EGLImage</type> source and
+ <type>EGLImage</type> target resources) inside a client API
+ context (by issuing a subsequent call to commands such as
+ <function>glTexImage*</function> or
+ <function>glDeleteTextures</function>, with the
+ <type>EGLImage</type> sibling resource as the target of the
+ operation) affects only that client API context and other
+ contexts within its share group. For an OpenGL or OpenGL ES
+ context, respecification always results in
+ <firstterm>orphaning</firstterm> of the <type>EGLImage</type>,
+ and may also include allocation of additional memory for the
+ respecified resource and/or copying of the <type>EGLImage</type>
+ pixel data.
+ </para>
+ <para>
+ Note: Behavior of other types of client APIs generally follows
+ the OpenGL and OpenGL ES behavior described here, although this
+ is not mandated yet.
+ </para>
+ <para>
+ Operations inside EGL or any client API context which may affect
+ the lifetime of an <type>EGLImage</type> (or the memory
+ allocated for the <type>EGLImage</type>), such as respecifying
+ and/or deleting an <type>EGLImage</type> sibling inside a client
+ API context, must be atomic.
+ </para>
+ <para>
+ Applications may create client API resources from an
+ <type>EGLImage</type> using client API extensions outside the
+ scope of this document (such as
+ <constant>GL_OES_EGL_image</constant>, which creates OpenGL ES
+ texture and renderbuffer objects). If the <type>EGLImage</type>
+ used to create the client resource was created with the
+ <constant>EGL_IMAGE_PRESERVED</constant> attribute set to
+ <constant>EGL_TRUE</constant>, then the pixel data values
+ associated with the image will be preserved after creating the
+ client resource; otherwise, the pixel data values will be
+ undefined. If the <type>EGLImage</type> was created with the
+ <constant>EGL_IMAGE_PRESERVED</constant> attribute set to
+ <constant>EGL_TRUE</constant>, and EGL is unable to create the
+ client resource without modifying the pixel values, then
+ creation will fail and the pixel data values will be preserved.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglCreateImage</function> is available only if the EGL
+ version is 1.5 or greater.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglBindTexImage</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferFromClientBuffer</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglDestroyImage</refentrytitle></citerefentry>,
+ <function>glDeleteTextures</function>,
+ <function>glTexImage*</function>,
+ <function>glTexSubImage2D</function>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePbufferFromClientBuffer.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePbufferFromClientBuffer.xml
new file mode 100644
index 0000000..5c60017
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePbufferFromClientBuffer.xml
@@ -0,0 +1,386 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreatePbufferFromClientBuffer">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglCreatePbufferFromClientBuffer</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreatePbufferFromClientBuffer</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> pixel buffer surface
+ bound to an OpenVG image
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglCreatePbufferFromClientBuffer</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLenum <parameter>buftype</parameter></paramdef>
+ <paramdef>EGLClientBuffer <parameter>buffer</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buftype</parameter></term>
+ <listitem>
+ <para>
+ Specifies the type of client API buffer to be bound.
+ Must be <constant>EGL_OPENVG_IMAGE</constant>,
+ corresponding to an OpenVG <type>VGImage</type>
+ buffer.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buffer</parameter></term>
+ <listitem>
+ <para>
+ Specifies the OpenVG <type>VGImage</type> handle of
+ the buffer to be bound.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem><para>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies pixel buffer surface attributes.
+ May be <constant>NULL</constant> or empty
+ (first attribute is <constant>EGL_NONE</constant>).
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglCreatePbufferFromClientBuffer</function> creates an
+ off-screen pixel buffer surface and returns its handle. If
+ <function>eglCreatePbufferFromClientBuffer</function> fails to create
+ a pixel buffer surface, <constant>EGL_NO_SURFACE</constant>
+ is returned.
+ </para>
+ <para>
+ The new pixel buffer surface is similar to a pixel buffer
+ created with
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ but storage for the color buffer is provided by a client API
+ buffer. Other buffer required by
+ <parameter>config</parameter>, such as depth, stencil, and
+ alpha mask, are allocated by EGL.
+ </para>
+ <para>
+ <parameter>buftype</parameter> must be
+ <constant>EGL_OPENVG_IMAGE</constant>, corresponding to an
+ OpenVG <type>VGImage</type> buffer.
+ <parameter>buffer</parameter> must be a valid
+ <type>VGImage</type> handle in the current OpenVG context,
+ cast into the type <type>EGLClientBuffer</type>.
+ </para>
+ <para>
+ The height, width,, OpenVG alpha format, and OpenVG
+ colorspace (surface attributes
+ <constant>EGL_HEIGHT</constant>,
+ <constant>EGL_WIDTH</constant>,
+ <constant>EGL_VG_ALPHA_FORMAT</constant>, and
+ <constant>EGL_VG_COLORSPACE</constant>, respectively) of the
+ resulting surface are determined by the size and format of
+ <parameter>buffer</parameter>.
+ </para>
+ <para>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <constant>EGL_NONE</constant>. Accepted attributes are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_MIPMAP_TEXTURE</constant></term>
+ <listitem>
+ <para>
+ Specifies whether storage for mipmaps should be
+ allocated. Space for mipmaps will be set aside if
+ the attribute value is <constant>EGL_TRUE</constant>
+ and <constant>EGL_TEXTURE_FORMAT</constant> is not
+ <constant>EGL_NO_TEXTURE</constant>. The default
+ value is <constant>EGL_FALSE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_FORMAT</constant></term>
+ <listitem>
+ <para>
+ Specifies the format of the texture that will be
+ created when a pbuffer is bound to a texture map.
+ Possible values are
+ <constant>EGL_NO_TEXTURE</constant>,
+ <constant>EGL_TEXTURE_RGB</constant>, and
+ <constant>EGL_TEXTURE_RGBA</constant>. The default
+ value is <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_TARGET</constant></term>
+ <listitem>
+ <para>
+ Specifies the target for the texture that will be
+ created when the pbuffer is created with a texture
+ format of <constant>EGL_TEXTURE_RGB</constant> or
+ <constant>EGL_TEXTURE_RGBA</constant>. Possible
+ values are <constant>EGL_NO_TEXTURE</constant>, or
+ <constant>EGL_TEXTURE_2D</constant>. The default
+ value is <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ Any EGL rendering context that was created with respect to
+ <parameter>config</parameter> can be used to render into the
+ surface. Use
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ to attach an EGL rendering context to the surface.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ to retrieve the dimensions of the allocated pixel buffer
+ surface or the ID of <parameter>config</parameter>.
+ </para>
+ <para>
+ Use <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+ to destroy the surface.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglCreatePbufferFromClientBuffer</function> is
+ supported only if the EGL version is 1.2 or greater, and if
+ the EGL implementation supports the OpenVG client API.
+ </para>
+ <para>
+ Currently
+ <function>eglCreatePbufferFromClientBuffer</function> only
+ supports binding OpenVG <type>VGImage</type> buffers to
+ pixel buffers. While other client API resources could be
+ supported in the future, mechanisms such as OpenGL ES
+ framebuffer objects, and the family of EGL and client API
+ extensions for defining and using <type>EGLImageKHR</type>
+ images, are a more flexible and general framework to satisfy
+ most of the same needs.
+ </para>
+ <para>
+ If the value of <parameter>config</parameter> attribute
+ <constant>EGL_TEXTURE_FORMAT</constant> is not
+ <constant>EGL_NO_TEXTURE</constant>, then the pbuffer width
+ and height specify the size of the level zero texture image
+ </para>
+ <para>
+ If <constant>EGL_LARGEST_PBUFFER</constant> is specified and
+ if the pbuffer will be used as a texture (i.e. the value of
+ <constant>EGL_TEXTURE_TARGET</constant> is
+ <constant>EGL_TEXTURE_2D</constant>, and the value of
+ <constant>EGL_TEXTURE FORMAT</constant> is
+ <constant>EGL_TEXTURE_RGB</constant> or
+ <constant>EGL_TEXTURE_RGBA</constant>), then the aspect
+ ratio will be preserved and the new width and height will be
+ valid sizes for the texture target (e.g. if the underlying
+ OpenGL ES implementation does not support non-power-of-two
+ textures, both the width and height will be a power of 2).
+ </para>
+ <para>
+ The contents of the depth and stencil buffers may not be
+ preserved when rendering a texture to the pbuffer and
+ switching which image of the texture is rendered to (e.g.,
+ switching from rendering one mipmap level to rendering
+ another).
+ </para>
+ <para>
+ Binding client API buffers to EGL pbuffers create the
+ possibility of race conditions, and of buffers being deleted
+ through one API while still in use in another API. To avoid
+ these problems, a number of constraints apply to bound
+ client API buffers:
+ <orderedlist>
+ <listitem>
+ <para>
+ Bound buffers may be used exclusively by either EGL,
+ or the client API that originally created them. For
+ example, if a <type>VGImage</type> is bound to a
+ pbuffer, and that pbuffer is bound to any client API
+ rendering context, then the <type>VGImage</type> may
+ not be used as the explicit source or destination of
+ any OpenVG operation. Errors resulting from such use
+ are described in client API specifications.
+ Similarly, while a <type>VGImage</type> is in use by
+ OpenVG, the pbuffer it is bound to may not be made
+ current to any client API context using
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Binding a buffer creates an additional reference to
+ it, and implementations must respect outstanding
+ references when destroying objects. For example, if
+ a <type>VGImage</type> is bound to a pbuffer,
+ destroying the image with
+ <function>vgDestroyImage</function> will not free
+ the underlying buffer, because it is still in use by
+ EGL. However, following
+ <function>vgDestroyImage</function> the buffer may
+ only be referred to via the EGL pbuffer handle,
+ since the OpenVG handle to that buffer no longer
+ exists. Similarly, destroying the pbuffer with
+ <function>eglDestroySurface</function> will not free
+ the underlying buffer, because it is still in use by
+ OpenVG . However, following
+ <function>eglDestroySurface</function> the buffer
+ may only be referred to via the OpenVG
+ <type>VGImage</type> handle, since the EGL pbuffer
+ handle no longer exists.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_NO_SURFACE</constant> is returned if creation of
+ the context fails.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONFIG</constant> is generated if
+ <parameter>config</parameter> is not an EGL frame buffer configuration.
+ </para>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>buftype</parameter> is not
+ <constant>EGL_OPENVG_IMAGE</constant>, or if
+ <parameter>buffer</parameter> is not a valid handle to a
+ <type>VGImage</type> object in the currently bound OpenVG
+ context.
+ </para>
+ <para>
+ <constant>EGL_BAD_ACCESS</constant> is generated if there is
+ no current OpenVG context, or if
+ <parameter>buffer</parameter> is already bound to another
+ pixel buffer or in use by OpenVG as discussed in the Notes
+ section above.
+ </para>
+ <para>
+ <constant>EGL_BAD_ACCESS</constant> is generated if the buffers
+ contained in <parameter>buffer</parameter> consist of any
+ <type>EGLImage</type> siblings.
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> is generated if there are not
+ enough resources to allocate the new surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains an invalid pixel
+ buffer attribute or if an attribute value is not recognized
+ or out of range.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains any of the
+ attributes <constant>EGL_MIPMAP_TEXTURE</constant>,
+ <constant>EGL_TEXTURE_FORMAT</constant>, or
+ <constant>EGL_TEXTURE_TARGET</constant>, and
+ <parameter>config</parameter> does not support OpenGL ES
+ rendering (e.g. the EGL version is 1.2 or later, and the
+ <constant>EGL_RENDERABLE_TYPE</constant> attribute of
+ <parameter>config</parameter> does not include at least one
+ of <constant>EGL_OPENGL_ES_BIT</constant> or
+ <constant>EGL_OPENGL_ES2_BIT</constant>).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>config</parameter> does not support rendering to
+ pixel buffers (the <constant>EGL_SURFACE_TYPE</constant>
+ attribute does not contain
+ <constant>EGL_PBUFFER_BIT</constant>).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ buffers contained in <parameter>buffer</parameter> do not
+ match the bit depths for those buffers specified by
+ <parameter>config</parameter>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ <constant>EGL_TEXTURE_FORMAT</constant> attribute is not
+ <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_WIDTH</constant> and/or
+ <constant>EGL_HEIGHT</constant> specify an invalid size
+ (e.g., the texture size is not a power of 2, and the
+ underlying OpenGL ES implementation does not support
+ non-power-of-two textures).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ the <constant>EGL_TEXTURE_FORMAT</constant> attribute is
+ <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_TEXTURE_TARGET</constant> is something other
+ than <constant>EGL_NO_TEXTURE</constant>; or,
+ <constant>EGL_TEXTURE_FORMAT</constant> is something other
+ than <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_TEXTURE_TARGET</constant> is
+ <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ implementation has additional constraints on which types of
+ client API buffers may be bound to pixel buffer surfaces.
+ For example, it is possible that the OpenVG implementation
+ might not support a <type>VGImage</type> being bound to a
+ pixel buffer which will be used as a mipmapped OpenGL ES
+ texture (e.g. whose <constant>EGL_MIPMAP_TEXTURE</constant>
+ attribute is <constant>TRUE</constant>). Any such
+ constraints should be documented by the implementation
+ release notes.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePbufferSurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePbufferSurface.xml
new file mode 100644
index 0000000..5bb7c8e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePbufferSurface.xml
@@ -0,0 +1,359 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreatePbufferSurface">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglCreatePbufferSurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreatePbufferSurface</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> pixel buffer surface
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglCreatePbufferSurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem><para>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies pixel buffer surface attributes.
+ May be <constant>NULL</constant> or empty
+ (first attribute is <constant>EGL_NONE</constant>).
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglCreatePbufferSurface</function> creates an
+ off-screen pixel buffer surface and returns its handle. If
+ <function>eglCreatePbufferSurface</function> fails to create
+ a pixel buffer surface, <constant>EGL_NO_SURFACE</constant>
+ is returned.
+ </para>
+ <para>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <constant>EGL_NONE</constant>. Accepted attributes
+ are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_GL_COLORSPACE</constant></term>
+ <listitem>
+ <para>
+ Specifies the color space used by OpenGL and OpenGL ES
+ when rendering to the surface. If its value is
+ <constant>EGL_GL_COLORSPACE_SRGB</constant>, then a
+ non-linear, perceptually uniform color space is assumed,
+ with a corresponding
+ <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+ value of <constant>GL_SRGB</constant>. If its value is
+ <constant>EGL_GL_COLORSPACE_LINEAR</constant>, then a
+ linear color space is assumed, with a corresponding
+ <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+ value of <constant>GL_LINEAR</constant>. The default
+ value of <constant>EGL_GL_COLORSPACE</constant> is
+ <constant>EGL_GL_COLORSPACE_LINEAR</constant>.
+ </para>
+ <para>
+ Note that the <constant>EGL_GL_COLORSPACE</constant>
+ attribute is used only by OpenGL and OpenGL ES contexts
+ supporting sRGB framebuffers. EGL itself does not
+ distinguish multiple colorspace models. Refer to the
+ ``sRGB Conversion'' sections of the OpenGL 4.6 and
+ OpenGL ES 3.2 Specifications for more information.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_HEIGHT</constant></term>
+ <listitem>
+ <para>
+ Specifies the required height of the pixel buffer
+ surface. The default value is
+ <constant>0</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LARGEST_PBUFFER</constant></term>
+ <listitem>
+ <para>
+ Requests the largest available pixel buffer surface
+ when the allocation would otherwise fail. Use
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ to retrieve the dimensions of the allocated pixel
+ buffer. The default value is
+ <constant>EGL_FALSE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MIPMAP_TEXTURE</constant></term>
+ <listitem>
+ <para>
+ Specifies whether storage for mipmaps should be
+ allocated. Space for mipmaps will be set aside if
+ the attribute value is <constant>EGL_TRUE</constant>
+ and <constant>EGL_TEXTURE_FORMAT</constant> is not
+ <constant>EGL_NO_TEXTURE</constant>. The default
+ value is <constant>EGL_FALSE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_FORMAT</constant></term>
+ <listitem>
+ <para>
+ Specifies the format of the texture that will be
+ created when a pbuffer is bound to a texture map.
+ Possible values are
+ <constant>EGL_NO_TEXTURE</constant>,
+ <constant>EGL_TEXTURE_RGB</constant>, and
+ <constant>EGL_TEXTURE_RGBA</constant>. The default
+ value is <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_TARGET</constant></term>
+ <listitem>
+ <para>
+ Specifies the target for the texture that will be
+ created when the pbuffer is created with a texture
+ format of <constant>EGL_TEXTURE_RGB</constant> or
+ <constant>EGL_TEXTURE_RGBA</constant>. Possible
+ values are <constant>EGL_NO_TEXTURE</constant>, or
+ <constant>EGL_TEXTURE_2D</constant>. The default
+ value is <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
+ <listitem>
+ <para>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>,
+ then alpha values are not premultipled. If its value
+ is <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>,
+ then alpha values are premultiplied. The default
+ value of <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_COLORSPACE</constant></term>
+ <listitem>
+ <para>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <type>VGImageFormat</type> of form
+ <constant>VG_s*</constant>. If its value is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant>, then
+ a linear color space is assumed, with a
+ corresponding <type>VGImageFormat</type> of form
+ <constant>VG_l*</constant>. The default value of
+ <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_WIDTH</constant></term>
+ <listitem>
+ <para>
+ Specifies the required width of the pixel buffer
+ surface. The default value is
+ <constant>0</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ Any EGL rendering context that was created with respect to
+ <parameter>config</parameter> can be used to render into the
+ surface. Use
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ to attach an EGL rendering context to the surface.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ to retrieve the dimensions of the allocated pixel buffer
+ surface or the ID of <parameter>config</parameter>.
+ </para>
+ <para>
+ Use <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+ to destroy the surface.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ Attribute <constant>EGL_GL_COLORSPACE</constant>, and the
+ <constant>EGL_OPENGL_ES3_BIT</constant> bit value for attribute
+ <constant>EGL_RENDERABLE_TYPE</constant>, are supported only if
+ the EGL version is 1.5 or greater.
+ </para>
+ <para>
+ Attributes
+ <constant>EGL_RENDERABLE_TYPE</constant>,
+ <constant>EGL_VG_ALPHA_FORMAT</constant>, and
+ <constant>EGL_VG_COLORSPACE</constant>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <para>
+ If the value of <parameter>config</parameter> attribute
+ <constant>EGL_TEXTURE_FORMAT</constant> is not
+ <constant>EGL_NO_TEXTURE</constant>, then the pbuffer width
+ and height specify the size of the level zero texture image
+ </para>
+ <para>
+ If <constant>EGL_LARGEST_PBUFFER</constant> is specified and
+ if the pbuffer will be used as a texture (i.e. the value of
+ <constant>EGL_TEXTURE_TARGET</constant> is
+ <constant>EGL_TEXTURE_2D</constant>, and the value of
+ <constant>EGL_TEXTURE FORMAT</constant> is
+ <constant>EGL_TEXTURE_RGB</constant> or
+ <constant>EGL_TEXTURE_RGBA</constant>), then the aspect
+ ratio will be preserved and the new width and height will be
+ valid sizes for the texture target (e.g. if the underlying
+ OpenGL ES implementation does not support non-power-of-two
+ textures, both the width and height will be a power of 2).
+ </para>
+ <para>
+ The contents of the depth and stencil buffers may not be
+ preserved when rendering a texture to the pbuffer and
+ switching which image of the texture is rendered to (e.g.,
+ switching from rendering one mipmap level to rendering
+ another).
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_NO_SURFACE</constant> is returned if creation of
+ the context fails.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONFIG</constant> is generated if
+ <parameter>config</parameter> is not an EGL frame buffer configuration.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains an invalid pixel
+ buffer attribute or if an attribute value is not recognized
+ or out of range.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains any of the
+ attributes <constant>EGL_MIPMAP_TEXTURE</constant>,
+ <constant>EGL_TEXTURE_FORMAT</constant>, or
+ <constant>EGL_TEXTURE_TARGET</constant>, and
+ <parameter>config</parameter> does not support OpenGL ES
+ rendering (e.g. the EGL version is 1.2 or later, and the
+ <constant>EGL_RENDERABLE_TYPE</constant> attribute of
+ <parameter>config</parameter> does not include at least one
+ of <constant>EGL_OPENGL_ES_BIT</constant>,
+ <constant>EGL_OPENGL_ES2_BIT</constant>, or
+ <constant>EGL_OPENGL_ES3_BIT</constant>),
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> is generated if there are not
+ enough resources to allocate the new surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>config</parameter> does not support rendering to pixel buffers
+ (the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
+ <constant>EGL_PBUFFER_BIT</constant>).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ <constant>EGL_TEXTURE_FORMAT</constant> attribute is not
+ <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_WIDTH</constant> and/or
+ <constant>EGL_HEIGHT</constant> specify an invalid size
+ (e.g., the texture size is not a power of 2, and the
+ underlying OpenGL ES implementation does not support
+ non-power-of-two textures).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ the <constant>EGL_TEXTURE_FORMAT</constant> attribute is
+ <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_TEXTURE_TARGET</constant> is something other
+ than <constant>EGL_NO_TEXTURE</constant>; or,
+ <constant>EGL_TEXTURE_FORMAT</constant> is something other
+ than <constant>EGL_NO_TEXTURE</constant>, and
+ <constant>EGL_TEXTURE_TARGET</constant> is
+ <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>config</parameter> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_PRE</constant> and the
+ <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>) or colorspace attribute (the
+ value of <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant> and the
+ <constant>EGL_VG_COLORSPACE_LINEAR_IT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>).
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePixmapSurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePixmapSurface.xml
new file mode 100644
index 0000000..72469f4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePixmapSurface.xml
@@ -0,0 +1,87 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreatePixmapSurface">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglCreatePixmapSurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreatePixmapSurface</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> offscreen surface
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglCreatePixmapSurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>NativePixmapType <parameter>native_pixmap</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem><para>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>native_pixmap</parameter></term>
+ <listitem><para>Specifies the native pixmap.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies pixmap surface attributes.
+ May be <constant>NULL</constant> or empty
+ (first attribute is <constant>EGL_NONE</constant>).
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglCreatePixmapSurface</function> creates an off-screen
+ EGL pixmap surface and returns a handle to it. The behavior of
+ <function>eglCreatePixmapSurface</function> is identical to that
+ of
+ <citerefentry><refentrytitle>eglCreatePlatformPixmapSurface</refentrytitle></citerefentry>
+ except that the set of platforms to which
+ <parameter>display</parameter> is permitted to belong, as well
+ as the actual type of <parameter>native_pixmap</parameter>, are
+ implementation specific.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ See errors for
+ <citerefentry><refentrytitle>eglCreatePlatformPixmapSurface</refentrytitle></citerefentry>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreatePlatformPixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePlatformPixmapSurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePlatformPixmapSurface.xml
new file mode 100644
index 0000000..66de1c7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePlatformPixmapSurface.xml
@@ -0,0 +1,270 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreatePlatformPixmapSurface">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglCreatePlatformPixmapSurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreatePlatformPixmapSurface</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> offscreen surface
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglCreatePlatformPixmapSurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>void * <parameter>native_pixmap</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem><para>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>native_pixmap</parameter></term>
+ <listitem><para>Specifies the native pixmap.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies pixmap surface attributes.
+ May be <constant>NULL</constant> or empty
+ (first attribute is <constant>EGL_NONE</constant>).
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglCreatePlatformPixmapSurface</function> creates an
+ off-screen <acronym>EGL</acronym> pixmap surface and returns
+ a handle to it.
+ </para>
+ <para>
+ If <function>eglCreatePlatformPixmapSurface</function> fails to
+ create a pixmap surface, <constant>EGL_NO_SURFACE</constant> is
+ returned.
+ </para>
+ <para>
+ <parameter>native_pixmap</parameter> must belong to the same
+ platform as <parameter>display</parameter>, and EGL considers
+ the returned <type>EGLSurface</type> as belonging to that same
+ platform. The EGL extension that defines the platform to which
+ <parameter>display</parameter> belongs also defines the
+ requirements for the <parameter>native_pixmap</parameter>
+ parameter.
+ </para>
+ <para>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <constant>EGL_NONE</constant>. Accepted attributes
+ are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_GL_COLORSPACE</constant></term>
+ <listitem>
+ <para>
+ Specifies the color space used by OpenGL and OpenGL ES
+ when rendering to the surface. If its value is
+ <constant>EGL_GL_COLORSPACE_SRGB</constant>, then a
+ non-linear, perceptually uniform color space is assumed,
+ with a corresponding
+ <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+ value of <constant>GL_SRGB</constant>. If its value is
+ <constant>EGL_GL_COLORSPACE_LINEAR</constant>, then a
+ linear color space is assumed, with a corresponding
+ <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+ value of <constant>GL_LINEAR</constant>. The default
+ value of <constant>EGL_GL_COLORSPACE</constant> is
+ <constant>EGL_GL_COLORSPACE_SRGB</constant>.
+ </para>
+ <para>
+ Note that the <constant>EGL_GL_COLORSPACE</constant>
+ attribute is used only by OpenGL and OpenGL ES contexts
+ supporting sRGB framebuffers. EGL itself does not
+ distinguish multiple colorspace models. Refer to the
+ ``sRGB Conversion'' sections of the OpenGL 4.6 and
+ OpenGL ES 3.2 Specifications for more information.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
+ <listitem>
+ <para>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>,
+ then alpha values are not premultipled. If its value
+ is <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>,
+ then alpha values are premultiplied. The default
+ value of <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_COLORSPACE</constant></term>
+ <listitem>
+ <para>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <type>VGImageFormat</type> of form
+ <constant>VG_s*</constant>. If its value is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant>, then
+ a linear color space is assumed, with a
+ corresponding <type>VGImageFormat</type> of form
+ <constant>VG_l*</constant>. The default value of
+ <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ Any EGL rendering context that was created with respect to
+ <parameter>config</parameter> can be used to render into the
+ surface. Use
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ to attach an EGL rendering context to the surface.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ to retrieve the ID of <parameter>config</parameter>.
+ </para>
+ <para>
+ Use <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+ to destroy the surface.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ The <constant>EGL_MATCH_NATIVE_PIXMAP</constant> attribute
+ of
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>
+ can be used to select a frame buffer configuration matching
+ a specified native pixmap.
+ </para>
+ <para>
+ Attribute <constant>EGL_GL_COLORSPACE</constant> is supported
+ only if the EGL version is 1.5 or greater.
+ </para>
+ <para>
+ Attributes
+ <constant>EGL_VG_ALPHA_FORMAT</constant> and
+ <constant>EGL_VG_COLORSPACE</constant>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <!-- Might want to mention aliasing of EGL_VG_* -> EGL_* that occurred in EGL 1.3 -->
+ <para>
+ The <constant>EGL_VG_ALPHA_FORMAT</constant> and
+ <constant>EGL_VG_COLORSPACE</constant> attributes are used only
+ by OpenVG and EGL itself. Refer to section 11.2 of the OpenVG
+ 1.0 specification for more information. The platform's use and
+ interpretation of alpha values is outside the scope of EGL.
+ However, the preferred behavior is for the window system to
+ ignore the value of <constant>EGL_VG_ALPHA_FORMAT</constant>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ If <parameter>display</parameter> and
+ <parameter>native_pixmap</parameter> do not belong to the same
+ platform, then undefined behavior occurs.
+ </para>
+ <para>
+ <constant>EGL_NO_SURFACE</constant> is returned if creation of
+ the surface fails.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONFIG</constant> is generated if
+ <parameter>config</parameter> is not an EGL config.
+ </para>
+ <para>
+ <constant>EGL_BAD_NATIVE_PIXMAP</constant> may be generated if
+ <parameter>native_pixmap</parameter> is not a valid native pixmap.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains an invalid pixmap attribute
+ or if an attribute value is not recognized or out of range.
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> is generated if there is
+ already an <type>EGLSurface</type> associated with
+ <parameter>native_pixmap</parameter> (as a result of a previous
+ <function>eglCreatePlatformPixmapSurface</function> call).
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> is generated if the
+ implementation cannot allocate resources for the new EGL window.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the attributes of
+ <parameter>native_pixmap</parameter> do not correspond to
+ <parameter>config</parameter> or if
+ <parameter>config</parameter> does not support rendering to pixmaps
+ (the <constant>EGL_SURFACE_TYPE</constant> attribute does not contain
+ <constant>EGL_PIXMAP_BIT</constant>).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>config</parameter> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_PRE</constant> and the
+ <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>) or colorspace attribute (the
+ value of <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant> and the
+ <constant>EGL_VG_COLORSPACE_LINEAR_IT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>).
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePlatformWindowSurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePlatformWindowSurface.xml
new file mode 100644
index 0000000..ee88467
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreatePlatformWindowSurface.xml
@@ -0,0 +1,296 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreatePlatformWindowSurface">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglCreatePlatformWindowSurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreatePlatformWindowSurface</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> on-screen rendering surface
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglCreatePlatformWindowSurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>void * <parameter>native_window</parameter></paramdef>
+ <paramdef>EGLAttrib const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem>
+ <para>Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>native_window</parameter></term>
+ <listitem><para>Specifies the native window.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies a list of attributes for the window surface.
+ May be <constant>NULL</constant> or empty
+ (first attribute is <constant>EGL_NONE</constant>).
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglCreatePlatformWindowSurface</function> creates an
+ on-screen EGL window surface and returns a handle to it. Any EGL
+ context created with a compatible <type>EGLConfig</type> can be
+ used to render into this surface.
+ </para>
+ <para>
+ If <function>eglCreatePlatformWindowSurface</function> fails to
+ create a window surface, <constant>EGL_NO_SURFACE</constant> is
+ returned.
+ </para>
+ <para>
+ <parameter>native_window</parameter> must belong to the same
+ platform as <parameter>display</parameter>, and EGL considers
+ the returned <type>EGLSurface</type> as belonging to that same
+ platform. The EGL extension that defines the platform to which
+ <parameter>display</parameter> belongs also defines the
+ requirements for the <parameter>native_window</parameter>
+ parameter.
+ </para>
+ <para>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <constant>EGL_NONE</constant>. Accepted attributes
+ are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_GL_COLORSPACE</constant></term>
+ <listitem>
+ <para>
+ Specifies the color space used by OpenGL and OpenGL ES
+ when rendering to the surface. If its value is
+ <constant>EGL_GL_COLORSPACE_SRGB</constant>, then a
+ non-linear, perceptually uniform color space is assumed,
+ with a corresponding
+ <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+ value of <constant>GL_SRGB</constant>. If its value is
+ <constant>EGL_GL_COLORSPACE_LINEAR</constant>, then a
+ linear color space is assumed, with a corresponding
+ <constant>GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</constant>
+ value of <constant>GL_LINEAR</constant>. The default
+ value of <constant>EGL_GL_COLORSPACE</constant> is
+ <constant>EGL_GL_COLORSPACE_LINEAR</constant>.
+ </para>
+ <para>
+ Note that the <constant>EGL_GL_COLORSPACE</constant>
+ attribute is used only by OpenGL and OpenGL ES contexts
+ supporting sRGB framebuffers. EGL itself does not
+ distinguish multiple colorspace models. Refer to the
+ ``sRGB Conversion'' sections of the OpenGL 4.6 and
+ OpenGL ES 3.2 Specifications for more information.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RENDER_BUFFER</constant></term>
+ <listitem>
+ <para>
+ Specifies which buffer should be used for client API
+ rendering to the window. If its value is
+ <constant>EGL_SINGLE_BUFFER</constant>, then client
+ APIs should render directly into the visible window.
+ If its value is
+ <constant>EGL_BACK_BUFFER</constant>, then client
+ APIs should render into the back buffer. The default
+ value of <constant>EGL_RENDER_BUFFER</constant> is
+ <constant>EGL_BACK_BUFFER</constant>.
+ </para>
+ <para>
+ Client APIs may not be able to respect the requested
+ rendering buffer. To determine the actual buffer
+ being rendered to by a context, call
+ <citerefentry><refentrytitle>eglQueryContext</refentrytitle></citerefentry>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
+ <listitem>
+ <para>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>,
+ then alpha values are not premultipled. If its value
+ is <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>,
+ then alpha values are premultiplied. The default
+ value of <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_COLORSPACE</constant></term>
+ <listitem>
+ <para>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <type>VGImageFormat</type> of form
+ <constant>VG_s*</constant>. If its value is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant>, then
+ a linear color space is assumed, with a
+ corresponding <type>VGImageFormat</type> of form
+ <constant>VG_l*</constant>. The default value of
+ <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_sRGB</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ Any EGL rendering context that was created with respect to
+ <parameter>config</parameter> can be used to render into the
+ surface. Use
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ to attach an EGL rendering context to the surface.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ to retrieve the ID of <parameter>config</parameter>.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+ to destroy the surface.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ Attribute <constant>EGL_GL_COLORSPACE</constant> is supported
+ only if the EGL version is 1.5 or greater.
+ </para>
+ <para>
+ Attributes <constant>EGL_RENDER_BUFFER</constant>,
+ <constant>EGL_VG_ALPHA_FORMAT</constant>, and
+ <constant>EGL_VG_COLORSPACE</constant>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <!-- Might want to mention aliasing of EGL_VG_* -> EGL_* that occurred in EGL 1.3 -->
+ <para>
+ The <constant>EGL_VG_ALPHA_FORMAT</constant> and
+ <constant>EGL_VG_COLORSPACE</constant> attributes are used only
+ by OpenVG and EGL itself. Refer to section 11.2 of the OpenVG
+ 1.0 specification for more information. The platform's use and
+ interpretation of alpha values is outside the scope of EGL.
+ However, the preferred behavior is for platforms to ignore the
+ value of <constant>EGL_VG_ALPHA_FORMAT</constant> when
+ compositing window surfaces.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ If <parameter>display</parameter> and
+ <parameter>native_window</parameter> do not belong to the same
+ platform, then undefined behavior occurs.
+ </para>
+ <para>
+ <constant>EGL_NO_SURFACE</constant> is returned if creation of
+ the surface fails.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONFIG</constant> is generated if
+ <parameter>config</parameter> is not a valid EGL frame buffer
+ configuration.
+ </para>
+ <para>
+ <constant>EGL_BAD_NATIVE_WINDOW</constant> may be generated if
+ <parameter>native_window</parameter> is not a valid native
+ window for the same platform as <parameter>display</parameter>.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attrib_list</parameter> contains an invalid window attribute
+ or if an attribute value is not recognized or is out of range.
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> is generated if there is
+ already an <type>EGLSurface</type> associated with
+ <parameter>native_window</parameter> (as a result of a previous
+ <function>eglCreatePlatformWindowSurface</function> call).
+ </para>
+ <para>
+ <constant>EGL_BAD_ALLOC</constant> is generated if the
+ implementation cannot allocate resources for the new EGL window.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the pixel
+ format of <parameter>native_window</parameter> does not
+ correspond to the format, type, and size of the color buffers
+ required by <parameter>config</parameter>.
+ <constant>EGL_BAD_MATCH</constant> is generated if the pixel
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>config</parameter> does not support rendering to
+ windows (the <constant>EGL_SURFACE_TYPE</constant> attribute
+ does not contain <constant>EGL_WINDOW_BIT</constant>).
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>config</parameter> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <constant>EGL_VG_ALPHA_FORMAT</constant> is
+ <constant>EGL_VG_ALPHA_FORMAT_PRE</constant> and the
+ <constant>EGL_VG_ALPHA_FORMAT_PRE_BIT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>) or colorspace attribute (the
+ value of <constant>EGL_VG_COLORSPACE</constant> is
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant> and the
+ <constant>EGL_VG_COLORSPACE_LINEAR_IT</constant> is not set
+ in the <constant>EGL_SURFACE_TYPE</constant> attribute of
+ <parameter>config</parameter>).
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateSync.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateSync.xml
new file mode 100644
index 0000000..551d2a4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateSync.xml
@@ -0,0 +1,311 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreateSync">
+ <info>
+ <copyright>
+ <year>2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglCreateSync</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreateSync</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> sync object
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSync <function>eglCreateSync</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLEnum <parameter>type</parameter></paramdef>
+ <paramdef>EGLAttrib const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>
+ Specifies the <acronym>EGL</acronym> display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>type</parameter></term>
+ <listitem><para>
+ Specifies the type of sync object to create.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies attributes and attribute values for the sync
+ object being created.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <firstterm>sync objects</firstterm> are provided to enable
+ synchronization of client API operations between threads and/or
+ between API contexts. Sync objects may be tested or waited upon
+ by application threads.
+ </para>
+ <para>
+ Sync objects have a status with two possible states:
+ <firstterm>signaled</firstterm> and
+ <firstterm>unsignaled</firstterm>. Initially, sync objects are
+ unsignaled. EGL may be asked to wait for a sync object to become
+ signaled, or a sync object's status may be queried.
+ </para>
+ <para>
+ Depending on the type of a sync object, its status may be
+ changed either by an external event, or by explicitly signaling
+ and unsignaling the sync.
+ </para>
+ <para>
+ <function>eglCreateSync</function> creates a sync object of the specified
+ <parameter>type</parameter> associated with the specified display
+ <parameter>display</parameter>, and returns a handle to the new object.
+ <parameter>attrib_list</parameter> is an attribute-value list specifying
+ other attributes of the sync object, terminated by an attribute entry
+ <constant>EGL_NONE</constant>. Attributes not specified in the list will be
+ assigned their default values.
+ </para>
+ <para>
+ Once the <firstterm>condition</firstterm> of the sync object is satisfied,
+ the sync is signaled, causing any <function>eglClientWaitSync</function> or
+ <function>eglWaitSync</function> commands blocking on
+ <parameter>sync</parameter> to unblock.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="fencesync"><title>Creating Fence Sync Objects</title>
+ <para>
+ If <parameter>type</parameter> is
+ <constant>EGL_SYNC_FENCE</constant>, a fence sync object is
+ created. In this case <parameter>attrib_list</parameter> must be
+ <constant>NULL</constant> or empty (containing only
+ <constant>EGL_NONE</constant>). Attributes of the fence sync
+ object, and their initial values, are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_SYNC_TYPE</constant></term>
+ <listitem>
+ <para>
+ <constant>EGL_SYNC_FENCE</constant>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SYNC_STATUS</constant></term>
+ <listitem>
+ <para>
+ <constant>EGL_UNSIGNALED</constant>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SYNC_CONDITION</constant></term>
+ <listitem>
+ <para>
+ <constant>EGL_SYNC_PRIOR_COMMANDS_COMPLETE</constant>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ When a fence sync object is created, <function>eglCreateSync</function> also inserts a
+ fence command into the command stream of the bound client API's current
+ context (i.e., the context returned by <function>eglGetCurrentContext</function>), and
+ associates it with the newly created sync object.
+ </para>
+ <para>
+ The only condition supported for fence sync objects is
+ <constant>EGL_SYNC_PRIOR_COMMANDS_COMPLETE</constant>, which 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.
+ </para>
+ <para>
+ Creation of fence sync objects requires support from the bound
+ client API, and will not succeed unless the client API satisfies
+ one of the following properties. Note that
+ <function>eglWaitSync</function> also requires satisfying these
+ conditions.
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ client API is OpenGL, and either the OpenGL version is
+ 3.2 or greater, or the <constant>GL_ARB_sync</constant>
+ extension is supported.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ client API is OpenGL ES, and either the OpenGL ES
+ version is 3.0 or greater, or the
+ <constant>GL_OES_EGL_sync</constant> extension is
+ supported.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ client API is OpenVG, and the
+ <constant>VG_KHR_EGL_sync</constant> extension is
+ supported.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsect1>
+ <refsect1 xml:id="openclsync"><title>Creating OpenCL Event Sync Objects</title>
+ <para>
+ If <parameter>type</parameter> is
+ <constant>EGL_SYNC_CL_EVENT</constant>, an OpenCL event sync
+ object is created. In this case
+ <parameter>attrib_list</parameter> must contain the attribute
+ <constant>EGL_CL_EVENT_HANDLE</constant>, set to a valid OpenCL
+ event handle returned by a call to
+ <function>clEnqueueReleaseGLObjects</function> or
+ <function>clEnqueueReleaseEGLObjects</function>; other types of
+ OpenCL event handles are not supported. Note that
+ <constant>EGL_CL_EVENT_HANDLE</constant> is not a queriable
+ property of a sync object. Attributes of the OpenCL event sync
+ object, and their initial values, are:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_SYNC_TYPE</constant></term>
+ <listitem>
+ <para>
+ <constant>EGL_SYNC_CL_EVENT</constant>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SYNC_STATUS</constant></term>
+ <listitem>
+ <para>
+ Depends on status of <parameter>event</parameter>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SYNC_CONDITION</constant></term>
+ <listitem>
+ <para>
+ <constant>EGL_SYNC_CL_EVENT_COMPLETE</constant>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ The status of such a sync object depends on
+ <parameter>event</parameter>. When the status of
+ <parameter>event</parameter> is <constant>CL_QUEUED</constant>,
+ <constant>CL_SUBMITTED</constant>, or
+ <constant>CL_RUNNING</constant>, the status of the linked sync
+ object will be <constant>EGL_UNSIGNALED</constant>. When the
+ status of <parameter>event</parameter> changes to
+ <constant>CL_COMPLETE</constant>, the status of the linked sync
+ object will become <constant>EGL_SIGNALED</constant>.
+ </para>
+ <para>
+ The only condition supported for OpenCL event sync objects is
+ <constant>EGL_SYNC_CL_EVENT_COMPLETE</constant>, which is
+ satisfied when the status of the OpenCL event associated with
+ the sync object changes to <constant>CL_COMPLETE</constant>.
+ </para>
+ <para>
+ Creating a linked sync object places a reference on the linked
+ OpenCL event object. When the sync object is deleted, the
+ reference will be removed from the event object.
+ </para>
+ <para>
+ However, implementations are not required to validate the OpenCL
+ event, and passing an invalid event handle in
+ <parameter>attrib_list</parameter> may result in undefined
+ behavior up to and including program termination.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglCreateSync</function> is supported only if the EGL
+ version is 1.5 or greater.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <function>eglCreateSync</function> returns
+ <constant>EGL_NO_SYNC</constant> on failure.
+ </para>
+ <para>
+ If <parameter>display</parameter> is not the name of a valid,
+ initialized <type>EGLDisplay</type>, an
+ <constant>EGL_BAD_DISPLAY</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>attrib_list</parameter> contains an attribute name
+ not defined for the type of sync object being created, an
+ <constant>EGL_BAD_ATTRIBUTE</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>type</parameter> is not a supported type of sync
+ object, an <constant>EGL_BAD_PARAMETER</constant> error is
+ generated.
+ </para>
+ <para>
+ If <parameter>type</parameter> is
+ <constant>EGL_SYNC_FENCE</constant> and no context is current
+ for the bound API (i.e.,
+ <function>eglGetCurrentContext</function> returns
+ <constant>EGL_NO_CONTEXT</constant>), an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>type</parameter> is
+ <constant>EGL_SYNC_FENCE</constant> and
+ <parameter>display</parameter> does not match the
+ <type>EGLDisplay</type> of the currently bound context for the
+ currently bound client API (the <type>EGLDisplay</type> returned
+ by <function>eglGetCurrentDisplay</function>), an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>type</parameter> is
+ <constant>EGL_SYNC_FENCE</constant> and the current context for
+ the currently bound client API does not support fence commands,
+ an <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>type</parameter> is
+ <constant>EGL_SYNC_CL_EVENT</constant> and
+ <constant>EGL_CL_EVENT_HANDLE</constant> is not specified in
+ <parameter>attrib_list</parameter>, or its attribute value is
+ not a valid OpenCL event handle as described above, then an
+ <constant>EGL_BAD_ATTRIBUTE</constant> error is generated.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <function>clEnqueueReleaseGLObjects</function>,
+ <function>clEnqueueReleaseEGLObjects</function>,
+ <citerefentry><refentrytitle>eglClientWaitSync</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitSync</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateWindowSurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateWindowSurface.xml
new file mode 100644
index 0000000..b098a4b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglCreateWindowSurface.xml
@@ -0,0 +1,87 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglCreateWindowSurface">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglCreateWindowSurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglCreateWindowSurface</refname>
+ <refpurpose>
+ create a new <acronym>EGL</acronym> window surface
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglCreateWindowSurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>NativeWindowType <parameter>native_window</parameter></paramdef>
+ <paramdef>EGLint const * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem>
+ <para>Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>native_window</parameter></term>
+ <listitem><para>Specifies the native window.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem><para>
+ Specifies window surface attributes.
+ May be <constant>NULL</constant> or empty
+ (first attribute is <constant>EGL_NONE</constant>).
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglCreateWindowSurface</function> creates an on-screen
+ EGL window surface and returns a handle to it. The behavior of
+ <function>eglCreateWindowSurface</function> is identical to that
+ of
+ <citerefentry><refentrytitle>eglCreatePlatformWindowSurface</refentrytitle></citerefentry>
+ except that the set of platforms to which
+ <parameter>display</parameter> is permitted to belong, as well
+ as the actual type of <parameter>native_window</parameter>, are
+ implementation specific.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ See errors for
+ <citerefentry><refentrytitle>eglCreatePlatformWindowSurface</refentrytitle></citerefentry>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreatePlatformWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroyContext.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroyContext.xml
new file mode 100644
index 0000000..01467ee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroyContext.xml
@@ -0,0 +1,75 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglDestroyContext">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglDestroyContext</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglDestroyContext</refname>
+ <refpurpose>
+ destroy an <acronym>EGL</acronym> rendering context
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglDestroyContext</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLContext <parameter>context</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>context</parameter></term>
+ <listitem><para>Specifies the EGL rendering context to be destroyed.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ If the EGL rendering context <parameter>context</parameter> is not
+ current to any thread,
+ <function>eglDestroyContext</function> destroys it immediately.
+ Otherwise, <parameter>context</parameter> is destroyed when it becomes
+ not current to any thread.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if destruction of
+ the context fails, <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONTEXT</constant> is generated if
+ <parameter>context</parameter> is not an EGL rendering context.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroyImage.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroyImage.xml
new file mode 100644
index 0000000..96bb8bd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroyImage.xml
@@ -0,0 +1,85 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglDestroyImage">
+ <info>
+ <copyright>
+ <year>2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglDestroyImage</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglDestroyImage</refname>
+ <refpurpose>
+ Destroy an <type>EGLImage</type> object
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglDestroyImage</function></funcdef>
+ <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLImage <parameter>image</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>
+ Specifies the <acronym>EGL</acronym> display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>image</parameter></term>
+ <listitem><para>
+ Specifies the image to destroy.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglDestroyImage</function> is used to destroy the
+ specified <type>EGLImage</type> object
+ <parameter>image</parameter>. Once destroyed,
+ <parameter>image</parameter> may not be used to create any
+ additional <type>EGLImage</type> target resources within any
+ client API contexts, although existing <type>EGLImage</type>
+ siblings may continue to be used. <constant>EGL_TRUE</constant>
+ is returned on success.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ On failure, <function>eglDestroyImage</function> returns
+ <constant>EGL_FALSE</constant>
+ </para>
+ <para>
+ If <parameter>display</parameter> is not the handle of a valid
+ <type>EGLDisplay</type> object, the error
+ <constant>EGL_BAD_DISPLAY</constant> is generated.
+ </para>
+ <para>
+ If <parameter>image</parameter> is not a valid
+ <type>EGLImage</type> object created with respect to
+ <parameter>display</parameter>, the error
+ <constant>EGL_BAD_PARAMETER</constant> is generated.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglDestroyImage</function> is available only if the
+ EGL version is 1.5 or greater.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateImage</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroySurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroySurface.xml
new file mode 100644
index 0000000..31024c7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroySurface.xml
@@ -0,0 +1,77 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglDestroySurface">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglDestroySurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglDestroySurface</refname>
+ <refpurpose>
+ destroy an <acronym>EGL</acronym> surface
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglDestroySurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem><para>Specifies the EGL surface to be destroyed.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ If the EGL surface <parameter>surface</parameter> is not current to any
+ thread, <function>eglDestroySurface</function> destroys it immediately.
+ Otherwise, <parameter>surface</parameter> is destroyed when it becomes
+ not current to any thread.
+ Furthermore, resources associated with a pbuffer surface are not released until
+ all color buffers of that pbuffer bound to a texture object have been released.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if destruction of
+ the surface fails, <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL surface.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry> </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroySync.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroySync.xml
new file mode 100644
index 0000000..d871c2c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglDestroySync.xml
@@ -0,0 +1,98 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglDestroySync">
+ <info>
+ <copyright>
+ <year>2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglDestroySync</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglDestroySync</refname>
+ <refpurpose>
+ Destroy a sync object
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglDestroySync</function></funcdef>
+ <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSync <parameter>sync</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>
+ Specifies the <acronym>EGL</acronym> display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>sync</parameter></term>
+ <listitem><para>
+ Specifies the sync object to destroy.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglDestroySync</function> is used to destroy an
+ existing sync object.
+ </para>
+ <para>
+ If any <function>eglClientWaitSync</function> or
+ <function>eglWaitSync</function> commands are blocking on
+ <parameter>sync</parameter> when
+ <function>eglDestroySync</function> is called,
+ <parameter>sync</parameter> is flagged for deletion and will be
+ deleted when the associated fence command or OpenCL event object
+ has completed, and <parameter>sync</parameter> is no longer
+ blocking any such <function>egl*WaitSync</function> command.
+ Otherwise, the sync object is destroyed immediately.
+ </para>
+ <para>
+ If no errors are generated, <constant>EGL_TRUE</constant> is
+ returned, and <parameter>sync</parameter> will no longer be the
+ handle of a valid sync object.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ On failure, <function>eglDestroySync</function> returns
+ <constant>EGL_FALSE</constant>.
+ </para>
+ <para>
+ If <parameter>sync</parameter> is not a valid sync object for
+ <parameter>display</parameter>, <constant>EGL_FALSE</constant>
+ is returned and an <constant>EGL_BAD_PARAMETER</constant> error
+ is generated.
+ </para>
+ <para>
+ If <parameter>display</parameter> does not match the display
+ passed to <function>eglCreateSync</function> when
+ <parameter>sync</parameter> was created, the behaviour is
+ undefined.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglDestroySync</function> is available only if the EGL
+ version is 1.5 or greater.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglClientWaitSync</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitSync</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetConfigAttrib.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetConfigAttrib.xml
new file mode 100644
index 0000000..70313fe
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetConfigAttrib.xml
@@ -0,0 +1,317 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetConfigAttrib">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglGetConfigAttrib</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetConfigAttrib</refname>
+ <refpurpose>
+ return information about an <acronym>EGL</acronym> frame buffer
+ configuration
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglGetConfigAttrib</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig <parameter>config</parameter></paramdef>
+ <paramdef>EGLint <parameter>attribute</parameter></paramdef>
+ <paramdef>EGLint * <parameter>value</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config</parameter></term>
+ <listitem><para>Specifies the EGL frame buffer configuration to be
+ queried.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attribute</parameter></term>
+ <listitem><para>Specifies the EGL rendering context attribute to be
+ returned.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>value</parameter></term>
+ <listitem><para>Returns the requested value.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglGetConfigAttrib</function> returns in
+ <parameter>value</parameter> the value of
+ <parameter>attribute</parameter> for
+ <parameter>config</parameter>
+ (config attributes are described in more detail in the
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>
+ reference page).
+ <parameter>attribute</parameter> can be one of the following:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_ALPHA_SIZE</constant></term>
+ <listitem><para>Returns the number of bits of alpha stored in the
+ color buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_ALPHA_MASK_SIZE</constant></term>
+ <listitem><para>
+ Returns the number of bits in the alpha mask buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BIND_TO_TEXTURE_RGB</constant></term>
+ <listitem><para>Returns <constant>EGL_TRUE</constant> if color buffers can be
+ bound to an RGB texture,
+ <constant>EGL_FALSE</constant> otherwise.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BIND_TO_TEXTURE_RGBA</constant></term>
+ <listitem><para>Returns <constant>EGL_TRUE</constant> if color buffers can be
+ bound to an RGBA texture,
+ <constant>EGL_FALSE</constant> otherwise.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BLUE_SIZE</constant></term>
+ <listitem><para>Returns the number of bits of blue stored in the
+ color buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BUFFER_SIZE</constant></term>
+ <listitem><para>Returns the depth of the color buffer.
+ It is the sum of
+ <constant>EGL_RED_SIZE</constant>,
+ <constant>EGL_GREEN_SIZE</constant>,
+ <constant>EGL_BLUE_SIZE</constant>, and
+ <constant>EGL_ALPHA_SIZE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_COLOR_BUFFER_TYPE</constant></term>
+ <listitem><para>
+ Returns the color buffer type. Possible types are
+ <constant>EGL_RGB_BUFFER</constant> and
+ <constant>EGL_LUMINANCE_BUFFER</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_CAVEAT</constant></term>
+ <listitem><para>Returns the caveats for the frame buffer configuration.
+ Possible caveat values are
+ <constant>EGL_NONE</constant>,
+ <constant>EGL_SLOW_CONFIG</constant>, and
+ <constant>EGL_NON_CONFORMANT</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_ID</constant></term>
+ <listitem><para>Returns the ID of the frame buffer configuration.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONFORMANT</constant></term>
+ <listitem><para>
+ Returns a bitmask indicating which client API contexts
+ created with respect to this config are conformant.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_DEPTH_SIZE</constant></term>
+ <listitem><para>Returns the number of bits in the depth buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_GREEN_SIZE</constant></term>
+ <listitem><para>Returns the number of bits of green stored in the
+ color buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LEVEL</constant></term>
+ <listitem><para>Returns the frame buffer level.
+ Level zero is the default frame buffer.
+ Positive levels correspond to frame buffers that overlay the default
+ buffer and negative levels correspond to frame buffers that underlay
+ the default buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LUMINANCE_SIZE</constant></term>
+ <listitem>
+ <para>
+ Returns the number of bits of luminance stored in the luminance buffer.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MAX_PBUFFER_WIDTH</constant></term>
+ <listitem><para>Returns the maximum width of a pixel buffer surface in pixels.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MAX_PBUFFER_HEIGHT</constant></term>
+ <listitem><para>Returns the maximum height of a pixel buffer surface in pixels.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MAX_PBUFFER_PIXELS</constant></term>
+ <listitem><para>Returns the maximum size of a pixel buffer surface in pixels.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MAX_SWAP_INTERVAL</constant></term>
+ <listitem><para>Returns the maximum value that can be passed to eglSwapInterval.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MIN_SWAP_INTERVAL</constant></term>
+ <listitem><para>Returns the minimum value that can be passed to eglSwapInterval.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_NATIVE_RENDERABLE</constant></term>
+ <listitem><para>Returns <constant>EGL_TRUE</constant> if native rendering
+ APIs can render into the surface,
+ <constant>EGL_FALSE</constant> otherwise.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_NATIVE_VISUAL_ID</constant></term>
+ <listitem><para>Returns the ID of the associated native visual.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_NATIVE_VISUAL_TYPE</constant></term>
+ <listitem><para>Returns the type of the associated native visual.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RED_SIZE</constant></term>
+ <listitem><para>Returns the number of bits of red stored in the
+ color buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RENDERABLE_TYPE</constant></term>
+ <listitem>
+ <para>
+ Returns a bitmask indicating the types of supported
+ client API contexts.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SAMPLE_BUFFERS</constant></term>
+ <listitem><para>Returns the number of multisample buffers.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SAMPLES</constant></term>
+ <listitem><para>Returns the number of samples per pixel.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_STENCIL_SIZE</constant></term>
+ <listitem><para>Returns the number of bits in the stencil buffer.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SURFACE_TYPE</constant></term>
+ <listitem><para>
+ Returns a bitmask indicating the types of supported EGL
+ surfaces.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_TYPE</constant></term>
+ <listitem><para>Returns the type of supported transparency.
+ Possible transparency values are:
+ <constant>EGL_NONE</constant>, and
+ <constant>EGL_TRANSPARENT_RGB</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_RED_VALUE</constant></term>
+ <listitem><para>Returns the transparent red value.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_GREEN_VALUE</constant></term>
+ <listitem><para>Returns the transparent green value.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TRANSPARENT_BLUE_VALUE</constant></term>
+ <listitem><para>Returns the transparent blue value.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <constant>EGL_CONFORMANT</constant> is supported only if the
+ EGL version is 1.3 or greater.
+ </para>
+ <para>
+ <constant>EGL_ALPHA_MASK_SIZE</constant>,
+ <constant>EGL_COLOR_BUFFER_TYPE</constant>,
+ <constant>EGL_LUMINANCE_SIZE</constant>, and
+ <constant>EGL_RENDERABLE_TYPE</constant> are supported only
+ if the EGL version is 1.2 or greater.
+ </para>
+ <para>
+ While <constant>EGL_MATCH_NATIVE_PIXMAP</constant> can be
+ specified in the attribute list passed to
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ it is not an attribute of the resulting config and cannot be
+ queried using <function>eglGetConfigAttrib</function>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>value</parameter> is not modified when
+ <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONFIG</constant> is generated if
+ <parameter>config</parameter> is not an EGL frame buffer configuration.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attribute</parameter> is not a valid frame buffer
+ configuration attribute.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetConfigs.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetConfigs.xml
new file mode 100644
index 0000000..a58e722
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetConfigs.xml
@@ -0,0 +1,105 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetConfigs">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglGetConfigs</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetConfigs</refname>
+ <refpurpose>
+ return a list of all <acronym>EGL</acronym> frame buffer configurations
+ for a display
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglGetConfigs</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLConfig * <parameter>configs</parameter></paramdef>
+ <paramdef>EGLint <parameter>config_size</parameter></paramdef>
+ <paramdef>EGLint * <parameter>num_config</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>configs</parameter></term>
+ <listitem><para>Returns a list of configs.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>config_size</parameter></term>
+ <listitem><para>Specifies the size of the list of configs.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>num_config</parameter></term>
+ <listitem><para>Returns the number of configs returned.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglGetConfigs</function> returns a list of all
+ EGL frame buffer configurations that are available for the specified
+ display.
+ The items in the list can be used in any EGL function that requires
+ an EGL frame buffer configuration.
+ </para>
+ <para>
+ <parameter>configs</parameter> does not return values, if it is specified
+ as
+ <constant>NULL</constant>. This is useful for querying just the
+ number of all frame buffer configurations.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>
+ to retrieve individual attribute values of a frame buffer configuration.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>configs</parameter> and <parameter>num_config</parameter>
+ are not modified when
+ <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>num_config</parameter> is <constant>NULL</constant>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentContext.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentContext.xml
new file mode 100644
index 0000000..b646cf2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentContext.xml
@@ -0,0 +1,42 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetCurrentContext">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglGetCurrentContext</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetCurrentContext</refname>
+ <refpurpose>
+ return the current <acronym>EGL</acronym> rendering context
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLContext <function>eglGetCurrentContext</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglGetCurrentContext</function> returns the current
+ <acronym>EGL</acronym> rendering context, as specified by
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ If no context is current, <constant>EGL_NO_CONTEXT</constant> is returned.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentDisplay.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentDisplay.xml
new file mode 100644
index 0000000..a860304
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentDisplay.xml
@@ -0,0 +1,57 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetCurrentDisplay">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglGetCurrentDisplay</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetCurrentDisplay</refname>
+ <refpurpose>
+ return the display for the current <acronym>EGL</acronym> rendering context
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLDisplay <function>eglGetCurrentDisplay</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglGetCurrentDisplay</function> returns the current
+ <acronym>EGL</acronym> display connection for the current
+ <acronym>EGL</acronym> rendering context, as specified by
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ If no context is current, <constant>EGL_NO_DISPLAY</constant> is returned.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ Passing <constant>EGL_NO_DISPLAY</constant> to any command
+ taking an <type>EGLDisplay</type> parameter will generate either
+ an <constant>EGL_BAD_DISPLAY</constant> error if the EGL
+ implementation validates <type>EGLDisplay</type> handles, or
+ undefined behavior as described at the end of section 3.1 of the
+ EGL 1.5 Specification. The only exception to this rule is that
+ <function>eglQueryString</function> will accept an
+ <type>EGLDisplay</type> parameter of
+ <constant>EGL_NO_DISPLAY</constant> when querying the client
+ extension string (see section 3.3 of the EGL 1.5 Specification).
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry> </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentSurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentSurface.xml
new file mode 100644
index 0000000..1299718
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetCurrentSurface.xml
@@ -0,0 +1,58 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetCurrentSurface">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglGetCurrentSurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetCurrentSurface</refname>
+ <refpurpose>
+ return the read or draw surface for the current <acronym>EGL</acronym> rendering context
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLSurface <function>eglGetCurrentSurface</function></funcdef>
+ <paramdef>EGLint <parameter>readdraw</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>readdraw</parameter></term>
+ <listitem>
+ <para>
+ Specifies whether to return the read surface
+ (<constant>EGL_READ</constant>) or the draw surface
+ (<constant>EGL_DRAW</constant>).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglGetCurrentSurface</function> returns the read or draw
+ surface attached to the current
+ <acronym>EGL</acronym> rendering context, as specified by
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ If no context is current, <constant>EGL_NO_SURFACE</constant> is returned.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry> </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetDisplay.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetDisplay.xml
new file mode 100644
index 0000000..a694edf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetDisplay.xml
@@ -0,0 +1,87 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetDisplay">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglGetDisplay</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetDisplay</refname>
+ <refpurpose>
+ return an <acronym>EGL</acronym> display connection
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLDisplay <function>eglGetDisplay</function></funcdef>
+ <paramdef>NativeDisplayType <parameter>native_display</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>native_display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the display to connect to.
+ <constant>EGL_DEFAULT_DISPLAY</constant> indicates the default display.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglGetDisplay</function> obtains the
+ <acronym>EGL</acronym> display connection for the native
+ display <parameter>native_display</parameter>.
+ </para>
+ <para>
+ The behavior of <function>eglGetDisplay</function> is similar to
+ that of
+ <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>,
+ but is specified in terms of implementation-specific behavior
+ rather than platform-specific extensions. As for
+ <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>,
+ EGL considers the returned <type>EGLDisplay</type> as belonging
+ to the same platform as <parameter>display_id</parameter>.
+ However, the set of platforms to which
+ <parameter>display_id</parameter> is permitted to belong, as
+ well as the actual type of <parameter>display_id</parameter>,
+ are implementation-specific. If
+ <parameter>display_id</parameter> is
+ <constant>EGL_DEFAULT_DISPLAY</constant>, a <firstterm>default
+ display</firstterm> is returned. Multiple calls made to
+ <function>eglGetDisplay</function> with the same
+ <parameter>display_id</parameter> will return the same
+ <type>EGLDisplay</type> handle.
+ </para>
+ <para>
+ If <parameter>display_id</parameter> is
+ <constant>EGL_DEFAULT_DISPLAY</constant>, a default display connection is returned.
+ </para>
+ <para>
+ If no display connection matching <parameter>native_display</parameter> is
+ available, <constant>EGL_NO_DISPLAY</constant> is returned. No
+ error is generated.
+ </para>
+ <para>
+ Use <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ to initialize the display connection.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetError.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetError.xml
new file mode 100644
index 0000000..3e1fd71
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetError.xml
@@ -0,0 +1,143 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetError">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglGetError</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetError</refname>
+ <refpurpose>
+ return error information
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLint <function>eglGetError</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglGetError</function> returns the error of the last
+ called <acronym>EGL</acronym> function in the current thread.
+ Initially, the error is set to <constant>EGL_SUCCESS</constant>.
+ </para>
+ <para>
+ When an EGL function could potentially generate several
+ different errors (for example, when passed both a bad attribute
+ name, and a bad attribute value for a legal attribute name), the
+ implementation may choose to generate any one of the applicable
+ errors.
+ </para>
+ <para>
+ The following errors are currently defined:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_SUCCESS</constant></term>
+ <listitem><para>The last function succeeded without error.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_NOT_INITIALIZED</constant></term>
+ <listitem><para>EGL is not initialized, or could not be initialized,
+ for the specified EGL display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_ACCESS</constant></term>
+ <listitem><para>EGL cannot access a requested resource
+ (for example a context is bound in another thread).
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_ALLOC</constant></term>
+ <listitem><para>EGL failed to allocate resources for the requested
+ operation.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_ATTRIBUTE</constant></term>
+ <listitem><para>An unrecognized attribute or attribute value was
+ passed in the attribute list.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_CONTEXT</constant></term>
+ <listitem><para>An <type>EGLContext</type> argument does not name a
+ valid EGL rendering context.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_CONFIG</constant></term>
+ <listitem><para>
+ An <type>EGLConfig</type> argument does not name a valid
+ EGL frame buffer configuration.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_CURRENT_SURFACE</constant></term>
+ <listitem><para>The current surface of the calling thread is a window,
+ pixel buffer or pixmap that is no longer valid.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_DISPLAY</constant></term>
+ <listitem><para>An <type>EGLDisplay</type> argument does not name a
+ valid EGL display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_SURFACE</constant></term>
+ <listitem><para>An <type>EGLSurface</type> argument does not name a
+ valid surface (window, pixel buffer or pixmap) configured for
+ GL rendering.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_MATCH</constant></term>
+ <listitem><para>Arguments are inconsistent (for example, a valid
+ context requires buffers not supplied by a valid surface).
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_PARAMETER</constant></term>
+ <listitem><para>One or more argument values are invalid.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_NATIVE_PIXMAP</constant></term>
+ <listitem><para>
+ A <type>NativePixmapType</type> argument does not refer to
+ a valid native pixmap.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_BAD_NATIVE_WINDOW</constant></term>
+ <listitem><para>A <type>NativeWindowType</type> argument does not refer
+ to a valid native window.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_LOST</constant></term>
+ <listitem><para>
+ A power management event has occurred. The application must destroy all
+ contexts and reinitialise OpenGL ES state and objects to continue rendering.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ A call to <function>eglGetError</function> sets the error to
+ <constant>EGL_SUCCESS</constant>.
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetPlatformDisplay.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetPlatformDisplay.xml
new file mode 100644
index 0000000..f2f9108
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetPlatformDisplay.xml
@@ -0,0 +1,122 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetPlatformDisplay">
+ <info>
+ <copyright>
+ <year>2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglGetPlatformDisplay</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetPlatformDisplay</refname>
+ <refpurpose>
+ return an <acronym>EGL</acronym> display connection
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLDisplay <function>eglGetPlatformDisplay</function></funcdef>
+ <paramdef>EGLenum <parameter>platform</parameter></paramdef>
+ <paramdef>void * <parameter>native_display</parameter></paramdef>
+ <paramdef>const EGLAttrib * <parameter>attrib_list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>platform</parameter></term>
+ <listitem>
+ <para>
+ Specifies the native platform to obtain a display for.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>native_display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the native display to connect to.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attrib_list</parameter></term>
+ <listitem>
+ <para>
+ Specifies attributes of the display being obtained.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglGetPlatformDisplay</function> obtains an
+ <acronym>EGL</acronym> display connection for the specified
+ <parameter>platform</parameter> and
+ <parameter>native_display</parameter>.
+ </para>
+ <para>
+ Valid values for <parameter>platform</parameter> are defined by
+ EGL extensions, as are requirements for
+ <parameter>native_display</parameter>.
+ For example, an extension specification that defines support for
+ the X11 platform may require that
+ <parameter>native_display</parameter> be a pointer to an X11
+ Display, and an extension specification that defines support for
+ the Microsoft Windows platform may require that
+ <parameter>native_display</parameter> be a pointer to a Windows
+ Device Context.
+ </para>
+ <para>
+ Valid attributes are defined by EGL extensions.
+ All attributes in <parameter>attrib_list</parameter>,
+ including boolean attributes, are immediately followed by
+ the corresponding desired value.
+ The list is terminated with <constant>EGL_NONE</constant>.
+ If an attribute is not specified in
+ <parameter>attrib_list</parameter> but is required for the
+ specified <parameter>platform</parameter>, then a default value
+ is used (and the attribute is said to be specified implicitly).
+ </para>
+ <para>
+ Multiple calls made to
+ <function>eglGetPlatformDisplay</function> with the same
+ parameters will return the same <type>EGLDisplay</type> handle.
+ </para>
+ <para>
+ If <parameter>platform</parameter> is valid but no display
+ matching <parameter>native_display</parameter> is available,
+ then <constant>EGL_NO_DISPLAY</constant> is returned; no error
+ condition is raised in this case.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglGetPlatformDisplay</function> is supported only if
+ the EGL version is 1.5 or greater.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <function>eglGetPlatformDisplay</function> returns
+ <constant>EGL_NO_DISPLAY</constant> on failure.
+ </para>
+ <para>
+ An <constant>EGL_BAD_PARAMETER</constant> error is generated if
+ <parameter>platform</parameter> has an invalid value.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetProcAddress.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetProcAddress.xml
new file mode 100644
index 0000000..a3d20b0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetProcAddress.xml
@@ -0,0 +1,98 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetProcAddress">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglGetProcAddress</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetProcAddress</refname>
+ <refpurpose>
+ return a <acronym>GL</acronym> or an <acronym>EGL</acronym>
+ extension function
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>void (* <function>eglGetProcAddress</function></funcdef>
+ <paramdef>char const * <parameter>procname</parameter>))(void</paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>procname</parameter></term>
+ <listitem>
+ <para>
+ Specifies the name of the function to return.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglGetProcAddress</function> returns the address of
+ the client API or EGL function named by
+ <parameter>procname</parameter>. <parameter>procname</parameter>
+ must be a null-terminated string. The pointer returned should be
+ cast to a function pointer matching the function's definition in
+ the corresponding API or extension specification. A return value
+ of <constant>NULL</constant> indicates that the specific
+ function does not exist for the implementation.
+ </para>
+ <para>
+ A non-<constant>NULL</constant> return value does not guarantee
+ that an extension function is actually supported at runtime. The
+ client must also make a corresponding query, such as
+ <function>glGetString</function>(<constant>GL_EXTENSIONS</constant>)
+ for OpenGL and OpenGL ES extensions;
+ <function>vgGetString</function>(<constant>VG_EXTENSIONS</constant>)
+ for OpenVG extensions;
+ <function>eglQueryString</function>(<parameter>display</parameter>,
+ <constant>EGL_EXTENSIONS</constant>); or query the EGL or client
+ API version for non-extension functions, to determine if a
+ function is supported by EGL or a specific client API context.
+ </para>
+ <para>
+ Client API function pointers returned by
+ <function>eglGetProcAddress</function> are independent of the
+ display and the currently bound client API context, and may be
+ used by any client API context which supports the function.
+ </para>
+ <para>
+ <function>eglGetProcAddress</function> may be queried for all
+ EGL and client API functions supported by the implementation
+ (whether those functions are extensions or not, and whether they
+ are supported by the current client API context or not).
+ </para>
+ <para>
+ For functions that are queryable with
+ <function>eglGetProcAddress</function>, implementations may
+ choose to also export those functions statically from the object
+ libraries implementing those functions. However, portable
+ clients cannot rely on this behavior.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ If the EGL version is not 1.5 or greater, only queries of EGL
+ and client API <emphasis>extension</emphasis> functions will
+ succeed.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <function>glGetString</function>
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry> </para>
+ <function>vgGetString</function>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetSyncAttrib.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetSyncAttrib.xml
new file mode 100644
index 0000000..c3f0197
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglGetSyncAttrib.xml
@@ -0,0 +1,148 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglGetSyncAttrib">
+ <info>
+ <copyright>
+ <year>2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglGetSyncAttrib</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglGetSyncAttrib</refname>
+ <refpurpose>
+ Return an attribute of a sync object
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglGetSyncAttrib</function></funcdef>
+ <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSync <parameter>sync</parameter></paramdef>
+ <paramdef>EGLint <parameter>attribute</parameter></paramdef>
+ <paramdef>EGLAttrib *<parameter>value</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>
+ Specifies the <acronym>EGL</acronym> display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>sync</parameter></term>
+ <listitem><para>
+ Specifies the sync object to query.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attribute</parameter></term>
+ <listitem><para>
+ Specifies the EGL sync object attribute to query.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>value</parameter></term>
+ <listitem><para>
+ Returns the requested attribute value.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglGetSyncAttrib</function> is used to query
+ attributes of the sync object <parameter>sync</parameter>. Legal
+ values for <parameter>attribute</parameter> depend on the type
+ of sync object, as shown in table
+ <xref linkend="tab-syncattr"/>. Assuming no errors are
+ generated, <constant>EGL_TRUE</constant> is returned and the
+ value of the queried attribute is returned in
+ *<parameter>value</parameter>.
+ </para>
+ <table frame="all" xml:id="tab-syncattr">
+ <title>
+ Attributes accepted by <function>eglGetSyncAttrib</function>
+ </title>
+ <tgroup cols="3" align="left" colsep="1" rowsep="1">
+ <thead>
+ <row>
+ <entry>Attribute</entry>
+ <entry>Description</entry>
+ <entry>Supported Sync Objects</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Attribute</entry>
+ <entry>Description</entry>
+ <entry>Supported Sync Objects</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_SYNC_TYPE</constant></entry>
+ <entry>Type of the sync object</entry>
+ <entry>All</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_SYNC_STATUS</constant></entry>
+ <entry>Status of the sync object</entry>
+ <entry>All</entry>
+ </row>
+ <row>
+ <entry><constant>EGL_SYNC_CONDITION</constant></entry>
+ <entry>Signaling condition</entry>
+ <entry>
+ <constant>EGL_SYNC_FENCE</constant> or
+ <constant>EGL_SYNC_CL_EVENT</constant>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ On failure, <function>eglGetSyncAttrib</function> returns
+ <constant>EGL_FALSE</constant> and *<parameter>value</parameter>
+ is not modified.
+ </para>
+ <para>
+ If <parameter>sync</parameter> is not a valid sync object for
+ <parameter>display</parameter>, an
+ <constant>EGL_BAD_PARAMETER</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>attribute</parameter> is not one of the attributes
+ in table <xref linkend="tab-syncattr"/>, an
+ <constant>EGL_BAD_ATTRIBUTE</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>attribute</parameter> is not supported for the
+ type of sync object passed in <parameter>sync</parameter>, an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>display</parameter> does not match the display
+ passed to <function>eglCreateSync</function> when
+ <parameter>sync</parameter> was created, behaviour is undefined.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglGetSyncAttrib</function> is available only if the
+ EGL version is 1.5 or greater.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglInitialize.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglInitialize.xml
new file mode 100644
index 0000000..367a986
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglInitialize.xml
@@ -0,0 +1,100 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglInitialize">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglInitialize</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglInitialize</refname>
+ <refpurpose>
+ initialize an <acronym>EGL</acronym> display connection
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglInitialize</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLint * <parameter>major</parameter></paramdef>
+ <paramdef>EGLint * <parameter>minor</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection to initialize.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>major</parameter></term>
+ <listitem>
+ <para>
+ Returns the major version number of the EGL implementation.
+ May be <constant>NULL</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>minor</parameter></term>
+ <listitem>
+ <para>
+ Returns the minor version number of the EGL implementation.
+ May be <constant>NULL</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglInitialize</function> initialized the EGL display
+ connection obtained with
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>.
+ Initializing an already initialized EGL display connection has no
+ effect besides returning the version numbers.
+ </para>
+ <para>
+ <parameter>major</parameter> and <parameter>minor</parameter>
+ do not return values if they are specified as <constant>NULL</constant>.
+ </para>
+ <para>
+ Use <citerefentry><refentrytitle>eglTerminate</refentrytitle></citerefentry>
+ to release resources associated with an EGL display connection.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if
+ <function>eglInitialize</function> fails,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>major</parameter> and <parameter>minor</parameter> are not
+ modified when <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> cannot be initialized.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglTerminate</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglIntro.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglIntro.xml
new file mode 100644
index 0000000..0cdd0a1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglIntro.xml
@@ -0,0 +1,275 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglIntro">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglIntro</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglIntro</refname>
+ <refpurpose>
+ introduction to managing client API rendering through the
+ <acronym>EGL</acronym> API.
+ </refpurpose>
+ </refnamediv>
+ <refsect1 xml:id="overview"><title>Overview</title>
+ <para>
+ The <firstterm>Khronos Native Platform Graphics
+ Interface</firstterm> (EGL) provides a means for rendering
+ using a <firstterm>client API</firstterm> such as OpenGL ES
+ (a 3D renderer for embedded systems), OpenGL (a functional
+ superset of OpenGL ES for desktop systems), and OpenVG (a 2D
+ vector graphics renderer) together with a
+ <firstterm>platform</firstterm>, such as Microsoft Windows or
+ the X Window System.
+ </para>
+ <para>
+ Depending on its implementation EGL might be more or less
+ tightly integrated into the platform. Most EGL
+ functions require an EGL display connection, which can be
+ obtained by calling
+ <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>
+ or
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>.
+ To initialize and
+ query what EGL version is supported on the display
+ connection, call
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ The EGL specification does not define the set of platforms that
+ may be supported by an EGL implementation, nor does it specify
+ behavior specific to any platform. The set of supported
+ platforms and their behavior is defined by platform-specific
+ extensions. To detect if a particular platform is supported,
+ clients should query the <constant>EGL_EXTENSIONS</constant>
+ string of <constant>EGL_NO_DISPLAY</constant> using
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ Platforms supporting EGL make a subset of their
+ visuals (which may also referred to as pixel formats, frame
+ buffer configurations, or other similar terms) available for
+ client API rendering. Windows and pixmaps created with these
+ visuals may also be rendered into using the platform APIs.
+ </para>
+ <para>
+ An EGL <firstterm>surface</firstterm> extends a native
+ window or pixmap with additional <firstterm>auxillary
+ buffers</firstterm>. These buffers include a color buffer, a
+ depth buffer, a stencil buffer, and an alpha mask buffer.
+ Some or all of the buffers listed are included in each EGL
+ frame buffer configuration.
+ </para>
+ <para>
+ EGL supports rendering into three types of surfaces:
+ windows, pixmaps and pixel buffers (pbuffers). EGL window
+ and pixmap surfaces are associated with corresponding
+ resources of the platform. EGL pixel buffers are
+ EGL-only resources, and do not accept rendering through the
+ platform APIs.
+ </para>
+ <para>
+ To render using a client API into an EGL surface, you must
+ determine the appropriate EGL frame buffer configuration,
+ which supports the rendering features the application
+ requires.
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>
+ returns an <type>EGLConfig</type> matching the required
+ attributes, if any. A complete list of EGL frame buffer
+ configurations can be obtained by calling
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>.
+ Attributes of a particular EGL frame buffer configuration
+ can be queried by calling
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ For EGL window and pixmap surfaces, a suitable native window
+ or pixmap with a matching native visual must be created
+ first. For a given EGL frame buffer configuration, the
+ native visual type and ID can be retrieved with a call to
+ <citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry>.
+ For pixel buffers, no underlying native resource is
+ required.
+ </para>
+ <para>
+ To create an EGL window surface from a native window, call
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>.
+ To create an EGL pixmap surface from a native pixmap, call
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>.
+ To create a pixel buffer (pbuffer) surface (which has no
+ associated native buffer), call
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>
+ To create a pixel buffer (pbuffer) surface whose color
+ buffer is provided by an OpenVG <type>VGImage</type>, call
+ <citerefentry><refentrytitle>eglCreatePbufferFromClientBuffer</refentrytitle></citerefentry>.
+ Use
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>
+ to release previously allocated resources.
+ </para>
+ <para>
+ An EGL rendering context is required to bind client API
+ rendering to an EGL surface. An EGL surface and an EGL
+ rendering context must have compatible EGL frame buffer
+ configurations. To create an EGL rendering context, call
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>.
+ The type of client API context created (OpenGL ES, OpenVG,
+ etc.) can be changed by first calling
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ An EGL rendering context may be bound to one or two EGL
+ surfaces by calling
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ This context/surface(s) association specifies the
+ <firstterm>current context</firstterm> and
+ <firstterm>current surface</firstterm>, and is used by all
+ client API rendering commands for the bound context until
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ is called with different arguments.
+ </para>
+ <para>
+ Both platform and client API commands may be used to operate
+ on certain surfaces. However, the two command streams are
+ not synchronized. Synchronization can be explicitly
+ specified using by calling
+ <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>,
+ and possibly by calling other platform APIs.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="examples"><title>Examples</title>
+ <para>
+ Below is a minimal example of creating an RGBA-format window that
+ allows rendering with OpenGL ES.
+ The window is cleared to yellow when the program runs. For simplicity,
+ the program does not check for any errors.
+ </para>
+<programlisting>
+#include &lt;stdlib.h&gt;
+#include &lt;unistd.h&gt;
+#include &lt;EGL/egl.h&gt;
+#include &lt;GLES/gl.h&gt;
+typedef ... NativeWindowType;
+extern NativeWindowType createNativeWindow(void);
+static EGLint const attribute_list[] = {
+ EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_NONE
+};
+int main(int argc, char ** argv)
+{
+ EGLDisplay display;
+ EGLConfig config;
+ EGLContext context;
+ EGLSurface surface;
+ NativeWindowType native_window;
+ EGLint num_config;
+
+ /* get an EGL display connection */
+ display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
+ /* initialize the EGL display connection */
+ eglInitialize(display, NULL, NULL);
+
+ /* get an appropriate EGL frame buffer configuration */
+ eglChooseConfig(display, attribute_list, &amp;config, 1, &amp;num_config);
+
+ /* create an EGL rendering context */
+ context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
+
+ /* create a native window */
+ native_window = createNativeWindow();
+
+ /* create an EGL window surface */
+ surface = eglCreateWindowSurface(display, config, native_window, NULL);
+
+ /* connect the context to the surface */
+ eglMakeCurrent(display, surface, surface, context);
+
+ /* clear the color buffer */
+ glClearColor(1.0, 1.0, 0.0, 1.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glFlush();
+
+ eglSwapBuffers(display, surface);
+
+ sleep(10);
+ return EXIT_SUCCESS;
+}
+</programlisting>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ Prior to EGL 1.5, platforms were referred to as the
+ <firstterm>native window system</firstterm>, and
+ platform-specific queries and APIs were not available. Only a
+ single native window system was supported.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="usingeglextensions"><title>Using EGL Extensions</title>
+ <para>
+ All supported EGL extensions will have a corresponding definition in
+ <filename>egl.h</filename> and a token in the extension strings returned
+ by
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="futureeglversions"><title>Future EGL Versions</title>
+ <para>
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ and
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>
+ can be used to determine at run-time what version of EGL is available.
+ To check the EGL version at compile-time, test whether
+ <constant>EGL_VERSION_<replaceable>x</replaceable>_<replaceable>y</replaceable></constant>
+ is defined, where <replaceable>x</replaceable> and
+ <replaceable>y</replaceable> are the major and minor version
+ numbers.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="files"><title>Files</title>
+ <variablelist>
+ <varlistentry>
+ <term><filename>GLES/egl.h</filename></term>
+ <listitem><para>
+ EGL header file
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+<!--
+ <citerefentry><refentrytitle>glIntro</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>,
+-->
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferFromClientBuffer</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglDestroyContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetPlatformDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglTerminate</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitGL</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglMakeCurrent.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglMakeCurrent.xml
new file mode 100644
index 0000000..3464640
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglMakeCurrent.xml
@@ -0,0 +1,321 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglMakeCurrent">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglMakeCurrent</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglMakeCurrent</refname>
+ <refpurpose>
+ attach an EGL rendering context to EGL surfaces
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglMakeCurrent</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>draw</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>read</parameter></paramdef>
+ <paramdef>EGLContext <parameter>context</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> display connection.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>draw</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> draw surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>read</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> read surface.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>context</parameter></term>
+ <listitem>
+ <para>Specifies the <acronym>EGL</acronym> rendering context
+ to be attached to the surfaces.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglMakeCurrent</function> binds <parameter>context</parameter>
+ to the current rendering thread and to the <parameter>draw</parameter>
+ and <parameter>read</parameter> surfaces.
+ </para>
+ <para>
+ For an OpenGL or OpenGL ES context, <parameter>draw</parameter>
+ is used for all operations except for any pixel data read back or copied
+ (<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>, and
+ <citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>),
+ which is taken from the frame buffer values of
+ <parameter>read</parameter>. Note that the same
+ <type>EGLSurface</type> may be specified for both draw and read.
+ </para>
+ <para>
+ For an OpenVG context, the same <type>EGLSurface</type> must be
+ specified for both <parameter>draw</parameter> and
+ <parameter>read</parameter>.
+ </para>
+ <para>
+ If the calling thread has already a current rendering context of
+ the same client API type as <parameter>context</parameter>, then
+ that context is flushed and marked as no longer current.
+ <parameter>context</parameter> is then made the current context
+ for the calling thread. For purposes of
+ <function>eglMakeCurrent</function>, the client API type of all
+ OpenGL ES and OpenGL contexts is considered the same. In other
+ words, if any OpenGL ES context is currently bound and
+ <parameter>context</parameter> is an OpenGL context, or if any
+ OpenGL context is currently bound and
+ <parameter>context</parameter> is an OpenGL ES context, the
+ currently bound context will be made no longer current and
+ <parameter>context</parameter> will be made current.
+ </para>
+ <para>
+ OpenGL and OpenGL ES buffer mappings created by e.g.
+ <function>glMapBuffer</function> are not affected by
+ <function>eglMakeCurrent</function>; they persist whether the
+ context owning the buffer is current or not.
+ </para>
+ <para>
+ If <parameter>draw</parameter> is destroyed after
+ <function>eglMakeCurrent</function> is called, then subsequent
+ rendering commands will be processed and the context state will
+ be updated, but the surface contents become undefined. If
+ <parameter>read</parameter> is destroyed after
+ <function>eglMakeCurrent</function> then pixel values
+ <parameter>read</parameter> from the framebuffer (e.g., as
+ result of calling glReadPixels) are undefined. If a native
+ window or pixmap underlying the <parameter>draw</parameter> or
+ <parameter>read</parameter> surfaces is destroyed, rendering and
+ <parameter>read</parameter>back are handled as above.
+ </para>
+ <para>
+ To release the current context without assigning a new one, set
+ <parameter>context</parameter> to
+ <constant>EGL_NO_CONTEXT</constant> and set
+ <parameter>draw</parameter> and <parameter>read</parameter> to
+ <constant>EGL_NO_SURFACE</constant> . The currently bound
+ context for the client API specified by the current rendering
+ API is flushed and marked as no longer current, and there will
+ be no current context for that client API after
+ <function>eglMakeCurrent</function> returns. This is the only
+ case in which <function>eglMakeCurrent</function> respects the
+ current rendering API. In all other cases, the client API
+ affected is determined by <parameter>context</parameter>. This
+ is the only case where an uninitialized display may be passed to
+ <function>eglMakeCurrent</function>.
+ </para>
+ <para>
+ If ctx is not <constant>EGL_NO_CONTEXT</constant>, then both
+ <parameter>draw</parameter> and <parameter>read</parameter> must
+ not be <constant>EGL_NO_SURFACE</constant> unless
+ <parameter>context</parameter> is a context which supports being
+ bound without read and draw surfaces. In this case the context
+ is made current without a default framebuffer. The meaning of
+ this is defined by the client API of the supporting context (see
+ chapter 4 of the OpenGL 3.0 Specification, and the
+ <constant>GL_OES_surfaceless_context</constant> OpenGL ES
+ extension.).
+ </para>
+ <para>
+ The first time a OpenGL or OpenGL ES context is made current the
+ viewport and scissor dimensions are set to the size of the
+ <parameter>draw</parameter> surface (as though
+ <function>glViewport</function>(0,0,w,h) and
+ <function>glScissor</function>(0,0,<parameter>w</parameter>,<parameter>h</parameter>)
+ were called, where <parameter>w</parameter> and
+ <parameter>h</parameter> are the width and height of the
+ surface, respectively). However, the viewport and scissor
+ dimensions are not modified when <parameter>context</parameter>
+ is subsequently made current. The client is responsible for
+ resetting the viewport and scissor in this case.
+ </para>
+ <para>
+ The first time <parameter>context</parameter> is made current,
+ if it is without a default framebuffer (e.g. both
+ <parameter>draw</parameter> and <parameter>read</parameter> are
+ <constant>EGL_NO_SURFACE</constant> ), then the viewport and
+ scissor regions are set as though
+ <function>glViewport</function>(0,0,0,0) and
+ <function>glScissor</function>(0,0,0,0) were called.
+ </para>
+ <para>
+ Implementations may delay allocation of auxiliary buffers for a
+ surface until they are required by a context (which may result
+ in the <constant>EGL_BAD_ALLOC</constant> error described
+ above). Once allocated, however, auxiliary buffers and their
+ contents persist until a surface is deleted.
+ </para>
+ <para>
+ Use
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>, and
+ <citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry>
+ to query the current rendering context and associated display connection and surfaces.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ If <parameter>draw</parameter> or <parameter>read</parameter>
+ are not compatible with <parameter>context</parameter>, then an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>context</parameter> is current to some other
+ thread, or if either <parameter>draw</parameter> or
+ <parameter>read</parameter> are bound to contexts in another
+ thread, an <constant>EGL_BAD_ACCESS</constant> error is
+ generated.
+ </para>
+ <para>
+ If binding <parameter>context</parameter> would exceed the
+ number of current contexts of that client API type supported by
+ the implementation, an <constant>EGL_BAD_ACCESS</constant> error
+ is generated.
+ </para>
+ <para>
+ If either <parameter>draw</parameter> or
+ <parameter>read</parameter> are pbuffers created with
+ <function>eglCreatePbufferFromClientBuffer</function>, and the
+ underlying bound client API buffers are in use by the client API
+ that created them, an <constant>EGL_BAD_ACCESS</constant> error
+ is generated.
+ </para>
+ <para>
+ If <parameter>context</parameter> is not a valid context and is
+ not <constant>EGL_NO_CONTEXT</constant>, an
+ <constant>EGL_BAD_CONTEXT</constant> error is generated.
+ </para>
+ <para>
+ If either <parameter>draw</parameter> or
+ <parameter>read</parameter> are not valid EGL surfaces and are
+ not <constant>EGL_NO_SURFACE</constant>, an
+ <constant>EGL_BAD_SURFACE</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>context</parameter> is
+ <constant>EGL_NO_CONTEXT</constant> and either
+ <parameter>draw</parameter> or <parameter>read</parameter> are
+ not <constant>EGL_NO_SURFACE</constant>, an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If either of <parameter>draw</parameter> or
+ <parameter>read</parameter> is a valid surface and the other is
+ <constant>EGL_NO_SURFACE</constant>, an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>context</parameter> does not support being bound
+ without <parameter>read</parameter> and
+ <parameter>draw</parameter> surfaces, and both
+ <parameter>draw</parameter> and <parameter>read</parameter> are
+ <constant>EGL_NO_SURFACE</constant>, an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If a native window underlying either <parameter>draw</parameter>
+ or <parameter>read</parameter> is no longer valid, an
+ <constant>EGL_BAD_NATIVE_WINDOW</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>draw</parameter> and <parameter>read</parameter>
+ cannot fit into graphics memory simultaneously, an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If the previous context of the calling thread has unflushed
+ commands, and the previous surface is no longer valid, an
+ <constant>EGL_BAD_CURRENT_SURFACE</constant> error is generated.
+ </para>
+ <para>
+ If the ancillary buffers for <parameter>draw</parameter> and
+ <parameter>read</parameter> cannot be allocated, an
+ <constant>EGL_BAD_ALLOC</constant> error is generated.
+ </para>
+ <para>
+ If a power management event has occurred, an
+ <constant>EGL_CONTEXT_LOST</constant> error is generated.
+ </para>
+ <para>
+ If any of the following are true:
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <parameter>context</parameter> is not
+ <constant>EGL_NO_CONTEXT</constant>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>read</parameter> is not
+ <constant>EGL_NO_SURFACE</constant>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>draw</parameter> is not
+ <constant>EGL_NO_SURFACE</constant>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ then an <constant>EGL_NOT_INITIALIZED</constant> error is
+ generated if <parameter>display</parameter> is a valid but
+ uninitialized display.
+ </para>
+ <para>
+ As with other commands taking <type>EGLDisplay</type>
+ parameters, if <parameter>display</parameter> is not a valid
+ <type>EGLDisplay</type> handle, an
+ <constant>EGL_BAD_DISPLAY</constant> error is generated. (Some
+ implementations have chosen to allow
+ <constant>EGL_NO_DISPLAY</constant> as a valid
+ <parameter>display</parameter> parameter for
+ <function>eglMakeCurrent</function>. This behavior is not
+ portable to all EGL implementations, and should be considered as
+ an undocumented vendor extension).
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryAPI.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryAPI.xml
new file mode 100644
index 0000000..f83b6de
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryAPI.xml
@@ -0,0 +1,76 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglQueryAPI">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglQueryAPI</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglQueryAPI</refname>
+ <refpurpose>Query the current rendering API</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv><title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLenum <function>eglQueryAPI</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglQueryAPI</function> returns the value of the
+ current rendering API for EGL in the thread it is called
+ from. The current rendering API is set by
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ and affects the behavior of other EGL commands.
+ </para>
+ <para>
+ The value returned will be one of the valid
+ <parameter>api</parameter> parameters to
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>, or
+ <constant>EGL_NONE</constant>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglQueryAPI</function> is supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <para>
+ The initial value of the current rendering API is
+ <constant>EGL_OPENGL_ES_API</constant> unless OpenGL ES is
+ not supported by an implementation, in which case the
+ initial value is <constant>EGL_NONE</constant> (however,
+ <constant>EGL_NONE</constant> is not a valid
+ <parameter>api</parameter> parameter to
+ <function>eglQueryAPI</function>).
+ </para>
+ <para>
+ The current rendering API can be changed by calling
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ None.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryContext.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryContext.xml
new file mode 100644
index 0000000..30ace39
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryContext.xml
@@ -0,0 +1,184 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglQueryContext">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglQueryContext</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglQueryContext</refname>
+ <refpurpose>
+ return <acronym>EGL</acronym> rendering context information
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglQueryContext</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLContext <parameter>context</parameter></paramdef>
+ <paramdef>EGLint <parameter>attribute</parameter></paramdef>
+ <paramdef>EGLint * <parameter>value</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>context</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL rendering context to query.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attribute</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL rendering context attribute to be returned.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>value</parameter></term>
+ <listitem>
+ <para>
+ Returns the requested value.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglQueryContext</function> returns in
+ <parameter>value</parameter> the value of
+ <parameter>attribute</parameter> for <parameter>context</parameter>.
+ <parameter>attribute</parameter> can be one of the following:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_ID</constant></term>
+ <listitem><para>
+ Returns the ID of the EGL frame buffer configuration
+ with respect to which the context was created.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_CLIENT_TYPE</constant></term>
+ <listitem><para>
+ Returns the type of client API which the context
+ supports (one of
+ <constant>EGL_OPENGL_API</constant>,
+ <constant>EGL_OPENGL_ES_API</constant>, or
+ <constant>EGL_OPENVG_API</constant>).
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_CONTEXT_CLIENT_VERSION</constant></term>
+ <listitem><para>
+ Returns the version of the client API which the
+ context supports, as specified at context creation
+ time. The resulting value is only meaningful for an
+ OpenGL ES context.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RENDER_BUFFER</constant></term>
+ <listitem>
+ <para>
+ Returns the buffer which client API rendering
+ via the context will use. The value returned
+ depends on properties of both the context, and
+ the surface to which the context is bound:
+ </para>
+ <itemizedlist>
+ <listitem><para>
+ If the context is bound to a pixmap surface,
+ then <constant>EGL_SINGLE_BUFFER</constant> will
+ be returned.
+ </para></listitem>
+ <listitem><para>
+ If the context is bound to a pbuffer surface,
+ then <constant>EGL_BACK_BUFFER</constant> will
+ be returned.
+ </para></listitem>
+ <listitem><para>
+ If the context is bound to a window surface,
+ then either <constant>EGL_BACK_BUFFER</constant>
+ or <constant>EGL_SINGLE_BUFFER</constant> may be
+ returned. The value returned depends on both the
+ buffer requested by the setting of the
+ <constant>EGL_RENDER_BUFFER</constant> property
+ of the surface (which may be queried by calling
+ <function>eglQuerySurface</function>), and on
+ the client API (not all client APIs support
+ single-buffer rendering to window surfaces).
+ </para></listitem>
+ <listitem><para>
+ If the context is not bound to a surface, such
+ as an OpenGL ES context bound to a framebuffer
+ object, then <constant>EGL_NONE</constant> will
+ be returned.
+ </para></listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ Attributes <constant>EGL_CONTEXT_CLIENT_TYPE</constant> and
+ <constant>EGL_RENDER_BUFFER</constant> are supported only if
+ the EGL version is 1.2 or greater.
+ </para>
+ <para>
+ Attribute <constant>EGL_CONTEXT_CLIENT_VERSION</constant> is
+ supported only if the EGL version is 1.3 or greater.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>value</parameter> is not modified when
+ <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONTEXT</constant> is generated if
+ <parameter>context</parameter> is not an EGL rendering context.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attribute</parameter> is not a valid context attribute.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryString.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryString.xml
new file mode 100644
index 0000000..17fa9e0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQueryString.xml
@@ -0,0 +1,179 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglQueryString">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglQueryString</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglQueryString</refname>
+ <refpurpose>
+ return a string describing properties of the EGL client or of an
+ <acronym>EGL</acronym> display connection
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>char const * <function>eglQueryString</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLint <parameter>name</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>name</parameter></term>
+ <listitem>
+ <para>
+ Specifies a symbolic constant, one of
+ <constant>EGL_CLIENT_APIS</constant>,
+ <constant>EGL_VENDOR</constant>,
+ <constant>EGL_VERSION</constant>, or
+ <constant>EGL_EXTENSIONS</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglQueryString</function> returns a pointer to a
+ static, zero-terminated string describing properties of the EGL
+ client or of an EGL display connection.
+ <parameter>name</parameter> may be one of the following:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_CLIENT_APIS</constant></term>
+ <listitem><para>
+ Returns a string describing which client rendering
+ APIs are supported. The string contains a
+ space-separated list of API names. The list must
+ include at least one of <code>OpenGL</code>,
+ <code>OpenGL_ES</code>, or <code>OpenVG</code>.
+ These strings correspond respectively to values
+ <constant>EGL_OPENGL_API</constant>,
+ <constant>EGL_OPENGL_ES_API</constant>, and
+ <constant>EGL_OPENVG_API</constant> of the
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ <parameter>api</parameter> argument.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VENDOR</constant></term>
+ <listitem><para>
+ Returns the name of the vendor responsible for this EGL
+ implementation. The format and contents of the string
+ are implementation-dependent.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VERSION</constant></term>
+ <listitem>
+ <para>
+ Returns a version or release number. The
+ <constant>EGL_VERSION</constant> string is laid out
+ as follows:
+ </para>
+ <para>
+ <replaceable>major_version</replaceable>.<replaceable>minor_version</replaceable>
+ space
+ <replaceable>vendor_specific_info</replaceable>
+ </para>
+ <para>
+ Both the major and minor portions of the version
+ number are numeric. Their values must match the
+ <parameter>major</parameter> and
+ <parameter>minor</parameter> values returned by
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ The vendor-specific information is optional; if
+ present, its format and contents are
+ implementation-specific.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_EXTENSIONS</constant></term>
+ <listitem>
+ <para>
+ Returns a space separated list of supported
+ extensions to EGL. If there are no extensions, then
+ the empty string is returned.
+ </para>
+ <para>
+ If <parameter>display</parameter> is
+ <constant>EGL_NO_DISPLAY</constant>, then the
+ <constant>EGL_EXTENSIONS</constant> string describes
+ the set of supported <firstterm>client
+ extensions</firstterm>. If
+ <parameter>display</parameter> is a valid,
+ initialized display, then the
+ <constant>EGL_EXTENSIONS</constant> string describes
+ the set of <firstterm>display extensions</firstterm>
+ supported by that display. The set of supported
+ client extensions is disjoint from the set of
+ extensions supported by any given display.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <constant>EGL_CLIENT_APIS</constant> is supported only if
+ the EGL version is 1.2 or greater.
+ </para>
+ <para>
+ A <parameter>display</parameter> of
+ <constant>EGL_NO_DISPLAY</constant> is supported only if the EGL
+ version is 1.5 or greater.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>NULL</constant> is returned on failure.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection,
+ unless <parameter>display</parameter> is
+ <constant>EGL_NO_DISPLAY</constant> and
+ <parameter>name</parameter> is
+ <constant>EGL_EXTENSIONS</constant>.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> is a valid but uninitialized
+ EGLDisplay.
+ </para>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>name</parameter> is not an accepted value.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQuerySurface.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQuerySurface.xml
new file mode 100644
index 0000000..574ec71
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglQuerySurface.xml
@@ -0,0 +1,310 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglQuerySurface">
+ <info>
+ <copyright>
+ <year>2003-2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglQuerySurface</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglQuerySurface</refname>
+ <refpurpose>
+ return <acronym>EGL</acronym> surface information
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglQuerySurface</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ <paramdef>EGLint <parameter>attribute</parameter></paramdef>
+ <paramdef>EGLint * <parameter>value</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface to query.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attribute</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface attribute to be returned.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>value</parameter></term>
+ <listitem>
+ <para>
+ Returns the requested value.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglQuerySurface</function> returns in
+ <parameter>value</parameter> the value of
+ <parameter>attribute</parameter> for <parameter>surface</parameter>.
+ <parameter>attribute</parameter> can be one of the following:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_CONFIG_ID</constant></term>
+ <listitem><para>
+ Returns the ID of the EGL frame buffer configuration
+ with respect to which the surface was created.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_GL_COLORSPACE</constant></term>
+ <listitem><para>
+ Returns the color space used by OpenGL and OpenGL ES
+ when rendering to the surface, either
+ <constant>EGL_GL_COLORSPACE_SRGB</constant> or
+ <constant>EGL_GL_COLORSPACE_LINEAR</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_HEIGHT</constant></term>
+ <listitem><para>
+ Returns the height of the surface in pixels.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_HORIZONTAL_RESOLUTION</constant></term>
+ <listitem><para>
+ Returns the horizontal dot pitch of the display on
+ which a window surface is visible. The value
+ returned is equal to the actual dot pitch, in
+ pixels/meter, multiplied by the constant value
+ <constant>EGL_DISPLAY_SCALING</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_LARGEST_PBUFFER</constant></term>
+ <listitem><para>
+ Returns the same attribute value specified when the
+ surface was created with
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>.
+ For a window or pixmap surface,
+ <parameter>value</parameter> is not modified.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MIPMAP_LEVEL</constant></term>
+ <listitem><para>
+ Returns which level of the mipmap to render to, if
+ texture has mipmaps.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MIPMAP_TEXTURE</constant></term>
+ <listitem><para>
+ Returns <constant>EGL_TRUE</constant> if texture has
+ mipmaps, <constant>EGL_FALSE</constant> otherwise.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MULTISAMPLE_RESOLVE</constant></term>
+ <listitem>
+ <para>
+ Returns the filter used when resolving the
+ multisample buffer. The filter may be either
+ <constant>EGL_MULTISAMPLE_RESOLVE_DEFAULT</constant>
+ or <constant>EGL_MULTISAMPLE_RESOLVE_BOX</constant>,
+ as described for
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_PIXEL_ASPECT_RATIO</constant></term>
+ <listitem><para>
+ Returns the aspect ratio of an individual pixel (the
+ ratio of a pixel's width to its height). The value
+ returned is equal to the actual aspect ratio
+ multiplied by the constant value
+ <constant>EGL_DISPLAY_SCALING</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_RENDER_BUFFER</constant></term>
+ <listitem><para>
+ Returns the buffer which client API rendering is
+ requested to use. For a window surface, this is the
+ same attribute value specified when the surface was
+ created. For a pbuffer surface, it is always
+ <constant>EGL_BACK_BUFFER</constant>. For a pixmap
+ surface, it is always
+ <constant>EGL_SINGLE_BUFFER</constant>. To determine
+ the actual buffer being rendered to by a context,
+ call
+ <citerefentry><refentrytitle>eglQueryContext</refentrytitle></citerefentry>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SWAP_BEHAVIOR</constant></term>
+ <listitem><para>
+ Returns the effect on the color buffer when posting
+ a surface with
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>.
+ Swap behavior may be either
+ <constant>EGL_BUFFER_PRESERVED</constant> or
+ <constant>EGL_BUFFER_DESTROYED</constant>, as
+ described for
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_FORMAT</constant></term>
+ <listitem><para>
+ Returns format of texture. Possible values are
+ <constant>EGL_NO_TEXTURE</constant>,
+ <constant>EGL_TEXTURE_RGB</constant>, and
+ <constant>EGL_TEXTURE_RGBA</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_TEXTURE_TARGET</constant></term>
+ <listitem><para>
+ Returns type of texture. Possible values are
+ <constant>EGL_NO_TEXTURE</constant>, or
+ <constant>EGL_TEXTURE_2D</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VERTICAL_RESOLUTION</constant></term>
+ <listitem><para>
+ Returns the vertical dot pitch of the display on
+ which a window surface is visible. The value
+ returned is equal to the actual dot pitch, in
+ pixels/meter, multiplied by the constant value
+ <constant>EGL_DISPLAY_SCALING</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_ALPHA_FORMAT</constant></term>
+ <listitem><para>
+ Returns the interpretation of alpha values used by
+ OpenVG when rendering to the surface, either
+ <constant>EGL_VG_ALPHA_FORMAT_NONPRE</constant> or
+ <constant>EGL_VG_ALPHA_FORMAT_PRE</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_VG_COLORSPACE</constant></term>
+ <listitem><para>
+ Returns the color space used by OpenVG when rendering to
+ the surface, either
+ <constant>EGL_VG_COLORSPACE_sRGB</constant> or
+ <constant>EGL_VG_COLORSPACE_LINEAR</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_WIDTH</constant></term>
+ <listitem><para>
+ Returns the width of the surface in pixels.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ Attribute <constant>EGL_GL_COLORSPACE</constant> is supported
+ only if the EGL version is 1.5 or greater.
+ </para>
+ <para>
+ Attribute <constant>EGL_MULTISAMPLE_RESOLVE</constant> is
+ supported only if the EGL version is 1.4 or greater.
+ </para>
+ <para>
+ Attributes <constant>EGL_DISPLAY_SCALING</constant>.
+ <constant>EGL_HORIZONTAL_RESOLUTION</constant>,
+ <constant>EGL_PIXEL_ASPECT_RATIO</constant>,
+ <constant>EGL_RENDER_BUFFER</constant>,
+ <constant>EGL_SWAP_BEHAVIOR</constant>, and
+ <constant>EGL_VERTICAL_RESOLUTION</constant> are supported
+ only if the EGL version is 1.2 or greater.
+ </para>
+ <para>
+ Querying attributes <constant>EGL_TEXTURE_FORMAT</constant>,
+ <constant>EGL_TEXTURE_TARGET</constant>,
+ <constant>EGL_MIPMAP_TEXTURE</constant>, or
+ <constant>EGL_MIPMAP_LEVEL</constant> for a non-pbuffer
+ surface is not an error, but <parameter>value</parameter> is
+ not modified.
+ </para>
+ <para>
+ <constant>EGL_DISPLAY_SCALING</constant> is the constant
+ value 10000. Floating-point values such as resolution and
+ pixel aspect ratio are scaled by this value before being
+ returned as integers so that sufficient precision to be
+ meaningful will be retained in the returned value.
+ </para>
+ <para>
+ For an offscreen (pbuffer or pixmap) surface, or a surface
+ whose pixel dot pitch or aspect ratio are unknown, querying
+ <constant>EGL_HORIZONTAL_RESOLUTION</constant>,
+ <constant>EGL_PIXEL_ASPECT_RATIO</constant>, or
+ <constant>EGL_VERTICAL_RESOLUTION</constant> will return the
+ constant value <constant>EGL_UNKNOWN</constant> (-1).
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ <parameter>value</parameter> is not modified when
+ <constant>EGL_FALSE</constant> is returned.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attribute</parameter> is not a valid surface attribute.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglReleaseTexImage.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglReleaseTexImage.xml
new file mode 100644
index 0000000..eb9ef54
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglReleaseTexImage.xml
@@ -0,0 +1,101 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglReleaseTexImage">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglReleaseTexImage</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglReleaseTexImage</refname>
+ <refpurpose>
+ Releases a color buffer that is being used as a texture
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglReleaseTexImage</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ <paramdef>EGLint <parameter>buffer</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>Specifies the EGL display connection.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>buffer</parameter></term>
+ <listitem><para>Specifies the texture image data.</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ The specified color buffer is released back to the surface. The surface is made
+ available for reading and writing when it no longer has any color buffers bound as
+ textures.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ If the specified color buffer is no longer bound to a texture (e.g., because the
+ texture object was deleted) then eglReleaseTexImage has no effect. No error is
+ generated.
+ </para>
+ <para>
+ The contents of the color buffer are undefined when it is first released. In particular,
+ there is no guarantee that the texture image is still present. However, the contents of
+ other color buffers are unaffected by this call. Also, the contents of the depth and stencil buffers
+ are not affected by <citerefentry><refentrytitle>eglBindTexImage</refentrytitle></citerefentry>
+ and <function>eglReleaseTexImage</function>.
+ </para>
+ <para>
+ After a color buffer is released from a texture (either explicitly by calling
+ <function>eglReleaseTexImage</function> or implicitly by calling a routine such as
+ <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>),
+ all texture images that were defined by the color buffer become <constant>NULL</constant>
+ (it is as if <citerefentry><refentrytitle>glTexImage</refentrytitle></citerefentry> was called with an image of zero width).
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if the
+ surface attribute <constant>EGL_TEXTURE_FORMAT</constant> is
+ set to <constant>EGL_NO_TEXTURE</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>buffer</parameter> is not a valid buffer
+ (currently only <constant>EGL_BACK_BUFFER</constant> may be
+ specified).
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL surface, or is
+ not a bound pbuffer surface.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglBindTexImage</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglReleaseThread.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglReleaseThread.xml
new file mode 100644
index 0000000..6f60215
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglReleaseThread.xml
@@ -0,0 +1,125 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglReleaseThread">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglReleaseThread</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglReleaseThread</refname>
+ <refpurpose>Release EGL per-thread state</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv><title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglReleaseThread</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglReleaseThread</function> returns the EGL to its
+ state at thread initialization, releasing all per-thread
+ state including the error status returned by
+ <command>eglGetError</command>, the currently bound
+ rendering API defined by <command>eglBindAPI</command>, and
+ the current contexts for each supported client API. The
+ overhead of maintaining this state may be objectionable in
+ applications which create and destroy many threads, but only
+ call EGL or client APIs in a few of those threads at any
+ given time.
+ </para>
+ <para>
+ <constant>EGL_TRUE</constant> is returned on success, and the
+ following actions are taken:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ For each client API supported by EGL, if there is a
+ currently bound context, that context is released.
+ This is equivalent to calling
+ <function>eglMakeCurrent</function> with ctx set to
+ <constant>EGL_NO_CONTEXT</constant> and both draw
+ and read set to <constant>EGL_NO_SURFACE</constant>
+ (see section 3.7.3).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The current rendering API is reset to its value at
+ thread initialization (see
+ <command>eglBindAPI</command>).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Any additional implementation-dependent per-thread
+ state maintained by EGL is marked for deletion as
+ soon as possible.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ <function>eglReleaseThread</function> may be called in any
+ thread at any time, and may be called more than once in a
+ single thread. The initialization status of EGL (see section
+ 3.2) is not affected by releasing the thread; only
+ per-thread state is affected.
+ </para>
+ <para>
+ Resources explicitly allocated by calls to EGL, such as
+ contexts, surfaces, and configuration lists, are not
+ affected by <function>eglReleaseThread</function>. Such
+ resources belong not to the thread, but to the EGL
+ implementation as a whole.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglReleaseThread</function> is supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <para>
+ Applications may call other EGL routines from a thread
+ following <function>eglReleaseThread</function>, but any
+ such call may reallocate the EGL state previously released.
+ In particular, calling <function>eglGetError</function>
+ immediately following a successful call to
+ <function>eglReleaseThread</function> will return
+ <constant>EGL_SUCCESS</constant>, but will also result in
+ reallocating per-thread state.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise. There are no
+ defined conditions under which failure will occur. Even if
+ EGL is not initialized on any EGLDisplay,
+ <function>eglReleaseThread</function> should succeed.
+ </para>
+ <para>
+ However, platform-dependent failures may be signaled through
+ the value returned from <function>eglGetError</function>.
+ Unless the platform-dependent behavior is known, a failed
+ call to <function>eglReleaseThread</function> should be
+ assumed to leave the current rendering API, and the
+ currently bound contexts for each supported client API, in
+ an unknown state.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetError</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSurfaceAttrib.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSurfaceAttrib.xml
new file mode 100644
index 0000000..90e626d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSurfaceAttrib.xml
@@ -0,0 +1,207 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglSurfaceAttrib">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglSurfaceAttrib</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglSurfaceAttrib</refname>
+ <refpurpose>
+ set an <acronym>EGL</acronym> surface attribute
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglSurfaceAttrib</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ <paramdef>EGLint <parameter>attribute</parameter></paramdef>
+ <paramdef>EGLint <parameter>value</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>attribute</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL surface attribute to set.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>value</parameter></term>
+ <listitem>
+ <para>
+ Specifies the attributes required value.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglSurfaceAttrib</function> sets the value of
+ <parameter>attribute</parameter> for
+ <parameter>surface</parameter> to
+ <parameter>value</parameter>.
+ <parameter>attribute</parameter> can be one of the
+ following:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><constant>EGL_MIPMAP_LEVEL</constant></term>
+ <listitem><para>
+ For mipmap textures, the
+ <constant>EGL_MIPMAP_LEVEL</constant> attribute
+ indicates which level of the mipmap should be
+ rendered. If the value of this attribute is outside
+ the range of supported mipmap levels, the closest
+ valid mipmap level is selected for rendering. The
+ default value is <constant>0</constant>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_MULTISAMPLE_RESOLVE</constant></term>
+ <listitem>
+ <para>
+ Specifies the filter to use when resolving the
+ multisample buffer (this may occur when swapping or
+ copying the surface, or when changing the client API
+ context bound to the surface). A
+ <parameter>value</parameter> of
+ <constant>EGL_MULTISAMPLE_RESOLVE_DEFAULT</constant>
+ chooses the default implementation-defined filtering
+ method, while
+ <constant>EGL_MULTISAMPLE_RESOLVE_BOX</constant>
+ chooses a one-pixel wide box filter placing equal
+ weighting on all multisample values.
+ </para>
+ <para>
+ The initial value of
+ <constant>EGL_MULTISAMPLE_RESOLVE</constant> is
+ <constant>EGL_MULTISAMPLE_RESOLVE_DEFAULT</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>EGL_SWAP_BEHAVIOR</constant></term>
+ <listitem>
+ <para>
+ Specifies the effect on the color buffer of posting
+ a surface with
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>.
+ A <parameter>value</parameter> of
+ <constant>EGL_BUFFER_PRESERVED</constant> indicates
+ that color buffer contents are unaffected, while
+ <constant>EGL_BUFFER_DESTROYED</constant> indicates
+ that color buffer contents may be destroyed or
+ changed by the operation.
+ </para>
+ <para>
+ The initial value of
+ <constant>EGL_SWAP_BEHAVIOR</constant> is chosen by
+ the implementation.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ Attribute <constant>EGL_MULTISAMPLE_RESOLVE</constant> is
+ supported only if the EGL version is 1.4 or greater.
+ </para>
+ <para>
+ Attribute <constant>EGL_SWAP_BEHAVIOR</constant> is
+ supported only if the EGL version is 1.2 or greater.
+ </para>
+ <para>
+ If the value of pbuffer attribute
+ <constant>EGL_TEXTURE_FORMAT</constant> is
+ <constant>EGL_NO_TEXTURE</constant>, the value of attribute
+ <constant>EGL_TEXTURE_TARGET</constant> is
+ <constant>EGL_NO_TEXTURE</constant>, or
+ <parameter>surface</parameter> is not a pbuffer, then
+ attribute <constant>EGL_MIPMAP_LEVEL</constant> may be set,
+ but has no effect.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure,
+ <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>attribute</parameter> is
+ <constant>EGL_MULTISAMPLE_RESOLVE</constant>,
+ <parameter>value</parameter> is
+ <constant>EGL_MULTISAMPLE_RESOLVE_BOX</constant>, and the
+ <constant>EGL_SURFACE_TYPE</constant> attribute of the
+ <type>EGLConfig</type> used to create
+ <parameter>surface</parameter> does not contain
+ <constant>EGL_MULTISAMPLE_RESOLVE_BOX_BIT</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_MATCH</constant> is generated if
+ <parameter>attribute</parameter> is
+ <constant>EGL_SWAP_BEHAVIOR</constant>,
+ <parameter>value</parameter> is
+ <constant>EGL_BUFFER_PRESERVED</constant>, and the
+ <constant>EGL_SURFACE_TYPE</constant> attribute of the
+ <type>EGLConfig</type> used to create
+ <parameter>surface</parameter> does not contain
+ <constant>EGL_SWAP_BEHAVIOR_PRESERVED_BIT</constant>.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL surface.
+ </para>
+ <para>
+ <constant>EGL_BAD_ATTRIBUTE</constant> is generated if
+ <parameter>attribute</parameter> is not a valid surface attribute.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSwapBuffers.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSwapBuffers.xml
new file mode 100644
index 0000000..8a3de8d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSwapBuffers.xml
@@ -0,0 +1,152 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglSwapBuffers">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglSwapBuffers</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglSwapBuffers</refname>
+ <refpurpose>
+ post <acronym>EGL</acronym> surface color buffer to a native window
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglSwapBuffers</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSurface <parameter>surface</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>surface</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL drawing surface whose buffers are to be swapped.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ If <parameter>surface</parameter> is a back-buffered window
+ surface, then the color
+ buffer is copied (posted) to the native window associated with that
+ surface. If <parameter>surface</parameter> is a single-buffered
+ window, pixmap, or pixel buffer surface,
+ <function>eglSwapBuffers</function> has no effect.
+ </para>
+ <para>
+ The contents of ancillary buffers are always undefined after
+ calling <function>eglSwapBuffers</function>. The contents of the
+ color buffer are undefined if the value of the
+ <constant>EGL_SWAP_BEHAVIOR</constant> attribute of
+ <parameter>surface</parameter> is not
+ <constant>EGL_BUFFER_PRESERVED</constant>. The value of
+ <constant>EGL_SWAP_BEHAVIOR</constant> can be set for some
+ surfaces using
+ <citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry>.
+ <constant>EGL_SWAP_BEHAVIOR</constant> applies only to the color
+ buffer. EGL has no way to specify or query whether or not
+ ancillary buffers are preserved, and applications should not
+ rely on this behavior.
+ </para>
+ <para>
+ <function>eglSwapBuffers</function> performs an implicit
+ flush operation on the context (<function>glFlush</function>
+ for an OpenGL ES or OpenGL context,
+ <function>vgFlush</function> for an OpenVG context) bound to
+ <parameter>surface</parameter> before swapping. Subsequent
+ client API commands may be issued on that context
+ immediately after calling
+ <function>eglSwapBuffers</function>, but are not executed
+ until the buffer exchange is completed.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="resize"><title>Native Window Resizing</title>
+ <para>
+ If the native window corresponding to
+ <parameter>surface</parameter> has been resized prior to the
+ swap, <parameter>surface</parameter> must be resized to match.
+ <parameter>surface</parameter> will normally be resized by the
+ EGL implementation at the time the native window is resized. If
+ the implementation cannot do this transparently to the client,
+ then <function>eglSwapBuffers</function> must detect the change
+ and resize surface prior to copying its pixels to the native
+ window. If <parameter>surface</parameter> shrinks as a result of
+ resizing, some rendered pixels are lost. If
+ <parameter>surface</parameter> grows, the newly allocated buffer
+ contents are undefined. The resizing behavior described here
+ only maintains consistency of EGL surfaces and native windows;
+ clients are still responsible for detecting window size changes
+ (using platform-specific means) and changing their viewport and
+ scissor regions accordingly.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ Attribute <constant>EGL_SWAP_BEHAVIOR</constant> is supported
+ only if the EGL version is 1.2 or greater. In earlier versions,
+ behavior is as though the attribute exists, and always has the
+ value <constant>EGL_BUFFER_DESTROYED</constant>.
+ </para>
+ <para>
+ The EGL 1.4 specification was updated to acknowledge that
+ ancillary buffers are not necessarily preserved after a swap,
+ and that the <constant>EGL_SWAP_BEHAVIOR</constant> attribute
+ applies only to the color buffer. This change in the
+ specification acknowledged the behavior of many shipping
+ implementations, and is not intended to result in behavior
+ changes in any existing implementation.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if swapping of the
+ surface buffers fails, <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ <para>
+ <constant>EGL_NOT_INITIALIZED</constant> is generated if
+ <parameter>display</parameter> has not been initialized.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if
+ <parameter>surface</parameter> is not an EGL drawing surface.
+ </para>
+ <para>
+ <constant>EGL_CONTEXT_LOST</constant> is generated if a power management
+ event has occurred. The application must destroy all contexts and
+ reinitialise OpenGL ES state and objects to continue rendering.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <function>glFlush</function>,
+ <citerefentry><refentrytitle>eglCopyBuffers</refentrytitle></citerefentry>,
+ <function>vgFlush</function>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSwapInterval.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSwapInterval.xml
new file mode 100644
index 0000000..a6add82
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglSwapInterval.xml
@@ -0,0 +1,94 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglSwapInterval">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglSwapInterval</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglSwapInterval</refname>
+ <refpurpose>
+ specifies the minimum number of video frame periods
+ per buffer swap for the window associated with the current context.
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglSwapInterval</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLint <parameter>interval</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>interval</parameter></term>
+ <listitem>
+ <para>
+ Specifies the minimum number of video frames that are displayed before
+ a buffer swap will occur.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ The interval takes effect when <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry> is
+ first called subsequent to the <function>eglSwapInterval</function> call.
+ </para>
+ <para>
+ The <parameter>interval</parameter> specified by the function applies to the draw surface
+ bound to the context that is current on the calling thread.
+ </para>
+ <para>
+ If <parameter>interval</parameter> is set to a value of <constant>0</constant>, buffer swaps are not synchronized to a
+ video frame, and the swap happens as soon as the render is complete. interval
+ is silently clamped to minimum and maximum implementation dependent
+ valuesbefore being stored; these values are defined by <type>EGLConfig</type> attributes
+ <constant>EGL_MIN_SWAP_INTERVAL</constant> and <constant>EGL_MAX_SWAP_INTERVAL</constant> respectively.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ The swap interval has no effect on <citerefentry><refentrytitle>eglCopyBuffers</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ The default swap interval is 1.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned on failure, <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_CONTEXT</constant> is generated if there is no current context
+ on the calling thread.
+ </para>
+ <para>
+ <constant>EGL_BAD_SURFACE</constant> is generated if there is no surface
+ bound to the current context.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglTerminate.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglTerminate.xml
new file mode 100644
index 0000000..70dd0c3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglTerminate.xml
@@ -0,0 +1,73 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglTerminate">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglTerminate</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglTerminate</refname>
+ <refpurpose>
+ terminate an <acronym>EGL</acronym> display connection
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglTerminate</function></funcdef>
+ <paramdef>EGLDisplay <parameter>display</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem>
+ <para>
+ Specifies the EGL display connection to terminate.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglTerminate</function> releases resources associated with
+ an EGL display connection. Termination marks all EGL resources associated
+ with the EGL display connection for deletion. If contexts or surfaces
+ associated with <parameter>display</parameter> is current to any thread,
+ they are not released until they are no longer current as a result of
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ Terminating an already terminated EGL display connection has no effect.
+ A terminated display may be re-initialized by calling
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>
+ again.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if
+ <function>eglTerminate</function> fails,
+ <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_DISPLAY</constant> is generated if
+ <parameter>display</parameter> is not an EGL display connection.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitClient.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitClient.xml
new file mode 100644
index 0000000..a77cf00
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitClient.xml
@@ -0,0 +1,84 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglWaitClient">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglWaitClient</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglWaitClient</refname>
+ <refpurpose>
+ Complete client API execution prior to subsequent native
+ rendering calls
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglWaitClient</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ All rendering calls for the currently bound context, for the
+ current rendering API, made prior to
+ <function>eglWaitClient</function> are guaranteed to be
+ executed before native rendering calls made after
+ <function>eglWaitClient</function>. The same result can be
+ achieved using client API-specific commands such as
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>
+ or
+ <citerefentry><refentrytitle>vgFinish</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ <function>eglWaitClient</function> is ignored if there is no
+ current EGL rendering context for the current rendering API.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if
+ <function>eglWaitClient</function> fails,
+ <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ If there is no current context for the current rendering
+ API, the function has no effect but still returns
+ <constant>EGL_TRUE</constant>.
+ </para>
+ <para>
+ <constant>EGL_BAD_CURRENT_SURFACE</constant> is generated if
+ the surface associated with the current context has a native
+ window or pixmap, and that window or pixmap is no longer
+ valid.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglWaitClient</function> is supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <para>
+ <function>eglWaitClient</function> is a generalized version
+ of <function>eglWaitGL</function>, supporting multiple
+ client APIs.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitGL</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>vgFinish</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitGL.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitGL.xml
new file mode 100644
index 0000000..033fd8b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitGL.xml
@@ -0,0 +1,82 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglWaitGL">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglWaitGL</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglWaitGL</refname>
+ <refpurpose>
+ Complete GL execution prior to subsequent native rendering
+ calls
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglWaitGL</function></funcdef>
+ <void/>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ All OpenGL ES rendering calls for the currently bound OpenGL
+ ES context made prior to <function>eglWaitGL</function> are
+ guaranteed to be executed before native rendering calls made
+ after <function>eglWaitGL</function>. The same result can be
+ achieved using
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>.
+ </para>
+ <para>
+ <function>eglWaitGL</function> is ignored if there is no
+ current EGL rendering context for OpenGL ES.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglWaitClient</function> is supported only if the
+ EGL version is 1.2 or greater.
+ </para>
+ <para>
+ <function>eglWaitClient</function> is a generalized version
+ of <function>eglWaitGL</function>, supporting multiple
+ client APIs. For backwards compatibility,
+ <function>eglWaitGL</function> continues to be supported and
+ is equivalent to the series of commands
+ </para>
+ <programlisting>
+ EGLenum api = <function>eglQueryAPI</function>();
+ <function>eglBindAPI</function>(<constant>EGL_OPENGL_ES_API</constant>);
+ <function>eglWaitClient</function>();
+ <function>eglBindAPI</function>(api);
+ </programlisting>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_FALSE</constant> is returned if
+ <function>eglWaitGL</function> fails,
+ <constant>EGL_TRUE</constant> otherwise.
+ </para>
+ <para>
+ <constant>EGL_BAD_CURRENT_SURFACE</constant> is generated if
+ the surface associated with the current context has a native
+ window or pixmap, and that window or pixmap is no longer
+ valid.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>
+ <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitNative.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitNative.xml
new file mode 100644
index 0000000..f4c4595
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitNative.xml
@@ -0,0 +1,73 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglWaitNative">
+ <info>
+ <copyright>
+ <year>2003-2014</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglWaitNative</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglWaitNative</refname>
+ <refpurpose>
+ complete native execution prior to subsequent GL rendering calls
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglWaitNative</function></funcdef>
+ <paramdef>EGLint <parameter>engine</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>engine</parameter></term>
+ <listitem>
+ <para>
+ Specifies a particular marking engine to be waited on.
+ Must be <constant>EGL_CORE_NATIVE_ENGINE</constant>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ Native rendering calls made prior to <function>eglWaitNative</function>
+ are guaranteed to be executed before GL rendering calls made after
+ <function>eglWaitNative</function>.
+ </para>
+ <para>
+ <function>eglWaitNative</function>
+ is ignored if there is no current
+ <acronym>EGL</acronym>
+ rendering context.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <constant>EGL_BAD_PARAMETER</constant> is generated if
+ <parameter>engine</parameter> is not a recognized marking engine.
+ </para>
+ <para>
+ <constant>EGL_BAD_CURRENT_SURFACE</constant>
+ is generated if the surface associated with the current context has a
+ native window or pixmap, and that window or pixmap is no longer valid.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglWaitGL</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitSync.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitSync.xml
new file mode 100644
index 0000000..57d5651
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/eglWaitSync.xml
@@ -0,0 +1,134 @@
+<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglWaitSync">
+ <info>
+ <copyright>
+ <year>2018</year>
+ <holder>The Khronos Group Inc.</holder>
+ </copyright>
+ </info>
+ <refmeta>
+ <refentrytitle>eglWaitSync</refentrytitle>
+ <manvolnum>3G</manvolnum>
+ </refmeta>
+ <refnamediv>
+ <refname>eglWaitSync</refname>
+ <refpurpose>
+ Wait in the server for a sync object to be signalled
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>C Specification</title>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>EGLBoolean <function>eglWaitSync</function></funcdef>
+ <paramdef>(EGLDisplay <parameter>display</parameter></paramdef>
+ <paramdef>EGLSync <parameter>sync</parameter></paramdef>
+ <paramdef>EGLint <parameter>flags</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1 xml:id="parameters"><title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>display</parameter></term>
+ <listitem><para>
+ Specifies the <acronym>EGL</acronym> display connection.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>sync</parameter></term>
+ <listitem><para>
+ Specifies the sync object to wait on.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>flags</parameter></term>
+ <listitem><para>
+ Specifies flags controlling wait behavior.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1 xml:id="description"><title>Description</title>
+ <para>
+ <function>eglWaitSync</function> is similar to
+ <function>eglClientWaitSync</function>, but instead of blocking
+ and not returning to the application until
+ <parameter>sync</parameter> is signaled,
+ <function>eglWaitSync</function> returns immediately. On
+ success, <constant>EGL_TRUE</constant> is returned, and the
+ server for the client API context will block until
+ <parameter>sync</parameter> is signaled.
+ </para>
+ <para>
+ Note: <function>eglWaitSync</function> allows applications to
+ continue to queue commands from the application in anticipation
+ of the sync being signaled, potentially increasing parallelism
+ between application, client API server code, and the GPU. The
+ server only blocks execution of commands for the specific
+ context on which <function>eglWaitSync</function> was issued;
+ other contexts implemented by the same server are not affected..
+ </para>
+ <para>
+ <parameter>sync</parameter> has the same meaning as for
+ <function>eglClientWaitSync</function>.
+ </para>
+ <para>
+ <parameter>flags</parameter> must be 0.
+ </para>
+ <para>
+ <function>eglWaitSync</function> requires support from the bound
+ client API, and will not succeed unless the same client API
+ properties described for creation of fence syncs in
+ <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>
+ are satisfied.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="errors"><title>Errors</title>
+ <para>
+ <function>eglWaitSync</function> returns
+ <constant>EGL_FALSE</constant> on failure, and does not cause
+ the server for the client API context to block.
+ </para>
+ <para>
+ If the current context for the currently bound client API does
+ not support server waits, an <constant>EGL_BAD_MATCH</constant>
+ error is generated.
+ </para>
+ <para>
+ If no context is current for the currently bound client API
+ (i.e., <function>eglGetCurrentContext</function> returns
+ <constant>EGL_NO_CONTEXT</constant>), an
+ <constant>EGL_BAD_MATCH</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>display</parameter> does not match the
+ <type>EGLDisplay</type> passed to
+ <function>eglCreateSync</function> when
+ <parameter>sync</parameter> was created, the behavior is
+ undefined.
+ </para>
+ <para>
+ If <parameter>sync</parameter> is not a valid sync object for
+ <parameter>display</parameter>, an
+ <constant>EGL_BAD_PARAMETER</constant> error is generated.
+ </para>
+ <para>
+ If <parameter>flags</parameter> is not 0, an
+ <constant>EGL_BAD_PARAMETER</constant> error is generated.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="notes"><title>Notes</title>
+ <para>
+ <function>eglWaitSync</function> is available only if the EGL
+ version is 1.5 or greater.
+ </para>
+ </refsect1>
+ <refsect1 xml:id="seealso"><title>See Also</title>
+ <para>
+ <citerefentry><refentrytitle>eglClientWaitSync</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglCreateSync</refentrytitle></citerefentry>,
+ <citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry>
+ </para>
+ </refsect1>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
+</refentry>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/headBackground.jpg b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/headBackground.jpg
new file mode 100644
index 0000000..9ae0c2f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/headBackground.jpg
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/EGL_300.png b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/EGL_300.png
new file mode 100644
index 0000000..7c20efb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/EGL_300.png
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/KhronosLogo.jpg b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/KhronosLogo.jpg
new file mode 100644
index 0000000..f8a05f6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/KhronosLogo.jpg
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/accord.js b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/accord.js
new file mode 100644
index 0000000..240489e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/accord.js
@@ -0,0 +1,58 @@
+<!-- Javascript for accordion menus, included by index.php, shared with OpenCL man pages -->
+<script type="text/javascript">
+<!--
+var temp, temp2, cookieArray, cookieArray2, cookieCount;
+function initiate(){
+ cookieCount=0;
+ if(document.cookie){
+ cookieArray=document.cookie.split(";");
+ cookieArray2=new Array();
+ for(i in cookieArray){
+ cookieArray2[cookieArray[i].split("=")[0].replace(/ /g,"")]=cookieArray[i].split("=")[1].replace(/ /g,"");
+ }
+ }
+ cookieArray=(document.cookie.indexOf("state=")>=0)?cookieArray2["state"].split(","):new Array();
+ temp=document.getElementById("containerul");
+ for(var o=0;o<temp.getElementsByTagName("li").length;o++){
+ if(temp.getElementsByTagName("li")[o].getElementsByTagName("ul").length>0){
+ temp2 = document.createElement("span");
+ temp2.className = "symbols";
+ temp2.style.backgroundImage = (cookieArray.length>0)?((cookieArray[cookieCount]=="true")?"url(bullets-contract.gif)":"url(bullets-expand.gif)"):"url(bullets-expand.gif)";
+ temp2.onmousedown=function(){
+ showhide(this.parentNode);
+ writeCookie();
+ }
+ temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild)
+ temp.getElementsByTagName("li")[o].getElementsByTagName("ul")[0].style.display = "none";
+ if(cookieArray[cookieCount]=="true"){
+ showhide(temp.getElementsByTagName("li")[o]);
+ }
+ cookieCount++;
+ }
+ else{
+ temp2 = document.createElement("span");
+ temp2.className = "symbols";
+ temp2.style.backgroundImage = "url(bullets-end.gif)";
+ temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild);
+ }
+ }
+}
+
+function showhide(el){
+ el.getElementsByTagName("ul")[0].style.display=(el.getElementsByTagName("ul")[0].style.display=="block")?"none":"block";
+ el.getElementsByTagName("span")[0].style.backgroundImage=(el.getElementsByTagName("ul")[0].style.display=="block")?"url(bullets-contract.gif)":"url(bullets-expand.gif)";
+}
+
+function writeCookie(){ // Runs through the menu and puts the "states" of each nested list into an array, the array is then joined together and assigned to a cookie.
+ cookieArray=new Array()
+ for(var q=0;q<temp.getElementsByTagName("li").length;q++){
+ if(temp.getElementsByTagName("li")[q].childNodes.length>0){
+ if(temp.getElementsByTagName("li")[q].childNodes[0].nodeName=="SPAN" && temp.getElementsByTagName("li")[q].getElementsByTagName("ul").length>0){
+ cookieArray[cookieArray.length]=(temp.getElementsByTagName("li")[q].getElementsByTagName("ul")[0].style.display=="block");
+ }
+ }
+ }
+ document.cookie="state="+cookieArray.join(",")+";expires="+new Date(new Date().getTime() + 365*24*60*60*1000).toGMTString();
+}
+//-->
+</script>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-contract.gif b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-contract.gif
new file mode 100644
index 0000000..bb1e955
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-contract.gif
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-end.gif b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-end.gif
new file mode 100644
index 0000000..abd000e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-end.gif
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-expand.gif b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-expand.gif
new file mode 100644
index 0000000..e2dde60
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/bullets-expand.gif
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglBindAPI.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglBindAPI.xhtml
new file mode 100644
index 0000000..dbf34c3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglBindAPI.xhtml
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglBindAPI - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglBindAPI">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglBindAPI — Set the current rendering API</p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglBindAPI</strong>(</code>
+ </td>
+ <td>EGLenum <var class="pdparam">api</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>api</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the client API to bind, one of
+ <code class="constant">EGL_OPENGL_API</code>,
+ <code class="constant">EGL_OPENGL_ES_API</code>, or
+ <code class="constant">EGL_OPENVG_API</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglBindAPI</code> defines the current
+ rendering API for EGL in the thread it is called from. The
+ current rendering API is one of the client rendering APIs
+ supported by the EGL implementation, and affects the
+ behavior of other EGL commands including
+ <code class="function">eglCreateContext</code>,
+ <code class="function">eglGetCurrentContext</code>,
+ <code class="function">eglGetCurrentDisplay</code>,
+ <code class="function">eglGetCurrentSurface</code>,
+ <code class="function">eglMakeCurrent</code>,
+ <code class="function">eglSwapInterval</code>,
+ <code class="function">eglWaitClient</code>, and
+ <code class="function">eglWaitNative</code>.
+ </p>
+ <p>
+ If <em class="parameter"><code>api</code></em> is
+ <code class="constant">EGL_OPENGL_API</code>, the current rendering
+ API is set to the OpenGL API.
+ </p>
+ <p>
+ If <em class="parameter"><code>api</code></em> is
+ <code class="constant">EGL_OPENGL_ES_API</code>, the current
+ rendering API is set to the OpenGL ES API.
+ </p>
+ <p>
+ If <em class="parameter"><code>api</code></em> is
+ <code class="constant">EGL_OPENVG_API</code>, the current rendering
+ API is set to the OpenVG API.
+ </p>
+ <p>
+ If an error occurs, the current rendering API is unchanged.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglBindAPI</code> and the corresponding
+ <code class="constant">EGL_OPENGL_ES_API</code> and
+ <code class="constant">EGL_OPENVG_API</code>
+ <em class="parameter"><code>api</code></em> parameters are supported only if
+ the EGL version is 1.2 or greater. The
+ <code class="constant">EGL_OPENGL_API</code> parameter is supported
+ only if the EGL version is 1.4 or greater.
+ </p>
+ <p>
+ The initial value of the current rendering API is
+ <code class="constant">EGL_OPENGL_ES_API</code> unless OpenGL ES is
+ not supported by an implementation, in which case the
+ initial value is <code class="constant">EGL_NONE</code> (however,
+ <code class="constant">EGL_NONE</code> is not a valid
+ <em class="parameter"><code>api</code></em> parameter to
+ <code class="function">eglBindAPI</code>).
+ </p>
+ <p>
+ The current rendering API can be queried by calling
+ <code class="function">eglQueryAPI</code>.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>api</code></em> is not one of the accepted
+ tokens, or if the specified client API is not supported by
+ the EGL implementation.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQueryAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryAPI</span></span></a>,
+ <a class="citerefentry" href="eglSwapInterval.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapInterval</span></span></a>,
+ <a class="citerefentry" href="eglWaitClient.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitClient</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglBindTexImage.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglBindTexImage.xhtml
new file mode 100644
index 0000000..a3c6dbb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglBindTexImage.xhtml
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglBindTexImage - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglBindTexImage">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglBindTexImage —
+ Defines a two-dimensional texture image
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglBindTexImage</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSurface <var class="pdparam">surface</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">buffer</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>buffer</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the texture image data.</p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ The texture image consists of the image data in <em class="parameter"><code>buffer</code></em> for the specified surface, and need not be copied.
+ </p>
+ <p>
+ The texture target, the texture format and the size of the texture components are derived from
+ attributes of the specified surface, which must be a pbuffer supporting one of the
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGB</code> or <code class="constant">EGL_BIND_TO_TEXTURE_RGBA</code> attributes.
+ </p>
+ <p>
+ The pbuffer attribute <code class="constant">EGL_TEXTURE_FORMAT</code> determines the base internal format
+ of the texture.
+ </p>
+ <p>
+ The texture target is derived from the <code class="constant">EGL_TEXTURE_TARGET</code> attribute of surface.
+ If the attribute value is <code class="constant">EGL_TEXTURE_2D</code>, then <em class="parameter"><code>buffer</code></em> defines a texture for
+ the two-dimensional texture object which is bound to the current context (hereafter
+ referred to as the current texture object).
+ </p>
+ <p>
+ If <em class="parameter"><code>display</code></em> and <em class="parameter"><code>surface</code></em> are the display and surface for the calling thread's current
+ context, <code class="function">eglBindTexImage</code> performs an implicit <a class="citerefentry" href="glFlush.xhtml"><span class="citerefentry"><span class="refentrytitle">glFlush</span></span></a>.
+ For other surfaces, <code class="function">eglBindTexImage</code> waits for all effects from previously issued OpenGL ES commands
+ drawing to the surface to complete before defining the texture image, as
+ though <a class="citerefentry" href="glFinish.xhtml"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a> were called on the last context to which that surface were bound.
+ </p>
+ <p>
+ After <code class="function">eglBindTexImage</code> is called, the specified surface is no longer available
+ for reading or writing. Any read operation, such as <a class="citerefentry" href="glReadPixels.xhtml"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a> or
+ <a class="citerefentry" href="eglCopyBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCopyBuffers</span></span></a>, which reads values from any of the surface's color buffers or ancillary
+ buffers will produce indeterminate results. In addition, draw operations that are
+ done to the surface before its color buffer is released from the texture produce indeterminate
+ results. Specifically, if the surface is current to a context and thread
+ then rendering commands will be processed and the context state will be updated,
+ but the surface may or may not be written.
+ </p>
+ <p>
+ Texture mipmap levels are automatically generated when all of the following
+ conditions are met while calling <code class="function">eglBindTexImage</code>:
+ </p>
+ <div class="itemizedlist">
+ <ul class="itemizedlist" style="list-style-type: disc; ">
+ <li class="listitem">
+ <p>
+ The <code class="constant">EGL_MIPMAP_TEXTURE</code> attribute of the pbuffer being bound is
+ <code class="constant">EGL_TRUE</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ The OpenGL ES texture parameter <code class="constant">GL_GENERATE_MIPMAP</code> is <code class="constant">GL_TRUE</code> for
+ the currently bound texture.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ The value of the <code class="constant">EGL_MIPMAP_LEVEL</code> attribute of the pbuffer being bound is
+ equal to the value of the texture parameter <code class="constant">GL_TEXTURE_BASE_LEVEL</code>.
+ In this case, additional mipmap levels are generated as described in section 3.8
+ of the OpenGL ES 1.1 Specification.
+ </p>
+ </li>
+ </ul>
+ </div>
+ <p>
+ In this case, additional mipmap levels are generated as described in section 3.8
+ of the OpenGL ES 1.1 Specification.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <a class="citerefentry" href="eglSwapBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a> has no effect if it is
+ called on a bound surface.
+ </p>
+ <p>
+ Any existing images associated with the different mipmap levels of the texture object
+ are freed (it is as if <a class="citerefentry" href="glTexImage.xhtml"><span class="citerefentry"><span class="refentrytitle">glTexImage</span></span></a>
+ was called with an image of zero width).
+ </p>
+ <p>
+ The color buffer is bound to a texture object. If the texture object is
+ shared between contexts, then the color buffer is also shared. If a texture object is
+ deleted before <a class="citerefentry" href="eglReleaseTexImage.xhtml"><span class="citerefentry"><span class="refentrytitle">eglReleaseTexImage</span></span></a> is called, then the color buffer is released and
+ the surface is made available for reading and writing.
+ </p>
+ <p>
+ It is not an error to call <a class="citerefentry" href="glTexImage2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a> or
+ <a class="citerefentry" href="glCopyTexImage2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a> to replace an
+ image of a texture object that has a color buffer bound to it. However, these calls
+ will cause the color buffer to be released back to the surface and new memory will
+ be allocated for the texture. Note that the color buffer is released even if the image
+ that is being defined is a mipmap level that was not defined by the color buffer.
+ </p>
+ <p>
+ <code class="function">eglBindTexImage</code> is ignored if there is no current rendering context.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_BAD_ACCESS</code> is generated if
+ <em class="parameter"><code>buffer</code></em> is already bound to a texture.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ surface attribute <code class="constant">EGL_TEXTURE_FORMAT</code> is
+ set to <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>buffer</code></em> is not a valid buffer
+ (currently only <code class="constant">EGL_BACK_BUFFER</code> may be
+ specified).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL surface, or is
+ not a pbuffer surface supporting texture binding.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglReleaseTexImage.xhtml"><span class="citerefentry"><span class="refentrytitle">eglReleaseTexImage</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglChooseConfig.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglChooseConfig.xhtml
new file mode 100644
index 0000000..ffd6b64
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglChooseConfig.xhtml
@@ -0,0 +1,1150 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglChooseConfig - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglChooseConfig">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglChooseConfig —
+ return a list of EGL frame buffer configurations that match specified attributes
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglChooseConfig</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint const * <var class="pdparam">attrib_list</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLConfig * <var class="pdparam">configs</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">config_size</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint * <var class="pdparam">num_config</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies attributes required to match by configs.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>configs</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns an array of frame buffer configurations.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config_size</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the size of the array of frame buffer configurations.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>num_config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of frame buffer configurations returned.</p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglChooseConfig</code> returns in
+ <em class="parameter"><code>configs</code></em> a list of all
+ <abbr class="acronym">EGL</abbr> frame buffer configurations that
+ match the attributes specified in
+ <em class="parameter"><code>attrib_list</code></em>. The returned
+ <span class="type">EGLConfig</span>s can be used in any
+ <abbr class="acronym">EGL</abbr> function that requires an
+ <abbr class="acronym">EGL</abbr> frame buffer configuration.
+ </p>
+ <p>
+ If <em class="parameter"><code>configs</code></em> is not
+ <code class="constant">NULL</code>, up to
+ <em class="parameter"><code>config_size</code></em> configs will be returned
+ in the array pointed to by <em class="parameter"><code>configs</code></em>.
+ The number of configs actually returned will be returned in
+ *<em class="parameter"><code>num_config</code></em>.
+ </p>
+ <p>
+ If <em class="parameter"><code>configs</code></em> is
+ <code class="constant">NULL</code>, no configs will be returned in
+ <em class="parameter"><code>configs</code></em>. Instead, the total number of
+ configs matching <em class="parameter"><code>attrib_list</code></em> will be
+ returned in *<em class="parameter"><code>num_config</code></em>. In this case
+ <em class="parameter"><code>config_size</code></em> is ignored. This form of
+ <code class="function">eglChooseConfig</code> is used to determine
+ the number of matching frame buffer configurations, followed
+ by allocating an array of <span class="type">EGLConfig</span> to pass
+ into another call to <code class="function">eglChooseConfig</code>
+ with all other parameters unchanged.
+ </p>
+ <p>
+ All attributes in <em class="parameter"><code>attrib_list</code></em>,
+ including boolean attributes, are immediately followed by
+ the corresponding desired value. The list is terminated with
+ <code class="constant">EGL_NONE</code>. If an attribute is not
+ specified in <em class="parameter"><code>attrib_list</code></em> then the
+ default value (see below) is used (and the attribute is said
+ to be specified implicitly). For example, if
+ <code class="constant">EGL_DEPTH_SIZE</code> is not specified then it
+ is assumed to be zero. For some attributes, the default is
+ <code class="constant">EGL_DONT_CARE</code> meaning that any value is
+ OK for this attribute, so the attribute will not be checked.
+ </p>
+ <p>
+ Attributes are matched in an attribute-specific manner. Some
+ of the attributes, such as <code class="constant">EGL_LEVEL</code>,
+ must match the specified value exactly. Others, such as,
+ <code class="constant">EGL_RED_SIZE</code> must meet or exceed the
+ specified minimum values. If more than one EGL frame buffer
+ configuration matching all attributes is found, then a list
+ of configurations, sorted according to the ``best'' match
+ criteria, is returned. The match criteria for each attribute
+ and the exact sorting order is defined below.
+ </p>
+ <p>
+ For the bitmask attributes
+ <code class="constant">EGL_CONFORMANT</code>,
+ <code class="constant">EGL_RENDERABLE_TYPE</code>, and
+ <code class="constant">EGL_SURFACE_TYPE</code>, only the nonzero bits
+ of the mask are considered when matching. Any bits that are
+ zero in the specified bitmask attribute value may be either
+ zero or one in the resulting config's attribute value.
+ </p>
+ <p>
+ Attributes which may appear in
+ <em class="parameter"><code>attrib_list</code></em>, and their descriptions
+ and allowed values, are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_ALPHA_MASK_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired alpha mask buffer size, in
+ bits. The smallest alpha mask buffers of at least
+ the specified size are preferred. The default value
+ is zero.
+ </p>
+ <p>
+ The alpha mask buffer is used only by OpenVG.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_ALPHA_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the alpha component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest alpha component size
+ are preferred. Otherwise, color buffers with the
+ largest alpha component of at least the specified
+ size are preferred. The default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGB</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by
+ <code class="constant">EGL_DONT_CARE</code>,
+ <code class="constant">EGL_TRUE</code>, or
+ <code class="constant">EGL_FALSE</code>.
+ If <code class="constant">EGL_TRUE</code> is specified, then
+ only frame buffer configurations that support
+ binding of color buffers to an OpenGL ES RGB texture
+ will be considered. Currently only frame buffer
+ configurations that support pbuffers allow this. The
+ default value is <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGBA</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by one of
+ <code class="constant">EGL_DONT_CARE</code>,
+ <code class="constant">EGL_TRUE</code>, or
+ <code class="constant">EGL_FALSE</code>.
+ If <code class="constant">EGL_TRUE</code> is specified, then
+ only frame buffer configurations that support
+ binding of color buffers to an OpenGL ES RGBA
+ texture will be considered. Currently only frame
+ buffer configurations that support pbuffers allow
+ this. The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BLUE_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the blue component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest blue component size
+ are preferred. Otherwise, color buffers with the
+ largest blue component of at least the specified
+ size are preferred. The default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BUFFER_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired color buffer size, in bits.
+ The smallest color buffers of at least the specified
+ size are preferred. The default value is zero.
+ </p>
+ <p>
+ The color buffer size is the sum of
+ <code class="constant">EGL_RED_SIZE</code>,
+ <code class="constant">EGL_GREEN_SIZE</code>,
+ <code class="constant">EGL_BLUE_SIZE</code>, and
+ <code class="constant">EGL_ALPHA_SIZE</code>, and does not
+ include any padding bits which may be present in the
+ pixel format. It is usually preferable to specify
+ desired sizes for these color components
+ individually.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_COLOR_BUFFER_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by one of
+ <code class="constant">EGL_RGB_BUFFER</code> or
+ <code class="constant">EGL_LUMINANCE_BUFFER</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_RGB_BUFFER</code> indicates
+ an RGB color buffer; in this case,
+ attributes <code class="constant">EGL_RED_SIZE</code>,
+ <code class="constant">EGL_GREEN_SIZE</code> and
+ <code class="constant">EGL_BLUE_SIZE</code> must be non-zero, and
+ <code class="constant">EGL_LUMINANCE_SIZE</code> must be zero.
+ </p>
+ <p>
+ <code class="constant">EGL_LUMINANCE_BUFFER</code> indicates a luminance color
+ buffer. In this case <code class="constant">EGL_RED_SIZE</code>,
+ <code class="constant">EGL_GREEN_SIZE</code>,
+ <code class="constant">EGL_BLUE_SIZE</code> must be zero, and
+ <code class="constant">EGL_LUMINANCE_SIZE</code> must be non-zero.
+ </p>
+ <p>
+ For both RGB and luminance color buffers,
+ <code class="constant">EGL_ALPHA_SIZE</code> may be zero or
+ non-zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_CAVEAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by
+ <code class="constant">EGL_DONT_CARE</code>,
+ <code class="constant">EGL_NONE</code>,
+ <code class="constant">EGL_SLOW_CONFIG</code>, or
+ <code class="constant">EGL_NON_CONFORMANT_CONFIG</code>.
+ </p>
+ <p>
+ If <code class="constant">EGL_DONT_CARE</code> is specified,
+ then configs are not matched for this attribute. The
+ default value is <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ <p>
+ If <code class="constant">EGL_NONE</code> is specified, then
+ configs are matched for this attribute, but only
+ configs with no caveats (neither
+ <code class="constant">EGL_SLOW_CONFIG</code> or
+ <code class="constant">EGL_NON_CONFORMANT_CONFIG</code>) will
+ be considered.
+ </p>
+ <p>
+ If <code class="constant">EGL_SLOW_CONFIG</code> is
+ specified, then only slow configs configurations
+ will be considered. The meaning of``slow'' is
+ implementation-dependent, but typically indicates a
+ non-hardware-accelerated (software) implementation.
+ </p>
+ <p>
+ If <code class="constant">EGL_NON_CONFORMANT_CONFIG</code> is
+ specified, then only configs supporting
+ non-conformant OpenGL ES contexts will be
+ considered.
+ </p>
+ <p>
+ If the EGL version is 1.3 or later, caveat
+ <code class="constant">EGL_NON_CONFORMANT_CONFIG</code> is
+ obsolete, since the same information can be
+ specified via the
+ <code class="constant">EGL_CONFORMANT</code> attribute on a
+ per-client-API basis, not just for OpenGL ES.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_ID</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a valid integer ID that
+ indicates the desired EGL frame buffer
+ configuration. When a
+ <code class="constant">EGL_CONFIG_ID</code> is specified, all
+ other attributes are ignored. The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ <p>
+ The meaning of config IDs is
+ implementation-dependent. They are used only to
+ uniquely identify different frame buffer
+ configurations.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFORMANT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a bitmask indicating which types
+ of client API contexts created with respect to the
+ frame buffer configuration config must pass the
+ required conformance tests for that API. Mask bits
+ include:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_OPENGL_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating OpenGL contexts.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_OPENGL_ES_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating OpenGL ES 1.0
+ and/or 1.1 contexts.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_OPENGL_ES2_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating OpenGL ES 2.0 contexts.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_OPENVG_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating OpenVG contexts.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ For example, if the bitmask is set to
+ <code class="constant">EGL_OPENGL_ES_BIT</code>, only frame
+ buffer configurations that support creating
+ conformant OpenGL ES contexts will match. The
+ default value is zero.
+ </p>
+ <p>
+ Most EGLConfigs should be conformant for all
+ supported client APIs, and it is rarely desirable to
+ select a nonconformant config. Conformance
+ requirements limit the number of non-conformant
+ configs that an implementation can define.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_DEPTH_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired depth buffer size, in bits.
+ The smallest depth buffers of at least the specified
+ size is preferred. If the desired size is zero,
+ frame buffer configurations with no depth buffer are
+ preferred. The default value is zero.
+ </p>
+ <p>
+ The depth buffer is used only by OpenGL and OpenGL
+ ES client APIs.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_GREEN_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the green component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest green component size
+ are preferred. Otherwise, color buffers with the
+ largest green component of at least the specified
+ size are preferred. The default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LEVEL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer buffer level
+ specification. This specification is honored
+ exactly. Buffer level zero corresponds to the
+ default frame buffer of the display. Buffer level
+ one is the first overlay frame buffer, level two the
+ second overlay frame buffer, and so on. Negative
+ buffer levels correspond to underlay frame buffers.
+ The default value is zero.
+ </p>
+ <p>
+ Most platforms do not support buffer levels other than
+ zero. The behavior of windows placed in overlay and
+ underlay planes depends on the underlying platform.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LUMINANCE_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the luminance
+ component of the color buffer, in bits. If this
+ value is zero, color buffers with the smallest
+ luminance component size are preferred. Otherwise,
+ color buffers with the largest luminance component
+ of at least the specified size are preferred. The
+ default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by the handle of a valid native
+ pixmap, cast to <span class="type">EGLint</span>, or
+ <code class="constant">EGL_NONE</code>. If the value is not
+ <code class="constant">EGL_NONE</code>, only configs which
+ support creating pixmap surfaces with this pixmap
+ using
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>
+ will match this attribute. If the value is
+ <code class="constant">EGL_NONE</code>, then configs are not
+ matched for this attribute. The default value is
+ <code class="constant">EGL_NONE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> was
+ introduced due to the difficulty of determining an
+ <span class="type">EGLConfig</span> compatibile with a native
+ pixmap using only color component sizes.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_NATIVE_RENDERABLE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by
+ <code class="constant">EGL_DONT_CARE</code>,
+ <code class="constant">EGL_TRUE</code>, or
+ <code class="constant">EGL_FALSE</code>.
+ If <code class="constant">EGL_TRUE</code> is specified, then
+ only frame buffer configurations that allow native
+ rendering into the surface will be considered. The
+ default value is <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MAX_SWAP_INTERVAL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a integer that indicates the
+ maximum value that can be passed to
+ <a class="citerefentry" href="eglSwapInterval.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapInterval</span></span></a>.
+ The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIN_SWAP_INTERVAL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a integer that indicates the
+ minimum value that can be passed to eglSwapInterval.
+ The default value is <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RED_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the red component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest red component size
+ are preferred. Otherwise, color buffers with the
+ largest red component of at least the specified size
+ are preferred. The default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SAMPLE_BUFFERS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by the minimum acceptable number of
+ multisample buffers. Configurations with the
+ smallest number of multisample buffers that meet or
+ exceed this minimum number are preferred. Currently
+ operation with more than one multisample buffer is
+ undefined, so only values of zero or one will
+ produce a match. The default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SAMPLES</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by the minimum number of
+ samples required in multisample buffers.
+ Configurations with the smallest number of
+ samples that meet or exceed the specified
+ minimum number are preferred. Note that it is
+ possible for color samples in the multisample
+ buffer to have fewer bits than colors in the
+ main color buffers. However, multisampled
+ colors maintain at least as much color
+ resolution in aggregate as the main color
+ buffers.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_STENCIL_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired stencil buffer size, in bits.
+ The smallest stencil buffers of at least the
+ specified size are preferred. If the desired size is
+ zero, frame buffer configurations with no stencil
+ buffer are preferred. The default value is zero.
+ </p>
+ <p>
+ The stencil buffer is used only by OpenGL and
+ OpenGL ES client APIs.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RENDERABLE_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a bitmask indicating which types
+ of client API contexts the frame buffer
+ configuration must support creating with
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>).
+ Mask bits are the same as for attribute
+ <code class="constant">EGL_CONFORMANT</code>. The default
+ value is <code class="constant">EGL_OPENGL_ES_BIT</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SURFACE_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a bitmask indicating which EGL
+ surface types and capabilities the frame buffer
+ configuration must support. Mask bits include:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config allows specifying box filtered
+ multisample resolve behavior with
+ <a class="citerefentry" href="eglSurfaceAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_PBUFFER_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating pixel buffer surfaces.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_PIXMAP_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating pixmap surfaces.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config allows setting swap behavior for
+ color buffers with
+ <a class="citerefentry" href="eglSurfaceAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config allows specifying OpenVG rendering
+ with premultiplied alpha values at surface
+ creation time (see
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ and
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>).
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config allows specifying OpenVG rendering in
+ a linear colorspace at surface creation time
+ (see
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ and
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>).
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_WINDOW_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating window surfaces.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ For example, if the bitmask is set to
+ <code class="constant">EGL_WINDOW_BIT</code> |
+ <code class="constant">EGL_PIXMAP_BIT</code>,
+ only frame buffer configurations that support both
+ windows and pixmaps will be considered. The default
+ value is <code class="constant">EGL_WINDOW_BIT</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by one of
+ <code class="constant">EGL_NONE</code> or
+ <code class="constant">EGL_TRANSPARENT_RGB</code>. If
+ <code class="constant">EGL_NONE</code> is specified, then
+ only opaque frame buffer configurations will be
+ considered. If
+ <code class="constant">EGL_TRANSPARENT_RGB</code> is
+ specified, then only transparent frame buffer
+ configurations will be considered. The default value
+ is <code class="constant">EGL_NONE</code>.
+ </p>
+ <p>
+ Most implementations support only opaque frame
+ buffer configurations.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_RED_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer value indicating the
+ transparent red value. The value must be between
+ zero and the maximum color buffer value for red.
+ Only frame buffer configurations that use the
+ specified transparent red value will be considered.
+ The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ <p>
+ This attribute is ignored unless
+ <code class="constant">EGL_TRANSPARENT_TYPE</code> is included in
+ <em class="parameter"><code>attrib_list</code></em> and specified as
+ <code class="constant">EGL_TRANSPARENT_RGB</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_GREEN_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer value indicating the
+ transparent green value. The value must be between
+ zero and the maximum color buffer value for green.
+ Only frame buffer configurations that use the
+ specified transparent green value will be
+ considered. The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ <p>
+ This attribute is ignored unless
+ <code class="constant">EGL_TRANSPARENT_TYPE</code> is included in
+ <em class="parameter"><code>attrib_list</code></em> and specified as
+ <code class="constant">EGL_TRANSPARENT_RGB</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_BLUE_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer value indicating the
+ transparent blue value. The value must be between
+ zero and the maximum color buffer value for blue.
+ Only frame buffer configurations that use the
+ specified transparent blue value will be considered.
+ The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ <p>
+ This attribute is ignored unless
+ <code class="constant">EGL_TRANSPARENT_TYPE</code> is included in
+ <em class="parameter"><code>attrib_list</code></em> and specified as
+ <code class="constant">EGL_TRANSPARENT_RGB</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ When more than one EGL frame buffer configuration matches
+ the specified attributes, a list of matching configurations
+ is returned. The list is sorted according to the following
+ precedence rules, which are applied in ascending order
+ (i.e., configurations that are considered equal by a lower
+ numbered rule are sorted by the higher numbered rule):
+ </p>
+ <div class="orderedlist">
+ <ol class="orderedlist" type="1">
+ <li class="listitem">
+ <p>
+ Special: by <code class="constant">EGL_CONFIG_CAVEAT</code>,
+ where the precedence is <code class="constant">EGL_NONE</code>,
+ <code class="constant">EGL_SLOW_CONFIG</code>, and
+ <code class="constant">EGL_NON_CONFORMANT_CONFIG</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Special: by <code class="constant">EGL_COLOR_BUFFER_TYPE</code>,
+ where the precedence is
+ <code class="constant">EGL_RGB_BUFFER</code>,
+ <code class="constant">EGL_LUMINANCE_BUFFER</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Special: by larger total number of color bits (for an
+ RGB color buffer, this is the sum of
+ <code class="constant">EGL_RED_SIZE</code>,
+ <code class="constant">EGL_GREEN_SIZE</code>,
+ <code class="constant">EGL_BLUE_SIZE</code>, and
+ <code class="constant">EGL_ALPHA_SIZE</code>; for a luminance
+ color buffer, the sum of
+ <code class="constant">EGL_LUMINANCE_SIZE</code> and
+ <code class="constant">EGL_ALPHA_SIZE</code>). If the requested
+ number of bits in <em class="parameter"><code>attrib_list</code></em> is
+ <code class="constant">0</code> or
+ <code class="constant">EGL_DONT_CARE</code> for a particular
+ color component, then the number of bits for that
+ component is not considered.
+ </p>
+ <p>
+ This sort rule places configs with deeper color buffers
+ before configs with shallower color buffers, which may
+ be counterintuitive.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_BUFFER_SIZE</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_SAMPLE_BUFFERS</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_SAMPLES</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_DEPTH_SIZE</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_STENCIL_SIZE</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_ALPHA_MASK_SIZE</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Special: <code class="constant">EGL_NATIVE_VISUAL_TYPE</code>
+ (the actual sort order is implementation-defined,
+ depending on the meaning of native visual types).
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_CONFIG_ID</code> (this is
+ always the last sorting rule, and guarantees a unique
+ ordering).
+ </p>
+ </li>
+ </ol>
+ </div>
+ <p>
+ <span class="type">EGLConfigs</span> are not sorted with respect to the
+ attributes <code class="constant">EGL_BIND_TO_TEXTURE_RGB</code>,
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGBA</code>,
+ <code class="constant">EGL_CONFORMANT</code>,
+ <code class="constant">EGL_LEVEL</code>,
+ <code class="constant">EGL_NATIVE_RENDERABLE</code>,
+ <code class="constant">EGL_MAX_SWAP_INTERVAL</code>,
+ <code class="constant">EGL_MIN_SWAP_INTERVAL</code>,
+ <code class="constant">EGL_RENDERABLE_TYPE</code>,
+ <code class="constant">EGL_SURFACE_TYPE</code>,
+ <code class="constant">EGL_TRANSPARENT_TYPE</code>,
+ <code class="constant">EGL_TRANSPARENT_RED_VALUE</code>,
+ <code class="constant">EGL_TRANSPARENT_GREEN_VALUE</code>, and
+ <code class="constant">EGL_TRANSPARENT_BLUE_VALUE</code>.
+ </p>
+ </div>
+ <div class="refsect1" id="examples">
+ <h2>Examples</h2>
+ <p>
+ The following example specifies a frame buffer configuration
+ in the normal frame buffer (not an overlay or underlay). The
+ returned frame buffer configuration supports a color buffer
+ with at least 4 bits each of red, green and blue, and
+ possibly no alpha bits. The code shown in the example may or
+ may not have a depth buffer, or a stencil buffer.
+ </p>
+ <pre class="programlisting">EGLint const attrib_list[] = {
+ EGL_RED_SIZE, 4,
+ EGL_GREEN_SIZE, 4,
+ EGL_BLUE_SIZE, 4,
+ EGL_NONE
+};</pre>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="constant">EGL_RENDERABLE_TYPE</code> bit
+ <code class="constant">EGL_OPENGL_BIT</code>, and
+ <code class="constant">EGL_SURFACE_TYPE</code> bits
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX_BIT</code> and
+ <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code> are
+ supported only if the EGL version is 1.4 or greater.
+ </p>
+ <p>
+ <code class="constant">EGL_CONFORMANT</code>,
+ <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code>,
+ <code class="constant">EGL_RENDERABLE_TYPE</code> bit
+ <code class="constant">EGL_OPENGL_ES2_BIT</code>, and
+ <code class="constant">EGL_SURFACE_TYPE</code> bits
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> and
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR_BIT</code> are
+ supported only if the EGL version is 1.3 or greater.
+ </p>
+ <p>
+ <code class="constant">EGL_ALPHA_MASK_SIZE</code>,
+ <code class="constant">EGL_COLOR_BUFFER_TYPE</code>,
+ <code class="constant">EGL_LUMINANCE_SIZE</code>,
+ <code class="constant">EGL_RENDERABLE_TYPE</code>, and
+ <code class="constant">EGL_RENDERABLE_TYPE</code> bits
+ <code class="constant">EGL_OPENGL_ES_BIT</code> and
+ <code class="constant">EGL_OPENVG_BIT</code> are supported only if
+ the EGL version is 1.2 or greater.
+ </p>
+ <p>
+ If OpenGL or OpenGL ES rendering is supported for a
+ luminance color buffer, it is treated as RGB rendering with
+ the value of <code class="constant">GL_RED_BITS</code> equal to
+ <code class="constant">EGL_LUMINANCE_SIZE</code> and the values of
+ <code class="constant">GL_GREEN_BITS</code> and
+ <code class="constant">GL_BLUE_BITS</code> equal to zero. The red
+ component of fragments is written to the luminance channel
+ of the color buffer while the green and blue components are
+ discarded.
+ </p>
+ <p>
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>
+ and
+ <a class="citerefentry" href="eglGetConfigAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>
+ can be used to implement selection algorithms other than the
+ generic one implemented by
+ <code class="function">eglChooseConfig</code>. Call
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>
+ to retrieve all the frame buffer configurations, or
+ alternatively, all the frame buffer configurations with a
+ particular set of attributes. Next call
+ <a class="citerefentry" href="eglGetConfigAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>
+ to retrieve additional attributes for the frame buffer
+ configurations and then select between them.
+ </p>
+ <p>
+ EGL implementors are strongly discouraged, but not
+ proscribed, from changing the selection algorithm used by
+ <code class="function">eglChooseConfig</code>. Therefore, selections
+ may change from release to release of the client-side
+ library.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>configs</code></em> and
+ <em class="parameter"><code>num_config</code></em> are not modified when
+ <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attribute_list</code></em> contains an invalid frame buffer
+ configuration attribute or an
+ attribute value that is unrecognized or out of range.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>num_config</code></em> is <code class="constant">NULL</code>.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>,
+ <a class="citerefentry" href="eglSurfaceAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>,
+ <a class="citerefentry" href="eglSwapInterval.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapInterval</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglClientWaitSync.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglClientWaitSync.xhtml
new file mode 100644
index 0000000..daccb25
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglClientWaitSync.xhtml
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglClientWaitSync - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglClientWaitSync">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglClientWaitSync —
+ Wait in the client for a sync object to be signalled
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLint <strong class="fsfunc">eglClientWaitSync</strong>(</code>
+ </td>
+ <td>(EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSync <var class="pdparam">sync</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">flags</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLTime <var class="pdparam">timeout</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the <abbr class="acronym">EGL</abbr> display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>sync</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the sync object to wait on.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>flags</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies flags controlling wait behavior.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>timeout</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies wait timeout interval.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglClientWaitSync</code> blocks the calling thread
+ until the specified sync object <em class="parameter"><code>sync</code></em> is
+ signaled, or until <em class="parameter"><code>timeout</code></em> nanoseconds
+ have passed.
+ </p>
+ <p>
+ More than one <code class="function">eglClientWaitSync</code> may be
+ outstanding on the same <em class="parameter"><code>sync</code></em> at any given
+ time. When there are multiple threads blocked on the same
+ <em class="parameter"><code>sync</code></em> and the sync object is signaled, all
+ such threads are released, but the order in which they are
+ released is not defined.
+ </p>
+ <p>
+ If the value of <em class="parameter"><code>timeout</code></em> is zero, then
+ <code class="function">eglClientWaitSync</code> simply tests the current
+ status of <em class="parameter"><code>sync</code></em>. If the value of
+ <em class="parameter"><code>timeout</code></em> is the special value
+ <code class="constant">EGL_FOREVER</code>, then
+ <code class="function">eglClientWaitSync</code> does not time out. For
+ all other values, <em class="parameter"><code>timeout</code></em> is adjusted to
+ the closest value allowed by the implementation-dependent
+ timeout accuracy, which may be substantially longer than one
+ nanosecond.
+ </p>
+ <p>
+ <code class="function">eglClientWaitSync</code> returns one of three
+ status values describing the reason for returning. A return
+ value of <code class="constant">EGL_TIMEOUT_EXPIRED</code> indicates that
+ the specified timeout period expired before
+ <em class="parameter"><code>sync</code></em> was signaled, or if
+ <em class="parameter"><code>timeout</code></em> is zero, indicates that
+ <em class="parameter"><code>sync</code></em> is not signaled. A return value of
+ <code class="constant">EGL_CONDITION_SATISFIED</code> indicates that
+ <em class="parameter"><code>sync</code></em> was signaled before the timeout
+ expired, which includes the case when
+ <em class="parameter"><code>sync</code></em> was already signaled when
+ <code class="function">eglClientWaitSync</code> was called. If an error
+ occurs then an error is generated and
+ <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ If the sync object being blocked upon will not be signaled in
+ finite time (for example, by an associated fence command issued
+ previously, but not yet flushed to the graphics pipeline), then
+ <code class="function">eglClientWaitSync</code> may wait forever. To help
+ prevent this behavior, if the
+ <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> bit is set in
+ <em class="parameter"><code>flags</code></em>, and <em class="parameter"><code>sync</code></em> is
+ unsignaled when <code class="function">eglClientWaitSync</code> is
+ called, then the equivalent of Flush() will be performed for the
+ current API context (i.e., the context returned by
+ <code class="function">eglGetCurrentContext</code>) before blocking on
+ <em class="parameter"><code>sync</code></em>. If no context is current for the
+ bound API, the <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code>
+ bit is ignored.
+ </p>
+ <p>
+ Note: the simple Flush behavior defined by
+ <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> will not help
+ when waiting for a fence command issued in a different context's
+ command stream. Applications which block on a fence sync object
+ must take additional steps to ensure that the context from which
+ the associated fence command was issued has flushed that command
+ to the graphics pipeline.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="function">eglClientWaitSync</code> returns
+ <code class="constant">EGL_FALSE</code> on failure.
+ </p>
+ <p>
+ If <em class="parameter"><code>sync</code></em> is not a valid sync object for
+ <em class="parameter"><code>display</code></em>, an
+ <code class="constant">EGL_BAD_PARAMETER</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>display</code></em> does not match the
+ <span class="type">EGLDisplay</span> passed to
+ <code class="function">eglCreateSync</code> when
+ <em class="parameter"><code>sync</code></em> was created, the behaviour is
+ undefined.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglClientWaitSync</code> is available only if the
+ EGL version is 1.5 or greater.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateSync</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+ <a class="citerefentry" href="eglWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitSync</span></span></a>,
+ <code class="function">glFinish</code>,
+ <code class="function">vgFinish</code>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCopyBuffers.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCopyBuffers.xhtml
new file mode 100644
index 0000000..c5c10aa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCopyBuffers.xhtml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCopyBuffers - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglCopyBuffers">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglCopyBuffers —
+ copy <abbr class="acronym">EGL</abbr> surface color buffer to a native pixmap
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglCopyBuffers</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSurface <var class="pdparam">surface</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>NativePixmapType <var class="pdparam">native_pixmap</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface whose color buffer is to be copied.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>native_pixmap</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the native pixmap as target of the copy.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCopyBuffers</code> copies the color buffer of
+ <em class="parameter"><code>surface</code></em> to <em class="parameter"><code>native_pixmap</code></em>.
+ </p>
+ <p>
+ <code class="function">eglCopyBuffers</code> performs an implicit
+ <a class="citerefentry" href="glFlush.xhtml"><span class="citerefentry"><span class="refentrytitle">glFlush</span></span></a>
+ before it returns. Subsequent
+ GL commands may be issued immediately after calling
+ <code class="function">eglCopyBuffers</code>,
+ but are not executed until copying of the color buffer is completed.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ The color buffer of <em class="parameter"><code>surface</code></em> is left unchanged
+ after calling <code class="function">eglCopyBuffers</code>.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if swapping of the
+ surface buffers fails, <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL drawing surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_NATIVE_PIXMAP</code> is generated if
+ the implementation does not support native pixmaps.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_NATIVE_PIXMAP</code> may be generated if
+ <em class="parameter"><code>native_pixmap</code></em> is not a valid native pixmap.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ the format of <em class="parameter"><code>native_pixmap</code></em> is not compatible
+ with the color buffer of <em class="parameter"><code>surface</code></em>.
+ </p>
+ <p>
+ <code class="constant">EGL_CONTEXT_LOST</code> is generated if a power management
+ event has occurred. The application must destroy all contexts and
+ reinitialise OpenGL ES state and objects to continue rendering.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glFlush.xhtml"><span class="citerefentry"><span class="refentrytitle">glFlush</span></span></a>,
+ <a class="citerefentry" href="eglSwapBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateContext.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateContext.xhtml
new file mode 100644
index 0000000..3b60280
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateContext.xhtml
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreateContext - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglCreateContext">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglCreateContext —
+ create a new <abbr class="acronym">EGL</abbr> rendering context
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLContext <strong class="fsfunc">eglCreateContext</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLConfig <var class="pdparam">config</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLContext <var class="pdparam">share_context</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint const * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the
+ <abbr class="acronym">EGL</abbr>
+ display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL frame buffer configuration that
+ defines the frame buffer resource available to the rendering context.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>share_context</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies another
+ <abbr class="acronym">EGL</abbr>
+ rendering context with which to share data, as
+ defined by the client API corresponding to the
+ contexts. Data is also shared with all other
+ contexts with which
+ <em class="parameter"><code>share_context</code></em> shares data.
+ <code class="constant">EGL_NO_CONTEXT</code> indicates that
+ no sharing is to take place.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies attributes and attribute values for the
+ context being created. Only the attribute
+ <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code> may
+ be specified.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreateContext</code> creates an EGL
+ rendering context for the current rendering API (as set with
+ <code class="function">eglBindAPI</code>) and returns a handle to the
+ context. The context can then be used to render into an EGL
+ drawing surface. If <code class="function">eglCreateContext</code>
+ fails to create a rendering context,
+ <code class="constant">EGL_NO_CONTEXT</code> is returned.
+ </p>
+ <p>
+ If <em class="parameter"><code>share_context</code></em> is not
+ <code class="constant">EGL_NO_CONTEXT</code>, then all shareable data
+ in the context (as defined by the client API specification
+ for the current rendering API) are shared by context
+ <em class="parameter"><code>share_context</code></em>, all other contexts
+ <em class="parameter"><code>share_context</code></em> already shares with,
+ and the newly created context. An arbitrary number of
+ rendering contexts can share data. However, all rendering
+ contexts that share data must themselves exist in the same
+ address space. Two rendering contexts share an address space
+ if both are owned by a single process.
+ </p>
+ <p>
+ <em class="parameter"><code>attrib_list</code></em> specifies a list of
+ attributes for the context. The list has the same structure
+ as described for <code class="function">eglChooseConfig</code>. The
+ attributes and attribute values which may be specified are
+ as follows:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_MAJOR_VERSION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer specifying the requested
+ major version of an OpenGL or OpenGL ES context. The
+ default value is 1. This attribute is an alias of the
+ older <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code>,
+ and the tokens may be used interchangeably.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_MINOR_VERSION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer specifying the requested
+ minor version of an OpenGL or OpenGL ES context. The
+ default value is 0.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_OPENGL_PROFILE_MASK</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer bitmask specifying the
+ <em class="firstterm">profile</em> of an OpenGL context.
+ Bits which may be set include
+ <code class="constant">EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT</code>
+ for a core profile and
+ <code class="constant">EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT</code>
+ for a compatibility profile. The default value is
+ <code class="constant">EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT</code>.
+ All OpenGL 3.2 and later implementations are required to
+ implement the core profile, but implementation of the
+ compatibility profile is optional.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_OPENGL_DEBUG</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by <code class="constant">EGL_TRUE</code>,
+ specifying that an OpenGL or OpenGL ES <em class="firstterm">debug
+ context</em> should be created, or
+ <code class="constant">EGL_FALSE</code>, if a non-debug context
+ should be created. The default value is
+ <code class="constant">EGL_FALSE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by <code class="constant">EGL_TRUE</code>,
+ specifying that a
+ <em class="firstterm">forward-compatible</em> OpenGL context
+ should be created, or <code class="constant">EGL_FALSE</code>, if
+ a non-forward-compatible context should be created. The
+ default value is <code class="constant">EGL_FALSE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_OPENGL_ROBUST_ACCESS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by <code class="constant">EGL_TRUE</code>,
+ specifying that an OpenGL or OpenGL ES context
+ supporting <em class="firstterm">robust buffer access</em>
+ should be created, or <code class="constant">EGL_FALSE</code>, if
+ a non-robust context should be created. The default
+ value is <code class="constant">EGL_FALSE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by
+ <code class="constant">EGL_LOSE_CONTEXT_ON_RESET</code>,
+ specifying that an OpenGL or OpenGL ES context with
+ reset notification behavior
+ <code class="constant">GL_LOSE_CONTEXT_ON_RESET_ARB</code> should
+ be created, or
+ <code class="constant">EGL_NO_RESET_NOTIFICATION</code>,
+ specifying that an OpenGL or OpenGL ES context with
+ reset notification behavior
+ <code class="constant">GL_NO_RESET_NOTIFICATION_ARB</code> should
+ be created, as described by the
+ <code class="constant">GL_ARB_robustness</code> extension.
+ </p>
+ <p>
+ If the
+ <code class="constant">EGL_CONTEXT_OPENGL_ROBUST_ACCESS</code>
+ attribute is not set to <code class="constant">EGL_TRUE</code>,
+ context creation will not fail, but the resulting
+ context may not support robust buffer access, and
+ therefore may not support the requested reset
+ notification strategy The default value for
+ <code class="constant">EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY</code>
+ is <code class="constant">EGL_NO_RESET_NOTIFICATION</code> .
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ There are many possible interactions between requested OpenGL
+ and OpenGL ES context creation attributes, depending on the API
+ versions and extensions supported by the implementation. These
+ interactions are described in detail in the EGL 1.5
+ Specification, but are not listed here for compactness. The
+ requested attributes may not be able to be satisfied, but
+ context creation may still succeed. Applications should ensure
+ that the OpenGL or OpenGL ES contexts supports needed features
+ before using them, by determining the actual context version,
+ supported extensions, and supported context flags using runtime
+ queries.
+ </p>
+ </div>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateImage.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateImage.xhtml
new file mode 100644
index 0000000..633cd0b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateImage.xhtml
@@ -0,0 +1,774 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreateImage - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglCreateImage">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglCreateImage —
+ Create a new <span class="type">EGLImage</span> object
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLImage <strong class="fsfunc">eglCreateImage</strong>(</code>
+ </td>
+ <td>(EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLContext <var class="pdparam">context</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLenum <var class="pdparam">target</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLClientBuffer <var class="pdparam">buffer</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>const EGLAttrib *<var class="pdparam">attrib_list</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the <abbr class="acronym">EGL</abbr> display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>context</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the client API context for which the image is
+ created.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>target</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the type of resource used as the image source.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>buffer</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the resource to be used as the image source.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies attributes used to select sub-sections of the
+ resource to be used as the image source.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreateImage</code> is used to create an
+ <span class="type">EGLImage</span> object from an existing image resource
+ <em class="parameter"><code>buffer</code></em>. <em class="parameter"><code>display</code></em>
+ specifies the EGL display used for this operation.
+ <em class="parameter"><code>context</code></em> specifies the EGL client API
+ context used for this operation, or
+ <code class="constant">EGL_NO_CONTEXT</code> if a client API context is
+ not required. <em class="parameter"><code>target</code></em> specifies the type
+ of resource being used as the <span class="type">EGLImage</span> source
+ (examples include two-dimensional textures in OpenGL ES contexts
+ and <span class="type">VGImage</span> objects in OpenVG contexts).
+ <em class="parameter"><code>buffer</code></em> is the name (or handle) of a
+ resource to be used as the <span class="type">EGLImage</span> source, cast
+ into the type <span class="type">EGLClientBuffer</span>.
+ <em class="parameter"><code>attrib_list</code></em> is a list of attribute-value
+ pairs which is used to select sub-sections of
+ <em class="parameter"><code>buffer</code></em> for use as the
+ <span class="type">EGLImage</span> source, such as mipmap levels for OpenGL
+ ES texture map resources, as well as behavioral options, such as
+ whether to preserve pixel data during creation. If
+ <em class="parameter"><code>attrib_list</code></em> is
+ non-<code class="constant">NULL</code>, the last attribute specified in
+ the list must be <code class="constant">EGL_NONE</code>.
+ </p>
+ <p>
+ The resource specified by <em class="parameter"><code>display</code></em>,
+ <em class="parameter"><code>context</code></em>, <em class="parameter"><code>target</code></em>,
+ <em class="parameter"><code>buffer</code></em>, and
+ <em class="parameter"><code>attrib_list</code></em> must not itself be an
+ <span class="type">EGLImage</span> sibling, or bound to a pbuffer
+ <span class="type">EGLSurface</span> resource
+ (<code class="function">eglBindTexImage</code>,
+ <code class="function">eglCreatePbufferFromClientBuffer</code>).
+ </p>
+ <p>
+ Values accepted for <em class="parameter"><code>target</code></em> are shown in
+ table <a class="xref" href="#tab-imagetarget" title="Table 1.  Legal values for eglCreateImage target">Table 1, “
+ Legal values for <code class="function">eglCreateImage</code> <em class="parameter"><code>target</code></em>
+ â€</a>.
+ </p>
+ <div class="table" id="tab-imagetarget">
+ <div class="table-title">Table 1. 
+ Legal values for <code class="function">eglCreateImage</code> <em class="parameter"><code>target</code></em>
+ </div>
+ <div class="table-contents">
+ <table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; ">
+ <colgroup>
+ <col/>
+ <col/>
+ </colgroup>
+ <thead>
+ <tr>
+ <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <em class="parameter">
+ <code>target</code>
+ </em>
+ </th>
+ <th style="text-align: left; border-bottom: 2px solid ; ">Notes</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_2D</code>
+ </td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">Used for GL 2D texture images</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>
+ </td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">Used for the +X face of GL cubemap texture images</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>
+ </td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">Used for the -X face of GL cubemap texture images</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>
+ </td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">Used for the +Y face of GL cubemap texture images</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>
+ </td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">Used for the -Y face of GL cubemap texture images</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>
+ </td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">Used for the +Z face of GL cubemap texture images</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>
+ </td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">Used for the -Z face of GL cubemap texture images</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_3D</code>
+ </td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">Used for OpenGL and OpenGL ES 3D texture images</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; ">
+ <code class="constant">EGL_GL_RENDERBUFFER</code>
+ </td>
+ <td style="text-align: left; ">Used for OpenGL and OpenGL ES renderbuffer images</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <br class="table-break"/>
+ <p>
+ Attribute names accepted in <em class="parameter"><code>attrib_list</code></em>
+ are shown in table <a class="xref" href="#tab-imageattr" title="Table 2.  Legal attributes for eglCreateImage attrib_list parameter">Table 2, “
+ Legal attributes for <code class="function">eglCreateImage</code>
+ <em class="parameter"><code>attrib_list</code></em> parameter
+ â€</a>, together
+ with the <em class="parameter"><code>target</code></em> for which each attribute
+ name is valid, and the default value used for each attribute if
+ it is not included in <em class="parameter"><code>attrib_list</code></em>.
+ </p>
+ <div class="table" id="tab-imageattr">
+ <div class="table-title">Table 2. 
+ Legal attributes for <code class="function">eglCreateImage</code>
+ <em class="parameter"><code>attrib_list</code></em> parameter
+ </div>
+ <div class="table-contents">
+ <table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; ">
+ <colgroup>
+ <col/>
+ <col/>
+ <col/>
+ <col/>
+ </colgroup>
+ <thead>
+ <tr>
+ <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <em class="parameter">
+ <code>target</code>
+ </em>
+ </th>
+ <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Notes</th>
+ <td style="border-right: 2px solid ; border-bottom: 2px solid ; " class="auto-generated"> </td>
+ <td style="border-bottom: 2px solid ; " class="auto-generated"> </td>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Attribute</td>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Description</td>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Valid <em class="parameter"><code>target</code></em>s</td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">Default Value</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_NONE</code>
+ </td>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Marks the end of the attribute-value list</td>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">All</td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">N/A</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_LEVEL</code>
+ </td>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ Specifies the mipmap level used as the
+ <span class="type">EGLImage</span> source. Must be part of
+ the complete texture object
+ <em class="parameter"><code>buffer</code></em>
+ </td>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_2D</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>, or
+ <code class="constant">EGL_GL_TEXTURE_3D</code>
+ </td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">0</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_ZOFFSET</code>
+ </td>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ Specifies the depth offset of the image to use
+ as the <span class="type">EGLImage</span> source. Must be
+ part of the complete texture object
+ <em class="parameter"><code>buffer</code></em>
+ </td>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_GL_TEXTURE_3D</code>
+ </td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">0</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; ">
+ <code class="constant">EGL_IMAGE_PRESERVED</code>
+ </td>
+ <td style="text-align: left; border-right: 2px solid ; ">Whether to preserve pixel data</td>
+ <td style="text-align: left; border-right: 2px solid ; ">All</td>
+ <td style="text-align: left; ">
+ <code class="constant">EGL_FALSE</code>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <br class="table-break"/>
+ <p>
+ <code class="function">eglCreateImage</code> returns an
+ <span class="type">EGLImage</span> object corresponding to the image data
+ specified by <em class="parameter"><code>display</code></em>,
+ <em class="parameter"><code>context</code></em>, <em class="parameter"><code>target</code></em>,
+ <em class="parameter"><code>buffer</code></em> and
+ <em class="parameter"><code>attrib_list</code></em> which may be referenced by
+ client API operations.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_2D</code>,
+ <code class="constant">EGL_GL_TEXTURE_3D</code>,
+ <code class="constant">EGL_GL_RENDERBUFFER</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z</code>, or
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</code>,
+ <em class="parameter"><code>display</code></em> must be a valid
+ <span class="type">EGLDisplay</span>, and <em class="parameter"><code>context</code></em> must
+ be a valid OpenGL or OpenGL ES API context on that display.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_2D</code>,
+ <em class="parameter"><code>buffer</code></em> must be the name of a nonzero,
+ <code class="constant">GL_TEXTURE_2D</code> target texture object, cast
+ into the type <span class="type">EGLClientBuffer</span>.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is one of the
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code> enumerants,
+ <em class="parameter"><code>buffer</code></em> must be the name of a nonzero,
+ <code class="constant">GL_TEXTURE_CUBE_MAP</code> (or equivalent in GL
+ extensions) target texture object, cast into the type
+ <span class="type">EGLClientBuffer</span>.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_3D</code>,
+ <em class="parameter"><code>buffer</code></em> must be the name of a nonzero,
+ <code class="constant">GL_TEXTURE_3D</code> (or equivalent in GL
+ extensions) target texture object, cast into the type
+ <span class="type">EGLClientBuffer</span>.
+ </p>
+ <p>
+ <em class="parameter"><code>attrib_list</code></em> should specify the mipmap
+ level (<code class="constant">EGL_GL_TEXTURE_LEVEL</code>) and, where
+ applicable, z-offset
+ (<code class="constant">EGL_GL_TEXTURE_ZOFFSET</code>) which will be used
+ as the <span class="type">EGLImage</span> source; If not specified, the
+ default values listed in table <a class="xref" href="#tab-imageattr" title="Table 2.  Legal attributes for eglCreateImage attrib_list parameter">Table 2, “
+ Legal attributes for <code class="function">eglCreateImage</code>
+ <em class="parameter"><code>attrib_list</code></em> parameter
+ â€</a>
+ will be used instead. Additional values specified in are
+ ignored.
+ </p>
+ <p>
+ There must exist some levels <span class="emphasis"><em>x</em></span> and
+ <span class="emphasis"><em>y</em></span> such that the mipmap level requested lies
+ between <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span>
+ (inclusive), the texture would be mipmap complete were
+ <span class="emphasis"><em>x</em></span> substituted for the base level and
+ <span class="emphasis"><em>y</em></span> substituted for the max level, and all
+ levels less than <span class="emphasis"><em>x</em></span> or greater than
+ <span class="emphasis"><em>y</em></span> are unspecified. For cubemaps a single
+ pair <span class="emphasis"><em>x</em></span> and <span class="emphasis"><em>y</em></span> must
+ apply to all faces. For three-dimensional textures, the
+ specified z-offset must be smaller than the depth of the
+ specified mipmap level.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_RENDERBUFFER</code>,
+ <em class="parameter"><code>buffer</code></em> must be the name of a complete,
+ nonzero, non-multisampled <code class="constant">GL_RENDERBUFFER</code>
+ (or equivalent in extensions) target object, cast into the type
+ <span class="type">EGLClientBuffer</span>. Values specified in
+ <em class="parameter"><code>attrib_list</code></em> are ignored.
+ </p>
+ <p>
+ If the value of attribute
+ <code class="constant">EGL_IMAGE_PRESERVED</code> is
+ <code class="constant">EGL_FALSE</code> (the default), then all pixel
+ data values associated with <em class="parameter"><code>buffer</code></em> will
+ be undefined after <code class="function">eglCreateImage</code> returns.
+ </p>
+ <p>
+ If the value of attribute
+ <code class="constant">EGL_IMAGE_PRESERVED</code> is
+ <code class="constant">EGL_TRUE</code>, then all pixel data values
+ associated with <em class="parameter"><code>buffer</code></em> are preserved.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="function">eglCreateImage</code> returns
+ <code class="constant">EGL_NO_IMAGE</code> on failure. The contents of
+ <em class="parameter"><code>buffer</code></em> will be unaffected.
+ </p>
+ <p>
+ If <em class="parameter"><code>display</code></em> is not the handle of a valid
+ <span class="type">EGLDisplay</span> object, the error
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>context</code></em> is neither the handle of a
+ valid <span class="type">EGLContext</span> object on
+ <em class="parameter"><code>display</code></em> nor
+ <code class="constant">EGL_NO_CONTEXT</code>, the error
+ <code class="constant">EGL_BAD_CONTEXT</code> is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is not one of the values in
+ table <a class="xref" href="#tab-imagetarget" title="Table 1.  Legal values for eglCreateImage target">Table 1, “
+ Legal values for <code class="function">eglCreateImage</code> <em class="parameter"><code>target</code></em>
+ â€</a>, the error
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_2D</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>,
+ <code class="constant">EGL_GL_RENDERBUFFER</code> or
+ <code class="constant">EGL_GL_TEXTURE_3D</code>, and
+ <em class="parameter"><code>display</code></em> is not a valid
+ <span class="type">EGLDisplay</span>, the error
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_2D</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>,
+ <code class="constant">EGL_GL_RENDERBUFFER</code> or
+ <code class="constant">EGL_GL_TEXTURE_3D</code>, and
+ <em class="parameter"><code>context</code></em> is not a valid
+ <span class="type">EGLContext</span>, the error
+ <code class="constant">EGL_BAD_CONTEXT</code> is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_2D</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>,
+ <code class="constant">EGL_GL_RENDERBUFFER</code> or
+ <code class="constant">EGL_GL_TEXTURE_3D</code>, and
+ <em class="parameter"><code>context</code></em> is not a valid GL context, or
+ does not match the <em class="parameter"><code>display</code></em>, the error
+ <code class="constant">EGL_BAD_MATCH</code> is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_2D</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code> or
+ <code class="constant">EGL_GL_TEXTURE_3D</code> and
+ <em class="parameter"><code>buffer</code></em> is not the name of a texture
+ object of type <em class="parameter"><code>target</code></em>, the error
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_RENDERBUFFER</code> and
+ <em class="parameter"><code>buffer</code></em> is not the name of a renderbuffer
+ object, or if <em class="parameter"><code>buffer</code></em> is the name of a
+ multisampled renderbuffer object, the error
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+ </p>
+ <p>
+ If <code class="constant">EGL_GL_TEXTURE_LEVEL</code> is nonzero,
+ <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_2D</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code> or
+ <code class="constant">EGL_GL_TEXTURE_3D</code>, and
+ <em class="parameter"><code>buffer</code></em> is not the name of a complete GL
+ texture object, the error <code class="constant">EGL_BAD_PARAMETER</code>
+ is generated.
+ </p>
+ <p>
+ If <code class="constant">EGL_GL_TEXTURE_LEVEL</code> is 0,
+ <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_2D</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code> or
+ <code class="constant">EGL_GL_TEXTURE_3D</code>,
+ <em class="parameter"><code>buffer</code></em> is the name of an incomplete GL
+ texture object, and any mipmap levels other than mipmap level 0
+ are specified, the error <code class="constant">EGL_BAD_PARAMETER</code>
+ is generated.
+ </p>
+ <p>
+ If <code class="constant">EGL_GL_TEXTURE_LEVEL</code> is 0,
+ <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_2D</code> or
+ <code class="constant">EGL_GL_TEXTURE_3D</code>,
+ <em class="parameter"><code>buffer</code></em> is not the name of a complete GL
+ texture object, and mipmap level 0 is not specified, the error
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+ </p>
+ <p>
+ If <code class="constant">EGL_GL_TEXTURE_LEVEL</code> is 0,
+ <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>,
+ <em class="parameter"><code>buffer</code></em> is not the name of a complete GL
+ texture object, and one or more faces do not have mipmap level 0
+ specified, the error <code class="constant">EGL_BAD_PARAMETER</code> is
+ generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_2D</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>,
+ <code class="constant">EGL_GL_RENDERBUFFER</code> or
+ <code class="constant">EGL_GL_TEXTURE_3D</code> and
+ <em class="parameter"><code>buffer</code></em> refers to the default GL texture
+ object (0) for the corresponding GL target, the error
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_2D</code>,
+ <code class="constant">EGL_GL_TEXTURE_CUBE_MAP_*</code>, or
+ <code class="constant">EGL_GL_TEXTURE_3D</code>, and the value specified
+ in <em class="parameter"><code>attrib_list</code></em> for
+ <code class="constant">EGL_GL_TEXTURE_LEVEL</code> is not a valid mipmap
+ level for the specified GL texture object
+ <em class="parameter"><code>buffer</code></em>, the error
+ <code class="constant">EGL_BAD_MATCH</code> is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>target</code></em> is
+ <code class="constant">EGL_GL_TEXTURE_3D</code>, and the value specified
+ in <em class="parameter"><code>attrib_list</code></em> for
+ <code class="constant">EGL_GL_TEXTURE_ZOFFSET</code> exceeds the depth of
+ the specified mipmap level-of-detail in
+ <em class="parameter"><code>buffer</code></em>, the error
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+ </p>
+ <p>
+ If an attribute specified in <em class="parameter"><code>attrib_list</code></em>
+ is not one of the attributes shown in table <a class="xref" href="#tab-imageattr" title="Table 2.  Legal attributes for eglCreateImage attrib_list parameter">Table 2, “
+ Legal attributes for <code class="function">eglCreateImage</code>
+ <em class="parameter"><code>attrib_list</code></em> parameter
+ â€</a>, the error
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+ </p>
+ <p>
+ If an attribute specified in <em class="parameter"><code>attrib_list</code></em>
+ is not a valid attribute for <em class="parameter"><code>target</code></em>, as
+ shown in table <a class="xref" href="#tab-imageattr" title="Table 2.  Legal attributes for eglCreateImage attrib_list parameter">Table 2, “
+ Legal attributes for <code class="function">eglCreateImage</code>
+ <em class="parameter"><code>attrib_list</code></em> parameter
+ â€</a>, the error
+ <code class="constant">EGL_BAD_MATCH</code> is generated.
+ </p>
+ <p>
+ If the resource specified by <em class="parameter"><code>display</code></em>,
+ <em class="parameter"><code>context</code></em>, <em class="parameter"><code>target</code></em>,
+ <em class="parameter"><code>buffer</code></em> and
+ <em class="parameter"><code>attrib_list</code></em> has an off-screen buffer
+ bound to it (e.g., by a previous call to
+ <code class="function">eglBindTexImage</code>), the error
+ <code class="constant">EGL_BAD_ACCESS</code> is generated.
+ </p>
+ <p>
+ If the resource specified by <em class="parameter"><code>display</code></em>,
+ <em class="parameter"><code>context</code></em>, <em class="parameter"><code>target</code></em>,
+ <em class="parameter"><code>buffer</code></em> and
+ <em class="parameter"><code>attrib_list</code></em> is bound to an off-screen
+ buffer (e.g., by a previous call to
+ <code class="function">eglCreatePbufferFromClientBuffer</code>), the
+ error <code class="constant">EGL_BAD_ACCESS</code> is generated.
+ </p>
+ <p>
+ If the resource specified by <em class="parameter"><code>display</code></em>,
+ <em class="parameter"><code>context</code></em>, <em class="parameter"><code>target</code></em>,
+ <em class="parameter"><code>buffer</code></em> and
+ <em class="parameter"><code>attrib_list</code></em> is itself an
+ <span class="type">EGLImage</span> sibling, the error
+ <code class="constant">EGL_BAD_ACCESS</code> is generated.
+ </p>
+ <p>
+ If insufficient memory is available to complete the specified
+ operation, the error <code class="constant">EGL_BAD_ALLOC</code> is
+ generated.
+ </p>
+ <p>
+ If the value specified in <em class="parameter"><code>attrib_list</code></em> for
+ <code class="constant">EGL_IMAGE_PRESERVED</code> is
+ <code class="constant">EGL_TRUE</code>, and an <span class="type">EGLImage</span>
+ handle cannot be created from the specified resource such that
+ the pixel data values in <em class="parameter"><code>buffer</code></em> are
+ preserved, the error <code class="constant">EGL_BAD_ACCESS</code> is
+ generated.
+ </p>
+ <p>
+ Note that the success or failure of
+ <code class="function">eglCreateImage</code> should not affect the
+ ability to use <em class="parameter"><code>buffer</code></em> in its original API
+ context (or context share group) (although the pixel data values
+ will be undefined if the command succeeds and the value of
+ <code class="constant">EGL_IMAGE_PRESERVED</code> is not
+ <code class="constant">EGL_TRUE</code>).
+ </p>
+ </div>
+ <div class="refsect1" id="lifetime">
+ <h2>Lifetime and Usage of <span class="type">EGLImage</span>s</h2>
+ <p>
+ Once an <span class="type">EGLImage</span> is created from an
+ <span class="type">EGLImage</span> source, the memory associated with the
+ <span class="type">EGLImage</span> source will remain allocated (and all
+ <span class="type">EGLImage</span> siblings in all client API contexts will
+ be useable) as long as either of the following conditions is
+ true:
+ </p>
+ <p>
+ </p>
+ <div class="itemizedlist">
+ <ul class="itemizedlist" style="list-style-type: disc; ">
+ <li class="listitem">
+ <p>
+ Any <span class="type">EGLImage</span> siblings exist in any client
+ API context
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ The <span class="type">EGLImage</span> object exists inside EGL
+ </p>
+ </li>
+ </ul>
+ </div>
+ <p>
+ </p>
+ <p>
+ The semantics for specifying, deleting and using
+ <span class="type">EGLImage</span> siblings are client API-specific, and are
+ described in the appropriate API specifications.
+ </p>
+ <p>
+ If an application specifies an <span class="type">EGLImage</span> sibling as
+ the destination for rendering and/or pixel download operations
+ (e.g., as an OpenGL or OpenGL ES framebuffer object,
+ <code class="function">glTexSubImage2D</code>, etc.), the modified image
+ results will be observed by all <span class="type">EGLImage</span> siblings
+ in all client API contexts. If multiple client API contexts
+ access <span class="type">EGLImage</span> sibling resources simultaneously,
+ with one or more context modifying the image data, rendering
+ results in all contexts accessing <span class="type">EGLImage</span> siblings
+ are undefined.
+ </p>
+ <p>
+ Respecification and/or deletion of any <span class="type">EGLImage</span>
+ sibling (i.e., both <span class="type">EGLImage</span> source and
+ <span class="type">EGLImage</span> target resources) inside a client API
+ context (by issuing a subsequent call to commands such as
+ <code class="function">glTexImage*</code> or
+ <code class="function">glDeleteTextures</code>, with the
+ <span class="type">EGLImage</span> sibling resource as the target of the
+ operation) affects only that client API context and other
+ contexts within its share group. For an OpenGL or OpenGL ES
+ context, respecification always results in
+ <em class="firstterm">orphaning</em> of the <span class="type">EGLImage</span>,
+ and may also include allocation of additional memory for the
+ respecified resource and/or copying of the <span class="type">EGLImage</span>
+ pixel data.
+ </p>
+ <p>
+ Note: Behavior of other types of client APIs generally follows
+ the OpenGL and OpenGL ES behavior described here, although this
+ is not mandated yet.
+ </p>
+ <p>
+ Operations inside EGL or any client API context which may affect
+ the lifetime of an <span class="type">EGLImage</span> (or the memory
+ allocated for the <span class="type">EGLImage</span>), such as respecifying
+ and/or deleting an <span class="type">EGLImage</span> sibling inside a client
+ API context, must be atomic.
+ </p>
+ <p>
+ Applications may create client API resources from an
+ <span class="type">EGLImage</span> using client API extensions outside the
+ scope of this document (such as
+ <code class="constant">GL_OES_EGL_image</code>, which creates OpenGL ES
+ texture and renderbuffer objects). If the <span class="type">EGLImage</span>
+ used to create the client resource was created with the
+ <code class="constant">EGL_IMAGE_PRESERVED</code> attribute set to
+ <code class="constant">EGL_TRUE</code>, then the pixel data values
+ associated with the image will be preserved after creating the
+ client resource; otherwise, the pixel data values will be
+ undefined. If the <span class="type">EGLImage</span> was created with the
+ <code class="constant">EGL_IMAGE_PRESERVED</code> attribute set to
+ <code class="constant">EGL_TRUE</code>, and EGL is unable to create the
+ client resource without modifying the pixel values, then
+ creation will fail and the pixel data values will be preserved.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglCreateImage</code> is available only if the EGL
+ version is 1.5 or greater.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglBindTexImage.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindTexImage</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferFromClientBuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferFromClientBuffer</span></span></a>,
+ <a class="citerefentry" href="eglDestroyImage.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroyImage</span></span></a>,
+ <code class="function">glDeleteTextures</code>,
+ <code class="function">glTexImage*</code>,
+ <code class="function">glTexSubImage2D</code>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePbufferFromClientBuffer.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePbufferFromClientBuffer.xhtml
new file mode 100644
index 0000000..b6d87bc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePbufferFromClientBuffer.xhtml
@@ -0,0 +1,468 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreatePbufferFromClientBuffer - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglCreatePbufferFromClientBuffer">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglCreatePbufferFromClientBuffer —
+ create a new <abbr class="acronym">EGL</abbr> pixel buffer surface
+ bound to an OpenVG image
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLSurface <strong class="fsfunc">eglCreatePbufferFromClientBuffer</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLenum <var class="pdparam">buftype</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLClientBuffer <var class="pdparam">buffer</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLConfig <var class="pdparam">config</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint const * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>buftype</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the type of client API buffer to be bound.
+ Must be <code class="constant">EGL_OPENVG_IMAGE</code>,
+ corresponding to an OpenVG <span class="type">VGImage</span>
+ buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>buffer</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the OpenVG <span class="type">VGImage</span> handle of
+ the buffer to be bound.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies pixel buffer surface attributes.
+ May be <code class="constant">NULL</code> or empty
+ (first attribute is <code class="constant">EGL_NONE</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreatePbufferFromClientBuffer</code> creates an
+ off-screen pixel buffer surface and returns its handle. If
+ <code class="function">eglCreatePbufferFromClientBuffer</code> fails to create
+ a pixel buffer surface, <code class="constant">EGL_NO_SURFACE</code>
+ is returned.
+ </p>
+ <p>
+ The new pixel buffer surface is similar to a pixel buffer
+ created with
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ but storage for the color buffer is provided by a client API
+ buffer. Other buffer required by
+ <em class="parameter"><code>config</code></em>, such as depth, stencil, and
+ alpha mask, are allocated by EGL.
+ </p>
+ <p>
+ <em class="parameter"><code>buftype</code></em> must be
+ <code class="constant">EGL_OPENVG_IMAGE</code>, corresponding to an
+ OpenVG <span class="type">VGImage</span> buffer.
+ <em class="parameter"><code>buffer</code></em> must be a valid
+ <span class="type">VGImage</span> handle in the current OpenVG context,
+ cast into the type <span class="type">EGLClientBuffer</span>.
+ </p>
+ <p>
+ The height, width,, OpenVG alpha format, and OpenVG
+ colorspace (surface attributes
+ <code class="constant">EGL_HEIGHT</code>,
+ <code class="constant">EGL_WIDTH</code>,
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>, and
+ <code class="constant">EGL_VG_COLORSPACE</code>, respectively) of the
+ resulting surface are determined by the size and format of
+ <em class="parameter"><code>buffer</code></em>.
+ </p>
+ <p>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <code class="constant">EGL_NONE</code>. Accepted attributes are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIPMAP_TEXTURE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies whether storage for mipmaps should be
+ allocated. Space for mipmaps will be set aside if
+ the attribute value is <code class="constant">EGL_TRUE</code>
+ and <code class="constant">EGL_TEXTURE_FORMAT</code> is not
+ <code class="constant">EGL_NO_TEXTURE</code>. The default
+ value is <code class="constant">EGL_FALSE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the format of the texture that will be
+ created when a pbuffer is bound to a texture map.
+ Possible values are
+ <code class="constant">EGL_NO_TEXTURE</code>,
+ <code class="constant">EGL_TEXTURE_RGB</code>, and
+ <code class="constant">EGL_TEXTURE_RGBA</code>. The default
+ value is <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_TARGET</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the target for the texture that will be
+ created when the pbuffer is created with a texture
+ format of <code class="constant">EGL_TEXTURE_RGB</code> or
+ <code class="constant">EGL_TEXTURE_RGBA</code>. Possible
+ values are <code class="constant">EGL_NO_TEXTURE</code>, or
+ <code class="constant">EGL_TEXTURE_2D</code>. The default
+ value is <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ Any EGL rendering context that was created with respect to
+ <em class="parameter"><code>config</code></em> can be used to render into the
+ surface. Use
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ to attach an EGL rendering context to the surface.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ to retrieve the dimensions of the allocated pixel buffer
+ surface or the ID of <em class="parameter"><code>config</code></em>.
+ </p>
+ <p>
+ Use <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+ to destroy the surface.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglCreatePbufferFromClientBuffer</code> is
+ supported only if the EGL version is 1.2 or greater, and if
+ the EGL implementation supports the OpenVG client API.
+ </p>
+ <p>
+ Currently
+ <code class="function">eglCreatePbufferFromClientBuffer</code> only
+ supports binding OpenVG <span class="type">VGImage</span> buffers to
+ pixel buffers. While other client API resources could be
+ supported in the future, mechanisms such as OpenGL ES
+ framebuffer objects, and the family of EGL and client API
+ extensions for defining and using <span class="type">EGLImageKHR</span>
+ images, are a more flexible and general framework to satisfy
+ most of the same needs.
+ </p>
+ <p>
+ If the value of <em class="parameter"><code>config</code></em> attribute
+ <code class="constant">EGL_TEXTURE_FORMAT</code> is not
+ <code class="constant">EGL_NO_TEXTURE</code>, then the pbuffer width
+ and height specify the size of the level zero texture image
+ </p>
+ <p>
+ If <code class="constant">EGL_LARGEST_PBUFFER</code> is specified and
+ if the pbuffer will be used as a texture (i.e. the value of
+ <code class="constant">EGL_TEXTURE_TARGET</code> is
+ <code class="constant">EGL_TEXTURE_2D</code>, and the value of
+ <code class="constant">EGL_TEXTURE FORMAT</code> is
+ <code class="constant">EGL_TEXTURE_RGB</code> or
+ <code class="constant">EGL_TEXTURE_RGBA</code>), then the aspect
+ ratio will be preserved and the new width and height will be
+ valid sizes for the texture target (e.g. if the underlying
+ OpenGL ES implementation does not support non-power-of-two
+ textures, both the width and height will be a power of 2).
+ </p>
+ <p>
+ The contents of the depth and stencil buffers may not be
+ preserved when rendering a texture to the pbuffer and
+ switching which image of the texture is rendered to (e.g.,
+ switching from rendering one mipmap level to rendering
+ another).
+ </p>
+ <p>
+ Binding client API buffers to EGL pbuffers create the
+ possibility of race conditions, and of buffers being deleted
+ through one API while still in use in another API. To avoid
+ these problems, a number of constraints apply to bound
+ client API buffers:
+ </p>
+ <div class="orderedlist">
+ <ol class="orderedlist" type="1">
+ <li class="listitem">
+ <p>
+ Bound buffers may be used exclusively by either EGL,
+ or the client API that originally created them. For
+ example, if a <span class="type">VGImage</span> is bound to a
+ pbuffer, and that pbuffer is bound to any client API
+ rendering context, then the <span class="type">VGImage</span> may
+ not be used as the explicit source or destination of
+ any OpenVG operation. Errors resulting from such use
+ are described in client API specifications.
+ Similarly, while a <span class="type">VGImage</span> is in use by
+ OpenVG, the pbuffer it is bound to may not be made
+ current to any client API context using
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Binding a buffer creates an additional reference to
+ it, and implementations must respect outstanding
+ references when destroying objects. For example, if
+ a <span class="type">VGImage</span> is bound to a pbuffer,
+ destroying the image with
+ <code class="function">vgDestroyImage</code> will not free
+ the underlying buffer, because it is still in use by
+ EGL. However, following
+ <code class="function">vgDestroyImage</code> the buffer may
+ only be referred to via the EGL pbuffer handle,
+ since the OpenVG handle to that buffer no longer
+ exists. Similarly, destroying the pbuffer with
+ <code class="function">eglDestroySurface</code> will not free
+ the underlying buffer, because it is still in use by
+ OpenVG . However, following
+ <code class="function">eglDestroySurface</code> the buffer
+ may only be referred to via the OpenVG
+ <span class="type">VGImage</span> handle, since the EGL pbuffer
+ handle no longer exists.
+ </p>
+ </li>
+ </ol>
+ </div>
+ <p>
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
+ the context fails.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONFIG</code> is generated if
+ <em class="parameter"><code>config</code></em> is not an EGL frame buffer configuration.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>buftype</code></em> is not
+ <code class="constant">EGL_OPENVG_IMAGE</code>, or if
+ <em class="parameter"><code>buffer</code></em> is not a valid handle to a
+ <span class="type">VGImage</span> object in the currently bound OpenVG
+ context.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ACCESS</code> is generated if there is
+ no current OpenVG context, or if
+ <em class="parameter"><code>buffer</code></em> is already bound to another
+ pixel buffer or in use by OpenVG as discussed in the Notes
+ section above.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ACCESS</code> is generated if the buffers
+ contained in <em class="parameter"><code>buffer</code></em> consist of any
+ <span class="type">EGLImage</span> siblings.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
+ enough resources to allocate the new surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains an invalid pixel
+ buffer attribute or if an attribute value is not recognized
+ or out of range.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains any of the
+ attributes <code class="constant">EGL_MIPMAP_TEXTURE</code>,
+ <code class="constant">EGL_TEXTURE_FORMAT</code>, or
+ <code class="constant">EGL_TEXTURE_TARGET</code>, and
+ <em class="parameter"><code>config</code></em> does not support OpenGL ES
+ rendering (e.g. the EGL version is 1.2 or later, and the
+ <code class="constant">EGL_RENDERABLE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em> does not include at least one
+ of <code class="constant">EGL_OPENGL_ES_BIT</code> or
+ <code class="constant">EGL_OPENGL_ES2_BIT</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>config</code></em> does not support rendering to
+ pixel buffers (the <code class="constant">EGL_SURFACE_TYPE</code>
+ attribute does not contain
+ <code class="constant">EGL_PBUFFER_BIT</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ buffers contained in <em class="parameter"><code>buffer</code></em> do not
+ match the bit depths for those buffers specified by
+ <em class="parameter"><code>config</code></em>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ <code class="constant">EGL_TEXTURE_FORMAT</code> attribute is not
+ <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_WIDTH</code> and/or
+ <code class="constant">EGL_HEIGHT</code> specify an invalid size
+ (e.g., the texture size is not a power of 2, and the
+ underlying OpenGL ES implementation does not support
+ non-power-of-two textures).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ the <code class="constant">EGL_TEXTURE_FORMAT</code> attribute is
+ <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_TEXTURE_TARGET</code> is something other
+ than <code class="constant">EGL_NO_TEXTURE</code>; or,
+ <code class="constant">EGL_TEXTURE_FORMAT</code> is something other
+ than <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_TEXTURE_TARGET</code> is
+ <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ implementation has additional constraints on which types of
+ client API buffers may be bound to pixel buffer surfaces.
+ For example, it is possible that the OpenVG implementation
+ might not support a <span class="type">VGImage</span> being bound to a
+ pixel buffer which will be used as a mipmapped OpenGL ES
+ texture (e.g. whose <code class="constant">EGL_MIPMAP_TEXTURE</code>
+ attribute is <code class="constant">TRUE</code>). Any such
+ constraints should be documented by the implementation
+ release notes.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePbufferSurface.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePbufferSurface.xhtml
new file mode 100644
index 0000000..a51f67e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePbufferSurface.xhtml
@@ -0,0 +1,435 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreatePbufferSurface - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.2"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglCreatePbufferSurface">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglCreatePbufferSurface —
+ create a new <abbr class="acronym">EGL</abbr> pixel buffer surface
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLSurface <strong class="fsfunc">eglCreatePbufferSurface</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLConfig <var class="pdparam">config</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint const * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies pixel buffer surface attributes.
+ May be <code class="constant">NULL</code> or empty
+ (first attribute is <code class="constant">EGL_NONE</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreatePbufferSurface</code> creates an
+ off-screen pixel buffer surface and returns its handle. If
+ <code class="function">eglCreatePbufferSurface</code> fails to create
+ a pixel buffer surface, <code class="constant">EGL_NO_SURFACE</code>
+ is returned.
+ </p>
+ <p>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <code class="constant">EGL_NONE</code>. Accepted attributes
+ are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_GL_COLORSPACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the color space used by OpenGL and OpenGL ES
+ when rendering to the surface. If its value is
+ <code class="constant">EGL_GL_COLORSPACE_SRGB</code>, then a
+ non-linear, perceptually uniform color space is assumed,
+ with a corresponding
+ <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+ value of <code class="constant">GL_SRGB</code>. If its value is
+ <code class="constant">EGL_GL_COLORSPACE_LINEAR</code>, then a
+ linear color space is assumed, with a corresponding
+ <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+ value of <code class="constant">GL_LINEAR</code>. The default
+ value of <code class="constant">EGL_GL_COLORSPACE</code> is
+ <code class="constant">EGL_GL_COLORSPACE_LINEAR</code>.
+ </p>
+ <p>
+ Note that the <code class="constant">EGL_GL_COLORSPACE</code>
+ attribute is used only by OpenGL and OpenGL ES contexts
+ supporting sRGB framebuffers. EGL itself does not
+ distinguish multiple colorspace models. Refer to the
+ ``sRGB Conversion'' sections of the OpenGL 4.6 and
+ OpenGL ES 3.2 Specifications for more information.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_HEIGHT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the required height of the pixel buffer
+ surface. The default value is
+ <code class="constant">0</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LARGEST_PBUFFER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Requests the largest available pixel buffer surface
+ when the allocation would otherwise fail. Use
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ to retrieve the dimensions of the allocated pixel
+ buffer. The default value is
+ <code class="constant">EGL_FALSE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIPMAP_TEXTURE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies whether storage for mipmaps should be
+ allocated. Space for mipmaps will be set aside if
+ the attribute value is <code class="constant">EGL_TRUE</code>
+ and <code class="constant">EGL_TEXTURE_FORMAT</code> is not
+ <code class="constant">EGL_NO_TEXTURE</code>. The default
+ value is <code class="constant">EGL_FALSE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the format of the texture that will be
+ created when a pbuffer is bound to a texture map.
+ Possible values are
+ <code class="constant">EGL_NO_TEXTURE</code>,
+ <code class="constant">EGL_TEXTURE_RGB</code>, and
+ <code class="constant">EGL_TEXTURE_RGBA</code>. The default
+ value is <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_TARGET</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the target for the texture that will be
+ created when the pbuffer is created with a texture
+ format of <code class="constant">EGL_TEXTURE_RGB</code> or
+ <code class="constant">EGL_TEXTURE_RGBA</code>. Possible
+ values are <code class="constant">EGL_NO_TEXTURE</code>, or
+ <code class="constant">EGL_TEXTURE_2D</code>. The default
+ value is <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>,
+ then alpha values are not premultipled. If its value
+ is <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>,
+ then alpha values are premultiplied. The default
+ value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_COLORSPACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_s*</code>. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>, then
+ a linear color space is assumed, with a
+ corresponding <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_l*</code>. The default value of
+ <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_WIDTH</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the required width of the pixel buffer
+ surface. The default value is
+ <code class="constant">0</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ Any EGL rendering context that was created with respect to
+ <em class="parameter"><code>config</code></em> can be used to render into the
+ surface. Use
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ to attach an EGL rendering context to the surface.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ to retrieve the dimensions of the allocated pixel buffer
+ surface or the ID of <em class="parameter"><code>config</code></em>.
+ </p>
+ <p>
+ Use <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+ to destroy the surface.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ Attribute <code class="constant">EGL_GL_COLORSPACE</code>, and the
+ <code class="constant">EGL_OPENGL_ES3_BIT</code> bit value for attribute
+ <code class="constant">EGL_RENDERABLE_TYPE</code>, are supported only if
+ the EGL version is 1.5 or greater.
+ </p>
+ <p>
+ Attributes
+ <code class="constant">EGL_RENDERABLE_TYPE</code>,
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>, and
+ <code class="constant">EGL_VG_COLORSPACE</code>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ If the value of <em class="parameter"><code>config</code></em> attribute
+ <code class="constant">EGL_TEXTURE_FORMAT</code> is not
+ <code class="constant">EGL_NO_TEXTURE</code>, then the pbuffer width
+ and height specify the size of the level zero texture image
+ </p>
+ <p>
+ If <code class="constant">EGL_LARGEST_PBUFFER</code> is specified and
+ if the pbuffer will be used as a texture (i.e. the value of
+ <code class="constant">EGL_TEXTURE_TARGET</code> is
+ <code class="constant">EGL_TEXTURE_2D</code>, and the value of
+ <code class="constant">EGL_TEXTURE FORMAT</code> is
+ <code class="constant">EGL_TEXTURE_RGB</code> or
+ <code class="constant">EGL_TEXTURE_RGBA</code>), then the aspect
+ ratio will be preserved and the new width and height will be
+ valid sizes for the texture target (e.g. if the underlying
+ OpenGL ES implementation does not support non-power-of-two
+ textures, both the width and height will be a power of 2).
+ </p>
+ <p>
+ The contents of the depth and stencil buffers may not be
+ preserved when rendering a texture to the pbuffer and
+ switching which image of the texture is rendered to (e.g.,
+ switching from rendering one mipmap level to rendering
+ another).
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
+ the context fails.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONFIG</code> is generated if
+ <em class="parameter"><code>config</code></em> is not an EGL frame buffer configuration.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains an invalid pixel
+ buffer attribute or if an attribute value is not recognized
+ or out of range.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains any of the
+ attributes <code class="constant">EGL_MIPMAP_TEXTURE</code>,
+ <code class="constant">EGL_TEXTURE_FORMAT</code>, or
+ <code class="constant">EGL_TEXTURE_TARGET</code>, and
+ <em class="parameter"><code>config</code></em> does not support OpenGL ES
+ rendering (e.g. the EGL version is 1.2 or later, and the
+ <code class="constant">EGL_RENDERABLE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em> does not include at least one
+ of <code class="constant">EGL_OPENGL_ES_BIT</code>,
+ <code class="constant">EGL_OPENGL_ES2_BIT</code>, or
+ <code class="constant">EGL_OPENGL_ES3_BIT</code>),
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
+ enough resources to allocate the new surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>config</code></em> does not support rendering to pixel buffers
+ (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain
+ <code class="constant">EGL_PBUFFER_BIT</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ <code class="constant">EGL_TEXTURE_FORMAT</code> attribute is not
+ <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_WIDTH</code> and/or
+ <code class="constant">EGL_HEIGHT</code> specify an invalid size
+ (e.g., the texture size is not a power of 2, and the
+ underlying OpenGL ES implementation does not support
+ non-power-of-two textures).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ the <code class="constant">EGL_TEXTURE_FORMAT</code> attribute is
+ <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_TEXTURE_TARGET</code> is something other
+ than <code class="constant">EGL_NO_TEXTURE</code>; or,
+ <code class="constant">EGL_TEXTURE_FORMAT</code> is something other
+ than <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_TEXTURE_TARGET</code> is
+ <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>config</code></em> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code> and the
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>) or colorspace attribute (the
+ value of <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code> and the
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR_IT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>).
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePixmapSurface.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePixmapSurface.xhtml
new file mode 100644
index 0000000..19b72cd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePixmapSurface.xhtml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreatePixmapSurface - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglCreatePixmapSurface">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglCreatePixmapSurface —
+ create a new <abbr class="acronym">EGL</abbr> offscreen surface
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLSurface <strong class="fsfunc">eglCreatePixmapSurface</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLConfig <var class="pdparam">config</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>NativePixmapType <var class="pdparam">native_pixmap</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint const * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>native_pixmap</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the native pixmap.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies pixmap surface attributes.
+ May be <code class="constant">NULL</code> or empty
+ (first attribute is <code class="constant">EGL_NONE</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreatePixmapSurface</code> creates an off-screen
+ EGL pixmap surface and returns a handle to it. The behavior of
+ <code class="function">eglCreatePixmapSurface</code> is identical to that
+ of
+ <a class="citerefentry" href="eglCreatePlatformPixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformPixmapSurface</span></span></a>
+ except that the set of platforms to which
+ <em class="parameter"><code>display</code></em> is permitted to belong, as well
+ as the actual type of <em class="parameter"><code>native_pixmap</code></em>, are
+ implementation specific.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ See errors for
+ <a class="citerefentry" href="eglCreatePlatformPixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformPixmapSurface</span></span></a>.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreatePlatformPixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformPixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePlatformPixmapSurface.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePlatformPixmapSurface.xhtml
new file mode 100644
index 0000000..b58d4fe
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePlatformPixmapSurface.xhtml
@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreatePlatformPixmapSurface - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglCreatePlatformPixmapSurface">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglCreatePlatformPixmapSurface —
+ create a new <abbr class="acronym">EGL</abbr> offscreen surface
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLSurface <strong class="fsfunc">eglCreatePlatformPixmapSurface</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLConfig <var class="pdparam">config</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>void * <var class="pdparam">native_pixmap</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint const * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>native_pixmap</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the native pixmap.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies pixmap surface attributes.
+ May be <code class="constant">NULL</code> or empty
+ (first attribute is <code class="constant">EGL_NONE</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreatePlatformPixmapSurface</code> creates an
+ off-screen <abbr class="acronym">EGL</abbr> pixmap surface and returns
+ a handle to it.
+ </p>
+ <p>
+ If <code class="function">eglCreatePlatformPixmapSurface</code> fails to
+ create a pixmap surface, <code class="constant">EGL_NO_SURFACE</code> is
+ returned.
+ </p>
+ <p>
+ <em class="parameter"><code>native_pixmap</code></em> must belong to the same
+ platform as <em class="parameter"><code>display</code></em>, and EGL considers
+ the returned <span class="type">EGLSurface</span> as belonging to that same
+ platform. The EGL extension that defines the platform to which
+ <em class="parameter"><code>display</code></em> belongs also defines the
+ requirements for the <em class="parameter"><code>native_pixmap</code></em>
+ parameter.
+ </p>
+ <p>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <code class="constant">EGL_NONE</code>. Accepted attributes
+ are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_GL_COLORSPACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the color space used by OpenGL and OpenGL ES
+ when rendering to the surface. If its value is
+ <code class="constant">EGL_GL_COLORSPACE_SRGB</code>, then a
+ non-linear, perceptually uniform color space is assumed,
+ with a corresponding
+ <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+ value of <code class="constant">GL_SRGB</code>. If its value is
+ <code class="constant">EGL_GL_COLORSPACE_LINEAR</code>, then a
+ linear color space is assumed, with a corresponding
+ <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+ value of <code class="constant">GL_LINEAR</code>. The default
+ value of <code class="constant">EGL_GL_COLORSPACE</code> is
+ <code class="constant">EGL_GL_COLORSPACE_SRGB</code>.
+ </p>
+ <p>
+ Note that the <code class="constant">EGL_GL_COLORSPACE</code>
+ attribute is used only by OpenGL and OpenGL ES contexts
+ supporting sRGB framebuffers. EGL itself does not
+ distinguish multiple colorspace models. Refer to the
+ ``sRGB Conversion'' sections of the OpenGL 4.6 and
+ OpenGL ES 3.2 Specifications for more information.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>,
+ then alpha values are not premultipled. If its value
+ is <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>,
+ then alpha values are premultiplied. The default
+ value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_COLORSPACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_s*</code>. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>, then
+ a linear color space is assumed, with a
+ corresponding <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_l*</code>. The default value of
+ <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ Any EGL rendering context that was created with respect to
+ <em class="parameter"><code>config</code></em> can be used to render into the
+ surface. Use
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ to attach an EGL rendering context to the surface.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ to retrieve the ID of <em class="parameter"><code>config</code></em>.
+ </p>
+ <p>
+ Use <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+ to destroy the surface.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ The <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> attribute
+ of
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>
+ can be used to select a frame buffer configuration matching
+ a specified native pixmap.
+ </p>
+ <p>
+ Attribute <code class="constant">EGL_GL_COLORSPACE</code> is supported
+ only if the EGL version is 1.5 or greater.
+ </p>
+ <p>
+ Attributes
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
+ <code class="constant">EGL_VG_COLORSPACE</code>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ The <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
+ <code class="constant">EGL_VG_COLORSPACE</code> attributes are used only
+ by OpenVG and EGL itself. Refer to section 11.2 of the OpenVG
+ 1.0 specification for more information. The platform's use and
+ interpretation of alpha values is outside the scope of EGL.
+ However, the preferred behavior is for the window system to
+ ignore the value of <code class="constant">EGL_VG_ALPHA_FORMAT</code>.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ If <em class="parameter"><code>display</code></em> and
+ <em class="parameter"><code>native_pixmap</code></em> do not belong to the same
+ platform, then undefined behavior occurs.
+ </p>
+ <p>
+ <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
+ the surface fails.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONFIG</code> is generated if
+ <em class="parameter"><code>config</code></em> is not an EGL config.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_NATIVE_PIXMAP</code> may be generated if
+ <em class="parameter"><code>native_pixmap</code></em> is not a valid native pixmap.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains an invalid pixmap attribute
+ or if an attribute value is not recognized or out of range.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> is generated if there is
+ already an <span class="type">EGLSurface</span> associated with
+ <em class="parameter"><code>native_pixmap</code></em> (as a result of a previous
+ <code class="function">eglCreatePlatformPixmapSurface</code> call).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> is generated if the
+ implementation cannot allocate resources for the new EGL window.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the attributes of
+ <em class="parameter"><code>native_pixmap</code></em> do not correspond to
+ <em class="parameter"><code>config</code></em> or if
+ <em class="parameter"><code>config</code></em> does not support rendering to pixmaps
+ (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain
+ <code class="constant">EGL_PIXMAP_BIT</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>config</code></em> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code> and the
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>) or colorspace attribute (the
+ value of <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code> and the
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR_IT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>).
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePlatformWindowSurface.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePlatformWindowSurface.xhtml
new file mode 100644
index 0000000..f95ab1f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreatePlatformWindowSurface.xhtml
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreatePlatformWindowSurface - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglCreatePlatformWindowSurface">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglCreatePlatformWindowSurface —
+ create a new <abbr class="acronym">EGL</abbr> on-screen rendering surface
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLSurface <strong class="fsfunc">eglCreatePlatformWindowSurface</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLConfig <var class="pdparam">config</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>void * <var class="pdparam">native_window</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLAttrib const * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>native_window</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the native window.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies a list of attributes for the window surface.
+ May be <code class="constant">NULL</code> or empty
+ (first attribute is <code class="constant">EGL_NONE</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreatePlatformWindowSurface</code> creates an
+ on-screen EGL window surface and returns a handle to it. Any EGL
+ context created with a compatible <span class="type">EGLConfig</span> can be
+ used to render into this surface.
+ </p>
+ <p>
+ If <code class="function">eglCreatePlatformWindowSurface</code> fails to
+ create a window surface, <code class="constant">EGL_NO_SURFACE</code> is
+ returned.
+ </p>
+ <p>
+ <em class="parameter"><code>native_window</code></em> must belong to the same
+ platform as <em class="parameter"><code>display</code></em>, and EGL considers
+ the returned <span class="type">EGLSurface</span> as belonging to that same
+ platform. The EGL extension that defines the platform to which
+ <em class="parameter"><code>display</code></em> belongs also defines the
+ requirements for the <em class="parameter"><code>native_window</code></em>
+ parameter.
+ </p>
+ <p>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <code class="constant">EGL_NONE</code>. Accepted attributes
+ are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_GL_COLORSPACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the color space used by OpenGL and OpenGL ES
+ when rendering to the surface. If its value is
+ <code class="constant">EGL_GL_COLORSPACE_SRGB</code>, then a
+ non-linear, perceptually uniform color space is assumed,
+ with a corresponding
+ <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+ value of <code class="constant">GL_SRGB</code>. If its value is
+ <code class="constant">EGL_GL_COLORSPACE_LINEAR</code>, then a
+ linear color space is assumed, with a corresponding
+ <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code>
+ value of <code class="constant">GL_LINEAR</code>. The default
+ value of <code class="constant">EGL_GL_COLORSPACE</code> is
+ <code class="constant">EGL_GL_COLORSPACE_LINEAR</code>.
+ </p>
+ <p>
+ Note that the <code class="constant">EGL_GL_COLORSPACE</code>
+ attribute is used only by OpenGL and OpenGL ES contexts
+ supporting sRGB framebuffers. EGL itself does not
+ distinguish multiple colorspace models. Refer to the
+ ``sRGB Conversion'' sections of the OpenGL 4.6 and
+ OpenGL ES 3.2 Specifications for more information.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RENDER_BUFFER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies which buffer should be used for client API
+ rendering to the window. If its value is
+ <code class="constant">EGL_SINGLE_BUFFER</code>, then client
+ APIs should render directly into the visible window.
+ If its value is
+ <code class="constant">EGL_BACK_BUFFER</code>, then client
+ APIs should render into the back buffer. The default
+ value of <code class="constant">EGL_RENDER_BUFFER</code> is
+ <code class="constant">EGL_BACK_BUFFER</code>.
+ </p>
+ <p>
+ Client APIs may not be able to respect the requested
+ rendering buffer. To determine the actual buffer
+ being rendered to by a context, call
+ <a class="citerefentry" href="eglQueryContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryContext</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>,
+ then alpha values are not premultipled. If its value
+ is <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>,
+ then alpha values are premultiplied. The default
+ value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_COLORSPACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_s*</code>. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>, then
+ a linear color space is assumed, with a
+ corresponding <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_l*</code>. The default value of
+ <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ Any EGL rendering context that was created with respect to
+ <em class="parameter"><code>config</code></em> can be used to render into the
+ surface. Use
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ to attach an EGL rendering context to the surface.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ to retrieve the ID of <em class="parameter"><code>config</code></em>.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+ to destroy the surface.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ Attribute <code class="constant">EGL_GL_COLORSPACE</code> is supported
+ only if the EGL version is 1.5 or greater.
+ </p>
+ <p>
+ Attributes <code class="constant">EGL_RENDER_BUFFER</code>,
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>, and
+ <code class="constant">EGL_VG_COLORSPACE</code>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ The <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
+ <code class="constant">EGL_VG_COLORSPACE</code> attributes are used only
+ by OpenVG and EGL itself. Refer to section 11.2 of the OpenVG
+ 1.0 specification for more information. The platform's use and
+ interpretation of alpha values is outside the scope of EGL.
+ However, the preferred behavior is for platforms to ignore the
+ value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> when
+ compositing window surfaces.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ If <em class="parameter"><code>display</code></em> and
+ <em class="parameter"><code>native_window</code></em> do not belong to the same
+ platform, then undefined behavior occurs.
+ </p>
+ <p>
+ <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
+ the surface fails.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONFIG</code> is generated if
+ <em class="parameter"><code>config</code></em> is not a valid EGL frame buffer
+ configuration.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_NATIVE_WINDOW</code> may be generated if
+ <em class="parameter"><code>native_window</code></em> is not a valid native
+ window for the same platform as <em class="parameter"><code>display</code></em>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains an invalid window attribute
+ or if an attribute value is not recognized or is out of range.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> is generated if there is
+ already an <span class="type">EGLSurface</span> associated with
+ <em class="parameter"><code>native_window</code></em> (as a result of a previous
+ <code class="function">eglCreatePlatformWindowSurface</code> call).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> is generated if the
+ implementation cannot allocate resources for the new EGL window.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the pixel
+ format of <em class="parameter"><code>native_window</code></em> does not
+ correspond to the format, type, and size of the color buffers
+ required by <em class="parameter"><code>config</code></em>.
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the pixel
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>config</code></em> does not support rendering to
+ windows (the <code class="constant">EGL_SURFACE_TYPE</code> attribute
+ does not contain <code class="constant">EGL_WINDOW_BIT</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>config</code></em> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code> and the
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>) or colorspace attribute (the
+ value of <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code> and the
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR_IT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>).
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateSync.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateSync.xhtml
new file mode 100644
index 0000000..5ca5676
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateSync.xhtml
@@ -0,0 +1,389 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreateSync - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglCreateSync">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglCreateSync —
+ create a new <abbr class="acronym">EGL</abbr> sync object
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLSync <strong class="fsfunc">eglCreateSync</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLEnum <var class="pdparam">type</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLAttrib const * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the <abbr class="acronym">EGL</abbr> display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>type</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the type of sync object to create.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies attributes and attribute values for the sync
+ object being created.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <em class="firstterm">sync objects</em> are provided to enable
+ synchronization of client API operations between threads and/or
+ between API contexts. Sync objects may be tested or waited upon
+ by application threads.
+ </p>
+ <p>
+ Sync objects have a status with two possible states:
+ <em class="firstterm">signaled</em> and
+ <em class="firstterm">unsignaled</em>. Initially, sync objects are
+ unsignaled. EGL may be asked to wait for a sync object to become
+ signaled, or a sync object's status may be queried.
+ </p>
+ <p>
+ Depending on the type of a sync object, its status may be
+ changed either by an external event, or by explicitly signaling
+ and unsignaling the sync.
+ </p>
+ <p>
+ <code class="function">eglCreateSync</code> creates a sync object of the specified
+ <em class="parameter"><code>type</code></em> associated with the specified display
+ <em class="parameter"><code>display</code></em>, and returns a handle to the new object.
+ <em class="parameter"><code>attrib_list</code></em> is an attribute-value list specifying
+ other attributes of the sync object, terminated by an attribute entry
+ <code class="constant">EGL_NONE</code>. Attributes not specified in the list will be
+ assigned their default values.
+ </p>
+ <p>
+ Once the <em class="firstterm">condition</em> of the sync object is satisfied,
+ the sync is signaled, causing any <code class="function">eglClientWaitSync</code> or
+ <code class="function">eglWaitSync</code> commands blocking on
+ <em class="parameter"><code>sync</code></em> to unblock.
+ </p>
+ </div>
+ <div class="refsect1" id="fencesync">
+ <h2>Creating Fence Sync Objects</h2>
+ <p>
+ If <em class="parameter"><code>type</code></em> is
+ <code class="constant">EGL_SYNC_FENCE</code>, a fence sync object is
+ created. In this case <em class="parameter"><code>attrib_list</code></em> must be
+ <code class="constant">NULL</code> or empty (containing only
+ <code class="constant">EGL_NONE</code>). Attributes of the fence sync
+ object, and their initial values, are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SYNC_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ <code class="constant">EGL_SYNC_FENCE</code>
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SYNC_STATUS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ <code class="constant">EGL_UNSIGNALED</code>
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SYNC_CONDITION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ <code class="constant">EGL_SYNC_PRIOR_COMMANDS_COMPLETE</code>
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ When a fence sync object is created, <code class="function">eglCreateSync</code> also inserts a
+ fence command into the command stream of the bound client API's current
+ context (i.e., the context returned by <code class="function">eglGetCurrentContext</code>), and
+ associates it with the newly created sync object.
+ </p>
+ <p>
+ The only condition supported for fence sync objects is
+ <code class="constant">EGL_SYNC_PRIOR_COMMANDS_COMPLETE</code>, which 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.
+ </p>
+ <p>
+ Creation of fence sync objects requires support from the bound
+ client API, and will not succeed unless the client API satisfies
+ one of the following properties. Note that
+ <code class="function">eglWaitSync</code> also requires satisfying these
+ conditions.
+ </p>
+ <p>
+ </p>
+ <div class="itemizedlist">
+ <ul class="itemizedlist" style="list-style-type: disc; ">
+ <li class="listitem">
+ <p>
+ client API is OpenGL, and either the OpenGL version is
+ 3.2 or greater, or the <code class="constant">GL_ARB_sync</code>
+ extension is supported.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ client API is OpenGL ES, and either the OpenGL ES
+ version is 3.0 or greater, or the
+ <code class="constant">GL_OES_EGL_sync</code> extension is
+ supported.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ client API is OpenVG, and the
+ <code class="constant">VG_KHR_EGL_sync</code> extension is
+ supported.
+ </p>
+ </li>
+ </ul>
+ </div>
+ <p>
+ </p>
+ </div>
+ <div class="refsect1" id="openclsync">
+ <h2>Creating OpenCL Event Sync Objects</h2>
+ <p>
+ If <em class="parameter"><code>type</code></em> is
+ <code class="constant">EGL_SYNC_CL_EVENT</code>, an OpenCL event sync
+ object is created. In this case
+ <em class="parameter"><code>attrib_list</code></em> must contain the attribute
+ <code class="constant">EGL_CL_EVENT_HANDLE</code>, set to a valid OpenCL
+ event handle returned by a call to
+ <code class="function">clEnqueueReleaseGLObjects</code> or
+ <code class="function">clEnqueueReleaseEGLObjects</code>; other types of
+ OpenCL event handles are not supported. Note that
+ <code class="constant">EGL_CL_EVENT_HANDLE</code> is not a queriable
+ property of a sync object. Attributes of the OpenCL event sync
+ object, and their initial values, are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SYNC_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ <code class="constant">EGL_SYNC_CL_EVENT</code>
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SYNC_STATUS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Depends on status of <em class="parameter"><code>event</code></em>
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SYNC_CONDITION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ <code class="constant">EGL_SYNC_CL_EVENT_COMPLETE</code>
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ The status of such a sync object depends on
+ <em class="parameter"><code>event</code></em>. When the status of
+ <em class="parameter"><code>event</code></em> is <code class="constant">CL_QUEUED</code>,
+ <code class="constant">CL_SUBMITTED</code>, or
+ <code class="constant">CL_RUNNING</code>, the status of the linked sync
+ object will be <code class="constant">EGL_UNSIGNALED</code>. When the
+ status of <em class="parameter"><code>event</code></em> changes to
+ <code class="constant">CL_COMPLETE</code>, the status of the linked sync
+ object will become <code class="constant">EGL_SIGNALED</code>.
+ </p>
+ <p>
+ The only condition supported for OpenCL event sync objects is
+ <code class="constant">EGL_SYNC_CL_EVENT_COMPLETE</code>, which is
+ satisfied when the status of the OpenCL event associated with
+ the sync object changes to <code class="constant">CL_COMPLETE</code>.
+ </p>
+ <p>
+ Creating a linked sync object places a reference on the linked
+ OpenCL event object. When the sync object is deleted, the
+ reference will be removed from the event object.
+ </p>
+ <p>
+ However, implementations are not required to validate the OpenCL
+ event, and passing an invalid event handle in
+ <em class="parameter"><code>attrib_list</code></em> may result in undefined
+ behavior up to and including program termination.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglCreateSync</code> is supported only if the EGL
+ version is 1.5 or greater.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="function">eglCreateSync</code> returns
+ <code class="constant">EGL_NO_SYNC</code> on failure.
+ </p>
+ <p>
+ If <em class="parameter"><code>display</code></em> is not the name of a valid,
+ initialized <span class="type">EGLDisplay</span>, an
+ <code class="constant">EGL_BAD_DISPLAY</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>attrib_list</code></em> contains an attribute name
+ not defined for the type of sync object being created, an
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>type</code></em> is not a supported type of sync
+ object, an <code class="constant">EGL_BAD_PARAMETER</code> error is
+ generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>type</code></em> is
+ <code class="constant">EGL_SYNC_FENCE</code> and no context is current
+ for the bound API (i.e.,
+ <code class="function">eglGetCurrentContext</code> returns
+ <code class="constant">EGL_NO_CONTEXT</code>), an
+ <code class="constant">EGL_BAD_MATCH</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>type</code></em> is
+ <code class="constant">EGL_SYNC_FENCE</code> and
+ <em class="parameter"><code>display</code></em> does not match the
+ <span class="type">EGLDisplay</span> of the currently bound context for the
+ currently bound client API (the <span class="type">EGLDisplay</span> returned
+ by <code class="function">eglGetCurrentDisplay</code>), an
+ <code class="constant">EGL_BAD_MATCH</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>type</code></em> is
+ <code class="constant">EGL_SYNC_FENCE</code> and the current context for
+ the currently bound client API does not support fence commands,
+ an <code class="constant">EGL_BAD_MATCH</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>type</code></em> is
+ <code class="constant">EGL_SYNC_CL_EVENT</code> and
+ <code class="constant">EGL_CL_EVENT_HANDLE</code> is not specified in
+ <em class="parameter"><code>attrib_list</code></em>, or its attribute value is
+ not a valid OpenCL event handle as described above, then an
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> error is generated.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <code class="function">clEnqueueReleaseGLObjects</code>,
+ <code class="function">clEnqueueReleaseEGLObjects</code>,
+ <a class="citerefentry" href="eglClientWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglClientWaitSync</span></span></a>,
+ <a class="citerefentry" href="eglCreateSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateSync</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>,
+ <a class="citerefentry" href="eglWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitSync</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateWindowSurface.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateWindowSurface.xhtml
new file mode 100644
index 0000000..0a29d77
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglCreateWindowSurface.xhtml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglCreateWindowSurface - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglCreateWindowSurface">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglCreateWindowSurface —
+ create a new <abbr class="acronym">EGL</abbr> window surface
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLSurface <strong class="fsfunc">eglCreateWindowSurface</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLConfig <var class="pdparam">config</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>NativeWindowType <var class="pdparam">native_window</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint const * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>native_window</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the native window.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies window surface attributes.
+ May be <code class="constant">NULL</code> or empty
+ (first attribute is <code class="constant">EGL_NONE</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreateWindowSurface</code> creates an on-screen
+ EGL window surface and returns a handle to it. The behavior of
+ <code class="function">eglCreateWindowSurface</code> is identical to that
+ of
+ <a class="citerefentry" href="eglCreatePlatformWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformWindowSurface</span></span></a>
+ except that the set of platforms to which
+ <em class="parameter"><code>display</code></em> is permitted to belong, as well
+ as the actual type of <em class="parameter"><code>native_window</code></em>, are
+ implementation specific.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ See errors for
+ <a class="citerefentry" href="eglCreatePlatformWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformWindowSurface</span></span></a>.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreatePlatformWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePlatformWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroyContext.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroyContext.xhtml
new file mode 100644
index 0000000..6a5569d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroyContext.xhtml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglDestroyContext - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglDestroyContext">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglDestroyContext —
+ destroy an <abbr class="acronym">EGL</abbr> rendering context
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglDestroyContext</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLContext <var class="pdparam">context</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>context</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL rendering context to be destroyed.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ If the EGL rendering context <em class="parameter"><code>context</code></em> is not
+ current to any thread,
+ <code class="function">eglDestroyContext</code> destroys it immediately.
+ Otherwise, <em class="parameter"><code>context</code></em> is destroyed when it becomes
+ not current to any thread.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if destruction of
+ the context fails, <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONTEXT</code> is generated if
+ <em class="parameter"><code>context</code></em> is not an EGL rendering context.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroyImage.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroyImage.xhtml
new file mode 100644
index 0000000..8c2f3aa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroyImage.xhtml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglDestroyImage - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglDestroyImage">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglDestroyImage —
+ Destroy an <span class="type">EGLImage</span> object
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglDestroyImage</strong>(</code>
+ </td>
+ <td>(EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLImage <var class="pdparam">image</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the <abbr class="acronym">EGL</abbr> display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>image</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the image to destroy.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglDestroyImage</code> is used to destroy the
+ specified <span class="type">EGLImage</span> object
+ <em class="parameter"><code>image</code></em>. Once destroyed,
+ <em class="parameter"><code>image</code></em> may not be used to create any
+ additional <span class="type">EGLImage</span> target resources within any
+ client API contexts, although existing <span class="type">EGLImage</span>
+ siblings may continue to be used. <code class="constant">EGL_TRUE</code>
+ is returned on success.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ On failure, <code class="function">eglDestroyImage</code> returns
+ <code class="constant">EGL_FALSE</code>
+ </p>
+ <p>
+ If <em class="parameter"><code>display</code></em> is not the handle of a valid
+ <span class="type">EGLDisplay</span> object, the error
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>image</code></em> is not a valid
+ <span class="type">EGLImage</span> object created with respect to
+ <em class="parameter"><code>display</code></em>, the error
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglDestroyImage</code> is available only if the
+ EGL version is 1.5 or greater.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateImage.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateImage</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroySurface.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroySurface.xhtml
new file mode 100644
index 0000000..652f508
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroySurface.xhtml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglDestroySurface - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglDestroySurface">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglDestroySurface —
+ destroy an <abbr class="acronym">EGL</abbr> surface
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglDestroySurface</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSurface <var class="pdparam">surface</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL surface to be destroyed.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ If the EGL surface <em class="parameter"><code>surface</code></em> is not current to any
+ thread, <code class="function">eglDestroySurface</code> destroys it immediately.
+ Otherwise, <em class="parameter"><code>surface</code></em> is destroyed when it becomes
+ not current to any thread.
+ Furthermore, resources associated with a pbuffer surface are not released until
+ all color buffers of that pbuffer bound to a texture object have been released.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if destruction of
+ the surface fails, <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL surface.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a> </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroySync.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroySync.xhtml
new file mode 100644
index 0000000..7db22eb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglDestroySync.xhtml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglDestroySync - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglDestroySync">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglDestroySync —
+ Destroy a sync object
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglDestroySync</strong>(</code>
+ </td>
+ <td>(EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSync <var class="pdparam">sync</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the <abbr class="acronym">EGL</abbr> display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>sync</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the sync object to destroy.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglDestroySync</code> is used to destroy an
+ existing sync object.
+ </p>
+ <p>
+ If any <code class="function">eglClientWaitSync</code> or
+ <code class="function">eglWaitSync</code> commands are blocking on
+ <em class="parameter"><code>sync</code></em> when
+ <code class="function">eglDestroySync</code> is called,
+ <em class="parameter"><code>sync</code></em> is flagged for deletion and will be
+ deleted when the associated fence command or OpenCL event object
+ has completed, and <em class="parameter"><code>sync</code></em> is no longer
+ blocking any such <code class="function">egl*WaitSync</code> command.
+ Otherwise, the sync object is destroyed immediately.
+ </p>
+ <p>
+ If no errors are generated, <code class="constant">EGL_TRUE</code> is
+ returned, and <em class="parameter"><code>sync</code></em> will no longer be the
+ handle of a valid sync object.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ On failure, <code class="function">eglDestroySync</code> returns
+ <code class="constant">EGL_FALSE</code>.
+ </p>
+ <p>
+ If <em class="parameter"><code>sync</code></em> is not a valid sync object for
+ <em class="parameter"><code>display</code></em>, <code class="constant">EGL_FALSE</code>
+ is returned and an <code class="constant">EGL_BAD_PARAMETER</code> error
+ is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>display</code></em> does not match the display
+ passed to <code class="function">eglCreateSync</code> when
+ <em class="parameter"><code>sync</code></em> was created, the behaviour is
+ undefined.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglDestroySync</code> is available only if the EGL
+ version is 1.5 or greater.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglClientWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglClientWaitSync</span></span></a>,
+ <a class="citerefentry" href="eglCreateSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateSync</span></span></a>,
+ <a class="citerefentry" href="eglWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitSync</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetConfigAttrib.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetConfigAttrib.xhtml
new file mode 100644
index 0000000..726d487
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetConfigAttrib.xhtml
@@ -0,0 +1,508 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglGetConfigAttrib - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglGetConfigAttrib">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglGetConfigAttrib —
+ return information about an <abbr class="acronym">EGL</abbr> frame buffer
+ configuration
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglGetConfigAttrib</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLConfig <var class="pdparam">config</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">attribute</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint * <var class="pdparam">value</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL frame buffer configuration to be
+ queried.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attribute</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL rendering context attribute to be
+ returned.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>value</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the requested value.</p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetConfigAttrib</code> returns in
+ <em class="parameter"><code>value</code></em> the value of
+ <em class="parameter"><code>attribute</code></em> for
+ <em class="parameter"><code>config</code></em>
+ (config attributes are described in more detail in the
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>
+ reference page).
+ <em class="parameter"><code>attribute</code></em> can be one of the following:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_ALPHA_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits of alpha stored in the
+ color buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_ALPHA_MASK_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the number of bits in the alpha mask buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGB</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns <code class="constant">EGL_TRUE</code> if color buffers can be
+ bound to an RGB texture,
+ <code class="constant">EGL_FALSE</code> otherwise.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGBA</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns <code class="constant">EGL_TRUE</code> if color buffers can be
+ bound to an RGBA texture,
+ <code class="constant">EGL_FALSE</code> otherwise.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BLUE_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits of blue stored in the
+ color buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BUFFER_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the depth of the color buffer.
+ It is the sum of
+ <code class="constant">EGL_RED_SIZE</code>,
+ <code class="constant">EGL_GREEN_SIZE</code>,
+ <code class="constant">EGL_BLUE_SIZE</code>, and
+ <code class="constant">EGL_ALPHA_SIZE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_COLOR_BUFFER_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the color buffer type. Possible types are
+ <code class="constant">EGL_RGB_BUFFER</code> and
+ <code class="constant">EGL_LUMINANCE_BUFFER</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_CAVEAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the caveats for the frame buffer configuration.
+ Possible caveat values are
+ <code class="constant">EGL_NONE</code>,
+ <code class="constant">EGL_SLOW_CONFIG</code>, and
+ <code class="constant">EGL_NON_CONFORMANT</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_ID</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the ID of the frame buffer configuration.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFORMANT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a bitmask indicating which client API contexts
+ created with respect to this config are conformant.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_DEPTH_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits in the depth buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_GREEN_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits of green stored in the
+ color buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LEVEL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the frame buffer level.
+ Level zero is the default frame buffer.
+ Positive levels correspond to frame buffers that overlay the default
+ buffer and negative levels correspond to frame buffers that underlay
+ the default buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LUMINANCE_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the number of bits of luminance stored in the luminance buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MAX_PBUFFER_WIDTH</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the maximum width of a pixel buffer surface in pixels.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MAX_PBUFFER_HEIGHT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the maximum height of a pixel buffer surface in pixels.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MAX_PBUFFER_PIXELS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the maximum size of a pixel buffer surface in pixels.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MAX_SWAP_INTERVAL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the maximum value that can be passed to eglSwapInterval.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIN_SWAP_INTERVAL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the minimum value that can be passed to eglSwapInterval.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_NATIVE_RENDERABLE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns <code class="constant">EGL_TRUE</code> if native rendering
+ APIs can render into the surface,
+ <code class="constant">EGL_FALSE</code> otherwise.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_NATIVE_VISUAL_ID</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the ID of the associated native visual.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_NATIVE_VISUAL_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the type of the associated native visual.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RED_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits of red stored in the
+ color buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RENDERABLE_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a bitmask indicating the types of supported
+ client API contexts.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SAMPLE_BUFFERS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of multisample buffers.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SAMPLES</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of samples per pixel.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_STENCIL_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits in the stencil buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SURFACE_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a bitmask indicating the types of supported EGL
+ surfaces.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the type of supported transparency.
+ Possible transparency values are:
+ <code class="constant">EGL_NONE</code>, and
+ <code class="constant">EGL_TRANSPARENT_RGB</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_RED_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the transparent red value.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_GREEN_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the transparent green value.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_BLUE_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the transparent blue value.</p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="constant">EGL_CONFORMANT</code> is supported only if the
+ EGL version is 1.3 or greater.
+ </p>
+ <p>
+ <code class="constant">EGL_ALPHA_MASK_SIZE</code>,
+ <code class="constant">EGL_COLOR_BUFFER_TYPE</code>,
+ <code class="constant">EGL_LUMINANCE_SIZE</code>, and
+ <code class="constant">EGL_RENDERABLE_TYPE</code> are supported only
+ if the EGL version is 1.2 or greater.
+ </p>
+ <p>
+ While <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> can be
+ specified in the attribute list passed to
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ it is not an attribute of the resulting config and cannot be
+ queried using <code class="function">eglGetConfigAttrib</code>.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>value</code></em> is not modified when
+ <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONFIG</code> is generated if
+ <em class="parameter"><code>config</code></em> is not an EGL frame buffer configuration.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is not a valid frame buffer
+ configuration attribute.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetConfigs.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetConfigs.xhtml
new file mode 100644
index 0000000..bd34046
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetConfigs.xhtml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglGetConfigs - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglGetConfigs">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglGetConfigs —
+ return a list of all <abbr class="acronym">EGL</abbr> frame buffer configurations
+ for a display
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglGetConfigs</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLConfig * <var class="pdparam">configs</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">config_size</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint * <var class="pdparam">num_config</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>configs</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns a list of configs.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config_size</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the size of the list of configs.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>num_config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of configs returned.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetConfigs</code> returns a list of all
+ EGL frame buffer configurations that are available for the specified
+ display.
+ The items in the list can be used in any EGL function that requires
+ an EGL frame buffer configuration.
+ </p>
+ <p>
+ <em class="parameter"><code>configs</code></em> does not return values, if it is specified
+ as
+ <code class="constant">NULL</code>. This is useful for querying just the
+ number of all frame buffer configurations.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglGetConfigAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>
+ to retrieve individual attribute values of a frame buffer configuration.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>configs</code></em> and <em class="parameter"><code>num_config</code></em>
+ are not modified when
+ <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>num_config</code></em> is <code class="constant">NULL</code>.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentContext.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentContext.xhtml
new file mode 100644
index 0000000..9d80ed2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentContext.xhtml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglGetCurrentContext - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglGetCurrentContext">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglGetCurrentContext —
+ return the current <abbr class="acronym">EGL</abbr> rendering context
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLContext <strong class="fsfunc">eglGetCurrentContext</strong>(</code>
+ </td>
+ <td><code>void)</code>;</td>
+ <td> </td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetCurrentContext</code> returns the current
+ <abbr class="acronym">EGL</abbr> rendering context, as specified by
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ If no context is current, <code class="constant">EGL_NO_CONTEXT</code> is returned.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentDisplay.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentDisplay.xhtml
new file mode 100644
index 0000000..6c8a04d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentDisplay.xhtml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglGetCurrentDisplay - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglGetCurrentDisplay">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglGetCurrentDisplay —
+ return the display for the current <abbr class="acronym">EGL</abbr> rendering context
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLDisplay <strong class="fsfunc">eglGetCurrentDisplay</strong>(</code>
+ </td>
+ <td><code>void)</code>;</td>
+ <td> </td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetCurrentDisplay</code> returns the current
+ <abbr class="acronym">EGL</abbr> display connection for the current
+ <abbr class="acronym">EGL</abbr> rendering context, as specified by
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ If no context is current, <code class="constant">EGL_NO_DISPLAY</code> is returned.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ Passing <code class="constant">EGL_NO_DISPLAY</code> to any command
+ taking an <span class="type">EGLDisplay</span> parameter will generate either
+ an <code class="constant">EGL_BAD_DISPLAY</code> error if the EGL
+ implementation validates <span class="type">EGLDisplay</span> handles, or
+ undefined behavior as described at the end of section 3.1 of the
+ EGL 1.5 Specification. The only exception to this rule is that
+ <code class="function">eglQueryString</code> will accept an
+ <span class="type">EGLDisplay</span> parameter of
+ <code class="constant">EGL_NO_DISPLAY</code> when querying the client
+ extension string (see section 3.3 of the EGL 1.5 Specification).
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglGetDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a> </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentSurface.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentSurface.xhtml
new file mode 100644
index 0000000..285e842
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetCurrentSurface.xhtml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglGetCurrentSurface - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglGetCurrentSurface">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglGetCurrentSurface —
+ return the read or draw surface for the current <abbr class="acronym">EGL</abbr> rendering context
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLSurface <strong class="fsfunc">eglGetCurrentSurface</strong>(</code>
+ </td>
+ <td>EGLint <var class="pdparam">readdraw</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>readdraw</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies whether to return the read surface
+ (<code class="constant">EGL_READ</code>) or the draw surface
+ (<code class="constant">EGL_DRAW</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetCurrentSurface</code> returns the read or draw
+ surface attached to the current
+ <abbr class="acronym">EGL</abbr> rendering context, as specified by
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ If no context is current, <code class="constant">EGL_NO_SURFACE</code> is returned.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a> </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetDisplay.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetDisplay.xhtml
new file mode 100644
index 0000000..47bbea1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetDisplay.xhtml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglGetDisplay - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglGetDisplay">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglGetDisplay —
+ return an <abbr class="acronym">EGL</abbr> display connection
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLDisplay <strong class="fsfunc">eglGetDisplay</strong>(</code>
+ </td>
+ <td>NativeDisplayType <var class="pdparam">native_display</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>native_display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the display to connect to.
+ <code class="constant">EGL_DEFAULT_DISPLAY</code> indicates the default display.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetDisplay</code> obtains the
+ <abbr class="acronym">EGL</abbr> display connection for the native
+ display <em class="parameter"><code>native_display</code></em>.
+ </p>
+ <p>
+ The behavior of <code class="function">eglGetDisplay</code> is similar to
+ that of
+ <a class="citerefentry" href="eglGetPlatformDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetPlatformDisplay</span></span></a>,
+ but is specified in terms of implementation-specific behavior
+ rather than platform-specific extensions. As for
+ <a class="citerefentry" href="eglGetPlatformDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetPlatformDisplay</span></span></a>,
+ EGL considers the returned <span class="type">EGLDisplay</span> as belonging
+ to the same platform as <em class="parameter"><code>display_id</code></em>.
+ However, the set of platforms to which
+ <em class="parameter"><code>display_id</code></em> is permitted to belong, as
+ well as the actual type of <em class="parameter"><code>display_id</code></em>,
+ are implementation-specific. If
+ <em class="parameter"><code>display_id</code></em> is
+ <code class="constant">EGL_DEFAULT_DISPLAY</code>, a <em class="firstterm">default
+ display</em> is returned. Multiple calls made to
+ <code class="function">eglGetDisplay</code> with the same
+ <em class="parameter"><code>display_id</code></em> will return the same
+ <span class="type">EGLDisplay</span> handle.
+ </p>
+ <p>
+ If <em class="parameter"><code>display_id</code></em> is
+ <code class="constant">EGL_DEFAULT_DISPLAY</code>, a default display connection is returned.
+ </p>
+ <p>
+ If no display connection matching <em class="parameter"><code>native_display</code></em> is
+ available, <code class="constant">EGL_NO_DISPLAY</code> is returned. No
+ error is generated.
+ </p>
+ <p>
+ Use <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ to initialize the display connection.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>,
+ <a class="citerefentry" href="eglGetPlatformDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetPlatformDisplay</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetError.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetError.xhtml
new file mode 100644
index 0000000..248841c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetError.xhtml
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglGetError - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglGetError">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglGetError —
+ return error information
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLint <strong class="fsfunc">eglGetError</strong>(</code>
+ </td>
+ <td><code>void)</code>;</td>
+ <td> </td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetError</code> returns the error of the last
+ called <abbr class="acronym">EGL</abbr> function in the current thread.
+ Initially, the error is set to <code class="constant">EGL_SUCCESS</code>.
+ </p>
+ <p>
+ When an EGL function could potentially generate several
+ different errors (for example, when passed both a bad attribute
+ name, and a bad attribute value for a legal attribute name), the
+ implementation may choose to generate any one of the applicable
+ errors.
+ </p>
+ <p>
+ The following errors are currently defined:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SUCCESS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>The last function succeeded without error.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_NOT_INITIALIZED</code>
+ </span>
+ </dt>
+ <dd>
+ <p>EGL is not initialized, or could not be initialized,
+ for the specified EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_ACCESS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>EGL cannot access a requested resource
+ (for example a context is bound in another thread).
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_ALLOC</code>
+ </span>
+ </dt>
+ <dd>
+ <p>EGL failed to allocate resources for the requested
+ operation.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_ATTRIBUTE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>An unrecognized attribute or attribute value was
+ passed in the attribute list.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_CONTEXT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>An <span class="type">EGLContext</span> argument does not name a
+ valid EGL rendering context.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_CONFIG</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ An <span class="type">EGLConfig</span> argument does not name a valid
+ EGL frame buffer configuration.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_CURRENT_SURFACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>The current surface of the calling thread is a window,
+ pixel buffer or pixmap that is no longer valid.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_DISPLAY</code>
+ </span>
+ </dt>
+ <dd>
+ <p>An <span class="type">EGLDisplay</span> argument does not name a
+ valid EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_SURFACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>An <span class="type">EGLSurface</span> argument does not name a
+ valid surface (window, pixel buffer or pixmap) configured for
+ GL rendering.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_MATCH</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Arguments are inconsistent (for example, a valid
+ context requires buffers not supplied by a valid surface).
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_PARAMETER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>One or more argument values are invalid.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_NATIVE_PIXMAP</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ A <span class="type">NativePixmapType</span> argument does not refer to
+ a valid native pixmap.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_NATIVE_WINDOW</code>
+ </span>
+ </dt>
+ <dd>
+ <p>A <span class="type">NativeWindowType</span> argument does not refer
+ to a valid native window.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_LOST</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ A power management event has occurred. The application must destroy all
+ contexts and reinitialise OpenGL ES state and objects to continue rendering.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ A call to <code class="function">eglGetError</code> sets the error to
+ <code class="constant">EGL_SUCCESS</code>.
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetPlatformDisplay.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetPlatformDisplay.xhtml
new file mode 100644
index 0000000..6d6f134
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetPlatformDisplay.xhtml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglGetPlatformDisplay - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglGetPlatformDisplay">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglGetPlatformDisplay —
+ return an <abbr class="acronym">EGL</abbr> display connection
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLDisplay <strong class="fsfunc">eglGetPlatformDisplay</strong>(</code>
+ </td>
+ <td>EGLenum <var class="pdparam">platform</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>void * <var class="pdparam">native_display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>const EGLAttrib * <var class="pdparam">attrib_list</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>platform</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the native platform to obtain a display for.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>native_display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the native display to connect to.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies attributes of the display being obtained.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetPlatformDisplay</code> obtains an
+ <abbr class="acronym">EGL</abbr> display connection for the specified
+ <em class="parameter"><code>platform</code></em> and
+ <em class="parameter"><code>native_display</code></em>.
+ </p>
+ <p>
+ Valid values for <em class="parameter"><code>platform</code></em> are defined by
+ EGL extensions, as are requirements for
+ <em class="parameter"><code>native_display</code></em>.
+ For example, an extension specification that defines support for
+ the X11 platform may require that
+ <em class="parameter"><code>native_display</code></em> be a pointer to an X11
+ Display, and an extension specification that defines support for
+ the Microsoft Windows platform may require that
+ <em class="parameter"><code>native_display</code></em> be a pointer to a Windows
+ Device Context.
+ </p>
+ <p>
+ Valid attributes are defined by EGL extensions.
+ All attributes in <em class="parameter"><code>attrib_list</code></em>,
+ including boolean attributes, are immediately followed by
+ the corresponding desired value.
+ The list is terminated with <code class="constant">EGL_NONE</code>.
+ If an attribute is not specified in
+ <em class="parameter"><code>attrib_list</code></em> but is required for the
+ specified <em class="parameter"><code>platform</code></em>, then a default value
+ is used (and the attribute is said to be specified implicitly).
+ </p>
+ <p>
+ Multiple calls made to
+ <code class="function">eglGetPlatformDisplay</code> with the same
+ parameters will return the same <span class="type">EGLDisplay</span> handle.
+ </p>
+ <p>
+ If <em class="parameter"><code>platform</code></em> is valid but no display
+ matching <em class="parameter"><code>native_display</code></em> is available,
+ then <code class="constant">EGL_NO_DISPLAY</code> is returned; no error
+ condition is raised in this case.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglGetPlatformDisplay</code> is supported only if
+ the EGL version is 1.5 or greater.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="function">eglGetPlatformDisplay</code> returns
+ <code class="constant">EGL_NO_DISPLAY</code> on failure.
+ </p>
+ <p>
+ An <code class="constant">EGL_BAD_PARAMETER</code> error is generated if
+ <em class="parameter"><code>platform</code></em> has an invalid value.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>,
+ <a class="citerefentry" href="eglGetDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetProcAddress.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetProcAddress.xhtml
new file mode 100644
index 0000000..8583280
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetProcAddress.xhtml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglGetProcAddress - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglGetProcAddress">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglGetProcAddress —
+ return a <abbr class="acronym">GL</abbr> or an <abbr class="acronym">EGL</abbr>
+ extension function
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">void (* <strong class="fsfunc">eglGetProcAddress</strong>(</code>
+ </td>
+ <td>char const * <var class="pdparam">procname</var>))(void<code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>procname</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the name of the function to return.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetProcAddress</code> returns the address of
+ the client API or EGL function named by
+ <em class="parameter"><code>procname</code></em>. <em class="parameter"><code>procname</code></em>
+ must be a null-terminated string. The pointer returned should be
+ cast to a function pointer matching the function's definition in
+ the corresponding API or extension specification. A return value
+ of <code class="constant">NULL</code> indicates that the specific
+ function does not exist for the implementation.
+ </p>
+ <p>
+ A non-<code class="constant">NULL</code> return value does not guarantee
+ that an extension function is actually supported at runtime. The
+ client must also make a corresponding query, such as
+ <code class="function">glGetString</code>(<code class="constant">GL_EXTENSIONS</code>)
+ for OpenGL and OpenGL ES extensions;
+ <code class="function">vgGetString</code>(<code class="constant">VG_EXTENSIONS</code>)
+ for OpenVG extensions;
+ <code class="function">eglQueryString</code>(<em class="parameter"><code>display</code></em>,
+ <code class="constant">EGL_EXTENSIONS</code>); or query the EGL or client
+ API version for non-extension functions, to determine if a
+ function is supported by EGL or a specific client API context.
+ </p>
+ <p>
+ Client API function pointers returned by
+ <code class="function">eglGetProcAddress</code> are independent of the
+ display and the currently bound client API context, and may be
+ used by any client API context which supports the function.
+ </p>
+ <p>
+ <code class="function">eglGetProcAddress</code> may be queried for all
+ EGL and client API functions supported by the implementation
+ (whether those functions are extensions or not, and whether they
+ are supported by the current client API context or not).
+ </p>
+ <p>
+ For functions that are queryable with
+ <code class="function">eglGetProcAddress</code>, implementations may
+ choose to also export those functions statically from the object
+ libraries implementing those functions. However, portable
+ clients cannot rely on this behavior.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ If the EGL version is not 1.5 or greater, only queries of EGL
+ and client API <span class="emphasis"><em>extension</em></span> functions will
+ succeed.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <code class="function">glGetString</code>
+ <a class="citerefentry" href="eglQueryString.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a> </p>
+ <code class="function">vgGetString</code>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetSyncAttrib.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetSyncAttrib.xhtml
new file mode 100644
index 0000000..de9009b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglGetSyncAttrib.xhtml
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglGetSyncAttrib - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglGetSyncAttrib">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglGetSyncAttrib —
+ Return an attribute of a sync object
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglGetSyncAttrib</strong>(</code>
+ </td>
+ <td>(EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSync <var class="pdparam">sync</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">attribute</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLAttrib *<var class="pdparam">value</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the <abbr class="acronym">EGL</abbr> display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>sync</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the sync object to query.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attribute</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL sync object attribute to query.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>value</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the requested attribute value.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetSyncAttrib</code> is used to query
+ attributes of the sync object <em class="parameter"><code>sync</code></em>. Legal
+ values for <em class="parameter"><code>attribute</code></em> depend on the type
+ of sync object, as shown in table
+ <a class="xref" href="#tab-syncattr" title="Table 1.  Attributes accepted by eglGetSyncAttrib">Table 1, “
+ Attributes accepted by <code class="function">eglGetSyncAttrib</code>
+ â€</a>. Assuming no errors are
+ generated, <code class="constant">EGL_TRUE</code> is returned and the
+ value of the queried attribute is returned in
+ *<em class="parameter"><code>value</code></em>.
+ </p>
+ <div class="table" id="tab-syncattr">
+ <div class="table-title">Table 1. 
+ Attributes accepted by <code class="function">eglGetSyncAttrib</code>
+ </div>
+ <div class="table-contents">
+ <table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; ">
+ <colgroup>
+ <col/>
+ <col/>
+ <col/>
+ </colgroup>
+ <thead>
+ <tr>
+ <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Attribute</th>
+ <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Description</th>
+ <th style="text-align: left; border-bottom: 2px solid ; ">Supported Sync Objects</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Attribute</td>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Description</td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">Supported Sync Objects</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_SYNC_TYPE</code>
+ </td>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Type of the sync object</td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">All</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
+ <code class="constant">EGL_SYNC_STATUS</code>
+ </td>
+ <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">Status of the sync object</td>
+ <td style="text-align: left; border-bottom: 2px solid ; ">All</td>
+ </tr>
+ <tr>
+ <td style="text-align: left; border-right: 2px solid ; ">
+ <code class="constant">EGL_SYNC_CONDITION</code>
+ </td>
+ <td style="text-align: left; border-right: 2px solid ; ">Signaling condition</td>
+ <td style="text-align: left; ">
+ <code class="constant">EGL_SYNC_FENCE</code> or
+ <code class="constant">EGL_SYNC_CL_EVENT</code>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <br class="table-break"/>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ On failure, <code class="function">eglGetSyncAttrib</code> returns
+ <code class="constant">EGL_FALSE</code> and *<em class="parameter"><code>value</code></em>
+ is not modified.
+ </p>
+ <p>
+ If <em class="parameter"><code>sync</code></em> is not a valid sync object for
+ <em class="parameter"><code>display</code></em>, an
+ <code class="constant">EGL_BAD_PARAMETER</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>attribute</code></em> is not one of the attributes
+ in table <a class="xref" href="#tab-syncattr" title="Table 1.  Attributes accepted by eglGetSyncAttrib">Table 1, “
+ Attributes accepted by <code class="function">eglGetSyncAttrib</code>
+ â€</a>, an
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>attribute</code></em> is not supported for the
+ type of sync object passed in <em class="parameter"><code>sync</code></em>, an
+ <code class="constant">EGL_BAD_MATCH</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>display</code></em> does not match the display
+ passed to <code class="function">eglCreateSync</code> when
+ <em class="parameter"><code>sync</code></em> was created, behaviour is undefined.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglGetSyncAttrib</code> is available only if the
+ EGL version is 1.5 or greater.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateSync</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglInitialize.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglInitialize.xhtml
new file mode 100644
index 0000000..4544be2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglInitialize.xhtml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglInitialize - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglInitialize">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglInitialize —
+ initialize an <abbr class="acronym">EGL</abbr> display connection
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglInitialize</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint * <var class="pdparam">major</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint * <var class="pdparam">minor</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection to initialize.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>major</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the major version number of the EGL implementation.
+ May be <code class="constant">NULL</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>minor</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the minor version number of the EGL implementation.
+ May be <code class="constant">NULL</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglInitialize</code> initialized the EGL display
+ connection obtained with
+ <a class="citerefentry" href="eglGetDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>.
+ Initializing an already initialized EGL display connection has no
+ effect besides returning the version numbers.
+ </p>
+ <p>
+ <em class="parameter"><code>major</code></em> and <em class="parameter"><code>minor</code></em>
+ do not return values if they are specified as <code class="constant">NULL</code>.
+ </p>
+ <p>
+ Use <a class="citerefentry" href="eglTerminate.xhtml"><span class="citerefentry"><span class="refentrytitle">eglTerminate</span></span></a>
+ to release resources associated with an EGL display connection.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if
+ <code class="function">eglInitialize</code> fails,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>major</code></em> and <em class="parameter"><code>minor</code></em> are not
+ modified when <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> cannot be initialized.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglGetDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
+ <a class="citerefentry" href="eglTerminate.xhtml"><span class="citerefentry"><span class="refentrytitle">eglTerminate</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglIntro.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglIntro.xhtml
new file mode 100644
index 0000000..b82eade
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglIntro.xhtml
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglIntro - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglIntro">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglIntro —
+ introduction to managing client API rendering through the
+ <abbr class="acronym">EGL</abbr> API.
+ </p>
+ </div>
+ <div class="refsect1" id="overview">
+ <h2>Overview</h2>
+ <p>
+ The <em class="firstterm">Khronos Native Platform Graphics
+ Interface</em> (EGL) provides a means for rendering
+ using a <em class="firstterm">client API</em> such as OpenGL ES
+ (a 3D renderer for embedded systems), OpenGL (a functional
+ superset of OpenGL ES for desktop systems), and OpenVG (a 2D
+ vector graphics renderer) together with a
+ <em class="firstterm">platform</em>, such as Microsoft Windows or
+ the X Window System.
+ </p>
+ <p>
+ Depending on its implementation EGL might be more or less
+ tightly integrated into the platform. Most EGL
+ functions require an EGL display connection, which can be
+ obtained by calling
+ <a class="citerefentry" href="eglGetPlatformDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetPlatformDisplay</span></span></a>
+ or
+ <a class="citerefentry" href="eglGetDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>.
+ To initialize and
+ query what EGL version is supported on the display
+ connection, call
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>.
+ </p>
+ <p>
+ The EGL specification does not define the set of platforms that
+ may be supported by an EGL implementation, nor does it specify
+ behavior specific to any platform. The set of supported
+ platforms and their behavior is defined by platform-specific
+ extensions. To detect if a particular platform is supported,
+ clients should query the <code class="constant">EGL_EXTENSIONS</code>
+ string of <code class="constant">EGL_NO_DISPLAY</code> using
+ <a class="citerefentry" href="eglQueryString.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>.
+ </p>
+ <p>
+ Platforms supporting EGL make a subset of their
+ visuals (which may also referred to as pixel formats, frame
+ buffer configurations, or other similar terms) available for
+ client API rendering. Windows and pixmaps created with these
+ visuals may also be rendered into using the platform APIs.
+ </p>
+ <p>
+ An EGL <em class="firstterm">surface</em> extends a native
+ window or pixmap with additional <em class="firstterm">auxillary
+ buffers</em>. These buffers include a color buffer, a
+ depth buffer, a stencil buffer, and an alpha mask buffer.
+ Some or all of the buffers listed are included in each EGL
+ frame buffer configuration.
+ </p>
+ <p>
+ EGL supports rendering into three types of surfaces:
+ windows, pixmaps and pixel buffers (pbuffers). EGL window
+ and pixmap surfaces are associated with corresponding
+ resources of the platform. EGL pixel buffers are
+ EGL-only resources, and do not accept rendering through the
+ platform APIs.
+ </p>
+ <p>
+ To render using a client API into an EGL surface, you must
+ determine the appropriate EGL frame buffer configuration,
+ which supports the rendering features the application
+ requires.
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>
+ returns an <span class="type">EGLConfig</span> matching the required
+ attributes, if any. A complete list of EGL frame buffer
+ configurations can be obtained by calling
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>.
+ Attributes of a particular EGL frame buffer configuration
+ can be queried by calling
+ <a class="citerefentry" href="eglGetConfigAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>.
+ </p>
+ <p>
+ For EGL window and pixmap surfaces, a suitable native window
+ or pixmap with a matching native visual must be created
+ first. For a given EGL frame buffer configuration, the
+ native visual type and ID can be retrieved with a call to
+ <a class="citerefentry" href="eglGetConfigAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>.
+ For pixel buffers, no underlying native resource is
+ required.
+ </p>
+ <p>
+ To create an EGL window surface from a native window, call
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>.
+ To create an EGL pixmap surface from a native pixmap, call
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>.
+ To create a pixel buffer (pbuffer) surface (which has no
+ associated native buffer), call
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>
+ To create a pixel buffer (pbuffer) surface whose color
+ buffer is provided by an OpenVG <span class="type">VGImage</span>, call
+ <a class="citerefentry" href="eglCreatePbufferFromClientBuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferFromClientBuffer</span></span></a>.
+ Use
+ <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+ to release previously allocated resources.
+ </p>
+ <p>
+ An EGL rendering context is required to bind client API
+ rendering to an EGL surface. An EGL surface and an EGL
+ rendering context must have compatible EGL frame buffer
+ configurations. To create an EGL rendering context, call
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>.
+ The type of client API context created (OpenGL ES, OpenVG,
+ etc.) can be changed by first calling
+ <a class="citerefentry" href="eglBindAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>.
+ </p>
+ <p>
+ An EGL rendering context may be bound to one or two EGL
+ surfaces by calling
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ This context/surface(s) association specifies the
+ <em class="firstterm">current context</em> and
+ <em class="firstterm">current surface</em>, and is used by all
+ client API rendering commands for the bound context until
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ is called with different arguments.
+ </p>
+ <p>
+ Both platform and client API commands may be used to operate
+ on certain surfaces. However, the two command streams are
+ not synchronized. Synchronization can be explicitly
+ specified using by calling
+ <a class="citerefentry" href="eglWaitClient.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitClient</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>,
+ and possibly by calling other platform APIs.
+ </p>
+ </div>
+ <div class="refsect1" id="examples">
+ <h2>Examples</h2>
+ <p>
+ Below is a minimal example of creating an RGBA-format window that
+ allows rendering with OpenGL ES.
+ The window is cleared to yellow when the program runs. For simplicity,
+ the program does not check for any errors.
+ </p>
+ <pre class="programlisting">
+#include &lt;stdlib.h&gt;
+#include &lt;unistd.h&gt;
+#include &lt;EGL/egl.h&gt;
+#include &lt;GLES/gl.h&gt;
+typedef ... NativeWindowType;
+extern NativeWindowType createNativeWindow(void);
+static EGLint const attribute_list[] = {
+ EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_NONE
+};
+int main(int argc, char ** argv)
+{
+ EGLDisplay display;
+ EGLConfig config;
+ EGLContext context;
+ EGLSurface surface;
+ NativeWindowType native_window;
+ EGLint num_config;
+
+ /* get an EGL display connection */
+ display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
+ /* initialize the EGL display connection */
+ eglInitialize(display, NULL, NULL);
+
+ /* get an appropriate EGL frame buffer configuration */
+ eglChooseConfig(display, attribute_list, &amp;config, 1, &amp;num_config);
+
+ /* create an EGL rendering context */
+ context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
+
+ /* create a native window */
+ native_window = createNativeWindow();
+
+ /* create an EGL window surface */
+ surface = eglCreateWindowSurface(display, config, native_window, NULL);
+
+ /* connect the context to the surface */
+ eglMakeCurrent(display, surface, surface, context);
+
+ /* clear the color buffer */
+ glClearColor(1.0, 1.0, 0.0, 1.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glFlush();
+
+ eglSwapBuffers(display, surface);
+
+ sleep(10);
+ return EXIT_SUCCESS;
+}
+</pre>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ Prior to EGL 1.5, platforms were referred to as the
+ <em class="firstterm">native window system</em>, and
+ platform-specific queries and APIs were not available. Only a
+ single native window system was supported.
+ </p>
+ </div>
+ <div class="refsect1" id="usingeglextensions">
+ <h2>Using EGL Extensions</h2>
+ <p>
+ All supported EGL extensions will have a corresponding definition in
+ <code class="filename">egl.h</code> and a token in the extension strings returned
+ by
+ <a class="citerefentry" href="eglQueryString.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>.
+ </p>
+ </div>
+ <div class="refsect1" id="futureeglversions">
+ <h2>Future EGL Versions</h2>
+ <p>
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ and
+ <a class="citerefentry" href="eglQueryString.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>
+ can be used to determine at run-time what version of EGL is available.
+ To check the EGL version at compile-time, test whether
+ <code class="constant">EGL_VERSION_<em class="replaceable"><code>x</code></em>_<em class="replaceable"><code>y</code></em></code>
+ is defined, where <em class="replaceable"><code>x</code></em> and
+ <em class="replaceable"><code>y</code></em> are the major and minor version
+ numbers.
+ </p>
+ </div>
+ <div class="refsect1" id="files">
+ <h2>Files</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="filename">GLES/egl.h</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ EGL header file
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+
+ <a class="citerefentry" href="eglBindAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.xhtml"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferFromClientBuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferFromClientBuffer</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglDestroyContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroyContext</span></span></a>,
+ <a class="citerefentry" href="eglDestroySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglGetDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
+ <a class="citerefentry" href="eglGetPlatformDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetPlatformDisplay</span></span></a>,
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQueryString.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>,
+ <a class="citerefentry" href="eglSwapBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>,
+ <a class="citerefentry" href="eglTerminate.xhtml"><span class="citerefentry"><span class="refentrytitle">eglTerminate</span></span></a>,
+ <a class="citerefentry" href="eglWaitGL.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitGL</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglMakeCurrent.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglMakeCurrent.xhtml
new file mode 100644
index 0000000..14f28ec
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglMakeCurrent.xhtml
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglMakeCurrent - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglMakeCurrent">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglMakeCurrent —
+ attach an EGL rendering context to EGL surfaces
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglMakeCurrent</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSurface <var class="pdparam">draw</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSurface <var class="pdparam">read</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLContext <var class="pdparam">context</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the <abbr class="acronym">EGL</abbr> display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>draw</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the <abbr class="acronym">EGL</abbr> draw surface.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>read</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the <abbr class="acronym">EGL</abbr> read surface.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>context</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the <abbr class="acronym">EGL</abbr> rendering context
+ to be attached to the surfaces.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglMakeCurrent</code> binds <em class="parameter"><code>context</code></em>
+ to the current rendering thread and to the <em class="parameter"><code>draw</code></em>
+ and <em class="parameter"><code>read</code></em> surfaces.
+ </p>
+ <p>
+ For an OpenGL or OpenGL ES context, <em class="parameter"><code>draw</code></em>
+ is used for all operations except for any pixel data read back or copied
+ (<a class="citerefentry" href="glReadPixels.xhtml"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a>,
+ <a class="citerefentry" href="glCopyTexImage2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>, and
+ <a class="citerefentry" href="glCopyTexSubImage2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage2D</span></span></a>),
+ which is taken from the frame buffer values of
+ <em class="parameter"><code>read</code></em>. Note that the same
+ <span class="type">EGLSurface</span> may be specified for both draw and read.
+ </p>
+ <p>
+ For an OpenVG context, the same <span class="type">EGLSurface</span> must be
+ specified for both <em class="parameter"><code>draw</code></em> and
+ <em class="parameter"><code>read</code></em>.
+ </p>
+ <p>
+ If the calling thread has already a current rendering context of
+ the same client API type as <em class="parameter"><code>context</code></em>, then
+ that context is flushed and marked as no longer current.
+ <em class="parameter"><code>context</code></em> is then made the current context
+ for the calling thread. For purposes of
+ <code class="function">eglMakeCurrent</code>, the client API type of all
+ OpenGL ES and OpenGL contexts is considered the same. In other
+ words, if any OpenGL ES context is currently bound and
+ <em class="parameter"><code>context</code></em> is an OpenGL context, or if any
+ OpenGL context is currently bound and
+ <em class="parameter"><code>context</code></em> is an OpenGL ES context, the
+ currently bound context will be made no longer current and
+ <em class="parameter"><code>context</code></em> will be made current.
+ </p>
+ <p>
+ OpenGL and OpenGL ES buffer mappings created by e.g.
+ <code class="function">glMapBuffer</code> are not affected by
+ <code class="function">eglMakeCurrent</code>; they persist whether the
+ context owning the buffer is current or not.
+ </p>
+ <p>
+ If <em class="parameter"><code>draw</code></em> is destroyed after
+ <code class="function">eglMakeCurrent</code> is called, then subsequent
+ rendering commands will be processed and the context state will
+ be updated, but the surface contents become undefined. If
+ <em class="parameter"><code>read</code></em> is destroyed after
+ <code class="function">eglMakeCurrent</code> then pixel values
+ <em class="parameter"><code>read</code></em> from the framebuffer (e.g., as
+ result of calling glReadPixels) are undefined. If a native
+ window or pixmap underlying the <em class="parameter"><code>draw</code></em> or
+ <em class="parameter"><code>read</code></em> surfaces is destroyed, rendering and
+ <em class="parameter"><code>read</code></em>back are handled as above.
+ </p>
+ <p>
+ To release the current context without assigning a new one, set
+ <em class="parameter"><code>context</code></em> to
+ <code class="constant">EGL_NO_CONTEXT</code> and set
+ <em class="parameter"><code>draw</code></em> and <em class="parameter"><code>read</code></em> to
+ <code class="constant">EGL_NO_SURFACE</code> . The currently bound
+ context for the client API specified by the current rendering
+ API is flushed and marked as no longer current, and there will
+ be no current context for that client API after
+ <code class="function">eglMakeCurrent</code> returns. This is the only
+ case in which <code class="function">eglMakeCurrent</code> respects the
+ current rendering API. In all other cases, the client API
+ affected is determined by <em class="parameter"><code>context</code></em>. This
+ is the only case where an uninitialized display may be passed to
+ <code class="function">eglMakeCurrent</code>.
+ </p>
+ <p>
+ If ctx is not <code class="constant">EGL_NO_CONTEXT</code>, then both
+ <em class="parameter"><code>draw</code></em> and <em class="parameter"><code>read</code></em> must
+ not be <code class="constant">EGL_NO_SURFACE</code> unless
+ <em class="parameter"><code>context</code></em> is a context which supports being
+ bound without read and draw surfaces. In this case the context
+ is made current without a default framebuffer. The meaning of
+ this is defined by the client API of the supporting context (see
+ chapter 4 of the OpenGL 3.0 Specification, and the
+ <code class="constant">GL_OES_surfaceless_context</code> OpenGL ES
+ extension.).
+ </p>
+ <p>
+ The first time a OpenGL or OpenGL ES context is made current the
+ viewport and scissor dimensions are set to the size of the
+ <em class="parameter"><code>draw</code></em> surface (as though
+ <code class="function">glViewport</code>(0,0,w,h) and
+ <code class="function">glScissor</code>(0,0,<em class="parameter"><code>w</code></em>,<em class="parameter"><code>h</code></em>)
+ were called, where <em class="parameter"><code>w</code></em> and
+ <em class="parameter"><code>h</code></em> are the width and height of the
+ surface, respectively). However, the viewport and scissor
+ dimensions are not modified when <em class="parameter"><code>context</code></em>
+ is subsequently made current. The client is responsible for
+ resetting the viewport and scissor in this case.
+ </p>
+ <p>
+ The first time <em class="parameter"><code>context</code></em> is made current,
+ if it is without a default framebuffer (e.g. both
+ <em class="parameter"><code>draw</code></em> and <em class="parameter"><code>read</code></em> are
+ <code class="constant">EGL_NO_SURFACE</code> ), then the viewport and
+ scissor regions are set as though
+ <code class="function">glViewport</code>(0,0,0,0) and
+ <code class="function">glScissor</code>(0,0,0,0) were called.
+ </p>
+ <p>
+ Implementations may delay allocation of auxiliary buffers for a
+ surface until they are required by a context (which may result
+ in the <code class="constant">EGL_BAD_ALLOC</code> error described
+ above). Once allocated, however, auxiliary buffers and their
+ contents persist until a surface is deleted.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>, and
+ <a class="citerefentry" href="eglGetCurrentSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>
+ to query the current rendering context and associated display connection and surfaces.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ If <em class="parameter"><code>draw</code></em> or <em class="parameter"><code>read</code></em>
+ are not compatible with <em class="parameter"><code>context</code></em>, then an
+ <code class="constant">EGL_BAD_MATCH</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>context</code></em> is current to some other
+ thread, or if either <em class="parameter"><code>draw</code></em> or
+ <em class="parameter"><code>read</code></em> are bound to contexts in another
+ thread, an <code class="constant">EGL_BAD_ACCESS</code> error is
+ generated.
+ </p>
+ <p>
+ If binding <em class="parameter"><code>context</code></em> would exceed the
+ number of current contexts of that client API type supported by
+ the implementation, an <code class="constant">EGL_BAD_ACCESS</code> error
+ is generated.
+ </p>
+ <p>
+ If either <em class="parameter"><code>draw</code></em> or
+ <em class="parameter"><code>read</code></em> are pbuffers created with
+ <code class="function">eglCreatePbufferFromClientBuffer</code>, and the
+ underlying bound client API buffers are in use by the client API
+ that created them, an <code class="constant">EGL_BAD_ACCESS</code> error
+ is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>context</code></em> is not a valid context and is
+ not <code class="constant">EGL_NO_CONTEXT</code>, an
+ <code class="constant">EGL_BAD_CONTEXT</code> error is generated.
+ </p>
+ <p>
+ If either <em class="parameter"><code>draw</code></em> or
+ <em class="parameter"><code>read</code></em> are not valid EGL surfaces and are
+ not <code class="constant">EGL_NO_SURFACE</code>, an
+ <code class="constant">EGL_BAD_SURFACE</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>context</code></em> is
+ <code class="constant">EGL_NO_CONTEXT</code> and either
+ <em class="parameter"><code>draw</code></em> or <em class="parameter"><code>read</code></em> are
+ not <code class="constant">EGL_NO_SURFACE</code>, an
+ <code class="constant">EGL_BAD_MATCH</code> error is generated.
+ </p>
+ <p>
+ If either of <em class="parameter"><code>draw</code></em> or
+ <em class="parameter"><code>read</code></em> is a valid surface and the other is
+ <code class="constant">EGL_NO_SURFACE</code>, an
+ <code class="constant">EGL_BAD_MATCH</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>context</code></em> does not support being bound
+ without <em class="parameter"><code>read</code></em> and
+ <em class="parameter"><code>draw</code></em> surfaces, and both
+ <em class="parameter"><code>draw</code></em> and <em class="parameter"><code>read</code></em> are
+ <code class="constant">EGL_NO_SURFACE</code>, an
+ <code class="constant">EGL_BAD_MATCH</code> error is generated.
+ </p>
+ <p>
+ If a native window underlying either <em class="parameter"><code>draw</code></em>
+ or <em class="parameter"><code>read</code></em> is no longer valid, an
+ <code class="constant">EGL_BAD_NATIVE_WINDOW</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>draw</code></em> and <em class="parameter"><code>read</code></em>
+ cannot fit into graphics memory simultaneously, an
+ <code class="constant">EGL_BAD_MATCH</code> error is generated.
+ </p>
+ <p>
+ If the previous context of the calling thread has unflushed
+ commands, and the previous surface is no longer valid, an
+ <code class="constant">EGL_BAD_CURRENT_SURFACE</code> error is generated.
+ </p>
+ <p>
+ If the ancillary buffers for <em class="parameter"><code>draw</code></em> and
+ <em class="parameter"><code>read</code></em> cannot be allocated, an
+ <code class="constant">EGL_BAD_ALLOC</code> error is generated.
+ </p>
+ <p>
+ If a power management event has occurred, an
+ <code class="constant">EGL_CONTEXT_LOST</code> error is generated.
+ </p>
+ <p>
+ If any of the following are true:
+
+ </p>
+ <div class="itemizedlist">
+ <ul class="itemizedlist" style="list-style-type: disc; ">
+ <li class="listitem">
+ <p>
+ <em class="parameter"><code>context</code></em> is not
+ <code class="constant">EGL_NO_CONTEXT</code>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <em class="parameter"><code>read</code></em> is not
+ <code class="constant">EGL_NO_SURFACE</code>
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ <em class="parameter"><code>draw</code></em> is not
+ <code class="constant">EGL_NO_SURFACE</code>
+ </p>
+ </li>
+ </ul>
+ </div>
+ <p>
+
+ then an <code class="constant">EGL_NOT_INITIALIZED</code> error is
+ generated if <em class="parameter"><code>display</code></em> is a valid but
+ uninitialized display.
+ </p>
+ <p>
+ As with other commands taking <span class="type">EGLDisplay</span>
+ parameters, if <em class="parameter"><code>display</code></em> is not a valid
+ <span class="type">EGLDisplay</span> handle, an
+ <code class="constant">EGL_BAD_DISPLAY</code> error is generated. (Some
+ implementations have chosen to allow
+ <code class="constant">EGL_NO_DISPLAY</code> as a valid
+ <em class="parameter"><code>display</code></em> parameter for
+ <code class="function">eglMakeCurrent</code>. This behavior is not
+ portable to all EGL implementations, and should be considered as
+ an undocumented vendor extension).
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glReadPixels.xhtml"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a>,
+ <a class="citerefentry" href="glCopyTexImage2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>,
+ <a class="citerefentry" href="glCopyTexSubImage2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage2D</span></span></a>,
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>,
+ <a class="citerefentry" href="eglGetDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryAPI.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryAPI.xhtml
new file mode 100644
index 0000000..45e5a80
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryAPI.xhtml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglQueryAPI - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglQueryAPI">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglQueryAPI — Query the current rendering API</p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLenum <strong class="fsfunc">eglQueryAPI</strong>(</code>
+ </td>
+ <td><code>void)</code>;</td>
+ <td> </td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglQueryAPI</code> returns the value of the
+ current rendering API for EGL in the thread it is called
+ from. The current rendering API is set by
+ <a class="citerefentry" href="eglBindAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ and affects the behavior of other EGL commands.
+ </p>
+ <p>
+ The value returned will be one of the valid
+ <em class="parameter"><code>api</code></em> parameters to
+ <a class="citerefentry" href="eglBindAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>, or
+ <code class="constant">EGL_NONE</code>.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglQueryAPI</code> is supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ The initial value of the current rendering API is
+ <code class="constant">EGL_OPENGL_ES_API</code> unless OpenGL ES is
+ not supported by an implementation, in which case the
+ initial value is <code class="constant">EGL_NONE</code> (however,
+ <code class="constant">EGL_NONE</code> is not a valid
+ <em class="parameter"><code>api</code></em> parameter to
+ <code class="function">eglQueryAPI</code>).
+ </p>
+ <p>
+ The current rendering API can be changed by calling
+ <a class="citerefentry" href="eglBindAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ None.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglBindAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglWaitClient.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitClient</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryContext.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryContext.xhtml
new file mode 100644
index 0000000..c121448
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryContext.xhtml
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglQueryContext - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglQueryContext">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglQueryContext —
+ return <abbr class="acronym">EGL</abbr> rendering context information
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglQueryContext</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLContext <var class="pdparam">context</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">attribute</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint * <var class="pdparam">value</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>context</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL rendering context to query.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attribute</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL rendering context attribute to be returned.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>value</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the requested value.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglQueryContext</code> returns in
+ <em class="parameter"><code>value</code></em> the value of
+ <em class="parameter"><code>attribute</code></em> for <em class="parameter"><code>context</code></em>.
+ <em class="parameter"><code>attribute</code></em> can be one of the following:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_ID</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the ID of the EGL frame buffer configuration
+ with respect to which the context was created.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_CLIENT_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the type of client API which the context
+ supports (one of
+ <code class="constant">EGL_OPENGL_API</code>,
+ <code class="constant">EGL_OPENGL_ES_API</code>, or
+ <code class="constant">EGL_OPENVG_API</code>).
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the version of the client API which the
+ context supports, as specified at context creation
+ time. The resulting value is only meaningful for an
+ OpenGL ES context.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RENDER_BUFFER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the buffer which client API rendering
+ via the context will use. The value returned
+ depends on properties of both the context, and
+ the surface to which the context is bound:
+ </p>
+ <div class="itemizedlist">
+ <ul style="list-style-type: disc; " class="itemizedlist">
+ <li class="listitem">
+ <p>
+ If the context is bound to a pixmap surface,
+ then <code class="constant">EGL_SINGLE_BUFFER</code> will
+ be returned.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ If the context is bound to a pbuffer surface,
+ then <code class="constant">EGL_BACK_BUFFER</code> will
+ be returned.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ If the context is bound to a window surface,
+ then either <code class="constant">EGL_BACK_BUFFER</code>
+ or <code class="constant">EGL_SINGLE_BUFFER</code> may be
+ returned. The value returned depends on both the
+ buffer requested by the setting of the
+ <code class="constant">EGL_RENDER_BUFFER</code> property
+ of the surface (which may be queried by calling
+ <code class="function">eglQuerySurface</code>), and on
+ the client API (not all client APIs support
+ single-buffer rendering to window surfaces).
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ If the context is not bound to a surface, such
+ as an OpenGL ES context bound to a framebuffer
+ object, then <code class="constant">EGL_NONE</code> will
+ be returned.
+ </p>
+ </li>
+ </ul>
+ </div>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ Attributes <code class="constant">EGL_CONTEXT_CLIENT_TYPE</code> and
+ <code class="constant">EGL_RENDER_BUFFER</code> are supported only if
+ the EGL version is 1.2 or greater.
+ </p>
+ <p>
+ Attribute <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code> is
+ supported only if the EGL version is 1.3 or greater.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>value</code></em> is not modified when
+ <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONTEXT</code> is generated if
+ <em class="parameter"><code>context</code></em> is not an EGL rendering context.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is not a valid context attribute.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryString.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryString.xhtml
new file mode 100644
index 0000000..663d046
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQueryString.xhtml
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglQueryString - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglQueryString">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglQueryString —
+ return a string describing properties of the EGL client or of an
+ <abbr class="acronym">EGL</abbr> display connection
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">char const * <strong class="fsfunc">eglQueryString</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">name</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>name</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies a symbolic constant, one of
+ <code class="constant">EGL_CLIENT_APIS</code>,
+ <code class="constant">EGL_VENDOR</code>,
+ <code class="constant">EGL_VERSION</code>, or
+ <code class="constant">EGL_EXTENSIONS</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglQueryString</code> returns a pointer to a
+ static, zero-terminated string describing properties of the EGL
+ client or of an EGL display connection.
+ <em class="parameter"><code>name</code></em> may be one of the following:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CLIENT_APIS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a string describing which client rendering
+ APIs are supported. The string contains a
+ space-separated list of API names. The list must
+ include at least one of <code class="code">OpenGL</code>,
+ <code class="code">OpenGL_ES</code>, or <code class="code">OpenVG</code>.
+ These strings correspond respectively to values
+ <code class="constant">EGL_OPENGL_API</code>,
+ <code class="constant">EGL_OPENGL_ES_API</code>, and
+ <code class="constant">EGL_OPENVG_API</code> of the
+ <a class="citerefentry" href="eglBindAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ <em class="parameter"><code>api</code></em> argument.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VENDOR</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the name of the vendor responsible for this EGL
+ implementation. The format and contents of the string
+ are implementation-dependent.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VERSION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a version or release number. The
+ <code class="constant">EGL_VERSION</code> string is laid out
+ as follows:
+ </p>
+ <p>
+ <em class="replaceable"><code>major_version</code></em>.<em class="replaceable"><code>minor_version</code></em>
+ space
+ <em class="replaceable"><code>vendor_specific_info</code></em>
+ </p>
+ <p>
+ Both the major and minor portions of the version
+ number are numeric. Their values must match the
+ <em class="parameter"><code>major</code></em> and
+ <em class="parameter"><code>minor</code></em> values returned by
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>.
+ </p>
+ <p>
+ The vendor-specific information is optional; if
+ present, its format and contents are
+ implementation-specific.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_EXTENSIONS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a space separated list of supported
+ extensions to EGL. If there are no extensions, then
+ the empty string is returned.
+ </p>
+ <p>
+ If <em class="parameter"><code>display</code></em> is
+ <code class="constant">EGL_NO_DISPLAY</code>, then the
+ <code class="constant">EGL_EXTENSIONS</code> string describes
+ the set of supported <em class="firstterm">client
+ extensions</em>. If
+ <em class="parameter"><code>display</code></em> is a valid,
+ initialized display, then the
+ <code class="constant">EGL_EXTENSIONS</code> string describes
+ the set of <em class="firstterm">display extensions</em>
+ supported by that display. The set of supported
+ client extensions is disjoint from the set of
+ extensions supported by any given display.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="constant">EGL_CLIENT_APIS</code> is supported only if
+ the EGL version is 1.2 or greater.
+ </p>
+ <p>
+ A <em class="parameter"><code>display</code></em> of
+ <code class="constant">EGL_NO_DISPLAY</code> is supported only if the EGL
+ version is 1.5 or greater.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">NULL</code> is returned on failure.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection,
+ unless <em class="parameter"><code>display</code></em> is
+ <code class="constant">EGL_NO_DISPLAY</code> and
+ <em class="parameter"><code>name</code></em> is
+ <code class="constant">EGL_EXTENSIONS</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> is a valid but uninitialized
+ EGLDisplay.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>name</code></em> is not an accepted value.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglBindAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ <a class="citerefentry" href="eglGetDisplay.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQuerySurface.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQuerySurface.xhtml
new file mode 100644
index 0000000..14b4be2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglQuerySurface.xhtml
@@ -0,0 +1,435 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglQuerySurface - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglQuerySurface">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglQuerySurface —
+ return <abbr class="acronym">EGL</abbr> surface information
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglQuerySurface</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSurface <var class="pdparam">surface</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">attribute</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint * <var class="pdparam">value</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface to query.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attribute</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface attribute to be returned.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>value</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the requested value.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglQuerySurface</code> returns in
+ <em class="parameter"><code>value</code></em> the value of
+ <em class="parameter"><code>attribute</code></em> for <em class="parameter"><code>surface</code></em>.
+ <em class="parameter"><code>attribute</code></em> can be one of the following:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_ID</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the ID of the EGL frame buffer configuration
+ with respect to which the surface was created.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_GL_COLORSPACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the color space used by OpenGL and OpenGL ES
+ when rendering to the surface, either
+ <code class="constant">EGL_GL_COLORSPACE_SRGB</code> or
+ <code class="constant">EGL_GL_COLORSPACE_LINEAR</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_HEIGHT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the height of the surface in pixels.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_HORIZONTAL_RESOLUTION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the horizontal dot pitch of the display on
+ which a window surface is visible. The value
+ returned is equal to the actual dot pitch, in
+ pixels/meter, multiplied by the constant value
+ <code class="constant">EGL_DISPLAY_SCALING</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LARGEST_PBUFFER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the same attribute value specified when the
+ surface was created with
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>.
+ For a window or pixmap surface,
+ <em class="parameter"><code>value</code></em> is not modified.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIPMAP_LEVEL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns which level of the mipmap to render to, if
+ texture has mipmaps.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIPMAP_TEXTURE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns <code class="constant">EGL_TRUE</code> if texture has
+ mipmaps, <code class="constant">EGL_FALSE</code> otherwise.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the filter used when resolving the
+ multisample buffer. The filter may be either
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_DEFAULT</code>
+ or <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX</code>,
+ as described for
+ <a class="citerefentry" href="eglSurfaceAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_PIXEL_ASPECT_RATIO</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the aspect ratio of an individual pixel (the
+ ratio of a pixel's width to its height). The value
+ returned is equal to the actual aspect ratio
+ multiplied by the constant value
+ <code class="constant">EGL_DISPLAY_SCALING</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RENDER_BUFFER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the buffer which client API rendering is
+ requested to use. For a window surface, this is the
+ same attribute value specified when the surface was
+ created. For a pbuffer surface, it is always
+ <code class="constant">EGL_BACK_BUFFER</code>. For a pixmap
+ surface, it is always
+ <code class="constant">EGL_SINGLE_BUFFER</code>. To determine
+ the actual buffer being rendered to by a context,
+ call
+ <a class="citerefentry" href="eglQueryContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQueryContext</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SWAP_BEHAVIOR</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the effect on the color buffer when posting
+ a surface with
+ <a class="citerefentry" href="eglSwapBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>.
+ Swap behavior may be either
+ <code class="constant">EGL_BUFFER_PRESERVED</code> or
+ <code class="constant">EGL_BUFFER_DESTROYED</code>, as
+ described for
+ <a class="citerefentry" href="eglSurfaceAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns format of texture. Possible values are
+ <code class="constant">EGL_NO_TEXTURE</code>,
+ <code class="constant">EGL_TEXTURE_RGB</code>, and
+ <code class="constant">EGL_TEXTURE_RGBA</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_TARGET</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns type of texture. Possible values are
+ <code class="constant">EGL_NO_TEXTURE</code>, or
+ <code class="constant">EGL_TEXTURE_2D</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VERTICAL_RESOLUTION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the vertical dot pitch of the display on
+ which a window surface is visible. The value
+ returned is equal to the actual dot pitch, in
+ pixels/meter, multiplied by the constant value
+ <code class="constant">EGL_DISPLAY_SCALING</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the interpretation of alpha values used by
+ OpenVG when rendering to the surface, either
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code> or
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_COLORSPACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the color space used by OpenVG when rendering to
+ the surface, either
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code> or
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_WIDTH</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the width of the surface in pixels.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ Attribute <code class="constant">EGL_GL_COLORSPACE</code> is supported
+ only if the EGL version is 1.5 or greater.
+ </p>
+ <p>
+ Attribute <code class="constant">EGL_MULTISAMPLE_RESOLVE</code> is
+ supported only if the EGL version is 1.4 or greater.
+ </p>
+ <p>
+ Attributes <code class="constant">EGL_DISPLAY_SCALING</code>.
+ <code class="constant">EGL_HORIZONTAL_RESOLUTION</code>,
+ <code class="constant">EGL_PIXEL_ASPECT_RATIO</code>,
+ <code class="constant">EGL_RENDER_BUFFER</code>,
+ <code class="constant">EGL_SWAP_BEHAVIOR</code>, and
+ <code class="constant">EGL_VERTICAL_RESOLUTION</code> are supported
+ only if the EGL version is 1.2 or greater.
+ </p>
+ <p>
+ Querying attributes <code class="constant">EGL_TEXTURE_FORMAT</code>,
+ <code class="constant">EGL_TEXTURE_TARGET</code>,
+ <code class="constant">EGL_MIPMAP_TEXTURE</code>, or
+ <code class="constant">EGL_MIPMAP_LEVEL</code> for a non-pbuffer
+ surface is not an error, but <em class="parameter"><code>value</code></em> is
+ not modified.
+ </p>
+ <p>
+ <code class="constant">EGL_DISPLAY_SCALING</code> is the constant
+ value 10000. Floating-point values such as resolution and
+ pixel aspect ratio are scaled by this value before being
+ returned as integers so that sufficient precision to be
+ meaningful will be retained in the returned value.
+ </p>
+ <p>
+ For an offscreen (pbuffer or pixmap) surface, or a surface
+ whose pixel dot pitch or aspect ratio are unknown, querying
+ <code class="constant">EGL_HORIZONTAL_RESOLUTION</code>,
+ <code class="constant">EGL_PIXEL_ASPECT_RATIO</code>, or
+ <code class="constant">EGL_VERTICAL_RESOLUTION</code> will return the
+ constant value <code class="constant">EGL_UNKNOWN</code> (-1).
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>value</code></em> is not modified when
+ <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is not a valid surface attribute.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglSurfaceAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>,
+ <a class="citerefentry" href="eglSwapBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglReleaseTexImage.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglReleaseTexImage.xhtml
new file mode 100644
index 0000000..7040263
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglReleaseTexImage.xhtml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglReleaseTexImage - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglReleaseTexImage">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglReleaseTexImage —
+ Releases a color buffer that is being used as a texture
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglReleaseTexImage</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSurface <var class="pdparam">surface</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">buffer</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>buffer</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the texture image data.</p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ The specified color buffer is released back to the surface. The surface is made
+ available for reading and writing when it no longer has any color buffers bound as
+ textures.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ If the specified color buffer is no longer bound to a texture (e.g., because the
+ texture object was deleted) then eglReleaseTexImage has no effect. No error is
+ generated.
+ </p>
+ <p>
+ The contents of the color buffer are undefined when it is first released. In particular,
+ there is no guarantee that the texture image is still present. However, the contents of
+ other color buffers are unaffected by this call. Also, the contents of the depth and stencil buffers
+ are not affected by <a class="citerefentry" href="eglBindTexImage.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindTexImage</span></span></a>
+ and <code class="function">eglReleaseTexImage</code>.
+ </p>
+ <p>
+ After a color buffer is released from a texture (either explicitly by calling
+ <code class="function">eglReleaseTexImage</code> or implicitly by calling a routine such as
+ <a class="citerefentry" href="glTexImage2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a>),
+ all texture images that were defined by the color buffer become <code class="constant">NULL</code>
+ (it is as if <a class="citerefentry" href="glTexImage.xhtml"><span class="citerefentry"><span class="refentrytitle">glTexImage</span></span></a> was called with an image of zero width).
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ surface attribute <code class="constant">EGL_TEXTURE_FORMAT</code> is
+ set to <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>buffer</code></em> is not a valid buffer
+ (currently only <code class="constant">EGL_BACK_BUFFER</code> may be
+ specified).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL surface, or is
+ not a bound pbuffer surface.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglBindTexImage.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindTexImage</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglReleaseThread.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglReleaseThread.xhtml
new file mode 100644
index 0000000..a894b68
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglReleaseThread.xhtml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglReleaseThread - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglReleaseThread">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglReleaseThread — Release EGL per-thread state</p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglReleaseThread</strong>(</code>
+ </td>
+ <td><code>void)</code>;</td>
+ <td> </td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglReleaseThread</code> returns the EGL to its
+ state at thread initialization, releasing all per-thread
+ state including the error status returned by
+ <span class="command"><strong>eglGetError</strong></span>, the currently bound
+ rendering API defined by <span class="command"><strong>eglBindAPI</strong></span>, and
+ the current contexts for each supported client API. The
+ overhead of maintaining this state may be objectionable in
+ applications which create and destroy many threads, but only
+ call EGL or client APIs in a few of those threads at any
+ given time.
+ </p>
+ <p>
+ <code class="constant">EGL_TRUE</code> is returned on success, and the
+ following actions are taken:
+ </p>
+ <div class="itemizedlist">
+ <ul class="itemizedlist" style="list-style-type: disc; ">
+ <li class="listitem">
+ <p>
+ For each client API supported by EGL, if there is a
+ currently bound context, that context is released.
+ This is equivalent to calling
+ <code class="function">eglMakeCurrent</code> with ctx set to
+ <code class="constant">EGL_NO_CONTEXT</code> and both draw
+ and read set to <code class="constant">EGL_NO_SURFACE</code>
+ (see section 3.7.3).
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ The current rendering API is reset to its value at
+ thread initialization (see
+ <span class="command"><strong>eglBindAPI</strong></span>).
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Any additional implementation-dependent per-thread
+ state maintained by EGL is marked for deletion as
+ soon as possible.
+ </p>
+ </li>
+ </ul>
+ </div>
+ <p>
+ <code class="function">eglReleaseThread</code> may be called in any
+ thread at any time, and may be called more than once in a
+ single thread. The initialization status of EGL (see section
+ 3.2) is not affected by releasing the thread; only
+ per-thread state is affected.
+ </p>
+ <p>
+ Resources explicitly allocated by calls to EGL, such as
+ contexts, surfaces, and configuration lists, are not
+ affected by <code class="function">eglReleaseThread</code>. Such
+ resources belong not to the thread, but to the EGL
+ implementation as a whole.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglReleaseThread</code> is supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ Applications may call other EGL routines from a thread
+ following <code class="function">eglReleaseThread</code>, but any
+ such call may reallocate the EGL state previously released.
+ In particular, calling <code class="function">eglGetError</code>
+ immediately following a successful call to
+ <code class="function">eglReleaseThread</code> will return
+ <code class="constant">EGL_SUCCESS</code>, but will also result in
+ reallocating per-thread state.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise. There are no
+ defined conditions under which failure will occur. Even if
+ EGL is not initialized on any EGLDisplay,
+ <code class="function">eglReleaseThread</code> should succeed.
+ </p>
+ <p>
+ However, platform-dependent failures may be signaled through
+ the value returned from <code class="function">eglGetError</code>.
+ Unless the platform-dependent behavior is known, a failed
+ call to <code class="function">eglReleaseThread</code> should be
+ assumed to leave the current rendering API, and the
+ currently bound contexts for each supported client API, in
+ an unknown state.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglBindAPI.xhtml"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ <a class="citerefentry" href="eglGetError.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetError</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSurfaceAttrib.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSurfaceAttrib.xhtml
new file mode 100644
index 0000000..0da8ac3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSurfaceAttrib.xhtml
@@ -0,0 +1,274 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglSurfaceAttrib - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglSurfaceAttrib">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglSurfaceAttrib —
+ set an <abbr class="acronym">EGL</abbr> surface attribute
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglSurfaceAttrib</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSurface <var class="pdparam">surface</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">attribute</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">value</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attribute</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface attribute to set.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>value</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the attributes required value.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglSurfaceAttrib</code> sets the value of
+ <em class="parameter"><code>attribute</code></em> for
+ <em class="parameter"><code>surface</code></em> to
+ <em class="parameter"><code>value</code></em>.
+ <em class="parameter"><code>attribute</code></em> can be one of the
+ following:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIPMAP_LEVEL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ For mipmap textures, the
+ <code class="constant">EGL_MIPMAP_LEVEL</code> attribute
+ indicates which level of the mipmap should be
+ rendered. If the value of this attribute is outside
+ the range of supported mipmap levels, the closest
+ valid mipmap level is selected for rendering. The
+ default value is <code class="constant">0</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the filter to use when resolving the
+ multisample buffer (this may occur when swapping or
+ copying the surface, or when changing the client API
+ context bound to the surface). A
+ <em class="parameter"><code>value</code></em> of
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_DEFAULT</code>
+ chooses the default implementation-defined filtering
+ method, while
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX</code>
+ chooses a one-pixel wide box filter placing equal
+ weighting on all multisample values.
+ </p>
+ <p>
+ The initial value of
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE</code> is
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_DEFAULT</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SWAP_BEHAVIOR</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the effect on the color buffer of posting
+ a surface with
+ <a class="citerefentry" href="eglSwapBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>.
+ A <em class="parameter"><code>value</code></em> of
+ <code class="constant">EGL_BUFFER_PRESERVED</code> indicates
+ that color buffer contents are unaffected, while
+ <code class="constant">EGL_BUFFER_DESTROYED</code> indicates
+ that color buffer contents may be destroyed or
+ changed by the operation.
+ </p>
+ <p>
+ The initial value of
+ <code class="constant">EGL_SWAP_BEHAVIOR</code> is chosen by
+ the implementation.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ Attribute <code class="constant">EGL_MULTISAMPLE_RESOLVE</code> is
+ supported only if the EGL version is 1.4 or greater.
+ </p>
+ <p>
+ Attribute <code class="constant">EGL_SWAP_BEHAVIOR</code> is
+ supported only if the EGL version is 1.2 or greater.
+ </p>
+ <p>
+ If the value of pbuffer attribute
+ <code class="constant">EGL_TEXTURE_FORMAT</code> is
+ <code class="constant">EGL_NO_TEXTURE</code>, the value of attribute
+ <code class="constant">EGL_TEXTURE_TARGET</code> is
+ <code class="constant">EGL_NO_TEXTURE</code>, or
+ <em class="parameter"><code>surface</code></em> is not a pbuffer, then
+ attribute <code class="constant">EGL_MIPMAP_LEVEL</code> may be set,
+ but has no effect.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE</code>,
+ <em class="parameter"><code>value</code></em> is
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX</code>, and the
+ <code class="constant">EGL_SURFACE_TYPE</code> attribute of the
+ <span class="type">EGLConfig</span> used to create
+ <em class="parameter"><code>surface</code></em> does not contain
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX_BIT</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is
+ <code class="constant">EGL_SWAP_BEHAVIOR</code>,
+ <em class="parameter"><code>value</code></em> is
+ <code class="constant">EGL_BUFFER_PRESERVED</code>, and the
+ <code class="constant">EGL_SURFACE_TYPE</code> attribute of the
+ <span class="type">EGLConfig</span> used to create
+ <em class="parameter"><code>surface</code></em> does not contain
+ <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is not a valid surface attribute.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreatePbufferSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.xhtml"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSwapBuffers.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSwapBuffers.xhtml
new file mode 100644
index 0000000..b256152
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSwapBuffers.xhtml
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglSwapBuffers - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglSwapBuffers">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglSwapBuffers —
+ post <abbr class="acronym">EGL</abbr> surface color buffer to a native window
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglSwapBuffers</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSurface <var class="pdparam">surface</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL drawing surface whose buffers are to be swapped.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ If <em class="parameter"><code>surface</code></em> is a back-buffered window
+ surface, then the color
+ buffer is copied (posted) to the native window associated with that
+ surface. If <em class="parameter"><code>surface</code></em> is a single-buffered
+ window, pixmap, or pixel buffer surface,
+ <code class="function">eglSwapBuffers</code> has no effect.
+ </p>
+ <p>
+ The contents of ancillary buffers are always undefined after
+ calling <code class="function">eglSwapBuffers</code>. The contents of the
+ color buffer are undefined if the value of the
+ <code class="constant">EGL_SWAP_BEHAVIOR</code> attribute of
+ <em class="parameter"><code>surface</code></em> is not
+ <code class="constant">EGL_BUFFER_PRESERVED</code>. The value of
+ <code class="constant">EGL_SWAP_BEHAVIOR</code> can be set for some
+ surfaces using
+ <a class="citerefentry" href="eglSurfaceAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>.
+ <code class="constant">EGL_SWAP_BEHAVIOR</code> applies only to the color
+ buffer. EGL has no way to specify or query whether or not
+ ancillary buffers are preserved, and applications should not
+ rely on this behavior.
+ </p>
+ <p>
+ <code class="function">eglSwapBuffers</code> performs an implicit
+ flush operation on the context (<code class="function">glFlush</code>
+ for an OpenGL ES or OpenGL context,
+ <code class="function">vgFlush</code> for an OpenVG context) bound to
+ <em class="parameter"><code>surface</code></em> before swapping. Subsequent
+ client API commands may be issued on that context
+ immediately after calling
+ <code class="function">eglSwapBuffers</code>, but are not executed
+ until the buffer exchange is completed.
+ </p>
+ </div>
+ <div class="refsect1" id="resize">
+ <h2>Native Window Resizing</h2>
+ <p>
+ If the native window corresponding to
+ <em class="parameter"><code>surface</code></em> has been resized prior to the
+ swap, <em class="parameter"><code>surface</code></em> must be resized to match.
+ <em class="parameter"><code>surface</code></em> will normally be resized by the
+ EGL implementation at the time the native window is resized. If
+ the implementation cannot do this transparently to the client,
+ then <code class="function">eglSwapBuffers</code> must detect the change
+ and resize surface prior to copying its pixels to the native
+ window. If <em class="parameter"><code>surface</code></em> shrinks as a result of
+ resizing, some rendered pixels are lost. If
+ <em class="parameter"><code>surface</code></em> grows, the newly allocated buffer
+ contents are undefined. The resizing behavior described here
+ only maintains consistency of EGL surfaces and native windows;
+ clients are still responsible for detecting window size changes
+ (using platform-specific means) and changing their viewport and
+ scissor regions accordingly.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ Attribute <code class="constant">EGL_SWAP_BEHAVIOR</code> is supported
+ only if the EGL version is 1.2 or greater. In earlier versions,
+ behavior is as though the attribute exists, and always has the
+ value <code class="constant">EGL_BUFFER_DESTROYED</code>.
+ </p>
+ <p>
+ The EGL 1.4 specification was updated to acknowledge that
+ ancillary buffers are not necessarily preserved after a swap,
+ and that the <code class="constant">EGL_SWAP_BEHAVIOR</code> attribute
+ applies only to the color buffer. This change in the
+ specification acknowledged the behavior of many shipping
+ implementations, and is not intended to result in behavior
+ changes in any existing implementation.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if swapping of the
+ surface buffers fails, <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL drawing surface.
+ </p>
+ <p>
+ <code class="constant">EGL_CONTEXT_LOST</code> is generated if a power management
+ event has occurred. The application must destroy all contexts and
+ reinitialise OpenGL ES state and objects to continue rendering.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <code class="function">glFlush</code>,
+ <a class="citerefentry" href="eglCopyBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCopyBuffers</span></span></a>,
+ <code class="function">vgFlush</code>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSwapInterval.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSwapInterval.xhtml
new file mode 100644
index 0000000..80eb980
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglSwapInterval.xhtml
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglSwapInterval - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglSwapInterval">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglSwapInterval —
+ specifies the minimum number of video frame periods
+ per buffer swap for the window associated with the current context.
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglSwapInterval</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">interval</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>interval</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the minimum number of video frames that are displayed before
+ a buffer swap will occur.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ The interval takes effect when <a class="citerefentry" href="eglSwapBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a> is
+ first called subsequent to the <code class="function">eglSwapInterval</code> call.
+ </p>
+ <p>
+ The <em class="parameter"><code>interval</code></em> specified by the function applies to the draw surface
+ bound to the context that is current on the calling thread.
+ </p>
+ <p>
+ If <em class="parameter"><code>interval</code></em> is set to a value of <code class="constant">0</code>, buffer swaps are not synchronized to a
+ video frame, and the swap happens as soon as the render is complete. interval
+ is silently clamped to minimum and maximum implementation dependent
+ valuesbefore being stored; these values are defined by <span class="type">EGLConfig</span> attributes
+ <code class="constant">EGL_MIN_SWAP_INTERVAL</code> and <code class="constant">EGL_MAX_SWAP_INTERVAL</code> respectively.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ The swap interval has no effect on <a class="citerefentry" href="eglCopyBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCopyBuffers</span></span></a>.
+ </p>
+ <p>
+ The default swap interval is 1.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure, <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONTEXT</code> is generated if there is no current context
+ on the calling thread.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if there is no surface
+ bound to the current context.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglSwapBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglTerminate.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglTerminate.xhtml
new file mode 100644
index 0000000..4c32f9b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglTerminate.xhtml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglTerminate - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglTerminate">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglTerminate —
+ terminate an <abbr class="acronym">EGL</abbr> display connection
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglTerminate</strong>(</code>
+ </td>
+ <td>EGLDisplay <var class="pdparam">display</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection to terminate.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglTerminate</code> releases resources associated with
+ an EGL display connection. Termination marks all EGL resources associated
+ with the EGL display connection for deletion. If contexts or surfaces
+ associated with <em class="parameter"><code>display</code></em> is current to any thread,
+ they are not released until they are no longer current as a result of
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ </p>
+ <p>
+ Terminating an already terminated EGL display connection has no effect.
+ A terminated display may be re-initialized by calling
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ again.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if
+ <code class="function">eglTerminate</code> fails,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglInitialize.xhtml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.xhtml"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitClient.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitClient.xhtml
new file mode 100644
index 0000000..5f88491
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitClient.xhtml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglWaitClient - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglWaitClient">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglWaitClient —
+ Complete client API execution prior to subsequent native
+ rendering calls
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglWaitClient</strong>(</code>
+ </td>
+ <td><code>void)</code>;</td>
+ <td> </td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ All rendering calls for the currently bound context, for the
+ current rendering API, made prior to
+ <code class="function">eglWaitClient</code> are guaranteed to be
+ executed before native rendering calls made after
+ <code class="function">eglWaitClient</code>. The same result can be
+ achieved using client API-specific commands such as
+ <a class="citerefentry" href="glFinish.xhtml"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a>
+ or
+ <a class="citerefentry" href="vgFinish.xhtml"><span class="citerefentry"><span class="refentrytitle">vgFinish</span></span></a>.
+ </p>
+ <p>
+ <code class="function">eglWaitClient</code> is ignored if there is no
+ current EGL rendering context for the current rendering API.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if
+ <code class="function">eglWaitClient</code> fails,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ If there is no current context for the current rendering
+ API, the function has no effect but still returns
+ <code class="constant">EGL_TRUE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CURRENT_SURFACE</code> is generated if
+ the surface associated with the current context has a native
+ window or pixmap, and that window or pixmap is no longer
+ valid.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglWaitClient</code> is supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ <code class="function">eglWaitClient</code> is a generalized version
+ of <code class="function">eglWaitGL</code>, supporting multiple
+ client APIs.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glFinish.xhtml"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a>,
+ <a class="citerefentry" href="glFlush.xhtml"><span class="citerefentry"><span class="refentrytitle">glFlush</span></span></a>,
+ <a class="citerefentry" href="eglWaitGL.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitGL</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>,
+ <a class="citerefentry" href="vgFinish.xhtml"><span class="citerefentry"><span class="refentrytitle">vgFinish</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitGL.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitGL.xhtml
new file mode 100644
index 0000000..020a502
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitGL.xhtml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglWaitGL - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglWaitGL">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglWaitGL —
+ Complete GL execution prior to subsequent native rendering
+ calls
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglWaitGL</strong>(</code>
+ </td>
+ <td><code>void)</code>;</td>
+ <td> </td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ All OpenGL ES rendering calls for the currently bound OpenGL
+ ES context made prior to <code class="function">eglWaitGL</code> are
+ guaranteed to be executed before native rendering calls made
+ after <code class="function">eglWaitGL</code>. The same result can be
+ achieved using
+ <a class="citerefentry" href="glFinish.xhtml"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a>.
+ </p>
+ <p>
+ <code class="function">eglWaitGL</code> is ignored if there is no
+ current EGL rendering context for OpenGL ES.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglWaitClient</code> is supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ <code class="function">eglWaitClient</code> is a generalized version
+ of <code class="function">eglWaitGL</code>, supporting multiple
+ client APIs. For backwards compatibility,
+ <code class="function">eglWaitGL</code> continues to be supported and
+ is equivalent to the series of commands
+ </p>
+ <pre class="programlisting">
+ EGLenum api = <code class="function">eglQueryAPI</code>();
+ <code class="function">eglBindAPI</code>(<code class="constant">EGL_OPENGL_ES_API</code>);
+ <code class="function">eglWaitClient</code>();
+ <code class="function">eglBindAPI</code>(api);
+ </pre>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if
+ <code class="function">eglWaitGL</code> fails,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CURRENT_SURFACE</code> is generated if
+ the surface associated with the current context has a native
+ window or pixmap, and that window or pixmap is no longer
+ valid.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glFinish.xhtml"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a>,
+ <a class="citerefentry" href="eglWaitClient.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitClient</span></span></a>
+ <a class="citerefentry" href="eglWaitNative.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitNative.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitNative.xhtml
new file mode 100644
index 0000000..16cf5dd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitNative.xhtml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglWaitNative - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglWaitNative">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglWaitNative —
+ complete native execution prior to subsequent GL rendering calls
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglWaitNative</strong>(</code>
+ </td>
+ <td>EGLint <var class="pdparam">engine</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>engine</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies a particular marking engine to be waited on.
+ Must be <code class="constant">EGL_CORE_NATIVE_ENGINE</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ Native rendering calls made prior to <code class="function">eglWaitNative</code>
+ are guaranteed to be executed before GL rendering calls made after
+ <code class="function">eglWaitNative</code>.
+ </p>
+ <p>
+ <code class="function">eglWaitNative</code>
+ is ignored if there is no current
+ <abbr class="acronym">EGL</abbr>
+ rendering context.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>engine</code></em> is not a recognized marking engine.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CURRENT_SURFACE</code>
+ is generated if the surface associated with the current context has a
+ native window or pixmap, and that window or pixmap is no longer valid.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glFinish.xhtml"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a>,
+ <a class="citerefentry" href="glFlush.xhtml"><span class="citerefentry"><span class="refentrytitle">glFlush</span></span></a>,
+ <a class="citerefentry" href="eglWaitClient.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitClient</span></span></a>,
+ <a class="citerefentry" href="eglWaitGL.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitGL</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitSync.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitSync.xhtml
new file mode 100644
index 0000000..4eeff76
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/eglWaitSync.xhtml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title xmlns:xlink="http://www.w3.org/1999/xlink">eglWaitSync - EGL Reference Pages</title>
+ <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
+ </head>
+ <body>
+ <header/>
+ <div class="refentry" id="eglWaitSync">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h2>Name</h2>
+ <p>eglWaitSync —
+ Wait in the server for a sync object to be signalled
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
+ <tr>
+ <td>
+ <code class="funcdef">EGLBoolean <strong class="fsfunc">eglWaitSync</strong>(</code>
+ </td>
+ <td>(EGLDisplay <var class="pdparam">display</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLSync <var class="pdparam">sync</var>, </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td>EGLint <var class="pdparam">flags</var><code>)</code>;</td>
+ </tr>
+ </table>
+ <div class="funcprototype-spacer"> </div>
+ </div>
+ </div>
+ <div class="refsect1" id="parameters">
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the <abbr class="acronym">EGL</abbr> display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>sync</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the sync object to wait on.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>flags</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies flags controlling wait behavior.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglWaitSync</code> is similar to
+ <code class="function">eglClientWaitSync</code>, but instead of blocking
+ and not returning to the application until
+ <em class="parameter"><code>sync</code></em> is signaled,
+ <code class="function">eglWaitSync</code> returns immediately. On
+ success, <code class="constant">EGL_TRUE</code> is returned, and the
+ server for the client API context will block until
+ <em class="parameter"><code>sync</code></em> is signaled.
+ </p>
+ <p>
+ Note: <code class="function">eglWaitSync</code> allows applications to
+ continue to queue commands from the application in anticipation
+ of the sync being signaled, potentially increasing parallelism
+ between application, client API server code, and the GPU. The
+ server only blocks execution of commands for the specific
+ context on which <code class="function">eglWaitSync</code> was issued;
+ other contexts implemented by the same server are not affected..
+ </p>
+ <p>
+ <em class="parameter"><code>sync</code></em> has the same meaning as for
+ <code class="function">eglClientWaitSync</code>.
+ </p>
+ <p>
+ <em class="parameter"><code>flags</code></em> must be 0.
+ </p>
+ <p>
+ <code class="function">eglWaitSync</code> requires support from the bound
+ client API, and will not succeed unless the same client API
+ properties described for creation of fence syncs in
+ <a class="citerefentry" href="eglCreateSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateSync</span></span></a>
+ are satisfied.
+ </p>
+ </div>
+ <div class="refsect1" id="errors">
+ <h2>Errors</h2>
+ <p>
+ <code class="function">eglWaitSync</code> returns
+ <code class="constant">EGL_FALSE</code> on failure, and does not cause
+ the server for the client API context to block.
+ </p>
+ <p>
+ If the current context for the currently bound client API does
+ not support server waits, an <code class="constant">EGL_BAD_MATCH</code>
+ error is generated.
+ </p>
+ <p>
+ If no context is current for the currently bound client API
+ (i.e., <code class="function">eglGetCurrentContext</code> returns
+ <code class="constant">EGL_NO_CONTEXT</code>), an
+ <code class="constant">EGL_BAD_MATCH</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>display</code></em> does not match the
+ <span class="type">EGLDisplay</span> passed to
+ <code class="function">eglCreateSync</code> when
+ <em class="parameter"><code>sync</code></em> was created, the behavior is
+ undefined.
+ </p>
+ <p>
+ If <em class="parameter"><code>sync</code></em> is not a valid sync object for
+ <em class="parameter"><code>display</code></em>, an
+ <code class="constant">EGL_BAD_PARAMETER</code> error is generated.
+ </p>
+ <p>
+ If <em class="parameter"><code>flags</code></em> is not 0, an
+ <code class="constant">EGL_BAD_PARAMETER</code> error is generated.
+ </p>
+ </div>
+ <div class="refsect1" id="notes">
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglWaitSync</code> is available only if the EGL
+ version is 1.5 or greater.
+ </p>
+ </div>
+ <div class="refsect1" id="seealso">
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglClientWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglClientWaitSync</span></span></a>,
+ <a class="citerefentry" href="eglCreateSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateSync</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>
+ </p>
+ </div>
+ <p>
+ </p>
+ <div class="refsect3" id="copyright">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ <p>
+</p>
+ </div>
+ <footer/>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/index.php b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/index.php
new file mode 100644
index 0000000..70d55cb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/index.php
@@ -0,0 +1,121 @@
+<html>
+<head>
+ <link rel="stylesheet" type="text/css" href="style-index.css" />
+ <title>EGL Reference Pages</title>
+ <?php include 'accord.js'; ?>
+</head>
+<body>
+ <a href="indexflat.php">Use alternate (flat) index</a>
+ <div id="navwrap">
+ <ul id="containerul"> <!-- Must wrap entire list for expand/contract -->
+ <li class="Level1">
+ <a href="start.html" target="pagedisplay">Introduction</a>
+ </li>
+ <li class="Level1">EGL Entry Points
+ <ul class="Level2">
+ <a name="b"></a>
+ <li>b
+ <ul class="Level3">
+ <li><a href="eglBindAPI.xhtml" target="pagedisplay">eglBindAPI</a></li>
+ <li><a href="eglBindTexImage.xhtml" target="pagedisplay">eglBindTexImage</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="c"></a>
+ <li>c
+ <ul class="Level3">
+ <li><a href="eglChooseConfig.xhtml" target="pagedisplay">eglChooseConfig</a></li>
+ <li><a href="eglClientWaitSync.xhtml" target="pagedisplay">eglClientWaitSync</a></li>
+ <li><a href="eglCopyBuffers.xhtml" target="pagedisplay">eglCopyBuffers</a></li>
+ <li><a href="eglCreateContext.xhtml" target="pagedisplay">eglCreateContext</a></li>
+ <li><a href="eglCreateImage.xhtml" target="pagedisplay">eglCreateImage</a></li>
+ <li><a href="eglCreatePbufferFromClientBuffer.xhtml" target="pagedisplay">eglCreatePbufferFromClientBuffer</a></li>
+ <li><a href="eglCreatePbufferSurface.xhtml" target="pagedisplay">eglCreatePbufferSurface</a></li>
+ <li><a href="eglCreatePixmapSurface.xhtml" target="pagedisplay">eglCreatePixmapSurface</a></li>
+ <li><a href="eglCreatePlatformPixmapSurface.xhtml" target="pagedisplay">eglCreatePlatformPixmapSurface</a></li>
+ <li><a href="eglCreatePlatformWindowSurface.xhtml" target="pagedisplay">eglCreatePlatformWindowSurface</a></li>
+ <li><a href="eglCreateSync.xhtml" target="pagedisplay">eglCreateSync</a></li>
+ <li><a href="eglCreateWindowSurface.xhtml" target="pagedisplay">eglCreateWindowSurface</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="d"></a>
+ <li>d
+ <ul class="Level3">
+ <li><a href="eglDestroyContext.xhtml" target="pagedisplay">eglDestroyContext</a></li>
+ <li><a href="eglDestroyImage.xhtml" target="pagedisplay">eglDestroyImage</a></li>
+ <li><a href="eglDestroySurface.xhtml" target="pagedisplay">eglDestroySurface</a></li>
+ <li><a href="eglDestroySync.xhtml" target="pagedisplay">eglDestroySync</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="g"></a>
+ <li>g
+ <ul class="Level3">
+ <li><a href="eglGetConfigAttrib.xhtml" target="pagedisplay">eglGetConfigAttrib</a></li>
+ <li><a href="eglGetConfigs.xhtml" target="pagedisplay">eglGetConfigs</a></li>
+ <li><a href="eglGetCurrentContext.xhtml" target="pagedisplay">eglGetCurrentContext</a></li>
+ <li><a href="eglGetCurrentDisplay.xhtml" target="pagedisplay">eglGetCurrentDisplay</a></li>
+ <li><a href="eglGetCurrentSurface.xhtml" target="pagedisplay">eglGetCurrentSurface</a></li>
+ <li><a href="eglGetDisplay.xhtml" target="pagedisplay">eglGetDisplay</a></li>
+ <li><a href="eglGetError.xhtml" target="pagedisplay">eglGetError</a></li>
+ <li><a href="eglGetPlatformDisplay.xhtml" target="pagedisplay">eglGetPlatformDisplay</a></li>
+ <li><a href="eglGetProcAddress.xhtml" target="pagedisplay">eglGetProcAddress</a></li>
+ <li><a href="eglGetSyncAttrib.xhtml" target="pagedisplay">eglGetSyncAttrib</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="i"></a>
+ <li>i
+ <ul class="Level3">
+ <li><a href="eglInitialize.xhtml" target="pagedisplay">eglInitialize</a></li>
+ <li><a href="eglIntro.xhtml" target="pagedisplay">eglIntro</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="m"></a>
+ <li>m
+ <ul class="Level3">
+ <li><a href="eglMakeCurrent.xhtml" target="pagedisplay">eglMakeCurrent</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="q"></a>
+ <li>q
+ <ul class="Level3">
+ <li><a href="eglQueryAPI.xhtml" target="pagedisplay">eglQueryAPI</a></li>
+ <li><a href="eglQueryContext.xhtml" target="pagedisplay">eglQueryContext</a></li>
+ <li><a href="eglQueryString.xhtml" target="pagedisplay">eglQueryString</a></li>
+ <li><a href="eglQuerySurface.xhtml" target="pagedisplay">eglQuerySurface</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="r"></a>
+ <li>r
+ <ul class="Level3">
+ <li><a href="eglReleaseTexImage.xhtml" target="pagedisplay">eglReleaseTexImage</a></li>
+ <li><a href="eglReleaseThread.xhtml" target="pagedisplay">eglReleaseThread</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="s"></a>
+ <li>s
+ <ul class="Level3">
+ <li><a href="eglSurfaceAttrib.xhtml" target="pagedisplay">eglSurfaceAttrib</a></li>
+ <li><a href="eglSwapBuffers.xhtml" target="pagedisplay">eglSwapBuffers</a></li>
+ <li><a href="eglSwapInterval.xhtml" target="pagedisplay">eglSwapInterval</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="t"></a>
+ <li>t
+ <ul class="Level3">
+ <li><a href="eglTerminate.xhtml" target="pagedisplay">eglTerminate</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="w"></a>
+ <li>w
+ <ul class="Level3">
+ <li><a href="eglWaitClient.xhtml" target="pagedisplay">eglWaitClient</a></li>
+ <li><a href="eglWaitGL.xhtml" target="pagedisplay">eglWaitGL</a></li>
+ <li><a href="eglWaitNative.xhtml" target="pagedisplay">eglWaitNative</a></li>
+ <li><a href="eglWaitSync.xhtml" target="pagedisplay">eglWaitSync</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ </ul> <!-- End Level2 -->
+ </li> <!-- End Level1 -->
+ </div> <!-- End containerurl -->
+ <script type="text/javascript">initiate();</script>
+</body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/indexflat.php b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/indexflat.php
new file mode 100644
index 0000000..a272d65
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/indexflat.php
@@ -0,0 +1,135 @@
+<html>
+<head>
+ <link rel="stylesheet" type="text/css" href="style-index.css" />
+ <title>EGL Reference Pages</title>
+ <!-- Don't include accord.js -->
+</head>
+<body>
+ <a href="index.php">Use alternate (accordion-style) index</a>
+ <center>
+<div id="container">
+ <b><a href="#b" style="text-decoration:none">b</a></b> &nbsp;
+ <b><a href="#c" style="text-decoration:none">c</a></b> &nbsp;
+ <b><a href="#d" style="text-decoration:none">d</a></b> &nbsp;
+ <b><a href="#g" style="text-decoration:none">g</a></b> &nbsp;
+ <b><a href="#i" style="text-decoration:none">i</a></b> &nbsp;
+ <b><a href="#m" style="text-decoration:none">m</a></b> &nbsp;
+ <b><a href="#q" style="text-decoration:none">q</a></b> &nbsp;
+ <b><a href="#r" style="text-decoration:none">r</a></b> &nbsp;
+ <b><a href="#s" style="text-decoration:none">s</a></b> &nbsp;
+ <b><a href="#t" style="text-decoration:none">t</a></b> &nbsp;
+ <b><a href="#w" style="text-decoration:none">w</a></b> &nbsp;
+ </div>
+</center>
+ <div id="navwrap">
+ <ul id="containerul"> <!-- Must wrap entire list for expand/contract -->
+ <li class="Level1">
+ <a href="start.html" target="pagedisplay">Introduction</a>
+ </li>
+ <li class="Level1">EGL Entry Points
+ <ul class="Level2">
+ <a name="b"></a>
+ <li>b
+ <ul class="Level3">
+ <li><a href="eglBindAPI.xhtml" target="pagedisplay">eglBindAPI</a></li>
+ <li><a href="eglBindTexImage.xhtml" target="pagedisplay">eglBindTexImage</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="c"></a>
+ <li>c
+ <ul class="Level3">
+ <li><a href="eglChooseConfig.xhtml" target="pagedisplay">eglChooseConfig</a></li>
+ <li><a href="eglClientWaitSync.xhtml" target="pagedisplay">eglClientWaitSync</a></li>
+ <li><a href="eglCopyBuffers.xhtml" target="pagedisplay">eglCopyBuffers</a></li>
+ <li><a href="eglCreateContext.xhtml" target="pagedisplay">eglCreateContext</a></li>
+ <li><a href="eglCreateImage.xhtml" target="pagedisplay">eglCreateImage</a></li>
+ <li><a href="eglCreatePbufferFromClientBuffer.xhtml" target="pagedisplay">eglCreatePbufferFromClientBuffer</a></li>
+ <li><a href="eglCreatePbufferSurface.xhtml" target="pagedisplay">eglCreatePbufferSurface</a></li>
+ <li><a href="eglCreatePixmapSurface.xhtml" target="pagedisplay">eglCreatePixmapSurface</a></li>
+ <li><a href="eglCreatePlatformPixmapSurface.xhtml" target="pagedisplay">eglCreatePlatformPixmapSurface</a></li>
+ <li><a href="eglCreatePlatformWindowSurface.xhtml" target="pagedisplay">eglCreatePlatformWindowSurface</a></li>
+ <li><a href="eglCreateSync.xhtml" target="pagedisplay">eglCreateSync</a></li>
+ <li><a href="eglCreateWindowSurface.xhtml" target="pagedisplay">eglCreateWindowSurface</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="d"></a>
+ <li>d
+ <ul class="Level3">
+ <li><a href="eglDestroyContext.xhtml" target="pagedisplay">eglDestroyContext</a></li>
+ <li><a href="eglDestroyImage.xhtml" target="pagedisplay">eglDestroyImage</a></li>
+ <li><a href="eglDestroySurface.xhtml" target="pagedisplay">eglDestroySurface</a></li>
+ <li><a href="eglDestroySync.xhtml" target="pagedisplay">eglDestroySync</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="g"></a>
+ <li>g
+ <ul class="Level3">
+ <li><a href="eglGetConfigAttrib.xhtml" target="pagedisplay">eglGetConfigAttrib</a></li>
+ <li><a href="eglGetConfigs.xhtml" target="pagedisplay">eglGetConfigs</a></li>
+ <li><a href="eglGetCurrentContext.xhtml" target="pagedisplay">eglGetCurrentContext</a></li>
+ <li><a href="eglGetCurrentDisplay.xhtml" target="pagedisplay">eglGetCurrentDisplay</a></li>
+ <li><a href="eglGetCurrentSurface.xhtml" target="pagedisplay">eglGetCurrentSurface</a></li>
+ <li><a href="eglGetDisplay.xhtml" target="pagedisplay">eglGetDisplay</a></li>
+ <li><a href="eglGetError.xhtml" target="pagedisplay">eglGetError</a></li>
+ <li><a href="eglGetPlatformDisplay.xhtml" target="pagedisplay">eglGetPlatformDisplay</a></li>
+ <li><a href="eglGetProcAddress.xhtml" target="pagedisplay">eglGetProcAddress</a></li>
+ <li><a href="eglGetSyncAttrib.xhtml" target="pagedisplay">eglGetSyncAttrib</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="i"></a>
+ <li>i
+ <ul class="Level3">
+ <li><a href="eglInitialize.xhtml" target="pagedisplay">eglInitialize</a></li>
+ <li><a href="eglIntro.xhtml" target="pagedisplay">eglIntro</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="m"></a>
+ <li>m
+ <ul class="Level3">
+ <li><a href="eglMakeCurrent.xhtml" target="pagedisplay">eglMakeCurrent</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="q"></a>
+ <li>q
+ <ul class="Level3">
+ <li><a href="eglQueryAPI.xhtml" target="pagedisplay">eglQueryAPI</a></li>
+ <li><a href="eglQueryContext.xhtml" target="pagedisplay">eglQueryContext</a></li>
+ <li><a href="eglQueryString.xhtml" target="pagedisplay">eglQueryString</a></li>
+ <li><a href="eglQuerySurface.xhtml" target="pagedisplay">eglQuerySurface</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="r"></a>
+ <li>r
+ <ul class="Level3">
+ <li><a href="eglReleaseTexImage.xhtml" target="pagedisplay">eglReleaseTexImage</a></li>
+ <li><a href="eglReleaseThread.xhtml" target="pagedisplay">eglReleaseThread</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="s"></a>
+ <li>s
+ <ul class="Level3">
+ <li><a href="eglSurfaceAttrib.xhtml" target="pagedisplay">eglSurfaceAttrib</a></li>
+ <li><a href="eglSwapBuffers.xhtml" target="pagedisplay">eglSwapBuffers</a></li>
+ <li><a href="eglSwapInterval.xhtml" target="pagedisplay">eglSwapInterval</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="t"></a>
+ <li>t
+ <ul class="Level3">
+ <li><a href="eglTerminate.xhtml" target="pagedisplay">eglTerminate</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ <a name="w"></a>
+ <li>w
+ <ul class="Level3">
+ <li><a href="eglWaitClient.xhtml" target="pagedisplay">eglWaitClient</a></li>
+ <li><a href="eglWaitGL.xhtml" target="pagedisplay">eglWaitGL</a></li>
+ <li><a href="eglWaitNative.xhtml" target="pagedisplay">eglWaitNative</a></li>
+ <li><a href="eglWaitSync.xhtml" target="pagedisplay">eglWaitSync</a></li>
+ </ul> <!-- End Level3 -->
+ </li>
+ </ul> <!-- End Level2 -->
+ </li> <!-- End Level1 -->
+ </div> <!-- End containerurl -->
+</body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/khronos-man.css b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/khronos-man.css
new file mode 100644
index 0000000..017c2d0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/khronos-man.css
@@ -0,0 +1,209 @@
+/* Taken from OpenCL styles-css.xsl, which is imbedded in CL man pages *
+/* This style sets a margin around the entire page */
+html, body {
+ margin: 10px;
+}
+
+p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+}
+
+h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+.pdparam {
+ font: italic 16px verdana, sans-serif;
+}
+
+.term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+}
+
+.type {
+ font: normal 16px verdana, sans-serif !important;
+}
+
+.parameter {
+ font-style: italic;
+}
+
+a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+}
+
+a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+}
+
+div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+
+div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+}
+
+div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+}
+
+div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+}
+
+code.constant {
+ font: normal 16px courier new, monospace !important;
+}
+
+span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+}
+
+code.function {
+ font: bold 16px verdana, sans-serif !important;
+}
+
+b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+}
+
+code.varname {
+ font: italic 16px verdana, sans-serif;
+}
+
+code.replaceable {
+ font: italic 16px courier new, monospace;
+}
+
+code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+}
+
+.citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+}
+
+.parameter {
+ font-style: italic;
+}
+
+code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+}
+
+/* PARAMETER: This style controls spacing between the terms in Parameter section */
+dt {
+ margin-top: 15px;
+}
+
+/* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+}
+
+div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+}
+
+div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+}
+
+div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+
+/* EXAMPLE: These styles apply only to the Example section */
+div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+}
+
+div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+}
+
+div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+}
+
+/* <refsect3> is used only for the copyright statement (copyright.xml)
+ at the bottom of the page
+ */
+div.refsect3 p {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+}
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/khronos-man.xsl b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/khronos-man.xsl
new file mode 100644
index 0000000..8b8adb5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/khronos-man.xsl
@@ -0,0 +1,126 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+ <xsl:import href="http://docbook.sourceforge.net/release/xsl-ns/current/xhtml5/onechunk.xsl"/>
+
+ <!-- These two options generate a file named ID.xhtml, where ID is the value
+ of the document xml:id attribute, when processed with the chunking
+ spreadsheet onechunk.xsl. See
+ http://www.sagehill.net/docbookxsl/OneChunk.html -->
+ <xsl:param name="use.id.as.filename">1</xsl:param>
+ <xsl:param name="root.filename"></xsl:param>
+
+ <!-- html.stylesheet adds the specified stylesheet to the page headers.
+ docbook.css.link removes the default docbook.css.
+ -->
+ <xsl:param name="html.stylesheet">khronos-man.css</xsl:param>
+ <xsl:param name="docbook.css.link">0</xsl:param>
+ <xsl:param name="docbook.css.source"></xsl:param>
+
+ <!-- Indent HTML, which requires using onechunk.xsl instead of docbook.xsl -->
+ <xsl:param name="chunker.output.indent">yes</xsl:param>
+
+ <!-- Style parameters -->
+ <xsl:param name="funcsynopsis.style">ansi</xsl:param>
+ <xsl:param name="citerefentry.link" select="'1'"></xsl:param>
+
+ <!-- Generate links in href= attributes for <citerefentry>. Note
+ that in the XSL-NS stylesheets, using the Docbook namespace
+ prefix on the select expressions is *required*. Declaring
+ xmlns:db at xsl:stylesheet scope causes other problems.
+
+ If there is a value specified for the href attribute in
+ citerefentry, then create the link from that attribute instead
+ of the refentrytitle.
+ -->
+ <!-- The @href syntax isn't used by EGL at present -->
+ <xsl:template xmlns:db="http://docbook.org/ns/docbook"
+ name="generate.citerefentry.link">
+ <xsl:choose>
+ <xsl:when test="@href">
+ <xsl:value-of select="@href"/>
+ <xsl:text>.xhtml</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="db:refentrytitle"/>
+ <xsl:text>.xhtml</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Reasonable defaults for tables -->
+ <xsl:param name="default.table.frame">all</xsl:param>
+ <xsl:param name="table.borders.with.css" select="1"></xsl:param>
+ <xsl:param name="table.cell.border.thickness">2px</xsl:param>
+ <xsl:param name="table.frame.border.thickness">2px</xsl:param>
+
+ <!-- Add MathJax <script> tags to document <head> -->
+ <!-- Now that the xmlns:db is declared above, it gets emitted on the
+ <script> elements for unknown reasons
+ -->
+ <!-- Per http://docs.mathjax.org/en/latest/start.html#secure-access-to-the-cdn
+ use their secure URI, instead of the HTTP URI
+ src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
+ -->
+ <!-- This isn't used by EGL at present -->
+<!--
+ <xsl:template name="user.head.content">
+ <script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ MathML: {
+ extensions: ["content-mathml.js"]
+ },
+ tex2jax: {
+ inlineMath: [['$','$'], ['\\(','\\)']]
+ }
+ });
+ </script>
+ <script type="text/javascript"
+ src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
+ </script>
+ </xsl:template>
+-->
+
+ <!-- Add boilerplate to XHTML page title element describing which
+ set of man pages this is. This should really be an XSL
+ parameter which could be set on the command line -->
+ <xsl:template name="user.head.title">
+ <xsl:param name="node" select="."/>
+ <xsl:param name="title"/>
+ <title>
+ <xsl:copy-of select="$title"/>
+ <xsl:text> - EGL Reference Pages</xsl:text>
+ </title>
+ </xsl:template>
+
+ <!-- Root template for processing the document -->
+ <xsl:template match="*" mode="process.root">
+ <xsl:variable name="doc" select="self::*"/>
+ <xsl:call-template name="user.preroot"/>
+ <xsl:call-template name="root.messages"/>
+ <xsl:apply-templates select="."/>
+ </xsl:template>
+
+ <!-- The directives in egl-man.xsl used to be here -->
+
+ <!-- The template refsect3 is inserted here to deal with the
+ copyright. This adds in the text from the include file
+ copyright.inc.xsl -->
+ <!--
+ <xsl:template match="refsect3">
+ <div class="{name(.)}">
+ <xsl:call-template name="language.attribute"/>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ <xsl:value-of select="$copyright"/>
+ </div>
+ </xsl:template>
+ -->
+
+</xsl:stylesheet>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/makeindex.py b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/makeindex.py
new file mode 100644
index 0000000..9cde015
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/makeindex.py
@@ -0,0 +1,316 @@
+#!/usr/bin/python3
+#
+# Copyright (c) 2013-2014 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.
+
+import io, os, re, string, sys;
+
+if __name__ == '__main__':
+ if (len(sys.argv) != 5):
+ print('Usage:', sys.argv[0], ' gendir srcdir accordfilename flatfilename', file=sys.stderr)
+ exit(1)
+ else:
+ gendir = sys.argv[1]
+ srcdir = sys.argv[2]
+ accordfilename = sys.argv[3]
+ flatfilename = sys.argv[4]
+ # print(' gendir = ', gendir, ' srcdir = ', srcdir, 'accordfilename = ', accordfilename, 'flatfilename = ', flatfilename)
+else:
+ print('Unknown invocation mode', file=sys.stderr)
+ exit(1)
+
+# Various levels of indentation in generated HTML
+ind1 = ' '
+ind2 = ind1 + ind1
+ind3 = ind2 + ind1
+ind4 = ind2 + ind2
+
+# Symbolic names
+notAlias = False
+isAlias = True
+
+# Page title
+pageTitle = 'EGL Reference Pages'
+
+# Docbook source and generated HTML 5 file extensions
+srcext = '.xml'
+genext = '.xhtml'
+
+# List of generated files
+files = os.listdir(gendir)
+
+# Feature - class representing a command or function to be indexed, used
+# as dictionary values keyed by the feature name to be indexed.
+#
+# Members
+# file - name of file containing the feature
+# feature - feature name for the index (basis for the dictionary key).
+# alias - True if this is an alias of another feature in the file.
+# Usually if alias is False, feature is the basename of file.
+# apiCommand - True if this is an API command, or should be grouped
+# like one
+class Feature:
+ def __init__(self,
+ file = None,
+ feature = None,
+ alias = False,
+ apiCommand = None):
+ self.file = file
+ self.feature = feature
+ self.alias = alias
+ self.apiCommand = apiCommand
+ # This is the API-dependent command prefix
+ self.prefix = 'egl'
+ self.prefixLen = len(self.prefix)
+ def makeKey(self):
+ # Return dictionary / sort key based on the feature name
+ if (self.apiCommand and self.feature[0:self.prefixLen]
+ == self.prefix):
+ return self.feature[self.prefixLen:]
+ else:
+ return self.feature
+
+# Add dictionary entry for specified Feature.
+# The key used is the feature name, with the leading 'gl' stripped
+# off if this is an API command
+def addkey(dict, feature):
+ key = feature.makeKey()
+ if (key in dict.keys()):
+ print('Key', key, ' already exists in dictionary!')
+ else:
+ dict[key] = feature
+
+# Create list of entry point names to be indexed.
+# Unlike the old Perl script, this proceeds as follows:
+# - Each .xhtml page with a parent .xml page gets an
+# index entry for its base name.
+# - Additionally, each <function> tag inside a <funcdef>
+# in the parent page gets an aliased index entry.
+# - Each .xhtml page *without* a parent is reported but
+# not indexed.
+# - Each collision in index terms is reported.
+# - Index terms are keys in a dictionary whose entries
+# are [ pagename, alias, glPrefix ] where pagename is
+# the base name of the indexed page and alias is True
+# if this index isn't the same as pagename.
+# - API keys have their glPrefix value set to True,
+# GLSL keys to False. There is a simplistic way of
+# telling the files apart based on the file name:
+#
+# * Everything starting with 'egl[A-Z]' is API
+# * 'removedTypes.*' is API (more may be added)
+# * Everything else is GLSL
+
+def isAPIfile(entrypoint):
+ if (re.match('^egl[A-Z]', entrypoint) or entrypoint == 'removedTypes'):
+ return True
+ else:
+ return False
+
+# Dictionary of all keys mapped to Feature values
+refIndex = {}
+
+for file in files:
+ # print('Processing file', file)
+ (entrypoint,ext) = os.path.splitext(file)
+ if (ext == genext):
+ parent = srcdir + '/' + entrypoint + srcext
+ # Determine if this is an API or GLSL page
+ apiCommand = isAPIfile(entrypoint)
+ if (os.path.exists(parent)):
+ addkey(refIndex, Feature(file, entrypoint, False, apiCommand))
+ # Search parent file for <function> tags inside <funcdef> tags
+ # This doesn't search for <varname> inside <fieldsynopsis>, because
+ # those aren't on the same line and it's hard.
+ fp = open(parent)
+ for line in fp.readlines():
+ # Look for <function> tag contents and add as aliases
+ # Don't add the same key twice
+ for m in re.finditer(r"<funcdef>.*<function>(.*)</function>.*</funcdef>", line):
+ funcname = m.group(1)
+ if (funcname != entrypoint):
+ addkey(refIndex, Feature(file, funcname, True, apiCommand))
+ fp.close()
+ else:
+ print('No parent page for', file, ', will not be indexed')
+
+# Some utility functions for generating the navigation table
+# Opencl_tofc.html uses style.css instead of style-index.css
+# flatMenu - if True, don't include accordion JavaScript,
+# generating a flat (expanded) menu.
+# letters - if not None, include per-letter links to within
+# the indices for each letter in the list.
+# altMenu - if not None, the name of the alternate index to
+# link to.
+def printHeader(fp, flatMenu = False, letters = None, altMenu = None):
+ if (flatMenu):
+ scriptInclude = ' <!-- Don\'t include accord.js -->'
+ else:
+ scriptInclude = ' <?php include \'accord.js\'; ?>'
+
+ print('<html>',
+ '<head>',
+ ' <link rel="stylesheet" type="text/css" href="style-index.css" />',
+ ' <title>' + pageTitle + '</title>',
+ scriptInclude,
+ '</head>',
+ '<body>',
+ sep='\n', file=fp)
+
+ if (altMenu):
+ if (flatMenu):
+ altLabel = '(accordion-style)'
+ else:
+ altLabel = '(flat)'
+ print(' <a href="' + altMenu + '">' +
+ 'Use alternate ' + altLabel + ' index' +
+ '</a>', file=fp)
+
+ if (letters):
+ print(' <center>\n<div id="container">', file=fp)
+ for letter in letters:
+ print(' <b><a href="#' +
+ letter +
+ '" style="text-decoration:none">' +
+ letter +
+ '</a></b> &nbsp;', file=fp)
+ print(' </div>\n</center>', file=fp)
+
+ print(' <div id="navwrap">',
+ ' <ul id="containerul"> <!-- Must wrap entire list for expand/contract -->',
+ ' <li class="Level1">',
+ ' <a href="start.html" target="pagedisplay">Introduction</a>',
+ ' </li>',
+ sep='\n', file=fp)
+
+def printFooter(fp, flatMenu = False):
+ print(' </div> <!-- End containerurl -->', file=fp)
+ if (not flatMenu):
+ print(' <script type="text/javascript">initiate();</script>', file=fp)
+ print('</body>',
+ '</html>',
+ sep='\n', file=fp)
+
+# Add a nav table entry. key = link name, feature = Feature info for key
+def addMenuLink(key, feature, fp):
+ file = feature.file
+ linkname = feature.feature
+
+ print(ind4 + '<li><a href="' + file + '" target="pagedisplay">'
+ + linkname + '</a></li>',
+ sep='\n', file=fp)
+
+# Begin index section for a letter, include an anchor to link to
+def beginLetterSection(letter, fp):
+ print(ind2 + '<a name="' + letter + '"></a>',
+ ind2 + '<li>' + letter,
+ ind3 + '<ul class="Level3">',
+ sep='\n', file=fp)
+
+# End index section for a letter
+def endLetterSection(opentable, fp):
+ if (opentable == 0):
+ return
+ print(ind3 + '</ul> <!-- End Level3 -->',
+ ind2 + '</li>',
+ sep='\n', file=fp)
+
+# Return the keys in a dictionary sorted by name.
+# Select only keys matching whichKeys (see genDict below)
+def sortedKeys(dict, whichKeys):
+ list = []
+ for key in dict.keys():
+ if (whichKeys == 'all' or
+ (whichKeys == 'api' and dict[key].apiCommand) or
+ (whichKeys == 'glsl' and not dict[key].apiCommand)):
+ list.append(key)
+ list.sort(key=str.lower)
+ return list
+
+# Generate accordion menu for this dictionary, titled as specified.
+#
+# If whichKeys is 'all', generate index for all features
+# If whichKeys is 'api', generate index only for API features
+# If whichKeys is 'glsl', generate index only for GLSL features
+#
+# fp is the file to write to
+def genDict(dict, title, whichKeys, fp):
+ print(ind1 + '<li class="Level1">' + title,
+ ind2 + '<ul class="Level2">',
+ sep='\n', file=fp)
+
+ # Print links for sorted keys in each letter section
+ curletter = ''
+ opentable = 0
+
+ # Determine which letters are in the table of contents for this
+ # dictionary. If apiPrefix is set, strip the API prefix from each
+ # key containing it first.
+
+ # Generatesorted list of page indexes. Select keys matching whichKeys.
+ keys = sortedKeys(dict, whichKeys)
+
+ # print('@ Sorted list of page indexes:\n', keys)
+
+ for key in keys:
+ # Character starting this key
+ c = str.lower(key[0])
+
+ if (c != curletter):
+ endLetterSection(opentable, fp)
+ # Start a new subtable for this letter
+ beginLetterSection(c, fp)
+ opentable = 1
+ curletter = c
+ addMenuLink(key, dict[key], fp)
+ endLetterSection(opentable, fp)
+
+ print(ind2 + '</ul> <!-- End Level2 -->',
+ ind1 + '</li> <!-- End Level1 -->',
+ sep='\n', file=fp)
+
+######################################################################
+
+# Generate the accordion menu
+fp = open(accordfilename, 'w')
+printHeader(fp, flatMenu = False, altMenu = flatfilename)
+
+genDict(refIndex, 'EGL Entry Points', 'all', fp)
+
+printFooter(fp, flatMenu = False)
+fp.close()
+
+######################################################################
+
+# Generate the non-accordion menu, with combined API and GLSL sections
+fp = open(flatfilename, 'w')
+
+# Set containing all index letters
+indices = { key[0].lower() for key in refIndex.keys() }
+letters = [c for c in indices]
+letters.sort()
+
+printHeader(fp, flatMenu = True, letters = letters, altMenu = accordfilename)
+
+genDict(refIndex, 'EGL Entry Points', 'all', fp)
+
+printFooter(fp, flatMenu = True)
+fp.close()
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/old-egl-man.xsl b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/old-egl-man.xsl
new file mode 100644
index 0000000..e91022b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/old-egl-man.xsl
@@ -0,0 +1,174 @@
+<!-- The following is content that used to be in the EGL XSL directives
+ now found in khronos-man.xsl. It is OpenCL formatting stuff done by
+ Miller & Mattson and is being ignored for the moment. -->
+
+ <!-- Set this param to a placeholder for the base URL of the
+ external specification document. Include the beginning of the
+ 'namedest' function as well. See the script pageNumberLookup.rb
+ to see how this placeholder gets replaced by the actual spec
+ URL and target page number. This placeholder can be any string,
+ and only needs to match the same placeholder string in
+ pageNumberLookup.rb. -->
+ <!-- This isn't used by EGL at present -->
+ <xsl:param name="SpecBaseUrl">http://www.khronos.org/registry/egl/specs/eglTBD.pdf#namedest=</xsl:param>
+
+ <!-- The following template creates the link for the Specification section -->
+ <!-- This isn't used by EGL at present -->
+ <xsl:template match="olink">
+ <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
+ <xsl:value-of select="$SpecBaseUrl" />
+ <xsl:value-of select="@uri" />
+ <xsl:text disable-output-escaping="yes">" target="OpenCL Spec"&gt;</xsl:text>
+ <xsl:value-of select="." />
+ <xsl:text disable-output-escaping="yes">&lt;/a&gt;</xsl:text>
+ </xsl:template>
+
+ <!-- The following enables use of ulink for regular URLs on the pages-->
+ <!-- This isn't used by EGL at present -->
+ <xsl:template match="ulink">
+ <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
+ <xsl:value-of select="@url" />
+ <xsl:text disable-output-escaping="yes">"&gt;</xsl:text>
+ <xsl:value-of select="." />
+ <xsl:text disable-output-escaping="yes">&lt;/a&gt;</xsl:text>
+ </xsl:template>
+
+
+ <!-- The templates gentext-refname and refnamediv are inserted here so
+ we can have the refname displayed as the H1 header on the page -->
+ <xsl:template name="gentext-refname">
+ <xsl:param name="key" select="local-name(.)"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+ <xsl:value-of select="refname"/>
+ </xsl:template>
+
+ <xsl:template match="refnamediv">
+ <div class="{name(.)}">
+ <xsl:call-template name="anchor"/>
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::refnamediv">
+ <!-- no title on secondary refnamedivs! -->
+ </xsl:when>
+ <xsl:when test="$refentry.generate.name != 0">
+ <h1>
+ <xsl:call-template name="gentext-refname">
+ <xsl:with-param name="key" select="'RefName'"/>
+ </xsl:call-template>
+ </h1>
+ </xsl:when>
+ <xsl:when test="$refentry.generate.title != 0">
+ <h2>
+ <xsl:choose>
+ <xsl:when test="../refmeta/refentrytitle">
+ <xsl:apply-templates select="../refmeta/refentrytitle"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="refname[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h2>
+ </xsl:when>
+ </xsl:choose>
+ <p>
+ <xsl:apply-templates/>
+ </p>
+ </div>
+ </xsl:template>
+
+ <!-- The templates refname and refpurpose are inserted here so that we can
+ modify the layout of these values on the HTML page -->
+ <xsl:template match="refname" />
+ <xsl:template match="refpurpose">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+
+ <!-- The Link template allows us to embed links in the <funcprototype>,
+ even though this is not valid DocBook markup -->
+ <xsl:template match="link" mode="ansi-tabular">
+ <xsl:apply-templates select="."/>
+ </xsl:template>
+
+ <!-- This is somewhat redundant with the following template -->
+ <xsl:template match="funcdef/replaceable">
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:template>
+
+ <!-- The following template enables the <replaceable> tag inside
+ <funcdef>, <paramdef>, and <function> to generate <em> in the HTML output -->
+ <xsl:template match="funcdef/replaceable" mode="ansi-tabular">
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:template>
+
+ <xsl:template match="paramdef/replaceable" mode="ansi-tabular">
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:template>
+
+ <xsl:template match="function/replaceable" mode="ansi-nontabular">
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:template>
+
+ <xsl:template match="refname/replaceable" mode="kr-nontabular">
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:template>
+
+ <!-- The templates funcprototype and paramdef are here so we can modify
+ the layout of the synopsis so that it is not broken into so many
+ columns in the table, control indenting, and more. -->
+
+ <!-- funcprototype: ansi, tabular -->
+
+ <xsl:template match="funcprototype" mode="ansi-tabular">
+ <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <xsl:if test="following-sibling::funcprototype">
+ <xsl:attribute name="style">padding-bottom: 1em</xsl:attribute>
+ </xsl:if>
+ <tr valign="bottom">
+ <td>
+ <xsl:apply-templates select="funcdef" mode="ansi-tabular"/>
+ <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="ansi-tabular"/>
+ </td>
+ </tr>
+ <xsl:for-each select="(void|varargs|paramdef)[position() &gt; 1]">
+ <tr valign="top">
+ <td>&#160;</td>
+ <xsl:apply-templates select="." mode="ansi-tabular"/>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="paramdef" mode="ansi-tabular">
+ <xsl:choose>
+ <xsl:when test="type and funcparams">
+ <td>
+ <xsl:apply-templates select="type" mode="kr-tabular-funcsynopsis-mode"/>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td>
+ <xsl:apply-templates select="type/following-sibling::node()" mode="kr-tabular-funcsynopsis-mode"/>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>
+ <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="ansi-tabular"/>
+ <xsl:text>&#160;</xsl:text>
+ <xsl:apply-templates select="parameter" mode="ansi-tabular"/>
+ <xsl:apply-templates select="parameter/following-sibling::node()[not(self::parameter)]" mode="ansi-tabular"/>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+ <!-- OpenCL functions do not end with a semi-colon.
+ <xsl:text>;</xsl:text> -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/present.css b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/present.css
new file mode 100644
index 0000000..6a02d35
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/present.css
@@ -0,0 +1,47 @@
+@charset "utf-8";
+/* CSS Document */
+ li { font: normal 14px verdana, sans-serif; line-height: 14px; }
+ ul { font: normal 14px verdana, sans-serif; line-height: 14px; }
+ a:link, a:visited {color:blue; text-decoration:none;}
+ a:hover {color:blue; text-decoration:none; background-color:FFFF99; }
+
+ #navwrap {
+ width: 320px;
+ margin:0 0 0 4px;
+ padding:0;
+ }
+
+ #containerul, #containerul ul{
+ text-align:left;
+ margin:0 0 0 4px; /* Removes browser default margins applied to the lists. */
+ padding:0; /* Removes browser default padding applied to the lists. */
+ }
+
+ #containerul li{
+ margin:0 0 0 15px; /* A left margin to indent the list items and give the menu a sense of structure. */
+ padding:4px 0 0 2px;
+ list-style-type:none; /* Removes the bullet point that usually goes next to each item in a list. */
+ font: normal 12px verdana, sans-serif;
+ }
+
+ #containerul li.Level1 {
+ margin:0 0 0 0;
+ padding:4px 0 0 2px;
+ list-style-type:none; /* Removes the bullet point that usually goes next to each item in a list. */
+ font: normal 14px verdana, sans-serif;
+ }
+
+ #containerul .symbols{ /* Various styles to position the symbols next to the items in the menu. */
+ background-repeat:no-repeat;
+ float:left;
+ height:14px;
+ margin-right:5px;
+ margin-top:1px;
+ width:14px;
+ }
+
+#containerul ul.Level2 {
+ margin:0;
+ padding: 0;
+ }
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/start.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/start.html
new file mode 100644
index 0000000..36c5528
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/start.html
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>EGL Reference Pages</title>
+ <link rel="stylesheet" href="khronos-man.css"/>
+ </head>
+ <body>
+ <div class="refentry" id="start">
+ <div class="titlepage"/>
+ <div class="refnamediv">
+ <h1>EGL Reference Pages</h1>
+ <p/>
+ </div>
+ <div class="refsect1" id="description">
+ <p>
+ <img src="EGL_300.png" alt=""
+ hspace="40" vspace="40" border="0" align="right"
+ xmlns="http://www.w3.org/1999/xhtml" />
+ </p>
+ <p> EGL&trade; is an interface between Khronos rendering
+ APIs such as OpenGL ES or OpenVG and the underlying
+ native platform window system. It handles graphics
+ context management, surface/buffer binding, and
+ rendering synchronization and enables high-performance,
+ accelerated, mixed-mode 2D and 3D rendering using other
+ Khronos APIs. </p>
+ <p> The reference pages describe EGL 1.5, but can be used
+ with earlier versions since each page notes when
+ features are available only starting with specific older
+ versions (1.2, 1.3, and 1.4). </p>
+ <p> A more detailed overview of EGL functionality and
+ technical concepts can be found in the <a
+ target="pagedisplay" href="eglIntro.html">eglIntro</a>
+ page. </p>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Browser Compatibility</h2>
+ <p> The reference pages are now generated in HTML5 format.
+ Some pages contain imbedded MathML and rely on <a
+ href="http://www.mathjax.org/">MathJax</a> to render
+ mathematical equations on browsers which do not natively
+ support MathML. This should work much better on Chrome,
+ Safari, and other browsers which don't support MathML.
+ </p>
+ <p> However, HTML5 isn't well supported on IE 8 or earlier
+ versions. We recommend you use a more recent browser for
+ viewing the reference pages. </p>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Downloading Reference Page Sources</h2>
+ <p> The Docbook source for the reference pages is available
+ in the <a
+ href="https://github.com/KhronosGroup/EGL-Registry/">
+ KhronosGroup/EGL-Registry</a> GitHub repository. You can
+ build a ref page distribution of your own using open
+ source tools. See the <a
+ href="https://github.com/KhronosGroup/OpenGL-Refpages/blob/master/README.adoc">
+ OpenGL refpage README</a> for more information on needed
+ tools. </p>
+ </div>
+ <div class="refsect1" id="description">
+ <h2>Feedback</h2>
+ <p> If you find errors in or problems with the reference
+ pages, please file a GitHub issue in the <a
+ href="https://github.com/KhronosGroup/EGL-Registry/">
+ KhronosGroup/EGL-Registry</a> GitHub repository. If you
+ have a fix available, please propose a pull request in
+ the same repository. </p>
+ </div>
+ <div class="refsect3">
+ <img src="KhronosLogo.jpg"/>
+ <p>
+ Copyright &#169; 2003-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 condition that this copyright notice and permission notice shall be included
+ in all copies or substantial portions of the Materials.
+ </p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/style-index.css b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/style-index.css
new file mode 100644
index 0000000..00fd1ed
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/style-index.css
@@ -0,0 +1,2 @@
+@import url("undohtml.css");
+@import url("present.css");
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/undohtml.css b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/undohtml.css
new file mode 100644
index 0000000..a2d510f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/undohtml.css
@@ -0,0 +1,9 @@
+/* -- undo browser HTML defaults -- */
+/* -- Global resets of all default items -- */
+
+:link,:visited {text-decoration: none;}
+ul,ol {list-style: none;}
+h1,h2,h3,h4,h5,h6,pre,code,p {font-size: 1em;}
+ul,ol,dl,li,dt,dd,h1,h2,h3,h4,h5,h6,pre,form,body,html,p,blockquote,fieldset,input {margin: 0; padding: 0;}
+a img,:link img,:visited img {border: none;}
+address {font-style: normal;}
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/vn b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/vn
new file mode 100644
index 0000000..c59df02
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/html/vn
@@ -0,0 +1,221 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style><![endif]--><style><!--
+/* Font Definitions */
+@font-face
+ {font-family:"MS Mincho";
+ panose-1:2 2 6 9 4 2 5 8 3 4;}
+@font-face
+ {font-family:"Cambria Math";
+ panose-1:2 4 5 3 5 4 6 3 2 4;}
+@font-face
+ {font-family:Calibri;
+ panose-1:2 15 5 2 2 2 4 3 2 4;}
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;}
+@font-face
+ {font-family:"\@MS Mincho";
+ panose-1:2 2 6 9 4 2 5 8 3 4;}
+@font-face
+ {font-family:Consolas;
+ panose-1:2 11 6 9 2 2 4 3 2 4;}
+/* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {margin:0cm;
+ margin-bottom:.0001pt;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";}
+h1
+ {mso-style-priority:9;
+ mso-style-link:"Heading 1 Char";
+ margin:0cm;
+ margin-bottom:.0001pt;
+ text-indent:0cm;
+ page-break-after:avoid;
+ mso-list:l0 level1 lfo2;
+ font-size:12.0pt;
+ font-family:"Tahoma","sans-serif";
+ color:black;}
+h2
+ {mso-style-priority:9;
+ mso-style-link:"Heading 2 Char";
+ margin:0cm;
+ margin-bottom:.0001pt;
+ text-indent:0cm;
+ page-break-after:avoid;
+ mso-list:l0 level2 lfo2;
+ font-size:10.0pt;
+ font-family:"Tahoma","sans-serif";}
+a:link, span.MsoHyperlink
+ {mso-style-priority:99;
+ color:blue;
+ text-decoration:underline;}
+a:visited, span.MsoHyperlinkFollowed
+ {mso-style-priority:99;
+ color:purple;
+ text-decoration:underline;}
+p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
+ {mso-style-priority:99;
+ mso-style-link:"Plain Text Char";
+ margin:0cm;
+ margin-bottom:.0001pt;
+ font-size:10.5pt;
+ font-family:Consolas;}
+p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
+ {mso-style-priority:34;
+ margin-top:0cm;
+ margin-right:0cm;
+ margin-bottom:0cm;
+ margin-left:36.0pt;
+ margin-bottom:.0001pt;
+ font-size:11.0pt;
+ font-family:"Calibri","sans-serif";}
+span.Heading1Char
+ {mso-style-name:"Heading 1 Char";
+ mso-style-priority:9;
+ mso-style-link:"Heading 1";
+ font-family:"Tahoma","sans-serif";
+ color:black;
+ font-weight:bold;}
+span.Heading2Char
+ {mso-style-name:"Heading 2 Char";
+ mso-style-priority:9;
+ mso-style-link:"Heading 2";
+ font-family:"Tahoma","sans-serif";
+ font-weight:bold;}
+span.PlainTextChar
+ {mso-style-name:"Plain Text Char";
+ mso-style-priority:99;
+ mso-style-link:"Plain Text";
+ font-family:Consolas;}
+span.EmailStyle22
+ {mso-style-type:personal-compose;
+ font-family:"Calibri","sans-serif";
+ color:windowtext;}
+span.EmailStyle23
+ {mso-style-type:personal;
+ font-family:"Calibri","sans-serif";
+ color:windowtext;}
+span.EmailStyle24
+ {mso-style-type:personal;
+ font-family:"Calibri","sans-serif";
+ color:windowtext;}
+span.EmailStyle25
+ {mso-style-type:personal;
+ font-family:"Calibri","sans-serif";
+ color:windowtext;}
+span.EmailStyle26
+ {mso-style-type:personal;
+ font-family:"Calibri","sans-serif";
+ color:windowtext;}
+span.EmailStyle27
+ {mso-style-type:personal;
+ font-family:"Calibri","sans-serif";
+ color:windowtext;}
+span.EmailStyle28
+ {mso-style-type:personal;
+ font-family:"Calibri","sans-serif";
+ color:windowtext;}
+span.EmailStyle29
+ {mso-style-type:personal;
+ font-family:"Calibri","sans-serif";
+ color:windowtext;}
+.MsoChpDefault
+ {mso-style-type:export-only;
+ font-size:10.0pt;}
+@page WordSection1
+ {size:612.0pt 792.0pt;
+ margin:72.0pt 72.0pt 72.0pt 72.0pt;}
+div.WordSection1
+ {page:WordSection1;}
+/* List Definitions */
+@list l0
+ {mso-list-id:1;
+ mso-list-template-ids:699138934;}
+@list l0:level1
+ {mso-level-number-format:none;
+ mso-level-style-link:"Heading 1";
+ mso-level-suffix:none;
+ mso-level-text:"";
+ mso-level-tab-stop:0cm;
+ mso-level-number-position:left;
+ margin-left:0cm;
+ text-indent:0cm;}
+@list l0:level2
+ {mso-level-number-format:none;
+ mso-level-style-link:"Heading 2";
+ mso-level-suffix:none;
+ mso-level-text:"";
+ mso-level-tab-stop:0cm;
+ mso-level-number-position:left;
+ margin-left:0cm;
+ text-indent:0cm;}
+@list l0:level3
+ {mso-level-number-format:none;
+ mso-level-suffix:none;
+ mso-level-text:"";
+ mso-level-tab-stop:0cm;
+ mso-level-number-position:left;
+ margin-left:0cm;
+ text-indent:0cm;}
+@list l0:level4
+ {mso-level-number-format:none;
+ mso-level-suffix:none;
+ mso-level-text:"";
+ mso-level-tab-stop:0cm;
+ mso-level-number-position:left;
+ margin-left:0cm;
+ text-indent:0cm;}
+@list l0:level5
+ {mso-level-number-format:none;
+ mso-level-suffix:none;
+ mso-level-text:"";
+ mso-level-tab-stop:0cm;
+ mso-level-number-position:left;
+ margin-left:0cm;
+ text-indent:0cm;}
+@list l0:level6
+ {mso-level-number-format:none;
+ mso-level-suffix:none;
+ mso-level-text:"";
+ mso-level-tab-stop:0cm;
+ mso-level-number-position:left;
+ margin-left:0cm;
+ text-indent:0cm;}
+@list l0:level7
+ {mso-level-number-format:none;
+ mso-level-suffix:none;
+ mso-level-text:"";
+ mso-level-tab-stop:0cm;
+ mso-level-number-position:left;
+ margin-left:0cm;
+ text-indent:0cm;}
+@list l0:level8
+ {mso-level-number-format:none;
+ mso-level-suffix:none;
+ mso-level-text:"";
+ mso-level-tab-stop:0cm;
+ mso-level-number-position:left;
+ margin-left:0cm;
+ text-indent:0cm;}
+@list l0:level9
+ {mso-level-number-format:none;
+ mso-level-suffix:none;
+ mso-level-text:"";
+ mso-level-tab-stop:0cm;
+ mso-level-number-position:left;
+ margin-left:0cm;
+ text-indent:0cm;}
+ol
+ {margin-bottom:0cm;}
+ul
+ {margin-bottom:0cm;}
+--></style><!--[if gte mso 9]><xml>
+<o:shapedefaults v:ext="edit" spidmax="1026" />
+</xml><![endif]--><!--[if gte mso 9]><xml>
+<o:shapelayout v:ext="edit">
+<o:idmap v:ext="edit" data="1" />
+</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal style='page-break-after:avoid'><b><span lang=EN-US style='font-size:16.0pt;color:black'>Call-in Details<o:p></o:p></span></b></p><p class=MsoPlainText style='text-align:justify'><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>U.S. Toll-free: +1 (866) 365-4406<o:p></o:p></span></p><p class=MsoPlainText style='text-align:justify'><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>U.S. Toll:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;+1 (303) 248-9655<o:p></o:p></span></p><p class=MsoPlainText style='text-align:justify'><b><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>Access code: &nbsp;&nbsp;8040316#<o:p></o:p></span></b></p><p class=MsoPlainText style='text-align:justify'><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><a href="https://conf.cfer.com/?sp_id=154&amp;comp_id=345368&amp;an=3032489655&amp;ac=8040316&amp;startview=GOS&amp;login=true">List of international dial-in numbers</a><o:p></o:p></span></p><p class=MsoPlainText style='text-align:justify'><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>Please let me know if you have any additional agenda items, intend to discuss a dormant item or wish to prioritise a topic.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p>&nbsp;</o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>Alon<o:p></o:p></span></p><div class=MsoNormal align=center style='text-align:center'><b><span lang=EN-US><hr size=2 width="100%" align=center></span></b></div><p class=MsoNormal style='margin-top:6.0pt;page-break-after:avoid'><b><span lang=EN-US style='font-size:16.0pt;color:black'>Agenda<o:p></o:p></span></b></p><p class=MsoNormal style='margin-top:6.0pt;page-break-after:avoid'><b><span lang=EN-US style='font-size:12.0pt;color:black'>Corrections to previous minutes<o:p></o:p></span></b></p><p class=MsoNormal style='margin-top:6.0pt'><span lang=EN-US>- Minutes of EGL call 16th July 2014<o:p></o:p></span></p><p class=MsoNormal style='margin-top:6.0pt'><span lang=EN-US><o:p>&nbsp;</o:p></span></p><p class=MsoNormal style='margin-top:6.0pt'><b><span lang=EN-US style='font-size:12.0pt'>Future direction of EGL<o:p></o:p></span></b></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'><span lang=EN-US style='color:black'><a href="https://cvs.khronos.org/wiki/index.php/EGL/EGLNextGoals">Wiki page for EGL future direction goal discussion</a><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'><span lang=EN-US>Alon &#8211; big news from GL Common F2F in Bellevue was the contribution of XGL from AMD and the group agreeing to use it as starting point for GL Common<br>Alon &#8211; I raised at the meeting and on the today&#8217;s GL Common call how XGL deals with platform integration and interoperation with other Khronos APIs, open issue<br>Alon &#8211; need to decide how to take things forwards, identify any problems such as IP zone issue if that's a problem, how we should structure discussions given GL progression.<br>...<br>Alon &#8211; If we could make sure that in two weeks time we have that, possibly have some sort of straw poll to see if we have agreement on how to proceed<br>Alon &#8211; If you have any suggestions on what I should be doing as chair at this point, always open to them<br><b>[ACTION]<i> All &#8211; poll across your company to gauge position on direction, what problem would need EGL-like API to solve, initial proposals for COB PDT 29th July 2014</i></b><i><br></i>[ACTION]<i> All &#8211; help engage GL Common group in discussion, understanding of your company&#8217;s current thoughts here<br></i>[ACTION]<i> Alon &#8211; put out email to GL Common group with information on previous EGL2 discussions, background information<br></i>[ACTION]<i> All &#8211; add proposed goals and input to wiki<br></i>[ACTION] <i>Chad &#8211; vtable proposal &#8211; will draft up what an API would look like<br></i>[ACTION]<i> </i></span><i>Jon &#8211; put together matrix of functionality</i><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal style='margin-top:6.0pt'><b><span lang=EN-US style='font-size:12.0pt'><o:p>&nbsp;</o:p></span></b></p><p class=MsoNormal style='margin-top:6.0pt'><b><span lang=EN-US style='font-size:12.0pt'>New proposals<o:p></o:p></span></b></p><p class=MsoNormal style='margin-top:6.0pt'><b><span lang=EN-US>- <a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=11550">Bug 11550</a> &#8211; Partial update extension</span></b><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'><span lang=EN-US>Latest spec draft &#8211; <a href="https://cvs.khronos.org/svn/repos/registry/trunk/egl/extensions/drafts/EGL_KHR_partial_update.txt">EGL_KHR_partial_update draft spec</a><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'>Ray &#8211; Sent an email a week ago explaining a problem &#8211; passing damaged regions through to a compositor isn't possible with the API as it is at the moment<br>Alon &#8211; Sent on the 6th July at 11:33 UK time, for those who don't have it to hand<br><span lang=EN-US>[ACTION]<i> All &#8211; consider Ray&#8217;s solution to resolving compositor information issue, Antoine&#8217;s suggestions<br></i>[ACTION]<i> Jesse &#8211; ping Antoine to get his opinion</i></span><o:p></o:p></p><p class=MsoNormal style='margin-top:6.0pt'><b><span lang=EN-US>- </span><a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=12459">Bug&nbsp;12459</a>&nbsp;&#8211;&nbsp;Create EGL_KHR_context_flush_control</b><b><span lang=EN-US><o:p></o:p></span></b></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt;page-break-after:avoid'><span lang=EN-US>[ACTION] <i>Jon &#8211; open bug</i><b><span style='color:black'><o:p></o:p></span></b></span></p><p class=MsoNormal style='margin-top:6.0pt;page-break-after:avoid'><b><span lang=EN-US style='color:black'>- <a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=10232">Bug 10232</a> &#8211; Add Device Enumeration API to EGL 1.x<o:p></o:p></span></b></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'>James &#8211; Updated specs, need to publish them at the end of the month. Last call for feedback if you have any<br><span lang=EN-US>[ACTION] <i>All &#8211; last change for feedback on EXT device extensions before they&#8217;re published</i><o:p></o:p></span></p><p class=MsoNormal style='margin-top:6.0pt'><b><span lang=EN-US>- <a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=10943">Bug 10943</a> &#8211; EGL_KHR_debug debugging API<o:p></o:p></span></b></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'><span lang=EN-US>[ACTION] <i>All &#8211; review options and comment on bug</i><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:0cm;margin-bottom:.0001pt;text-indent:0cm;page-break-after:avoid;mso-list:l0 level1 lfo2'><b><span lang=EN-US style='color:black'>- <a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=10091">Bug 10091</a> &#8211; EGL_KHR_no_config creating surfaces &amp; contexts without configs<o:p></o:p></span></b></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt;text-indent:0cm;page-break-after:avoid;mso-list:l0 level1 lfo2'><span lang=EN-US style='color:black'><a href="https://cvs.khronos.org/svn/repos/registry/trunk/egl/extensions/drafts/EGL_KHR_no_config.txt">EGL_KHR_no_config draft spec</a>, </span><span style='color:black'><a href="https://cvs.khronos.org/svn/repos/registry/trunk/egl/extensions/drafts/EGL_KHR_rgba_no_config.txt">EGL_KHR_rgba_no_config draft spec</a><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt;text-indent:0cm;page-break-after:avoid;mso-list:l0 level1 lfo2'><span lang=EN-US>[ACTION]<i> All &#8211; consider fuzzy vs exact match options</i><b><span style='color:black'><o:p></o:p></span></b></span></p><p class=MsoNormal style='margin-top:6.0pt'><b>- </b><a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=12127"><b>Bug&nbsp;12127</b></a><b>&nbsp;&#8211;&nbsp;eglSwapBuffers completion notifications<o:p></o:p></b></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'><span lang=EN-US>[ACTION]<i> Chad &#8211; enumerate different types of state</i><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:0cm;margin-bottom:.0001pt;text-indent:0cm;page-break-after:avoid;mso-list:l0 level1 lfo2'><b><span style='color:black'>- <a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=12230">Bug&nbsp;12230</a>&nbsp;&#8211; Timestamps in EGL and client APIs</span></b><b><span lang=EN-US style='color:black'><o:p></o:p></span></b></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt;text-indent:0cm;page-break-after:avoid;mso-list:l0 level1 lfo2'><span lang=EN-US>Alon &#8211; KCam WG notified about this, no feedback yet<b><span style='color:black'><o:p></o:p></span></b></span></p><p class=MsoNormal style='margin-top:6.0pt'><b><span lang=EN-US style='font-size:12.0pt'><o:p>&nbsp;</o:p></span></b></p><p class=MsoNormal style='margin-top:6.0pt'><b><span lang=EN-US style='font-size:12.0pt'>Issues<o:p></o:p></span></b></p><p class=MsoNormal style='margin-top:6.0pt'><b>- <a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=12456">Bug&nbsp;12456</a>&nbsp;-&nbsp;eglMakeCurrent flush behaviour when same context and surfaces are made current<o:p></o:p></b></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'>New bug<o:p></o:p></p><p class=MsoNormal style='margin-top:6.0pt'><b>- <a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=12457">Bug&nbsp;12457</a>&nbsp;-&nbsp;Trivial wording updates to EGL_KHR_gl_colorspace<o:p></o:p></b></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'>New bug<o:p></o:p></p><p class=MsoNormal style='margin-top:6.0pt'><b>- <a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=12072">Bug&nbsp;12072</a>&nbsp;&#8211;&nbsp;No way to completely release an EGLDisplay</b><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'><span lang=EN-US>Alon &#8211; suggest we do a straw poll on next call, see if conclusion between the 3 options<br>James &#8211; sounds good to me<br>[ACTION] <i>All &#8211; review options and comment<br></i>[ACTION] <i>Alon &#8211; post explanation of terminate refcount issue</i><o:p></o:p></span></p><p class=MsoNormal style='margin-top:6.0pt'><o:p>&nbsp;</o:p></p><p class=MsoNormal style='margin-top:6.0pt'><b><span lang=EN-US style='font-size:12.0pt'>Dormant topics</span></b><span lang=EN-US style='font-size:12.0pt'> (please indicate before next call if you&#8217;d like to discuss these)<o:p></o:p></span></p><p class=MsoNormal style='margin-top:6.0pt'><b><span lang=EN-US>- </span><a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=10159" title="ASSIGNED - Remove FOURCC dependency and define VX specific formats">Bug 10159</a> &#8211; </b><b><span lang=EN-US>Khronos color format proposal<o:p></o:p></span></b></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'>Andrew &#8211; Not accepted into VX 1.0, updates on bug, no longer a rush, hoping that something will go in in 1.1<span lang=EN-US><br>[ACTION]<i> </i></span><i><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>All &#8211; continue providing feedback on bug</span></i><span lang=EN-US><o:p></o:p></span></p><p class=MsoNormal style='margin-top:6.0pt'><span lang=EN-US>- <b><a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=11606">Bug 11606</a> &#8211; GPU Resource Monitoring proposal<o:p></o:p></b></span></p><p class=MsoNormal style='margin-top:6.0pt;text-indent:36.0pt'><span lang=EN-US><a href="https://www.khronos.org/members/login/groups/EGL/F2F%20Materials/Phoenix%20Jan14/GPU%20Resource%20Monitoring%20-%20Phoenix%20F2F%20-%20Jan%202014.pdf">GPU Resource Monitoring slides from Phoenix F2F</a><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'><span lang=EN-US>[ACTION]<i> </i></span><i>All &#8211; request feedback, especially from SOC teams<o:p></o:p></i></p><p class=MsoNormal style='margin-top:6.0pt;page-break-after:avoid'><b><span lang=EN-US>- <a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=11481">Bug 11481</a> &#8211; Remove thread restriction for eglSwapBuffers in EGL 1.5<o:p></o:p></span></b></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt;text-indent:0cm;page-break-after:avoid;mso-list:l0 level1 lfo2'><span lang=EN-US>[ACTION]<i> <span style='color:black'>Chad &#8211; will update bug as discussed (</span>Postponed indefinitely)</i></span><i><o:p></o:p></i></p><p class=MsoNormal style='margin-top:6.0pt'><b><span lang=EN-US>- Streaming / feedback from Cross-API Interop sessions<o:p></o:p></span></b></p><p class=MsoNormal style='margin-top:6.0pt;text-indent:36.0pt'><span lang=EN-US>Discussion page <a href="https://cvs.khronos.org/wiki/index.php?title=OpenCL/EGLStream">https://cvs.khronos.org/wiki/index.php?title=OpenCL/EGLStream</a><o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;margin-bottom:.0001pt'><span lang=EN-US>[ACTION]<i> </i></span><i><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>All &#8211; provide further topology / use-case feedback<br></span></i><span lang=EN-US>[ACTION]<i> Alon/</i></span><i><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Mikael &#8211; discuss how to push metadata proposal forwards<br></span></i><span lang=EN-US>[ACTION]<i> </i></span><i><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Neil &#8211; invite StreamInput members to Cross-API session and get topology input</span></i><span lang=EN-US><o:p></o:p></span></p></div></body></html> \ No newline at end of file
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/index.php b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/index.php
new file mode 100644
index 0000000..b97647b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/index.php
@@ -0,0 +1,9 @@
+<html>
+<head>
+<title>EGL Reference Pages</title>
+</head>
+<frameset rows="85,*">
+ <frame scrolling="no" noresize frameborder="0" marginwidth="0" marginheight="0" src="top.php">
+ <frame noresize frameborder="0" marginwidth="0" marginheight="0" src="bottom.php">
+</frameset>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/mkshar b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/mkshar
new file mode 100644
index 0000000..52cc006
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/mkshar
@@ -0,0 +1,3 @@
+#!/bin/sh
+set -x
+shar -mwxTD $* > xml.shar
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/reference.xml b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/reference.xml
new file mode 100644
index 0000000..a75da4d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/reference.xml
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.2//EN" "DTD/docbook/docbookx.dtd">
+<!--
+ Copyright 2003-2010 Khronos Group.
+ This material may be distributed subject to the terms and conditions set forth in
+ the Open Publication License, v 1.0, 8 June 1999.
+ http://opencontent.org/openpub/
+-->
+<book xmlns:xi="http://www.w3.org/2001/XInclude">
+ <title>
+ EGL Reference Manual
+ </title>
+ <subtitle>
+ Version 1.5
+ </subtitle>
+ <bookinfo>
+ <author>
+ <firstname>Claude</firstname>
+ <surname>Knaus</surname>
+ </author>
+ <author>
+ <firstname>Jon</firstname>
+ <surname>Leech</surname>
+ </author>
+ <date>October 2010</date>
+ <releaseinfo>Draft Version 20101012</releaseinfo>
+ <subjectset>
+ <subject>EGL</subject>
+ </subjectset>
+ <keywordset>
+ <keyword>EGL</keyword>
+ <keyword>man</keyword>
+ <keyword>reference</keyword>
+ </keywordset>
+ <xi:include href="legal-notice.xml"/>
+ </bookinfo>
+ <toc>
+ <title>Contents</title>
+ <!-- generated by LaTeX -->
+ </toc>
+ <chapter>
+ <title>Preface</title>
+ <sect1>
+ <title>Style Conventions</title>
+ <para>
+ The following style conventions apply to this document:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term><function>Bold</function></term>
+ <listitem><para>Command and function names</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>Italics</parameter></term>
+ <listitem>Variables and parameters</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Regular</term>
+ <listitem><para>Ordinary text</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><constant>Monospace</constant></term>
+ <listitem><para>Constants and source code</para></listitem>
+ </varlistentry>
+ </variablelist>
+ </sect1>
+ </chapter>
+ <chapter>
+ <title>Summary of Commands and Routines</title>
+ <sect1>
+ <title>EGL Functions</title>
+ <para>Manage or query display connections:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglGetDisplay</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglInitialize</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglQueryString</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglTerminate</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Request EGL and client API extension functions:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglGetProcAddress</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Query errors:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglGetError</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Request or query frame buffer configurations:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglGetConfigs</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglChooseConfig</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglGetConfigAttrib</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Manage or query the current rendering API:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglQueryAPI</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Manage or query EGL rendering contexts:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglCreateContext</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglDestroyContext</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglQueryContext</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglGetCurrentContext</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglGetCurrentSurface</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglGetCurrentDisplay</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Manage or query EGL surfaces:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglCreateWindowSurface</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglCreatePixmapSurface</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglCreatePbufferSurface</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglDestroySurface</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglSurfaceAttrib</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglQuerySurface</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Synchronize execution:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglSwapInterval</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglWaitGL</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Post and copy buffers:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglCopyBuffers</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglSwapBuffers</refentrytitle></citerefentry></member>
+ </simplelist>
+ <para>Bind pixel buffer surfaces to OpenGL ES textures:</para>
+ <simplelist type="vert">
+ <member><citerefentry><refentrytitle>eglBindTexImage</refentrytitle></citerefentry></member>
+ <member><citerefentry><refentrytitle>eglReleaseTexImage</refentrytitle></citerefentry></member>
+ </simplelist>
+ </sect1>
+ </chapter>
+ <chapter>
+ <title>EGL Reference Pages</title>
+ <xi:include href="eglBindAPI.xml"/>
+ <xi:include href="eglBindTexImage.xml"/>
+ <xi:include href="eglChooseConfig.xml"/>
+ <xi:include href="eglClientWaitSync.xml"/>
+ <xi:include href="eglCopyBuffers.xml"/>
+ <xi:include href="eglCreateContext.xml"/>
+ <xi:include href="eglCreateImage.xml"/>
+ <xi:include href="eglCreatePbufferSurface.xml"/>
+ <xi:include href="eglCreatePixmapSurface.xml"/>
+ <xi:include href="eglCreateSync.xml"/>
+ <xi:include href="eglCreateWindowSurface.xml"/>
+ <xi:include href="eglDestroyContext.xml"/>
+ <xi:include href="eglDestroyImage.xml"/>
+ <xi:include href="eglDestroySurface.xml"/>
+ <xi:include href="eglDestroySync.xml"/>
+ <xi:include href="eglGetConfigAttrib.xml"/>
+ <xi:include href="eglGetConfigs.xml"/>
+ <xi:include href="eglGetCurrentContext.xml"/>
+ <xi:include href="eglGetCurrentDisplay.xml"/>
+ <xi:include href="eglGetCurrentSurface.xml"/>
+ <xi:include href="eglGetDisplay.xml"/>
+ <xi:include href="eglGetError.xml"/>
+ <xi:include href="eglGetPlatformDisplay.xml"/>
+ <xi:include href="eglGetProcAddress.xml"/>
+ <xi:include href="eglGetSyncAttrib.xml"/>
+ <xi:include href="eglInitialize.xml"/>
+ <xi:include href="eglIntro.xml"/>
+ <xi:include href="eglMakeCurrent.xml"/>
+ <xi:include href="eglQueryAPI.xml"/>
+ <xi:include href="eglQueryContext.xml"/>
+ <xi:include href="eglQueryString.xml"/>
+ <xi:include href="eglQuerySurface.xml"/>
+ <xi:include href="eglReleaseTexImage.xml"/>
+ <xi:include href="eglReleaseThread.xml"/>
+ <xi:include href="eglSurfaceAttrib.xml"/>
+ <xi:include href="eglSwapBuffers.xml"/>
+ <xi:include href="eglSwapInterval.xml"/>
+ <xi:include href="eglTerminate.xml"/>
+ <xi:include href="eglWaitClient.xml"/>
+ <xi:include href="eglWaitGL.xml"/>
+ <xi:include href="eglWaitNative.xml"/>
+ <xi:include href="eglWaitSync.xml"/>
+ </chapter>
+ <xi:include href="license-full.xml"/>
+</book>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/setvars b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/setvars
new file mode 100644
index 0000000..49c878e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/setvars
@@ -0,0 +1,5 @@
+#!/usr/bin/tcsh
+# Set variables for comparisons
+set egl=/home/tree/khronos/registry/trunk/public/egl/sdk/docs/man/xhtml
+set es=/home/tree/khronos/ogles/trunk/sdk/docs/man3/docbook4/xhtml
+set esnew=/home/tree/khronos/ogles/trunk/sdk/docs/man3/html
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/top.php b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/top.php
new file mode 100644
index 0000000..9bdbf00
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/top.php
@@ -0,0 +1,46 @@
+<html>
+<head>
+ <!-- Should actually use PHP features & import stylesheet - see
+ OpenGL ES top.php for example -->
+ <title>EGL Reference Pages</title>
+ <style xmlns="" type="text/css">
+ body {
+ background-image:url(headBackground.jpg) no-repeat;
+ }
+ p {
+ font-family:verdana,sans-serif; font-size:80%; color: white;
+ margin-top:0px; margin-bottom:0px; position:absolute;
+ bottom:2px; left:5px;
+ }
+ a:link, a:visited { text-decoration:none; color:white}
+ h1 {
+ font: bold 1.4em verdana,sans-serif; text-align: left;
+ color: black; margin-top:10px; margin-bottom:3px;
+ padding-top:0px; padding-bottom:0px;
+ }
+ #search {
+ position:absolute; top:15px; right: 20px; margin: 0; padding: 0;
+ }
+ #search fieldset {
+ border: 0; margin: 0; padding: 0;
+ }
+ </style>
+</head>
+<body background="headBackground.jpg">
+ <h1>&nbsp; <!-- <img src="html/EGL_300.jpg" alt="" width="50" height="50" border="0" align="middle">--> EGL Reference Pages</h1>
+ <div id="search">
+ <!-- search not supported yet
+ <fieldset>
+ <form method="get" action="/opencl/search/opencl_1_2/swish.cgi" enctype="application/x-www-form-urlencoded" class="form" target="pagedisplay">
+ <input maxlength="200" value="processor" size="15" type="text" name="query" />
+ <input value="Search!" type="submit" name="submit" />
+ </fieldset>
+ -->
+ </div>
+ <p><a href="http://www.khronos.org/egl/" target="EGL">More EGL Info</a>
+ &nbsp;&nbsp;&nbsp; <a href="http://www.khronos.org/registry/egl/" target="EGL Specification">EGL Specification</a> >
+ &nbsp;&nbsp;&nbsp; <a href="http://www.khronos.org/files/egl-1-4-quick-reference-card.pdf" target="EGL Quick Reference">EGL Quick Reference Card</a>
+ </p>
+
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/EGL_300.png b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/EGL_300.png
new file mode 100644
index 0000000..7c20efb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/EGL_300.png
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/Header.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/Header.html
new file mode 100644
index 0000000..f360d64
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/Header.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>EGL Reference Pages</title>
+ <style xmlns="" type="text/css">
+ body { background-image:url(headBackground.jpg) no-repeat; }
+ p { font-family:verdana,sans-serif; font-size:80%; color: white;
+ margin-top:0px; margin-bottom:0px; position:absolute; bottom:2px; left:5px;}
+ a:link, a:visited { text-decoration:none; color:white}
+ h1 {font: bold 1.4em verdana,sans-serif; text-align: left; color: black;
+ margin-top:10px; margin-bottom:3px; padding-top:0px; padding-bottom:0px; }
+ #search {
+ position:absolute; top:15px; right: 20px; margin: 0; padding: 0;
+ }
+ #search fieldset {
+ border: 0; margin: 0; padding: 0;
+ }
+ </style>
+</head>
+<body background="headBackground.jpg">
+ <h1>&nbsp; <!-- <img src="EGL_300.jpg" alt="" width="50" height="50" border="0" align="middle">--> EGL Reference Pages</h1>
+ <div id="search">
+ <!-- search not supported yet
+ <fieldset>
+ <form method="get" action="/opencl/search/opencl_1_2/swish.cgi" enctype="application/x-www-form-urlencoded" class="form" target="pagedisplay">
+ <input maxlength="200" value="processor" size="15" type="text" name="query" />
+ <input value="Search!" type="submit" name="submit" />
+ </fieldset>
+ -->
+ </div>
+ <p><a href="http://www.khronos.org/egl/" target="EGL">More EGL Info</a>
+ &nbsp;&nbsp;&nbsp; <a href="http://www.khronos.org/registry/egl/" target="EGL Specification">EGL Specification</a> >
+ &nbsp;&nbsp;&nbsp; <a href="http://www.khronos.org/files/egl-1-4-quick-reference-card.pdf" target="EGL Quick Reference">EGL Quick Reference Card</a>
+ </p>
+
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/Intro.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/Intro.html
new file mode 100644
index 0000000..8f82ab5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/Intro.html
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+/* This style sets a margin around the entire page */
+ html, body { margin: 10px; }
+
+ p { font-family:verdana,sans-serif; font-size:95%;
+ margin-top:0px; margin-bottom:20px; padding-top:0px; padding-bottom:0px; }
+
+ h1 {font: bold 1.75em verdana,sans-serif;
+ margin-top:0px; margin-bottom:3px; padding-top:0px; padding-bottom:0px; }
+
+ h2 { font-family:verdana,sans-serif; font-size:1.20em
+ margin-top:28px; margin-bottom:3px; padding-top:0px; padding-bottom:0px; }
+
+ li { font-family:verdana,sans-serif; font-size:95%;
+ margin-top:0px; margin-bottom:18px; padding-top:0px; padding-bottom:0px; }
+
+ code, constant {font: normal 1.1em 'courier new',monospace; }
+ code.function {font: bold 1.1em 'courier new',monospace; }
+ code.varname {font: italic 1.1em 'courier new',monospace; }
+ code.funcdef {font: normal 1.1em 'courier new',monospace; }
+ .citerefentry {font: normal 1.1em 'courier new',monospace; }
+ .parameter { font-style: italic; }
+ code.fsfunc {font: normal 1.1em 'courier new',monospace; }
+ div.funcsynopsis {font: normal 1.1em 'courier new',monospace; text-align:left; background-color:#e6e6e6;}
+ div.funcsynopsis table { margin-top: 10px; border-collapse:separate; }
+ div.funcsynopsis td {background-color:#e6e6e6; border:0px solid black; padding:2px; }
+ div.refsect1 {font-family:verdana,sans-serif; font-size:95%;}
+
+/* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt { margin-top:15px; }
+
+/* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 { font-family:verdana,sans-serif; font-size:75%;
+ margin-top:50px; margin-bottom:20px; padding-top:0px; padding-bottom:0px; }
+
+/* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table { margin-top: 10px; background-color:#FFF; width:100%; border-collapse:collapse; }
+ div.refsect1 td {background-color:#FFF; border:1px solid black; padding:5px;
+ font: normal 95% verdana,san-serif;}
+ div.refsect1 th {background-color:#FFF; border:1px solid black; padding:5px;
+ font: bold 95% verdana,san-serif;}
+
+/* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 { font-family:verdana,sans-serif; }
+ h3 { font:bold 1.25em verdana,sans-serif; font-size:135%;
+ margin-top:28px; margin-bottom:3px; padding-top:0px; padding-bottom:0px; }
+ div.refsect2 table {margin-top:0px; background-color:#e6e6e6;
+ width:100%; border:0px solid black; padding:2px;}
+ div.refsect2 td {background-color:##e6e6e6; white-space: pre; font: normal 1.1em 'courier new',monospace;}
+
+/* SPECIFICATION: Add an Acrobat Reader icon to PDF links
+ a[href$=".pdf"] {background: url(pdficon_small1.gif) left center no-repeat; padding-left: 22px;}
+ a[href$=".pdf"]:hover {background: url(pdficon_small1.gif) left center no-repeat;}*/
+
+</style>
+ <title>EGL Reference Pages</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.69.1" />
+ <meta name="keywords" content="OpenCl Reference Title Page" />
+ </head>
+ <body>
+ <div class="refentry" lang="en" xml:lang="en">
+ <a id="id4796348"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <a xmlns="http://www.w3.org/1999/xhtml" id="Memory Objects"></a>
+ <h1>EGL Reference Pages</h1>
+ <p></p>
+ </div>
+ <div class="refsect1" lang="en" xml:lang="en">
+ <a id="description"></a>
+ <h2></h2>
+ <p>
+ <img src="EGL_300.png" alt=""
+ hspace="40" vspace="40" border="0" align="right"
+ xmlns="http://www.w3.org/1999/xhtml" />
+ EGL&trade; is an interface between Khronos rendering APIs
+ such as OpenGL ES or OpenVG and the underlying native
+ platform window system. It handles graphics context
+ management, surface/buffer binding, and rendering
+ synchronization and enables high-performance, accelerated,
+ mixed-mode 2D and 3D rendering using other Khronos APIs.
+ </p>
+ <p>
+ The reference pages describe the latest approved version of
+ EGL, EGL 1.4, but can be used with earlier versions since
+ each page notes when features are available only starting
+ with specific versions (1.2, 1.3, and 1.4).
+ </p>
+ <p>
+ A more detailed overview of EGL functionality and technical
+ concepts can be found in the
+ <a target="pagedisplay" href="eglIntro.html">eglIntro</a>
+ page.
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4>
+ <img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><br>
+ Copyright &#169; 2007-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/KhronosLogo.jpg b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/KhronosLogo.jpg
new file mode 100644
index 0000000..f8a05f6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/KhronosLogo.jpg
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/TOC.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/TOC.html
new file mode 100644
index 0000000..69b3ff8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/TOC.html
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html>
+<head>
+ <title>Table of Contents</title>
+<link href="style.css" rel="stylesheet" type="text/css" />
+
+<script type="text/javascript">
+<!--
+var temp, temp2, cookieArray, cookieArray2, cookieCount;
+function initiate(){
+ cookieCount=0;
+ if(document.cookie){
+ cookieArray=document.cookie.split(";");
+ cookieArray2=new Array();
+ for(i in cookieArray){
+ cookieArray2[cookieArray[i].split("=")[0].replace(/ /g,"")]=cookieArray[i].split("=")[1].replace(/ /g,"");
+ }
+ }
+ cookieArray=(document.cookie.indexOf("state=")>=0)?cookieArray2["state"].split(","):new Array();
+ temp=document.getElementById("containerul");
+ for(var o=0;o<temp.getElementsByTagName("li").length;o++){
+ if(temp.getElementsByTagName("li")[o].getElementsByTagName("ul").length>0){
+ temp2 = document.createElement("span");
+ temp2.className = "symbols";
+ temp2.style.backgroundImage = (cookieArray.length>0)?((cookieArray[cookieCount]=="true")?"url(bullets-contract.gif)":"url(bullets-expand.gif)"):"url(bullets-expand.gif)";
+ temp2.onmousedown=function(){
+ showhide(this.parentNode);
+ writeCookie();
+ }
+ temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild)
+ temp.getElementsByTagName("li")[o].getElementsByTagName("ul")[0].style.display = "none";
+ if(cookieArray[cookieCount]=="true"){
+ showhide(temp.getElementsByTagName("li")[o]);
+ }
+ cookieCount++;
+ }
+ else{
+ temp2 = document.createElement("span");
+ temp2.className = "symbols";
+ temp2.style.backgroundImage = "url(bullets-end.gif)";
+ temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild);
+ }
+ }
+}
+
+function showhide(el){
+ el.getElementsByTagName("ul")[0].style.display=(el.getElementsByTagName("ul")[0].style.display=="block")?"none":"block";
+ el.getElementsByTagName("span")[0].style.backgroundImage=(el.getElementsByTagName("ul")[0].style.display=="block")?"url(bullets-contract.gif)":"url(bullets-expand.gif)";
+}
+
+function writeCookie(){ // Runs through the menu and puts the "states" of each nested list into an array, the array is then joined together and assigned to a cookie.
+ cookieArray=new Array()
+ for(var q=0;q<temp.getElementsByTagName("li").length;q++){
+ if(temp.getElementsByTagName("li")[q].childNodes.length>0){
+ if(temp.getElementsByTagName("li")[q].childNodes[0].nodeName=="SPAN" && temp.getElementsByTagName("li")[q].getElementsByTagName("ul").length>0){
+ cookieArray[cookieArray.length]=(temp.getElementsByTagName("li")[q].getElementsByTagName("ul")[0].style.display=="block");
+ }
+ }
+ }
+ document.cookie="state="+cookieArray.join(",")+";expires="+new Date(new Date().getTime() + 365*24*60*60*1000).toGMTString();
+}
+//-->
+</script>
+
+</head>
+<body>
+<div id="navwrap">
+ <ul id="containerul"> <!-- This ul must wrap entire list for expand/contract to work -->
+ <li class="lev1">
+ <a href="Intro.html" target="pagedisplay">Introduction</a>
+ </li>
+ <li class="lev1">Alphabetic Contents (<i>egl</i> prefix on function
+ names is ignored for sorting purposes)
+ <ul class="Level2">
+ <li>B
+ <ul class="Level3">
+ <li><a target="pagedisplay" href="eglBindAPI.html">eglBindAPI</a></li>
+ <li><a target="pagedisplay" href="eglBindTexImage.html">eglBindTexImage</a></li>
+ </ul>
+ </li>
+ <li>C
+ <ul class="Level3">
+ <li><a target="pagedisplay" href="eglChooseConfig.html">eglChooseConfig</a></li>
+ <li><a target="pagedisplay" href="eglCopyBuffers.html">eglCopyBuffers</a></li>
+ <li><a target="pagedisplay" href="eglCreateContext.html">eglCreateContext</a></li>
+ <li><a target="pagedisplay" href="eglCreatePbufferFromClientBuffer.html">eglCreatePbufferFromClientBuffer</a></li>
+ <li><a target="pagedisplay" href="eglCreatePbufferSurface.html">eglCreatePbufferSurface</a></li>
+ <li><a target="pagedisplay" href="eglCreatePixmapSurface.html">eglCreatePixmapSurface</a></li>
+ <li><a target="pagedisplay" href="eglCreateWindowSurface.html">eglCreateWindowSurface</a></li>
+ </ul>
+ </li>
+ <li>D
+ <ul class="Level3">
+ <li><a target="pagedisplay" href="eglDestroyContext.html">eglDestroyContext</a></li>
+ <li><a target="pagedisplay" href="eglDestroySurface.html">eglDestroySurface</a></li>
+ </ul>
+ </li>
+ <li>G
+ <ul class="Level3">
+ <li><a target="pagedisplay" href="eglGetConfigAttrib.html">eglGetConfigAttrib</a></li>
+ <li><a target="pagedisplay" href="eglGetConfigs.html">eglGetConfigs</a></li>
+ <li><a target="pagedisplay" href="eglGetCurrentContext.html">eglGetCurrentContext</a></li>
+ <li><a target="pagedisplay" href="eglGetCurrentDisplay.html">eglGetCurrentDisplay</a></li>
+ <li><a target="pagedisplay" href="eglGetCurrentSurface.html">eglGetCurrentSurface</a></li>
+ <li><a target="pagedisplay" href="eglGetDisplay.html">eglGetDisplay</a></li>
+ <li><a target="pagedisplay" href="eglGetError.html">eglGetError</a></li>
+ <li><a target="pagedisplay" href="eglGetProcAddress.html">eglGetProcAddress</a></li>
+ </ul>
+ </li>
+ <li>I
+ <ul class="Level3">
+ <li><a target="pagedisplay" href="eglInitialize.html">eglInitialize</a></li>
+ <li><a target="pagedisplay" href="eglIntro.html">eglIntro</a></li>
+ </ul>
+ </li>
+ <li>M
+ <ul class="Level3">
+ <li><a target="pagedisplay" href="eglMakeCurrent.html">eglMakeCurrent</a></li>
+ </ul>
+ </li>
+ <li>Q
+ <ul class="Level3">
+ <li><a target="pagedisplay" href="eglQueryAPI.html">eglQueryAPI</a></li>
+ <li><a target="pagedisplay" href="eglQueryContext.html">eglQueryContext</a></li>
+ <li><a target="pagedisplay" href="eglQueryString.html">eglQueryString</a></li>
+ <li><a target="pagedisplay" href="eglQuerySurface.html">eglQuerySurface</a></li>
+ </ul>
+ </li>
+ <li>R
+ <ul class="Level3">
+ <li><a target="pagedisplay" href="eglReleaseTexImage.html">eglReleaseTexImage</a></li>
+ <li><a target="pagedisplay" href="eglReleaseThread.html">eglReleaseThread</a></li>
+ </ul>
+ </li>
+ <li>S
+ <ul class="Level3">
+ <li><a target="pagedisplay" href="eglSurfaceAttrib.html">eglSurfaceAttrib</a></li>
+ <li><a target="pagedisplay" href="eglSwapBuffers.html">eglSwapBuffers</a></li>
+ <li><a target="pagedisplay" href="eglSwapInterval.html">eglSwapInterval</a></li>
+ </ul>
+ </li>
+ <li>T
+ <ul class="Level3">
+ <li><a target="pagedisplay" href="eglTerminate.html">eglTerminate</a></li>
+ </ul>
+ </li>
+ <li>W
+ <ul class="Level3">
+ <li><a target="pagedisplay" href="eglWaitClient.html">eglWaitClient</a></li>
+ <li><a target="pagedisplay" href="eglWaitGL.html">eglWaitGL</a></li>
+ <li><a target="pagedisplay" href="eglWaitNative.html">eglWaitNative</a></li>
+ <ul class="Level3">
+ </ul>
+ </li>
+ </ul> <!-- /Level2 -->
+ </li>
+
+<!-- later - include other categories such as
+ <li class="lev1">EGL Runtime
+ ...
+ </li>
+
+ <li class="lev1">
+ <a href="preprocessorDirectives.html" target="pagedisplay">Preprocessor Directives and Macros</a>
+ </li>
+
+ <li class="lev1">Optional Extensions
+ ...
+ </li>
+later -->
+ </ul> <!-- /containerurl -->
+</div> <!-- /navwrap -->
+<script type="text/javascript">
+initiate(); // This must be placed immediately after the menu in order to format it properly.
+</script>
+<p> </p>
+</body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-contract.gif b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-contract.gif
new file mode 100644
index 0000000..bb1e955
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-contract.gif
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-end.gif b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-end.gif
new file mode 100644
index 0000000..abd000e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-end.gif
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-expand.gif b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-expand.gif
new file mode 100644
index 0000000..e2dde60
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/bullets-expand.gif
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/copyright.inc.xsl b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/copyright.inc.xsl
new file mode 100644
index 0000000..d58ca32
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/copyright.inc.xsl
@@ -0,0 +1,15 @@
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:param name="copyright">
+Copyright &#169; 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</xsl:param>
+</xsl:stylesheet>
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/ctop.xsl b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/ctop.xsl
new file mode 100644
index 0000000..a6800f4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/ctop.xsl
@@ -0,0 +1,1319 @@
+<!-- saved from url=(0013)about:internet -->
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+>
+
+<!--
+$Id: ctop.xsl,v 1.3 2002/09/20 08:41:39 davidc Exp $
+
+Copyright David Carlisle 2001, 2002.
+
+Use and distribution of this code are permitted under the terms of the <a
+href="http://www.w3.org/Consortium/Legal/copyright-software-19980720"
+>W3C Software Notice and License</a>.
+-->
+
+<xsl:output method="xml" />
+
+<xsl:template mode="c2p" match="*">
+<xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="c2p"/>
+</xsl:copy>
+</xsl:template>
+
+
+<!-- 4.4.1.1 cn -->
+
+<xsl:template mode="c2p" match="mml:cn">
+ <mml:mn><xsl:apply-templates mode="c2p"/></mml:mn>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:cn[@type='complex-cartesian']">
+ <mml:mrow>
+ <mml:mn><xsl:apply-templates mode="c2p" select="text()[1]"/></mml:mn>
+ <mml:mo>+</mml:mo>
+ <mml:mn><xsl:apply-templates mode="c2p" select="text()[2]"/></mml:mn>
+ <mml:mo><!--&#8290;--><!--invisible times--></mml:mo>
+ <mml:mi>i<!-- imaginary i --></mml:mi>
+ </mml:mrow>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:cn[@type='rational']">
+ <mml:mrow>
+ <mml:mn><xsl:apply-templates mode="c2p" select="text()[1]"/></mml:mn>
+ <mml:mo>/</mml:mo>
+ <mml:mn><xsl:apply-templates mode="c2p" select="text()[2]"/></mml:mn>
+ </mml:mrow>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:cn[@type='integer']">
+ <xsl:choose>
+ <xsl:when test="not(@base) or @base=10">
+ <mml:mn><xsl:apply-templates mode="c2p"/></mml:mn>
+ </xsl:when>
+ <xsl:otherwise>
+ <mml:msub>
+ <mml:mn><xsl:apply-templates mode="c2p"/></mml:mn>
+ <mml:mn><xsl:value-of select="@base"/></mml:mn>
+ </mml:msub>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:cn[@type='complex-polar']">
+ <mml:mrow>
+ <mml:mn><xsl:apply-templates mode="c2p" select="text()[1]"/></mml:mn>
+ <mml:mo><!--&#8290;--><!--invisible times--></mml:mo>
+ <mml:msup>
+ <mml:mi>e<!-- exponential e--></mml:mi>
+ <mml:mrow>
+ <mml:mi>i<!-- imaginary i--></mml:mi>
+ <mml:mo><!--&#8290;--><!--invisible times--></mml:mo>
+ <mml:mn><xsl:apply-templates mode="c2p" select="text()[2]"/></mml:mn>
+ </mml:mrow>
+ </mml:msup>
+ </mml:mrow>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:cn[@type='e-notation']">
+ <mml:mn><xsl:apply-templates mode="c2p" select="text()[1]"/>E<xsl:apply-templates mode="c2p" select="text()[2]"/></mml:mn>
+</xsl:template>
+
+<!-- 4.4.1.1 ci -->
+
+<xsl:template mode="c2p" match="mml:ci/text()">
+ <mml:mi><xsl:value-of select="."/></mml:mi>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:ci">
+ <mml:mrow><xsl:apply-templates mode="c2p"/></mml:mrow>
+</xsl:template>
+
+<!-- 4.4.1.2 csymbol -->
+
+<xsl:template mode="c2p" match="mml:csymbol/text()">
+ <mml:mo><xsl:apply-templates mode="c2p"/></mml:mo>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:csymbol">
+ <mml:mrow><xsl:apply-templates mode="c2p"/></mml:mrow>
+</xsl:template>
+
+<!-- 4.4.2.1 apply 4.4.2.2 reln -->
+
+<xsl:template mode="c2p" match="mml:apply|mml:reln">
+ <mml:mrow>
+ <xsl:apply-templates mode="c2p" select="*[1]">
+ <xsl:with-param name="p" select="10"/>
+ </xsl:apply-templates>
+ <mml:mo><!--&#8290;--><!--invisible times--></mml:mo>
+ <mml:mfenced open="(" close=")" separators=",">
+ <xsl:apply-templates mode="c2p" select="*[position()>1]"/>
+ </mml:mfenced>
+ </mml:mrow>
+</xsl:template>
+
+<!-- 4.4.2.3 fn -->
+<xsl:template mode="c2p" match="mml:fn">
+ <mml:mrow><xsl:apply-templates mode="c2p"/></mml:mrow>
+</xsl:template>
+
+<!-- 4.4.2.4 interval -->
+<xsl:template mode="c2p" match="mml:interval[*[2]]">
+ <mml:mfenced open="[" close="]"><xsl:apply-templates mode="c2p"/></mml:mfenced>
+</xsl:template>
+<xsl:template mode="c2p" match="mml:interval[*[2]][@closure='open']">
+ <mml:mfenced open="(" close=")"><xsl:apply-templates mode="c2p"/></mml:mfenced>
+</xsl:template>
+<xsl:template mode="c2p" match="mml:interval[*[2]][@closure='open-closed']">
+ <mml:mfenced open="(" close="]"><xsl:apply-templates mode="c2p"/></mml:mfenced>
+</xsl:template>
+<xsl:template mode="c2p" match="mml:interval[*[2]][@closure='closed-open']">
+ <mml:mfenced open="[" close=")"><xsl:apply-templates mode="c2p"/></mml:mfenced>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:interval">
+ <mml:mfenced open="{{" close="}}"><xsl:apply-templates mode="c2p"/></mml:mfenced>
+</xsl:template>
+
+<!-- 4.4.2.5 inverse -->
+
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:inverse]]">
+ <mml:msup>
+ <xsl:apply-templates mode="c2p" select="*[2]"/>
+ <mml:mrow><mml:mo>(</mml:mo><mml:mn>-1</mml:mn><mml:mo>)</mml:mo></mml:mrow>
+ </mml:msup>
+</xsl:template>
+
+<!-- 4.4.2.6 sep -->
+
+<!-- 4.4.2.7 condition -->
+<xsl:template mode="c2p" match="mml:condition">
+ <mml:mrow><xsl:apply-templates mode="c2p"/></mml:mrow>
+</xsl:template>
+
+<!-- 4.4.2.8 declare -->
+<xsl:template mode="c2p" match="mml:declare"/>
+
+<!-- 4.4.2.9 lambda -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:lambda]]">
+ <mml:mrow>
+ <mml:mi>&#955;<!--lambda--></mml:mi>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:bvar/*"/></mml:mrow>
+ <mml:mo>.</mml:mo>
+ <mml:mfenced>
+ <xsl:apply-templates mode="c2p" select="*[last()]"/>
+ </mml:mfenced>
+</mml:mrow>
+</xsl:template>
+
+
+<!-- 4.4.2.10 compose -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:compose]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="1"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8728;<!-- o --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+
+<!-- 4.4.2.11` ident -->
+<xsl:template mode="c2p" match="mml:ident">
+<mml:mo>id</mml:mo>
+</xsl:template>
+
+<!-- 4.4.2.12` domain -->
+<xsl:template mode="c2p" match="mml:domain">
+<mml:mo>domain</mml:mo>
+</xsl:template>
+
+<!-- 4.4.2.13` codomain -->
+<xsl:template mode="c2p" match="mml:codomain">
+<mml:mo>codomain</mml:mo>
+</xsl:template>
+
+<!-- 4.4.2.14` image -->
+<xsl:template mode="c2p" match="mml:image">
+<mml:mo>image</mml:mo>
+</xsl:template>
+
+<!-- 4.4.2.15` domainofapplication -->
+<xsl:template mode="c2p" match="mml:domainofapplication">
+ <mml:error/>
+</xsl:template>
+
+<!-- 4.4.2.16` piecewise -->
+<xsl:template mode="c2p" match="mml:piecewise">
+<mml:mrow>
+<mml:mo>{</mml:mo>
+<mml:mtable>
+ <xsl:for-each select="mml:piece|mml:otherwise">
+ <mml:mtr>
+ <mml:mtd><xsl:apply-templates mode="c2p" select="*[1]"/></mml:mtd>
+ <mml:mtd><mml:mtext>&#160; if &#160;</mml:mtext></mml:mtd>
+ <mml:mtd><xsl:apply-templates mode="c2p" select="*[2]"/></mml:mtd>
+ </mml:mtr>
+ </xsl:for-each>
+</mml:mtable>
+</mml:mrow>
+</xsl:template>
+
+
+<!-- 4.4.3.1 quotient -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:quotient]]">
+<mml:mrow>
+<mml:mo>&#8970;<!-- lfloor--></mml:mo>
+<xsl:apply-templates mode="c2p" select="*[2]"/>
+<mml:mo>/</mml:mo>
+<xsl:apply-templates mode="c2p" select="*[3]"/>
+<mml:mo>&#8971;<!-- rfloor--></mml:mo>
+</mml:mrow>
+</xsl:template>
+
+
+
+<!-- 4.4.3.2 factorial -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:factorial]]">
+<mml:mrow>
+<xsl:apply-templates mode="c2p" select="*[2]">
+ <xsl:with-param name="p" select="7"/>
+</xsl:apply-templates>
+<mml:mo>!</mml:mo>
+</mml:mrow>
+</xsl:template>
+
+
+<!-- 4.4.3.3 divide -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:divide]]">
+ <xsl:param name="p" select="0"/>
+<xsl:call-template name="binary">
+ <xsl:with-param name="mo"><mml:mo>/</mml:mo></xsl:with-param>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="this-p" select="3"/>
+</xsl:call-template>
+</xsl:template>
+
+
+<!-- 4.4.3.4 max min-->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:max]]">
+<mml:mrow>
+ <mml:mo>max</mml:mo>
+ <xsl:call-template name="set"/>
+</mml:mrow>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:min]]">
+<mml:mrow>
+ <mml:mo>max</mml:mo>
+ <xsl:call-template name="set"/>
+</mml:mrow>
+</xsl:template>
+
+<!-- 4.4.3.5 minus-->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:minus] and count(*)=2]">
+<mml:mrow>
+ <mml:mo>&#8722;<!--minus--></mml:mo>
+ <xsl:apply-templates mode="c2p" select="*[2]">
+ <xsl:with-param name="p" select="5"/>
+ </xsl:apply-templates>
+</mml:mrow>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:minus] and count(*)&gt;2]">
+ <xsl:param name="p" select="0"/>
+<xsl:call-template name="binary">
+ <xsl:with-param name="mo"><mml:mo>&#8722;<!--minus--></mml:mo></xsl:with-param>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="this-p" select="2"/>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.3.6 plus-->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:plus]]">
+ <xsl:param name="p" select="0"/>
+ <mml:mrow>
+ <xsl:if test="$p &gt; 2"><mml:mo>(</mml:mo></xsl:if>
+ <xsl:for-each select="*[position()&gt;1]">
+ <xsl:if test="position() &gt; 1">
+ <mml:mo>
+ <xsl:choose>
+ <xsl:when test="self::mml:apply[*[1][self::mml:times] and
+ *[2][self::mml:apply/*[1][self::mml:minus] or self::mml:cn[not(mml:sep) and
+ (number(.) &lt; 0)]]]">&#8722;<!--minus--></xsl:when>
+ <xsl:otherwise>+</xsl:otherwise>
+ </xsl:choose>
+ </mml:mo>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="self::mml:apply[*[1][self::mml:times] and
+ *[2][self::mml:cn[not(mml:sep) and (number(.) &lt;0)]]]">
+ <mml:mrow>
+ <mml:mn><xsl:value-of select="-(*[2])"/></mml:mn>
+ <mml:mo><!--&#8290;--><!--invisible times--></mml:mo>
+ <xsl:apply-templates mode="c2p" select=".">
+ <xsl:with-param name="first" select="2"/>
+ <xsl:with-param name="p" select="2"/>
+ </xsl:apply-templates>
+ </mml:mrow>
+ </xsl:when>
+ <xsl:when test="self::mml:apply[*[1][self::mml:times] and
+ *[2][self::mml:apply/*[1][self::mml:minus]]]">
+ <mml:mrow>
+ <xsl:apply-templates mode="c2p" select="./*[2]/*[2]"/>
+ <xsl:apply-templates mode="c2p" select=".">
+ <xsl:with-param name="first" select="2"/>
+ <xsl:with-param name="p" select="2"/>
+ </xsl:apply-templates>
+ </mml:mrow>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="c2p" select=".">
+ <xsl:with-param name="p" select="2"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:if test="$p &gt; 2"><mml:mo>)</mml:mo></xsl:if>
+ </mml:mrow>
+</xsl:template>
+
+
+<!-- 4.4.3.7 power -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:power]]">
+<mml:msup>
+<xsl:apply-templates mode="c2p" select="*[2]">
+ <xsl:with-param name="p" select="5"/>
+</xsl:apply-templates>
+<xsl:apply-templates mode="c2p" select="*[3]">
+ <xsl:with-param name="p" select="5"/>
+</xsl:apply-templates>
+</mml:msup>
+</xsl:template>
+
+<!-- 4.4.3.8 remainder -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:rem]]">
+ <xsl:param name="p" select="0"/>
+<xsl:call-template name="binary">
+ <xsl:with-param name="mo"><mml:mo>mod</mml:mo></xsl:with-param>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="this-p" select="3"/>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.3.9 times-->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:times]]" name="times">
+ <xsl:param name="p" select="0"/>
+ <xsl:param name="first" select="1"/>
+ <mml:mrow>
+ <xsl:if test="$p &gt; 3"><mml:mo>(</mml:mo></xsl:if>
+ <xsl:for-each select="*[position()&gt;1]">
+ <xsl:if test="position() &gt; 1">
+ <mml:mo>
+ <xsl:choose>
+ <xsl:when test="self::mml:cn">&#215;<!-- times --></xsl:when>
+ <xsl:otherwise><!--&#8290;--><!--invisible times--></xsl:otherwise>
+ </xsl:choose>
+ </mml:mo>
+ </xsl:if>
+ <xsl:if test="position()&gt;= $first">
+ <xsl:apply-templates mode="c2p" select=".">
+ <xsl:with-param name="p" select="3"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="$p &gt; 3"><mml:mo>)</mml:mo></xsl:if>
+ </mml:mrow>
+</xsl:template>
+
+
+<!-- 4.4.3.10 root -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:root] and not(mml:degree) or mml:degree=2]" priority="4">
+<mml:msqrt>
+<xsl:apply-templates mode="c2p" select="*[position()&gt;1]"/>
+</mml:msqrt>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:root]]">
+<mml:mroot>
+<xsl:apply-templates mode="c2p" select="*[position()&gt;1 and not(self::mml:degree)]"/>
+<mml:mrow><xsl:apply-templates mode="c2p" select="mml:degree/*"/></mml:mrow>
+</mml:mroot>
+</xsl:template>
+
+<!-- 4.4.3.11 gcd -->
+<xsl:template mode="c2p" match="mml:gcd">
+<mml:mo>gcd</mml:mo>
+</xsl:template>
+
+<!-- 4.4.3.12 and -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:and]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="2"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8743;<!-- and --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+
+<!-- 4.4.3.13 or -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:or]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="3"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8744;<!-- or --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.3.14 xor -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:xor]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="3"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>xor</mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+
+<!-- 4.4.3.15 not -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:not]]">
+<mml:mrow>
+<mml:mo>&#172;<!-- not --></mml:mo>
+<xsl:apply-templates mode="c2p" select="*[2]">
+ <xsl:with-param name="p" select="7"/>
+</xsl:apply-templates>
+</mml:mrow>
+</xsl:template>
+
+
+
+
+<!-- 4.4.3.16 implies -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:implies]]">
+ <xsl:param name="p" select="0"/>
+<xsl:call-template name="binary">
+ <xsl:with-param name="mo"><mml:mo>&#8658;<!-- Rightarrow --></mml:mo></xsl:with-param>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="this-p" select="3"/>
+</xsl:call-template>
+</xsl:template>
+
+
+<!-- 4.4.3.17 forall -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:forall]]">
+ <mml:mrow>
+ <mml:mi>&#8704;<!--forall--></mml:mi>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:bvar[not(current()/mml:condition)]/*|mml:condition/*"/></mml:mrow>
+ <mml:mo>.</mml:mo>
+ <mml:mfenced>
+ <xsl:apply-templates mode="c2p" select="*[last()]"/>
+ </mml:mfenced>
+</mml:mrow>
+</xsl:template>
+
+
+
+<!-- 4.4.3.18 exists -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:exists]]">
+ <mml:mrow>
+ <mml:mi>&#8707;<!--exists--></mml:mi>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:bvar[not(current()/mml:condition)]/*|mml:condition/*"/></mml:mrow>
+ <mml:mo>.</mml:mo>
+ <mml:mfenced>
+ <xsl:apply-templates mode="c2p" select="*[last()]"/>
+ </mml:mfenced>
+</mml:mrow>
+</xsl:template>
+
+
+<!-- 4.4.3.19 abs -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:abs]]">
+<mml:mrow>
+<mml:mo>|</mml:mo>
+<xsl:apply-templates mode="c2p" select="*[2]"/>
+<mml:mo>|</mml:mo>
+</mml:mrow>
+</xsl:template>
+
+
+
+<!-- 4.4.3.20 conjugate -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:conjugate]]">
+<mml:mover>
+<xsl:apply-templates mode="c2p" select="*[2]"/>
+<mml:mo>&#175;<!-- overline --></mml:mo>
+</mml:mover>
+</xsl:template>
+
+<!-- 4.4.3.21 arg -->
+<xsl:template mode="c2p" match="mml:arg">
+ <mml:mo>arg</mml:mo>
+</xsl:template>
+
+
+<!-- 4.4.3.22 real -->
+<xsl:template mode="c2p" match="mml:real">
+ <mml:mo>&#8475;<!-- real --></mml:mo>
+</xsl:template>
+
+<!-- 4.4.3.23 imaginary -->
+<xsl:template mode="c2p" match="mml:imaginary">
+ <mml:mo>&#8465;<!-- imaginary --></mml:mo>
+</xsl:template>
+
+<!-- 4.4.3.24 lcm -->
+<xsl:template mode="c2p" match="mml:lcm">
+ <mml:mo>lcm</mml:mo>
+</xsl:template>
+
+
+<!-- 4.4.3.25 floor -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:floor]]">
+<mml:mrow>
+<mml:mo>&#8970;<!-- lfloor--></mml:mo>
+<xsl:apply-templates mode="c2p" select="*[2]"/>
+<mml:mo>&#8971;<!-- rfloor--></mml:mo>
+</mml:mrow>
+</xsl:template>
+
+
+<!-- 4.4.3.25 ceiling -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:ceiling]]">
+<mml:mrow>
+<mml:mo>&#8968;<!-- lceil--></mml:mo>
+<xsl:apply-templates mode="c2p" select="*[2]"/>
+<mml:mo>&#8969;<!-- rceil--></mml:mo>
+</mml:mrow>
+</xsl:template>
+
+<!-- 4.4.4.1 eq -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:eq]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="1"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>=</mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.4.2 neq -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:neq]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="1"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8800;<!-- neq --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.4.3 eq -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:gt]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="1"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&gt;</mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.4.4 lt -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:lt]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="1"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&lt;</mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.4.5 geq -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:geq]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="1"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8805;</mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.4.6 geq -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:leq]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="1"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8804;</mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.4.7 equivalent -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:equivalent]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="1"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8801;</mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.4.8 approx -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:approx]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="1"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8771;</mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+
+<!-- 4.4.4.9 factorof -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:factorof]]">
+ <xsl:param name="p" select="0"/>
+<xsl:call-template name="binary">
+ <xsl:with-param name="mo"><mml:mo>|</mml:mo></xsl:with-param>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="this-p" select="3"/>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.5.1 int -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:int]]">
+ <mml:mrow>
+ <mml:msubsup>
+ <mml:mi>&#8747;<!--int--></mml:mi>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:lowlimit/*|mml:interval/*[1]|mml:condition/*"/></mml:mrow>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:uplimit/*|mml:interval/*[2]"/></mml:mrow>
+ </mml:msubsup>
+ <xsl:apply-templates mode="c2p" select="*[last()]"/>
+ <mml:mo>d</mml:mo><xsl:apply-templates mode="c2p" select="mml:bvar"/>
+</mml:mrow>
+</xsl:template>
+
+<!-- 4.4.5.2 diff -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:diff] and mml:ci and count(*)=2]" priority="2">
+ <mml:msup>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="*[2]"/></mml:mrow>
+ <mml:mo>&#8242;<!--prime--></mml:mo>
+ </mml:msup>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:diff]]" priority="1">
+ <mml:mfrac>
+ <xsl:choose>
+ <xsl:when test="mml:bvar/mml:degree">
+ <mml:mrow><mml:msup><mml:mo>d</mml:mo><xsl:apply-templates mode="c2p" select="mml:bvar/mml:degree/node()"/></mml:msup>
+ <xsl:apply-templates mode="c2p" select="*[last()]"/></mml:mrow>
+ <mml:mrow><mml:mo>d</mml:mo><mml:msup><xsl:apply-templates mode="c2p"
+ select="mml:bvar/node()"/><xsl:apply-templates mode="c2p"
+ select="mml:bvar/mml:degree/node()"/></mml:msup>
+</mml:mrow>
+</xsl:when>
+<xsl:otherwise>
+ <mml:mrow><mml:mo>d</mml:mo><xsl:apply-templates mode="c2p" select="*[last()]"/></mml:mrow>
+ <mml:mrow><mml:mo>d</mml:mo><xsl:apply-templates mode="c2p" select="mml:bvar"/></mml:mrow>
+</xsl:otherwise>
+ </xsl:choose>
+ </mml:mfrac>
+</xsl:template>
+
+
+<!-- 4.4.5.3 partialdiff -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:partialdiff] and mml:list and mml:ci and count(*)=3]" priority="2">
+<mml:mrow>
+ <mml:msub><mml:mo>D</mml:mo><mml:mrow>
+<xsl:for-each select="mml:list[1]/*">
+<xsl:apply-templates mode="c2p" select="."/>
+<xsl:if test="position()&lt;last()"><mml:mo>,</mml:mo></xsl:if>
+</xsl:for-each>
+</mml:mrow></mml:msub>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="*[3]"/></mml:mrow>
+</mml:mrow>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:partialdiff]]" priority="1">
+ <mml:mfrac>
+ <mml:mrow><mml:msup><mml:mo>&#8706;<!-- partial --></mml:mo>
+<mml:mrow>
+ <xsl:choose>
+ <xsl:when test="mml:degree">
+<xsl:apply-templates mode="c2p" select="mml:degree/node()"/>
+</xsl:when>
+<xsl:when test="mml:bvar/mml:degree[string(number(.))='NaN']">
+<xsl:for-each select="mml:bvar/mml:degree">
+<xsl:apply-templates mode="c2p" select="node()"/>
+<xsl:if test="position()&lt;last()"><mml:mo>+</mml:mo></xsl:if>
+</xsl:for-each>
+<xsl:if test="count(mml:bvar[not(mml:degree)])&gt;0">
+<mml:mo>+</mml:mo><mml:mn><xsl:value-of select="count(mml:bvar[not(mml:degree)])"/></mml:mn>
+</xsl:if>
+</xsl:when>
+<xsl:otherwise>
+<mml:mn><xsl:value-of select="sum(mml:bvar/mml:degree)+count(mml:bvar[not(mml:degree)])"/></mml:mn>
+</xsl:otherwise>
+ </xsl:choose>
+</mml:mrow>
+</mml:msup>
+ <xsl:apply-templates mode="c2p" select="*[last()]"/></mml:mrow>
+<mml:mrow>
+<xsl:for-each select="mml:bvar">
+<mml:mrow>
+<mml:mo>&#8706;<!-- partial --></mml:mo><mml:msup><xsl:apply-templates mode="c2p" select="node()"/>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:degree/node()"/></mml:mrow>
+</mml:msup>
+</mml:mrow>
+</xsl:for-each>
+</mml:mrow>
+ </mml:mfrac>
+</xsl:template>
+
+<!-- 4.4.5.4 lowlimit-->
+<xsl:template mode="c2p" match="mml:lowlimit"/>
+
+<!-- 4.4.5.5 uplimit-->
+<xsl:template mode="c2p" match="mml:uplimit"/>
+
+<!-- 4.4.5.6 bvar-->
+<xsl:template mode="c2p" match="mml:bvar">
+ <mml:mi><xsl:apply-templates mode="c2p"/></mml:mi>
+ <xsl:if test="following-sibling::mml:bvar"><mml:mo>,</mml:mo></xsl:if>
+</xsl:template>
+
+<!-- 4.4.5.7 degree-->
+<xsl:template mode="c2p" match="mml:degree"/>
+
+<!-- 4.4.5.8 divergence-->
+<xsl:template mode="c2p" match="mml:divergence">
+<mml:mo>div</mml:mo>
+</xsl:template>
+
+<!-- 4.4.5.9 grad-->
+<xsl:template mode="c2p" match="mml:grad">
+<mml:mo>grad</mml:mo>
+</xsl:template>
+
+<!-- 4.4.5.10 curl -->
+<xsl:template mode="c2p" match="mml:curl">
+<mml:mo>curl</mml:mo>
+</xsl:template>
+
+
+<!-- 4.4.5.11 laplacian-->
+<xsl:template mode="c2p" match="mml:laplacian">
+<mml:msup><mml:mo>&#8711;<!-- nabla --></mml:mo><mml:mn>2</mml:mn></mml:msup>
+</xsl:template>
+
+<!-- 4.4.6.1 set -->
+
+<xsl:template mode="c2p" match="mml:set">
+ <xsl:call-template name="set"/>
+</xsl:template>
+
+<!-- 4.4.6.2 list -->
+
+<xsl:template mode="c2p" match="mml:list">
+ <xsl:call-template name="set">
+ <xsl:with-param name="o" select="'('"/>
+ <xsl:with-param name="c" select="')'"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.6.3 union -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:union]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="2"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8746;<!-- union --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.6.4 intersect -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:intersect]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="3"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8745;<!-- intersect --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.6.5 in -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:in]]">
+ <xsl:param name="p" select="0"/>
+<xsl:call-template name="binary">
+ <xsl:with-param name="mo"><mml:mo>&#8712;<!-- in --></mml:mo></xsl:with-param>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="this-p" select="3"/>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.6.5 notin -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:notin]]">
+ <xsl:param name="p" select="0"/>
+<xsl:call-template name="binary">
+ <xsl:with-param name="mo"><mml:mo>&#8713;<!-- not in --></mml:mo></xsl:with-param>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="this-p" select="3"/>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.6.7 subset -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:subset]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="2"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8838;<!-- subseteq --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.6.8 prsubset -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:prsubset]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="2"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8834;<!-- prsubset --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.6.9 notsubset -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:notsubset]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="binary">
+ <xsl:with-param name="this-p" select="2"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8840;<!-- notsubseteq --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.6.10 notprsubset -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:notprsubset]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="binary">
+ <xsl:with-param name="this-p" select="2"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8836;<!-- prsubset --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.6.11 setdiff -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:setdiff]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="binary">
+ <xsl:with-param name="this-p" select="2"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#8726;<!-- setminus --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.6.12 card -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:card]]">
+<mml:mrow>
+<mml:mo>|</mml:mo>
+<xsl:apply-templates mode="c2p" select="*[2]"/>
+<mml:mo>|</mml:mo>
+</mml:mrow>
+</xsl:template>
+
+<!-- 4.4.6.13 cartesianproduct -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:cartesianproduct or self::mml:vectorproduct]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="2"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>&#215;<!-- times --></mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<xsl:template
+match="mml:apply[*[1][self::mml:cartesianproduct][count(following-sibling::mml:reals)=count(following-sibling::*)]]"
+priority="2">
+<mml:msup>
+<xsl:apply-templates mode="c2p" select="*[2]">
+ <xsl:with-param name="p" select="5"/>
+</xsl:apply-templates>
+<mml:mn><xsl:value-of select="count(*)-1"/></mml:mn>
+</mml:msup>
+</xsl:template>
+
+
+<!-- 4.4.7.1 sum -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:sum]]">
+ <mml:mrow>
+ <mml:msubsup>
+ <mml:mo>&#8721;<!--sum--></mml:mo>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:lowlimit/*|mml:interval/*[1]|mml:condition/*"/></mml:mrow>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:uplimit/*|mml:interval/*[2]"/></mml:mrow>
+ </mml:msubsup>
+ <xsl:apply-templates mode="c2p" select="*[last()]"/>
+</mml:mrow>
+</xsl:template>
+
+<!-- 4.4.7.2 product -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:product]]">
+ <mml:mrow>
+ <mml:msubsup>
+ <mml:mo>&#8719;<!--product--></mml:mo>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:lowlimit/*|mml:interval/*[1]|mml:condition/*"/></mml:mrow>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:uplimit/*|mml:interval/*[2]"/></mml:mrow>
+ </mml:msubsup>
+ <xsl:apply-templates mode="c2p" select="*[last()]"/>
+</mml:mrow>
+</xsl:template>
+
+<!-- 4.4.7.3 limit -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:limit]]">
+ <mml:mrow>
+ <mml:munder>
+ <mml:mi>limit</mml:mi>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:lowlimit|mml:condition/*"/></mml:mrow>
+ </mml:munder>
+ <xsl:apply-templates mode="c2p" select="*[last()]"/>
+</mml:mrow>
+</xsl:template>
+
+<xsl:template mode="c2p" match="mml:apply[mml:limit]/mml:lowlimit" priority="3">
+<mml:mrow>
+<xsl:apply-templates mode="c2p" select="../mml:bvar/node()"/>
+<mml:mo>&#8594;<!--rightarrow--></mml:mo>
+<xsl:apply-templates mode="c2p"/>
+</mml:mrow>
+</xsl:template>
+
+
+<!-- 4.4.7.4 tendsto -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:tendsto]]">
+ <xsl:param name="p"/>
+<xsl:call-template name="binary">
+ <xsl:with-param name="this-p" select="2"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>
+ <xsl:choose>
+ <xsl:when test="@type='above'">&#8600;<!--searrow--></xsl:when>
+ <xsl:when test="@type='below'">&#8599;<!--nearrow--></xsl:when>
+ <xsl:when test="@type='two-sided'">&#8594;<!--rightarrow--></xsl:when>
+ <xsl:otherwise>&#8594;<!--rightarrow--></xsl:otherwise>
+ </xsl:choose>
+ </mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.8.1 trig -->
+<xsl:template mode="c2p" match="mml:apply[*[1][
+ self::mml:sin or self::mml:cos or self::mml:tan or self::mml:sec or
+ self::mml:csc or self::mml:cot or self::mml:sinh or self::mml:cosh or
+ self::mml:tanh or self::mml:sech or self::mml:csch or self::mml:coth or
+ self::mml:arcsin or self::mml:arccos or self::mml:arctan or self::mml:arccosh
+ or self::mml:arccot or self::mml:arccoth or self::mml:arccsc or
+ self::mml:arccsch or self::mml:arcsec or self::mml:arcsech or
+ self::mml:arcsinh or self::mml:arctanh or self::mml:ln]]">
+<mml:mrow>
+<mml:mi><xsl:value-of select="local-name(*[1])"/></mml:mi>
+<xsl:apply-templates mode="c2p" select="*[2]">
+ <xsl:with-param name="p" select="7"/>
+</xsl:apply-templates>
+</mml:mrow>
+</xsl:template>
+
+
+
+
+<!-- 4.4.8.2 exp -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:exp]]">
+<mml:msup>
+<mml:mi>e<!-- exponential e--></mml:mi>
+<mml:mrow><xsl:apply-templates mode="c2p" select="*[2]"/></mml:mrow>
+</mml:msup>
+</xsl:template>
+
+<!-- 4.4.8.3 ln -->
+<!-- with trig -->
+
+<!-- 4.4.8.4 log -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:log]]">
+<mml:mrow>
+<xsl:choose>
+<xsl:when test="not(mml:logbase) or mml:logbase=10">
+<mml:mi>log</mml:mi>
+</xsl:when>
+<xsl:otherwise>
+<mml:msub>
+<mml:mi>log</mml:mi>
+<mml:mrow><xsl:apply-templates mode="c2p" select="mml:logbase/node()"/></mml:mrow>
+</mml:msub>
+</xsl:otherwise>
+</xsl:choose>
+<xsl:apply-templates mode="c2p" select="*[last()]">
+ <xsl:with-param name="p" select="7"/>
+</xsl:apply-templates>
+</mml:mrow>
+</xsl:template>
+
+
+<!-- 4.4.9.1 mean -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:mean]]">
+<mml:mrow>
+ <mml:mo>&#9001;<!--langle--></mml:mo>
+ <xsl:for-each select="*[position()&gt;1]">
+ <xsl:apply-templates mode="c2p" select="."/>
+ <xsl:if test="position() !=last()"><mml:mo>,</mml:mo></xsl:if>
+ </xsl:for-each>
+<mml:mo>&#9002;<!--rangle--></mml:mo>
+</mml:mrow>
+</xsl:template>
+
+
+<!-- 4.4.9.2 sdef -->
+<xsl:template mode="c2p" match="mml:sdev">
+<mml:mo>&#963;<!--sigma--></mml:mo>
+</xsl:template>
+
+<!-- 4.4.9.3 variance -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:variance]]">
+<mml:msup>
+<mml:mrow>
+<mml:mo>&#963;<!--sigma--></mml:mo>
+<mml:mo>(</mml:mo>
+<xsl:apply-templates mode="c2p" select="*[2]"/>
+<mml:mo>)</mml:mo>
+</mml:mrow>
+<mml:mn>2</mml:mn>
+</mml:msup>
+</xsl:template>
+
+
+<!-- 4.4.9.4 median -->
+<xsl:template mode="c2p" match="mml:median">
+<mml:mo>median</mml:mo>
+</xsl:template>
+
+
+<!-- 4.4.9.5 mode -->
+<xsl:template mode="c2p" match="mml:mode">
+<mml:mo>mode</mml:mo>
+</xsl:template>
+
+<!-- 4.4.9.5 moment -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:moment]]">
+<mml:mrow>
+ <mml:mo>&#9001;<!--langle--></mml:mo>
+ <mml:msup>
+ <xsl:apply-templates mode="c2p" select="*[last()]"/>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:degree/node()"/></mml:mrow>
+ </mml:msup>
+<mml:mo>&#9002;<!--rangle--></mml:mo>
+</mml:mrow>
+</xsl:template>
+
+<!-- 4.4.9.5 momentabout -->
+<xsl:template mode="c2p" match="mml:momentabout"/>
+
+<!-- 4.4.10.1 vector -->
+<xsl:template mode="c2p" match="mml:vector">
+<mml:mrow>
+<mml:mo>(</mml:mo>
+<mml:mtable>
+<xsl:for-each select="*">
+<mml:mtr><mml:mtd><xsl:apply-templates mode="c2p" select="."/></mml:mtd></mml:mtr>
+</xsl:for-each>
+</mml:mtable>
+<mml:mo>)</mml:mo>
+</mml:mrow>
+</xsl:template>
+
+<!-- 4.4.10.2 matrix -->
+<xsl:template mode="c2p" match="mml:matrix">
+<mml:mrow>
+<mml:mo>(</mml:mo>
+<mml:mtable>
+<xsl:apply-templates mode="c2p"/>
+</mml:mtable>
+<mml:mo>)</mml:mo>
+</mml:mrow>
+</xsl:template>
+
+<!-- 4.4.10.3 matrixrow -->
+<xsl:template mode="c2p" match="mml:matrixrow">
+<mml:mtr>
+<xsl:for-each select="*">
+<mml:mtd><xsl:apply-templates mode="c2p" select="."/></mml:mtd>
+</xsl:for-each>
+</mml:mtr>
+</xsl:template>
+
+<!-- 4.4.10.4 determinant -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:determinant]]">
+<mml:mrow>
+<mml:mi>det</mml:mi>
+<xsl:apply-templates mode="c2p" select="*[2]">
+ <xsl:with-param name="p" select="7"/>
+</xsl:apply-templates>
+</mml:mrow>
+</xsl:template>
+
+<xsl:template
+match="mml:apply[*[1][self::mml:determinant]][*[2][self::mml:matrix]]" priority="2">
+<mml:mrow>
+<mml:mo>|</mml:mo>
+<mml:mtable>
+<xsl:apply-templates mode="c2p" select="mml:matrix/*"/>
+</mml:mtable>
+<mml:mo>|</mml:mo>
+</mml:mrow>
+</xsl:template>
+
+<!-- 4.4.10.5 transpose -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:transpose]]">
+<mml:msup>
+<xsl:apply-templates mode="c2p" select="*[2]">
+ <xsl:with-param name="p" select="7"/>
+</xsl:apply-templates>
+<mml:mi>T</mml:mi>
+</mml:msup>
+</xsl:template>
+
+<!-- 4.4.10.5 selector -->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:selector]]">
+<mml:msub>
+<xsl:apply-templates mode="c2p" select="*[2]">
+ <xsl:with-param name="p" select="7"/>
+</xsl:apply-templates>
+<mml:mrow>
+ <xsl:for-each select="*[position()&gt;2]">
+ <xsl:apply-templates mode="c2p" select="."/>
+ <xsl:if test="position() !=last()"><mml:mo>,</mml:mo></xsl:if>
+ </xsl:for-each>
+</mml:mrow>
+</mml:msub>
+</xsl:template>
+
+<!-- *** -->
+<!-- 4.4.10.6 vectorproduct see cartesianproduct -->
+
+
+<!-- 4.4.10.7 scalarproduct-->
+<xsl:template mode="c2p" match="mml:apply[*[1][self::mml:scalarproduct or self::mml:outerproduct]]">
+<xsl:param name="p" select="0"/>
+<xsl:call-template name="infix">
+ <xsl:with-param name="this-p" select="2"/>
+ <xsl:with-param name="p" select="$p"/>
+ <xsl:with-param name="mo"><mml:mo>.</mml:mo></xsl:with-param>
+</xsl:call-template>
+</xsl:template>
+
+<!-- 4.4.10.8 outerproduct-->
+
+<!-- 4.4.11.2 semantics -->
+<xsl:template mode="c2p" match="mml:semantics">
+ <xsl:apply-templates mode="c2p" select="*[1]"/>
+</xsl:template>
+<xsl:template mode="c2p" match="mml:semantics[mml:annotation-xml/@encoding='MathML-Presentation']">
+ <xsl:apply-templates mode="c2p" select="mml:annotation-xml[@encoding='MathML-Presentation']/node()"/>
+</xsl:template>
+
+<!-- 4.4.12.1 integers -->
+<xsl:template mode="c2p" match="mml:integers">
+<mml:mi mathvariant="double-struck">Z</mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.2 reals -->
+<xsl:template mode="c2p" match="mml:reals">
+<mml:mi mathvariant="double-struck">R</mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.3 rationals -->
+<xsl:template mode="c2p" match="mml:rationals">
+<mml:mi mathvariant="double-struck">Q</mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.4 naturalnumbers -->
+<xsl:template mode="c2p" match="mml:naturalnumbers">
+<mml:mi mathvariant="double-struck">N</mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.5 complexes -->
+<xsl:template mode="c2p" match="mml:complexes">
+<mml:mi mathvariant="double-struck">C</mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.6 primes -->
+<xsl:template mode="c2p" match="mml:primes">
+<mml:mi mathvariant="double-struck">P</mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.7 exponentiale -->
+<xsl:template mode="c2p" match="mml:exponentiale">
+ <mml:mi>e<!-- exponential e--></mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.8 imaginaryi -->
+<xsl:template mode="c2p" match="mml:imaginaryi">
+ <mml:mi>i<!-- imaginary i--></mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.9 notanumber -->
+<xsl:template mode="c2p" match="mml:notanumber">
+ <mml:mi>NaN</mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.10 true -->
+<xsl:template mode="c2p" match="mml:true">
+ <mml:mi>true</mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.11 false -->
+<xsl:template mode="c2p" match="mml:false">
+ <mml:mi>false</mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.12 emptyset -->
+<xsl:template mode="c2p" match="mml:emptyset">
+ <mml:mi>&#8709;<!-- emptyset --></mml:mi>
+</xsl:template>
+
+
+<!-- 4.4.12.13 pi -->
+<xsl:template mode="c2p" match="mml:pi">
+ <mml:mi>&#960;<!-- pi --></mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.14 eulergamma -->
+<xsl:template mode="c2p" match="mml:eulergamma">
+ <mml:mi>&#947;<!-- gamma --></mml:mi>
+</xsl:template>
+
+<!-- 4.4.12.15 infinity -->
+<xsl:template mode="c2p" match="mml:infinity">
+ <mml:mi>&#8734;<!-- infinity --></mml:mi>
+</xsl:template>
+
+
+<!-- ****************************** -->
+<xsl:template name="infix" >
+ <xsl:param name="mo"/>
+ <xsl:param name="p" select="0"/>
+ <xsl:param name="this-p" select="0"/>
+ <mml:mrow>
+ <xsl:if test="$this-p &lt; $p"><mml:mo>(</mml:mo></xsl:if>
+ <xsl:for-each select="*[position()&gt;1]">
+ <xsl:if test="position() &gt; 1">
+ <xsl:copy-of select="$mo"/>
+ </xsl:if>
+ <xsl:apply-templates mode="c2p" select=".">
+ <xsl:with-param name="p" select="$this-p"/>
+ </xsl:apply-templates>
+ </xsl:for-each>
+ <xsl:if test="$this-p &lt; $p"><mml:mo>)</mml:mo></xsl:if>
+ </mml:mrow>
+</xsl:template>
+
+<xsl:template name="binary" >
+ <xsl:param name="mo"/>
+ <xsl:param name="p" select="0"/>
+ <xsl:param name="this-p" select="0"/>
+ <mml:mrow>
+ <xsl:if test="$this-p &lt; $p"><mml:mo>(</mml:mo></xsl:if>
+ <xsl:apply-templates mode="c2p" select="*[2]">
+ <xsl:with-param name="p" select="$this-p"/>
+ </xsl:apply-templates>
+ <xsl:copy-of select="$mo"/>
+ <xsl:apply-templates mode="c2p" select="*[3]">
+ <xsl:with-param name="p" select="$this-p"/>
+ </xsl:apply-templates>
+ <xsl:if test="$this-p &lt; $p"><mml:mo>)</mml:mo></xsl:if>
+ </mml:mrow>
+</xsl:template>
+
+<xsl:template name="set" >
+ <xsl:param name="o" select="'{'"/>
+ <xsl:param name="c" select="'}'"/>
+ <mml:mrow>
+ <mml:mo><xsl:value-of select="$o"/></mml:mo>
+ <xsl:choose>
+ <xsl:when test="mml:condition">
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:bvar/*[not(self::bvar or self::condition)]"/></mml:mrow>
+ <mml:mo>|</mml:mo>
+ <mml:mrow><xsl:apply-templates mode="c2p" select="mml:condition/node()"/></mml:mrow>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="*">
+ <xsl:apply-templates mode="c2p" select="."/>
+ <xsl:if test="position() !=last()"><mml:mo>,</mml:mo></xsl:if>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ <mml:mo><xsl:value-of select="$c"/></mml:mo>
+ </mml:mrow>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/egl-man.xsl b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/egl-man.xsl
new file mode 100644
index 0000000..7c73965
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/egl-man.xsl
@@ -0,0 +1,274 @@
+<?xml version='1.0'?>
+
+
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.0">
+
+
+ <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"/>
+
+<!-- This file contains the "customization layer" for the Docbook system. When a Docbook rule
+doesn't do exactly what we need, we override the rule in this file with a modified rule. -->
+
+<!-- Inserts the file style-css.xsl. This is embeddd into the <head /> tag of each resulting html file -->
+ <xsl:include href="styles-css.xsl" />
+ <xsl:include href="copyright.inc.xsl" />
+ <xsl:param name="funcsynopsis.style">ansi</xsl:param>
+ <xsl:param name="citerefentry.link" select="'1'"></xsl:param>
+ <xsl:output indent="yes"/>
+
+<!-- Set this param to a placeholder for the base URL of the external specification document. Include
+the beginning of the 'namedest' function as well. See the script pageNumberLookup.rb to see
+how this placeholder gets replaced by the actual spec URL and target page number. This placeholder
+can be any string, and only needs to match the same placeholder string in pageNumberLookup.rb. -->
+ <xsl:param name="SpecBaseUrl">http://www.khronos.org/registry/cl/specs/opencl-1.x-latest.pdf#namedest=</xsl:param>
+
+<!-- This generates a URL based on the contents of Refentry title. However if there is a value
+specified for the href attribute in Citerefentry, then it will create the URL out if that content instead -->
+ <xsl:template name="generate.citerefentry.link">
+ <xsl:choose>
+ <xsl:when test="@href">
+ <xsl:value-of select="@href"/>
+ <xsl:text>.html</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="refentrytitle"/>
+ <xsl:text>.html</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+<!-- The following template creates the link for the Specification section -->
+ <xsl:template match="olink">
+ <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
+ <xsl:value-of select="$SpecBaseUrl" />
+ <xsl:value-of select="@uri" />
+ <xsl:text disable-output-escaping="yes">" target="OpenCL Spec"&gt;</xsl:text>
+ <xsl:value-of select="." />
+ <xsl:text disable-output-escaping="yes">&lt;/a&gt;</xsl:text>
+ </xsl:template>
+
+<!-- The following enables use of ulink for regular URLs on the pages-->
+<xsl:template match="ulink">
+ <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
+ <xsl:value-of select="@url" />
+ <xsl:text disable-output-escaping="yes">"&gt;</xsl:text>
+ <xsl:value-of select="." />
+ <xsl:text disable-output-escaping="yes">&lt;/a&gt;</xsl:text>
+</xsl:template>
+
+
+<!-- The following is the main set of templates for generating the web pages -->
+ <xsl:template match="*" mode="process.root">
+ <xsl:variable name="doc" select="self::*"/>
+ <xsl:call-template name="user.preroot"/>
+ <xsl:call-template name="root.messages"/>
+
+ <html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" pref:renderer="mathplayer-dl">
+
+ <head>
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ </head>
+
+ <body>
+ <xsl:call-template name="body.attributes"/>
+ <xsl:call-template name="user.header.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="."/> <!-- This line performs the magic! -->
+ <xsl:call-template name="user.footer.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+
+ </body>
+ </html>
+ </xsl:template>
+
+
+<xsl:template match="/">
+ <xsl:processing-instruction name="xml-stylesheet">
+ <xsl:text>type="text/xsl" href="mathml.xsl"</xsl:text>
+ </xsl:processing-instruction>
+ <xsl:apply-imports/>
+</xsl:template>
+
+
+<xsl:template match="funcdef/replaceable">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+
+<!-- This inserts the style-css.xsl file into the HTML file -->
+<xsl:template name="system.head.content">
+ <xsl:param name="node" select="."/>
+ <style type="text/css">
+ <xsl:value-of select="$annotation.css"/>
+ </style>
+</xsl:template>
+
+
+<!-- The templates gentext-refname and refnamediv are inserted here so
+we can have the refname displayed as the H1 header on the page -->
+<xsl:template name="gentext-refname">
+ <xsl:param name="key" select="local-name(.)"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+ <xsl:value-of select="refname"/>
+</xsl:template>
+
+<xsl:template match="refnamediv">
+ <div class="{name(.)}">
+ <xsl:call-template name="anchor"/>
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::refnamediv">
+ <!-- no title on secondary refnamedivs! -->
+ </xsl:when>
+ <xsl:when test="$refentry.generate.name != 0">
+ <h1>
+ <xsl:call-template name="gentext-refname">
+ <xsl:with-param name="key" select="'RefName'"/>
+ </xsl:call-template>
+ </h1>
+ </xsl:when>
+ <xsl:when test="$refentry.generate.title != 0">
+ <h2>
+ <xsl:choose>
+ <xsl:when test="../refmeta/refentrytitle">
+ <xsl:apply-templates select="../refmeta/refentrytitle"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="refname[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h2>
+ </xsl:when>
+ </xsl:choose>
+ <p>
+ <xsl:apply-templates/>
+ </p>
+ </div>
+</xsl:template>
+
+
+<!-- The templates refname and refpurpose are inserted here so that we can
+modify the layout of these values on the HTML page -->
+<xsl:template match="refname" />
+<xsl:template match="refpurpose">
+<xsl:apply-templates/>
+</xsl:template>
+
+
+<!-- The Link template allows us to embed links in the <funcprototype>,
+even though this is not valid DocBook markup -->
+<xsl:template match="link" mode="ansi-tabular">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+
+<!-- The following template enables the <replaceable> tag inside
+ <funcdef>, <paramdef>, and <function> to generate <em> in the HTML output -->
+<xsl:template match="funcdef/replaceable" mode="ansi-tabular">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="paramdef/replaceable" mode="ansi-tabular">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="function/replaceable" mode="ansi-nontabular">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="refname/replaceable" mode="kr-nontabular">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<!-- The templates funcprototype and paramdef are here so we can modify the layout
+of the synopsis so that it is not broken into so many columns in the table, control indenting, and more. -->
+
+<!-- funcprototype: ansi, tabular -->
+
+<xsl:template match="funcprototype" mode="ansi-tabular">
+ <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <xsl:if test="following-sibling::funcprototype">
+ <xsl:attribute name="style">padding-bottom: 1em</xsl:attribute>
+ </xsl:if>
+ <tr valign="bottom">
+ <td>
+ <xsl:apply-templates select="funcdef" mode="ansi-tabular"/>
+ <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="ansi-tabular"/>
+ </td>
+ </tr>
+ <xsl:for-each select="(void|varargs|paramdef)[position() &gt; 1]">
+ <tr valign="top">
+ <td>&#160;</td>
+ <xsl:apply-templates select="." mode="ansi-tabular"/>
+ </tr>
+ </xsl:for-each>
+ </table>
+</xsl:template>
+
+
+<xsl:template match="paramdef" mode="ansi-tabular">
+ <xsl:choose>
+ <xsl:when test="type and funcparams">
+ <td>
+ <xsl:apply-templates select="type" mode="kr-tabular-funcsynopsis-mode"/>
+ <xsl:text>&#160;</xsl:text>
+ </td>
+ <td>
+ <xsl:apply-templates select="type/following-sibling::node()" mode="kr-tabular-funcsynopsis-mode"/>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>
+ <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="ansi-tabular"/>
+ <xsl:text>&#160;</xsl:text>
+<!-- </td>
+ <td>-->
+ <xsl:apply-templates select="parameter" mode="ansi-tabular"/>
+ <xsl:apply-templates select="parameter/following-sibling::node()[not(self::parameter)]" mode="ansi-tabular"/>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <code>)</code>
+<!-- OpenCL functions do not end with a semi-colon.
+ <xsl:text>;</xsl:text> -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+
+
+<!-- The template refsect3 is inserted here to deal with the copyright. This
+adds in the text from the include file copyright.inc.xsl -->
+<xsl:template match="refsect3">
+ <div class="{name(.)}">
+ <xsl:call-template name="language.attribute"/>
+ <xsl:call-template name="anchor">
+ <xsl:with-param name="conditional" select="0"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ <xsl:value-of select="$copyright"/>
+ </div>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglBindAPI.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglBindAPI.html
new file mode 100644
index 0000000..e3ad8b3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglBindAPI.html
@@ -0,0 +1,365 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglBindAPI</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglBindAPI"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglBindAPI</h1>
+ <p>Set the current rendering API</p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglBindAPI</strong>(</code>
+ <td>EGLenum  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">api</var><code>)</code></td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>api</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the client API to bind, one of
+ <code class="constant">EGL_OPENGL_API</code>,
+ <code class="constant">EGL_OPENGL_ES_API</code>, or
+ <code class="constant">EGL_OPENVG_API</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglBindAPI</code> defines the current
+ rendering API for EGL in the thread it is called from. The
+ current rendering API is one of the client rendering APIs
+ supported by the EGL implementation, and affects the
+ behavior of other EGL commands including
+ <code class="function">eglCreateContext</code>,
+ <code class="function">eglGetCurrentContext</code>,
+ <code class="function">eglGetCurrentDisplay</code>,
+ <code class="function">eglGetCurrentSurface</code>,
+ <code class="function">eglMakeCurrent</code>,
+ <code class="function">eglWaitClient</code>, and
+ <code class="function">eglWaitNative</code>.
+ </p>
+ <p>
+ If <em class="parameter"><code>api</code></em> is
+ <code class="constant">EGL_OPENGL_API</code>, the current rendering
+ API is set to the OpenGL API.
+ </p>
+ <p>
+ If <em class="parameter"><code>api</code></em> is
+ <code class="constant">EGL_OPENGL_ES_API</code>, the current
+ rendering API is set to the OpenGL ES API.
+ </p>
+ <p>
+ If <em class="parameter"><code>api</code></em> is
+ <code class="constant">EGL_OPENVG_API</code>, the current rendering
+ API is set to the OpenVG API.
+ </p>
+ <p>
+ If an error occurs, the current rendering API is unchanged.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglBindAPI</code> and the corresponding
+ <code class="constant">EGL_OPENGL_ES_API</code> and
+ <code class="constant">EGL_OPENVG_API</code>
+ <em class="parameter"><code>api</code></em> parameters are supported only if
+ the EGL version is 1.2 or greater. The
+ <code class="constant">EGL_OPENGL_API</code> parameter is supported
+ only if the EGL version is 1.4 or greater.
+ </p>
+ <p>
+ The initial value of the current rendering API is
+ <code class="constant">EGL_OPENGL_ES_API</code> unless OpenGL ES is
+ not supported by an implementation, in which case the
+ initial value is <code class="constant">EGL_NONE</code> (however,
+ <code class="constant">EGL_NONE</code> is not a valid
+ <em class="parameter"><code>api</code></em> parameter to
+ <code class="function">eglBindAPI</code>).
+ </p>
+ <p>
+ The current rendering API can be queried by calling
+ <code class="function">eglQueryAPI</code>.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>api</code></em> is not one of the accepted
+ tokens, or if the specified client API is not supported by
+ the EGL implementation.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentContext.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentDisplay.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentSurface.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQueryAPI.html"><span class="citerefentry"><span class="refentrytitle">eglQueryAPI</span></span></a>,
+ <a class="citerefentry" href="eglWaitClient.html"><span class="citerefentry"><span class="refentrytitle">eglWaitClient</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.html"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglBindTexImage.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglBindTexImage.html
new file mode 100644
index 0000000..e0e96c2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglBindTexImage.html
@@ -0,0 +1,435 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglBindTexImage</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglBindTexImage"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglBindTexImage</h1>
+ <p>
+ Defines a two-dimensional texture image
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglBindTexImage</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLSurface  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">surface</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">buffer</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>buffer</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the texture image data.</p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ The texture image consists of the image data in <em class="parameter"><code>buffer</code></em> for the specified surface, and need not be copied.
+ </p>
+ <p>
+ The texture target, the texture format and the size of the texture components are derived from
+ attributes of the specified surface, which must be a pbuffer supporting one of the
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGB</code> or <code class="constant">EGL_BIND_TO_TEXTURE_RGBA</code> attributes.
+ </p>
+ <p>
+ The pbuffer attribute <code class="constant">EGL_TEXTURE_FORMAT</code> determines the base internal format
+ of the texture.
+ </p>
+ <p>
+ The texture target is derived from the <code class="constant">EGL_TEXTURE_TARGET</code> attribute of surface.
+ If the attribute value is <code class="constant">EGL_TEXTURE_2D</code>, then <em class="parameter"><code>buffer</code></em> defines a texture for
+ the two-dimensional texture object which is bound to the current context (hereafter
+ referred to as the current texture object).
+ </p>
+ <p>
+ If <em class="parameter"><code>display</code></em> and <em class="parameter"><code>surface</code></em> are the display and surface for the calling thread's current
+ context, <code class="function">eglBindTexImage</code> performs an implicit <a class="citerefentry" href="glFlush.html"><span class="citerefentry"><span class="refentrytitle">glFlush</span></span></a>.
+ For other surfaces, <code class="function">eglBindTexImage</code> waits for all effects from previously issued OpenGL ES commands
+ drawing to the surface to complete before defining the texture image, as
+ though <a class="citerefentry" href="glFinish.html"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a> were called on the last context to which that surface were bound.
+ </p>
+ <p>
+ After <code class="function">eglBindTexImage</code> is called, the specified surface is no longer available
+ for reading or writing. Any read operation, such as <a class="citerefentry" href="glReadPixels.html"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a> or
+ <a class="citerefentry" href="eglCopyBuffers.html"><span class="citerefentry"><span class="refentrytitle">eglCopyBuffers</span></span></a>, which reads values from any of the surface's color buffers or ancillary
+ buffers will produce indeterminate results. In addition, draw operations that are
+ done to the surface before its color buffer is released from the texture produce indeterminate
+ results. Specifically, if the surface is current to a context and thread
+ then rendering commands will be processed and the context state will be updated,
+ but the surface may or may not be written.
+ </p>
+ <p>
+ Texture mipmap levels are automatically generated when all of the following
+ conditions are met while calling <code class="function">eglBindTexImage</code>:
+ </p>
+ <div class="itemizedlist">
+ <ul class="itemizedlist" style="list-style-type: disc; ">
+ <li class="listitem">
+ <p>
+ The <code class="constant">EGL_MIPMAP_TEXTURE</code> attribute of the pbuffer being bound is
+ <code class="constant">EGL_TRUE</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ The OpenGL ES texture parameter <code class="constant">GL_GENERATE_MIPMAP</code> is <code class="constant">GL_TRUE</code> for
+ the currently bound texture.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ The value of the <code class="constant">EGL_MIPMAP_LEVEL</code> attribute of the pbuffer being bound is
+ equal to the value of the texture parameter <code class="constant">GL_TEXTURE_BASE_LEVEL</code>.
+ In this case, additional mipmap levels are generated as described in section 3.8
+ of the OpenGL ES 1.1 Specification.
+ </p>
+ </li>
+ </ul>
+ </div>
+ <p>
+ In this case, additional mipmap levels are generated as described in section 3.8
+ of the OpenGL ES 1.1 Specification.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ <a class="citerefentry" href="eglSwapBuffers.html"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a> has no effect if it is
+ called on a bound surface.
+ </p>
+ <p>
+ Any existing images associated with the different mipmap levels of the texture object
+ are freed (it is as if <a class="citerefentry" href="glTexImage.html"><span class="citerefentry"><span class="refentrytitle">glTexImage</span></span></a>
+ was called with an image of zero width).
+ </p>
+ <p>
+ The color buffer is bound to a texture object. If the texture object is
+ shared between contexts, then the color buffer is also shared. If a texture object is
+ deleted before <a class="citerefentry" href="eglReleaseTexImage.html"><span class="citerefentry"><span class="refentrytitle">eglReleaseTexImage</span></span></a> is called, then the color buffer is released and
+ the surface is made available for reading and writing.
+ </p>
+ <p>
+ It is not an error to call <a class="citerefentry" href="glTexImage2D.html"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a> or
+ <a class="citerefentry" href="glCopyTexImage2D.html"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a> to replace an
+ image of a texture object that has a color buffer bound to it. However, these calls
+ will cause the color buffer to be released back to the surface and new memory will
+ be allocated for the texture. Note that the color buffer is released even if the image
+ that is being defined is a mipmap level that was not defined by the color buffer.
+ </p>
+ <p>
+ <code class="function">eglBindTexImage</code> is ignored if there is no current rendering context.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_BAD_ACCESS</code> is generated if
+ <em class="parameter"><code>buffer</code></em> is already bound to a texture.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ surface attribute <code class="constant">EGL_TEXTURE_FORMAT</code> is
+ set to <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>buffer</code></em> is not a valid buffer
+ (currently only <code class="constant">EGL_BACK_BUFFER</code> may be
+ specified).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL surface, or is
+ not a pbuffer surface supporting texture binding.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglReleaseTexImage.html"><span class="citerefentry"><span class="refentrytitle">eglReleaseTexImage</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglChooseConfig.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglChooseConfig.html
new file mode 100644
index 0000000..8a6f251
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglChooseConfig.html
@@ -0,0 +1,1361 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglChooseConfig</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglChooseConfig"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglChooseConfig</h1>
+ <p>
+ return a list of EGL frame buffer configurations that match specified attributes
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglChooseConfig</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint const *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attrib_list</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLConfig *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">configs</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">config_size</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">num_config</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies attributes required to match by configs.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>configs</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns an array of frame buffer configurations.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config_size</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the size of the array of frame buffer configurations.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>num_config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of frame buffer configurations returned.</p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglChooseConfig</code> returns in
+ <em class="parameter"><code>configs</code></em> a list of all
+ <acronym class="acronym">EGL</acronym> frame buffer configurations that
+ match the attributes specified in
+ <em class="parameter"><code>attrib_list</code></em>. The returned
+ <span class="type">EGLConfig</span>s can be used in any
+ <acronym class="acronym">EGL</acronym> function that requires an
+ <acronym class="acronym">EGL</acronym> frame buffer configuration.
+ </p>
+ <p>
+ If <em class="parameter"><code>configs</code></em> is not
+ <code class="constant">NULL</code>, up to
+ <em class="parameter"><code>config_size</code></em> configs will be returned
+ in the array pointed to by <em class="parameter"><code>configs</code></em>.
+ The number of configs actually returned will be returned in
+ *<em class="parameter"><code>num_config</code></em>.
+ </p>
+ <p>
+ If <em class="parameter"><code>configs</code></em> is
+ <code class="constant">NULL</code>, no configs will be returned in
+ <em class="parameter"><code>configs</code></em>. Instead, the total number of
+ configs matching <em class="parameter"><code>attrib_list</code></em> will be
+ returned in *<em class="parameter"><code>num_config</code></em>. In this case
+ <em class="parameter"><code>config_size</code></em> is ignored. This form of
+ <code class="function">eglChooseConfig</code> is used to determine
+ the number of matching frame buffer configurations, followed
+ by allocating an array of <span class="type">EGLConfig</span> to pass
+ into another call to <code class="function">eglChooseConfig</code>
+ with all other parameters unchanged.
+ </p>
+ <p>
+ All attributes in <em class="parameter"><code>attrib_list</code></em>,
+ including boolean attributes, are immediately followed by
+ the corresponding desired value. The list is terminated with
+ <code class="constant">EGL_NONE</code>. If an attribute is not
+ specified in <em class="parameter"><code>attrib_list</code></em> then the
+ default value (see below) is used (and the attribute is said
+ to be specified implicitly). For example, if
+ <code class="constant">EGL_DEPTH_SIZE</code> is not specified then it
+ is assumed to be zero. For some attributes, the default is
+ <code class="constant">EGL_DONT_CARE</code> meaning that any value is
+ OK for this attribute, so the attribute will not be checked.
+ </p>
+ <p>
+ Attributes are matched in an attribute-specific manner. Some
+ of the attributes, such as <code class="constant">EGL_LEVEL</code>,
+ must match the specified value exactly. Others, such as,
+ <code class="constant">EGL_RED_SIZE</code> must meet or exceed the
+ specified minimum values. If more than one EGL frame buffer
+ configuration matching all attributes is found, then a list
+ of configurations, sorted according to the ``best'' match
+ criteria, is returned. The match criteria for each attribute
+ and the exact sorting order is defined below.
+ </p>
+ <p>
+ For the bitmask attributes
+ <code class="constant">EGL_CONFORMANT</code>,
+ <code class="constant">EGL_RENDERABLE_TYPE</code>, and
+ <code class="constant">EGL_SURFACE_TYPE</code>, only the nonzero bits
+ of the mask are considered when matching. Any bits that are
+ zero in the specified bitmask attribute value may be either
+ zero or one in the resulting config's attribute value.
+ </p>
+ <p>
+ Attributes which may appear in
+ <em class="parameter"><code>attrib_list</code></em>, and their descriptions
+ and allowed values, are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_ALPHA_MASK_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired alpha mask buffer size, in
+ bits. The smallest alpha mask buffers of at least
+ the specified size are preferred. The default value
+ is zero.
+ </p>
+ <p>
+ The alpha mask buffer is used only by OpenGL and
+ OpenGL ES client APIs.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_ALPHA_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the alpha component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest alpha component size
+ are preferred. Otherwise, color buffers with the
+ largest alpha component of at least the specified
+ size are preferred. The default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGB</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by
+ <code class="constant">EGL_DONT_CARE</code>,
+ <code class="constant">EGL_TRUE</code>, or
+ <code class="constant">EGL_FALSE</code>.
+ If <code class="constant">EGL_TRUE</code> is specified, then
+ only frame buffer configurations that support
+ binding of color buffers to an OpenGL ES RGB texture
+ will be considered. Currently only frame buffer
+ configurations that support pbuffers allow this. The
+ default value is <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGBA</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by one of
+ <code class="constant">EGL_DONT_CARE</code>,
+ <code class="constant">EGL_TRUE</code>, or
+ <code class="constant">EGL_FALSE</code>.
+ If <code class="constant">EGL_TRUE</code> is specified, then
+ only frame buffer configurations that support
+ binding of color buffers to an OpenGL ES RGBA
+ texture will be considered. Currently only frame
+ buffer configurations that support pbuffers allow
+ this. The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BLUE_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the blue component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest blue component size
+ are preferred. Otherwise, color buffers with the
+ largest blue component of at least the specified
+ size are preferred. The default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BUFFER_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired color buffer size, in bits.
+ The smallest color buffers of at least the specified
+ size are preferred. The default value is zero.
+ </p>
+ <p>
+ The color buffer size is the sum of
+ <code class="constant">EGL_RED_SIZE</code>,
+ <code class="constant">EGL_GREEN_SIZE</code>,
+ <code class="constant">EGL_BLUE_SIZE</code>, and
+ <code class="constant">EGL_ALPHA_SIZE</code>, and does not
+ include any padding bits which may be present in the
+ pixel format. It is usually preferable to specify
+ desired sizes for these color components
+ individually.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_COLOR_BUFFER_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by one of
+ <code class="constant">EGL_RGB_BUFFER</code> or
+ <code class="constant">EGL_LUMINANCE_BUFFER</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_RGB_BUFFER</code> indicates
+ an RGB color buffer; in this case,
+ attributes <code class="constant">EGL_RED_SIZE</code>,
+ <code class="constant">EGL_GREEN_SIZE</code> and
+ <code class="constant">EGL_BLUE_SIZE</code> must be non-zero, and
+ <code class="constant">EGL_LUMINANCE_SIZE</code> must be zero.
+ </p>
+ <p>
+ <code class="constant">EGL_LUMINANCE_BUFFER</code> indicates a luminance color
+ buffer. In this case <code class="constant">EGL_RED_SIZE</code>,
+ <code class="constant">EGL_GREEN_SIZE</code>,
+ <code class="constant">EGL_BLUE_SIZE</code> must be zero, and
+ <code class="constant">EGL_LUMINANCE_SIZE</code> must be non-zero.
+ </p>
+ <p>
+ For both RGB and luminance color buffers,
+ <code class="constant">EGL_ALPHA_SIZE</code> may be zero or
+ non-zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_CAVEAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by
+ <code class="constant">EGL_DONT_CARE</code>,
+ <code class="constant">EGL_NONE</code>,
+ <code class="constant">EGL_SLOW_CONFIG</code>, or
+ <code class="constant">EGL_NON_CONFORMANT_CONFIG</code>.
+ </p>
+ <p>
+ If <code class="constant">EGL_DONT_CARE</code> is specified,
+ then configs are not matched for this attribute. The
+ default value is <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ <p>
+ If <code class="constant">EGL_NONE</code> is specified, then
+ configs are matched for this attribute, but only
+ configs with no caveats (neither
+ <code class="constant">EGL_SLOW_CONFIG</code> or
+ <code class="constant">EGL_NON_CONFORMANT_CONFIG</code>) will
+ be considered.
+ </p>
+ <p>
+ If <code class="constant">EGL_SLOW_CONFIG</code> is
+ specified, then only slow configs configurations
+ will be considered. The meaning of``slow'' is
+ implementation-dependent, but typically indicates a
+ non-hardware-accelerated (software) implementation.
+ </p>
+ <p>
+ If <code class="constant">EGL_NON_CONFORMANT_CONFIG</code> is
+ specified, then only configs supporting
+ non-conformant OpenGL ES contexts will be
+ considered.
+ </p>
+ <p>
+ If the EGL version is 1.3 or later, caveat
+ <code class="constant">EGL_NON_CONFORMANT_CONFIG</code> is
+ obsolete, since the same information can be
+ specified via the
+ <code class="constant">EGL_CONFORMANT</code> attribute on a
+ per-client-API basis, not just for OpenGL ES.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_ID</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a valid integer ID that
+ indicates the desired EGL frame buffer
+ configuration. When a
+ <code class="constant">EGL_CONFIG_ID</code> is specified, all
+ other attributes are ignored. The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ <p>
+ The meaning of config IDs is
+ implementation-dependent. They are used only to
+ uniquely identify different frame buffer
+ configurations.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFORMANT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a bitmask indicating which types
+ of client API contexts created with respect to the
+ frame buffer configuration config must pass the
+ required conformance tests for that API. Mask bits
+ include:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_OPENGL_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating OpenGL contexts.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_OPENGL_ES_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating OpenGL ES 1.0
+ and/or 1.1 contexts.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_OPENGL_ES2_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating OpenGL ES 2.0 contexts.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_OPENVG_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating OpenVG contexts.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ For example, if the bitmask is set to
+ <code class="constant">EGL_OPENGL_ES_BIT</code>, only frame
+ buffer configurations that support creating
+ conformant OpenGL ES contexts will match. The
+ default value is zero.
+ </p>
+ <p>
+ Most EGLConfigs should be conformant for all
+ supported client APIs, and it is rarely desirable to
+ select a nonconformant config. Conformance
+ requirements limit the number of non-conformant
+ configs that an implementation can define.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_DEPTH_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired depth buffer size, in bits.
+ The smallest depth buffers of at least the specified
+ size is preferred. If the desired size is zero,
+ frame buffer configurations with no depth buffer are
+ preferred. The default value is zero.
+ </p>
+ <p>
+ The depth buffer is used only by OpenGL and OpenGL
+ ES client APIs.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_GREEN_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the green component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest green component size
+ are preferred. Otherwise, color buffers with the
+ largest green component of at least the specified
+ size are preferred. The default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LEVEL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer buffer level
+ specification. This specification is honored
+ exactly. Buffer level zero corresponds to the
+ default frame buffer of the display. Buffer level
+ one is the first overlay frame buffer, level two the
+ second overlay frame buffer, and so on. Negative
+ buffer levels correspond to underlay frame buffers.
+ The default value is zero.
+ </p>
+ <p>
+ Most imlementations do not support overlay or
+ underlay planes (buffer levels other than zero).
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LUMINANCE_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the luminance
+ component of the color buffer, in bits. If this
+ value is zero, color buffers with the smallest
+ luminance component size are preferred. Otherwise,
+ color buffers with the largest luminance component
+ of at least the specified size are preferred. The
+ default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by the handle of a valid native
+ pixmap, cast to <span class="type">EGLint</span>, or
+ <code class="constant">EGL_NONE</code>. If the value is not
+ <code class="constant">EGL_NONE</code>, only configs which
+ support creating pixmap surfaces with this pixmap
+ using
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>
+ will match this attribute. If the value is
+ <code class="constant">EGL_NONE</code>, then configs are not
+ matched for this attribute. The default value is
+ <code class="constant">EGL_NONE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> was
+ introduced due to the difficulty of determining an
+ <span class="type">EGLConfig</span> compatibile with a native
+ pixmap using only color component sizes.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_NATIVE_RENDERABLE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by
+ <code class="constant">EGL_DONT_CARE</code>,
+ <code class="constant">EGL_TRUE</code>, or
+ <code class="constant">EGL_FALSE</code>.
+ If <code class="constant">EGL_TRUE</code> is specified, then
+ only frame buffer configurations that allow native
+ rendering into the surface will be considered. The
+ default value is <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MAX_SWAP_INTERVAL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a integer that indicates the
+ maximum value that can be passed to
+ <a class="citerefentry" href="eglSwapInterval.html"><span class="citerefentry"><span class="refentrytitle">eglSwapInterval</span></span></a>.
+ The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIN_SWAP_INTERVAL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a integer that indicates the
+ minimum value that can be passed to eglSwapInterval.
+ The default value is <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RED_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired size of the red component of
+ the color buffer, in bits. If this value is zero,
+ color buffers with the smallest red component size
+ are preferred. Otherwise, color buffers with the
+ largest red component of at least the specified size
+ are preferred. The default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SAMPLE_BUFFERS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by the minimum acceptable number of
+ multisample buffers. Configurations with the
+ smallest number of multisample buffers that meet or
+ exceed this minimum number are preferred. Currently
+ operation with more than one multisample buffer is
+ undefined, so only values of zero or one will
+ produce a match. The default value is zero.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SAMPLES</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by the minimum number of
+ samples required in multisample buffers.
+ Configurations with the smallest number of
+ samples that meet or exceed the specified
+ minimum number are preferred. Note that it is
+ possible for color samples in the multisample
+ buffer to have fewer bits than colors in the
+ main color buffers. However, multisampled
+ colors maintain at least as much color
+ resolution in aggregate as the main color
+ buffers.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_STENCIL_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a nonnegative integer that
+ indicates the desired stencil buffer size, in bits.
+ The smallest stencil buffers of at least the
+ specified size are preferred. If the desired size is
+ zero, frame buffer configurations with no stencil
+ buffer are preferred. The default value is zero.
+ </p>
+ <p>
+ The stencil buffer is used only by OpenGL and
+ OpenGL ES client APIs.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RENDERABLE_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a bitmask indicating which types
+ of client API contexts the frame buffer
+ configuration must support creating with
+ <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>).
+ Mask bits are the same as for attribute
+ <code class="constant">EGL_CONFORMANT</code>. The default
+ value is <code class="constant">EGL_OPENGL_ES_BIT</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SURFACE_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by a bitmask indicating which EGL
+ surface types and capabilities the frame buffer
+ configuration must support. Mask bits include:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config allows specifying box filtered
+ multisample resolve behavior with
+ <a class="citerefentry" href="eglSurfaceAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_PBUFFER_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating pixel buffer surfaces.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_PIXMAP_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating pixmap surfaces.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config allows setting swap behavior for
+ color buffers with
+ <a class="citerefentry" href="eglSurfaceAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config allows specifying OpenVG rendering
+ with premultiplied alpha values at surface
+ creation time (see
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ and
+ <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>).
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config allows specifying OpenVG rendering in
+ a linear colorspace at surface creation time
+ (see
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ and
+ <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>).
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_WINDOW_BIT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Config supports creating window surfaces.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ For example, if the bitmask is set to
+ <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
+ <mml:mi><code class="constant">EGL_WINDOW_BIT</code></mml:mi>
+ <mml:mo>|</mml:mo>
+ <mml:mi><code class="constant">EGL_PIXMAP_BIT</code></mml:mi>
+ </mml:math>,
+ only frame buffer configurations that support both
+ windows and pixmaps will be considered. The default
+ value is <code class="constant">EGL_WINDOW_BIT</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by one of
+ <code class="constant">EGL_NONE</code> or
+ <code class="constant">EGL_TRANSPARENT_RGB</code>. If
+ <code class="constant">EGL_NONE</code> is specified, then
+ only opaque frame buffer configurations will be
+ considered. If
+ <code class="constant">EGL_TRANSPARENT_RGB</code> is
+ specified, then only transparent frame buffer
+ configurations will be considered. The default value
+ is <code class="constant">EGL_NONE</code>.
+ </p>
+ <p>
+ Most implementations support only opaque frame
+ buffer configurations.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_RED_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer value indicating the
+ transparent red value. The value must be between
+ zero and the maximum color buffer value for red.
+ Only frame buffer configurations that use the
+ specified transparent red value will be considered.
+ The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ <p>
+ This attribute is ignored unless
+ <code class="constant">EGL_TRANSPARENT_TYPE</code> is included in
+ <em class="parameter"><code>attrib_list</code></em> and specified as
+ <code class="constant">EGL_TRANSPARENT_RGB</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_GREEN_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer value indicating the
+ transparent green value. The value must be between
+ zero and the maximum color buffer value for green.
+ Only frame buffer configurations that use the
+ specified transparent green value will be
+ considered. The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ <p>
+ This attribute is ignored unless
+ <code class="constant">EGL_TRANSPARENT_TYPE</code> is included in
+ <em class="parameter"><code>attrib_list</code></em> and specified as
+ <code class="constant">EGL_TRANSPARENT_RGB</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_BLUE_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer value indicating the
+ transparent blue value. The value must be between
+ zero and the maximum color buffer value for blue.
+ Only frame buffer configurations that use the
+ specified transparent blue value will be considered.
+ The default value is
+ <code class="constant">EGL_DONT_CARE</code>.
+ </p>
+ <p>
+ This attribute is ignored unless
+ <code class="constant">EGL_TRANSPARENT_TYPE</code> is included in
+ <em class="parameter"><code>attrib_list</code></em> and specified as
+ <code class="constant">EGL_TRANSPARENT_RGB</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ When more than one EGL frame buffer configuration matches
+ the specified attributes, a list of matching configurations
+ is returned. The list is sorted according to the following
+ precedence rules, which are applied in ascending order
+ (i.e., configurations that are considered equal by a lower
+ numbered rule are sorted by the higher numbered rule):
+ </p>
+ <div class="orderedlist">
+ <ol class="orderedlist" type="1">
+ <li class="listitem">
+ <p>
+ Special: by <code class="constant">EGL_CONFIG_CAVEAT</code>,
+ where the precedence is <code class="constant">EGL_NONE</code>,
+ <code class="constant">EGL_SLOW_CONFIG</code>, and
+ <code class="constant">EGL_NON_CONFORMANT_CONFIG</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Special: by <code class="constant">EGL_COLOR_BUFFER_TYPE</code>,
+ where the precedence is
+ <code class="constant">EGL_RGB_BUFFER</code>,
+ <code class="constant">EGL_LUMINANCE_BUFFER</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Special: by larger total number of color bits (for an
+ RGB color buffer, this is the sum of
+ <code class="constant">EGL_RED_SIZE</code>,
+ <code class="constant">EGL_GREEN_SIZE</code>,
+ <code class="constant">EGL_BLUE_SIZE</code>, and
+ <code class="constant">EGL_ALPHA_SIZE</code>; for a luminance
+ color buffer, the sum of
+ <code class="constant">EGL_LUMINANCE_SIZE</code> and
+ <code class="constant">EGL_ALPHA_SIZE</code>). If the requested
+ number of bits in <em class="parameter"><code>attrib_list</code></em> is
+ <code class="constant">0</code> or
+ <code class="constant">EGL_DONT_CARE</code> for a particular
+ color component, then the number of bits for that
+ component is not considered.
+ </p>
+ <p>
+ This sort rule places configs with deeper color buffers
+ before configs with shallower color buffers, which may
+ be counterintuitive.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_BUFFER_SIZE</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_SAMPLE_BUFFERS</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_SAMPLES</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_DEPTH_SIZE</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_STENCIL_SIZE</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_ALPHA_MASK_SIZE</code>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Special: <code class="constant">EGL_NATIVE_VISUAL_TYPE</code>
+ (the actual sort order is implementation-defined,
+ depending on the meaning of native visual types).
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Smaller <code class="constant">EGL_CONFIG_ID</code> (this is
+ always the last sorting rule, and guarantees a unique
+ ordering).
+ </p>
+ </li>
+ </ol>
+ </div>
+ <p>
+ <span class="type">EGLConfigs</span> are not sorted with respect to the
+ attributes <code class="constant">EGL_BIND_TO_TEXTURE_RGB</code>,
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGBA</code>,
+ <code class="constant">EGL_CONFORMANT</code>,
+ <code class="constant">EGL_LEVEL</code>,
+ <code class="constant">EGL_NATIVE_RENDERABLE</code>,
+ <code class="constant">EGL_MAX_SWAP_INTERVAL</code>,
+ <code class="constant">EGL_MIN_SWAP_INTERVAL</code>,
+ <code class="constant">EGL_RENDERABLE_TYPE</code>,
+ <code class="constant">EGL_SURFACE_TYPE</code>,
+ <code class="constant">EGL_TRANSPARENT_TYPE</code>,
+ <code class="constant">EGL_TRANSPARENT_RED_VALUE</code>,
+ <code class="constant">EGL_TRANSPARENT_GREEN_VALUE</code>, and
+ <code class="constant">EGL_TRANSPARENT_BLUE_VALUE</code>.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="examples"></a>
+ <h2>Examples</h2>
+ <p>
+ The following example specifies a frame buffer configuration
+ in the normal frame buffer (not an overlay or underlay). The
+ returned frame buffer configuration supports a color buffer
+ with at least 4 bits each of red, green and blue, and
+ possibly no alpha bits. The code shown in the example may or
+ may not have a depth buffer, or a stencil buffer.
+ </p>
+ <pre class="programlisting">EGLint const attrib_list[] = {
+ EGL_RED_SIZE, 4,
+ EGL_GREEN_SIZE, 4,
+ EGL_BLUE_SIZE, 4,
+ EGL_NONE
+};</pre>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ <code class="constant">EGL_RENDERABLE_TYPE</code> bit
+ <code class="constant">EGL_OPENGL_BIT</code>, and
+ <code class="constant">EGL_SURFACE_TYPE</code> bits
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX_BIT</code> and
+ <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code> are
+ supported only if the EGL version is 1.4 or greater.
+ </p>
+ <p>
+ <code class="constant">EGL_CONFORMANT</code>,
+ <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code>,
+ <code class="constant">EGL_RENDERABLE_TYPE</code> bit
+ <code class="constant">EGL_OPENGL_ES2_BIT</code>, and
+ <code class="constant">EGL_SURFACE_TYPE</code> bits
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> and
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR_BIT</code> are
+ supported only if the EGL version is 1.3 or greater.
+ </p>
+ <p>
+ <code class="constant">EGL_ALPHA_MASK_SIZE</code>,
+ <code class="constant">EGL_COLOR_BUFFER_TYPE</code>,
+ <code class="constant">EGL_LUMINANCE_SIZE</code>,
+ <code class="constant">EGL_RENDERABLE_TYPE</code>, and
+ <code class="constant">EGL_RENDERABLE_TYPE</code> bits
+ <code class="constant">EGL_OPENGL_ES_BIT</code> and
+ <code class="constant">EGL_OPENVG_BIT</code> are supported only if
+ the EGL version is 1.2 or greater.
+ </p>
+ <p>
+ If OpenGL or OpenGL ES rendering is supported for a
+ luminance color buffer, it is treated as RGB rendering with
+ the value of <code class="constant">GL_RED_BITS</code> equal to
+ <code class="constant">EGL_LUMINANCE_SIZE</code> and the values of
+ <code class="constant">GL_GREEN_BITS</code> and
+ <code class="constant">GL_BLUE_BITS</code> equal to zero. The red
+ component of fragments is written to the luminance channel
+ of the color buffer while the green and blue components are
+ discarded.
+ </p>
+ <p>
+ <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>
+ and
+ <a class="citerefentry" href="eglGetConfigAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>
+ can be used to implement selection algorithms other than the
+ generic one implemented by
+ <code class="function">eglChooseConfig</code>. Call
+ <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>
+ to retrieve all the frame buffer configurations, or
+ alternatively, all the frame buffer configurations with a
+ particular set of attributes. Next call
+ <a class="citerefentry" href="eglGetConfigAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>
+ to retrieve additional attributes for the frame buffer
+ configurations and then select between them.
+ </p>
+ <p>
+ EGL implementors are strongly discouraged, but not
+ proscribed, from changing the selection algorithm used by
+ <code class="function">eglChooseConfig</code>. Therefore, selections
+ may change from release to release of the client-side
+ library.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>configs</code></em> and
+ <em class="parameter"><code>num_config</code></em> are not modified when
+ <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attribute_list</code></em> contains an invalid frame buffer
+ configuration attribute or an
+ attribute value that is unrecognized or out of range.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>num_config</code></em> is <code class="constant">NULL</code>.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>,
+ <a class="citerefentry" href="eglSurfaceAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>,
+ <a class="citerefentry" href="eglSwapInterval.html"><span class="citerefentry"><span class="refentrytitle">eglSwapInterval</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCopyBuffers.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCopyBuffers.html
new file mode 100644
index 0000000..e24ff15
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCopyBuffers.html
@@ -0,0 +1,377 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglCopyBuffers</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglCopyBuffers"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglCopyBuffers</h1>
+ <p>
+ copy <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> surface color buffer to a native pixmap
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglCopyBuffers</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLSurface  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">surface</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>NativePixmapType  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">native_pixmap</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface whose color buffer is to be copied.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>native_pixmap</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the native pixmap as target of the copy.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCopyBuffers</code> copies the color buffer of
+ <em class="parameter"><code>surface</code></em> to <em class="parameter"><code>native_pixmap</code></em>.
+ </p>
+ <p>
+ <code class="function">eglCopyBuffers</code> performs an implicit
+ <a class="citerefentry" href="glFlush.html"><span class="citerefentry"><span class="refentrytitle">glFlush</span></span></a>
+ before it returns. Subsequent
+ GL commands may be issued immediately after calling
+ <code class="function">eglCopyBuffers</code>,
+ but are not executed until copying of the color buffer is completed.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ The color buffer of <em class="parameter"><code>surface</code></em> is left unchanged
+ after calling <code class="function">eglCopyBuffers</code>.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if swapping of the
+ surface buffers fails, <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL drawing surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_NATIVE_PIXMAP</code> is generated if
+ the implementation does not support native pixmaps.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_NATIVE_PIXMAP</code> may be generated if
+ <em class="parameter"><code>native_pixmap</code></em> is not a valid native pixmap.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ the format of <em class="parameter"><code>native_pixmap</code></em> is not compatible
+ with the color buffer of <em class="parameter"><code>surface</code></em>.
+ </p>
+ <p>
+ <code class="constant">EGL_CONTEXT_LOST</code> is generated if a power management
+ event has occurred. The application must destroy all contexts and
+ reinitialise OpenGL ES state and objects to continue rendering.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glFlush.html"><span class="citerefentry"><span class="refentrytitle">glFlush</span></span></a>,
+ <a class="citerefentry" href="eglSwapBuffers.html"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreateContext.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreateContext.html
new file mode 100644
index 0000000..55c317c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreateContext.html
@@ -0,0 +1,488 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglCreateContext</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglCreateContext"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglCreateContext</h1>
+ <p>
+ create a new <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> rendering context
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLContext <strong class="fsfunc">eglCreateContext</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLConfig  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">config</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLContext  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">share_context</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint const *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attrib_list</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the
+ <acronym class="acronym">EGL</acronym>
+ display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL frame buffer configuration that
+ defines the frame buffer resource available to the rendering context.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>share_context</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies another
+ <acronym class="acronym">EGL</acronym>
+ rendering context with which to share data, as
+ defined by the client API corresponding to the
+ contexts. Data is also shared with all other
+ contexts with which
+ <em class="parameter"><code>share_context</code></em> shares data.
+ <code class="constant">EGL_NO_CONTEXT</code> indicates that
+ no sharing is to take place.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies attributes and attribute values for the
+ context being created. Only the attribute
+ <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code> may
+ be specified.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreateContext</code> creates an EGL
+ rendering context for the current rendering API (as set with
+ <code class="function">eglBindAPI</code>) and returns a handle to the
+ context. The context can then be used to render into an EGL
+ drawing surface. If <code class="function">eglCreateContext</code>
+ fails to create a rendering context,
+ <code class="constant">EGL_NO_CONTEXT</code> is returned.
+ </p>
+ <p>
+ If <em class="parameter"><code>share_context</code></em> is not
+ <code class="constant">EGL_NO_CONTEXT</code>, then all shareable data
+ in the context (as defined by the client API specification
+ for the current rendering API) are shared by context
+ <em class="parameter"><code>share_context</code></em>, all other contexts
+ <em class="parameter"><code>share_context</code></em> already shares with,
+ and the newly created context. An arbitrary number of
+ rendering contexts can share data. However, all rendering
+ contexts that share data must themselves exist in the same
+ address space. Two rendering contexts share an address space
+ if both are owned by a single process.
+ </p>
+ <p>
+ <em class="parameter"><code>attrib_list</code></em> specifies a list of
+ attributes for the context. The list has the same structure
+ as described for <code class="function">eglChooseConfig</code>. The
+ attributes and attribute values which may be specified are
+ as follows:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Must be followed by an integer that determines which
+ version of an OpenGL ES context to create. A value
+ of 1 specifies creation of an OpenGL ES 1.x context.
+ An attribute value of 2 specifies creation of an
+ OpenGL ES 2.x context. The default value is 1. This
+ attribute can only be specified when creating a
+ OpenGL ES context (e.g. when the current rendering
+ API is <code class="constant">EGL_OPENGL_ES_API</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ The current rendering API is only respected if the EGL
+ version is 1.2 or greater. Otherwise, an OpenGL ES context
+ will always be created.
+ </p>
+ <p>
+ The <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code>
+ attribute is only supported if the EGL version is 1.3 or
+ greater.
+ </p>
+ <p>
+ A <em class="firstterm">process</em> is a single execution environment,
+ implemented in a single address space, consisting of one or more threads.
+ </p>
+ <p>
+ A <em class="firstterm">thread</em> is one of a set of subprocesses that
+ share a single address space, but maintain separate program counters,
+ stack spaces, and other related global data.
+ A thread is the only member of its subprocess group is equivalent to a
+ process.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_NO_CONTEXT</code> is returned if creation of
+ the context fails.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ current rendering API is <code class="constant">EGL_NONE</code> (this
+ can only arise in an EGL implementation which does not
+ support OpenGL ES, prior to the first call to
+ <code class="function">eglBindAPI</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ server context state for
+ <em class="parameter"><code>share_context</code></em> exists in an address
+ space which cannot be shared with the newly created context,
+ if <em class="parameter"><code>share_context</code></em> was created on a
+ different display than the one referenced by
+ <em class="parameter"><code>config</code></em>, or if the contexts are
+ otherwise incompatible.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONFIG</code> is generated if
+ <em class="parameter"><code>config</code></em> is not an EGL frame buffer
+ configuration, or does not support the current rendering
+ API. This includes requesting creation of an OpenGL ES 1.x
+ context when the <code class="constant">EGL_RENDERABLE_TYPE</code>
+ attribute of <em class="parameter"><code>config</code></em> does not contain
+ <code class="constant">EGL_OPENGL_ES_BIT</code>, or creation of an
+ OpenGL ES 2.x context when the attribute does not contain
+ <code class="constant">EGL_OPENGL_ES2_BIT</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONTEXT</code> is generated if
+ <em class="parameter"><code>share_context</code></em> is not an EGL rendering
+ context of the same client API type as the newly created
+ context and is not <code class="constant">EGL_NO_CONTEXT</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains an invalid
+ context attribute or if an attribute is not recognized or
+ out of range. Note that attribute
+ <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code> is
+ only valid when the current rendering API is
+ <code class="constant">EGL_OPENGL_ES_API</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
+ enough resources to allocate the new context.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglDestroyContext.html"><span class="citerefentry"><span class="refentrytitle">eglDestroyContext</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePbufferFromClientBuffer.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePbufferFromClientBuffer.html
new file mode 100644
index 0000000..29fadf5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePbufferFromClientBuffer.html
@@ -0,0 +1,669 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglCreatePbufferFromClientBuffer</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglCreatePbufferFromClientBuffer"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglCreatePbufferFromClientBuffer</h1>
+ <p>
+ create a new <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> pixel buffer surface
+ bound to an OpenVG image
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLSurface <strong class="fsfunc">eglCreatePbufferFromClientBuffer</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLenum  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">buftype</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLClientBuffer  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">buffer</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLConfig  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">config</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint const *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attrib_list</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>buftype</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the type of client API buffer to be bound.
+ Must be <code class="constant">EGL_OPENVG_IMAGE</code>,
+ corresponding to an OpenVG <span class="type">VGImage</span>
+ buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>buffer</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the OpenVG <span class="type">VGImage</span> handle of
+ the buffer to be bound.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies pixel buffer surface attributes.
+ May be <code class="constant">NULL</code> or empty
+ (first attribute is <code class="constant">EGL_NONE</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreatePbufferFromClientBuffer</code> creates an
+ off-screen pixel buffer surface and returns its handle. If
+ <code class="function">eglCreatePbufferFromClientBuffer</code> fails to create
+ a pixel buffer surface, <code class="constant">EGL_NO_SURFACE</code>
+ is returned.
+ </p>
+ <p>
+ The new pixel buffer surface is similar to a pixel buffer
+ created with
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ but storage for the color buffer is provided by a client API
+ buffer. Other buffer required by
+ <em class="parameter"><code>config</code></em>, such as depth, stencil, and
+ alpha mask, are allocated by EGL.
+ </p>
+ <p>
+ <em class="parameter"><code>buftype</code></em> must be
+ <code class="constant">EGL_OPENVG_IMAGE</code>, corresponding to an
+ OpenVG <span class="type">VGImage</span> buffer.
+ <em class="parameter"><code>buffer</code></em> must be a valid
+ <span class="type">VGImage</span> handle in the current OpenVG context,
+ cast into the type <span class="type">EGLClientBuffer</span>.
+ </p>
+ <p>
+ The height, width,, OpenVG alpha format, and OpenVG
+ colorspace (surface attributes
+ <code class="constant">EGL_HEIGHT</code>,
+ <code class="constant">EGL_WIDTH</code>,
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>, and
+ <code class="constant">EGL_VG_COLORSPACE</code>, respectively) of the
+ resulting surface are determined by the size and format of
+ <em class="parameter"><code>buffer</code></em>.
+ </p>
+ <p>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <code class="constant">EGL_NONE</code>. Accepted attributes are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIPMAP_TEXTURE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies whether storage for mipmaps should be
+ allocated. Space for mipmaps will be set aside if
+ the attribute value is <code class="constant">EGL_TRUE</code>
+ and <code class="constant">EGL_TEXTURE_FORMAT</code> is not
+ <code class="constant">EGL_NO_TEXTURE</code>. The default
+ value is <code class="constant">EGL_FALSE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the format of the texture that will be
+ created when a pbuffer is bound to a texture map.
+ Possible values are
+ <code class="constant">EGL_NO_TEXTURE</code>,
+ <code class="constant">EGL_TEXTURE_RGB</code>, and
+ <code class="constant">EGL_TEXTURE_RGBA</code>. The default
+ value is <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_TARGET</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the target for the texture that will be
+ created when the pbuffer is created with a texture
+ format of <code class="constant">EGL_TEXTURE_RGB</code> or
+ <code class="constant">EGL_TEXTURE_RGBA</code>. Possible
+ values are <code class="constant">EGL_NO_TEXTURE</code>, or
+ <code class="constant">EGL_TEXTURE_2D</code>. The default
+ value is <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ Any EGL rendering context that was created with respect to
+ <em class="parameter"><code>config</code></em> can be used to render into the
+ surface. Use
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ to attach an EGL rendering context to the surface.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ to retrieve the dimensions of the allocated pixel buffer
+ surface or the ID of <em class="parameter"><code>config</code></em>.
+ </p>
+ <p>
+ Use <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+ to destroy the surface.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglCreatePbufferFromClientBuffer</code> is
+ supported only if the EGL version is 1.2 or greater, and if
+ the EGL implementation supports the OpenVG client API.
+ </p>
+ <p>
+ Currently
+ <code class="function">eglCreatePbufferFromClientBuffer</code> only
+ supports binding OpenVG <span class="type">VGImage</span> buffers to
+ pixel buffers. While other client API resources could be
+ supported in the future, mechanisms such as OpenGL ES
+ framebuffer objects, and the family of EGL and client API
+ extensions for defining and using <span class="type">EGLImageKHR</span>
+ images, are a more flexible and general framework to satisfy
+ most of the same needs.
+ </p>
+ <p>
+ If the value of <em class="parameter"><code>config</code></em> attribute
+ <code class="constant">EGL_TEXTURE_FORMAT</code> is not
+ <code class="constant">EGL_NO_TEXTURE</code>, then the pbuffer width
+ and height specify the size of the level zero texture image
+ </p>
+ <p>
+ If <code class="constant">EGL_LARGEST_PBUFFER</code> is specified and
+ if the pbuffer will be used as a texture (i.e. the value of
+ <code class="constant">EGL_TEXTURE_TARGET</code> is
+ <code class="constant">EGL_TEXTURE_2D</code>, and the value of
+ <code class="constant">EGL_TEXTURE FORMAT</code> is
+ <code class="constant">EGL_TEXTURE_RGB</code> or
+ <code class="constant">EGL_TEXTURE_RGBA</code>), then the aspect
+ ratio will be preserved and the new width and height will be
+ valid sizes for the texture target (e.g. if the underlying
+ OpenGL ES implementation does not support non-power-of-two
+ textures, both the width and height will be a power of 2).
+ </p>
+ <p>
+ The contents of the depth and stencil buffers may not be
+ preserved when rendering a texture to the pbuffer and
+ switching which image of the texture is rendered to (e.g.,
+ switching from rendering one mipmap level to rendering
+ another).
+ </p>
+ <p>
+ Binding client API buffers to EGL pbuffers create the
+ possibility of race conditions, and of buffers being deleted
+ through one API while still in use in another API. To avoid
+ these problems, a number of constraints apply to bound
+ client API buffers:
+ </p>
+ <div class="orderedlist">
+ <ol class="orderedlist" type="1">
+ <li class="listitem">
+ <p>
+ Bound buffers may be used exclusively by either EGL,
+ or the client API that originally created them. For
+ example, if a <span class="type">VGImage</span> is bound to a
+ pbuffer, and that pbuffer is bound to any client API
+ rendering context, then the <span class="type">VGImage</span> may
+ not be used as the explicit source or destination of
+ any OpenVG operation. Errors resulting from such use
+ are described in client API specifications.
+ Similarly, while a <span class="type">VGImage</span> is in use by
+ OpenVG, the pbuffer it is bound to may not be made
+ current to any client API context using
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Binding a buffer creates an additional reference to
+ it, and implementations must respect outstanding
+ references when destroying objects. For example, if
+ a <span class="type">VGImage</span> is bound to a pbuffer,
+ destroying the image with
+ <code class="function">vgDestroyImage</code> will not free
+ the underlying buffer, because it is still in use by
+ EGL. However, following
+ <code class="function">vgDestroyImage</code> the buffer may
+ only be referred to via the EGL pbuffer handle,
+ since the OpenVG handle to that buffer no longer
+ exists. Similarly, destroying the pbuffer with
+ <code class="function">eglDestroySurface</code> will not free
+ the underlying buffer, because it is still in use by
+ OpenVG . However, following
+ <code class="function">eglDestroySurface</code> the buffer
+ may only be referred to via the OpenVG
+ <span class="type">VGImage</span> handle, since the EGL pbuffer
+ handle no longer exists.
+ </p>
+ </li>
+ </ol>
+ </div>
+ <p>
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
+ the context fails.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONFIG</code> is generated if
+ <em class="parameter"><code>config</code></em> is not an EGL frame buffer configuration.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>buftype</code></em> is not
+ <code class="constant">EGL_OPENVG_IMAGE</code>, or if
+ <em class="parameter"><code>buffer</code></em> is not a valid handle to a
+ <span class="type">VGImage</span> object in the currently bound OpenVG
+ context.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ACCESS</code> is generated if there is
+ no current OpenVG context, or if
+ <em class="parameter"><code>buffer</code></em> is already bound to another
+ pixel buffer or in use by OpenVG as discussed in the Notes
+ section above.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
+ enough resources to allocate the new surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains an invalid pixel
+ buffer attribute or if an attribute value is not recognized
+ or out of range.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains any of the
+ attributes <code class="constant">EGL_MIPMAP_TEXTURE</code>,
+ <code class="constant">EGL_TEXTURE_FORMAT</code>, or
+ <code class="constant">EGL_TEXTURE_TARGET</code>, and
+ <em class="parameter"><code>config</code></em> does not support OpenGL ES
+ rendering (e.g. the EGL version is 1.2 or later, and the
+ <code class="constant">EGL_RENDERABLE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em> does not include at least one
+ of <code class="constant">EGL_OPENGL_ES_BIT</code> or
+ <code class="constant">EGL_OPENGL_ES2_BIT</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>config</code></em> does not support rendering to pixel buffers
+ (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain
+ <code class="constant">EGL_PBUFFER_BIT</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ buffers contained in <em class="parameter"><code>buffer</code></em> do not
+ match the bit depths for those buffers specified by
+ <em class="parameter"><code>config</code></em>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ <code class="constant">EGL_TEXTURE_FORMAT</code> attribute is not
+ <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_WIDTH</code> and/or
+ <code class="constant">EGL_HEIGHT</code> specify an invalid size
+ (e.g., the texture size is not a power of 2, and the
+ underlying OpenGL ES implementation does not support
+ non-power-of-two textures).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ the <code class="constant">EGL_TEXTURE_FORMAT</code> attribute is
+ <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_TEXTURE_TARGET</code> is something other
+ than <code class="constant">EGL_NO_TEXTURE</code>; or,
+ <code class="constant">EGL_TEXTURE_FORMAT</code> is something other
+ than <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_TEXTURE_TARGET</code> is
+ <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ implementation has additional constraints on which types of
+ client API buffers may be bound to pixel buffer surfaces.
+ For example, it is possible that the OpenVG implementation
+ might not support a <span class="type">VGImage</span> being bound to a
+ pixel buffer which will be used as a mipmapped OpenGL ES
+ texture (e.g. whose <code class="constant">EGL_MIPMAP_TEXTURE</code>
+ attribute is <code class="constant">TRUE</code>). Any such
+ constraints should be documented by the implementation
+ release notes.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePbufferSurface.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePbufferSurface.html
new file mode 100644
index 0000000..c99115a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePbufferSurface.html
@@ -0,0 +1,605 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglCreatePbufferSurface</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglCreatePbufferSurface"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglCreatePbufferSurface</h1>
+ <p>
+ create a new <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> pixel buffer surface
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLSurface <strong class="fsfunc">eglCreatePbufferSurface</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLConfig  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">config</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint const *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attrib_list</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies pixel buffer surface attributes.
+ May be <code class="constant">NULL</code> or empty
+ (first attribute is <code class="constant">EGL_NONE</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreatePbufferSurface</code> creates an
+ off-screen pixel buffer surface and returns its handle. If
+ <code class="function">eglCreatePbufferSurface</code> fails to create
+ a pixel buffer surface, <code class="constant">EGL_NO_SURFACE</code>
+ is returned.
+ </p>
+ <p>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <code class="constant">EGL_NONE</code>. Accepted attributes
+ are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_HEIGHT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the required height of the pixel buffer
+ surface. The default value is
+ <code class="constant">0</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LARGEST_PBUFFER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Requests the largest available pixel buffer surface
+ when the allocation would otherwise fail. Use
+ <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ to retrieve the dimensions of the allocated pixel
+ buffer. The default value is
+ <code class="constant">EGL_FALSE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIPMAP_TEXTURE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies whether storage for mipmaps should be
+ allocated. Space for mipmaps will be set aside if
+ the attribute value is <code class="constant">EGL_TRUE</code>
+ and <code class="constant">EGL_TEXTURE_FORMAT</code> is not
+ <code class="constant">EGL_NO_TEXTURE</code>. The default
+ value is <code class="constant">EGL_FALSE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the format of the texture that will be
+ created when a pbuffer is bound to a texture map.
+ Possible values are
+ <code class="constant">EGL_NO_TEXTURE</code>,
+ <code class="constant">EGL_TEXTURE_RGB</code>, and
+ <code class="constant">EGL_TEXTURE_RGBA</code>. The default
+ value is <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_TARGET</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the target for the texture that will be
+ created when the pbuffer is created with a texture
+ format of <code class="constant">EGL_TEXTURE_RGB</code> or
+ <code class="constant">EGL_TEXTURE_RGBA</code>. Possible
+ values are <code class="constant">EGL_NO_TEXTURE</code>, or
+ <code class="constant">EGL_TEXTURE_2D</code>. The default
+ value is <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>,
+ then alpha values are not premultipled. If its value
+ is <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>,
+ then alpha values are premultiplied. The default
+ value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_COLORSPACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_s*</code>. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>, then
+ a linear color space is assumed, with a
+ corresponding <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_l*</code>. The default value of
+ <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_WIDTH</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the required width of the pixel buffer
+ surface. The default value is
+ <code class="constant">0</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ Any EGL rendering context that was created with respect to
+ <em class="parameter"><code>config</code></em> can be used to render into the
+ surface. Use
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ to attach an EGL rendering context to the surface.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ to retrieve the dimensions of the allocated pixel buffer
+ surface or the ID of <em class="parameter"><code>config</code></em>.
+ </p>
+ <p>
+ Use <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+ to destroy the surface.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ Attributes
+ <code class="constant">EGL_RENDERABLE_TYPE</code>,
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>, and
+ <code class="constant">EGL_VG_COLORSPACE</code>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ If the value of <em class="parameter"><code>config</code></em> attribute
+ <code class="constant">EGL_TEXTURE_FORMAT</code> is not
+ <code class="constant">EGL_NO_TEXTURE</code>, then the pbuffer width
+ and height specify the size of the level zero texture image
+ </p>
+ <p>
+ If <code class="constant">EGL_LARGEST_PBUFFER</code> is specified and
+ if the pbuffer will be used as a texture (i.e. the value of
+ <code class="constant">EGL_TEXTURE_TARGET</code> is
+ <code class="constant">EGL_TEXTURE_2D</code>, and the value of
+ <code class="constant">EGL_TEXTURE FORMAT</code> is
+ <code class="constant">EGL_TEXTURE_RGB</code> or
+ <code class="constant">EGL_TEXTURE_RGBA</code>), then the aspect
+ ratio will be preserved and the new width and height will be
+ valid sizes for the texture target (e.g. if the underlying
+ OpenGL ES implementation does not support non-power-of-two
+ textures, both the width and height will be a power of 2).
+ </p>
+ <p>
+ The contents of the depth and stencil buffers may not be
+ preserved when rendering a texture to the pbuffer and
+ switching which image of the texture is rendered to (e.g.,
+ switching from rendering one mipmap level to rendering
+ another).
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
+ the context fails.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONFIG</code> is generated if
+ <em class="parameter"><code>config</code></em> is not an EGL frame buffer configuration.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains an invalid pixel
+ buffer attribute or if an attribute value is not recognized
+ or out of range.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains any of the
+ attributes <code class="constant">EGL_MIPMAP_TEXTURE</code>,
+ <code class="constant">EGL_TEXTURE_FORMAT</code>, or
+ <code class="constant">EGL_TEXTURE_TARGET</code>, and
+ <em class="parameter"><code>config</code></em> does not support OpenGL ES
+ rendering (e.g. the EGL version is 1.2 or later, and the
+ <code class="constant">EGL_RENDERABLE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em> does not include at least one
+ of <code class="constant">EGL_OPENGL_ES_BIT</code> or
+ <code class="constant">EGL_OPENGL_ES2_BIT</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
+ enough resources to allocate the new surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>config</code></em> does not support rendering to pixel buffers
+ (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain
+ <code class="constant">EGL_PBUFFER_BIT</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ <code class="constant">EGL_TEXTURE_FORMAT</code> attribute is not
+ <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_WIDTH</code> and/or
+ <code class="constant">EGL_HEIGHT</code> specify an invalid size
+ (e.g., the texture size is not a power of 2, and the
+ underlying OpenGL ES implementation does not support
+ non-power-of-two textures).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ the <code class="constant">EGL_TEXTURE_FORMAT</code> attribute is
+ <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_TEXTURE_TARGET</code> is something other
+ than <code class="constant">EGL_NO_TEXTURE</code>; or,
+ <code class="constant">EGL_TEXTURE_FORMAT</code> is something other
+ than <code class="constant">EGL_NO_TEXTURE</code>, and
+ <code class="constant">EGL_TEXTURE_TARGET</code> is
+ <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>config</code></em> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code> and the
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>) or colorspace attribute (the
+ value of <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code> and the
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR_IT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>).
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePixmapSurface.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePixmapSurface.html
new file mode 100644
index 0000000..5f35de9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreatePixmapSurface.html
@@ -0,0 +1,494 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglCreatePixmapSurface</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglCreatePixmapSurface"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglCreatePixmapSurface</h1>
+ <p>
+ create a new <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> pixmap surface
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLSurface <strong class="fsfunc">eglCreatePixmapSurface</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLConfig  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">config</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>NativePixmapType  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">native_pixmap</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint const *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attrib_list</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>native_pixmap</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the native pixmap.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies pixmap surface attributes.
+ May be <code class="constant">NULL</code> or empty
+ (first attribute is <code class="constant">EGL_NONE</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreatePixmapSurface</code> creates an
+ off-screen <acronym class="acronym">EGL</acronym> pixmap surface and returns
+ its handle. If <code class="function">eglCreatePixmapSurface</code>
+ fails to create a pixmap surface,
+ <code class="constant">EGL_NO_SURFACE</code> is returned.
+ </p>
+ <p>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <code class="constant">EGL_NONE</code>. Accepted attributes
+ are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>,
+ then alpha values are not premultipled. If its value
+ is <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>,
+ then alpha values are premultiplied. The default
+ value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_COLORSPACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_s*</code>. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>, then
+ a linear color space is assumed, with a
+ corresponding <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_l*</code>. The default value of
+ <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ Any EGL rendering context that was created with respect to
+ <em class="parameter"><code>config</code></em> can be used to render into the
+ surface. Use
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ to attach an EGL rendering context to the surface.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ to retrieve the ID of <em class="parameter"><code>config</code></em>.
+ </p>
+ <p>
+ Use <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+ to destroy the surface.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ The <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> attribute
+ of
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>
+ can be used to select a frame buffer configuration matching
+ a specified native pixmap.
+ </p>
+ <p>
+ Attributes
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
+ <code class="constant">EGL_VG_COLORSPACE</code>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ The <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
+ <code class="constant">EGL_VG_COLORSPACE</code> attributes are used
+ only by OpenVG. EGL itself, and other client APIs such as
+ OpenGL and OpenGL ES , do not distinguish multiple
+ colorspace models. Refer to section 11.2 of the OpenVG 1.0
+ specification for more information. The native window
+ system's use and interpretation of alpha values is outside
+ the scope of EGL, although the preferred behavior is for the
+ window system to ignore the value of
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
+ the context fails.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONFIG</code> is generated if
+ <em class="parameter"><code>config</code></em> is not an EGL config.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_NATIVE_PIXMAP</code> may be generated if
+ <em class="parameter"><code>native_pixmap</code></em> is not a valid native pixmap.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains an invalid pixmap attribute
+ or if an attribute value is not recognized or out of range.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
+ enough resources to allocate the new surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the attributes of
+ <em class="parameter"><code>native_pixmap</code></em> do not correspond to
+ <em class="parameter"><code>config</code></em> or if
+ <em class="parameter"><code>config</code></em> does not support rendering to pixmaps
+ (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain
+ <code class="constant">EGL_PIXMAP_BIT</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>config</code></em> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code> and the
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>) or colorspace attribute (the
+ value of <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code> and the
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR_IT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>).
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreateWindowSurface.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreateWindowSurface.html
new file mode 100644
index 0000000..12daff3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglCreateWindowSurface.html
@@ -0,0 +1,512 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglCreateWindowSurface</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglCreateWindowSurface"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglCreateWindowSurface</h1>
+ <p>
+ create a new <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> window surface
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLSurface <strong class="fsfunc">eglCreateWindowSurface</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLConfig  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">config</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>NativeWindowType  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">native_window</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint const *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attrib_list</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL frame buffer configuration that defines the
+ frame buffer resource available to the surface.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>native_window</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the native window.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attrib_list</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies window surface attributes.
+ May be <code class="constant">NULL</code> or empty
+ (first attribute is <code class="constant">EGL_NONE</code>).
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglCreateWindowSurface</code> creates an EGL
+ window surface and returns its handle. If
+ <code class="function">eglCreateWindowSurface</code> fails to create
+ a window surface, <code class="constant">EGL_NO_SURFACE</code> is
+ returned.
+ </p>
+ <p>
+ Surface attributes are specified as a list of
+ attribute-value pairs, terminated with
+ <code class="constant">EGL_NONE</code>. Accepted attributes
+ are:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RENDER_BUFFER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies which buffer should be used for client API
+ rendering to the window. If its value is
+ <code class="constant">EGL_SINGLE_BUFFER</code>, then client
+ APIs should render directly into the visible window.
+ If its value is
+ <code class="constant">EGL_BACK_BUFFER</code>, then client
+ APIs should render into the back buffer. The default
+ value of <code class="constant">EGL_RENDER_BUFFER</code> is
+ <code class="constant">EGL_BACK_BUFFER</code>.
+ </p>
+ <p>
+ Client APIs may not be able to respect the requested
+ rendering buffer. To determine the actual buffer
+ being rendered to by a context, call
+ <a class="citerefentry" href="eglQueryContext.html"><span class="citerefentry"><span class="refentrytitle">eglQueryContext</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies how alpha values are interpreted by OpenVG
+ when rendering to the surface. If its value is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>,
+ then alpha values are not premultipled. If its value
+ is <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code>,
+ then alpha values are premultiplied. The default
+ value of <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_NONPRE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VG_COLORSPACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the color space used by OpenVG when
+ rendering to the surface. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>, then a
+ non-linear, perceptually uniform color space is
+ assumed, with a corresponding
+ <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_s*</code>. If its value is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code>, then
+ a linear color space is assumed, with a
+ corresponding <span class="type">VGImageFormat</span> of form
+ <code class="constant">VG_l*</code>. The default value of
+ <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_sRGB</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ Any EGL rendering context that was created with respect to
+ <em class="parameter"><code>config</code></em> can be used to render into the
+ surface. Use
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ to attach an EGL rendering context to the surface.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ to retrieve the ID of <em class="parameter"><code>config</code></em>.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+ to destroy the surface.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ Attributes <code class="constant">EGL_RENDER_BUFFER</code>,
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code>, and
+ <code class="constant">EGL_VG_COLORSPACE</code>, and the
+ corresponding attribute values, are supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ The <code class="constant">EGL_VG_ALPHA_FORMAT</code> and
+ <code class="constant">EGL_VG_COLORSPACE</code> attributes are used
+ only by OpenVG. EGL itself, and other client APIs such as
+ OpenGL and OpenGL ES , do not distinguish multiple
+ colorspace models. Refer to section 11.2 of the OpenVG 1.0
+ specification for more information. The native window
+ system's use and interpretation of alpha values is outside
+ the scope of EGL, although the preferred behavior is for the
+ window system to ignore the value of
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code> when compositing
+ window surfaces.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_NO_SURFACE</code> is returned if creation of
+ the context fails.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONFIG</code> is generated if
+ <em class="parameter"><code>config</code></em> is not an EGL frame buffer configuration.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_NATIVE_WINDOW</code> may be generated if
+ <em class="parameter"><code>native_window</code></em> is not a valid native window.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attrib_list</code></em> contains an invalid window attribute
+ or if an attribute value is not recognized or is out of range.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> is generated if there are not
+ enough resources to allocate the new surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the attributes of
+ <em class="parameter"><code>native_window</code></em> do not correspond to
+ <em class="parameter"><code>config</code></em> or if
+ <em class="parameter"><code>config</code></em> does not support rendering to windows
+ (the <code class="constant">EGL_SURFACE_TYPE</code> attribute does not contain
+ <code class="constant">EGL_WINDOW_BIT</code>).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>config</code></em> does not support the specified
+ OpenVG alpha format attribute (the value of
+ <code class="constant">EGL_VG_ALPHA_FORMAT</code> is
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE</code> and the
+ <code class="constant">EGL_VG_ALPHA_FORMAT_PRE_BIT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>) or colorspace attribute (the
+ value of <code class="constant">EGL_VG_COLORSPACE</code> is
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR</code> and the
+ <code class="constant">EGL_VG_COLORSPACE_LINEAR_IT</code> is not set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of
+ <em class="parameter"><code>config</code></em>).
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglDestroyContext.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglDestroyContext.html
new file mode 100644
index 0000000..b7be78e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglDestroyContext.html
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglDestroyContext</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglDestroyContext"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglDestroyContext</h1>
+ <p>
+ destroy an <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> rendering context
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglDestroyContext</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLContext  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">context</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>context</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL rendering context to be destroyed.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ If the EGL rendering context <em class="parameter"><code>context</code></em> is not
+ current to any thread,
+ <code class="function">eglDestroyContext</code> destroys it immediately.
+ Otherwise, <em class="parameter"><code>context</code></em> is destroyed when it becomes
+ not current to any thread.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if destruction of
+ the context fails, <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONTEXT</code> is generated if
+ <em class="parameter"><code>context</code></em> is not an EGL rendering context.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglDestroySurface.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglDestroySurface.html
new file mode 100644
index 0000000..c2b6a96
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglDestroySurface.html
@@ -0,0 +1,329 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglDestroySurface</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglDestroySurface"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglDestroySurface</h1>
+ <p>
+ destroy an <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> surface
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglDestroySurface</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLSurface  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">surface</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL surface to be destroyed.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ If the EGL surface <em class="parameter"><code>surface</code></em> is not current to any
+ thread, <code class="function">eglDestroySurface</code> destroys it immediately.
+ Otherwise, <em class="parameter"><code>surface</code></em> is destroyed when it becomes
+ not current to any thread.
+ Furthermore, resources associated with a pbuffer surface are not released until
+ all color buffers of that pbuffer bound to a texture object have been released.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if destruction of
+ the surface fails, <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL surface.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a> </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetConfigAttrib.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetConfigAttrib.html
new file mode 100644
index 0000000..376550a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetConfigAttrib.html
@@ -0,0 +1,715 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglGetConfigAttrib</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglGetConfigAttrib"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglGetConfigAttrib</h1>
+ <p>
+ return information about an <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> frame buffer
+ configuration
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglGetConfigAttrib</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLConfig  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">config</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attribute</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">value</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL frame buffer configuration to be
+ queried.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attribute</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL rendering context attribute to be
+ returned.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>value</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the requested value.</p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetConfigAttrib</code> returns in
+ <em class="parameter"><code>value</code></em> the value of
+ <em class="parameter"><code>attribute</code></em> for
+ <em class="parameter"><code>config</code></em>
+ (config attributes are described in more detail in the
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>
+ reference page).
+ <em class="parameter"><code>attribute</code></em> can be one of the following:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_ALPHA_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits of alpha stored in the
+ color buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_ALPHA_MASK_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the number of bits in the alpha mask buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGB</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns <code class="constant">EGL_TRUE</code> if color buffers can be
+ bound to an RGB texture,
+ <code class="constant">EGL_FALSE</code> otherwise.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BIND_TO_TEXTURE_RGBA</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns <code class="constant">EGL_TRUE</code> if color buffers can be
+ bound to an RGBA texture,
+ <code class="constant">EGL_FALSE</code> otherwise.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BLUE_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits of blue stored in the
+ color buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BUFFER_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the depth of the color buffer.
+ It is the sum of
+ <code class="constant">EGL_RED_SIZE</code>,
+ <code class="constant">EGL_GREEN_SIZE</code>,
+ <code class="constant">EGL_BLUE_SIZE</code>, and
+ <code class="constant">EGL_ALPHA_SIZE</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_COLOR_BUFFER_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the color buffer type. Possible types are
+ <code class="constant">EGL_RGB_BUFFER</code> and
+ <code class="constant">EGL_LUMINANCE_BUFFER</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_CAVEAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the caveats for the frame buffer configuration.
+ Possible caveat values are
+ <code class="constant">EGL_NONE</code>,
+ <code class="constant">EGL_SLOW_CONFIG</code>, and
+ <code class="constant">EGL_NON_CONFORMANT</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_ID</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the ID of the frame buffer configuration.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFORMANT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a bitmask indicating which client API contexts
+ created with respect to this config are conformant.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_DEPTH_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits in the depth buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_GREEN_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits of green stored in the
+ color buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LEVEL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the frame buffer level.
+ Level zero is the default frame buffer.
+ Positive levels correspond to frame buffers that overlay the default
+ buffer and negative levels correspond to frame buffers that underlay
+ the default buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LUMINANCE_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the number of bits of luminance stored in the luminance buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MAX_PBUFFER_WIDTH</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the maximum width of a pixel buffer surface in pixels.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MAX_PBUFFER_HEIGHT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the maximum height of a pixel buffer surface in pixels.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MAX_PBUFFER_PIXELS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the maximum size of a pixel buffer surface in pixels.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MAX_SWAP_INTERVAL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the maximum value that can be passed to eglSwapInterval.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIN_SWAP_INTERVAL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the minimum value that can be passed to eglSwapInterval.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_NATIVE_RENDERABLE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns <code class="constant">EGL_TRUE</code> if native rendering
+ APIs can render into the surface,
+ <code class="constant">EGL_FALSE</code> otherwise.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_NATIVE_VISUAL_ID</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the ID of the associated native visual.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_NATIVE_VISUAL_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the type of the associated native visual.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RED_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits of red stored in the
+ color buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RENDERABLE_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a bitmask indicating the types of supported
+ client API contexts.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SAMPLE_BUFFERS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of multisample buffers.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SAMPLES</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of samples per pixel.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_STENCIL_SIZE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of bits in the stencil buffer.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SURFACE_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a bitmask indicating the types of supported EGL
+ surfaces.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the type of supported transparency.
+ Possible transparency values are:
+ <code class="constant">EGL_NONE</code>, and
+ <code class="constant">EGL_TRANSPARENT_RGB</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_RED_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the transparent red value.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_GREEN_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the transparent green value.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TRANSPARENT_BLUE_VALUE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the transparent blue value.</p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ <code class="constant">EGL_CONFORMANT</code> is supported only if the
+ EGL version is 1.3 or greater.
+ </p>
+ <p>
+ <code class="constant">EGL_ALPHA_MASK_SIZE</code>,
+ <code class="constant">EGL_COLOR_BUFFER_TYPE</code>,
+ <code class="constant">EGL_LUMINANCE_SIZE</code>, and
+ <code class="constant">EGL_RENDERABLE_TYPE</code> are supported only
+ if the EGL version is 1.2 or greater.
+ </p>
+ <p>
+ While <code class="constant">EGL_MATCH_NATIVE_PIXMAP</code> can be
+ specified in the attribute list passed to
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ it is not an attribute of the resulting config and cannot be
+ queried using <code class="function">eglGetConfigAttrib</code>.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>value</code></em> is not modified when
+ <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONFIG</code> is generated if
+ <em class="parameter"><code>config</code></em> is not an EGL frame buffer configuration.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is not a valid frame buffer
+ configuration attribute.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetConfigs.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetConfigs.html
new file mode 100644
index 0000000..41967e6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetConfigs.html
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglGetConfigs</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglGetConfigs"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglGetConfigs</h1>
+ <p>
+ return a list of all <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> frame buffer configurations
+ for a display
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglGetConfigs</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLConfig *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">configs</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">config_size</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">num_config</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>configs</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns a list of configs.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>config_size</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the size of the list of configs.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>num_config</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Returns the number of configs returned.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetConfigs</code> returns a list of all
+ EGL frame buffer configurations that are available for the specified
+ display.
+ The items in the list can be used in any EGL function that requires
+ an EGL frame buffer configuration.
+ </p>
+ <p>
+ <em class="parameter"><code>configs</code></em> does not return values, if it is specified
+ as
+ <code class="constant">NULL</code>. This is useful for querying just the
+ number of all frame buffer configurations.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglGetConfigAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>
+ to retrieve individual attribute values of a frame buffer configuration.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>configs</code></em> and <em class="parameter"><code>num_config</code></em>
+ are not modified when
+ <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>num_config</code></em> is <code class="constant">NULL</code>.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentContext.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentContext.html
new file mode 100644
index 0000000..51f8dac
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentContext.html
@@ -0,0 +1,274 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglGetCurrentContext</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglGetCurrentContext"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglGetCurrentContext</h1>
+ <p>
+ return the current <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> rendering context
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLContext <strong class="fsfunc">eglGetCurrentContext</strong>(</code>
+ <td xmlns="http://www.w3.org/1999/xhtml"><code>void)</code>;</td>
+ <td xmlns="http://www.w3.org/1999/xhtml"> </td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetCurrentContext</code> returns the current
+ <acronym class="acronym">EGL</acronym> rendering context, as specified by
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ If no context is current, <code class="constant">EGL_NO_CONTEXT</code> is returned.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentDisplay.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentDisplay.html
new file mode 100644
index 0000000..42676c1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentDisplay.html
@@ -0,0 +1,275 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglGetCurrentDisplay</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglGetCurrentDisplay"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglGetCurrentDisplay</h1>
+ <p>
+ return the display for the current <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> rendering context
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLDisplay <strong class="fsfunc">eglGetCurrentDisplay</strong>(</code>
+ <td xmlns="http://www.w3.org/1999/xhtml"><code>void)</code>;</td>
+ <td xmlns="http://www.w3.org/1999/xhtml"> </td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetCurrentDisplay</code> returns the current
+ <acronym class="acronym">EGL</acronym> display connection for the current
+ <acronym class="acronym">EGL</acronym> rendering context, as specified by
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ If no context is current, <code class="constant">EGL_NO_DISPLAY</code> is returned.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglGetDisplay.html"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
+ <a class="citerefentry" href="eglInitialize.html"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a> </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentSurface.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentSurface.html
new file mode 100644
index 0000000..feeacf3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetCurrentSurface.html
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglGetCurrentSurface</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglGetCurrentSurface"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglGetCurrentSurface</h1>
+ <p>
+ return the read or draw surface for the current <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> rendering context
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLSurface <strong class="fsfunc">eglGetCurrentSurface</strong>(</code>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">readdraw</var><code>)</code></td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>readdraw</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies whether the <acronym class="acronym">EGL</acronym> read or draw surface
+ is to be returned.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetCurrentSurface</code> returns the read or draw
+ surface attached to the current
+ <acronym class="acronym">EGL</acronym> rendering context, as specified by
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ If no context is current, <code class="constant">EGL_NO_SURFACE</code> is returned.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a> </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetDisplay.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetDisplay.html
new file mode 100644
index 0000000..5494aa2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetDisplay.html
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglGetDisplay</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglGetDisplay"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglGetDisplay</h1>
+ <p>
+ return an <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> display connection
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLDisplay <strong class="fsfunc">eglGetDisplay</strong>(</code>
+ <td>NativeDisplayType  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">native_display</var><code>)</code></td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>native_display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the display to connect to.
+ <code class="constant">EGL_DEFAULT_DISPLAY</code> indicates the default display.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetDisplay</code> obtains the
+ <acronym class="acronym">EGL</acronym> display connection for the native
+ display <em class="parameter"><code>native_display</code></em>.
+ </p>
+ <p>
+ If <em class="parameter"><code>display_id</code></em> is
+ <code class="constant">EGL_DEFAULT_DISPLAY</code>, a default display connection is returned.
+ </p>
+ <p>
+ If no display connection matching <em class="parameter"><code>native_display</code></em> is
+ available, <code class="constant">EGL_NO_DISPLAY</code> is returned. No
+ error is generated.
+ </p>
+ <p>
+ Use <a class="citerefentry" href="eglInitialize.html"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ to initialize the display connection.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglInitialize.html"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetError.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetError.html
new file mode 100644
index 0000000..7d81645
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetError.html
@@ -0,0 +1,430 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglGetError</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglGetError"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglGetError</h1>
+ <p>
+ return error information
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLint <strong class="fsfunc">eglGetError</strong>(</code>
+ <td xmlns="http://www.w3.org/1999/xhtml"><code>void)</code>;</td>
+ <td xmlns="http://www.w3.org/1999/xhtml"> </td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetError</code> returns the error of the last
+ called <acronym class="acronym">EGL</acronym> function in the current thread.
+ Initially, the error is set to <code class="constant">EGL_SUCCESS</code>.
+ </p>
+ <p>
+ The following errors are currently defined:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SUCCESS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>The last function succeeded without error.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_NOT_INITIALIZED</code>
+ </span>
+ </dt>
+ <dd>
+ <p>EGL is not initialized, or could not be initialized,
+ for the specified EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_ACCESS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>EGL cannot access a requested resource
+ (for example a context is bound in another thread).
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_ALLOC</code>
+ </span>
+ </dt>
+ <dd>
+ <p>EGL failed to allocate resources for the requested
+ operation.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_ATTRIBUTE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>An unrecognized attribute or attribute value was
+ passed in the attribute list.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_CONTEXT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>An <span class="type">EGLContext</span> argument does not name a
+ valid EGL rendering context.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_CONFIG</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ An <span class="type">EGLConfig</span> argument does not name a valid
+ EGL frame buffer configuration.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_CURRENT_SURFACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>The current surface of the calling thread is a window,
+ pixel buffer or pixmap that is no longer valid.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_DISPLAY</code>
+ </span>
+ </dt>
+ <dd>
+ <p>An <span class="type">EGLDisplay</span> argument does not name a
+ valid EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_SURFACE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>An <span class="type">EGLSurface</span> argument does not name a
+ valid surface (window, pixel buffer or pixmap) configured for
+ GL rendering.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_MATCH</code>
+ </span>
+ </dt>
+ <dd>
+ <p>Arguments are inconsistent (for example, a valid
+ context requires buffers not supplied by a valid surface).
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_PARAMETER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>One or more argument values are invalid.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_NATIVE_PIXMAP</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ A <span class="type">NativePixmapType</span> argument does not refer to
+ a valid native pixmap.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_BAD_NATIVE_WINDOW</code>
+ </span>
+ </dt>
+ <dd>
+ <p>A <span class="type">NativeWindowType</span> argument does not refer
+ to a valid native window.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_LOST</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ A power management event has occurred. The application must destroy all
+ contexts and reinitialise OpenGL ES state and objects to continue rendering.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ A call to <code class="function">eglGetError</code> sets the error to
+ <code class="constant">EGL_SUCCESS</code>.
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetProcAddress.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetProcAddress.html
new file mode 100644
index 0000000..ab2c27d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglGetProcAddress.html
@@ -0,0 +1,316 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglGetProcAddress</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglGetProcAddress"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglGetProcAddress</h1>
+ <p>
+ return a <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">GL</acronym> or an <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym>
+ extension function
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">void (* <strong class="fsfunc">eglGetProcAddress</strong>)()(</code>
+ <td>char const *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">procname</var><code>)</code></td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>procname</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the name of the function to return.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglGetProcAddress</code> returns the address of
+ the extension function named by <em class="parameter"><code>procname</code></em>.
+ <em class="parameter"><code>procname</code></em>
+ must be a null-terminated string. The pointer returned
+ should be cast to a function pointer type matching the extension
+ function's definition in that extension specification. A return value
+ of <code class="constant">NULL</code> indicates that the specific
+ function does not exist for the <acronym class="acronym">EGL</acronym> implementation.
+ </p>
+ <p>
+ A non-<code class="constant">NULL</code> return value does not guarantee
+ that an extension function is actually supported at runtime. The client
+ must also query
+ <a class="citerefentry" href="glGetString.html"><span class="citerefentry"><span class="refentrytitle">glGetString</span></span></a>(<code class="constant">GL_EXTENSIONS</code>) or
+ <a class="citerefentry" href="eglQueryString.html"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>(<em class="parameter"><code>display</code></em>,
+ <code class="constant">EGL_EXTENSIONS</code>) to determine if an
+ extension is supported by a particular context or display.
+ </p>
+ <p>
+ Function pointers returned by
+ <code class="function">eglGetProcAddress</code> are independent of the
+ display and the currently bound context and may be used by any context
+ which supports the extension.
+ </p>
+ <p>
+ <code class="function">eglGetProcAddress</code> may be queried for all
+ <acronym class="acronym">GL</acronym> and <acronym class="acronym">EGL</acronym> extension functions.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glGetString.html"><span class="citerefentry"><span class="refentrytitle">glGetString</span></span></a>,
+ <a class="citerefentry" href="eglQueryString.html"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a> </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglInitialize.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglInitialize.html
new file mode 100644
index 0000000..0f6b378
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglInitialize.html
@@ -0,0 +1,355 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglInitialize</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglInitialize"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglInitialize</h1>
+ <p>
+ initialize an <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> display connection
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglInitialize</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">major</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">minor</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection to initialize.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>major</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the major version number of the EGL implementation.
+ May be <code class="constant">NULL</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>minor</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the minor version number of the EGL implementation.
+ May be <code class="constant">NULL</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglInitialize</code> initialized the EGL display
+ connection obtained with
+ <a class="citerefentry" href="eglGetDisplay.html"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>.
+ Initializing an already initialized EGL display connection has no
+ effect besides returning the version numbers.
+ </p>
+ <p>
+ <em class="parameter"><code>major</code></em> and <em class="parameter"><code>minor</code></em>
+ do not return values if they are specified as <code class="constant">NULL</code>.
+ </p>
+ <p>
+ Use <a class="citerefentry" href="eglTerminate.html"><span class="citerefentry"><span class="refentrytitle">eglTerminate</span></span></a>
+ to release resources associated with an EGL display connection.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if
+ <code class="function">eglInitialize</code> fails,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>major</code></em> and <em class="parameter"><code>minor</code></em> are not
+ modified when <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> cannot be initialized.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglGetDisplay.html"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
+ <a class="citerefentry" href="eglTerminate.html"><span class="citerefentry"><span class="refentrytitle">eglTerminate</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglIntro.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglIntro.html
new file mode 100644
index 0000000..4ef078e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglIntro.html
@@ -0,0 +1,492 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglIntro</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglIntro"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglIntro</h1>
+ <p>
+ introduction to managing client API rendering through the
+ <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> API.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="overview"></a>
+ <h2>Overview</h2>
+ <p>
+ The <em class="firstterm">Khronos Native Platform Graphics
+ Interface</em> (EGL) provides a means for rendering
+ using a <em class="firstterm">client API</em> such as OpenGL ES
+ (a 3D renderer for embedded systems), OpenGL (a functional
+ superset of OpenGL ES for desktop systems), and OpenVG (a 2D
+ vector graphics renderer) together with a native window
+ system, such as Microsoft Windows or the X Window System.
+ </p>
+ <p>
+ Depending on its implementation EGL might be more or less
+ tightly integrated into the native window system. Most EGL
+ functions require an EGL display connection, which can be
+ obtained by calling
+ <a class="citerefentry" href="eglGetDisplay.html"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>
+ and passing in a native display handle or
+ <code class="constant">EGL_DEFAULT_DISPLAY</code>. To initialize and
+ query what EGL version is supported on the display
+ connection, call
+ <a class="citerefentry" href="eglInitialize.html"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>.
+ </p>
+ <p>
+ Native window systems supporting EGL make a subset of their
+ visuals (which may also referred to as pixel formats, frame
+ buffer configurations, or other similar terms) available for
+ client API rendering. Windows and pixmaps created with these
+ visuals may also be rendered into using the native window
+ system API.
+ </p>
+ <p>
+ An EGL <em class="firstterm">surface</em> extends a native
+ window or pixmap with additional <em class="firstterm">auxillary
+ buffers</em>. These buffers include a color buffer, a
+ depth buffer, a stencil buffer, and an alpha mask buffer.
+ Some or all of the buffers listed are included in each EGL
+ frame buffer configuration.
+ </p>
+ <p>
+ EGL supports rendering into three types of surfaces:
+ windows, pixmaps and pixel buffers (pbuffers). EGL window
+ and pixmap surfaces are associated with corresponding
+ resources of the native window system. EGL pixel buffers are
+ EGL only resources, and do not accept rendering through the
+ native window system.
+ </p>
+ <p>
+ To render using a client API into an EGL surface, you must
+ determine the appropriate EGL frame buffer configuration,
+ which supports the rendering features the application
+ requires.
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>
+ returns an <span class="type">EGLConfig</span> matching the required
+ attributes, if any. A complete list of EGL frame buffer
+ configurations can be obtained by calling
+ <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>.
+ Attributes of a particular EGL frame buffer configuration
+ can be queried by calling
+ <a class="citerefentry" href="eglGetConfigAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>.
+ </p>
+ <p>
+ For EGL window and pixmap surfaces, a suitable native window
+ or pixmap with a matching native visual must be created
+ first. For a given EGL frame buffer configuration, the
+ native visual type and ID can be retrieved with a call to
+ <a class="citerefentry" href="eglGetConfigAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigAttrib</span></span></a>.
+ For pixel buffers, no underlying native resource is
+ required.
+ </p>
+ <p>
+ To create an EGL window surface from a native window, call
+ <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>.
+ To create an EGL pixmap surface from a native pixmap, call
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>.
+ To create a pixel buffer (pbuffer) surface (which has no
+ associated native buffer), call
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>
+ To create a pixel buffer (pbuffer) surface whose color
+ buffer is provided by an OpenVG <span class="type">VGImage</span>, call
+ <a class="citerefentry" href="eglCreatePbufferFromClientBuffer.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferFromClientBuffer</span></span></a>.
+ Use
+ <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>
+ to release previously allocated resources.
+ </p>
+ <p>
+ An EGL rendering context is required to bind client API
+ rendering to an EGL surface. An EGL surface and an EGL
+ rendering context must have compatible EGL frame buffer
+ configurations. To create an EGL rendering context, call
+ <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>.
+ The type of client API context created (OpenGL ES, OpenVG,
+ etc.) can be changed by first calling
+ <a class="citerefentry" href="eglBindAPI.html"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>.
+ </p>
+ <p>
+ An EGL rendering context may be bound to one or two EGL
+ surfaces by calling
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ This context/surface(s) association specifies the
+ <em class="firstterm">current context</em> and
+ <em class="firstterm">current surface</em>, and is used by all
+ client API rendering commands for the bound context until
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ is called with different arguments.
+ </p>
+ <p>
+ Both native and client API commands may be used to operate
+ on certain surfaces, however, the two command streams are
+ not synchronized. Synchronization can be explicitly
+ specified using by calling
+ <a class="citerefentry" href="eglWaitCLient.html"><span class="citerefentry"><span class="refentrytitle">eglWaitCLient</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.html"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>,
+ and possibly by calling other native window system commands.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="examples"></a>
+ <h2>Examples</h2>
+ <p>
+ Below is a minimal example of creating an RGBA-format window that
+ allows rendering with OpenGL ES.
+ The window is cleared to yellow when the program runs. For simplicity,
+ the program does not check for any errors.
+ </p>
+ <pre class="programlisting">
+#include &lt;stdlib.h&gt;
+#include &lt;unistd.h&gt;
+#include &lt;EGL/egl.h&gt;
+#include &lt;GLES/gl.h&gt;
+typedef ... NativeWindowType;
+extern NativeWindowType createNativeWindow(void);
+static EGLint const attribute_list[] = {
+ EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_NONE
+};
+int main(int argc, char ** argv)
+{
+ EGLDisplay display;
+ EGLConfig config;
+ EGLContext context;
+ EGLSurface surface;
+ NativeWindowType native_window;
+ EGLint num_config;
+
+ /* get an EGL display connection */
+ display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+
+ /* initialize the EGL display connection */
+ eglInitialize(display, NULL, NULL);
+
+ /* get an appropriate EGL frame buffer configuration */
+ eglChooseConfig(display, attribute_list, &amp;config, 1, &amp;num_config);
+
+ /* create an EGL rendering context */
+ context = eglCreateContext(display, config, EGL_NO_CONTEXT, NULL);
+
+ /* create a native window */
+ native_window = createNativeWindow();
+
+ /* create an EGL window surface */
+ surface = eglCreateWindowSurface(display, config, native_window, NULL);
+
+ /* connect the context to the surface */
+ eglMakeCurrent(display, surface, surface, context);
+
+ /* clear the color buffer */
+ glClearColor(1.0, 1.0, 0.0, 1.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glFlush();
+
+ eglSwapBuffers(display, surface);
+
+ sleep(10);
+ return EXIT_SUCCESS;
+}
+</pre>
+ </div>
+ <div class="refsect1">
+ <a id="usingeglextensions"></a>
+ <h2>Using EGL Extensions</h2>
+ <p>
+ All supported EGL extensions will have a corresponding definition in
+ <code class="filename">egl.h</code> and a token in the extensions string returned
+ by
+ <a class="citerefentry" href="eglQueryString.html"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="futureeglversions"></a>
+ <h2>Future EGL Versions</h2>
+ <p>
+ <a class="citerefentry" href="eglInitialize.html"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ and
+ <a class="citerefentry" href="eglQueryString.html"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>
+ can be used to determine at run-time what version of EGL is available.
+ To check the EGL version at compile-time, test whether
+ <code class="constant">EGL_VERSION_<em class="replaceable"><code>x</code></em>_<em class="replaceable"><code>y</code></em></code>
+ is defined, where <em class="replaceable"><code>x</code></em> and
+ <em class="replaceable"><code>y</code></em> are the major and minor version
+ numbers.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="files"></a>
+ <h2>Files</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="filename">GLES/egl.h</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ EGL header file
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+
+ <a class="citerefentry" href="eglBindAPI.html"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ <a class="citerefentry" href="eglChooseConfig.html"><span class="citerefentry"><span class="refentrytitle">eglChooseConfig</span></span></a>,
+ <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferFromClientBuffer.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferFromClientBuffer</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglDestroyContext.html"><span class="citerefentry"><span class="refentrytitle">eglDestroyContext</span></span></a>,
+ <a class="citerefentry" href="eglDestroySurface.html"><span class="citerefentry"><span class="refentrytitle">eglDestroySurface</span></span></a>,
+ <a class="citerefentry" href="eglGetConfigs.html"><span class="citerefentry"><span class="refentrytitle">eglGetConfigs</span></span></a>,
+ <a class="citerefentry" href="eglGetDisplay.html"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
+ <a class="citerefentry" href="eglInitialize.html"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglQueryString.html"><span class="citerefentry"><span class="refentrytitle">eglQueryString</span></span></a>,
+ <a class="citerefentry" href="eglSwapBuffers.html"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>,
+ <a class="citerefentry" href="eglTerminate.html"><span class="citerefentry"><span class="refentrytitle">eglTerminate</span></span></a>,
+ <a class="citerefentry" href="eglWaitGL.html"><span class="citerefentry"><span class="refentrytitle">eglWaitGL</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.html"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglMakeCurrent.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglMakeCurrent.html
new file mode 100644
index 0000000..e198962
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglMakeCurrent.html
@@ -0,0 +1,456 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglMakeCurrent</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglMakeCurrent"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglMakeCurrent</h1>
+ <p>
+ attach an EGL rendering context to EGL surfaces
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglMakeCurrent</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLSurface  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">draw</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLSurface  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">read</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLContext  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">context</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the <acronym class="acronym">EGL</acronym> display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>draw</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the <acronym class="acronym">EGL</acronym> draw surface.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>read</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the <acronym class="acronym">EGL</acronym> read surface.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>context</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the <acronym class="acronym">EGL</acronym> rendering context
+ to be attached to the surfaces.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglMakeCurrent</code> binds <em class="parameter"><code>context</code></em>
+ to the current rendering thread and to the <em class="parameter"><code>draw</code></em>
+ and <em class="parameter"><code>read</code></em> surfaces. <em class="parameter"><code>draw</code></em>
+ is used for all GL operations except for any pixel data read back
+ (<a class="citerefentry" href="glReadPixels.html"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a>,
+ <a class="citerefentry" href="glCopyTexImage2D.html"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>, and
+ <a class="citerefentry" href="glCopyTexSubImage2D.html"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage2D</span></span></a>),
+ which is taken from the frame buffer values of
+ <em class="parameter"><code>read</code></em>.
+ </p>
+ <p>
+ If the calling thread has already a current rendering context, that
+ context is flushed and marked as no longer current.
+ </p>
+ <p>
+ The first time that <em class="parameter"><code>context</code></em> is made current,
+ the viewport and scissor dimensions are set to the size of the
+ <em class="parameter"><code>draw</code></em> surface. The viewport and
+ scissor are not modified when <em class="parameter"><code>context</code></em> is
+ subsequently made current.
+ </p>
+ <p>
+ To release the current context without assigning a new one, call
+ <code class="function">eglMakeCurrent</code> with <em class="parameter"><code>draw</code></em>
+ and <em class="parameter"><code>read</code></em> set to
+ <code class="constant">EGL_NO_SURFACE</code> and <em class="parameter"><code>context</code></em>
+ set to <code class="constant">EGL_NO_CONTEXT</code>.
+ </p>
+ <p>
+ Use
+ <a class="citerefentry" href="eglGetCurrentContext.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentDisplay.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>, and
+ <a class="citerefentry" href="eglGetCurrentSurface.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>
+ to query the current rendering context and associated display connection and surfaces.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise. If <code class="constant">EGL_FALSE</code>
+ is returned, the previously current rendering context and
+ surfaces (if any) remain unchanged.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>draw</code></em> or <em class="parameter"><code>read</code></em> is not an
+ EGL surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONTEXT</code> is generated if
+ <em class="parameter"><code>context</code></em> is not an EGL rendering context.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>draw</code></em> or
+ <em class="parameter"><code>read</code></em>
+ are not compatible with
+ <em class="parameter"><code>context</code></em>, or if
+ <em class="parameter"><code>context</code></em> is set to
+ <code class="constant">EGL_NO_CONTEXT</code> and
+ <em class="parameter"><code>draw</code></em> or
+ <em class="parameter"><code>read</code></em>
+ are not set to
+ <code class="constant">EGL_NO_SURFACE</code>, or if
+ <em class="parameter"><code>draw</code></em> or
+ <em class="parameter"><code>read</code></em> are set to
+ <code class="constant">EGL_NO_SURFACE</code> and
+ <em class="parameter"><code>context</code></em> is not set to
+ <code class="constant">EGL_NO_CONTEXT</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ACCESS</code> is generated if
+ <em class="parameter"><code>context</code></em>
+ is current to some other thread.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_NATIVE_PIXMAP</code> may be generated if
+ a native pixmap underlying either
+ <em class="parameter"><code>draw</code></em> or
+ <em class="parameter"><code>read</code></em>
+ is no longer valid.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_NATIVE_WINDOW</code> may be generated if
+ a native window underlying either
+ <em class="parameter"><code>draw</code></em> or
+ <em class="parameter"><code>read</code></em>
+ is no longer valid.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CURRENT_SURFACE</code> is generated if
+ the previous context has unflushed commands and the previous surface
+ is no longer valid.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ALLOC</code> may be generated if
+ allocation of ancillary buffers for <em class="parameter"><code>draw</code></em> or
+ <em class="parameter"><code>read</code></em> were delayed until
+ <code class="function">eglMakeCurrent</code> is called, and there are not
+ enough resources to allocate them.
+ </p>
+ <p>
+ <code class="constant">EGL_CONTEXT_LOST</code> is generated if a power management
+ event has occurred. The application must destroy all contexts and
+ reinitialise OpenGL ES state and objects to continue rendering.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glReadPixels.html"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a>,
+ <a class="citerefentry" href="glCopyTexImage2D.html"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>,
+ <a class="citerefentry" href="glCopyTexSubImage2D.html"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage2D</span></span></a>,
+ <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentContext.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentDisplay.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentSurface.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>,
+ <a class="citerefentry" href="eglGetDisplay.html"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
+ <a class="citerefentry" href="eglInitialize.html"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryAPI.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryAPI.html
new file mode 100644
index 0000000..fd1b923
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryAPI.html
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglQueryAPI</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglQueryAPI"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglQueryAPI</h1>
+ <p>Query the current rendering API</p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLenum <strong class="fsfunc">eglQueryAPI</strong>(</code>
+ <td xmlns="http://www.w3.org/1999/xhtml"><code>void)</code>;</td>
+ <td xmlns="http://www.w3.org/1999/xhtml"> </td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglQueryAPI</code> returns the value of the
+ current rendering API for EGL in the thread it is called
+ from. The current rendering API is set by
+ <a class="citerefentry" href="eglBindAPI.html"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ and affects the behavior of other EGL commands.
+ </p>
+ <p>
+ The value returned will be one of the valid
+ <em class="parameter"><code>api</code></em> parameters to
+ <a class="citerefentry" href="eglBindAPI.html"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>, or
+ <code class="constant">EGL_NONE</code>.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglQueryAPI</code> is supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ The initial value of the current rendering API is
+ <code class="constant">EGL_OPENGL_ES_API</code> unless OpenGL ES is
+ not supported by an implementation, in which case the
+ initial value is <code class="constant">EGL_NONE</code> (however,
+ <code class="constant">EGL_NONE</code> is not a valid
+ <em class="parameter"><code>api</code></em> parameter to
+ <code class="function">eglQueryAPI</code>).
+ </p>
+ <p>
+ The current rendering API can be changed by calling
+ <a class="citerefentry" href="eglBindAPI.html"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ None.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglBindAPI.html"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentContext.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentDisplay.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>,
+ <a class="citerefentry" href="eglGetCurrentSurface.html"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>,
+ <a class="citerefentry" href="eglWaitClient.html"><span class="citerefentry"><span class="refentrytitle">eglWaitClient</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.html"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryContext.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryContext.html
new file mode 100644
index 0000000..d956c53
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryContext.html
@@ -0,0 +1,474 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglQueryContext</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglQueryContext"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglQueryContext</h1>
+ <p>
+ return <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> rendering context information
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglQueryContext</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLContext  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">context</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attribute</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">value</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>context</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL rendering context to query.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attribute</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL rendering context attribute to be returned.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>value</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the requested value.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglQueryContext</code> returns in
+ <em class="parameter"><code>value</code></em> the value of
+ <em class="parameter"><code>attribute</code></em> for <em class="parameter"><code>context</code></em>.
+ <em class="parameter"><code>attribute</code></em> can be one of the following:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_ID</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the ID of the EGL frame buffer configuration
+ with respect to which the context was created.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_CLIENT_TYPE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the type of client API which the context
+ supports (one of
+ <code class="constant">EGL_OPENGL_API</code>,
+ <code class="constant">EGL_OPENGL_ES_API</code>, or
+ <code class="constant">EGL_OPENVG_API</code>).
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the version of the client API which the
+ context supports, as specified at context creation
+ time. The resulting value is only meaningful for an
+ OpenGL ES context.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RENDER_BUFFER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the buffer which client API rendering
+ via the context will use. The value returned
+ depends on properties of both the context, and
+ the surface to which the context is bound:
+ </p>
+ <div class="itemizedlist">
+ <ul class="itemizedlist" style="list-style-type: disc; ">
+ <li class="listitem">
+ <p>
+ If the context is bound to a pixmap surface,
+ then <code class="constant">EGL_SINGLE_BUFFER</code> will
+ be returned.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ If the context is bound to a pbuffer surface,
+ then <code class="constant">EGL_BACK_BUFFER</code> will
+ be returned.
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ If the context is bound to a window surface,
+ then either <code class="constant">EGL_BACK_BUFFER</code>
+ or <code class="constant">EGL_SINGLE_BUFFER</code> may be
+ returned. The value returned depends on both the
+ buffer requested by the setting of the
+ <code class="constant">EGL_RENDER_BUFFER</code> property
+ of the surface (which may be queried by calling
+ <code class="function">eglQuerySurface</code>), and on
+ the client API (not all client APIs support
+ single-buffer rendering to window surfaces).
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ If the context is not bound to a surface, such
+ as an OpenGL ES context bound to a framebuffer
+ object, then <code class="constant">EGL_NONE</code> will
+ be returned.
+ </p>
+ </li>
+ </ul>
+ </div>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ Attributes <code class="constant">EGL_CONTEXT_CLIENT_TYPE</code> and
+ <code class="constant">EGL_RENDER_BUFFER</code> are supported only if
+ the EGL version is 1.2 or greater.
+ </p>
+ <p>
+ Attribute <code class="constant">EGL_CONTEXT_CLIENT_VERSION</code> is
+ supported only if the EGL version is 1.3 or greater.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>value</code></em> is not modified when
+ <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONTEXT</code> is generated if
+ <em class="parameter"><code>context</code></em> is not an EGL rendering context.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is not a valid context attribute.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreateContext.html"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryString.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryString.html
new file mode 100644
index 0000000..5fdf82b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQueryString.html
@@ -0,0 +1,401 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglQueryString</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglQueryString"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglQueryString</h1>
+ <p>
+ return a string describing an <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> display connection
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">char const * <strong class="fsfunc">eglQueryString</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">name</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>name</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies a symbolic constant, one of
+ <code class="constant">EGL_CLIENT_APIS</code>,
+ <code class="constant">EGL_VENDOR</code>,
+ <code class="constant">EGL_VERSION</code>, or
+ <code class="constant">EGL_EXTENSIONS</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglQueryString</code> returns a pointer to a
+ static string describing an EGL display connection.
+ <em class="parameter"><code>name</code></em> can be one of the following:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CLIENT_APIS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a string describing which client rendering
+ APIs are supported. The string contains a
+ space-separate list of API names. The list must
+ include at least one of <code class="code">OpenGL</code>,
+ <code class="code">OpenGL_ES</code>, or <code class="code">OpenVG</code>.
+ These strings correspond respectively to values
+ <code class="constant">EGL_OPENGL_API</code>,
+ <code class="constant">EGL_OPENGL_ES_API</code>, and
+ <code class="constant">EGL_OPENVG_API</code> of the
+ <a class="citerefentry" href="eglBindAPI.html"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ <em class="parameter"><code>api</code></em> argument.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VENDOR</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the company responsible for this EGL implementation. This
+ name does not change from release to release.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VERSION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a version or release number.
+ The <code class="constant">EGL_VERSION</code> string is laid out as
+ follows:</p>
+ <p>
+ <em class="replaceable"><code>major_version</code></em>.<em class="replaceable"><code>minor_version</code></em>
+ space
+ <em class="replaceable"><code>vendor_specific_info</code></em>
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_EXTENSIONS</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns a space separated list of supported extensions to EGL.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ <code class="constant">EGL_CLIENT_APIS</code> is supported only if
+ the EGL version is 1.2 or greater.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">NULL</code> is returned on failure.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>name</code></em> is not an accepted value.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglBindAPI.html"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ <a class="citerefentry" href="eglGetDisplay.html"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
+ <a class="citerefentry" href="eglInitialize.html"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQuerySurface.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQuerySurface.html
new file mode 100644
index 0000000..c7b3fc9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglQuerySurface.html
@@ -0,0 +1,599 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglQuerySurface</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglQuerySurface"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglQuerySurface</h1>
+ <p>
+ return <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> surface information
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglQuerySurface</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLSurface  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">surface</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attribute</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint *  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">value</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface to query.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attribute</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface attribute to be returned.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>value</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the requested value.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglQuerySurface</code> returns in
+ <em class="parameter"><code>value</code></em> the value of
+ <em class="parameter"><code>attribute</code></em> for <em class="parameter"><code>surface</code></em>.
+ <em class="parameter"><code>attribute</code></em> can be one of the following:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_CONFIG_ID</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the ID of the EGL frame buffer configuration
+ with respect to which the surface was created.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_HEIGHT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the height of the surface in pixels.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_HORIZONTAL_RESOLUTION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the horizontal dot pitch of the display on
+ which a window surface is visible. The value
+ returned is equal to the actual dot pitch, in
+ pixels/meter, multiplied by the constant value
+ <code class="constant">EGL_DISPLAY_SCALING</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_LARGEST_PBUFFER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the same attribute value specified when the
+ surface was created with
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>.
+ For a window or pixmap surface,
+ <em class="parameter"><code>value</code></em> is not modified.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIPMAP_LEVEL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns which level of the mipmap to render to, if
+ texture has mipmaps.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIPMAP_TEXTURE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns <code class="constant">EGL_TRUE</code> if texture has
+ mipmaps, <code class="constant">EGL_FALSE</code> otherwise.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the filter used when resolving the
+ multisample buffer. The filter may be either
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_DEFAULT</code>
+ or <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX</code>,
+ as described for
+ <a class="citerefentry" href="eglSurfaceAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_PIXEL_ASPECT_RATIO</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the aspect ratio of an individual pixel (the
+ ratio of a pixel's width to its height). The value
+ returned is equal to the actual aspect ratio
+ multiplied by the constant value
+ <code class="constant">EGL_DISPLAY_SCALING</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_RENDER_BUFFER</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the buffer which client API rendering is
+ requested to use. For a window surface, this is the
+ same attribute value specified when the surface was
+ created. For a pbuffer surface, it is always
+ <code class="constant">EGL_BACK_BUFFER</code>. For a pixmap
+ surface, it is always
+ <code class="constant">EGL_SINGLE_BUFFER</code>. To determine
+ the actual buffer being rendered to by a context,
+ call
+ <a class="citerefentry" href="eglQueryContext.html"><span class="citerefentry"><span class="refentrytitle">eglQueryContext</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SWAP_BEHAVIOR</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the effect on the color buffer when posting
+ a surface with
+ <a class="citerefentry" href="eglSwapBuffers.html"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>.
+ Swap behavior may be either
+ <code class="constant">EGL_BUFFER_PRESERVED</code> or
+ <code class="constant">EGL_BUFFER_DESTROYED</code>, as
+ described for
+ <a class="citerefentry" href="eglSurfaceAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_FORMAT</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns format of texture. Possible values are
+ <code class="constant">EGL_NO_TEXTURE</code>,
+ <code class="constant">EGL_TEXTURE_RGB</code>, and
+ <code class="constant">EGL_TEXTURE_RGBA</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_TEXTURE_TARGET</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns type of texture. Possible values are
+ <code class="constant">EGL_NO_TEXTURE</code>, or
+ <code class="constant">EGL_TEXTURE_2D</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_VERTICAL_RESOLUTION</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the vertical dot pitch of the display on
+ which a window surface is visible. The value
+ returned is equal to the actual dot pitch, in
+ pixels/meter, multiplied by the constant value
+ <code class="constant">EGL_DISPLAY_SCALING</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_WIDTH</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Returns the width of the surface in pixels.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ Attribute <code class="constant">EGL_MULTISAMPLE_RESOLVE</code> is
+ supported only if the EGL version is 1.4 or greater.
+ </p>
+ <p>
+ Attributes <code class="constant">EGL_DISPLAY_SCALING</code>.
+ <code class="constant">EGL_HORIZONTAL_RESOLUTION</code>,
+ <code class="constant">EGL_PIXEL_ASPECT_RATIO</code>,
+ <code class="constant">EGL_RENDER_BUFFER</code>,
+ <code class="constant">EGL_SWAP_BEHAVIOR</code>, and
+ <code class="constant">EGL_VERTICAL_RESOLUTION</code> are supported
+ only if the EGL version is 1.2 or greater.
+ </p>
+ <p>
+ Querying attributes <code class="constant">EGL_TEXTURE_FORMAT</code>,
+ <code class="constant">EGL_TEXTURE_TARGET</code>,
+ <code class="constant">EGL_MIPMAP_TEXTURE</code>, or
+ <code class="constant">EGL_MIPMAP_LEVEL</code> for a non-pbuffer
+ surface is not an error, but <em class="parameter"><code>value</code></em> is
+ not modified.
+ </p>
+ <p>
+ <code class="constant">EGL_DISPLAY_SCALING</code> is the constant
+ value 10000. Floating-point values such as resolution and
+ pixel aspect ratio are scaled by this value before being
+ returned as integers so that sufficient precision to be
+ meaningful will be retained in the returned value.
+ </p>
+ <p>
+ For an offscreen (pbuffer or pixmap) surface, or a surface
+ whose pixel dot pitch or aspect ratio are unknown, querying
+ <code class="constant">EGL_HORIZONTAL_RESOLUTION</code>,
+ <code class="constant">EGL_PIXEL_ASPECT_RATIO</code>, or
+ <code class="constant">EGL_VERTICAL_RESOLUTION</code> will return the
+ constant value <code class="constant">EGL_UNKNOWN</code> (-1).
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ <em class="parameter"><code>value</code></em> is not modified when
+ <code class="constant">EGL_FALSE</code> is returned.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is not a valid surface attribute.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglSurfaceAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>,
+ <a class="citerefentry" href="eglSwapBuffers.html"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglReleaseTexImage.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglReleaseTexImage.html
new file mode 100644
index 0000000..2acf40b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglReleaseTexImage.html
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglReleaseTexImage</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglReleaseTexImage"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglReleaseTexImage</h1>
+ <p>
+ Releases a color buffer that is being used as a texture
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglReleaseTexImage</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLSurface  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">surface</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">buffer</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the EGL display connection.</p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>buffer</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>Specifies the texture image data.</p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ The specified color buffer is released back to the surface. The surface is made
+ available for reading and writing when it no longer has any color buffers bound as
+ textures.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ If the specified color buffer is no longer bound to a texture (e.g., because the
+ texture object was deleted) then eglReleaseTexImage has no effect. No error is
+ generated.
+ </p>
+ <p>
+ The contents of the color buffer are undefined when it is first released. In particular,
+ there is no guarantee that the texture image is still present. However, the contents of
+ other color buffers are unaffected by this call. Also, the contents of the depth and stencil buffers
+ are not affected by <a class="citerefentry" href="eglBindTexImage.html"><span class="citerefentry"><span class="refentrytitle">eglBindTexImage</span></span></a>
+ and <code class="function">eglReleaseTexImage</code>.
+ </p>
+ <p>
+ After a color buffer is released from a texture (either explicitly by calling
+ <code class="function">eglReleaseTexImage</code> or implicitly by calling a routine such as
+ <a class="citerefentry" href="glTexImage2D.html"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a>),
+ all texture images that were defined by the color buffer become <code class="constant">NULL</code>
+ (it is as if <a class="citerefentry" href="glTexImage.html"><span class="citerefentry"><span class="refentrytitle">glTexImage</span></span></a> was called with an image of zero width).
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if the
+ surface attribute <code class="constant">EGL_TEXTURE_FORMAT</code> is
+ set to <code class="constant">EGL_NO_TEXTURE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>buffer</code></em> is not a valid buffer
+ (currently only <code class="constant">EGL_BACK_BUFFER</code> may be
+ specified).
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL surface, or is
+ not a bound pbuffer surface.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglBindTexImage.html"><span class="citerefentry"><span class="refentrytitle">eglBindTexImage</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglReleaseThread.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglReleaseThread.html
new file mode 100644
index 0000000..4740ef1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglReleaseThread.html
@@ -0,0 +1,364 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglReleaseThread</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglReleaseThread"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglReleaseThread</h1>
+ <p>Release EGL per-thread state</p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglReleaseThread</strong>(</code>
+ <td xmlns="http://www.w3.org/1999/xhtml"><code>void)</code>;</td>
+ <td xmlns="http://www.w3.org/1999/xhtml"> </td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglReleaseThread</code> returns the EGL to its
+ state at thread initialization, releasing all per-thread
+ state including the error status returned by
+ <span class="command"><strong>eglGetError</strong></span>, the currently bound
+ rendering API defined by <span class="command"><strong>eglBindAPI</strong></span>, and
+ the current contexts for each supported client API. The
+ overhead of maintaining this state may be objectionable in
+ applications which create and destroy many threads, but only
+ call EGL or client APIs in a few of those threads at any
+ given time.
+ </p>
+ <p>
+ <code class="constant">EGL_TRUE</code> is returned on success, and the
+ following actions are taken:
+ </p>
+ <div class="itemizedlist">
+ <ul class="itemizedlist" style="list-style-type: disc; ">
+ <li class="listitem">
+ <p>
+ For each client API supported by EGL, if there is a
+ currently bound context, that context is released.
+ This is equivalent to calling
+ <code class="function">eglMakeCurrent</code> with ctx set to
+ <code class="constant">EGL_NO_CONTEXT</code> and both draw
+ and read set to <code class="constant">EGL_NO_SURFACE</code>
+ (see section 3.7.3).
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ The current rendering API is reset to its value at
+ thread initialization (see
+ <span class="command"><strong>eglBindAPI</strong></span>).
+ </p>
+ </li>
+ <li class="listitem">
+ <p>
+ Any additional implementation-dependent per-thread
+ state maintained by EGL is marked for deletion as
+ soon as possible.
+ </p>
+ </li>
+ </ul>
+ </div>
+ <p>
+ <code class="function">eglReleaseThread</code> may be called in any
+ thread at any time, and may be called more than once in a
+ single thread. The initialization status of EGL (see section
+ 3.2) is not affected by releasing the thread; only
+ per-thread state is affected.
+ </p>
+ <p>
+ Resources explicitly allocated by calls to EGL, such as
+ contexts, surfaces, and configuration lists, are not
+ affected by <code class="function">eglReleaseThread</code>. Such
+ resources belong not to the thread, but to the EGL
+ implementation as a whole.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglReleaseThread</code> is supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ Applications may call other EGL routines from a thread
+ following <code class="function">eglReleaseThread</code>, but any
+ such call may reallocate the EGL state previously released.
+ In particular, calling <code class="function">eglGetError</code>
+ immediately following a successful call to
+ <code class="function">eglReleaseThread</code> will return
+ <code class="constant">EGL_SUCCESS</code>, but will also result in
+ reallocating per-thread state.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise. There are no
+ defined conditions under which failure will occur. Even if
+ EGL is not initialized on any EGLDisplay,
+ <code class="function">eglReleaseThread</code> should succeed.
+ </p>
+ <p>
+ However, platform-dependent failures may be signaled through
+ the value returned from <code class="function">eglGetError</code>.
+ Unless the platform-dependent behavior is known, a failed
+ call to <code class="function">eglReleaseThread</code> should be
+ assumed to leave the current rendering API, and the
+ currently bound contexts for each supported client API, in
+ an unknown state.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglBindAPI.html"><span class="citerefentry"><span class="refentrytitle">eglBindAPI</span></span></a>,
+ <a class="citerefentry" href="eglGetError.html"><span class="citerefentry"><span class="refentrytitle">eglGetError</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSurfaceAttrib.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSurfaceAttrib.html
new file mode 100644
index 0000000..44dedd7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSurfaceAttrib.html
@@ -0,0 +1,481 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglSurfaceAttrib</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglSurfaceAttrib"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglSurfaceAttrib</h1>
+ <p>
+ set an <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> surface attribute
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglSurfaceAttrib</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLSurface  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">surface</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">attribute</var>, </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">value</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>attribute</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL surface attribute to set.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>value</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the attributes required value.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglSurfaceAttrib</code> sets the value of
+ <em class="parameter"><code>attribute</code></em> for
+ <em class="parameter"><code>surface</code></em> to
+ <em class="parameter"><code>value</code></em>.
+ <em class="parameter"><code>attribute</code></em> can be one of the
+ following:
+ </p>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MIPMAP_LEVEL</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ For mipmap textures, the
+ <code class="constant">EGL_MIPMAP_LEVEL</code> attribute
+ indicates which level of the mipmap should be
+ rendered. If the value of this attribute is outside
+ the range of supported mipmap levels, the closest
+ valid mipmap level is selected for rendering. The
+ default value is <code class="constant">0</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the filter to use when resolving the
+ multisample buffer (this may occur when swapping or
+ copying the surface, or when changing the client API
+ context bound to the surface). A
+ <em class="parameter"><code>value</code></em> of
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_DEFAULT</code>
+ chooses the default implementation-defined filtering
+ method, while
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX</code>
+ chooses a one-pixel wide box filter placing equal
+ weighting on all multisample values.
+ </p>
+ <p>
+ The initial value of
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE</code> is
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_DEFAULT</code>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <code class="constant">EGL_SWAP_BEHAVIOR</code>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the effect on the color buffer of posting
+ a surface with
+ <a class="citerefentry" href="eglSwapBuffers.html"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>.
+ A <em class="parameter"><code>value</code></em> of
+ <code class="constant">EGL_BUFFER_PRESERVED</code> indicates
+ that color buffer contents are unaffected, while
+ <code class="constant">EGL_BUFFER_DESTROYED</code> indicates
+ that color buffer contents may be destroyed or
+ changed by the operation.
+ </p>
+ <p>
+ The initial value of
+ <code class="constant">EGL_SWAP_BEHAVIOR</code> is chosen by
+ the implementation.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ Attribute <code class="constant">EGL_MULTISAMPLE_RESOLVE</code> is
+ supported only if the EGL version is 1.4 or greater.
+ </p>
+ <p>
+ Attribute <code class="constant">EGL_SWAP_BEHAVIOR</code> is
+ supported only if the EGL version is 1.2 or greater.
+ </p>
+ <p>
+ If the value of pbuffer attribute
+ <code class="constant">EGL_TEXTURE_FORMAT</code> is
+ <code class="constant">EGL_NO_TEXTURE</code>, the value of attribute
+ <code class="constant">EGL_TEXTURE_TARGET</code> is
+ <code class="constant">EGL_NO_TEXTURE</code>, or
+ <em class="parameter"><code>surface</code></em> is not a pbuffer, then
+ attribute <code class="constant">EGL_MIPMAP_LEVEL</code> may be set,
+ but has no effect.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE</code>,
+ <em class="parameter"><code>value</code></em> is
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX</code>, and the
+ <code class="constant">EGL_SURFACE_TYPE</code> attribute of the
+ <span class="type">EGLConfig</span> used to create
+ <em class="parameter"><code>surface</code></em> does not contain
+ <code class="constant">EGL_MULTISAMPLE_RESOLVE_BOX_BIT</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_MATCH</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is
+ <code class="constant">EGL_SWAP_BEHAVIOR</code>,
+ <em class="parameter"><code>value</code></em> is
+ <code class="constant">EGL_BUFFER_PRESERVED</code>, and the
+ <code class="constant">EGL_SURFACE_TYPE</code> attribute of the
+ <span class="type">EGLConfig</span> used to create
+ <em class="parameter"><code>surface</code></em> does not contain
+ <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL surface.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_ATTRIBUTE</code> is generated if
+ <em class="parameter"><code>attribute</code></em> is not a valid surface attribute.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglCreatePbufferSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreatePixmapSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
+ <a class="citerefentry" href="eglCreateWindowSurface.html"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
+ <a class="citerefentry" href="eglQuerySurface.html"><span class="citerefentry"><span class="refentrytitle">eglQuerySurface</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSwapBuffers.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSwapBuffers.html
new file mode 100644
index 0000000..c7ff447
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSwapBuffers.html
@@ -0,0 +1,385 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglSwapBuffers</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglSwapBuffers"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglSwapBuffers</h1>
+ <p>
+ post <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> surface color buffer to a native window
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglSwapBuffers</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLSurface  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">surface</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>surface</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL drawing surface whose buffers are to be swapped.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ If <em class="parameter"><code>surface</code></em> is a window surface,
+ <code class="function">eglSwapBuffers</code> posts its color buffer
+ to the associated native window.
+ </p>
+ <p>
+ The contents of ancillary buffers are always undefined after
+ calling <code class="function">eglSwapBuffers</code>. The contents of
+ the color buffer are left unchanged if the value of the
+ <code class="constant">EGL_SWAP_BEHAVIOR</code> attribute of
+ <em class="parameter"><code>surface</code></em> is
+ <code class="constant">EGL_BUFFER_PRESERVED</code>, and are undefined
+ if the value is <code class="constant">EGL_BUFFER_DESTROYED</code>.
+ The value of <code class="constant">EGL_SWAP_BEHAVIOR</code> can be
+ set for some surfaces using
+ <a class="citerefentry" href="eglSurfaceAttrib.html"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>.
+ </p>
+ <p>
+ <code class="function">eglSwapBuffers</code> performs an implicit
+ flush operation on the context (<code class="function">glFlush</code>
+ for an OpenGL ES or OpenGL context,
+ <code class="function">vgFlush</code> for an OpenVG context) bound to
+ <em class="parameter"><code>surface</code></em> before swapping. Subsequent
+ client API commands may be issued on that context
+ immediately after calling
+ <code class="function">eglSwapBuffers</code>, but are not executed
+ until the buffer exchange is completed.
+ </p>
+ <p>
+ If <em class="parameter"><code>surface</code></em> is a pixel buffer or a pixmap,
+ <code class="function">eglSwapBuffers</code>
+ has no effect, and no error is generated.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ Attribute <code class="constant">EGL_SWAP_BEHAVIOR</code> is
+ supported only if the EGL version is 1.2 or greater. In
+ earlier versions, behavior is as though the attribute
+ exists, and always has the value
+ <code class="constant">EGL_BUFFER_DESTROYED</code>.
+ </p>
+ <p>
+ The EGL 1.4 specification was updated to acknowledge that
+ ancillary buffers are not necessarily preserved after a
+ swap, and that the <code class="constant">EGL_SWAP_BEHAVIOR</code>
+ attribute applies only to the color buffer. This change in
+ the specification acknowledged the behavior of many shipping
+ implementations, and is not intended to result in behavior
+ changes in any existing implementation. Applications which
+ require preservation of ancillary buffers across a swap
+ should be aware that not all implementations can preserve
+ them, and that EGL 1.4 has no way to query whether or not
+ they are preserved.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if swapping of the
+ surface buffers fails, <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ <p>
+ <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
+ <em class="parameter"><code>display</code></em> has not been initialized.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if
+ <em class="parameter"><code>surface</code></em> is not an EGL drawing surface.
+ </p>
+ <p>
+ <code class="constant">EGL_CONTEXT_LOST</code> is generated if a power management
+ event has occurred. The application must destroy all contexts and
+ reinitialise OpenGL ES state and objects to continue rendering.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glFlush.html"><span class="citerefentry"><span class="refentrytitle">glFlush</span></span></a>,
+ <a class="citerefentry" href="eglCopyBuffers.html"><span class="citerefentry"><span class="refentrytitle">eglCopyBuffers</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSwapInterval.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSwapInterval.html
new file mode 100644
index 0000000..fcf9a68
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglSwapInterval.html
@@ -0,0 +1,344 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglSwapInterval</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglSwapInterval"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglSwapInterval</h1>
+ <p>
+ specifies the minimum number of video frame periods
+ per buffer swap for the window associated with the current context.
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglSwapInterval</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var>, </td>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> </td>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">interval</var><code>)</code></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection.
+ </p>
+ </dd>
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>interval</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the minimum number of video frames that are displayed before
+ a buffer swap will occur.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ The interval takes effect when <a class="citerefentry" href="eglSwapBuffers.html"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a> is
+ first called subsequent to the <code class="function">eglSwapInterval</code> call.
+ </p>
+ <p>
+ The <em class="parameter"><code>interval</code></em> specified by the function applies to the draw surface
+ bound to the context that is current on the calling thread.
+ </p>
+ <p>
+ If <em class="parameter"><code>interval</code></em> is set to a value of <code class="constant">0</code>, buffer swaps are not synchronized to a
+ video frame, and the swap happens as soon as the render is complete. interval
+ is silently clamped to minimum and maximum implementation dependent
+ valuesbefore being stored; these values are defined by <span class="type">EGLConfig</span> attributes
+ <code class="constant">EGL_MIN_SWAP_INTERVAL</code> and <code class="constant">EGL_MAX_SWAP_INTERVAL</code> respectively.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ The swap interval has no effect on <a class="citerefentry" href="eglCopyBuffers.html"><span class="citerefentry"><span class="refentrytitle">eglCopyBuffers</span></span></a>.
+ </p>
+ <p>
+ The default swap interval is 1.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned on failure, <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CONTEXT</code> is generated if there is no current context
+ on the calling thread.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_SURFACE</code> is generated if there is no surface
+ bound to the current context.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglSwapBuffers.html"><span class="citerefentry"><span class="refentrytitle">eglSwapBuffers</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglTerminate.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglTerminate.html
new file mode 100644
index 0000000..97a1864
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglTerminate.html
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglTerminate</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglTerminate"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglTerminate</h1>
+ <p>
+ terminate an <acronym xmlns="http://www.w3.org/1999/xhtml" class="acronym">EGL</acronym> display connection
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglTerminate</strong>(</code>
+ <td>EGLDisplay  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">display</var><code>)</code></td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>display</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies the EGL display connection to terminate.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ <code class="function">eglTerminate</code> releases resources associated with
+ an EGL display connection. Termination marks all EGL resources associated
+ with the EGL display connection for deletion. If contexts or surfaces
+ associated with <em class="parameter"><code>display</code></em> is current to any thread,
+ they are not released until they are no longer current as a result of
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>.
+ </p>
+ <p>
+ Terminating an already terminated EGL display connection has no effect.
+ A terminated display may be re-initialized by calling
+ <a class="citerefentry" href="eglInitialize.html"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
+ again.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if
+ <code class="function">eglTerminate</code> fails,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_DISPLAY</code> is generated if
+ <em class="parameter"><code>display</code></em> is not an EGL display connection.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="eglInitialize.html"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>,
+ <a class="citerefentry" href="eglMakeCurrent.html"><span class="citerefentry"><span class="refentrytitle">eglMakeCurrent</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitClient.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitClient.html
new file mode 100644
index 0000000..07db379
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitClient.html
@@ -0,0 +1,320 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglWaitClient</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglWaitClient"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglWaitClient</h1>
+ <p>
+ Complete client API execution prior to subsequent native
+ rendering calls
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglWaitClient</strong>(</code>
+ <td xmlns="http://www.w3.org/1999/xhtml"><code>void)</code>;</td>
+ <td xmlns="http://www.w3.org/1999/xhtml"> </td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ All rendering calls for the currently bound context, for the
+ current rendering API, made prior to
+ <code class="function">eglWaitClient</code> are guaranteed to be
+ executed before native rendering calls made after
+ <code class="function">eglWaitClient</code>. The same result can be
+ achieved using client API-specific commands such as
+ <a class="citerefentry" href="glFinish.html"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a>
+ or
+ <a class="citerefentry" href="vgFinish.html"><span class="citerefentry"><span class="refentrytitle">vgFinish</span></span></a>.
+ </p>
+ <p>
+ <code class="function">eglWaitClient</code> is ignored if there is no
+ current EGL rendering context for the current rendering API.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if
+ <code class="function">eglWaitClient</code> fails,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ If there is no current context for the current rendering
+ API, the function has no effect but still returns
+ <code class="constant">EGL_TRUE</code>.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CURRENT_SURFACE</code> is generated if
+ the surface associated with the current context has a native
+ window or pixmap, and that window or pixmap is no longer
+ valid.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglWaitClient</code> is supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ <code class="function">eglWaitClient</code> is a generalized version
+ of <code class="function">eglWaitGL</code>, supporting multiple
+ client APIs.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glFinish.html"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a>,
+ <a class="citerefentry" href="glFlush.html"><span class="citerefentry"><span class="refentrytitle">glFlush</span></span></a>,
+ <a class="citerefentry" href="eglWaitGL.html"><span class="citerefentry"><span class="refentrytitle">eglWaitGL</span></span></a>,
+ <a class="citerefentry" href="eglWaitNative.html"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>,
+ <a class="citerefentry" href="vgFinish.html"><span class="citerefentry"><span class="refentrytitle">vgFinish</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitGL.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitGL.html
new file mode 100644
index 0000000..681937e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitGL.html
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglWaitGL</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglWaitGL"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglWaitGL</h1>
+ <p>
+ Complete GL execution prior to subsequent native rendering
+ calls
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglWaitGL</strong>(</code>
+ <td xmlns="http://www.w3.org/1999/xhtml"><code>void)</code>;</td>
+ <td xmlns="http://www.w3.org/1999/xhtml"> </td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ All OpenGL ES rendering calls for the currently bound OpenGL
+ ES context made prior to <code class="function">eglWaitGL</code> are
+ guaranteed to be executed before native rendering calls made
+ after <code class="function">eglWaitGL</code>. The same result can be
+ achieved using
+ <a class="citerefentry" href="glFinish.html"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a>.
+ </p>
+ <p>
+ <code class="function">eglWaitGL</code> is ignored if there is no
+ current EGL rendering context for OpenGL ES.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="notes"></a>
+ <h2>Notes</h2>
+ <p>
+ <code class="function">eglWaitClient</code> is supported only if the
+ EGL version is 1.2 or greater.
+ </p>
+ <p>
+ <code class="function">eglWaitClient</code> is a generalized version
+ of <code class="function">eglWaitGL</code>, supporting multiple
+ client APIs. For backwards compatibility,
+ <code class="function">eglWaitGL</code> continues to be supported and
+ is equivalent to the series of commands
+ </p>
+ <pre class="programlisting">
+ EGLenum api = <code class="function">eglQueryAPI</code>();
+ <code class="function">eglBindAPI</code>(<code class="constant">EGL_OPENGL_ES_API</code>);
+ <code class="function">eglWaitClient</code>();
+ <code class="function">eglBindAPI</code>(api);
+ </pre>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_FALSE</code> is returned if
+ <code class="function">eglWaitGL</code> fails,
+ <code class="constant">EGL_TRUE</code> otherwise.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CURRENT_SURFACE</code> is generated if
+ the surface associated with the current context has a native
+ window or pixmap, and that window or pixmap is no longer
+ valid.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glFinish.html"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a>,
+ <a class="citerefentry" href="eglWaitClient.html"><span class="citerefentry"><span class="refentrytitle">eglWaitClient</span></span></a>
+ <a class="citerefentry" href="eglWaitNative.html"><span class="citerefentry"><span class="refentrytitle">eglWaitNative</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitNative.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitNative.html
new file mode 100644
index 0000000..a7f7b44
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/eglWaitNative.html
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <style xmlns="" type="text/css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</style>
+ <title>eglWaitNative</title>
+ <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
+ </head>
+ <body>
+ <div class="refentry">
+ <a id="eglWaitNative"></a>
+ <div class="titlepage"></div>
+ <div xmlns="" class="refnamediv">
+ <h1>eglWaitNative</h1>
+ <p>
+ complete native execution prior to subsequent GL rendering calls
+ </p>
+ </div>
+ <div class="refsynopsisdiv">
+ <h2>C Specification</h2>
+ <div class="funcsynopsis">
+ <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
+ <tr valign="bottom">
+ <td>
+ <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">EGLBoolean <strong class="fsfunc">eglWaitNative</strong>(</code>
+ <td>EGLint  <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">engine</var><code>)</code></td>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="parameters"></a>
+ <h2>Parameters</h2>
+ <div class="variablelist">
+ <dl class="variablelist">
+ <dt>
+ <span class="term">
+ <em class="parameter">
+ <code>engine</code>
+ </em>
+ </span>
+ </dt>
+ <dd>
+ <p>
+ Specifies a particular marking engine to be waited on.
+ Must be <code class="constant">EGL_CORE_NATIVE_ENGINE</code>.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="refsect1">
+ <a id="description"></a>
+ <h2>Description</h2>
+ <p>
+ Native rendering calls made prior to <code class="function">eglWaitNative</code>
+ are guaranteed to be executed before GL rendering calls made after
+ <code class="function">eglWaitNative</code>.
+ </p>
+ <p>
+ <code class="function">eglWaitNative</code>
+ is ignored if there is no current
+ <acronym class="acronym">EGL</acronym>
+ rendering context.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="errors"></a>
+ <h2>Errors</h2>
+ <p>
+ <code class="constant">EGL_BAD_PARAMETER</code> is generated if
+ <em class="parameter"><code>engine</code></em> is not a recognized marking engine.
+ </p>
+ <p>
+ <code class="constant">EGL_BAD_CURRENT_SURFACE</code>
+ is generated if the surface associated with the current context has a
+ native window or pixmap, and that window or pixmap is no longer valid.
+ </p>
+ </div>
+ <div class="refsect1">
+ <a id="seealso"></a>
+ <h2>See Also</h2>
+ <p>
+ <a class="citerefentry" href="glFinish.html"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a>,
+ <a class="citerefentry" href="glFlush.html"><span class="citerefentry"><span class="refentrytitle">glFlush</span></span></a>,
+ <a class="citerefentry" href="eglWaitClient.html"><span class="citerefentry"><span class="refentrytitle">eglWaitClient</span></span></a>,
+ <a class="citerefentry" href="eglWaitGL.html"><span class="citerefentry"><span class="refentrytitle">eglWaitGL</span></span></a>
+ </p>
+ </div>
+ <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>
+Copyright © 2003-2014 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 condition that this copyright notice and permission notice shall be included
+in all copies or substantial portions of the Materials.
+</div>
+ </div>
+ </body>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/headBackground.jpg b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/headBackground.jpg
new file mode 100644
index 0000000..9ae0c2f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/headBackground.jpg
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/index.html b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/index.html
new file mode 100644
index 0000000..43984e9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/index.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>EGL Reference Pages</title>
+<link rel="Shortcut Icon" href="http://www.khronos.org/favicon.ico" type="image/x-icon" />
+</head>
+<frameset rows="85,*">
+ <frame src="Header.html" scrolling="no" noresize frameborder="0" marginwidth="0" marginheight="0">
+ <frameset cols="25%,75%">
+ <frame src="TOC.html" scrolling="yes">
+ <frame src="Intro.html" name="pagedisplay" frameborder="0" marginwidth="0" marginheight="0">
+ </frameset>
+
+</frameset>
+</html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/maketoc.pl b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/maketoc.pl
new file mode 100644
index 0000000..3011d21
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/maketoc.pl
@@ -0,0 +1,354 @@
+# This script is obsolete. It would need to change to generate TOC.html
+# in the new format and link to .html instead of .xml files.
+
+#!/usr/bin/perl
+
+sub Usage {
+print
+"Usage: maketoc xhtmldir xmldir
+ where xhtmldir contains a directory full of OpenGL .xml XHTML man pages -AND-
+ where xmldir contains a directory full of OpenGL .xml source XML man pages
+
+ probably want to redirect output into a file like
+ ./maketoc.pl . .. > ./toc.html
+"
+}
+
+sub PrintHeader {
+print '<html>
+<head>
+<title>EGL Reference Pages</title>
+<style type="text/css">
+
+html, body, table
+{ color: #000;
+ padding: 4px 4px;
+ margin: 0px 0 0 0;
+ text-align: center;
+ font-family: Arial, Lucida, sans-serif;
+ font-size: 10pt;
+
+}
+
+#container {
+ margin: 10px;
+ font-size: 14pt;
+ text-decoration:none;
+}
+
+table.sample {
+ border-width: 1px;
+ border-spacing: 5px;
+ border-style: dotted;
+ border-color: black;
+ border-collapse: separate;
+ background-color: #F0F0F0;
+}
+table.sample th {
+ border-width: 1px;
+ padding: 5px;
+ border-style: none;
+}
+table.sample td {
+ border-width: 1px;
+ padding: 1px;
+ border-style: none;
+}
+</style>
+
+</head>
+<body>
+<a name="top"></a>
+<h1>EGL Reference Pages</h1>
+<br/><br/>
+
+';
+}
+
+sub PrintFooter {
+print '
+</body>
+</html>
+';
+}
+
+sub TableElementForFilename {
+ my $name = shift;
+
+ my $strippedname = $name;
+ $strippedname =~ s/\.xml//;
+ print "\t";
+ print '<tr><td><a target="pagedisp" href="' , $name , '">';
+ print "$strippedname";
+ print "</a></td></tr>\n";
+}
+
+sub BeginTable {
+ my $letter = shift;
+ print "<a name=\"$letter\"></a><br/><br/>\n";
+ print '<table width="220" align="center" class="sample">';
+ print "\t<th>";
+ print "$letter</th>\n";
+}
+
+sub EndTable {
+ print "\t";
+ print '<tr><td><center><a href="#top">Top</a></center></td></tr>';
+ print "\n</table>\n\n";
+}
+
+
+
+##############
+# main
+##############
+
+if (@ARGV != 2)
+{
+ Usage();
+ die;
+}
+
+# grab list of generated XHTML files
+opendir(DIR,$ARGV[0]) or die "couldn't open directory";
+
+@files = readdir(DIR);
+close(DIR);
+@files = sort @files;
+
+PrintHeader();
+
+my @glX;
+my @glut;
+my @glu;
+my @egl;
+my @gl;
+
+my @realEntrypoints;
+my @pageNames;
+
+#pre-create list of all true entrypoint names
+
+foreach (@files)
+{
+ if (/xml/)
+ {
+ $parentName = $ARGV[1] . '/' . $_;
+ if (open(PARENT, $parentName))
+ {
+ @funcs = <PARENT>;
+ @funcs = grep(/<funcdef>/, @funcs);
+ foreach (@funcs)
+ {
+ $func = $_;
+ $func =~ s/.*<function>//;
+ $func =~ s/<\/function>.*\n//;
+
+ push (@realEntrypoints, $func);
+ }
+ close(PARENT);
+ }
+ }
+}
+
+#pre-create list of page names
+
+foreach (@files)
+{
+ if (/xml/)
+ {
+ $parentName = $ARGV[1] . '/' . $_;
+ if (open(PARENT, $parentName))
+ {
+ my $entrypoint = $_;
+ $entrypoint =~ s/\.xml//;
+
+ push (@pageNames, $entrypoint);
+
+ close(PARENT);
+ }
+ }
+}
+
+#sort the files into gl, glut, glu, EGL, and glX
+
+foreach (@files)
+{
+ if (/xml/)
+ {
+ # filter out entrypoint variations that don't have their own man pages
+ my $needIndexEntry = 0;
+
+ # continue only if parent page exists (e.g. glColor) OR
+ # different parent page exists with matching entrypoint (e.g. glEnd)
+ my $entrypoint = $_;
+ $entrypoint =~ s/\.xml//;
+
+ foreach (@pageNames)
+ {
+ if ($_ eq $entrypoint)
+ {
+ # it has its own man page
+ $needIndexEntry = 1;
+ }
+ }
+
+ if ($needIndexEntry == 0)
+ {
+ foreach (@realEntrypoints)
+ {
+ if ($_ eq $entrypoint)
+ {
+ # it's a real entrypoint, but make sure not a variation
+ $needIndexEntry = 1;
+
+ foreach (@pageNames)
+ {
+ my $alteredEntrypoint = $entrypoint;
+ $alteredEntrypoint =~ s/$_//;
+
+ if (!($alteredEntrypoint eq $entrypoint))
+ {
+ $needIndexEntry = 0;
+ }
+ }
+ }
+ }
+ }
+
+ if ($needIndexEntry)
+ {
+ if (/^glX/)
+ {
+ push (@glX, $_);
+ }
+ elsif (/^glut/)
+ {
+ push (@glut, $_);
+ }
+ elsif (/^glu/)
+ {
+ push (@glu, $_);
+ }
+ elsif (/^egl/)
+ {
+ push (@egl, $_);
+ }
+ elsif (/^gl/)
+ {
+ push (@gl, $_);
+ }
+ }
+ }
+}
+
+
+#output the table of contents
+
+my @toc;
+
+if ($#gl > 0)
+{
+ $currentletter = "";
+ $opentable = 0;
+
+ foreach (@gl)
+ {
+ $name = $_;
+ $name =~ s/^gl//;
+ $firstletter = substr($name, 0, 1);
+ if ($firstletter ne $currentletter)
+ {
+ push (@toc, $firstletter);
+ $currentletter = $firstletter;
+ }
+ }
+ if ($#egl > 0) { push (@toc, "egl"); }
+ if ($#glu > 0) { push (@toc, "glu"); }
+ if ($#glut > 0) { push (@toc, "glut"); }
+ if ($#glX > 0) { push (@toc, "glX"); }
+}
+
+
+print '<div id="container">';
+foreach (@toc)
+{
+ print '<b><a href="#';
+ print $_;
+ print '" style="text-decoration:none"> ';
+ print $_;
+ print " </a></b> &nbsp; ";
+}
+print "</div>\n\n\n";
+
+# output the tables
+
+if ($#gl > 0)
+{
+ $currentletter = "";
+ $opentable = 0;
+
+ foreach (@gl)
+ {
+ $name = $_;
+ $name =~ s/^gl//;
+ $firstletter = substr($name, 0, 1);
+ if ($firstletter ne $currentletter)
+ {
+ if ($opentable == 1)
+ {
+ EndTable();
+ }
+ BeginTable($firstletter);
+ $opentable =1;
+ $currentletter = $firstletter;
+ }
+ TableElementForFilename($_);
+ }
+ if ($opentable)
+ {
+ EndTable();
+ }
+}
+
+if ($#egl > 0)
+{
+ BeginTable("egl");
+ foreach (@egl)
+ {
+ TableElementForFilename($_);
+ }
+ EndTable();
+}
+
+if ($#glu > 0)
+{
+ BeginTable("glu");
+ foreach (@glu)
+ {
+ TableElementForFilename($_);
+ }
+ EndTable();
+}
+
+if ($#glut > 0)
+{
+ BeginTable("glut");
+ foreach (@glut)
+ {
+ TableElementForFilename($_);
+ }
+ EndTable();
+}
+
+if ($#glX > 0)
+{
+ BeginTable("glX");
+ foreach (@glX)
+ {
+ TableElementForFilename($_);
+ }
+ EndTable();
+}
+
+PrintFooter();
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/opengl-man.xsl b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/opengl-man.xsl
new file mode 100644
index 0000000..1e725bc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/opengl-man.xsl
@@ -0,0 +1,49 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/profile-docbook.xsl"/>
+
+<xsl:param name="funcsynopsis.style">ansi</xsl:param>
+<xsl:param name="citerefentry.link" select="'1'"></xsl:param>
+<xsl:template name="generate.citerefentry.link"><xsl:value-of select="refentrytitle"/>.xml</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+ <xsl:variable name="doc" select="self::*"/>
+
+ <xsl:call-template name="user.preroot"/>
+ <xsl:call-template name="root.messages"/>
+
+ <html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" pref:renderer="mathplayer-dl">
+ <head>
+ <xsl:call-template name="system.head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:call-template name="head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:call-template name="user.head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:call-template name="body.attributes"/>
+ <xsl:call-template name="user.header.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="."/>
+ <xsl:call-template name="user.footer.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="/">
+ <xsl:processing-instruction name="xml-stylesheet">
+ <xsl:text>type="text/xsl" href="mathml.xsl"</xsl:text>
+ </xsl:processing-instruction>
+ <xsl:apply-imports/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/present.css b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/present.css
new file mode 100644
index 0000000..7868f93
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/present.css
@@ -0,0 +1,47 @@
+@charset "utf-8";
+/* CSS Document */
+ li { font: normal 14px verdana, sans-serif; line-height: 14px; }
+ ul { font: normal 14px verdana, sans-serif; line-height: 14px; }
+ a:link, a:visited {color:blue; text-decoration:none;}
+ a:hover {color:blue; text-decoration:none; background-color:FFFF99; }
+
+ #navwrap {
+ width: 320px;
+ margin:0 0 0 4px;
+ padding:0;
+ }
+
+ #containerul, #containerul ul{
+ text-align:left;
+ margin:0 0 0 4px; /* Removes browser default margins applied to the lists. */
+ padding:0; /* Removes browser default padding applied to the lists. */
+ }
+
+ #containerul li{
+ margin:0 0 0 15px; /* A left margin to indent the list items and give the menu a sense of structure. */
+ padding:4px 0 0 2px;
+ list-style-type:none; /* Removes the bullet point that usually goes next to each item in a list. */
+ font: normal 12px verdana, sans-serif;
+ }
+
+ #containerul li.lev1 {
+ margin:0 0 0 0;
+ padding:4px 0 0 2px;
+ list-style-type:none; /* Removes the bullet point that usually goes next to each item in a list. */
+ font: normal 14px verdana, sans-serif;
+ }
+
+ #containerul .symbols{ /* Various styles to position the symbols next to the items in the menu. */
+ background-repeat:no-repeat;
+ float:left;
+ height:14px;
+ margin-right:5px;
+ margin-top:1px;
+ width:14px;
+ }
+
+#containerul ul.Level2 {
+ margin:0;
+ padding: 0;
+ }
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/style.css b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/style.css
new file mode 100644
index 0000000..00fd1ed
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/style.css
@@ -0,0 +1,2 @@
+@import url("undohtml.css");
+@import url("present.css");
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/styles-css.xsl b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/styles-css.xsl
new file mode 100644
index 0000000..498654e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/styles-css.xsl
@@ -0,0 +1,214 @@
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:param name="annotation.css">
+ /* This style sets a margin around the entire page */
+ html, body {
+ margin: 10px;
+ }
+
+ p {
+ font: normal 16px verdana, sans-serif;
+ margin: 0;
+ padding-bottom:12px;
+ }
+
+ h1 {
+ font: bold 25px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h2 {
+ font: bold 19px verdana, sans-serif;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ h3 {
+ font: bold 19px verdana, sans-serif !important;
+ margin-top: 28px;
+ margin-bottom: 3px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ li {
+ font: normal 16px verdana, sans-serif;
+ margin-top: 0;
+ margin-bottom: 18px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .pdparam {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ .term {
+ font: italic 16px verdana, sans-serif;
+ font-weight: normal;
+ }
+
+ .type {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ font: normal 16px;
+ }
+
+ a:hover {
+ background-color: #FFFF99;
+ font: normal 16px;
+ }
+
+ div.funcsynopsis {
+ text-align: left;
+ background-color: #e6e6e6;
+ font: normal 16px verdana, sans-serif;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+
+ div.funcsynopsis table {
+ border-collapse: separate;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.funcsynopsis td {
+ background-color: #e6e6e6;
+ border: 0 solid #000;
+ padding: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 {
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ }
+
+ code.constant {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ span.errorname {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ code.function {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ b.fsfunc {
+ font: bold 16px verdana, sans-serif !important;
+ }
+
+ code.varname {
+ font: italic 16px verdana, sans-serif;
+ }
+
+ code.replaceable {
+ font: italic 16px courier new, monospace;
+ }
+
+ code.funcdef {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .citerefentry {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ .parameter {
+ font-style: italic;
+ }
+
+ code.fsfunc {
+ font: normal 16px verdana, sans-serif !important;
+ }
+
+ /* PARAMETER: This style controls spacing between the terms in Parameter section */
+ dt {
+ margin-top: 15px;
+ }
+
+ /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
+ div.refsect1 table {
+ width: 100%;
+ margin-top: 10px;
+ background-color: #FFF;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 th {
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: bold 16px verdana, sans-serif;
+ }
+
+ div.refsect1 td {
+ background-color: #FFF;
+ padding: 5px;
+ vertical-align: text-top;
+ border-collapse: collapse;
+ border-color: #000;
+ border-width: 1px;
+ font: normal 16px verdana, sans-serif;
+ }
+
+ div.refsect1 p{
+ font: normal 16px verdana, sans-serif;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+
+ /* EXAMPLE: These styles apply only to the Example section */
+ div.refsect2 {
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 table {
+ margin-top: 0;
+ background-color: #e6e6e6;
+ width: 100%;
+ border: 0 solid #000;
+ padding: 2px;
+ font: normal 16px courier new, monospace !important;
+ }
+
+ div.refsect2 td {
+ background-color: #e6e6e6;
+ font: normal 16px courier new, monospace !important;
+ white-space:pre;
+ }
+
+ /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
+ div.refsect3 {
+ font: normal 11px verdana, sans-serif;
+ margin-top: 50px;
+ margin-bottom: 20px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+</xsl:param>
+</xsl:stylesheet>
+
+
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/undohtml.css b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/undohtml.css
new file mode 100644
index 0000000..a2d510f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/undohtml.css
@@ -0,0 +1,9 @@
+/* -- undo browser HTML defaults -- */
+/* -- Global resets of all default items -- */
+
+:link,:visited {text-decoration: none;}
+ul,ol {list-style: none;}
+h1,h2,h3,h4,h5,h6,pre,code,p {font-size: 1em;}
+ul,ol,dl,li,dt,dd,h1,h2,h3,h4,h5,h6,pre,form,body,html,p,blockquote,fieldset,input {margin: 0; padding: 0;}
+a img,:link img,:visited img {border: none;}
+address {font-style: normal;}
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/EGLTechNote0001.html b/engine-ocean/External/glew/auto/EGL-Registry/specs/EGLTechNote0001.html
new file mode 100644
index 0000000..ed98604
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/EGLTechNote0001.html
@@ -0,0 +1,110 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>EGL Technical Note #1 - EGL 1.4 and Ancillary Buffer Preservation</title><link rel="stylesheet" href="igstyle.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.1"><meta name="description" content="Summarizes ancillary buffer preservation issues across eglSwapBuffers, including recent changes to behavior defined by the EGL 1.4 Specification."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="article" title="EGL Technical Note #1 - EGL 1.4 and Ancillary Buffer Preservation"><div class="titlepage"><div><div><h2 class="title"><a name="id2598382"></a>EGL Technical Note #1 - EGL 1.4 and Ancillary Buffer Preservation</h2></div><div><p class="edition"> First Edition</p></div><div><p class="releaseinfo"></p></div><div><div class="authorgroup"><div class="editor"><h4 class="editedby">Edited by</h4><h3 class="editor"><span class="firstname">Jon</span> <span class="surname">Leech</span></h3><div class="affiliation"><span class="orgname">Khronos Group<br></span></div></div></div></div><div><p class="copyright">Copyright © 2010 The Khronos Group Inc.</p></div><div><a href="legal.html">Legal Notice</a></div><div><div class="abstract" title="Abstract"><p class="title"><b>Abstract</b></p><p> Summarizes <em class="glossterm"><a class="glossterm" href="#ancillary" title="Ancillary Buffers">ancillary
+ buffer</a></em> preservation issues across
+ <code class="code">eglSwapBuffers</code>, including recent changes to
+ behavior defined by the EGL 1.4 Specification. </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#introduction">1. Introduction</a></span></dt><dt><span class="section"><a href="#usecases">2. Use Cases for Buffer Preservation </a></span></dt><dt><span class="section"><a href="#bufquery">3. Color Buffer Preservation Queries and Controls </a></span></dt><dt><span class="section"><a href="#nocontrol">4. No Control of Auxillary Buffer Preservation; Compatibility
+ Issues </a></span></dt><dt><span class="section"><a href="#extensions">5. EGL Extensions for Control of Ancillary Buffer Preservation
+ </a></span></dt><dt><span class="appendix"><a href="#id2602337">A. Glossary</a></span></dt><dt><span class="appendix"><a href="#id2595698">B. Document History</a></span></dt><dt><span class="appendix"><a href="#id2585500">C. Acknowledgements</a></span></dt></dl></div><div class="mediaobject" align="center"><img src="Khronos-1600-Transparent-May07.png" align="middle" width="270" alt="Khronos Group logo"></div><div class="section" title="1. Introduction"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="introduction"></a>1. Introduction</h2></div></div></div><p> Calling <code class="code">eglSwapBuffers</code> may or may not result in
+ the preservation of the contents of the color buffer and
+ ancillary buffers (depth, stencil, and alpha mask) of the
+ surface being swapped. Some applications may rely on buffer
+ contents being preserved. This note discusses scenarios in
+ which buffer preservation is desirable, describes all the EGL
+ entry points and attributes relevant to buffer preservation,
+ and describes a change in preservation behavior made in the
+ <a class="ulink" href="http://www.khronos.org/registry/egl/" target="_top"> EGL 1.4
+ Specification </a> update of February 23, 2010. This
+ change may require changes to certain applications which rely
+ on ancillary buffer preservation and are being moved to new
+ platforms or new EGL implementations. </p><p> Many applications do not require buffer preservation, since
+ they clear all buffers being used and completely redraw their
+ contents for each frame. Such applications need not consider
+ the issues discussed in this note. </p></div><div class="section" title="2.  Use Cases for Buffer Preservation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="usecases"></a>2.  Use Cases for Buffer Preservation </h2></div></div></div><p> An example of the use of buffer preservation is an
+ application which wishes to build up an image step by step by
+ drawing multiple layers, and to display the partial images
+ resulting from each each successive layer being drawn.
+ </p><p> If color and ancillary buffer contents are known to be
+ preserved across <code class="code">eglSwapBuffers</code>, such an
+ application can construct and display each step by drawing
+ only the most recent layer and performing
+ <code class="code">eglSwapBuffers</code>. </p><p> If buffer contents are not known to be preserved, the
+ application can instead, for each frame being displayed,
+ redraw all layers up to the most recent. Alternatively, the
+ application may explicitly save the contents of required
+ buffers by reading them back (with e.g.
+ <code class="code">glReadPixels</code>) prior to
+ <code class="code">eglSwapBuffers</code>, and restore them (with e.g.
+ <code class="code">glDrawPixels</code> or drawing a textured quad) prior
+ to drawing the next layer. However, both of these approaches
+ are likely to incur significant performance penalties.
+ </p></div><div class="section" title="3.  Color Buffer Preservation Queries and Controls"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bufquery"></a>3.  Color Buffer Preservation Queries and Controls </h2></div></div></div><p> To determine if <code class="code">eglSwapBuffers</code> will preserve
+ color buffer contents of a surface, call </p><p> <code class="code">
+ eglQuerySurface(dpy, surface, EGL_SWAP_BEHAVIOR, &amp;value);
+ </code> </p><p> where <code class="code">surface</code> is the <span class="type">EGLSurface</span>
+ being queried, <code class="code">dpy</code> is the
+ <span class="type">EGLDisplay</span> <code class="code">surface</code> belongs to, and
+ <code class="code">value</code> is a pointer to an <span class="type">EGLint</span>. On
+ success, <code class="code">*value</code> will contain either
+ <code class="constant">EGL_BUFFER_PRESERVED</code>, indicating that
+ color buffer contents are preserved, or
+ <code class="constant">EGL_BUFFER_DESTROYED</code>, indicating that
+ color buffer contents are not preserved. </p><p> Some surfaces allow applications to control whether or not
+ the color buffer contents are preserved. If
+ <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code> is set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of the
+ <span class="type">EGLConfig</span> used to create <code class="code">surface</code>,
+ then calling </p><p> <code class="code">
+ eglSurfaceAttrib(dpy, surface, EGL_SWAP_BEHAVIOR,
+ EGL_BUFFER_PRESERVED)
+ </code> </p><p> will cause color buffer contents to be preserved across
+ future calls to <code class="code">eglSwapBuffers</code>, while calling
+ </p><p> <code class="code">
+ eglSurfaceAttrib(dpy, surface, EGL_SWAP_BEHAVIOR,
+ EGL_BUFFER_DESTOYED)
+ </code> </p><p> will cause color buffer contents to not be preserved. When
+ this control is available, there may be a significant
+ performance penalty for requesting color buffer preservation.
+ </p><p> If <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code> is
+ not set in the <code class="constant">EGL_SURFACE_TYPE</code>
+ attribute, then control of color buffer preservation is not
+ allowed for this surface. In this case, calling
+ <code class="code">eglSurfaceAttrib</code> with <code class="code">attribute</code>
+ <code class="constant">EGL_SWAP_BEHAVIOR</code> will fail and generate
+ an <code class="constant">EGL_BAD_MATCH</code> error. </p></div><div class="section" title="4.  No Control of Auxillary Buffer Preservation; Compatibility Issues"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="nocontrol"></a>4.  No Control of Auxillary Buffer Preservation; Compatibility
+ Issues </h2></div></div></div><p> In versions of the EGL 1.4 Specification prior to February 23,
+ 2010, the specification implied that the color buffer
+ preservation behavior described above also applied to ancillary
+ (depth, stencil, and alpha mask) buffer contents. The
+ Specification of February 23, 2010 revises the buffer
+ preservation queries and controls and explicitly states that
+ they only apply to the color buffer. </p><p> As a result, the EGL 1.4 API has no way to determine or
+ control whether <code class="code">eglSwapBuffers</code> will preserve
+ ancillary buffer contents. Some implementations do so and
+ some do not. We know that this is a backwards-incompatible
+ change. The change was made because some common hardware
+ incurs very high penalties for ancillary buffer preservation.
+ Despite what prior versions of the Specification said, EGL
+ implementations on these devices often did not preserve
+ ancillary buffers. Khronos felt that developers would be
+ better off if we explicitly acknowledged this situation.
+ </p><p> This change in the Specification is not expected to result in
+ changes to implementations, and therefore driver updates are
+ unlikely to adversely affect any application which relies on
+ ancillary buffer preservation. However, developers of such
+ applications must be aware that when porting to another
+ platform, they may find that ancillary buffer contents are
+ not preserved. </p></div><div class="section" title="5.  EGL Extensions for Control of Ancillary Buffer Preservation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="extensions"></a>5.  EGL Extensions for Control of Ancillary Buffer Preservation
+ </h2></div></div></div><p> The EGL Working Group is currently developing an EGL extension
+ which will allow explicitly control over ancillary buffer
+ preservation in a fashion similar to color buffer preservation.
+ We expect this extension specification to be completed later in
+ 2010. Vendors will then choose whether or not to implement the
+ extension in their drivers. The extension specification will
+ be published in the
+ <a class="ulink" href="http://www.khronos.org/registry/egl/" target="_top"> Khronos
+ Registry</a> when it is finalized. </p></div><div class="appendix" title="A. Glossary"><h2 class="title" style="clear: both"><a name="id2602337"></a>A. Glossary</h2><div class="glosslist"><dl><dt><a name="ancillary"></a>Ancillary Buffers</dt><dd><p> Buffers of an <span class="type">EGLSurface</span> other than the
+ color buffer. These may include the depth and/or stencil
+ buffers for use by OpenGL ES, and the alpha mask buffer for
+ use by OpenVG. </p></dd></dl></div></div><div class="appendix" title="B. Document History"><h2 class="title" style="clear: both"><a name="id2595698"></a>B. Document History</h2><div class="revhistory"><table border="0" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr><tr><td align="left">Revision 1.0</td><td align="left">March 30, 2010</td><td align="left">jpl</td></tr><tr><td class="revremark" align="left" colspan="3">Public Release.</td></tr></table></div></div><div class="appendix" title="C. Acknowledgements"><h2 class="title" style="clear: both"><a name="id2585500"></a>C. Acknowledgements</h2><p>Members of the Khronos EGL Working Group, especially Acorn
+ Pooley, Ben Bowman, Ian Romanick, Mark Callow, and Maurice Ribble.
+ Additional thanks to Mark Callow for the Docbook stylesheets and
+ build process used to build this document</p></div></div></body></html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/Khronos-1600-Transparent-May07.png b/engine-ocean/External/glew/auto/EGL-Registry/specs/Khronos-1600-Transparent-May07.png
new file mode 100644
index 0000000..0793268
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/Khronos-1600-Transparent-May07.png
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.0.pdf b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.0.pdf
new file mode 100644
index 0000000..82c5cd0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.0.pdf
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.1.pdf b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.1.pdf
new file mode 100644
index 0000000..0ce2eea
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.1.pdf
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.2.pdf b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.2.pdf
new file mode 100644
index 0000000..53fbf53
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.2.pdf
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.3.pdf b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.3.pdf
new file mode 100644
index 0000000..5535fb3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.3.pdf
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.4.pdf b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.4.pdf
new file mode 100644
index 0000000..1032035
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.4.pdf
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdf b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdf
new file mode 100644
index 0000000..c8f474a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdf
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.5.pdf b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.5.pdf
new file mode 100644
index 0000000..7206fe4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.5.pdf
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdf b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdf
new file mode 100644
index 0000000..056d63a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdf
Binary files differ
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/igstyle.css b/engine-ocean/External/glew/auto/EGL-Registry/specs/igstyle.css
new file mode 100644
index 0000000..447b0df
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/igstyle.css
@@ -0,0 +1,185 @@
+/* vi: set sw=2 ts=4: */
+
+/*
+ $HeadURL: https://cvs.khronos.org/svn/repos/util/trunk/doc/iguide/igstyle.css $
+ $Revision: 7453 $
+ $Author: markc $
+*/
+
+body {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-weight: normal;
+ color: #333333;
+ background-color: white;
+ margin: 4em;
+ max-width: 50em;
+}
+
+h1 {
+ color: #00A6A6;
+}
+
+h2, h3, h4, h5, h6 {
+ color: #146A68;
+}
+
+/* Set space between editedby and editor to 0.5em.
+ * editor margin-top contributes to this.
+ */
+h4.editedby {
+ margin-bottom: 0.5em;
+}
+
+/* Remove spaces between editedby & editor and editor & affiliation.
+ * affiliation is a div so there's no top-margin to fix.
+ */
+h3.editor {
+ margin-top: 0;
+ /* color: #333333; */
+ margin-bottom: 0;
+}
+
+/* Remove space between copyright and legal notice lines.
+ * Legal notice is in a div so there's no top-margin to fix.
+ */
+p.copyright {
+ margin-bottom: 0;
+}
+
+/* Remove space between edition, docrev & releaseinfo.*/
+p.edition {
+ margin-bottom: 0;
+}
+
+p.docrev {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+p.releaseinfo {
+ margin-top: 0;
+}
+
+p.title {
+ color: #146A68;
+}
+
+a {
+ text-decoration: none;
+}
+
+/* The following a: pseudo-class order is necessary in
+ * order to be effective.
+ */
+a:link {
+ color: #009999;
+}
+
+a:visited {
+ color: #006699;
+}
+
+a:hover {
+ color: #00CCCC;
+}
+
+a:active {
+ color: #0000FF;
+}
+
+code.code {
+ white-space: nowrap;
+}
+
+/* Increase space before abstract. */
+div.abstract > p.title {
+ margin-top: 3em;
+
+}
+
+div.footnote {
+ font-size: small;
+}
+
+div.legalnotice {
+ font-size: x-small;
+}
+
+div.article > div.titlepage {
+ text-align: center;
+}
+
+table {
+ border-collapse: collapse;*/
+ /*border-spacing: 0;*/
+ border-style: ridge;
+}
+
+td {
+ padding: 0.3em;
+}
+
+th {
+ padding: 0.3em;
+ /* background-color: #FFDEAD; */
+ background-color: #EBD8AF;
+}
+
+th:first-child {
+ /* background-color: #EFEFEF; */
+ background-color: #EBE57B;
+}
+
+.informalexample {
+ /*background-color: #D7D9D9;*/
+ background-color: #EBEBEB;
+ border: thin dashed #146A68;
+}
+
+/* override width="100%" set by xls style sheet. */
+div.revhistory > table {
+ width: auto;
+ border: thin solid;
+ font-size: small;
+ background-color: #EBEBEB;
+}
+
+div.revhistory > table th {
+ border-bottom: thin solid;
+}
+
+div.revhistory > table td {
+ border: thin dotted;
+}
+
+div.revhistory > table td.revremark {
+ border-bottom: thin solid;
+}
+
+.remark {
+ background-color: yellow;
+ color: maroon;
+}
+
+/* Haven't found a way to select .remark *except* when it's a child of
+ * .releaseinfo so I've had to add this. I tried the negation
+ * pseudo-operator without success.
+.releaseinfo .remark {
+ background-color: white;
+ color: #333333;
+}
+*/
+
+/* Selector notes:
+ * See http://css.maxdesign.com.au/selectutorial/selectors_adjacent.htm
+ *
+ * A B selects a B that is a descendant of A.
+ * A > B selects a B that is a direct child of A.
+ * A + B selects a B that immediately follows an A where A & B are siblings.
+ * #foo is an id selector; can do A#foo to select an A with id="foo".
+ * .bar is a class selector; can do A.bar to select an A with class="bar".
+ * A[attrib<=value>] is an attribute selector. It selects an A with "attrib"
+ * specified. Optionally a specific attribute value can also be specified.
+ * A:b is pseudo-element or pseudo-class selector. Examples are first-child,
+ * visited, hover, first-line, first-letter.
+ */
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/legal.html b/engine-ocean/External/glew/auto/EGL-Registry/specs/legal.html
new file mode 100644
index 0000000..1cc20b4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/legal.html
@@ -0,0 +1,34 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Legal Notice</title><link rel="stylesheet" href="igstyle.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="legalnotice" title="Legal Notice"><p>This document is protected by copyright laws and contains material
+ proprietary to the Khronos Group, Inc. It or any components may not be
+ reproduced, republished, distributed, transmitted, displayed, broadcast
+ or otherwise exploited in any manner without the express prior written
+ permission of Khronos Group. The receipt or possession of this document
+ does not convey any rights to reproduce, disclose, or distribute its
+ contents, or to manufacture, use, or sell anything that it may describe,
+ in whole or in part.</p><p>Khronos Group grants express permission to any current Promoter,
+ Contributor or Adopter member of Khronos to copy and redistribute
+ UNMODIFIED versions of this document in any fashion, provided that NO
+ CHARGE is made for the document and the latest available update of the
+ document is used whenever possible. Such distributed document may be
+ re-formatted AS LONG AS the contents of the document are not changed in
+ any way. The document may be incorporated into a product that is sold as
+ long as such product includes significant independent work developed by
+ the seller. A link to the current version of this document on the
+ Khronos Group web-site should be included whenever possible with
+ document distributions.</p><p>Khronos Group makes no, and expressly disclaims any,
+ representations or warranties, express or implied, regarding this
+ document, including, without limitation, any implied warranties of
+ merchantability or fitness for a particular purpose or non-infringement
+ of any intellectual property. Khronos Group makes no, and expressly
+ disclaims any, warranties, express or implied, regarding the
+ correctness, accuracy, completeness, timeliness, and reliability of the
+ document. Under no circumstances will the Khronos Group, or any of its
+ Promoters, Contributors or Members or their respective partners,
+ officers, directors, employees, agents or representatives be liable for
+ any damages, whether direct, indirect, special or consequential damages
+ for lost revenues, lost profits, or otherwise, arising from or in
+ connection with these materials.</p><p><span class="trademark">Khronos</span><sup>&#8482;</sup> is a trademark of The
+ Khronos Group Inc. <span class="trademark">OpenGL</span><sup>®</sup> is a
+ registered trademark, and <span class="trademark">OpenGL
+ ES</span><sup>&#8482;</sup>is a trademark, of Silicon Graphics, Inc. All other marks
+ are the property of their respective owners.</p></div></body></html>
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/specs/legal.xhtml b/engine-ocean/External/glew/auto/EGL-Registry/specs/legal.xhtml
new file mode 100644
index 0000000..0102d61
--- /dev/null
+++ b/engine-ocean/External/glew/auto/EGL-Registry/specs/legal.xhtml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Legal Notice</title><link rel="stylesheet" href="igstyle.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.74.0" /></head><body><div class="legalnotice"><p>This document is protected by copyright laws and contains material
+ proprietary to the Khronos Group, Inc. It or any components may not be
+ reproduced, republished, distributed, transmitted, displayed, broadcast
+ or otherwise exploited in any manner without the express prior written
+ permission of Khronos Group. The receipt or possession of this document
+ does not convey any rights to reproduce, disclose, or distribute its
+ contents, or to manufacture, use, or sell anything that it may describe,
+ in whole or in part.</p><p>Khronos Group grants express permission to any current Promoter,
+ Contributor or Adopter member of Khronos to copy and redistribute
+ UNMODIFIED versions of this document in any fashion, provided that NO
+ CHARGE is made for the document and the latest available update of the
+ document is used whenever possible. Such distributed document may be
+ re-formatted AS LONG AS the contents of the document are not changed in
+ any way. The document may be incorporated into a product that is sold as
+ long as such product includes significant independent work developed by
+ the seller. A link to the current version of this document on the
+ Khronos Group web-site should be included whenever possible with
+ document distributions.</p><p>Khronos Group makes no, and expressly disclaims any,
+ representations or warranties, express or implied, regarding this
+ document, including, without limitation, any implied warranties of
+ merchantability or fitness for a particular purpose or non-infringement
+ of any intellectual property. Khronos Group makes no, and expressly
+ disclaims any, warranties, express or implied, regarding the
+ correctness, accuracy, completeness, timeliness, and reliability of the
+ document. Under no circumstances will the Khronos Group, or any of its
+ Promoters, Contributors or Members or their respective partners,
+ officers, directors, employees, agents or representatives be liable for
+ any damages, whether direct, indirect, special or consequential damages
+ for lost revenues, lost profits, or otherwise, arising from or in
+ connection with these materials.</p><p><span class="trademark">Khronos</span><sup xmlns="">â„¢</sup> is a trademark of The
+ Khronos Group Inc. <span class="trademark">OpenGL</span><sup xmlns="">®</sup> is a
+ registered trademark, and <span class="trademark">OpenGL
+ ES</span><sup xmlns="">â„¢</sup>is a trademark, of Silicon Graphics, Inc. All other marks
+ are the property of their respective owners.</p></div></body></html>
diff --git a/engine-ocean/External/glew/auto/bin/filter_gl_ext.sh b/engine-ocean/External/glew/auto/bin/filter_gl_ext.sh
new file mode 100644
index 0000000..e295f65
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/filter_gl_ext.sh
@@ -0,0 +1,614 @@
+#!/usr/bin/env bash
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+##
+## Parameters:
+##
+## $1: Extensions directory
+
+set -e
+
+# fix GL_NV_texture_compression_vtc
+ grep -v EXT $1/GL_NV_texture_compression_vtc > tmp
+ mv tmp $1/GL_NV_texture_compression_vtc
+
+# remove duplicates from GL_ARB_vertex_program and GL_ARB_fragment_program
+ tail -n +5 $1/GL_ARB_vertex_program > patterns
+ grep -v -F -f patterns $1/GL_ARB_fragment_program > tmp
+ mv tmp $1/GL_ARB_fragment_program
+
+# remove duplicates from GLX_EXT_visual_rating and GLX_EXT_visual_info
+ tail -n +5 $1/GLX_EXT_visual_info > patterns
+ grep -v -F -f patterns $1/GLX_EXT_visual_rating > tmp
+ mv tmp $1/GLX_EXT_visual_rating
+
+# GL_EXT_draw_buffers2 and GL_EXT_transform_feedback both define glGetBooleanIndexedvEXT but with different parameter names
+ grep -v glGetBooleanIndexedvEXT $1/GL_EXT_transform_feedback > tmp
+ mv tmp $1/GL_EXT_transform_feedback
+
+# GL_EXT_draw_buffers2 and GL_EXT_transform_feedback both define glGetIntegerIndexedvEXT but with different parameter names
+ grep -v glGetIntegerIndexedvEXT $1/GL_EXT_transform_feedback > tmp
+ mv tmp $1/GL_EXT_transform_feedback
+
+# remove duplicates from GL_NV_video_capture and GLX_NV_video_capture
+ grep -v glX $1/GL_NV_video_capture > tmp
+ mv tmp $1/GL_NV_video_capture
+
+# add missing functions to GL_NV_video_capture
+ cat >> $1/GL_NV_video_capture <<EOT
+ void glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params)
+ void glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params)
+ void glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params)
+ void glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params)
+ void glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params)
+ void glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params)
+EOT
+
+# fix WGL_NV_video_capture
+ cat >> $1/WGL_NV_video_capture <<EOT
+ DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
+EOT
+
+# fix GLX_NV_video_capture
+ cat >> $1/GLX_NV_video_capture <<EOT
+ typedef XID GLXVideoCaptureDeviceNV
+EOT
+
+# remove duplicates from GL_NV_present_video and GLX_NV_present_video
+ tail -n +5 $1/GLX_NV_present_video > patterns
+ grep -v -F -f patterns $1/GL_NV_present_video > tmp
+ mv tmp $1/GL_NV_present_video
+
+# fix WGL_NV_present_video
+ cat >> $1/WGL_NV_present_video <<EOT
+ DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
+EOT
+
+# fix WGL_NV_video_output
+ cat >> $1/WGL_NV_video_output <<EOT
+ DECLARE_HANDLE(HPVIDEODEV);
+EOT
+
+# fix GL_NV_occlusion_query and GL_HP_occlusion_test
+ grep -v '_HP' $1/GL_NV_occlusion_query > tmp
+ mv tmp $1/GL_NV_occlusion_query
+
+# add deprecated constants to GL_ATI_fragment_shader
+ cat >> $1/GL_ATI_fragment_shader <<EOT
+ GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
+ GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
+ GL_NUM_PASSES_ATI 0x8970
+ GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
+ GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
+ GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
+ GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
+ GL_COLOR_ALPHA_PAIRING_ATI 0x8975
+ GL_SWIZZLE_STRQ_ATI 0x897A
+ GL_SWIZZLE_STRQ_DQ_ATI 0x897B
+EOT
+
+# add deprecated constants to GL_NV_texture_shader
+ cat >> $1/GL_NV_texture_shader <<EOT
+ GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1
+ GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3
+ GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2
+EOT
+
+# fix WGL_ATI_pixel_format_float
+ cat >> $1/WGL_ATI_pixel_format_float <<EOT
+ GL_RGBA_FLOAT_MODE_ATI 0x8820
+ GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
+EOT
+
+# fix WGL_ARB_make_current_read
+ cat >> $1/WGL_ARB_make_current_read <<EOT
+ ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
+ ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
+EOT
+
+# fix WGL_EXT_make_current_read
+ cat >> $1/WGL_EXT_make_current_read <<EOT
+ ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
+EOT
+
+# add typedefs to GL_ARB_vertex_buffer_object; (from personal communication
+# with Marco Fabbricatore).
+#
+# Rationale. The spec says:
+#
+# "Both types are defined as signed integers large enough to contain
+# any pointer value [...] The idea of making these types unsigned was
+# considered, but was ultimately rejected ..."
+ cat >> $1/GL_ARB_vertex_buffer_object <<EOT
+ typedef ptrdiff_t GLsizeiptrARB
+ typedef ptrdiff_t GLintptrARB
+EOT
+
+# add typedefs to GLX_EXT_import_context
+ cat >> $1/GLX_EXT_import_context <<EOT
+ typedef XID GLXContextID
+EOT
+
+# add tokens to GLX_OML_swap_method
+ cat >> $1/GLX_OML_swap_method <<EOT
+ GLX_SWAP_EXCHANGE_OML 0x8061
+ GLX_SWAP_COPY_OML 0x8062
+ GLX_SWAP_UNDEFINED_OML 0x8063
+EOT
+
+# add typedefs to GLX_SGIX_fbconfig
+ cat >> $1/GLX_SGIX_fbconfig <<EOT
+ typedef XID GLXFBConfigIDSGIX
+ typedef struct __GLXFBConfigRec *GLXFBConfigSGIX
+EOT
+
+# Skip GLX_SGIX_dmbuffer and GLX_SGIX_video_source
+# unknown DMparams, DMbuffer, etc
+ rm -f $1/GLX_SGIX_dmbuffer
+ rm -f $1/GLX_SGIX_video_source
+
+# add typedefs to GLX_SGIX_pbuffer
+ cat >> $1/GLX_SGIX_pbuffer <<EOT
+ typedef XID GLXPbufferSGIX
+ typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX
+EOT
+
+# add typedef to GL_NV_half_float
+ cat >> $1/GL_NV_half_float <<EOT
+ typedef unsigned short GLhalf
+EOT
+
+# add handle to WGL_ARB_pbuffer
+ cat >> $1/WGL_ARB_pbuffer <<EOT
+ DECLARE_HANDLE(HPBUFFERARB);
+EOT
+
+# add handle to WGL_EXT_pbuffer
+ cat >> $1/WGL_EXT_pbuffer <<EOT
+ DECLARE_HANDLE(HPBUFFEREXT);
+EOT
+
+# get rid of GL_SUN_multi_draw_arrays
+ rm -f $1/GL_SUN_multi_draw_arrays
+
+# change variable names in GL_ARB_vertex_shader
+ perl -e 's/v0/x/g' -pi $1/GL_ARB_vertex_shader
+ perl -e 's/v1/y/g' -pi $1/GL_ARB_vertex_shader
+ perl -e 's/v2/z/g' -pi $1/GL_ARB_vertex_shader
+ perl -e 's/v3/w/g' -pi $1/GL_ARB_vertex_shader
+
+# remove triplicates in GL_ARB_shader_objects, GL_ARB_fragment_shader,
+# and GL_ARB_vertex_shader
+ tail -n +5 $1/GL_ARB_shader_objects > patterns
+ grep -v -F -f patterns $1/GL_ARB_fragment_shader > tmp
+ mv tmp $1/GL_ARB_fragment_shader
+ grep -v -F -f patterns $1/GL_ARB_vertex_shader > tmp
+ mv tmp $1/GL_ARB_vertex_shader
+
+# remove duplicates in GL_ARB_vertex_program and GL_ARB_vertex_shader
+ tail -n +5 $1/GL_ARB_vertex_program > patterns
+ grep -v -F -f patterns $1/GL_ARB_vertex_shader > tmp
+ mv tmp $1/GL_ARB_vertex_shader
+
+# remove triplicates in GL_ARB_fragment_program, GL_ARB_fragment_shader,
+# and GL_ARB_vertex_shader
+ tail -n +5 $1/GL_ARB_fragment_program > patterns
+ grep -v -F -f patterns $1/GL_ARB_fragment_shader > tmp
+ mv tmp $1/GL_ARB_fragment_shader
+ grep -v -F -f patterns $1/GL_ARB_vertex_shader > tmp
+ mv tmp $1/GL_ARB_vertex_shader
+
+# remove duplicates in GL_EXT_direct_state_access
+ grep -v "glGetBooleanIndexedvEXT" $1/GL_EXT_direct_state_access > tmp
+ mv tmp $1/GL_EXT_direct_state_access
+ grep -v "glGetIntegerIndexedvEXT" $1/GL_EXT_direct_state_access > tmp
+ mv tmp $1/GL_EXT_direct_state_access
+ grep -v "glDisableIndexedEXT" $1/GL_EXT_direct_state_access > tmp
+ mv tmp $1/GL_EXT_direct_state_access
+ grep -v "glEnableIndexedEXT" $1/GL_EXT_direct_state_access > tmp
+ mv tmp $1/GL_EXT_direct_state_access
+ grep -v "glIsEnabledIndexedEXT" $1/GL_EXT_direct_state_access > tmp
+ mv tmp $1/GL_EXT_direct_state_access
+
+# remove duplicates in GL_NV_explicit_multisample
+ grep -v "glGetBooleanIndexedvEXT" $1/GL_NV_explicit_multisample > tmp
+ mv tmp $1/GL_NV_explicit_multisample
+ grep -v "glGetIntegerIndexedvEXT" $1/GL_NV_explicit_multisample > tmp
+ mv tmp $1/GL_NV_explicit_multisample
+
+# fix bugs in GL_ARB_vertex_shader
+ grep -v "GL_FLOAT" $1/GL_ARB_vertex_shader > tmp
+ mv tmp $1/GL_ARB_vertex_shader
+ perl -e 's/handle /GLhandleARB /g' -pi $1/GL_ARB_vertex_shader
+
+# fix bugs in GL_ARB_shader_objects
+ grep -v "GL_FLOAT " $1/GL_ARB_shader_objects > tmp
+ mv tmp $1/GL_ARB_shader_objects
+ grep -v "GL_INT " $1/GL_ARB_shader_objects > tmp
+ mv tmp $1/GL_ARB_shader_objects
+
+# add typedefs to GL_ARB_shader_objects
+ cat >> $1/GL_ARB_shader_objects <<EOT
+ typedef char GLcharARB
+ typedef unsigned int GLhandleARB
+EOT
+
+# add missing functions to GL_ARB_transpose_matrix
+ cat >> $1/GL_ARB_transpose_matrix <<EOT
+ void glLoadTransposeMatrixfARB (GLfloat m[16])
+ void glLoadTransposeMatrixdARB (GLdouble m[16])
+ void glMultTransposeMatrixfARB (GLfloat m[16])
+ void glMultTransposeMatrixdARB (GLdouble m[16])
+EOT
+
+# add missing tokens to GL_EXT_framebuffer_multisample
+ cat >> $1/GL_EXT_framebuffer_multisample <<EOT
+ GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
+ GL_MAX_SAMPLES_EXT 0x8D57
+EOT
+
+# Filter out GL_NV_gpu_program_fp64 enums and functions
+ head -n4 $1/GL_NV_gpu_program_fp64 > tmp
+ mv tmp $1/GL_NV_gpu_program_fp64
+
+# Filter glGetUniformui64vNV from GL_NV_shader_buffer_load
+ grep -v "glGetUniformui64vNV" $1/GL_NV_shader_buffer_load > tmp
+ mv tmp $1/GL_NV_shader_buffer_load
+
+# Filter out profile enumerations from GLX_ARB_create_context
+ grep -v "_PROFILE_" $1/GLX_ARB_create_context > tmp
+ mv tmp $1/GLX_ARB_create_context
+
+# Filter only profile related enumerations for GLX_ARB_create_context_profile
+ head -n4 $1/GLX_ARB_create_context_profile > tmp
+ grep "_PROFILE_" $1/GLX_ARB_create_context_profile >> tmp
+ mv tmp $1/GLX_ARB_create_context_profile
+
+# Filter out profile enumerations from WGL_ARB_create_context
+ grep -v "_PROFILE_" $1/WGL_ARB_create_context > tmp
+ mv tmp $1/WGL_ARB_create_context
+
+# Filter only profile related enumerations for WGL_ARB_create_context_profile
+ head -n4 $1/WGL_ARB_create_context_profile > tmp
+ grep "_PROFILE_" $1/WGL_ARB_create_context_profile >> tmp
+ mv tmp $1/WGL_ARB_create_context_profile
+
+# add missing function to GLX_NV_copy_image
+ cat >> $1/GLX_NV_copy_image <<EOT
+ void glXCopyImageSubDataNV (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
+EOT
+
+# add missing function to WGL_NV_copy_image
+ cat >> $1/WGL_NV_copy_image <<EOT
+ BOOL wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
+EOT
+
+# Filter glProgramUniform from GL_EXT_separate_shader_objects
+ cat $1/GL_EXT_separate_shader_objects | grep -v "glProgramUniform" | grep -v "glProgramParameteri" > tmp
+ mv tmp $1/GL_EXT_separate_shader_objects
+
+# Filter out EXT functions from GL_ARB_viewport_array
+ grep -v "EXT" $1/GL_ARB_viewport_array > tmp
+ mv tmp $1/GL_ARB_viewport_array
+
+# Additional enumerations for GL_NV_vertex_buffer_unified_memory
+# These are mentioned in GL_ARB_draw_indirect.txt
+
+ cat >> $1/GL_NV_vertex_buffer_unified_memory <<EOT
+ GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40
+ GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41
+ GL_DRAW_INDIRECT_LENGTH_NV 0x8F42
+EOT
+
+# Filter glGetPointerv from GL_ARB_debug_output
+# It's part of OpenGL 1.1, after all
+
+ grep -v "glGetPointerv" $1/GL_ARB_debug_output > tmp
+ mv tmp $1/GL_ARB_debug_output
+
+# Filter glGetPointerv from GL_EXT_vertex_array
+# It's part of OpenGL 1.1, after all
+
+ grep -v "glGetPointerv" $1/GL_EXT_vertex_array > tmp
+ mv tmp $1/GL_EXT_vertex_array
+
+# add typedef to GL_AMD_debug_output
+# parse_spec.pl can't parse typedefs from New Types section, but ought to
+ cat >> $1/GL_AMD_debug_output <<EOT
+ typedef void (GLAPIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, void* userParam)
+EOT
+
+# add typedef to GL_ARB_debug_output
+# parse_spec.pl can't parse typedefs from New Types section, but ought to
+ cat >> $1/GL_ARB_debug_output <<EOT
+ typedef void (GLAPIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam)
+EOT
+
+# add typedef to GL_KHR_debug
+# parse_spec.pl can't parse typedefs from New Types section, but ought to
+ cat >> $1/GL_KHR_debug <<EOT
+ typedef void (GLAPIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam)
+EOT
+
+# Remove glGetPointerv from GL_KHR_debug
+ grep -v "glGetPointerv" $1/GL_KHR_debug > tmp
+ mv tmp $1/GL_KHR_debug
+
+# add typedefs to GL_ARB_cl_event
+# parse_spec.pl can't parse typedefs from New Types section, but ought to
+ cat >> $1/GL_ARB_cl_event <<EOT
+ typedef struct _cl_context *cl_context
+ typedef struct _cl_event *cl_event
+EOT
+
+# Filter out EXT functions from GL_ARB_gpu_shader_fp64
+ grep -v 'EXT ' $1/GL_ARB_gpu_shader_fp64 > tmp
+ mv tmp $1/GL_ARB_gpu_shader_fp64
+
+# add missing functions to GL_EXT_direct_state_access (GL_ARB_gpu_shader_fp64 related)
+ cat >> $1/GL_EXT_direct_state_access <<EOT
+ void glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x)
+ void glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y)
+ void glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z)
+ void glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
+ void glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
+ void glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
+ void glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
+ void glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
+ void glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
+ void glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
+ void glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
+ void glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
+ void glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
+ void glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
+ void glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
+ void glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
+EOT
+
+# add missing functions to GL_EXT_direct_state_access (GL_ARB_instanced_arrays related)
+# https://sourceforge.net/p/glew/bugs/242/
+ cat >> $1/GL_EXT_direct_state_access <<EOT
+ void glVertexArrayVertexAttribDivisorEXT (GLuint vaobj, GLuint index, GLuint divisor)
+EOT
+
+# Filter out GL_UNSIGNED_INT and GL_FLOAT from GL_AMD_performance_monitor
+ grep -v 'GL_UNSIGNED_INT ' $1/GL_AMD_performance_monitor > tmp
+ mv tmp $1/GL_AMD_performance_monitor
+ grep -v 'GL_FLOAT ' $1/GL_AMD_performance_monitor > tmp
+ mv tmp $1/GL_AMD_performance_monitor
+
+# Filter out GL_STORAGE_CACHED_APPLE and GL_STORAGE_SHARED_APPLE from GL_APPLE_texture_range
+ grep -v 'GL_STORAGE_CACHED_APPLE ' $1/GL_APPLE_texture_range > tmp
+ mv tmp $1/GL_APPLE_texture_range
+ grep -v 'GL_STORAGE_SHARED_APPLE ' $1/GL_APPLE_texture_range > tmp
+ mv tmp $1/GL_APPLE_texture_range
+
+# Filter out GL_RED from GL_ARB_texture_rg
+ grep -v 'GL_RED ' $1/GL_ARB_texture_rg > tmp
+ mv tmp $1/GL_ARB_texture_rg
+
+# Filter out _EXT enums from GL_ARB_texture_storage
+ grep -v '_EXT ' $1/GL_ARB_texture_storage > tmp
+ mv tmp $1/GL_ARB_texture_storage
+
+# Filter out TEXTURE_3D enums from GL_EXT_paletted_texture
+ grep -v 'TEXTURE_3D' $1/GL_EXT_paletted_texture > tmp
+ mv tmp $1/GL_EXT_paletted_texture
+
+# Filter out GL_VERSION_1_1 enums from GL_AMD_stencil_operation_extended
+ grep -v '0x150' $1/GL_AMD_stencil_operation_extended > tmp
+ mv tmp $1/GL_AMD_stencil_operation_extended
+
+# Filter out from GL_APPLE_ycbcr_422
+ grep -v 'GL_UNSIGNED_SHORT_8_8_APPLE' $1/GL_APPLE_ycbcr_422 > tmp
+ mv tmp $1/GL_APPLE_ycbcr_422
+ grep -v 'GL_UNSIGNED_SHORT_8_8_REV_APPLE' $1/GL_APPLE_ycbcr_422 > tmp
+ mv tmp $1/GL_APPLE_ycbcr_422
+
+# Filter out GL_FRAGMENT_DEPTH_EXT from GL_EXT_light_texture
+ grep -v 'GL_FRAGMENT_DEPTH_EXT' $1/GL_EXT_light_texture > tmp
+ mv tmp $1/GL_EXT_light_texture
+
+# Filter out GL_MULTISAMPLE_BIT_EXT from GL_SGIS_multisample
+ grep -v 'GL_MULTISAMPLE_BIT_EXT' $1/GL_SGIS_multisample > tmp
+ mv tmp $1/GL_SGIS_multisample
+
+# Filter out GL_COMPRESSED_RGB_S3TC_DXT1_EXT from GL_EXT_texture_compression_dxt1
+ grep -v 'GL_COMPRESSED_RGB_S3TC_DXT1_EXT' $1/GL_EXT_texture_compression_dxt1 > tmp
+ mv tmp $1/GL_EXT_texture_compression_dxt1
+
+# Filter out GL_COMPRESSED_RGBA_S3TC_DXT1_EXT from GL_EXT_texture_compression_dxt1
+ grep -v 'GL_COMPRESSED_RGBA_S3TC_DXT1_EXT' $1/GL_EXT_texture_compression_dxt1 > tmp
+ mv tmp $1/GL_EXT_texture_compression_dxt1
+
+# Append GLfixed to GL_ARB_ES2_compatibility
+# Probably ought to be explicitly mentioned in the spec language
+
+ cat >> $1/GL_ARB_ES2_compatibility <<EOT
+ typedef int GLfixed
+EOT
+
+# Append GLclampx to GL_REGAL_ES1_0_compatibility
+# Probably ought to be explicitly mentioned in the spec language
+
+ cat >> $1/GL_REGAL_ES1_0_compatibility <<EOT
+ typedef int GLclampx
+EOT
+
+# Append GLLOGPROCREGAL to GL_REGAL_log
+# Probably ought to be explicitly mentioned in the spec language
+
+ cat >> $1/GL_REGAL_log <<EOT
+ typedef void (APIENTRY *LOGPROCREGAL)(GLenum stream, GLsizei length, const GLchar *message, void *context)
+EOT
+
+# Fixup LOGPROCREGAL -> GLLOGPROCREGAL
+ perl -e 's/LOGPROCREGAL/GLLOGPROCREGAL/g' -pi $1/GL_REGAL_log
+
+# Filter out GL_BYTE from GL_OES_byte_coordinates
+ grep -v 'GL_BYTE' $1/GL_OES_byte_coordinates > tmp
+ mv tmp $1/GL_OES_byte_coordinates
+
+# Filter out fp64 (not widely supported) from GL_EXT_direct_state_access
+ egrep -v 'glProgramUniform.*[1234]d[v]?EXT' $1/GL_EXT_direct_state_access > tmp
+ mv tmp $1/GL_EXT_direct_state_access
+
+# Filter out all enums from GL_ANGLE_depth_texture
+ grep -v '0x' $1/GL_ANGLE_depth_texture > tmp
+ mv tmp $1/GL_ANGLE_depth_texture
+
+# Filter out GL_NONE enum from GL_ANGLE_depth_texture
+ grep -v 'GL_NONE' $1/GL_ANGLE_texture_usage > tmp
+ mv tmp $1/GL_ANGLE_texture_usage
+
+# Fixup REGAL and ANGLE urls
+
+ for i in $1/GL_REGAL_*; do perl -e 's#http://www.opengl.org/registry/specs/REGAL/.*#https://github.com/p3/regal/tree/master/doc/extensions#g' -pi $i; done
+ for i in $1/GL_ANGLE_*; do perl -e 's#http://www.opengl.org/registry/specs/ANGLE/.*#https://code.google.com/p/angleproject/source/browse/\#git%2Fextensions#g' -pi $i; done
+
+# Filter out GL_NV_blend_equation_advanced_coherent enums and functions
+ head -n4 $1/GL_NV_blend_equation_advanced_coherent > tmp
+ mv tmp $1/GL_NV_blend_equation_advanced_coherent
+
+# Filter out GL_AMD_gpu_shader_int64 enums and functions
+ head -n4 $1/GL_AMD_gpu_shader_int64 > tmp
+ mv tmp $1/GL_AMD_gpu_shader_int64
+
+# Filter out GL_NO_ERROR enum and glGetGraphicsResetStatus from GL_KHR_robustness
+ grep -v 'GL_NO_ERROR' $1/GL_KHR_robustness |
+ grep -v 'glGetGraphicsResetStatus' > tmp
+ mv tmp $1/GL_KHR_robustness
+
+# Filter out all enums from GL_KHR_blend_equation_advanced_coherent
+ grep -v '0x' $1/GL_KHR_blend_equation_advanced_coherent > tmp
+ mv tmp $1/GL_KHR_blend_equation_advanced_coherent
+
+# Filter out glBlendBarrierKHR enum from GL_KHR_blend_equation_advanced_coherent
+ grep -v 'glBlendBarrierKHR' $1/GL_KHR_blend_equation_advanced_coherent > tmp
+ mv tmp $1/GL_KHR_blend_equation_advanced_coherent
+
+# Filter out GL_NONE enum from GL_KHR_context_flush_control
+ grep -v 'GL_NONE' $1/GL_KHR_context_flush_control > tmp
+ mv tmp $1/GL_KHR_context_flush_control
+
+# Filter out CoverageModulation from NV_framebuffer_mixed_samples
+# Superset of EXT_raster_multisample
+
+ grep -v "CoverageModulation" $1/GL_NV_framebuffer_mixed_samples > tmp
+ mv tmp $1/GL_NV_framebuffer_mixed_samples
+
+# Filter out glRasterSamplesEXT from NV_framebuffer_mixed_samples
+# Superset of EXT_raster_multisample
+
+ grep -v "RasterSamplesEXT" $1/GL_NV_framebuffer_mixed_samples > tmp
+ mv tmp $1/GL_NV_framebuffer_mixed_samples
+
+# Filter out glNamedBufferStorageEXT from GL_ARB_buffer_storage
+
+ grep -v "glNamedBufferStorageEXT" $1/GL_ARB_buffer_storage > tmp
+ mv tmp $1/GL_ARB_buffer_storage
+
+# Filter out glFramebufferTextureEXT from GL_EXT_geometry_point_size
+# and GL_EXT_geometry_shader
+
+ grep -v "glFramebufferTextureEXT" $1/GL_EXT_geometry_point_size > tmp
+ mv tmp $1/GL_EXT_geometry_point_size
+
+ grep -v "glFramebufferTextureEXT" $1/GL_EXT_geometry_shader > tmp
+ mv tmp $1/GL_EXT_geometry_shader
+
+# Filter out glBindFragDataLocationEXT from GL_EXT_blend_func_extended
+
+ grep -v "glBindFragDataLocationEXT" $1/GL_EXT_blend_func_extended > tmp
+ mv tmp $1/GL_EXT_blend_func_extended
+
+# Filter out glDrawArraysInstancedEXT and glDrawElementsInstancedEXT from GL_EXT_blend_func_extended
+
+ grep -v "glDrawArraysInstancedEXT" $1/GL_EXT_instanced_arrays > tmp
+ mv tmp $1/GL_EXT_instanced_arrays
+
+ grep -v "glDrawElementsInstancedEXT" $1/GL_EXT_instanced_arrays > tmp
+ mv tmp $1/GL_EXT_instanced_arrays
+
+# Filter out glRenderbufferStorageMultisampleEXT from GL_EXT_multisampled_render_to_texture
+
+ grep -v "glRenderbufferStorageMultisampleEXT" $1/GL_EXT_multisampled_render_to_texture > tmp
+ mv tmp $1/GL_EXT_multisampled_render_to_texture
+
+# Filter out glTexturePageCommitmentEXT from GL_ARB_sparse_texture
+
+ grep -v "glTexturePageCommitmentEXT" $1/GL_ARB_sparse_texture > tmp
+ mv tmp $1/GL_ARB_sparse_texture
+
+# Filter out TextureStorage* from GL_ARB_texture_storage
+
+ grep -v "TextureStorage" $1/GL_ARB_texture_storage > tmp
+ mv tmp $1/GL_ARB_texture_storage
+
+# Filter out functions from GL_EXT_occlusion_query_boolean
+
+ grep -v "(" $1/GL_EXT_occlusion_query_boolean > tmp
+ mv tmp $1/GL_EXT_occlusion_query_boolean
+
+# Filter out duplicate enums from GL_EXT_protected_textures
+
+ cat $1/GL_EXT_protected_textures | grep -v GL_TRUE | grep -v GL_FALSE > tmp
+ mv tmp $1/GL_EXT_protected_textures
+
+# Filter out duplicate enums from GL_EXT_robustness
+
+ cat $1/GL_EXT_robustness | grep -v GL_NO_ERROR > tmp
+ mv tmp $1/GL_EXT_robustness
+
+# Filter GL_EXT_shader_framebuffer_fetch_non_coherent
+
+ grep -v "FramebufferFetchBarrierEXT" $1/GL_EXT_shader_framebuffer_fetch_non_coherent > tmp
+ mv tmp $1/GL_EXT_shader_framebuffer_fetch_non_coherent
+
+# Filter GL_EXT_tessellation_shader
+
+ grep -v "PatchParameteriEXT" $1/GL_EXT_tessellation_shader > tmp
+ mv tmp $1/GL_EXT_tessellation_shader
+
+# Filter GL_EXT_texture_buffer
+
+ grep -v "TexBuffer" $1/GL_EXT_texture_buffer > tmp
+ mv tmp $1/GL_EXT_texture_buffer
+
+# Filter GL_EXT_texture_border_clamp
+
+ grep -v "TexParameter" $1/GL_EXT_texture_border_clamp > tmp
+ mv tmp $1/GL_EXT_texture_border_clamp
+
+# Filter GL_EXT_disjoint_timer_query
+
+ cat $1/GL_EXT_disjoint_timer_query | grep -v GetQueryObjecti64v | grep -v GetQueryObjectui64v > tmp
+ mv tmp $1/GL_EXT_disjoint_timer_query
+
+# Filter GL_NV_read_buffer_front
+
+ grep -v "ReadBufferNV" $1/GL_NV_read_buffer_front > tmp
+ mv tmp $1/GL_NV_read_buffer_front
+
+# Append GLVULKANPROCNV to GL_NV_draw_vulkan_image
+# Probably ought to be explicitly mentioned in the spec language
+
+ cat >> $1/GL_NV_draw_vulkan_image <<EOT
+ typedef void (APIENTRY *GLVULKANPROCNV)(void)
+EOT
+
+# GLU extensions are not relevant here
+ rm -f $1/GL_GLU_*
+
+# Not complete
+ rm -f $1/GL_SGIX_color_type
+
+# clean up
+ rm -f patterns $1/*.bak
diff --git a/engine-ocean/External/glew/auto/bin/filter_gles_ext.sh b/engine-ocean/External/glew/auto/bin/filter_gles_ext.sh
new file mode 100644
index 0000000..c562061
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/filter_gles_ext.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+##
+## Parameters:
+##
+## $1: Extensions directory
+## $2: Registry directory
+## $3: The black list
+
+set -e
+
+# clean up
+ rm -f $1/*.bak
diff --git a/engine-ocean/External/glew/auto/bin/filter_spec.py b/engine-ocean/External/glew/auto/bin/filter_spec.py
new file mode 100644
index 0000000..16c2fa9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/filter_spec.py
@@ -0,0 +1,38 @@
+#!/usr/bin/python
+
+import re
+
+section = re.compile('^(Name|Name Strings?|Contact|Notice|Number|Dependencies|Overview|Issues|IP Status|Status|Version|New Procedures and Functions|New Tokens|Additions to .*|Changes to .*|Modifications to .*|Add new Section .*)\s*$')
+token = re.compile('^\s+(([A-Z0-9][A-Z0-9_x]*):?\s+((?:0x)?[0-9A-F]+)([^\?]*))?\s*$')
+match = [ 'Name', 'Name String', 'Contact', 'Notice', 'Name Strings', 'Version', 'Number', 'Dependencies', 'New Procedures and Functions', 'New Tokens']
+
+if __name__ == '__main__':
+
+ from optparse import OptionParser
+ import os
+
+ parser = OptionParser('usage: %prog [options] [SOURCES...]')
+ (options, args) = parser.parse_args()
+
+ for i in args:
+ lines = open(i).readlines()
+ f = open(i,'w')
+
+ # Keep track of the current section as we iterate over the input
+ current = ''
+ for j in lines:
+
+ # Detect the start of a new section
+ m = section.match(j)
+ if m:
+ current = m.group(1).strip()
+ if current in match:
+ print >>f, j,
+ continue
+
+ if current=='New Tokens':
+ if token.match(j):
+ print >>f, j,
+ elif current in match:
+ print >>f, j,
+
diff --git a/engine-ocean/External/glew/auto/bin/make.pl b/engine-ocean/External/glew/auto/bin/make.pl
new file mode 100644
index 0000000..e0b32ef
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make.pl
@@ -0,0 +1,224 @@
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+my %regex = (
+ extname => qr/^[A-Z][A-Za-z0-9_]+$/,
+ exturl => qr/^http.+$/,
+ function => qr/^(.+) ([a-z][a-z0-9_]*) \((.*)\)$/i,
+ token => qr/^([A-Z][A-Z0-9_x]*)\s+((?:0x)?[0-9A-Fa-f]+(u(ll)?)?|[A-Z][A-Z0-9_]*)$/,
+ type => qr/^typedef\s+(.+)$/,
+ exact => qr/.*;$/,
+);
+
+# prefix function name with glew
+sub prefixname($)
+{
+ my $name = $_[0];
+ $name =~ s/^(.*?)gl/__$1glew/;
+ return $name;
+}
+
+# prefix function name with glew
+sub prefix_varname($)
+{
+ my $name = $_[0];
+ $name =~ s/^(.*?)GL(X*?)EW/__$1GL$2EW/;
+ return $name;
+}
+
+#---------------------------------------------------------------------------------------
+
+sub make_exact($)
+{
+ my $exact = $_[0];
+ $exact =~ s/(; |{)/$1\n/g;
+ return $exact;
+}
+
+sub make_separator($)
+{
+ my $extname = $_[0];
+ my $l = length $extname;
+ my $s = (71 - $l)/2;
+ print "/* ";
+ my $j = 3;
+ for (my $i = 0; $i < $s; $i++)
+ {
+ print "-";
+ $j++;
+ }
+ print " $_[0] ";
+ $j += $l + 2;
+ while ($j < 76)
+ {
+ print "-";
+ $j++;
+ }
+ print " */\n\n";
+}
+
+#---------------------------------------------------------------------------------------
+
+sub parse_ext($)
+{
+ my $filename = shift;
+ my %functions = ();
+ my %tokens = ();
+ my @reuse = (); # Extensions to reuse
+ my @types = ();
+ my @exacts = ();
+ my $extname = ""; # Full extension name GL_FOO_extension
+ my $exturl = ""; # Info URL
+ my $extstring = ""; # Relevant extension string
+
+ open EXT, "<$filename" or return;
+
+ # As of GLEW 1.14.0 the first four lines _must_ be
+ # the extension name, the URL and the GL extension
+ # string (which might be different to the name),
+ # and the reused extensions
+ #
+ # For example GL_NV_geometry_program4 is available
+ # iff GL_NV_gpu_program4 appears in the extension
+ # string.
+ #
+ # For core OpenGL versions, the third line should
+ # be blank.
+ #
+ # If the URL is unknown, the second line should be
+ # blank.
+
+ $extname = readline(*EXT);
+ $exturl = readline(*EXT);
+ $extstring = readline(*EXT);
+ @reuse = split(" ", readline(*EXT));
+
+ chomp($extname);
+ chomp($exturl);
+ chomp($extstring);
+
+ while(<EXT>)
+ {
+ chomp;
+ if (s/^\s+//)
+ {
+ if (/$regex{exact}/)
+ {
+ push @exacts, $_;
+ }
+ elsif (/$regex{type}/)
+ {
+ push @types, $_;
+ }
+ elsif (/$regex{token}/)
+ {
+ my ($name, $value) = ($1, $2);
+ $tokens{$name} = $value;
+ }
+ elsif (/$regex{function}/)
+ {
+ my ($return, $name, $parms) = ($1, $2, $3);
+ $functions{$name} = {
+ rtype => $return,
+ parms => $parms,
+ };
+ } else {
+ print STDERR "'$_' matched no regex.\n";
+ }
+ }
+ }
+
+ close EXT;
+
+ return ($extname, $exturl, $extstring, \@reuse, \@types, \%tokens, \%functions, \@exacts);
+}
+
+sub output_tokens($$)
+{
+ my ($tbl, $fnc) = @_;
+ if (keys %{$tbl})
+ {
+ local $, = "\n";
+ print "\n";
+ print map { &{$fnc}($_, $tbl->{$_}) } sort {
+ if (${$tbl}{$a} eq ${$tbl}{$b}) {
+ $a cmp $b
+ } else {
+ if (${$tbl}{$a} =~ /_/) {
+ if (${$tbl}{$b} =~ /_/) {
+ $a cmp $b
+ } else {
+ -1
+ }
+ } else {
+ if (${$tbl}{$b} =~ /_/) {
+ 1
+ } else {
+ if (hex ${$tbl}{$a} eq hex ${$tbl}{$b}) {
+ $a cmp $b
+ } else {
+ hex ${$tbl}{$a} <=> hex ${$tbl}{$b}
+ }
+ }
+ }
+ }
+ } keys %{$tbl};
+ print "\n";
+ } else {
+ print STDERR "no keys in table!\n";
+ }
+}
+
+sub output_types($$)
+{
+ my ($tbl, $fnc) = @_;
+ if (scalar @{$tbl})
+ {
+ local $, = "\n";
+ print "\n";
+ print map { &{$fnc}($_) } sort @{$tbl};
+ print "\n";
+ }
+}
+
+sub output_decls($$)
+{
+ my ($tbl, $fnc) = @_;
+ if (keys %{$tbl})
+ {
+ local $, = "\n";
+ print "\n";
+ print map { &{$fnc}($_, $tbl->{$_}) } sort keys %{$tbl};
+ print "\n";
+ }
+}
+
+sub output_exacts($$)
+{
+ my ($tbl, $fnc) = @_;
+ if (scalar @{$tbl})
+ {
+ local $, = "\n";
+ print "\n";
+ print map { &{$fnc}($_) } sort @{$tbl};
+ print "\n";
+ }
+}
+
+sub output_reuse($$)
+{
+ my ($tbl, $fnc) = @_;
+ if (scalar @{$tbl})
+ {
+ local $, = "\n";
+ print "\n";
+ print map { &{$fnc}($_) } sort @{$tbl};
+ print "\n";
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_def_fun.pl b/engine-ocean/External/glew/auto/bin/make_def_fun.pl
new file mode 100644
index 0000000..af74706
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_def_fun.pl
@@ -0,0 +1,37 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+# function pointer declaration
+sub make_pfn_decl($%)
+{
+ return "PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . " = NULL;";
+}
+
+my @extlist = ();
+my %extensions = ();
+
+our $type = shift;
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+ output_decls($functions, \&make_pfn_decl);
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_def_var.pl b/engine-ocean/External/glew/auto/bin/make_def_var.pl
new file mode 100644
index 0000000..993a68c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_def_var.pl
@@ -0,0 +1,33 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+my @extlist = ();
+my %extensions = ();
+
+our $type = shift;
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+ my $extvar = $extname;
+ $extvar =~ s/GL(X*)_/GL$1EW_/;
+ print "GLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n";
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_enable_index.pl b/engine-ocean/External/glew/auto/bin/make_enable_index.pl
new file mode 100644
index 0000000..bdbe7d1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_enable_index.pl
@@ -0,0 +1,48 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+use File::Basename;
+
+use lib '.';
+do 'bin/make.pl';
+
+##
+## Make Extension-enabled Index
+##
+
+my @extlist = ();
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ print "/* Detected in the extension string or strings */\n";
+ print "static GLboolean _glewExtensionString[" . scalar @extlist . "];\n";
+
+ print "/* Detected via extension string or experimental mode */\n";
+ print "static GLboolean* _glewExtensionEnabled[] = {\n";;
+
+ foreach my $ext (sort { basename($a) cmp basename($b) } @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) =
+ parse_ext($ext);
+
+ my $extvar = $extname;
+ $extvar =~ s/GL(X*)_/GL$1EW_/;
+
+ print "#ifdef $extname\n";
+ print " &__$extvar,\n";
+ print "#endif\n";
+ }
+
+ print " NULL\n};\n\n";
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_header.pl b/engine-ocean/External/glew/auto/bin/make_header.pl
new file mode 100644
index 0000000..9917db1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_header.pl
@@ -0,0 +1,73 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+# token
+sub make_define($$)
+{
+ return "#define $_[0] $_[1]"
+}
+
+# type declaration
+sub make_type($$)
+{
+ return "@_;"
+}
+
+# function pointer type declaration
+sub make_pfn_type($%)
+{
+ our $api;
+ return join(' ', "typedef", $_[1]->{rtype},
+ "($api * PFN" . (uc $_[0]) . "PROC)",
+ "(" . $_[1]->{parms} . ")") . ";";
+}
+
+# function name alias
+sub make_pfn_alias($%)
+{
+ our $type;
+ return join(" ", "#define", $_[0], $type . "EW_GET_FUN(" . prefixname($_[0]) . ")")
+}
+
+my @extlist = ();
+my %extensions = ();
+
+our $api = shift;
+our $type = shift;
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+
+ make_separator($extname);
+ print "#ifndef $extname\n#define $extname 1\n";
+ output_tokens($tokens, \&make_define);
+ output_types($types, \&make_type);
+ output_exacts($exacts, \&make_exact);
+ output_decls($functions, \&make_pfn_type);
+ output_decls($functions, \&make_pfn_alias);
+
+ my $extvar = $extname;
+ $extvar =~ s/GL(X*)_/GL$1EW_/;
+
+ print "\n#define $extvar " . $type . "EW_GET_VAR(" . prefix_varname($extvar) . ")\n";
+ print "\n#endif /* $extname */\n\n";
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_html.pl b/engine-ocean/External/glew/auto/bin/make_html.pl
new file mode 100644
index 0000000..be97003
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_html.pl
@@ -0,0 +1,57 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+#---------------------------------------------------------------------------------------
+
+my @extlist = ();
+my %extensions = ();
+my $group = "";
+my $cur_group = "";
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+ my $n = 1;
+ print "<table border=\"0\" width=\"100%\" cellpadding=\"1\" cellspacing=\"0\" align=\"center\">\n";
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+ $cur_group = $extname;
+ $cur_group =~ s/^(?:W?)GL(?:X?)_([A-Z0-9]+?)_.*$/$1/;
+ $extname =~ s/^(?:W?)GL(?:X?)_(.*)$/$1/;
+ if ($cur_group ne $group)
+ {
+ if ($group ne "")
+ {
+ print "<tr><td><br></td><td></td><td></td></tr>\n";
+ }
+ $group = $cur_group;
+ }
+
+ {
+ if ($exturl)
+ {
+ print "<tr><td class=\"num\">$n</td><td>&nbsp;</td><td><a href=\"$exturl\">$extname</a></td></tr>\n";
+ }
+ else
+ {
+ print "<tr><td class=\"num\">$n</td><td>&nbsp;</td><td>$extname</td></tr>\n";
+ }
+ $n++;
+ }
+ }
+ print "</table>\n"
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_index.pl b/engine-ocean/External/glew/auto/bin/make_index.pl
new file mode 100644
index 0000000..cf247f8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_index.pl
@@ -0,0 +1,41 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+use File::Basename;
+
+use lib '.';
+do 'bin/make.pl';
+
+##
+## Make Index
+##
+## Output sorted array of extension strings for indexing into extension
+## enable/disable flags. This provides a way to convert an extension string
+## into an integer index.
+##
+
+my @extlist = ();
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort { basename($a) cmp basename($b) } @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) =
+ parse_ext($ext);
+
+ print "#ifdef $extname\n";
+ print " \"$extname\",\n";
+ print "#endif\n";
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_info.pl b/engine-ocean/External/glew/auto/bin/make_info.pl
new file mode 100644
index 0000000..3dcece9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_info.pl
@@ -0,0 +1,71 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+#---------------------------------------------------------------------------------------
+
+# function pointer definition
+sub make_pfn_info($%)
+{
+ my $name = $_[0];
+ return " glewInfoFunc(fi, \"$_[0]\", $name == NULL);";
+}
+
+#---------------------------------------------------------------------------------------
+
+my @extlist = ();
+my %extensions = ();
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+ my $extvar = $extname;
+ $extvar =~ s/GL(X*)_/GL$1EW_/;
+ my $extpre = $extname;
+ $extpre =~ s/(GLX|GLW|GL).*/$1/;
+ $extpre = lc $extpre;
+
+ #make_separator($extname);
+ print "#ifdef $extname\n\n";
+ print "static void _glewInfo_$extname (void)\n{\n";
+
+ if (! %$functions)
+ {
+ print " ";
+ }
+ else
+ {
+ print " GLboolean fi = ";
+ }
+
+ if ($extvar =~ /VERSION/)
+ {
+ print "glewPrintExt(\"$extname\", $extvar, $extvar, $extvar);\n";
+ }
+ else
+ {
+ print "glewPrintExt(\"$extname\", $extvar, $extpre" .
+ "ewIsSupported(\"$extname\"), $extpre" .
+ "ewGetExtension(\"$extstring\"));\n";
+ }
+ output_decls($functions, \&make_pfn_info);
+ print "}\n\n";
+ print "#endif /* $extname */\n\n";
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_info_list.pl b/engine-ocean/External/glew/auto/bin/make_info_list.pl
new file mode 100644
index 0000000..74dbb77
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_info_list.pl
@@ -0,0 +1,49 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+#---------------------------------------------------------------------------------------
+
+# function pointer definition
+sub make_pfn_def($%)
+{
+ return "PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . " = NULL;";
+}
+
+# function pointer definition
+sub make_init_call($%)
+{
+ my $name = prefixname($_[0]);
+ return " r = r || (" . $name . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress((const GLubyte*)\"" . $name . "\")) == NULL;";
+}
+
+#---------------------------------------------------------------------------------------
+
+my @extlist = ();
+my %extensions = ();
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+
+ print "#ifdef $extname\n";
+ print " _glewInfo_$extname();\n";
+ print "#endif /* $extname */\n";
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_init.pl b/engine-ocean/External/glew/auto/bin/make_init.pl
new file mode 100644
index 0000000..37922ee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_init.pl
@@ -0,0 +1,61 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+#-------------------------------------------------------------------------------
+
+# function pointer definition
+sub make_pfn_def_init($%)
+{
+ #my $name = prefixname($_[0]);
+ return " r = ((" . $_[0] . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress((const GLubyte*)\"" . $_[0] . "\")) == NULL) || r;";
+}
+
+sub make_reuse_call($%)
+{
+ return " r = _glewInit_" . $_[0] . "() || r;";
+}
+
+#-------------------------------------------------------------------------------
+
+my @extlist = ();
+my %extensions = ();
+
+our $type = shift;
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) =
+ parse_ext($ext);
+
+ #make_separator($extname);
+ my $extvar = $extname;
+ my $extvardef = $extname;
+ $extvar =~ s/GL(X*)_/GL$1EW_/;
+ if (keys %$functions or keys @$reuse)
+ {
+ print "#ifdef $extname\n\n";
+ print "static GLboolean _glewInit_$extname ()\n{\n GLboolean r = GL_FALSE;\n";
+ output_reuse($reuse, \&make_reuse_call);
+ output_decls($functions, \&make_pfn_def_init);
+ print "\n return r;\n}\n\n";
+ print "#endif /* $extname */\n\n";
+ }
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_initd.pl b/engine-ocean/External/glew/auto/bin/make_initd.pl
new file mode 100644
index 0000000..2f7e2e6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_initd.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+## Output declarations for the _glewInit_[extension] functions defined
+## by make_init.pl script. These are necessary for for initializers to
+## call each other, such as a core GL 3 context that depends on certain
+## extensions.
+
+#-------------------------------------------------------------------------------
+
+my @extlist = ();
+my %extensions = ();
+
+our $type = shift;
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) =
+ parse_ext($ext);
+
+ #print "#ifdef $extname\n\n";
+ if (keys %$functions)
+ {
+ print "static GLboolean _glewInit_$extname ();\n";
+ }
+ #print "#endif /* $extname */\n\n";
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_list.pl b/engine-ocean/External/glew/auto/bin/make_list.pl
new file mode 100644
index 0000000..38aebcd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_list.pl
@@ -0,0 +1,75 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+#---------------------------------------------------------------------------------------
+
+# function pointer definition
+sub make_init_call($%)
+{
+ my $name = prefixname($_[0]);
+ return " r = r || (" . $_[0] . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress(\"" . $name . "\")) == NULL;";
+}
+
+#---------------------------------------------------------------------------------------
+
+my @extlist = ();
+my %extensions = ();
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+
+ my $extvar = $extname;
+ $extvar =~ s/GL(X*)_/GL$1EW_/;
+
+ my $extpre = $extname;
+ $extpre =~ s/^(W?E?)GL(X?).*$/\l$1gl\l$2ew/;
+
+ #my $pextvar = prefix_varname($extvar);
+
+ if (length($extstring) && $extstring !~ /^GL_/ || keys %$functions)
+ {
+ print "#ifdef $extname\n";
+ }
+
+ if (length($extstring) && $extstring !~ /^GL_/)
+ {
+ print " " . $extvar . " = _glewSearchExtension(\"$extstring\", extStart, extEnd);\n";
+ }
+
+ if (keys %$functions)
+ {
+ if ($extname =~ /WGL_.*/)
+ {
+ print " if (glewExperimental || " . $extvar . "|| crippled) " . $extvar . "= !_glewInit_$extname();\n";
+ }
+ else
+ {
+ print " if (glewExperimental || " . $extvar . ") " . $extvar . " = !_glewInit_$extname();\n";
+ }
+ }
+
+ if (length($extstring) && $extstring !~ /^GL_/ || keys %$functions)
+ {
+ print "#endif /* $extname */\n";
+ }
+ }
+
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_list2.pl b/engine-ocean/External/glew/auto/bin/make_list2.pl
new file mode 100644
index 0000000..3ded727
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_list2.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+#---------------------------------------------------------------------------------------
+# Extensions that depend on others can be enabled once we know
+# if the one it depends on, is enabled.
+
+my @extlist = ();
+my %extensions = ();
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+
+ if ($extname ne $extstring && length($extstring))
+ {
+ my $extvar = $extname;
+ $extvar =~ s/GL(X*)_/GL$1EW_/;
+
+ my $parent = $extstring;
+ $parent =~ s/GL(X*)_/GL$1EW_/;
+
+ print "#ifdef $extname\n";
+ print " $extvar = $parent;\n";
+ print "#endif /* $extname */\n";
+ }
+ }
+
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_str.pl b/engine-ocean/External/glew/auto/bin/make_str.pl
new file mode 100644
index 0000000..a6d7709
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_str.pl
@@ -0,0 +1,55 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+my @extlist = ();
+my %extensions = ();
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ my $curexttype = "";
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+ my $exttype = $extname;
+ $exttype =~ s/(W?E?)GL(X?)_(.*?_)(.*)/$3/;
+ my $extrem = $extname;
+ $extrem =~ s/(W?E?)GL(X?)_(.*?_)(.*)/$4/;
+ my $extvar = $extname;
+ $extvar =~ s/(W?E?)GL(X?)_/$1GL$2EW_/;
+ if(!($exttype =~ $curexttype))
+ {
+ if(length($curexttype) > 0)
+ {
+ print " }\n";
+ }
+ print " if (_glewStrSame2(&pos, &len, (const GLubyte*)\"$exttype\", " . length($exttype) . "))\n";
+ print " {\n";
+ $curexttype = $exttype;
+ }
+ print "#ifdef $extname\n";
+ print " if (_glewStrSame3(&pos, &len, (const GLubyte*)\"$extrem\", ". length($extrem) . "))\n";
+ #print " return $extvar;\n";
+ print " {\n";
+ print " ret = $extvar;\n";
+ print " continue;\n";
+ print " }\n";
+ print "#endif\n";
+ }
+
+ print " }\n";
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_struct_fun.pl b/engine-ocean/External/glew/auto/bin/make_struct_fun.pl
new file mode 100644
index 0000000..cc9eef5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_struct_fun.pl
@@ -0,0 +1,38 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+# function pointer declaration
+sub make_pfn_decl($%)
+{
+ our $export;
+ return $export . " PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . ";";
+}
+
+my @extlist = ();
+my %extensions = ();
+
+our $export = shift;
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+ output_decls($functions, \&make_pfn_decl);
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/make_struct_var.pl b/engine-ocean/External/glew/auto/bin/make_struct_var.pl
new file mode 100644
index 0000000..ab8b8b5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/make_struct_var.pl
@@ -0,0 +1,33 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+use lib '.';
+do 'bin/make.pl';
+
+my @extlist = ();
+my %extensions = ();
+
+our $export = shift;
+
+if (@ARGV)
+{
+ @extlist = @ARGV;
+
+ foreach my $ext (sort @extlist)
+ {
+ my ($extname, $exturl, $extstring, $reuse, $types, $tokens, $functions, $exacts) = parse_ext($ext);
+ my $extvar = $extname;
+ $extvar =~ s/GL(X*)_/GL$1EW_/;
+ print $export . " GLboolean " . prefix_varname($extvar) . ";\n";
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/parse_spec.pl b/engine-ocean/External/glew/auto/bin/parse_spec.pl
new file mode 100644
index 0000000..5e12f60
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/parse_spec.pl
@@ -0,0 +1,410 @@
+#!/usr/bin/env perl
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+
+use strict;
+use warnings;
+
+sub compile_regex
+{
+ my $regex = join('', @_);
+ return qr/$regex/
+}
+
+my @sections = (
+ "Name",
+ "Name Strings?",
+ "New Procedures and Functions",
+ "New Tokens.*", # Optional (GL/WGL/GLX/...) suffix
+ "Additions to Chapter.*",
+);
+
+my %typemap = (
+ bitfield => "GLbitfield",
+ boolean => "GLboolean",
+ # fsck up in EXT_vertex_array
+ Boolean => "GLboolean",
+ byte => "GLbyte",
+ clampd => "GLclampd",
+ clampf => "GLclampf",
+ double => "GLdouble",
+ enum => "GLenum",
+ # Intel fsck up
+ Glenum => "GLenum",
+ float => "GLfloat",
+ half => "GLhalf",
+ int => "GLint",
+ short => "GLshort",
+ sizei => "GLsizei",
+ ubyte => "GLubyte",
+ uint => "GLuint",
+ ushort => "GLushort",
+ DMbuffer => "void *",
+ # Nvidia video output fsck up
+ int64EXT => "GLint64EXT",
+ uint64EXT=> "GLuint64EXT",
+
+ # ARB VBO introduces these.
+
+ sizeiptr => "GLsizeiptr",
+ intptr => "GLintptr",
+ sizeiptrARB => "GLsizeiptrARB",
+ intptrARB => "GLintptrARB",
+
+ # ARB shader objects introduces these, charARB is at least 8 bits,
+ # handleARB is at least 32 bits
+ charARB => "GLcharARB",
+ handleARB => "GLhandleARB",
+
+ char => "GLchar",
+
+ # OpenGL 3.2 and GL_ARB_sync
+
+ int64 => "GLint64",
+ uint64 => "GLuint64",
+ sync => "GLsync",
+
+ # GL_EXT_EGL_image_storage
+
+ eglImageOES => "GLeglImageOES",
+
+ # AMD_debug_output
+
+ DEBUGPROCAMD => "GLDEBUGPROCAMD",
+
+ # ARB_debug_output
+
+ DEBUGPROCARB => "GLDEBUGPROCARB",
+
+ # KHR_debug
+
+ DEBUGPROC => "GLDEBUGPROC",
+
+ VULKANPROCNV => "GLVULKANPROCNV",
+
+ vdpauSurfaceNV => "GLvdpauSurfaceNV",
+
+ # GLX 1.3 defines new types which might not be available at compile time
+
+ #GLXFBConfig => "void*",
+ #GLXFBConfigID => "XID",
+ #GLXContextID => "XID",
+ #GLXWindow => "XID",
+ #GLXPbuffer => "XID",
+
+ # Weird stuff to some SGIX extension
+
+ #GLXFBConfigSGIX => "void*",
+ #GLXFBConfigIDSGIX => "XID",
+
+);
+
+my %voidtypemap = (
+ void => "GLvoid",
+);
+
+my %taboo_tokens = (
+ GL_ZERO => 1,
+);
+
+# list of function definitions to be ignored, unless they are being defined in
+# the given spec. This is an ugly hack around the fact that people writing
+# spec files seem to shut down all brain activity while they are at this task.
+#
+# This will be moved to its own file eventually.
+#
+# (mem, 2003-03-19)
+
+my %fnc_ignore_list = (
+ "BindProgramARB" => "ARB_vertex_program",
+ "ColorSubTableEXT" => "EXT_color_subtable",
+ "DeleteProgramsARB" => "ARB_vertex_program",
+ "GenProgramsARB" => "ARB_vertex_program",
+ "GetProgramEnvParameterdvARB" => "ARB_vertex_program",
+ "GetProgramEnvParameterfvARB" => "ARB_vertex_program",
+ "GetProgramLocalParameterdvARB" => "ARB_vertex_program",
+ "GetProgramLocalParameterfvARB" => "ARB_vertex_program",
+ "GetProgramStringARB" => "ARB_vertex_program",
+ "GetProgramivARB" => "ARB_vertex_program",
+ "IsProgramARB" => "ARB_vertex_program",
+ "ProgramEnvParameter4dARB" => "ARB_vertex_program",
+ "ProgramEnvParameter4dvARB" => "ARB_vertex_program",
+ "ProgramEnvParameter4fARB" => "ARB_vertex_program",
+ "ProgramEnvParameter4fvARB" => "ARB_vertex_program",
+ "ProgramLocalParameter4dARB" => "ARB_vertex_program",
+ "ProgramLocalParameter4dvARB" => "ARB_vertex_program",
+ "ProgramLocalParameter4fARB" => "ARB_vertex_program",
+ "ProgramLocalParameter4fvARB" => "ARB_vertex_program",
+ "ProgramStringARB" => "ARB_vertex_program",
+ "EGLImageTargetTexture2DOES" => "OES_EGL_image",
+ "FramebufferTextureOES" => "GL_OES_geometry_shader",
+ "PatchParameteriOES" => "GL_OES_tessellation_shader",
+ "PointSizePointerOES" => "GL_OES_point_size_array",
+ "LockArraysEXT" => "EXT_compiled_vertex_array",
+ "UnlockArraysEXT" => "EXT_compiled_vertex_array",
+ "CoverageMaskNV" => "NV_coverage_sample",
+ "CoverageOperationNV" => "NV_coverage_sample",
+ "glXCreateContextAttribsARB" => "ARB_create_context_profile",
+ "wglCreateContextAttribsARB" => "WGL_ARB_create_context_profile",
+);
+
+my %regex = (
+ eofnc => qr/(?:\);?$|^$)/, # )$ | );$ | ^$
+ extname => qr/^[A-Z][A-Za-z0-9_]+$/,
+ none => qr/^\(none\)$/,
+ function => qr/^(.+) ([a-z][a-z0-9_]*) \((.*)\)$/i,
+ prefix => qr/^(?:[aw]?gl|glX|egl)/, # gl | agl | wgl | glX
+ tprefix => qr/^(?:[AW]?GL|GLX|EGL)_/, # GL_ | AGL_ | WGL_ | GLX_
+ section => compile_regex('^(', join('|', @sections), ')$'), # sections in spec
+ token => qr/^([A-Z0-9][A-Z0-9_x]*):?\s+((?:0x)?[0-9A-Fa-f]+(u(ll)?)?)(|\s[^\?]*)$/, # define tokens
+ types => compile_regex('\b(', join('|', keys %typemap), ')\b'), # var types
+ voidtype => compile_regex('\b(', keys %voidtypemap, ')\b '), # void type
+);
+
+# reshapes the the function declaration from multiline to single line form
+sub normalize_prototype
+{
+ local $_ = join(" ", @_);
+ s/\s+/ /g; # multiple whitespace -> single space
+ s/\<.*\>//g; # remove <comments> from direct state access extension
+ s/\<.*$//g; # remove incomplete <comments> from direct state access extension
+ s#/\*.*\*/##g; # remove /* ... */ comments
+ s/\s*\(\s*/ \(/; # exactly one space before ( and none after
+ s/\s*\)\s*/\)/; # no space before or after )
+ s/\s*\*([a-zA-Z])/\* $1/; # "* identifier"
+ s/\*wgl/\* wgl/; # "* wgl"
+ s/\*glX/\* glX/; # "* glX"
+ s/\.\.\./void/; # ... -> void
+ s/;$//; # remove ; at the end of the line
+ return $_;
+}
+
+# Ugly hack to work around the fact that functions are declared in more
+# than one spec file.
+sub ignore_function($$)
+{
+ return exists($fnc_ignore_list{$_[0]}) && $fnc_ignore_list{$_[0]} ne $_[1]
+}
+
+sub parse_spec($)
+{
+ my $filename = shift;
+ my $extname = "";
+ my $vendortag = "";
+ my @extnames = ();
+ my %functions = ();
+ my %tokens = ();
+
+ my $section = "";
+ my @fnc = ();
+
+ my %proc = (
+ "Name" => sub {
+ if (/^([a-z0-9]+)_([a-z0-9_]+)/i)
+ {
+ $extname = "$1_$2";
+ $vendortag = $1;
+ }
+ },
+
+ "Name Strings" => sub {
+ # Add extension name to extension list
+
+ # Initially use $extname if (none) specified
+ if (/$regex{none}/)
+ {
+ $_ = $extname;
+ }
+
+ if (/$regex{extname}/)
+ {
+ # prefix with "GL_" if prefix not present
+ s/^/GL_/ unless /$regex{tprefix}/o;
+ # Add extension name to extension list
+ push @extnames, $_;
+ }
+ },
+
+ "New Procedures and Functions" => sub {
+ # if line matches end of function
+ if (/$regex{eofnc}/)
+ {
+ # add line to function declaration
+ push @fnc, $_;
+
+ # if normalized version of function looks like a function
+ if (normalize_prototype(@fnc) =~ /$regex{function}/)
+ {
+ # get return type, name, and arguments from regex
+ my ($return, $name, $parms) = ($1, $2, $3);
+ if (!ignore_function($name, $extname))
+ {
+ # prefix with "gl" if prefix not present
+ $name =~ s/^/gl/ unless $name =~ /$regex{prefix}/;
+ # is this a pure GL function?
+ if ($name =~ /^gl/ && $name !~ /^glX/)
+ {
+ # apply typemaps
+ $return =~ s/$regex{types}/$typemap{$1}/og;
+ $return =~ s/GLvoid/void/og;
+ $return =~ s/void\*/void */og;
+ $parms =~ s/$regex{types}/$typemap{$1}/og;
+ $parms =~ s/$regex{voidtype}/$voidtypemap{$1}/og;
+ $parms =~ s/GLvoid/void/og;
+ $parms =~ s/ void\* / void */og;
+ if ($parms eq "")
+ {
+ $parms = "void"; # NVX_progress_fence and others
+ }
+ }
+ # add to functions hash
+ $functions{$name} = {
+ rtype => $return,
+ parms => $parms,
+ };
+ }
+ }
+ # reset function declaration
+ @fnc = ();
+ } elsif ($_ ne "" and $_ ne "None") {
+ # if not eof, add line to function declaration
+ push @fnc, $_
+ }
+ },
+
+ "New Tokens" => sub {
+ if (/$regex{token}/)
+ {
+ my ($name, $value) = ($1, $2);
+ # prefix with "GL_" if prefix not present
+ $name =~ s/^/GL_/ unless $name =~ /$regex{tprefix}/;
+ # Add (name, value) pair to tokens hash, unless it's taboo
+ $tokens{$name} = $value unless exists $taboo_tokens{$name};
+ }
+ },
+ );
+
+ # Some people can't read, the template clearly says "Name String_s_"
+ $proc{"Name String"} = $proc{"Name Strings"};
+
+ # Open spec file
+ open SPEC, "<$filename" or return;
+
+ # For each line of SPEC
+ while(<SPEC>)
+ {
+ # Delete trailing newline character
+ chomp;
+ # Remove trailing white spaces
+ s/\s+$//;
+ # If starts with a capital letter, it must be a new section
+ if (/^[A-Z]/)
+ {
+ # Match section name with one of the predefined names
+ $section = /$regex{section}/o ? $1 : "default";
+ } else {
+ # Line is internal to a section
+ # Remove leading whitespace
+ s/^\s+//;
+ # Call appropriate section processing function if it exists
+ &{$proc{$section}} if exists $proc{$section};
+ }
+ }
+
+ close SPEC;
+
+ return ($extname, \@extnames, \%tokens, \%functions);
+}
+
+#----------------------------------------------------------------------------------------
+
+my @speclist = ();
+my %extensions = ();
+
+my $ext_dir = shift;
+my $reg_http = "https://www.khronos.org/registry/OpenGL/extensions/";
+
+# Take command line arguments or read list from file
+if (@ARGV)
+{
+ @speclist = @ARGV;
+} else {
+ local $/; #???
+ @speclist = split "\n", (<>);
+}
+
+foreach my $spec (sort @speclist)
+{
+ my ($extname, $extnames, $tokens, $functions) = parse_spec($spec);
+
+ foreach my $ext (@{$extnames})
+ {
+ my $info = "$ext_dir/" . $ext;
+ open EXT, ">$info";
+ print EXT $ext . "\n"; # Extension name
+ my $specname = $spec;
+ $specname =~ s/OpenGL-Registry\/extensions\///;
+ print EXT $reg_http . $specname . "\n"; # Extension info URL
+ print EXT $ext . "\n"; # Extension string
+ print EXT "\n"; # Resuses nothing by default
+
+ my $prefix = $ext;
+ $prefix =~ s/^(.+?)(_.+)$/$1/;
+ foreach my $token (sort {
+ if (${$tokens}{$a} eq ${$tokens}{$b}) {
+ $a cmp $b
+ } else {
+ if (${$tokens}{$a} =~ /_/) {
+ if (${$tokens}{$b} =~ /_/) {
+ $a cmp $b
+ } else {
+ -1
+ }
+ } else {
+ if (${$tokens}{$b} =~ /_/) {
+ 1
+ } else {
+ if (${$tokens}{$a} =~ /u(ll)?$/) {
+ if (${$tokens}{$b} =~ /u(ll)?$/) {
+ $a cmp $b
+ } else {
+ -1
+ }
+ } else {
+ if (${$tokens}{$b} =~ /u(ll)?$/) {
+ 1
+ } else {
+ if (hex ${$tokens}{$a} eq hex ${$tokens}{$b})
+ {
+ $a cmp $b
+ } else {
+ hex ${$tokens}{$a} <=> hex ${$tokens}{$b}
+ }
+ }
+ }
+ }
+ }
+ }
+ } keys %{$tokens})
+ {
+ if ($token =~ /^$prefix\_.*/i)
+ {
+ print EXT "\t" . $token . " " . ${\%{$tokens}}{$token} . "\n";
+ }
+ }
+ foreach my $function (sort keys %{$functions})
+ {
+ if ($function =~ /^$prefix.*/i)
+ {
+ print EXT "\t" . ${$functions}{$function}{rtype} . " " . $function . " (" . ${$functions}{$function}{parms} . ")" . "\n";
+ }
+ }
+ close EXT;
+ }
+}
diff --git a/engine-ocean/External/glew/auto/bin/parse_xml.py b/engine-ocean/External/glew/auto/bin/parse_xml.py
new file mode 100644
index 0000000..28ecb9f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/parse_xml.py
@@ -0,0 +1,145 @@
+#!/usr/bin/env python
+
+import re
+import sys
+from xml.dom.minidom import parse, Node
+
+#
+# DOM traversal utility functions
+#
+
+def findChildren(node, path):
+ result = []
+ if len(path)==1:
+ for i in node.childNodes:
+ if i.nodeType==Node.ELEMENT_NODE:
+ if i.tagName==path[0]:
+ result.append(i)
+ else:
+ for i in node.childNodes:
+ if i.nodeType==Node.ELEMENT_NODE:
+ if i.tagName==path[0]:
+ result.extend(findChildren(i, path[1:]))
+ return result
+
+def findData(node, path):
+ return [ i.firstChild.data for i in findChildren(node, path) ]
+
+isPointer = re.compile('(.*)([ ]+)([*]+)')
+
+def findParams(node):
+ n = findData(node, ['name'])[0]
+ t = ''
+ for i in node.childNodes:
+ if i.nodeType==Node.TEXT_NODE:
+ t += i.data
+ if i.nodeType==Node.ELEMENT_NODE and i.tagName=='ptype':
+ t += i.firstChild.data
+
+ t.strip()
+ m = isPointer.match(t)
+ if m:
+ t = ('%s%s'%(m.group(1), m.group(3))).strip()
+ return ( t, n.strip())
+
+def findEnums(dom):
+ return {i.getAttribute('name'): i.getAttribute('value') for i in findChildren(dom, [ 'registry', 'enums', 'enum' ])}
+
+def findCommands(dom):
+ ret = {}
+ for i in findChildren(dom, [ 'registry', 'commands', 'command' ]):
+ r,n = findParams(findChildren(i, ['proto'])[0])
+ p = [ findParams(j) for j in findChildren(i, ['param'])]
+ ret[n] = (r, p)
+ return ret
+
+def findFeatures(dom):
+ ret = {}
+ for i in findChildren(dom, [ 'registry', 'feature' ]):
+ n = i.getAttribute('name')
+ e = [j.getAttribute("name") for j in findChildren(i, [ 'require', 'enum' ])]
+ c = [j.getAttribute("name") for j in findChildren(i, [ 'require', 'command' ])]
+ ret[n] = (e,c)
+ return ret
+
+def findExtensions(dom):
+ ret = {}
+ for i in findChildren(dom, [ 'registry', 'extensions', 'extension' ]):
+ n = i.getAttribute('name')
+ e = [j.getAttribute("name") for j in findChildren(i, [ 'require', 'enum' ])]
+ c = [j.getAttribute("name") for j in findChildren(i, [ 'require', 'command' ])]
+ ret[n] = (e,c)
+ return ret
+
+def findApi(dom, name):
+ enums = findEnums(dom)
+ commands = findCommands(dom)
+ features = findFeatures(dom)
+ extensions = findExtensions(dom)
+ return (enums, commands, features, extensions)
+
+#
+#
+#
+
+isWGL = re.compile('WGL_([A-Z0-9]+)_.*')
+
+def writeExtension(f, name, extension, enums, commands):
+ f.write(('%s\n'%name).encode())
+
+ url = 'https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf'
+
+ m = isWGL.match(name)
+ if m:
+ url = 'https://www.khronos.org/registry/OpenGL/extensions/%s/%s.txt'%(m.group(1), name)
+
+ f.write(('%s\n'%(url)).encode())
+
+ if name.find('_VERSION_')==-1:
+ f.write(('%s\n'%name).encode())
+ else:
+ f.write('\n'.encode())
+ f.write('\n'.encode())
+
+ enums = [ (j, enums[j]) for j in extension[0] ]
+ for e in sorted(enums, key=lambda i: i[1]):
+ f.write(('\t%s %s\n'%(e[0], e[1])).encode())
+
+ commands = [ (j, commands[j]) for j in extension[1] ]
+ for c in sorted(commands):
+ params = ', '.join( [ '%s %s'%(j[0].strip(), j[1].strip()) for j in c[1][1] ] )
+ if len(params)==0:
+ params = 'void'
+ f.write(('\t%s %s (%s)\n'%(c[1][0].strip(), c[0].strip(), params)).encode())
+
+if __name__ == '__main__':
+
+ from argparse import ArgumentParser
+ import os
+
+ parser = ArgumentParser(description='usage: %prog [options] [XML specs...]')
+ parser.add_argument("--core", dest="core", help="location for core outputs", default='')
+ parser.add_argument("--api", dest="name", help="API name: egl, wgl, glx, etc", default='')
+ parser.add_argument("--extensions", dest="extensions", help="location for extensions outputs", default='')
+
+ (options, args) = parser.parse_known_args()
+ options = vars(options)
+
+ for i in args:
+
+ dom = parse(i)
+ api = findApi(dom, options['name'])
+
+ print('Found {} enums, {} commands, {} features and {} extensions.'.format(
+ len(api[0]), len(api[1]), len(api[2]), len(api[3])))
+
+ if len(options['core']):
+ for i in api[2].keys():
+ with open(os.path.join(options['core'], i), 'wb') as f:
+ writeExtension(f, i, api[2][i], api[0], api[1])
+
+ if len(options['extensions']):
+ for i in api[3].keys():
+ with open(os.path.join(options['extensions'], i), 'wb') as f:
+ writeExtension(f, i, api[3][i], api[0], api[1])
+
diff --git a/engine-ocean/External/glew/auto/bin/update_ext.sh b/engine-ocean/External/glew/auto/bin/update_ext.sh
new file mode 100644
index 0000000..0ee3af1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/bin/update_ext.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+##
+## Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+##
+## This program is distributed under the terms and conditions of the GNU
+## General Public License Version 2 as published by the Free Software
+## Foundation or, at your option, any later version.
+##
+## Parameters:
+##
+## $1: Extensions directory
+## $2: Registry directory
+## $3: The black list
+
+set -e
+
+if [ ! -d $1 ] ; then
+ mkdir -p $1
+
+# Parse each of the extensions in the registry
+ find $2 -name doc -type d -prune -o -name "*.txt" -print | \
+ grep -v -f $3 | sort | bin/parse_spec.pl $1
+
+fi
diff --git a/engine-ocean/External/glew/auto/blacklist b/engine-ocean/External/glew/auto/blacklist
new file mode 100644
index 0000000..6e57351
--- /dev/null
+++ b/engine-ocean/External/glew/auto/blacklist
@@ -0,0 +1,27 @@
+EXT/draw_range_elements.txt
+EXT/static_vertex_array.txt
+EXT/vertex_array_set.alt.txt
+EXT/vertex_array_set.txt
+EXT/nurbs_tessellator.txt
+EXT/object_space_tess.txt
+SGI/filter4_parameters.txt
+SGIS/SGIS_texture_color_mask.txt
+SGIX/SGIX_dmbuffer.txt
+SGIX/SGIX_instruments.txt
+SGIX/SGIX_video_source.txt
+SGIX/SGIX_hyperpipe_group.txt
+OES/OES_fixed_point.txt
+OES/OES_query_matrix.txt
+IMG/IMG_user_clip_plane.txt
+NV/NV_query_resource.txt
+NV/EGL_NV_coverage_sample.txt
+OES/OES_draw_elements_base_vertex.txt
+OES/OES_viewport_array.txt
+OES/EGL_KHR_fence_sync.txt
+EXT/EXT_texenv_op.txt
+EXT/EXT_transform_feedback2.txt
+EXT/EXT_vertex_array_set.txt
+EXT/EXT_separate_shader_objects.gles.txt
+IGLOO/IGLOO_swap_triangle_strip_vertex_pointerXXX.txt
+IGLOO/IGLOO_viewport_offsetXXX.txt
+IGLOO/IGLOO_toggle_color_and_lightXXX.txt
diff --git a/engine-ocean/External/glew/auto/core/gl/EGL_EXT_device_base b/engine-ocean/External/glew/auto/core/gl/EGL_EXT_device_base
new file mode 100644
index 0000000..fa1d2e1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/EGL_EXT_device_base
@@ -0,0 +1,7 @@
+EGL_EXT_device_base
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_device_base
+
+ EGL_BAD_DEVICE_EXT 0x322B
+ EGL_DEVICE_EXT 0x322C
+ EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0)
diff --git a/engine-ocean/External/glew/auto/core/gl/EGL_KHR_fence_sync b/engine-ocean/External/glew/auto/core/gl/EGL_KHR_fence_sync
new file mode 100644
index 0000000..398b292
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/EGL_KHR_fence_sync
@@ -0,0 +1,7 @@
+EGL_KHR_fence_sync
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_fence_sync
+
+ EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
+ EGL_SYNC_CONDITION_KHR 0x30F8
+ EGL_SYNC_FENCE_KHR 0x30F9
diff --git a/engine-ocean/External/glew/auto/core/gl/EGL_KHR_image_base b/engine-ocean/External/glew/auto/core/gl/EGL_KHR_image_base
new file mode 100644
index 0000000..dd38a6c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/EGL_KHR_image_base
@@ -0,0 +1,6 @@
+EGL_KHR_image_base
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_image_base
+
+ EGL_IMAGE_PRESERVED_KHR 0x30D2
+ EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0)
diff --git a/engine-ocean/External/glew/auto/core/gl/EGL_KHR_lock_surface3 b/engine-ocean/External/glew/auto/core/gl/EGL_KHR_lock_surface3
new file mode 100644
index 0000000..4c0e13a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/EGL_KHR_lock_surface3
@@ -0,0 +1,27 @@
+EGL_KHR_lock_surface3
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_lock_surface3
+
+ EGL_READ_SURFACE_BIT_KHR 0x0001
+ EGL_WRITE_SURFACE_BIT_KHR 0x0002
+ EGL_LOCK_SURFACE_BIT_KHR 0x0080
+ EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
+ EGL_MATCH_FORMAT_KHR 0x3043
+ EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
+ EGL_FORMAT_RGB_565_KHR 0x30C1
+ EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
+ EGL_FORMAT_RGBA_8888_KHR 0x30C3
+ EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
+ EGL_LOCK_USAGE_HINT_KHR 0x30C5
+ EGL_BITMAP_POINTER_KHR 0x30C6
+ EGL_BITMAP_PITCH_KHR 0x30C7
+ EGL_BITMAP_ORIGIN_KHR 0x30C8
+ EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
+ EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
+ EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
+ EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
+ EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
+ EGL_LOWER_LEFT_KHR 0x30CE
+ EGL_UPPER_LEFT_KHR 0x30CF
+ EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
+ EGLBoolean eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR * value)
diff --git a/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_0 b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_0
new file mode 100644
index 0000000..ef48e74
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_0
@@ -0,0 +1,86 @@
+EGL_VERSION_1_0
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+
+
+ EGL_FALSE 0
+ EGL_PBUFFER_BIT 0x0001
+ EGL_PIXMAP_BIT 0x0002
+ EGL_WINDOW_BIT 0x0004
+ EGL_SUCCESS 0x3000
+ EGL_NOT_INITIALIZED 0x3001
+ EGL_BAD_ACCESS 0x3002
+ EGL_BAD_ALLOC 0x3003
+ EGL_BAD_ATTRIBUTE 0x3004
+ EGL_BAD_CONFIG 0x3005
+ EGL_BAD_CONTEXT 0x3006
+ EGL_BAD_CURRENT_SURFACE 0x3007
+ EGL_BAD_DISPLAY 0x3008
+ EGL_BAD_MATCH 0x3009
+ EGL_BAD_NATIVE_PIXMAP 0x300A
+ EGL_BAD_NATIVE_WINDOW 0x300B
+ EGL_BAD_PARAMETER 0x300C
+ EGL_BAD_SURFACE 0x300D
+ EGL_BUFFER_SIZE 0x3020
+ EGL_ALPHA_SIZE 0x3021
+ EGL_BLUE_SIZE 0x3022
+ EGL_GREEN_SIZE 0x3023
+ EGL_RED_SIZE 0x3024
+ EGL_DEPTH_SIZE 0x3025
+ EGL_STENCIL_SIZE 0x3026
+ EGL_CONFIG_CAVEAT 0x3027
+ EGL_CONFIG_ID 0x3028
+ EGL_LEVEL 0x3029
+ EGL_MAX_PBUFFER_HEIGHT 0x302A
+ EGL_MAX_PBUFFER_PIXELS 0x302B
+ EGL_MAX_PBUFFER_WIDTH 0x302C
+ EGL_NATIVE_RENDERABLE 0x302D
+ EGL_NATIVE_VISUAL_ID 0x302E
+ EGL_NATIVE_VISUAL_TYPE 0x302F
+ EGL_SAMPLES 0x3031
+ EGL_SAMPLE_BUFFERS 0x3032
+ EGL_SURFACE_TYPE 0x3033
+ EGL_TRANSPARENT_TYPE 0x3034
+ EGL_TRANSPARENT_BLUE_VALUE 0x3035
+ EGL_TRANSPARENT_GREEN_VALUE 0x3036
+ EGL_TRANSPARENT_RED_VALUE 0x3037
+ EGL_NONE 0x3038
+ EGL_SLOW_CONFIG 0x3050
+ EGL_NON_CONFORMANT_CONFIG 0x3051
+ EGL_TRANSPARENT_RGB 0x3052
+ EGL_VENDOR 0x3053
+ EGL_VERSION 0x3054
+ EGL_EXTENSIONS 0x3055
+ EGL_HEIGHT 0x3056
+ EGL_WIDTH 0x3057
+ EGL_LARGEST_PBUFFER 0x3058
+ EGL_DRAW 0x3059
+ EGL_READ 0x305A
+ EGL_CORE_NATIVE_ENGINE 0x305B
+ EGL_TRUE 1
+ EGL_NO_CONTEXT EGL_CAST(EGLContext,0)
+ EGL_NO_DISPLAY EGL_CAST(EGLDisplay,0)
+ EGL_NO_SURFACE EGL_CAST(EGLSurface,0)
+ EGL_DONT_CARE EGL_CAST(EGLint,-1)
+ EGLBoolean eglChooseConfig (EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config)
+ EGLBoolean eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target)
+ EGLContext eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, 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 eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list)
+ EGLBoolean eglDestroyContext (EGLDisplay dpy, EGLContext ctx)
+ EGLBoolean eglDestroySurface (EGLDisplay dpy, EGLSurface surface)
+ EGLBoolean eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value)
+ EGLBoolean eglGetConfigs (EGLDisplay dpy, EGLConfig * configs, EGLint config_size, EGLint * num_config)
+ EGLDisplay eglGetCurrentDisplay ( void )
+ EGLSurface eglGetCurrentSurface (EGLint readdraw)
+ EGLDisplay eglGetDisplay (EGLNativeDisplayType display_id)
+ EGLint eglGetError ( void )
+ EGLBoolean eglInitialize (EGLDisplay dpy, EGLint * major, EGLint * minor)
+ EGLBoolean eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)
+ EGLBoolean eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value)
+ const char * eglQueryString (EGLDisplay dpy, EGLint name)
+ EGLBoolean eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint * value)
+ EGLBoolean eglSwapBuffers (EGLDisplay dpy, EGLSurface surface)
+ EGLBoolean eglTerminate (EGLDisplay dpy)
+ EGLBoolean eglWaitGL ( void )
+ EGLBoolean eglWaitNative (EGLint engine)
diff --git a/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_1 b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_1
new file mode 100644
index 0000000..550dc24
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_1
@@ -0,0 +1,22 @@
+EGL_VERSION_1_1
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+
+
+ EGL_CONTEXT_LOST 0x300E
+ EGL_BIND_TO_TEXTURE_RGB 0x3039
+ EGL_BIND_TO_TEXTURE_RGBA 0x303A
+ EGL_MIN_SWAP_INTERVAL 0x303B
+ EGL_MAX_SWAP_INTERVAL 0x303C
+ EGL_NO_TEXTURE 0x305C
+ EGL_TEXTURE_RGB 0x305D
+ EGL_TEXTURE_RGBA 0x305E
+ EGL_TEXTURE_2D 0x305F
+ EGL_TEXTURE_FORMAT 0x3080
+ EGL_TEXTURE_TARGET 0x3081
+ EGL_MIPMAP_TEXTURE 0x3082
+ EGL_MIPMAP_LEVEL 0x3083
+ EGL_BACK_BUFFER 0x3084
+ EGLBoolean eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer)
+ EGLBoolean eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer)
+ EGLBoolean eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value)
+ EGLBoolean eglSwapInterval (EGLDisplay dpy, EGLint interval)
diff --git a/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_2 b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_2
new file mode 100644
index 0000000..e5a3a38
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_2
@@ -0,0 +1,38 @@
+EGL_VERSION_1_2
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+
+
+ EGL_OPENGL_ES_BIT 0x0001
+ EGL_OPENVG_BIT 0x0002
+ EGL_LUMINANCE_SIZE 0x303D
+ EGL_ALPHA_MASK_SIZE 0x303E
+ EGL_COLOR_BUFFER_TYPE 0x303F
+ EGL_RENDERABLE_TYPE 0x3040
+ EGL_SINGLE_BUFFER 0x3085
+ EGL_RENDER_BUFFER 0x3086
+ EGL_COLORSPACE 0x3087
+ EGL_ALPHA_FORMAT 0x3088
+ EGL_COLORSPACE_sRGB 0x3089
+ EGL_COLORSPACE_LINEAR 0x308A
+ EGL_ALPHA_FORMAT_NONPRE 0x308B
+ EGL_ALPHA_FORMAT_PRE 0x308C
+ EGL_CLIENT_APIS 0x308D
+ EGL_RGB_BUFFER 0x308E
+ EGL_LUMINANCE_BUFFER 0x308F
+ EGL_HORIZONTAL_RESOLUTION 0x3090
+ EGL_VERTICAL_RESOLUTION 0x3091
+ EGL_PIXEL_ASPECT_RATIO 0x3092
+ EGL_SWAP_BEHAVIOR 0x3093
+ EGL_BUFFER_PRESERVED 0x3094
+ EGL_BUFFER_DESTROYED 0x3095
+ EGL_OPENVG_IMAGE 0x3096
+ EGL_CONTEXT_CLIENT_TYPE 0x3097
+ EGL_OPENGL_ES_API 0x30A0
+ EGL_OPENVG_API 0x30A1
+ EGL_DISPLAY_SCALING 10000
+ EGL_UNKNOWN EGL_CAST(EGLint,-1)
+ EGLBoolean eglBindAPI (EGLenum api)
+ EGLSurface eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint * attrib_list)
+ EGLenum eglQueryAPI ( void )
+ EGLBoolean eglReleaseThread ( void )
+ EGLBoolean eglWaitClient ( void )
diff --git a/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_3 b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_3
new file mode 100644
index 0000000..de1d34d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_3
@@ -0,0 +1,16 @@
+EGL_VERSION_1_3
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+
+
+ EGL_OPENGL_ES2_BIT 0x0004
+ EGL_VG_COLORSPACE_LINEAR_BIT 0x0020
+ EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040
+ EGL_MATCH_NATIVE_PIXMAP 0x3041
+ EGL_CONFORMANT 0x3042
+ EGL_VG_COLORSPACE 0x3087
+ EGL_VG_ALPHA_FORMAT 0x3088
+ EGL_VG_COLORSPACE_sRGB 0x3089
+ EGL_VG_COLORSPACE_LINEAR 0x308A
+ EGL_VG_ALPHA_FORMAT_NONPRE 0x308B
+ EGL_VG_ALPHA_FORMAT_PRE 0x308C
+ EGL_CONTEXT_CLIENT_VERSION 0x3098
diff --git a/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_4 b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_4
new file mode 100644
index 0000000..d8c71d3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_4
@@ -0,0 +1,13 @@
+EGL_VERSION_1_4
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+
+
+ EGL_OPENGL_BIT 0x0008
+ EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200
+ EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400
+ EGL_MULTISAMPLE_RESOLVE 0x3099
+ EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A
+ EGL_MULTISAMPLE_RESOLVE_BOX 0x309B
+ EGL_OPENGL_API 0x30A2
+ EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0)
+ EGLContext eglGetCurrentContext ( void )
diff --git a/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_5 b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_5
new file mode 100644
index 0000000..b436fdf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/EGL_VERSION_1_5
@@ -0,0 +1,59 @@
+EGL_VERSION_1_5
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+
+
+ EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
+ EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
+ EGL_OPENGL_ES3_BIT 0x00000040
+ EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001
+ EGL_GL_COLORSPACE_SRGB 0x3089
+ EGL_GL_COLORSPACE_LINEAR 0x308A
+ EGL_CONTEXT_MAJOR_VERSION 0x3098
+ EGL_CL_EVENT_HANDLE 0x309C
+ EGL_GL_COLORSPACE 0x309D
+ EGL_GL_TEXTURE_2D 0x30B1
+ EGL_GL_TEXTURE_3D 0x30B2
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
+ EGL_GL_RENDERBUFFER 0x30B9
+ EGL_GL_TEXTURE_LEVEL 0x30BC
+ EGL_GL_TEXTURE_ZOFFSET 0x30BD
+ EGL_IMAGE_PRESERVED 0x30D2
+ EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0
+ EGL_SYNC_STATUS 0x30F1
+ EGL_SIGNALED 0x30F2
+ EGL_UNSIGNALED 0x30F3
+ EGL_TIMEOUT_EXPIRED 0x30F5
+ EGL_CONDITION_SATISFIED 0x30F6
+ EGL_SYNC_TYPE 0x30F7
+ EGL_SYNC_CONDITION 0x30F8
+ EGL_SYNC_FENCE 0x30F9
+ EGL_CONTEXT_MINOR_VERSION 0x30FB
+ EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD
+ EGL_SYNC_CL_EVENT 0x30FE
+ EGL_SYNC_CL_EVENT_COMPLETE 0x30FF
+ EGL_CONTEXT_OPENGL_DEBUG 0x31B0
+ EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
+ EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
+ EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
+ EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
+ EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
+ EGL_NO_RESET_NOTIFICATION 0x31BE
+ EGL_LOSE_CONTEXT_ON_RESET 0x31BF
+ EGL_FOREVER 0xFFFFFFFFFFFFFFFF
+ EGL_NO_IMAGE EGL_CAST(EGLImage,0)
+ EGL_NO_SYNC EGL_CAST(EGLSync,0)
+ EGLint eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout)
+ EGLImage eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib * attrib_list)
+ EGLSurface eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLAttrib * attrib_list)
+ EGLSurface eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list)
+ EGLSync eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list)
+ EGLBoolean eglDestroyImage (EGLDisplay dpy, EGLImage image)
+ EGLBoolean eglDestroySync (EGLDisplay dpy, EGLSync sync)
+ EGLDisplay eglGetPlatformDisplay (EGLenum platform, void * native_display, const EGLAttrib * attrib_list)
+ EGLBoolean eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value)
+ EGLBoolean eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags)
diff --git a/engine-ocean/External/glew/auto/core/gl/GLX_ARB_get_proc_address b/engine-ocean/External/glew/auto/core/gl/GLX_ARB_get_proc_address
new file mode 100644
index 0000000..e2cb2c5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GLX_ARB_get_proc_address
@@ -0,0 +1,5 @@
+GLX_ARB_get_proc_address
+http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.txt
+GLX_ARB_get_proc_address
+
+ extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void);
diff --git a/engine-ocean/External/glew/auto/core/gl/GLX_ATI_pixel_format_float b/engine-ocean/External/glew/auto/core/gl/GLX_ATI_pixel_format_float
new file mode 100644
index 0000000..5336da4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GLX_ATI_pixel_format_float
@@ -0,0 +1,5 @@
+GLX_ATI_pixel_format_float
+
+GLX_ATI_pixel_format_float
+
+ GLX_RGBA_FLOAT_ATI_BIT 0x00000100
diff --git a/engine-ocean/External/glew/auto/core/gl/GLX_ATI_render_texture b/engine-ocean/External/glew/auto/core/gl/GLX_ATI_render_texture
new file mode 100644
index 0000000..6b35814
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GLX_ATI_render_texture
@@ -0,0 +1,42 @@
+GLX_ATI_render_texture
+
+GLX_ATI_render_texture
+
+ GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800
+ GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801
+ GLX_TEXTURE_FORMAT_ATI 0x9802
+ GLX_TEXTURE_TARGET_ATI 0x9803
+ GLX_MIPMAP_TEXTURE_ATI 0x9804
+ GLX_TEXTURE_RGB_ATI 0x9805
+ GLX_TEXTURE_RGBA_ATI 0x9806
+ GLX_NO_TEXTURE_ATI 0x9807
+ GLX_TEXTURE_CUBE_MAP_ATI 0x9808
+ GLX_TEXTURE_1D_ATI 0x9809
+ GLX_TEXTURE_2D_ATI 0x980A
+ GLX_MIPMAP_LEVEL_ATI 0x980B
+ GLX_CUBE_MAP_FACE_ATI 0x980C
+ GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D
+ GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E
+ GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F
+ GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810
+ GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811
+ GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812
+ GLX_FRONT_LEFT_ATI 0x9813
+ GLX_FRONT_RIGHT_ATI 0x9814
+ GLX_BACK_LEFT_ATI 0x9815
+ GLX_BACK_RIGHT_ATI 0x9816
+ GLX_AUX0_ATI 0x9817
+ GLX_AUX1_ATI 0x9818
+ GLX_AUX2_ATI 0x9819
+ GLX_AUX3_ATI 0x981A
+ GLX_AUX4_ATI 0x981B
+ GLX_AUX5_ATI 0x981C
+ GLX_AUX6_ATI 0x981D
+ GLX_AUX7_ATI 0x981E
+ GLX_AUX8_ATI 0x981F
+ GLX_AUX9_ATI 0x9820
+ GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821
+ GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822
+ void glXBindTexImageATI (Display *dpy, GLXPbuffer pbuf, int buffer)
+ void glXReleaseTexImageATI (Display *dpy, GLXPbuffer pbuf, int buffer)
+ void glXDrawableAttribATI (Display *dpy, GLXDrawable draw, const int *attrib_list)
diff --git a/engine-ocean/External/glew/auto/core/gl/GLX_EXT_scene_marker b/engine-ocean/External/glew/auto/core/gl/GLX_EXT_scene_marker
new file mode 100644
index 0000000..064caac
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GLX_EXT_scene_marker
@@ -0,0 +1,4 @@
+GLX_EXT_scene_marker
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_scene_marker.txt
+GLX_EXT_scene_marker
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GLX_NV_vertex_array_range b/engine-ocean/External/glew/auto/core/gl/GLX_NV_vertex_array_range
new file mode 100644
index 0000000..9250ec2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GLX_NV_vertex_array_range
@@ -0,0 +1,6 @@
+GLX_NV_vertex_array_range
+http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_array_range.txt
+GLX_NV_vertex_array_range
+
+ void * glXAllocateMemoryNV (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority)
+ void glXFreeMemoryNV (void *pointer)
diff --git a/engine-ocean/External/glew/auto/core/gl/GLX_SGIS_color_range b/engine-ocean/External/glew/auto/core/gl/GLX_SGIS_color_range
new file mode 100644
index 0000000..9286cff
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GLX_SGIS_color_range
@@ -0,0 +1,4 @@
+GLX_SGIS_color_range
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/GLX_SGIS_color_range.txt
+GLX_SGIS_color_range
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GLX_SGIX_hyperpipe b/engine-ocean/External/glew/auto/core/gl/GLX_SGIX_hyperpipe
new file mode 100644
index 0000000..80fd7d6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GLX_SGIX_hyperpipe
@@ -0,0 +1,26 @@
+GLX_SGIX_hyperpipe
+http://oss.sgi.com/projects/ogl-sample/registry/SGIX/hyperpipe_group.txt
+GLX_SGIX_hyperpipe
+
+ GLX_HYPERPIPE_ID_SGIX 0x8030
+ GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
+ GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
+ GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
+ GLX_PIPE_RECT_SGIX 0x00000001
+ GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
+ GLX_HYPERPIPE_STEREO_SGIX 0x00000003
+ GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
+ GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
+ GLX_BAD_HYPERPIPE_SGIX 92
+ typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int networkId; } GLXHyperpipeNetworkSGIX;
+ typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int channel; unsigned int participationType; int timeSlice; } GLXHyperpipeConfigSGIX;
+ typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int srcXOrigin; int srcYOrigin; int srcWidth; int srcHeight; int destXOrigin; int destYOrigin; int destWidth; int destHeight; } GLXPipeRect;
+ typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int XOrigin; int YOrigin; int maxHeight; int maxWidth; } GLXPipeRectLimits;
+ GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *dpy, int *npipes)
+ int glXHyperpipeConfigSGIX (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId)
+ GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *dpy, int hpId, int *npipes)
+ int glXDestroyHyperpipeConfigSGIX (Display *dpy, int hpId)
+ int glXBindHyperpipeSGIX (Display *dpy, int hpId)
+ int glXQueryHyperpipeBestAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList)
+ int glXHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList)
+ int glXQueryHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList)
diff --git a/engine-ocean/External/glew/auto/core/gl/GLX_SUN_video_resize b/engine-ocean/External/glew/auto/core/gl/GLX_SUN_video_resize
new file mode 100644
index 0000000..3a5a176
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GLX_SUN_video_resize
@@ -0,0 +1,8 @@
+GLX_SUN_video_resize
+http://wwws.sun.com/software/graphics/opengl/extensions/glx_sun_video_resize.txt
+GLX_SUN_video_resize
+
+ GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD
+ GLX_VIDEO_RESIZE_SUN 0x8171
+ int glXVideoResizeSUN (Display* display, GLXDrawable window, float factor)
+ int glXGetVideoResizeSUN (Display* display, GLXDrawable window, float* factor)
diff --git a/engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_2 b/engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_2
new file mode 100644
index 0000000..8a12e84
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_2
@@ -0,0 +1,5 @@
+GLX_VERSION_1_2
+http://www.opengl.org/documentation/specs/glx/glx1.2.ps
+GLX_VERSION_1_2
+
+ Display* glXGetCurrentDisplay (void)
diff --git a/engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_3 b/engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_3
new file mode 100644
index 0000000..1cf24be
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_3
@@ -0,0 +1,83 @@
+GLX_VERSION_1_3
+http://www.opengl.org/documentation/specs/glx/glx1.3.pdf
+GLX_VERSION_1_3
+
+ GLX_WINDOW_BIT 0x00000001
+ GLX_PIXMAP_BIT 0x00000002
+ GLX_PBUFFER_BIT 0x00000004
+ GLX_RGBA_BIT 0x00000001
+ GLX_COLOR_INDEX_BIT 0x00000002
+ GLX_PBUFFER_CLOBBER_MASK 0x08000000
+ GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
+ GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
+ GLX_BACK_LEFT_BUFFER_BIT 0x00000004
+ GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
+ GLX_AUX_BUFFERS_BIT 0x00000010
+ GLX_DEPTH_BUFFER_BIT 0x00000020
+ GLX_STENCIL_BUFFER_BIT 0x00000040
+ GLX_ACCUM_BUFFER_BIT 0x00000080
+ GLX_CONFIG_CAVEAT 0x20
+ GLX_X_VISUAL_TYPE 0x22
+ GLX_TRANSPARENT_TYPE 0x23
+ GLX_TRANSPARENT_INDEX_VALUE 0x24
+ GLX_TRANSPARENT_RED_VALUE 0x25
+ GLX_TRANSPARENT_GREEN_VALUE 0x26
+ GLX_TRANSPARENT_BLUE_VALUE 0x27
+ GLX_TRANSPARENT_ALPHA_VALUE 0x28
+ GLX_DONT_CARE 0xFFFFFFFF
+ GLX_NONE 0x8000
+ GLX_SLOW_CONFIG 0x8001
+ GLX_TRUE_COLOR 0x8002
+ GLX_DIRECT_COLOR 0x8003
+ GLX_PSEUDO_COLOR 0x8004
+ GLX_STATIC_COLOR 0x8005
+ GLX_GRAY_SCALE 0x8006
+ GLX_STATIC_GRAY 0x8007
+ GLX_TRANSPARENT_RGB 0x8008
+ GLX_TRANSPARENT_INDEX 0x8009
+ GLX_VISUAL_ID 0x800B
+ GLX_SCREEN 0x800C
+ GLX_NON_CONFORMANT_CONFIG 0x800D
+ GLX_DRAWABLE_TYPE 0x8010
+ GLX_RENDER_TYPE 0x8011
+ GLX_X_RENDERABLE 0x8012
+ GLX_FBCONFIG_ID 0x8013
+ GLX_RGBA_TYPE 0x8014
+ GLX_COLOR_INDEX_TYPE 0x8015
+ GLX_MAX_PBUFFER_WIDTH 0x8016
+ GLX_MAX_PBUFFER_HEIGHT 0x8017
+ GLX_MAX_PBUFFER_PIXELS 0x8018
+ GLX_PRESERVED_CONTENTS 0x801B
+ GLX_LARGEST_PBUFFER 0x801C
+ GLX_WIDTH 0x801D
+ GLX_HEIGHT 0x801E
+ GLX_EVENT_MASK 0x801F
+ GLX_DAMAGED 0x8020
+ GLX_SAVED 0x8021
+ GLX_WINDOW 0x8022
+ GLX_PBUFFER 0x8023
+ GLX_PBUFFER_HEIGHT 0x8040
+ GLX_PBUFFER_WIDTH 0x8041
+ GLXFBConfig* glXChooseFBConfig (Display *dpy, int screen, const int *attrib_list, int *nelements)
+ GLXFBConfig* glXGetFBConfigs (Display *dpy, int screen, int *nelements)
+ XVisualInfo* glXGetVisualFromFBConfig (Display *dpy, GLXFBConfig config)
+ int glXGetFBConfigAttrib (Display *dpy, GLXFBConfig config, int attribute, int *value)
+ GLXWindow glXCreateWindow (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list)
+ void glXDestroyWindow (Display *dpy, GLXWindow win)
+ GLXPixmap glXCreatePixmap (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list)
+ void glXDestroyPixmap (Display *dpy, GLXPixmap pixmap)
+ GLXPbuffer glXCreatePbuffer (Display *dpy, GLXFBConfig config, const int *attrib_list)
+ void glXDestroyPbuffer (Display *dpy, GLXPbuffer pbuf)
+ void glXQueryDrawable (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value)
+ GLXContext glXCreateNewContext (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct)
+ Bool glXMakeContextCurrent (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx)
+ GLXDrawable glXGetCurrentReadDrawable (void)
+ int glXQueryContext (Display *dpy, GLXContext ctx, int attribute, int *value)
+ void glXSelectEvent (Display *dpy, GLXDrawable draw, unsigned long event_mask)
+ void glXGetSelectedEvent (Display *dpy, GLXDrawable draw, unsigned long *event_mask)
+ typedef XID GLXWindow
+ typedef XID GLXPbuffer
+ typedef XID GLXFBConfigID
+ typedef struct __GLXFBConfigRec *GLXFBConfig
+ typedef struct { int event_type; int draw_type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; unsigned int buffer_mask; unsigned int aux_buffer; int x, y; int width, height; int count; } GLXPbufferClobberEvent;
+ typedef union __GLXEvent { GLXPbufferClobberEvent glxpbufferclobber; long pad[24]; } GLXEvent;
diff --git a/engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_4 b/engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_4
new file mode 100644
index 0000000..9b9de3e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GLX_VERSION_1_4
@@ -0,0 +1,7 @@
+GLX_VERSION_1_4
+http://www.opengl.org/documentation/specs/glx/glx1.4.pdf
+GLX_VERSION_1_4
+
+ GLX_SAMPLE_BUFFERS 100000
+ GLX_SAMPLES 100001
+ extern void ( * glXGetProcAddress (const GLubyte *procName)) (void);
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_APPLE_float_pixels b/engine-ocean/External/glew/auto/core/gl/GL_APPLE_float_pixels
new file mode 100644
index 0000000..3eacd42
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_APPLE_float_pixels
@@ -0,0 +1,18 @@
+GL_APPLE_float_pixels
+http://www.opengl.org/registry/specs/APPLE/float_pixels.txt
+GL_APPLE_float_pixels
+
+ GL_HALF_APPLE 0x140B
+ GL_COLOR_FLOAT_APPLE 0x8A0F
+ GL_RGBA_FLOAT32_APPLE 0x8814
+ GL_RGB_FLOAT32_APPLE 0x8815
+ GL_ALPHA_FLOAT32_APPLE 0x8816
+ GL_INTENSITY_FLOAT32_APPLE 0x8817
+ GL_LUMINANCE_FLOAT32_APPLE 0x8818
+ GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
+ GL_RGBA_FLOAT16_APPLE 0x881A
+ GL_RGB_FLOAT16_APPLE 0x881B
+ GL_ALPHA_FLOAT16_APPLE 0x881C
+ GL_INTENSITY_FLOAT16_APPLE 0x881D
+ GL_LUMINANCE_FLOAT16_APPLE 0x881E
+ GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_APPLE_pixel_buffer b/engine-ocean/External/glew/auto/core/gl/GL_APPLE_pixel_buffer
new file mode 100644
index 0000000..1a8ad97
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_APPLE_pixel_buffer
@@ -0,0 +1,5 @@
+GL_APPLE_pixel_buffer
+
+GL_APPLE_pixel_buffer
+
+ GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_APPLE_texture_range b/engine-ocean/External/glew/auto/core/gl/GL_APPLE_texture_range
new file mode 100644
index 0000000..e2bf85c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_APPLE_texture_range
@@ -0,0 +1,13 @@
+GL_APPLE_texture_range
+http://www.opengl.org/registry/specs/APPLE/texture_range.txt
+GL_APPLE_texture_range
+
+ GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
+ GL_STORAGE_PRIVATE_APPLE 0x85BD
+ GL_STORAGE_CACHED_APPLE 0x85BE
+ GL_STORAGE_SHARED_APPLE 0x85BF
+ GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
+ GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
+ void glTextureRangeAPPLE (GLenum target, GLsizei length, void *pointer)
+ void glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, void **params)
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ARB_draw_instanced b/engine-ocean/External/glew/auto/core/gl/GL_ARB_draw_instanced
new file mode 100644
index 0000000..a730952
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ARB_draw_instanced
@@ -0,0 +1,4 @@
+GL_ARB_draw_instanced
+http://www.opengl.org/registry/specs/ARB/draw_instanced.txt
+GL_ARB_draw_instanced
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ARB_imaging b/engine-ocean/External/glew/auto/core/gl/GL_ARB_imaging
new file mode 100644
index 0000000..727adf0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ARB_imaging
@@ -0,0 +1,113 @@
+GL_ARB_imaging
+
+GL_ARB_imaging
+
+ GL_CONSTANT_COLOR 0x8001
+ GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+ GL_CONSTANT_ALPHA 0x8003
+ GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+ GL_BLEND_COLOR 0x8005
+ GL_FUNC_ADD 0x8006
+ GL_MIN 0x8007
+ GL_MAX 0x8008
+ GL_BLEND_EQUATION 0x8009
+ GL_FUNC_SUBTRACT 0x800A
+ GL_FUNC_REVERSE_SUBTRACT 0x800B
+ GL_CONVOLUTION_1D 0x8010
+ GL_CONVOLUTION_2D 0x8011
+ GL_SEPARABLE_2D 0x8012
+ GL_CONVOLUTION_BORDER_MODE 0x8013
+ GL_CONVOLUTION_FILTER_SCALE 0x8014
+ GL_CONVOLUTION_FILTER_BIAS 0x8015
+ GL_REDUCE 0x8016
+ GL_CONVOLUTION_FORMAT 0x8017
+ GL_CONVOLUTION_WIDTH 0x8018
+ GL_CONVOLUTION_HEIGHT 0x8019
+ GL_MAX_CONVOLUTION_WIDTH 0x801A
+ GL_MAX_CONVOLUTION_HEIGHT 0x801B
+ GL_POST_CONVOLUTION_RED_SCALE 0x801C
+ GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
+ GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
+ GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
+ GL_POST_CONVOLUTION_RED_BIAS 0x8020
+ GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
+ GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
+ GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
+ GL_HISTOGRAM 0x8024
+ GL_PROXY_HISTOGRAM 0x8025
+ GL_HISTOGRAM_WIDTH 0x8026
+ GL_HISTOGRAM_FORMAT 0x8027
+ GL_HISTOGRAM_RED_SIZE 0x8028
+ GL_HISTOGRAM_GREEN_SIZE 0x8029
+ GL_HISTOGRAM_BLUE_SIZE 0x802A
+ GL_HISTOGRAM_ALPHA_SIZE 0x802B
+ GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
+ GL_HISTOGRAM_SINK 0x802D
+ GL_MINMAX 0x802E
+ GL_MINMAX_FORMAT 0x802F
+ GL_MINMAX_SINK 0x8030
+ GL_TABLE_TOO_LARGE 0x8031
+ GL_COLOR_MATRIX 0x80B1
+ GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
+ GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
+ GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
+ GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
+ GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
+ GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
+ GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
+ GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
+ GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
+ GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
+ GL_COLOR_TABLE 0x80D0
+ GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
+ GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
+ GL_PROXY_COLOR_TABLE 0x80D3
+ GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
+ GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
+ GL_COLOR_TABLE_SCALE 0x80D6
+ GL_COLOR_TABLE_BIAS 0x80D7
+ GL_COLOR_TABLE_FORMAT 0x80D8
+ GL_COLOR_TABLE_WIDTH 0x80D9
+ GL_COLOR_TABLE_RED_SIZE 0x80DA
+ GL_COLOR_TABLE_GREEN_SIZE 0x80DB
+ GL_COLOR_TABLE_BLUE_SIZE 0x80DC
+ GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
+ GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
+ GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
+ GL_IGNORE_BORDER 0x8150
+ GL_CONSTANT_BORDER 0x8151
+ GL_WRAP_BORDER 0x8152
+ GL_REPLICATE_BORDER 0x8153
+ GL_CONVOLUTION_BORDER_COLOR 0x8154
+ void glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table)
+ void glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data)
+ void glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params)
+ void glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params)
+ void glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+ void glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
+ void glGetColorTable (GLenum target, GLenum format, GLenum type, void *table)
+ void glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params)
+ void glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params)
+ void glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
+ void glResetHistogram (GLenum target)
+ void glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values)
+ void glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params)
+ void glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params)
+ void glMinmax (GLenum target, GLenum internalformat, GLboolean sink)
+ void glResetMinmax (GLenum target)
+ void glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params)
+ void glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params)
+ void glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image)
+ void glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image)
+ void glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params)
+ void glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params)
+ void glConvolutionParameteri (GLenum target, GLenum pname, GLint params)
+ void glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params)
+ void glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
+ void glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, void *image)
+ void glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params)
+ void glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params)
+ void glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column)
+ void glGetSeparableFilter (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span)
+ void glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum types, void *values)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ARB_instanced_arrays b/engine-ocean/External/glew/auto/core/gl/GL_ARB_instanced_arrays
new file mode 100644
index 0000000..1487d39
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ARB_instanced_arrays
@@ -0,0 +1,8 @@
+GL_ARB_instanced_arrays
+http://www.opengl.org/registry/specs/ARB/instanced_arrays.txt
+GL_ARB_instanced_arrays
+
+ GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
+ void glVertexAttribDivisorARB (GLuint index, GLuint divisor)
+ void glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount)
+ void glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ARB_internalformat_query2 b/engine-ocean/External/glew/auto/core/gl/GL_ARB_internalformat_query2
new file mode 100644
index 0000000..7af5091
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ARB_internalformat_query2
@@ -0,0 +1,104 @@
+GL_ARB_internalformat_query2
+http://www.opengl.org/registry/specs/ARB/internalformat_query2.txt
+GL_ARB_internalformat_query2
+
+ GL_INTERNALFORMAT_SUPPORTED 0x826F
+ GL_INTERNALFORMAT_PREFERRED 0x8270
+ GL_INTERNALFORMAT_RED_SIZE 0x8271
+ GL_INTERNALFORMAT_GREEN_SIZE 0x8272
+ GL_INTERNALFORMAT_BLUE_SIZE 0x8273
+ GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
+ GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
+ GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
+ GL_INTERNALFORMAT_SHARED_SIZE 0x8277
+ GL_INTERNALFORMAT_RED_TYPE 0x8278
+ GL_INTERNALFORMAT_GREEN_TYPE 0x8279
+ GL_INTERNALFORMAT_BLUE_TYPE 0x827A
+ GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
+ GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
+ GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
+ GL_MAX_WIDTH 0x827E
+ GL_MAX_HEIGHT 0x827F
+ GL_MAX_DEPTH 0x8280
+ GL_MAX_LAYERS 0x8281
+ GL_MAX_COMBINED_DIMENSIONS 0x8282
+ GL_COLOR_COMPONENTS 0x8283
+ GL_DEPTH_COMPONENTS 0x8284
+ GL_STENCIL_COMPONENTS 0x8285
+ GL_COLOR_RENDERABLE 0x8286
+ GL_DEPTH_RENDERABLE 0x8287
+ GL_STENCIL_RENDERABLE 0x8288
+ GL_FRAMEBUFFER_RENDERABLE 0x8289
+ GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
+ GL_FRAMEBUFFER_BLEND 0x828B
+ GL_READ_PIXELS 0x828C
+ GL_READ_PIXELS_FORMAT 0x828D
+ GL_READ_PIXELS_TYPE 0x828E
+ GL_TEXTURE_IMAGE_FORMAT 0x828F
+ GL_TEXTURE_IMAGE_TYPE 0x8290
+ GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
+ GL_GET_TEXTURE_IMAGE_TYPE 0x8292
+ GL_MIPMAP 0x8293
+ GL_MANUAL_GENERATE_MIPMAP 0x8294
+ GL_AUTO_GENERATE_MIPMAP 0x8295
+ GL_COLOR_ENCODING 0x8296
+ GL_SRGB_READ 0x8297
+ GL_SRGB_WRITE 0x8298
+ GL_SRGB_DECODE_ARB 0x8299
+ GL_FILTER 0x829A
+ GL_VERTEX_TEXTURE 0x829B
+ GL_TESS_CONTROL_TEXTURE 0x829C
+ GL_TESS_EVALUATION_TEXTURE 0x829D
+ GL_GEOMETRY_TEXTURE 0x829E
+ GL_FRAGMENT_TEXTURE 0x829F
+ GL_COMPUTE_TEXTURE 0x82A0
+ GL_TEXTURE_SHADOW 0x82A1
+ GL_TEXTURE_GATHER 0x82A2
+ GL_TEXTURE_GATHER_SHADOW 0x82A3
+ GL_SHADER_IMAGE_LOAD 0x82A4
+ GL_SHADER_IMAGE_STORE 0x82A5
+ GL_SHADER_IMAGE_ATOMIC 0x82A6
+ GL_IMAGE_TEXEL_SIZE 0x82A7
+ GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
+ GL_IMAGE_PIXEL_FORMAT 0x82A9
+ GL_IMAGE_PIXEL_TYPE 0x82AA
+ GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
+ GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
+ GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
+ GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
+ GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
+ GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
+ GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
+ GL_CLEAR_BUFFER 0x82B4
+ GL_TEXTURE_VIEW 0x82B5
+ GL_VIEW_COMPATIBILITY_CLASS 0x82B6
+ GL_FULL_SUPPORT 0x82B7
+ GL_CAVEAT_SUPPORT 0x82B8
+ GL_IMAGE_CLASS_4_X_32 0x82B9
+ GL_IMAGE_CLASS_2_X_32 0x82BA
+ GL_IMAGE_CLASS_1_X_32 0x82BB
+ GL_IMAGE_CLASS_4_X_16 0x82BC
+ GL_IMAGE_CLASS_2_X_16 0x82BD
+ GL_IMAGE_CLASS_1_X_16 0x82BE
+ GL_IMAGE_CLASS_4_X_8 0x82BF
+ GL_IMAGE_CLASS_2_X_8 0x82C0
+ GL_IMAGE_CLASS_1_X_8 0x82C1
+ GL_IMAGE_CLASS_11_11_10 0x82C2
+ GL_IMAGE_CLASS_10_10_10_2 0x82C3
+ GL_VIEW_CLASS_128_BITS 0x82C4
+ GL_VIEW_CLASS_96_BITS 0x82C5
+ GL_VIEW_CLASS_64_BITS 0x82C6
+ GL_VIEW_CLASS_48_BITS 0x82C7
+ GL_VIEW_CLASS_32_BITS 0x82C8
+ GL_VIEW_CLASS_24_BITS 0x82C9
+ GL_VIEW_CLASS_16_BITS 0x82CA
+ GL_VIEW_CLASS_8_BITS 0x82CB
+ GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
+ GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
+ GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
+ GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
+ GL_VIEW_CLASS_RGTC1_RED 0x82D0
+ GL_VIEW_CLASS_RGTC2_RG 0x82D1
+ GL_VIEW_CLASS_BPTC_UNORM 0x82D2
+ GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
+ void glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ARB_matrix_palette b/engine-ocean/External/glew/auto/core/gl/GL_ARB_matrix_palette
new file mode 100644
index 0000000..98b0d0b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ARB_matrix_palette
@@ -0,0 +1,19 @@
+GL_ARB_matrix_palette
+http://oss.sgi.com/projects/ogl-sample/registry/ARB/matrix_palette.txt
+GL_ARB_matrix_palette
+
+ GL_MATRIX_PALETTE_ARB 0x8840
+ GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
+ GL_MAX_PALETTE_MATRICES_ARB 0x8842
+ GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
+ GL_MATRIX_INDEX_ARRAY_ARB 0x8844
+ GL_CURRENT_MATRIX_INDEX_ARB 0x8845
+ GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
+ GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
+ GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
+ GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
+ void glCurrentPaletteMatrixARB (GLint index)
+ void glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, void *pointer)
+ void glMatrixIndexubvARB (GLint size, GLubyte *indices)
+ void glMatrixIndexusvARB (GLint size, GLushort *indices)
+ void glMatrixIndexuivARB (GLint size, GLuint *indices)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ARB_multitexture b/engine-ocean/External/glew/auto/core/gl/GL_ARB_multitexture
new file mode 100644
index 0000000..46a9546
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ARB_multitexture
@@ -0,0 +1,73 @@
+GL_ARB_multitexture
+http://oss.sgi.com/projects/ogl-sample/registry/ARB/multitexture.txt
+GL_ARB_multitexture
+
+ GL_TEXTURE0_ARB 0x84C0
+ GL_TEXTURE1_ARB 0x84C1
+ GL_TEXTURE2_ARB 0x84C2
+ GL_TEXTURE3_ARB 0x84C3
+ GL_TEXTURE4_ARB 0x84C4
+ GL_TEXTURE5_ARB 0x84C5
+ GL_TEXTURE6_ARB 0x84C6
+ GL_TEXTURE7_ARB 0x84C7
+ GL_TEXTURE8_ARB 0x84C8
+ GL_TEXTURE9_ARB 0x84C9
+ GL_TEXTURE10_ARB 0x84CA
+ GL_TEXTURE11_ARB 0x84CB
+ GL_TEXTURE12_ARB 0x84CC
+ GL_TEXTURE13_ARB 0x84CD
+ GL_TEXTURE14_ARB 0x84CE
+ GL_TEXTURE15_ARB 0x84CF
+ GL_TEXTURE16_ARB 0x84D0
+ GL_TEXTURE17_ARB 0x84D1
+ GL_TEXTURE18_ARB 0x84D2
+ GL_TEXTURE19_ARB 0x84D3
+ GL_TEXTURE20_ARB 0x84D4
+ GL_TEXTURE21_ARB 0x84D5
+ GL_TEXTURE22_ARB 0x84D6
+ GL_TEXTURE23_ARB 0x84D7
+ GL_TEXTURE24_ARB 0x84D8
+ GL_TEXTURE25_ARB 0x84D9
+ GL_TEXTURE26_ARB 0x84DA
+ GL_TEXTURE27_ARB 0x84DB
+ GL_TEXTURE28_ARB 0x84DC
+ GL_TEXTURE29_ARB 0x84DD
+ GL_TEXTURE30_ARB 0x84DE
+ GL_TEXTURE31_ARB 0x84DF
+ GL_ACTIVE_TEXTURE_ARB 0x84E0
+ GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
+ GL_MAX_TEXTURE_UNITS_ARB 0x84E2
+ void glActiveTextureARB (GLenum texture)
+ void glClientActiveTextureARB (GLenum texture)
+ void glMultiTexCoord1dARB (GLenum target, GLdouble s)
+ void glMultiTexCoord1dvARB (GLenum target, const GLdouble *v)
+ void glMultiTexCoord1fARB (GLenum target, GLfloat s)
+ void glMultiTexCoord1fvARB (GLenum target, const GLfloat *v)
+ void glMultiTexCoord1iARB (GLenum target, GLint s)
+ void glMultiTexCoord1ivARB (GLenum target, const GLint *v)
+ void glMultiTexCoord1sARB (GLenum target, GLshort s)
+ void glMultiTexCoord1svARB (GLenum target, const GLshort *v)
+ void glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t)
+ void glMultiTexCoord2dvARB (GLenum target, const GLdouble *v)
+ void glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t)
+ void glMultiTexCoord2fvARB (GLenum target, const GLfloat *v)
+ void glMultiTexCoord2iARB (GLenum target, GLint s, GLint t)
+ void glMultiTexCoord2ivARB (GLenum target, const GLint *v)
+ void glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t)
+ void glMultiTexCoord2svARB (GLenum target, const GLshort *v)
+ void glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r)
+ void glMultiTexCoord3dvARB (GLenum target, const GLdouble *v)
+ void glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r)
+ void glMultiTexCoord3fvARB (GLenum target, const GLfloat *v)
+ void glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r)
+ void glMultiTexCoord3ivARB (GLenum target, const GLint *v)
+ void glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r)
+ void glMultiTexCoord3svARB (GLenum target, const GLshort *v)
+ void glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+ void glMultiTexCoord4dvARB (GLenum target, const GLdouble *v)
+ void glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+ void glMultiTexCoord4fvARB (GLenum target, const GLfloat *v)
+ void glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q)
+ void glMultiTexCoord4ivARB (GLenum target, const GLint *v)
+ void glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+ void glMultiTexCoord4svARB (GLenum target, const GLshort *v)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ARB_robustness b/engine-ocean/External/glew/auto/core/gl/GL_ARB_robustness
new file mode 100644
index 0000000..82d48d8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ARB_robustness
@@ -0,0 +1,31 @@
+GL_ARB_robustness
+http://www.opengl.org/registry/specs/ARB/robustness.txt
+GL_ARB_robustness
+
+ GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
+ GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+ GL_GUILTY_CONTEXT_RESET_ARB 0x8253
+ GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
+ GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
+ GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+ GL_NO_RESET_NOTIFICATION_ARB 0x8261
+ GLenum glGetGraphicsResetStatusARB (void)
+ void glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table)
+ void glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, void* img)
+ void glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image)
+ void glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values)
+ void glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v)
+ void glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v)
+ void glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint* v)
+ void glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values)
+ void glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat* values)
+ void glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint* values)
+ void glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort* values)
+ void glGetnPolygonStippleARB (GLsizei bufSize, GLubyte* pattern)
+ void glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, void*column, void*span)
+ void glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img)
+ void glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble* params)
+ void glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat* params)
+ void glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint* params)
+ void glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint* params)
+ void glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ARB_separate_shader_objects b/engine-ocean/External/glew/auto/core/gl/GL_ARB_separate_shader_objects
new file mode 100644
index 0000000..3d3d869
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ARB_separate_shader_objects
@@ -0,0 +1,73 @@
+GL_ARB_separate_shader_objects
+http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+GL_ARB_separate_shader_objects
+
+ GL_VERTEX_SHADER_BIT 0x00000001
+ GL_FRAGMENT_SHADER_BIT 0x00000002
+ GL_GEOMETRY_SHADER_BIT 0x00000004
+ GL_TESS_CONTROL_SHADER_BIT 0x00000008
+ GL_TESS_EVALUATION_SHADER_BIT 0x00000010
+ GL_PROGRAM_SEPARABLE 0x8258
+ GL_ACTIVE_PROGRAM 0x8259
+ GL_PROGRAM_PIPELINE_BINDING 0x825A
+ GL_ALL_SHADER_BITS 0xFFFFFFFF
+ void glActiveShaderProgram (GLuint pipeline, GLuint program)
+ void glBindProgramPipeline (GLuint pipeline)
+ GLuint glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar * const * strings)
+ void glDeleteProgramPipelines (GLsizei n, const GLuint* pipelines)
+ void glGenProgramPipelines (GLsizei n, GLuint* pipelines)
+ void glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar *infoLog)
+ void glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint* params)
+ GLboolean glIsProgramPipeline (GLuint pipeline)
+ void glProgramUniform1d (GLuint program, GLint location, GLdouble x)
+ void glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
+ void glProgramUniform1f (GLuint program, GLint location, GLfloat x)
+ void glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform1i (GLuint program, GLint location, GLint x)
+ void glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform1ui (GLuint program, GLint location, GLuint x)
+ void glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniform2d (GLuint program, GLint location, GLdouble x, GLdouble y)
+ void glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
+ void glProgramUniform2f (GLuint program, GLint location, GLfloat x, GLfloat y)
+ void glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform2i (GLuint program, GLint location, GLint x, GLint y)
+ void glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform2ui (GLuint program, GLint location, GLuint x, GLuint y)
+ void glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniform3d (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z)
+ void glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
+ void glProgramUniform3f (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z)
+ void glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform3i (GLuint program, GLint location, GLint x, GLint y, GLint z)
+ void glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform3ui (GLuint program, GLint location, GLuint x, GLuint y, GLuint z)
+ void glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniform4d (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
+ void glProgramUniform4f (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform4i (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w)
+ void glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform4ui (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w)
+ void glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program)
+ void glValidateProgramPipeline (GLuint pipeline)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ARB_vertex_attrib_64bit b/engine-ocean/External/glew/auto/core/gl/GL_ARB_vertex_attrib_64bit
new file mode 100644
index 0000000..68117c5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ARB_vertex_attrib_64bit
@@ -0,0 +1,14 @@
+GL_ARB_vertex_attrib_64bit
+http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+GL_ARB_vertex_attrib_64bit
+
+ void glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble* params)
+ void glVertexAttribL1d (GLuint index, GLdouble x)
+ void glVertexAttribL1dv (GLuint index, const GLdouble* v)
+ void glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y)
+ void glVertexAttribL2dv (GLuint index, const GLdouble* v)
+ void glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z)
+ void glVertexAttribL3dv (GLuint index, const GLdouble* v)
+ void glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glVertexAttribL4dv (GLuint index, const GLdouble* v)
+ void glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ARB_vertex_blend b/engine-ocean/External/glew/auto/core/gl/GL_ARB_vertex_blend
new file mode 100644
index 0000000..f4b3f58
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ARB_vertex_blend
@@ -0,0 +1,56 @@
+GL_ARB_vertex_blend
+http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_blend.txt
+GL_ARB_vertex_blend
+
+ GL_MAX_VERTEX_UNITS_ARB 0x86A4
+ GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
+ GL_WEIGHT_SUM_UNITY_ARB 0x86A6
+ GL_VERTEX_BLEND_ARB 0x86A7
+ GL_CURRENT_WEIGHT_ARB 0x86A8
+ GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
+ GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
+ GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
+ GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
+ GL_WEIGHT_ARRAY_ARB 0x86AD
+ GL_MODELVIEW0_ARB 0x1700
+ GL_MODELVIEW1_ARB 0x850A
+ GL_MODELVIEW2_ARB 0x8722
+ GL_MODELVIEW3_ARB 0x8723
+ GL_MODELVIEW4_ARB 0x8724
+ GL_MODELVIEW5_ARB 0x8725
+ GL_MODELVIEW6_ARB 0x8726
+ GL_MODELVIEW7_ARB 0x8727
+ GL_MODELVIEW8_ARB 0x8728
+ GL_MODELVIEW9_ARB 0x8729
+ GL_MODELVIEW10_ARB 0x872A
+ GL_MODELVIEW11_ARB 0x872B
+ GL_MODELVIEW12_ARB 0x872C
+ GL_MODELVIEW13_ARB 0x872D
+ GL_MODELVIEW14_ARB 0x872E
+ GL_MODELVIEW15_ARB 0x872F
+ GL_MODELVIEW16_ARB 0x8730
+ GL_MODELVIEW17_ARB 0x8731
+ GL_MODELVIEW18_ARB 0x8732
+ GL_MODELVIEW19_ARB 0x8733
+ GL_MODELVIEW20_ARB 0x8734
+ GL_MODELVIEW21_ARB 0x8735
+ GL_MODELVIEW22_ARB 0x8736
+ GL_MODELVIEW23_ARB 0x8737
+ GL_MODELVIEW24_ARB 0x8738
+ GL_MODELVIEW25_ARB 0x8739
+ GL_MODELVIEW26_ARB 0x873A
+ GL_MODELVIEW27_ARB 0x873B
+ GL_MODELVIEW28_ARB 0x873C
+ GL_MODELVIEW29_ARB 0x873D
+ GL_MODELVIEW30_ARB 0x873E
+ GL_MODELVIEW31_ARB 0x873F
+ void glWeightbvARB (GLint size, GLbyte *weights)
+ void glWeightsvARB (GLint size, GLshort *weights)
+ void glWeightivARB (GLint size, GLint *weights)
+ void glWeightfvARB (GLint size, GLfloat *weights)
+ void glWeightdvARB (GLint size, GLdouble *weights)
+ void glWeightubvARB (GLint size, GLubyte *weights)
+ void glWeightusvARB (GLint size, GLushort *weights)
+ void glWeightuivARB (GLint size, GLuint *weights)
+ void glWeightPointerARB (GLint size, GLenum type, GLsizei stride, void *pointer)
+ void glVertexBlendARB (GLint count)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ATIX_point_sprites b/engine-ocean/External/glew/auto/core/gl/GL_ATIX_point_sprites
new file mode 100644
index 0000000..d2434e7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ATIX_point_sprites
@@ -0,0 +1,10 @@
+GL_ATIX_point_sprites
+http://www.ati.com/developer/atiopengl.pdf
+GL_ATIX_point_sprites
+
+ GL_TEXTURE_POINT_MODE_ATIX 0x60B0
+ GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1
+ GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2
+ GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3
+ GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4
+ GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ATIX_texture_env_combine3 b/engine-ocean/External/glew/auto/core/gl/GL_ATIX_texture_env_combine3
new file mode 100644
index 0000000..77f425d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ATIX_texture_env_combine3
@@ -0,0 +1,7 @@
+GL_ATIX_texture_env_combine3
+http://www.ati.com/developer/atiopengl.pdf
+GL_ATIX_texture_env_combine3
+
+ GL_MODULATE_ADD_ATIX 0x8744
+ GL_MODULATE_SIGNED_ADD_ATIX 0x8745
+ GL_MODULATE_SUBTRACT_ATIX 0x8746
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ATIX_texture_env_route b/engine-ocean/External/glew/auto/core/gl/GL_ATIX_texture_env_route
new file mode 100644
index 0000000..d972fd1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ATIX_texture_env_route
@@ -0,0 +1,7 @@
+GL_ATIX_texture_env_route
+http://www.ati.com/developer/sdk/RadeonSDK/Html/Info/ATIX_texture_env_route.txt
+GL_ATIX_texture_env_route
+
+ GL_SECONDARY_COLOR_ATIX 0x8747
+ GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748
+ GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ATIX_vertex_shader_output_point_size b/engine-ocean/External/glew/auto/core/gl/GL_ATIX_vertex_shader_output_point_size
new file mode 100644
index 0000000..85a6d58
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ATIX_vertex_shader_output_point_size
@@ -0,0 +1,5 @@
+GL_ATIX_vertex_shader_output_point_size
+http://www.ati.com/developer/atiopengl.pdf
+GL_ATIX_vertex_shader_output_point_size
+
+ GL_OUTPUT_POINT_SIZE_ATIX 0x610E
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ATI_envmap_bumpmap b/engine-ocean/External/glew/auto/core/gl/GL_ATI_envmap_bumpmap
new file mode 100644
index 0000000..09a4112
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ATI_envmap_bumpmap
@@ -0,0 +1,16 @@
+GL_ATI_envmap_bumpmap
+http://oss.sgi.com/projects/ogl-sample/registry/ATI/envmap_bumpmap.txt
+GL_ATI_envmap_bumpmap
+
+ GL_BUMP_ROT_MATRIX_ATI 0x8775
+ GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
+ GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
+ GL_BUMP_TEX_UNITS_ATI 0x8778
+ GL_DUDV_ATI 0x8779
+ GL_DU8DV8_ATI 0x877A
+ GL_BUMP_ENVMAP_ATI 0x877B
+ GL_BUMP_TARGET_ATI 0x877C
+ void glTexBumpParameterivATI (GLenum pname, GLint *param)
+ void glTexBumpParameterfvATI (GLenum pname, GLfloat *param)
+ void glGetTexBumpParameterivATI (GLenum pname, GLint *param)
+ void glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ATI_map_object_buffer b/engine-ocean/External/glew/auto/core/gl/GL_ATI_map_object_buffer
new file mode 100644
index 0000000..6a683d0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ATI_map_object_buffer
@@ -0,0 +1,6 @@
+GL_ATI_map_object_buffer
+http://www.opengl.org/registry/specs/ATI/map_object_buffer.txt
+GL_ATI_map_object_buffer
+
+ void * glMapObjectBufferATI (GLuint buffer)
+ void glUnmapObjectBufferATI (GLuint buffer)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ATI_pn_triangles b/engine-ocean/External/glew/auto/core/gl/GL_ATI_pn_triangles
new file mode 100644
index 0000000..ca3923d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ATI_pn_triangles
@@ -0,0 +1,15 @@
+GL_ATI_pn_triangles
+http://www.opengl.org/registry/specs/ATI/pn_triangles.txt
+GL_ATI_pn_triangles
+
+ GL_PN_TRIANGLES_ATI 0x87F0
+ GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
+ GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
+ GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
+ GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
+ GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
+ GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
+ GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
+ GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
+ void glPNTrianglesiATI (GLenum pname, GLint param)
+ void glPNTrianglesfATI (GLenum pname, GLfloat param)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ATI_separate_stencil b/engine-ocean/External/glew/auto/core/gl/GL_ATI_separate_stencil
new file mode 100644
index 0000000..b7237e5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ATI_separate_stencil
@@ -0,0 +1,10 @@
+GL_ATI_separate_stencil
+http://www.opengl.org/registry/specs/ATI/separate_stencil.txt
+GL_ATI_separate_stencil
+
+ GL_STENCIL_BACK_FUNC_ATI 0x8800
+ GL_STENCIL_BACK_FAIL_ATI 0x8801
+ GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
+ GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
+ void glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+ void glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ATI_shader_texture_lod b/engine-ocean/External/glew/auto/core/gl/GL_ATI_shader_texture_lod
new file mode 100644
index 0000000..e6e6c04
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ATI_shader_texture_lod
@@ -0,0 +1,4 @@
+GL_ATI_shader_texture_lod
+
+GL_ATI_shader_texture_lod
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ATI_texture_compression_3dc b/engine-ocean/External/glew/auto/core/gl/GL_ATI_texture_compression_3dc
new file mode 100644
index 0000000..fc3ee44
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ATI_texture_compression_3dc
@@ -0,0 +1,5 @@
+GL_ATI_texture_compression_3dc
+
+GL_ATI_texture_compression_3dc
+
+ GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_ATI_vertex_streams b/engine-ocean/External/glew/auto/core/gl/GL_ATI_vertex_streams
new file mode 100644
index 0000000..f6e64fd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_ATI_vertex_streams
@@ -0,0 +1,59 @@
+GL_ATI_vertex_streams
+http://www.opengl.org/registry/specs/ATI/vertex_streams.txt
+GL_ATI_vertex_streams
+
+ GL_MAX_VERTEX_STREAMS_ATI 0x876B
+ GL_VERTEX_SOURCE_ATI 0x876C
+ GL_VERTEX_STREAM0_ATI 0x876D
+ GL_VERTEX_STREAM1_ATI 0x876E
+ GL_VERTEX_STREAM2_ATI 0x876F
+ GL_VERTEX_STREAM3_ATI 0x8770
+ GL_VERTEX_STREAM4_ATI 0x8771
+ GL_VERTEX_STREAM5_ATI 0x8772
+ GL_VERTEX_STREAM6_ATI 0x8773
+ GL_VERTEX_STREAM7_ATI 0x8774
+ void glClientActiveVertexStreamATI (GLenum stream)
+ void glVertexBlendEnviATI (GLenum pname, GLint param)
+ void glVertexBlendEnvfATI (GLenum pname, GLfloat param)
+ void glVertexStream1sATI (GLenum stream, GLshort x)
+ void glVertexStream1svATI (GLenum stream, const GLshort *coords)
+ void glVertexStream1iATI (GLenum stream, GLint x)
+ void glVertexStream1ivATI (GLenum stream, const GLint *coords)
+ void glVertexStream1fATI (GLenum stream, GLfloat x)
+ void glVertexStream1fvATI (GLenum stream, const GLfloat *coords)
+ void glVertexStream1dATI (GLenum stream, GLdouble x)
+ void glVertexStream1dvATI (GLenum stream, const GLdouble *coords)
+ void glVertexStream2sATI (GLenum stream, GLshort x, GLshort y)
+ void glVertexStream2svATI (GLenum stream, const GLshort *coords)
+ void glVertexStream2iATI (GLenum stream, GLint x, GLint y)
+ void glVertexStream2ivATI (GLenum stream, const GLint *coords)
+ void glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y)
+ void glVertexStream2fvATI (GLenum stream, const GLfloat *coords)
+ void glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y)
+ void glVertexStream2dvATI (GLenum stream, const GLdouble *coords)
+ void glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z)
+ void glVertexStream3svATI (GLenum stream, const GLshort *coords)
+ void glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z)
+ void glVertexStream3ivATI (GLenum stream, const GLint *coords)
+ void glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z)
+ void glVertexStream3fvATI (GLenum stream, const GLfloat *coords)
+ void glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z)
+ void glVertexStream3dvATI (GLenum stream, const GLdouble *coords)
+ void glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w)
+ void glVertexStream4svATI (GLenum stream, const GLshort *coords)
+ void glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w)
+ void glVertexStream4ivATI (GLenum stream, const GLint *coords)
+ void glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glVertexStream4fvATI (GLenum stream, const GLfloat *coords)
+ void glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glVertexStream4dvATI (GLenum stream, const GLdouble *coords)
+ void glNormalStream3bATI (GLenum stream, GLbyte x, GLbyte y, GLbyte z)
+ void glNormalStream3bvATI (GLenum stream, const GLbyte *coords)
+ void glNormalStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z)
+ void glNormalStream3svATI (GLenum stream, const GLshort *coords)
+ void glNormalStream3iATI (GLenum stream, GLint x, GLint y, GLint z)
+ void glNormalStream3ivATI (GLenum stream, const GLint *coords)
+ void glNormalStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z)
+ void glNormalStream3fvATI (GLenum stream, const GLfloat *coords)
+ void glNormalStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z)
+ void glNormalStream3dvATI (GLenum stream, const GLdouble *coords)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_Cg_shader b/engine-ocean/External/glew/auto/core/gl/GL_EXT_Cg_shader
new file mode 100644
index 0000000..b2df900
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_Cg_shader
@@ -0,0 +1,6 @@
+GL_EXT_Cg_shader
+http://download.nvidia.com/developer/GLSL/GLSL%20Release%20Notes%20for%20Release%2060.pdf
+GL_EXT_Cg_shader
+
+ GL_CG_VERTEX_SHADER_EXT 0x890E
+ GL_CG_FRAGMENT_SHADER_EXT 0x890F
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_bindable_uniform b/engine-ocean/External/glew/auto/core/gl/GL_EXT_bindable_uniform
new file mode 100644
index 0000000..00ec270
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_bindable_uniform
@@ -0,0 +1,13 @@
+GL_EXT_bindable_uniform
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_bindable_uniform.txt
+GL_EXT_bindable_uniform
+
+ GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
+ GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
+ GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
+ GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
+ GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
+ GL_UNIFORM_BUFFER_EXT 0x8DEE
+ void glUniformBufferEXT (GLuint program, GLint location, GLuint buffer)
+ GLint glGetUniformBufferSizeEXT (GLuint program, GLint location)
+ GLintptr glGetUniformOffsetEXT (GLuint program, GLint location)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_debug_marker b/engine-ocean/External/glew/auto/core/gl/GL_EXT_debug_marker
new file mode 100644
index 0000000..ce9ffe4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_debug_marker
@@ -0,0 +1,7 @@
+GL_EXT_debug_marker
+http://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt
+GL_EXT_debug_marker
+
+ void glInsertEventMarkerEXT (GLsizei length, const GLchar* marker)
+ void glPushGroupMarkerEXT (GLsizei length, const GLchar* marker)
+ void glPopGroupMarkerEXT (void)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_depth_bounds_test b/engine-ocean/External/glew/auto/core/gl/GL_EXT_depth_bounds_test
new file mode 100644
index 0000000..da2a453
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_depth_bounds_test
@@ -0,0 +1,7 @@
+GL_EXT_depth_bounds_test
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_depth_bounds_test.txt
+GL_EXT_depth_bounds_test
+
+ GL_DEPTH_BOUNDS_TEST_EXT 0x8890
+ GL_DEPTH_BOUNDS_EXT 0x8891
+ void glDepthBoundsEXT (GLclampd zmin, GLclampd zmax)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_draw_instanced b/engine-ocean/External/glew/auto/core/gl/GL_EXT_draw_instanced
new file mode 100644
index 0000000..ca7f17e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_draw_instanced
@@ -0,0 +1,6 @@
+GL_EXT_draw_instanced
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_draw_instanced.txt
+GL_EXT_draw_instanced
+
+ void glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount)
+ void glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_draw_range_elements b/engine-ocean/External/glew/auto/core/gl/GL_EXT_draw_range_elements
new file mode 100644
index 0000000..f5346de
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_draw_range_elements
@@ -0,0 +1,7 @@
+GL_EXT_draw_range_elements
+http://oss.sgi.com/projects/ogl-sample/registry/EXT/draw_range_elements.txt
+GL_EXT_draw_range_elements
+
+ GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
+ GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
+ void glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_external_buffer b/engine-ocean/External/glew/auto/core/gl/GL_EXT_external_buffer
new file mode 100644
index 0000000..25a3ca6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_external_buffer
@@ -0,0 +1,7 @@
+GL_EXT_external_buffer
+http://www.opengl.org/registry/specs/EXT/external_buffer.txt
+GL_EXT_external_buffer
+
+ void glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)
+ void glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)
+ typedef void* GLeglClientBufferEXT \ No newline at end of file
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_fog_coord b/engine-ocean/External/glew/auto/core/gl/GL_EXT_fog_coord
new file mode 100644
index 0000000..148866a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_fog_coord
@@ -0,0 +1,17 @@
+GL_EXT_fog_coord
+http://oss.sgi.com/projects/ogl-sample/registry/EXT/fog_coord.txt
+GL_EXT_fog_coord
+
+ GL_FOG_COORDINATE_SOURCE_EXT 0x8450
+ GL_FOG_COORDINATE_EXT 0x8451
+ GL_FRAGMENT_DEPTH_EXT 0x8452
+ GL_CURRENT_FOG_COORDINATE_EXT 0x8453
+ GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
+ GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
+ GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
+ GL_FOG_COORDINATE_ARRAY_EXT 0x8457
+ void glFogCoordfEXT (GLfloat coord)
+ void glFogCoordfvEXT (const GLfloat *coord)
+ void glFogCoorddEXT (GLdouble coord)
+ void glFogCoorddvEXT (const GLdouble *coord)
+ void glFogCoordPointerEXT (GLenum type, GLsizei stride, const void *pointer)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_framebuffer_sRGB b/engine-ocean/External/glew/auto/core/gl/GL_EXT_framebuffer_sRGB
new file mode 100644
index 0000000..2f4c6ff
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_framebuffer_sRGB
@@ -0,0 +1,6 @@
+GL_EXT_framebuffer_sRGB
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt
+GL_EXT_framebuffer_sRGB
+
+ GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
+ GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_geometry_shader4 b/engine-ocean/External/glew/auto/core/gl/GL_EXT_geometry_shader4
new file mode 100644
index 0000000..a463c4c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_geometry_shader4
@@ -0,0 +1,27 @@
+GL_EXT_geometry_shader4
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_geometry_shader4.txt
+GL_EXT_geometry_shader4
+
+ GL_GEOMETRY_SHADER_EXT 0x8DD9
+ GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
+ GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
+ GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
+ GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
+ GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
+ GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
+ GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
+ GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
+ GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
+ GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
+ GL_LINES_ADJACENCY_EXT 0xA
+ GL_LINE_STRIP_ADJACENCY_EXT 0xB
+ GL_TRIANGLES_ADJACENCY_EXT 0xC
+ GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
+ GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
+ GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
+ GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
+ GL_PROGRAM_POINT_SIZE_EXT 0x8642
+ void glProgramParameteriEXT (GLuint program, GLenum pname, GLint value)
+ void glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level)
+ void glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_gpu_program_parameters b/engine-ocean/External/glew/auto/core/gl/GL_EXT_gpu_program_parameters
new file mode 100644
index 0000000..298bc36
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_gpu_program_parameters
@@ -0,0 +1,6 @@
+GL_EXT_gpu_program_parameters
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_program_parameters.txt
+GL_EXT_gpu_program_parameters
+
+ void glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat* params)
+ void glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat* params)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_gpu_shader4 b/engine-ocean/External/glew/auto/core/gl/GL_EXT_gpu_shader4
new file mode 100644
index 0000000..7e95dbc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_gpu_shader4
@@ -0,0 +1,64 @@
+GL_EXT_gpu_shader4
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_shader4.txt
+GL_EXT_gpu_shader4
+
+ GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
+ GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
+ GL_SAMPLER_BUFFER_EXT 0x8DC2
+ GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
+ GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
+ GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
+ GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
+ GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
+ GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
+ GL_INT_SAMPLER_1D_EXT 0x8DC9
+ GL_INT_SAMPLER_2D_EXT 0x8DCA
+ GL_INT_SAMPLER_3D_EXT 0x8DCB
+ GL_INT_SAMPLER_CUBE_EXT 0x8DCC
+ GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
+ GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
+ GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
+ GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
+ GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
+ GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
+ GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
+ GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
+ GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
+ GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
+ GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
+ GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
+ GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD
+ void glGetUniformuivEXT (GLuint program, GLint location, GLuint *params)
+ void glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name)
+ GLint glGetFragDataLocationEXT (GLuint program, const GLchar *name)
+ void glUniform1uiEXT (GLint location, GLuint v0)
+ void glUniform2uiEXT (GLint location, GLuint v0, GLuint v1)
+ void glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2)
+ void glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+ void glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value)
+ void glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value)
+ void glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value)
+ void glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value)
+ void glVertexAttribI1iEXT (GLuint index, GLint x)
+ void glVertexAttribI2iEXT (GLuint index, GLint x, GLint y)
+ void glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z)
+ void glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w)
+ void glVertexAttribI1uiEXT (GLuint index, GLuint x)
+ void glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y)
+ void glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z)
+ void glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+ void glVertexAttribI1ivEXT (GLuint index, const GLint *v)
+ void glVertexAttribI2ivEXT (GLuint index, const GLint *v)
+ void glVertexAttribI3ivEXT (GLuint index, const GLint *v)
+ void glVertexAttribI4ivEXT (GLuint index, const GLint *v)
+ void glVertexAttribI1uivEXT (GLuint index, const GLuint *v)
+ void glVertexAttribI2uivEXT (GLuint index, const GLuint *v)
+ void glVertexAttribI3uivEXT (GLuint index, const GLuint *v)
+ void glVertexAttribI4uivEXT (GLuint index, const GLuint *v)
+ void glVertexAttribI4bvEXT (GLuint index, const GLbyte *v)
+ void glVertexAttribI4svEXT (GLuint index, const GLshort *v)
+ void glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v)
+ void glVertexAttribI4usvEXT (GLuint index, const GLushort *v)
+ void glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
+ void glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params)
+ void glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object b/engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object
new file mode 100644
index 0000000..5520422
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object
@@ -0,0 +1,34 @@
+GL_EXT_memory_object
+http://www.opengl.org/registry/specs/EXT/external_objects.txt
+GL_EXT_memory_object
+
+ GL_UUID_SIZE_EXT 16
+ GL_TEXTURE_TILING_EXT 0x9580
+ GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581
+ GL_NUM_TILING_TYPES_EXT 0x9582
+ GL_TILING_TYPES_EXT 0x9583
+ GL_OPTIMAL_TILING_EXT 0x9584
+ GL_LINEAR_TILING_EXT 0x9585
+ GL_NUM_DEVICE_UUIDS_EXT 0x9596
+ GL_DEVICE_UUID_EXT 0x9597
+ GL_DRIVER_UUID_EXT 0x9598
+ GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B
+ void glBufferStorageMemEXT (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset)
+ void glCreateMemoryObjectsEXT (GLsizei n, GLuint* memoryObjects)
+ void glDeleteMemoryObjectsEXT (GLsizei n, const GLuint* memoryObjects)
+ void glGetMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, GLint* params)
+ void glGetUnsignedBytei_vEXT (GLenum target, GLuint index, GLubyte* data)
+ void glGetUnsignedBytevEXT (GLenum pname, GLubyte* data)
+ GLboolean glIsMemoryObjectEXT (GLuint memoryObject)
+ void glMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, const GLint* params)
+ void glNamedBufferStorageMemEXT (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset)
+ void glTexStorageMem1DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)
+ void glTexStorageMem2DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)
+ void glTexStorageMem2DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
+ void glTexStorageMem3DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)
+ void glTexStorageMem3DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
+ void glTextureStorageMem1DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)
+ void glTextureStorageMem2DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)
+ void glTextureStorageMem2DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
+ void glTextureStorageMem3DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)
+ void glTextureStorageMem3DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object_fd b/engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object_fd
new file mode 100644
index 0000000..38536c0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object_fd
@@ -0,0 +1,6 @@
+GL_EXT_memory_object_fd
+http://www.opengl.org/registry/specs/EXT/external_objects_fd.txt
+GL_EXT_memory_object_fd
+
+ GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586
+ void glImportMemoryFdEXT (GLuint memory, GLuint64 size, GLenum handleType, GLint fd)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object_win32 b/engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object_win32
new file mode 100644
index 0000000..6d36a69
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_memory_object_win32
@@ -0,0 +1,17 @@
+GL_EXT_memory_object_win32
+http://www.opengl.org/registry/specs/EXT/external_objects_win32.txt
+GL_EXT_memory_object_win32
+
+ GL_LUID_SIZE_EXT 8
+ GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587
+ GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588
+ GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589
+ GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A
+ GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B
+ GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C
+ GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594
+ GL_D3D12_FENCE_VALUE_EXT 0x9595
+ GL_DEVICE_LUID_EXT 0x9599
+ GL_DEVICE_NODE_MASK_EXT 0x959A
+ void glImportMemoryWin32HandleEXT (GLuint memory, GLuint64 size, GLenum handleType, void *handle)
+ void glImportMemoryWin32NameEXT (GLuint memory, GLuint64 size, GLenum handleType, const void *name)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_packed_float b/engine-ocean/External/glew/auto/core/gl/GL_EXT_packed_float
new file mode 100644
index 0000000..15ac680
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_packed_float
@@ -0,0 +1,7 @@
+GL_EXT_packed_float
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt
+GL_EXT_packed_float
+
+ GL_R11F_G11F_B10F_EXT 0x8C3A
+ GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
+ GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_pixel_buffer_object b/engine-ocean/External/glew/auto/core/gl/GL_EXT_pixel_buffer_object
new file mode 100644
index 0000000..f685e4c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_pixel_buffer_object
@@ -0,0 +1,8 @@
+GL_EXT_pixel_buffer_object
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_pixel_buffer_object.txt
+GL_EXT_pixel_buffer_object
+
+ GL_PIXEL_PACK_BUFFER_EXT 0x88EB
+ GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC
+ GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED
+ GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_scene_marker b/engine-ocean/External/glew/auto/core/gl/GL_EXT_scene_marker
new file mode 100644
index 0000000..504efcf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_scene_marker
@@ -0,0 +1,6 @@
+GL_EXT_scene_marker
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_scene_marker.txt
+GL_EXT_scene_marker
+
+ void glBeginSceneEXT (void)
+ void glEndSceneEXT (void)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_secondary_color b/engine-ocean/External/glew/auto/core/gl/GL_EXT_secondary_color
new file mode 100644
index 0000000..505761d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_secondary_color
@@ -0,0 +1,28 @@
+GL_EXT_secondary_color
+http://oss.sgi.com/projects/ogl-sample/registry/EXT/secondary_color.txt
+GL_EXT_secondary_color
+
+ GL_COLOR_SUM_EXT 0x8458
+ GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
+ GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
+ GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
+ GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
+ GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
+ GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
+ void glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue)
+ void glSecondaryColor3bvEXT (const GLbyte *v)
+ void glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue)
+ void glSecondaryColor3dvEXT (const GLdouble *v)
+ void glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue)
+ void glSecondaryColor3fvEXT (const GLfloat *v)
+ void glSecondaryColor3iEXT (GLint red, GLint green, GLint blue)
+ void glSecondaryColor3ivEXT (const GLint *v)
+ void glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue)
+ void glSecondaryColor3svEXT (const GLshort *v)
+ void glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue)
+ void glSecondaryColor3ubvEXT (const GLubyte *v)
+ void glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue)
+ void glSecondaryColor3uivEXT (const GLuint *v)
+ void glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue)
+ void glSecondaryColor3usvEXT (const GLushort *v)
+ void glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore b/engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore
new file mode 100644
index 0000000..faf18b3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore
@@ -0,0 +1,21 @@
+GL_EXT_semaphore
+http://www.opengl.org/registry/specs/EXT/external_objects.txt
+GL_EXT_semaphore
+
+ GL_LAYOUT_GENERAL_EXT 0x958D
+ GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E
+ GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F
+ GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590
+ GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591
+ GL_LAYOUT_TRANSFER_SRC_EXT 0x9592
+ GL_LAYOUT_TRANSFER_DST_EXT 0x9593
+ GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530
+ GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531
+
+ void glDeleteSemaphoresEXT (GLsizei n, const GLuint* semaphores)
+ void glGenSemaphoresEXT (GLsizei n, GLuint* semaphores)
+ void glGetSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, GLuint64* params)
+ GLboolean glIsSemaphoreEXT (GLuint semaphore)
+ void glSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, const GLuint64* params)
+ void glSignalSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts)
+ void glWaitSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore_fd b/engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore_fd
new file mode 100644
index 0000000..e3b2985
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore_fd
@@ -0,0 +1,5 @@
+GL_EXT_semaphore_fd
+http://www.opengl.org/registry/specs/EXT/external_objects_fd.txt
+GL_EXT_semaphore_fd
+
+ void glImportSemaphoreFdEXT (GLuint semaphore, GLenum handleType, GLint fd)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore_win32 b/engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore_win32
new file mode 100644
index 0000000..4854f58
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_semaphore_win32
@@ -0,0 +1,6 @@
+GL_EXT_semaphore_win32
+http://www.opengl.org/registry/specs/EXT/external_objects_win32.txt
+GL_EXT_semaphore_win32
+
+ void glImportSemaphoreWin32HandleEXT (GLuint semaphore, GLenum handleType, void *handle)
+ void glImportSemaphoreWin32NameEXT (GLuint semaphore, GLenum handleType, const void *name)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_array b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_array
new file mode 100644
index 0000000..c5c2c9f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_array
@@ -0,0 +1,13 @@
+GL_EXT_texture_array
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_array.txt
+GL_EXT_texture_array
+
+ GL_TEXTURE_1D_ARRAY_EXT 0x8C18
+ GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
+ GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
+ GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
+ GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
+ GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
+ GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
+ GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
+ void glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_buffer_object b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_buffer_object
new file mode 100644
index 0000000..81b5835
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_buffer_object
@@ -0,0 +1,10 @@
+GL_EXT_texture_buffer_object
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_buffer_object.txt
+GL_EXT_texture_buffer_object
+
+ GL_TEXTURE_BUFFER_EXT 0x8C2A
+ GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
+ GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
+ GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
+ GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
+ void glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_compression_latc b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_compression_latc
new file mode 100644
index 0000000..e8fcacc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_compression_latc
@@ -0,0 +1,8 @@
+GL_EXT_texture_compression_latc
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_latc.txt
+GL_EXT_texture_compression_latc
+
+ GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
+ GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
+ GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
+ GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_compression_rgtc b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_compression_rgtc
new file mode 100644
index 0000000..054b7f0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_compression_rgtc
@@ -0,0 +1,8 @@
+GL_EXT_texture_compression_rgtc
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_rgtc.txt
+GL_EXT_texture_compression_rgtc
+
+ GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
+ GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
+ GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
+ GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_cube_map b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_cube_map
new file mode 100644
index 0000000..73a2c73
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_cube_map
@@ -0,0 +1,16 @@
+GL_EXT_texture_cube_map
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_texture_cube_map.txt
+GL_EXT_texture_cube_map
+
+ GL_NORMAL_MAP_EXT 0x8511
+ GL_REFLECTION_MAP_EXT 0x8512
+ GL_TEXTURE_CUBE_MAP_EXT 0x8513
+ GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514
+ GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
+ GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B
+ GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_edge_clamp b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_edge_clamp
new file mode 100644
index 0000000..c0b3e2a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_edge_clamp
@@ -0,0 +1,5 @@
+GL_EXT_texture_edge_clamp
+http://www.opengl.org/developers/documentation/Version1.2/1.2specs/texture_edge_clamp.txt
+GL_EXT_texture_edge_clamp
+
+ GL_CLAMP_TO_EDGE_EXT 0x812F
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_integer b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_integer
new file mode 100644
index 0000000..43219cf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_integer
@@ -0,0 +1,57 @@
+GL_EXT_texture_integer
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_integer.txt
+GL_EXT_texture_integer
+
+ GL_RGBA32UI_EXT 0x8D70
+ GL_RGB32UI_EXT 0x8D71
+ GL_ALPHA32UI_EXT 0x8D72
+ GL_INTENSITY32UI_EXT 0x8D73
+ GL_LUMINANCE32UI_EXT 0x8D74
+ GL_LUMINANCE_ALPHA32UI_EXT 0x8D75
+ GL_RGBA16UI_EXT 0x8D76
+ GL_RGB16UI_EXT 0x8D77
+ GL_ALPHA16UI_EXT 0x8D78
+ GL_INTENSITY16UI_EXT 0x8D79
+ GL_LUMINANCE16UI_EXT 0x8D7A
+ GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B
+ GL_RGBA8UI_EXT 0x8D7C
+ GL_RGB8UI_EXT 0x8D7D
+ GL_ALPHA8UI_EXT 0x8D7E
+ GL_INTENSITY8UI_EXT 0x8D7F
+ GL_LUMINANCE8UI_EXT 0x8D80
+ GL_LUMINANCE_ALPHA8UI_EXT 0x8D81
+ GL_RGBA32I_EXT 0x8D82
+ GL_RGB32I_EXT 0x8D83
+ GL_ALPHA32I_EXT 0x8D84
+ GL_INTENSITY32I_EXT 0x8D85
+ GL_LUMINANCE32I_EXT 0x8D86
+ GL_LUMINANCE_ALPHA32I_EXT 0x8D87
+ GL_RGBA16I_EXT 0x8D88
+ GL_RGB16I_EXT 0x8D89
+ GL_ALPHA16I_EXT 0x8D8A
+ GL_INTENSITY16I_EXT 0x8D8B
+ GL_LUMINANCE16I_EXT 0x8D8C
+ GL_LUMINANCE_ALPHA16I_EXT 0x8D8D
+ GL_RGBA8I_EXT 0x8D8E
+ GL_RGB8I_EXT 0x8D8F
+ GL_ALPHA8I_EXT 0x8D90
+ GL_INTENSITY8I_EXT 0x8D91
+ GL_LUMINANCE8I_EXT 0x8D92
+ GL_LUMINANCE_ALPHA8I_EXT 0x8D93
+ GL_RED_INTEGER_EXT 0x8D94
+ GL_GREEN_INTEGER_EXT 0x8D95
+ GL_BLUE_INTEGER_EXT 0x8D96
+ GL_ALPHA_INTEGER_EXT 0x8D97
+ GL_RGB_INTEGER_EXT 0x8D98
+ GL_RGBA_INTEGER_EXT 0x8D99
+ GL_BGR_INTEGER_EXT 0x8D9A
+ GL_BGRA_INTEGER_EXT 0x8D9B
+ GL_LUMINANCE_INTEGER_EXT 0x8D9C
+ GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D
+ GL_RGBA_INTEGER_MODE_EXT 0x8D9E
+ void glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params)
+ void glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params)
+ void glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params)
+ void glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params)
+ void glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha)
+ void glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_rectangle b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_rectangle
new file mode 100644
index 0000000..1394311
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_rectangle
@@ -0,0 +1,8 @@
+GL_EXT_texture_rectangle
+http://developer.apple.com/opengl/extensions/ext_texture_rectangle.html
+GL_EXT_texture_rectangle
+
+ GL_TEXTURE_RECTANGLE_EXT 0x84F5
+ GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6
+ GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7
+ GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_shared_exponent b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_shared_exponent
new file mode 100644
index 0000000..4c7d461
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_texture_shared_exponent
@@ -0,0 +1,7 @@
+GL_EXT_texture_shared_exponent
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_shared_exponent.txt
+GL_EXT_texture_shared_exponent
+
+ GL_RGB9_E5_EXT 0x8C3D
+ GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E
+ GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_timer_query b/engine-ocean/External/glew/auto/core/gl/GL_EXT_timer_query
new file mode 100644
index 0000000..530ba35
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_timer_query
@@ -0,0 +1,7 @@
+GL_EXT_timer_query
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_timer_query.txt
+GL_EXT_timer_query
+
+ GL_TIME_ELAPSED_EXT 0x88BF
+ void glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64EXT *params)
+ void glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64EXT *params)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_EXT_vertex_shader b/engine-ocean/External/glew/auto/core/gl/GL_EXT_vertex_shader
new file mode 100644
index 0000000..8d3314f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_EXT_vertex_shader
@@ -0,0 +1,157 @@
+GL_EXT_vertex_shader
+http://oss.sgi.com/projects/ogl-sample/registry/EXT/vertex_shader.txt
+GL_EXT_vertex_shader
+
+ GL_VERTEX_SHADER_EXT 0x8780
+ GL_VERTEX_SHADER_BINDING_EXT 0x8781
+ GL_OP_INDEX_EXT 0x8782
+ GL_OP_NEGATE_EXT 0x8783
+ GL_OP_DOT3_EXT 0x8784
+ GL_OP_DOT4_EXT 0x8785
+ GL_OP_MUL_EXT 0x8786
+ GL_OP_ADD_EXT 0x8787
+ GL_OP_MADD_EXT 0x8788
+ GL_OP_FRAC_EXT 0x8789
+ GL_OP_MAX_EXT 0x878A
+ GL_OP_MIN_EXT 0x878B
+ GL_OP_SET_GE_EXT 0x878C
+ GL_OP_SET_LT_EXT 0x878D
+ GL_OP_CLAMP_EXT 0x878E
+ GL_OP_FLOOR_EXT 0x878F
+ GL_OP_ROUND_EXT 0x8790
+ GL_OP_EXP_BASE_2_EXT 0x8791
+ GL_OP_LOG_BASE_2_EXT 0x8792
+ GL_OP_POWER_EXT 0x8793
+ GL_OP_RECIP_EXT 0x8794
+ GL_OP_RECIP_SQRT_EXT 0x8795
+ GL_OP_SUB_EXT 0x8796
+ GL_OP_CROSS_PRODUCT_EXT 0x8797
+ GL_OP_MULTIPLY_MATRIX_EXT 0x8798
+ GL_OP_MOV_EXT 0x8799
+ GL_OUTPUT_VERTEX_EXT 0x879A
+ GL_OUTPUT_COLOR0_EXT 0x879B
+ GL_OUTPUT_COLOR1_EXT 0x879C
+ GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
+ GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
+ GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
+ GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
+ GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
+ GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
+ GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
+ GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
+ GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
+ GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
+ GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
+ GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
+ GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
+ GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
+ GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
+ GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
+ GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
+ GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
+ GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
+ GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
+ GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
+ GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
+ GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
+ GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
+ GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
+ GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
+ GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
+ GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
+ GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
+ GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
+ GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
+ GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
+ GL_OUTPUT_FOG_EXT 0x87BD
+ GL_SCALAR_EXT 0x87BE
+ GL_VECTOR_EXT 0x87BF
+ GL_MATRIX_EXT 0x87C0
+ GL_VARIANT_EXT 0x87C1
+ GL_INVARIANT_EXT 0x87C2
+ GL_LOCAL_CONSTANT_EXT 0x87C3
+ GL_LOCAL_EXT 0x87C4
+ GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
+ GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
+ GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
+ GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
+ GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
+ GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
+ GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
+ GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC
+ GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD
+ GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
+ GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
+ GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
+ GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
+ GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
+ GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
+ GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
+ GL_X_EXT 0x87D5
+ GL_Y_EXT 0x87D6
+ GL_Z_EXT 0x87D7
+ GL_W_EXT 0x87D8
+ GL_NEGATIVE_X_EXT 0x87D9
+ GL_NEGATIVE_Y_EXT 0x87DA
+ GL_NEGATIVE_Z_EXT 0x87DB
+ GL_NEGATIVE_W_EXT 0x87DC
+ GL_ZERO_EXT 0x87DD
+ GL_ONE_EXT 0x87DE
+ GL_NEGATIVE_ONE_EXT 0x87DF
+ GL_NORMALIZED_RANGE_EXT 0x87E0
+ GL_FULL_RANGE_EXT 0x87E1
+ GL_CURRENT_VERTEX_EXT 0x87E2
+ GL_MVP_MATRIX_EXT 0x87E3
+ GL_VARIANT_VALUE_EXT 0x87E4
+ GL_VARIANT_DATATYPE_EXT 0x87E5
+ GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
+ GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
+ GL_VARIANT_ARRAY_EXT 0x87E8
+ GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
+ GL_INVARIANT_VALUE_EXT 0x87EA
+ GL_INVARIANT_DATATYPE_EXT 0x87EB
+ GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
+ GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
+
+ void glBeginVertexShaderEXT (void)
+ void glEndVertexShaderEXT (void)
+ void glBindVertexShaderEXT (GLuint id)
+ GLuint glGenVertexShadersEXT (GLuint range)
+ void glDeleteVertexShaderEXT (GLuint id)
+ void glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1)
+ void glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2)
+ void glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3)
+ void glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW)
+ void glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW)
+ void glInsertComponentEXT (GLuint res, GLuint src, GLuint num)
+ void glExtractComponentEXT (GLuint res, GLuint src, GLuint num)
+ GLuint glGenSymbolsEXT (GLenum dataType, GLenum storageType, GLenum range, GLuint components)
+ void glSetInvariantEXT (GLuint id, GLenum type, void *addr)
+ void glSetLocalConstantEXT (GLuint id, GLenum type, void *addr)
+ void glVariantbvEXT (GLuint id, GLbyte *addr)
+ void glVariantsvEXT (GLuint id, GLshort *addr)
+ void glVariantivEXT (GLuint id, GLint *addr)
+ void glVariantfvEXT (GLuint id, GLfloat *addr)
+ void glVariantdvEXT (GLuint id, GLdouble *addr)
+ void glVariantubvEXT (GLuint id, GLubyte *addr)
+ void glVariantusvEXT (GLuint id, GLushort *addr)
+ void glVariantuivEXT (GLuint id, GLuint *addr)
+ void glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, void *addr)
+ void glEnableVariantClientStateEXT (GLuint id)
+ void glDisableVariantClientStateEXT (GLuint id)
+ GLuint glBindLightParameterEXT (GLenum light, GLenum value)
+ GLuint glBindMaterialParameterEXT (GLenum face, GLenum value)
+ GLuint glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value)
+ GLuint glBindTextureUnitParameterEXT (GLenum unit, GLenum value)
+ GLuint glBindParameterEXT (GLenum value)
+ GLboolean glIsVariantEnabledEXT (GLuint id, GLenum cap)
+ void glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data)
+ void glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data)
+ void glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data)
+ void glGetVariantPointervEXT (GLuint id, GLenum value, void **data)
+ void glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data)
+ void glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data)
+ void glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data)
+ void glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data)
+ void glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data)
+ void glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_KHR_context_flush_control b/engine-ocean/External/glew/auto/core/gl/GL_KHR_context_flush_control
new file mode 100644
index 0000000..18de5aa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_KHR_context_flush_control
@@ -0,0 +1,7 @@
+GL_KHR_context_flush_control
+https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_context_flush_control.txt
+GL_KHR_context_flush_control
+
+ GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB
+ GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_KTX_buffer_region b/engine-ocean/External/glew/auto/core/gl/GL_KTX_buffer_region
new file mode 100644
index 0000000..ef281b1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_KTX_buffer_region
@@ -0,0 +1,13 @@
+GL_KTX_buffer_region
+
+GL_KTX_buffer_region
+
+ GL_KTX_FRONT_REGION 0x0
+ GL_KTX_BACK_REGION 0x1
+ GL_KTX_Z_REGION 0x2
+ GL_KTX_STENCIL_REGION 0x3
+ GLuint glBufferRegionEnabled (void)
+ GLuint glNewBufferRegion (GLenum region)
+ void glDeleteBufferRegion (GLenum region)
+ void glReadBufferRegion (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glDrawBufferRegion (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NVX_gpu_memory_info b/engine-ocean/External/glew/auto/core/gl/GL_NVX_gpu_memory_info
new file mode 100644
index 0000000..a8d97b9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NVX_gpu_memory_info
@@ -0,0 +1,9 @@
+GL_NVX_gpu_memory_info
+http://developer.download.nvidia.com/opengl/specs/GL_NVX_gpu_memory_info.txt
+GL_NVX_gpu_memory_info
+
+ GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047
+ GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
+ GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
+ GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A
+ GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_depth_buffer_float b/engine-ocean/External/glew/auto/core/gl/GL_NV_depth_buffer_float
new file mode 100644
index 0000000..421d266
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_depth_buffer_float
@@ -0,0 +1,11 @@
+GL_NV_depth_buffer_float
+http://developer.download.nvidia.com/opengl/specs/GL_NV_depth_buffer_float.txt
+GL_NV_depth_buffer_float
+
+ GL_DEPTH_COMPONENT32F_NV 0x8DAB
+ GL_DEPTH32F_STENCIL8_NV 0x8DAC
+ GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD
+ GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF
+ void glDepthRangedNV (GLdouble zNear, GLdouble zFar)
+ void glClearDepthdNV (GLdouble depth)
+ void glDepthBoundsdNV (GLdouble zmin, GLdouble zmax)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_depth_range_unclamped b/engine-ocean/External/glew/auto/core/gl/GL_NV_depth_range_unclamped
new file mode 100644
index 0000000..b63a0ee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_depth_range_unclamped
@@ -0,0 +1,9 @@
+GL_NV_depth_range_unclamped
+
+GL_NV_depth_range_unclamped
+
+ GL_SAMPLE_COUNT_BITS_NV 0x8864
+ GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865
+ GL_QUERY_RESULT_NV 0x8866
+ GL_QUERY_RESULT_AVAILABLE_NV 0x8867
+ GL_SAMPLE_COUNT_NV 0x8914
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program2 b/engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program2
new file mode 100644
index 0000000..79d4b63
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program2
@@ -0,0 +1,9 @@
+GL_NV_fragment_program2
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program2.txt
+GL_NV_fragment_program2
+
+ GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
+ GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
+ GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6
+ GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7
+ GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program4 b/engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program4
new file mode 100644
index 0000000..edd4383
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program4
@@ -0,0 +1,4 @@
+GL_NV_fragment_program4
+http://developer.download.nvidia.com/opengl/specs/GL_NV_fragment_program4.txt
+GL_NV_gpu_program4
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program_option b/engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program_option
new file mode 100644
index 0000000..01b8ed6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_fragment_program_option
@@ -0,0 +1,4 @@
+GL_NV_fragment_program_option
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program_option.txt
+GL_NV_fragment_program_option
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_framebuffer_multisample_coverage b/engine-ocean/External/glew/auto/core/gl/GL_NV_framebuffer_multisample_coverage
new file mode 100644
index 0000000..526d0f0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_framebuffer_multisample_coverage
@@ -0,0 +1,9 @@
+GL_NV_framebuffer_multisample_coverage
+http://developer.download.nvidia.com/opengl/specs/GL_NV_framebuffer_multisample_coverage.txt
+GL_NV_framebuffer_multisample_coverage
+
+ GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
+ GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10
+ GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11
+ GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12
+ void glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_geometry_program4 b/engine-ocean/External/glew/auto/core/gl/GL_NV_geometry_program4
new file mode 100644
index 0000000..a6cb164
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_geometry_program4
@@ -0,0 +1,8 @@
+GL_NV_geometry_program4
+http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_program4.txt
+GL_NV_gpu_program4
+
+ GL_GEOMETRY_PROGRAM_NV 0x8C26
+ GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27
+ GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
+ void glProgramVertexLimitNV (GLenum target, GLint limit)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_geometry_shader4 b/engine-ocean/External/glew/auto/core/gl/GL_NV_geometry_shader4
new file mode 100644
index 0000000..1b00429
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_geometry_shader4
@@ -0,0 +1,4 @@
+GL_NV_geometry_shader4
+http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_shader4.txt
+GL_NV_geometry_shader4
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_gpu_program4 b/engine-ocean/External/glew/auto/core/gl/GL_NV_gpu_program4
new file mode 100644
index 0000000..19f7169
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_gpu_program4
@@ -0,0 +1,24 @@
+GL_NV_gpu_program4
+http://developer.download.nvidia.com/opengl/specs/GL_NV_gpu_program4.txt
+GL_NV_gpu_program4
+
+ GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904
+ GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905
+ GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906
+ GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907
+ GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908
+ GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909
+ GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5
+ GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
+ void glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w)
+ void glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params)
+ void glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params)
+ void glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+ void glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params)
+ void glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params)
+ void glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w)
+ void glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params)
+ void glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params)
+ void glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+ void glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params)
+ void glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_gpu_program5 b/engine-ocean/External/glew/auto/core/gl/GL_NV_gpu_program5
new file mode 100644
index 0000000..68079f3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_gpu_program5
@@ -0,0 +1,10 @@
+GL_NV_gpu_program5
+http://www.opengl.org/registry/specs/NV/gpu_program5.txt
+GL_NV_gpu_program5
+
+ GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A
+ GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B
+ GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C
+ GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D
+ GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E
+ GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_parameter_buffer_object b/engine-ocean/External/glew/auto/core/gl/GL_NV_parameter_buffer_object
new file mode 100644
index 0000000..91494e3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_parameter_buffer_object
@@ -0,0 +1,12 @@
+GL_NV_parameter_buffer_object
+http://developer.download.nvidia.com/opengl/specs/GL_NV_parameter_buffer_object.txt
+GL_NV_parameter_buffer_object
+
+ GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
+ GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3
+ GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4
+ GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
+ GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
+ void glProgramBufferParametersfvNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params)
+ void glProgramBufferParametersIivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params)
+ void glProgramBufferParametersIuivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_present_video b/engine-ocean/External/glew/auto/core/gl/GL_NV_present_video
new file mode 100644
index 0000000..1a5b8ce
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_present_video
@@ -0,0 +1,16 @@
+GL_NV_present_video
+http://www.opengl.org/registry/specs/NV/present_video.txt
+GL_NV_present_video
+
+ GL_FRAME_NV 0x8E26
+ GL_FIELDS_NV 0x8E27
+ GL_CURRENT_TIME_NV 0x8E28
+ GL_NUM_FILL_STREAMS_NV 0x8E29
+ GL_PRESENT_TIME_NV 0x8E2A
+ GL_PRESENT_DURATION_NV 0x8E2B
+ void glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT* params)
+ void glGetVideoivNV (GLuint video_slot, GLenum pname, GLint* params)
+ void glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT* params)
+ void glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint* params)
+ void glPresentFrameDualFillNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3)
+ void glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_sample_locations b/engine-ocean/External/glew/auto/core/gl/GL_NV_sample_locations
new file mode 100644
index 0000000..f3dfc98
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_sample_locations
@@ -0,0 +1,15 @@
+GL_NV_sample_locations
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_sample_locations.txt
+GL_NV_sample_locations
+
+ GL_SAMPLE_LOCATION_NV 0x8E50
+ GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D
+ GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E
+ GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F
+ GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340
+ GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341
+ GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342
+ GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343
+ void glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat* v)
+ void glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v)
+ void glResolveDepthValuesNV (void)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_tessellation_program5 b/engine-ocean/External/glew/auto/core/gl/GL_NV_tessellation_program5
new file mode 100644
index 0000000..75fd3c7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_tessellation_program5
@@ -0,0 +1,9 @@
+GL_NV_tessellation_program5
+http://www.opengl.org/registry/specs/NV/tessellation_program5.txt
+GL_NV_gpu_program5
+
+ GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
+ GL_TESS_CONTROL_PROGRAM_NV 0x891E
+ GL_TESS_EVALUATION_PROGRAM_NV 0x891F
+ GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74
+ GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_transform_feedback b/engine-ocean/External/glew/auto/core/gl/GL_NV_transform_feedback
new file mode 100644
index 0000000..5f1816e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_transform_feedback
@@ -0,0 +1,40 @@
+GL_NV_transform_feedback
+http://developer.download.nvidia.com/opengl/specs/GL_NV_transform_feedback.txt
+GL_NV_transform_feedback
+
+ GL_BACK_PRIMARY_COLOR_NV 0x8C77
+ GL_BACK_SECONDARY_COLOR_NV 0x8C78
+ GL_TEXTURE_COORD_NV 0x8C79
+ GL_CLIP_DISTANCE_NV 0x8C7A
+ GL_VERTEX_ID_NV 0x8C7B
+ GL_PRIMITIVE_ID_NV 0x8C7C
+ GL_GENERIC_ATTRIB_NV 0x8C7D
+ GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E
+ GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F
+ GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80
+ GL_ACTIVE_VARYINGS_NV 0x8C81
+ GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82
+ GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83
+ GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84
+ GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85
+ GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86
+ GL_PRIMITIVES_GENERATED_NV 0x8C87
+ GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88
+ GL_RASTERIZER_DISCARD_NV 0x8C89
+ GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A
+ GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B
+ GL_INTERLEAVED_ATTRIBS_NV 0x8C8C
+ GL_SEPARATE_ATTRIBS_NV 0x8C8D
+ GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E
+ GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F
+ void glBeginTransformFeedbackNV (GLenum primitiveMode)
+ void glEndTransformFeedbackNV (void)
+ void glTransformFeedbackAttribsNV (GLuint count, const GLint *attribs, GLenum bufferMode)
+ void glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+ void glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset)
+ void glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer)
+ void glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode)
+ void glActiveVaryingNV (GLuint program, const GLchar *name)
+ GLint glGetVaryingLocationNV (GLuint program, const GLchar *name)
+ void glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)
+ void glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_vdpau_interop b/engine-ocean/External/glew/auto/core/gl/GL_NV_vdpau_interop
new file mode 100644
index 0000000..f52949c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_vdpau_interop
@@ -0,0 +1,19 @@
+GL_NV_vdpau_interop
+http://www.opengl.org/registry/specs/NV/vdpau_interop.txt
+GL_NV_vdpau_interop
+
+ GL_SURFACE_STATE_NV 0x86EB
+ GL_SURFACE_REGISTERED_NV 0x86FD
+ GL_SURFACE_MAPPED_NV 0x8700
+ GL_WRITE_DISCARD_NV 0x88BE
+ void glVDPAUFiniNV (void)
+ void glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values)
+ void glVDPAUInitNV (const void* vdpDevice, const void*getProcAddress)
+ void glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface)
+ void glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces)
+ GLvdpauSurfaceNV glVDPAURegisterOutputSurfaceNV (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames)
+ GLvdpauSurfaceNV glVDPAURegisterVideoSurfaceNV (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames)
+ void glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access)
+ void glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces)
+ void glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface)
+ typedef GLintptr GLvdpauSurfaceNV
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program2_option b/engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program2_option
new file mode 100644
index 0000000..3e3e0b7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program2_option
@@ -0,0 +1,6 @@
+GL_NV_vertex_program2_option
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program2_option.txt
+GL_NV_vertex_program2_option
+
+ GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
+ GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program3 b/engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program3
new file mode 100644
index 0000000..fbd3899
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program3
@@ -0,0 +1,5 @@
+GL_NV_vertex_program3
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program3.txt
+GL_NV_vertex_program3
+
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program4 b/engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program4
new file mode 100644
index 0000000..b1ff7f8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_NV_vertex_program4
@@ -0,0 +1,5 @@
+GL_NV_vertex_program4
+http://developer.download.nvidia.com/opengl/specs/GL_NV_vertex_program4.txt
+GL_NV_gpu_program4
+
+ GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_SGIX_shadow b/engine-ocean/External/glew/auto/core/gl/GL_SGIX_shadow
new file mode 100644
index 0000000..3580721
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_SGIX_shadow
@@ -0,0 +1,8 @@
+GL_SGIX_shadow
+http://oss.sgi.com/projects/ogl-sample/registry/SGIX/shadow.txt
+GL_SGIX_shadow
+
+ GL_TEXTURE_COMPARE_SGIX 0x819A
+ GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B
+ GL_TEXTURE_LEQUAL_R_SGIX 0x819C
+ GL_TEXTURE_GEQUAL_R_SGIX 0x819D
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_SUN_read_video_pixels b/engine-ocean/External/glew/auto/core/gl/GL_SUN_read_video_pixels
new file mode 100644
index 0000000..871e6f9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_SUN_read_video_pixels
@@ -0,0 +1,5 @@
+GL_SUN_read_video_pixels
+http://wwws.sun.com/software/graphics/opengl/extensions/gl_sun_read_video_pixels.txt
+GL_SUN_read_video_pixels
+
+ void glReadVideoPixelsSUN (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_2 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_2
new file mode 100644
index 0000000..fe610b6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_2
@@ -0,0 +1,50 @@
+GL_VERSION_1_2
+http://www.opengl.org/documentation/specs/version1.2/opengl1.2.1.pdf
+
+
+ GL_UNSIGNED_BYTE_3_3_2 0x8032
+ GL_UNSIGNED_SHORT_4_4_4_4 0x8033
+ GL_UNSIGNED_SHORT_5_5_5_1 0x8034
+ GL_UNSIGNED_INT_8_8_8_8 0x8035
+ GL_UNSIGNED_INT_10_10_10_2 0x8036
+ GL_RESCALE_NORMAL 0x803A
+ GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
+ GL_UNSIGNED_SHORT_5_6_5 0x8363
+ GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
+ GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
+ GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
+ GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
+ GL_BGR 0x80E0
+ GL_BGRA 0x80E1
+ GL_MAX_ELEMENTS_VERTICES 0x80E8
+ GL_MAX_ELEMENTS_INDICES 0x80E9
+ GL_CLAMP_TO_EDGE 0x812F
+ GL_TEXTURE_MIN_LOD 0x813A
+ GL_TEXTURE_MAX_LOD 0x813B
+ GL_TEXTURE_BASE_LEVEL 0x813C
+ GL_TEXTURE_MAX_LEVEL 0x813D
+ GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
+ GL_SINGLE_COLOR 0x81F9
+ GL_SEPARATE_SPECULAR_COLOR 0x81FA
+ GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
+ GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
+ GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
+ GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
+ GL_ALIASED_POINT_SIZE_RANGE 0x846D
+ GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+ GL_PACK_SKIP_IMAGES 0x806B
+ GL_PACK_IMAGE_HEIGHT 0x806C
+ GL_UNPACK_SKIP_IMAGES 0x806D
+ GL_UNPACK_IMAGE_HEIGHT 0x806E
+ GL_TEXTURE_3D 0x806F
+ GL_PROXY_TEXTURE_3D 0x8070
+ GL_TEXTURE_DEPTH 0x8071
+ GL_TEXTURE_WRAP_R 0x8072
+ GL_MAX_3D_TEXTURE_SIZE 0x8073
+ GL_TEXTURE_BINDING_3D 0x806A
+ GL_MAX_ELEMENTS_VERTICES 0x80E8
+ GL_MAX_ELEMENTS_INDICES 0x80E9
+ void glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)
+ void glTexImage3D (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
+ void glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
+ void glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_2_1 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_2_1
new file mode 100644
index 0000000..42634cb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_2_1
@@ -0,0 +1,4 @@
+GL_VERSION_1_2_1
+http://www.opengl.org/documentation/specs/version1.2/opengl1.2.1.pdf
+
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_3 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_3
new file mode 100644
index 0000000..d6342fa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_3
@@ -0,0 +1,147 @@
+GL_VERSION_1_3
+http://www.opengl.org/documentation/specs/version1.3/glspec13.pdf
+
+
+ GL_TEXTURE0 0x84C0
+ GL_TEXTURE1 0x84C1
+ GL_TEXTURE2 0x84C2
+ GL_TEXTURE3 0x84C3
+ GL_TEXTURE4 0x84C4
+ GL_TEXTURE5 0x84C5
+ GL_TEXTURE6 0x84C6
+ GL_TEXTURE7 0x84C7
+ GL_TEXTURE8 0x84C8
+ GL_TEXTURE9 0x84C9
+ GL_TEXTURE10 0x84CA
+ GL_TEXTURE11 0x84CB
+ GL_TEXTURE12 0x84CC
+ GL_TEXTURE13 0x84CD
+ GL_TEXTURE14 0x84CE
+ GL_TEXTURE15 0x84CF
+ GL_TEXTURE16 0x84D0
+ GL_TEXTURE17 0x84D1
+ GL_TEXTURE18 0x84D2
+ GL_TEXTURE19 0x84D3
+ GL_TEXTURE20 0x84D4
+ GL_TEXTURE21 0x84D5
+ GL_TEXTURE22 0x84D6
+ GL_TEXTURE23 0x84D7
+ GL_TEXTURE24 0x84D8
+ GL_TEXTURE25 0x84D9
+ GL_TEXTURE26 0x84DA
+ GL_TEXTURE27 0x84DB
+ GL_TEXTURE28 0x84DC
+ GL_TEXTURE29 0x84DD
+ GL_TEXTURE30 0x84DE
+ GL_TEXTURE31 0x84DF
+ GL_ACTIVE_TEXTURE 0x84E0
+ GL_CLIENT_ACTIVE_TEXTURE 0x84E1
+ GL_MAX_TEXTURE_UNITS 0x84E2
+ GL_NORMAL_MAP 0x8511
+ GL_REFLECTION_MAP 0x8512
+ GL_TEXTURE_CUBE_MAP 0x8513
+ GL_TEXTURE_BINDING_CUBE_MAP 0x8514
+ GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+ GL_PROXY_TEXTURE_CUBE_MAP 0x851B
+ GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
+ GL_COMPRESSED_ALPHA 0x84E9
+ GL_COMPRESSED_LUMINANCE 0x84EA
+ GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
+ GL_COMPRESSED_INTENSITY 0x84EC
+ GL_COMPRESSED_RGB 0x84ED
+ GL_COMPRESSED_RGBA 0x84EE
+ GL_TEXTURE_COMPRESSION_HINT 0x84EF
+ GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
+ GL_TEXTURE_COMPRESSED 0x86A1
+ GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
+ GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
+ GL_MULTISAMPLE 0x809D
+ GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
+ GL_SAMPLE_ALPHA_TO_ONE 0x809F
+ GL_SAMPLE_COVERAGE 0x80A0
+ GL_SAMPLE_BUFFERS 0x80A8
+ GL_SAMPLES 0x80A9
+ GL_SAMPLE_COVERAGE_VALUE 0x80AA
+ GL_SAMPLE_COVERAGE_INVERT 0x80AB
+ GL_MULTISAMPLE_BIT 0x20000000
+ GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
+ GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
+ GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
+ GL_TRANSPOSE_COLOR_MATRIX 0x84E6
+ GL_COMBINE 0x8570
+ GL_COMBINE_RGB 0x8571
+ GL_COMBINE_ALPHA 0x8572
+ GL_SOURCE0_RGB 0x8580
+ GL_SOURCE1_RGB 0x8581
+ GL_SOURCE2_RGB 0x8582
+ GL_SOURCE0_ALPHA 0x8588
+ GL_SOURCE1_ALPHA 0x8589
+ GL_SOURCE2_ALPHA 0x858A
+ GL_OPERAND0_RGB 0x8590
+ GL_OPERAND1_RGB 0x8591
+ GL_OPERAND2_RGB 0x8592
+ GL_OPERAND0_ALPHA 0x8598
+ GL_OPERAND1_ALPHA 0x8599
+ GL_OPERAND2_ALPHA 0x859A
+ GL_RGB_SCALE 0x8573
+ GL_ADD_SIGNED 0x8574
+ GL_INTERPOLATE 0x8575
+ GL_SUBTRACT 0x84E7
+ GL_CONSTANT 0x8576
+ GL_PRIMARY_COLOR 0x8577
+ GL_PREVIOUS 0x8578
+ GL_DOT3_RGB 0x86AE
+ GL_DOT3_RGBA 0x86AF
+ GL_CLAMP_TO_BORDER 0x812D
+
+ void glActiveTexture (GLenum texture)
+ void glClientActiveTexture (GLenum texture)
+ void glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
+ void glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)
+ void glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+ void glGetCompressedTexImage (GLenum target, GLint lod, void *img)
+ void glLoadTransposeMatrixd (const GLdouble m[16])
+ void glLoadTransposeMatrixf (const GLfloat m[16])
+ void glMultTransposeMatrixd (const GLdouble m[16])
+ void glMultTransposeMatrixf (const GLfloat m[16])
+ void glMultiTexCoord1d (GLenum target, GLdouble s)
+ void glMultiTexCoord1dv (GLenum target, const GLdouble *v)
+ void glMultiTexCoord1f (GLenum target, GLfloat s)
+ void glMultiTexCoord1fv (GLenum target, const GLfloat *v)
+ void glMultiTexCoord1i (GLenum target, GLint s)
+ void glMultiTexCoord1iv (GLenum target, const GLint *v)
+ void glMultiTexCoord1s (GLenum target, GLshort s)
+ void glMultiTexCoord1sv (GLenum target, const GLshort *v)
+ void glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t)
+ void glMultiTexCoord2dv (GLenum target, const GLdouble *v)
+ void glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t)
+ void glMultiTexCoord2fv (GLenum target, const GLfloat *v)
+ void glMultiTexCoord2i (GLenum target, GLint s, GLint t)
+ void glMultiTexCoord2iv (GLenum target, const GLint *v)
+ void glMultiTexCoord2s (GLenum target, GLshort s, GLshort t)
+ void glMultiTexCoord2sv (GLenum target, const GLshort *v)
+ void glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r)
+ void glMultiTexCoord3dv (GLenum target, const GLdouble *v)
+ void glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r)
+ void glMultiTexCoord3fv (GLenum target, const GLfloat *v)
+ void glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r)
+ void glMultiTexCoord3iv (GLenum target, const GLint *v)
+ void glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r)
+ void glMultiTexCoord3sv (GLenum target, const GLshort *v)
+ void glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+ void glMultiTexCoord4dv (GLenum target, const GLdouble *v)
+ void glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+ void glMultiTexCoord4fv (GLenum target, const GLfloat *v)
+ void glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q)
+ void glMultiTexCoord4iv (GLenum target, const GLint *v)
+ void glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+ void glMultiTexCoord4sv (GLenum target, const GLshort *v)
+ void glSampleCoverage (GLclampf value, GLboolean invert)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_4 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_4
new file mode 100644
index 0000000..8d0724a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_4
@@ -0,0 +1,90 @@
+GL_VERSION_1_4
+http://www.opengl.org/documentation/specs/version1.4/glspec14.pdf
+
+
+ GL_GENERATE_MIPMAP 0x8191
+ GL_GENERATE_MIPMAP_HINT 0x8192
+ GL_DEPTH_COMPONENT16 0x81A5
+ GL_DEPTH_COMPONENT24 0x81A6
+ GL_DEPTH_COMPONENT32 0x81A7
+ GL_TEXTURE_DEPTH_SIZE 0x884A
+ GL_DEPTH_TEXTURE_MODE 0x884B
+ GL_TEXTURE_COMPARE_MODE 0x884C
+ GL_TEXTURE_COMPARE_FUNC 0x884D
+ GL_COMPARE_R_TO_TEXTURE 0x884E
+ GL_FOG_COORDINATE_SOURCE 0x8450
+ GL_FOG_COORDINATE 0x8451
+ GL_FRAGMENT_DEPTH 0x8452
+ GL_CURRENT_FOG_COORDINATE 0x8453
+ GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
+ GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
+ GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
+ GL_FOG_COORDINATE_ARRAY 0x8457
+ GL_POINT_SIZE_MIN 0x8126
+ GL_POINT_SIZE_MAX 0x8127
+ GL_POINT_FADE_THRESHOLD_SIZE 0x8128
+ GL_POINT_DISTANCE_ATTENUATION 0x8129
+ GL_COLOR_SUM 0x8458
+ GL_CURRENT_SECONDARY_COLOR 0x8459
+ GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
+ GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
+ GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
+ GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
+ GL_SECONDARY_COLOR_ARRAY 0x845E
+ GL_BLEND_DST_RGB 0x80C8
+ GL_BLEND_SRC_RGB 0x80C9
+ GL_BLEND_DST_ALPHA 0x80CA
+ GL_BLEND_SRC_ALPHA 0x80CB
+ GL_INCR_WRAP 0x8507
+ GL_DECR_WRAP 0x8508
+ GL_TEXTURE_FILTER_CONTROL 0x8500
+ GL_TEXTURE_LOD_BIAS 0x8501
+ GL_MAX_TEXTURE_LOD_BIAS 0x84FD
+ GL_MIRRORED_REPEAT 0x8370
+ void glBlendEquation (GLenum mode)
+ void glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+ void glFogCoordf (GLfloat coord)
+ void glFogCoordfv (const GLfloat *coord)
+ void glFogCoordd (GLdouble coord)
+ void glFogCoorddv (const GLdouble *coord)
+ void glFogCoordPointer (GLenum type, GLsizei stride, const void *pointer)
+ void glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount)
+ void glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const void *const* indices, GLsizei drawcount)
+ void glPointParameteri (GLenum pname, GLint param)
+ void glPointParameteriv (GLenum pname, const GLint *params)
+ void glPointParameterf (GLenum pname, GLfloat param)
+ void glPointParameterfv (GLenum pname, const GLfloat *params)
+ void glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue)
+ void glSecondaryColor3bv (const GLbyte *v)
+ void glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue)
+ void glSecondaryColor3dv (const GLdouble *v)
+ void glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue)
+ void glSecondaryColor3fv (const GLfloat *v)
+ void glSecondaryColor3i (GLint red, GLint green, GLint blue)
+ void glSecondaryColor3iv (const GLint *v)
+ void glSecondaryColor3s (GLshort red, GLshort green, GLshort blue)
+ void glSecondaryColor3sv (const GLshort *v)
+ void glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue)
+ void glSecondaryColor3ubv (const GLubyte *v)
+ void glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue)
+ void glSecondaryColor3uiv (const GLuint *v)
+ void glSecondaryColor3us (GLushort red, GLushort green, GLushort blue)
+ void glSecondaryColor3usv (const GLushort *v)
+ void glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer)
+ void glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+ void glWindowPos2d (GLdouble x, GLdouble y)
+ void glWindowPos2f (GLfloat x, GLfloat y)
+ void glWindowPos2i (GLint x, GLint y)
+ void glWindowPos2s (GLshort x, GLshort y)
+ void glWindowPos2dv (const GLdouble *p)
+ void glWindowPos2fv (const GLfloat *p)
+ void glWindowPos2iv (const GLint *p)
+ void glWindowPos2sv (const GLshort *p)
+ void glWindowPos3d (GLdouble x, GLdouble y, GLdouble z)
+ void glWindowPos3f (GLfloat x, GLfloat y, GLfloat z)
+ void glWindowPos3i (GLint x, GLint y, GLint z)
+ void glWindowPos3s (GLshort x, GLshort y, GLshort z)
+ void glWindowPos3dv (const GLdouble *p)
+ void glWindowPos3fv (const GLfloat *p)
+ void glWindowPos3iv (const GLint *p)
+ void glWindowPos3sv (const GLshort *p)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_5 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_5
new file mode 100644
index 0000000..439ecb6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_1_5
@@ -0,0 +1,75 @@
+GL_VERSION_1_5
+http://www.opengl.org/documentation/specs/version1.5/glspec15.pdf
+
+
+ GL_BUFFER_SIZE 0x8764
+ GL_BUFFER_USAGE 0x8765
+ GL_QUERY_COUNTER_BITS 0x8864
+ GL_CURRENT_QUERY 0x8865
+ GL_QUERY_RESULT 0x8866
+ GL_QUERY_RESULT_AVAILABLE 0x8867
+ GL_ARRAY_BUFFER 0x8892
+ GL_ELEMENT_ARRAY_BUFFER 0x8893
+ GL_ARRAY_BUFFER_BINDING 0x8894
+ GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
+ GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
+ GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
+ GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
+ GL_INDEX_ARRAY_BUFFER_BINDING 0x8899
+ GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
+ GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
+ GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
+ GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
+ GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E
+ GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
+ GL_READ_ONLY 0x88B8
+ GL_WRITE_ONLY 0x88B9
+ GL_READ_WRITE 0x88BA
+ GL_BUFFER_ACCESS 0x88BB
+ GL_BUFFER_MAPPED 0x88BC
+ GL_BUFFER_MAP_POINTER 0x88BD
+ GL_STREAM_DRAW 0x88E0
+ GL_STREAM_READ 0x88E1
+ GL_STREAM_COPY 0x88E2
+ GL_STATIC_DRAW 0x88E4
+ GL_STATIC_READ 0x88E5
+ GL_STATIC_COPY 0x88E6
+ GL_DYNAMIC_DRAW 0x88E8
+ GL_DYNAMIC_READ 0x88E9
+ GL_DYNAMIC_COPY 0x88EA
+ GL_SAMPLES_PASSED 0x8914
+ GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
+ GL_FOG_COORD GL_FOG_COORDINATE
+ GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE
+ GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE
+ GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE
+ GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER
+ GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY
+ GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
+ GL_SRC0_RGB GL_SOURCE0_RGB
+ GL_SRC1_RGB GL_SOURCE1_RGB
+ GL_SRC2_RGB GL_SOURCE2_RGB
+ GL_SRC0_ALPHA GL_SOURCE0_ALPHA
+ GL_SRC1_ALPHA GL_SOURCE1_ALPHA
+ GL_SRC2_ALPHA GL_SOURCE2_ALPHA
+ void glGenQueries (GLsizei n, GLuint* ids)
+ void glDeleteQueries (GLsizei n, const GLuint* ids)
+ GLboolean glIsQuery (GLuint id)
+ void glBeginQuery (GLenum target, GLuint id)
+ void glEndQuery (GLenum target)
+ void glGetQueryiv (GLenum target, GLenum pname, GLint* params)
+ void glGetQueryObjectiv (GLuint id, GLenum pname, GLint* params)
+ void glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint* params)
+ void glBindBuffer (GLenum target, GLuint buffer)
+ void glDeleteBuffers (GLsizei n, const GLuint* buffers)
+ void glGenBuffers (GLsizei n, GLuint* buffers)
+ GLboolean glIsBuffer (GLuint buffer)
+ void glBufferData (GLenum target, GLsizeiptr size, const void* data, GLenum usage)
+ void glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void* data)
+ void glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, void* data)
+ void* glMapBuffer (GLenum target, GLenum access)
+ GLboolean glUnmapBuffer (GLenum target)
+ void glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params)
+ void glGetBufferPointerv (GLenum target, GLenum pname, void** params)
+ typedef ptrdiff_t GLsizeiptr
+ typedef ptrdiff_t GLintptr
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_2_0 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_2_0
new file mode 100644
index 0000000..e52d96c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_2_0
@@ -0,0 +1,181 @@
+GL_VERSION_2_0
+http://www.opengl.org/documentation/specs/version2.0/glspec20.pdf
+
+
+ GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION
+ GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
+ GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
+ GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
+ GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
+ GL_CURRENT_VERTEX_ATTRIB 0x8626
+ GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
+ GL_VERTEX_PROGRAM_TWO_SIDE 0x8643
+ GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
+ GL_STENCIL_BACK_FUNC 0x8800
+ GL_STENCIL_BACK_FAIL 0x8801
+ GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
+ GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
+ GL_MAX_DRAW_BUFFERS 0x8824
+ GL_DRAW_BUFFER0 0x8825
+ GL_DRAW_BUFFER1 0x8826
+ GL_DRAW_BUFFER2 0x8827
+ GL_DRAW_BUFFER3 0x8828
+ GL_DRAW_BUFFER4 0x8829
+ GL_DRAW_BUFFER5 0x882A
+ GL_DRAW_BUFFER6 0x882B
+ GL_DRAW_BUFFER7 0x882C
+ GL_DRAW_BUFFER8 0x882D
+ GL_DRAW_BUFFER9 0x882E
+ GL_DRAW_BUFFER10 0x882F
+ GL_DRAW_BUFFER11 0x8830
+ GL_DRAW_BUFFER12 0x8831
+ GL_DRAW_BUFFER13 0x8832
+ GL_DRAW_BUFFER14 0x8833
+ GL_DRAW_BUFFER15 0x8834
+ GL_BLEND_EQUATION_ALPHA 0x883D
+ GL_POINT_SPRITE 0x8861
+ GL_COORD_REPLACE 0x8862
+ GL_MAX_VERTEX_ATTRIBS 0x8869
+ GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
+ GL_MAX_TEXTURE_COORDS 0x8871
+ GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
+ GL_FRAGMENT_SHADER 0x8B30
+ GL_VERTEX_SHADER 0x8B31
+ GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
+ GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
+ GL_MAX_VARYING_FLOATS 0x8B4B
+ GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
+ GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
+ GL_SHADER_TYPE 0x8B4F
+ GL_FLOAT_VEC2 0x8B50
+ GL_FLOAT_VEC3 0x8B51
+ GL_FLOAT_VEC4 0x8B52
+ GL_INT_VEC2 0x8B53
+ GL_INT_VEC3 0x8B54
+ GL_INT_VEC4 0x8B55
+ GL_BOOL 0x8B56
+ GL_BOOL_VEC2 0x8B57
+ GL_BOOL_VEC3 0x8B58
+ GL_BOOL_VEC4 0x8B59
+ GL_FLOAT_MAT2 0x8B5A
+ GL_FLOAT_MAT3 0x8B5B
+ GL_FLOAT_MAT4 0x8B5C
+ GL_SAMPLER_1D 0x8B5D
+ GL_SAMPLER_2D 0x8B5E
+ GL_SAMPLER_3D 0x8B5F
+ GL_SAMPLER_CUBE 0x8B60
+ GL_SAMPLER_1D_SHADOW 0x8B61
+ GL_SAMPLER_2D_SHADOW 0x8B62
+ GL_DELETE_STATUS 0x8B80
+ GL_COMPILE_STATUS 0x8B81
+ GL_LINK_STATUS 0x8B82
+ GL_VALIDATE_STATUS 0x8B83
+ GL_INFO_LOG_LENGTH 0x8B84
+ GL_ATTACHED_SHADERS 0x8B85
+ GL_ACTIVE_UNIFORMS 0x8B86
+ GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
+ GL_SHADER_SOURCE_LENGTH 0x8B88
+ GL_ACTIVE_ATTRIBUTES 0x8B89
+ GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
+ GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
+ GL_SHADING_LANGUAGE_VERSION 0x8B8C
+ GL_CURRENT_PROGRAM 0x8B8D
+ GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
+ GL_LOWER_LEFT 0x8CA1
+ GL_UPPER_LEFT 0x8CA2
+ GL_STENCIL_BACK_REF 0x8CA3
+ GL_STENCIL_BACK_VALUE_MASK 0x8CA4
+ GL_STENCIL_BACK_WRITEMASK 0x8CA5
+ void glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha)
+ void glDrawBuffers (GLsizei n, const GLenum* bufs)
+ void glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+ void glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask)
+ void glStencilMaskSeparate (GLenum face, GLuint mask)
+ void glAttachShader (GLuint program, GLuint shader)
+ void glBindAttribLocation (GLuint program, GLuint index, const GLchar* name)
+ void glCompileShader (GLuint shader)
+ GLuint glCreateProgram (void)
+ GLuint glCreateShader (GLenum type)
+ void glDeleteProgram (GLuint program)
+ void glDeleteShader (GLuint shader)
+ void glDetachShader (GLuint program, GLuint shader)
+ void glDisableVertexAttribArray (GLuint index)
+ void glEnableVertexAttribArray (GLuint index)
+ void glGetActiveAttrib (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
+ void glGetActiveUniform (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
+ void glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders)
+ GLint glGetAttribLocation (GLuint program, const GLchar* name)
+ void glGetProgramiv (GLuint program, GLenum pname, GLint* param)
+ void glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+ void glGetShaderiv (GLuint shader, GLenum pname, GLint* param)
+ void glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+ void glShaderSource (GLuint shader, GLsizei count, const GLchar *const* string, const GLint* length)
+ GLint glGetUniformLocation (GLuint program, const GLchar* name)
+ void glGetUniformfv (GLuint program, GLint location, GLfloat* params)
+ void glGetUniformiv (GLuint program, GLint location, GLint* params)
+ void glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble* params)
+ void glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params)
+ void glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params)
+ void glGetVertexAttribPointerv (GLuint index, GLenum pname, void** pointer)
+ GLboolean glIsProgram (GLuint program)
+ GLboolean glIsShader (GLuint shader)
+ void glLinkProgram (GLuint program)
+ void glGetShaderSource (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source)
+ void glUseProgram (GLuint program)
+ void glUniform1f (GLint location, GLfloat v0)
+ void glUniform1fv (GLint location, GLsizei count, const GLfloat* value)
+ void glUniform1i (GLint location, GLint v0)
+ void glUniform1iv (GLint location, GLsizei count, const GLint* value)
+ void glUniform2f (GLint location, GLfloat v0, GLfloat v1)
+ void glUniform2fv (GLint location, GLsizei count, const GLfloat* value)
+ void glUniform2i (GLint location, GLint v0, GLint v1)
+ void glUniform2iv (GLint location, GLsizei count, const GLint* value)
+ void glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+ void glUniform3fv (GLint location, GLsizei count, const GLfloat* value)
+ void glUniform3i (GLint location, GLint v0, GLint v1, GLint v2)
+ void glUniform3iv (GLint location, GLsizei count, const GLint* value)
+ void glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+ void glUniform4fv (GLint location, GLsizei count, const GLfloat* value)
+ void glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+ void glUniform4iv (GLint location, GLsizei count, const GLint* value)
+ void glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glValidateProgram (GLuint program)
+ void glVertexAttrib1d (GLuint index, GLdouble x)
+ void glVertexAttrib1dv (GLuint index, const GLdouble* v)
+ void glVertexAttrib1f (GLuint index, GLfloat x)
+ void glVertexAttrib1fv (GLuint index, const GLfloat* v)
+ void glVertexAttrib1s (GLuint index, GLshort x)
+ void glVertexAttrib1sv (GLuint index, const GLshort* v)
+ void glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y)
+ void glVertexAttrib2dv (GLuint index, const GLdouble* v)
+ void glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y)
+ void glVertexAttrib2fv (GLuint index, const GLfloat* v)
+ void glVertexAttrib2s (GLuint index, GLshort x, GLshort y)
+ void glVertexAttrib2sv (GLuint index, const GLshort* v)
+ void glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z)
+ void glVertexAttrib3dv (GLuint index, const GLdouble* v)
+ void glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z)
+ void glVertexAttrib3fv (GLuint index, const GLfloat* v)
+ void glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z)
+ void glVertexAttrib3sv (GLuint index, const GLshort* v)
+ void glVertexAttrib4Nbv (GLuint index, const GLbyte* v)
+ void glVertexAttrib4Niv (GLuint index, const GLint* v)
+ void glVertexAttrib4Nsv (GLuint index, const GLshort* v)
+ void glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+ void glVertexAttrib4Nubv (GLuint index, const GLubyte* v)
+ void glVertexAttrib4Nuiv (GLuint index, const GLuint* v)
+ void glVertexAttrib4Nusv (GLuint index, const GLushort* v)
+ void glVertexAttrib4bv (GLuint index, const GLbyte* v)
+ void glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glVertexAttrib4dv (GLuint index, const GLdouble* v)
+ void glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glVertexAttrib4fv (GLuint index, const GLfloat* v)
+ void glVertexAttrib4iv (GLuint index, const GLint* v)
+ void glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+ void glVertexAttrib4sv (GLuint index, const GLshort* v)
+ void glVertexAttrib4ubv (GLuint index, const GLubyte* v)
+ void glVertexAttrib4uiv (GLuint index, const GLuint* v)
+ void glVertexAttrib4usv (GLuint index, const GLushort* v)
+ void glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_2_1 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_2_1
new file mode 100644
index 0000000..88ecce8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_2_1
@@ -0,0 +1,33 @@
+GL_VERSION_2_1
+http://www.opengl.org/documentation/specs/version2.1/glspec21.pdf
+
+
+ GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F
+ GL_PIXEL_PACK_BUFFER 0x88EB
+ GL_PIXEL_UNPACK_BUFFER 0x88EC
+ GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
+ GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
+ GL_FLOAT_MAT2x3 0x8B65
+ GL_FLOAT_MAT2x4 0x8B66
+ GL_FLOAT_MAT3x2 0x8B67
+ GL_FLOAT_MAT3x4 0x8B68
+ GL_FLOAT_MAT4x2 0x8B69
+ GL_FLOAT_MAT4x3 0x8B6A
+ GL_SRGB 0x8C40
+ GL_SRGB8 0x8C41
+ GL_SRGB_ALPHA 0x8C42
+ GL_SRGB8_ALPHA8 0x8C43
+ GL_SLUMINANCE_ALPHA 0x8C44
+ GL_SLUMINANCE8_ALPHA8 0x8C45
+ GL_SLUMINANCE 0x8C46
+ GL_SLUMINANCE8 0x8C47
+ GL_COMPRESSED_SRGB 0x8C48
+ GL_COMPRESSED_SRGB_ALPHA 0x8C49
+ GL_COMPRESSED_SLUMINANCE 0x8C4A
+ GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B
+ void glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
+ void glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
+ void glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
+ void glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
+ void glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
+ void glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_0 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_0
new file mode 100644
index 0000000..4be5db0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_0
@@ -0,0 +1,164 @@
+GL_VERSION_3_0
+https://www.opengl.org/registry/doc/glspec30.20080923.pdf
+
+GL_ARB_framebuffer_object GL_ARB_map_buffer_range GL_ARB_uniform_buffer_object GL_ARB_vertex_array_object
+ GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB
+ GL_CLIP_DISTANCE0 GL_CLIP_PLANE0
+ GL_CLIP_DISTANCE1 GL_CLIP_PLANE1
+ GL_CLIP_DISTANCE2 GL_CLIP_PLANE2
+ GL_CLIP_DISTANCE3 GL_CLIP_PLANE3
+ GL_CLIP_DISTANCE4 GL_CLIP_PLANE4
+ GL_CLIP_DISTANCE5 GL_CLIP_PLANE5
+ GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES
+ GL_MAJOR_VERSION 0x821B
+ GL_MINOR_VERSION 0x821C
+ GL_NUM_EXTENSIONS 0x821D
+ GL_CONTEXT_FLAGS 0x821E
+ GL_DEPTH_BUFFER 0x8223
+ GL_STENCIL_BUFFER 0x8224
+ GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001
+ GL_RGBA32F 0x8814
+ GL_RGB32F 0x8815
+ GL_RGBA16F 0x881A
+ GL_RGB16F 0x881B
+ GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
+ GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
+ GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
+ GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
+ GL_CLAMP_VERTEX_COLOR 0x891A
+ GL_CLAMP_FRAGMENT_COLOR 0x891B
+ GL_CLAMP_READ_COLOR 0x891C
+ GL_FIXED_ONLY 0x891D
+ GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS
+ GL_TEXTURE_RED_TYPE 0x8C10
+ GL_TEXTURE_GREEN_TYPE 0x8C11
+ GL_TEXTURE_BLUE_TYPE 0x8C12
+ GL_TEXTURE_ALPHA_TYPE 0x8C13
+ GL_TEXTURE_LUMINANCE_TYPE 0x8C14
+ GL_TEXTURE_INTENSITY_TYPE 0x8C15
+ GL_TEXTURE_DEPTH_TYPE 0x8C16
+ GL_TEXTURE_1D_ARRAY 0x8C18
+ GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
+ GL_TEXTURE_2D_ARRAY 0x8C1A
+ GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
+ GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
+ GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
+ GL_R11F_G11F_B10F 0x8C3A
+ GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
+ GL_RGB9_E5 0x8C3D
+ GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
+ GL_TEXTURE_SHARED_SIZE 0x8C3F
+ GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
+ GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
+ GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
+ GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
+ GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
+ GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
+ GL_PRIMITIVES_GENERATED 0x8C87
+ GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
+ GL_RASTERIZER_DISCARD 0x8C89
+ GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
+ GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
+ GL_INTERLEAVED_ATTRIBS 0x8C8C
+ GL_SEPARATE_ATTRIBS 0x8C8D
+ GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
+ GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
+ GL_RGBA32UI 0x8D70
+ GL_RGB32UI 0x8D71
+ GL_RGBA16UI 0x8D76
+ GL_RGB16UI 0x8D77
+ GL_RGBA8UI 0x8D7C
+ GL_RGB8UI 0x8D7D
+ GL_RGBA32I 0x8D82
+ GL_RGB32I 0x8D83
+ GL_RGBA16I 0x8D88
+ GL_RGB16I 0x8D89
+ GL_RGBA8I 0x8D8E
+ GL_RGB8I 0x8D8F
+ GL_RED_INTEGER 0x8D94
+ GL_GREEN_INTEGER 0x8D95
+ GL_BLUE_INTEGER 0x8D96
+ GL_ALPHA_INTEGER 0x8D97
+ GL_RGB_INTEGER 0x8D98
+ GL_RGBA_INTEGER 0x8D99
+ GL_BGR_INTEGER 0x8D9A
+ GL_BGRA_INTEGER 0x8D9B
+ GL_SAMPLER_1D_ARRAY 0x8DC0
+ GL_SAMPLER_2D_ARRAY 0x8DC1
+ GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
+ GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
+ GL_SAMPLER_CUBE_SHADOW 0x8DC5
+ GL_UNSIGNED_INT_VEC2 0x8DC6
+ GL_UNSIGNED_INT_VEC3 0x8DC7
+ GL_UNSIGNED_INT_VEC4 0x8DC8
+ GL_INT_SAMPLER_1D 0x8DC9
+ GL_INT_SAMPLER_2D 0x8DCA
+ GL_INT_SAMPLER_3D 0x8DCB
+ GL_INT_SAMPLER_CUBE 0x8DCC
+ GL_INT_SAMPLER_1D_ARRAY 0x8DCE
+ GL_INT_SAMPLER_2D_ARRAY 0x8DCF
+ GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
+ GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
+ GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
+ GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
+ GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
+ GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
+ GL_QUERY_WAIT 0x8E13
+ GL_QUERY_NO_WAIT 0x8E14
+ GL_QUERY_BY_REGION_WAIT 0x8E15
+ GL_QUERY_BY_REGION_NO_WAIT 0x8E16
+ void glColorMaski (GLuint buf, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+ void glGetBooleani_v (GLenum pname, GLuint index, GLboolean* data)
+ void glEnablei (GLenum cap, GLuint index)
+ void glDisablei (GLenum cap, GLuint index)
+ GLboolean glIsEnabledi (GLenum cap, GLuint index)
+ void glBeginTransformFeedback (GLenum primitiveMode)
+ void glEndTransformFeedback (void)
+ void glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode)
+ void glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name)
+ void glClampColor (GLenum target, GLenum clamp)
+ void glBeginConditionalRender (GLuint id, GLenum mode)
+ void glEndConditionalRender (void)
+ void glVertexAttribI1i (GLuint index, GLint v0)
+ void glVertexAttribI2i (GLuint index, GLint v0, GLint v1)
+ void glVertexAttribI3i (GLuint index, GLint v0, GLint v1, GLint v2)
+ void glVertexAttribI4i (GLuint index, GLint v0, GLint v1, GLint v2, GLint v3)
+ void glVertexAttribI1ui (GLuint index, GLuint v0)
+ void glVertexAttribI2ui (GLuint index, GLuint v0, GLuint v1)
+ void glVertexAttribI3ui (GLuint index, GLuint v0, GLuint v1, GLuint v2)
+ void glVertexAttribI4ui (GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+ void glVertexAttribI1iv (GLuint index, const GLint* v0)
+ void glVertexAttribI2iv (GLuint index, const GLint* v0)
+ void glVertexAttribI3iv (GLuint index, const GLint* v0)
+ void glVertexAttribI4iv (GLuint index, const GLint* v0)
+ void glVertexAttribI1uiv (GLuint index, const GLuint* v0)
+ void glVertexAttribI2uiv (GLuint index, const GLuint* v0)
+ void glVertexAttribI3uiv (GLuint index, const GLuint* v0)
+ void glVertexAttribI4uiv (GLuint index, const GLuint* v0)
+ void glVertexAttribI4bv (GLuint index, const GLbyte* v0)
+ void glVertexAttribI4sv (GLuint index, const GLshort* v0)
+ void glVertexAttribI4ubv (GLuint index, const GLubyte* v0)
+ void glVertexAttribI4usv (GLuint index, const GLushort* v0)
+ void glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void*pointer)
+ void glGetVertexAttribIiv (GLuint index, GLenum pname, GLint* params)
+ void glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint* params)
+ void glGetUniformuiv (GLuint program, GLint location, GLuint* params)
+ void glBindFragDataLocation (GLuint program, GLuint colorNumber, const GLchar* name)
+ GLint glGetFragDataLocation (GLuint program, const GLchar* name)
+ void glUniform1ui (GLint location, GLuint v0)
+ void glUniform2ui (GLint location, GLuint v0, GLuint v1)
+ void glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2)
+ void glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+ void glUniform1uiv (GLint location, GLsizei count, const GLuint* value)
+ void glUniform2uiv (GLint location, GLsizei count, const GLuint* value)
+ void glUniform3uiv (GLint location, GLsizei count, const GLuint* value)
+ void glUniform4uiv (GLint location, GLsizei count, const GLuint* value)
+ void glTexParameterIiv (GLenum target, GLenum pname, const GLint* params)
+ void glTexParameterIuiv (GLenum target, GLenum pname, const GLuint* params)
+ void glGetTexParameterIiv (GLenum target, GLenum pname, GLint* params)
+ void glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint* params)
+ void glClearBufferiv (GLenum buffer, GLint drawBuffer, const GLint* value)
+ void glClearBufferuiv (GLenum buffer, GLint drawBuffer, const GLuint* value)
+ void glClearBufferfv (GLenum buffer, GLint drawBuffer, const GLfloat* value)
+ void glClearBufferfi (GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil)
+ const GLubyte* glGetStringi (GLenum name, GLuint index)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_1 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_1
new file mode 100644
index 0000000..c546704
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_1
@@ -0,0 +1,42 @@
+GL_VERSION_3_1
+https://www.opengl.org/registry/doc/glspec31.20090528.pdf
+
+GL_ARB_copy_buffer
+ GL_SAMPLER_2D_RECT 0x8B63
+ GL_SAMPLER_2D_RECT_SHADOW 0x8B64
+ GL_SAMPLER_BUFFER 0x8DC2
+ GL_INT_SAMPLER_2D_RECT 0x8DCD
+ GL_INT_SAMPLER_BUFFER 0x8DD0
+ GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
+ GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
+ GL_TEXTURE_BUFFER 0x8C2A
+ GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
+ GL_TEXTURE_BINDING_BUFFER 0x8C2C
+ GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
+ GL_TEXTURE_BUFFER_FORMAT 0x8C2E
+ GL_TEXTURE_RECTANGLE 0x84F5
+ GL_TEXTURE_BINDING_RECTANGLE 0x84F6
+ GL_PROXY_TEXTURE_RECTANGLE 0x84F7
+ GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
+ GL_RED_SNORM 0x8F90
+ GL_RG_SNORM 0x8F91
+ GL_RGB_SNORM 0x8F92
+ GL_RGBA_SNORM 0x8F93
+ GL_R8_SNORM 0x8F94
+ GL_RG8_SNORM 0x8F95
+ GL_RGB8_SNORM 0x8F96
+ GL_RGBA8_SNORM 0x8F97
+ GL_R16_SNORM 0x8F98
+ GL_RG16_SNORM 0x8F99
+ GL_RGB16_SNORM 0x8F9A
+ GL_RGBA16_SNORM 0x8F9B
+ GL_SIGNED_NORMALIZED 0x8F9C
+ GL_PRIMITIVE_RESTART 0x8F9D
+ GL_PRIMITIVE_RESTART_INDEX 0x8F9E
+ GL_BUFFER_ACCESS_FLAGS 0x911F
+ GL_BUFFER_MAP_LENGTH 0x9120
+ GL_BUFFER_MAP_OFFSET 0x9121
+ void glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei primcount)
+ void glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount)
+ void glTexBuffer (GLenum target, GLenum internalFormat, GLuint buffer)
+ void glPrimitiveRestartIndex (GLuint buffer)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_2 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_2
new file mode 100644
index 0000000..a987541
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_2
@@ -0,0 +1,29 @@
+GL_VERSION_3_2
+https://www.opengl.org/registry/doc/glspec32.compatibility.20091207.pdf
+
+GL_ARB_draw_elements_base_vertex GL_ARB_provoking_vertex GL_ARB_sync GL_ARB_texture_multisample
+ GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
+ GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
+ GL_LINES_ADJACENCY 0x000A
+ GL_LINE_STRIP_ADJACENCY 0x000B
+ GL_TRIANGLES_ADJACENCY 0x000C
+ GL_TRIANGLE_STRIP_ADJACENCY 0x000D
+ GL_PROGRAM_POINT_SIZE 0x8642
+ GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
+ GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
+ GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
+ GL_GEOMETRY_SHADER 0x8DD9
+ GL_GEOMETRY_VERTICES_OUT 0x8916
+ GL_GEOMETRY_INPUT_TYPE 0x8917
+ GL_GEOMETRY_OUTPUT_TYPE 0x8918
+ GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
+ GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
+ GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
+ GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
+ GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
+ GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
+ GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
+ GL_CONTEXT_PROFILE_MASK 0x9126
+ void glGetInteger64i_v (GLenum pname, GLuint index, GLint64 * data)
+ void glGetBufferParameteri64v (GLenum target, GLenum value, GLint64 * data)
+ void glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_3 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_3
new file mode 100644
index 0000000..a80dbcc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_3_3
@@ -0,0 +1,7 @@
+GL_VERSION_3_3
+https://www.opengl.org/registry/doc/glspec33.compatibility.20100311.pdf
+
+
+ GL_RGB10_A2UI 0x906F
+ GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
+ void glVertexAttribDivisor (GLuint index, GLuint divisor)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_0 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_0
new file mode 100644
index 0000000..3715b40
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_0
@@ -0,0 +1,21 @@
+GL_VERSION_4_0
+https://www.opengl.org/registry/doc/glspec40.compatibility.20100311.pdf
+
+
+ GL_SAMPLE_SHADING 0x8C36
+ GL_MIN_SAMPLE_SHADING_VALUE 0x8C37
+ GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
+ GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
+ GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F
+ GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
+ GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
+ GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B
+ GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
+ GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
+ GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
+ GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
+ void glMinSampleShading (GLclampf value)
+ void glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+ void glBlendEquationi (GLuint buf, GLenum mode)
+ void glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+ void glBlendFunci (GLuint buf, GLenum src, GLenum dst)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_1 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_1
new file mode 100644
index 0000000..6153c27
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_1
@@ -0,0 +1,3 @@
+GL_VERSION_4_1
+https://www.opengl.org/registry/doc/glspec41.compatibility.20100725.pdf
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_2 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_2
new file mode 100644
index 0000000..ff12b4c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_2
@@ -0,0 +1,13 @@
+GL_VERSION_4_2
+https://www.opengl.org/registry/doc/glspec42.compatibility.20120427.pdf
+
+
+ GL_COPY_READ_BUFFER_BINDING 0x8F36
+ GL_COPY_WRITE_BUFFER_BINDING 0x8F37
+ GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
+ GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
+ GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C
+ GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D
+ GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E
+ GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_3 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_3
new file mode 100644
index 0000000..32fc35b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_3
@@ -0,0 +1,6 @@
+GL_VERSION_4_3
+https://www.opengl.org/registry/doc/glspec43.compatibility.20130214.pdf
+
+
+ GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E
+ GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_4 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_4
new file mode 100644
index 0000000..cf6416e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_4
@@ -0,0 +1,8 @@
+GL_VERSION_4_4
+https://www.opengl.org/registry/doc/glspec44.compatibility.pdf
+
+
+ GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
+ GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
+ GL_TEXTURE_BUFFER_BINDING 0x8C2A
+
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_5 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_5
new file mode 100644
index 0000000..1ecda61
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_5
@@ -0,0 +1,9 @@
+GL_VERSION_4_5
+https://www.opengl.org/registry/doc/glspec45.compatibility.pdf
+
+
+ GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004
+ GLenum glGetGraphicsResetStatus (void)
+ void glGetnTexImage (GLenum tex, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *pixels)
+ void glGetnCompressedTexImage (GLenum target, GLint lod, GLsizei bufSize, GLvoid *pixels)
+ void glGetnUniformdv (GLuint program, GLint location, GLsizei bufSize, GLdouble *params)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_6 b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_6
new file mode 100644
index 0000000..2efe918
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_VERSION_4_6
@@ -0,0 +1,29 @@
+GL_VERSION_4_6
+https://www.opengl.org/registry/doc/glspec46.compatibility.pdf
+
+
+ GL_PARAMETER_BUFFER 0x80EE
+ GL_PARAMETER_BUFFER_BINDING 0x80EF
+ GL_VERTICES_SUBMITTED 0x82EE
+ GL_PRIMITIVES_SUBMITTED 0x82EF
+ GL_VERTEX_SHADER_INVOCATIONS 0x82F0
+ GL_TESS_CONTROL_SHADER_PATCHES 0x82F1
+ GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2
+ GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3
+ GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4
+ GL_COMPUTE_SHADER_INVOCATIONS 0x82F5
+ GL_CLIPPING_INPUT_PRIMITIVES 0x82F6
+ GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7
+ GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC
+ GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED
+ GL_POLYGON_OFFSET_CLAMP 0x8E1B
+ GL_TEXTURE_MAX_ANISOTROPY 0x84FE
+ GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
+ GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551
+ GL_SPIR_V_BINARY 0x9552
+ GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008
+ GL_SPIR_V_EXTENSIONS 0x9553
+ GL_NUM_SPIR_V_EXTENSIONS 0x9554
+ void glMultiDrawArraysIndirectCount (GLenum mode, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)
+ void glMultiDrawElementsIndirectCount (GLenum mode, GLenum type, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)
+ void glSpecializeShader (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue)
diff --git a/engine-ocean/External/glew/auto/core/gl/GL_WIN_swap_hint b/engine-ocean/External/glew/auto/core/gl/GL_WIN_swap_hint
new file mode 100644
index 0000000..9bb490b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/GL_WIN_swap_hint
@@ -0,0 +1,5 @@
+GL_WIN_swap_hint
+http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glfunc01_16zy.asp
+GL_WIN_swap_hint
+
+ void glAddSwapHintRectWIN (GLint x, GLint y, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/core/gl/WGL_NV_gpu_affinity b/engine-ocean/External/glew/auto/core/gl/WGL_NV_gpu_affinity
new file mode 100644
index 0000000..61ed3f1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/core/gl/WGL_NV_gpu_affinity
@@ -0,0 +1,13 @@
+WGL_NV_gpu_affinity
+http://developer.download.nvidia.com/opengl/specs/WGL_nv_gpu_affinity.txt
+WGL_NV_gpu_affinity
+
+ WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
+ WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
+ BOOL wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu)
+ BOOL wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice)
+ HDC wglCreateAffinityDCNV (const HGPUNV *phGpuList)
+ BOOL wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu)
+ BOOL wglDeleteDCNV (HDC hdc)
+ DECLARE_HANDLE(HGPUNV);
+ typedef struct _GPU_DEVICE { DWORD cb; CHAR DeviceName[32]; CHAR DeviceString[128]; DWORD Flags; RECT rcVirtualScreen; } GPU_DEVICE, *PGPU_DEVICE;
diff --git a/engine-ocean/External/glew/auto/custom.txt b/engine-ocean/External/glew/auto/custom.txt
new file mode 100644
index 0000000..b797b95
--- /dev/null
+++ b/engine-ocean/External/glew/auto/custom.txt
@@ -0,0 +1,7 @@
+WGL_ARB_extensions_string
+WGL_EXT_extensions_string
+WGL_ARB_pixel_format
+WGL_ARB_pbuffer
+WGL_NV_float_buffer
+WGL_ATI_pixel_format_float
+WGL_ARB_multisample
diff --git a/engine-ocean/External/glew/auto/doc/advanced.html b/engine-ocean/External/glew/auto/doc/advanced.html
new file mode 100644
index 0000000..3e0ad79
--- /dev/null
+++ b/engine-ocean/External/glew/auto/doc/advanced.html
@@ -0,0 +1,130 @@
+<h2>Automatic Code Generation</h2>
+
+<p>
+Starting from release 1.1.0, the source code and parts of the
+documentation are automatically generated from the extension
+specifications in a two-step process. In the first step,
+specification files from the OpenGL registry are downloaded and
+parsed. Skeleton descriptors are created for each extension. These
+descriptors contain all necessary information for creating the source
+code and documentation in a simple and compact format, including the
+name of the extension, url link to the specification, tokens, function
+declarations, typedefs and struct definitions. In the second step,
+the header files as well as the library and glewinfo source are
+generated from the descriptor files. The code generation scripts are
+located in the <tt>auto</tt> subdirectory.
+</p>
+
+<p>
+The code generation scripts require GNU make, wget, and perl. On
+Windows, the simplest way to get access to these tools is to install
+<a href="http://www.cygwin.com/">Cygwin</a>, but make sure that the
+root directory is mounted in binary mode. The makefile in the
+<tt>auto</tt> directory provides the following build targets:
+</p>
+
+<table border=0 cellpadding=0 cellspacing=5>
+<tr><td align="left" valign="top"><tt>make</tt></td>
+<td align=left>Create the source files from the descriptors.<br/> If the
+descriptors do not exist, create them from the spec files.<br/> If the spec
+files do not exist, download them from the OpenGL repository.</td></tr>
+<tr><td align="left" valign="top"><tt>make&nbsp;clean</tt></td>
+<td align=left>Delete the source files.</td></tr>
+<tr><td align="left" valign="top"><tt>make&nbsp;clobber</tt></td>
+<td align=left>Delete the source files and the descriptors.</td></tr>
+<tr><td align="left" valign="top"><tt>make&nbsp;destroy</tt></td>
+<td align=left>Delete the source files, the descriptors, and the spec files.</td></tr>
+<tr><td align="left" valign="top"><tt>make&nbsp;custom</tt></td>
+<td align=left>Create the source files for the extensions
+listed in <tt>auto/custom.txt</tt>.<br/> See "Custom Code
+Generation" below for more details.</td></tr>
+</table>
+
+<h3>Adding a New Extension</h3>
+
+<p>
+To add a new extension, create a descriptor file for the extension in
+<tt>auto/core</tt> and rerun the code generation scripts by typing
+<tt>make clean; make</tt> in the <tt>auto</tt> directory.
+</p>
+
+<p>
+The format of the descriptor file is given below. Items in
+brackets are optional.
+</p>
+
+<p class="pre">
+&lt;Extension Name&gt;<br>
+[&lt;URL of Specification File&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Token Name&gt; &lt;Token Value&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Token Name&gt; &lt;Token Value&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;...<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Typedef&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Typedef&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;...<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Function Signature&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Function Signature&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;...<br>
+<!-- &nbsp;&nbsp;&nbsp;&nbsp;[&lt;Function Definition&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;[&lt;Function Definition&gt;]<br>
+&nbsp;&nbsp;&nbsp;&nbsp;...<br> -->
+</p>
+
+<!--
+<p>
+Note that <tt>Function Definitions</tt> are copied to the header files
+without changes and have to be terminated with a semicolon. In
+contrast, <tt>Tokens</tt>, <tt>Function signatures</tt>, and
+<tt>Typedefs</tt> should not be terminated with a semicolon.
+</p>
+-->
+
+<p>
+Take a look at one of the files in <tt>auto/core</tt> for an
+example. Note that typedefs and function signatures should not be
+terminated with a semicolon.
+</p>
+
+<h3>Custom Code Generation</h3>
+<p>
+Starting from GLEW 1.3.0, it is possible to control which extensions
+to include in the library by specifying a list in
+<tt>auto/custom.txt</tt>. This is useful when you do not need all the
+extensions and would like to reduce the size of the source files.
+Type <tt>make clean; make custom</tt> in the <tt>auto</tt> directory
+to rerun the scripts with the custom list of extensions.
+</p>
+
+<p>
+For example, the following is the list of extensions needed to get GLEW and the
+utilities to compile.
+</p>
+
+<p class="pre">
+WGL_ARB_extensions_string<br>
+WGL_ARB_multisample<br>
+WGL_ARB_pixel_format<br>
+WGL_ARB_pbuffer<br>
+WGL_EXT_extensions_string<br>
+WGL_ATI_pixel_format_float<br>
+WGL_NV_float_buffer<br>
+</p>
+
+<h2>Separate Namespace</h2>
+
+<p>
+To avoid name clashes when linking with libraries that include the
+same symbols, extension entry points are declared in a separate
+namespace (release 1.1.0 and up). This is achieved by aliasing OpenGL
+function names to their GLEW equivalents. For instance,
+<tt>glFancyFunction</tt> is simply an alias to
+<tt>glewFancyFunction</tt>. The separate namespace does not effect
+token and function pointer definitions.
+</p>
+
+<h2>Known Issues</h2>
+
+<p>
+GLEW requires GLX 1.2 for compatibility with GLUT.
+</p>
+
diff --git a/engine-ocean/External/glew/auto/doc/basic.html b/engine-ocean/External/glew/auto/doc/basic.html
new file mode 100644
index 0000000..693575b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/doc/basic.html
@@ -0,0 +1,180 @@
+<h2>Initializing GLEW</h2>
+<p>
+First you need to create a valid OpenGL rendering context and call
+<tt>glewInit()</tt> to initialize the extension entry points. If
+<tt>glewInit()</tt> returns <tt>GLEW_OK</tt>, the initialization
+succeeded and you can use the available extensions as well as core
+OpenGL functionality. For example:
+</p>
+
+<p class="pre">
+#include &lt;GL/glew.h&gt;<br>
+#include &lt;GL/glut.h&gt;<br>
+...<br>
+glutInit(&amp;argc, argv);<br>
+glutCreateWindow("GLEW Test");<br>
+GLenum err = glewInit();<br>
+if (GLEW_OK != err)<br>
+{<br>
+&nbsp;&nbsp;/* Problem: glewInit failed, something is seriously wrong. */<br>
+&nbsp;&nbsp;fprintf(stderr, "Error: %s\n", glewGetErrorString(err));<br>
+&nbsp;&nbsp;...<br>
+}<br>
+fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));<br>
+</p>
+
+<h2>Checking for Extensions</h2>
+
+<p>
+Starting from GLEW 1.1.0, you can find out if a particular extension
+is available on your platform by querying globally defined variables
+of the form <tt>GLEW_{extension_name}</tt>:
+</p>
+
+<p class="pre">
+if (GLEW_ARB_vertex_program)<br>
+{<br>
+&nbsp;&nbsp;/* It is safe to use the ARB_vertex_program extension here. */<br>
+&nbsp;&nbsp;glGenProgramsARB(...);<br>
+}<br>
+</p>
+
+<p>
+<b>In GLEW 1.0.x, a global structure was used for this task. To ensure
+binary compatibility between releases, the struct was replaced with a
+set of variables.</b>
+</p>
+
+<p>
+You can also check for core OpenGL functionality. For example, to
+see if OpenGL 1.3 is supported, do the following:
+</p>
+
+<p class="pre">
+if (GLEW_VERSION_1_3)<br>
+{<br>
+&nbsp;&nbsp;/* Yay! OpenGL 1.3 is supported! */<br>
+}<br>
+</p>
+
+<p>
+In general, you can check if <tt>GLEW_{extension_name}</tt> or
+<tt>GLEW_VERSION_{version}</tt> is true or false.
+</p>
+
+<p>
+It is also possible to perform extension checks from string
+input. Starting from the 1.3.0 release, use <tt>glewIsSupported</tt>
+to check if the required core or extension functionality is
+available:
+</p>
+
+<p class="pre">
+if (glewIsSupported("GL_VERSION_1_4&nbsp;&nbsp;GL_ARB_point_sprite"))<br>
+{<br>
+&nbsp;&nbsp;/* Great, we have OpenGL 1.4 + point sprites. */<br>
+}<br>
+</p>
+
+<p>
+For extensions only, <tt>glewGetExtension</tt> provides a slower alternative
+(GLEW 1.0.x-1.2.x). <b>Note that in the 1.3.0 release </b>
+<tt>glewGetExtension</tt> <b>was replaced with </b>
+<tt>glewIsSupported</tt>.
+</p>
+
+<p class="pre">
+if (glewGetExtension("GL_ARB_fragment_program"))<br>
+{<br>
+&nbsp;&nbsp;/* Looks like ARB_fragment_program is supported. */<br>
+}<br>
+</p>
+
+<h2>Experimental Drivers</h2>
+
+<p>
+GLEW obtains information on the supported extensions from the graphics
+driver. Experimental or pre-release drivers, however, might not
+report every available extension through the standard mechanism, in
+which case GLEW will report it unsupported. To circumvent this
+situation, the <tt>glewExperimental</tt> global switch can be turned
+on by setting it to <tt>GL_TRUE</tt> before calling
+<tt>glewInit()</tt>, which ensures that all extensions with valid
+entry points will be exposed.
+</p>
+
+<h2>Platform Specific Extensions</h2>
+
+<p>
+Platform specific extensions are separated into two header files:
+<tt>wglew.h</tt> and <tt>glxew.h</tt>, which define the available
+<tt>WGL</tt> and <tt>GLX</tt> extensions. To determine if a certain
+extension is supported, query <tt>WGLEW_{extension name}</tt> or
+<tt>GLXEW_{extension_name}</tt>. For example:
+</p>
+
+<p class="pre">
+#include &lt;GL/wglew.h&gt;<br>
+<br>
+if (WGLEW_ARB_pbuffer)<br>
+{<br>
+&nbsp;&nbsp;/* OK, we can use pbuffers. */<br>
+}<br>
+else<br>
+{<br>
+&nbsp;&nbsp;/* Sorry, pbuffers will not work on this platform. */<br>
+}<br>
+</p>
+
+<p>
+Alternatively, use <tt>wglewIsSupported</tt> or
+<tt>glxewIsSupported</tt> to check for extensions from a string:
+</p>
+
+<p class="pre">
+if (wglewIsSupported("WGL_ARB_pbuffer"))<br>
+{<br>
+&nbsp;&nbsp;/* OK, we can use pbuffers. */<br>
+}<br>
+</p>
+
+<h2>Utilities</h2>
+
+<p>
+GLEW provides two command-line utilities: one for creating a list of
+available extensions and visuals; and another for verifying extension
+entry points.
+</p>
+
+<h3>visualinfo: extensions and visuals</h3>
+
+<p>
+<tt>visualinfo</tt> is an extended version of <tt>glxinfo</tt>. The
+Windows version creates a file called <tt>visualinfo.txt</tt>, which
+contains a list of available OpenGL, WGL, and GLU extensions as well
+as a table of visuals aka. pixel formats. Pbuffer and MRT capable
+visuals are also included. For additional usage information, type
+<tt>visualinfo -h</tt>.
+</p>
+
+<h3>glewinfo: extension verification utility</h3>
+
+<p>
+<tt>glewinfo</tt> allows you to verify the entry points for the
+extensions supported on your platform. The Windows version
+reports the results to a text file called <tt>glewinfo.txt</tt>. The
+Unix version prints the results to <tt>stdout</tt>.
+</p>
+
+<p>Windows usage:</p>
+ <blockquote><pre>glewinfo [-pf &lt;id&gt;]</pre></blockquote>
+
+<p>where <tt>&lt;id&gt;</tt> is the pixel format id for which the
+capabilities are displayed.</p>
+
+<p>Unix usage:</p>
+<blockquote><pre>glewinfo [-display &lt;dpy&gt;] [-visual &lt;id&gt;]</pre></blockquote>
+
+<p>where <tt>&lt;dpy&gt;</tt> is the X11 display and <tt>&lt;id&gt;</tt> is
+the visual id for which the capabilities are displayed.</p>
+
diff --git a/engine-ocean/External/glew/auto/doc/build.html b/engine-ocean/External/glew/auto/doc/build.html
new file mode 100644
index 0000000..467a7f3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/doc/build.html
@@ -0,0 +1,49 @@
+<h2>Building GLEW</h2>
+
+<h3>Windows</h3>
+
+<p>A MS Visual Studio project is provided in the <tt>build/vc6</tt> directory.</p>
+<p>Pre-built shared and static libraries are also available for <a href="index.html">download</a>.</p>
+
+<h3>Makefile</h3>
+
+<p>For platforms other than MS Windows, the provided <tt>Makefile</tt> is used.</p>
+
+<h4>Command-line variables</h4>
+
+<table border=0 cellpadding=0 cellspacing=10>
+<tr><td valign=top><tt>SYSTEM</tt></td><td valign=top>auto</td>
+<td align=left>Target system to build: darwin, linux, solaris, etc.<br/>For a full list of supported targets: <tt>ls config/Makefile.*</tt><br/>
+<a href="http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree">config.guess</a> is used to auto detect, as necessary.</td></tr>
+<tr><td valign=top><tt>GLEW_DEST</tt></td><td valign=top><tt>/usr</tt></td>
+<td align=left>Base directory for installation.</td></tr>
+</table>
+
+<h4>Make targets</h4>
+
+<table border=0 cellpadding=0 cellspacing=10>
+<tr><td valign=top><tt>all</tt></td><td>Build everything.</td><tr>
+<tr><td valign=top><tt>glew.lib</tt></td><td>Build static and dynamic GLEW libraries.</td><tr>
+<tr><td valign=top><tt>glew.lib.mx</tt></td><td>Build static and dynamic GLEWmx libraries.</td><tr>
+<tr><td valign=top><tt>glew.bin</tt></td><td>Build <tt>glewinfo</tt> and <tt>visualinfo</tt> utilities.</td><tr>
+<tr><td valign=top><tt>clean</tt></td><td>Delete temporary and built files.</td><tr>
+<tr><td valign=top><tt>install.all</tt></td><td>Install everything.</td><tr>
+<tr><td valign=top><tt>install</tt></td><td>Install GLEW libraries.</td><tr>
+<tr><td valign=top><tt>install.mx</tt></td><td>Install GLEWmx libraries.</td><tr>
+<tr><td valign=top><tt>install.bin</tt></td><td>Install <tt>glewinfo</tt> and <tt>visualinfo</tt> utilities.</td><tr>
+<tr><td valign=top><tt>uninstall</tt></td><td>Delete installed files.</td><tr>
+</table>
+
+<h4>Requirements</h4>
+
+<ul>
+<li>GNU make</li>
+<li>perl</li>
+<li>wget</li>
+<li>GNU sed</li>
+<li>gcc compiler</li>
+<li>git</li>
+</ul>
+
+Ubuntu: <pre>sudo apt-get install libXmu-dev libXi-dev libgl-dev dos2unix git wget</pre>
+Fedora: <pre>sudo yum install libXmu-devel libXi-devel libGL-devel dos2unix git wget</pre>
diff --git a/engine-ocean/External/glew/auto/doc/credits.html b/engine-ocean/External/glew/auto/doc/credits.html
new file mode 100644
index 0000000..6c36de0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/doc/credits.html
@@ -0,0 +1,2 @@
+<p><a href="https://github.com/nigels-com/glew#copyright-and-licensing">
+Author, copyright and licensing information</a> on github.</p>
diff --git a/engine-ocean/External/glew/auto/doc/index.html b/engine-ocean/External/glew/auto/doc/index.html
new file mode 100644
index 0000000..e569e75
--- /dev/null
+++ b/engine-ocean/External/glew/auto/doc/index.html
@@ -0,0 +1,113 @@
+<p>
+The OpenGL Extension Wrangler Library (GLEW) is a cross-platform
+open-source C/C++ extension loading library. GLEW provides efficient
+run-time mechanisms for determining which OpenGL extensions are
+supported on the target platform. OpenGL core and extension
+functionality is exposed in a single header file. GLEW has been
+tested on a variety of operating systems, including Windows, Linux,
+Mac OS X, FreeBSD, Irix, and Solaris.
+</p>
+
+<h2>Downloads</h2>
+<p>
+<a href="http://sourceforge.net/projects/glew/">GLEW</a> is distributed
+as source and precompiled binaries.<br/>
+The latest release is
+<a href="https://github.com/nigels-com/glew/releases/tag/glew-2.2.0">2.2.0</a>[03-15-20]:
+</p>
+<p>
+</p>
+<p>
+<table border="1" cellpadding="5" cellspacing="0" bgcolor="#f0f0f0" align="center">
+<tr>
+<td>
+<table border="0" cellpadding="3" cellspacing="0">
+<tr>
+<td></td>
+<td align="right"><b>Source</b></td>
+<td></td>
+<td align="left">
+<a href="https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.zip">ZIP</a>&nbsp;|&nbsp;
+<a href="https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.tgz">TGZ</a></td>
+<td></td>
+</tr>
+<tr>
+<td></td>
+<td align="right"><b>Binaries</b></td>
+<td></td>
+<td align="left">
+<a href="https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0-win32.zip">Windows 32-bit and 64-bit</a>
+</td>
+<td></td>
+</tr>
+</table>
+</tr>
+</table>
+
+<p></p>
+<p>
+An up-to-date copy is also available using <a href="http://git-scm.com/">git</a>:
+</p>
+<ul>
+<li><a href="https://github.com/nigels-com/glew">github</a><br/>
+<tt>git clone https://github.com/nigels-com/glew.git glew</tt><br/>&nbsp;</li>
+</ul>
+
+<h2>Supported Extensions</h2>
+<p>
+The latest release contains support for OpenGL 4.6, compatibility and forward-compatible contexts and the following extensions:
+</p>
+<ul>
+<li><a href="glew.html">OpenGL extensions</a>
+<li><a href="wglew.html">WGL extensions</a>
+<li><a href="glxew.html">GLX extensions</a>
+</ul>
+
+<h2>News</h2>
+<ul>
+<li>[03-15-20] <a href="https://github.com/nigels-com/glew/releases/tag/glew-2.2.0">GLEW 2.2.0</a> new extensions and minor bug fixes</li>
+<li>[07-31-17] <a href="https://github.com/nigels-com/glew/releases/tag/glew-2.1.0">GLEW 2.1.0</a> adds support for OpenGL 4.6, new extensions and minor bug fixes</li>
+<li>[07-24-16] <a href="https://github.com/nigels-com/glew/releases/tag/glew-2.0.0">GLEW 2.0.0</a> adds support for forward-compatible contexts, adds new extensions, OSMesa and EGL support, MX discontinued and minor bug fixes</li>
+<li>[08-10-15] <a href="https://sourceforge.net/projects/glew/files/glew/1.13.0/">GLEW 1.13.0</a> adds support for new extensions, fixes minor bugs</li>
+<li>[26-01-15] <a href="https://sourceforge.net/projects/glew/files/glew/1.12.0/">GLEW 1.12.0</a> fixes minor bugs and adds new extensions</li>
+<li>[08-11-14] <a href="https://sourceforge.net/projects/glew/files/glew/1.11.0/">GLEW 1.11.0</a> adds support for OpenGL 4.5, new extensions</li>
+<li>[07-22-13] <a href="https://sourceforge.net/projects/glew/files/glew/1.10.0/">GLEW 1.10.0</a> adds support for OpenGL 4.4, new extensions</li>
+<li>[08-06-12] <a href="https://sourceforge.net/projects/glew/files/glew/1.9.0/">GLEW 1.9.0</a> adds support for OpenGL 4.3, new extensions</li>
+<li>[07-17-12] <a href="https://sourceforge.net/projects/glew/files/glew/1.8.0/">GLEW 1.8.0</a> fixes minor bugs and adds new extensions</li>
+<li>[08-26-11] <a href="https://sourceforge.net/projects/glew/files/glew/1.7.0/">GLEW 1.7.0</a> adds support for OpenGL 4.2, new extensions, fixes bugs</li>
+<li>[04-27-11] <a href="https://sourceforge.net/projects/glew/files/glew/1.6.0/">GLEW 1.6.0</a> fixes minor bugs and adds eight new extensions</li>
+<li>[01-31-11] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.8/">GLEW 1.5.8</a> fixes minor bugs and adds two new extensions</li>
+<li>[11-03-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.7/">GLEW 1.5.7</a> fixes minor bugs and adds one new extension</li>
+<li>[09-07-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.6/">GLEW 1.5.6</a> adds support for OpenGL 4.1, fixes bugs</li>
+<li>[07-13-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.5/">GLEW 1.5.5</a> fixes minor bugs and adds new extensions</li>
+<li>[04-21-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.4/">GLEW 1.5.4</a> adds support for OpenGL 3.3, OpenGL 4.0 and new extensions, fixes bugs</li>
+<li>[02-28-10] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.3/">GLEW 1.5.3</a> fixes minor bugs and adds three new extensions</li>
+<li>[12-31-09] <a href="https://sourceforge.net/projects/glew/files/glew/1.5.2/">GLEW 1.5.2</a> adds support for OpenGL 3.1, OpenGL 3.2 and new extensions</li>
+<li>[11-03-08] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&amp;package_id=67942&amp;release_id=637800">GLEW 1.5.1</a> adds support for OpenGL 3.0 and 31 new extensions</li>
+<li>[12-27-07] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&amp;package_id=67942&amp;release_id=564464">GLEW 1.5.0</a> is released under less restrictive licenses</li>
+<li>[04-27-07] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&amp;package_id=67942&amp;release_id=504079">GLEW 1.4.0</a> is released</li>
+<li>[03-08-07] GLEW is included in the <a href="http://developer.nvidia.com/object/sdk_home.html">NVIDIA OpenGL SDK</a></li>
+<li>[03-04-07] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&amp;package_id=67942&amp;release_id=491113">GLEW 1.3.6</a> is released</li>
+<li>[02-28-07] <a href="http://glew.svn.sourceforge.net/svnroot/glew/trunk/glew/">Repository</a> is migrated to SVN</li>
+<li>[02-25-07] GLEW is included in the <a href="http://www.opengl.org/sdk/">OpenGL SDK</a></li>
+<li>[11-21-06] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&amp;package_id=67942&amp;release_id=465334">GLEW 1.3.5</a> adds OpenGL 2.1 and NVIDIA G80 extensions</li>
+<li>[03-04-06] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&amp;package_id=67942&amp;release_id=398455">GLEW 1.3.4</a> adds support for five new extensions</li>
+<li>[05-16-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&amp;package_id=67942&amp;release_id=327647">GLEW 1.3.3</a> is released</li>
+<li>[03-16-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&amp;package_id=67942&amp;release_id=313345">GLEW 1.3.2</a> adds support for GL_APPLE_pixel_buffer</li>
+<li>[02-11-05] <a href="http://gljava.sourceforge.net/">gljava</a> and <a href="http://sdljava.sourceforge.net/">sdljava</a> provide a Java binding to OpenGL via GLEW</li>
+<li>[02-02-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&amp;package_id=67942&amp;release_id=302049">GLEW 1.3.1</a> adds support for <a href="http://www.opengl.org/documentation/extensions/EXT_framebuffer_object.txt">GL_EXT_framebuffer_object</a></li>
+<li>[01-04-05] <a href="https://sourceforge.net/project/showfiles.php?group_id=67586&amp;package_id=67942&amp;release_id=294527">GLEW 1.3.0</a> adds core OpenGL 2.0 support plus many enhancements</li>
+<li>[12-22-04] <a href="http://glewpy.sf.net/">GLEWpy</a> Python wrapper announced</li>
+<li>[12-12-04] <a href="https://sourceforge.net/mail/?group_id=67586">Mailing lists</a> created on sourceforge</li>
+<li>[12-06-04] <a href="http://sourceforge.net/project/showfiles.php?group_id=67586&amp;package_id=67942&amp;release_id=287948">GLEW 1.2.5</a> adds new extensions and support for FreeBSD</li>
+</ul>
+
+<h2>Links</h2>
+<ul>
+<li><a href="http://www.opengl.org/sdk/">OpenGL Software Development Kit</a></li>
+<li><a href="http://www.opengl.org/registry/">OpenGL Extension Registry</a></li>
+<li><a href="https://www.opengl.org/wiki/OpenGL_Extension">OpenGL Wiki: Extensions</a></li>
+<li><a href="http://developer.nvidia.com/nvidia-opengl-specs">NVIDIA OpenGL Extension Specifications</a></li>
+<li><a href="http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/OpenGLExtensionsGuide/Reference/reference.html">Apple OpenGL Extensions Guide</a></li>
+</ul>
+
diff --git a/engine-ocean/External/glew/auto/doc/install.html b/engine-ocean/External/glew/auto/doc/install.html
new file mode 100644
index 0000000..448aafd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/doc/install.html
@@ -0,0 +1,126 @@
+<h2>Installation</h2>
+
+<p>
+To use the shared library version of GLEW, you need to copy the
+headers and libraries into their destination directories. On Windows
+this typically boils down to copying:
+</p>
+
+<table border="0" cellpadding="0" cellspacing="0" align="center"> <!-- bgcolor="#f0f0f0" -->
+<tr><td align="left"><tt>bin/glew32.dll</tt></td><td>&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;&nbsp;&nbsp;&nbsp;</td>
+<td align="left"><tt>%SystemRoot%/system32</tt></td></tr>
+<tr><td align="left"><tt>lib/glew32.lib</tt></td><td>&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;&nbsp;&nbsp;&nbsp;</td>
+<td align="left"><tt>{VC Root}/Lib</tt></td></tr>
+<tr><td align="left"><tt>include/GL/glew.h</tt></td><td>&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;&nbsp;&nbsp;&nbsp;</td>
+<td align="left"><tt>{VC Root}/Include/GL</tt></td></tr>
+<tr><td align="left"><tt>include/GL/wglew.h</tt></td><td>&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;&nbsp;&nbsp;&nbsp;</td>
+<td align="left"><tt>{VC Root}/Include/GL</tt></td></tr>
+</table>
+<p>
+</p>
+
+<p>
+where <tt>{VC Root}</tt> is the Visual C++ root directory, typically
+<tt>C:/Program Files/Microsoft Visual Studio/VC98</tt> for Visual
+Studio 6.0 or <tt>C:/Program Files/Microsoft Visual
+Studio .NET 2003/Vc7/PlatformSDK</tt> for Visual Studio .NET.
+</p>
+
+<p>
+On Unix, typing <tt>make install</tt> will attempt to install GLEW
+into <tt>/usr/include/GL</tt> and <tt>/usr/lib</tt>. You can
+customize the installation target via the <tt>GLEW_DEST</tt>
+environment variable if you do not have write access to these
+directories.
+</p>
+
+<h2>Building Your Project with GLEW</h2>
+<p>
+There are two ways to build your project with GLEW.
+</p>
+<h3>Including the source files / project file</h3>
+<p>
+The simpler but less flexible way is to include <tt>glew.h</tt> and
+<tt>glew.c</tt> into your project. On Windows, you also need to
+define the <tt>GLEW_STATIC</tt> preprocessor token when building a
+static library or executable, and the <tt>GLEW_BUILD</tt> preprocessor
+token when building a dll. You also need to replace
+<tt>&lt;GL/gl.h&gt;</tt> and <tt>&lt;GL/glu.h&gt;</tt> with
+<tt>&lt;glew.h&gt;</tt> in your code and set the appropriate include
+flag (<tt>-I</tt>) to tell the compiler where to look for it. For
+example:
+</p>
+<p class="pre">
+#include &lt;glew.h&gt;<br>
+#include &lt;GL/glut.h&gt;<br>
+&lt;gl, glu, and glut functionality is available here&gt;<br>
+</p>
+<p>
+Depending on where you put <tt>glew.h</tt> you may also need to change
+the include directives in <tt>glew.c</tt>. Note that if you are using
+GLEW together with GLUT, you have to include <tt>glew.h</tt> first.
+In addition, <tt>glew.h</tt> includes <tt>glu.h</tt>, so you do not
+need to include it separately.
+</p>
+<p>
+On Windows, you also have the option of adding the supplied project
+file <tt>glew_static.dsp</tt> to your workspace (solution) and compile
+it together with your other projects. In this case you also need to
+change the <tt>GLEW_BUILD</tt> preprocessor constant to
+<tt>GLEW_STATIC</tt> when building a static library or executable,
+otherwise you get build errors.
+</p>
+<p>
+<b>Note that GLEW does not use the C
+runtime library, so it does not matter which version (single-threaded,
+multi-threaded or multi-threaded DLL) it is linked with (without
+debugging information). It is, however, always a good idea to compile all
+your projects including GLEW with the same C runtime settings.</b>
+</p>
+
+<h3>Using GLEW as a shared library</h3>
+
+<p>
+Alternatively, you can use the provided project files / makefile to
+build a separate shared library you can link your projects with later.
+In this case the best practice is to install <tt>glew.h</tt>,
+<tt>glew32.lib</tt>, and <tt>glew32.dll</tt> / <tt>libGLEW.so</tt> to
+where the OpenGL equivalents <tt>gl.h</tt>, <tt>opengl32.lib</tt>, and
+<tt>opengl32.dll</tt> / <tt>libGL.so</tt> are located. Note that you
+need administrative privileges to do this. If you do not have
+administrator access and your system administrator will not do it for
+you, you can install GLEW into your own lib and include subdirectories
+and tell the compiler where to find it. Then you can just replace
+<tt>&lt;GL/gl.h&gt;</tt> with <tt>&lt;GL/glew.h&gt;</tt> in your
+program:
+</p>
+
+<p class="pre">
+#include &lt;GL/glew.h&gt;<br>
+#include &lt;GL/glut.h&gt;<br>
+&lt;gl, glu, and glut functionality is available here&gt;<br>
+</p>
+
+<p>
+or:
+</p>
+
+<p class="pre">
+#include &lt;GL/glew.h&gt;<br>
+&lt;gl and glu functionality is available here&gt;<br>
+</p>
+
+<p>
+Remember to link your project with <tt>glew32.lib</tt>,
+<tt>glu32.lib</tt>, and <tt>opengl32.lib</tt> on Windows and
+<tt>libGLEW.so</tt>, <tt>libGLU.so</tt>, and <tt>libGL.so</tt> on
+Unix (<tt>-lGLEW -lGLU -lGL</tt>).
+</p>
+
+<p>
+It is important to keep in mind that <tt>glew.h</tt> includes neither
+<tt>windows.h</tt> nor <tt>gl.h</tt>. Also, GLEW will warn you by
+issuing a preprocessor error in case you have included <tt>gl.h</tt>,
+<tt>glext.h</tt>, or <tt>glATI.h</tt> before <tt>glew.h</tt>.
+</p>
+
diff --git a/engine-ocean/External/glew/auto/doc/log.html b/engine-ocean/External/glew/auto/doc/log.html
new file mode 100644
index 0000000..531b3b2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/doc/log.html
@@ -0,0 +1,1319 @@
+<h2>Change Log</h2>
+
+<hr align="center">
+<ul class="none">
+<li><b>2.2.0</b> [03-15-20]
+
+<ul>
+<li> Bug fixes:
+<ul>
+<li> GL_EXT_semaphore constants
+<li> Some const pointer fixups in OpenGL API
+<li> Correction for GLEW_VERSION_4_5
+<li> Windows build updates and fixes
+</ul>
+</ul>
+
+<ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_framebuffer_multisample_advanced
+<li> GL_AMD_gpu_shader_half_float_fetch
+<li> GL_AMD_shader_image_load_store_lod
+<li> GL_ARM_texture_unnormalized_coordinates
+<li> GL_DMP_program_binary
+<li> GL_DMP_shader_binary
+<li> GL_EXT_EGL_image_external_wrap_modes
+<li> GL_EXT_EGL_image_storage
+<li> GL_EXT_EGL_sync
+<li> GL_EXT_clip_control
+<li> GL_EXT_depth_clamp
+<li> GL_EXT_disjoint_timer_query
+<li> GL_EXT_draw_transform_feedback
+<li> GL_EXT_multiview_tessellation_geometry_shader
+<li> GL_EXT_multiview_texture_multisample
+<li> GL_EXT_multiview_timer_query
+<li> GL_EXT_occlusion_query_boolean
+<li> GL_EXT_primitive_bounding_box
+<li> GL_EXT_protected_textures
+<li> GL_EXT_robustness
+<li> GL_EXT_shader_framebuffer_fetch_non_coherent
+<li> GL_EXT_static_vertex_array
+<li> GL_EXT_tessellation_point_size
+<li> GL_EXT_tessellation_shader
+<li> GL_EXT_texture_border_clamp
+<li> GL_EXT_texture_buffer
+<li> GL_EXT_texture_compression_s3tc_srgb
+<li> GL_EXT_texture_format_sRGB_override
+<li> GL_EXT_texture_mirror_clamp_to_edge
+<li> GL_EXT_texture_query_lod
+<li> GL_EXT_texture_shadow_lod
+<li> GL_FJ_shader_binary_GCCSO
+<li> GL_IMG_bindless_texture
+<li> GL_IMG_framebuffer_downsample
+<li> GL_IMG_multisampled_render_to_texture
+<li> GL_IMG_program_binary
+<li> GL_IMG_read_format
+<li> GL_IMG_shader_binary
+<li> GL_IMG_texture_compression_pvrtc
+<li> GL_IMG_texture_compression_pvrtc2
+<li> GL_IMG_texture_env_enhanced_fixed_function
+<li> GL_IMG_texture_filter_cubic
+<li> GL_INTEL_blackhole_render
+<li> GL_INTEL_shader_integer_functions2
+<li> GL_KHR_shader_subgroup
+<li> GL_MESA_framebuffer_flip_y
+<li> GL_MESA_program_binary_formats
+<li> GL_MESA_tile_raster_order
+<li> GL_NVX_gpu_multicast2
+<li> GL_NVX_progress_fence
+<li> GL_NV_compute_shader_derivatives
+<li> GL_NV_conservative_raster_pre_snap
+<li> GL_NV_conservative_raster_underestimation
+<li> GL_NV_depth_nonlinear
+<li> GL_NV_fragment_shader_barycentric
+<li> GL_NV_memory_attachment
+<li> GL_NV_mesh_shader
+<li> GL_NV_query_resource_tag
+<li> GL_NV_read_buffer
+<li> GL_NV_read_buffer_front
+<li> GL_NV_representative_fragment_test
+<li> GL_NV_scissor_exclusive
+<li> GL_NV_shader_subgroup_partitioned
+<li> GL_NV_shader_texture_footprint
+<li> GL_NV_shading_rate_image
+<li> GL_NV_vdpau_interop2
+<li> GL_OES_EGL_image
+<li> GL_OES_EGL_image_external
+<li> GL_OES_EGL_image_external_essl3
+<li> GL_OES_blend_equation_separate
+<li> GL_OES_blend_func_separate
+<li> GL_OES_blend_subtract
+<li> GL_OES_compressed_ETC1_RGB8_texture
+<li> GL_OES_compressed_paletted_texture
+<li> GL_OES_copy_image
+<li> GL_OES_depth24
+<li> GL_OES_depth32
+<li> GL_OES_depth_texture
+<li> GL_OES_depth_texture_cube_map
+<li> GL_OES_draw_buffers_indexed
+<li> GL_OES_draw_texture
+<li> GL_OES_element_index_uint
+<li> GL_OES_extended_matrix_palette
+<li> GL_OES_fbo_render_mipmap
+<li> GL_OES_fragment_precision_high
+<li> GL_OES_framebuffer_object
+<li> GL_OES_geometry_point_size
+<li> GL_OES_geometry_shader
+<li> GL_OES_get_program_binary
+<li> GL_OES_gpu_shader5
+<li> GL_OES_mapbuffer
+<li> GL_OES_matrix_get
+<li> GL_OES_matrix_palette
+<li> GL_OES_packed_depth_stencil
+<li> GL_OES_point_size_array
+<li> GL_OES_point_sprite
+<li> GL_OES_read_format
+<li> GL_OES_required_internalformat
+<li> GL_OES_rgb8_rgba8
+<li> GL_OES_sample_shading
+<li> GL_OES_sample_variables
+<li> GL_OES_shader_image_atomic
+<li> GL_OES_shader_io_blocks
+<li> GL_OES_shader_multisample_interpolation
+<li> GL_OES_single_precision
+<li> GL_OES_standard_derivatives
+<li> GL_OES_stencil1
+<li> GL_OES_stencil4
+<li> GL_OES_stencil8
+<li> GL_OES_surfaceless_context
+<li> GL_OES_tessellation_point_size
+<li> GL_OES_tessellation_shader
+<li> GL_OES_texture_3D
+<li> GL_OES_texture_border_clamp
+<li> GL_OES_texture_buffer
+<li> GL_OES_texture_compression_astc
+<li> GL_OES_texture_cube_map
+<li> GL_OES_texture_cube_map_array
+<li> GL_OES_texture_env_crossbar
+<li> GL_OES_texture_mirrored_repeat
+<li> GL_OES_texture_npot
+<li> GL_OES_texture_stencil8
+<li> GL_OES_texture_storage_multisample_2d_array
+<li> GL_OES_texture_view
+<li> GL_OES_vertex_array_object
+<li> GL_OES_vertex_half_float
+<li> GL_OES_vertex_type_10_10_10_2
+<li> GL_QCOM_YUV_texture_gather
+<li> GL_QCOM_shader_framebuffer_fetch_rate
+<li> GL_QCOM_texture_foveated
+<li> GL_QCOM_texture_foveated_subsampled_layout
+<li> GL_VIV_shader_binary
+<li> EGL_ANDROID_GLES_layers
+<li> EGL_ANDROID_get_frame_timestamps
+<li> EGL_ANDROID_get_native_client_buffer
+<li> EGL_ARM_image_format
+<li> EGL_EXT_bind_to_front
+<li> EGL_EXT_client_sync
+<li> EGL_EXT_compositor
+<li> EGL_EXT_gl_colorspace_display_p3
+<li> EGL_EXT_gl_colorspace_display_p3_linear
+<li> EGL_EXT_gl_colorspace_display_p3_passthrough
+<li> EGL_EXT_gl_colorspace_scrgb
+<li> EGL_EXT_image_gl_colorspace
+<li> EGL_EXT_image_implicit_sync_control
+<li> EGL_EXT_surface_CTA861_3_metadata
+<li> EGL_EXT_sync_reuse
+<li> EGL_KHR_display_reference
+<li> EGL_MESA_query_driver
+<li> EGL_NV_context_priority_realtime
+<li> EGL_NV_quadruple_buffer
+<li> EGL_NV_stream_dma
+<li> EGL_NV_stream_flush
+<li> EGL_NV_stream_origin
+<li> EGL_NV_triple_buffer
+<li> EGL_WL_bind_wayland_display
+<li> EGL_WL_create_wayland_buffer_from_image
+<li> GLX_EXT_context_priority
+<li> GLX_EXT_no_config_context
+<li> GLX_NV_multigpu_context
+<li> WGL_NV_multigpu_context
+</ul>
+</ul>
+
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>2.1.0</b> [07-31-17]
+<ul>
+<li> Enhancements:
+<ul>
+<li> OpenGL 4.6 support added
+<li> Improved Mac OSX build support
+<li> Improved cmake build support
+</ul>
+</ul>
+
+<ul>
+<li> Bug fixes:
+<ul>
+<li> Resolved crash when glXGetCurrentDisplay() is NULL
+<li> CMake: only install PDB files with MSVC
+<li> wglGetProcAddress crash with NOGDI defined
+<li> Mac: using -Os rather than -O2
+</ul>
+</ul>
+
+<ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_gpu_shader_half_float
+<li> GL_AMD_shader_ballot
+<li> GL_ARB_gl_spirv
+<li> GL_EGL_KHR_context_flush_control
+<li> GL_INTEL_conservative_rasterization
+<li> GL_MESA_shader_integer_functions
+<li> GL_NVX_blend_equation_advanced_multi_draw_buffers
+<li> GL_NV_gpu_multicast
+<li> EGL_ARM_implicit_external_sync
+<li> EGL_EXT_gl_colorspace_bt2020_linear
+<li> EGL_EXT_gl_colorspace_bt2020_pq
+<li> EGL_EXT_gl_colorspace_scrgb_linear
+<li> EGL_EXT_image_dma_buf_import_modifiers
+<li> EGL_EXT_pixel_format_float
+<li> EGL_EXT_surface_SMPTE2086_metadata
+<li> EGL_KHR_context_flush_control
+<li> EGL_KHR_no_config_context
+<li> EGL_KHR_stream_attrib
+<li> EGL_MESA_platform_surfaceless
+<li> EGL_NV_stream_cross_display
+<li> EGL_NV_stream_cross_object
+<li> EGL_NV_stream_cross_partition
+<li> EGL_NV_stream_cross_process
+<li> EGL_NV_stream_cross_system
+<li> EGL_NV_stream_fifo_next
+<li> EGL_NV_stream_fifo_synchronous
+<li> EGL_NV_stream_frame_limits
+<li> EGL_NV_stream_remote
+<li> EGL_NV_stream_reset
+<li> EGL_NV_stream_socket
+<li> EGL_NV_stream_socket_inet
+<li> EGL_NV_stream_socket_unix
+<li> WGL_EXT_colorspace
+</ul>
+</ul>
+
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>2.0.0</b> [07-24-16]
+<ul>
+<li> Enhancements:
+<ul>
+<li> Forward context support added
+<li> OSMesa support added
+<li> EGL support added
+<li> MX support discontinued
+<li> Improved cmake build support
+</ul>
+</ul>
+<ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_shader_explicit_vertex_parameter
+<li> GL_ARB_gl_spirv
+<li> GL_EGL_NV_robustness_video_memory_purge
+<li> GL_EXT_window_rectangles
+<li> GL_INTEL_conservative_rasterization
+<li> GL_KHR_texture_compression_astc_sliced_3d
+<li> GL_MESA_shader_integer_functions
+<li> GL_NVX_blend_equation_advanced_multi_draw_buffers
+<li> GL_NVX_linked_gpu_multicast
+<li> GL_NV_clip_space_w_scaling
+<li> GL_NV_command_list
+<li> GL_NV_conservative_raster_pre_snap_triangles
+<li> GL_NV_draw_vulkan_image
+<li> GL_NV_gpu_multicast
+<li> GL_NV_robustness_video_memory_purge
+<li> GL_NV_shader_atomic_float64
+<li> GL_NV_stereo_view_rendering
+<li> GL_NV_viewport_swizzle
+<li> GLX_EXT_libglvnd
+<li> GLX_NV_robustness_video_memory_purge
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.13.0</b> [08-10-15]
+<ul>
+<li> Enhancements:
+<ul>
+<li> glxewInit, wglewInit
+<li> glewinfo adds support for -version, -profile core|compatibility and -flag debug|forward parameters
+<li> Improved cmake build support
+</ul>
+</ul>
+<ul>
+<li> New extensions:
+<ul>
+<li> GL_ARB_ES3_2_compatibility
+<li> GL_ARB_fragment_shader_interlock
+<li> GL_ARB_gpu_shader_int64
+<li> GL_ARB_parallel_shader_compile
+<li> GL_ARB_post_depth_coverage
+<li> GL_ARB_sample_locations
+<li> GL_ARB_shader_atomic_counter_ops
+<li> GL_ARB_shader_ballot
+<li> GL_ARB_shader_clock
+<li> GL_ARB_shader_viewport_layer_array
+<li> GL_ARB_sparse_texture2
+<li> GL_ARB_sparse_texture_clamp
+<li> GL_ARB_texture_filter_minmax
+<li> GL_INTEL_framebuffer_CMAA
+<li> GL_KHR_no_error
+<li> GL_NV_conservative_raster_dilate
+<li> GL_OVR_multiview
+<li> GL_OVR_multiview2
+</ul>
+<li> <a href="http://sourceforge.net/p/glew/bugs/milestone/1.13.0/">Bug fixes</a>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.12.0</b> [01-26-15]
+<ul>
+<li> New extensions:
+<ul>
+<li> GL_EXT_polygon_offset_clamp
+<li> GL_EXT_post_depth_coverage
+<li> GL_EXT_raster_multisample
+<li> GL_EXT_sparse_texture2
+<li> GL_EXT_texture_filter_minmax
+<li> GL_NV_conservative_raster
+<li> GL_NV_fill_rectangle
+<li> GL_NV_fragment_coverage_to_color
+<li> GL_NV_fragment_shader_interlock
+<li> GL_NV_framebuffer_mixed_samples
+<li> GL_NV_geometry_shader_passthrough
+<li> GL_NV_internalformat_sample_query
+<li> GL_NV_sample_locations
+<li> GL_NV_sample_mask_override_coverage
+<li> GL_NV_shader_atomic_fp16_vector
+<li> GL_NV_uniform_buffer_unified_memory
+<li> GL_NV_viewport_array2
+</ul>
+<li> <a href="http://sourceforge.net/p/glew/bugs/milestone/1.12.0/">Bug fixes</a>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.11.0</b> [08-11-14]
+<ul>
+<li> New features:
+<ul>
+<li> Support for OpenGL 4.5
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_gcn_shader
+<li> GL_AMD_gpu_shader_int64
+<li> GL_AMD_occlusion_query_event
+<li> GL_AMD_shader_atomic_counter_ops
+<li> GL_AMD_shader_stencil_value_export
+<li> GL_AMD_transform_feedback4
+<li> GL_ARB_ES3_1_compatibility
+<li> GL_ARB_clip_control
+<li> GL_ARB_conditional_render_inverted
+<li> GL_ARB_cull_distance
+<li> GL_ARB_derivative_control
+<li> GL_ARB_direct_state_access
+<li> GL_ARB_get_texture_sub_image
+<li> GL_ARB_pipeline_statistics_query
+<li> GL_ARB_shader_texture_image_samples
+<li> GL_ARB_sparse_buffer
+<li> GL_ARB_texture_barrier
+<li> GL_ARB_transform_feedback_overflow_query
+<li> GL_EXT_debug_label
+<li> GL_EXT_shader_image_load_formatted
+<li> GL_EXT_shader_integer_mix
+<li> GL_INTEL_fragment_shader_ordering
+<li> GL_INTEL_performance_query
+<li> GL_KHR_blend_equation_advanced
+<li> GL_KHR_blend_equation_advanced_coherent
+<li> GL_KHR_context_flush_control
+<li> GL_KHR_robust_buffer_access_behavior
+<li> GL_KHR_robustness
+<li> GL_KHR_texture_compression_astc_hdr
+<li> GL_NV_bindless_multi_draw_indirect_count
+<li> GL_NV_shader_atomic_int64
+<li> GL_NV_shader_thread_group
+<li> GL_NV_shader_thread_shuffle
+<li> GL_REGAL_proc_address
+<li> GLX_ARB_context_flush_control
+<li> GLX_EXT_stereo_tree
+<li> GLX_MESA_query_renderer
+<li> GLX_NV_copy_buffer
+<li> GLX_NV_delay_before_swap
+<li> WGL_ARB_context_flush_control
+<li> WGL_NV_delay_before_swap
+</ul>
+<li> <a href="http://sourceforge.net/p/glew/bugs/milestone/1.11.0/">Bug fixes</a>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.10.0</b> [07-22-13]
+<ul>
+<li> New features:
+<ul>
+<li> Support for OpenGL 4.4
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_interleaved_elements
+<li> GL_AMD_shader_trinary_minmax
+<li> GL_AMD_sparse_texture
+<li> GL_ANGLE_depth_texture
+<li> GL_ANGLE_framebuffer_blit
+<li> GL_ANGLE_framebuffer_multisample
+<li> GL_ANGLE_instanced_arrays
+<li> GL_ANGLE_pack_reverse_row_order
+<li> GL_ANGLE_program_binary
+<li> GL_ANGLE_texture_compression_dxt1
+<li> GL_ANGLE_texture_compression_dxt3
+<li> GL_ANGLE_texture_compression_dxt5
+<li> GL_ANGLE_texture_usage
+<li> GL_ANGLE_timer_query
+<li> GL_ANGLE_translated_shader_source
+<li> GL_ARB_bindless_texture
+<li> GL_ARB_buffer_storage
+<li> GL_ARB_clear_texture
+<li> GL_ARB_compute_variable_group_size
+<li> GL_ARB_enhanced_layouts
+<li> GL_ARB_indirect_parameters
+<li> GL_ARB_multi_bind
+<li> GL_ARB_query_buffer_object
+<li> GL_ARB_seamless_cubemap_per_texture
+<li> GL_ARB_shader_draw_parameters
+<li> GL_ARB_shader_group_vote
+<li> GL_ARB_sparse_texture
+<li> GL_ARB_texture_mirror_clamp_to_edge
+<li> GL_ARB_texture_stencil8
+<li> GL_ARB_vertex_type_10f_11f_11f_rev
+<li> GL_INTEL_map_texture
+<li> GL_NVX_conditional_render
+<li> GL_NV_bindless_multi_draw_indirect
+<li> GL_NV_blend_equation_advanced
+<li> GL_NV_compute_program5
+<li> GL_NV_deep_texture3D
+<li> GL_NV_draw_texture
+<li> GL_NV_shader_atomic_counters
+<li> GL_NV_shader_storage_buffer_object
+<li> GL_REGAL_ES1_0_compatibility
+<li> GL_REGAL_ES1_1_compatibility
+<li> GL_REGAL_enable
+<li> GLX_EXT_buffer_age
+<li> WGL_ARB_robustness_application_isolation
+<li> WGL_ARB_robustness_share_group_isolation
+</ul>
+<li> <a href="http://sourceforge.net/p/glew/bugs/milestone/1.10.0/">Bug fixes</a>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.9.0</b> [08-06-12]
+<ul>
+<li> New features:
+<ul>
+<li> Support for OpenGL 4.3 -
+ <a href="http://www.opengl.org/registry/doc/glspec43.compatibility.20120806.pdf">specification</a>,
+ <a href="http://www.khronos.org/assets/uploads/developers/library/overview/opengl_overview.pdf">overview</a>.
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_ARB_ES3_compatibility
+<li> GL_ARB_clear_buffer_object
+<li> GL_ARB_compute_shader
+<li> GL_ARB_copy_image
+<li> GL_ARB_explicit_uniform_location
+<li> GL_ARB_fragment_layer_viewport
+<li> GL_ARB_framebuffer_no_attachments
+<li> GL_ARB_internalformat_query2
+<li> GL_ARB_multi_draw_indirect
+<li> GL_ARB_program_interface_query
+<li> GL_ARB_robust_buffer_access_behavior
+<li> GL_ARB_robustness_application_isolation
+<li> GL_ARB_robustness_share_group_isolation
+<li> GL_ARB_shader_image_size
+<li> GL_ARB_shader_storage_buffer_object
+<li> GL_ARB_stencil_texturing
+<li> GL_ARB_texture_buffer_range
+<li> GL_ARB_texture_query_levels
+<li> GL_ARB_texture_storage_multisample
+<li> GL_ARB_texture_view
+<li> GL_ARB_vertex_attrib_binding
+<li> GL_EXT_debug_marker
+<li> GL_KHR_debug
+<li> GL_REGAL_error_string
+<li> GL_REGAL_extension_query
+<li> GL_REGAL_log
+<li> GLX_ARB_robustness_application_isolation
+<li> GLX_ARB_robustness_share_group_isolation
+<li> GLX_EXT_create_context_es_profile
+<li> WGL_EXT_create_context_es_profile
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Not using GLU library for Makefile builds.
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.8.0</b> [07-17-12]
+<ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_pinned_memory
+<li> GL_AMD_query_buffer_object
+<li> GL_AMD_stencil_operation_extended
+<li> GL_AMD_vertex_shader_layer
+<li> GL_AMD_vertex_shader_viewport_index
+<li> GL_NV_bindless_texture
+<li> GL_NV_shader_atomic_float
+<li> GLX_EXT_swap_control_tear
+<li> WGL_EXT_swap_control_tear
+<li> WGL_NV_DX_interop2
+</ul>
+<li> Bug fixes:
+<ul>
+<li> MS Visual Studio 2010 projects added
+<li> GLX_NV_video_out replaces GLX_NV_video_output
+<li> ANSI C prototype for glewInit
+<li> Improved CentOS build support
+<li> Improved GL_ARB_gpu_shader_fp64 support
+<li> ARB_texture_compression_bptc and ARB_copy_buffer constants
+<li> Linux needs to define GLEW_STATIC for static library builds
+<li> Custom code generation problem resolved
+<li> GLEWAPIENTRY added to glew.h for calling convention customization
+<li> Correction for glPathStencilDepthOffsetNV
+<li> Resolve OSX gcc warnings
+<li> Added build support for NetBSD
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.7.0</b> [08-26-11]
+<ul>
+<li> New features:
+<ul>
+<li> Support for OpenGL 4.2
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_multi_draw_indirect
+<li> GL_ARB_base_instance
+<li> GL_ARB_compressed_texture_pixel_storage
+<li> GL_ARB_conservative_depth
+<li> GL_ARB_internalformat_query
+<li> GL_ARB_map_buffer_alignment
+<li> GL_ARB_shader_atomic_counters
+<li> GL_ARB_shader_image_load_store
+<li> GL_ARB_shading_language_420pack
+<li> GL_ARB_shading_language_packing
+<li> GL_ARB_texture_storage
+<li> GL_ARB_transform_feedback_instanced
+<li> GL_EXT_framebuffer_multisample_blit_scaled
+<li> GL_NV_path_rendering
+<li> GL_NV_path_rendering
+<li> GLX_MESA_swap_control
+</ul>
+<li> Bug fixes:
+<ul>
+<li> const qualifiers for GL 1.4 MultiDrawArrays, MultiDrawElements
+<li> Add glGetGraphicsResetStatusARB to GL_ARB_robustness
+<li> Remove EXT suffix from GL_KTX_buffer_region entry points
+<li> Solaris needs inttypes.h
+<li> Add ERROR_INVALID_VERSION_ARB and ERROR_INVALID_PROFILE_ARB to WGL_ARB_create_context
+<li> Add GLX_MESA_swap_control
+<li> Set -install_name for OSX
+<li> Add 64-bit darwin build option (SYSTEM=darwin_x86-64)
+<li> Add GL_NV_path_rendering
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.6.0</b> [04-27-11]
+<ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_blend_minmax_factor
+<li> GL_AMD_sample_positions
+<li> GL_EXT_x11_sync_object
+<li> GL_NV_texture_multisample
+<li> GL_NV_video_capture
+<li> GLX_NV_video_capture
+<li> WGL_NV_DX_interop
+<li> WGL_NV_video_capture
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Define GLEW_NO_GLU for no glu dependency.
+<li> mx suffix for GLEW MX libraries, build both libraries by default.
+<li> Cygwin build improvements
+<li> Soname of GLEWmx shared libraries
+<li> Query GL extension string only once
+<li> GLX_OML_sync_control no longer requires C99
+<li> glDraw*InstancedARB moved from GL_ARB_draw_instanced to GL_ARB_instanced_arrays
+<li> glFramebufferTextureLayerEXT moved from GL_EXT_geometry_shader4 to GL_EXT_texture_array
+<li> Fixes for BSD build
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.5.8</b> [01-31-11]
+<ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_depth_clamp_separate
+<li> GL_EXT_texture_sRGB_decode
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Borland C++ fix for __int64
+<li> GL_DOUBLE_MATNxM enumerants for OpenGL 4.0
+<li> Correction to glGetTransformFeedbackVarying
+<li> Correction to glSecondaryColorPointer
+<li> Corrections to glGetVertexAttribPointerv and glGetShaderSource
+<li> Switched code repository from svn to git
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.5.7</b> [11-03-10]
+<ul>
+<li> New extension:
+<ul>
+<li> GL_NVX_gpu_memory_info
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Improved mingw32 build support
+<li> Improved cygwin build support
+<li> glGetPointervEXT fix
+<li> Add GLEW_VERSION_1_2_1
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.5.6</b> [09-07-10]
+<ul>
+<li> New features:
+<ul>
+<li> Support for OpenGL 4.1
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_ARB_ES2_compatibility
+<li> GL_ARB_cl_event
+<li> GL_ARB_debug_output
+<li> GL_ARB_get_program_binary
+<li> GL_ARB_robustness
+<li> GL_ARB_separate_shader_objects
+<li> GL_ARB_shader_precision
+<li> GL_ARB_shader_stencil_export
+<li> GL_ARB_vertex_attrib_64bit
+<li> GL_ARB_viewport_array
+<li> GLX_ARB_create_context_robustness
+<li> GLX_EXT_create_context_es2_profile
+<li> WGL_ARB_create_context_robustness
+<li> WGL_EXT_create_context_es2_profile
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.5.5</b> [07-13-10]
+<ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_debug_output
+<li> GL_AMD_name_gen_delete
+<li> GL_AMD_transform_feedback3_lines_triangles
+<li> GL_NV_multisample_coverage
+<li> GL_NV_vdpau_interop
+<li> GLX_AMD_gpu_association
+<li> GLX_NV_multisample_coverage
+<li> WGL_NV_multisample_coverage
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Compilation issue with GLX_SGI_video_sync
+<li> OpenGL 4.0 double-precision uniform functions added
+<li> Constness of glPointParameterfvARB and glPointParameterfvEXT
+<li> Added glVertexAttribDivisor
+<li> Compilation issue with Nvidia GLX headers
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.5.4</b> [04-21-10]
+<ul>
+<li> New features:
+<ul>
+<li> Support for OpenGL 3.3
+<li> Support for OpenGL 4.0
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_conservative_depth
+<li> GL_ARB_blend_func_extended
+<li> GL_ARB_draw_indirect
+<li> GL_ARB_explicit_attrib_location
+<li> GL_ARB_gpu_shader5
+<li> GL_ARB_gpu_shader_fp64
+<li> GL_ARB_occlusion_query2
+<li> GL_ARB_sampler_objects
+<li> GL_ARB_shader_bit_encoding
+<li> GL_ARB_shader_subroutine
+<li> GL_ARB_shading_language_include
+<li> GL_ARB_tessellation_shader
+<li> GL_ARB_texture_buffer_object_rgb32
+<li> GL_ARB_texture_compression_bptc
+<li> GL_ARB_texture_rgb10_a2ui
+<li> GL_ARB_texture_swizzle
+<li> GL_ARB_timer_query
+<li> GL_ARB_transform_feedback2
+<li> GL_ARB_transform_feedback3
+<li> GL_ARB_vertex_type_2_10_10_10_rev
+<li> GL_EXT_shader_image_load_store
+<li> GL_EXT_vertex_attrib_64bit
+<li> GL_NV_gpu_program5
+<li> GL_NV_gpu_program_fp64
+<li> GL_NV_gpu_shader5
+<li> GL_NV_tessellation_program5
+<li> GL_NV_vertex_attrib_integer_64bit
+<li> GLX_ARB_vertex_buffer_object
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Parameter constness fix for glPointParameteriv and glPointParameterfv
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.5.3</b> [02-28-10]
+<ul>
+<li> New extensions:
+<ul>
+<li> GLX_INTEL_swap_event
+<li> GL_AMD_seamless_cubemap_per_texture
+<li> GL_AMD_shader_stencil_export
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Correct version detection for GL 3.1 and 3.2
+<li> Missing 3.1 enumerants
+<li> Add glew.pc
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.5.2</b> [12-31-09]
+<ul>
+<li> New features:
+<ul>
+<li> Support for OpenGL 3.1
+<li> Support for OpenGL 3.2
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_AMD_draw_buffers_blend
+<li> GL_AMD_performance_monitor
+<li> GL_AMD_texture_texture4
+<li> GL_AMD_vertex_shader_tessellator
+<li> GL_APPLE_aux_depth_stencil
+<li> GL_APPLE_object_purgeable
+<li> GL_APPLE_rgb_422
+<li> GL_APPLE_row_bytes
+<li> GL_APPLE_vertex_program_evaluators
+<li> GL_ARB_compatibility
+<li> GL_ARB_copy_buffer
+<li> GL_ARB_depth_clamp
+<li> GL_ARB_draw_buffers_blend
+<li> GL_ARB_draw_elements_base_vertex
+<li> GL_ARB_fragment_coord_conventions
+<li> GL_ARB_provoking_vertex
+<li> GL_ARB_sample_shading
+<li> GL_ARB_seamless_cube_map
+<li> GL_ARB_shader_texture_lod
+<li> GL_ARB_sync
+<li> GL_ARB_texture_cube_map_array
+<li> GL_ARB_texture_gather
+<li> GL_ARB_texture_multisample
+<li> GL_ARB_texture_query_lod
+<li> GL_ARB_uniform_buffer_object
+<li> GL_ARB_vertex_array_bgra
+<li> GL_ATI_meminfo
+<li> GL_EXT_provoking_vertex
+<li> GL_EXT_separate_shader_objects
+<li> GL_EXT_texture_snorm
+<li> GL_NV_copy_image
+<li> GL_NV_parameter_buffer_object2
+<li> GL_NV_shader_buffer_load
+<li> GL_NV_texture_barrier
+<li> GL_NV_transform_feedback2
+<li> GL_NV_vertex_buffer_unified_memory
+<li> WGL_AMD_gpu_association
+<li> WGL_ARB_create_context_profile
+<li> WGL_NV_copy_image
+<li> GLX_ARB_create_context_profile
+<li> GLX_EXT_swap_control
+<li> GLX_NV_copy_image
+</ul>
+<li> Bug fixes:
+<ul>
+<li> DOS line endings for windows .zip archives only.
+<li> glTransformFeedbackVaryings arguments.
+<li> Resource leak in glewinfo and visualinfo tools.
+<li> WIN32_LEAN_AND_MEAN preprocessor pollution.
+<li> Fixed version detection for GLEW_VERSION_2_1 and GLEW_VERSION_3_0.
+<li> MesaGLUT glut.h GLAPIENTRY dependency.
+<li> glFramebufferTextureLayer correction.
+<li> OSX compiler warnings resolved.
+<li> Cygwin linking to opengl32 by default, rather than X11 OpenGL.
+<li> SnowLeopard (OSX 10.6) gl.h detection.
+<li> Use $(STRIP) consistently.
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.5.1</b> [11-03-08]
+<ul>
+<li> New features:
+<ul>
+<li> Support for OpenGL 3.0
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_ARB_depth_buffer_float
+<li> GL_ARB_draw_instance,
+<li> GL_ARB_framebuffer_object
+<li> GL_ARB_framebuffer_sRGB
+<li> GL_ARB_geometry_shader4
+<li> GL_ARB_half_float_pixel
+<li> GL_ARB_half_float_vertex
+<li> GL_ARB_instanced_arrays
+<li> GL_ARB_map_buffer_range
+<li> GL_ARB_texture_buffer_object
+<li> GL_ARB_texture_compression_rgtc
+<li> GL_ARB_vertex_array_object
+<li> GL_EXT_direct_state_access
+<li> GL_EXT_texture_swizzle
+<li> GL_EXT_transform_feedback
+<li> GL_EXT_vertex_array_bgra
+<li> GL_NV_conditional_render
+<li> GL_NV_explicit_multisample
+<li> GL_NV_present_video
+<li> GL_SGIS_point_line_texgen
+<li> GL_SGIX_convolution_accuracy
+<li> WGL_ARB_create_context
+<li> WGL_ARB_framebuffer_sRGB
+<li> WGL_NV_present_video
+<li> WGL_NV_swap_group
+<li> WGL_NV_video_output
+<li> GLX_ARB_create_context
+<li> GLX_ARB_framebuffer_sRGB
+<li> GLX_NV_present_video
+<li> GLX_NV_swap_group
+<li> GLX_NV_video_output
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Licensing issues with documentation
+<li> Problems with long long and _MSC_VER on MINGW
+<li> Incorrect parameter for glGetUniformLocation
+<li> glewGetExtension fails on last entry
+<li> Incomplete GL_NV_texture_shader tokens
+<li> Scripting problems on Cygwin
+<li> Incorrect definition for GLint on OS X
+</ul>
+</ul>
+</ul>
+
+<hr align="center">
+<ul class="none">
+<li><b>1.5.0</b> [12-27-07]
+<ul>
+<li> New features:
+<ul>
+<li> Licensing change (BSD, Mesa 3-D, Khronos)
+<li> Switch to using registry on <a href="http://www.opengl.org/registry/">www.opengl.org</a>
+<li> Support for major and minor version strings
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_APPLE_flush_buffer_range
+<li> GL_GREMEDY_frame_terminator
+<li> GLX_EXT_texture_from_pixmap
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Incorrect 64-bit type definitions
+<li> Do not strip static library on install
+<li> Missing tokens in GL_ATI_fragment_shader and WGL_{ARB,EXT}_make_current_read
+<li> Missing tokens in GL_VERSION_2_1
+<li> Missing functions in GL_VERSION_1_4
+<li> Incorrect parameter type for glXCopyContext
+</ul>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.4.0</b> [04-27-07]
+<ul>
+<li> New features:
+<ul>
+<li> Extension variables are declared const to avoid possible
+corruption of their values
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_NV_depth_range_unclamped
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Incorrect tokens in GL_NV_transform_feedback and GL_NV_framebuffer_multisample_coverage
+<li> Incorrect function names in GL_EXT_gpu_program_parameters
+<li> Missing tokens in GL_EXT_framebuffer_multisample
+<li> GLEW_MX initialization problem for WGL_{ARB,EXT}_extensions_string
+</ul>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.3.6</b> [03-04-07]
+<ul>
+<li> New extensions:
+<ul>
+<li> GL_ATI_shader_texture_lod
+<li> GL_EXT_gpu_program_parameters
+<li> GL_NV_geometry_shader4
+<li> WGL_NV_gpu_affinity
+<li> GLX_SGIX_hyperpipe
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Missing include guards in glxew.h
+<li> Makefile and install problems for Cygwin builds
+<li> Install problem for Linux AMD64 builds
+<li> Incorrect token in GL_ATI_texture_compression_3dc
+<li> Missing tokens from GL_ATIX_point_sprites
+</ul>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.3.5</b> [11-21-06]
+<ul>
+<li> New features:
+<ul>
+<li> Support for core OpenGL 2.1
+<li> Debug support for glewIsSupported
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_EXT_bindable_uniform
+<li> GL_EXT_draw_buffers2
+<li> GL_EXT_draw_instanced
+<li> GL_EXT_framebuffer_sRGB
+<li> GL_EXT_geometry_shader4
+<li> GL_EXT_gpu_shader4
+<li> GL_EXT_packed_float
+<li> GL_EXT_texture_array
+<li> GL_EXT_texture_buffer_object
+<li> GL_EXT_texture_compression_latc
+<li> GL_EXT_texture_compression_rgtc
+<li> GL_EXT_texture_integer
+<li> GL_EXT_texture_shared_exponent
+<li> GL_EXT_timer_query
+<li> GL_NV_depth_buffer_float
+<li> GL_NV_fragment_program4
+<li> GL_NV_framebuffer_multisample_coverage
+<li> GL_NV_geometry_program4
+<li> GL_NV_gpu_program4
+<li> GL_NV_parameter_buffer_object
+<li> GL_NV_transform_feedback
+<li> GL_NV_vertex_program4
+<li> GL_OES_byte_coordinates
+<li> GL_OES_compressed_paletted_texture
+<li> GL_OES_read_format
+<li> GL_OES_single_precision
+<li> WGL_EXT_pixel_format_packed_float
+<li> WGL_EXT_framebuffer_sRGB
+<li> GLX_EXT_fbconfig_packed_float
+<li> GLX_EXT_framebuffer_sRGB
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Wrong GLXContext definition on Solaris
+<li> Makefile problem for parallel builds
+</ul>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.3.4</b> [03-04-06]
+<ul>
+<li> New extensions:
+<ul>
+<li> GL_EXT_framebuffer_blit
+<li> GL_EXT_framebuffer_multisample
+<li> GL_EXT_packed_depth_stencil
+<li> GL_MESAX_texture_stack
+<li> WGL_3DL_stereo_control
+</ul>
+</ul>
+<ul>
+<li> Bug fixes:
+<ul>
+<li> glBlendEquation missing from GL_ARB_imaging
+<li> Wrong APIENTRY definition for Cygwin
+<li> Incorrect OS X OpenGL types
+<li> Unix 64-bit installation patch
+</ul>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.3.3</b> [05-16-05]
+<ul>
+<li> New feature:
+<ul>
+<li> Code generation option to split source into multiple files
+</ul>
+</ul>
+<ul>
+<li> Bug fixes:
+<ul>
+<li> OpenGL 2.0 core initialization problems
+<li> Wrong value for token GL_SHADER_TYPE
+<li> Missing tokens in GL_ATI_fragment_shader
+<li> Missing entry points in GL_ARB_transpose_matrix
+</ul>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.3.2</b> [03-16-05]
+<ul>
+<li> New extension:
+<ul>
+<li> GL_APPLE_pixel_buffer
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Missing OpenGL 2.0 entry points
+<li> Missing tokens in GL_SGIX_shadow
+<li> MinGW makefile problem
+<li> Check for incorrect OpenGL version string on SiS hardware
+<li> Documentation update to meet the HTML 4.01 Transitional specification
+</ul>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.3.1</b> [02-02-05]
+<ul>
+<li> New features:
+<ul>
+<li> Consistent Unix and Windows versioning
+</ul>
+<li> New extensions:
+<ul>
+<li> GL_EXT_framebuffer_object
+<li> GL_ARB_pixel_buffer_object
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Missing OpenGL 2.0 tokens
+<li> Incorrect typedefs (GLhandleARB and GLhalf)
+<li> Borland compiler problems
+</ul>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.3.0</b> [01-04-05]
+<ul>
+<li> New features:
+<ul>
+<li> Support for core OpenGL 2.0
+<li> <tt>glewIsSupported</tt> provides efficient string-based extension checks
+<li> Custom code generation from a list of extensions
+<li> Makefile changes
+</ul>
+<li> New extensions:
+<ul>
+<li> WGL_ATI_render_texture_rectangle
+</ul>
+<li> Bug fixes:
+<ul>
+<li> Incorrect function signature in OpenGL 1.5 core
+</ul>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.2.5</b> [12-06-04]
+<ul>
+<li> New extensions:
+<ul>
+<li>GL_ATI_texture_compression_3dc
+<li>GL_EXT_Cg_shader
+<li>GL_EXT_draw_range_elements
+<li>GL_KTX_buffer_region
+</ul>
+<li> Bug fixes:
+<ul>
+<li> OpenGL version detection bug
+<li> Problems with wxWindows and MinGW compilation
+<li> <tt>visualinfo</tt> compilation problem with GLEW_MX specified
+<li> Wrong token name in OpenGL 1.5 core
+</ul>
+<li> Support for FreeBSD
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.2.4</b> [09-06-04]
+<ul>
+<li> Added ARB_draw_buffers and ARB_texture_rectangle
+<li> Fixed bug in ARB_shader_objects
+<li> Replaced <tt>wglinfo</tt> with <tt>visualinfo</tt>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.2.3</b> [06-10-04]
+<ul>
+<li> Added GL_NV_fragment_program2, GL_NV_fragment_program_option, GL_NV_vertex_program2_option, GL_NV_vertex_program3
+<li> Bug fix in GL_ARB_vertex_blend
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.2.2</b> [05-08-04]
+<ul>
+<li> Added GL_EXT_pixel_buffer_object, removed GL_NV_element_array
+<li> Fixed GLEW_MX problems
+<li> Bug fix in GL_EXT_texture_rectangle and <tt>wglinfo</tt>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.2.1</b> [03-18-04]
+<ul>
+<li> Bug fix in OpenGL version query (early release of 1.2.0 contained this bug)
+<li> Bug fix in GL_ARB_shader_objects and temporary bug fix in GL_ARB_vertex_shader
+<li> Added flags on GDI support and multisampling to <tt>wglinfo</tt>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.2.0</b> [02-19-04]
+<ul>
+<li> Added full OpenGL 1.5 support
+<li> Added support for multiple rendering contexts with different capabilities
+<li> Added command line flags to <tt>glewinfo</tt> for selecting displays and visuals
+<li> Added GLX_SGIS_multisample, GLX_SUN_video_resize, and GL_SUN_read_video_pixels
+<li> Added MinGW/MSYS support
+<li> Bug fixes in GL_ARB_shader_objects and the OS X build
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.1.4</b> [12-15-03]
+<ul>
+<li> Added GL_APPLE_float_pixels, GL_APPLE_texture_range,
+GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp,
+GLX_ATI_pixel_format_float, and GLX_ATI_render_texture
+<li> Bug fixes in GL_ATI_map_object_buffer and GL_ATI_fragment_shader
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.1.3</b> [10-28-03]
+<ul>
+<li> Added Solaris and Darwin support
+<li> Added GL_ARB_fragment_shader, GL_ARB_shader_objects, and GL_ARB_vertex_shader
+<li> Fixed bug in GL_WIN_swap_hint
+<li> Removed <tt>glewinfo</tt>'s dependency on <tt>GLUT</tt>
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.1.2</b> [09-15-03]
+<ul>
+<li> Removed dependency on WGL_{ARB,EXT}_extensions_string to make GLEW run on Matrox cards
+<li> Added glewGetString for querying the GLEW version string
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.1.1</b> [08-11-03]
+<ul>
+<li> Added GLX_NV_float_buffer, GL_ARB_shading_language_100, and GL_ARB_texture_non_power_of_two
+<li> Fixed bug in GL_ARB_vertex_buffer_object
+<li> Minor updates in documentation
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.1.0</b> [07-08-03]
+<ul>
+<li> Added automatic code generation
+<li> Added almost every extension in the registry
+<li> Added separate namespace
+<li> Added Irix support
+<li> Updated documentation
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.0.7</b> [06-29-03]
+<ul>
+<li> Added GL_EXT_depth_bounds_test
+<li> Fixed typos
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.0.6</b> [05-05-03]
+<ul>
+<li> Added ARB_vertex_buffer_object and NV_half_float
+<li> Updated <tt>wglinfo</tt>
+<li> Temporary Linux bug fixes (problems with SDL and MESA)
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.0.5</b> [02-17-03]
+<ul>
+<li> Bug fixes
+<li> Added <tt>wglinfo</tt>
+<li> Updated documentation
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.0.4</b> [02-02-03]
+<ul>
+<li> Added NV_texture_expand_normal
+<li> Added mingw support
+<li> Updated documentation
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.0.3</b> [01-09-03]
+<ul>
+<li> Cleaned up ATI extensions
+<li> Changed function prototypes to match glext.h
+<li> Added EXT_texture3D
+<li> Fixed typos in ATI_vertex_attrib_array_object and ATI_draw_buffers
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.0.2</b> [12-21-02]
+<ul>
+<li> Added list of supported extensions to documentation
+<li> Added NV_half_float and NV_texgen_emboss
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.0.1</b> [12-17-02]
+<ul>
+<li> Bug fixes
+<li> Added glewGetExtension
+</ul>
+</ul>
+<hr align="center">
+<ul class="none">
+<li><b>1.0.0</b> [12-12-02]
+<ul>
+<li> Initial release
+</ul>
+</ul>
+<hr align="center">
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/.dummy b/engine-ocean/External/glew/auto/extensions/gl/.dummy
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/.dummy
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_GLES_layers b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_GLES_layers
new file mode 100644
index 0000000..b800fe1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_GLES_layers
@@ -0,0 +1,4 @@
+EGL_ANDROID_GLES_layers
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANDROID_GLES_layers
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_blob_cache b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_blob_cache
new file mode 100644
index 0000000..87c9e40
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_blob_cache
@@ -0,0 +1,5 @@
+EGL_ANDROID_blob_cache
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANDROID_blob_cache
+
+ void eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_create_native_client_buffer b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_create_native_client_buffer
new file mode 100644
index 0000000..1a519c8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_create_native_client_buffer
@@ -0,0 +1,9 @@
+EGL_ANDROID_create_native_client_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANDROID_create_native_client_buffer
+
+ EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001
+ EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002
+ EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004
+ EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143
+ EGLClientBuffer eglCreateNativeClientBufferANDROID (const EGLint* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_framebuffer_target b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_framebuffer_target
new file mode 100644
index 0000000..3fdbdaa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_framebuffer_target
@@ -0,0 +1,5 @@
+EGL_ANDROID_framebuffer_target
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANDROID_framebuffer_target
+
+ EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_front_buffer_auto_refresh b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_front_buffer_auto_refresh
new file mode 100644
index 0000000..b49e6f5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_front_buffer_auto_refresh
@@ -0,0 +1,5 @@
+EGL_ANDROID_front_buffer_auto_refresh
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANDROID_front_buffer_auto_refresh
+
+ EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_get_frame_timestamps b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_get_frame_timestamps
new file mode 100644
index 0000000..3585577
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_get_frame_timestamps
@@ -0,0 +1,24 @@
+EGL_ANDROID_get_frame_timestamps
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANDROID_get_frame_timestamps
+
+ 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_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID,-1)
+ EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2)
+ EGLBoolean eglGetCompositorTimingANDROID (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint* names, EGLnsecsANDROID* values)
+ EGLBoolean eglGetCompositorTimingSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint name)
+ EGLBoolean eglGetFrameTimestampSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint timestamp)
+ EGLBoolean eglGetFrameTimestampsANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint* timestamps, EGLnsecsANDROID* values)
+ EGLBoolean eglGetNextFrameIdANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR* frameId)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_get_native_client_buffer b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_get_native_client_buffer
new file mode 100644
index 0000000..9ffc655
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_get_native_client_buffer
@@ -0,0 +1,5 @@
+EGL_ANDROID_get_native_client_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANDROID_get_native_client_buffer
+
+ EGLClientBuffer eglGetNativeClientBufferANDROID (const struct AHardwareBuffer* buffer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_image_native_buffer b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_image_native_buffer
new file mode 100644
index 0000000..fe04035
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_image_native_buffer
@@ -0,0 +1,5 @@
+EGL_ANDROID_image_native_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANDROID_image_native_buffer
+
+ EGL_NATIVE_BUFFER_ANDROID 0x3140
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_native_fence_sync b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_native_fence_sync
new file mode 100644
index 0000000..2c44d34
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_native_fence_sync
@@ -0,0 +1,9 @@
+EGL_ANDROID_native_fence_sync
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANDROID_native_fence_sync
+
+ EGL_NO_NATIVE_FENCE_FD_ANDROID -1
+ EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144
+ EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145
+ EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146
+ EGLint eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_presentation_time b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_presentation_time
new file mode 100644
index 0000000..8c5ca58
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_presentation_time
@@ -0,0 +1,5 @@
+EGL_ANDROID_presentation_time
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANDROID_presentation_time
+
+ EGLBoolean eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_recordable b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_recordable
new file mode 100644
index 0000000..17b8c31
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANDROID_recordable
@@ -0,0 +1,5 @@
+EGL_ANDROID_recordable
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANDROID_recordable
+
+ EGL_RECORDABLE_ANDROID 0x3142
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_d3d_share_handle_client_buffer b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_d3d_share_handle_client_buffer
new file mode 100644
index 0000000..fa9748e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_d3d_share_handle_client_buffer
@@ -0,0 +1,5 @@
+EGL_ANGLE_d3d_share_handle_client_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANGLE_d3d_share_handle_client_buffer
+
+ EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_device_d3d b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_device_d3d
new file mode 100644
index 0000000..aad1c1a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_device_d3d
@@ -0,0 +1,6 @@
+EGL_ANGLE_device_d3d
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANGLE_device_d3d
+
+ EGL_D3D9_DEVICE_ANGLE 0x33A0
+ EGL_D3D11_DEVICE_ANGLE 0x33A1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_query_surface_pointer b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_query_surface_pointer
new file mode 100644
index 0000000..0b459e2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_query_surface_pointer
@@ -0,0 +1,5 @@
+EGL_ANGLE_query_surface_pointer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANGLE_query_surface_pointer
+
+ EGLBoolean eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void** value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_surface_d3d_texture_2d_share_handle b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_surface_d3d_texture_2d_share_handle
new file mode 100644
index 0000000..d5c1696
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_surface_d3d_texture_2d_share_handle
@@ -0,0 +1,5 @@
+EGL_ANGLE_surface_d3d_texture_2d_share_handle
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANGLE_surface_d3d_texture_2d_share_handle
+
+ EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_sync_control_rate b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_sync_control_rate
new file mode 100644
index 0000000..0db2c2a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_sync_control_rate
@@ -0,0 +1,5 @@
+EGL_ANGLE_sync_control_rate
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANGLE_sync_control_rate
+
+ EGLBoolean eglGetMscRateANGLE (EGLDisplay dpy, EGLSurface surface, EGLint* numerator, EGLint* denominator)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_window_fixed_size b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_window_fixed_size
new file mode 100644
index 0000000..299b6c7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ANGLE_window_fixed_size
@@ -0,0 +1,5 @@
+EGL_ANGLE_window_fixed_size
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ANGLE_window_fixed_size
+
+ EGL_FIXED_SIZE_ANGLE 0x3201
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_image_format b/engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_image_format
new file mode 100644
index 0000000..06fb809
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_image_format
@@ -0,0 +1,6 @@
+EGL_ARM_image_format
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ARM_image_format
+
+ EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287
+ EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_implicit_external_sync b/engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_implicit_external_sync
new file mode 100644
index 0000000..ec094f2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_implicit_external_sync
@@ -0,0 +1,5 @@
+EGL_ARM_implicit_external_sync
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ARM_implicit_external_sync
+
+ EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_pixmap_multisample_discard b/engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_pixmap_multisample_discard
new file mode 100644
index 0000000..5f2b9e7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_ARM_pixmap_multisample_discard
@@ -0,0 +1,5 @@
+EGL_ARM_pixmap_multisample_discard
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_ARM_pixmap_multisample_discard
+
+ EGL_DISCARD_SAMPLES_ARM 0x3286
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_bind_to_front b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_bind_to_front
new file mode 100644
index 0000000..363d502
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_bind_to_front
@@ -0,0 +1,5 @@
+EGL_EXT_bind_to_front
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_bind_to_front
+
+ EGL_FRONT_BUFFER_EXT 0x3464
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_buffer_age b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_buffer_age
new file mode 100644
index 0000000..4dc18ad
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_buffer_age
@@ -0,0 +1,5 @@
+EGL_EXT_buffer_age
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_buffer_age
+
+ EGL_BUFFER_AGE_EXT 0x313D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_client_extensions b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_client_extensions
new file mode 100644
index 0000000..8251a19
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_client_extensions
@@ -0,0 +1,4 @@
+EGL_EXT_client_extensions
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_client_extensions
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_client_sync b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_client_sync
new file mode 100644
index 0000000..fe694ac
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_client_sync
@@ -0,0 +1,7 @@
+EGL_EXT_client_sync
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_client_sync
+
+ EGL_SYNC_CLIENT_EXT 0x3364
+ EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365
+ EGLBoolean eglClientSignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_compositor b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_compositor
new file mode 100644
index 0000000..48cb931
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_compositor
@@ -0,0 +1,15 @@
+EGL_EXT_compositor
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_compositor
+
+ EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460
+ EGL_EXTERNAL_REF_ID_EXT 0x3461
+ EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462
+ EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463
+ EGLBoolean eglCompositorBindTexWindowEXT (EGLint external_win_id)
+ EGLBoolean eglCompositorSetContextAttributesEXT (EGLint external_ref_id, const EGLint* context_attributes, EGLint num_entries)
+ EGLBoolean eglCompositorSetContextListEXT (const EGLint* external_ref_ids, EGLint num_entries)
+ EGLBoolean eglCompositorSetSizeEXT (EGLint external_win_id, EGLint width, EGLint height)
+ EGLBoolean eglCompositorSetWindowAttributesEXT (EGLint external_win_id, const EGLint* window_attributes, EGLint num_entries)
+ EGLBoolean eglCompositorSetWindowListEXT (EGLint external_ref_id, const EGLint* external_win_ids, EGLint num_entries)
+ EGLBoolean eglCompositorSwapPolicyEXT (EGLint external_win_id, EGLint policy)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_config_select_group b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_config_select_group
new file mode 100644
index 0000000..a3006f4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_config_select_group
@@ -0,0 +1,5 @@
+EGL_EXT_config_select_group
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_config_select_group
+
+ EGL_CONFIG_SELECT_GROUP_EXT 0x34C0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_create_context_robustness b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_create_context_robustness
new file mode 100644
index 0000000..e09b15c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_create_context_robustness
@@ -0,0 +1,8 @@
+EGL_EXT_create_context_robustness
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_create_context_robustness
+
+ EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
+ EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
+ EGL_NO_RESET_NOTIFICATION_EXT 0x31BE
+ EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_base b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_base
new file mode 100644
index 0000000..fa1d2e1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_base
@@ -0,0 +1,7 @@
+EGL_EXT_device_base
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_device_base
+
+ EGL_BAD_DEVICE_EXT 0x322B
+ EGL_DEVICE_EXT 0x322C
+ EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_drm b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_drm
new file mode 100644
index 0000000..ac10157
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_drm
@@ -0,0 +1,6 @@
+EGL_EXT_device_drm
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_device_drm
+
+ EGL_DRM_DEVICE_FILE_EXT 0x3233
+ EGL_DRM_MASTER_FD_EXT 0x333C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_drm_render_node b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_drm_render_node
new file mode 100644
index 0000000..70deeb3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_drm_render_node
@@ -0,0 +1,5 @@
+EGL_EXT_device_drm_render_node
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_device_drm_render_node
+
+ EGL_DRM_RENDER_NODE_FILE_EXT 0x3377
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_enumeration b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_enumeration
new file mode 100644
index 0000000..113cd54
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_enumeration
@@ -0,0 +1,5 @@
+EGL_EXT_device_enumeration
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_device_enumeration
+
+ EGLBoolean eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT* devices, EGLint* num_devices)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_openwf b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_openwf
new file mode 100644
index 0000000..65a62b0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_openwf
@@ -0,0 +1,6 @@
+EGL_EXT_device_openwf
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_device_openwf
+
+ EGL_OPENWF_DEVICE_ID_EXT 0x3237
+ EGL_OPENWF_DEVICE_EXT 0x333D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_persistent_id b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_persistent_id
new file mode 100644
index 0000000..825e1c0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_persistent_id
@@ -0,0 +1,8 @@
+EGL_EXT_device_persistent_id
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_device_persistent_id
+
+ EGL_DEVICE_UUID_EXT 0x335C
+ EGL_DRIVER_UUID_EXT 0x335D
+ EGL_DRIVER_NAME_EXT 0x335E
+ EGLBoolean eglQueryDeviceBinaryEXT (EGLDeviceEXT device, EGLint name, EGLint max_size, void* value, EGLint* size)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_query b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_query
new file mode 100644
index 0000000..1263c48
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_query
@@ -0,0 +1,10 @@
+EGL_EXT_device_query
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_device_query
+
+ EGL_BAD_DEVICE_EXT 0x322B
+ EGL_DEVICE_EXT 0x322C
+ EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0)
+ EGLBoolean eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib* value)
+ const char* eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name)
+ EGLBoolean eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_query_name b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_query_name
new file mode 100644
index 0000000..0de8b45
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_device_query_name
@@ -0,0 +1,5 @@
+EGL_EXT_device_query_name
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_device_query_name
+
+ EGL_RENDERER_EXT 0x335F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_explicit_device b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_explicit_device
new file mode 100644
index 0000000..63d61b2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_explicit_device
@@ -0,0 +1,5 @@
+EGL_EXT_explicit_device
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_explicit_device
+
+ EGL_DEVICE_EXT 0x322C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_bt2020_linear b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_bt2020_linear
new file mode 100644
index 0000000..72d7df1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_bt2020_linear
@@ -0,0 +1,5 @@
+EGL_EXT_gl_colorspace_bt2020_linear
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_gl_colorspace_bt2020_linear
+
+ EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_bt2020_pq b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_bt2020_pq
new file mode 100644
index 0000000..99ef504
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_bt2020_pq
@@ -0,0 +1,5 @@
+EGL_EXT_gl_colorspace_bt2020_pq
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_gl_colorspace_bt2020_pq
+
+ EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3 b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3
new file mode 100644
index 0000000..32de46d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3
@@ -0,0 +1,5 @@
+EGL_EXT_gl_colorspace_display_p3
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_gl_colorspace_display_p3
+
+ EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3_linear b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3_linear
new file mode 100644
index 0000000..b951618
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3_linear
@@ -0,0 +1,5 @@
+EGL_EXT_gl_colorspace_display_p3_linear
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_gl_colorspace_display_p3_linear
+
+ EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3_passthrough b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3_passthrough
new file mode 100644
index 0000000..ba9b81c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_display_p3_passthrough
@@ -0,0 +1,5 @@
+EGL_EXT_gl_colorspace_display_p3_passthrough
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_gl_colorspace_display_p3_passthrough
+
+ EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_scrgb b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_scrgb
new file mode 100644
index 0000000..fc0dff6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_scrgb
@@ -0,0 +1,5 @@
+EGL_EXT_gl_colorspace_scrgb
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_gl_colorspace_scrgb
+
+ EGL_GL_COLORSPACE_SCRGB_EXT 0x3351
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_scrgb_linear b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_scrgb_linear
new file mode 100644
index 0000000..dd370cf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_gl_colorspace_scrgb_linear
@@ -0,0 +1,5 @@
+EGL_EXT_gl_colorspace_scrgb_linear
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_gl_colorspace_scrgb_linear
+
+ EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_dma_buf_import b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_dma_buf_import
new file mode 100644
index 0000000..419eb0f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_dma_buf_import
@@ -0,0 +1,26 @@
+EGL_EXT_image_dma_buf_import
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_image_dma_buf_import
+
+ EGL_LINUX_DMA_BUF_EXT 0x3270
+ EGL_LINUX_DRM_FOURCC_EXT 0x3271
+ EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
+ EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
+ EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
+ EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
+ EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
+ EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
+ EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
+ EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
+ EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
+ EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
+ EGL_SAMPLE_RANGE_HINT_EXT 0x327C
+ EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
+ EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
+ EGL_ITU_REC601_EXT 0x327F
+ EGL_ITU_REC709_EXT 0x3280
+ EGL_ITU_REC2020_EXT 0x3281
+ EGL_YUV_FULL_RANGE_EXT 0x3282
+ EGL_YUV_NARROW_RANGE_EXT 0x3283
+ EGL_YUV_CHROMA_SITING_0_EXT 0x3284
+ EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_dma_buf_import_modifiers b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_dma_buf_import_modifiers
new file mode 100644
index 0000000..7a27ee8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_dma_buf_import_modifiers
@@ -0,0 +1,17 @@
+EGL_EXT_image_dma_buf_import_modifiers
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_image_dma_buf_import_modifiers
+
+ EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
+ EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
+ EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
+ EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
+ EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
+ EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
+ EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
+ EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
+ EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
+ EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
+ EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
+ 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)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_gl_colorspace b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_gl_colorspace
new file mode 100644
index 0000000..131dd70
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_gl_colorspace
@@ -0,0 +1,6 @@
+EGL_EXT_image_gl_colorspace
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_image_gl_colorspace
+
+ EGL_GL_COLORSPACE 0x309D
+ EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_implicit_sync_control b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_implicit_sync_control
new file mode 100644
index 0000000..9e188ee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_image_implicit_sync_control
@@ -0,0 +1,7 @@
+EGL_EXT_image_implicit_sync_control
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_image_implicit_sync_control
+
+ EGL_IMPORT_SYNC_TYPE_EXT 0x3470
+ EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471
+ EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_multiview_window b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_multiview_window
new file mode 100644
index 0000000..4ae0156
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_multiview_window
@@ -0,0 +1,5 @@
+EGL_EXT_multiview_window
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_multiview_window
+
+ EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_base b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_base
new file mode 100644
index 0000000..440ac00
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_base
@@ -0,0 +1,17 @@
+EGL_EXT_output_base
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_output_base
+
+ EGL_BAD_OUTPUT_LAYER_EXT 0x322D
+ EGL_BAD_OUTPUT_PORT_EXT 0x322E
+ EGL_SWAP_INTERVAL_EXT 0x322F
+ EGL_NO_OUTPUT_LAYER_EXT EGL_CAST(EGLOutputLayerEXT,0)
+ EGL_NO_OUTPUT_PORT_EXT EGL_CAST(EGLOutputPortEXT,0)
+ 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)
+ EGLBoolean eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value)
+ EGLBoolean eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value)
+ 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)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_drm b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_drm
new file mode 100644
index 0000000..4fa74c7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_drm
@@ -0,0 +1,7 @@
+EGL_EXT_output_drm
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_output_drm
+
+ EGL_DRM_CRTC_EXT 0x3234
+ EGL_DRM_PLANE_EXT 0x3235
+ EGL_DRM_CONNECTOR_EXT 0x3236
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_openwf b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_openwf
new file mode 100644
index 0000000..5c91d61
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_output_openwf
@@ -0,0 +1,6 @@
+EGL_EXT_output_openwf
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_output_openwf
+
+ EGL_OPENWF_PIPELINE_ID_EXT 0x3238
+ EGL_OPENWF_PORT_ID_EXT 0x3239
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_pixel_format_float b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_pixel_format_float
new file mode 100644
index 0000000..06e9959
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_pixel_format_float
@@ -0,0 +1,7 @@
+EGL_EXT_pixel_format_float
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_pixel_format_float
+
+ EGL_COLOR_COMPONENT_TYPE_EXT 0x3339
+ EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A
+ EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_base b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_base
new file mode 100644
index 0000000..9dbb7a5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_base
@@ -0,0 +1,7 @@
+EGL_EXT_platform_base
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_platform_base
+
+ EGLSurface eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void* native_pixmap, const EGLint* attrib_list)
+ EGLSurface eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void* native_window, const EGLint* attrib_list)
+ EGLDisplay eglGetPlatformDisplayEXT (EGLenum platform, void* native_display, const EGLint* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_device b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_device
new file mode 100644
index 0000000..c2e8cfe
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_device
@@ -0,0 +1,5 @@
+EGL_EXT_platform_device
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_platform_device
+
+ EGL_PLATFORM_DEVICE_EXT 0x313F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_wayland b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_wayland
new file mode 100644
index 0000000..d1f0778
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_wayland
@@ -0,0 +1,5 @@
+EGL_EXT_platform_wayland
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_platform_wayland
+
+ EGL_PLATFORM_WAYLAND_EXT 0x31D8
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_x11 b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_x11
new file mode 100644
index 0000000..5fb32b1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_x11
@@ -0,0 +1,6 @@
+EGL_EXT_platform_x11
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_platform_x11
+
+ EGL_PLATFORM_X11_EXT 0x31D5
+ EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_xcb b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_xcb
new file mode 100644
index 0000000..2cf34c9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_platform_xcb
@@ -0,0 +1,6 @@
+EGL_EXT_platform_xcb
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_platform_xcb
+
+ EGL_PLATFORM_XCB_EXT 0x31DC
+ EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_present_opaque b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_present_opaque
new file mode 100644
index 0000000..687c118
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_present_opaque
@@ -0,0 +1,5 @@
+EGL_EXT_present_opaque
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_present_opaque
+
+ EGL_PRESENT_OPAQUE_EXT 0x31DF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_protected_content b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_protected_content
new file mode 100644
index 0000000..8d274a2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_protected_content
@@ -0,0 +1,5 @@
+EGL_EXT_protected_content
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_protected_content
+
+ EGL_PROTECTED_CONTENT_EXT 0x32C0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_protected_surface b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_protected_surface
new file mode 100644
index 0000000..b2444bc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_protected_surface
@@ -0,0 +1,5 @@
+EGL_EXT_protected_surface
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_protected_surface
+
+ EGL_PROTECTED_CONTENT_EXT 0x32C0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_stream_consumer_egloutput b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_stream_consumer_egloutput
new file mode 100644
index 0000000..ce6e254
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_stream_consumer_egloutput
@@ -0,0 +1,5 @@
+EGL_EXT_stream_consumer_egloutput
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_stream_consumer_egloutput
+
+ EGLBoolean eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_CTA861_3_metadata b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_CTA861_3_metadata
new file mode 100644
index 0000000..cae27be
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_CTA861_3_metadata
@@ -0,0 +1,6 @@
+EGL_EXT_surface_CTA861_3_metadata
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_surface_CTA861_3_metadata
+
+ EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360
+ EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_SMPTE2086_metadata b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_SMPTE2086_metadata
new file mode 100644
index 0000000..f806703
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_SMPTE2086_metadata
@@ -0,0 +1,15 @@
+EGL_EXT_surface_SMPTE2086_metadata
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_surface_SMPTE2086_metadata
+
+ EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341
+ EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342
+ EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343
+ EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344
+ EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345
+ EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346
+ EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347
+ EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348
+ EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349
+ EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A
+ EGL_METADATA_SCALING_EXT 50000
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_compression b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_compression
new file mode 100644
index 0000000..9761599
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_surface_compression
@@ -0,0 +1,22 @@
+EGL_EXT_surface_compression
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_surface_compression
+
+ EGL_SURFACE_COMPRESSION_PLANE1_EXT 0x328E
+ EGL_SURFACE_COMPRESSION_PLANE2_EXT 0x328F
+ EGL_SURFACE_COMPRESSION_EXT 0x34B0
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x34B1
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x34B2
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x34B4
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x34B5
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x34B6
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x34B7
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x34B8
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x34B9
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x34BA
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x34BB
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x34BC
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x34BD
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x34BE
+ EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x34BF
+ EGLBoolean eglQuerySupportedCompressionRatesEXT (EGLDisplay dpy, EGLConfig config, const EGLAttrib* attrib_list, EGLint* rates, EGLint rate_size, EGLint* num_rates)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_swap_buffers_with_damage b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_swap_buffers_with_damage
new file mode 100644
index 0000000..2e4d1a8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_swap_buffers_with_damage
@@ -0,0 +1,5 @@
+EGL_EXT_swap_buffers_with_damage
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_swap_buffers_with_damage
+
+ EGLBoolean eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, const EGLint* rects, EGLint n_rects)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_sync_reuse b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_sync_reuse
new file mode 100644
index 0000000..72f9873
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_sync_reuse
@@ -0,0 +1,5 @@
+EGL_EXT_sync_reuse
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_sync_reuse
+
+ EGLBoolean eglUnsignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_yuv_surface b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_yuv_surface
new file mode 100644
index 0000000..8c3f86e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_EXT_yuv_surface
@@ -0,0 +1,29 @@
+EGL_EXT_yuv_surface
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_EXT_yuv_surface
+
+ EGL_YUV_BUFFER_EXT 0x3300
+ EGL_YUV_ORDER_EXT 0x3301
+ EGL_YUV_ORDER_YUV_EXT 0x3302
+ EGL_YUV_ORDER_YVU_EXT 0x3303
+ EGL_YUV_ORDER_YUYV_EXT 0x3304
+ EGL_YUV_ORDER_UYVY_EXT 0x3305
+ EGL_YUV_ORDER_YVYU_EXT 0x3306
+ EGL_YUV_ORDER_VYUY_EXT 0x3307
+ EGL_YUV_ORDER_AYUV_EXT 0x3308
+ EGL_YUV_CSC_STANDARD_EXT 0x330A
+ EGL_YUV_CSC_STANDARD_601_EXT 0x330B
+ EGL_YUV_CSC_STANDARD_709_EXT 0x330C
+ EGL_YUV_CSC_STANDARD_2020_EXT 0x330D
+ EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
+ EGL_YUV_SUBSAMPLE_EXT 0x3312
+ EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313
+ EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314
+ EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315
+ EGL_YUV_DEPTH_RANGE_EXT 0x3317
+ EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318
+ EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319
+ EGL_YUV_PLANE_BPP_EXT 0x331A
+ EGL_YUV_PLANE_BPP_0_EXT 0x331B
+ EGL_YUV_PLANE_BPP_8_EXT 0x331C
+ EGL_YUV_PLANE_BPP_10_EXT 0x331D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_HI_clientpixmap b/engine-ocean/External/glew/auto/extensions/gl/EGL_HI_clientpixmap
new file mode 100644
index 0000000..732252f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_HI_clientpixmap
@@ -0,0 +1,6 @@
+EGL_HI_clientpixmap
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_HI_clientpixmap
+
+ EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74
+ EGLSurface eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_HI_colorformats b/engine-ocean/External/glew/auto/extensions/gl/EGL_HI_colorformats
new file mode 100644
index 0000000..138a266
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_HI_colorformats
@@ -0,0 +1,8 @@
+EGL_HI_colorformats
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_HI_colorformats
+
+ EGL_COLOR_FORMAT_HI 0x8F70
+ EGL_COLOR_RGB_HI 0x8F71
+ EGL_COLOR_RGBA_HI 0x8F72
+ EGL_COLOR_ARGB_HI 0x8F73
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_IMG_context_priority b/engine-ocean/External/glew/auto/extensions/gl/EGL_IMG_context_priority
new file mode 100644
index 0000000..fce013b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_IMG_context_priority
@@ -0,0 +1,8 @@
+EGL_IMG_context_priority
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_IMG_context_priority
+
+ EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100
+ EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101
+ EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102
+ EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_IMG_image_plane_attribs b/engine-ocean/External/glew/auto/extensions/gl/EGL_IMG_image_plane_attribs
new file mode 100644
index 0000000..80c2c1b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_IMG_image_plane_attribs
@@ -0,0 +1,6 @@
+EGL_IMG_image_plane_attribs
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_IMG_image_plane_attribs
+
+ EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105
+ EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_cl_event b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_cl_event
new file mode 100644
index 0000000..1c70d95
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_cl_event
@@ -0,0 +1,7 @@
+EGL_KHR_cl_event
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_cl_event
+
+ EGL_CL_EVENT_HANDLE_KHR 0x309C
+ EGL_SYNC_CL_EVENT_KHR 0x30FE
+ EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_cl_event2 b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_cl_event2
new file mode 100644
index 0000000..1f03633
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_cl_event2
@@ -0,0 +1,8 @@
+EGL_KHR_cl_event2
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_cl_event2
+
+ EGL_CL_EVENT_HANDLE_KHR 0x309C
+ EGL_SYNC_CL_EVENT_KHR 0x30FE
+ EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
+ EGLSyncKHR eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_client_get_all_proc_addresses b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_client_get_all_proc_addresses
new file mode 100644
index 0000000..3b5e951
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_client_get_all_proc_addresses
@@ -0,0 +1,4 @@
+EGL_KHR_client_get_all_proc_addresses
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_client_get_all_proc_addresses
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_config_attribs b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_config_attribs
new file mode 100644
index 0000000..31c556a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_config_attribs
@@ -0,0 +1,7 @@
+EGL_KHR_config_attribs
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_config_attribs
+
+ EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020
+ EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040
+ EGL_CONFORMANT_KHR 0x3042
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_context_flush_control b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_context_flush_control
new file mode 100644
index 0000000..9064a7a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_context_flush_control
@@ -0,0 +1,7 @@
+EGL_KHR_context_flush_control
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_context_flush_control
+
+ EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0
+ EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097
+ EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_create_context b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_create_context
new file mode 100644
index 0000000..e79485b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_create_context
@@ -0,0 +1,18 @@
+EGL_KHR_create_context
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_create_context
+
+ EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001
+ EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
+ EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
+ EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
+ EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
+ EGL_OPENGL_ES3_BIT 0x00000040
+ EGL_OPENGL_ES3_BIT_KHR 0x00000040
+ EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098
+ EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
+ EGL_CONTEXT_FLAGS_KHR 0x30FC
+ EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
+ EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
+ EGL_NO_RESET_NOTIFICATION_KHR 0x31BE
+ EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_create_context_no_error b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_create_context_no_error
new file mode 100644
index 0000000..72a1928
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_create_context_no_error
@@ -0,0 +1,5 @@
+EGL_KHR_create_context_no_error
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_create_context_no_error
+
+ EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_debug b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_debug
new file mode 100644
index 0000000..4551fe2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_debug
@@ -0,0 +1,19 @@
+EGL_KHR_debug
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_debug
+
+ EGL_OBJECT_THREAD_KHR 0x33B0
+ EGL_OBJECT_DISPLAY_KHR 0x33B1
+ EGL_OBJECT_CONTEXT_KHR 0x33B2
+ EGL_OBJECT_SURFACE_KHR 0x33B3
+ EGL_OBJECT_IMAGE_KHR 0x33B4
+ EGL_OBJECT_SYNC_KHR 0x33B5
+ EGL_OBJECT_STREAM_KHR 0x33B6
+ EGL_DEBUG_CALLBACK_KHR 0x33B8
+ EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9
+ EGL_DEBUG_MSG_ERROR_KHR 0x33BA
+ EGL_DEBUG_MSG_WARN_KHR 0x33BB
+ EGL_DEBUG_MSG_INFO_KHR 0x33BC
+ EGLint eglDebugMessageControlKHR (EGLDEBUGPROCKHR callback, const EGLAttrib* attrib_list)
+ EGLint eglLabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label)
+ EGLBoolean eglQueryDebugKHR (EGLint attribute, EGLAttrib* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_display_reference b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_display_reference
new file mode 100644
index 0000000..eeb09db
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_display_reference
@@ -0,0 +1,6 @@
+EGL_KHR_display_reference
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_display_reference
+
+ EGL_TRACK_REFERENCES_KHR 0x3352
+ EGLBoolean eglQueryDisplayAttribKHR (EGLDisplay dpy, EGLint name, EGLAttrib* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_fence_sync b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_fence_sync
new file mode 100644
index 0000000..398b292
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_fence_sync
@@ -0,0 +1,7 @@
+EGL_KHR_fence_sync
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_fence_sync
+
+ EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
+ EGL_SYNC_CONDITION_KHR 0x30F8
+ EGL_SYNC_FENCE_KHR 0x30F9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_get_all_proc_addresses b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_get_all_proc_addresses
new file mode 100644
index 0000000..86e3b31
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_get_all_proc_addresses
@@ -0,0 +1,4 @@
+EGL_KHR_get_all_proc_addresses
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_get_all_proc_addresses
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_colorspace b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_colorspace
new file mode 100644
index 0000000..791e9db
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_colorspace
@@ -0,0 +1,7 @@
+EGL_KHR_gl_colorspace
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_gl_colorspace
+
+ EGL_GL_COLORSPACE_SRGB_KHR 0x3089
+ EGL_GL_COLORSPACE_LINEAR_KHR 0x308A
+ EGL_GL_COLORSPACE_KHR 0x309D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_renderbuffer_image b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_renderbuffer_image
new file mode 100644
index 0000000..eac2ce6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_renderbuffer_image
@@ -0,0 +1,5 @@
+EGL_KHR_gl_renderbuffer_image
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_gl_renderbuffer_image
+
+ EGL_GL_RENDERBUFFER_KHR 0x30B9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_2D_image b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_2D_image
new file mode 100644
index 0000000..68787ee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_2D_image
@@ -0,0 +1,6 @@
+EGL_KHR_gl_texture_2D_image
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_gl_texture_2D_image
+
+ EGL_GL_TEXTURE_2D_KHR 0x30B1
+ EGL_GL_TEXTURE_LEVEL_KHR 0x30BC
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_3D_image b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_3D_image
new file mode 100644
index 0000000..ced8357
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_3D_image
@@ -0,0 +1,6 @@
+EGL_KHR_gl_texture_3D_image
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_gl_texture_3D_image
+
+ EGL_GL_TEXTURE_3D_KHR 0x30B2
+ EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_cubemap_image b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_cubemap_image
new file mode 100644
index 0000000..81079d9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_gl_texture_cubemap_image
@@ -0,0 +1,10 @@
+EGL_KHR_gl_texture_cubemap_image
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_gl_texture_cubemap_image
+
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6
+ EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7
+ EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image
new file mode 100644
index 0000000..a378be0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image
@@ -0,0 +1,8 @@
+EGL_KHR_image
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_image
+
+ EGL_NATIVE_PIXMAP_KHR 0x30B0
+ EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0)
+ EGLImageKHR eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint* attrib_list)
+ EGLBoolean eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image_base b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image_base
new file mode 100644
index 0000000..dd38a6c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image_base
@@ -0,0 +1,6 @@
+EGL_KHR_image_base
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_image_base
+
+ EGL_IMAGE_PRESERVED_KHR 0x30D2
+ EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image_pixmap b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image_pixmap
new file mode 100644
index 0000000..ab3b243
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_image_pixmap
@@ -0,0 +1,5 @@
+EGL_KHR_image_pixmap
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_image_pixmap
+
+ EGL_NATIVE_PIXMAP_KHR 0x30B0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface
new file mode 100644
index 0000000..be43fb4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface
@@ -0,0 +1,27 @@
+EGL_KHR_lock_surface
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_lock_surface
+
+ EGL_READ_SURFACE_BIT_KHR 0x0001
+ EGL_WRITE_SURFACE_BIT_KHR 0x0002
+ EGL_LOCK_SURFACE_BIT_KHR 0x0080
+ EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
+ EGL_MATCH_FORMAT_KHR 0x3043
+ EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
+ EGL_FORMAT_RGB_565_KHR 0x30C1
+ EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
+ EGL_FORMAT_RGBA_8888_KHR 0x30C3
+ EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
+ EGL_LOCK_USAGE_HINT_KHR 0x30C5
+ EGL_BITMAP_POINTER_KHR 0x30C6
+ EGL_BITMAP_PITCH_KHR 0x30C7
+ EGL_BITMAP_ORIGIN_KHR 0x30C8
+ EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
+ EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
+ EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
+ EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
+ EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
+ EGL_LOWER_LEFT_KHR 0x30CE
+ EGL_UPPER_LEFT_KHR 0x30CF
+ EGLBoolean eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint* attrib_list)
+ EGLBoolean eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface2 b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface2
new file mode 100644
index 0000000..0c4fd14
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface2
@@ -0,0 +1,5 @@
+EGL_KHR_lock_surface2
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_lock_surface2
+
+ EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface3 b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface3
new file mode 100644
index 0000000..4c0e13a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_lock_surface3
@@ -0,0 +1,27 @@
+EGL_KHR_lock_surface3
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_lock_surface3
+
+ EGL_READ_SURFACE_BIT_KHR 0x0001
+ EGL_WRITE_SURFACE_BIT_KHR 0x0002
+ EGL_LOCK_SURFACE_BIT_KHR 0x0080
+ EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
+ EGL_MATCH_FORMAT_KHR 0x3043
+ EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
+ EGL_FORMAT_RGB_565_KHR 0x30C1
+ EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
+ EGL_FORMAT_RGBA_8888_KHR 0x30C3
+ EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
+ EGL_LOCK_USAGE_HINT_KHR 0x30C5
+ EGL_BITMAP_POINTER_KHR 0x30C6
+ EGL_BITMAP_PITCH_KHR 0x30C7
+ EGL_BITMAP_ORIGIN_KHR 0x30C8
+ EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
+ EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
+ EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
+ EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
+ EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
+ EGL_LOWER_LEFT_KHR 0x30CE
+ EGL_UPPER_LEFT_KHR 0x30CF
+ EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
+ EGLBoolean eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR * value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_mutable_render_buffer b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_mutable_render_buffer
new file mode 100644
index 0000000..fefff28
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_mutable_render_buffer
@@ -0,0 +1,5 @@
+EGL_KHR_mutable_render_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_mutable_render_buffer
+
+ EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_no_config_context b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_no_config_context
new file mode 100644
index 0000000..81fe477
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_no_config_context
@@ -0,0 +1,5 @@
+EGL_KHR_no_config_context
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_no_config_context
+
+ EGL_NO_CONFIG_KHR EGL_CAST(EGLConfig,0)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_partial_update b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_partial_update
new file mode 100644
index 0000000..b6c574f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_partial_update
@@ -0,0 +1,6 @@
+EGL_KHR_partial_update
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_partial_update
+
+ EGL_BUFFER_AGE_KHR 0x313D
+ EGLBoolean eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint* rects, EGLint n_rects)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_android b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_android
new file mode 100644
index 0000000..b658e3f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_android
@@ -0,0 +1,5 @@
+EGL_KHR_platform_android
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_platform_android
+
+ EGL_PLATFORM_ANDROID_KHR 0x3141
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_gbm b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_gbm
new file mode 100644
index 0000000..d14df5d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_gbm
@@ -0,0 +1,5 @@
+EGL_KHR_platform_gbm
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_platform_gbm
+
+ EGL_PLATFORM_GBM_KHR 0x31D7
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_wayland b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_wayland
new file mode 100644
index 0000000..e0d1351
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_wayland
@@ -0,0 +1,5 @@
+EGL_KHR_platform_wayland
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_platform_wayland
+
+ EGL_PLATFORM_WAYLAND_KHR 0x31D8
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_x11 b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_x11
new file mode 100644
index 0000000..ec9bd6c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_platform_x11
@@ -0,0 +1,6 @@
+EGL_KHR_platform_x11
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_platform_x11
+
+ EGL_PLATFORM_X11_KHR 0x31D5
+ EGL_PLATFORM_X11_SCREEN_KHR 0x31D6
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_reusable_sync b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_reusable_sync
new file mode 100644
index 0000000..687b7de
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_reusable_sync
@@ -0,0 +1,19 @@
+EGL_KHR_reusable_sync
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_reusable_sync
+
+ EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
+ EGL_SYNC_STATUS_KHR 0x30F1
+ EGL_SIGNALED_KHR 0x30F2
+ EGL_UNSIGNALED_KHR 0x30F3
+ EGL_TIMEOUT_EXPIRED_KHR 0x30F5
+ EGL_CONDITION_SATISFIED_KHR 0x30F6
+ EGL_SYNC_TYPE_KHR 0x30F7
+ EGL_SYNC_REUSABLE_KHR 0x30FA
+ EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFF
+ EGL_NO_SYNC_KHR EGL_CAST(EGLSyncKHR,0)
+ EGLint eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout)
+ EGLSyncKHR eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint* attrib_list)
+ EGLBoolean eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync)
+ EGLBoolean eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint* value)
+ EGLBoolean eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream
new file mode 100644
index 0000000..2717f98
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream
@@ -0,0 +1,22 @@
+EGL_KHR_stream
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_stream
+
+ EGL_CONSUMER_LATENCY_USEC_KHR 0x3210
+ EGL_PRODUCER_FRAME_KHR 0x3212
+ EGL_CONSUMER_FRAME_KHR 0x3213
+ EGL_STREAM_STATE_KHR 0x3214
+ EGL_STREAM_STATE_CREATED_KHR 0x3215
+ EGL_STREAM_STATE_CONNECTING_KHR 0x3216
+ EGL_STREAM_STATE_EMPTY_KHR 0x3217
+ EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218
+ EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219
+ EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A
+ EGL_BAD_STREAM_KHR 0x321B
+ EGL_BAD_STATE_KHR 0x321C
+ EGL_NO_STREAM_KHR EGL_CAST(EGLStreamKHR,0)
+ EGLStreamKHR eglCreateStreamKHR (EGLDisplay dpy, const EGLint* attrib_list)
+ EGLBoolean eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream)
+ EGLBoolean eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint* value)
+ EGLBoolean eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR* value)
+ EGLBoolean eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_attrib b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_attrib
new file mode 100644
index 0000000..dba35a6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_attrib
@@ -0,0 +1,13 @@
+EGL_KHR_stream_attrib
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_stream_attrib
+
+ EGL_CONSUMER_LATENCY_USEC_KHR 0x3210
+ EGL_STREAM_STATE_KHR 0x3214
+ EGL_STREAM_STATE_CREATED_KHR 0x3215
+ EGL_STREAM_STATE_CONNECTING_KHR 0x3216
+ EGLStreamKHR eglCreateStreamAttribKHR (EGLDisplay dpy, const EGLAttrib* attrib_list)
+ EGLBoolean eglQueryStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib* value)
+ EGLBoolean eglSetStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value)
+ EGLBoolean eglStreamConsumerAcquireAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib* attrib_list)
+ EGLBoolean eglStreamConsumerReleaseAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_consumer_gltexture b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_consumer_gltexture
new file mode 100644
index 0000000..4e56ec3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_consumer_gltexture
@@ -0,0 +1,8 @@
+EGL_KHR_stream_consumer_gltexture
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_stream_consumer_gltexture
+
+ EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E
+ EGLBoolean eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream)
+ EGLBoolean eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream)
+ EGLBoolean eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_cross_process_fd b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_cross_process_fd
new file mode 100644
index 0000000..2ce3863
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_cross_process_fd
@@ -0,0 +1,7 @@
+EGL_KHR_stream_cross_process_fd
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_stream_cross_process_fd
+
+ EGL_NO_FILE_DESCRIPTOR_KHR EGL_CAST(EGLNativeFileDescriptorKHR,-1)
+ EGLStreamKHR eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor)
+ EGLNativeFileDescriptorKHR eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_fifo b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_fifo
new file mode 100644
index 0000000..4918805
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_fifo
@@ -0,0 +1,9 @@
+EGL_KHR_stream_fifo
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_stream_fifo
+
+ EGL_STREAM_FIFO_LENGTH_KHR 0x31FC
+ EGL_STREAM_TIME_NOW_KHR 0x31FD
+ EGL_STREAM_TIME_CONSUMER_KHR 0x31FE
+ EGL_STREAM_TIME_PRODUCER_KHR 0x31FF
+ EGLBoolean eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_producer_aldatalocator b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_producer_aldatalocator
new file mode 100644
index 0000000..27d08de
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_producer_aldatalocator
@@ -0,0 +1,4 @@
+EGL_KHR_stream_producer_aldatalocator
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_stream_producer_aldatalocator
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_producer_eglsurface b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_producer_eglsurface
new file mode 100644
index 0000000..5eb0280
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_stream_producer_eglsurface
@@ -0,0 +1,6 @@
+EGL_KHR_stream_producer_eglsurface
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_stream_producer_eglsurface
+
+ EGL_STREAM_BIT_KHR 0x0800
+ EGLSurface eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_surfaceless_context b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_surfaceless_context
new file mode 100644
index 0000000..70ad015
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_surfaceless_context
@@ -0,0 +1,4 @@
+EGL_KHR_surfaceless_context
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_surfaceless_context
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_swap_buffers_with_damage b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_swap_buffers_with_damage
new file mode 100644
index 0000000..e2d4987
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_swap_buffers_with_damage
@@ -0,0 +1,5 @@
+EGL_KHR_swap_buffers_with_damage
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_swap_buffers_with_damage
+
+ EGLBoolean eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, const EGLint* rects, EGLint n_rects)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_vg_parent_image b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_vg_parent_image
new file mode 100644
index 0000000..b2d3e39
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_vg_parent_image
@@ -0,0 +1,5 @@
+EGL_KHR_vg_parent_image
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_vg_parent_image
+
+ EGL_VG_PARENT_IMAGE_KHR 0x30BA
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_wait_sync b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_wait_sync
new file mode 100644
index 0000000..573e57b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_KHR_wait_sync
@@ -0,0 +1,5 @@
+EGL_KHR_wait_sync
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_KHR_wait_sync
+
+ EGLint eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_drm_image b/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_drm_image
new file mode 100644
index 0000000..6c0d69b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_drm_image
@@ -0,0 +1,14 @@
+EGL_MESA_drm_image
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_MESA_drm_image
+
+ EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001
+ EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002
+ EGL_DRM_BUFFER_USE_CURSOR_MESA 0x00000004
+ EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
+ EGL_DRM_BUFFER_USE_MESA 0x31D1
+ EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2
+ EGL_DRM_BUFFER_MESA 0x31D3
+ EGL_DRM_BUFFER_STRIDE_MESA 0x31D4
+ EGLImageKHR eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint* attrib_list)
+ EGLBoolean eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint* name, EGLint* handle, EGLint* stride)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_image_dma_buf_export b/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_image_dma_buf_export
new file mode 100644
index 0000000..d97ba00
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_image_dma_buf_export
@@ -0,0 +1,6 @@
+EGL_MESA_image_dma_buf_export
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_MESA_image_dma_buf_export
+
+ 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)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_platform_gbm b/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_platform_gbm
new file mode 100644
index 0000000..c80e4e2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_platform_gbm
@@ -0,0 +1,5 @@
+EGL_MESA_platform_gbm
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_MESA_platform_gbm
+
+ EGL_PLATFORM_GBM_MESA 0x31D7
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_platform_surfaceless b/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_platform_surfaceless
new file mode 100644
index 0000000..88f553f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_platform_surfaceless
@@ -0,0 +1,5 @@
+EGL_MESA_platform_surfaceless
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_MESA_platform_surfaceless
+
+ EGL_PLATFORM_SURFACELESS_MESA 0x31DD
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_query_driver b/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_query_driver
new file mode 100644
index 0000000..4c60b12
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_MESA_query_driver
@@ -0,0 +1,6 @@
+EGL_MESA_query_driver
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_MESA_query_driver
+
+ char* eglGetDisplayDriverConfig (EGLDisplay dpy)
+ const char* eglGetDisplayDriverName (EGLDisplay dpy)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_swap_region b/engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_swap_region
new file mode 100644
index 0000000..f94f987
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_swap_region
@@ -0,0 +1,5 @@
+EGL_NOK_swap_region
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NOK_swap_region
+
+ EGLBoolean eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_swap_region2 b/engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_swap_region2
new file mode 100644
index 0000000..8fe03fb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_swap_region2
@@ -0,0 +1,5 @@
+EGL_NOK_swap_region2
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NOK_swap_region2
+
+ EGLBoolean eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_texture_from_pixmap b/engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_texture_from_pixmap
new file mode 100644
index 0000000..34b9fa4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NOK_texture_from_pixmap
@@ -0,0 +1,5 @@
+EGL_NOK_texture_from_pixmap
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NOK_texture_from_pixmap
+
+ EGL_Y_INVERTED_NOK 0x307F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_3dvision_surface b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_3dvision_surface
new file mode 100644
index 0000000..8226538
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_3dvision_surface
@@ -0,0 +1,5 @@
+EGL_NV_3dvision_surface
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_3dvision_surface
+
+ EGL_AUTO_STEREO_NV 0x3136
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_context_priority_realtime b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_context_priority_realtime
new file mode 100644
index 0000000..37e0e55
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_context_priority_realtime
@@ -0,0 +1,5 @@
+EGL_NV_context_priority_realtime
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_context_priority_realtime
+
+ EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_coverage_sample b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_coverage_sample
new file mode 100644
index 0000000..85bbbe8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_coverage_sample
@@ -0,0 +1,6 @@
+EGL_NV_coverage_sample
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_coverage_sample
+
+ EGL_COVERAGE_BUFFERS_NV 0x30E0
+ EGL_COVERAGE_SAMPLES_NV 0x30E1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_coverage_sample_resolve b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_coverage_sample_resolve
new file mode 100644
index 0000000..04e5345
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_coverage_sample_resolve
@@ -0,0 +1,7 @@
+EGL_NV_coverage_sample_resolve
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_coverage_sample_resolve
+
+ EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131
+ EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132
+ EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_cuda_event b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_cuda_event
new file mode 100644
index 0000000..9ecb5c8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_cuda_event
@@ -0,0 +1,7 @@
+EGL_NV_cuda_event
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_cuda_event
+
+ EGL_CUDA_EVENT_HANDLE_NV 0x323B
+ EGL_SYNC_CUDA_EVENT_NV 0x323C
+ EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_depth_nonlinear b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_depth_nonlinear
new file mode 100644
index 0000000..c870064
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_depth_nonlinear
@@ -0,0 +1,7 @@
+EGL_NV_depth_nonlinear
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_depth_nonlinear
+
+ EGL_DEPTH_ENCODING_NONE_NV 0
+ EGL_DEPTH_ENCODING_NV 0x30E2
+ EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_device_cuda b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_device_cuda
new file mode 100644
index 0000000..7be003a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_device_cuda
@@ -0,0 +1,5 @@
+EGL_NV_device_cuda
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_device_cuda
+
+ EGL_CUDA_DEVICE_NV 0x323A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_native_query b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_native_query
new file mode 100644
index 0000000..e6cd377
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_native_query
@@ -0,0 +1,7 @@
+EGL_NV_native_query
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_native_query
+
+ EGLBoolean eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType* display_id)
+ EGLBoolean eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType* pixmap)
+ EGLBoolean eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType* window)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_post_convert_rounding b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_post_convert_rounding
new file mode 100644
index 0000000..2997df3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_post_convert_rounding
@@ -0,0 +1,4 @@
+EGL_NV_post_convert_rounding
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_post_convert_rounding
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_post_sub_buffer b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_post_sub_buffer
new file mode 100644
index 0000000..a15b586
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_post_sub_buffer
@@ -0,0 +1,6 @@
+EGL_NV_post_sub_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_post_sub_buffer
+
+ EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE
+ EGLBoolean eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_quadruple_buffer b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_quadruple_buffer
new file mode 100644
index 0000000..d820716
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_quadruple_buffer
@@ -0,0 +1,5 @@
+EGL_NV_quadruple_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_quadruple_buffer
+
+ EGL_QUADRUPLE_BUFFER_NV 0x3231
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_robustness_video_memory_purge b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_robustness_video_memory_purge
new file mode 100644
index 0000000..c069b18
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_robustness_video_memory_purge
@@ -0,0 +1,5 @@
+EGL_NV_robustness_video_memory_purge
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_robustness_video_memory_purge
+
+ EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_consumer_eglimage b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_consumer_eglimage
new file mode 100644
index 0000000..eaf59ce
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_consumer_eglimage
@@ -0,0 +1,12 @@
+EGL_NV_stream_consumer_eglimage
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_consumer_eglimage
+
+ EGL_STREAM_CONSUMER_IMAGE_NV 0x3373
+ EGL_STREAM_IMAGE_ADD_NV 0x3374
+ EGL_STREAM_IMAGE_REMOVE_NV 0x3375
+ EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376
+ EGLint eglQueryStreamConsumerEventNV (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum* event, EGLAttrib* aux)
+ EGLBoolean eglStreamAcquireImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage* pImage, EGLSync sync)
+ EGLBoolean eglStreamImageConsumerConnectNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR* modifiers, const EGLAttrib* attrib_list)
+ EGLBoolean eglStreamReleaseImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_consumer_gltexture_yuv b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_consumer_gltexture_yuv
new file mode 100644
index 0000000..54d5ce5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_consumer_gltexture_yuv
@@ -0,0 +1,10 @@
+EGL_NV_stream_consumer_gltexture_yuv
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_consumer_gltexture_yuv
+
+ EGL_YUV_BUFFER_EXT 0x3300
+ EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
+ EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C
+ EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D
+ EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E
+ EGLBoolean eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_display b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_display
new file mode 100644
index 0000000..0fefcd9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_display
@@ -0,0 +1,5 @@
+EGL_NV_stream_cross_display
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_cross_display
+
+ EGL_STREAM_CROSS_DISPLAY_NV 0x334E
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_object b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_object
new file mode 100644
index 0000000..3dbc0f5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_object
@@ -0,0 +1,5 @@
+EGL_NV_stream_cross_object
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_cross_object
+
+ EGL_STREAM_CROSS_OBJECT_NV 0x334D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_partition b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_partition
new file mode 100644
index 0000000..d2ae4bf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_partition
@@ -0,0 +1,5 @@
+EGL_NV_stream_cross_partition
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_cross_partition
+
+ EGL_STREAM_CROSS_PARTITION_NV 0x323F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_process b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_process
new file mode 100644
index 0000000..93245f2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_process
@@ -0,0 +1,5 @@
+EGL_NV_stream_cross_process
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_cross_process
+
+ EGL_STREAM_CROSS_PROCESS_NV 0x3245
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_system b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_system
new file mode 100644
index 0000000..1e18048
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_cross_system
@@ -0,0 +1,5 @@
+EGL_NV_stream_cross_system
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_cross_system
+
+ EGL_STREAM_CROSS_SYSTEM_NV 0x334F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_dma b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_dma
new file mode 100644
index 0000000..13dbe0b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_dma
@@ -0,0 +1,6 @@
+EGL_NV_stream_dma
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_dma
+
+ EGL_STREAM_DMA_NV 0x3371
+ EGL_STREAM_DMA_SERVER_NV 0x3372
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_fifo_next b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_fifo_next
new file mode 100644
index 0000000..a313323
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_fifo_next
@@ -0,0 +1,6 @@
+EGL_NV_stream_fifo_next
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_fifo_next
+
+ EGL_PENDING_FRAME_NV 0x3329
+ EGL_STREAM_TIME_PENDING_NV 0x332A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_fifo_synchronous b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_fifo_synchronous
new file mode 100644
index 0000000..d8631ba
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_fifo_synchronous
@@ -0,0 +1,5 @@
+EGL_NV_stream_fifo_synchronous
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_fifo_synchronous
+
+ EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_flush b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_flush
new file mode 100644
index 0000000..8f09516
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_flush
@@ -0,0 +1,5 @@
+EGL_NV_stream_flush
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_flush
+
+ EGLBoolean eglStreamFlushNV (EGLDisplay dpy, EGLStreamKHR stream)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_frame_limits b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_frame_limits
new file mode 100644
index 0000000..2bad6f4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_frame_limits
@@ -0,0 +1,6 @@
+EGL_NV_stream_frame_limits
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_frame_limits
+
+ EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337
+ EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_metadata b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_metadata
new file mode 100644
index 0000000..521d2f3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_metadata
@@ -0,0 +1,21 @@
+EGL_NV_stream_metadata
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_metadata
+
+ EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250
+ EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251
+ EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252
+ EGL_PRODUCER_METADATA_NV 0x3253
+ EGL_CONSUMER_METADATA_NV 0x3254
+ EGL_METADATA0_SIZE_NV 0x3255
+ EGL_METADATA1_SIZE_NV 0x3256
+ EGL_METADATA2_SIZE_NV 0x3257
+ EGL_METADATA3_SIZE_NV 0x3258
+ EGL_METADATA0_TYPE_NV 0x3259
+ EGL_METADATA1_TYPE_NV 0x325A
+ EGL_METADATA2_TYPE_NV 0x325B
+ EGL_METADATA3_TYPE_NV 0x325C
+ EGL_PENDING_METADATA_NV 0x3328
+ EGLBoolean eglQueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib* value)
+ EGLBoolean eglQueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void* data)
+ EGLBoolean eglSetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void* data)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_origin b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_origin
new file mode 100644
index 0000000..8ea1660
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_origin
@@ -0,0 +1,15 @@
+EGL_NV_stream_origin
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_origin
+
+ EGL_STREAM_FRAME_ORIGIN_X_NV 0x3366
+ EGL_STREAM_FRAME_ORIGIN_Y_NV 0x3367
+ EGL_STREAM_FRAME_MAJOR_AXIS_NV 0x3368
+ EGL_CONSUMER_AUTO_ORIENTATION_NV 0x3369
+ EGL_PRODUCER_AUTO_ORIENTATION_NV 0x336A
+ EGL_LEFT_NV 0x336B
+ EGL_RIGHT_NV 0x336C
+ EGL_TOP_NV 0x336D
+ EGL_BOTTOM_NV 0x336E
+ EGL_X_AXIS_NV 0x336F
+ EGL_Y_AXIS_NV 0x3370
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_remote b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_remote
new file mode 100644
index 0000000..9912d75
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_remote
@@ -0,0 +1,12 @@
+EGL_NV_stream_remote
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_remote
+
+ EGL_STREAM_STATE_INITIALIZING_NV 0x3240
+ EGL_STREAM_TYPE_NV 0x3241
+ EGL_STREAM_PROTOCOL_NV 0x3242
+ EGL_STREAM_ENDPOINT_NV 0x3243
+ EGL_STREAM_LOCAL_NV 0x3244
+ EGL_STREAM_PROTOCOL_FD_NV 0x3246
+ EGL_STREAM_PRODUCER_NV 0x3247
+ EGL_STREAM_CONSUMER_NV 0x3248
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_reset b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_reset
new file mode 100644
index 0000000..f137755
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_reset
@@ -0,0 +1,7 @@
+EGL_NV_stream_reset
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_reset
+
+ EGL_SUPPORT_RESET_NV 0x3334
+ EGL_SUPPORT_REUSE_NV 0x3335
+ EGLBoolean eglResetStreamNV (EGLDisplay dpy, EGLStreamKHR stream)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket
new file mode 100644
index 0000000..878cd9c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket
@@ -0,0 +1,7 @@
+EGL_NV_stream_socket
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_socket
+
+ EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B
+ EGL_SOCKET_HANDLE_NV 0x324C
+ EGL_SOCKET_TYPE_NV 0x324D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket_inet b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket_inet
new file mode 100644
index 0000000..14f69fe
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket_inet
@@ -0,0 +1,5 @@
+EGL_NV_stream_socket_inet
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_socket_inet
+
+ EGL_SOCKET_TYPE_INET_NV 0x324F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket_unix b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket_unix
new file mode 100644
index 0000000..1291470
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_socket_unix
@@ -0,0 +1,5 @@
+EGL_NV_stream_socket_unix
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_socket_unix
+
+ EGL_SOCKET_TYPE_UNIX_NV 0x324E
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_sync b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_sync
new file mode 100644
index 0000000..d47a0cd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_stream_sync
@@ -0,0 +1,7 @@
+EGL_NV_stream_sync
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_stream_sync
+
+ EGL_SYNC_TYPE_KHR 0x30F7
+ EGL_SYNC_NEW_FRAME_NV 0x321F
+ EGLSyncKHR eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_sync b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_sync
new file mode 100644
index 0000000..9c66753
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_sync
@@ -0,0 +1,23 @@
+EGL_NV_sync
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_sync
+
+ EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001
+ EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6
+ EGL_SYNC_STATUS_NV 0x30E7
+ EGL_SIGNALED_NV 0x30E8
+ EGL_UNSIGNALED_NV 0x30E9
+ EGL_ALREADY_SIGNALED_NV 0x30EA
+ EGL_TIMEOUT_EXPIRED_NV 0x30EB
+ EGL_CONDITION_SATISFIED_NV 0x30EC
+ EGL_SYNC_TYPE_NV 0x30ED
+ EGL_SYNC_CONDITION_NV 0x30EE
+ EGL_SYNC_FENCE_NV 0x30EF
+ EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFF
+ EGL_NO_SYNC_NV EGL_CAST(EGLSyncNV,0)
+ EGLint eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout)
+ EGLSyncNV eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint* attrib_list)
+ EGLBoolean eglDestroySyncNV (EGLSyncNV sync)
+ EGLBoolean eglFenceNV (EGLSyncNV sync)
+ EGLBoolean eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint* value)
+ EGLBoolean eglSignalSyncNV (EGLSyncNV sync, EGLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_system_time b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_system_time
new file mode 100644
index 0000000..94d8239
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_system_time
@@ -0,0 +1,6 @@
+EGL_NV_system_time
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_system_time
+
+ EGLuint64NV eglGetSystemTimeFrequencyNV (void)
+ EGLuint64NV eglGetSystemTimeNV (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_triple_buffer b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_triple_buffer
new file mode 100644
index 0000000..1ffe970
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_NV_triple_buffer
@@ -0,0 +1,5 @@
+EGL_NV_triple_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_NV_triple_buffer
+
+ EGL_TRIPLE_BUFFER_NV 0x3230
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_TIZEN_image_native_buffer b/engine-ocean/External/glew/auto/extensions/gl/EGL_TIZEN_image_native_buffer
new file mode 100644
index 0000000..eff695d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_TIZEN_image_native_buffer
@@ -0,0 +1,5 @@
+EGL_TIZEN_image_native_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_TIZEN_image_native_buffer
+
+ EGL_NATIVE_BUFFER_TIZEN 0x32A0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_TIZEN_image_native_surface b/engine-ocean/External/glew/auto/extensions/gl/EGL_TIZEN_image_native_surface
new file mode 100644
index 0000000..7d3afbe
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_TIZEN_image_native_surface
@@ -0,0 +1,5 @@
+EGL_TIZEN_image_native_surface
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_TIZEN_image_native_surface
+
+ EGL_NATIVE_SURFACE_TIZEN 0x32A1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_WL_bind_wayland_display b/engine-ocean/External/glew/auto/extensions/gl/EGL_WL_bind_wayland_display
new file mode 100644
index 0000000..db6c49f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_WL_bind_wayland_display
@@ -0,0 +1,14 @@
+EGL_WL_bind_wayland_display
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_WL_bind_wayland_display
+
+ EGL_WAYLAND_BUFFER_WL 0x31D5
+ EGL_WAYLAND_PLANE_WL 0x31D6
+ EGL_TEXTURE_Y_U_V_WL 0x31D7
+ EGL_TEXTURE_Y_UV_WL 0x31D8
+ EGL_TEXTURE_Y_XUXV_WL 0x31D9
+ EGL_TEXTURE_EXTERNAL_WL 0x31DA
+ EGL_WAYLAND_Y_INVERTED_WL 0x31DB
+ EGLBoolean eglBindWaylandDisplayWL (EGLDisplay dpy, struct wl_display* display)
+ EGLBoolean eglQueryWaylandBufferWL (EGLDisplay dpy, struct wl_resource* buffer, EGLint attribute, EGLint* value)
+ EGLBoolean eglUnbindWaylandDisplayWL (EGLDisplay dpy, struct wl_display* display)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/EGL_WL_create_wayland_buffer_from_image b/engine-ocean/External/glew/auto/extensions/gl/EGL_WL_create_wayland_buffer_from_image
new file mode 100644
index 0000000..f914195
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/EGL_WL_create_wayland_buffer_from_image
@@ -0,0 +1,5 @@
+EGL_WL_create_wayland_buffer_from_image
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+EGL_WL_create_wayland_buffer_from_image
+
+ struct wl_buffer* eglCreateWaylandBufferFromImageWL (EGLDisplay dpy, EGLImageKHR image)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_3DFX_multisample b/engine-ocean/External/glew/auto/extensions/gl/GLX_3DFX_multisample
new file mode 100644
index 0000000..66b1748
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_3DFX_multisample
@@ -0,0 +1,6 @@
+GLX_3DFX_multisample
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_3DFX_multisample
+
+ GLX_SAMPLE_BUFFERS_3DFX 0x8050
+ GLX_SAMPLES_3DFX 0x8051
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_AMD_gpu_association b/engine-ocean/External/glew/auto/extensions/gl/GLX_AMD_gpu_association
new file mode 100644
index 0000000..e4bdbb4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_AMD_gpu_association
@@ -0,0 +1,23 @@
+GLX_AMD_gpu_association
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_AMD_gpu_association
+
+ GLX_GPU_VENDOR_AMD 0x1F00
+ GLX_GPU_RENDERER_STRING_AMD 0x1F01
+ GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
+ GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
+ GLX_GPU_RAM_AMD 0x21A3
+ GLX_GPU_CLOCK_AMD 0x21A4
+ GLX_GPU_NUM_PIPES_AMD 0x21A5
+ GLX_GPU_NUM_SIMD_AMD 0x21A6
+ GLX_GPU_NUM_RB_AMD 0x21A7
+ GLX_GPU_NUM_SPI_AMD 0x21A8
+ void glXBlitContextFramebufferAMD (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+ GLXContext glXCreateAssociatedContextAMD (unsigned int id, GLXContext share_list)
+ GLXContext glXCreateAssociatedContextAttribsAMD (unsigned int id, GLXContext share_context, const int* attribList)
+ Bool glXDeleteAssociatedContextAMD (GLXContext ctx)
+ unsigned int glXGetContextGPUIDAMD (GLXContext ctx)
+ GLXContext glXGetCurrentAssociatedContextAMD (void)
+ unsigned int glXGetGPUIDsAMD (unsigned int maxCount, unsigned int* ids)
+ int glXGetGPUInfoAMD (unsigned int id, int property, GLenum dataType, unsigned int size, void* data)
+ Bool glXMakeAssociatedContextCurrentAMD (GLXContext ctx)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_context_flush_control b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_context_flush_control
new file mode 100644
index 0000000..75293a1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_context_flush_control
@@ -0,0 +1,7 @@
+GLX_ARB_context_flush_control
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_ARB_context_flush_control
+
+ GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
+ GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
+ GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context
new file mode 100644
index 0000000..9cf87e5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context
@@ -0,0 +1,10 @@
+GLX_ARB_create_context
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_ARB_create_context
+
+ GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
+ GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+ GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
+ GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
+ GLX_CONTEXT_FLAGS_ARB 0x2094
+ GLXContext glXCreateContextAttribsARB (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_no_error b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_no_error
new file mode 100644
index 0000000..15f7999
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_no_error
@@ -0,0 +1,5 @@
+GLX_ARB_create_context_no_error
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_ARB_create_context_no_error
+
+ GLX_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_profile b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_profile
new file mode 100644
index 0000000..e34e492
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_profile
@@ -0,0 +1,7 @@
+GLX_ARB_create_context_profile
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_ARB_create_context_profile
+
+ GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+ GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
+ GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_robustness b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_robustness
new file mode 100644
index 0000000..73bb9c3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_create_context_robustness
@@ -0,0 +1,8 @@
+GLX_ARB_create_context_robustness
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_ARB_create_context_robustness
+
+ GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
+ GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+ GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+ GLX_NO_RESET_NOTIFICATION_ARB 0x8261
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_fbconfig_float b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_fbconfig_float
new file mode 100644
index 0000000..882b4c9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_fbconfig_float
@@ -0,0 +1,6 @@
+GLX_ARB_fbconfig_float
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_ARB_fbconfig_float
+
+ GLX_RGBA_FLOAT_BIT_ARB 0x00000004
+ GLX_RGBA_FLOAT_TYPE_ARB 0x20B9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_framebuffer_sRGB b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_framebuffer_sRGB
new file mode 100644
index 0000000..db59d27
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_framebuffer_sRGB
@@ -0,0 +1,5 @@
+GLX_ARB_framebuffer_sRGB
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_ARB_framebuffer_sRGB
+
+ GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_get_proc_address b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_get_proc_address
new file mode 100644
index 0000000..e2cb2c5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_get_proc_address
@@ -0,0 +1,5 @@
+GLX_ARB_get_proc_address
+http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.txt
+GLX_ARB_get_proc_address
+
+ extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void);
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_multisample b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_multisample
new file mode 100644
index 0000000..5469836
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_multisample
@@ -0,0 +1,6 @@
+GLX_ARB_multisample
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_ARB_multisample
+
+ GLX_SAMPLE_BUFFERS_ARB 100000
+ GLX_SAMPLES_ARB 100001
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_robustness_application_isolation b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_robustness_application_isolation
new file mode 100644
index 0000000..5c0987e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_robustness_application_isolation
@@ -0,0 +1,5 @@
+GLX_ARB_robustness_application_isolation
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_ARB_robustness_application_isolation
+
+ GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_robustness_share_group_isolation b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_robustness_share_group_isolation
new file mode 100644
index 0000000..1c83f27
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_robustness_share_group_isolation
@@ -0,0 +1,5 @@
+GLX_ARB_robustness_share_group_isolation
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_ARB_robustness_share_group_isolation
+
+ GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_vertex_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_vertex_buffer_object
new file mode 100644
index 0000000..740d0df
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ARB_vertex_buffer_object
@@ -0,0 +1,5 @@
+GLX_ARB_vertex_buffer_object
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_ARB_vertex_buffer_object
+
+ GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ATI_pixel_format_float b/engine-ocean/External/glew/auto/extensions/gl/GLX_ATI_pixel_format_float
new file mode 100644
index 0000000..5336da4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ATI_pixel_format_float
@@ -0,0 +1,5 @@
+GLX_ATI_pixel_format_float
+
+GLX_ATI_pixel_format_float
+
+ GLX_RGBA_FLOAT_ATI_BIT 0x00000100
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_ATI_render_texture b/engine-ocean/External/glew/auto/extensions/gl/GLX_ATI_render_texture
new file mode 100644
index 0000000..6b35814
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_ATI_render_texture
@@ -0,0 +1,42 @@
+GLX_ATI_render_texture
+
+GLX_ATI_render_texture
+
+ GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800
+ GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801
+ GLX_TEXTURE_FORMAT_ATI 0x9802
+ GLX_TEXTURE_TARGET_ATI 0x9803
+ GLX_MIPMAP_TEXTURE_ATI 0x9804
+ GLX_TEXTURE_RGB_ATI 0x9805
+ GLX_TEXTURE_RGBA_ATI 0x9806
+ GLX_NO_TEXTURE_ATI 0x9807
+ GLX_TEXTURE_CUBE_MAP_ATI 0x9808
+ GLX_TEXTURE_1D_ATI 0x9809
+ GLX_TEXTURE_2D_ATI 0x980A
+ GLX_MIPMAP_LEVEL_ATI 0x980B
+ GLX_CUBE_MAP_FACE_ATI 0x980C
+ GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D
+ GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E
+ GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F
+ GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810
+ GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811
+ GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812
+ GLX_FRONT_LEFT_ATI 0x9813
+ GLX_FRONT_RIGHT_ATI 0x9814
+ GLX_BACK_LEFT_ATI 0x9815
+ GLX_BACK_RIGHT_ATI 0x9816
+ GLX_AUX0_ATI 0x9817
+ GLX_AUX1_ATI 0x9818
+ GLX_AUX2_ATI 0x9819
+ GLX_AUX3_ATI 0x981A
+ GLX_AUX4_ATI 0x981B
+ GLX_AUX5_ATI 0x981C
+ GLX_AUX6_ATI 0x981D
+ GLX_AUX7_ATI 0x981E
+ GLX_AUX8_ATI 0x981F
+ GLX_AUX9_ATI 0x9820
+ GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821
+ GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822
+ void glXBindTexImageATI (Display *dpy, GLXPbuffer pbuf, int buffer)
+ void glXReleaseTexImageATI (Display *dpy, GLXPbuffer pbuf, int buffer)
+ void glXDrawableAttribATI (Display *dpy, GLXDrawable draw, const int *attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_buffer_age b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_buffer_age
new file mode 100644
index 0000000..2dafead
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_buffer_age
@@ -0,0 +1,5 @@
+GLX_EXT_buffer_age
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_buffer_age
+
+ GLX_BACK_BUFFER_AGE_EXT 0x20F4
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_context_priority b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_context_priority
new file mode 100644
index 0000000..285ca15
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_context_priority
@@ -0,0 +1,8 @@
+GLX_EXT_context_priority
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_context_priority
+
+ GLX_CONTEXT_PRIORITY_LEVEL_EXT 0x3100
+ GLX_CONTEXT_PRIORITY_HIGH_EXT 0x3101
+ GLX_CONTEXT_PRIORITY_MEDIUM_EXT 0x3102
+ GLX_CONTEXT_PRIORITY_LOW_EXT 0x3103
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_create_context_es2_profile b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_create_context_es2_profile
new file mode 100644
index 0000000..43897f9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_create_context_es2_profile
@@ -0,0 +1,5 @@
+GLX_EXT_create_context_es2_profile
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_create_context_es2_profile
+
+ GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_create_context_es_profile b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_create_context_es_profile
new file mode 100644
index 0000000..5df31c3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_create_context_es_profile
@@ -0,0 +1,5 @@
+GLX_EXT_create_context_es_profile
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_create_context_es_profile
+
+ GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_fbconfig_packed_float b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_fbconfig_packed_float
new file mode 100644
index 0000000..d1f36de
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_fbconfig_packed_float
@@ -0,0 +1,6 @@
+GLX_EXT_fbconfig_packed_float
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_fbconfig_packed_float
+
+ GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
+ GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_framebuffer_sRGB b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_framebuffer_sRGB
new file mode 100644
index 0000000..b48f8e4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_framebuffer_sRGB
@@ -0,0 +1,5 @@
+GLX_EXT_framebuffer_sRGB
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_framebuffer_sRGB
+
+ GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_get_drawable_type b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_get_drawable_type
new file mode 100644
index 0000000..140ab8c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_get_drawable_type
@@ -0,0 +1,5 @@
+GLX_EXT_get_drawable_type
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_get_drawable_type
+
+ GLX_DRAWABLE_TYPE 0x8010
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_import_context b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_import_context
new file mode 100644
index 0000000..d63ba0e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_import_context
@@ -0,0 +1,13 @@
+GLX_EXT_import_context
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_import_context
+
+ GLX_SHARE_CONTEXT_EXT 0x800A
+ GLX_VISUAL_ID_EXT 0x800B
+ GLX_SCREEN_EXT 0x800C
+ void glXFreeContextEXT (Display* dpy, GLXContext context)
+ GLXContextID glXGetContextIDEXT (const GLXContext context)
+ Display* glXGetCurrentDisplayEXT (void)
+ GLXContext glXImportContextEXT (Display* dpy, GLXContextID contextID)
+ int glXQueryContextInfoEXT (Display* dpy, GLXContext context, int attribute, int* value)
+ typedef XID GLXContextID
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_libglvnd b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_libglvnd
new file mode 100644
index 0000000..5a8d7cd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_libglvnd
@@ -0,0 +1,5 @@
+GLX_EXT_libglvnd
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_libglvnd
+
+ GLX_VENDOR_NAMES_EXT 0x20F6
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_no_config_context b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_no_config_context
new file mode 100644
index 0000000..1ae9a5f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_no_config_context
@@ -0,0 +1,4 @@
+GLX_EXT_no_config_context
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_no_config_context
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_scene_marker b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_scene_marker
new file mode 100644
index 0000000..064caac
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_scene_marker
@@ -0,0 +1,4 @@
+GLX_EXT_scene_marker
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_scene_marker.txt
+GLX_EXT_scene_marker
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_stereo_tree b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_stereo_tree
new file mode 100644
index 0000000..e3fbd07
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_stereo_tree
@@ -0,0 +1,7 @@
+GLX_EXT_stereo_tree
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_stereo_tree
+
+ GLX_STEREO_NOTIFY_EXT 0x00000000
+ GLX_STEREO_NOTIFY_MASK_EXT 0x00000001
+ GLX_STEREO_TREE_EXT 0x20F5
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_swap_control b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_swap_control
new file mode 100644
index 0000000..fe0ba16
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_swap_control
@@ -0,0 +1,7 @@
+GLX_EXT_swap_control
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_swap_control
+
+ GLX_SWAP_INTERVAL_EXT 0x20F1
+ GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
+ void glXSwapIntervalEXT (Display* dpy, GLXDrawable drawable, int interval)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_swap_control_tear b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_swap_control_tear
new file mode 100644
index 0000000..1a498aa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_swap_control_tear
@@ -0,0 +1,5 @@
+GLX_EXT_swap_control_tear
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_swap_control_tear
+
+ GLX_LATE_SWAPS_TEAR_EXT 0x20F3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_texture_from_pixmap b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_texture_from_pixmap
new file mode 100644
index 0000000..773fccf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_texture_from_pixmap
@@ -0,0 +1,39 @@
+GLX_EXT_texture_from_pixmap
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_texture_from_pixmap
+
+ GLX_TEXTURE_1D_BIT_EXT 0x00000001
+ GLX_TEXTURE_2D_BIT_EXT 0x00000002
+ GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
+ GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
+ GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
+ GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
+ GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
+ GLX_Y_INVERTED_EXT 0x20D4
+ GLX_TEXTURE_FORMAT_EXT 0x20D5
+ GLX_TEXTURE_TARGET_EXT 0x20D6
+ GLX_MIPMAP_TEXTURE_EXT 0x20D7
+ GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
+ GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
+ GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
+ GLX_TEXTURE_1D_EXT 0x20DB
+ GLX_TEXTURE_2D_EXT 0x20DC
+ GLX_TEXTURE_RECTANGLE_EXT 0x20DD
+ GLX_FRONT_LEFT_EXT 0x20DE
+ GLX_FRONT_EXT 0x20DE
+ GLX_FRONT_RIGHT_EXT 0x20DF
+ GLX_BACK_LEFT_EXT 0x20E0
+ GLX_BACK_EXT 0x20E0
+ GLX_BACK_RIGHT_EXT 0x20E1
+ GLX_AUX0_EXT 0x20E2
+ GLX_AUX1_EXT 0x20E3
+ GLX_AUX2_EXT 0x20E4
+ GLX_AUX3_EXT 0x20E5
+ GLX_AUX4_EXT 0x20E6
+ GLX_AUX5_EXT 0x20E7
+ GLX_AUX6_EXT 0x20E8
+ GLX_AUX7_EXT 0x20E9
+ GLX_AUX8_EXT 0x20EA
+ GLX_AUX9_EXT 0x20EB
+ void glXBindTexImageEXT (Display* dpy, GLXDrawable drawable, int buffer, const int* attrib_list)
+ void glXReleaseTexImageEXT (Display* dpy, GLXDrawable drawable, int buffer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_visual_info b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_visual_info
new file mode 100644
index 0000000..a057173
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_visual_info
@@ -0,0 +1,20 @@
+GLX_EXT_visual_info
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_visual_info
+
+ GLX_X_VISUAL_TYPE_EXT 0x22
+ GLX_TRANSPARENT_TYPE_EXT 0x23
+ GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
+ GLX_TRANSPARENT_RED_VALUE_EXT 0x25
+ GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
+ GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
+ GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
+ GLX_NONE_EXT 0x8000
+ GLX_TRUE_COLOR_EXT 0x8002
+ GLX_DIRECT_COLOR_EXT 0x8003
+ GLX_PSEUDO_COLOR_EXT 0x8004
+ GLX_STATIC_COLOR_EXT 0x8005
+ GLX_GRAY_SCALE_EXT 0x8006
+ GLX_STATIC_GRAY_EXT 0x8007
+ GLX_TRANSPARENT_RGB_EXT 0x8008
+ GLX_TRANSPARENT_INDEX_EXT 0x8009
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_visual_rating b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_visual_rating
new file mode 100644
index 0000000..1688cad
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_EXT_visual_rating
@@ -0,0 +1,7 @@
+GLX_EXT_visual_rating
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_EXT_visual_rating
+
+ GLX_VISUAL_CAVEAT_EXT 0x20
+ GLX_SLOW_VISUAL_EXT 0x8001
+ GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_INTEL_swap_event b/engine-ocean/External/glew/auto/extensions/gl/GLX_INTEL_swap_event
new file mode 100644
index 0000000..edb6dd0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_INTEL_swap_event
@@ -0,0 +1,8 @@
+GLX_INTEL_swap_event
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_INTEL_swap_event
+
+ GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000
+ GLX_EXCHANGE_COMPLETE_INTEL 0x8180
+ GLX_COPY_COMPLETE_INTEL 0x8181
+ GLX_FLIP_COMPLETE_INTEL 0x8182
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_agp_offset b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_agp_offset
new file mode 100644
index 0000000..002527d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_agp_offset
@@ -0,0 +1,5 @@
+GLX_MESA_agp_offset
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_MESA_agp_offset
+
+ unsigned int glXGetAGPOffsetMESA (const void* pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_copy_sub_buffer b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_copy_sub_buffer
new file mode 100644
index 0000000..e0a1d3f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_copy_sub_buffer
@@ -0,0 +1,5 @@
+GLX_MESA_copy_sub_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_MESA_copy_sub_buffer
+
+ void glXCopySubBufferMESA (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_pixmap_colormap b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_pixmap_colormap
new file mode 100644
index 0000000..240467c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_pixmap_colormap
@@ -0,0 +1,5 @@
+GLX_MESA_pixmap_colormap
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_MESA_pixmap_colormap
+
+ GLXPixmap glXCreateGLXPixmapMESA (Display* dpy, XVisualInfo* visual, Pixmap pixmap, Colormap cmap)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_query_renderer b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_query_renderer
new file mode 100644
index 0000000..86e667f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_query_renderer
@@ -0,0 +1,19 @@
+GLX_MESA_query_renderer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_MESA_query_renderer
+
+ GLX_RENDERER_VENDOR_ID_MESA 0x8183
+ GLX_RENDERER_DEVICE_ID_MESA 0x8184
+ GLX_RENDERER_VERSION_MESA 0x8185
+ GLX_RENDERER_ACCELERATED_MESA 0x8186
+ GLX_RENDERER_VIDEO_MEMORY_MESA 0x8187
+ GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA 0x8188
+ GLX_RENDERER_PREFERRED_PROFILE_MESA 0x8189
+ GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA 0x818A
+ GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B
+ GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C
+ GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D
+ Bool glXQueryCurrentRendererIntegerMESA (int attribute, unsigned int* value)
+ const char* glXQueryCurrentRendererStringMESA (int attribute)
+ Bool glXQueryRendererIntegerMESA (Display* dpy, int screen, int renderer, int attribute, unsigned int* value)
+ const char* glXQueryRendererStringMESA (Display* dpy, int screen, int renderer, int attribute)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_release_buffers b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_release_buffers
new file mode 100644
index 0000000..a8b3efd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_release_buffers
@@ -0,0 +1,5 @@
+GLX_MESA_release_buffers
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_MESA_release_buffers
+
+ Bool glXReleaseBuffersMESA (Display* dpy, GLXDrawable drawable)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_set_3dfx_mode b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_set_3dfx_mode
new file mode 100644
index 0000000..3b18162
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_set_3dfx_mode
@@ -0,0 +1,7 @@
+GLX_MESA_set_3dfx_mode
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_MESA_set_3dfx_mode
+
+ GLX_3DFX_WINDOW_MODE_MESA 0x1
+ GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
+ GLboolean glXSet3DfxModeMESA (GLint mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_swap_control b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_swap_control
new file mode 100644
index 0000000..5ad2011
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_MESA_swap_control
@@ -0,0 +1,6 @@
+GLX_MESA_swap_control
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_MESA_swap_control
+
+ int glXGetSwapIntervalMESA (void)
+ int glXSwapIntervalMESA (unsigned int interval)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_copy_buffer b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_copy_buffer
new file mode 100644
index 0000000..dbaa501
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_copy_buffer
@@ -0,0 +1,6 @@
+GLX_NV_copy_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_NV_copy_buffer
+
+ void glXCopyBufferSubDataNV (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+ void glXNamedCopyBufferSubDataNV (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_copy_image b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_copy_image
new file mode 100644
index 0000000..9405e37
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_copy_image
@@ -0,0 +1,6 @@
+GLX_NV_copy_image
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_NV_copy_image
+
+ void glXCopyImageSubDataNV (Display* dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
+ void glXCopyImageSubDataNV (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_delay_before_swap b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_delay_before_swap
new file mode 100644
index 0000000..02fab8c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_delay_before_swap
@@ -0,0 +1,5 @@
+GLX_NV_delay_before_swap
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_NV_delay_before_swap
+
+ Bool glXDelayBeforeSwapNV (Display* dpy, GLXDrawable drawable, GLfloat seconds)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_float_buffer b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_float_buffer
new file mode 100644
index 0000000..3c1f9e9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_float_buffer
@@ -0,0 +1,5 @@
+GLX_NV_float_buffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_NV_float_buffer
+
+ GLX_FLOAT_COMPONENTS_NV 0x20B0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_multigpu_context b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_multigpu_context
new file mode 100644
index 0000000..663f412
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_multigpu_context
@@ -0,0 +1,9 @@
+GLX_NV_multigpu_context
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_NV_multigpu_context
+
+ GLX_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA
+ GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB
+ GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC
+ GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD
+ GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_multisample_coverage b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_multisample_coverage
new file mode 100644
index 0000000..896bbc4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_multisample_coverage
@@ -0,0 +1,6 @@
+GLX_NV_multisample_coverage
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_NV_multisample_coverage
+
+ GLX_COLOR_SAMPLES_NV 0x20B3
+ GLX_COVERAGE_SAMPLES_NV 100001
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_present_video b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_present_video
new file mode 100644
index 0000000..2f87fed
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_present_video
@@ -0,0 +1,7 @@
+GLX_NV_present_video
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_NV_present_video
+
+ GLX_NUM_VIDEO_SLOTS_NV 0x20F0
+ int glXBindVideoDeviceNV (Display* dpy, unsigned int video_slot, unsigned int video_device, const int* attrib_list)
+ unsigned int* glXEnumerateVideoDevicesNV (Display* dpy, int screen, int* nelements)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_robustness_video_memory_purge b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_robustness_video_memory_purge
new file mode 100644
index 0000000..2ff8b91
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_robustness_video_memory_purge
@@ -0,0 +1,5 @@
+GLX_NV_robustness_video_memory_purge
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_NV_robustness_video_memory_purge
+
+ GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_swap_group b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_swap_group
new file mode 100644
index 0000000..e78acdc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_swap_group
@@ -0,0 +1,10 @@
+GLX_NV_swap_group
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_NV_swap_group
+
+ Bool glXBindSwapBarrierNV (Display* dpy, GLuint group, GLuint barrier)
+ Bool glXJoinSwapGroupNV (Display* dpy, GLXDrawable drawable, GLuint group)
+ Bool glXQueryFrameCountNV (Display* dpy, int screen, GLuint* count)
+ Bool glXQueryMaxSwapGroupsNV (Display* dpy, int screen, GLuint* maxGroups, GLuint* maxBarriers)
+ Bool glXQuerySwapGroupNV (Display* dpy, GLXDrawable drawable, GLuint* group, GLuint* barrier)
+ Bool glXResetFrameCountNV (Display* dpy, int screen)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_vertex_array_range b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_vertex_array_range
new file mode 100644
index 0000000..9250ec2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_vertex_array_range
@@ -0,0 +1,6 @@
+GLX_NV_vertex_array_range
+http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_array_range.txt
+GLX_NV_vertex_array_range
+
+ void * glXAllocateMemoryNV (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority)
+ void glXFreeMemoryNV (void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_video_capture b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_video_capture
new file mode 100644
index 0000000..4f81c3a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_video_capture
@@ -0,0 +1,13 @@
+GLX_NV_video_capture
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_NV_video_capture
+
+ GLX_DEVICE_ID_NV 0x20CD
+ GLX_UNIQUE_ID_NV 0x20CE
+ GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
+ int glXBindVideoCaptureDeviceNV (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device)
+ GLXVideoCaptureDeviceNV* glXEnumerateVideoCaptureDevicesNV (Display* dpy, int screen, int* nelements)
+ void glXLockVideoCaptureDeviceNV (Display* dpy, GLXVideoCaptureDeviceNV device)
+ int glXQueryVideoCaptureDeviceNV (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int* value)
+ void glXReleaseVideoCaptureDeviceNV (Display* dpy, GLXVideoCaptureDeviceNV device)
+ typedef XID GLXVideoCaptureDeviceNV
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_video_out b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_video_out
new file mode 100644
index 0000000..75e6235
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_NV_video_out
@@ -0,0 +1,20 @@
+GLX_NV_video_out
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_NV_video_out
+
+ GLX_VIDEO_OUT_COLOR_NV 0x20C3
+ GLX_VIDEO_OUT_ALPHA_NV 0x20C4
+ GLX_VIDEO_OUT_DEPTH_NV 0x20C5
+ GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
+ GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
+ GLX_VIDEO_OUT_FRAME_NV 0x20C8
+ GLX_VIDEO_OUT_FIELD_1_NV 0x20C9
+ GLX_VIDEO_OUT_FIELD_2_NV 0x20CA
+ GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB
+ GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC
+ int glXBindVideoImageNV (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer)
+ int glXGetVideoDeviceNV (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV* pVideoDevice)
+ int glXGetVideoInfoNV (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long* pulCounterOutputVideo)
+ int glXReleaseVideoDeviceNV (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice)
+ int glXReleaseVideoImageNV (Display* dpy, GLXPbuffer pbuf)
+ int glXSendPbufferToVideoNV (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long* pulCounterPbuffer, GLboolean bBlock)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_OML_swap_method b/engine-ocean/External/glew/auto/extensions/gl/GLX_OML_swap_method
new file mode 100644
index 0000000..4834429
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_OML_swap_method
@@ -0,0 +1,11 @@
+GLX_OML_swap_method
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_OML_swap_method
+
+ GLX_SWAP_METHOD_OML 0x8060
+ GLX_SWAP_EXCHANGE_OML 0x8061
+ GLX_SWAP_COPY_OML 0x8062
+ GLX_SWAP_UNDEFINED_OML 0x8063
+ GLX_SWAP_EXCHANGE_OML 0x8061
+ GLX_SWAP_COPY_OML 0x8062
+ GLX_SWAP_UNDEFINED_OML 0x8063
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_OML_sync_control b/engine-ocean/External/glew/auto/extensions/gl/GLX_OML_sync_control
new file mode 100644
index 0000000..0a35acc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_OML_sync_control
@@ -0,0 +1,9 @@
+GLX_OML_sync_control
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_OML_sync_control
+
+ Bool glXGetMscRateOML (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator)
+ Bool glXGetSyncValuesOML (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc)
+ int64_t glXSwapBuffersMscOML (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder)
+ Bool glXWaitForMscOML (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc)
+ Bool glXWaitForSbcOML (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_blended_overlay b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_blended_overlay
new file mode 100644
index 0000000..25d7d7f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_blended_overlay
@@ -0,0 +1,5 @@
+GLX_SGIS_blended_overlay
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGIS_blended_overlay
+
+ GLX_BLENDED_RGBA_SGIS 0x8025
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_color_range b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_color_range
new file mode 100644
index 0000000..9286cff
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_color_range
@@ -0,0 +1,4 @@
+GLX_SGIS_color_range
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/GLX_SGIS_color_range.txt
+GLX_SGIS_color_range
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_multisample b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_multisample
new file mode 100644
index 0000000..0c746ef
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_multisample
@@ -0,0 +1,6 @@
+GLX_SGIS_multisample
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGIS_multisample
+
+ GLX_SAMPLE_BUFFERS_SGIS 100000
+ GLX_SAMPLES_SGIS 100001
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_shared_multisample b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_shared_multisample
new file mode 100644
index 0000000..895b847
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIS_shared_multisample
@@ -0,0 +1,6 @@
+GLX_SGIS_shared_multisample
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGIS_shared_multisample
+
+ GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
+ GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_fbconfig b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_fbconfig
new file mode 100644
index 0000000..86756bb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_fbconfig
@@ -0,0 +1,23 @@
+GLX_SGIX_fbconfig
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGIX_fbconfig
+
+ GLX_WINDOW_BIT_SGIX 0x00000001
+ GLX_RGBA_BIT_SGIX 0x00000001
+ GLX_PIXMAP_BIT_SGIX 0x00000002
+ GLX_COLOR_INDEX_BIT_SGIX 0x00000002
+ GLX_SCREEN_EXT 0x800C
+ GLX_DRAWABLE_TYPE_SGIX 0x8010
+ GLX_RENDER_TYPE_SGIX 0x8011
+ GLX_X_RENDERABLE_SGIX 0x8012
+ GLX_FBCONFIG_ID_SGIX 0x8013
+ GLX_RGBA_TYPE_SGIX 0x8014
+ GLX_COLOR_INDEX_TYPE_SGIX 0x8015
+ GLXFBConfigSGIX* glXChooseFBConfigSGIX (Display* dpy, int screen, int* attrib_list, int* nelements)
+ GLXContext glXCreateContextWithConfigSGIX (Display* dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct)
+ GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display* dpy, GLXFBConfigSGIX config, Pixmap pixmap)
+ int glXGetFBConfigAttribSGIX (Display* dpy, GLXFBConfigSGIX config, int attribute, int* value)
+ GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display* dpy, XVisualInfo* vis)
+ XVisualInfo* glXGetVisualFromFBConfigSGIX (Display* dpy, GLXFBConfigSGIX config)
+ typedef XID GLXFBConfigIDSGIX
+ typedef struct __GLXFBConfigRec *GLXFBConfigSGIX
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_hyperpipe b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_hyperpipe
new file mode 100644
index 0000000..80fd7d6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_hyperpipe
@@ -0,0 +1,26 @@
+GLX_SGIX_hyperpipe
+http://oss.sgi.com/projects/ogl-sample/registry/SGIX/hyperpipe_group.txt
+GLX_SGIX_hyperpipe
+
+ GLX_HYPERPIPE_ID_SGIX 0x8030
+ GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
+ GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
+ GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
+ GLX_PIPE_RECT_SGIX 0x00000001
+ GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
+ GLX_HYPERPIPE_STEREO_SGIX 0x00000003
+ GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
+ GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
+ GLX_BAD_HYPERPIPE_SGIX 92
+ typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int networkId; } GLXHyperpipeNetworkSGIX;
+ typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int channel; unsigned int participationType; int timeSlice; } GLXHyperpipeConfigSGIX;
+ typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int srcXOrigin; int srcYOrigin; int srcWidth; int srcHeight; int destXOrigin; int destYOrigin; int destWidth; int destHeight; } GLXPipeRect;
+ typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int XOrigin; int YOrigin; int maxHeight; int maxWidth; } GLXPipeRectLimits;
+ GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *dpy, int *npipes)
+ int glXHyperpipeConfigSGIX (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId)
+ GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *dpy, int hpId, int *npipes)
+ int glXDestroyHyperpipeConfigSGIX (Display *dpy, int hpId)
+ int glXBindHyperpipeSGIX (Display *dpy, int hpId)
+ int glXQueryHyperpipeBestAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList)
+ int glXHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList)
+ int glXQueryHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_pbuffer b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_pbuffer
new file mode 100644
index 0000000..556c100
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_pbuffer
@@ -0,0 +1,36 @@
+GLX_SGIX_pbuffer
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGIX_pbuffer
+
+ GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
+ GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
+ GLX_PBUFFER_BIT_SGIX 0x00000004
+ GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
+ GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
+ GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
+ GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
+ GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
+ GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
+ GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
+ GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
+ GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
+ GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
+ GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
+ GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
+ GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
+ GLX_PRESERVED_CONTENTS_SGIX 0x801B
+ GLX_LARGEST_PBUFFER_SGIX 0x801C
+ GLX_WIDTH_SGIX 0x801D
+ GLX_HEIGHT_SGIX 0x801E
+ GLX_EVENT_MASK_SGIX 0x801F
+ GLX_DAMAGED_SGIX 0x8020
+ GLX_SAVED_SGIX 0x8021
+ GLX_WINDOW_SGIX 0x8022
+ GLX_PBUFFER_SGIX 0x8023
+ GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display* dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int* attrib_list)
+ void glXDestroyGLXPbufferSGIX (Display* dpy, GLXPbufferSGIX pbuf)
+ void glXGetSelectedEventSGIX (Display* dpy, GLXDrawable drawable, unsigned long* mask)
+ void glXQueryGLXPbufferSGIX (Display* dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int* value)
+ void glXSelectEventSGIX (Display* dpy, GLXDrawable drawable, unsigned long mask)
+ typedef XID GLXPbufferSGIX
+ typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_swap_barrier b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_swap_barrier
new file mode 100644
index 0000000..61447c6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_swap_barrier
@@ -0,0 +1,6 @@
+GLX_SGIX_swap_barrier
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGIX_swap_barrier
+
+ void glXBindSwapBarrierSGIX (Display* dpy, GLXDrawable drawable, int barrier)
+ Bool glXQueryMaxSwapBarriersSGIX (Display* dpy, int screen, int* max)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_swap_group b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_swap_group
new file mode 100644
index 0000000..790ea6b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_swap_group
@@ -0,0 +1,5 @@
+GLX_SGIX_swap_group
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGIX_swap_group
+
+ void glXJoinSwapGroupSGIX (Display* dpy, GLXDrawable drawable, GLXDrawable member)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_video_resize b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_video_resize
new file mode 100644
index 0000000..fd834bf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_video_resize
@@ -0,0 +1,11 @@
+GLX_SGIX_video_resize
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGIX_video_resize
+
+ GLX_SYNC_FRAME_SGIX 0x00000000
+ GLX_SYNC_SWAP_SGIX 0x00000001
+ int glXBindChannelToWindowSGIX (Display* display, int screen, int channel, Window window)
+ int glXChannelRectSGIX (Display* display, int screen, int channel, int x, int y, int w, int h)
+ int glXChannelRectSyncSGIX (Display* display, int screen, int channel, GLenum synctype)
+ int glXQueryChannelDeltasSGIX (Display* display, int screen, int channel, int* x, int* y, int* w, int* h)
+ int glXQueryChannelRectSGIX (Display* display, int screen, int channel, int* dx, int* dy, int* dw, int* dh)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_visual_select_group b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_visual_select_group
new file mode 100644
index 0000000..6aed22a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGIX_visual_select_group
@@ -0,0 +1,5 @@
+GLX_SGIX_visual_select_group
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGIX_visual_select_group
+
+ GLX_VISUAL_SELECT_GROUP_SGIX 0x8028
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_cushion b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_cushion
new file mode 100644
index 0000000..99ab02f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_cushion
@@ -0,0 +1,5 @@
+GLX_SGI_cushion
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGI_cushion
+
+ void glXCushionSGI (Display* dpy, Window window, float cushion)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_make_current_read b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_make_current_read
new file mode 100644
index 0000000..2a4d8fc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_make_current_read
@@ -0,0 +1,6 @@
+GLX_SGI_make_current_read
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGI_make_current_read
+
+ GLXDrawable glXGetCurrentReadDrawableSGI (void)
+ Bool glXMakeCurrentReadSGI (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_swap_control b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_swap_control
new file mode 100644
index 0000000..40032fa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_swap_control
@@ -0,0 +1,5 @@
+GLX_SGI_swap_control
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGI_swap_control
+
+ int glXSwapIntervalSGI (int interval)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_video_sync b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_video_sync
new file mode 100644
index 0000000..9959651
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SGI_video_sync
@@ -0,0 +1,6 @@
+GLX_SGI_video_sync
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SGI_video_sync
+
+ int glXGetVideoSyncSGI (unsigned int* count)
+ int glXWaitVideoSyncSGI (int divisor, int remainder, unsigned int* count)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SUN_get_transparent_index b/engine-ocean/External/glew/auto/extensions/gl/GLX_SUN_get_transparent_index
new file mode 100644
index 0000000..cb52690
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SUN_get_transparent_index
@@ -0,0 +1,5 @@
+GLX_SUN_get_transparent_index
+https://www.khronos.org/registry/egl/specs/eglspec.1.5.pdf
+GLX_SUN_get_transparent_index
+
+ Status glXGetTransparentIndexSUN (Display* dpy, Window overlay, Window underlay, unsigned long* pTransparentIndex)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GLX_SUN_video_resize b/engine-ocean/External/glew/auto/extensions/gl/GLX_SUN_video_resize
new file mode 100644
index 0000000..3a5a176
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GLX_SUN_video_resize
@@ -0,0 +1,8 @@
+GLX_SUN_video_resize
+http://wwws.sun.com/software/graphics/opengl/extensions/glx_sun_video_resize.txt
+GLX_SUN_video_resize
+
+ GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD
+ GLX_VIDEO_RESIZE_SUN 0x8171
+ int glXVideoResizeSUN (Display* display, GLXDrawable window, float factor)
+ int glXGetVideoResizeSUN (Display* display, GLXDrawable window, float* factor)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_multisample
new file mode 100644
index 0000000..c7f62ff
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_multisample
@@ -0,0 +1,8 @@
+GL_3DFX_multisample
+https://www.khronos.org/registry/OpenGL/extensions/3DFX/3DFX_multisample.txt
+GL_3DFX_multisample
+
+ GL_MULTISAMPLE_3DFX 0x86B2
+ GL_SAMPLE_BUFFERS_3DFX 0x86B3
+ GL_SAMPLES_3DFX 0x86B4
+ GL_MULTISAMPLE_BIT_3DFX 0x20000000
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_tbuffer b/engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_tbuffer
new file mode 100644
index 0000000..c4e1074
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_tbuffer
@@ -0,0 +1,5 @@
+GL_3DFX_tbuffer
+https://www.khronos.org/registry/OpenGL/extensions/3DFX/3DFX_tbuffer.txt
+GL_3DFX_tbuffer
+
+ void glTbufferMask3DFX (GLuint mask)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_texture_compression_FXT1 b/engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_texture_compression_FXT1
new file mode 100644
index 0000000..f66e76c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_3DFX_texture_compression_FXT1
@@ -0,0 +1,6 @@
+GL_3DFX_texture_compression_FXT1
+https://www.khronos.org/registry/OpenGL/extensions/3DFX/3DFX_texture_compression_FXT1.txt
+GL_3DFX_texture_compression_FXT1
+
+ GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0
+ GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_blend_minmax_factor b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_blend_minmax_factor
new file mode 100644
index 0000000..b0d67f5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_blend_minmax_factor
@@ -0,0 +1,6 @@
+GL_AMD_blend_minmax_factor
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_blend_minmax_factor.txt
+GL_AMD_blend_minmax_factor
+
+ GL_FACTOR_MIN_AMD 0x901C
+ GL_FACTOR_MAX_AMD 0x901D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_compressed_3DC_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_compressed_3DC_texture
new file mode 100644
index 0000000..29b87f9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_compressed_3DC_texture
@@ -0,0 +1,6 @@
+GL_AMD_compressed_3DC_texture
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_compressed_3DC_texture.txt
+GL_AMD_compressed_3DC_texture
+
+ GL_3DC_X_AMD 0x87F9
+ GL_3DC_XY_AMD 0x87FA
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_compressed_ATC_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_compressed_ATC_texture
new file mode 100644
index 0000000..16e680e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_compressed_ATC_texture
@@ -0,0 +1,7 @@
+GL_AMD_compressed_ATC_texture
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_compressed_ATC_texture.txt
+GL_AMD_compressed_ATC_texture
+
+ GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
+ GL_ATC_RGB_AMD 0x8C92
+ GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_conservative_depth b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_conservative_depth
new file mode 100644
index 0000000..49008ed
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_conservative_depth
@@ -0,0 +1,4 @@
+GL_AMD_conservative_depth
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_conservative_depth.txt
+GL_AMD_conservative_depth
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_debug_output b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_debug_output
new file mode 100644
index 0000000..8a19a53
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_debug_output
@@ -0,0 +1,23 @@
+GL_AMD_debug_output
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_debug_output.txt
+GL_AMD_debug_output
+
+ GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143
+ GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
+ GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145
+ GL_DEBUG_SEVERITY_HIGH_AMD 0x9146
+ GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147
+ GL_DEBUG_SEVERITY_LOW_AMD 0x9148
+ GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149
+ GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A
+ GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B
+ GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C
+ GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D
+ GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E
+ GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F
+ GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
+ void glDebugMessageCallbackAMD (GLDEBUGPROCAMD callback, void *userParam)
+ void glDebugMessageEnableAMD (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled)
+ void glDebugMessageInsertAMD (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar* buf)
+ GLuint glGetDebugMessageLogAMD (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, GLchar* message)
+ typedef void (GLAPIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, void* userParam)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_depth_clamp_separate b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_depth_clamp_separate
new file mode 100644
index 0000000..3089342
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_depth_clamp_separate
@@ -0,0 +1,6 @@
+GL_AMD_depth_clamp_separate
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_depth_clamp_separate.txt
+GL_AMD_depth_clamp_separate
+
+ GL_DEPTH_CLAMP_NEAR_AMD 0x901E
+ GL_DEPTH_CLAMP_FAR_AMD 0x901F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_draw_buffers_blend b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_draw_buffers_blend
new file mode 100644
index 0000000..1564d9d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_draw_buffers_blend
@@ -0,0 +1,8 @@
+GL_AMD_draw_buffers_blend
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_draw_buffers_blend.txt
+GL_AMD_draw_buffers_blend
+
+ void glBlendEquationIndexedAMD (GLuint buf, GLenum mode)
+ void glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+ void glBlendFuncIndexedAMD (GLuint buf, GLenum src, GLenum dst)
+ void glBlendFuncSeparateIndexedAMD (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_framebuffer_multisample_advanced b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_framebuffer_multisample_advanced
new file mode 100644
index 0000000..a4d21e6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_framebuffer_multisample_advanced
@@ -0,0 +1,12 @@
+GL_AMD_framebuffer_multisample_advanced
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_framebuffer_multisample_advanced.txt
+GL_AMD_framebuffer_multisample_advanced
+
+ GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2
+ GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3
+ GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4
+ GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5
+ GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6
+ GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7
+ void glNamedRenderbufferStorageMultisampleAdvancedAMD (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height)
+ void glRenderbufferStorageMultisampleAdvancedAMD (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_framebuffer_sample_positions b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_framebuffer_sample_positions
new file mode 100644
index 0000000..edb8474
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_framebuffer_sample_positions
@@ -0,0 +1,12 @@
+GL_AMD_framebuffer_sample_positions
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_framebuffer_sample_positions.txt
+GL_AMD_framebuffer_sample_positions
+
+ GL_SUBSAMPLE_DISTANCE_AMD 0x883F
+ GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD 0x91AE
+ GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD 0x91AF
+ GL_ALL_PIXELS_AMD 0xFFFFFFFF
+ void glFramebufferSamplePositionsfvAMD (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat* values)
+ void glGetFramebufferParameterfvAMD (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values)
+ void glGetNamedFramebufferParameterfvAMD (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values)
+ void glNamedFramebufferSamplePositionsfvAMD (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat* values)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gcn_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gcn_shader
new file mode 100644
index 0000000..9ade26b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gcn_shader
@@ -0,0 +1,4 @@
+GL_AMD_gcn_shader
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_gcn_shader.txt
+GL_AMD_gcn_shader
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_half_float b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_half_float
new file mode 100644
index 0000000..c15f6f4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_half_float
@@ -0,0 +1,17 @@
+GL_AMD_gpu_shader_half_float
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_gpu_shader_half_float.txt
+GL_AMD_gpu_shader_half_float
+
+ GL_FLOAT16_NV 0x8FF8
+ GL_FLOAT16_VEC2_NV 0x8FF9
+ GL_FLOAT16_VEC3_NV 0x8FFA
+ GL_FLOAT16_VEC4_NV 0x8FFB
+ GL_FLOAT16_MAT2_AMD 0x91C5
+ GL_FLOAT16_MAT3_AMD 0x91C6
+ GL_FLOAT16_MAT4_AMD 0x91C7
+ GL_FLOAT16_MAT2x3_AMD 0x91C8
+ GL_FLOAT16_MAT2x4_AMD 0x91C9
+ GL_FLOAT16_MAT3x2_AMD 0x91CA
+ GL_FLOAT16_MAT3x4_AMD 0x91CB
+ GL_FLOAT16_MAT4x2_AMD 0x91CC
+ GL_FLOAT16_MAT4x3_AMD 0x91CD
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_half_float_fetch b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_half_float_fetch
new file mode 100644
index 0000000..8cbc117
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_half_float_fetch
@@ -0,0 +1,33 @@
+GL_AMD_gpu_shader_half_float_fetch
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_gpu_shader_half_float_fetch.txt
+GL_AMD_gpu_shader_half_float_fetch
+
+ GL_FLOAT16_SAMPLER_1D_AMD 0x91CE
+ GL_FLOAT16_SAMPLER_2D_AMD 0x91CF
+ GL_FLOAT16_SAMPLER_3D_AMD 0x91D0
+ GL_FLOAT16_SAMPLER_CUBE_AMD 0x91D1
+ GL_FLOAT16_SAMPLER_2D_RECT_AMD 0x91D2
+ GL_FLOAT16_SAMPLER_1D_ARRAY_AMD 0x91D3
+ GL_FLOAT16_SAMPLER_2D_ARRAY_AMD 0x91D4
+ GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_AMD 0x91D5
+ GL_FLOAT16_SAMPLER_BUFFER_AMD 0x91D6
+ GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_AMD 0x91D7
+ GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_ARRAY_AMD 0x91D8
+ GL_FLOAT16_SAMPLER_1D_SHADOW_AMD 0x91D9
+ GL_FLOAT16_SAMPLER_2D_SHADOW_AMD 0x91DA
+ GL_FLOAT16_SAMPLER_2D_RECT_SHADOW_AMD 0x91DB
+ GL_FLOAT16_SAMPLER_1D_ARRAY_SHADOW_AMD 0x91DC
+ GL_FLOAT16_SAMPLER_2D_ARRAY_SHADOW_AMD 0x91DD
+ GL_FLOAT16_SAMPLER_CUBE_SHADOW_AMD 0x91DE
+ GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_SHADOW_AMD 0x91DF
+ GL_FLOAT16_IMAGE_1D_AMD 0x91E0
+ GL_FLOAT16_IMAGE_2D_AMD 0x91E1
+ GL_FLOAT16_IMAGE_3D_AMD 0x91E2
+ GL_FLOAT16_IMAGE_2D_RECT_AMD 0x91E3
+ GL_FLOAT16_IMAGE_CUBE_AMD 0x91E4
+ GL_FLOAT16_IMAGE_1D_ARRAY_AMD 0x91E5
+ GL_FLOAT16_IMAGE_2D_ARRAY_AMD 0x91E6
+ GL_FLOAT16_IMAGE_CUBE_MAP_ARRAY_AMD 0x91E7
+ GL_FLOAT16_IMAGE_BUFFER_AMD 0x91E8
+ GL_FLOAT16_IMAGE_2D_MULTISAMPLE_AMD 0x91E9
+ GL_FLOAT16_IMAGE_2D_MULTISAMPLE_ARRAY_AMD 0x91EA
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_int16 b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_int16
new file mode 100644
index 0000000..6918da0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_int16
@@ -0,0 +1,4 @@
+GL_AMD_gpu_shader_int16
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_gpu_shader_int16.txt
+GL_AMD_gpu_shader_int16
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_int64 b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_int64
new file mode 100644
index 0000000..5612dbb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_gpu_shader_int64
@@ -0,0 +1,4 @@
+GL_AMD_gpu_shader_int64
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_gpu_shader_int64.txt
+GL_AMD_gpu_shader_int64
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_interleaved_elements b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_interleaved_elements
new file mode 100644
index 0000000..b930ad4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_interleaved_elements
@@ -0,0 +1,14 @@
+GL_AMD_interleaved_elements
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_interleaved_elements.txt
+GL_AMD_interleaved_elements
+
+ GL_RED 0x1903
+ GL_GREEN 0x1904
+ GL_BLUE 0x1905
+ GL_ALPHA 0x1906
+ GL_RG8UI 0x8238
+ GL_RG16UI 0x823A
+ GL_RGBA8UI 0x8D7C
+ GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4
+ GL_VERTEX_ID_SWIZZLE_AMD 0x91A5
+ void glVertexAttribParameteriAMD (GLuint index, GLenum pname, GLint param)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_multi_draw_indirect b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_multi_draw_indirect
new file mode 100644
index 0000000..03efcc2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_multi_draw_indirect
@@ -0,0 +1,6 @@
+GL_AMD_multi_draw_indirect
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_multi_draw_indirect.txt
+GL_AMD_multi_draw_indirect
+
+ void glMultiDrawArraysIndirectAMD (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride)
+ void glMultiDrawElementsIndirectAMD (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_name_gen_delete b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_name_gen_delete
new file mode 100644
index 0000000..f0af15e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_name_gen_delete
@@ -0,0 +1,12 @@
+GL_AMD_name_gen_delete
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_name_gen_delete.txt
+GL_AMD_name_gen_delete
+
+ GL_DATA_BUFFER_AMD 0x9151
+ GL_PERFORMANCE_MONITOR_AMD 0x9152
+ GL_QUERY_OBJECT_AMD 0x9153
+ GL_VERTEX_ARRAY_OBJECT_AMD 0x9154
+ GL_SAMPLER_OBJECT_AMD 0x9155
+ void glDeleteNamesAMD (GLenum identifier, GLuint num, const GLuint* names)
+ void glGenNamesAMD (GLenum identifier, GLuint num, GLuint* names)
+ GLboolean glIsNameAMD (GLenum identifier, GLuint name)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_occlusion_query_event b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_occlusion_query_event
new file mode 100644
index 0000000..a33396d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_occlusion_query_event
@@ -0,0 +1,11 @@
+GL_AMD_occlusion_query_event
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_occlusion_query_event.txt
+GL_AMD_occlusion_query_event
+
+ GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001
+ GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002
+ GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004
+ GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008
+ GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F
+ GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF
+ void glQueryObjectParameteruiAMD (GLenum target, GLuint id, GLenum pname, GLuint param)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_performance_monitor b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_performance_monitor
new file mode 100644
index 0000000..3b9a996
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_performance_monitor
@@ -0,0 +1,22 @@
+GL_AMD_performance_monitor
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_performance_monitor.txt
+GL_AMD_performance_monitor
+
+ GL_COUNTER_TYPE_AMD 0x8BC0
+ GL_COUNTER_RANGE_AMD 0x8BC1
+ GL_UNSIGNED_INT64_AMD 0x8BC2
+ GL_PERCENTAGE_AMD 0x8BC3
+ GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
+ GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
+ GL_PERFMON_RESULT_AMD 0x8BC6
+ void glBeginPerfMonitorAMD (GLuint monitor)
+ void glDeletePerfMonitorsAMD (GLsizei n, GLuint* monitors)
+ void glEndPerfMonitorAMD (GLuint monitor)
+ void glGenPerfMonitorsAMD (GLsizei n, GLuint* monitors)
+ void glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten)
+ void glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data)
+ void glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar *counterString)
+ void glGetPerfMonitorCountersAMD (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters)
+ void glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei* length, GLchar *groupString)
+ void glGetPerfMonitorGroupsAMD (GLint* numGroups, GLsizei groupsSize, GLuint *groups)
+ void glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_pinned_memory b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_pinned_memory
new file mode 100644
index 0000000..888fbc8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_pinned_memory
@@ -0,0 +1,5 @@
+GL_AMD_pinned_memory
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_pinned_memory.txt
+GL_AMD_pinned_memory
+
+ GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_program_binary_Z400 b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_program_binary_Z400
new file mode 100644
index 0000000..6cedc0f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_program_binary_Z400
@@ -0,0 +1,5 @@
+GL_AMD_program_binary_Z400
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_program_binary_Z400.txt
+GL_AMD_program_binary_Z400
+
+ GL_Z400_BINARY_AMD 0x8740
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_query_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_query_buffer_object
new file mode 100644
index 0000000..f31abc6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_query_buffer_object
@@ -0,0 +1,7 @@
+GL_AMD_query_buffer_object
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_query_buffer_object.txt
+GL_AMD_query_buffer_object
+
+ GL_QUERY_BUFFER_AMD 0x9192
+ GL_QUERY_BUFFER_BINDING_AMD 0x9193
+ GL_QUERY_RESULT_NO_WAIT_AMD 0x9194
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_sample_positions b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_sample_positions
new file mode 100644
index 0000000..9d62bb6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_sample_positions
@@ -0,0 +1,6 @@
+GL_AMD_sample_positions
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_sample_positions.txt
+GL_AMD_sample_positions
+
+ GL_SUBSAMPLE_DISTANCE_AMD 0x883F
+ void glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLfloat* val)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_seamless_cubemap_per_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_seamless_cubemap_per_texture
new file mode 100644
index 0000000..e12e2aa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_seamless_cubemap_per_texture
@@ -0,0 +1,5 @@
+GL_AMD_seamless_cubemap_per_texture
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_seamless_cubemap_per_texture.txt
+GL_AMD_seamless_cubemap_per_texture
+
+ GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_atomic_counter_ops b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_atomic_counter_ops
new file mode 100644
index 0000000..5557a69
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_atomic_counter_ops
@@ -0,0 +1,4 @@
+GL_AMD_shader_atomic_counter_ops
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_atomic_counter_ops.txt
+GL_AMD_shader_atomic_counter_ops
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_ballot b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_ballot
new file mode 100644
index 0000000..53283fd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_ballot
@@ -0,0 +1,4 @@
+GL_AMD_shader_ballot
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_ballot.txt
+GL_AMD_shader_ballot
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_explicit_vertex_parameter b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_explicit_vertex_parameter
new file mode 100644
index 0000000..58d38eb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_explicit_vertex_parameter
@@ -0,0 +1,4 @@
+GL_AMD_shader_explicit_vertex_parameter
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_explicit_vertex_parameter.txt
+GL_AMD_shader_explicit_vertex_parameter
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_image_load_store_lod b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_image_load_store_lod
new file mode 100644
index 0000000..58e4196
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_image_load_store_lod
@@ -0,0 +1,4 @@
+GL_AMD_shader_image_load_store_lod
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_image_load_store_lod.txt
+GL_AMD_shader_image_load_store_lod
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_stencil_export b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_stencil_export
new file mode 100644
index 0000000..b49a254
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_stencil_export
@@ -0,0 +1,4 @@
+GL_AMD_shader_stencil_export
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_stencil_export.txt
+GL_AMD_shader_stencil_export
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_stencil_value_export b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_stencil_value_export
new file mode 100644
index 0000000..4ac4b1f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_stencil_value_export
@@ -0,0 +1,4 @@
+GL_AMD_shader_stencil_value_export
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_stencil_value_export.txt
+GL_AMD_shader_stencil_value_export
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_trinary_minmax b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_trinary_minmax
new file mode 100644
index 0000000..b9d6e5c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_shader_trinary_minmax
@@ -0,0 +1,4 @@
+GL_AMD_shader_trinary_minmax
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_trinary_minmax.txt
+GL_AMD_shader_trinary_minmax
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_sparse_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_sparse_texture
new file mode 100644
index 0000000..21ff28e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_sparse_texture
@@ -0,0 +1,15 @@
+GL_AMD_sparse_texture
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_sparse_texture.txt
+GL_AMD_sparse_texture
+
+ GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001
+ GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195
+ GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196
+ GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197
+ GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198
+ GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199
+ GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A
+ GL_MIN_SPARSE_LEVEL_AMD 0x919B
+ GL_MIN_LOD_WARNING_AMD 0x919C
+ void glTexStorageSparseAMD (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags)
+ void glTextureStorageSparseAMD (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_stencil_operation_extended b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_stencil_operation_extended
new file mode 100644
index 0000000..8aceec1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_stencil_operation_extended
@@ -0,0 +1,9 @@
+GL_AMD_stencil_operation_extended
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_stencil_operation_extended.txt
+GL_AMD_stencil_operation_extended
+
+ GL_SET_AMD 0x874A
+ GL_REPLACE_VALUE_AMD 0x874B
+ GL_STENCIL_OP_VALUE_AMD 0x874C
+ GL_STENCIL_BACK_OP_VALUE_AMD 0x874D
+ void glStencilOpValueAMD (GLenum face, GLuint value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_texture_gather_bias_lod b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_texture_gather_bias_lod
new file mode 100644
index 0000000..4ef8020
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_texture_gather_bias_lod
@@ -0,0 +1,4 @@
+GL_AMD_texture_gather_bias_lod
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_texture_gather_bias_lod.txt
+GL_AMD_texture_gather_bias_lod
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_texture_texture4 b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_texture_texture4
new file mode 100644
index 0000000..bc71132
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_texture_texture4
@@ -0,0 +1,4 @@
+GL_AMD_texture_texture4
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_texture_texture4.txt
+GL_AMD_texture_texture4
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_transform_feedback3_lines_triangles b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_transform_feedback3_lines_triangles
new file mode 100644
index 0000000..ff7b54a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_transform_feedback3_lines_triangles
@@ -0,0 +1,4 @@
+GL_AMD_transform_feedback3_lines_triangles
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_transform_feedback3_lines_triangles.txt
+GL_AMD_transform_feedback3_lines_triangles
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_transform_feedback4 b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_transform_feedback4
new file mode 100644
index 0000000..baa0b4f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_transform_feedback4
@@ -0,0 +1,5 @@
+GL_AMD_transform_feedback4
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_transform_feedback4.txt
+GL_AMD_transform_feedback4
+
+ GL_STREAM_RASTERIZATION_AMD 0x91A0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_layer b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_layer
new file mode 100644
index 0000000..c18b26b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_layer
@@ -0,0 +1,4 @@
+GL_AMD_vertex_shader_layer
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_layer.txt
+GL_AMD_vertex_shader_layer
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_tessellator b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_tessellator
new file mode 100644
index 0000000..d183070
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_tessellator
@@ -0,0 +1,13 @@
+GL_AMD_vertex_shader_tessellator
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_tessellator.txt
+GL_AMD_vertex_shader_tessellator
+
+ GL_SAMPLER_BUFFER_AMD 0x9001
+ GL_INT_SAMPLER_BUFFER_AMD 0x9002
+ GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003
+ GL_TESSELLATION_MODE_AMD 0x9004
+ GL_TESSELLATION_FACTOR_AMD 0x9005
+ GL_DISCRETE_AMD 0x9006
+ GL_CONTINUOUS_AMD 0x9007
+ void glTessellationFactorAMD (GLfloat factor)
+ void glTessellationModeAMD (GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_viewport_index b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_viewport_index
new file mode 100644
index 0000000..a36f42d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_AMD_vertex_shader_viewport_index
@@ -0,0 +1,4 @@
+GL_AMD_vertex_shader_viewport_index
+https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_vertex_shader_viewport_index.txt
+GL_AMD_vertex_shader_viewport_index
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANDROID_extension_pack_es31a b/engine-ocean/External/glew/auto/extensions/gl/GL_ANDROID_extension_pack_es31a
new file mode 100644
index 0000000..c5def68
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANDROID_extension_pack_es31a
@@ -0,0 +1,4 @@
+GL_ANDROID_extension_pack_es31a
+https://www.khronos.org/registry/OpenGL/extensions/ANDROID/ANDROID_extension_pack_es31a.txt
+GL_ANDROID_extension_pack_es31a
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_depth_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_depth_texture
new file mode 100644
index 0000000..3849305
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_depth_texture
@@ -0,0 +1,4 @@
+GL_ANGLE_depth_texture
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/depth_texture.txt
+GL_ANGLE_depth_texture
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_framebuffer_blit b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_framebuffer_blit
new file mode 100644
index 0000000..57a7a51
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_framebuffer_blit
@@ -0,0 +1,9 @@
+GL_ANGLE_framebuffer_blit
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/framebuffer_blit.txt
+GL_ANGLE_framebuffer_blit
+
+ GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6
+ GL_READ_FRAMEBUFFER_ANGLE 0x8CA8
+ GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9
+ GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA
+ void glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_framebuffer_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_framebuffer_multisample
new file mode 100644
index 0000000..857a3ad
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_framebuffer_multisample
@@ -0,0 +1,8 @@
+GL_ANGLE_framebuffer_multisample
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/framebuffer_multisample.txt
+GL_ANGLE_framebuffer_multisample
+
+ GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB
+ GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56
+ GL_MAX_SAMPLES_ANGLE 0x8D57
+ void glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_instanced_arrays b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_instanced_arrays
new file mode 100644
index 0000000..4a4c390
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_instanced_arrays
@@ -0,0 +1,8 @@
+GL_ANGLE_instanced_arrays
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/instanced_arrays.txt
+GL_ANGLE_instanced_arrays
+
+ GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE
+ void glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount)
+ void glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)
+ void glVertexAttribDivisorANGLE (GLuint index, GLuint divisor)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_pack_reverse_row_order b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_pack_reverse_row_order
new file mode 100644
index 0000000..5c59c51
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_pack_reverse_row_order
@@ -0,0 +1,5 @@
+GL_ANGLE_pack_reverse_row_order
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/pack_reverse_row_order.txt
+GL_ANGLE_pack_reverse_row_order
+
+ GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_program_binary b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_program_binary
new file mode 100644
index 0000000..dec7f06
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_program_binary
@@ -0,0 +1,5 @@
+GL_ANGLE_program_binary
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/program_binary.txt
+GL_ANGLE_program_binary
+
+ GL_PROGRAM_BINARY_ANGLE 0x93A6
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt1 b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt1
new file mode 100644
index 0000000..1c12eb6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt1
@@ -0,0 +1,8 @@
+GL_ANGLE_texture_compression_dxt1
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/texture_compression_dxt.txt
+GL_ANGLE_texture_compression_dxt1
+
+ GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0
+ GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1
+ GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
+ GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt3 b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt3
new file mode 100644
index 0000000..ccaec40
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt3
@@ -0,0 +1,8 @@
+GL_ANGLE_texture_compression_dxt3
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/texture_compression_dxt.txt
+GL_ANGLE_texture_compression_dxt3
+
+ GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0
+ GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1
+ GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
+ GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt5 b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt5
new file mode 100644
index 0000000..a0f1720
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_compression_dxt5
@@ -0,0 +1,8 @@
+GL_ANGLE_texture_compression_dxt5
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/texture_compression_dxt.txt
+GL_ANGLE_texture_compression_dxt5
+
+ GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0
+ GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1
+ GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
+ GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_usage b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_usage
new file mode 100644
index 0000000..f902311
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_texture_usage
@@ -0,0 +1,6 @@
+GL_ANGLE_texture_usage
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/texture_usage.txt
+GL_ANGLE_texture_usage
+
+ GL_TEXTURE_USAGE_ANGLE 0x93A2
+ GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_timer_query b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_timer_query
new file mode 100644
index 0000000..8b46da8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_timer_query
@@ -0,0 +1,21 @@
+GL_ANGLE_timer_query
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/timer_query.txt
+GL_ANGLE_timer_query
+
+ GL_QUERY_COUNTER_BITS_ANGLE 0x8864
+ GL_CURRENT_QUERY_ANGLE 0x8865
+ GL_QUERY_RESULT_ANGLE 0x8866
+ GL_QUERY_RESULT_AVAILABLE_ANGLE 0x8867
+ GL_TIME_ELAPSED_ANGLE 0x88BF
+ GL_TIMESTAMP_ANGLE 0x8E28
+ void glBeginQueryANGLE (GLenum target, GLuint id)
+ void glDeleteQueriesANGLE (GLsizei n, const GLuint* ids)
+ void glEndQueryANGLE (GLenum target)
+ void glGenQueriesANGLE (GLsizei n, GLuint* ids)
+ void glGetQueryObjecti64vANGLE (GLuint id, GLenum pname, GLint64* params)
+ void glGetQueryObjectivANGLE (GLuint id, GLenum pname, GLint* params)
+ void glGetQueryObjectui64vANGLE (GLuint id, GLenum pname, GLuint64* params)
+ void glGetQueryObjectuivANGLE (GLuint id, GLenum pname, GLuint* params)
+ void glGetQueryivANGLE (GLenum target, GLenum pname, GLint* params)
+ GLboolean glIsQueryANGLE (GLuint id)
+ void glQueryCounterANGLE (GLuint id, GLenum target)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_translated_shader_source b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_translated_shader_source
new file mode 100644
index 0000000..dee5768
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ANGLE_translated_shader_source
@@ -0,0 +1,6 @@
+GL_ANGLE_translated_shader_source
+https://www.khronos.org/registry/OpenGL/extensions/ANGLE/translated_shader_source.txt
+GL_ANGLE_translated_shader_source
+
+ GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0
+ void glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_aux_depth_stencil b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_aux_depth_stencil
new file mode 100644
index 0000000..19c979b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_aux_depth_stencil
@@ -0,0 +1,5 @@
+GL_APPLE_aux_depth_stencil
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_aux_depth_stencil.txt
+GL_APPLE_aux_depth_stencil
+
+ GL_AUX_DEPTH_STENCIL_APPLE 0x8A14
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_client_storage b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_client_storage
new file mode 100644
index 0000000..fac0225
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_client_storage
@@ -0,0 +1,5 @@
+GL_APPLE_client_storage
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_client_storage.txt
+GL_APPLE_client_storage
+
+ GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_clip_distance b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_clip_distance
new file mode 100644
index 0000000..83c12ca
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_clip_distance
@@ -0,0 +1,13 @@
+GL_APPLE_clip_distance
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_clip_distance.txt
+GL_APPLE_clip_distance
+
+ GL_MAX_CLIP_DISTANCES_APPLE 0x0D32
+ GL_CLIP_DISTANCE0_APPLE 0x3000
+ GL_CLIP_DISTANCE1_APPLE 0x3001
+ GL_CLIP_DISTANCE2_APPLE 0x3002
+ GL_CLIP_DISTANCE3_APPLE 0x3003
+ GL_CLIP_DISTANCE4_APPLE 0x3004
+ GL_CLIP_DISTANCE5_APPLE 0x3005
+ GL_CLIP_DISTANCE6_APPLE 0x3006
+ GL_CLIP_DISTANCE7_APPLE 0x3007
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_color_buffer_packed_float b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_color_buffer_packed_float
new file mode 100644
index 0000000..d7bb6b3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_color_buffer_packed_float
@@ -0,0 +1,4 @@
+GL_APPLE_color_buffer_packed_float
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_color_buffer_packed_float.txt
+GL_APPLE_color_buffer_packed_float
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_copy_texture_levels b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_copy_texture_levels
new file mode 100644
index 0000000..ab2b389
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_copy_texture_levels
@@ -0,0 +1,5 @@
+GL_APPLE_copy_texture_levels
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_copy_texture_levels.txt
+GL_APPLE_copy_texture_levels
+
+ void glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_element_array b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_element_array
new file mode 100644
index 0000000..4db72b9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_element_array
@@ -0,0 +1,12 @@
+GL_APPLE_element_array
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_element_array.txt
+GL_APPLE_element_array
+
+ GL_ELEMENT_ARRAY_APPLE 0x8A0C
+ GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D
+ GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E
+ void glDrawElementArrayAPPLE (GLenum mode, GLint first, GLsizei count)
+ void glDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count)
+ void glElementPointerAPPLE (GLenum type, const void *pointer)
+ void glMultiDrawElementArrayAPPLE (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount)
+ void glMultiDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_fence b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_fence
new file mode 100644
index 0000000..d26a7d7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_fence
@@ -0,0 +1,14 @@
+GL_APPLE_fence
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_fence.txt
+GL_APPLE_fence
+
+ GL_DRAW_PIXELS_APPLE 0x8A0A
+ GL_FENCE_APPLE 0x8A0B
+ void glDeleteFencesAPPLE (GLsizei n, const GLuint* fences)
+ void glFinishFenceAPPLE (GLuint fence)
+ void glFinishObjectAPPLE (GLenum object, GLint name)
+ void glGenFencesAPPLE (GLsizei n, GLuint* fences)
+ GLboolean glIsFenceAPPLE (GLuint fence)
+ void glSetFenceAPPLE (GLuint fence)
+ GLboolean glTestFenceAPPLE (GLuint fence)
+ GLboolean glTestObjectAPPLE (GLenum object, GLuint name)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_float_pixels b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_float_pixels
new file mode 100644
index 0000000..3eacd42
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_float_pixels
@@ -0,0 +1,18 @@
+GL_APPLE_float_pixels
+http://www.opengl.org/registry/specs/APPLE/float_pixels.txt
+GL_APPLE_float_pixels
+
+ GL_HALF_APPLE 0x140B
+ GL_COLOR_FLOAT_APPLE 0x8A0F
+ GL_RGBA_FLOAT32_APPLE 0x8814
+ GL_RGB_FLOAT32_APPLE 0x8815
+ GL_ALPHA_FLOAT32_APPLE 0x8816
+ GL_INTENSITY_FLOAT32_APPLE 0x8817
+ GL_LUMINANCE_FLOAT32_APPLE 0x8818
+ GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
+ GL_RGBA_FLOAT16_APPLE 0x881A
+ GL_RGB_FLOAT16_APPLE 0x881B
+ GL_ALPHA_FLOAT16_APPLE 0x881C
+ GL_INTENSITY_FLOAT16_APPLE 0x881D
+ GL_LUMINANCE_FLOAT16_APPLE 0x881E
+ GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_flush_buffer_range b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_flush_buffer_range
new file mode 100644
index 0000000..df3b385
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_flush_buffer_range
@@ -0,0 +1,8 @@
+GL_APPLE_flush_buffer_range
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_flush_buffer_range.txt
+GL_APPLE_flush_buffer_range
+
+ GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
+ GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13
+ void glBufferParameteriAPPLE (GLenum target, GLenum pname, GLint param)
+ void glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_framebuffer_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_framebuffer_multisample
new file mode 100644
index 0000000..ebfd931
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_framebuffer_multisample
@@ -0,0 +1,13 @@
+GL_APPLE_framebuffer_multisample
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_framebuffer_multisample.txt
+GL_APPLE_framebuffer_multisample
+
+ GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6
+ GL_READ_FRAMEBUFFER_APPLE 0x8CA8
+ GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9
+ GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA
+ GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB
+ GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56
+ GL_MAX_SAMPLES_APPLE 0x8D57
+ void glRenderbufferStorageMultisampleAPPLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
+ void glResolveMultisampleFramebufferAPPLE (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_object_purgeable b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_object_purgeable
new file mode 100644
index 0000000..3d7b4f6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_object_purgeable
@@ -0,0 +1,13 @@
+GL_APPLE_object_purgeable
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_object_purgeable.txt
+GL_APPLE_object_purgeable
+
+ GL_BUFFER_OBJECT_APPLE 0x85B3
+ GL_RELEASED_APPLE 0x8A19
+ GL_VOLATILE_APPLE 0x8A1A
+ GL_RETAINED_APPLE 0x8A1B
+ GL_UNDEFINED_APPLE 0x8A1C
+ GL_PURGEABLE_APPLE 0x8A1D
+ void glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint* params)
+ GLenum glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option)
+ GLenum glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_pixel_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_pixel_buffer
new file mode 100644
index 0000000..1a8ad97
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_pixel_buffer
@@ -0,0 +1,5 @@
+GL_APPLE_pixel_buffer
+
+GL_APPLE_pixel_buffer
+
+ GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_rgb_422 b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_rgb_422
new file mode 100644
index 0000000..d4ae4d6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_rgb_422
@@ -0,0 +1,8 @@
+GL_APPLE_rgb_422
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_rgb_422.txt
+GL_APPLE_rgb_422
+
+ GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
+ GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
+ GL_RGB_422_APPLE 0x8A1F
+ GL_RGB_RAW_422_APPLE 0x8A51
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_row_bytes b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_row_bytes
new file mode 100644
index 0000000..674e007
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_row_bytes
@@ -0,0 +1,6 @@
+GL_APPLE_row_bytes
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_row_bytes.txt
+GL_APPLE_row_bytes
+
+ GL_PACK_ROW_BYTES_APPLE 0x8A15
+ GL_UNPACK_ROW_BYTES_APPLE 0x8A16
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_specular_vector b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_specular_vector
new file mode 100644
index 0000000..a0f324b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_specular_vector
@@ -0,0 +1,5 @@
+GL_APPLE_specular_vector
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_specular_vector.txt
+GL_APPLE_specular_vector
+
+ GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_sync b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_sync
new file mode 100644
index 0000000..697314c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_sync
@@ -0,0 +1,27 @@
+GL_APPLE_sync
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_sync.txt
+GL_APPLE_sync
+
+ GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull
+ GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001
+ GL_SYNC_OBJECT_APPLE 0x8A53
+ GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111
+ GL_OBJECT_TYPE_APPLE 0x9112
+ GL_SYNC_CONDITION_APPLE 0x9113
+ GL_SYNC_STATUS_APPLE 0x9114
+ GL_SYNC_FLAGS_APPLE 0x9115
+ GL_SYNC_FENCE_APPLE 0x9116
+ GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117
+ GL_UNSIGNALED_APPLE 0x9118
+ GL_SIGNALED_APPLE 0x9119
+ GL_ALREADY_SIGNALED_APPLE 0x911A
+ GL_TIMEOUT_EXPIRED_APPLE 0x911B
+ GL_CONDITION_SATISFIED_APPLE 0x911C
+ GL_WAIT_FAILED_APPLE 0x911D
+ GLenum glClientWaitSyncAPPLE (GLsync GLsync, GLbitfield flags, GLuint64 timeout)
+ void glDeleteSyncAPPLE (GLsync GLsync)
+ GLsync glFenceSyncAPPLE (GLenum condition, GLbitfield flags)
+ void glGetInteger64vAPPLE (GLenum pname, GLint64* params)
+ void glGetSyncivAPPLE (GLsync GLsync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values)
+ GLboolean glIsSyncAPPLE (GLsync GLsync)
+ void glWaitSyncAPPLE (GLsync GLsync, GLbitfield flags, GLuint64 timeout)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_2D_limited_npot b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_2D_limited_npot
new file mode 100644
index 0000000..18113c2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_2D_limited_npot
@@ -0,0 +1,4 @@
+GL_APPLE_texture_2D_limited_npot
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_texture_2D_limited_npot.txt
+GL_APPLE_texture_2D_limited_npot
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_format_BGRA8888 b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_format_BGRA8888
new file mode 100644
index 0000000..85aa105
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_format_BGRA8888
@@ -0,0 +1,6 @@
+GL_APPLE_texture_format_BGRA8888
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_texture_format_BGRA8888.txt
+GL_APPLE_texture_format_BGRA8888
+
+ GL_BGRA_EXT 0x80E1
+ GL_BGRA8_EXT 0x93A1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_max_level b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_max_level
new file mode 100644
index 0000000..284c5dd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_max_level
@@ -0,0 +1,5 @@
+GL_APPLE_texture_max_level
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_texture_max_level.txt
+GL_APPLE_texture_max_level
+
+ GL_TEXTURE_MAX_LEVEL_APPLE 0x813D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_packed_float b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_packed_float
new file mode 100644
index 0000000..7164955
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_packed_float
@@ -0,0 +1,8 @@
+GL_APPLE_texture_packed_float
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_texture_packed_float.txt
+GL_APPLE_texture_packed_float
+
+ GL_R11F_G11F_B10F_APPLE 0x8C3A
+ GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B
+ GL_RGB9_E5_APPLE 0x8C3D
+ GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_range b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_range
new file mode 100644
index 0000000..e2bf85c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_texture_range
@@ -0,0 +1,13 @@
+GL_APPLE_texture_range
+http://www.opengl.org/registry/specs/APPLE/texture_range.txt
+GL_APPLE_texture_range
+
+ GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
+ GL_STORAGE_PRIVATE_APPLE 0x85BD
+ GL_STORAGE_CACHED_APPLE 0x85BE
+ GL_STORAGE_SHARED_APPLE 0x85BF
+ GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
+ GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
+ void glTextureRangeAPPLE (GLenum target, GLsizei length, void *pointer)
+ void glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, void **params)
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_transform_hint b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_transform_hint
new file mode 100644
index 0000000..0dc9afe
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_transform_hint
@@ -0,0 +1,5 @@
+GL_APPLE_transform_hint
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_transform_hint.txt
+GL_APPLE_transform_hint
+
+ GL_TRANSFORM_HINT_APPLE 0x85B1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_array_object b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_array_object
new file mode 100644
index 0000000..c53d295
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_array_object
@@ -0,0 +1,9 @@
+GL_APPLE_vertex_array_object
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_vertex_array_object.txt
+GL_APPLE_vertex_array_object
+
+ GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5
+ void glBindVertexArrayAPPLE (GLuint array)
+ void glDeleteVertexArraysAPPLE (GLsizei n, const GLuint* arrays)
+ void glGenVertexArraysAPPLE (GLsizei n, const GLuint* arrays)
+ GLboolean glIsVertexArrayAPPLE (GLuint array)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_array_range b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_array_range
new file mode 100644
index 0000000..6dd751c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_array_range
@@ -0,0 +1,15 @@
+GL_APPLE_vertex_array_range
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_vertex_array_range.txt
+GL_APPLE_vertex_array_range
+
+ GL_VERTEX_ARRAY_RANGE_APPLE 0x851D
+ GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
+ GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
+ GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520
+ GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
+ GL_STORAGE_CLIENT_APPLE 0x85B4
+ GL_STORAGE_CACHED_APPLE 0x85BE
+ GL_STORAGE_SHARED_APPLE 0x85BF
+ void glFlushVertexArrayRangeAPPLE (GLsizei length, void *pointer)
+ void glVertexArrayParameteriAPPLE (GLenum pname, GLint param)
+ void glVertexArrayRangeAPPLE (GLsizei length, void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_program_evaluators b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_program_evaluators
new file mode 100644
index 0000000..253fb14
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_vertex_program_evaluators
@@ -0,0 +1,21 @@
+GL_APPLE_vertex_program_evaluators
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_vertex_program_evaluators.txt
+GL_APPLE_vertex_program_evaluators
+
+ GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00
+ GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01
+ GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02
+ GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03
+ GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04
+ GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05
+ GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06
+ GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07
+ GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08
+ GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09
+ void glDisableVertexAttribAPPLE (GLuint index, GLenum pname)
+ void glEnableVertexAttribAPPLE (GLuint index, GLenum pname)
+ GLboolean glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname)
+ void glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+ void glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+ void glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+ void glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_ycbcr_422 b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_ycbcr_422
new file mode 100644
index 0000000..85bf104
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_APPLE_ycbcr_422
@@ -0,0 +1,5 @@
+GL_APPLE_ycbcr_422
+https://www.khronos.org/registry/OpenGL/extensions/APPLE/APPLE_ycbcr_422.txt
+GL_APPLE_ycbcr_422
+
+ GL_YCBCR_422_APPLE 0x85B9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES2_compatibility b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES2_compatibility
new file mode 100644
index 0000000..2789ae9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES2_compatibility
@@ -0,0 +1,26 @@
+GL_ARB_ES2_compatibility
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_ES2_compatibility.txt
+GL_ARB_ES2_compatibility
+
+ GL_FIXED 0x140C
+ GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
+ GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
+ GL_RGB565 0x8D62
+ GL_LOW_FLOAT 0x8DF0
+ GL_MEDIUM_FLOAT 0x8DF1
+ GL_HIGH_FLOAT 0x8DF2
+ GL_LOW_INT 0x8DF3
+ GL_MEDIUM_INT 0x8DF4
+ GL_HIGH_INT 0x8DF5
+ GL_SHADER_BINARY_FORMATS 0x8DF8
+ GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
+ GL_SHADER_COMPILER 0x8DFA
+ GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
+ GL_MAX_VARYING_VECTORS 0x8DFC
+ GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
+ void glClearDepthf (GLclampf d)
+ void glDepthRangef (GLclampf n, GLclampf f)
+ void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision)
+ void glReleaseShaderCompiler (void)
+ void glShaderBinary (GLsizei count, const GLuint* shaders, GLenum binaryformat, const void*binary, GLsizei length)
+ typedef int GLfixed
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_1_compatibility b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_1_compatibility
new file mode 100644
index 0000000..0974ddf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_1_compatibility
@@ -0,0 +1,5 @@
+GL_ARB_ES3_1_compatibility
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_ES3_1_compatibility.txt
+GL_ARB_ES3_1_compatibility
+
+ void glMemoryBarrierByRegion (GLbitfield barriers)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_2_compatibility b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_2_compatibility
new file mode 100644
index 0000000..d18dbba
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_2_compatibility
@@ -0,0 +1,8 @@
+GL_ARB_ES3_2_compatibility
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_ES3_2_compatibility.txt
+GL_ARB_ES3_2_compatibility
+
+ GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE
+ GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381
+ GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382
+ void glPrimitiveBoundingBoxARB (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_compatibility b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_compatibility
new file mode 100644
index 0000000..c0a68d8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_ES3_compatibility
@@ -0,0 +1,18 @@
+GL_ARB_ES3_compatibility
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_ES3_compatibility.txt
+GL_ARB_ES3_compatibility
+
+ GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
+ GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
+ GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
+ GL_MAX_ELEMENT_INDEX 0x8D6B
+ GL_COMPRESSED_R11_EAC 0x9270
+ GL_COMPRESSED_SIGNED_R11_EAC 0x9271
+ GL_COMPRESSED_RG11_EAC 0x9272
+ GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
+ GL_COMPRESSED_RGB8_ETC2 0x9274
+ GL_COMPRESSED_SRGB8_ETC2 0x9275
+ GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
+ GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
+ GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
+ GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_arrays_of_arrays b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_arrays_of_arrays
new file mode 100644
index 0000000..ff858c4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_arrays_of_arrays
@@ -0,0 +1,4 @@
+GL_ARB_arrays_of_arrays
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_arrays_of_arrays.txt
+GL_ARB_arrays_of_arrays
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_base_instance b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_base_instance
new file mode 100644
index 0000000..5d028ea
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_base_instance
@@ -0,0 +1,7 @@
+GL_ARB_base_instance
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_base_instance.txt
+GL_ARB_base_instance
+
+ void glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance)
+ void glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance)
+ void glDrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_bindless_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_bindless_texture
new file mode 100644
index 0000000..b714323
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_bindless_texture
@@ -0,0 +1,21 @@
+GL_ARB_bindless_texture
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_bindless_texture.txt
+GL_ARB_bindless_texture
+
+ GL_UNSIGNED_INT64_ARB 0x140F
+ GLuint64 glGetImageHandleARB (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format)
+ GLuint64 glGetTextureHandleARB (GLuint texture)
+ GLuint64 glGetTextureSamplerHandleARB (GLuint texture, GLuint sampler)
+ void glGetVertexAttribLui64vARB (GLuint index, GLenum pname, GLuint64EXT* params)
+ GLboolean glIsImageHandleResidentARB (GLuint64 handle)
+ GLboolean glIsTextureHandleResidentARB (GLuint64 handle)
+ void glMakeImageHandleNonResidentARB (GLuint64 handle)
+ void glMakeImageHandleResidentARB (GLuint64 handle, GLenum access)
+ void glMakeTextureHandleNonResidentARB (GLuint64 handle)
+ void glMakeTextureHandleResidentARB (GLuint64 handle)
+ void glProgramUniformHandleui64ARB (GLuint program, GLint location, GLuint64 value)
+ void glProgramUniformHandleui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64* values)
+ void glUniformHandleui64ARB (GLint location, GLuint64 value)
+ void glUniformHandleui64vARB (GLint location, GLsizei count, const GLuint64* value)
+ void glVertexAttribL1ui64ARB (GLuint index, GLuint64EXT x)
+ void glVertexAttribL1ui64vARB (GLuint index, const GLuint64EXT* v)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_blend_func_extended b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_blend_func_extended
new file mode 100644
index 0000000..a70ac09
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_blend_func_extended
@@ -0,0 +1,10 @@
+GL_ARB_blend_func_extended
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_blend_func_extended.txt
+GL_ARB_blend_func_extended
+
+ GL_SRC1_COLOR 0x88F9
+ GL_ONE_MINUS_SRC1_COLOR 0x88FA
+ GL_ONE_MINUS_SRC1_ALPHA 0x88FB
+ GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
+ void glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name)
+ GLint glGetFragDataIndex (GLuint program, const GLchar * name)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_buffer_storage b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_buffer_storage
new file mode 100644
index 0000000..ba15fff
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_buffer_storage
@@ -0,0 +1,14 @@
+GL_ARB_buffer_storage
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_buffer_storage.txt
+GL_ARB_buffer_storage
+
+ GL_MAP_READ_BIT 0x0001
+ GL_MAP_WRITE_BIT 0x0002
+ GL_MAP_PERSISTENT_BIT 0x00000040
+ GL_MAP_COHERENT_BIT 0x00000080
+ GL_DYNAMIC_STORAGE_BIT 0x0100
+ GL_CLIENT_STORAGE_BIT 0x0200
+ GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
+ GL_BUFFER_IMMUTABLE_STORAGE 0x821F
+ GL_BUFFER_STORAGE_FLAGS 0x8220
+ void glBufferStorage (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_cl_event b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_cl_event
new file mode 100644
index 0000000..cef176c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_cl_event
@@ -0,0 +1,9 @@
+GL_ARB_cl_event
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_cl_event.txt
+GL_ARB_cl_event
+
+ GL_SYNC_CL_EVENT_ARB 0x8240
+ GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241
+ GLsync glCreateSyncFromCLeventARB (cl_context context, cl_event event, GLbitfield flags)
+ typedef struct _cl_context *cl_context
+ typedef struct _cl_event *cl_event
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clear_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clear_buffer_object
new file mode 100644
index 0000000..ab291ce
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clear_buffer_object
@@ -0,0 +1,8 @@
+GL_ARB_clear_buffer_object
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_clear_buffer_object.txt
+GL_ARB_clear_buffer_object
+
+ void glClearBufferData (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data)
+ void glClearBufferSubData (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)
+ void glClearNamedBufferDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data)
+ void glClearNamedBufferSubDataEXT (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clear_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clear_texture
new file mode 100644
index 0000000..693ee89
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clear_texture
@@ -0,0 +1,7 @@
+GL_ARB_clear_texture
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_clear_texture.txt
+GL_ARB_clear_texture
+
+ GL_CLEAR_TEXTURE 0x9365
+ void glClearTexImage (GLuint texture, GLint level, GLenum format, GLenum type, const void *data)
+ void glClearTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clip_control b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clip_control
new file mode 100644
index 0000000..f765c8c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_clip_control
@@ -0,0 +1,11 @@
+GL_ARB_clip_control
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_clip_control.txt
+GL_ARB_clip_control
+
+ GL_LOWER_LEFT 0x8CA1
+ GL_UPPER_LEFT 0x8CA2
+ GL_CLIP_ORIGIN 0x935C
+ GL_CLIP_DEPTH_MODE 0x935D
+ GL_NEGATIVE_ONE_TO_ONE 0x935E
+ GL_ZERO_TO_ONE 0x935F
+ void glClipControl (GLenum origin, GLenum depth)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_color_buffer_float b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_color_buffer_float
new file mode 100644
index 0000000..cdcc0d0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_color_buffer_float
@@ -0,0 +1,10 @@
+GL_ARB_color_buffer_float
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_color_buffer_float.txt
+GL_ARB_color_buffer_float
+
+ GL_RGBA_FLOAT_MODE_ARB 0x8820
+ GL_CLAMP_VERTEX_COLOR_ARB 0x891A
+ GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B
+ GL_CLAMP_READ_COLOR_ARB 0x891C
+ GL_FIXED_ONLY_ARB 0x891D
+ void glClampColorARB (GLenum target, GLenum clamp)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compatibility b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compatibility
new file mode 100644
index 0000000..b3706e5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compatibility
@@ -0,0 +1,4 @@
+GL_ARB_compatibility
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_compatibility.txt
+GL_ARB_compatibility
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compressed_texture_pixel_storage b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compressed_texture_pixel_storage
new file mode 100644
index 0000000..1386992
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compressed_texture_pixel_storage
@@ -0,0 +1,12 @@
+GL_ARB_compressed_texture_pixel_storage
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_compressed_texture_pixel_storage.txt
+GL_ARB_compressed_texture_pixel_storage
+
+ GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
+ GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
+ GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
+ GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A
+ GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B
+ GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C
+ GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D
+ GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compute_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compute_shader
new file mode 100644
index 0000000..bee5648
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compute_shader
@@ -0,0 +1,24 @@
+GL_ARB_compute_shader
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_compute_shader.txt
+GL_ARB_compute_shader
+
+ GL_COMPUTE_SHADER_BIT 0x00000020
+ GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262
+ GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263
+ GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264
+ GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265
+ GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266
+ GL_COMPUTE_WORK_GROUP_SIZE 0x8267
+ GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB
+ GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED
+ GL_DISPATCH_INDIRECT_BUFFER 0x90EE
+ GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF
+ GL_COMPUTE_SHADER 0x91B9
+ GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB
+ GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC
+ GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD
+ GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE
+ GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF
+ void glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)
+ void glDispatchComputeIndirect (GLintptr indirect)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compute_variable_group_size b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compute_variable_group_size
new file mode 100644
index 0000000..ebd1296
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_compute_variable_group_size
@@ -0,0 +1,9 @@
+GL_ARB_compute_variable_group_size
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_compute_variable_group_size.txt
+GL_ARB_compute_variable_group_size
+
+ GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB
+ GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF
+ GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344
+ GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345
+ void glDispatchComputeGroupSizeARB (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_conditional_render_inverted b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_conditional_render_inverted
new file mode 100644
index 0000000..e365644
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_conditional_render_inverted
@@ -0,0 +1,8 @@
+GL_ARB_conditional_render_inverted
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_conditional_render_inverted.txt
+GL_ARB_conditional_render_inverted
+
+ GL_QUERY_WAIT_INVERTED 0x8E17
+ GL_QUERY_NO_WAIT_INVERTED 0x8E18
+ GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19
+ GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_conservative_depth b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_conservative_depth
new file mode 100644
index 0000000..54a50fb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_conservative_depth
@@ -0,0 +1,4 @@
+GL_ARB_conservative_depth
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_conservative_depth.txt
+GL_ARB_conservative_depth
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_copy_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_copy_buffer
new file mode 100644
index 0000000..75cfece
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_copy_buffer
@@ -0,0 +1,7 @@
+GL_ARB_copy_buffer
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_copy_buffer.txt
+GL_ARB_copy_buffer
+
+ GL_COPY_READ_BUFFER 0x8F36
+ GL_COPY_WRITE_BUFFER 0x8F37
+ void glCopyBufferSubData (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_copy_image b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_copy_image
new file mode 100644
index 0000000..81fd4d4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_copy_image
@@ -0,0 +1,5 @@
+GL_ARB_copy_image
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_copy_image.txt
+GL_ARB_copy_image
+
+ void glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_cull_distance b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_cull_distance
new file mode 100644
index 0000000..08e716c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_cull_distance
@@ -0,0 +1,6 @@
+GL_ARB_cull_distance
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_cull_distance.txt
+GL_ARB_cull_distance
+
+ GL_MAX_CULL_DISTANCES 0x82F9
+ GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_debug_output b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_debug_output
new file mode 100644
index 0000000..3082b90
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_debug_output
@@ -0,0 +1,31 @@
+GL_ARB_debug_output
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_debug_output.txt
+GL_ARB_debug_output
+
+ GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
+ GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
+ GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
+ GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
+ GL_DEBUG_SOURCE_API_ARB 0x8246
+ GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
+ GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
+ GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
+ GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
+ GL_DEBUG_SOURCE_OTHER_ARB 0x824B
+ GL_DEBUG_TYPE_ERROR_ARB 0x824C
+ GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
+ GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
+ GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
+ GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
+ GL_DEBUG_TYPE_OTHER_ARB 0x8251
+ GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
+ GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
+ GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
+ GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
+ GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
+ GL_DEBUG_SEVERITY_LOW_ARB 0x9148
+ void glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const void *userParam)
+ void glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled)
+ void glDebugMessageInsertARB (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf)
+ GLuint glGetDebugMessageLogARB (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog)
+ typedef void (GLAPIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_buffer_float b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_buffer_float
new file mode 100644
index 0000000..282ec09
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_buffer_float
@@ -0,0 +1,7 @@
+GL_ARB_depth_buffer_float
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_buffer_float.txt
+GL_ARB_depth_buffer_float
+
+ GL_DEPTH_COMPONENT32F 0x8CAC
+ GL_DEPTH32F_STENCIL8 0x8CAD
+ GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_clamp
new file mode 100644
index 0000000..c0c0e2f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_clamp
@@ -0,0 +1,5 @@
+GL_ARB_depth_clamp
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt
+GL_ARB_depth_clamp
+
+ GL_DEPTH_CLAMP 0x864F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_texture
new file mode 100644
index 0000000..18d7d85
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_depth_texture
@@ -0,0 +1,9 @@
+GL_ARB_depth_texture
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_texture.txt
+GL_ARB_depth_texture
+
+ GL_DEPTH_COMPONENT16_ARB 0x81A5
+ GL_DEPTH_COMPONENT24_ARB 0x81A6
+ GL_DEPTH_COMPONENT32_ARB 0x81A7
+ GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
+ GL_DEPTH_TEXTURE_MODE_ARB 0x884B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_derivative_control b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_derivative_control
new file mode 100644
index 0000000..b889e71
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_derivative_control
@@ -0,0 +1,4 @@
+GL_ARB_derivative_control
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_derivative_control.txt
+GL_ARB_derivative_control
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_direct_state_access b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_direct_state_access
new file mode 100644
index 0000000..5eeabff
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_direct_state_access
@@ -0,0 +1,103 @@
+GL_ARB_direct_state_access
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_direct_state_access.txt
+GL_ARB_direct_state_access
+
+ GL_TEXTURE_TARGET 0x1006
+ GL_QUERY_TARGET 0x82EA
+ void glBindTextureUnit (GLuint unit, GLuint texture)
+ void glBlitNamedFramebuffer (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+ GLenum glCheckNamedFramebufferStatus (GLuint framebuffer, GLenum target)
+ void glClearNamedBufferData (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data)
+ void glClearNamedBufferSubData (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)
+ void glClearNamedFramebufferfi (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+ void glClearNamedFramebufferfv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+ void glClearNamedFramebufferiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint* value)
+ void glClearNamedFramebufferuiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint* value)
+ void glCompressedTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
+ void glCompressedTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)
+ void glCompressedTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+ void glCopyNamedBufferSubData (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+ void glCopyTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+ void glCopyTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glCopyTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glCreateBuffers (GLsizei n, GLuint* buffers)
+ void glCreateFramebuffers (GLsizei n, GLuint* framebuffers)
+ void glCreateProgramPipelines (GLsizei n, GLuint* pipelines)
+ void glCreateQueries (GLenum target, GLsizei n, GLuint* ids)
+ void glCreateRenderbuffers (GLsizei n, GLuint* renderbuffers)
+ void glCreateSamplers (GLsizei n, GLuint* samplers)
+ void glCreateTextures (GLenum target, GLsizei n, GLuint* textures)
+ void glCreateTransformFeedbacks (GLsizei n, GLuint* ids)
+ void glCreateVertexArrays (GLsizei n, GLuint* arrays)
+ void glDisableVertexArrayAttrib (GLuint vaobj, GLuint index)
+ void glEnableVertexArrayAttrib (GLuint vaobj, GLuint index)
+ void glFlushMappedNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length)
+ void glGenerateTextureMipmap (GLuint texture)
+ void glGetCompressedTextureImage (GLuint texture, GLint level, GLsizei bufSize, void *pixels)
+ void glGetNamedBufferParameteri64v (GLuint buffer, GLenum pname, GLint64* params)
+ void glGetNamedBufferParameteriv (GLuint buffer, GLenum pname, GLint* params)
+ void glGetNamedBufferPointerv (GLuint buffer, GLenum pname, void** params)
+ void glGetNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data)
+ void glGetNamedFramebufferAttachmentParameteriv (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params)
+ void glGetNamedFramebufferParameteriv (GLuint framebuffer, GLenum pname, GLint* param)
+ void glGetNamedRenderbufferParameteriv (GLuint renderbuffer, GLenum pname, GLint* params)
+ void glGetQueryBufferObjecti64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset)
+ void glGetQueryBufferObjectiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset)
+ void glGetQueryBufferObjectui64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset)
+ void glGetQueryBufferObjectuiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset)
+ void glGetTextureImage (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels)
+ void glGetTextureLevelParameterfv (GLuint texture, GLint level, GLenum pname, GLfloat* params)
+ void glGetTextureLevelParameteriv (GLuint texture, GLint level, GLenum pname, GLint* params)
+ void glGetTextureParameterIiv (GLuint texture, GLenum pname, GLint* params)
+ void glGetTextureParameterIuiv (GLuint texture, GLenum pname, GLuint* params)
+ void glGetTextureParameterfv (GLuint texture, GLenum pname, GLfloat* params)
+ void glGetTextureParameteriv (GLuint texture, GLenum pname, GLint* params)
+ void glGetTransformFeedbacki64_v (GLuint xfb, GLenum pname, GLuint index, GLint64* param)
+ void glGetTransformFeedbacki_v (GLuint xfb, GLenum pname, GLuint index, GLint* param)
+ void glGetTransformFeedbackiv (GLuint xfb, GLenum pname, GLint* param)
+ void glGetVertexArrayIndexed64iv (GLuint vaobj, GLuint index, GLenum pname, GLint64* param)
+ void glGetVertexArrayIndexediv (GLuint vaobj, GLuint index, GLenum pname, GLint* param)
+ void glGetVertexArrayiv (GLuint vaobj, GLenum pname, GLint* param)
+ void glInvalidateNamedFramebufferData (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments)
+ void glInvalidateNamedFramebufferSubData (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height)
+ void * glMapNamedBuffer (GLuint buffer, GLenum access)
+ void * glMapNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access)
+ void glNamedBufferData (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage)
+ void glNamedBufferStorage (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags)
+ void glNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)
+ void glNamedFramebufferDrawBuffer (GLuint framebuffer, GLenum mode)
+ void glNamedFramebufferDrawBuffers (GLuint framebuffer, GLsizei n, const GLenum* bufs)
+ void glNamedFramebufferParameteri (GLuint framebuffer, GLenum pname, GLint param)
+ void glNamedFramebufferReadBuffer (GLuint framebuffer, GLenum mode)
+ void glNamedFramebufferRenderbuffer (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+ void glNamedFramebufferTexture (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level)
+ void glNamedFramebufferTextureLayer (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer)
+ void glNamedRenderbufferStorage (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height)
+ void glNamedRenderbufferStorageMultisample (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
+ void glTextureBuffer (GLuint texture, GLenum internalformat, GLuint buffer)
+ void glTextureBufferRange (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)
+ void glTextureParameterIiv (GLuint texture, GLenum pname, const GLint* params)
+ void glTextureParameterIuiv (GLuint texture, GLenum pname, const GLuint* params)
+ void glTextureParameterf (GLuint texture, GLenum pname, GLfloat param)
+ void glTextureParameterfv (GLuint texture, GLenum pname, const GLfloat* param)
+ void glTextureParameteri (GLuint texture, GLenum pname, GLint param)
+ void glTextureParameteriv (GLuint texture, GLenum pname, const GLint* param)
+ void glTextureStorage1D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width)
+ void glTextureStorage2D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
+ void glTextureStorage2DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+ void glTextureStorage3D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
+ void glTextureStorage3DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+ void glTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)
+ void glTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
+ void glTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
+ void glTransformFeedbackBufferBase (GLuint xfb, GLuint index, GLuint buffer)
+ void glTransformFeedbackBufferRange (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+ GLboolean glUnmapNamedBuffer (GLuint buffer)
+ void glVertexArrayAttribBinding (GLuint vaobj, GLuint attribindex, GLuint bindingindex)
+ void glVertexArrayAttribFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
+ void glVertexArrayAttribIFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
+ void glVertexArrayAttribLFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
+ void glVertexArrayBindingDivisor (GLuint vaobj, GLuint bindingindex, GLuint divisor)
+ void glVertexArrayElementBuffer (GLuint vaobj, GLuint buffer)
+ void glVertexArrayVertexBuffer (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
+ void glVertexArrayVertexBuffers (GLuint vaobj, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_buffers b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_buffers
new file mode 100644
index 0000000..6ff3de4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_buffers
@@ -0,0 +1,22 @@
+GL_ARB_draw_buffers
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_draw_buffers.txt
+GL_ARB_draw_buffers
+
+ GL_MAX_DRAW_BUFFERS_ARB 0x8824
+ GL_DRAW_BUFFER0_ARB 0x8825
+ GL_DRAW_BUFFER1_ARB 0x8826
+ GL_DRAW_BUFFER2_ARB 0x8827
+ GL_DRAW_BUFFER3_ARB 0x8828
+ GL_DRAW_BUFFER4_ARB 0x8829
+ GL_DRAW_BUFFER5_ARB 0x882A
+ GL_DRAW_BUFFER6_ARB 0x882B
+ GL_DRAW_BUFFER7_ARB 0x882C
+ GL_DRAW_BUFFER8_ARB 0x882D
+ GL_DRAW_BUFFER9_ARB 0x882E
+ GL_DRAW_BUFFER10_ARB 0x882F
+ GL_DRAW_BUFFER11_ARB 0x8830
+ GL_DRAW_BUFFER12_ARB 0x8831
+ GL_DRAW_BUFFER13_ARB 0x8832
+ GL_DRAW_BUFFER14_ARB 0x8833
+ GL_DRAW_BUFFER15_ARB 0x8834
+ void glDrawBuffersARB (GLsizei n, const GLenum* bufs)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_buffers_blend b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_buffers_blend
new file mode 100644
index 0000000..dcf7831
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_buffers_blend
@@ -0,0 +1,8 @@
+GL_ARB_draw_buffers_blend
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_draw_buffers_blend.txt
+GL_ARB_draw_buffers_blend
+
+ void glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+ void glBlendEquationiARB (GLuint buf, GLenum mode)
+ void glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+ void glBlendFunciARB (GLuint buf, GLenum src, GLenum dst)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_elements_base_vertex b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_elements_base_vertex
new file mode 100644
index 0000000..486b86e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_elements_base_vertex
@@ -0,0 +1,8 @@
+GL_ARB_draw_elements_base_vertex
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_draw_elements_base_vertex.txt
+GL_ARB_draw_elements_base_vertex
+
+ void glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)
+ void glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)
+ void glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)
+ void glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei* count, GLenum type, const void*const *indices, GLsizei drawcount, const GLint *basevertex)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_indirect b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_indirect
new file mode 100644
index 0000000..103ab70
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_indirect
@@ -0,0 +1,8 @@
+GL_ARB_draw_indirect
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_draw_indirect.txt
+GL_ARB_draw_indirect
+
+ GL_DRAW_INDIRECT_BUFFER 0x8F3F
+ GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43
+ void glDrawArraysIndirect (GLenum mode, const void *indirect)
+ void glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_instanced b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_instanced
new file mode 100644
index 0000000..a730952
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_draw_instanced
@@ -0,0 +1,4 @@
+GL_ARB_draw_instanced
+http://www.opengl.org/registry/specs/ARB/draw_instanced.txt
+GL_ARB_draw_instanced
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_enhanced_layouts b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_enhanced_layouts
new file mode 100644
index 0000000..2e31450
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_enhanced_layouts
@@ -0,0 +1,7 @@
+GL_ARB_enhanced_layouts
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_enhanced_layouts.txt
+GL_ARB_enhanced_layouts
+
+ GL_LOCATION_COMPONENT 0x934A
+ GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B
+ GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_explicit_attrib_location b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_explicit_attrib_location
new file mode 100644
index 0000000..09beb53
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_explicit_attrib_location
@@ -0,0 +1,4 @@
+GL_ARB_explicit_attrib_location
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_explicit_attrib_location.txt
+GL_ARB_explicit_attrib_location
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_explicit_uniform_location b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_explicit_uniform_location
new file mode 100644
index 0000000..8486347
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_explicit_uniform_location
@@ -0,0 +1,5 @@
+GL_ARB_explicit_uniform_location
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_explicit_uniform_location.txt
+GL_ARB_explicit_uniform_location
+
+ GL_MAX_UNIFORM_LOCATIONS 0x826E
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_coord_conventions b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_coord_conventions
new file mode 100644
index 0000000..6211c50
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_coord_conventions
@@ -0,0 +1,4 @@
+GL_ARB_fragment_coord_conventions
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_coord_conventions.txt
+GL_ARB_fragment_coord_conventions
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_layer_viewport b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_layer_viewport
new file mode 100644
index 0000000..b6e97b8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_layer_viewport
@@ -0,0 +1,4 @@
+GL_ARB_fragment_layer_viewport
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_layer_viewport.txt
+GL_ARB_fragment_layer_viewport
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_program b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_program
new file mode 100644
index 0000000..36f47b0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_program
@@ -0,0 +1,19 @@
+GL_ARB_fragment_program
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_program.txt
+GL_ARB_fragment_program
+
+ GL_FRAGMENT_PROGRAM_ARB 0x8804
+ GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
+ GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
+ GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
+ GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
+ GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
+ GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
+ GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
+ GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
+ GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
+ GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
+ GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
+ GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
+ GL_MAX_TEXTURE_COORDS_ARB 0x8871
+ GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_program_shadow b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_program_shadow
new file mode 100644
index 0000000..0235b93
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_program_shadow
@@ -0,0 +1,4 @@
+GL_ARB_fragment_program_shadow
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_program_shadow.txt
+GL_ARB_fragment_program_shadow
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_shader
new file mode 100644
index 0000000..bbb20e1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_shader
@@ -0,0 +1,7 @@
+GL_ARB_fragment_shader
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_shader.txt
+GL_ARB_fragment_shader
+
+ GL_FRAGMENT_SHADER_ARB 0x8B30
+ GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
+ GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_shader_interlock b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_shader_interlock
new file mode 100644
index 0000000..7180408
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_fragment_shader_interlock
@@ -0,0 +1,4 @@
+GL_ARB_fragment_shader_interlock
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_fragment_shader_interlock.txt
+GL_ARB_fragment_shader_interlock
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_no_attachments b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_no_attachments
new file mode 100644
index 0000000..46ecec1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_no_attachments
@@ -0,0 +1,17 @@
+GL_ARB_framebuffer_no_attachments
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_framebuffer_no_attachments.txt
+GL_ARB_framebuffer_no_attachments
+
+ GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310
+ GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311
+ GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312
+ GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313
+ GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314
+ GL_MAX_FRAMEBUFFER_WIDTH 0x9315
+ GL_MAX_FRAMEBUFFER_HEIGHT 0x9316
+ GL_MAX_FRAMEBUFFER_LAYERS 0x9317
+ GL_MAX_FRAMEBUFFER_SAMPLES 0x9318
+ void glFramebufferParameteri (GLenum target, GLenum pname, GLint param)
+ void glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint* params)
+ void glGetNamedFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint* params)
+ void glNamedFramebufferParameteriEXT (GLuint framebuffer, GLenum pname, GLint param)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_object
new file mode 100644
index 0000000..c1baf32
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_object
@@ -0,0 +1,98 @@
+GL_ARB_framebuffer_object
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_framebuffer_object.txt
+GL_ARB_framebuffer_object
+
+ GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+ GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
+ GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
+ GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
+ GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
+ GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
+ GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
+ GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
+ GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
+ GL_FRAMEBUFFER_DEFAULT 0x8218
+ GL_FRAMEBUFFER_UNDEFINED 0x8219
+ GL_DEPTH_STENCIL_ATTACHMENT 0x821A
+ GL_INDEX 0x8222
+ GL_MAX_RENDERBUFFER_SIZE 0x84E8
+ GL_DEPTH_STENCIL 0x84F9
+ GL_UNSIGNED_INT_24_8 0x84FA
+ GL_DEPTH24_STENCIL8 0x88F0
+ GL_TEXTURE_STENCIL_SIZE 0x88F1
+ GL_UNSIGNED_NORMALIZED 0x8C17
+ GL_SRGB 0x8C40
+ GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
+ GL_FRAMEBUFFER_BINDING 0x8CA6
+ GL_RENDERBUFFER_BINDING 0x8CA7
+ GL_READ_FRAMEBUFFER 0x8CA8
+ GL_DRAW_FRAMEBUFFER 0x8CA9
+ GL_READ_FRAMEBUFFER_BINDING 0x8CAA
+ GL_RENDERBUFFER_SAMPLES 0x8CAB
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
+ GL_FRAMEBUFFER_COMPLETE 0x8CD5
+ GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
+ GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
+ GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
+ GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
+ GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
+ GL_MAX_COLOR_ATTACHMENTS 0x8CDF
+ GL_COLOR_ATTACHMENT0 0x8CE0
+ GL_COLOR_ATTACHMENT1 0x8CE1
+ GL_COLOR_ATTACHMENT2 0x8CE2
+ GL_COLOR_ATTACHMENT3 0x8CE3
+ GL_COLOR_ATTACHMENT4 0x8CE4
+ GL_COLOR_ATTACHMENT5 0x8CE5
+ GL_COLOR_ATTACHMENT6 0x8CE6
+ GL_COLOR_ATTACHMENT7 0x8CE7
+ GL_COLOR_ATTACHMENT8 0x8CE8
+ GL_COLOR_ATTACHMENT9 0x8CE9
+ GL_COLOR_ATTACHMENT10 0x8CEA
+ GL_COLOR_ATTACHMENT11 0x8CEB
+ GL_COLOR_ATTACHMENT12 0x8CEC
+ GL_COLOR_ATTACHMENT13 0x8CED
+ GL_COLOR_ATTACHMENT14 0x8CEE
+ GL_COLOR_ATTACHMENT15 0x8CEF
+ GL_DEPTH_ATTACHMENT 0x8D00
+ GL_STENCIL_ATTACHMENT 0x8D20
+ GL_FRAMEBUFFER 0x8D40
+ GL_RENDERBUFFER 0x8D41
+ GL_RENDERBUFFER_WIDTH 0x8D42
+ GL_RENDERBUFFER_HEIGHT 0x8D43
+ GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
+ GL_STENCIL_INDEX1 0x8D46
+ GL_STENCIL_INDEX4 0x8D47
+ GL_STENCIL_INDEX8 0x8D48
+ GL_STENCIL_INDEX16 0x8D49
+ GL_RENDERBUFFER_RED_SIZE 0x8D50
+ GL_RENDERBUFFER_GREEN_SIZE 0x8D51
+ GL_RENDERBUFFER_BLUE_SIZE 0x8D52
+ GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
+ GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
+ GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
+ GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
+ GL_MAX_SAMPLES 0x8D57
+ void glBindFramebuffer (GLenum target, GLuint framebuffer)
+ void glBindRenderbuffer (GLenum target, GLuint renderbuffer)
+ void glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+ GLenum glCheckFramebufferStatus (GLenum target)
+ void glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers)
+ void glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers)
+ void glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+ void glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+ void glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+ void glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer)
+ void glFramebufferTextureLayer (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer)
+ void glGenFramebuffers (GLsizei n, GLuint* framebuffers)
+ void glGenRenderbuffers (GLsizei n, GLuint* renderbuffers)
+ void glGenerateMipmap (GLenum target)
+ void glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params)
+ void glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params)
+ GLboolean glIsFramebuffer (GLuint framebuffer)
+ GLboolean glIsRenderbuffer (GLuint renderbuffer)
+ void glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+ void glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_sRGB b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_sRGB
new file mode 100644
index 0000000..e3b2cb0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_framebuffer_sRGB
@@ -0,0 +1,5 @@
+GL_ARB_framebuffer_sRGB
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_framebuffer_sRGB.txt
+GL_ARB_framebuffer_sRGB
+
+ GL_FRAMEBUFFER_SRGB 0x8DB9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_geometry_shader4 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_geometry_shader4
new file mode 100644
index 0000000..17092c4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_geometry_shader4
@@ -0,0 +1,27 @@
+GL_ARB_geometry_shader4
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_geometry_shader4.txt
+GL_ARB_geometry_shader4
+
+ GL_LINES_ADJACENCY_ARB 0xA
+ GL_LINE_STRIP_ADJACENCY_ARB 0xB
+ GL_TRIANGLES_ADJACENCY_ARB 0xC
+ GL_TRIANGLE_STRIP_ADJACENCY_ARB 0xD
+ GL_PROGRAM_POINT_SIZE_ARB 0x8642
+ GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
+ GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7
+ GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8
+ GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9
+ GL_GEOMETRY_SHADER_ARB 0x8DD9
+ GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA
+ GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB
+ GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC
+ GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD
+ GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE
+ GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF
+ GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0
+ GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1
+ void glFramebufferTextureARB (GLenum target, GLenum attachment, GLuint texture, GLint level)
+ void glFramebufferTextureFaceARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face)
+ void glFramebufferTextureLayerARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+ void glProgramParameteriARB (GLuint program, GLenum pname, GLint value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_get_program_binary b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_get_program_binary
new file mode 100644
index 0000000..78aaeef
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_get_program_binary
@@ -0,0 +1,11 @@
+GL_ARB_get_program_binary
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_get_program_binary.txt
+GL_ARB_get_program_binary
+
+ GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
+ GL_PROGRAM_BINARY_LENGTH 0x8741
+ GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
+ GL_PROGRAM_BINARY_FORMATS 0x87FF
+ void glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, void*binary)
+ void glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length)
+ void glProgramParameteri (GLuint program, GLenum pname, GLint value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_get_texture_sub_image b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_get_texture_sub_image
new file mode 100644
index 0000000..0860365
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_get_texture_sub_image
@@ -0,0 +1,6 @@
+GL_ARB_get_texture_sub_image
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_get_texture_sub_image.txt
+GL_ARB_get_texture_sub_image
+
+ void glGetCompressedTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels)
+ void glGetTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gl_spirv b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gl_spirv
new file mode 100644
index 0000000..ed35630
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gl_spirv
@@ -0,0 +1,7 @@
+GL_ARB_gl_spirv
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_gl_spirv.txt
+GL_ARB_gl_spirv
+
+ GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551
+ GL_SPIR_V_BINARY_ARB 0x9552
+ void glSpecializeShaderARB (GLuint shader, const GLchar* pEntryPoint, GLuint numSpecializationConstants, const GLuint* pConstantIndex, const GLuint* pConstantValue)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader5 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader5
new file mode 100644
index 0000000..48a2658
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader5
@@ -0,0 +1,10 @@
+GL_ARB_gpu_shader5
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_gpu_shader5.txt
+GL_ARB_gpu_shader5
+
+ GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
+ GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A
+ GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B
+ GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C
+ GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D
+ GL_MAX_VERTEX_STREAMS 0x8E71
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader_fp64 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader_fp64
new file mode 100644
index 0000000..1a02b5f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader_fp64
@@ -0,0 +1,34 @@
+GL_ARB_gpu_shader_fp64
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_gpu_shader_fp64.txt
+GL_ARB_gpu_shader_fp64
+
+ GL_DOUBLE_MAT2 0x8F46
+ GL_DOUBLE_MAT3 0x8F47
+ GL_DOUBLE_MAT4 0x8F48
+ GL_DOUBLE_MAT2x3 0x8F49
+ GL_DOUBLE_MAT2x4 0x8F4A
+ GL_DOUBLE_MAT3x2 0x8F4B
+ GL_DOUBLE_MAT3x4 0x8F4C
+ GL_DOUBLE_MAT4x2 0x8F4D
+ GL_DOUBLE_MAT4x3 0x8F4E
+ GL_DOUBLE_VEC2 0x8FFC
+ GL_DOUBLE_VEC3 0x8FFD
+ GL_DOUBLE_VEC4 0x8FFE
+ void glGetUniformdv (GLuint program, GLint location, GLdouble* params)
+ void glUniform1d (GLint location, GLdouble x)
+ void glUniform1dv (GLint location, GLsizei count, const GLdouble* value)
+ void glUniform2d (GLint location, GLdouble x, GLdouble y)
+ void glUniform2dv (GLint location, GLsizei count, const GLdouble* value)
+ void glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z)
+ void glUniform3dv (GLint location, GLsizei count, const GLdouble* value)
+ void glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glUniform4dv (GLint location, GLsizei count, const GLdouble* value)
+ void glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader_int64 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader_int64
new file mode 100644
index 0000000..27458ca
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_gpu_shader_int64
@@ -0,0 +1,48 @@
+GL_ARB_gpu_shader_int64
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_gpu_shader_int64.txt
+GL_ARB_gpu_shader_int64
+
+ GL_INT64_ARB 0x140E
+ GL_UNSIGNED_INT64_ARB 0x140F
+ GL_INT64_VEC2_ARB 0x8FE9
+ GL_INT64_VEC3_ARB 0x8FEA
+ GL_INT64_VEC4_ARB 0x8FEB
+ GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5
+ GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6
+ GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7
+ void glGetUniformi64vARB (GLuint program, GLint location, GLint64* params)
+ void glGetUniformui64vARB (GLuint program, GLint location, GLuint64* params)
+ void glGetnUniformi64vARB (GLuint program, GLint location, GLsizei bufSize, GLint64* params)
+ void glGetnUniformui64vARB (GLuint program, GLint location, GLsizei bufSize, GLuint64* params)
+ void glProgramUniform1i64ARB (GLuint program, GLint location, GLint64 x)
+ void glProgramUniform1i64vARB (GLuint program, GLint location, GLsizei count, const GLint64* value)
+ void glProgramUniform1ui64ARB (GLuint program, GLint location, GLuint64 x)
+ void glProgramUniform1ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64* value)
+ void glProgramUniform2i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y)
+ void glProgramUniform2i64vARB (GLuint program, GLint location, GLsizei count, const GLint64* value)
+ void glProgramUniform2ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y)
+ void glProgramUniform2ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64* value)
+ void glProgramUniform3i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z)
+ void glProgramUniform3i64vARB (GLuint program, GLint location, GLsizei count, const GLint64* value)
+ void glProgramUniform3ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z)
+ void glProgramUniform3ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64* value)
+ void glProgramUniform4i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w)
+ void glProgramUniform4i64vARB (GLuint program, GLint location, GLsizei count, const GLint64* value)
+ void glProgramUniform4ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w)
+ void glProgramUniform4ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64* value)
+ void glUniform1i64ARB (GLint location, GLint64 x)
+ void glUniform1i64vARB (GLint location, GLsizei count, const GLint64* value)
+ void glUniform1ui64ARB (GLint location, GLuint64 x)
+ void glUniform1ui64vARB (GLint location, GLsizei count, const GLuint64* value)
+ void glUniform2i64ARB (GLint location, GLint64 x, GLint64 y)
+ void glUniform2i64vARB (GLint location, GLsizei count, const GLint64* value)
+ void glUniform2ui64ARB (GLint location, GLuint64 x, GLuint64 y)
+ void glUniform2ui64vARB (GLint location, GLsizei count, const GLuint64* value)
+ void glUniform3i64ARB (GLint location, GLint64 x, GLint64 y, GLint64 z)
+ void glUniform3i64vARB (GLint location, GLsizei count, const GLint64* value)
+ void glUniform3ui64ARB (GLint location, GLuint64 x, GLuint64 y, GLuint64 z)
+ void glUniform3ui64vARB (GLint location, GLsizei count, const GLuint64* value)
+ void glUniform4i64ARB (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w)
+ void glUniform4i64vARB (GLint location, GLsizei count, const GLint64* value)
+ void glUniform4ui64ARB (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w)
+ void glUniform4ui64vARB (GLint location, GLsizei count, const GLuint64* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_half_float_pixel b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_half_float_pixel
new file mode 100644
index 0000000..c83bd91
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_half_float_pixel
@@ -0,0 +1,5 @@
+GL_ARB_half_float_pixel
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_half_float_pixel.txt
+GL_ARB_half_float_pixel
+
+ GL_HALF_FLOAT_ARB 0x140B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_half_float_vertex b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_half_float_vertex
new file mode 100644
index 0000000..0fd85e8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_half_float_vertex
@@ -0,0 +1,5 @@
+GL_ARB_half_float_vertex
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_half_float_vertex.txt
+GL_ARB_half_float_vertex
+
+ GL_HALF_FLOAT 0x140B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_imaging b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_imaging
new file mode 100644
index 0000000..727adf0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_imaging
@@ -0,0 +1,113 @@
+GL_ARB_imaging
+
+GL_ARB_imaging
+
+ GL_CONSTANT_COLOR 0x8001
+ GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+ GL_CONSTANT_ALPHA 0x8003
+ GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+ GL_BLEND_COLOR 0x8005
+ GL_FUNC_ADD 0x8006
+ GL_MIN 0x8007
+ GL_MAX 0x8008
+ GL_BLEND_EQUATION 0x8009
+ GL_FUNC_SUBTRACT 0x800A
+ GL_FUNC_REVERSE_SUBTRACT 0x800B
+ GL_CONVOLUTION_1D 0x8010
+ GL_CONVOLUTION_2D 0x8011
+ GL_SEPARABLE_2D 0x8012
+ GL_CONVOLUTION_BORDER_MODE 0x8013
+ GL_CONVOLUTION_FILTER_SCALE 0x8014
+ GL_CONVOLUTION_FILTER_BIAS 0x8015
+ GL_REDUCE 0x8016
+ GL_CONVOLUTION_FORMAT 0x8017
+ GL_CONVOLUTION_WIDTH 0x8018
+ GL_CONVOLUTION_HEIGHT 0x8019
+ GL_MAX_CONVOLUTION_WIDTH 0x801A
+ GL_MAX_CONVOLUTION_HEIGHT 0x801B
+ GL_POST_CONVOLUTION_RED_SCALE 0x801C
+ GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
+ GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
+ GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
+ GL_POST_CONVOLUTION_RED_BIAS 0x8020
+ GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
+ GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
+ GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
+ GL_HISTOGRAM 0x8024
+ GL_PROXY_HISTOGRAM 0x8025
+ GL_HISTOGRAM_WIDTH 0x8026
+ GL_HISTOGRAM_FORMAT 0x8027
+ GL_HISTOGRAM_RED_SIZE 0x8028
+ GL_HISTOGRAM_GREEN_SIZE 0x8029
+ GL_HISTOGRAM_BLUE_SIZE 0x802A
+ GL_HISTOGRAM_ALPHA_SIZE 0x802B
+ GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
+ GL_HISTOGRAM_SINK 0x802D
+ GL_MINMAX 0x802E
+ GL_MINMAX_FORMAT 0x802F
+ GL_MINMAX_SINK 0x8030
+ GL_TABLE_TOO_LARGE 0x8031
+ GL_COLOR_MATRIX 0x80B1
+ GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
+ GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
+ GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
+ GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
+ GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
+ GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
+ GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
+ GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
+ GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
+ GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
+ GL_COLOR_TABLE 0x80D0
+ GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
+ GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
+ GL_PROXY_COLOR_TABLE 0x80D3
+ GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
+ GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
+ GL_COLOR_TABLE_SCALE 0x80D6
+ GL_COLOR_TABLE_BIAS 0x80D7
+ GL_COLOR_TABLE_FORMAT 0x80D8
+ GL_COLOR_TABLE_WIDTH 0x80D9
+ GL_COLOR_TABLE_RED_SIZE 0x80DA
+ GL_COLOR_TABLE_GREEN_SIZE 0x80DB
+ GL_COLOR_TABLE_BLUE_SIZE 0x80DC
+ GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
+ GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
+ GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
+ GL_IGNORE_BORDER 0x8150
+ GL_CONSTANT_BORDER 0x8151
+ GL_WRAP_BORDER 0x8152
+ GL_REPLICATE_BORDER 0x8153
+ GL_CONVOLUTION_BORDER_COLOR 0x8154
+ void glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table)
+ void glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data)
+ void glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params)
+ void glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params)
+ void glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+ void glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
+ void glGetColorTable (GLenum target, GLenum format, GLenum type, void *table)
+ void glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params)
+ void glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params)
+ void glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
+ void glResetHistogram (GLenum target)
+ void glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values)
+ void glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params)
+ void glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params)
+ void glMinmax (GLenum target, GLenum internalformat, GLboolean sink)
+ void glResetMinmax (GLenum target)
+ void glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params)
+ void glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params)
+ void glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image)
+ void glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image)
+ void glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params)
+ void glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params)
+ void glConvolutionParameteri (GLenum target, GLenum pname, GLint params)
+ void glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params)
+ void glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
+ void glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, void *image)
+ void glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params)
+ void glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params)
+ void glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column)
+ void glGetSeparableFilter (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span)
+ void glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum types, void *values)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_indirect_parameters b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_indirect_parameters
new file mode 100644
index 0000000..2a33cc2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_indirect_parameters
@@ -0,0 +1,8 @@
+GL_ARB_indirect_parameters
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_indirect_parameters.txt
+GL_ARB_indirect_parameters
+
+ GL_PARAMETER_BUFFER_ARB 0x80EE
+ GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF
+ void glMultiDrawArraysIndirectCountARB (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)
+ void glMultiDrawElementsIndirectCountARB (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_instanced_arrays b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_instanced_arrays
new file mode 100644
index 0000000..1487d39
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_instanced_arrays
@@ -0,0 +1,8 @@
+GL_ARB_instanced_arrays
+http://www.opengl.org/registry/specs/ARB/instanced_arrays.txt
+GL_ARB_instanced_arrays
+
+ GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
+ void glVertexAttribDivisorARB (GLuint index, GLuint divisor)
+ void glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount)
+ void glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_internalformat_query b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_internalformat_query
new file mode 100644
index 0000000..a5e6173
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_internalformat_query
@@ -0,0 +1,6 @@
+GL_ARB_internalformat_query
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_internalformat_query.txt
+GL_ARB_internalformat_query
+
+ GL_NUM_SAMPLE_COUNTS 0x9380
+ void glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_internalformat_query2 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_internalformat_query2
new file mode 100644
index 0000000..7af5091
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_internalformat_query2
@@ -0,0 +1,104 @@
+GL_ARB_internalformat_query2
+http://www.opengl.org/registry/specs/ARB/internalformat_query2.txt
+GL_ARB_internalformat_query2
+
+ GL_INTERNALFORMAT_SUPPORTED 0x826F
+ GL_INTERNALFORMAT_PREFERRED 0x8270
+ GL_INTERNALFORMAT_RED_SIZE 0x8271
+ GL_INTERNALFORMAT_GREEN_SIZE 0x8272
+ GL_INTERNALFORMAT_BLUE_SIZE 0x8273
+ GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
+ GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
+ GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
+ GL_INTERNALFORMAT_SHARED_SIZE 0x8277
+ GL_INTERNALFORMAT_RED_TYPE 0x8278
+ GL_INTERNALFORMAT_GREEN_TYPE 0x8279
+ GL_INTERNALFORMAT_BLUE_TYPE 0x827A
+ GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
+ GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
+ GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
+ GL_MAX_WIDTH 0x827E
+ GL_MAX_HEIGHT 0x827F
+ GL_MAX_DEPTH 0x8280
+ GL_MAX_LAYERS 0x8281
+ GL_MAX_COMBINED_DIMENSIONS 0x8282
+ GL_COLOR_COMPONENTS 0x8283
+ GL_DEPTH_COMPONENTS 0x8284
+ GL_STENCIL_COMPONENTS 0x8285
+ GL_COLOR_RENDERABLE 0x8286
+ GL_DEPTH_RENDERABLE 0x8287
+ GL_STENCIL_RENDERABLE 0x8288
+ GL_FRAMEBUFFER_RENDERABLE 0x8289
+ GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
+ GL_FRAMEBUFFER_BLEND 0x828B
+ GL_READ_PIXELS 0x828C
+ GL_READ_PIXELS_FORMAT 0x828D
+ GL_READ_PIXELS_TYPE 0x828E
+ GL_TEXTURE_IMAGE_FORMAT 0x828F
+ GL_TEXTURE_IMAGE_TYPE 0x8290
+ GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
+ GL_GET_TEXTURE_IMAGE_TYPE 0x8292
+ GL_MIPMAP 0x8293
+ GL_MANUAL_GENERATE_MIPMAP 0x8294
+ GL_AUTO_GENERATE_MIPMAP 0x8295
+ GL_COLOR_ENCODING 0x8296
+ GL_SRGB_READ 0x8297
+ GL_SRGB_WRITE 0x8298
+ GL_SRGB_DECODE_ARB 0x8299
+ GL_FILTER 0x829A
+ GL_VERTEX_TEXTURE 0x829B
+ GL_TESS_CONTROL_TEXTURE 0x829C
+ GL_TESS_EVALUATION_TEXTURE 0x829D
+ GL_GEOMETRY_TEXTURE 0x829E
+ GL_FRAGMENT_TEXTURE 0x829F
+ GL_COMPUTE_TEXTURE 0x82A0
+ GL_TEXTURE_SHADOW 0x82A1
+ GL_TEXTURE_GATHER 0x82A2
+ GL_TEXTURE_GATHER_SHADOW 0x82A3
+ GL_SHADER_IMAGE_LOAD 0x82A4
+ GL_SHADER_IMAGE_STORE 0x82A5
+ GL_SHADER_IMAGE_ATOMIC 0x82A6
+ GL_IMAGE_TEXEL_SIZE 0x82A7
+ GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
+ GL_IMAGE_PIXEL_FORMAT 0x82A9
+ GL_IMAGE_PIXEL_TYPE 0x82AA
+ GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
+ GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
+ GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
+ GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
+ GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
+ GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
+ GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
+ GL_CLEAR_BUFFER 0x82B4
+ GL_TEXTURE_VIEW 0x82B5
+ GL_VIEW_COMPATIBILITY_CLASS 0x82B6
+ GL_FULL_SUPPORT 0x82B7
+ GL_CAVEAT_SUPPORT 0x82B8
+ GL_IMAGE_CLASS_4_X_32 0x82B9
+ GL_IMAGE_CLASS_2_X_32 0x82BA
+ GL_IMAGE_CLASS_1_X_32 0x82BB
+ GL_IMAGE_CLASS_4_X_16 0x82BC
+ GL_IMAGE_CLASS_2_X_16 0x82BD
+ GL_IMAGE_CLASS_1_X_16 0x82BE
+ GL_IMAGE_CLASS_4_X_8 0x82BF
+ GL_IMAGE_CLASS_2_X_8 0x82C0
+ GL_IMAGE_CLASS_1_X_8 0x82C1
+ GL_IMAGE_CLASS_11_11_10 0x82C2
+ GL_IMAGE_CLASS_10_10_10_2 0x82C3
+ GL_VIEW_CLASS_128_BITS 0x82C4
+ GL_VIEW_CLASS_96_BITS 0x82C5
+ GL_VIEW_CLASS_64_BITS 0x82C6
+ GL_VIEW_CLASS_48_BITS 0x82C7
+ GL_VIEW_CLASS_32_BITS 0x82C8
+ GL_VIEW_CLASS_24_BITS 0x82C9
+ GL_VIEW_CLASS_16_BITS 0x82CA
+ GL_VIEW_CLASS_8_BITS 0x82CB
+ GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
+ GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
+ GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
+ GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
+ GL_VIEW_CLASS_RGTC1_RED 0x82D0
+ GL_VIEW_CLASS_RGTC2_RG 0x82D1
+ GL_VIEW_CLASS_BPTC_UNORM 0x82D2
+ GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
+ void glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_invalidate_subdata b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_invalidate_subdata
new file mode 100644
index 0000000..fa86405
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_invalidate_subdata
@@ -0,0 +1,10 @@
+GL_ARB_invalidate_subdata
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_invalidate_subdata.txt
+GL_ARB_invalidate_subdata
+
+ void glInvalidateBufferData (GLuint buffer)
+ void glInvalidateBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr length)
+ void glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments)
+ void glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glInvalidateTexImage (GLuint texture, GLint level)
+ void glInvalidateTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_map_buffer_alignment b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_map_buffer_alignment
new file mode 100644
index 0000000..2adc38d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_map_buffer_alignment
@@ -0,0 +1,5 @@
+GL_ARB_map_buffer_alignment
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_map_buffer_alignment.txt
+GL_ARB_map_buffer_alignment
+
+ GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_map_buffer_range b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_map_buffer_range
new file mode 100644
index 0000000..1d9e055
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_map_buffer_range
@@ -0,0 +1,12 @@
+GL_ARB_map_buffer_range
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_map_buffer_range.txt
+GL_ARB_map_buffer_range
+
+ GL_MAP_READ_BIT 0x0001
+ GL_MAP_WRITE_BIT 0x0002
+ GL_MAP_INVALIDATE_RANGE_BIT 0x0004
+ GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
+ GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
+ GL_MAP_UNSYNCHRONIZED_BIT 0x0020
+ void glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length)
+ void * glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_matrix_palette b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_matrix_palette
new file mode 100644
index 0000000..98b0d0b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_matrix_palette
@@ -0,0 +1,19 @@
+GL_ARB_matrix_palette
+http://oss.sgi.com/projects/ogl-sample/registry/ARB/matrix_palette.txt
+GL_ARB_matrix_palette
+
+ GL_MATRIX_PALETTE_ARB 0x8840
+ GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
+ GL_MAX_PALETTE_MATRICES_ARB 0x8842
+ GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
+ GL_MATRIX_INDEX_ARRAY_ARB 0x8844
+ GL_CURRENT_MATRIX_INDEX_ARB 0x8845
+ GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
+ GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
+ GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
+ GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
+ void glCurrentPaletteMatrixARB (GLint index)
+ void glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, void *pointer)
+ void glMatrixIndexubvARB (GLint size, GLubyte *indices)
+ void glMatrixIndexusvARB (GLint size, GLushort *indices)
+ void glMatrixIndexuivARB (GLint size, GLuint *indices)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multi_bind b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multi_bind
new file mode 100644
index 0000000..8914ce0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multi_bind
@@ -0,0 +1,10 @@
+GL_ARB_multi_bind
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_multi_bind.txt
+GL_ARB_multi_bind
+
+ void glBindBuffersBase (GLenum target, GLuint first, GLsizei count, const GLuint* buffers)
+ void glBindBuffersRange (GLenum target, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizeiptr *sizes)
+ void glBindImageTextures (GLuint first, GLsizei count, const GLuint* textures)
+ void glBindSamplers (GLuint first, GLsizei count, const GLuint* samplers)
+ void glBindTextures (GLuint first, GLsizei count, const GLuint* textures)
+ void glBindVertexBuffers (GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multi_draw_indirect b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multi_draw_indirect
new file mode 100644
index 0000000..f22c91d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multi_draw_indirect
@@ -0,0 +1,6 @@
+GL_ARB_multi_draw_indirect
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_multi_draw_indirect.txt
+GL_ARB_multi_draw_indirect
+
+ void glMultiDrawArraysIndirect (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride)
+ void glMultiDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multisample
new file mode 100644
index 0000000..12cf292
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multisample
@@ -0,0 +1,14 @@
+GL_ARB_multisample
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_multisample.txt
+GL_ARB_multisample
+
+ GL_MULTISAMPLE_ARB 0x809D
+ GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
+ GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
+ GL_SAMPLE_COVERAGE_ARB 0x80A0
+ GL_SAMPLE_BUFFERS_ARB 0x80A8
+ GL_SAMPLES_ARB 0x80A9
+ GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
+ GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
+ GL_MULTISAMPLE_BIT_ARB 0x20000000
+ void glSampleCoverageARB (GLclampf value, GLboolean invert)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multitexture b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multitexture
new file mode 100644
index 0000000..46a9546
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_multitexture
@@ -0,0 +1,73 @@
+GL_ARB_multitexture
+http://oss.sgi.com/projects/ogl-sample/registry/ARB/multitexture.txt
+GL_ARB_multitexture
+
+ GL_TEXTURE0_ARB 0x84C0
+ GL_TEXTURE1_ARB 0x84C1
+ GL_TEXTURE2_ARB 0x84C2
+ GL_TEXTURE3_ARB 0x84C3
+ GL_TEXTURE4_ARB 0x84C4
+ GL_TEXTURE5_ARB 0x84C5
+ GL_TEXTURE6_ARB 0x84C6
+ GL_TEXTURE7_ARB 0x84C7
+ GL_TEXTURE8_ARB 0x84C8
+ GL_TEXTURE9_ARB 0x84C9
+ GL_TEXTURE10_ARB 0x84CA
+ GL_TEXTURE11_ARB 0x84CB
+ GL_TEXTURE12_ARB 0x84CC
+ GL_TEXTURE13_ARB 0x84CD
+ GL_TEXTURE14_ARB 0x84CE
+ GL_TEXTURE15_ARB 0x84CF
+ GL_TEXTURE16_ARB 0x84D0
+ GL_TEXTURE17_ARB 0x84D1
+ GL_TEXTURE18_ARB 0x84D2
+ GL_TEXTURE19_ARB 0x84D3
+ GL_TEXTURE20_ARB 0x84D4
+ GL_TEXTURE21_ARB 0x84D5
+ GL_TEXTURE22_ARB 0x84D6
+ GL_TEXTURE23_ARB 0x84D7
+ GL_TEXTURE24_ARB 0x84D8
+ GL_TEXTURE25_ARB 0x84D9
+ GL_TEXTURE26_ARB 0x84DA
+ GL_TEXTURE27_ARB 0x84DB
+ GL_TEXTURE28_ARB 0x84DC
+ GL_TEXTURE29_ARB 0x84DD
+ GL_TEXTURE30_ARB 0x84DE
+ GL_TEXTURE31_ARB 0x84DF
+ GL_ACTIVE_TEXTURE_ARB 0x84E0
+ GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
+ GL_MAX_TEXTURE_UNITS_ARB 0x84E2
+ void glActiveTextureARB (GLenum texture)
+ void glClientActiveTextureARB (GLenum texture)
+ void glMultiTexCoord1dARB (GLenum target, GLdouble s)
+ void glMultiTexCoord1dvARB (GLenum target, const GLdouble *v)
+ void glMultiTexCoord1fARB (GLenum target, GLfloat s)
+ void glMultiTexCoord1fvARB (GLenum target, const GLfloat *v)
+ void glMultiTexCoord1iARB (GLenum target, GLint s)
+ void glMultiTexCoord1ivARB (GLenum target, const GLint *v)
+ void glMultiTexCoord1sARB (GLenum target, GLshort s)
+ void glMultiTexCoord1svARB (GLenum target, const GLshort *v)
+ void glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t)
+ void glMultiTexCoord2dvARB (GLenum target, const GLdouble *v)
+ void glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t)
+ void glMultiTexCoord2fvARB (GLenum target, const GLfloat *v)
+ void glMultiTexCoord2iARB (GLenum target, GLint s, GLint t)
+ void glMultiTexCoord2ivARB (GLenum target, const GLint *v)
+ void glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t)
+ void glMultiTexCoord2svARB (GLenum target, const GLshort *v)
+ void glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r)
+ void glMultiTexCoord3dvARB (GLenum target, const GLdouble *v)
+ void glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r)
+ void glMultiTexCoord3fvARB (GLenum target, const GLfloat *v)
+ void glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r)
+ void glMultiTexCoord3ivARB (GLenum target, const GLint *v)
+ void glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r)
+ void glMultiTexCoord3svARB (GLenum target, const GLshort *v)
+ void glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+ void glMultiTexCoord4dvARB (GLenum target, const GLdouble *v)
+ void glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+ void glMultiTexCoord4fvARB (GLenum target, const GLfloat *v)
+ void glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q)
+ void glMultiTexCoord4ivARB (GLenum target, const GLint *v)
+ void glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+ void glMultiTexCoord4svARB (GLenum target, const GLshort *v)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_occlusion_query b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_occlusion_query
new file mode 100644
index 0000000..3f1f1d4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_occlusion_query
@@ -0,0 +1,17 @@
+GL_ARB_occlusion_query
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_occlusion_query.txt
+GL_ARB_occlusion_query
+
+ GL_QUERY_COUNTER_BITS_ARB 0x8864
+ GL_CURRENT_QUERY_ARB 0x8865
+ GL_QUERY_RESULT_ARB 0x8866
+ GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
+ GL_SAMPLES_PASSED_ARB 0x8914
+ void glBeginQueryARB (GLenum target, GLuint id)
+ void glDeleteQueriesARB (GLsizei n, const GLuint* ids)
+ void glEndQueryARB (GLenum target)
+ void glGenQueriesARB (GLsizei n, GLuint* ids)
+ void glGetQueryObjectivARB (GLuint id, GLenum pname, GLint* params)
+ void glGetQueryObjectuivARB (GLuint id, GLenum pname, GLuint* params)
+ void glGetQueryivARB (GLenum target, GLenum pname, GLint* params)
+ GLboolean glIsQueryARB (GLuint id)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_occlusion_query2 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_occlusion_query2
new file mode 100644
index 0000000..605e0c1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_occlusion_query2
@@ -0,0 +1,5 @@
+GL_ARB_occlusion_query2
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_occlusion_query2.txt
+GL_ARB_occlusion_query2
+
+ GL_ANY_SAMPLES_PASSED 0x8C2F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_parallel_shader_compile b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_parallel_shader_compile
new file mode 100644
index 0000000..04124a3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_parallel_shader_compile
@@ -0,0 +1,7 @@
+GL_ARB_parallel_shader_compile
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_parallel_shader_compile.txt
+GL_ARB_parallel_shader_compile
+
+ GL_MAX_SHADER_COMPILER_THREADS_ARB 0x91B0
+ GL_COMPLETION_STATUS_ARB 0x91B1
+ void glMaxShaderCompilerThreadsARB (GLuint count)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_pipeline_statistics_query b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_pipeline_statistics_query
new file mode 100644
index 0000000..9db4e80
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_pipeline_statistics_query
@@ -0,0 +1,15 @@
+GL_ARB_pipeline_statistics_query
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_pipeline_statistics_query.txt
+GL_ARB_pipeline_statistics_query
+
+ GL_VERTICES_SUBMITTED_ARB 0x82EE
+ GL_PRIMITIVES_SUBMITTED_ARB 0x82EF
+ GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0
+ GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1
+ GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2
+ GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3
+ GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4
+ GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5
+ GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6
+ GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7
+ GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_pixel_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_pixel_buffer_object
new file mode 100644
index 0000000..89f18e8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_pixel_buffer_object
@@ -0,0 +1,8 @@
+GL_ARB_pixel_buffer_object
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_pixel_buffer_object.txt
+GL_ARB_pixel_buffer_object
+
+ GL_PIXEL_PACK_BUFFER_ARB 0x88EB
+ GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC
+ GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED
+ GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_point_parameters b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_point_parameters
new file mode 100644
index 0000000..3f9ee60
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_point_parameters
@@ -0,0 +1,10 @@
+GL_ARB_point_parameters
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_point_parameters.txt
+GL_ARB_point_parameters
+
+ GL_POINT_SIZE_MIN_ARB 0x8126
+ GL_POINT_SIZE_MAX_ARB 0x8127
+ GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128
+ GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
+ void glPointParameterfARB (GLenum pname, GLfloat param)
+ void glPointParameterfvARB (GLenum pname, const GLfloat* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_point_sprite b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_point_sprite
new file mode 100644
index 0000000..214f29b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_point_sprite
@@ -0,0 +1,6 @@
+GL_ARB_point_sprite
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_point_sprite.txt
+GL_ARB_point_sprite
+
+ GL_POINT_SPRITE_ARB 0x8861
+ GL_COORD_REPLACE_ARB 0x8862
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_polygon_offset_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_polygon_offset_clamp
new file mode 100644
index 0000000..d04e827
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_polygon_offset_clamp
@@ -0,0 +1,6 @@
+GL_ARB_polygon_offset_clamp
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_polygon_offset_clamp.txt
+GL_ARB_polygon_offset_clamp
+
+ GL_POLYGON_OFFSET_CLAMP 0x8E1B
+ void glPolygonOffsetClamp (GLfloat factor, GLfloat units, GLfloat clamp)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_post_depth_coverage b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_post_depth_coverage
new file mode 100644
index 0000000..49a054c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_post_depth_coverage
@@ -0,0 +1,4 @@
+GL_ARB_post_depth_coverage
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_post_depth_coverage.txt
+GL_ARB_post_depth_coverage
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_program_interface_query b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_program_interface_query
new file mode 100644
index 0000000..5baa676
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_program_interface_query
@@ -0,0 +1,57 @@
+GL_ARB_program_interface_query
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_program_interface_query.txt
+GL_ARB_program_interface_query
+
+ GL_UNIFORM 0x92E1
+ GL_UNIFORM_BLOCK 0x92E2
+ GL_PROGRAM_INPUT 0x92E3
+ GL_PROGRAM_OUTPUT 0x92E4
+ GL_BUFFER_VARIABLE 0x92E5
+ GL_SHADER_STORAGE_BLOCK 0x92E6
+ GL_IS_PER_PATCH 0x92E7
+ GL_VERTEX_SUBROUTINE 0x92E8
+ GL_TESS_CONTROL_SUBROUTINE 0x92E9
+ GL_TESS_EVALUATION_SUBROUTINE 0x92EA
+ GL_GEOMETRY_SUBROUTINE 0x92EB
+ GL_FRAGMENT_SUBROUTINE 0x92EC
+ GL_COMPUTE_SUBROUTINE 0x92ED
+ GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE
+ GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF
+ GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0
+ GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1
+ GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2
+ GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3
+ GL_TRANSFORM_FEEDBACK_VARYING 0x92F4
+ GL_ACTIVE_RESOURCES 0x92F5
+ GL_MAX_NAME_LENGTH 0x92F6
+ GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7
+ GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8
+ GL_NAME_LENGTH 0x92F9
+ GL_TYPE 0x92FA
+ GL_ARRAY_SIZE 0x92FB
+ GL_OFFSET 0x92FC
+ GL_BLOCK_INDEX 0x92FD
+ GL_ARRAY_STRIDE 0x92FE
+ GL_MATRIX_STRIDE 0x92FF
+ GL_IS_ROW_MAJOR 0x9300
+ GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301
+ GL_BUFFER_BINDING 0x9302
+ GL_BUFFER_DATA_SIZE 0x9303
+ GL_NUM_ACTIVE_VARIABLES 0x9304
+ GL_ACTIVE_VARIABLES 0x9305
+ GL_REFERENCED_BY_VERTEX_SHADER 0x9306
+ GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307
+ GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308
+ GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309
+ GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A
+ GL_REFERENCED_BY_COMPUTE_SHADER 0x930B
+ GL_TOP_LEVEL_ARRAY_SIZE 0x930C
+ GL_TOP_LEVEL_ARRAY_STRIDE 0x930D
+ GL_LOCATION 0x930E
+ GL_LOCATION_INDEX 0x930F
+ void glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint* params)
+ GLuint glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar* name)
+ GLint glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar* name)
+ GLint glGetProgramResourceLocationIndex (GLuint program, GLenum programInterface, const GLchar* name)
+ void glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar *name)
+ void glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLint *params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_provoking_vertex b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_provoking_vertex
new file mode 100644
index 0000000..892c87c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_provoking_vertex
@@ -0,0 +1,9 @@
+GL_ARB_provoking_vertex
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_provoking_vertex.txt
+GL_ARB_provoking_vertex
+
+ GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
+ GL_FIRST_VERTEX_CONVENTION 0x8E4D
+ GL_LAST_VERTEX_CONVENTION 0x8E4E
+ GL_PROVOKING_VERTEX 0x8E4F
+ void glProvokingVertex (GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_query_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_query_buffer_object
new file mode 100644
index 0000000..f0dd16f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_query_buffer_object
@@ -0,0 +1,8 @@
+GL_ARB_query_buffer_object
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_query_buffer_object.txt
+GL_ARB_query_buffer_object
+
+ GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
+ GL_QUERY_BUFFER 0x9192
+ GL_QUERY_BUFFER_BINDING 0x9193
+ GL_QUERY_RESULT_NO_WAIT 0x9194
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robust_buffer_access_behavior b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robust_buffer_access_behavior
new file mode 100644
index 0000000..c2e92b6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robust_buffer_access_behavior
@@ -0,0 +1,4 @@
+GL_ARB_robust_buffer_access_behavior
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_robust_buffer_access_behavior.txt
+GL_ARB_robust_buffer_access_behavior
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness
new file mode 100644
index 0000000..82d48d8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness
@@ -0,0 +1,31 @@
+GL_ARB_robustness
+http://www.opengl.org/registry/specs/ARB/robustness.txt
+GL_ARB_robustness
+
+ GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
+ GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+ GL_GUILTY_CONTEXT_RESET_ARB 0x8253
+ GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
+ GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
+ GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+ GL_NO_RESET_NOTIFICATION_ARB 0x8261
+ GLenum glGetGraphicsResetStatusARB (void)
+ void glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table)
+ void glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, void* img)
+ void glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image)
+ void glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values)
+ void glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v)
+ void glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v)
+ void glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint* v)
+ void glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values)
+ void glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat* values)
+ void glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint* values)
+ void glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort* values)
+ void glGetnPolygonStippleARB (GLsizei bufSize, GLubyte* pattern)
+ void glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, void*column, void*span)
+ void glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img)
+ void glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble* params)
+ void glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat* params)
+ void glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint* params)
+ void glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint* params)
+ void glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness_application_isolation b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness_application_isolation
new file mode 100644
index 0000000..b7da8b0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness_application_isolation
@@ -0,0 +1,4 @@
+GL_ARB_robustness_application_isolation
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_robustness_application_isolation.txt
+GL_ARB_robustness_application_isolation
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness_share_group_isolation b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness_share_group_isolation
new file mode 100644
index 0000000..6c22cef
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_robustness_share_group_isolation
@@ -0,0 +1,4 @@
+GL_ARB_robustness_share_group_isolation
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_robustness_application_isolation.txt
+GL_ARB_robustness_share_group_isolation
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sample_locations b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sample_locations
new file mode 100644
index 0000000..d8775f9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sample_locations
@@ -0,0 +1,15 @@
+GL_ARB_sample_locations
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_sample_locations.txt
+GL_ARB_sample_locations
+
+ GL_SAMPLE_LOCATION_ARB 0x8E50
+ GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB 0x933D
+ GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB 0x933E
+ GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB 0x933F
+ GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB 0x9340
+ GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341
+ GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342
+ GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343
+ void glEvaluateDepthValuesARB (void)
+ void glFramebufferSampleLocationsfvARB (GLenum target, GLuint start, GLsizei count, const GLfloat* v)
+ void glNamedFramebufferSampleLocationsfvARB (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sample_shading b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sample_shading
new file mode 100644
index 0000000..5b40d4b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sample_shading
@@ -0,0 +1,7 @@
+GL_ARB_sample_shading
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_sample_shading.txt
+GL_ARB_sample_shading
+
+ GL_SAMPLE_SHADING_ARB 0x8C36
+ GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37
+ void glMinSampleShadingARB (GLclampf value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sampler_objects b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sampler_objects
new file mode 100644
index 0000000..f50b7a2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sampler_objects
@@ -0,0 +1,19 @@
+GL_ARB_sampler_objects
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_sampler_objects.txt
+GL_ARB_sampler_objects
+
+ GL_SAMPLER_BINDING 0x8919
+ void glBindSampler (GLuint unit, GLuint sampler)
+ void glDeleteSamplers (GLsizei count, const GLuint * samplers)
+ void glGenSamplers (GLsizei count, GLuint* samplers)
+ void glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint* params)
+ void glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint* params)
+ void glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat* params)
+ void glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint* params)
+ GLboolean glIsSampler (GLuint sampler)
+ void glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint* params)
+ void glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint* params)
+ void glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param)
+ void glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat* params)
+ void glSamplerParameteri (GLuint sampler, GLenum pname, GLint param)
+ void glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_seamless_cube_map b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_seamless_cube_map
new file mode 100644
index 0000000..015d7ee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_seamless_cube_map
@@ -0,0 +1,5 @@
+GL_ARB_seamless_cube_map
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_seamless_cube_map.txt
+GL_ARB_seamless_cube_map
+
+ GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_seamless_cubemap_per_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_seamless_cubemap_per_texture
new file mode 100644
index 0000000..22372d0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_seamless_cubemap_per_texture
@@ -0,0 +1,5 @@
+GL_ARB_seamless_cubemap_per_texture
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_seamless_cubemap_per_texture.txt
+GL_ARB_seamless_cubemap_per_texture
+
+ GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_separate_shader_objects b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_separate_shader_objects
new file mode 100644
index 0000000..3d3d869
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_separate_shader_objects
@@ -0,0 +1,73 @@
+GL_ARB_separate_shader_objects
+http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
+GL_ARB_separate_shader_objects
+
+ GL_VERTEX_SHADER_BIT 0x00000001
+ GL_FRAGMENT_SHADER_BIT 0x00000002
+ GL_GEOMETRY_SHADER_BIT 0x00000004
+ GL_TESS_CONTROL_SHADER_BIT 0x00000008
+ GL_TESS_EVALUATION_SHADER_BIT 0x00000010
+ GL_PROGRAM_SEPARABLE 0x8258
+ GL_ACTIVE_PROGRAM 0x8259
+ GL_PROGRAM_PIPELINE_BINDING 0x825A
+ GL_ALL_SHADER_BITS 0xFFFFFFFF
+ void glActiveShaderProgram (GLuint pipeline, GLuint program)
+ void glBindProgramPipeline (GLuint pipeline)
+ GLuint glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar * const * strings)
+ void glDeleteProgramPipelines (GLsizei n, const GLuint* pipelines)
+ void glGenProgramPipelines (GLsizei n, GLuint* pipelines)
+ void glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar *infoLog)
+ void glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint* params)
+ GLboolean glIsProgramPipeline (GLuint pipeline)
+ void glProgramUniform1d (GLuint program, GLint location, GLdouble x)
+ void glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
+ void glProgramUniform1f (GLuint program, GLint location, GLfloat x)
+ void glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform1i (GLuint program, GLint location, GLint x)
+ void glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform1ui (GLuint program, GLint location, GLuint x)
+ void glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniform2d (GLuint program, GLint location, GLdouble x, GLdouble y)
+ void glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
+ void glProgramUniform2f (GLuint program, GLint location, GLfloat x, GLfloat y)
+ void glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform2i (GLuint program, GLint location, GLint x, GLint y)
+ void glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform2ui (GLuint program, GLint location, GLuint x, GLuint y)
+ void glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniform3d (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z)
+ void glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
+ void glProgramUniform3f (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z)
+ void glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform3i (GLuint program, GLint location, GLint x, GLint y, GLint z)
+ void glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform3ui (GLuint program, GLint location, GLuint x, GLuint y, GLuint z)
+ void glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniform4d (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
+ void glProgramUniform4f (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform4i (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w)
+ void glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform4ui (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w)
+ void glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+ void glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program)
+ void glValidateProgramPipeline (GLuint pipeline)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_atomic_counter_ops b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_atomic_counter_ops
new file mode 100644
index 0000000..7a95862
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_atomic_counter_ops
@@ -0,0 +1,4 @@
+GL_ARB_shader_atomic_counter_ops
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_atomic_counter_ops.txt
+GL_ARB_shader_atomic_counter_ops
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_atomic_counters b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_atomic_counters
new file mode 100644
index 0000000..ef8b9bc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_atomic_counters
@@ -0,0 +1,34 @@
+GL_ARB_shader_atomic_counters
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_atomic_counters.txt
+GL_ARB_shader_atomic_counters
+
+ GL_ATOMIC_COUNTER_BUFFER 0x92C0
+ GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1
+ GL_ATOMIC_COUNTER_BUFFER_START 0x92C2
+ GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3
+ GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4
+ GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5
+ GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB
+ GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC
+ GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD
+ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE
+ GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF
+ GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0
+ GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1
+ GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2
+ GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3
+ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4
+ GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5
+ GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6
+ GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7
+ GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8
+ GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9
+ GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA
+ GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB
+ GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC
+ void glGetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_ballot b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_ballot
new file mode 100644
index 0000000..6cb763b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_ballot
@@ -0,0 +1,4 @@
+GL_ARB_shader_ballot
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_ballot.txt
+GL_ARB_shader_ballot
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_bit_encoding b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_bit_encoding
new file mode 100644
index 0000000..44210a9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_bit_encoding
@@ -0,0 +1,4 @@
+GL_ARB_shader_bit_encoding
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_bit_encoding.txt
+GL_ARB_shader_bit_encoding
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_clock b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_clock
new file mode 100644
index 0000000..db57161
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_clock
@@ -0,0 +1,4 @@
+GL_ARB_shader_clock
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_clock.txt
+GL_ARB_shader_clock
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_draw_parameters b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_draw_parameters
new file mode 100644
index 0000000..d92a180
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_draw_parameters
@@ -0,0 +1,4 @@
+GL_ARB_shader_draw_parameters
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_draw_parameters.txt
+GL_ARB_shader_draw_parameters
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_group_vote b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_group_vote
new file mode 100644
index 0000000..0a0a984
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_group_vote
@@ -0,0 +1,4 @@
+GL_ARB_shader_group_vote
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_group_vote.txt
+GL_ARB_shader_group_vote
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_image_load_store b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_image_load_store
new file mode 100644
index 0000000..38e6bf5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_image_load_store
@@ -0,0 +1,70 @@
+GL_ARB_shader_image_load_store
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_image_load_store.txt
+GL_ARB_shader_image_load_store
+
+ GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
+ GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
+ GL_UNIFORM_BARRIER_BIT 0x00000004
+ GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
+ GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
+ GL_COMMAND_BARRIER_BIT 0x00000040
+ GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
+ GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
+ GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
+ GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
+ GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
+ GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
+ GL_MAX_IMAGE_UNITS 0x8F38
+ GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
+ GL_IMAGE_BINDING_NAME 0x8F3A
+ GL_IMAGE_BINDING_LEVEL 0x8F3B
+ GL_IMAGE_BINDING_LAYERED 0x8F3C
+ GL_IMAGE_BINDING_LAYER 0x8F3D
+ GL_IMAGE_BINDING_ACCESS 0x8F3E
+ GL_IMAGE_1D 0x904C
+ GL_IMAGE_2D 0x904D
+ GL_IMAGE_3D 0x904E
+ GL_IMAGE_2D_RECT 0x904F
+ GL_IMAGE_CUBE 0x9050
+ GL_IMAGE_BUFFER 0x9051
+ GL_IMAGE_1D_ARRAY 0x9052
+ GL_IMAGE_2D_ARRAY 0x9053
+ GL_IMAGE_CUBE_MAP_ARRAY 0x9054
+ GL_IMAGE_2D_MULTISAMPLE 0x9055
+ GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056
+ GL_INT_IMAGE_1D 0x9057
+ GL_INT_IMAGE_2D 0x9058
+ GL_INT_IMAGE_3D 0x9059
+ GL_INT_IMAGE_2D_RECT 0x905A
+ GL_INT_IMAGE_CUBE 0x905B
+ GL_INT_IMAGE_BUFFER 0x905C
+ GL_INT_IMAGE_1D_ARRAY 0x905D
+ GL_INT_IMAGE_2D_ARRAY 0x905E
+ GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F
+ GL_INT_IMAGE_2D_MULTISAMPLE 0x9060
+ GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
+ GL_UNSIGNED_INT_IMAGE_1D 0x9062
+ GL_UNSIGNED_INT_IMAGE_2D 0x9063
+ GL_UNSIGNED_INT_IMAGE_3D 0x9064
+ GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065
+ GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
+ GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067
+ GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068
+ GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
+ GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
+ GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
+ GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
+ GL_MAX_IMAGE_SAMPLES 0x906D
+ GL_IMAGE_BINDING_FORMAT 0x906E
+ GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
+ GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8
+ GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9
+ GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA
+ GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB
+ GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC
+ GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD
+ GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
+ GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
+ GL_ALL_BARRIER_BITS 0xFFFFFFFF
+ void glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
+ void glMemoryBarrier (GLbitfield barriers)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_image_size b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_image_size
new file mode 100644
index 0000000..3f2a92f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_image_size
@@ -0,0 +1,4 @@
+GL_ARB_shader_image_size
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_image_size.txt
+GL_ARB_shader_image_size
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_objects b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_objects
new file mode 100644
index 0000000..e384e81
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_objects
@@ -0,0 +1,79 @@
+GL_ARB_shader_objects
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_objects.txt
+GL_ARB_shader_objects
+
+ GL_PROGRAM_OBJECT_ARB 0x8B40
+ GL_SHADER_OBJECT_ARB 0x8B48
+ GL_OBJECT_TYPE_ARB 0x8B4E
+ GL_OBJECT_SUBTYPE_ARB 0x8B4F
+ GL_FLOAT_VEC2_ARB 0x8B50
+ GL_FLOAT_VEC3_ARB 0x8B51
+ GL_FLOAT_VEC4_ARB 0x8B52
+ GL_INT_VEC2_ARB 0x8B53
+ GL_INT_VEC3_ARB 0x8B54
+ GL_INT_VEC4_ARB 0x8B55
+ GL_BOOL_ARB 0x8B56
+ GL_BOOL_VEC2_ARB 0x8B57
+ GL_BOOL_VEC3_ARB 0x8B58
+ GL_BOOL_VEC4_ARB 0x8B59
+ GL_FLOAT_MAT2_ARB 0x8B5A
+ GL_FLOAT_MAT3_ARB 0x8B5B
+ GL_FLOAT_MAT4_ARB 0x8B5C
+ GL_SAMPLER_1D_ARB 0x8B5D
+ GL_SAMPLER_2D_ARB 0x8B5E
+ GL_SAMPLER_3D_ARB 0x8B5F
+ GL_SAMPLER_CUBE_ARB 0x8B60
+ GL_SAMPLER_1D_SHADOW_ARB 0x8B61
+ GL_SAMPLER_2D_SHADOW_ARB 0x8B62
+ GL_SAMPLER_2D_RECT_ARB 0x8B63
+ GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
+ GL_OBJECT_DELETE_STATUS_ARB 0x8B80
+ GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
+ GL_OBJECT_LINK_STATUS_ARB 0x8B82
+ GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83
+ GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
+ GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85
+ GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86
+ GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
+ GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
+ void glAttachObjectARB (GLhandleARB containerObj, GLhandleARB obj)
+ void glCompileShaderARB (GLhandleARB shaderObj)
+ GLhandleARB glCreateProgramObjectARB (void)
+ GLhandleARB glCreateShaderObjectARB (GLenum shaderType)
+ void glDeleteObjectARB (GLhandleARB obj)
+ void glDetachObjectARB (GLhandleARB containerObj, GLhandleARB attachedObj)
+ void glGetActiveUniformARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name)
+ void glGetAttachedObjectsARB (GLhandleARB containerObj, GLsizei maxCount, GLsizei* count, GLhandleARB *obj)
+ GLhandleARB glGetHandleARB (GLenum pname)
+ void glGetInfoLogARB (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *infoLog)
+ void glGetObjectParameterfvARB (GLhandleARB obj, GLenum pname, GLfloat* params)
+ void glGetObjectParameterivARB (GLhandleARB obj, GLenum pname, GLint* params)
+ void glGetShaderSourceARB (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *source)
+ GLint glGetUniformLocationARB (GLhandleARB programObj, const GLcharARB* name)
+ void glGetUniformfvARB (GLhandleARB programObj, GLint location, GLfloat* params)
+ void glGetUniformivARB (GLhandleARB programObj, GLint location, GLint* params)
+ void glLinkProgramARB (GLhandleARB programObj)
+ void glShaderSourceARB (GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint *length)
+ void glUniform1fARB (GLint location, GLfloat v0)
+ void glUniform1fvARB (GLint location, GLsizei count, const GLfloat* value)
+ void glUniform1iARB (GLint location, GLint v0)
+ void glUniform1ivARB (GLint location, GLsizei count, const GLint* value)
+ void glUniform2fARB (GLint location, GLfloat v0, GLfloat v1)
+ void glUniform2fvARB (GLint location, GLsizei count, const GLfloat* value)
+ void glUniform2iARB (GLint location, GLint v0, GLint v1)
+ void glUniform2ivARB (GLint location, GLsizei count, const GLint* value)
+ void glUniform3fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+ void glUniform3fvARB (GLint location, GLsizei count, const GLfloat* value)
+ void glUniform3iARB (GLint location, GLint v0, GLint v1, GLint v2)
+ void glUniform3ivARB (GLint location, GLsizei count, const GLint* value)
+ void glUniform4fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+ void glUniform4fvARB (GLint location, GLsizei count, const GLfloat* value)
+ void glUniform4iARB (GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+ void glUniform4ivARB (GLint location, GLsizei count, const GLint* value)
+ void glUniformMatrix2fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUniformMatrix3fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUniformMatrix4fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUseProgramObjectARB (GLhandleARB programObj)
+ void glValidateProgramARB (GLhandleARB programObj)
+ typedef char GLcharARB
+ typedef unsigned int GLhandleARB
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_precision b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_precision
new file mode 100644
index 0000000..fb4b8e0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_precision
@@ -0,0 +1,4 @@
+GL_ARB_shader_precision
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_precision.txt
+GL_ARB_shader_precision
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_stencil_export b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_stencil_export
new file mode 100644
index 0000000..3abadc0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_stencil_export
@@ -0,0 +1,4 @@
+GL_ARB_shader_stencil_export
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_stencil_export.txt
+GL_ARB_shader_stencil_export
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_storage_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_storage_buffer_object
new file mode 100644
index 0000000..9c8be2e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_storage_buffer_object
@@ -0,0 +1,21 @@
+GL_ARB_shader_storage_buffer_object
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_storage_buffer_object.txt
+GL_ARB_shader_storage_buffer_object
+
+ GL_SHADER_STORAGE_BARRIER_BIT 0x2000
+ GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
+ GL_SHADER_STORAGE_BUFFER 0x90D2
+ GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
+ GL_SHADER_STORAGE_BUFFER_START 0x90D4
+ GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
+ GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
+ GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7
+ GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8
+ GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9
+ GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
+ GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
+ GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
+ GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
+ GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
+ GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
+ void glShaderStorageBlockBinding (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_subroutine b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_subroutine
new file mode 100644
index 0000000..485d8f0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_subroutine
@@ -0,0 +1,21 @@
+GL_ARB_shader_subroutine
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_subroutine.txt
+GL_ARB_shader_subroutine
+
+ GL_ACTIVE_SUBROUTINES 0x8DE5
+ GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6
+ GL_MAX_SUBROUTINES 0x8DE7
+ GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8
+ GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47
+ GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48
+ GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49
+ GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
+ GL_COMPATIBLE_SUBROUTINES 0x8E4B
+ void glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name)
+ void glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name)
+ void glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values)
+ void glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint* values)
+ GLuint glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar* name)
+ GLint glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar* name)
+ void glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint* params)
+ void glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint* indices)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_texture_image_samples b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_texture_image_samples
new file mode 100644
index 0000000..5da958e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_texture_image_samples
@@ -0,0 +1,4 @@
+GL_ARB_shader_texture_image_samples
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_texture_image_samples.txt
+GL_ARB_shader_texture_image_samples
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_texture_lod b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_texture_lod
new file mode 100644
index 0000000..178e399
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_texture_lod
@@ -0,0 +1,4 @@
+GL_ARB_shader_texture_lod
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_texture_lod.txt
+GL_ARB_shader_texture_lod
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_viewport_layer_array b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_viewport_layer_array
new file mode 100644
index 0000000..4787e81
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shader_viewport_layer_array
@@ -0,0 +1,4 @@
+GL_ARB_shader_viewport_layer_array
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_viewport_layer_array.txt
+GL_ARB_shader_viewport_layer_array
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_100 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_100
new file mode 100644
index 0000000..0f5e2b4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_100
@@ -0,0 +1,5 @@
+GL_ARB_shading_language_100
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shading_language_100.txt
+GL_ARB_shading_language_100
+
+ GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_420pack b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_420pack
new file mode 100644
index 0000000..ed52b84
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_420pack
@@ -0,0 +1,4 @@
+GL_ARB_shading_language_420pack
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shading_language_420pack.txt
+GL_ARB_shading_language_420pack
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_include b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_include
new file mode 100644
index 0000000..29576ca
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_include
@@ -0,0 +1,13 @@
+GL_ARB_shading_language_include
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shading_language_include.txt
+GL_ARB_shading_language_include
+
+ GL_SHADER_INCLUDE_ARB 0x8DAE
+ GL_NAMED_STRING_LENGTH_ARB 0x8DE9
+ GL_NAMED_STRING_TYPE_ARB 0x8DEA
+ void glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length)
+ void glDeleteNamedStringARB (GLint namelen, const GLchar* name)
+ void glGetNamedStringARB (GLint namelen, const GLchar* name, GLsizei bufSize, GLint *stringlen, GLchar *string)
+ void glGetNamedStringivARB (GLint namelen, const GLchar* name, GLenum pname, GLint *params)
+ GLboolean glIsNamedStringARB (GLint namelen, const GLchar* name)
+ void glNamedStringARB (GLenum type, GLint namelen, const GLchar* name, GLint stringlen, const GLchar *string)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_packing b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_packing
new file mode 100644
index 0000000..f84c68b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shading_language_packing
@@ -0,0 +1,4 @@
+GL_ARB_shading_language_packing
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shading_language_packing.txt
+GL_ARB_shading_language_packing
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shadow b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shadow
new file mode 100644
index 0000000..f606cba
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shadow
@@ -0,0 +1,7 @@
+GL_ARB_shadow
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shadow.txt
+GL_ARB_shadow
+
+ GL_TEXTURE_COMPARE_MODE_ARB 0x884C
+ GL_TEXTURE_COMPARE_FUNC_ARB 0x884D
+ GL_COMPARE_R_TO_TEXTURE_ARB 0x884E
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shadow_ambient b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shadow_ambient
new file mode 100644
index 0000000..3ddd334
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_shadow_ambient
@@ -0,0 +1,5 @@
+GL_ARB_shadow_ambient
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shadow_ambient.txt
+GL_ARB_shadow_ambient
+
+ GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_buffer
new file mode 100644
index 0000000..398cf8b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_buffer
@@ -0,0 +1,7 @@
+GL_ARB_sparse_buffer
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_sparse_buffer.txt
+GL_ARB_sparse_buffer
+
+ GL_SPARSE_STORAGE_BIT_ARB 0x0400
+ GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8
+ void glBufferPageCommitmentARB (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture
new file mode 100644
index 0000000..ccd96ce
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture
@@ -0,0 +1,16 @@
+GL_ARB_sparse_texture
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_sparse_texture.txt
+GL_ARB_sparse_texture
+
+ GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195
+ GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196
+ GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197
+ GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198
+ GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199
+ GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A
+ GL_TEXTURE_SPARSE_ARB 0x91A6
+ GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7
+ GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8
+ GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9
+ GL_NUM_SPARSE_LEVELS_ARB 0x91AA
+ void glTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture2 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture2
new file mode 100644
index 0000000..ceedfb2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture2
@@ -0,0 +1,4 @@
+GL_ARB_sparse_texture2
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_sparse_texture2.txt
+GL_ARB_sparse_texture2
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture_clamp
new file mode 100644
index 0000000..1bf148e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sparse_texture_clamp
@@ -0,0 +1,4 @@
+GL_ARB_sparse_texture_clamp
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_sparse_texture_clamp.txt
+GL_ARB_sparse_texture_clamp
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_spirv_extensions b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_spirv_extensions
new file mode 100644
index 0000000..7cdedd6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_spirv_extensions
@@ -0,0 +1,6 @@
+GL_ARB_spirv_extensions
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_spirv_extensions.txt
+GL_ARB_spirv_extensions
+
+ GL_SPIR_V_EXTENSIONS 0x9553
+ GL_NUM_SPIR_V_EXTENSIONS 0x9554
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_stencil_texturing b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_stencil_texturing
new file mode 100644
index 0000000..4821ad3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_stencil_texturing
@@ -0,0 +1,5 @@
+GL_ARB_stencil_texturing
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_stencil_texturing.txt
+GL_ARB_stencil_texturing
+
+ GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sync b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sync
new file mode 100644
index 0000000..2131558
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_sync
@@ -0,0 +1,26 @@
+GL_ARB_sync
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_sync.txt
+GL_ARB_sync
+
+ GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull
+ GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
+ GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
+ GL_OBJECT_TYPE 0x9112
+ GL_SYNC_CONDITION 0x9113
+ GL_SYNC_STATUS 0x9114
+ GL_SYNC_FLAGS 0x9115
+ GL_SYNC_FENCE 0x9116
+ GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
+ GL_UNSIGNALED 0x9118
+ GL_SIGNALED 0x9119
+ GL_ALREADY_SIGNALED 0x911A
+ GL_TIMEOUT_EXPIRED 0x911B
+ GL_CONDITION_SATISFIED 0x911C
+ GL_WAIT_FAILED 0x911D
+ GLenum glClientWaitSync (GLsync GLsync,GLbitfield flags,GLuint64 timeout)
+ void glDeleteSync (GLsync GLsync)
+ GLsync glFenceSync (GLenum condition,GLbitfield flags)
+ void glGetInteger64v (GLenum pname, GLint64* params)
+ void glGetSynciv (GLsync GLsync,GLenum pname,GLsizei bufSize,GLsizei* length, GLint *values)
+ GLboolean glIsSync (GLsync GLsync)
+ void glWaitSync (GLsync GLsync,GLbitfield flags,GLuint64 timeout)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_tessellation_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_tessellation_shader
new file mode 100644
index 0000000..fb4f525
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_tessellation_shader
@@ -0,0 +1,38 @@
+GL_ARB_tessellation_shader
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_tessellation_shader.txt
+GL_ARB_tessellation_shader
+
+ GL_PATCHES 0xE
+ GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0
+ GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1
+ GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C
+ GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D
+ GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E
+ GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F
+ GL_PATCH_VERTICES 0x8E72
+ GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73
+ GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74
+ GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75
+ GL_TESS_GEN_MODE 0x8E76
+ GL_TESS_GEN_SPACING 0x8E77
+ GL_TESS_GEN_VERTEX_ORDER 0x8E78
+ GL_TESS_GEN_POINT_MODE 0x8E79
+ GL_ISOLINES 0x8E7A
+ GL_FRACTIONAL_ODD 0x8E7B
+ GL_FRACTIONAL_EVEN 0x8E7C
+ GL_MAX_PATCH_VERTICES 0x8E7D
+ GL_MAX_TESS_GEN_LEVEL 0x8E7E
+ GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F
+ GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80
+ GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81
+ GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82
+ GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83
+ GL_MAX_TESS_PATCH_COMPONENTS 0x8E84
+ GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85
+ GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86
+ GL_TESS_EVALUATION_SHADER 0x8E87
+ GL_TESS_CONTROL_SHADER 0x8E88
+ GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89
+ GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A
+ void glPatchParameterfv (GLenum pname, const GLfloat* values)
+ void glPatchParameteri (GLenum pname, GLint value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_barrier b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_barrier
new file mode 100644
index 0000000..65c7e96
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_barrier
@@ -0,0 +1,5 @@
+GL_ARB_texture_barrier
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_barrier.txt
+GL_ARB_texture_barrier
+
+ void glTextureBarrier (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_border_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_border_clamp
new file mode 100644
index 0000000..da64b38
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_border_clamp
@@ -0,0 +1,5 @@
+GL_ARB_texture_border_clamp
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_border_clamp.txt
+GL_ARB_texture_border_clamp
+
+ GL_CLAMP_TO_BORDER_ARB 0x812D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_object
new file mode 100644
index 0000000..0a1da59
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_object
@@ -0,0 +1,10 @@
+GL_ARB_texture_buffer_object
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_buffer_object.txt
+GL_ARB_texture_buffer_object
+
+ GL_TEXTURE_BUFFER_ARB 0x8C2A
+ GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B
+ GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C
+ GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D
+ GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E
+ void glTexBufferARB (GLenum target, GLenum internalformat, GLuint buffer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_object_rgb32 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_object_rgb32
new file mode 100644
index 0000000..572c7e0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_object_rgb32
@@ -0,0 +1,4 @@
+GL_ARB_texture_buffer_object_rgb32
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_buffer_object_rgb32.txt
+GL_ARB_texture_buffer_object_rgb32
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_range b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_range
new file mode 100644
index 0000000..16fad7f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_buffer_range
@@ -0,0 +1,9 @@
+GL_ARB_texture_buffer_range
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_buffer_range.txt
+GL_ARB_texture_buffer_range
+
+ GL_TEXTURE_BUFFER_OFFSET 0x919D
+ GL_TEXTURE_BUFFER_SIZE 0x919E
+ GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F
+ void glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)
+ void glTextureBufferRangeEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression
new file mode 100644
index 0000000..d99614e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression
@@ -0,0 +1,22 @@
+GL_ARB_texture_compression
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_compression.txt
+GL_ARB_texture_compression
+
+ GL_COMPRESSED_ALPHA_ARB 0x84E9
+ GL_COMPRESSED_LUMINANCE_ARB 0x84EA
+ GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
+ GL_COMPRESSED_INTENSITY_ARB 0x84EC
+ GL_COMPRESSED_RGB_ARB 0x84ED
+ GL_COMPRESSED_RGBA_ARB 0x84EE
+ GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
+ GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
+ GL_TEXTURE_COMPRESSED_ARB 0x86A1
+ GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
+ GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
+ void glCompressedTexImage1DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedTexImage2DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedTexImage3DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedTexSubImage1DARB (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
+ void glCompressedTexSubImage2DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)
+ void glCompressedTexSubImage3DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+ void glGetCompressedTexImageARB (GLenum target, GLint lod, void *img)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression_bptc b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression_bptc
new file mode 100644
index 0000000..165e712
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression_bptc
@@ -0,0 +1,8 @@
+GL_ARB_texture_compression_bptc
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_compression_bptc.txt
+GL_ARB_texture_compression_bptc
+
+ GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C
+ GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D
+ GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E
+ GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression_rgtc b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression_rgtc
new file mode 100644
index 0000000..2ae6f71
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_compression_rgtc
@@ -0,0 +1,8 @@
+GL_ARB_texture_compression_rgtc
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_compression_rgtc.txt
+GL_ARB_texture_compression_rgtc
+
+ GL_COMPRESSED_RED_RGTC1 0x8DBB
+ GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
+ GL_COMPRESSED_RG_RGTC2 0x8DBD
+ GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_cube_map b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_cube_map
new file mode 100644
index 0000000..ddac875
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_cube_map
@@ -0,0 +1,16 @@
+GL_ARB_texture_cube_map
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_cube_map.txt
+GL_ARB_texture_cube_map
+
+ GL_NORMAL_MAP_ARB 0x8511
+ GL_REFLECTION_MAP_ARB 0x8512
+ GL_TEXTURE_CUBE_MAP_ARB 0x8513
+ GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
+ GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
+ GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
+ GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_cube_map_array b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_cube_map_array
new file mode 100644
index 0000000..408257e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_cube_map_array
@@ -0,0 +1,11 @@
+GL_ARB_texture_cube_map_array
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_cube_map_array.txt
+GL_ARB_texture_cube_map_array
+
+ GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009
+ GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A
+ GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B
+ GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C
+ GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D
+ GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E
+ GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_add b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_add
new file mode 100644
index 0000000..67c8e86
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_add
@@ -0,0 +1,4 @@
+GL_ARB_texture_env_add
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_env_add.txt
+GL_ARB_texture_env_add
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_combine b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_combine
new file mode 100644
index 0000000..d253677
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_combine
@@ -0,0 +1,26 @@
+GL_ARB_texture_env_combine
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_env_combine.txt
+GL_ARB_texture_env_combine
+
+ GL_SUBTRACT_ARB 0x84E7
+ GL_COMBINE_ARB 0x8570
+ GL_COMBINE_RGB_ARB 0x8571
+ GL_COMBINE_ALPHA_ARB 0x8572
+ GL_RGB_SCALE_ARB 0x8573
+ GL_ADD_SIGNED_ARB 0x8574
+ GL_INTERPOLATE_ARB 0x8575
+ GL_CONSTANT_ARB 0x8576
+ GL_PRIMARY_COLOR_ARB 0x8577
+ GL_PREVIOUS_ARB 0x8578
+ GL_SOURCE0_RGB_ARB 0x8580
+ GL_SOURCE1_RGB_ARB 0x8581
+ GL_SOURCE2_RGB_ARB 0x8582
+ GL_SOURCE0_ALPHA_ARB 0x8588
+ GL_SOURCE1_ALPHA_ARB 0x8589
+ GL_SOURCE2_ALPHA_ARB 0x858A
+ GL_OPERAND0_RGB_ARB 0x8590
+ GL_OPERAND1_RGB_ARB 0x8591
+ GL_OPERAND2_RGB_ARB 0x8592
+ GL_OPERAND0_ALPHA_ARB 0x8598
+ GL_OPERAND1_ALPHA_ARB 0x8599
+ GL_OPERAND2_ALPHA_ARB 0x859A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_crossbar b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_crossbar
new file mode 100644
index 0000000..3447fcb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_crossbar
@@ -0,0 +1,4 @@
+GL_ARB_texture_env_crossbar
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_env_crossbar.txt
+GL_ARB_texture_env_crossbar
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_dot3 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_dot3
new file mode 100644
index 0000000..7dfd12d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_env_dot3
@@ -0,0 +1,6 @@
+GL_ARB_texture_env_dot3
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_env_dot3.txt
+GL_ARB_texture_env_dot3
+
+ GL_DOT3_RGB_ARB 0x86AE
+ GL_DOT3_RGBA_ARB 0x86AF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_filter_anisotropic b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_filter_anisotropic
new file mode 100644
index 0000000..250b1cd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_filter_anisotropic
@@ -0,0 +1,6 @@
+GL_ARB_texture_filter_anisotropic
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_filter_anisotropic.txt
+GL_ARB_texture_filter_anisotropic
+
+ GL_TEXTURE_MAX_ANISOTROPY 0x84FE
+ GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_filter_minmax b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_filter_minmax
new file mode 100644
index 0000000..bb57001
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_filter_minmax
@@ -0,0 +1,6 @@
+GL_ARB_texture_filter_minmax
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_filter_minmax.txt
+GL_ARB_texture_filter_minmax
+
+ GL_TEXTURE_REDUCTION_MODE_ARB 0x9366
+ GL_WEIGHTED_AVERAGE_ARB 0x9367
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_float b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_float
new file mode 100644
index 0000000..548a547
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_float
@@ -0,0 +1,24 @@
+GL_ARB_texture_float
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_float.txt
+GL_ARB_texture_float
+
+ GL_RGBA32F_ARB 0x8814
+ GL_RGB32F_ARB 0x8815
+ GL_ALPHA32F_ARB 0x8816
+ GL_INTENSITY32F_ARB 0x8817
+ GL_LUMINANCE32F_ARB 0x8818
+ GL_LUMINANCE_ALPHA32F_ARB 0x8819
+ GL_RGBA16F_ARB 0x881A
+ GL_RGB16F_ARB 0x881B
+ GL_ALPHA16F_ARB 0x881C
+ GL_INTENSITY16F_ARB 0x881D
+ GL_LUMINANCE16F_ARB 0x881E
+ GL_LUMINANCE_ALPHA16F_ARB 0x881F
+ GL_TEXTURE_RED_TYPE_ARB 0x8C10
+ GL_TEXTURE_GREEN_TYPE_ARB 0x8C11
+ GL_TEXTURE_BLUE_TYPE_ARB 0x8C12
+ GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13
+ GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14
+ GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15
+ GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16
+ GL_UNSIGNED_NORMALIZED_ARB 0x8C17
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_gather b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_gather
new file mode 100644
index 0000000..fc09414
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_gather
@@ -0,0 +1,7 @@
+GL_ARB_texture_gather
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_gather.txt
+GL_ARB_texture_gather
+
+ GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E
+ GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F
+ GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_mirror_clamp_to_edge b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_mirror_clamp_to_edge
new file mode 100644
index 0000000..31d7343
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_mirror_clamp_to_edge
@@ -0,0 +1,5 @@
+GL_ARB_texture_mirror_clamp_to_edge
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_mirror_clamp_to_edge.txt
+GL_ARB_texture_mirror_clamp_to_edge
+
+ GL_MIRROR_CLAMP_TO_EDGE 0x8743
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_mirrored_repeat b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_mirrored_repeat
new file mode 100644
index 0000000..206a019
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_mirrored_repeat
@@ -0,0 +1,5 @@
+GL_ARB_texture_mirrored_repeat
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_mirrored_repeat.txt
+GL_ARB_texture_mirrored_repeat
+
+ GL_MIRRORED_REPEAT_ARB 0x8370
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_multisample
new file mode 100644
index 0000000..5ce8aae
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_multisample
@@ -0,0 +1,29 @@
+GL_ARB_texture_multisample
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_multisample.txt
+GL_ARB_texture_multisample
+
+ GL_SAMPLE_POSITION 0x8E50
+ GL_SAMPLE_MASK 0x8E51
+ GL_SAMPLE_MASK_VALUE 0x8E52
+ GL_MAX_SAMPLE_MASK_WORDS 0x8E59
+ GL_TEXTURE_2D_MULTISAMPLE 0x9100
+ GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
+ GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
+ GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
+ GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
+ GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
+ GL_TEXTURE_SAMPLES 0x9106
+ GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
+ GL_SAMPLER_2D_MULTISAMPLE 0x9108
+ GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
+ GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
+ GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
+ GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
+ GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
+ GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
+ GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
+ GL_MAX_INTEGER_SAMPLES 0x9110
+ void glGetMultisamplefv (GLenum pname, GLuint index, GLfloat* val)
+ void glSampleMaski (GLuint index, GLbitfield mask)
+ void glTexImage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+ void glTexImage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_non_power_of_two b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_non_power_of_two
new file mode 100644
index 0000000..a4a135d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_non_power_of_two
@@ -0,0 +1,4 @@
+GL_ARB_texture_non_power_of_two
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_non_power_of_two.txt
+GL_ARB_texture_non_power_of_two
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_query_levels b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_query_levels
new file mode 100644
index 0000000..e0f29ee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_query_levels
@@ -0,0 +1,4 @@
+GL_ARB_texture_query_levels
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_query_levels.txt
+GL_ARB_texture_query_levels
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_query_lod b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_query_lod
new file mode 100644
index 0000000..1116c36
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_query_lod
@@ -0,0 +1,4 @@
+GL_ARB_texture_query_lod
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_query_lod.txt
+GL_ARB_texture_query_lod
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rectangle b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rectangle
new file mode 100644
index 0000000..102d72c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rectangle
@@ -0,0 +1,10 @@
+GL_ARB_texture_rectangle
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_rectangle.txt
+GL_ARB_texture_rectangle
+
+ GL_TEXTURE_RECTANGLE_ARB 0x84F5
+ GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
+ GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
+ GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
+ GL_SAMPLER_2D_RECT_ARB 0x8B63
+ GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rg b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rg
new file mode 100644
index 0000000..474690c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rg
@@ -0,0 +1,28 @@
+GL_ARB_texture_rg
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_rg.txt
+GL_ARB_texture_rg
+
+ GL_COMPRESSED_RED 0x8225
+ GL_COMPRESSED_RG 0x8226
+ GL_RG 0x8227
+ GL_RG_INTEGER 0x8228
+ GL_R8 0x8229
+ GL_R16 0x822A
+ GL_RG8 0x822B
+ GL_RG16 0x822C
+ GL_R16F 0x822D
+ GL_R32F 0x822E
+ GL_RG16F 0x822F
+ GL_RG32F 0x8230
+ GL_R8I 0x8231
+ GL_R8UI 0x8232
+ GL_R16I 0x8233
+ GL_R16UI 0x8234
+ GL_R32I 0x8235
+ GL_R32UI 0x8236
+ GL_RG8I 0x8237
+ GL_RG8UI 0x8238
+ GL_RG16I 0x8239
+ GL_RG16UI 0x823A
+ GL_RG32I 0x823B
+ GL_RG32UI 0x823C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rgb10_a2ui b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rgb10_a2ui
new file mode 100644
index 0000000..0fb67a9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_rgb10_a2ui
@@ -0,0 +1,5 @@
+GL_ARB_texture_rgb10_a2ui
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_rgb10_a2ui.txt
+GL_ARB_texture_rgb10_a2ui
+
+ GL_RGB10_A2UI 0x906F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_stencil8 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_stencil8
new file mode 100644
index 0000000..87c9a34
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_stencil8
@@ -0,0 +1,6 @@
+GL_ARB_texture_stencil8
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_stencil8.txt
+GL_ARB_texture_stencil8
+
+ GL_STENCIL_INDEX 0x1901
+ GL_STENCIL_INDEX8 0x8D48
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_storage b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_storage
new file mode 100644
index 0000000..f6d82d7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_storage
@@ -0,0 +1,8 @@
+GL_ARB_texture_storage
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_storage.txt
+GL_ARB_texture_storage
+
+ GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
+ void glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
+ void glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
+ void glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_storage_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_storage_multisample
new file mode 100644
index 0000000..9d3c1a3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_storage_multisample
@@ -0,0 +1,8 @@
+GL_ARB_texture_storage_multisample
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_storage_multisample.txt
+GL_ARB_texture_storage_multisample
+
+ void glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+ void glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+ void glTextureStorage2DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+ void glTextureStorage3DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_swizzle b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_swizzle
new file mode 100644
index 0000000..e663bf2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_swizzle
@@ -0,0 +1,9 @@
+GL_ARB_texture_swizzle
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_swizzle.txt
+GL_ARB_texture_swizzle
+
+ GL_TEXTURE_SWIZZLE_R 0x8E42
+ GL_TEXTURE_SWIZZLE_G 0x8E43
+ GL_TEXTURE_SWIZZLE_B 0x8E44
+ GL_TEXTURE_SWIZZLE_A 0x8E45
+ GL_TEXTURE_SWIZZLE_RGBA 0x8E46
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_view b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_view
new file mode 100644
index 0000000..82275e6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_texture_view
@@ -0,0 +1,10 @@
+GL_ARB_texture_view
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_view.txt
+GL_ARB_texture_view
+
+ GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB
+ GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC
+ GL_TEXTURE_VIEW_MIN_LAYER 0x82DD
+ GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE
+ GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
+ void glTextureView (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_timer_query b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_timer_query
new file mode 100644
index 0000000..9c9bd56
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_timer_query
@@ -0,0 +1,9 @@
+GL_ARB_timer_query
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_timer_query.txt
+GL_ARB_timer_query
+
+ GL_TIME_ELAPSED 0x88BF
+ GL_TIMESTAMP 0x8E28
+ void glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64* params)
+ void glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64* params)
+ void glQueryCounter (GLuint id, GLenum target)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback2 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback2
new file mode 100644
index 0000000..fedfe56
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback2
@@ -0,0 +1,15 @@
+GL_ARB_transform_feedback2
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_transform_feedback2.txt
+GL_ARB_transform_feedback2
+
+ GL_TRANSFORM_FEEDBACK 0x8E22
+ GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23
+ GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24
+ GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
+ void glBindTransformFeedback (GLenum target, GLuint id)
+ void glDeleteTransformFeedbacks (GLsizei n, const GLuint* ids)
+ void glDrawTransformFeedback (GLenum mode, GLuint id)
+ void glGenTransformFeedbacks (GLsizei n, GLuint* ids)
+ GLboolean glIsTransformFeedback (GLuint id)
+ void glPauseTransformFeedback (void)
+ void glResumeTransformFeedback (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback3 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback3
new file mode 100644
index 0000000..66d846a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback3
@@ -0,0 +1,10 @@
+GL_ARB_transform_feedback3
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_transform_feedback3.txt
+GL_ARB_transform_feedback3
+
+ GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70
+ GL_MAX_VERTEX_STREAMS 0x8E71
+ void glBeginQueryIndexed (GLenum target, GLuint index, GLuint id)
+ void glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream)
+ void glEndQueryIndexed (GLenum target, GLuint index)
+ void glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback_instanced b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback_instanced
new file mode 100644
index 0000000..bb48fa8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback_instanced
@@ -0,0 +1,6 @@
+GL_ARB_transform_feedback_instanced
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_transform_feedback_instanced.txt
+GL_ARB_transform_feedback_instanced
+
+ void glDrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei primcount)
+ void glDrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei primcount)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback_overflow_query b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback_overflow_query
new file mode 100644
index 0000000..ea06597
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transform_feedback_overflow_query
@@ -0,0 +1,6 @@
+GL_ARB_transform_feedback_overflow_query
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_transform_feedback_overflow_query.txt
+GL_ARB_transform_feedback_overflow_query
+
+ GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC
+ GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transpose_matrix b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transpose_matrix
new file mode 100644
index 0000000..3fcca6c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_transpose_matrix
@@ -0,0 +1,12 @@
+GL_ARB_transpose_matrix
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_transpose_matrix.txt
+GL_ARB_transpose_matrix
+
+ GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
+ GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
+ GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
+ GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
+ void glLoadTransposeMatrixfARB (GLfloat m[16])
+ void glLoadTransposeMatrixdARB (GLdouble m[16])
+ void glMultTransposeMatrixfARB (GLfloat m[16])
+ void glMultTransposeMatrixdARB (GLdouble m[16])
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_uniform_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_uniform_buffer_object
new file mode 100644
index 0000000..8768a82
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_uniform_buffer_object
@@ -0,0 +1,47 @@
+GL_ARB_uniform_buffer_object
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_uniform_buffer_object.txt
+GL_ARB_uniform_buffer_object
+
+ GL_INVALID_INDEX 0xFFFFFFFFu
+ GL_UNIFORM_BUFFER 0x8A11
+ GL_UNIFORM_BUFFER_BINDING 0x8A28
+ GL_UNIFORM_BUFFER_START 0x8A29
+ GL_UNIFORM_BUFFER_SIZE 0x8A2A
+ GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
+ GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
+ GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
+ GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
+ GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
+ GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
+ GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
+ GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
+ GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
+ GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
+ GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
+ GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
+ GL_UNIFORM_TYPE 0x8A37
+ GL_UNIFORM_SIZE 0x8A38
+ GL_UNIFORM_NAME_LENGTH 0x8A39
+ GL_UNIFORM_BLOCK_INDEX 0x8A3A
+ GL_UNIFORM_OFFSET 0x8A3B
+ GL_UNIFORM_ARRAY_STRIDE 0x8A3C
+ GL_UNIFORM_MATRIX_STRIDE 0x8A3D
+ GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
+ GL_UNIFORM_BLOCK_BINDING 0x8A3F
+ GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
+ GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
+ GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
+ GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
+ GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
+ GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
+ GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
+ void glBindBufferBase (GLenum target, GLuint index, GLuint buffer)
+ void glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+ void glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+ void glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+ void glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+ void glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+ void glGetIntegeri_v (GLenum target, GLuint index, GLint* data)
+ GLuint glGetUniformBlockIndex (GLuint program, const GLchar* uniformBlockName)
+ void glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* const * uniformNames, GLuint* uniformIndices)
+ void glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_array_bgra b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_array_bgra
new file mode 100644
index 0000000..3b8dd73
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_array_bgra
@@ -0,0 +1,5 @@
+GL_ARB_vertex_array_bgra
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_vertex_array_bgra.txt
+GL_ARB_vertex_array_bgra
+
+ GL_BGRA 0x80E1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_array_object b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_array_object
new file mode 100644
index 0000000..0ca6030
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_array_object
@@ -0,0 +1,9 @@
+GL_ARB_vertex_array_object
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_vertex_array_object.txt
+GL_ARB_vertex_array_object
+
+ GL_VERTEX_ARRAY_BINDING 0x85B5
+ void glBindVertexArray (GLuint array)
+ void glDeleteVertexArrays (GLsizei n, const GLuint* arrays)
+ void glGenVertexArrays (GLsizei n, GLuint* arrays)
+ GLboolean glIsVertexArray (GLuint array)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_attrib_64bit b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_attrib_64bit
new file mode 100644
index 0000000..68117c5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_attrib_64bit
@@ -0,0 +1,14 @@
+GL_ARB_vertex_attrib_64bit
+http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
+GL_ARB_vertex_attrib_64bit
+
+ void glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble* params)
+ void glVertexAttribL1d (GLuint index, GLdouble x)
+ void glVertexAttribL1dv (GLuint index, const GLdouble* v)
+ void glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y)
+ void glVertexAttribL2dv (GLuint index, const GLdouble* v)
+ void glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z)
+ void glVertexAttribL3dv (GLuint index, const GLdouble* v)
+ void glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glVertexAttribL4dv (GLuint index, const GLdouble* v)
+ void glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_attrib_binding b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_attrib_binding
new file mode 100644
index 0000000..2510704
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_attrib_binding
@@ -0,0 +1,24 @@
+GL_ARB_vertex_attrib_binding
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_vertex_attrib_binding.txt
+GL_ARB_vertex_attrib_binding
+
+ GL_VERTEX_ATTRIB_BINDING 0x82D4
+ GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
+ GL_VERTEX_BINDING_DIVISOR 0x82D6
+ GL_VERTEX_BINDING_OFFSET 0x82D7
+ GL_VERTEX_BINDING_STRIDE 0x82D8
+ GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
+ GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
+ GL_VERTEX_BINDING_BUFFER 0x8F4F
+ void glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
+ void glVertexArrayBindVertexBufferEXT (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
+ void glVertexArrayVertexAttribBindingEXT (GLuint vaobj, GLuint attribindex, GLuint bindingindex)
+ void glVertexArrayVertexAttribFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
+ void glVertexArrayVertexAttribIFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
+ void glVertexArrayVertexAttribLFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
+ void glVertexArrayVertexBindingDivisorEXT (GLuint vaobj, GLuint bindingindex, GLuint divisor)
+ void glVertexAttribBinding (GLuint attribindex, GLuint bindingindex)
+ void glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
+ void glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
+ void glVertexAttribLFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
+ void glVertexBindingDivisor (GLuint bindingindex, GLuint divisor)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_blend b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_blend
new file mode 100644
index 0000000..f4b3f58
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_blend
@@ -0,0 +1,56 @@
+GL_ARB_vertex_blend
+http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_blend.txt
+GL_ARB_vertex_blend
+
+ GL_MAX_VERTEX_UNITS_ARB 0x86A4
+ GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
+ GL_WEIGHT_SUM_UNITY_ARB 0x86A6
+ GL_VERTEX_BLEND_ARB 0x86A7
+ GL_CURRENT_WEIGHT_ARB 0x86A8
+ GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
+ GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
+ GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
+ GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
+ GL_WEIGHT_ARRAY_ARB 0x86AD
+ GL_MODELVIEW0_ARB 0x1700
+ GL_MODELVIEW1_ARB 0x850A
+ GL_MODELVIEW2_ARB 0x8722
+ GL_MODELVIEW3_ARB 0x8723
+ GL_MODELVIEW4_ARB 0x8724
+ GL_MODELVIEW5_ARB 0x8725
+ GL_MODELVIEW6_ARB 0x8726
+ GL_MODELVIEW7_ARB 0x8727
+ GL_MODELVIEW8_ARB 0x8728
+ GL_MODELVIEW9_ARB 0x8729
+ GL_MODELVIEW10_ARB 0x872A
+ GL_MODELVIEW11_ARB 0x872B
+ GL_MODELVIEW12_ARB 0x872C
+ GL_MODELVIEW13_ARB 0x872D
+ GL_MODELVIEW14_ARB 0x872E
+ GL_MODELVIEW15_ARB 0x872F
+ GL_MODELVIEW16_ARB 0x8730
+ GL_MODELVIEW17_ARB 0x8731
+ GL_MODELVIEW18_ARB 0x8732
+ GL_MODELVIEW19_ARB 0x8733
+ GL_MODELVIEW20_ARB 0x8734
+ GL_MODELVIEW21_ARB 0x8735
+ GL_MODELVIEW22_ARB 0x8736
+ GL_MODELVIEW23_ARB 0x8737
+ GL_MODELVIEW24_ARB 0x8738
+ GL_MODELVIEW25_ARB 0x8739
+ GL_MODELVIEW26_ARB 0x873A
+ GL_MODELVIEW27_ARB 0x873B
+ GL_MODELVIEW28_ARB 0x873C
+ GL_MODELVIEW29_ARB 0x873D
+ GL_MODELVIEW30_ARB 0x873E
+ GL_MODELVIEW31_ARB 0x873F
+ void glWeightbvARB (GLint size, GLbyte *weights)
+ void glWeightsvARB (GLint size, GLshort *weights)
+ void glWeightivARB (GLint size, GLint *weights)
+ void glWeightfvARB (GLint size, GLfloat *weights)
+ void glWeightdvARB (GLint size, GLdouble *weights)
+ void glWeightubvARB (GLint size, GLubyte *weights)
+ void glWeightusvARB (GLint size, GLushort *weights)
+ void glWeightuivARB (GLint size, GLuint *weights)
+ void glWeightPointerARB (GLint size, GLenum type, GLsizei stride, void *pointer)
+ void glVertexBlendARB (GLint count)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_buffer_object
new file mode 100644
index 0000000..095f23d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_buffer_object
@@ -0,0 +1,48 @@
+GL_ARB_vertex_buffer_object
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_vertex_buffer_object.txt
+GL_ARB_vertex_buffer_object
+
+ GL_BUFFER_SIZE_ARB 0x8764
+ GL_BUFFER_USAGE_ARB 0x8765
+ GL_ARRAY_BUFFER_ARB 0x8892
+ GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
+ GL_ARRAY_BUFFER_BINDING_ARB 0x8894
+ GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
+ GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
+ GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
+ GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
+ GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
+ GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
+ GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
+ GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
+ GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
+ GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
+ GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
+ GL_READ_ONLY_ARB 0x88B8
+ GL_WRITE_ONLY_ARB 0x88B9
+ GL_READ_WRITE_ARB 0x88BA
+ GL_BUFFER_ACCESS_ARB 0x88BB
+ GL_BUFFER_MAPPED_ARB 0x88BC
+ GL_BUFFER_MAP_POINTER_ARB 0x88BD
+ GL_STREAM_DRAW_ARB 0x88E0
+ GL_STREAM_READ_ARB 0x88E1
+ GL_STREAM_COPY_ARB 0x88E2
+ GL_STATIC_DRAW_ARB 0x88E4
+ GL_STATIC_READ_ARB 0x88E5
+ GL_STATIC_COPY_ARB 0x88E6
+ GL_DYNAMIC_DRAW_ARB 0x88E8
+ GL_DYNAMIC_READ_ARB 0x88E9
+ GL_DYNAMIC_COPY_ARB 0x88EA
+ void glBindBufferARB (GLenum target, GLuint buffer)
+ void glBufferDataARB (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage)
+ void glBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data)
+ void glDeleteBuffersARB (GLsizei n, const GLuint* buffers)
+ void glGenBuffersARB (GLsizei n, GLuint* buffers)
+ void glGetBufferParameterivARB (GLenum target, GLenum pname, GLint* params)
+ void glGetBufferPointervARB (GLenum target, GLenum pname, void** params)
+ void glGetBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data)
+ GLboolean glIsBufferARB (GLuint buffer)
+ void * glMapBufferARB (GLenum target, GLenum access)
+ GLboolean glUnmapBufferARB (GLenum target)
+ typedef ptrdiff_t GLsizeiptrARB
+ typedef ptrdiff_t GLintptrARB
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_program b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_program
new file mode 100644
index 0000000..b930982
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_program
@@ -0,0 +1,145 @@
+GL_ARB_vertex_program
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_vertex_program.txt
+GL_ARB_vertex_program
+
+ GL_COLOR_SUM_ARB 0x8458
+ GL_VERTEX_PROGRAM_ARB 0x8620
+ GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
+ GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
+ GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
+ GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
+ GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
+ GL_PROGRAM_LENGTH_ARB 0x8627
+ GL_PROGRAM_STRING_ARB 0x8628
+ GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
+ GL_MAX_PROGRAM_MATRICES_ARB 0x862F
+ GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
+ GL_CURRENT_MATRIX_ARB 0x8641
+ GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
+ GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
+ GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
+ GL_PROGRAM_ERROR_POSITION_ARB 0x864B
+ GL_PROGRAM_BINDING_ARB 0x8677
+ GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
+ GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
+ GL_PROGRAM_ERROR_STRING_ARB 0x8874
+ GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
+ GL_PROGRAM_FORMAT_ARB 0x8876
+ GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
+ GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
+ GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
+ GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
+ GL_PROGRAM_TEMPORARIES_ARB 0x88A4
+ GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
+ GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
+ GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
+ GL_PROGRAM_PARAMETERS_ARB 0x88A8
+ GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
+ GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
+ GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
+ GL_PROGRAM_ATTRIBS_ARB 0x88AC
+ GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
+ GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
+ GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
+ GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
+ GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
+ GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
+ GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
+ GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
+ GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
+ GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
+ GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
+ GL_MATRIX0_ARB 0x88C0
+ GL_MATRIX1_ARB 0x88C1
+ GL_MATRIX2_ARB 0x88C2
+ GL_MATRIX3_ARB 0x88C3
+ GL_MATRIX4_ARB 0x88C4
+ GL_MATRIX5_ARB 0x88C5
+ GL_MATRIX6_ARB 0x88C6
+ GL_MATRIX7_ARB 0x88C7
+ GL_MATRIX8_ARB 0x88C8
+ GL_MATRIX9_ARB 0x88C9
+ GL_MATRIX10_ARB 0x88CA
+ GL_MATRIX11_ARB 0x88CB
+ GL_MATRIX12_ARB 0x88CC
+ GL_MATRIX13_ARB 0x88CD
+ GL_MATRIX14_ARB 0x88CE
+ GL_MATRIX15_ARB 0x88CF
+ GL_MATRIX16_ARB 0x88D0
+ GL_MATRIX17_ARB 0x88D1
+ GL_MATRIX18_ARB 0x88D2
+ GL_MATRIX19_ARB 0x88D3
+ GL_MATRIX20_ARB 0x88D4
+ GL_MATRIX21_ARB 0x88D5
+ GL_MATRIX22_ARB 0x88D6
+ GL_MATRIX23_ARB 0x88D7
+ GL_MATRIX24_ARB 0x88D8
+ GL_MATRIX25_ARB 0x88D9
+ GL_MATRIX26_ARB 0x88DA
+ GL_MATRIX27_ARB 0x88DB
+ GL_MATRIX28_ARB 0x88DC
+ GL_MATRIX29_ARB 0x88DD
+ GL_MATRIX30_ARB 0x88DE
+ GL_MATRIX31_ARB 0x88DF
+ void glBindProgramARB (GLenum target, GLuint program)
+ void glDeleteProgramsARB (GLsizei n, const GLuint* programs)
+ void glDisableVertexAttribArrayARB (GLuint index)
+ void glEnableVertexAttribArrayARB (GLuint index)
+ void glGenProgramsARB (GLsizei n, GLuint* programs)
+ void glGetProgramEnvParameterdvARB (GLenum target, GLuint index, GLdouble* params)
+ void glGetProgramEnvParameterfvARB (GLenum target, GLuint index, GLfloat* params)
+ void glGetProgramLocalParameterdvARB (GLenum target, GLuint index, GLdouble* params)
+ void glGetProgramLocalParameterfvARB (GLenum target, GLuint index, GLfloat* params)
+ void glGetProgramStringARB (GLenum target, GLenum pname, void *string)
+ void glGetProgramivARB (GLenum target, GLenum pname, GLint* params)
+ void glGetVertexAttribPointervARB (GLuint index, GLenum pname, void** pointer)
+ void glGetVertexAttribdvARB (GLuint index, GLenum pname, GLdouble* params)
+ void glGetVertexAttribfvARB (GLuint index, GLenum pname, GLfloat* params)
+ void glGetVertexAttribivARB (GLuint index, GLenum pname, GLint* params)
+ GLboolean glIsProgramARB (GLuint program)
+ void glProgramEnvParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glProgramEnvParameter4dvARB (GLenum target, GLuint index, const GLdouble* params)
+ void glProgramEnvParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glProgramEnvParameter4fvARB (GLenum target, GLuint index, const GLfloat* params)
+ void glProgramLocalParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glProgramLocalParameter4dvARB (GLenum target, GLuint index, const GLdouble* params)
+ void glProgramLocalParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glProgramLocalParameter4fvARB (GLenum target, GLuint index, const GLfloat* params)
+ void glProgramStringARB (GLenum target, GLenum format, GLsizei len, const void *string)
+ void glVertexAttrib1dARB (GLuint index, GLdouble x)
+ void glVertexAttrib1dvARB (GLuint index, const GLdouble* v)
+ void glVertexAttrib1fARB (GLuint index, GLfloat x)
+ void glVertexAttrib1fvARB (GLuint index, const GLfloat* v)
+ void glVertexAttrib1sARB (GLuint index, GLshort x)
+ void glVertexAttrib1svARB (GLuint index, const GLshort* v)
+ void glVertexAttrib2dARB (GLuint index, GLdouble x, GLdouble y)
+ void glVertexAttrib2dvARB (GLuint index, const GLdouble* v)
+ void glVertexAttrib2fARB (GLuint index, GLfloat x, GLfloat y)
+ void glVertexAttrib2fvARB (GLuint index, const GLfloat* v)
+ void glVertexAttrib2sARB (GLuint index, GLshort x, GLshort y)
+ void glVertexAttrib2svARB (GLuint index, const GLshort* v)
+ void glVertexAttrib3dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z)
+ void glVertexAttrib3dvARB (GLuint index, const GLdouble* v)
+ void glVertexAttrib3fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z)
+ void glVertexAttrib3fvARB (GLuint index, const GLfloat* v)
+ void glVertexAttrib3sARB (GLuint index, GLshort x, GLshort y, GLshort z)
+ void glVertexAttrib3svARB (GLuint index, const GLshort* v)
+ void glVertexAttrib4NbvARB (GLuint index, const GLbyte* v)
+ void glVertexAttrib4NivARB (GLuint index, const GLint* v)
+ void glVertexAttrib4NsvARB (GLuint index, const GLshort* v)
+ void glVertexAttrib4NubARB (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+ void glVertexAttrib4NubvARB (GLuint index, const GLubyte* v)
+ void glVertexAttrib4NuivARB (GLuint index, const GLuint* v)
+ void glVertexAttrib4NusvARB (GLuint index, const GLushort* v)
+ void glVertexAttrib4bvARB (GLuint index, const GLbyte* v)
+ void glVertexAttrib4dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glVertexAttrib4dvARB (GLuint index, const GLdouble* v)
+ void glVertexAttrib4fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glVertexAttrib4fvARB (GLuint index, const GLfloat* v)
+ void glVertexAttrib4ivARB (GLuint index, const GLint* v)
+ void glVertexAttrib4sARB (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+ void glVertexAttrib4svARB (GLuint index, const GLshort* v)
+ void glVertexAttrib4ubvARB (GLuint index, const GLubyte* v)
+ void glVertexAttrib4uivARB (GLuint index, const GLuint* v)
+ void glVertexAttrib4usvARB (GLuint index, const GLushort* v)
+ void glVertexAttribPointerARB (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_shader
new file mode 100644
index 0000000..3406911
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_shader
@@ -0,0 +1,14 @@
+GL_ARB_vertex_shader
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_vertex_shader.txt
+GL_ARB_vertex_shader
+
+ GL_VERTEX_SHADER_ARB 0x8B31
+ GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
+ GL_MAX_VARYING_FLOATS_ARB 0x8B4B
+ GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
+ GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
+ GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
+ GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
+ void glBindAttribLocationARB (GLhandleARB programObj, GLuint index, const GLcharARB* name)
+ void glGetActiveAttribARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name)
+ GLint glGetAttribLocationARB (GLhandleARB programObj, const GLcharARB* name)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_type_10f_11f_11f_rev b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_type_10f_11f_11f_rev
new file mode 100644
index 0000000..70bd3bc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_type_10f_11f_11f_rev
@@ -0,0 +1,5 @@
+GL_ARB_vertex_type_10f_11f_11f_rev
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_vertex_type_10f_11f_11f_rev.txt
+GL_ARB_vertex_type_10f_11f_11f_rev
+
+ GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_type_2_10_10_10_rev b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_type_2_10_10_10_rev
new file mode 100644
index 0000000..99e3e34
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_vertex_type_2_10_10_10_rev
@@ -0,0 +1,44 @@
+GL_ARB_vertex_type_2_10_10_10_rev
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_vertex_type_2_10_10_10_rev.txt
+GL_ARB_vertex_type_2_10_10_10_rev
+
+ GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
+ GL_INT_2_10_10_10_REV 0x8D9F
+ void glColorP3ui (GLenum type, GLuint color)
+ void glColorP3uiv (GLenum type, const GLuint* color)
+ void glColorP4ui (GLenum type, GLuint color)
+ void glColorP4uiv (GLenum type, const GLuint* color)
+ void glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords)
+ void glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint* coords)
+ void glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords)
+ void glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint* coords)
+ void glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords)
+ void glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint* coords)
+ void glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords)
+ void glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint* coords)
+ void glNormalP3ui (GLenum type, GLuint coords)
+ void glNormalP3uiv (GLenum type, const GLuint* coords)
+ void glSecondaryColorP3ui (GLenum type, GLuint color)
+ void glSecondaryColorP3uiv (GLenum type, const GLuint* color)
+ void glTexCoordP1ui (GLenum type, GLuint coords)
+ void glTexCoordP1uiv (GLenum type, const GLuint* coords)
+ void glTexCoordP2ui (GLenum type, GLuint coords)
+ void glTexCoordP2uiv (GLenum type, const GLuint* coords)
+ void glTexCoordP3ui (GLenum type, GLuint coords)
+ void glTexCoordP3uiv (GLenum type, const GLuint* coords)
+ void glTexCoordP4ui (GLenum type, GLuint coords)
+ void glTexCoordP4uiv (GLenum type, const GLuint* coords)
+ void glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value)
+ void glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint* value)
+ void glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value)
+ void glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint* value)
+ void glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value)
+ void glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint* value)
+ void glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value)
+ void glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint* value)
+ void glVertexP2ui (GLenum type, GLuint value)
+ void glVertexP2uiv (GLenum type, const GLuint* value)
+ void glVertexP3ui (GLenum type, GLuint value)
+ void glVertexP3uiv (GLenum type, const GLuint* value)
+ void glVertexP4ui (GLenum type, GLuint value)
+ void glVertexP4uiv (GLenum type, const GLuint* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_viewport_array b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_viewport_array
new file mode 100644
index 0000000..9b07bac
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_viewport_array
@@ -0,0 +1,27 @@
+GL_ARB_viewport_array
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_viewport_array.txt
+GL_ARB_viewport_array
+
+ GL_DEPTH_RANGE 0x0B70
+ GL_VIEWPORT 0x0BA2
+ GL_SCISSOR_BOX 0x0C10
+ GL_SCISSOR_TEST 0x0C11
+ GL_MAX_VIEWPORTS 0x825B
+ GL_VIEWPORT_SUBPIXEL_BITS 0x825C
+ GL_VIEWPORT_BOUNDS_RANGE 0x825D
+ GL_LAYER_PROVOKING_VERTEX 0x825E
+ GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F
+ GL_UNDEFINED_VERTEX 0x8260
+ GL_FIRST_VERTEX_CONVENTION 0x8E4D
+ GL_LAST_VERTEX_CONVENTION 0x8E4E
+ GL_PROVOKING_VERTEX 0x8E4F
+ void glDepthRangeArrayv (GLuint first, GLsizei count, const GLclampd * v)
+ void glDepthRangeIndexed (GLuint index, GLclampd n, GLclampd f)
+ void glGetDoublei_v (GLenum target, GLuint index, GLdouble* data)
+ void glGetFloati_v (GLenum target, GLuint index, GLfloat* data)
+ void glScissorArrayv (GLuint first, GLsizei count, const GLint * v)
+ void glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)
+ void glScissorIndexedv (GLuint index, const GLint * v)
+ void glViewportArrayv (GLuint first, GLsizei count, const GLfloat * v)
+ void glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)
+ void glViewportIndexedfv (GLuint index, const GLfloat * v)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_window_pos b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_window_pos
new file mode 100644
index 0000000..fecf547
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARB_window_pos
@@ -0,0 +1,20 @@
+GL_ARB_window_pos
+https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_window_pos.txt
+GL_ARB_window_pos
+
+ void glWindowPos2dARB (GLdouble x, GLdouble y)
+ void glWindowPos2dvARB (const GLdouble* p)
+ void glWindowPos2fARB (GLfloat x, GLfloat y)
+ void glWindowPos2fvARB (const GLfloat* p)
+ void glWindowPos2iARB (GLint x, GLint y)
+ void glWindowPos2ivARB (const GLint* p)
+ void glWindowPos2sARB (GLshort x, GLshort y)
+ void glWindowPos2svARB (const GLshort* p)
+ void glWindowPos3dARB (GLdouble x, GLdouble y, GLdouble z)
+ void glWindowPos3dvARB (const GLdouble* p)
+ void glWindowPos3fARB (GLfloat x, GLfloat y, GLfloat z)
+ void glWindowPos3fvARB (const GLfloat* p)
+ void glWindowPos3iARB (GLint x, GLint y, GLint z)
+ void glWindowPos3ivARB (const GLint* p)
+ void glWindowPos3sARB (GLshort x, GLshort y, GLshort z)
+ void glWindowPos3svARB (const GLshort* p)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_mali_program_binary b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_mali_program_binary
new file mode 100644
index 0000000..30ca0e7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_mali_program_binary
@@ -0,0 +1,5 @@
+GL_ARM_mali_program_binary
+https://www.khronos.org/registry/OpenGL/extensions/ARM/ARM_mali_program_binary.txt
+GL_ARM_mali_program_binary
+
+ GL_MALI_PROGRAM_BINARY_ARM 0x8F61
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_mali_shader_binary b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_mali_shader_binary
new file mode 100644
index 0000000..0dc7453
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_mali_shader_binary
@@ -0,0 +1,5 @@
+GL_ARM_mali_shader_binary
+https://www.khronos.org/registry/OpenGL/extensions/ARM/ARM_mali_shader_binary.txt
+GL_ARM_mali_shader_binary
+
+ GL_MALI_SHADER_BINARY_ARM 0x8F60
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_rgba8 b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_rgba8
new file mode 100644
index 0000000..4bef0d2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_rgba8
@@ -0,0 +1,5 @@
+GL_ARM_rgba8
+https://www.khronos.org/registry/OpenGL/extensions/ARM/ARM_rgba8.txt
+GL_ARM_rgba8
+
+ GL_RGBA8_OES 0x8058
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_shader_framebuffer_fetch b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_shader_framebuffer_fetch
new file mode 100644
index 0000000..e37dc4f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_shader_framebuffer_fetch
@@ -0,0 +1,6 @@
+GL_ARM_shader_framebuffer_fetch
+https://www.khronos.org/registry/OpenGL/extensions/ARM/ARM_shader_framebuffer_fetch.txt
+GL_ARM_shader_framebuffer_fetch
+
+ GL_FETCH_PER_SAMPLE_ARM 0x8F65
+ GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_shader_framebuffer_fetch_depth_stencil b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_shader_framebuffer_fetch_depth_stencil
new file mode 100644
index 0000000..90c65ac
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_shader_framebuffer_fetch_depth_stencil
@@ -0,0 +1,4 @@
+GL_ARM_shader_framebuffer_fetch_depth_stencil
+https://www.khronos.org/registry/OpenGL/extensions/ARM/ARM_shader_framebuffer_fetch_depth_stencil.txt
+GL_ARM_shader_framebuffer_fetch_depth_stencil
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_texture_unnormalized_coordinates b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_texture_unnormalized_coordinates
new file mode 100644
index 0000000..c7fabdd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ARM_texture_unnormalized_coordinates
@@ -0,0 +1,5 @@
+GL_ARM_texture_unnormalized_coordinates
+https://www.khronos.org/registry/OpenGL/extensions/ARM/ARM_texture_unnormalized_coordinates.txt
+GL_ARM_texture_unnormalized_coordinates
+
+ GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM 0x8F6A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_point_sprites b/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_point_sprites
new file mode 100644
index 0000000..d2434e7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_point_sprites
@@ -0,0 +1,10 @@
+GL_ATIX_point_sprites
+http://www.ati.com/developer/atiopengl.pdf
+GL_ATIX_point_sprites
+
+ GL_TEXTURE_POINT_MODE_ATIX 0x60B0
+ GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1
+ GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2
+ GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3
+ GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4
+ GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_texture_env_combine3 b/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_texture_env_combine3
new file mode 100644
index 0000000..77f425d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_texture_env_combine3
@@ -0,0 +1,7 @@
+GL_ATIX_texture_env_combine3
+http://www.ati.com/developer/atiopengl.pdf
+GL_ATIX_texture_env_combine3
+
+ GL_MODULATE_ADD_ATIX 0x8744
+ GL_MODULATE_SIGNED_ADD_ATIX 0x8745
+ GL_MODULATE_SUBTRACT_ATIX 0x8746
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_texture_env_route b/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_texture_env_route
new file mode 100644
index 0000000..d972fd1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_texture_env_route
@@ -0,0 +1,7 @@
+GL_ATIX_texture_env_route
+http://www.ati.com/developer/sdk/RadeonSDK/Html/Info/ATIX_texture_env_route.txt
+GL_ATIX_texture_env_route
+
+ GL_SECONDARY_COLOR_ATIX 0x8747
+ GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748
+ GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_vertex_shader_output_point_size b/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_vertex_shader_output_point_size
new file mode 100644
index 0000000..85a6d58
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATIX_vertex_shader_output_point_size
@@ -0,0 +1,5 @@
+GL_ATIX_vertex_shader_output_point_size
+http://www.ati.com/developer/atiopengl.pdf
+GL_ATIX_vertex_shader_output_point_size
+
+ GL_OUTPUT_POINT_SIZE_ATIX 0x610E
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_draw_buffers b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_draw_buffers
new file mode 100644
index 0000000..ee81356
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_draw_buffers
@@ -0,0 +1,22 @@
+GL_ATI_draw_buffers
+https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_draw_buffers.txt
+GL_ATI_draw_buffers
+
+ GL_MAX_DRAW_BUFFERS_ATI 0x8824
+ GL_DRAW_BUFFER0_ATI 0x8825
+ GL_DRAW_BUFFER1_ATI 0x8826
+ GL_DRAW_BUFFER2_ATI 0x8827
+ GL_DRAW_BUFFER3_ATI 0x8828
+ GL_DRAW_BUFFER4_ATI 0x8829
+ GL_DRAW_BUFFER5_ATI 0x882A
+ GL_DRAW_BUFFER6_ATI 0x882B
+ GL_DRAW_BUFFER7_ATI 0x882C
+ GL_DRAW_BUFFER8_ATI 0x882D
+ GL_DRAW_BUFFER9_ATI 0x882E
+ GL_DRAW_BUFFER10_ATI 0x882F
+ GL_DRAW_BUFFER11_ATI 0x8830
+ GL_DRAW_BUFFER12_ATI 0x8831
+ GL_DRAW_BUFFER13_ATI 0x8832
+ GL_DRAW_BUFFER14_ATI 0x8833
+ GL_DRAW_BUFFER15_ATI 0x8834
+ void glDrawBuffersATI (GLsizei n, const GLenum* bufs)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_element_array b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_element_array
new file mode 100644
index 0000000..28f6320
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_element_array
@@ -0,0 +1,10 @@
+GL_ATI_element_array
+https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_element_array.txt
+GL_ATI_element_array
+
+ GL_ELEMENT_ARRAY_ATI 0x8768
+ GL_ELEMENT_ARRAY_TYPE_ATI 0x8769
+ GL_ELEMENT_ARRAY_POINTER_ATI 0x876A
+ void glDrawElementArrayATI (GLenum mode, GLsizei count)
+ void glDrawRangeElementArrayATI (GLenum mode, GLuint start, GLuint end, GLsizei count)
+ void glElementPointerATI (GLenum type, const void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_envmap_bumpmap b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_envmap_bumpmap
new file mode 100644
index 0000000..09a4112
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_envmap_bumpmap
@@ -0,0 +1,16 @@
+GL_ATI_envmap_bumpmap
+http://oss.sgi.com/projects/ogl-sample/registry/ATI/envmap_bumpmap.txt
+GL_ATI_envmap_bumpmap
+
+ GL_BUMP_ROT_MATRIX_ATI 0x8775
+ GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
+ GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
+ GL_BUMP_TEX_UNITS_ATI 0x8778
+ GL_DUDV_ATI 0x8779
+ GL_DU8DV8_ATI 0x877A
+ GL_BUMP_ENVMAP_ATI 0x877B
+ GL_BUMP_TARGET_ATI 0x877C
+ void glTexBumpParameterivATI (GLenum pname, GLint *param)
+ void glTexBumpParameterfvATI (GLenum pname, GLfloat *param)
+ void glGetTexBumpParameterivATI (GLenum pname, GLint *param)
+ void glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_fragment_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_fragment_shader
new file mode 100644
index 0000000..51b49a5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_fragment_shader
@@ -0,0 +1,72 @@
+GL_ATI_fragment_shader
+https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_fragment_shader.txt
+GL_ATI_fragment_shader
+
+ GL_2X_BIT_ATI 0x00000001
+ GL_RED_BIT_ATI 0x00000001
+ GL_4X_BIT_ATI 0x00000002
+ GL_COMP_BIT_ATI 0x00000002
+ GL_GREEN_BIT_ATI 0x00000002
+ GL_8X_BIT_ATI 0x00000004
+ GL_BLUE_BIT_ATI 0x00000004
+ GL_NEGATE_BIT_ATI 0x00000004
+ GL_BIAS_BIT_ATI 0x00000008
+ GL_HALF_BIT_ATI 0x00000008
+ GL_QUARTER_BIT_ATI 0x00000010
+ GL_EIGHTH_BIT_ATI 0x00000020
+ GL_SATURATE_BIT_ATI 0x00000040
+ GL_FRAGMENT_SHADER_ATI 0x8920
+ GL_REG_0_ATI 0x8921
+ GL_REG_1_ATI 0x8922
+ GL_REG_2_ATI 0x8923
+ GL_REG_3_ATI 0x8924
+ GL_REG_4_ATI 0x8925
+ GL_REG_5_ATI 0x8926
+ GL_CON_0_ATI 0x8941
+ GL_CON_1_ATI 0x8942
+ GL_CON_2_ATI 0x8943
+ GL_CON_3_ATI 0x8944
+ GL_CON_4_ATI 0x8945
+ GL_CON_5_ATI 0x8946
+ GL_CON_6_ATI 0x8947
+ GL_CON_7_ATI 0x8948
+ GL_MOV_ATI 0x8961
+ GL_ADD_ATI 0x8963
+ GL_MUL_ATI 0x8964
+ GL_SUB_ATI 0x8965
+ GL_DOT3_ATI 0x8966
+ GL_DOT4_ATI 0x8967
+ GL_MAD_ATI 0x8968
+ GL_LERP_ATI 0x8969
+ GL_CND_ATI 0x896A
+ GL_CND0_ATI 0x896B
+ GL_DOT2_ADD_ATI 0x896C
+ GL_SECONDARY_INTERPOLATOR_ATI 0x896D
+ GL_SWIZZLE_STR_ATI 0x8976
+ GL_SWIZZLE_STQ_ATI 0x8977
+ GL_SWIZZLE_STR_DR_ATI 0x8978
+ GL_SWIZZLE_STQ_DQ_ATI 0x8979
+ void glAlphaFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod)
+ void glAlphaFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod)
+ void glAlphaFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod)
+ void glBeginFragmentShaderATI (void)
+ void glBindFragmentShaderATI (GLuint id)
+ void glColorFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod)
+ void glColorFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod)
+ void glColorFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod)
+ void glDeleteFragmentShaderATI (GLuint id)
+ void glEndFragmentShaderATI (void)
+ GLuint glGenFragmentShadersATI (GLuint range)
+ void glPassTexCoordATI (GLuint dst, GLuint coord, GLenum swizzle)
+ void glSampleMapATI (GLuint dst, GLuint interp, GLenum swizzle)
+ void glSetFragmentShaderConstantATI (GLuint dst, const GLfloat* value)
+ GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
+ GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
+ GL_NUM_PASSES_ATI 0x8970
+ GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
+ GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
+ GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
+ GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
+ GL_COLOR_ALPHA_PAIRING_ATI 0x8975
+ GL_SWIZZLE_STRQ_ATI 0x897A
+ GL_SWIZZLE_STRQ_DQ_ATI 0x897B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_map_object_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_map_object_buffer
new file mode 100644
index 0000000..6a683d0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_map_object_buffer
@@ -0,0 +1,6 @@
+GL_ATI_map_object_buffer
+http://www.opengl.org/registry/specs/ATI/map_object_buffer.txt
+GL_ATI_map_object_buffer
+
+ void * glMapObjectBufferATI (GLuint buffer)
+ void glUnmapObjectBufferATI (GLuint buffer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_meminfo b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_meminfo
new file mode 100644
index 0000000..e7e6fc2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_meminfo
@@ -0,0 +1,7 @@
+GL_ATI_meminfo
+https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_meminfo.txt
+GL_ATI_meminfo
+
+ GL_VBO_FREE_MEMORY_ATI 0x87FB
+ GL_TEXTURE_FREE_MEMORY_ATI 0x87FC
+ GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_pn_triangles b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_pn_triangles
new file mode 100644
index 0000000..ca3923d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_pn_triangles
@@ -0,0 +1,15 @@
+GL_ATI_pn_triangles
+http://www.opengl.org/registry/specs/ATI/pn_triangles.txt
+GL_ATI_pn_triangles
+
+ GL_PN_TRIANGLES_ATI 0x87F0
+ GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
+ GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
+ GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
+ GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
+ GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
+ GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
+ GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
+ GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
+ void glPNTrianglesiATI (GLenum pname, GLint param)
+ void glPNTrianglesfATI (GLenum pname, GLfloat param)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_separate_stencil b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_separate_stencil
new file mode 100644
index 0000000..b7237e5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_separate_stencil
@@ -0,0 +1,10 @@
+GL_ATI_separate_stencil
+http://www.opengl.org/registry/specs/ATI/separate_stencil.txt
+GL_ATI_separate_stencil
+
+ GL_STENCIL_BACK_FUNC_ATI 0x8800
+ GL_STENCIL_BACK_FAIL_ATI 0x8801
+ GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
+ GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
+ void glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+ void glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_shader_texture_lod b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_shader_texture_lod
new file mode 100644
index 0000000..e6e6c04
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_shader_texture_lod
@@ -0,0 +1,4 @@
+GL_ATI_shader_texture_lod
+
+GL_ATI_shader_texture_lod
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_text_fragment_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_text_fragment_shader
new file mode 100644
index 0000000..b0b93fb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_text_fragment_shader
@@ -0,0 +1,5 @@
+GL_ATI_text_fragment_shader
+https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_text_fragment_shader.txt
+GL_ATI_text_fragment_shader
+
+ GL_TEXT_FRAGMENT_SHADER_ATI 0x8200
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_compression_3dc b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_compression_3dc
new file mode 100644
index 0000000..fc3ee44
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_compression_3dc
@@ -0,0 +1,5 @@
+GL_ATI_texture_compression_3dc
+
+GL_ATI_texture_compression_3dc
+
+ GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_env_combine3 b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_env_combine3
new file mode 100644
index 0000000..fc6fc96
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_env_combine3
@@ -0,0 +1,7 @@
+GL_ATI_texture_env_combine3
+https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_texture_env_combine3.txt
+GL_ATI_texture_env_combine3
+
+ GL_MODULATE_ADD_ATI 0x8744
+ GL_MODULATE_SIGNED_ADD_ATI 0x8745
+ GL_MODULATE_SUBTRACT_ATI 0x8746
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_float b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_float
new file mode 100644
index 0000000..aead237
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_float
@@ -0,0 +1,16 @@
+GL_ATI_texture_float
+https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_texture_float.txt
+GL_ATI_texture_float
+
+ GL_RGBA_FLOAT32_ATI 0x8814
+ GL_RGB_FLOAT32_ATI 0x8815
+ GL_ALPHA_FLOAT32_ATI 0x8816
+ GL_INTENSITY_FLOAT32_ATI 0x8817
+ GL_LUMINANCE_FLOAT32_ATI 0x8818
+ GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
+ GL_RGBA_FLOAT16_ATI 0x881A
+ GL_RGB_FLOAT16_ATI 0x881B
+ GL_ALPHA_FLOAT16_ATI 0x881C
+ GL_INTENSITY_FLOAT16_ATI 0x881D
+ GL_LUMINANCE_FLOAT16_ATI 0x881E
+ GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_mirror_once b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_mirror_once
new file mode 100644
index 0000000..e7ba761
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_texture_mirror_once
@@ -0,0 +1,6 @@
+GL_ATI_texture_mirror_once
+https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_texture_mirror_once.txt
+GL_ATI_texture_mirror_once
+
+ GL_MIRROR_CLAMP_ATI 0x8742
+ GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_array_object b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_array_object
new file mode 100644
index 0000000..f0c01c0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_array_object
@@ -0,0 +1,24 @@
+GL_ATI_vertex_array_object
+https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_vertex_array_object.txt
+GL_ATI_vertex_array_object
+
+ GL_STATIC_ATI 0x8760
+ GL_DYNAMIC_ATI 0x8761
+ GL_PRESERVE_ATI 0x8762
+ GL_DISCARD_ATI 0x8763
+ GL_OBJECT_BUFFER_SIZE_ATI 0x8764
+ GL_OBJECT_BUFFER_USAGE_ATI 0x8765
+ GL_ARRAY_OBJECT_BUFFER_ATI 0x8766
+ GL_ARRAY_OBJECT_OFFSET_ATI 0x8767
+ void glArrayObjectATI (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset)
+ void glFreeObjectBufferATI (GLuint buffer)
+ void glGetArrayObjectfvATI (GLenum array, GLenum pname, GLfloat* params)
+ void glGetArrayObjectivATI (GLenum array, GLenum pname, GLint* params)
+ void glGetObjectBufferfvATI (GLuint buffer, GLenum pname, GLfloat* params)
+ void glGetObjectBufferivATI (GLuint buffer, GLenum pname, GLint* params)
+ void glGetVariantArrayObjectfvATI (GLuint id, GLenum pname, GLfloat* params)
+ void glGetVariantArrayObjectivATI (GLuint id, GLenum pname, GLint* params)
+ GLboolean glIsObjectBufferATI (GLuint buffer)
+ GLuint glNewObjectBufferATI (GLsizei size, const void *pointer, GLenum usage)
+ void glUpdateObjectBufferATI (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve)
+ void glVariantArrayObjectATI (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_attrib_array_object b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_attrib_array_object
new file mode 100644
index 0000000..2659525
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_attrib_array_object
@@ -0,0 +1,7 @@
+GL_ATI_vertex_attrib_array_object
+https://www.khronos.org/registry/OpenGL/extensions/ATI/ATI_vertex_attrib_array_object.txt
+GL_ATI_vertex_attrib_array_object
+
+ void glGetVertexAttribArrayObjectfvATI (GLuint index, GLenum pname, GLfloat* params)
+ void glGetVertexAttribArrayObjectivATI (GLuint index, GLenum pname, GLint* params)
+ void glVertexAttribArrayObjectATI (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_streams b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_streams
new file mode 100644
index 0000000..f6e64fd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_ATI_vertex_streams
@@ -0,0 +1,59 @@
+GL_ATI_vertex_streams
+http://www.opengl.org/registry/specs/ATI/vertex_streams.txt
+GL_ATI_vertex_streams
+
+ GL_MAX_VERTEX_STREAMS_ATI 0x876B
+ GL_VERTEX_SOURCE_ATI 0x876C
+ GL_VERTEX_STREAM0_ATI 0x876D
+ GL_VERTEX_STREAM1_ATI 0x876E
+ GL_VERTEX_STREAM2_ATI 0x876F
+ GL_VERTEX_STREAM3_ATI 0x8770
+ GL_VERTEX_STREAM4_ATI 0x8771
+ GL_VERTEX_STREAM5_ATI 0x8772
+ GL_VERTEX_STREAM6_ATI 0x8773
+ GL_VERTEX_STREAM7_ATI 0x8774
+ void glClientActiveVertexStreamATI (GLenum stream)
+ void glVertexBlendEnviATI (GLenum pname, GLint param)
+ void glVertexBlendEnvfATI (GLenum pname, GLfloat param)
+ void glVertexStream1sATI (GLenum stream, GLshort x)
+ void glVertexStream1svATI (GLenum stream, const GLshort *coords)
+ void glVertexStream1iATI (GLenum stream, GLint x)
+ void glVertexStream1ivATI (GLenum stream, const GLint *coords)
+ void glVertexStream1fATI (GLenum stream, GLfloat x)
+ void glVertexStream1fvATI (GLenum stream, const GLfloat *coords)
+ void glVertexStream1dATI (GLenum stream, GLdouble x)
+ void glVertexStream1dvATI (GLenum stream, const GLdouble *coords)
+ void glVertexStream2sATI (GLenum stream, GLshort x, GLshort y)
+ void glVertexStream2svATI (GLenum stream, const GLshort *coords)
+ void glVertexStream2iATI (GLenum stream, GLint x, GLint y)
+ void glVertexStream2ivATI (GLenum stream, const GLint *coords)
+ void glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y)
+ void glVertexStream2fvATI (GLenum stream, const GLfloat *coords)
+ void glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y)
+ void glVertexStream2dvATI (GLenum stream, const GLdouble *coords)
+ void glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z)
+ void glVertexStream3svATI (GLenum stream, const GLshort *coords)
+ void glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z)
+ void glVertexStream3ivATI (GLenum stream, const GLint *coords)
+ void glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z)
+ void glVertexStream3fvATI (GLenum stream, const GLfloat *coords)
+ void glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z)
+ void glVertexStream3dvATI (GLenum stream, const GLdouble *coords)
+ void glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w)
+ void glVertexStream4svATI (GLenum stream, const GLshort *coords)
+ void glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w)
+ void glVertexStream4ivATI (GLenum stream, const GLint *coords)
+ void glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glVertexStream4fvATI (GLenum stream, const GLfloat *coords)
+ void glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glVertexStream4dvATI (GLenum stream, const GLdouble *coords)
+ void glNormalStream3bATI (GLenum stream, GLbyte x, GLbyte y, GLbyte z)
+ void glNormalStream3bvATI (GLenum stream, const GLbyte *coords)
+ void glNormalStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z)
+ void glNormalStream3svATI (GLenum stream, const GLshort *coords)
+ void glNormalStream3iATI (GLenum stream, GLint x, GLint y, GLint z)
+ void glNormalStream3ivATI (GLenum stream, const GLint *coords)
+ void glNormalStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z)
+ void glNormalStream3fvATI (GLenum stream, const GLfloat *coords)
+ void glNormalStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z)
+ void glNormalStream3dvATI (GLenum stream, const GLdouble *coords)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_DMP_program_binary b/engine-ocean/External/glew/auto/extensions/gl/GL_DMP_program_binary
new file mode 100644
index 0000000..3264cf4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_DMP_program_binary
@@ -0,0 +1,7 @@
+GL_DMP_program_binary
+https://www.khronos.org/registry/OpenGL/extensions/DMP/DMP_program_binary.txt
+GL_DMP_program_binary
+
+ GL_SMAPHS30_PROGRAM_BINARY_DMP 0x9251
+ GL_SMAPHS_PROGRAM_BINARY_DMP 0x9252
+ GL_DMP_PROGRAM_BINARY_DMP 0x9253
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_DMP_shader_binary b/engine-ocean/External/glew/auto/extensions/gl/GL_DMP_shader_binary
new file mode 100644
index 0000000..1b4b03b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_DMP_shader_binary
@@ -0,0 +1,5 @@
+GL_DMP_shader_binary
+https://www.khronos.org/registry/OpenGL/extensions/DMP/DMP_shader_binary.txt
+GL_DMP_shader_binary
+
+ GL_SHADER_BINARY_DMP 0x9250
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_422_pixels b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_422_pixels
new file mode 100644
index 0000000..5ac06bc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_422_pixels
@@ -0,0 +1,8 @@
+GL_EXT_422_pixels
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_422_pixels.txt
+GL_EXT_422_pixels
+
+ GL_422_EXT 0x80CC
+ GL_422_REV_EXT 0x80CD
+ GL_422_AVERAGE_EXT 0x80CE
+ GL_422_REV_AVERAGE_EXT 0x80CF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_Cg_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_Cg_shader
new file mode 100644
index 0000000..b2df900
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_Cg_shader
@@ -0,0 +1,6 @@
+GL_EXT_Cg_shader
+http://download.nvidia.com/developer/GLSL/GLSL%20Release%20Notes%20for%20Release%2060.pdf
+GL_EXT_Cg_shader
+
+ GL_CG_VERTEX_SHADER_EXT 0x890E
+ GL_CG_FRAGMENT_SHADER_EXT 0x890F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_array b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_array
new file mode 100644
index 0000000..a916378
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_array
@@ -0,0 +1,4 @@
+GL_EXT_EGL_image_array
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_EGL_image_array.txt
+GL_EXT_EGL_image_array
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_external_wrap_modes b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_external_wrap_modes
new file mode 100644
index 0000000..9fcae5a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_external_wrap_modes
@@ -0,0 +1,4 @@
+GL_EXT_EGL_image_external_wrap_modes
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_EGL_image_external_wrap_modes.txt
+GL_EXT_EGL_image_external_wrap_modes
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_storage b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_storage
new file mode 100644
index 0000000..dfab6b2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_storage
@@ -0,0 +1,6 @@
+GL_EXT_EGL_image_storage
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_EGL_image_storage.txt
+GL_EXT_EGL_image_storage
+
+ void glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list)
+ void glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_storage_compression b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_storage_compression
new file mode 100644
index 0000000..de64135
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_image_storage_compression
@@ -0,0 +1,7 @@
+GL_EXT_EGL_image_storage_compression
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_EGL_image_storage_compression.txt
+GL_EXT_EGL_image_storage_compression
+
+ GL_SURFACE_COMPRESSION_EXT 0x96C0
+ GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x96C1
+ GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x96C2
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_sync b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_sync
new file mode 100644
index 0000000..37beacc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_EGL_sync
@@ -0,0 +1,4 @@
+GL_EXT_EGL_sync
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_EGL_sync.txt
+GL_EXT_EGL_sync
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_YUV_target b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_YUV_target
new file mode 100644
index 0000000..8123ee7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_YUV_target
@@ -0,0 +1,5 @@
+GL_EXT_YUV_target
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_YUV_target.txt
+GL_EXT_YUV_target
+
+ GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_abgr b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_abgr
new file mode 100644
index 0000000..7954859
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_abgr
@@ -0,0 +1,5 @@
+GL_EXT_abgr
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_abgr.txt
+GL_EXT_abgr
+
+ GL_ABGR_EXT 0x8000
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_base_instance b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_base_instance
new file mode 100644
index 0000000..a4a26ff
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_base_instance
@@ -0,0 +1,7 @@
+GL_EXT_base_instance
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_base_instance.txt
+GL_EXT_base_instance
+
+ void glDrawArraysInstancedBaseInstanceEXT (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)
+ void glDrawElementsInstancedBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance)
+ void glDrawElementsInstancedBaseVertexBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_bgra b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_bgra
new file mode 100644
index 0000000..e80cb8d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_bgra
@@ -0,0 +1,6 @@
+GL_EXT_bgra
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_bgra.txt
+GL_EXT_bgra
+
+ GL_BGR_EXT 0x80E0
+ GL_BGRA_EXT 0x80E1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_bindable_uniform b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_bindable_uniform
new file mode 100644
index 0000000..00ec270
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_bindable_uniform
@@ -0,0 +1,13 @@
+GL_EXT_bindable_uniform
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_bindable_uniform.txt
+GL_EXT_bindable_uniform
+
+ GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
+ GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
+ GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
+ GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
+ GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
+ GL_UNIFORM_BUFFER_EXT 0x8DEE
+ void glUniformBufferEXT (GLuint program, GLint location, GLuint buffer)
+ GLint glGetUniformBufferSizeEXT (GLuint program, GLint location)
+ GLintptr glGetUniformOffsetEXT (GLuint program, GLint location)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_color b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_color
new file mode 100644
index 0000000..e70edf6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_color
@@ -0,0 +1,10 @@
+GL_EXT_blend_color
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_blend_color.txt
+GL_EXT_blend_color
+
+ GL_CONSTANT_COLOR_EXT 0x8001
+ GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
+ GL_CONSTANT_ALPHA_EXT 0x8003
+ GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
+ GL_BLEND_COLOR_EXT 0x8005
+ void glBlendColorEXT (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_equation_separate b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_equation_separate
new file mode 100644
index 0000000..f3417e4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_equation_separate
@@ -0,0 +1,7 @@
+GL_EXT_blend_equation_separate
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_blend_equation_separate.txt
+GL_EXT_blend_equation_separate
+
+ GL_BLEND_EQUATION_RGB_EXT 0x8009
+ GL_BLEND_EQUATION_ALPHA_EXT 0x883D
+ void glBlendEquationSeparateEXT (GLenum modeRGB, GLenum modeAlpha)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_func_extended b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_func_extended
new file mode 100644
index 0000000..fc28e2f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_func_extended
@@ -0,0 +1,14 @@
+GL_EXT_blend_func_extended
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_blend_func_extended.txt
+GL_EXT_blend_func_extended
+
+ GL_SRC_ALPHA_SATURATE_EXT 0x0308
+ GL_SRC1_ALPHA_EXT 0x8589
+ GL_SRC1_COLOR_EXT 0x88F9
+ GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA
+ GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB
+ GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC
+ GL_LOCATION_INDEX_EXT 0x930F
+ void glBindFragDataLocationIndexedEXT (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name)
+ GLint glGetFragDataIndexEXT (GLuint program, const GLchar * name)
+ GLint glGetProgramResourceLocationIndexEXT (GLuint program, GLenum programInterface, const GLchar* name)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_func_separate b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_func_separate
new file mode 100644
index 0000000..d8db1f1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_func_separate
@@ -0,0 +1,9 @@
+GL_EXT_blend_func_separate
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_blend_func_separate.txt
+GL_EXT_blend_func_separate
+
+ GL_BLEND_DST_RGB_EXT 0x80C8
+ GL_BLEND_SRC_RGB_EXT 0x80C9
+ GL_BLEND_DST_ALPHA_EXT 0x80CA
+ GL_BLEND_SRC_ALPHA_EXT 0x80CB
+ void glBlendFuncSeparateEXT (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_logic_op b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_logic_op
new file mode 100644
index 0000000..e29e418
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_logic_op
@@ -0,0 +1,4 @@
+GL_EXT_blend_logic_op
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_blend_logic_op.txt
+GL_EXT_blend_logic_op
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_minmax b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_minmax
new file mode 100644
index 0000000..8e33e6f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_minmax
@@ -0,0 +1,9 @@
+GL_EXT_blend_minmax
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_blend_minmax.txt
+GL_EXT_blend_minmax
+
+ GL_FUNC_ADD_EXT 0x8006
+ GL_MIN_EXT 0x8007
+ GL_MAX_EXT 0x8008
+ GL_BLEND_EQUATION_EXT 0x8009
+ void glBlendEquationEXT (GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_subtract b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_subtract
new file mode 100644
index 0000000..eb93fba
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_blend_subtract
@@ -0,0 +1,6 @@
+GL_EXT_blend_subtract
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_blend_subtract.txt
+GL_EXT_blend_subtract
+
+ GL_FUNC_SUBTRACT_EXT 0x800A
+ GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_buffer_storage b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_buffer_storage
new file mode 100644
index 0000000..5bee2c4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_buffer_storage
@@ -0,0 +1,15 @@
+GL_EXT_buffer_storage
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_buffer_storage.txt
+GL_EXT_buffer_storage
+
+ GL_MAP_READ_BIT 0x0001
+ GL_MAP_WRITE_BIT 0x0002
+ GL_MAP_PERSISTENT_BIT_EXT 0x0040
+ GL_MAP_COHERENT_BIT_EXT 0x0080
+ GL_DYNAMIC_STORAGE_BIT_EXT 0x0100
+ GL_CLIENT_STORAGE_BIT_EXT 0x0200
+ GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000
+ GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F
+ GL_BUFFER_STORAGE_FLAGS_EXT 0x8220
+ void glBufferStorageEXT (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags)
+ void glNamedBufferStorageEXT (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clear_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clear_texture
new file mode 100644
index 0000000..f575d91
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clear_texture
@@ -0,0 +1,6 @@
+GL_EXT_clear_texture
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_clear_texture.txt
+GL_EXT_clear_texture
+
+ void glClearTexImageEXT (GLuint texture, GLint level, GLenum format, GLenum type, const void *data)
+ void glClearTexSubImageEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_control b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_control
new file mode 100644
index 0000000..527358c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_control
@@ -0,0 +1,11 @@
+GL_EXT_clip_control
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_clip_control.txt
+GL_EXT_clip_control
+
+ GL_LOWER_LEFT_EXT 0x8CA1
+ GL_UPPER_LEFT_EXT 0x8CA2
+ GL_CLIP_ORIGIN_EXT 0x935C
+ GL_CLIP_DEPTH_MODE_EXT 0x935D
+ GL_NEGATIVE_ONE_TO_ONE_EXT 0x935E
+ GL_ZERO_TO_ONE_EXT 0x935F
+ void glClipControlEXT (GLenum origin, GLenum depth)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_cull_distance b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_cull_distance
new file mode 100644
index 0000000..ff1f926
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_cull_distance
@@ -0,0 +1,15 @@
+GL_EXT_clip_cull_distance
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_clip_cull_distance.txt
+GL_EXT_clip_cull_distance
+
+ GL_MAX_CLIP_DISTANCES_EXT 0x0D32
+ GL_CLIP_DISTANCE0_EXT 0x3000
+ GL_CLIP_DISTANCE1_EXT 0x3001
+ GL_CLIP_DISTANCE2_EXT 0x3002
+ GL_CLIP_DISTANCE3_EXT 0x3003
+ GL_CLIP_DISTANCE4_EXT 0x3004
+ GL_CLIP_DISTANCE5_EXT 0x3005
+ GL_CLIP_DISTANCE6_EXT 0x3006
+ GL_CLIP_DISTANCE7_EXT 0x3007
+ GL_MAX_CULL_DISTANCES_EXT 0x82F9
+ GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT 0x82FA
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_volume_hint b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_volume_hint
new file mode 100644
index 0000000..c4bb91b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_clip_volume_hint
@@ -0,0 +1,5 @@
+GL_EXT_clip_volume_hint
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_clip_volume_hint.txt
+GL_EXT_clip_volume_hint
+
+ GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_cmyka b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_cmyka
new file mode 100644
index 0000000..18ab3d8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_cmyka
@@ -0,0 +1,8 @@
+GL_EXT_cmyka
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_cmyka.txt
+GL_EXT_cmyka
+
+ GL_CMYK_EXT 0x800C
+ GL_CMYKA_EXT 0x800D
+ GL_PACK_CMYK_HINT_EXT 0x800E
+ GL_UNPACK_CMYK_HINT_EXT 0x800F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_buffer_float b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_buffer_float
new file mode 100644
index 0000000..0fa95a3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_buffer_float
@@ -0,0 +1,4 @@
+GL_EXT_color_buffer_float
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_color_buffer_float.txt
+GL_EXT_color_buffer_float
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_buffer_half_float b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_buffer_half_float
new file mode 100644
index 0000000..3b8d7b2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_buffer_half_float
@@ -0,0 +1,10 @@
+GL_EXT_color_buffer_half_float
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_color_buffer_half_float.txt
+GL_EXT_color_buffer_half_float
+
+ GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211
+ GL_R16F_EXT 0x822D
+ GL_RG16F_EXT 0x822F
+ GL_RGBA16F_EXT 0x881A
+ GL_RGB16F_EXT 0x881B
+ GL_UNSIGNED_NORMALIZED_EXT 0x8C17
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_subtable b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_subtable
new file mode 100644
index 0000000..6a42010
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_color_subtable
@@ -0,0 +1,6 @@
+GL_EXT_color_subtable
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_color_subtable.txt
+GL_EXT_color_subtable
+
+ void glColorSubTableEXT (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data)
+ void glCopyColorSubTableEXT (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_compiled_vertex_array b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_compiled_vertex_array
new file mode 100644
index 0000000..e801e55
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_compiled_vertex_array
@@ -0,0 +1,8 @@
+GL_EXT_compiled_vertex_array
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_compiled_vertex_array.txt
+GL_EXT_compiled_vertex_array
+
+ GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
+ GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
+ void glLockArraysEXT (GLint first, GLsizei count)
+ void glUnlockArraysEXT (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_compressed_ETC1_RGB8_sub_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_compressed_ETC1_RGB8_sub_texture
new file mode 100644
index 0000000..a8879af
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_compressed_ETC1_RGB8_sub_texture
@@ -0,0 +1,4 @@
+GL_EXT_compressed_ETC1_RGB8_sub_texture
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_compressed_ETC1_RGB8_sub_texture.txt
+GL_EXT_compressed_ETC1_RGB8_sub_texture
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_conservative_depth b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_conservative_depth
new file mode 100644
index 0000000..dc71faa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_conservative_depth
@@ -0,0 +1,4 @@
+GL_EXT_conservative_depth
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_conservative_depth.txt
+GL_EXT_conservative_depth
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_convolution b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_convolution
new file mode 100644
index 0000000..fdeab52
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_convolution
@@ -0,0 +1,37 @@
+GL_EXT_convolution
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_convolution.txt
+GL_EXT_convolution
+
+ GL_CONVOLUTION_1D_EXT 0x8010
+ GL_CONVOLUTION_2D_EXT 0x8011
+ GL_SEPARABLE_2D_EXT 0x8012
+ GL_CONVOLUTION_BORDER_MODE_EXT 0x8013
+ GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014
+ GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015
+ GL_REDUCE_EXT 0x8016
+ GL_CONVOLUTION_FORMAT_EXT 0x8017
+ GL_CONVOLUTION_WIDTH_EXT 0x8018
+ GL_CONVOLUTION_HEIGHT_EXT 0x8019
+ GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A
+ GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B
+ GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
+ GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
+ GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
+ GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
+ GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020
+ GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
+ GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
+ GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
+ void glConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image)
+ void glConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image)
+ void glConvolutionParameterfEXT (GLenum target, GLenum pname, GLfloat param)
+ void glConvolutionParameterfvEXT (GLenum target, GLenum pname, const GLfloat* params)
+ void glConvolutionParameteriEXT (GLenum target, GLenum pname, GLint param)
+ void glConvolutionParameterivEXT (GLenum target, GLenum pname, const GLint* params)
+ void glCopyConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
+ void glCopyConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glGetConvolutionFilterEXT (GLenum target, GLenum format, GLenum type, void *image)
+ void glGetConvolutionParameterfvEXT (GLenum target, GLenum pname, GLfloat* params)
+ void glGetConvolutionParameterivEXT (GLenum target, GLenum pname, GLint* params)
+ void glGetSeparableFilterEXT (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span)
+ void glSeparableFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_coordinate_frame b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_coordinate_frame
new file mode 100644
index 0000000..b57c8d7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_coordinate_frame
@@ -0,0 +1,20 @@
+GL_EXT_coordinate_frame
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_coordinate_frame.txt
+GL_EXT_coordinate_frame
+
+ GL_TANGENT_ARRAY_EXT 0x8439
+ GL_BINORMAL_ARRAY_EXT 0x843A
+ GL_CURRENT_TANGENT_EXT 0x843B
+ GL_CURRENT_BINORMAL_EXT 0x843C
+ GL_TANGENT_ARRAY_TYPE_EXT 0x843E
+ GL_TANGENT_ARRAY_STRIDE_EXT 0x843F
+ GL_BINORMAL_ARRAY_TYPE_EXT 0x8440
+ GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441
+ GL_TANGENT_ARRAY_POINTER_EXT 0x8442
+ GL_BINORMAL_ARRAY_POINTER_EXT 0x8443
+ GL_MAP1_TANGENT_EXT 0x8444
+ GL_MAP2_TANGENT_EXT 0x8445
+ GL_MAP1_BINORMAL_EXT 0x8446
+ GL_MAP2_BINORMAL_EXT 0x8447
+ void glBinormalPointerEXT (GLenum type, GLsizei stride, void *pointer)
+ void glTangentPointerEXT (GLenum type, GLsizei stride, void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_copy_image b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_copy_image
new file mode 100644
index 0000000..fba0373
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_copy_image
@@ -0,0 +1,5 @@
+GL_EXT_copy_image
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_copy_image.txt
+GL_EXT_copy_image
+
+ void glCopyImageSubDataEXT (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_copy_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_copy_texture
new file mode 100644
index 0000000..b1ba382
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_copy_texture
@@ -0,0 +1,9 @@
+GL_EXT_copy_texture
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_copy_texture.txt
+GL_EXT_copy_texture
+
+ void glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
+ void glCopyTexImage2DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+ void glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+ void glCopyTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glCopyTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_cull_vertex b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_cull_vertex
new file mode 100644
index 0000000..8e82290
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_cull_vertex
@@ -0,0 +1,9 @@
+GL_EXT_cull_vertex
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_cull_vertex.txt
+GL_EXT_cull_vertex
+
+ GL_CULL_VERTEX_EXT 0x81AA
+ GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB
+ GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
+ void glCullParameterdvEXT (GLenum pname, GLdouble* params)
+ void glCullParameterfvEXT (GLenum pname, GLfloat* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_debug_label b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_debug_label
new file mode 100644
index 0000000..74b8855
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_debug_label
@@ -0,0 +1,12 @@
+GL_EXT_debug_label
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_debug_label.txt
+GL_EXT_debug_label
+
+ GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
+ GL_PROGRAM_OBJECT_EXT 0x8B40
+ GL_SHADER_OBJECT_EXT 0x8B48
+ GL_BUFFER_OBJECT_EXT 0x9151
+ GL_QUERY_OBJECT_EXT 0x9153
+ GL_VERTEX_ARRAY_OBJECT_EXT 0x9154
+ void glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei* length, GLchar *label)
+ void glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar* label)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_debug_marker b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_debug_marker
new file mode 100644
index 0000000..ce9ffe4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_debug_marker
@@ -0,0 +1,7 @@
+GL_EXT_debug_marker
+http://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt
+GL_EXT_debug_marker
+
+ void glInsertEventMarkerEXT (GLsizei length, const GLchar* marker)
+ void glPushGroupMarkerEXT (GLsizei length, const GLchar* marker)
+ void glPopGroupMarkerEXT (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_depth_bounds_test b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_depth_bounds_test
new file mode 100644
index 0000000..da2a453
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_depth_bounds_test
@@ -0,0 +1,7 @@
+GL_EXT_depth_bounds_test
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_depth_bounds_test.txt
+GL_EXT_depth_bounds_test
+
+ GL_DEPTH_BOUNDS_TEST_EXT 0x8890
+ GL_DEPTH_BOUNDS_EXT 0x8891
+ void glDepthBoundsEXT (GLclampd zmin, GLclampd zmax)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_depth_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_depth_clamp
new file mode 100644
index 0000000..2aee70f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_depth_clamp
@@ -0,0 +1,5 @@
+GL_EXT_depth_clamp
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_depth_clamp.txt
+GL_EXT_depth_clamp
+
+ GL_DEPTH_CLAMP_EXT 0x864F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_direct_state_access b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_direct_state_access
new file mode 100644
index 0000000..6fa82bb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_direct_state_access
@@ -0,0 +1,221 @@
+GL_EXT_direct_state_access
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_direct_state_access.txt
+GL_EXT_direct_state_access
+
+ GL_PROGRAM_MATRIX_EXT 0x8E2D
+ GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E
+ GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F
+ void glBindMultiTextureEXT (GLenum texunit, GLenum target, GLuint texture)
+ GLenum glCheckNamedFramebufferStatusEXT (GLuint framebuffer, GLenum target)
+ void glClientAttribDefaultEXT (GLbitfield mask)
+ void glCompressedMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
+ void glCompressedMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)
+ void glCompressedMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+ void glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
+ void glCompressedTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)
+ void glCompressedTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+ void glCopyMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
+ void glCopyMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+ void glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+ void glCopyMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glCopyMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
+ void glCopyTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+ void glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+ void glCopyTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glCopyTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glDisableClientStateIndexedEXT (GLenum array, GLuint index)
+ void glDisableClientStateiEXT (GLenum array, GLuint index)
+ void glDisableVertexArrayAttribEXT (GLuint vaobj, GLuint index)
+ void glDisableVertexArrayEXT (GLuint vaobj, GLenum array)
+ void glEnableClientStateIndexedEXT (GLenum array, GLuint index)
+ void glEnableClientStateiEXT (GLenum array, GLuint index)
+ void glEnableVertexArrayAttribEXT (GLuint vaobj, GLuint index)
+ void glEnableVertexArrayEXT (GLuint vaobj, GLenum array)
+ void glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length)
+ void glFramebufferDrawBufferEXT (GLuint framebuffer, GLenum mode)
+ void glFramebufferDrawBuffersEXT (GLuint framebuffer, GLsizei n, const GLenum* bufs)
+ void glFramebufferReadBufferEXT (GLuint framebuffer, GLenum mode)
+ void glGenerateMultiTexMipmapEXT (GLenum texunit, GLenum target)
+ void glGenerateTextureMipmapEXT (GLuint texture, GLenum target)
+ void glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target, GLint level, void *img)
+ void glGetCompressedTextureImageEXT (GLuint texture, GLenum target, GLint level, void *img)
+ void glGetDoubleIndexedvEXT (GLenum target, GLuint index, GLdouble* params)
+ void glGetDoublei_vEXT (GLenum pname, GLuint index, GLdouble* params)
+ void glGetFloatIndexedvEXT (GLenum target, GLuint index, GLfloat* params)
+ void glGetFloati_vEXT (GLenum pname, GLuint index, GLfloat* params)
+ void glGetFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint* param)
+ void glGetMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat* params)
+ void glGetMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, GLint* params)
+ void glGetMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble* params)
+ void glGetMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat* params)
+ void glGetMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, GLint* params)
+ void glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels)
+ void glGetMultiTexLevelParameterfvEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat* params)
+ void glGetMultiTexLevelParameterivEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint* params)
+ void glGetMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, GLint* params)
+ void glGetMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, GLuint* params)
+ void glGetMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat* params)
+ void glGetMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, GLint* params)
+ void glGetNamedBufferParameterivEXT (GLuint buffer, GLenum pname, GLint* params)
+ void glGetNamedBufferPointervEXT (GLuint buffer, GLenum pname, void** params)
+ void glGetNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data)
+ void glGetNamedFramebufferAttachmentParameterivEXT (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params)
+ void glGetNamedProgramLocalParameterIivEXT (GLuint program, GLenum target, GLuint index, GLint* params)
+ void glGetNamedProgramLocalParameterIuivEXT (GLuint program, GLenum target, GLuint index, GLuint* params)
+ void glGetNamedProgramLocalParameterdvEXT (GLuint program, GLenum target, GLuint index, GLdouble* params)
+ void glGetNamedProgramLocalParameterfvEXT (GLuint program, GLenum target, GLuint index, GLfloat* params)
+ void glGetNamedProgramStringEXT (GLuint program, GLenum target, GLenum pname, void *string)
+ void glGetNamedProgramivEXT (GLuint program, GLenum target, GLenum pname, GLint* params)
+ void glGetNamedRenderbufferParameterivEXT (GLuint renderbuffer, GLenum pname, GLint* params)
+ void glGetPointerIndexedvEXT (GLenum target, GLuint index, void** params)
+ void glGetPointeri_vEXT (GLenum pname, GLuint index, void** params)
+ void glGetTextureImageEXT (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels)
+ void glGetTextureLevelParameterfvEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat* params)
+ void glGetTextureLevelParameterivEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLint* params)
+ void glGetTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, GLint* params)
+ void glGetTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, GLuint* params)
+ void glGetTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, GLfloat* params)
+ void glGetTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, GLint* params)
+ void glGetVertexArrayIntegeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, GLint* param)
+ void glGetVertexArrayIntegervEXT (GLuint vaobj, GLenum pname, GLint* param)
+ void glGetVertexArrayPointeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, void** param)
+ void glGetVertexArrayPointervEXT (GLuint vaobj, GLenum pname, void** param)
+ void * glMapNamedBufferEXT (GLuint buffer, GLenum access)
+ void * glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access)
+ void glMatrixFrustumEXT (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f)
+ void glMatrixLoadIdentityEXT (GLenum matrixMode)
+ void glMatrixLoadTransposedEXT (GLenum matrixMode, const GLdouble* m)
+ void glMatrixLoadTransposefEXT (GLenum matrixMode, const GLfloat* m)
+ void glMatrixLoaddEXT (GLenum matrixMode, const GLdouble* m)
+ void glMatrixLoadfEXT (GLenum matrixMode, const GLfloat* m)
+ void glMatrixMultTransposedEXT (GLenum matrixMode, const GLdouble* m)
+ void glMatrixMultTransposefEXT (GLenum matrixMode, const GLfloat* m)
+ void glMatrixMultdEXT (GLenum matrixMode, const GLdouble* m)
+ void glMatrixMultfEXT (GLenum matrixMode, const GLfloat* m)
+ void glMatrixOrthoEXT (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f)
+ void glMatrixPopEXT (GLenum matrixMode)
+ void glMatrixPushEXT (GLenum matrixMode)
+ void glMatrixRotatedEXT (GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+ void glMatrixRotatefEXT (GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+ void glMatrixScaledEXT (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z)
+ void glMatrixScalefEXT (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z)
+ void glMatrixTranslatedEXT (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z)
+ void glMatrixTranslatefEXT (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z)
+ void glMultiTexBufferEXT (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer)
+ void glMultiTexCoordPointerEXT (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer)
+ void glMultiTexEnvfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param)
+ void glMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat* params)
+ void glMultiTexEnviEXT (GLenum texunit, GLenum target, GLenum pname, GLint param)
+ void glMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint* params)
+ void glMultiTexGendEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble param)
+ void glMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLdouble* params)
+ void glMultiTexGenfEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat param)
+ void glMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLfloat* params)
+ void glMultiTexGeniEXT (GLenum texunit, GLenum coord, GLenum pname, GLint param)
+ void glMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, const GLint* params)
+ void glMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels)
+ void glMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)
+ void glMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
+ void glMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint* params)
+ void glMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, const GLuint* params)
+ void glMultiTexParameterfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param)
+ void glMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat* param)
+ void glMultiTexParameteriEXT (GLenum texunit, GLenum target, GLenum pname, GLint param)
+ void glMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint* param)
+ void glMultiTexRenderbufferEXT (GLenum texunit, GLenum target, GLuint renderbuffer)
+ void glMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)
+ void glMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
+ void glMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
+ void glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage)
+ void glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)
+ void glNamedCopyBufferSubDataEXT (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+ void glNamedFramebufferRenderbufferEXT (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+ void glNamedFramebufferTexture1DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+ void glNamedFramebufferTexture2DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+ void glNamedFramebufferTexture3DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+ void glNamedFramebufferTextureEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level)
+ void glNamedFramebufferTextureFaceEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face)
+ void glNamedFramebufferTextureLayerEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer)
+ void glNamedProgramLocalParameter4dEXT (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glNamedProgramLocalParameter4dvEXT (GLuint program, GLenum target, GLuint index, const GLdouble* params)
+ void glNamedProgramLocalParameter4fEXT (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glNamedProgramLocalParameter4fvEXT (GLuint program, GLenum target, GLuint index, const GLfloat* params)
+ void glNamedProgramLocalParameterI4iEXT (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w)
+ void glNamedProgramLocalParameterI4ivEXT (GLuint program, GLenum target, GLuint index, const GLint* params)
+ void glNamedProgramLocalParameterI4uiEXT (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+ void glNamedProgramLocalParameterI4uivEXT (GLuint program, GLenum target, GLuint index, const GLuint* params)
+ void glNamedProgramLocalParameters4fvEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params)
+ void glNamedProgramLocalParametersI4ivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint* params)
+ void glNamedProgramLocalParametersI4uivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint* params)
+ void glNamedProgramStringEXT (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string)
+ void glNamedRenderbufferStorageEXT (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height)
+ void glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height)
+ void glNamedRenderbufferStorageMultisampleEXT (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
+ void glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0)
+ void glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform1iEXT (GLuint program, GLint location, GLint v0)
+ void glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0)
+ void glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1)
+ void glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1)
+ void glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1)
+ void glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+ void glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
+ void glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
+ void glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+ void glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat* value)
+ void glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+ void glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint* value)
+ void glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+ void glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint* value)
+ void glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glPushClientAttribDefaultEXT (GLbitfield mask)
+ void glTextureBufferEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer)
+ void glTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels)
+ void glTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)
+ void glTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
+ void glTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, const GLint* params)
+ void glTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, const GLuint* params)
+ void glTextureParameterfEXT (GLuint texture, GLenum target, GLenum pname, GLfloat param)
+ void glTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, const GLfloat* param)
+ void glTextureParameteriEXT (GLuint texture, GLenum target, GLenum pname, GLint param)
+ void glTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, const GLint* param)
+ void glTextureRenderbufferEXT (GLuint texture, GLenum target, GLuint renderbuffer)
+ void glTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)
+ void glTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
+ void glTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
+ GLboolean glUnmapNamedBufferEXT (GLuint buffer)
+ void glVertexArrayColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset)
+ void glVertexArrayEdgeFlagOffsetEXT (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset)
+ void glVertexArrayFogCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset)
+ void glVertexArrayIndexOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset)
+ void glVertexArrayMultiTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset)
+ void glVertexArrayNormalOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset)
+ void glVertexArraySecondaryColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset)
+ void glVertexArrayTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset)
+ void glVertexArrayVertexAttribIOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset)
+ void glVertexArrayVertexAttribOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset)
+ void glVertexArrayVertexOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset)
+ void glVertexArrayVertexAttribDivisorEXT (GLuint vaobj, GLuint index, GLuint divisor)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_discard_framebuffer b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_discard_framebuffer
new file mode 100644
index 0000000..ddf9f3a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_discard_framebuffer
@@ -0,0 +1,8 @@
+GL_EXT_discard_framebuffer
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_discard_framebuffer.txt
+GL_EXT_discard_framebuffer
+
+ GL_COLOR_EXT 0x1800
+ GL_DEPTH_EXT 0x1801
+ GL_STENCIL_EXT 0x1802
+ void glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum* attachments)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_disjoint_timer_query b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_disjoint_timer_query
new file mode 100644
index 0000000..b6db945
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_disjoint_timer_query
@@ -0,0 +1,21 @@
+GL_EXT_disjoint_timer_query
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_disjoint_timer_query.txt
+GL_EXT_disjoint_timer_query
+
+ GL_QUERY_COUNTER_BITS_EXT 0x8864
+ GL_CURRENT_QUERY_EXT 0x8865
+ GL_QUERY_RESULT_EXT 0x8866
+ GL_QUERY_RESULT_AVAILABLE_EXT 0x8867
+ GL_TIME_ELAPSED_EXT 0x88BF
+ GL_TIMESTAMP_EXT 0x8E28
+ GL_GPU_DISJOINT_EXT 0x8FBB
+ void glBeginQueryEXT (GLenum target, GLuint id)
+ void glDeleteQueriesEXT (GLsizei n, const GLuint* ids)
+ void glEndQueryEXT (GLenum target)
+ void glGenQueriesEXT (GLsizei n, GLuint* ids)
+ void glGetInteger64vEXT (GLenum pname, GLint64* data)
+ void glGetQueryObjectivEXT (GLuint id, GLenum pname, GLint* params)
+ void glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint* params)
+ void glGetQueryivEXT (GLenum target, GLenum pname, GLint* params)
+ GLboolean glIsQueryEXT (GLuint id)
+ void glQueryCounterEXT (GLuint id, GLenum target)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers
new file mode 100644
index 0000000..eb0a405
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers
@@ -0,0 +1,39 @@
+GL_EXT_draw_buffers
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_buffers.txt
+GL_EXT_draw_buffers
+
+ GL_MAX_DRAW_BUFFERS_EXT 0x8824
+ GL_DRAW_BUFFER0_EXT 0x8825
+ GL_DRAW_BUFFER1_EXT 0x8826
+ GL_DRAW_BUFFER2_EXT 0x8827
+ GL_DRAW_BUFFER3_EXT 0x8828
+ GL_DRAW_BUFFER4_EXT 0x8829
+ GL_DRAW_BUFFER5_EXT 0x882A
+ GL_DRAW_BUFFER6_EXT 0x882B
+ GL_DRAW_BUFFER7_EXT 0x882C
+ GL_DRAW_BUFFER8_EXT 0x882D
+ GL_DRAW_BUFFER9_EXT 0x882E
+ GL_DRAW_BUFFER10_EXT 0x882F
+ GL_DRAW_BUFFER11_EXT 0x8830
+ GL_DRAW_BUFFER12_EXT 0x8831
+ GL_DRAW_BUFFER13_EXT 0x8832
+ GL_DRAW_BUFFER14_EXT 0x8833
+ GL_DRAW_BUFFER15_EXT 0x8834
+ GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
+ GL_COLOR_ATTACHMENT0_EXT 0x8CE0
+ GL_COLOR_ATTACHMENT1_EXT 0x8CE1
+ GL_COLOR_ATTACHMENT2_EXT 0x8CE2
+ GL_COLOR_ATTACHMENT3_EXT 0x8CE3
+ GL_COLOR_ATTACHMENT4_EXT 0x8CE4
+ GL_COLOR_ATTACHMENT5_EXT 0x8CE5
+ GL_COLOR_ATTACHMENT6_EXT 0x8CE6
+ GL_COLOR_ATTACHMENT7_EXT 0x8CE7
+ GL_COLOR_ATTACHMENT8_EXT 0x8CE8
+ GL_COLOR_ATTACHMENT9_EXT 0x8CE9
+ GL_COLOR_ATTACHMENT10_EXT 0x8CEA
+ GL_COLOR_ATTACHMENT11_EXT 0x8CEB
+ GL_COLOR_ATTACHMENT12_EXT 0x8CEC
+ GL_COLOR_ATTACHMENT13_EXT 0x8CED
+ GL_COLOR_ATTACHMENT14_EXT 0x8CEE
+ GL_COLOR_ATTACHMENT15_EXT 0x8CEF
+ void glDrawBuffersEXT (GLsizei n, const GLenum* bufs)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers2 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers2
new file mode 100644
index 0000000..02cb158
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers2
@@ -0,0 +1,10 @@
+GL_EXT_draw_buffers2
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_buffers2.txt
+GL_EXT_draw_buffers2
+
+ void glColorMaskIndexedEXT (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+ void glDisableIndexedEXT (GLenum target, GLuint index)
+ void glEnableIndexedEXT (GLenum target, GLuint index)
+ void glGetBooleanIndexedvEXT (GLenum value, GLuint index, GLboolean* data)
+ void glGetIntegerIndexedvEXT (GLenum value, GLuint index, GLint* data)
+ GLboolean glIsEnabledIndexedEXT (GLenum target, GLuint index)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers_indexed b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers_indexed
new file mode 100644
index 0000000..cfaaf0a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_buffers_indexed
@@ -0,0 +1,12 @@
+GL_EXT_draw_buffers_indexed
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_buffers_indexed.txt
+GL_EXT_draw_buffers_indexed
+
+ void glBlendEquationSeparateiEXT (GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+ void glBlendEquationiEXT (GLuint buf, GLenum mode)
+ void glBlendFuncSeparateiEXT (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+ void glBlendFunciEXT (GLuint buf, GLenum src, GLenum dst)
+ void glColorMaskiEXT (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+ void glDisableiEXT (GLenum target, GLuint index)
+ void glEnableiEXT (GLenum target, GLuint index)
+ GLboolean glIsEnablediEXT (GLenum target, GLuint index)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_elements_base_vertex b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_elements_base_vertex
new file mode 100644
index 0000000..2124d9d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_elements_base_vertex
@@ -0,0 +1,8 @@
+GL_EXT_draw_elements_base_vertex
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_elements_base_vertex.txt
+GL_EXT_draw_elements_base_vertex
+
+ void glDrawElementsBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)
+ void glDrawElementsInstancedBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)
+ void glDrawRangeElementsBaseVertexEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)
+ void glMultiDrawElementsBaseVertexEXT (GLenum mode, const GLsizei* count, GLenum type, const void *const *indices, GLsizei drawcount, const GLint *basevertex)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_instanced b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_instanced
new file mode 100644
index 0000000..ca7f17e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_instanced
@@ -0,0 +1,6 @@
+GL_EXT_draw_instanced
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_draw_instanced.txt
+GL_EXT_draw_instanced
+
+ void glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount)
+ void glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_range_elements b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_range_elements
new file mode 100644
index 0000000..f5346de
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_range_elements
@@ -0,0 +1,7 @@
+GL_EXT_draw_range_elements
+http://oss.sgi.com/projects/ogl-sample/registry/EXT/draw_range_elements.txt
+GL_EXT_draw_range_elements
+
+ GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
+ GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
+ void glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_transform_feedback b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_transform_feedback
new file mode 100644
index 0000000..1bf814a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_draw_transform_feedback
@@ -0,0 +1,6 @@
+GL_EXT_draw_transform_feedback
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_transform_feedback.txt
+GL_EXT_draw_transform_feedback
+
+ void glDrawTransformFeedbackEXT (GLenum mode, GLuint id)
+ void glDrawTransformFeedbackInstancedEXT (GLenum mode, GLuint id, GLsizei instancecount)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_external_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_external_buffer
new file mode 100644
index 0000000..25a3ca6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_external_buffer
@@ -0,0 +1,7 @@
+GL_EXT_external_buffer
+http://www.opengl.org/registry/specs/EXT/external_buffer.txt
+GL_EXT_external_buffer
+
+ void glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)
+ void glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)
+ typedef void* GLeglClientBufferEXT \ No newline at end of file
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_float_blend b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_float_blend
new file mode 100644
index 0000000..efed1a9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_float_blend
@@ -0,0 +1,4 @@
+GL_EXT_float_blend
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_float_blend.txt
+GL_EXT_float_blend
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_fog_coord b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_fog_coord
new file mode 100644
index 0000000..148866a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_fog_coord
@@ -0,0 +1,17 @@
+GL_EXT_fog_coord
+http://oss.sgi.com/projects/ogl-sample/registry/EXT/fog_coord.txt
+GL_EXT_fog_coord
+
+ GL_FOG_COORDINATE_SOURCE_EXT 0x8450
+ GL_FOG_COORDINATE_EXT 0x8451
+ GL_FRAGMENT_DEPTH_EXT 0x8452
+ GL_CURRENT_FOG_COORDINATE_EXT 0x8453
+ GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
+ GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
+ GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
+ GL_FOG_COORDINATE_ARRAY_EXT 0x8457
+ void glFogCoordfEXT (GLfloat coord)
+ void glFogCoordfvEXT (const GLfloat *coord)
+ void glFogCoorddEXT (GLdouble coord)
+ void glFogCoorddvEXT (const GLdouble *coord)
+ void glFogCoordPointerEXT (GLenum type, GLsizei stride, const void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_frag_depth b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_frag_depth
new file mode 100644
index 0000000..cb5f316
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_frag_depth
@@ -0,0 +1,4 @@
+GL_EXT_frag_depth
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_frag_depth.txt
+GL_EXT_frag_depth
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_fragment_lighting b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_fragment_lighting
new file mode 100644
index 0000000..af9491a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_fragment_lighting
@@ -0,0 +1,36 @@
+GL_EXT_fragment_lighting
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_fragment_lighting.txt
+GL_EXT_fragment_lighting
+
+ GL_FRAGMENT_LIGHTING_EXT 0x8400
+ GL_FRAGMENT_COLOR_MATERIAL_EXT 0x8401
+ GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT 0x8402
+ GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT 0x8403
+ GL_MAX_FRAGMENT_LIGHTS_EXT 0x8404
+ GL_MAX_ACTIVE_LIGHTS_EXT 0x8405
+ GL_CURRENT_RASTER_NORMAL_EXT 0x8406
+ GL_LIGHT_ENV_MODE_EXT 0x8407
+ GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT 0x8408
+ GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT 0x8409
+ GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT 0x840A
+ GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840B
+ GL_FRAGMENT_LIGHT0_EXT 0x840C
+ GL_FRAGMENT_LIGHT7_EXT 0x8413
+ void glFragmentColorMaterialEXT (GLenum face, GLenum mode)
+ void glFragmentLightModelfEXT (GLenum pname, GLfloat param)
+ void glFragmentLightModelfvEXT (GLenum pname, GLfloat* params)
+ void glFragmentLightModeliEXT (GLenum pname, GLint param)
+ void glFragmentLightModelivEXT (GLenum pname, GLint* params)
+ void glFragmentLightfEXT (GLenum light, GLenum pname, GLfloat param)
+ void glFragmentLightfvEXT (GLenum light, GLenum pname, GLfloat* params)
+ void glFragmentLightiEXT (GLenum light, GLenum pname, GLint param)
+ void glFragmentLightivEXT (GLenum light, GLenum pname, GLint* params)
+ void glFragmentMaterialfEXT (GLenum face, GLenum pname, const GLfloat param)
+ void glFragmentMaterialfvEXT (GLenum face, GLenum pname, const GLfloat* params)
+ void glFragmentMaterialiEXT (GLenum face, GLenum pname, const GLint param)
+ void glFragmentMaterialivEXT (GLenum face, GLenum pname, const GLint* params)
+ void glGetFragmentLightfvEXT (GLenum light, GLenum pname, GLfloat* params)
+ void glGetFragmentLightivEXT (GLenum light, GLenum pname, GLint* params)
+ void glGetFragmentMaterialfvEXT (GLenum face, GLenum pname, const GLfloat* params)
+ void glGetFragmentMaterialivEXT (GLenum face, GLenum pname, const GLint* params)
+ void glLightEnviEXT (GLenum pname, GLint param)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_blit b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_blit
new file mode 100644
index 0000000..24ca853
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_blit
@@ -0,0 +1,9 @@
+GL_EXT_framebuffer_blit
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_framebuffer_blit.txt
+GL_EXT_framebuffer_blit
+
+ GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6
+ GL_READ_FRAMEBUFFER_EXT 0x8CA8
+ GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
+ GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
+ void glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_multisample
new file mode 100644
index 0000000..2463a1b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_multisample
@@ -0,0 +1,10 @@
+GL_EXT_framebuffer_multisample
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_framebuffer_multisample.txt
+GL_EXT_framebuffer_multisample
+
+ GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
+ GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
+ GL_MAX_SAMPLES_EXT 0x8D57
+ void glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
+ GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
+ GL_MAX_SAMPLES_EXT 0x8D57
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_multisample_blit_scaled b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_multisample_blit_scaled
new file mode 100644
index 0000000..947488f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_multisample_blit_scaled
@@ -0,0 +1,6 @@
+GL_EXT_framebuffer_multisample_blit_scaled
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_framebuffer_multisample_blit_scaled.txt
+GL_EXT_framebuffer_multisample_blit_scaled
+
+ GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA
+ GL_SCALED_RESOLVE_NICEST_EXT 0x90BB
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_object
new file mode 100644
index 0000000..7165eab
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_object
@@ -0,0 +1,72 @@
+GL_EXT_framebuffer_object
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_framebuffer_object.txt
+GL_EXT_framebuffer_object
+
+ GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
+ GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
+ GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
+ GL_RENDERBUFFER_BINDING_EXT 0x8CA7
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
+ GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
+ GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
+ GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
+ GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
+ GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
+ GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
+ GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
+ GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
+ GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
+ GL_COLOR_ATTACHMENT0_EXT 0x8CE0
+ GL_COLOR_ATTACHMENT1_EXT 0x8CE1
+ GL_COLOR_ATTACHMENT2_EXT 0x8CE2
+ GL_COLOR_ATTACHMENT3_EXT 0x8CE3
+ GL_COLOR_ATTACHMENT4_EXT 0x8CE4
+ GL_COLOR_ATTACHMENT5_EXT 0x8CE5
+ GL_COLOR_ATTACHMENT6_EXT 0x8CE6
+ GL_COLOR_ATTACHMENT7_EXT 0x8CE7
+ GL_COLOR_ATTACHMENT8_EXT 0x8CE8
+ GL_COLOR_ATTACHMENT9_EXT 0x8CE9
+ GL_COLOR_ATTACHMENT10_EXT 0x8CEA
+ GL_COLOR_ATTACHMENT11_EXT 0x8CEB
+ GL_COLOR_ATTACHMENT12_EXT 0x8CEC
+ GL_COLOR_ATTACHMENT13_EXT 0x8CED
+ GL_COLOR_ATTACHMENT14_EXT 0x8CEE
+ GL_COLOR_ATTACHMENT15_EXT 0x8CEF
+ GL_DEPTH_ATTACHMENT_EXT 0x8D00
+ GL_STENCIL_ATTACHMENT_EXT 0x8D20
+ GL_FRAMEBUFFER_EXT 0x8D40
+ GL_RENDERBUFFER_EXT 0x8D41
+ GL_RENDERBUFFER_WIDTH_EXT 0x8D42
+ GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
+ GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
+ GL_STENCIL_INDEX1_EXT 0x8D46
+ GL_STENCIL_INDEX4_EXT 0x8D47
+ GL_STENCIL_INDEX8_EXT 0x8D48
+ GL_STENCIL_INDEX16_EXT 0x8D49
+ GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
+ GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
+ GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
+ GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
+ GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
+ GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
+ void glBindFramebufferEXT (GLenum target, GLuint framebuffer)
+ void glBindRenderbufferEXT (GLenum target, GLuint renderbuffer)
+ GLenum glCheckFramebufferStatusEXT (GLenum target)
+ void glDeleteFramebuffersEXT (GLsizei n, const GLuint* framebuffers)
+ void glDeleteRenderbuffersEXT (GLsizei n, const GLuint* renderbuffers)
+ void glFramebufferRenderbufferEXT (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+ void glFramebufferTexture1DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+ void glFramebufferTexture2DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+ void glFramebufferTexture3DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+ void glGenFramebuffersEXT (GLsizei n, GLuint* framebuffers)
+ void glGenRenderbuffersEXT (GLsizei n, GLuint* renderbuffers)
+ void glGenerateMipmapEXT (GLenum target)
+ void glGetFramebufferAttachmentParameterivEXT (GLenum target, GLenum attachment, GLenum pname, GLint* params)
+ void glGetRenderbufferParameterivEXT (GLenum target, GLenum pname, GLint* params)
+ GLboolean glIsFramebufferEXT (GLuint framebuffer)
+ GLboolean glIsRenderbufferEXT (GLuint renderbuffer)
+ void glRenderbufferStorageEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_sRGB b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_sRGB
new file mode 100644
index 0000000..2f4c6ff
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_framebuffer_sRGB
@@ -0,0 +1,6 @@
+GL_EXT_framebuffer_sRGB
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt
+GL_EXT_framebuffer_sRGB
+
+ GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
+ GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_point_size b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_point_size
new file mode 100644
index 0000000..301e21e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_point_size
@@ -0,0 +1,37 @@
+GL_EXT_geometry_point_size
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_geometry_shader.txt
+GL_EXT_geometry_point_size
+
+ GL_GEOMETRY_SHADER_BIT_EXT 0x00000004
+ GL_LINES_ADJACENCY_EXT 0xA
+ GL_LINE_STRIP_ADJACENCY_EXT 0xB
+ GL_TRIANGLES_ADJACENCY_EXT 0xC
+ GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
+ GL_LAYER_PROVOKING_VERTEX_EXT 0x825E
+ GL_UNDEFINED_VERTEX_EXT 0x8260
+ GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F
+ GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916
+ GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917
+ GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918
+ GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C
+ GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32
+ GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
+ GL_PRIMITIVES_GENERATED_EXT 0x8C87
+ GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
+ GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
+ GL_GEOMETRY_SHADER_EXT 0x8DD9
+ GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
+ GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
+ GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
+ GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
+ GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
+ GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A
+ GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD
+ GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7
+ GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123
+ GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124
+ GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF
+ GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5
+ GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309
+ GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312
+ GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_shader
new file mode 100644
index 0000000..4838c01
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_shader
@@ -0,0 +1,37 @@
+GL_EXT_geometry_shader
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_geometry_shader.txt
+GL_EXT_geometry_shader
+
+ GL_GEOMETRY_SHADER_BIT_EXT 0x00000004
+ GL_LINES_ADJACENCY_EXT 0xA
+ GL_LINE_STRIP_ADJACENCY_EXT 0xB
+ GL_TRIANGLES_ADJACENCY_EXT 0xC
+ GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
+ GL_LAYER_PROVOKING_VERTEX_EXT 0x825E
+ GL_UNDEFINED_VERTEX_EXT 0x8260
+ GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F
+ GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916
+ GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917
+ GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918
+ GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C
+ GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32
+ GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
+ GL_PRIMITIVES_GENERATED_EXT 0x8C87
+ GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
+ GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
+ GL_GEOMETRY_SHADER_EXT 0x8DD9
+ GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
+ GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
+ GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
+ GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
+ GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
+ GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A
+ GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD
+ GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7
+ GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123
+ GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124
+ GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF
+ GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5
+ GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309
+ GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312
+ GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_shader4 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_shader4
new file mode 100644
index 0000000..a463c4c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_geometry_shader4
@@ -0,0 +1,27 @@
+GL_EXT_geometry_shader4
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_geometry_shader4.txt
+GL_EXT_geometry_shader4
+
+ GL_GEOMETRY_SHADER_EXT 0x8DD9
+ GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
+ GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
+ GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
+ GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
+ GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
+ GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
+ GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
+ GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
+ GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
+ GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
+ GL_LINES_ADJACENCY_EXT 0xA
+ GL_LINE_STRIP_ADJACENCY_EXT 0xB
+ GL_TRIANGLES_ADJACENCY_EXT 0xC
+ GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
+ GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
+ GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
+ GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
+ GL_PROGRAM_POINT_SIZE_EXT 0x8642
+ void glProgramParameteriEXT (GLuint program, GLenum pname, GLint value)
+ void glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level)
+ void glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_program_parameters b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_program_parameters
new file mode 100644
index 0000000..298bc36
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_program_parameters
@@ -0,0 +1,6 @@
+GL_EXT_gpu_program_parameters
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_program_parameters.txt
+GL_EXT_gpu_program_parameters
+
+ void glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat* params)
+ void glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_shader4 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_shader4
new file mode 100644
index 0000000..7e95dbc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_shader4
@@ -0,0 +1,64 @@
+GL_EXT_gpu_shader4
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_shader4.txt
+GL_EXT_gpu_shader4
+
+ GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
+ GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
+ GL_SAMPLER_BUFFER_EXT 0x8DC2
+ GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
+ GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
+ GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
+ GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
+ GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
+ GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
+ GL_INT_SAMPLER_1D_EXT 0x8DC9
+ GL_INT_SAMPLER_2D_EXT 0x8DCA
+ GL_INT_SAMPLER_3D_EXT 0x8DCB
+ GL_INT_SAMPLER_CUBE_EXT 0x8DCC
+ GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
+ GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
+ GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
+ GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
+ GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
+ GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
+ GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
+ GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
+ GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
+ GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
+ GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
+ GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
+ GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD
+ void glGetUniformuivEXT (GLuint program, GLint location, GLuint *params)
+ void glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name)
+ GLint glGetFragDataLocationEXT (GLuint program, const GLchar *name)
+ void glUniform1uiEXT (GLint location, GLuint v0)
+ void glUniform2uiEXT (GLint location, GLuint v0, GLuint v1)
+ void glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2)
+ void glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+ void glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value)
+ void glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value)
+ void glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value)
+ void glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value)
+ void glVertexAttribI1iEXT (GLuint index, GLint x)
+ void glVertexAttribI2iEXT (GLuint index, GLint x, GLint y)
+ void glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z)
+ void glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w)
+ void glVertexAttribI1uiEXT (GLuint index, GLuint x)
+ void glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y)
+ void glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z)
+ void glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+ void glVertexAttribI1ivEXT (GLuint index, const GLint *v)
+ void glVertexAttribI2ivEXT (GLuint index, const GLint *v)
+ void glVertexAttribI3ivEXT (GLuint index, const GLint *v)
+ void glVertexAttribI4ivEXT (GLuint index, const GLint *v)
+ void glVertexAttribI1uivEXT (GLuint index, const GLuint *v)
+ void glVertexAttribI2uivEXT (GLuint index, const GLuint *v)
+ void glVertexAttribI3uivEXT (GLuint index, const GLuint *v)
+ void glVertexAttribI4uivEXT (GLuint index, const GLuint *v)
+ void glVertexAttribI4bvEXT (GLuint index, const GLbyte *v)
+ void glVertexAttribI4svEXT (GLuint index, const GLshort *v)
+ void glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v)
+ void glVertexAttribI4usvEXT (GLuint index, const GLushort *v)
+ void glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
+ void glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params)
+ void glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_shader5 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_shader5
new file mode 100644
index 0000000..72fc0b4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_gpu_shader5
@@ -0,0 +1,4 @@
+GL_EXT_gpu_shader5
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_gpu_shader5.txt
+GL_EXT_gpu_shader5
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_histogram b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_histogram
new file mode 100644
index 0000000..565d9ae
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_histogram
@@ -0,0 +1,27 @@
+GL_EXT_histogram
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_histogram.txt
+GL_EXT_histogram
+
+ GL_HISTOGRAM_EXT 0x8024
+ GL_PROXY_HISTOGRAM_EXT 0x8025
+ GL_HISTOGRAM_WIDTH_EXT 0x8026
+ GL_HISTOGRAM_FORMAT_EXT 0x8027
+ GL_HISTOGRAM_RED_SIZE_EXT 0x8028
+ GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029
+ GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A
+ GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B
+ GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C
+ GL_HISTOGRAM_SINK_EXT 0x802D
+ GL_MINMAX_EXT 0x802E
+ GL_MINMAX_FORMAT_EXT 0x802F
+ GL_MINMAX_SINK_EXT 0x8030
+ void glGetHistogramEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values)
+ void glGetHistogramParameterfvEXT (GLenum target, GLenum pname, GLfloat* params)
+ void glGetHistogramParameterivEXT (GLenum target, GLenum pname, GLint* params)
+ void glGetMinmaxEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values)
+ void glGetMinmaxParameterfvEXT (GLenum target, GLenum pname, GLfloat* params)
+ void glGetMinmaxParameterivEXT (GLenum target, GLenum pname, GLint* params)
+ void glHistogramEXT (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
+ void glMinmaxEXT (GLenum target, GLenum internalformat, GLboolean sink)
+ void glResetHistogramEXT (GLenum target)
+ void glResetMinmaxEXT (GLenum target)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_array_formats b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_array_formats
new file mode 100644
index 0000000..6b772e9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_array_formats
@@ -0,0 +1,4 @@
+GL_EXT_index_array_formats
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_index_array_formats.txt
+GL_EXT_index_array_formats
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_func b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_func
new file mode 100644
index 0000000..7a2b8dd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_func
@@ -0,0 +1,5 @@
+GL_EXT_index_func
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_index_func.txt
+GL_EXT_index_func
+
+ void glIndexFuncEXT (GLenum func, GLfloat ref)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_material b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_material
new file mode 100644
index 0000000..e5a1e07
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_material
@@ -0,0 +1,5 @@
+GL_EXT_index_material
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_index_material.txt
+GL_EXT_index_material
+
+ void glIndexMaterialEXT (GLenum face, GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_texture
new file mode 100644
index 0000000..4157657
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_index_texture
@@ -0,0 +1,4 @@
+GL_EXT_index_texture
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_index_texture.txt
+GL_EXT_index_texture
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_instanced_arrays b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_instanced_arrays
new file mode 100644
index 0000000..da3fb1d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_instanced_arrays
@@ -0,0 +1,6 @@
+GL_EXT_instanced_arrays
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_instanced_arrays.txt
+GL_EXT_instanced_arrays
+
+ GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE
+ void glVertexAttribDivisorEXT (GLuint index, GLuint divisor)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_light_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_light_texture
new file mode 100644
index 0000000..d38f050
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_light_texture
@@ -0,0 +1,16 @@
+GL_EXT_light_texture
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_light_texture.txt
+GL_EXT_light_texture
+
+ GL_FRAGMENT_MATERIAL_EXT 0x8349
+ GL_FRAGMENT_NORMAL_EXT 0x834A
+ GL_FRAGMENT_COLOR_EXT 0x834C
+ GL_ATTENUATION_EXT 0x834D
+ GL_SHADOW_ATTENUATION_EXT 0x834E
+ GL_TEXTURE_APPLICATION_MODE_EXT 0x834F
+ GL_TEXTURE_LIGHT_EXT 0x8350
+ GL_TEXTURE_MATERIAL_FACE_EXT 0x8351
+ GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352
+ void glApplyTextureEXT (GLenum mode)
+ void glTextureLightEXT (GLenum pname)
+ void glTextureMaterialEXT (GLenum face, GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_map_buffer_range b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_map_buffer_range
new file mode 100644
index 0000000..7f05418
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_map_buffer_range
@@ -0,0 +1,12 @@
+GL_EXT_map_buffer_range
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_map_buffer_range.txt
+GL_EXT_map_buffer_range
+
+ GL_MAP_READ_BIT_EXT 0x0001
+ GL_MAP_WRITE_BIT_EXT 0x0002
+ GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004
+ GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008
+ GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010
+ GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020
+ void glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length)
+ void * glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object
new file mode 100644
index 0000000..5520422
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object
@@ -0,0 +1,34 @@
+GL_EXT_memory_object
+http://www.opengl.org/registry/specs/EXT/external_objects.txt
+GL_EXT_memory_object
+
+ GL_UUID_SIZE_EXT 16
+ GL_TEXTURE_TILING_EXT 0x9580
+ GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581
+ GL_NUM_TILING_TYPES_EXT 0x9582
+ GL_TILING_TYPES_EXT 0x9583
+ GL_OPTIMAL_TILING_EXT 0x9584
+ GL_LINEAR_TILING_EXT 0x9585
+ GL_NUM_DEVICE_UUIDS_EXT 0x9596
+ GL_DEVICE_UUID_EXT 0x9597
+ GL_DRIVER_UUID_EXT 0x9598
+ GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B
+ void glBufferStorageMemEXT (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset)
+ void glCreateMemoryObjectsEXT (GLsizei n, GLuint* memoryObjects)
+ void glDeleteMemoryObjectsEXT (GLsizei n, const GLuint* memoryObjects)
+ void glGetMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, GLint* params)
+ void glGetUnsignedBytei_vEXT (GLenum target, GLuint index, GLubyte* data)
+ void glGetUnsignedBytevEXT (GLenum pname, GLubyte* data)
+ GLboolean glIsMemoryObjectEXT (GLuint memoryObject)
+ void glMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, const GLint* params)
+ void glNamedBufferStorageMemEXT (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset)
+ void glTexStorageMem1DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)
+ void glTexStorageMem2DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)
+ void glTexStorageMem2DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
+ void glTexStorageMem3DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)
+ void glTexStorageMem3DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
+ void glTextureStorageMem1DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)
+ void glTextureStorageMem2DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)
+ void glTextureStorageMem2DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
+ void glTextureStorageMem3DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)
+ void glTextureStorageMem3DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object_fd b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object_fd
new file mode 100644
index 0000000..38536c0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object_fd
@@ -0,0 +1,6 @@
+GL_EXT_memory_object_fd
+http://www.opengl.org/registry/specs/EXT/external_objects_fd.txt
+GL_EXT_memory_object_fd
+
+ GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586
+ void glImportMemoryFdEXT (GLuint memory, GLuint64 size, GLenum handleType, GLint fd)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object_win32 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object_win32
new file mode 100644
index 0000000..6d36a69
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_memory_object_win32
@@ -0,0 +1,17 @@
+GL_EXT_memory_object_win32
+http://www.opengl.org/registry/specs/EXT/external_objects_win32.txt
+GL_EXT_memory_object_win32
+
+ GL_LUID_SIZE_EXT 8
+ GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587
+ GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588
+ GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589
+ GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A
+ GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B
+ GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C
+ GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594
+ GL_D3D12_FENCE_VALUE_EXT 0x9595
+ GL_DEVICE_LUID_EXT 0x9599
+ GL_DEVICE_NODE_MASK_EXT 0x959A
+ void glImportMemoryWin32HandleEXT (GLuint memory, GLuint64 size, GLenum handleType, void *handle)
+ void glImportMemoryWin32NameEXT (GLuint memory, GLuint64 size, GLenum handleType, const void *name)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_misc_attribute b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_misc_attribute
new file mode 100644
index 0000000..5d3f08f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_misc_attribute
@@ -0,0 +1,4 @@
+GL_EXT_misc_attribute
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_misc_attribute.txt
+GL_EXT_misc_attribute
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multi_draw_arrays b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multi_draw_arrays
new file mode 100644
index 0000000..d353608
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multi_draw_arrays
@@ -0,0 +1,6 @@
+GL_EXT_multi_draw_arrays
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multi_draw_arrays.txt
+GL_EXT_multi_draw_arrays
+
+ void glMultiDrawArraysEXT (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount)
+ void glMultiDrawElementsEXT (GLenum mode, GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multi_draw_indirect b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multi_draw_indirect
new file mode 100644
index 0000000..e2f5b4e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multi_draw_indirect
@@ -0,0 +1,6 @@
+GL_EXT_multi_draw_indirect
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multi_draw_indirect.txt
+GL_EXT_multi_draw_indirect
+
+ void glMultiDrawArraysIndirectEXT (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride)
+ void glMultiDrawElementsIndirectEXT (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiple_textures b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiple_textures
new file mode 100644
index 0000000..17ca419
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiple_textures
@@ -0,0 +1,4 @@
+GL_EXT_multiple_textures
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multiple_textures.txt
+GL_EXT_multiple_textures
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisample
new file mode 100644
index 0000000..96789ec
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisample
@@ -0,0 +1,23 @@
+GL_EXT_multisample
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_multisample.txt
+GL_EXT_multisample
+
+ GL_MULTISAMPLE_EXT 0x809D
+ GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E
+ GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
+ GL_SAMPLE_MASK_EXT 0x80A0
+ GL_1PASS_EXT 0x80A1
+ GL_2PASS_0_EXT 0x80A2
+ GL_2PASS_1_EXT 0x80A3
+ GL_4PASS_0_EXT 0x80A4
+ GL_4PASS_1_EXT 0x80A5
+ GL_4PASS_2_EXT 0x80A6
+ GL_4PASS_3_EXT 0x80A7
+ GL_SAMPLE_BUFFERS_EXT 0x80A8
+ GL_SAMPLES_EXT 0x80A9
+ GL_SAMPLE_MASK_VALUE_EXT 0x80AA
+ GL_SAMPLE_MASK_INVERT_EXT 0x80AB
+ GL_SAMPLE_PATTERN_EXT 0x80AC
+ GL_MULTISAMPLE_BIT_EXT 0x20000000
+ void glSampleMaskEXT (GLclampf value, GLboolean invert)
+ void glSamplePatternEXT (GLenum pattern)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisample_compatibility b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisample_compatibility
new file mode 100644
index 0000000..8c30eca
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisample_compatibility
@@ -0,0 +1,6 @@
+GL_EXT_multisample_compatibility
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multisample_compatibility.txt
+GL_EXT_multisample_compatibility
+
+ GL_MULTISAMPLE_EXT 0x809D
+ GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisampled_render_to_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisampled_render_to_texture
new file mode 100644
index 0000000..2479ee1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisampled_render_to_texture
@@ -0,0 +1,9 @@
+GL_EXT_multisampled_render_to_texture
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multisampled_render_to_texture.txt
+GL_EXT_multisampled_render_to_texture
+
+ GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
+ GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
+ GL_MAX_SAMPLES_EXT 0x8D57
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C
+ void glFramebufferTexture2DMultisampleEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisampled_render_to_texture2 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisampled_render_to_texture2
new file mode 100644
index 0000000..9970e97
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multisampled_render_to_texture2
@@ -0,0 +1,4 @@
+GL_EXT_multisampled_render_to_texture2
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multisampled_render_to_texture2.txt
+GL_EXT_multisampled_render_to_texture2
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_draw_buffers b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_draw_buffers
new file mode 100644
index 0000000..8c5fb29
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_draw_buffers
@@ -0,0 +1,12 @@
+GL_EXT_multiview_draw_buffers
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multiview_draw_buffers.txt
+GL_EXT_multiview_draw_buffers
+
+ GL_DRAW_BUFFER_EXT 0x0C01
+ GL_READ_BUFFER_EXT 0x0C02
+ GL_COLOR_ATTACHMENT_EXT 0x90F0
+ GL_MULTIVIEW_EXT 0x90F1
+ GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2
+ void glDrawBuffersIndexedEXT (GLint n, const GLenum* location, const GLint *indices)
+ void glGetIntegeri_vEXT (GLenum target, GLuint index, GLint* data)
+ void glReadBufferIndexedEXT (GLenum src, GLint index)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_tessellation_geometry_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_tessellation_geometry_shader
new file mode 100644
index 0000000..48eb94c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_tessellation_geometry_shader
@@ -0,0 +1,4 @@
+GL_EXT_multiview_tessellation_geometry_shader
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multiview_tessellation_geometry_shader.txt
+GL_EXT_multiview_tessellation_geometry_shader
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_texture_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_texture_multisample
new file mode 100644
index 0000000..4fc847f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_texture_multisample
@@ -0,0 +1,4 @@
+GL_EXT_multiview_texture_multisample
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multiview_texture_multisample.txt
+GL_EXT_multiview_texture_multisample
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_timer_query b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_timer_query
new file mode 100644
index 0000000..6da6790
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_multiview_timer_query
@@ -0,0 +1,4 @@
+GL_EXT_multiview_timer_query
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multiview_timer_query.txt
+GL_EXT_multiview_timer_query
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_occlusion_query_boolean b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_occlusion_query_boolean
new file mode 100644
index 0000000..e1742e7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_occlusion_query_boolean
@@ -0,0 +1,9 @@
+GL_EXT_occlusion_query_boolean
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_occlusion_query_boolean.txt
+GL_EXT_occlusion_query_boolean
+
+ GL_CURRENT_QUERY_EXT 0x8865
+ GL_QUERY_RESULT_EXT 0x8866
+ GL_QUERY_RESULT_AVAILABLE_EXT 0x8867
+ GL_ANY_SAMPLES_PASSED_EXT 0x8C2F
+ GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_depth_stencil b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_depth_stencil
new file mode 100644
index 0000000..1b6e0d5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_depth_stencil
@@ -0,0 +1,8 @@
+GL_EXT_packed_depth_stencil
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_packed_depth_stencil.txt
+GL_EXT_packed_depth_stencil
+
+ GL_DEPTH_STENCIL_EXT 0x84F9
+ GL_UNSIGNED_INT_24_8_EXT 0x84FA
+ GL_DEPTH24_STENCIL8_EXT 0x88F0
+ GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_float b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_float
new file mode 100644
index 0000000..15ac680
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_float
@@ -0,0 +1,7 @@
+GL_EXT_packed_float
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt
+GL_EXT_packed_float
+
+ GL_R11F_G11F_B10F_EXT 0x8C3A
+ GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
+ GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_pixels b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_pixels
new file mode 100644
index 0000000..fd68a34
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_packed_pixels
@@ -0,0 +1,9 @@
+GL_EXT_packed_pixels
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_packed_pixels.txt
+GL_EXT_packed_pixels
+
+ GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032
+ GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
+ GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
+ GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035
+ GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_paletted_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_paletted_texture
new file mode 100644
index 0000000..25a67e8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_paletted_texture
@@ -0,0 +1,29 @@
+GL_EXT_paletted_texture
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_paletted_texture.txt
+GL_EXT_paletted_texture
+
+ GL_TEXTURE_1D 0x0DE0
+ GL_TEXTURE_2D 0x0DE1
+ GL_PROXY_TEXTURE_1D 0x8063
+ GL_PROXY_TEXTURE_2D 0x8064
+ GL_COLOR_TABLE_FORMAT_EXT 0x80D8
+ GL_COLOR_TABLE_WIDTH_EXT 0x80D9
+ GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA
+ GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB
+ GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC
+ GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD
+ GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE
+ GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF
+ GL_COLOR_INDEX1_EXT 0x80E2
+ GL_COLOR_INDEX2_EXT 0x80E3
+ GL_COLOR_INDEX4_EXT 0x80E4
+ GL_COLOR_INDEX8_EXT 0x80E5
+ GL_COLOR_INDEX12_EXT 0x80E6
+ GL_COLOR_INDEX16_EXT 0x80E7
+ GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
+ GL_TEXTURE_CUBE_MAP_ARB 0x8513
+ GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
+ void glColorTableEXT (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *data)
+ void glGetColorTableEXT (GLenum target, GLenum format, GLenum type, void *data)
+ void glGetColorTableParameterfvEXT (GLenum target, GLenum pname, GLfloat* params)
+ void glGetColorTableParameterivEXT (GLenum target, GLenum pname, GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_buffer_object
new file mode 100644
index 0000000..f685e4c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_buffer_object
@@ -0,0 +1,8 @@
+GL_EXT_pixel_buffer_object
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_pixel_buffer_object.txt
+GL_EXT_pixel_buffer_object
+
+ GL_PIXEL_PACK_BUFFER_EXT 0x88EB
+ GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC
+ GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED
+ GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_transform b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_transform
new file mode 100644
index 0000000..e964818
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_transform
@@ -0,0 +1,19 @@
+GL_EXT_pixel_transform
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_pixel_transform.txt
+GL_EXT_pixel_transform
+
+ GL_PIXEL_TRANSFORM_2D_EXT 0x8330
+ GL_PIXEL_MAG_FILTER_EXT 0x8331
+ GL_PIXEL_MIN_FILTER_EXT 0x8332
+ GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333
+ GL_CUBIC_EXT 0x8334
+ GL_AVERAGE_EXT 0x8335
+ GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336
+ GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337
+ GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338
+ void glGetPixelTransformParameterfvEXT (GLenum target, GLenum pname, const GLfloat* params)
+ void glGetPixelTransformParameterivEXT (GLenum target, GLenum pname, const GLint* params)
+ void glPixelTransformParameterfEXT (GLenum target, GLenum pname, const GLfloat param)
+ void glPixelTransformParameterfvEXT (GLenum target, GLenum pname, const GLfloat* params)
+ void glPixelTransformParameteriEXT (GLenum target, GLenum pname, const GLint param)
+ void glPixelTransformParameterivEXT (GLenum target, GLenum pname, const GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_transform_color_table b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_transform_color_table
new file mode 100644
index 0000000..4db533e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pixel_transform_color_table
@@ -0,0 +1,4 @@
+GL_EXT_pixel_transform_color_table
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_pixel_transform_color_table.txt
+GL_EXT_pixel_transform_color_table
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_point_parameters b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_point_parameters
new file mode 100644
index 0000000..25beb16
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_point_parameters
@@ -0,0 +1,10 @@
+GL_EXT_point_parameters
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_point_parameters.txt
+GL_EXT_point_parameters
+
+ GL_POINT_SIZE_MIN_EXT 0x8126
+ GL_POINT_SIZE_MAX_EXT 0x8127
+ GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128
+ GL_DISTANCE_ATTENUATION_EXT 0x8129
+ void glPointParameterfEXT (GLenum pname, GLfloat param)
+ void glPointParameterfvEXT (GLenum pname, const GLfloat* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_polygon_offset b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_polygon_offset
new file mode 100644
index 0000000..67f9e89
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_polygon_offset
@@ -0,0 +1,8 @@
+GL_EXT_polygon_offset
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_polygon_offset.txt
+GL_EXT_polygon_offset
+
+ GL_POLYGON_OFFSET_EXT 0x8037
+ GL_POLYGON_OFFSET_FACTOR_EXT 0x8038
+ GL_POLYGON_OFFSET_BIAS_EXT 0x8039
+ void glPolygonOffsetEXT (GLfloat factor, GLfloat bias)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_polygon_offset_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_polygon_offset_clamp
new file mode 100644
index 0000000..93f0577
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_polygon_offset_clamp
@@ -0,0 +1,6 @@
+GL_EXT_polygon_offset_clamp
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_polygon_offset_clamp.txt
+GL_EXT_polygon_offset_clamp
+
+ GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B
+ void glPolygonOffsetClampEXT (GLfloat factor, GLfloat units, GLfloat clamp)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_post_depth_coverage b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_post_depth_coverage
new file mode 100644
index 0000000..4b2c10f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_post_depth_coverage
@@ -0,0 +1,4 @@
+GL_EXT_post_depth_coverage
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_post_depth_coverage.txt
+GL_EXT_post_depth_coverage
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_primitive_bounding_box b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_primitive_bounding_box
new file mode 100644
index 0000000..0f792d8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_primitive_bounding_box
@@ -0,0 +1,6 @@
+GL_EXT_primitive_bounding_box
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_primitive_bounding_box.txt
+GL_EXT_primitive_bounding_box
+
+ GL_PRIMITIVE_BOUNDING_BOX_EXT 0x92BE
+ void glPrimitiveBoundingBoxEXT (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_protected_textures b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_protected_textures
new file mode 100644
index 0000000..39b8119
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_protected_textures
@@ -0,0 +1,6 @@
+GL_EXT_protected_textures
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_protected_textures.txt
+GL_EXT_protected_textures
+
+ GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT 0x00000010
+ GL_TEXTURE_PROTECTED_EXT 0x8BFA
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_provoking_vertex b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_provoking_vertex
new file mode 100644
index 0000000..cd8232d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_provoking_vertex
@@ -0,0 +1,9 @@
+GL_EXT_provoking_vertex
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_provoking_vertex.txt
+GL_EXT_provoking_vertex
+
+ GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C
+ GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
+ GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
+ GL_PROVOKING_VERTEX_EXT 0x8E4F
+ void glProvokingVertexEXT (GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pvrtc_sRGB b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pvrtc_sRGB
new file mode 100644
index 0000000..c3d75d1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_pvrtc_sRGB
@@ -0,0 +1,8 @@
+GL_EXT_pvrtc_sRGB
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_pvrtc_sRGB.txt
+GL_EXT_pvrtc_sRGB
+
+ GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54
+ GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55
+ GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56
+ GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_raster_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_raster_multisample
new file mode 100644
index 0000000..d47e504
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_raster_multisample
@@ -0,0 +1,22 @@
+GL_EXT_raster_multisample
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_framebuffer_mixed_samples.txt
+GL_EXT_raster_multisample
+
+ GL_COLOR_SAMPLES_NV 0x8E20
+ GL_RASTER_MULTISAMPLE_EXT 0x9327
+ GL_RASTER_SAMPLES_EXT 0x9328
+ GL_MAX_RASTER_SAMPLES_EXT 0x9329
+ GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A
+ GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B
+ GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C
+ GL_DEPTH_SAMPLES_NV 0x932D
+ GL_STENCIL_SAMPLES_NV 0x932E
+ GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F
+ GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330
+ GL_COVERAGE_MODULATION_TABLE_NV 0x9331
+ GL_COVERAGE_MODULATION_NV 0x9332
+ GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333
+ void glCoverageModulationNV (GLenum components)
+ void glCoverageModulationTableNV (GLsizei n, const GLfloat* v)
+ void glGetCoverageModulationTableNV (GLsizei bufsize, GLfloat* v)
+ void glRasterSamplesEXT (GLuint samples, GLboolean fixedsamplelocations)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_read_format_bgra b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_read_format_bgra
new file mode 100644
index 0000000..e5d19d7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_read_format_bgra
@@ -0,0 +1,7 @@
+GL_EXT_read_format_bgra
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_read_format_bgra.txt
+GL_EXT_read_format_bgra
+
+ GL_BGRA_EXT 0x80E1
+ GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365
+ GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_render_snorm b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_render_snorm
new file mode 100644
index 0000000..1bd6a0d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_render_snorm
@@ -0,0 +1,12 @@
+GL_EXT_render_snorm
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_render_snorm.txt
+GL_EXT_render_snorm
+
+ GL_BYTE 0x1400
+ GL_SHORT 0x1402
+ GL_R8_SNORM 0x8F94
+ GL_RG8_SNORM 0x8F95
+ GL_RGBA8_SNORM 0x8F97
+ GL_R16_SNORM_EXT 0x8F98
+ GL_RG16_SNORM_EXT 0x8F99
+ GL_RGBA16_SNORM_EXT 0x8F9B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_rescale_normal b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_rescale_normal
new file mode 100644
index 0000000..a0b0e8a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_rescale_normal
@@ -0,0 +1,5 @@
+GL_EXT_rescale_normal
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_rescale_normal.txt
+GL_EXT_rescale_normal
+
+ GL_RESCALE_NORMAL_EXT 0x803A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_robustness b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_robustness
new file mode 100644
index 0000000..938bf83
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_robustness
@@ -0,0 +1,15 @@
+GL_EXT_robustness
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_robustness.txt
+GL_EXT_robustness
+
+ GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252
+ GL_GUILTY_CONTEXT_RESET_EXT 0x8253
+ GL_INNOCENT_CONTEXT_RESET_EXT 0x8254
+ GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255
+ GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256
+ GL_NO_RESET_NOTIFICATION_EXT 0x8261
+ GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3
+ GLenum glGetGraphicsResetStatusEXT (void)
+ void glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, GLfloat* params)
+ void glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint* params)
+ void glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sRGB b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sRGB
new file mode 100644
index 0000000..f6b3982
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sRGB
@@ -0,0 +1,8 @@
+GL_EXT_sRGB
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_sRGB.txt
+GL_EXT_sRGB
+
+ GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
+ GL_SRGB_EXT 0x8C40
+ GL_SRGB_ALPHA_EXT 0x8C42
+ GL_SRGB8_ALPHA8_EXT 0x8C43
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sRGB_write_control b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sRGB_write_control
new file mode 100644
index 0000000..5e64b8d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sRGB_write_control
@@ -0,0 +1,5 @@
+GL_EXT_sRGB_write_control
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_sRGB_write_control.txt
+GL_EXT_sRGB_write_control
+
+ GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_scene_marker b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_scene_marker
new file mode 100644
index 0000000..504efcf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_scene_marker
@@ -0,0 +1,6 @@
+GL_EXT_scene_marker
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_scene_marker.txt
+GL_EXT_scene_marker
+
+ void glBeginSceneEXT (void)
+ void glEndSceneEXT (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_secondary_color b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_secondary_color
new file mode 100644
index 0000000..505761d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_secondary_color
@@ -0,0 +1,28 @@
+GL_EXT_secondary_color
+http://oss.sgi.com/projects/ogl-sample/registry/EXT/secondary_color.txt
+GL_EXT_secondary_color
+
+ GL_COLOR_SUM_EXT 0x8458
+ GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
+ GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
+ GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
+ GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
+ GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
+ GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
+ void glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue)
+ void glSecondaryColor3bvEXT (const GLbyte *v)
+ void glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue)
+ void glSecondaryColor3dvEXT (const GLdouble *v)
+ void glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue)
+ void glSecondaryColor3fvEXT (const GLfloat *v)
+ void glSecondaryColor3iEXT (GLint red, GLint green, GLint blue)
+ void glSecondaryColor3ivEXT (const GLint *v)
+ void glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue)
+ void glSecondaryColor3svEXT (const GLshort *v)
+ void glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue)
+ void glSecondaryColor3ubvEXT (const GLubyte *v)
+ void glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue)
+ void glSecondaryColor3uivEXT (const GLuint *v)
+ void glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue)
+ void glSecondaryColor3usvEXT (const GLushort *v)
+ void glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore
new file mode 100644
index 0000000..faf18b3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore
@@ -0,0 +1,21 @@
+GL_EXT_semaphore
+http://www.opengl.org/registry/specs/EXT/external_objects.txt
+GL_EXT_semaphore
+
+ GL_LAYOUT_GENERAL_EXT 0x958D
+ GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E
+ GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F
+ GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590
+ GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591
+ GL_LAYOUT_TRANSFER_SRC_EXT 0x9592
+ GL_LAYOUT_TRANSFER_DST_EXT 0x9593
+ GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530
+ GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531
+
+ void glDeleteSemaphoresEXT (GLsizei n, const GLuint* semaphores)
+ void glGenSemaphoresEXT (GLsizei n, GLuint* semaphores)
+ void glGetSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, GLuint64* params)
+ GLboolean glIsSemaphoreEXT (GLuint semaphore)
+ void glSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, const GLuint64* params)
+ void glSignalSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts)
+ void glWaitSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore_fd b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore_fd
new file mode 100644
index 0000000..e3b2985
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore_fd
@@ -0,0 +1,5 @@
+GL_EXT_semaphore_fd
+http://www.opengl.org/registry/specs/EXT/external_objects_fd.txt
+GL_EXT_semaphore_fd
+
+ void glImportSemaphoreFdEXT (GLuint semaphore, GLenum handleType, GLint fd)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore_win32 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore_win32
new file mode 100644
index 0000000..4854f58
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_semaphore_win32
@@ -0,0 +1,6 @@
+GL_EXT_semaphore_win32
+http://www.opengl.org/registry/specs/EXT/external_objects_win32.txt
+GL_EXT_semaphore_win32
+
+ void glImportSemaphoreWin32HandleEXT (GLuint semaphore, GLenum handleType, void *handle)
+ void glImportSemaphoreWin32NameEXT (GLuint semaphore, GLenum handleType, const void *name)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_depth_stencil b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_depth_stencil
new file mode 100644
index 0000000..08f548e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_depth_stencil
@@ -0,0 +1,4 @@
+GL_EXT_separate_depth_stencil
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_separate_depth_stencil.txt
+GL_EXT_separate_depth_stencil
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_shader_objects b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_shader_objects
new file mode 100644
index 0000000..0886a75
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_shader_objects
@@ -0,0 +1,8 @@
+GL_EXT_separate_shader_objects
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_separate_shader_objects.gl.txt
+GL_EXT_separate_shader_objects
+
+ GL_ACTIVE_PROGRAM_EXT 0x8B8D
+ void glActiveProgramEXT (GLuint program)
+ GLuint glCreateShaderProgramEXT (GLenum type, const GLchar* string)
+ void glUseShaderProgramEXT (GLenum type, GLuint program)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_specular_color b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_specular_color
new file mode 100644
index 0000000..6ee9da7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_separate_specular_color
@@ -0,0 +1,7 @@
+GL_EXT_separate_specular_color
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_separate_specular_color.txt
+GL_EXT_separate_specular_color
+
+ GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
+ GL_SINGLE_COLOR_EXT 0x81F9
+ GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_framebuffer_fetch b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_framebuffer_fetch
new file mode 100644
index 0000000..51ef160
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_framebuffer_fetch
@@ -0,0 +1,6 @@
+GL_EXT_shader_framebuffer_fetch
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_framebuffer_fetch.txt
+GL_EXT_shader_framebuffer_fetch
+
+ GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
+ void glFramebufferFetchBarrierEXT (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_framebuffer_fetch_non_coherent b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_framebuffer_fetch_non_coherent
new file mode 100644
index 0000000..62af709
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_framebuffer_fetch_non_coherent
@@ -0,0 +1,5 @@
+GL_EXT_shader_framebuffer_fetch_non_coherent
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_framebuffer_fetch.txt
+GL_EXT_shader_framebuffer_fetch_non_coherent
+
+ GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_group_vote b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_group_vote
new file mode 100644
index 0000000..a1fd025
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_group_vote
@@ -0,0 +1,4 @@
+GL_EXT_shader_group_vote
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_group_vote.txt
+GL_EXT_shader_group_vote
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_image_load_formatted b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_image_load_formatted
new file mode 100644
index 0000000..0cae7aa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_image_load_formatted
@@ -0,0 +1,4 @@
+GL_EXT_shader_image_load_formatted
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_image_load_formatted.txt
+GL_EXT_shader_image_load_formatted
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_image_load_store b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_image_load_store
new file mode 100644
index 0000000..2f281f8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_image_load_store
@@ -0,0 +1,61 @@
+GL_EXT_shader_image_load_store
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_image_load_store.txt
+GL_EXT_shader_image_load_store
+
+ GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001
+ GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002
+ GL_UNIFORM_BARRIER_BIT_EXT 0x00000004
+ GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008
+ GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020
+ GL_COMMAND_BARRIER_BIT_EXT 0x00000040
+ GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080
+ GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100
+ GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200
+ GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400
+ GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800
+ GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000
+ GL_MAX_IMAGE_UNITS_EXT 0x8F38
+ GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39
+ GL_IMAGE_BINDING_NAME_EXT 0x8F3A
+ GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B
+ GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C
+ GL_IMAGE_BINDING_LAYER_EXT 0x8F3D
+ GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E
+ GL_IMAGE_1D_EXT 0x904C
+ GL_IMAGE_2D_EXT 0x904D
+ GL_IMAGE_3D_EXT 0x904E
+ GL_IMAGE_2D_RECT_EXT 0x904F
+ GL_IMAGE_CUBE_EXT 0x9050
+ GL_IMAGE_BUFFER_EXT 0x9051
+ GL_IMAGE_1D_ARRAY_EXT 0x9052
+ GL_IMAGE_2D_ARRAY_EXT 0x9053
+ GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054
+ GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055
+ GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056
+ GL_INT_IMAGE_1D_EXT 0x9057
+ GL_INT_IMAGE_2D_EXT 0x9058
+ GL_INT_IMAGE_3D_EXT 0x9059
+ GL_INT_IMAGE_2D_RECT_EXT 0x905A
+ GL_INT_IMAGE_CUBE_EXT 0x905B
+ GL_INT_IMAGE_BUFFER_EXT 0x905C
+ GL_INT_IMAGE_1D_ARRAY_EXT 0x905D
+ GL_INT_IMAGE_2D_ARRAY_EXT 0x905E
+ GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F
+ GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060
+ GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061
+ GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062
+ GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063
+ GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064
+ GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065
+ GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066
+ GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067
+ GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068
+ GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069
+ GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A
+ GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B
+ GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C
+ GL_MAX_IMAGE_SAMPLES_EXT 0x906D
+ GL_IMAGE_BINDING_FORMAT_EXT 0x906E
+ GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF
+ void glBindImageTextureEXT (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format)
+ void glMemoryBarrierEXT (GLbitfield barriers)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_implicit_conversions b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_implicit_conversions
new file mode 100644
index 0000000..8641350
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_implicit_conversions
@@ -0,0 +1,4 @@
+GL_EXT_shader_implicit_conversions
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_implicit_conversions.txt
+GL_EXT_shader_implicit_conversions
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_integer_mix b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_integer_mix
new file mode 100644
index 0000000..20f77b6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_integer_mix
@@ -0,0 +1,4 @@
+GL_EXT_shader_integer_mix
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_integer_mix.txt
+GL_EXT_shader_integer_mix
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_io_blocks b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_io_blocks
new file mode 100644
index 0000000..199f485
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_io_blocks
@@ -0,0 +1,4 @@
+GL_EXT_shader_io_blocks
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_io_blocks.txt
+GL_EXT_shader_io_blocks
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_non_constant_global_initializers b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_non_constant_global_initializers
new file mode 100644
index 0000000..e183643
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_non_constant_global_initializers
@@ -0,0 +1,4 @@
+GL_EXT_shader_non_constant_global_initializers
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_non_constant_global_initializers.txt
+GL_EXT_shader_non_constant_global_initializers
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_pixel_local_storage b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_pixel_local_storage
new file mode 100644
index 0000000..c9f26e7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_pixel_local_storage
@@ -0,0 +1,7 @@
+GL_EXT_shader_pixel_local_storage
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_pixel_local_storage.txt
+GL_EXT_shader_pixel_local_storage
+
+ GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63
+ GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64
+ GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_pixel_local_storage2 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_pixel_local_storage2
new file mode 100644
index 0000000..7fb2e85
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_pixel_local_storage2
@@ -0,0 +1,10 @@
+GL_EXT_shader_pixel_local_storage2
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_pixel_local_storage2.txt
+GL_EXT_shader_pixel_local_storage2
+
+ GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650
+ GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651
+ GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652
+ void glClearPixelLocalStorageuiEXT (GLsizei offset, GLsizei n, const GLuint* values)
+ void glFramebufferPixelLocalStorageSizeEXT (GLuint target, GLsizei size)
+ GLsizei glGetFramebufferPixelLocalStorageSizeEXT (GLuint target)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_samples_identical b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_samples_identical
new file mode 100644
index 0000000..97e4e6d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_samples_identical
@@ -0,0 +1,4 @@
+GL_EXT_shader_samples_identical
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_samples_identical.txt
+GL_EXT_shader_samples_identical
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_texture_lod b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_texture_lod
new file mode 100644
index 0000000..4417972
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shader_texture_lod
@@ -0,0 +1,4 @@
+GL_EXT_shader_texture_lod
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_texture_lod.txt
+GL_EXT_shader_texture_lod
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shadow_funcs b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shadow_funcs
new file mode 100644
index 0000000..0aabade
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shadow_funcs
@@ -0,0 +1,4 @@
+GL_EXT_shadow_funcs
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shadow_funcs.txt
+GL_EXT_shadow_funcs
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shadow_samplers b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shadow_samplers
new file mode 100644
index 0000000..634421c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shadow_samplers
@@ -0,0 +1,8 @@
+GL_EXT_shadow_samplers
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shadow_samplers.txt
+GL_EXT_shadow_samplers
+
+ GL_TEXTURE_COMPARE_MODE_EXT 0x884C
+ GL_TEXTURE_COMPARE_FUNC_EXT 0x884D
+ GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E
+ GL_SAMPLER_2D_SHADOW_EXT 0x8B62
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shared_texture_palette b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shared_texture_palette
new file mode 100644
index 0000000..f194758
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_shared_texture_palette
@@ -0,0 +1,5 @@
+GL_EXT_shared_texture_palette
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shared_texture_palette.txt
+GL_EXT_shared_texture_palette
+
+ GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sparse_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sparse_texture
new file mode 100644
index 0000000..8da8992
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sparse_texture
@@ -0,0 +1,22 @@
+GL_EXT_sparse_texture
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_sparse_texture.txt
+GL_EXT_sparse_texture
+
+ GL_TEXTURE_2D 0x0DE1
+ GL_TEXTURE_3D 0x806F
+ GL_TEXTURE_CUBE_MAP 0x8513
+ GL_TEXTURE_2D_ARRAY 0x8C1A
+ GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009
+ GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195
+ GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196
+ GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197
+ GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198
+ GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199
+ GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A
+ GL_TEXTURE_SPARSE_EXT 0x91A6
+ GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7
+ GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8
+ GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9
+ GL_NUM_SPARSE_LEVELS_EXT 0x91AA
+ void glTexPageCommitmentEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)
+ void glTexturePageCommitmentEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sparse_texture2 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sparse_texture2
new file mode 100644
index 0000000..7b80b53
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_sparse_texture2
@@ -0,0 +1,4 @@
+GL_EXT_sparse_texture2
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_sparse_texture2.txt
+GL_EXT_sparse_texture2
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_static_vertex_array b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_static_vertex_array
new file mode 100644
index 0000000..0396fd4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_static_vertex_array
@@ -0,0 +1,4 @@
+GL_EXT_static_vertex_array
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_static_vertex_array.txt
+GL_EXT_static_vertex_array
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_clear_tag b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_clear_tag
new file mode 100644
index 0000000..e797fdc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_clear_tag
@@ -0,0 +1,6 @@
+GL_EXT_stencil_clear_tag
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_stencil_clear_tag.txt
+GL_EXT_stencil_clear_tag
+
+ GL_STENCIL_TAG_BITS_EXT 0x88F2
+ GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_two_side b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_two_side
new file mode 100644
index 0000000..5e9b990
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_two_side
@@ -0,0 +1,7 @@
+GL_EXT_stencil_two_side
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_stencil_two_side.txt
+GL_EXT_stencil_two_side
+
+ GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910
+ GL_ACTIVE_STENCIL_FACE_EXT 0x8911
+ void glActiveStencilFaceEXT (GLenum face)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_wrap b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_wrap
new file mode 100644
index 0000000..728b988
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_stencil_wrap
@@ -0,0 +1,6 @@
+GL_EXT_stencil_wrap
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_stencil_wrap.txt
+GL_EXT_stencil_wrap
+
+ GL_INCR_WRAP_EXT 0x8507
+ GL_DECR_WRAP_EXT 0x8508
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_subtexture b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_subtexture
new file mode 100644
index 0000000..987bfc0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_subtexture
@@ -0,0 +1,7 @@
+GL_EXT_subtexture
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_subtexture.txt
+GL_EXT_subtexture
+
+ void glTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)
+ void glTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
+ void glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_tessellation_point_size b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_tessellation_point_size
new file mode 100644
index 0000000..94ce6f3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_tessellation_point_size
@@ -0,0 +1,48 @@
+GL_EXT_tessellation_point_size
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_tessellation_shader.txt
+GL_EXT_tessellation_point_size
+
+ GL_QUADS_EXT 0x0007
+ GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008
+ GL_PATCHES_EXT 0xE
+ GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010
+ GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
+ GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C
+ GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D
+ GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E
+ GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F
+ GL_PATCH_VERTICES_EXT 0x8E72
+ GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75
+ GL_TESS_GEN_MODE_EXT 0x8E76
+ GL_TESS_GEN_SPACING_EXT 0x8E77
+ GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78
+ GL_TESS_GEN_POINT_MODE_EXT 0x8E79
+ GL_ISOLINES_EXT 0x8E7A
+ GL_FRACTIONAL_ODD_EXT 0x8E7B
+ GL_FRACTIONAL_EVEN_EXT 0x8E7C
+ GL_MAX_PATCH_VERTICES_EXT 0x8E7D
+ GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E
+ GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F
+ GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80
+ GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81
+ GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82
+ GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83
+ GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84
+ GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85
+ GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86
+ GL_TESS_EVALUATION_SHADER_EXT 0x8E87
+ GL_TESS_CONTROL_SHADER_EXT 0x8E88
+ GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89
+ GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A
+ GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB
+ GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC
+ GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8
+ GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9
+ GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD
+ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE
+ GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3
+ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4
+ GL_IS_PER_PATCH_EXT 0x92E7
+ GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307
+ GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308
+ void glPatchParameteriEXT (GLenum pname, GLint value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_tessellation_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_tessellation_shader
new file mode 100644
index 0000000..8a0b0a7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_tessellation_shader
@@ -0,0 +1,47 @@
+GL_EXT_tessellation_shader
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_tessellation_shader.txt
+GL_EXT_tessellation_shader
+
+ GL_QUADS_EXT 0x0007
+ GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008
+ GL_PATCHES_EXT 0xE
+ GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010
+ GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
+ GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C
+ GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D
+ GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E
+ GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F
+ GL_PATCH_VERTICES_EXT 0x8E72
+ GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75
+ GL_TESS_GEN_MODE_EXT 0x8E76
+ GL_TESS_GEN_SPACING_EXT 0x8E77
+ GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78
+ GL_TESS_GEN_POINT_MODE_EXT 0x8E79
+ GL_ISOLINES_EXT 0x8E7A
+ GL_FRACTIONAL_ODD_EXT 0x8E7B
+ GL_FRACTIONAL_EVEN_EXT 0x8E7C
+ GL_MAX_PATCH_VERTICES_EXT 0x8E7D
+ GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E
+ GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F
+ GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80
+ GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81
+ GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82
+ GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83
+ GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84
+ GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85
+ GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86
+ GL_TESS_EVALUATION_SHADER_EXT 0x8E87
+ GL_TESS_CONTROL_SHADER_EXT 0x8E88
+ GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89
+ GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A
+ GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB
+ GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC
+ GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8
+ GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9
+ GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD
+ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE
+ GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3
+ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4
+ GL_IS_PER_PATCH_EXT 0x92E7
+ GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307
+ GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture
new file mode 100644
index 0000000..246bcee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture
@@ -0,0 +1,46 @@
+GL_EXT_texture
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture.txt
+GL_EXT_texture
+
+ GL_ALPHA4_EXT 0x803B
+ GL_ALPHA8_EXT 0x803C
+ GL_ALPHA12_EXT 0x803D
+ GL_ALPHA16_EXT 0x803E
+ GL_LUMINANCE4_EXT 0x803F
+ GL_LUMINANCE8_EXT 0x8040
+ GL_LUMINANCE12_EXT 0x8041
+ GL_LUMINANCE16_EXT 0x8042
+ GL_LUMINANCE4_ALPHA4_EXT 0x8043
+ GL_LUMINANCE6_ALPHA2_EXT 0x8044
+ GL_LUMINANCE8_ALPHA8_EXT 0x8045
+ GL_LUMINANCE12_ALPHA4_EXT 0x8046
+ GL_LUMINANCE12_ALPHA12_EXT 0x8047
+ GL_LUMINANCE16_ALPHA16_EXT 0x8048
+ GL_INTENSITY_EXT 0x8049
+ GL_INTENSITY4_EXT 0x804A
+ GL_INTENSITY8_EXT 0x804B
+ GL_INTENSITY12_EXT 0x804C
+ GL_INTENSITY16_EXT 0x804D
+ GL_RGB2_EXT 0x804E
+ GL_RGB4_EXT 0x804F
+ GL_RGB5_EXT 0x8050
+ GL_RGB8_EXT 0x8051
+ GL_RGB10_EXT 0x8052
+ GL_RGB12_EXT 0x8053
+ GL_RGB16_EXT 0x8054
+ GL_RGBA2_EXT 0x8055
+ GL_RGBA4_EXT 0x8056
+ GL_RGB5_A1_EXT 0x8057
+ GL_RGBA8_EXT 0x8058
+ GL_RGB10_A2_EXT 0x8059
+ GL_RGBA12_EXT 0x805A
+ GL_RGBA16_EXT 0x805B
+ GL_TEXTURE_RED_SIZE_EXT 0x805C
+ GL_TEXTURE_GREEN_SIZE_EXT 0x805D
+ GL_TEXTURE_BLUE_SIZE_EXT 0x805E
+ GL_TEXTURE_ALPHA_SIZE_EXT 0x805F
+ GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060
+ GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061
+ GL_REPLACE_EXT 0x8062
+ GL_PROXY_TEXTURE_1D_EXT 0x8063
+ GL_PROXY_TEXTURE_2D_EXT 0x8064
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture3D b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture3D
new file mode 100644
index 0000000..c325194
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture3D
@@ -0,0 +1,14 @@
+GL_EXT_texture3D
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture3D.txt
+GL_EXT_texture3D
+
+ GL_PACK_SKIP_IMAGES_EXT 0x806B
+ GL_PACK_IMAGE_HEIGHT_EXT 0x806C
+ GL_UNPACK_SKIP_IMAGES_EXT 0x806D
+ GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E
+ GL_TEXTURE_3D_EXT 0x806F
+ GL_PROXY_TEXTURE_3D_EXT 0x8070
+ GL_TEXTURE_DEPTH_EXT 0x8071
+ GL_TEXTURE_WRAP_R_EXT 0x8072
+ GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073
+ void glTexImage3DEXT (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_array b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_array
new file mode 100644
index 0000000..c5c2c9f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_array
@@ -0,0 +1,13 @@
+GL_EXT_texture_array
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_array.txt
+GL_EXT_texture_array
+
+ GL_TEXTURE_1D_ARRAY_EXT 0x8C18
+ GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
+ GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
+ GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
+ GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
+ GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
+ GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
+ GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
+ void glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_border_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_border_clamp
new file mode 100644
index 0000000..b347a6e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_border_clamp
@@ -0,0 +1,10 @@
+GL_EXT_texture_border_clamp
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_border_clamp.txt
+GL_EXT_texture_border_clamp
+
+ GL_TEXTURE_BORDER_COLOR_EXT 0x1004
+ GL_CLAMP_TO_BORDER_EXT 0x812D
+ void glGetSamplerParameterIivEXT (GLuint sampler, GLenum pname, GLint* params)
+ void glGetSamplerParameterIuivEXT (GLuint sampler, GLenum pname, GLuint* params)
+ void glSamplerParameterIivEXT (GLuint sampler, GLenum pname, const GLint* params)
+ void glSamplerParameterIuivEXT (GLuint sampler, GLenum pname, const GLuint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_buffer
new file mode 100644
index 0000000..29a3a78
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_buffer
@@ -0,0 +1,18 @@
+GL_EXT_texture_buffer
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_buffer.txt
+GL_EXT_texture_buffer
+
+ GL_TEXTURE_BUFFER_BINDING_EXT 0x8C2A
+ GL_TEXTURE_BUFFER_EXT 0x8C2A
+ GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
+ GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
+ GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
+ GL_SAMPLER_BUFFER_EXT 0x8DC2
+ GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
+ GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
+ GL_IMAGE_BUFFER_EXT 0x9051
+ GL_INT_IMAGE_BUFFER_EXT 0x905C
+ GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067
+ GL_TEXTURE_BUFFER_OFFSET_EXT 0x919D
+ GL_TEXTURE_BUFFER_SIZE_EXT 0x919E
+ GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_buffer_object
new file mode 100644
index 0000000..81b5835
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_buffer_object
@@ -0,0 +1,10 @@
+GL_EXT_texture_buffer_object
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_buffer_object.txt
+GL_EXT_texture_buffer_object
+
+ GL_TEXTURE_BUFFER_EXT 0x8C2A
+ GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
+ GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
+ GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
+ GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
+ void glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_astc_decode_mode b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_astc_decode_mode
new file mode 100644
index 0000000..7386f59
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_astc_decode_mode
@@ -0,0 +1,5 @@
+GL_EXT_texture_compression_astc_decode_mode
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_astc_decode_mode.txt
+GL_EXT_texture_compression_astc_decode_mode
+
+ GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_astc_decode_mode_rgb9e5 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_astc_decode_mode_rgb9e5
new file mode 100644
index 0000000..56af888
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_astc_decode_mode_rgb9e5
@@ -0,0 +1,5 @@
+GL_EXT_texture_compression_astc_decode_mode_rgb9e5
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_astc_decode_mode.txt
+GL_EXT_texture_compression_astc_decode_mode_rgb9e5
+
+ GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_bptc b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_bptc
new file mode 100644
index 0000000..c2b1931
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_bptc
@@ -0,0 +1,8 @@
+GL_EXT_texture_compression_bptc
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_bptc.txt
+GL_EXT_texture_compression_bptc
+
+ GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C
+ GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D
+ GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT 0x8E8E
+ GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT 0x8E8F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_dxt1 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_dxt1
new file mode 100644
index 0000000..c28d47f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_dxt1
@@ -0,0 +1,4 @@
+GL_EXT_texture_compression_dxt1
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_dxt1.txt
+GL_EXT_texture_compression_dxt1
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_latc b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_latc
new file mode 100644
index 0000000..e8fcacc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_latc
@@ -0,0 +1,8 @@
+GL_EXT_texture_compression_latc
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_latc.txt
+GL_EXT_texture_compression_latc
+
+ GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
+ GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
+ GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
+ GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_rgtc b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_rgtc
new file mode 100644
index 0000000..054b7f0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_rgtc
@@ -0,0 +1,8 @@
+GL_EXT_texture_compression_rgtc
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_rgtc.txt
+GL_EXT_texture_compression_rgtc
+
+ GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
+ GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
+ GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
+ GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_s3tc b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_s3tc
new file mode 100644
index 0000000..5d039fd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_s3tc
@@ -0,0 +1,8 @@
+GL_EXT_texture_compression_s3tc
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_s3tc.txt
+GL_EXT_texture_compression_s3tc
+
+ GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
+ GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
+ GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
+ GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_s3tc_srgb b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_s3tc_srgb
new file mode 100644
index 0000000..92bbadf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_compression_s3tc_srgb
@@ -0,0 +1,8 @@
+GL_EXT_texture_compression_s3tc_srgb
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_compression_s3tc_srgb.txt
+GL_EXT_texture_compression_s3tc_srgb
+
+ GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_cube_map b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_cube_map
new file mode 100644
index 0000000..73a2c73
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_cube_map
@@ -0,0 +1,16 @@
+GL_EXT_texture_cube_map
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_texture_cube_map.txt
+GL_EXT_texture_cube_map
+
+ GL_NORMAL_MAP_EXT 0x8511
+ GL_REFLECTION_MAP_EXT 0x8512
+ GL_TEXTURE_CUBE_MAP_EXT 0x8513
+ GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514
+ GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
+ GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B
+ GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_cube_map_array b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_cube_map_array
new file mode 100644
index 0000000..3791aee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_cube_map_array
@@ -0,0 +1,13 @@
+GL_EXT_texture_cube_map_array
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_cube_map_array.txt
+GL_EXT_texture_cube_map_array
+
+ GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009
+ GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A
+ GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C
+ GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D
+ GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E
+ GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F
+ GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054
+ GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F
+ GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_edge_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_edge_clamp
new file mode 100644
index 0000000..c0b3e2a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_edge_clamp
@@ -0,0 +1,5 @@
+GL_EXT_texture_edge_clamp
+http://www.opengl.org/developers/documentation/Version1.2/1.2specs/texture_edge_clamp.txt
+GL_EXT_texture_edge_clamp
+
+ GL_CLAMP_TO_EDGE_EXT 0x812F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env
new file mode 100644
index 0000000..75275bb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env
@@ -0,0 +1,4 @@
+GL_EXT_texture_env
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_env.txt
+GL_EXT_texture_env
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_add b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_add
new file mode 100644
index 0000000..7d48873
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_add
@@ -0,0 +1,4 @@
+GL_EXT_texture_env_add
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_env_add.txt
+GL_EXT_texture_env_add
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_combine b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_combine
new file mode 100644
index 0000000..22fadda
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_combine
@@ -0,0 +1,25 @@
+GL_EXT_texture_env_combine
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_env_combine.txt
+GL_EXT_texture_env_combine
+
+ GL_COMBINE_EXT 0x8570
+ GL_COMBINE_RGB_EXT 0x8571
+ GL_COMBINE_ALPHA_EXT 0x8572
+ GL_RGB_SCALE_EXT 0x8573
+ GL_ADD_SIGNED_EXT 0x8574
+ GL_INTERPOLATE_EXT 0x8575
+ GL_CONSTANT_EXT 0x8576
+ GL_PRIMARY_COLOR_EXT 0x8577
+ GL_PREVIOUS_EXT 0x8578
+ GL_SOURCE0_RGB_EXT 0x8580
+ GL_SOURCE1_RGB_EXT 0x8581
+ GL_SOURCE2_RGB_EXT 0x8582
+ GL_SOURCE0_ALPHA_EXT 0x8588
+ GL_SOURCE1_ALPHA_EXT 0x8589
+ GL_SOURCE2_ALPHA_EXT 0x858A
+ GL_OPERAND0_RGB_EXT 0x8590
+ GL_OPERAND1_RGB_EXT 0x8591
+ GL_OPERAND2_RGB_EXT 0x8592
+ GL_OPERAND0_ALPHA_EXT 0x8598
+ GL_OPERAND1_ALPHA_EXT 0x8599
+ GL_OPERAND2_ALPHA_EXT 0x859A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_dot3 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_dot3
new file mode 100644
index 0000000..7e65eb6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_env_dot3
@@ -0,0 +1,6 @@
+GL_EXT_texture_env_dot3
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_env_dot3.txt
+GL_EXT_texture_env_dot3
+
+ GL_DOT3_RGB_EXT 0x8740
+ GL_DOT3_RGBA_EXT 0x8741
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_filter_anisotropic b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_filter_anisotropic
new file mode 100644
index 0000000..6a7508c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_filter_anisotropic
@@ -0,0 +1,6 @@
+GL_EXT_texture_filter_anisotropic
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_filter_anisotropic.txt
+GL_EXT_texture_filter_anisotropic
+
+ GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+ GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_filter_minmax b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_filter_minmax
new file mode 100644
index 0000000..e7fb5d5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_filter_minmax
@@ -0,0 +1,6 @@
+GL_EXT_texture_filter_minmax
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_filter_minmax.txt
+GL_EXT_texture_filter_minmax
+
+ GL_TEXTURE_REDUCTION_MODE_EXT 0x9366
+ GL_WEIGHTED_AVERAGE_EXT 0x9367
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_format_BGRA8888 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_format_BGRA8888
new file mode 100644
index 0000000..edc51d1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_format_BGRA8888
@@ -0,0 +1,5 @@
+GL_EXT_texture_format_BGRA8888
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_format_BGRA8888.txt
+GL_EXT_texture_format_BGRA8888
+
+ GL_BGRA_EXT 0x80E1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_format_sRGB_override b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_format_sRGB_override
new file mode 100644
index 0000000..88da490
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_format_sRGB_override
@@ -0,0 +1,5 @@
+GL_EXT_texture_format_sRGB_override
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_format_sRGB_override.txt
+GL_EXT_texture_format_sRGB_override
+
+ GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT 0x8FBF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_integer b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_integer
new file mode 100644
index 0000000..43219cf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_integer
@@ -0,0 +1,57 @@
+GL_EXT_texture_integer
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_integer.txt
+GL_EXT_texture_integer
+
+ GL_RGBA32UI_EXT 0x8D70
+ GL_RGB32UI_EXT 0x8D71
+ GL_ALPHA32UI_EXT 0x8D72
+ GL_INTENSITY32UI_EXT 0x8D73
+ GL_LUMINANCE32UI_EXT 0x8D74
+ GL_LUMINANCE_ALPHA32UI_EXT 0x8D75
+ GL_RGBA16UI_EXT 0x8D76
+ GL_RGB16UI_EXT 0x8D77
+ GL_ALPHA16UI_EXT 0x8D78
+ GL_INTENSITY16UI_EXT 0x8D79
+ GL_LUMINANCE16UI_EXT 0x8D7A
+ GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B
+ GL_RGBA8UI_EXT 0x8D7C
+ GL_RGB8UI_EXT 0x8D7D
+ GL_ALPHA8UI_EXT 0x8D7E
+ GL_INTENSITY8UI_EXT 0x8D7F
+ GL_LUMINANCE8UI_EXT 0x8D80
+ GL_LUMINANCE_ALPHA8UI_EXT 0x8D81
+ GL_RGBA32I_EXT 0x8D82
+ GL_RGB32I_EXT 0x8D83
+ GL_ALPHA32I_EXT 0x8D84
+ GL_INTENSITY32I_EXT 0x8D85
+ GL_LUMINANCE32I_EXT 0x8D86
+ GL_LUMINANCE_ALPHA32I_EXT 0x8D87
+ GL_RGBA16I_EXT 0x8D88
+ GL_RGB16I_EXT 0x8D89
+ GL_ALPHA16I_EXT 0x8D8A
+ GL_INTENSITY16I_EXT 0x8D8B
+ GL_LUMINANCE16I_EXT 0x8D8C
+ GL_LUMINANCE_ALPHA16I_EXT 0x8D8D
+ GL_RGBA8I_EXT 0x8D8E
+ GL_RGB8I_EXT 0x8D8F
+ GL_ALPHA8I_EXT 0x8D90
+ GL_INTENSITY8I_EXT 0x8D91
+ GL_LUMINANCE8I_EXT 0x8D92
+ GL_LUMINANCE_ALPHA8I_EXT 0x8D93
+ GL_RED_INTEGER_EXT 0x8D94
+ GL_GREEN_INTEGER_EXT 0x8D95
+ GL_BLUE_INTEGER_EXT 0x8D96
+ GL_ALPHA_INTEGER_EXT 0x8D97
+ GL_RGB_INTEGER_EXT 0x8D98
+ GL_RGBA_INTEGER_EXT 0x8D99
+ GL_BGR_INTEGER_EXT 0x8D9A
+ GL_BGRA_INTEGER_EXT 0x8D9B
+ GL_LUMINANCE_INTEGER_EXT 0x8D9C
+ GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D
+ GL_RGBA_INTEGER_MODE_EXT 0x8D9E
+ void glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params)
+ void glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params)
+ void glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params)
+ void glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params)
+ void glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha)
+ void glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_lod_bias b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_lod_bias
new file mode 100644
index 0000000..17d0afc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_lod_bias
@@ -0,0 +1,7 @@
+GL_EXT_texture_lod_bias
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_lod_bias.txt
+GL_EXT_texture_lod_bias
+
+ GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
+ GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
+ GL_TEXTURE_LOD_BIAS_EXT 0x8501
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_mirror_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_mirror_clamp
new file mode 100644
index 0000000..474192e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_mirror_clamp
@@ -0,0 +1,7 @@
+GL_EXT_texture_mirror_clamp
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_mirror_clamp.txt
+GL_EXT_texture_mirror_clamp
+
+ GL_MIRROR_CLAMP_EXT 0x8742
+ GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
+ GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_mirror_clamp_to_edge b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_mirror_clamp_to_edge
new file mode 100644
index 0000000..e919399
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_mirror_clamp_to_edge
@@ -0,0 +1,5 @@
+GL_EXT_texture_mirror_clamp_to_edge
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_mirror_clamp_to_edge.txt
+GL_EXT_texture_mirror_clamp_to_edge
+
+ GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_norm16 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_norm16
new file mode 100644
index 0000000..2d4dc93
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_norm16
@@ -0,0 +1,12 @@
+GL_EXT_texture_norm16
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_norm16.txt
+GL_EXT_texture_norm16
+
+ GL_RGB16_EXT 0x8054
+ GL_RGBA16_EXT 0x805B
+ GL_R16_EXT 0x822A
+ GL_RG16_EXT 0x822C
+ GL_R16_SNORM_EXT 0x8F98
+ GL_RG16_SNORM_EXT 0x8F99
+ GL_RGB16_SNORM_EXT 0x8F9A
+ GL_RGBA16_SNORM_EXT 0x8F9B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_object b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_object
new file mode 100644
index 0000000..b87dfbc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_object
@@ -0,0 +1,15 @@
+GL_EXT_texture_object
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_object.txt
+GL_EXT_texture_object
+
+ GL_TEXTURE_PRIORITY_EXT 0x8066
+ GL_TEXTURE_RESIDENT_EXT 0x8067
+ GL_TEXTURE_1D_BINDING_EXT 0x8068
+ GL_TEXTURE_2D_BINDING_EXT 0x8069
+ GL_TEXTURE_3D_BINDING_EXT 0x806A
+ GLboolean glAreTexturesResidentEXT (GLsizei n, const GLuint* textures, GLboolean* residences)
+ void glBindTextureEXT (GLenum target, GLuint texture)
+ void glDeleteTexturesEXT (GLsizei n, const GLuint* textures)
+ void glGenTexturesEXT (GLsizei n, GLuint* textures)
+ GLboolean glIsTextureEXT (GLuint texture)
+ void glPrioritizeTexturesEXT (GLsizei n, const GLuint* textures, const GLclampf* priorities)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_perturb_normal b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_perturb_normal
new file mode 100644
index 0000000..73899af
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_perturb_normal
@@ -0,0 +1,7 @@
+GL_EXT_texture_perturb_normal
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_perturb_normal.txt
+GL_EXT_texture_perturb_normal
+
+ GL_PERTURB_EXT 0x85AE
+ GL_TEXTURE_NORMAL_EXT 0x85AF
+ void glTextureNormalEXT (GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_query_lod b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_query_lod
new file mode 100644
index 0000000..d556c3b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_query_lod
@@ -0,0 +1,4 @@
+GL_EXT_texture_query_lod
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_query_lod.txt
+GL_EXT_texture_query_lod
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_rectangle b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_rectangle
new file mode 100644
index 0000000..1394311
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_rectangle
@@ -0,0 +1,8 @@
+GL_EXT_texture_rectangle
+http://developer.apple.com/opengl/extensions/ext_texture_rectangle.html
+GL_EXT_texture_rectangle
+
+ GL_TEXTURE_RECTANGLE_EXT 0x84F5
+ GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6
+ GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7
+ GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_rg b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_rg
new file mode 100644
index 0000000..4208ff7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_rg
@@ -0,0 +1,8 @@
+GL_EXT_texture_rg
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_rg.txt
+GL_EXT_texture_rg
+
+ GL_RED_EXT 0x1903
+ GL_RG_EXT 0x8227
+ GL_R8_EXT 0x8229
+ GL_RG8_EXT 0x822B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB
new file mode 100644
index 0000000..4808cf0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB
@@ -0,0 +1,20 @@
+GL_EXT_texture_sRGB
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_sRGB.txt
+GL_EXT_texture_sRGB
+
+ GL_SRGB_EXT 0x8C40
+ GL_SRGB8_EXT 0x8C41
+ GL_SRGB_ALPHA_EXT 0x8C42
+ GL_SRGB8_ALPHA8_EXT 0x8C43
+ GL_SLUMINANCE_ALPHA_EXT 0x8C44
+ GL_SLUMINANCE8_ALPHA8_EXT 0x8C45
+ GL_SLUMINANCE_EXT 0x8C46
+ GL_SLUMINANCE8_EXT 0x8C47
+ GL_COMPRESSED_SRGB_EXT 0x8C48
+ GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49
+ GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A
+ GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
+ GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_R8 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_R8
new file mode 100644
index 0000000..6be7ffc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_R8
@@ -0,0 +1,5 @@
+GL_EXT_texture_sRGB_R8
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_sRGB_R8.txt
+GL_EXT_texture_sRGB_R8
+
+ GL_SR8_EXT 0x8FBD
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_RG8 b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_RG8
new file mode 100644
index 0000000..9bd1828
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_RG8
@@ -0,0 +1,5 @@
+GL_EXT_texture_sRGB_RG8
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_sRGB_RG8.txt
+GL_EXT_texture_sRGB_RG8
+
+ GL_SRG8_EXT 0x8FBE
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_decode b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_decode
new file mode 100644
index 0000000..6e8bf70
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_sRGB_decode
@@ -0,0 +1,7 @@
+GL_EXT_texture_sRGB_decode
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_sRGB_decode.txt
+GL_EXT_texture_sRGB_decode
+
+ GL_TEXTURE_SRGB_DECODE_EXT 0x8A48
+ GL_DECODE_EXT 0x8A49
+ GL_SKIP_DECODE_EXT 0x8A4A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_shadow_lod b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_shadow_lod
new file mode 100644
index 0000000..21c1501
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_shadow_lod
@@ -0,0 +1,4 @@
+GL_EXT_texture_shadow_lod
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_shadow_lod.txt
+GL_EXT_texture_shadow_lod
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_shared_exponent b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_shared_exponent
new file mode 100644
index 0000000..4c7d461
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_shared_exponent
@@ -0,0 +1,7 @@
+GL_EXT_texture_shared_exponent
+http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_shared_exponent.txt
+GL_EXT_texture_shared_exponent
+
+ GL_RGB9_E5_EXT 0x8C3D
+ GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E
+ GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_snorm b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_snorm
new file mode 100644
index 0000000..2a03e33
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_snorm
@@ -0,0 +1,29 @@
+GL_EXT_texture_snorm
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_snorm.txt
+GL_EXT_texture_snorm
+
+ GL_RED_SNORM 0x8F90
+ GL_RG_SNORM 0x8F91
+ GL_RGB_SNORM 0x8F92
+ GL_RGBA_SNORM 0x8F93
+ GL_R8_SNORM 0x8F94
+ GL_RG8_SNORM 0x8F95
+ GL_RGB8_SNORM 0x8F96
+ GL_RGBA8_SNORM 0x8F97
+ GL_R16_SNORM 0x8F98
+ GL_RG16_SNORM 0x8F99
+ GL_RGB16_SNORM 0x8F9A
+ GL_RGBA16_SNORM 0x8F9B
+ GL_SIGNED_NORMALIZED 0x8F9C
+ GL_ALPHA_SNORM 0x9010
+ GL_LUMINANCE_SNORM 0x9011
+ GL_LUMINANCE_ALPHA_SNORM 0x9012
+ GL_INTENSITY_SNORM 0x9013
+ GL_ALPHA8_SNORM 0x9014
+ GL_LUMINANCE8_SNORM 0x9015
+ GL_LUMINANCE8_ALPHA8_SNORM 0x9016
+ GL_INTENSITY8_SNORM 0x9017
+ GL_ALPHA16_SNORM 0x9018
+ GL_LUMINANCE16_SNORM 0x9019
+ GL_LUMINANCE16_ALPHA16_SNORM 0x901A
+ GL_INTENSITY16_SNORM 0x901B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_storage b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_storage
new file mode 100644
index 0000000..b568cd7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_storage
@@ -0,0 +1,34 @@
+GL_EXT_texture_storage
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_storage.txt
+GL_EXT_texture_storage
+
+ GL_ALPHA8_EXT 0x803C
+ GL_LUMINANCE8_EXT 0x8040
+ GL_LUMINANCE8_ALPHA8_EXT 0x8045
+ GL_RGB10_EXT 0x8052
+ GL_RGB10_A2_EXT 0x8059
+ GL_R8_EXT 0x8229
+ GL_RG8_EXT 0x822B
+ GL_R16F_EXT 0x822D
+ GL_R32F_EXT 0x822E
+ GL_RG16F_EXT 0x822F
+ GL_RG32F_EXT 0x8230
+ GL_RGBA32F_EXT 0x8814
+ GL_RGB32F_EXT 0x8815
+ GL_ALPHA32F_EXT 0x8816
+ GL_LUMINANCE32F_EXT 0x8818
+ GL_LUMINANCE_ALPHA32F_EXT 0x8819
+ GL_RGBA16F_EXT 0x881A
+ GL_RGB16F_EXT 0x881B
+ GL_ALPHA16F_EXT 0x881C
+ GL_LUMINANCE16F_EXT 0x881E
+ GL_LUMINANCE_ALPHA16F_EXT 0x881F
+ GL_RGB_RAW_422_APPLE 0x8A51
+ GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F
+ GL_BGRA8_EXT 0x93A1
+ void glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
+ void glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
+ void glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
+ void glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
+ void glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
+ void glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_storage_compression b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_storage_compression
new file mode 100644
index 0000000..5b76928
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_storage_compression
@@ -0,0 +1,22 @@
+GL_EXT_texture_storage_compression
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_storage_compression.txt
+GL_EXT_texture_storage_compression
+
+ GL_NUM_SURFACE_COMPRESSION_FIXED_RATES_EXT 0x8F6E
+ GL_SURFACE_COMPRESSION_EXT 0x96C0
+ GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x96C1
+ GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x96C2
+ GL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x96C4
+ GL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x96C5
+ GL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x96C6
+ GL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x96C7
+ GL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x96C8
+ GL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x96C9
+ GL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x96CA
+ GL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x96CB
+ GL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x96CC
+ GL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x96CD
+ GL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x96CE
+ GL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x96CF
+ void glTexStorageAttribs2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, const GLint* attrib_list)
+ void glTexStorageAttribs3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, const GLint* attrib_list)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_swizzle b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_swizzle
new file mode 100644
index 0000000..3a2ff6a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_swizzle
@@ -0,0 +1,9 @@
+GL_EXT_texture_swizzle
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_swizzle.txt
+GL_EXT_texture_swizzle
+
+ GL_TEXTURE_SWIZZLE_R_EXT 0x8E42
+ GL_TEXTURE_SWIZZLE_G_EXT 0x8E43
+ GL_TEXTURE_SWIZZLE_B_EXT 0x8E44
+ GL_TEXTURE_SWIZZLE_A_EXT 0x8E45
+ GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_type_2_10_10_10_REV b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_type_2_10_10_10_REV
new file mode 100644
index 0000000..82292da
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_type_2_10_10_10_REV
@@ -0,0 +1,5 @@
+GL_EXT_texture_type_2_10_10_10_REV
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_type_2_10_10_10_REV.txt
+GL_EXT_texture_type_2_10_10_10_REV
+
+ GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_view b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_view
new file mode 100644
index 0000000..092ca83
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_texture_view
@@ -0,0 +1,10 @@
+GL_EXT_texture_view
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_view.txt
+GL_EXT_texture_view
+
+ GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB
+ GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC
+ GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD
+ GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE
+ GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
+ void glTextureViewEXT (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_timer_query b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_timer_query
new file mode 100644
index 0000000..530ba35
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_timer_query
@@ -0,0 +1,7 @@
+GL_EXT_timer_query
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_timer_query.txt
+GL_EXT_timer_query
+
+ GL_TIME_ELAPSED_EXT 0x88BF
+ void glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64EXT *params)
+ void glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64EXT *params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_transform_feedback b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_transform_feedback
new file mode 100644
index 0000000..3b64b20
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_transform_feedback
@@ -0,0 +1,26 @@
+GL_EXT_transform_feedback
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_transform_feedback.txt
+GL_EXT_transform_feedback
+
+ GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76
+ GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F
+ GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80
+ GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83
+ GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84
+ GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85
+ GL_PRIMITIVES_GENERATED_EXT 0x8C87
+ GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88
+ GL_RASTERIZER_DISCARD_EXT 0x8C89
+ GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A
+ GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B
+ GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C
+ GL_SEPARATE_ATTRIBS_EXT 0x8C8D
+ GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E
+ GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F
+ void glBeginTransformFeedbackEXT (GLenum primitiveMode)
+ void glBindBufferBaseEXT (GLenum target, GLuint index, GLuint buffer)
+ void glBindBufferOffsetEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset)
+ void glBindBufferRangeEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+ void glEndTransformFeedbackEXT (void)
+ void glGetTransformFeedbackVaryingEXT (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei *size, GLenum *type, GLchar *name)
+ void glTransformFeedbackVaryingsEXT (GLuint program, GLsizei count, const GLchar * const* varyings, GLenum bufferMode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_unpack_subimage b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_unpack_subimage
new file mode 100644
index 0000000..106d1d3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_unpack_subimage
@@ -0,0 +1,7 @@
+GL_EXT_unpack_subimage
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_unpack_subimage.txt
+GL_EXT_unpack_subimage
+
+ GL_UNPACK_ROW_LENGTH_EXT 0x0CF2
+ GL_UNPACK_SKIP_ROWS_EXT 0x0CF3
+ GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array
new file mode 100644
index 0000000..5f74e62
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array
@@ -0,0 +1,45 @@
+GL_EXT_vertex_array
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_vertex_array.txt
+GL_EXT_vertex_array
+
+ GL_DOUBLE_EXT 0x140A
+ GL_VERTEX_ARRAY_EXT 0x8074
+ GL_NORMAL_ARRAY_EXT 0x8075
+ GL_COLOR_ARRAY_EXT 0x8076
+ GL_INDEX_ARRAY_EXT 0x8077
+ GL_TEXTURE_COORD_ARRAY_EXT 0x8078
+ GL_EDGE_FLAG_ARRAY_EXT 0x8079
+ GL_VERTEX_ARRAY_SIZE_EXT 0x807A
+ GL_VERTEX_ARRAY_TYPE_EXT 0x807B
+ GL_VERTEX_ARRAY_STRIDE_EXT 0x807C
+ GL_VERTEX_ARRAY_COUNT_EXT 0x807D
+ GL_NORMAL_ARRAY_TYPE_EXT 0x807E
+ GL_NORMAL_ARRAY_STRIDE_EXT 0x807F
+ GL_NORMAL_ARRAY_COUNT_EXT 0x8080
+ GL_COLOR_ARRAY_SIZE_EXT 0x8081
+ GL_COLOR_ARRAY_TYPE_EXT 0x8082
+ GL_COLOR_ARRAY_STRIDE_EXT 0x8083
+ GL_COLOR_ARRAY_COUNT_EXT 0x8084
+ GL_INDEX_ARRAY_TYPE_EXT 0x8085
+ GL_INDEX_ARRAY_STRIDE_EXT 0x8086
+ GL_INDEX_ARRAY_COUNT_EXT 0x8087
+ GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088
+ GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089
+ GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
+ GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B
+ GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C
+ GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D
+ GL_VERTEX_ARRAY_POINTER_EXT 0x808E
+ GL_NORMAL_ARRAY_POINTER_EXT 0x808F
+ GL_COLOR_ARRAY_POINTER_EXT 0x8090
+ GL_INDEX_ARRAY_POINTER_EXT 0x8091
+ GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
+ GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093
+ void glArrayElementEXT (GLint i)
+ void glColorPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer)
+ void glDrawArraysEXT (GLenum mode, GLint first, GLsizei count)
+ void glEdgeFlagPointerEXT (GLsizei stride, GLsizei count, const GLboolean* pointer)
+ void glIndexPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer)
+ void glNormalPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer)
+ void glTexCoordPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer)
+ void glVertexPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array_bgra b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array_bgra
new file mode 100644
index 0000000..59efae8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array_bgra
@@ -0,0 +1,5 @@
+GL_EXT_vertex_array_bgra
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_vertex_array_bgra.txt
+GL_EXT_vertex_array_bgra
+
+ GL_BGRA 0x80E1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array_setXXX b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array_setXXX
new file mode 100644
index 0000000..44636ca
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_array_setXXX
@@ -0,0 +1,7 @@
+GL_EXT_vertex_array_setXXX
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_vertex_array_setXXX.txt
+GL_EXT_vertex_array_setXXX
+
+ void glBindArraySetEXT (const void *arrayset)
+ const void * glCreateArraySetExt (void)
+ void glDeleteArraySetsEXT (GLsizei n, const void *arrayset[])
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_attrib_64bit b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_attrib_64bit
new file mode 100644
index 0000000..f8c68eb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_attrib_64bit
@@ -0,0 +1,27 @@
+GL_EXT_vertex_attrib_64bit
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_vertex_attrib_64bit.txt
+GL_EXT_vertex_attrib_64bit
+
+ GL_DOUBLE_MAT2_EXT 0x8F46
+ GL_DOUBLE_MAT3_EXT 0x8F47
+ GL_DOUBLE_MAT4_EXT 0x8F48
+ GL_DOUBLE_MAT2x3_EXT 0x8F49
+ GL_DOUBLE_MAT2x4_EXT 0x8F4A
+ GL_DOUBLE_MAT3x2_EXT 0x8F4B
+ GL_DOUBLE_MAT3x4_EXT 0x8F4C
+ GL_DOUBLE_MAT4x2_EXT 0x8F4D
+ GL_DOUBLE_MAT4x3_EXT 0x8F4E
+ GL_DOUBLE_VEC2_EXT 0x8FFC
+ GL_DOUBLE_VEC3_EXT 0x8FFD
+ GL_DOUBLE_VEC4_EXT 0x8FFE
+ void glGetVertexAttribLdvEXT (GLuint index, GLenum pname, GLdouble* params)
+ void glVertexArrayVertexAttribLOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset)
+ void glVertexAttribL1dEXT (GLuint index, GLdouble x)
+ void glVertexAttribL1dvEXT (GLuint index, const GLdouble* v)
+ void glVertexAttribL2dEXT (GLuint index, GLdouble x, GLdouble y)
+ void glVertexAttribL2dvEXT (GLuint index, const GLdouble* v)
+ void glVertexAttribL3dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z)
+ void glVertexAttribL3dvEXT (GLuint index, const GLdouble* v)
+ void glVertexAttribL4dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glVertexAttribL4dvEXT (GLuint index, const GLdouble* v)
+ void glVertexAttribLPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_shader
new file mode 100644
index 0000000..8d3314f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_shader
@@ -0,0 +1,157 @@
+GL_EXT_vertex_shader
+http://oss.sgi.com/projects/ogl-sample/registry/EXT/vertex_shader.txt
+GL_EXT_vertex_shader
+
+ GL_VERTEX_SHADER_EXT 0x8780
+ GL_VERTEX_SHADER_BINDING_EXT 0x8781
+ GL_OP_INDEX_EXT 0x8782
+ GL_OP_NEGATE_EXT 0x8783
+ GL_OP_DOT3_EXT 0x8784
+ GL_OP_DOT4_EXT 0x8785
+ GL_OP_MUL_EXT 0x8786
+ GL_OP_ADD_EXT 0x8787
+ GL_OP_MADD_EXT 0x8788
+ GL_OP_FRAC_EXT 0x8789
+ GL_OP_MAX_EXT 0x878A
+ GL_OP_MIN_EXT 0x878B
+ GL_OP_SET_GE_EXT 0x878C
+ GL_OP_SET_LT_EXT 0x878D
+ GL_OP_CLAMP_EXT 0x878E
+ GL_OP_FLOOR_EXT 0x878F
+ GL_OP_ROUND_EXT 0x8790
+ GL_OP_EXP_BASE_2_EXT 0x8791
+ GL_OP_LOG_BASE_2_EXT 0x8792
+ GL_OP_POWER_EXT 0x8793
+ GL_OP_RECIP_EXT 0x8794
+ GL_OP_RECIP_SQRT_EXT 0x8795
+ GL_OP_SUB_EXT 0x8796
+ GL_OP_CROSS_PRODUCT_EXT 0x8797
+ GL_OP_MULTIPLY_MATRIX_EXT 0x8798
+ GL_OP_MOV_EXT 0x8799
+ GL_OUTPUT_VERTEX_EXT 0x879A
+ GL_OUTPUT_COLOR0_EXT 0x879B
+ GL_OUTPUT_COLOR1_EXT 0x879C
+ GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
+ GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
+ GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
+ GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
+ GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
+ GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
+ GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
+ GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
+ GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
+ GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
+ GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
+ GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
+ GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
+ GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
+ GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
+ GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
+ GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
+ GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
+ GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
+ GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
+ GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
+ GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
+ GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
+ GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
+ GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
+ GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
+ GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
+ GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
+ GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
+ GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
+ GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
+ GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
+ GL_OUTPUT_FOG_EXT 0x87BD
+ GL_SCALAR_EXT 0x87BE
+ GL_VECTOR_EXT 0x87BF
+ GL_MATRIX_EXT 0x87C0
+ GL_VARIANT_EXT 0x87C1
+ GL_INVARIANT_EXT 0x87C2
+ GL_LOCAL_CONSTANT_EXT 0x87C3
+ GL_LOCAL_EXT 0x87C4
+ GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
+ GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
+ GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
+ GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
+ GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
+ GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
+ GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
+ GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC
+ GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD
+ GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
+ GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
+ GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
+ GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
+ GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
+ GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
+ GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
+ GL_X_EXT 0x87D5
+ GL_Y_EXT 0x87D6
+ GL_Z_EXT 0x87D7
+ GL_W_EXT 0x87D8
+ GL_NEGATIVE_X_EXT 0x87D9
+ GL_NEGATIVE_Y_EXT 0x87DA
+ GL_NEGATIVE_Z_EXT 0x87DB
+ GL_NEGATIVE_W_EXT 0x87DC
+ GL_ZERO_EXT 0x87DD
+ GL_ONE_EXT 0x87DE
+ GL_NEGATIVE_ONE_EXT 0x87DF
+ GL_NORMALIZED_RANGE_EXT 0x87E0
+ GL_FULL_RANGE_EXT 0x87E1
+ GL_CURRENT_VERTEX_EXT 0x87E2
+ GL_MVP_MATRIX_EXT 0x87E3
+ GL_VARIANT_VALUE_EXT 0x87E4
+ GL_VARIANT_DATATYPE_EXT 0x87E5
+ GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
+ GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
+ GL_VARIANT_ARRAY_EXT 0x87E8
+ GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
+ GL_INVARIANT_VALUE_EXT 0x87EA
+ GL_INVARIANT_DATATYPE_EXT 0x87EB
+ GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
+ GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
+
+ void glBeginVertexShaderEXT (void)
+ void glEndVertexShaderEXT (void)
+ void glBindVertexShaderEXT (GLuint id)
+ GLuint glGenVertexShadersEXT (GLuint range)
+ void glDeleteVertexShaderEXT (GLuint id)
+ void glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1)
+ void glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2)
+ void glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3)
+ void glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW)
+ void glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW)
+ void glInsertComponentEXT (GLuint res, GLuint src, GLuint num)
+ void glExtractComponentEXT (GLuint res, GLuint src, GLuint num)
+ GLuint glGenSymbolsEXT (GLenum dataType, GLenum storageType, GLenum range, GLuint components)
+ void glSetInvariantEXT (GLuint id, GLenum type, void *addr)
+ void glSetLocalConstantEXT (GLuint id, GLenum type, void *addr)
+ void glVariantbvEXT (GLuint id, GLbyte *addr)
+ void glVariantsvEXT (GLuint id, GLshort *addr)
+ void glVariantivEXT (GLuint id, GLint *addr)
+ void glVariantfvEXT (GLuint id, GLfloat *addr)
+ void glVariantdvEXT (GLuint id, GLdouble *addr)
+ void glVariantubvEXT (GLuint id, GLubyte *addr)
+ void glVariantusvEXT (GLuint id, GLushort *addr)
+ void glVariantuivEXT (GLuint id, GLuint *addr)
+ void glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, void *addr)
+ void glEnableVariantClientStateEXT (GLuint id)
+ void glDisableVariantClientStateEXT (GLuint id)
+ GLuint glBindLightParameterEXT (GLenum light, GLenum value)
+ GLuint glBindMaterialParameterEXT (GLenum face, GLenum value)
+ GLuint glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value)
+ GLuint glBindTextureUnitParameterEXT (GLenum unit, GLenum value)
+ GLuint glBindParameterEXT (GLenum value)
+ GLboolean glIsVariantEnabledEXT (GLuint id, GLenum cap)
+ void glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data)
+ void glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data)
+ void glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data)
+ void glGetVariantPointervEXT (GLuint id, GLenum value, void **data)
+ void glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data)
+ void glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data)
+ void glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data)
+ void glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data)
+ void glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data)
+ void glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_weighting b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_weighting
new file mode 100644
index 0000000..3b12240
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_vertex_weighting
@@ -0,0 +1,20 @@
+GL_EXT_vertex_weighting
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_vertex_weighting.txt
+GL_EXT_vertex_weighting
+
+ GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3
+ GL_MODELVIEW0_MATRIX_EXT 0x0BA6
+ GL_MODELVIEW0_EXT 0x1700
+ GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502
+ GL_MODELVIEW1_MATRIX_EXT 0x8506
+ GL_VERTEX_WEIGHTING_EXT 0x8509
+ GL_MODELVIEW1_EXT 0x850A
+ GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B
+ GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C
+ GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D
+ GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E
+ GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
+ GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
+ void glVertexWeightPointerEXT (GLint size, GLenum type, GLsizei stride, void *pointer)
+ void glVertexWeightfEXT (GLfloat weight)
+ void glVertexWeightfvEXT (GLfloat* weight)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_win32_keyed_mutex b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_win32_keyed_mutex
new file mode 100644
index 0000000..5d28a88
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_win32_keyed_mutex
@@ -0,0 +1,6 @@
+GL_EXT_win32_keyed_mutex
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_win32_keyed_mutex.txt
+GL_EXT_win32_keyed_mutex
+
+ GLboolean glAcquireKeyedMutexWin32EXT (GLuint memory, GLuint64 key, GLuint timeout)
+ GLboolean glReleaseKeyedMutexWin32EXT (GLuint memory, GLuint64 key)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_window_rectangles b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_window_rectangles
new file mode 100644
index 0000000..194bff8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_window_rectangles
@@ -0,0 +1,11 @@
+GL_EXT_window_rectangles
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_window_rectangles.txt
+GL_EXT_window_rectangles
+
+ GL_INCLUSIVE_EXT 0x8F10
+ GL_EXCLUSIVE_EXT 0x8F11
+ GL_WINDOW_RECTANGLE_EXT 0x8F12
+ GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13
+ GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14
+ GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15
+ void glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLint box[])
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_x11_sync_object b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_x11_sync_object
new file mode 100644
index 0000000..30a771c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_EXT_x11_sync_object
@@ -0,0 +1,6 @@
+GL_EXT_x11_sync_object
+https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_x11_sync_object.txt
+GL_EXT_x11_sync_object
+
+ GL_SYNC_X11_FENCE_EXT 0x90E1
+ GLsync glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_FJ_shader_binary_GCCSO b/engine-ocean/External/glew/auto/extensions/gl/GL_FJ_shader_binary_GCCSO
new file mode 100644
index 0000000..bdc37ca
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_FJ_shader_binary_GCCSO
@@ -0,0 +1,5 @@
+GL_FJ_shader_binary_GCCSO
+https://www.khronos.org/registry/OpenGL/extensions/FJ/FJ_shader_binary_GCCSO.txt
+GL_FJ_shader_binary_GCCSO
+
+ GL_GCCSO_SHADER_BINARY_FJ 0x9260
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_GREMEDY_frame_terminator b/engine-ocean/External/glew/auto/extensions/gl/GL_GREMEDY_frame_terminator
new file mode 100644
index 0000000..74dcecb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_GREMEDY_frame_terminator
@@ -0,0 +1,5 @@
+GL_GREMEDY_frame_terminator
+https://www.khronos.org/registry/OpenGL/extensions/GREMEDY/GREMEDY_frame_terminator.txt
+GL_GREMEDY_frame_terminator
+
+ void glFrameTerminatorGREMEDY (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_GREMEDY_string_marker b/engine-ocean/External/glew/auto/extensions/gl/GL_GREMEDY_string_marker
new file mode 100644
index 0000000..2ff89d0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_GREMEDY_string_marker
@@ -0,0 +1,5 @@
+GL_GREMEDY_string_marker
+https://www.khronos.org/registry/OpenGL/extensions/GREMEDY/GREMEDY_string_marker.txt
+GL_GREMEDY_string_marker
+
+ void glStringMarkerGREMEDY (GLsizei len, const void *string)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_HP_convolution_border_modes b/engine-ocean/External/glew/auto/extensions/gl/GL_HP_convolution_border_modes
new file mode 100644
index 0000000..d1f072c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_HP_convolution_border_modes
@@ -0,0 +1,4 @@
+GL_HP_convolution_border_modes
+https://www.khronos.org/registry/OpenGL/extensions/HP/HP_convolution_border_modes.txt
+GL_HP_convolution_border_modes
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_HP_image_transform b/engine-ocean/External/glew/auto/extensions/gl/GL_HP_image_transform
new file mode 100644
index 0000000..c54d05e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_HP_image_transform
@@ -0,0 +1,10 @@
+GL_HP_image_transform
+https://www.khronos.org/registry/OpenGL/extensions/HP/HP_image_transform.txt
+GL_HP_image_transform
+
+ void glGetImageTransformParameterfvHP (GLenum target, GLenum pname, const GLfloat* params)
+ void glGetImageTransformParameterivHP (GLenum target, GLenum pname, const GLint* params)
+ void glImageTransformParameterfHP (GLenum target, GLenum pname, const GLfloat param)
+ void glImageTransformParameterfvHP (GLenum target, GLenum pname, const GLfloat* params)
+ void glImageTransformParameteriHP (GLenum target, GLenum pname, const GLint param)
+ void glImageTransformParameterivHP (GLenum target, GLenum pname, const GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_HP_occlusion_test b/engine-ocean/External/glew/auto/extensions/gl/GL_HP_occlusion_test
new file mode 100644
index 0000000..99a70f9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_HP_occlusion_test
@@ -0,0 +1,4 @@
+GL_HP_occlusion_test
+https://www.khronos.org/registry/OpenGL/extensions/HP/HP_occlusion_test.txt
+GL_HP_occlusion_test
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_HP_texture_lighting b/engine-ocean/External/glew/auto/extensions/gl/GL_HP_texture_lighting
new file mode 100644
index 0000000..cf26632
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_HP_texture_lighting
@@ -0,0 +1,4 @@
+GL_HP_texture_lighting
+https://www.khronos.org/registry/OpenGL/extensions/HP/HP_texture_lighting.txt
+GL_HP_texture_lighting
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_cull_vertex b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_cull_vertex
new file mode 100644
index 0000000..0f75755
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_cull_vertex
@@ -0,0 +1,5 @@
+GL_IBM_cull_vertex
+https://www.khronos.org/registry/OpenGL/extensions/IBM/IBM_cull_vertex.txt
+GL_IBM_cull_vertex
+
+ GL_CULL_VERTEX_IBM 103050
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_multimode_draw_arrays b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_multimode_draw_arrays
new file mode 100644
index 0000000..4772ada
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_multimode_draw_arrays
@@ -0,0 +1,6 @@
+GL_IBM_multimode_draw_arrays
+https://www.khronos.org/registry/OpenGL/extensions/IBM/IBM_multimode_draw_arrays.txt
+GL_IBM_multimode_draw_arrays
+
+ void glMultiModeDrawArraysIBM (const GLenum* mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride)
+ void glMultiModeDrawElementsIBM (const GLenum* mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei primcount, GLint modestride)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_rasterpos_clip b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_rasterpos_clip
new file mode 100644
index 0000000..14d19e0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_rasterpos_clip
@@ -0,0 +1,5 @@
+GL_IBM_rasterpos_clip
+https://www.khronos.org/registry/OpenGL/extensions/IBM/IBM_rasterpos_clip.txt
+GL_IBM_rasterpos_clip
+
+ GL_RASTER_POSITION_UNCLIPPED_IBM 103010
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_static_data b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_static_data
new file mode 100644
index 0000000..c546be7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_static_data
@@ -0,0 +1,6 @@
+GL_IBM_static_data
+https://www.khronos.org/registry/OpenGL/extensions/IBM/IBM_static_data.txt
+GL_IBM_static_data
+
+ GL_ALL_STATIC_DATA_IBM 103060
+ GL_STATIC_VERTEX_ARRAY_IBM 103061
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_texture_mirrored_repeat b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_texture_mirrored_repeat
new file mode 100644
index 0000000..8c6011f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_texture_mirrored_repeat
@@ -0,0 +1,5 @@
+GL_IBM_texture_mirrored_repeat
+https://www.khronos.org/registry/OpenGL/extensions/IBM/IBM_texture_mirrored_repeat.txt
+GL_IBM_texture_mirrored_repeat
+
+ GL_MIRRORED_REPEAT_IBM 0x8370
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_vertex_array_lists b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_vertex_array_lists
new file mode 100644
index 0000000..edefa1d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IBM_vertex_array_lists
@@ -0,0 +1,28 @@
+GL_IBM_vertex_array_lists
+https://www.khronos.org/registry/OpenGL/extensions/IBM/IBM_vertex_array_lists.txt
+GL_IBM_vertex_array_lists
+
+ GL_VERTEX_ARRAY_LIST_IBM 103070
+ GL_NORMAL_ARRAY_LIST_IBM 103071
+ GL_COLOR_ARRAY_LIST_IBM 103072
+ GL_INDEX_ARRAY_LIST_IBM 103073
+ GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074
+ GL_EDGE_FLAG_ARRAY_LIST_IBM 103075
+ GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076
+ GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077
+ GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080
+ GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081
+ GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082
+ GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083
+ GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084
+ GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085
+ GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086
+ GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087
+ void glColorPointerListIBM (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride)
+ void glEdgeFlagPointerListIBM (GLint stride, const GLboolean ** pointer, GLint ptrstride)
+ void glFogCoordPointerListIBM (GLenum type, GLint stride, const void** pointer, GLint ptrstride)
+ void glIndexPointerListIBM (GLenum type, GLint stride, const void** pointer, GLint ptrstride)
+ void glNormalPointerListIBM (GLenum type, GLint stride, const void** pointer, GLint ptrstride)
+ void glSecondaryColorPointerListIBM (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride)
+ void glTexCoordPointerListIBM (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride)
+ void glVertexPointerListIBM (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_bindless_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_bindless_texture
new file mode 100644
index 0000000..5cb75fc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_bindless_texture
@@ -0,0 +1,10 @@
+GL_IMG_bindless_texture
+https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_bindless_texture.txt
+GL_IMG_bindless_texture
+
+ GLuint64 glGetTextureHandleIMG (GLuint texture)
+ GLuint64 glGetTextureSamplerHandleIMG (GLuint texture, GLuint sampler)
+ void glProgramUniformHandleui64IMG (GLuint program, GLint location, GLuint64 value)
+ void glProgramUniformHandleui64vIMG (GLuint program, GLint location, GLsizei count, const GLuint64* values)
+ void glUniformHandleui64IMG (GLint location, GLuint64 value)
+ void glUniformHandleui64vIMG (GLint location, GLsizei count, const GLuint64* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_framebuffer_downsample b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_framebuffer_downsample
new file mode 100644
index 0000000..b6f9acd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_framebuffer_downsample
@@ -0,0 +1,10 @@
+GL_IMG_framebuffer_downsample
+https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_framebuffer_downsample.txt
+GL_IMG_framebuffer_downsample
+
+ GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG 0x913C
+ GL_NUM_DOWNSAMPLE_SCALES_IMG 0x913D
+ GL_DOWNSAMPLE_SCALES_IMG 0x913E
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG 0x913F
+ void glFramebufferTexture2DDownsampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale)
+ void glFramebufferTextureLayerDownsampleIMG (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_multisampled_render_to_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_multisampled_render_to_texture
new file mode 100644
index 0000000..03505f0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_multisampled_render_to_texture
@@ -0,0 +1,10 @@
+GL_IMG_multisampled_render_to_texture
+https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_multisampled_render_to_texture.txt
+GL_IMG_multisampled_render_to_texture
+
+ GL_RENDERBUFFER_SAMPLES_IMG 0x9133
+ GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134
+ GL_MAX_SAMPLES_IMG 0x9135
+ GL_TEXTURE_SAMPLES_IMG 0x9136
+ void glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
+ void glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_program_binary b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_program_binary
new file mode 100644
index 0000000..c16eb14
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_program_binary
@@ -0,0 +1,5 @@
+GL_IMG_program_binary
+https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_program_binary.txt
+GL_IMG_program_binary
+
+ GL_SGX_PROGRAM_BINARY_IMG 0x9130
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_read_format b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_read_format
new file mode 100644
index 0000000..1fecf62
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_read_format
@@ -0,0 +1,6 @@
+GL_IMG_read_format
+https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_read_format.txt
+GL_IMG_read_format
+
+ GL_BGRA_IMG 0x80E1
+ GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_shader_binary b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_shader_binary
new file mode 100644
index 0000000..f7c7aec
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_shader_binary
@@ -0,0 +1,5 @@
+GL_IMG_shader_binary
+https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_shader_binary.txt
+GL_IMG_shader_binary
+
+ GL_SGX_BINARY_IMG 0x8C0A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_compression_pvrtc b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_compression_pvrtc
new file mode 100644
index 0000000..338e965
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_compression_pvrtc
@@ -0,0 +1,8 @@
+GL_IMG_texture_compression_pvrtc
+https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_texture_compression_pvrtc.txt
+GL_IMG_texture_compression_pvrtc
+
+ GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00
+ GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01
+ GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02
+ GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_compression_pvrtc2 b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_compression_pvrtc2
new file mode 100644
index 0000000..81d5447
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_compression_pvrtc2
@@ -0,0 +1,6 @@
+GL_IMG_texture_compression_pvrtc2
+https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_texture_compression_pvrtc2.txt
+GL_IMG_texture_compression_pvrtc2
+
+ GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137
+ GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_env_enhanced_fixed_function b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_env_enhanced_fixed_function
new file mode 100644
index 0000000..80a7ed3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_env_enhanced_fixed_function
@@ -0,0 +1,11 @@
+GL_IMG_texture_env_enhanced_fixed_function
+https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_texture_env_enhanced_fixed_function.txt
+GL_IMG_texture_env_enhanced_fixed_function
+
+ GL_DOT3_RGBA_IMG 0x86AF
+ GL_MODULATE_COLOR_IMG 0x8C04
+ GL_RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05
+ GL_TEXTURE_ALPHA_MODULATE_IMG 0x8C06
+ GL_FACTOR_ALPHA_MODULATE_IMG 0x8C07
+ GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8C08
+ GL_ADD_BLEND_IMG 0x8C09
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_filter_cubic b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_filter_cubic
new file mode 100644
index 0000000..df29bee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_texture_filter_cubic
@@ -0,0 +1,7 @@
+GL_IMG_texture_filter_cubic
+https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_texture_filter_cubic.txt
+GL_IMG_texture_filter_cubic
+
+ GL_CUBIC_IMG 0x9139
+ GL_CUBIC_MIPMAP_NEAREST_IMG 0x913A
+ GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_tile_region_protection b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_tile_region_protection
new file mode 100644
index 0000000..80c0848
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_IMG_tile_region_protection
@@ -0,0 +1,7 @@
+GL_IMG_tile_region_protection
+https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_tile_region_protection.txt
+GL_IMG_tile_region_protection
+
+ GL_TRP_IMG 0x8EA0
+ GL_TRP_ERROR_CONTEXT_RESET_IMG 0x8EA1
+ GL_TRP_UNSUPPORTED_CONTEXT_IMG 0x8EA2
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_INGR_color_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_INGR_color_clamp
new file mode 100644
index 0000000..630f82e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_INGR_color_clamp
@@ -0,0 +1,12 @@
+GL_INGR_color_clamp
+https://www.khronos.org/registry/OpenGL/extensions/INGR/INGR_color_clamp.txt
+GL_INGR_color_clamp
+
+ GL_RED_MIN_CLAMP_INGR 0x8560
+ GL_GREEN_MIN_CLAMP_INGR 0x8561
+ GL_BLUE_MIN_CLAMP_INGR 0x8562
+ GL_ALPHA_MIN_CLAMP_INGR 0x8563
+ GL_RED_MAX_CLAMP_INGR 0x8564
+ GL_GREEN_MAX_CLAMP_INGR 0x8565
+ GL_BLUE_MAX_CLAMP_INGR 0x8566
+ GL_ALPHA_MAX_CLAMP_INGR 0x8567
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_INGR_interlace_read b/engine-ocean/External/glew/auto/extensions/gl/GL_INGR_interlace_read
new file mode 100644
index 0000000..c9f9aa6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_INGR_interlace_read
@@ -0,0 +1,5 @@
+GL_INGR_interlace_read
+https://www.khronos.org/registry/OpenGL/extensions/INGR/INGR_interlace_read.txt
+GL_INGR_interlace_read
+
+ GL_INTERLACE_READ_INGR 0x8568
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_blackhole_render b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_blackhole_render
new file mode 100644
index 0000000..787616e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_blackhole_render
@@ -0,0 +1,5 @@
+GL_INTEL_blackhole_render
+https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_blackhole_render.txt
+GL_INTEL_blackhole_render
+
+ GL_BLACKHOLE_RENDER_INTEL 0x83FC
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_conservative_rasterization b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_conservative_rasterization
new file mode 100644
index 0000000..f9c61bb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_conservative_rasterization
@@ -0,0 +1,5 @@
+GL_INTEL_conservative_rasterization
+https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_conservative_rasterization.txt
+GL_INTEL_conservative_rasterization
+
+ GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_fragment_shader_ordering b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_fragment_shader_ordering
new file mode 100644
index 0000000..acdb8e4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_fragment_shader_ordering
@@ -0,0 +1,4 @@
+GL_INTEL_fragment_shader_ordering
+https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_fragment_shader_ordering.txt
+GL_INTEL_fragment_shader_ordering
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_framebuffer_CMAA b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_framebuffer_CMAA
new file mode 100644
index 0000000..38c129c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_framebuffer_CMAA
@@ -0,0 +1,5 @@
+GL_INTEL_framebuffer_CMAA
+https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_framebuffer_CMAA.txt
+GL_INTEL_framebuffer_CMAA
+
+ void glApplyFramebufferAttachmentCMAAINTEL (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_map_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_map_texture
new file mode 100644
index 0000000..f497dfa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_map_texture
@@ -0,0 +1,11 @@
+GL_INTEL_map_texture
+https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_map_texture.txt
+GL_INTEL_map_texture
+
+ GL_LAYOUT_DEFAULT_INTEL 0
+ GL_LAYOUT_LINEAR_INTEL 1
+ GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2
+ GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF
+ void * glMapTexture2DINTEL (GLuint texture, GLint level, GLbitfield access, GLint* stride, GLenum *layout)
+ void glSyncTextureINTEL (GLuint texture)
+ void glUnmapTexture2DINTEL (GLuint texture, GLint level)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_parallel_arrays b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_parallel_arrays
new file mode 100644
index 0000000..2a69604
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_parallel_arrays
@@ -0,0 +1,13 @@
+GL_INTEL_parallel_arrays
+https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_parallel_arrays.txt
+GL_INTEL_parallel_arrays
+
+ GL_PARALLEL_ARRAYS_INTEL 0x83F4
+ GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5
+ GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6
+ GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7
+ GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8
+ void glColorPointervINTEL (GLint size, GLenum type, const void** pointer)
+ void glNormalPointervINTEL (GLenum type, const void** pointer)
+ void glTexCoordPointervINTEL (GLint size, GLenum type, const void** pointer)
+ void glVertexPointervINTEL (GLint size, GLenum type, const void** pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_performance_query b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_performance_query
new file mode 100644
index 0000000..88955cd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_performance_query
@@ -0,0 +1,34 @@
+GL_INTEL_performance_query
+https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_performance_query.txt
+GL_INTEL_performance_query
+
+ GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x0000
+ GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x0001
+ GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9
+ GL_PERFQUERY_FLUSH_INTEL 0x83FA
+ GL_PERFQUERY_WAIT_INTEL 0x83FB
+ GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0
+ GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1
+ GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2
+ GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3
+ GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4
+ GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5
+ GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8
+ GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9
+ GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA
+ GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB
+ GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC
+ GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD
+ GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE
+ GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF
+ GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500
+ void glBeginPerfQueryINTEL (GLuint queryHandle)
+ void glCreatePerfQueryINTEL (GLuint queryId, GLuint* queryHandle)
+ void glDeletePerfQueryINTEL (GLuint queryHandle)
+ void glEndPerfQueryINTEL (GLuint queryHandle)
+ void glGetFirstPerfQueryIdINTEL (GLuint* queryId)
+ void glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint* nextQueryId)
+ void glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar* counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue)
+ void glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten)
+ void glGetPerfQueryIdByNameINTEL (GLchar* queryName, GLuint *queryId)
+ void glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar* queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_shader_integer_functions2 b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_shader_integer_functions2
new file mode 100644
index 0000000..647e528
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_shader_integer_functions2
@@ -0,0 +1,4 @@
+GL_INTEL_shader_integer_functions2
+https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_shader_integer_functions2.txt
+GL_INTEL_shader_integer_functions2
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_texture_scissor b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_texture_scissor
new file mode 100644
index 0000000..04507ef
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_INTEL_texture_scissor
@@ -0,0 +1,6 @@
+GL_INTEL_texture_scissor
+https://www.khronos.org/registry/OpenGL/extensions/INTEL/INTEL_texture_scissor.txt
+GL_INTEL_texture_scissor
+
+ void glTexScissorFuncINTEL (GLenum target, GLenum lfunc, GLenum hfunc)
+ void glTexScissorINTEL (GLenum target, GLclampf tlow, GLclampf thigh)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_blend_equation_advanced b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_blend_equation_advanced
new file mode 100644
index 0000000..0e13ada
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_blend_equation_advanced
@@ -0,0 +1,21 @@
+GL_KHR_blend_equation_advanced
+https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_blend_equation_advanced.txt
+GL_KHR_blend_equation_advanced
+
+ GL_BLEND_ADVANCED_COHERENT_KHR 0x9285
+ GL_MULTIPLY_KHR 0x9294
+ GL_SCREEN_KHR 0x9295
+ GL_OVERLAY_KHR 0x9296
+ GL_DARKEN_KHR 0x9297
+ GL_LIGHTEN_KHR 0x9298
+ GL_COLORDODGE_KHR 0x9299
+ GL_COLORBURN_KHR 0x929A
+ GL_HARDLIGHT_KHR 0x929B
+ GL_SOFTLIGHT_KHR 0x929C
+ GL_DIFFERENCE_KHR 0x929E
+ GL_EXCLUSION_KHR 0x92A0
+ GL_HSL_HUE_KHR 0x92AD
+ GL_HSL_SATURATION_KHR 0x92AE
+ GL_HSL_COLOR_KHR 0x92AF
+ GL_HSL_LUMINOSITY_KHR 0x92B0
+ void glBlendBarrierKHR (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_blend_equation_advanced_coherent b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_blend_equation_advanced_coherent
new file mode 100644
index 0000000..901a886
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_blend_equation_advanced_coherent
@@ -0,0 +1,4 @@
+GL_KHR_blend_equation_advanced_coherent
+https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_blend_equation_advanced.txt
+GL_KHR_blend_equation_advanced_coherent
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_context_flush_control b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_context_flush_control
new file mode 100644
index 0000000..18de5aa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_context_flush_control
@@ -0,0 +1,7 @@
+GL_KHR_context_flush_control
+https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_context_flush_control.txt
+GL_KHR_context_flush_control
+
+ GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB
+ GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_debug b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_debug
new file mode 100644
index 0000000..1ffc83a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_debug
@@ -0,0 +1,55 @@
+GL_KHR_debug
+https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_debug.txt
+GL_KHR_debug
+
+ GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
+ GL_STACK_OVERFLOW 0x0503
+ GL_STACK_UNDERFLOW 0x0504
+ GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
+ GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
+ GL_DEBUG_CALLBACK_FUNCTION 0x8244
+ GL_DEBUG_CALLBACK_USER_PARAM 0x8245
+ GL_DEBUG_SOURCE_API 0x8246
+ GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
+ GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
+ GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
+ GL_DEBUG_SOURCE_APPLICATION 0x824A
+ GL_DEBUG_SOURCE_OTHER 0x824B
+ GL_DEBUG_TYPE_ERROR 0x824C
+ GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
+ GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
+ GL_DEBUG_TYPE_PORTABILITY 0x824F
+ GL_DEBUG_TYPE_PERFORMANCE 0x8250
+ GL_DEBUG_TYPE_OTHER 0x8251
+ GL_DEBUG_TYPE_MARKER 0x8268
+ GL_DEBUG_TYPE_PUSH_GROUP 0x8269
+ GL_DEBUG_TYPE_POP_GROUP 0x826A
+ GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
+ GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
+ GL_DEBUG_GROUP_STACK_DEPTH 0x826D
+ GL_BUFFER 0x82E0
+ GL_SHADER 0x82E1
+ GL_PROGRAM 0x82E2
+ GL_QUERY 0x82E3
+ GL_PROGRAM_PIPELINE 0x82E4
+ GL_SAMPLER 0x82E6
+ GL_DISPLAY_LIST 0x82E7
+ GL_MAX_LABEL_LENGTH 0x82E8
+ GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
+ GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
+ GL_DEBUG_LOGGED_MESSAGES 0x9145
+ GL_DEBUG_SEVERITY_HIGH 0x9146
+ GL_DEBUG_SEVERITY_MEDIUM 0x9147
+ GL_DEBUG_SEVERITY_LOW 0x9148
+ GL_DEBUG_OUTPUT 0x92E0
+ void glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam)
+ void glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled)
+ void glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf)
+ GLuint glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog)
+ void glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label)
+ void glGetObjectPtrLabel (void* ptr, GLsizei bufSize, GLsizei* length, GLchar *label)
+ void glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar* label)
+ void glObjectPtrLabel (void* ptr, GLsizei length, const GLchar* label)
+ void glPopDebugGroup (void)
+ void glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar * message)
+ typedef void (GLAPIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_no_error b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_no_error
new file mode 100644
index 0000000..33da047
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_no_error
@@ -0,0 +1,5 @@
+GL_KHR_no_error
+https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_no_error.txt
+GL_KHR_no_error
+
+ GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_parallel_shader_compile b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_parallel_shader_compile
new file mode 100644
index 0000000..da163cd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_parallel_shader_compile
@@ -0,0 +1,7 @@
+GL_KHR_parallel_shader_compile
+https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_parallel_shader_compile.txt
+GL_KHR_parallel_shader_compile
+
+ GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0
+ GL_COMPLETION_STATUS_KHR 0x91B1
+ void glMaxShaderCompilerThreadsKHR (GLuint count)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_robust_buffer_access_behavior b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_robust_buffer_access_behavior
new file mode 100644
index 0000000..0b6c582
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_robust_buffer_access_behavior
@@ -0,0 +1,4 @@
+GL_KHR_robust_buffer_access_behavior
+https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_robust_buffer_access_behavior.txt
+GL_KHR_robust_buffer_access_behavior
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_robustness b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_robustness
new file mode 100644
index 0000000..c775801
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_robustness
@@ -0,0 +1,16 @@
+GL_KHR_robustness
+https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_robustness.txt
+GL_KHR_robustness
+
+ GL_CONTEXT_LOST 0x0507
+ GL_LOSE_CONTEXT_ON_RESET 0x8252
+ GL_GUILTY_CONTEXT_RESET 0x8253
+ GL_INNOCENT_CONTEXT_RESET 0x8254
+ GL_UNKNOWN_CONTEXT_RESET 0x8255
+ GL_RESET_NOTIFICATION_STRATEGY 0x8256
+ GL_NO_RESET_NOTIFICATION 0x8261
+ GL_CONTEXT_ROBUST_ACCESS 0x90F3
+ void glGetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat* params)
+ void glGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint* params)
+ void glGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint* params)
+ void glReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_shader_subgroup b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_shader_subgroup
new file mode 100644
index 0000000..da16f58
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_shader_subgroup
@@ -0,0 +1,16 @@
+GL_KHR_shader_subgroup
+https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_shader_subgroup.txt
+GL_KHR_shader_subgroup
+
+ GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001
+ GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002
+ GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004
+ GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008
+ GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010
+ GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020
+ GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040
+ GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080
+ GL_SUBGROUP_SIZE_KHR 0x9532
+ GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533
+ GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534
+ GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_hdr b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_hdr
new file mode 100644
index 0000000..a4a2f3e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_hdr
@@ -0,0 +1,52 @@
+GL_KHR_texture_compression_astc_hdr
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_compression_astc.txt
+GL_KHR_texture_compression_astc_hdr
+
+ GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
+ GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
+ GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
+ GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
+ GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
+ GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
+ GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
+ GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
+ GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
+ GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
+ GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
+ GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
+ GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
+ GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
+ GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0
+ GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1
+ GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2
+ GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3
+ GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4
+ GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5
+ GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6
+ GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7
+ GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8
+ GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_ldr b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_ldr
new file mode 100644
index 0000000..f928aad
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_ldr
@@ -0,0 +1,52 @@
+GL_KHR_texture_compression_astc_ldr
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_compression_astc.txt
+GL_KHR_texture_compression_astc_ldr
+
+ GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
+ GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
+ GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
+ GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
+ GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
+ GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
+ GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
+ GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
+ GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
+ GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
+ GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
+ GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
+ GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
+ GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
+ GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0
+ GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1
+ GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2
+ GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3
+ GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4
+ GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5
+ GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6
+ GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7
+ GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8
+ GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_sliced_3d b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_sliced_3d
new file mode 100644
index 0000000..06a71aa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KHR_texture_compression_astc_sliced_3d
@@ -0,0 +1,4 @@
+GL_KHR_texture_compression_astc_sliced_3d
+https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_texture_compression_astc_sliced_3d.txt
+GL_KHR_texture_compression_astc_sliced_3d
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_KTX_buffer_region b/engine-ocean/External/glew/auto/extensions/gl/GL_KTX_buffer_region
new file mode 100644
index 0000000..ef281b1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_KTX_buffer_region
@@ -0,0 +1,13 @@
+GL_KTX_buffer_region
+
+GL_KTX_buffer_region
+
+ GL_KTX_FRONT_REGION 0x0
+ GL_KTX_BACK_REGION 0x1
+ GL_KTX_Z_REGION 0x2
+ GL_KTX_STENCIL_REGION 0x3
+ GLuint glBufferRegionEnabled (void)
+ GLuint glNewBufferRegion (GLenum region)
+ void glDeleteBufferRegion (GLenum region)
+ void glReadBufferRegion (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glDrawBufferRegion (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESAX_texture_stack b/engine-ocean/External/glew/auto/extensions/gl/GL_MESAX_texture_stack
new file mode 100644
index 0000000..f4423dc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESAX_texture_stack
@@ -0,0 +1,10 @@
+GL_MESAX_texture_stack
+https://www.khronos.org/registry/OpenGL/extensions/MESAX/MESAX_texture_stack.txt
+GL_MESAX_texture_stack
+
+ GL_TEXTURE_1D_STACK_MESAX 0x8759
+ GL_TEXTURE_2D_STACK_MESAX 0x875A
+ GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B
+ GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C
+ GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D
+ GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_bgra b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_bgra
new file mode 100644
index 0000000..e364079
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_bgra
@@ -0,0 +1,6 @@
+GL_MESA_bgra
+https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_bgra.txt
+GL_MESA_bgra
+
+ GL_BGR_EXT 0x80E0
+ GL_BGRA_EXT 0x80E1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_flip_x b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_flip_x
new file mode 100644
index 0000000..d3367ac
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_flip_x
@@ -0,0 +1,5 @@
+GL_MESA_framebuffer_flip_x
+https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_framebuffer_flip_x.txt
+GL_MESA_framebuffer_flip_x
+
+ GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_flip_y b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_flip_y
new file mode 100644
index 0000000..4f83a5c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_flip_y
@@ -0,0 +1,7 @@
+GL_MESA_framebuffer_flip_y
+https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_framebuffer_flip_y.txt
+GL_MESA_framebuffer_flip_y
+
+ GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
+ void glFramebufferParameteriMESA (GLenum target, GLenum pname, GLint param)
+ void glGetFramebufferParameterivMESA (GLenum target, GLenum pname, GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_swap_xy b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_swap_xy
new file mode 100644
index 0000000..a42bbb2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_framebuffer_swap_xy
@@ -0,0 +1,5 @@
+GL_MESA_framebuffer_swap_xy
+https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_framebuffer_swap_xy.txt
+GL_MESA_framebuffer_swap_xy
+
+ GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_pack_invert b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_pack_invert
new file mode 100644
index 0000000..009bdd2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_pack_invert
@@ -0,0 +1,5 @@
+GL_MESA_pack_invert
+https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_pack_invert.txt
+GL_MESA_pack_invert
+
+ GL_PACK_INVERT_MESA 0x8758
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_program_binary_formats b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_program_binary_formats
new file mode 100644
index 0000000..45e7d18
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_program_binary_formats
@@ -0,0 +1,5 @@
+GL_MESA_program_binary_formats
+https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_program_binary_formats.txt
+GL_MESA_program_binary_formats
+
+ GL_PROGRAM_BINARY_FORMAT_MESA 0x875F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_resize_buffers b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_resize_buffers
new file mode 100644
index 0000000..d3c332b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_resize_buffers
@@ -0,0 +1,5 @@
+GL_MESA_resize_buffers
+https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_resize_buffers.txt
+GL_MESA_resize_buffers
+
+ void glResizeBuffersMESA (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_shader_integer_functions b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_shader_integer_functions
new file mode 100644
index 0000000..bc97f8f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_shader_integer_functions
@@ -0,0 +1,4 @@
+GL_MESA_shader_integer_functions
+https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_shader_integer_functions.txt
+GL_MESA_shader_integer_functions
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_tile_raster_order b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_tile_raster_order
new file mode 100644
index 0000000..3eb9306
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_tile_raster_order
@@ -0,0 +1,4 @@
+GL_MESA_tile_raster_order
+https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_tile_raster_order.txt
+GL_MESA_tile_raster_order
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_window_pos b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_window_pos
new file mode 100644
index 0000000..4282ff4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_window_pos
@@ -0,0 +1,28 @@
+GL_MESA_window_pos
+https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_window_pos.txt
+GL_MESA_window_pos
+
+ void glWindowPos2dMESA (GLdouble x, GLdouble y)
+ void glWindowPos2dvMESA (const GLdouble* p)
+ void glWindowPos2fMESA (GLfloat x, GLfloat y)
+ void glWindowPos2fvMESA (const GLfloat* p)
+ void glWindowPos2iMESA (GLint x, GLint y)
+ void glWindowPos2ivMESA (const GLint* p)
+ void glWindowPos2sMESA (GLshort x, GLshort y)
+ void glWindowPos2svMESA (const GLshort* p)
+ void glWindowPos3dMESA (GLdouble x, GLdouble y, GLdouble z)
+ void glWindowPos3dvMESA (const GLdouble* p)
+ void glWindowPos3fMESA (GLfloat x, GLfloat y, GLfloat z)
+ void glWindowPos3fvMESA (const GLfloat* p)
+ void glWindowPos3iMESA (GLint x, GLint y, GLint z)
+ void glWindowPos3ivMESA (const GLint* p)
+ void glWindowPos3sMESA (GLshort x, GLshort y, GLshort z)
+ void glWindowPos3svMESA (const GLshort* p)
+ void glWindowPos4dMESA (GLdouble x, GLdouble y, GLdouble z, GLdouble)
+ void glWindowPos4dvMESA (const GLdouble* p)
+ void glWindowPos4fMESA (GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glWindowPos4fvMESA (const GLfloat* p)
+ void glWindowPos4iMESA (GLint x, GLint y, GLint z, GLint w)
+ void glWindowPos4ivMESA (const GLint* p)
+ void glWindowPos4sMESA (GLshort x, GLshort y, GLshort z, GLshort w)
+ void glWindowPos4svMESA (const GLshort* p)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_ycbcr_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_ycbcr_texture
new file mode 100644
index 0000000..b82f635
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_MESA_ycbcr_texture
@@ -0,0 +1,7 @@
+GL_MESA_ycbcr_texture
+https://www.khronos.org/registry/OpenGL/extensions/MESA/MESA_ycbcr_texture.txt
+GL_MESA_ycbcr_texture
+
+ GL_UNSIGNED_SHORT_8_8_MESA 0x85BA
+ GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB
+ GL_YCBCR_MESA 0x8757
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_blend_equation_advanced_multi_draw_buffers b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_blend_equation_advanced_multi_draw_buffers
new file mode 100644
index 0000000..2a88bf9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_blend_equation_advanced_multi_draw_buffers
@@ -0,0 +1,4 @@
+GL_NVX_blend_equation_advanced_multi_draw_buffers
+https://www.khronos.org/registry/OpenGL/extensions/NVX/NVX_blend_equation_advanced_multi_draw_buffers.txt
+GL_NVX_blend_equation_advanced_multi_draw_buffers
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_conditional_render b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_conditional_render
new file mode 100644
index 0000000..71b9541
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_conditional_render
@@ -0,0 +1,6 @@
+GL_NVX_conditional_render
+https://www.khronos.org/registry/OpenGL/extensions/NVX/NVX_conditional_render.txt
+GL_NVX_conditional_render
+
+ void glBeginConditionalRenderNVX (GLuint id)
+ void glEndConditionalRenderNVX (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_gpu_memory_info b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_gpu_memory_info
new file mode 100644
index 0000000..a8d97b9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_gpu_memory_info
@@ -0,0 +1,9 @@
+GL_NVX_gpu_memory_info
+http://developer.download.nvidia.com/opengl/specs/GL_NVX_gpu_memory_info.txt
+GL_NVX_gpu_memory_info
+
+ GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047
+ GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
+ GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
+ GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A
+ GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_gpu_multicast2 b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_gpu_multicast2
new file mode 100644
index 0000000..bc1d221
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_gpu_multicast2
@@ -0,0 +1,11 @@
+GL_NVX_gpu_multicast2
+https://www.khronos.org/registry/OpenGL/extensions/NVX/NVX_gpu_multicast2.txt
+GL_NVX_gpu_multicast2
+
+ GL_UPLOAD_GPU_MASK_NVX 0x954A
+ GLsync glAsyncCopyBufferSubDataNVX (GLsizei waitSemaphoreCount, const GLuint* waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray)
+ GLuint glAsyncCopyImageSubDataNVX (GLsizei waitSemaphoreCount, const GLuint* waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray)
+ void glMulticastScissorArrayvNVX (GLuint gpu, GLuint first, GLsizei count, const GLint* v)
+ void glMulticastViewportArrayvNVX (GLuint gpu, GLuint first, GLsizei count, const GLfloat* v)
+ void glMulticastViewportPositionWScaleNVX (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff)
+ void glUploadGpuMaskNVX (GLbitfield mask)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_linked_gpu_multicast b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_linked_gpu_multicast
new file mode 100644
index 0000000..1386279
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_linked_gpu_multicast
@@ -0,0 +1,9 @@
+GL_NVX_linked_gpu_multicast
+https://www.khronos.org/registry/OpenGL/extensions/NVX/NVX_linked_gpu_multicast.txt
+GL_NVX_linked_gpu_multicast
+
+ GL_LGPU_SEPARATE_STORAGE_BIT_NVX 0x0800
+ GL_MAX_LGPU_GPUS_NVX 0x92BA
+ void glLGPUCopyImageSubDataNVX (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
+ void glLGPUInterlockNVX (void)
+ void glLGPUNamedBufferSubDataNVX (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_progress_fence b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_progress_fence
new file mode 100644
index 0000000..fb19688
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NVX_progress_fence
@@ -0,0 +1,8 @@
+GL_NVX_progress_fence
+https://www.khronos.org/registry/OpenGL/extensions/NVX/NVX_progress_fence.txt
+GL_NVX_progress_fence
+
+ void glClientWaitSemaphoreui64NVX (GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray)
+ GLuint glCreateProgressFenceNVX (void)
+ void glSignalSemaphoreui64NVX (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray)
+ void glWaitSemaphoreui64NVX (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_3dvision_settings b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_3dvision_settings
new file mode 100644
index 0000000..daf8ab7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_3dvision_settings
@@ -0,0 +1,13 @@
+GL_NV_3dvision_settings
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_3dvision_settings.txt
+GL_NV_3dvision_settings
+
+ GL_3DVISION_STEREO_NV 0x90F4
+ GL_STEREO_SEPARATION_NV 0x90F5
+ GL_STEREO_CONVERGENCE_NV 0x90F6
+ GL_STEREO_CUTOFF_NV 0x90F7
+ GL_STEREO_PROJECTION_NV 0x90F8
+ GL_STEREO_PROJECTION_PERSPECTIVE_NV 0x90F9
+ GL_STEREO_PROJECTION_ORTHO_NV 0x90FA
+ void glStereoParameterfNV (GLenum pname, GLfloat param)
+ void glStereoParameteriNV (GLenum pname, GLint param)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_EGL_stream_consumer_external b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_EGL_stream_consumer_external
new file mode 100644
index 0000000..0b2e201
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_EGL_stream_consumer_external
@@ -0,0 +1,8 @@
+GL_NV_EGL_stream_consumer_external
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_EGL_stream_consumer_external.txt
+GL_NV_EGL_stream_consumer_external
+
+ GL_TEXTURE_EXTERNAL_OES 0x8D65
+ GL_SAMPLER_EXTERNAL_OES 0x8D66
+ GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
+ GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_alpha_to_coverage_dither_control b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_alpha_to_coverage_dither_control
new file mode 100644
index 0000000..0e836c6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_alpha_to_coverage_dither_control
@@ -0,0 +1,9 @@
+GL_NV_alpha_to_coverage_dither_control
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_alpha_to_coverage_dither_control.txt
+GL_NV_alpha_to_coverage_dither_control
+
+ GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV 0x92BF
+ GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV 0x934D
+ GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV 0x934E
+ GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV 0x934F
+ void glAlphaToCoverageDitherControlNV (GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bgr b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bgr
new file mode 100644
index 0000000..83a68cf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bgr
@@ -0,0 +1,5 @@
+GL_NV_bgr
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_bgr.txt
+GL_NV_bgr
+
+ GL_BGR_NV 0x80E0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_multi_draw_indirect b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_multi_draw_indirect
new file mode 100644
index 0000000..62119f5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_multi_draw_indirect
@@ -0,0 +1,6 @@
+GL_NV_bindless_multi_draw_indirect
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_bindless_multi_draw_indirect.txt
+GL_NV_bindless_multi_draw_indirect
+
+ void glMultiDrawArraysIndirectBindlessNV (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount)
+ void glMultiDrawElementsIndirectBindlessNV (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_multi_draw_indirect_count b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_multi_draw_indirect_count
new file mode 100644
index 0000000..3bf66b2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_multi_draw_indirect_count
@@ -0,0 +1,6 @@
+GL_NV_bindless_multi_draw_indirect_count
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_bindless_multi_draw_indirect_count.txt
+GL_NV_bindless_multi_draw_indirect_count
+
+ void glMultiDrawArraysIndirectBindlessCountNV (GLenum mode, const void *indirect, GLintptr drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount)
+ void glMultiDrawElementsIndirectBindlessCountNV (GLenum mode, GLenum type, const void *indirect, GLintptr drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_texture
new file mode 100644
index 0000000..30011fa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_bindless_texture
@@ -0,0 +1,17 @@
+GL_NV_bindless_texture
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_bindless_texture.txt
+GL_NV_bindless_texture
+
+ GLuint64 glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format)
+ GLuint64 glGetTextureHandleNV (GLuint texture)
+ GLuint64 glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler)
+ GLboolean glIsImageHandleResidentNV (GLuint64 handle)
+ GLboolean glIsTextureHandleResidentNV (GLuint64 handle)
+ void glMakeImageHandleNonResidentNV (GLuint64 handle)
+ void glMakeImageHandleResidentNV (GLuint64 handle, GLenum access)
+ void glMakeTextureHandleNonResidentNV (GLuint64 handle)
+ void glMakeTextureHandleResidentNV (GLuint64 handle)
+ void glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value)
+ void glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64* values)
+ void glUniformHandleui64NV (GLint location, GLuint64 value)
+ void glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_equation_advanced b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_equation_advanced
new file mode 100644
index 0000000..861c9ce
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_equation_advanced
@@ -0,0 +1,56 @@
+GL_NV_blend_equation_advanced
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_blend_equation_advanced.txt
+GL_NV_blend_equation_advanced
+
+ GL_XOR_NV 0x1506
+ GL_RED_NV 0x1903
+ GL_GREEN_NV 0x1904
+ GL_BLUE_NV 0x1905
+ GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280
+ GL_BLEND_OVERLAP_NV 0x9281
+ GL_UNCORRELATED_NV 0x9282
+ GL_DISJOINT_NV 0x9283
+ GL_CONJOINT_NV 0x9284
+ GL_BLEND_ADVANCED_COHERENT_NV 0x9285
+ GL_SRC_NV 0x9286
+ GL_DST_NV 0x9287
+ GL_SRC_OVER_NV 0x9288
+ GL_DST_OVER_NV 0x9289
+ GL_SRC_IN_NV 0x928A
+ GL_DST_IN_NV 0x928B
+ GL_SRC_OUT_NV 0x928C
+ GL_DST_OUT_NV 0x928D
+ GL_SRC_ATOP_NV 0x928E
+ GL_DST_ATOP_NV 0x928F
+ GL_PLUS_NV 0x9291
+ GL_PLUS_DARKER_NV 0x9292
+ GL_MULTIPLY_NV 0x9294
+ GL_SCREEN_NV 0x9295
+ GL_OVERLAY_NV 0x9296
+ GL_DARKEN_NV 0x9297
+ GL_LIGHTEN_NV 0x9298
+ GL_COLORDODGE_NV 0x9299
+ GL_COLORBURN_NV 0x929A
+ GL_HARDLIGHT_NV 0x929B
+ GL_SOFTLIGHT_NV 0x929C
+ GL_DIFFERENCE_NV 0x929E
+ GL_MINUS_NV 0x929F
+ GL_EXCLUSION_NV 0x92A0
+ GL_CONTRAST_NV 0x92A1
+ GL_INVERT_RGB_NV 0x92A3
+ GL_LINEARDODGE_NV 0x92A4
+ GL_LINEARBURN_NV 0x92A5
+ GL_VIVIDLIGHT_NV 0x92A6
+ GL_LINEARLIGHT_NV 0x92A7
+ GL_PINLIGHT_NV 0x92A8
+ GL_HARDMIX_NV 0x92A9
+ GL_HSL_HUE_NV 0x92AD
+ GL_HSL_SATURATION_NV 0x92AE
+ GL_HSL_COLOR_NV 0x92AF
+ GL_HSL_LUMINOSITY_NV 0x92B0
+ GL_PLUS_CLAMPED_NV 0x92B1
+ GL_PLUS_CLAMPED_ALPHA_NV 0x92B2
+ GL_MINUS_CLAMPED_NV 0x92B3
+ GL_INVERT_OVG_NV 0x92B4
+ void glBlendBarrierNV (void)
+ void glBlendParameteriNV (GLenum pname, GLint value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_equation_advanced_coherent b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_equation_advanced_coherent
new file mode 100644
index 0000000..9a041df
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_equation_advanced_coherent
@@ -0,0 +1,4 @@
+GL_NV_blend_equation_advanced_coherent
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_blend_equation_advanced.txt
+GL_NV_blend_equation_advanced_coherent
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_minmax_factor b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_minmax_factor
new file mode 100644
index 0000000..61f39b4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_minmax_factor
@@ -0,0 +1,6 @@
+GL_NV_blend_minmax_factor
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_blend_minmax_factor.txt
+GL_NV_blend_minmax_factor
+
+ GL_FACTOR_MIN_AMD 0x901C
+ GL_FACTOR_MAX_AMD 0x901D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_square b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_square
new file mode 100644
index 0000000..23d009e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_blend_square
@@ -0,0 +1,4 @@
+GL_NV_blend_square
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_blend_square.txt
+GL_NV_blend_square
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_clip_space_w_scaling b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_clip_space_w_scaling
new file mode 100644
index 0000000..82f272b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_clip_space_w_scaling
@@ -0,0 +1,8 @@
+GL_NV_clip_space_w_scaling
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_clip_space_w_scaling.txt
+GL_NV_clip_space_w_scaling
+
+ GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C
+ GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D
+ GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E
+ void glViewportPositionWScaleNV (GLuint index, GLfloat xcoeff, GLfloat ycoeff)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_command_list b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_command_list
new file mode 100644
index 0000000..7dc2488
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_command_list
@@ -0,0 +1,40 @@
+GL_NV_command_list
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_command_list.txt
+GL_NV_command_list
+
+ GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000
+ GL_NOP_COMMAND_NV 0x0001
+ GL_DRAW_ELEMENTS_COMMAND_NV 0x0002
+ GL_DRAW_ARRAYS_COMMAND_NV 0x0003
+ GL_DRAW_ELEMENTS_STRIP_COMMAND_NV 0x0004
+ GL_DRAW_ARRAYS_STRIP_COMMAND_NV 0x0005
+ GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV 0x0006
+ GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV 0x0007
+ GL_ELEMENT_ADDRESS_COMMAND_NV 0x0008
+ GL_ATTRIBUTE_ADDRESS_COMMAND_NV 0x0009
+ GL_UNIFORM_ADDRESS_COMMAND_NV 0x000a
+ GL_BLEND_COLOR_COMMAND_NV 0x000b
+ GL_STENCIL_REF_COMMAND_NV 0x000c
+ GL_LINE_WIDTH_COMMAND_NV 0x000d
+ GL_POLYGON_OFFSET_COMMAND_NV 0x000e
+ GL_ALPHA_REF_COMMAND_NV 0x000f
+ GL_VIEWPORT_COMMAND_NV 0x0010
+ GL_SCISSOR_COMMAND_NV 0x0011
+ GL_FRONT_FACE_COMMAND_NV 0x0012
+ void glCallCommandListNV (GLuint list)
+ void glCommandListSegmentsNV (GLuint list, GLuint segments)
+ void glCompileCommandListNV (GLuint list)
+ void glCreateCommandListsNV (GLsizei n, GLuint* lists)
+ void glCreateStatesNV (GLsizei n, GLuint* states)
+ void glDeleteCommandListsNV (GLsizei n, const GLuint* lists)
+ void glDeleteStatesNV (GLsizei n, const GLuint* states)
+ void glDrawCommandsAddressNV (GLenum primitiveMode, const GLuint64* indirects, const GLsizei* sizes, GLuint count)
+ void glDrawCommandsNV (GLenum primitiveMode, GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, GLuint count)
+ void glDrawCommandsStatesAddressNV (const GLuint64* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count)
+ void glDrawCommandsStatesNV (GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count)
+ GLuint glGetCommandHeaderNV (GLenum tokenID, GLuint size)
+ GLushort glGetStageIndexNV (GLenum shadertype)
+ GLboolean glIsCommandListNV (GLuint list)
+ GLboolean glIsStateNV (GLuint state)
+ void glListDrawCommandsStatesClientNV (GLuint list, GLuint segment, const void** indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count)
+ void glStateCaptureNV (GLuint state, GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_compute_program5 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_compute_program5
new file mode 100644
index 0000000..ddca154
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_compute_program5
@@ -0,0 +1,6 @@
+GL_NV_compute_program5
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_compute_program5.txt
+GL_NV_compute_program5
+
+ GL_COMPUTE_PROGRAM_NV 0x90FB
+ GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_compute_shader_derivatives b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_compute_shader_derivatives
new file mode 100644
index 0000000..7b6886c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_compute_shader_derivatives
@@ -0,0 +1,4 @@
+GL_NV_compute_shader_derivatives
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_compute_shader_derivatives.txt
+GL_NV_compute_shader_derivatives
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conditional_render b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conditional_render
new file mode 100644
index 0000000..62a4e34
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conditional_render
@@ -0,0 +1,10 @@
+GL_NV_conditional_render
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_conditional_render.txt
+GL_NV_conditional_render
+
+ GL_QUERY_WAIT_NV 0x8E13
+ GL_QUERY_NO_WAIT_NV 0x8E14
+ GL_QUERY_BY_REGION_WAIT_NV 0x8E15
+ GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16
+ void glBeginConditionalRenderNV (GLuint id, GLenum mode)
+ void glEndConditionalRenderNV (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster
new file mode 100644
index 0000000..70afbc0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster
@@ -0,0 +1,9 @@
+GL_NV_conservative_raster
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_conservative_raster.txt
+GL_NV_conservative_raster
+
+ GL_CONSERVATIVE_RASTERIZATION_NV 0x9346
+ GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347
+ GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348
+ GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349
+ void glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybits)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_dilate b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_dilate
new file mode 100644
index 0000000..394ed9e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_dilate
@@ -0,0 +1,8 @@
+GL_NV_conservative_raster_dilate
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_conservative_raster_dilate.txt
+GL_NV_conservative_raster_dilate
+
+ GL_CONSERVATIVE_RASTER_DILATE_NV 0x9379
+ GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV 0x937A
+ GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV 0x937B
+ void glConservativeRasterParameterfNV (GLenum pname, GLfloat value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_pre_snap b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_pre_snap
new file mode 100644
index 0000000..5f361a2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_pre_snap
@@ -0,0 +1,5 @@
+GL_NV_conservative_raster_pre_snap
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_conservative_raster_pre_snap.txt
+GL_NV_conservative_raster_pre_snap
+
+ GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_pre_snap_triangles b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_pre_snap_triangles
new file mode 100644
index 0000000..9dd4457
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_pre_snap_triangles
@@ -0,0 +1,8 @@
+GL_NV_conservative_raster_pre_snap_triangles
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_conservative_raster_pre_snap_triangles.txt
+GL_NV_conservative_raster_pre_snap_triangles
+
+ GL_CONSERVATIVE_RASTER_MODE_NV 0x954D
+ GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E
+ GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F
+ void glConservativeRasterParameteriNV (GLenum pname, GLint param)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_underestimation b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_underestimation
new file mode 100644
index 0000000..900435f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_conservative_raster_underestimation
@@ -0,0 +1,4 @@
+GL_NV_conservative_raster_underestimation
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_conservative_raster_underestimation.txt
+GL_NV_conservative_raster_underestimation
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_buffer
new file mode 100644
index 0000000..9cbd6ec
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_buffer
@@ -0,0 +1,7 @@
+GL_NV_copy_buffer
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_copy_buffer.txt
+GL_NV_copy_buffer
+
+ GL_COPY_READ_BUFFER_NV 0x8F36
+ GL_COPY_WRITE_BUFFER_NV 0x8F37
+ void glCopyBufferSubDataNV (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_depth_to_color b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_depth_to_color
new file mode 100644
index 0000000..c11c4d8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_depth_to_color
@@ -0,0 +1,6 @@
+GL_NV_copy_depth_to_color
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_copy_depth_to_color.txt
+GL_NV_copy_depth_to_color
+
+ GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
+ GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_image b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_image
new file mode 100644
index 0000000..8c7b610
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_copy_image
@@ -0,0 +1,5 @@
+GL_NV_copy_image
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_copy_image.txt
+GL_NV_copy_image
+
+ void glCopyImageSubDataNV (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_deep_texture3D b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_deep_texture3D
new file mode 100644
index 0000000..d55fc35
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_deep_texture3D
@@ -0,0 +1,6 @@
+GL_NV_deep_texture3D
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_deep_texture3D.txt
+GL_NV_deep_texture3D
+
+ GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0
+ GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_buffer_float b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_buffer_float
new file mode 100644
index 0000000..421d266
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_buffer_float
@@ -0,0 +1,11 @@
+GL_NV_depth_buffer_float
+http://developer.download.nvidia.com/opengl/specs/GL_NV_depth_buffer_float.txt
+GL_NV_depth_buffer_float
+
+ GL_DEPTH_COMPONENT32F_NV 0x8DAB
+ GL_DEPTH32F_STENCIL8_NV 0x8DAC
+ GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD
+ GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF
+ void glDepthRangedNV (GLdouble zNear, GLdouble zFar)
+ void glClearDepthdNV (GLdouble depth)
+ void glDepthBoundsdNV (GLdouble zmin, GLdouble zmax)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_clamp
new file mode 100644
index 0000000..df48d4e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_clamp
@@ -0,0 +1,5 @@
+GL_NV_depth_clamp
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_depth_clamp.txt
+GL_NV_depth_clamp
+
+ GL_DEPTH_CLAMP_NV 0x864F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_nonlinear b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_nonlinear
new file mode 100644
index 0000000..b215e77
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_nonlinear
@@ -0,0 +1,5 @@
+GL_NV_depth_nonlinear
+https://www.khronos.org/registry/OpenGL/extensions/NV/EGL_NV_depth_nonlinear.txt
+GL_NV_depth_nonlinear
+
+ GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_range_unclamped b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_range_unclamped
new file mode 100644
index 0000000..b63a0ee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_depth_range_unclamped
@@ -0,0 +1,9 @@
+GL_NV_depth_range_unclamped
+
+GL_NV_depth_range_unclamped
+
+ GL_SAMPLE_COUNT_BITS_NV 0x8864
+ GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865
+ GL_QUERY_RESULT_NV 0x8866
+ GL_QUERY_RESULT_AVAILABLE_NV 0x8867
+ GL_SAMPLE_COUNT_NV 0x8914
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_buffers b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_buffers
new file mode 100644
index 0000000..8f664c0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_buffers
@@ -0,0 +1,38 @@
+GL_NV_draw_buffers
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_draw_buffers.txt
+GL_NV_draw_buffers
+
+ GL_MAX_DRAW_BUFFERS_NV 0x8824
+ GL_DRAW_BUFFER0_NV 0x8825
+ GL_DRAW_BUFFER1_NV 0x8826
+ GL_DRAW_BUFFER2_NV 0x8827
+ GL_DRAW_BUFFER3_NV 0x8828
+ GL_DRAW_BUFFER4_NV 0x8829
+ GL_DRAW_BUFFER5_NV 0x882A
+ GL_DRAW_BUFFER6_NV 0x882B
+ GL_DRAW_BUFFER7_NV 0x882C
+ GL_DRAW_BUFFER8_NV 0x882D
+ GL_DRAW_BUFFER9_NV 0x882E
+ GL_DRAW_BUFFER10_NV 0x882F
+ GL_DRAW_BUFFER11_NV 0x8830
+ GL_DRAW_BUFFER12_NV 0x8831
+ GL_DRAW_BUFFER13_NV 0x8832
+ GL_DRAW_BUFFER14_NV 0x8833
+ GL_DRAW_BUFFER15_NV 0x8834
+ GL_COLOR_ATTACHMENT0_NV 0x8CE0
+ GL_COLOR_ATTACHMENT1_NV 0x8CE1
+ GL_COLOR_ATTACHMENT2_NV 0x8CE2
+ GL_COLOR_ATTACHMENT3_NV 0x8CE3
+ GL_COLOR_ATTACHMENT4_NV 0x8CE4
+ GL_COLOR_ATTACHMENT5_NV 0x8CE5
+ GL_COLOR_ATTACHMENT6_NV 0x8CE6
+ GL_COLOR_ATTACHMENT7_NV 0x8CE7
+ GL_COLOR_ATTACHMENT8_NV 0x8CE8
+ GL_COLOR_ATTACHMENT9_NV 0x8CE9
+ GL_COLOR_ATTACHMENT10_NV 0x8CEA
+ GL_COLOR_ATTACHMENT11_NV 0x8CEB
+ GL_COLOR_ATTACHMENT12_NV 0x8CEC
+ GL_COLOR_ATTACHMENT13_NV 0x8CED
+ GL_COLOR_ATTACHMENT14_NV 0x8CEE
+ GL_COLOR_ATTACHMENT15_NV 0x8CEF
+ void glDrawBuffersNV (GLsizei n, const GLenum* bufs)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_instanced b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_instanced
new file mode 100644
index 0000000..0de9a2b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_instanced
@@ -0,0 +1,6 @@
+GL_NV_draw_instanced
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_draw_instanced.txt
+GL_NV_draw_instanced
+
+ void glDrawArraysInstancedNV (GLenum mode, GLint first, GLsizei count, GLsizei primcount)
+ void glDrawElementsInstancedNV (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_texture
new file mode 100644
index 0000000..a6189ee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_texture
@@ -0,0 +1,5 @@
+GL_NV_draw_texture
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_draw_texture.txt
+GL_NV_draw_texture
+
+ void glDrawTextureNV (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_vulkan_image b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_vulkan_image
new file mode 100644
index 0000000..899e510
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_draw_vulkan_image
@@ -0,0 +1,10 @@
+GL_NV_draw_vulkan_image
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_draw_vulkan_image.txt
+GL_NV_draw_vulkan_image
+
+ void glDrawVkImageNV (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1)
+ GLVULKANPROCNV glGetVkProcAddrNV (const GLchar* name)
+ void glSignalVkFenceNV (GLuint64 vkFence)
+ void glSignalVkSemaphoreNV (GLuint64 vkSemaphore)
+ void glWaitVkSemaphoreNV (GLuint64 vkSemaphore)
+ typedef void (APIENTRY *GLVULKANPROCNV)(void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_evaluators b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_evaluators
new file mode 100644
index 0000000..63bd9bc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_evaluators
@@ -0,0 +1,37 @@
+GL_NV_evaluators
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_evaluators.txt
+GL_NV_evaluators
+
+ GL_EVAL_2D_NV 0x86C0
+ GL_EVAL_TRIANGULAR_2D_NV 0x86C1
+ GL_MAP_TESSELLATION_NV 0x86C2
+ GL_MAP_ATTRIB_U_ORDER_NV 0x86C3
+ GL_MAP_ATTRIB_V_ORDER_NV 0x86C4
+ GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5
+ GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6
+ GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7
+ GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8
+ GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9
+ GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA
+ GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB
+ GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC
+ GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD
+ GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE
+ GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF
+ GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0
+ GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1
+ GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2
+ GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3
+ GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4
+ GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5
+ GL_MAX_MAP_TESSELLATION_NV 0x86D6
+ GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7
+ void glEvalMapsNV (GLenum target, GLenum mode)
+ void glGetMapAttribParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat* params)
+ void glGetMapAttribParameterivNV (GLenum target, GLuint index, GLenum pname, GLint* params)
+ void glGetMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points)
+ void glGetMapParameterfvNV (GLenum target, GLenum pname, GLfloat* params)
+ void glGetMapParameterivNV (GLenum target, GLenum pname, GLint* params)
+ void glMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points)
+ void glMapParameterfvNV (GLenum target, GLenum pname, const GLfloat* params)
+ void glMapParameterivNV (GLenum target, GLenum pname, const GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_explicit_attrib_location b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_explicit_attrib_location
new file mode 100644
index 0000000..f5095f7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_explicit_attrib_location
@@ -0,0 +1,4 @@
+GL_NV_explicit_attrib_location
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_explicit_attrib_location.txt
+GL_NV_explicit_attrib_location
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_explicit_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_explicit_multisample
new file mode 100644
index 0000000..243fe3b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_explicit_multisample
@@ -0,0 +1,17 @@
+GL_NV_explicit_multisample
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_explicit_multisample.txt
+GL_NV_explicit_multisample
+
+ GL_SAMPLE_POSITION_NV 0x8E50
+ GL_SAMPLE_MASK_NV 0x8E51
+ GL_SAMPLE_MASK_VALUE_NV 0x8E52
+ GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53
+ GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54
+ GL_TEXTURE_RENDERBUFFER_NV 0x8E55
+ GL_SAMPLER_RENDERBUFFER_NV 0x8E56
+ GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57
+ GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58
+ GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59
+ void glGetMultisamplefvNV (GLenum pname, GLuint index, GLfloat* val)
+ void glSampleMaskIndexedNV (GLuint index, GLbitfield mask)
+ void glTexRenderbufferNV (GLenum target, GLuint renderbuffer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fbo_color_attachments b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fbo_color_attachments
new file mode 100644
index 0000000..fb96200
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fbo_color_attachments
@@ -0,0 +1,21 @@
+GL_NV_fbo_color_attachments
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_fbo_color_attachments.txt
+GL_NV_fbo_color_attachments
+
+ GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF
+ GL_COLOR_ATTACHMENT0_NV 0x8CE0
+ GL_COLOR_ATTACHMENT1_NV 0x8CE1
+ GL_COLOR_ATTACHMENT2_NV 0x8CE2
+ GL_COLOR_ATTACHMENT3_NV 0x8CE3
+ GL_COLOR_ATTACHMENT4_NV 0x8CE4
+ GL_COLOR_ATTACHMENT5_NV 0x8CE5
+ GL_COLOR_ATTACHMENT6_NV 0x8CE6
+ GL_COLOR_ATTACHMENT7_NV 0x8CE7
+ GL_COLOR_ATTACHMENT8_NV 0x8CE8
+ GL_COLOR_ATTACHMENT9_NV 0x8CE9
+ GL_COLOR_ATTACHMENT10_NV 0x8CEA
+ GL_COLOR_ATTACHMENT11_NV 0x8CEB
+ GL_COLOR_ATTACHMENT12_NV 0x8CEC
+ GL_COLOR_ATTACHMENT13_NV 0x8CED
+ GL_COLOR_ATTACHMENT14_NV 0x8CEE
+ GL_COLOR_ATTACHMENT15_NV 0x8CEF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fence b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fence
new file mode 100644
index 0000000..edd53d0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fence
@@ -0,0 +1,14 @@
+GL_NV_fence
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_fence.txt
+GL_NV_fence
+
+ GL_ALL_COMPLETED_NV 0x84F2
+ GL_FENCE_STATUS_NV 0x84F3
+ GL_FENCE_CONDITION_NV 0x84F4
+ void glDeleteFencesNV (GLsizei n, const GLuint* fences)
+ void glFinishFenceNV (GLuint fence)
+ void glGenFencesNV (GLsizei n, GLuint* fences)
+ void glGetFenceivNV (GLuint fence, GLenum pname, GLint* params)
+ GLboolean glIsFenceNV (GLuint fence)
+ void glSetFenceNV (GLuint fence, GLenum condition)
+ GLboolean glTestFenceNV (GLuint fence)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fill_rectangle b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fill_rectangle
new file mode 100644
index 0000000..d008a3a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fill_rectangle
@@ -0,0 +1,5 @@
+GL_NV_fill_rectangle
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_fill_rectangle.txt
+GL_NV_fill_rectangle
+
+ GL_FILL_RECTANGLE_NV 0x933C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_float_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_float_buffer
new file mode 100644
index 0000000..5fc2128
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_float_buffer
@@ -0,0 +1,19 @@
+GL_NV_float_buffer
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_float_buffer.txt
+GL_NV_float_buffer
+
+ GL_FLOAT_R_NV 0x8880
+ GL_FLOAT_RG_NV 0x8881
+ GL_FLOAT_RGB_NV 0x8882
+ GL_FLOAT_RGBA_NV 0x8883
+ GL_FLOAT_R16_NV 0x8884
+ GL_FLOAT_R32_NV 0x8885
+ GL_FLOAT_RG16_NV 0x8886
+ GL_FLOAT_RG32_NV 0x8887
+ GL_FLOAT_RGB16_NV 0x8888
+ GL_FLOAT_RGB32_NV 0x8889
+ GL_FLOAT_RGBA16_NV 0x888A
+ GL_FLOAT_RGBA32_NV 0x888B
+ GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
+ GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
+ GL_FLOAT_RGBA_MODE_NV 0x888E
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fog_distance b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fog_distance
new file mode 100644
index 0000000..2a1dadb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fog_distance
@@ -0,0 +1,7 @@
+GL_NV_fog_distance
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_fog_distance.txt
+GL_NV_fog_distance
+
+ GL_FOG_DISTANCE_MODE_NV 0x855A
+ GL_EYE_RADIAL_NV 0x855B
+ GL_EYE_PLANE_ABSOLUTE_NV 0x855C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_coverage_to_color b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_coverage_to_color
new file mode 100644
index 0000000..c3b869b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_coverage_to_color
@@ -0,0 +1,7 @@
+GL_NV_fragment_coverage_to_color
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_fragment_coverage_to_color.txt
+GL_NV_fragment_coverage_to_color
+
+ GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD
+ GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE
+ void glFragmentCoverageColorNV (GLuint color)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program
new file mode 100644
index 0000000..4421863
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program
@@ -0,0 +1,16 @@
+GL_NV_fragment_program
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_fragment_program.txt
+GL_NV_fragment_program
+
+ GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
+ GL_FRAGMENT_PROGRAM_NV 0x8870
+ GL_MAX_TEXTURE_COORDS_NV 0x8871
+ GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872
+ GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873
+ GL_PROGRAM_ERROR_STRING_NV 0x8874
+ void glGetProgramNamedParameterdvNV (GLuint id, GLsizei len, const GLubyte* name, GLdouble *params)
+ void glGetProgramNamedParameterfvNV (GLuint id, GLsizei len, const GLubyte* name, GLfloat *params)
+ void glProgramNamedParameter4dNV (GLuint id, GLsizei len, const GLubyte* name, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glProgramNamedParameter4dvNV (GLuint id, GLsizei len, const GLubyte* name, const GLdouble v[])
+ void glProgramNamedParameter4fNV (GLuint id, GLsizei len, const GLubyte* name, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glProgramNamedParameter4fvNV (GLuint id, GLsizei len, const GLubyte* name, const GLfloat v[])
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program2 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program2
new file mode 100644
index 0000000..79d4b63
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program2
@@ -0,0 +1,9 @@
+GL_NV_fragment_program2
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program2.txt
+GL_NV_fragment_program2
+
+ GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
+ GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
+ GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6
+ GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7
+ GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program4 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program4
new file mode 100644
index 0000000..edd4383
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program4
@@ -0,0 +1,4 @@
+GL_NV_fragment_program4
+http://developer.download.nvidia.com/opengl/specs/GL_NV_fragment_program4.txt
+GL_NV_gpu_program4
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program_option b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program_option
new file mode 100644
index 0000000..01b8ed6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_program_option
@@ -0,0 +1,4 @@
+GL_NV_fragment_program_option
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program_option.txt
+GL_NV_fragment_program_option
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_shader_barycentric b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_shader_barycentric
new file mode 100644
index 0000000..562bee5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_shader_barycentric
@@ -0,0 +1,4 @@
+GL_NV_fragment_shader_barycentric
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_fragment_shader_barycentric.txt
+GL_NV_fragment_shader_barycentric
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_shader_interlock b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_shader_interlock
new file mode 100644
index 0000000..87fbfbb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_fragment_shader_interlock
@@ -0,0 +1,4 @@
+GL_NV_fragment_shader_interlock
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_fragment_shader_interlock.txt
+GL_NV_fragment_shader_interlock
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_blit b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_blit
new file mode 100644
index 0000000..f27ab32
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_blit
@@ -0,0 +1,9 @@
+GL_NV_framebuffer_blit
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_framebuffer_blit.txt
+GL_NV_framebuffer_blit
+
+ GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6
+ GL_READ_FRAMEBUFFER_NV 0x8CA8
+ GL_DRAW_FRAMEBUFFER_NV 0x8CA9
+ GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA
+ void glBlitFramebufferNV (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_mixed_samples b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_mixed_samples
new file mode 100644
index 0000000..23e73a1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_mixed_samples
@@ -0,0 +1,18 @@
+GL_NV_framebuffer_mixed_samples
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_framebuffer_mixed_samples.txt
+GL_NV_framebuffer_mixed_samples
+
+ GL_COLOR_SAMPLES_NV 0x8E20
+ GL_RASTER_MULTISAMPLE_EXT 0x9327
+ GL_RASTER_SAMPLES_EXT 0x9328
+ GL_MAX_RASTER_SAMPLES_EXT 0x9329
+ GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A
+ GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B
+ GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C
+ GL_DEPTH_SAMPLES_NV 0x932D
+ GL_STENCIL_SAMPLES_NV 0x932E
+ GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F
+ GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330
+ GL_COVERAGE_MODULATION_TABLE_NV 0x9331
+ GL_COVERAGE_MODULATION_NV 0x9332
+ GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_multisample
new file mode 100644
index 0000000..7531b93
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_multisample
@@ -0,0 +1,8 @@
+GL_NV_framebuffer_multisample
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_framebuffer_multisample.txt
+GL_NV_framebuffer_multisample
+
+ GL_RENDERBUFFER_SAMPLES_NV 0x8CAB
+ GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56
+ GL_MAX_SAMPLES_NV 0x8D57
+ void glRenderbufferStorageMultisampleNV (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_multisample_coverage b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_multisample_coverage
new file mode 100644
index 0000000..526d0f0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_framebuffer_multisample_coverage
@@ -0,0 +1,9 @@
+GL_NV_framebuffer_multisample_coverage
+http://developer.download.nvidia.com/opengl/specs/GL_NV_framebuffer_multisample_coverage.txt
+GL_NV_framebuffer_multisample_coverage
+
+ GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
+ GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10
+ GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11
+ GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12
+ void glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_generate_mipmap_sRGB b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_generate_mipmap_sRGB
new file mode 100644
index 0000000..82e75fe
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_generate_mipmap_sRGB
@@ -0,0 +1,4 @@
+GL_NV_generate_mipmap_sRGB
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_generate_mipmap_sRGB.txt
+GL_NV_generate_mipmap_sRGB
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_program4 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_program4
new file mode 100644
index 0000000..a6cb164
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_program4
@@ -0,0 +1,8 @@
+GL_NV_geometry_program4
+http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_program4.txt
+GL_NV_gpu_program4
+
+ GL_GEOMETRY_PROGRAM_NV 0x8C26
+ GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27
+ GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
+ void glProgramVertexLimitNV (GLenum target, GLint limit)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_shader4 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_shader4
new file mode 100644
index 0000000..1b00429
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_shader4
@@ -0,0 +1,4 @@
+GL_NV_geometry_shader4
+http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_shader4.txt
+GL_NV_geometry_shader4
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_shader_passthrough b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_shader_passthrough
new file mode 100644
index 0000000..0aeeee9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_geometry_shader_passthrough
@@ -0,0 +1,4 @@
+GL_NV_geometry_shader_passthrough
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_geometry_shader_passthrough.txt
+GL_NV_geometry_shader_passthrough
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_multicast b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_multicast
new file mode 100644
index 0000000..3e6ee0b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_multicast
@@ -0,0 +1,21 @@
+GL_NV_gpu_multicast
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_gpu_multicast.txt
+GL_NV_gpu_multicast
+
+ GL_PER_GPU_STORAGE_BIT_NV 0x0800
+ GL_MULTICAST_GPUS_NV 0x92BA
+ GL_PER_GPU_STORAGE_NV 0x9548
+ GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549
+ GL_RENDER_GPU_MASK_NV 0x9558
+ void glMulticastBarrierNV (void)
+ void glMulticastBlitFramebufferNV (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+ void glMulticastBufferSubDataNV (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)
+ void glMulticastCopyBufferSubDataNV (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+ void glMulticastCopyImageSubDataNV (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
+ void glMulticastFramebufferSampleLocationsfvNV (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v)
+ void glMulticastGetQueryObjecti64vNV (GLuint gpu, GLuint id, GLenum pname, GLint64* params)
+ void glMulticastGetQueryObjectivNV (GLuint gpu, GLuint id, GLenum pname, GLint* params)
+ void glMulticastGetQueryObjectui64vNV (GLuint gpu, GLuint id, GLenum pname, GLuint64* params)
+ void glMulticastGetQueryObjectuivNV (GLuint gpu, GLuint id, GLenum pname, GLuint* params)
+ void glMulticastWaitSyncNV (GLuint signalGpu, GLbitfield waitGpuMask)
+ void glRenderGpuMaskNV (GLbitfield mask)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program4 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program4
new file mode 100644
index 0000000..19f7169
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program4
@@ -0,0 +1,24 @@
+GL_NV_gpu_program4
+http://developer.download.nvidia.com/opengl/specs/GL_NV_gpu_program4.txt
+GL_NV_gpu_program4
+
+ GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904
+ GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905
+ GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906
+ GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907
+ GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908
+ GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909
+ GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5
+ GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
+ void glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w)
+ void glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params)
+ void glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params)
+ void glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+ void glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params)
+ void glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params)
+ void glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w)
+ void glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params)
+ void glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params)
+ void glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+ void glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params)
+ void glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program5 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program5
new file mode 100644
index 0000000..68079f3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program5
@@ -0,0 +1,10 @@
+GL_NV_gpu_program5
+http://www.opengl.org/registry/specs/NV/gpu_program5.txt
+GL_NV_gpu_program5
+
+ GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A
+ GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B
+ GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C
+ GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D
+ GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E
+ GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program5_mem_extended b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program5_mem_extended
new file mode 100644
index 0000000..5187acd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program5_mem_extended
@@ -0,0 +1,4 @@
+GL_NV_gpu_program5_mem_extended
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_gpu_program5_mem_extended.txt
+GL_NV_gpu_program5_mem_extended
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program_fp64 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program_fp64
new file mode 100644
index 0000000..d759d70
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_program_fp64
@@ -0,0 +1,4 @@
+GL_NV_gpu_program_fp64
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_gpu_program5.txt
+GL_NV_gpu_program_fp64
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_shader5 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_shader5
new file mode 100644
index 0000000..a68b541
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_gpu_shader5
@@ -0,0 +1,66 @@
+GL_NV_gpu_shader5
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_gpu_shader5.txt
+GL_NV_gpu_shader5
+
+ GL_INT64_NV 0x140E
+ GL_UNSIGNED_INT64_NV 0x140F
+ GL_INT8_NV 0x8FE0
+ GL_INT8_VEC2_NV 0x8FE1
+ GL_INT8_VEC3_NV 0x8FE2
+ GL_INT8_VEC4_NV 0x8FE3
+ GL_INT16_NV 0x8FE4
+ GL_INT16_VEC2_NV 0x8FE5
+ GL_INT16_VEC3_NV 0x8FE6
+ GL_INT16_VEC4_NV 0x8FE7
+ GL_INT64_VEC2_NV 0x8FE9
+ GL_INT64_VEC3_NV 0x8FEA
+ GL_INT64_VEC4_NV 0x8FEB
+ GL_UNSIGNED_INT8_NV 0x8FEC
+ GL_UNSIGNED_INT8_VEC2_NV 0x8FED
+ GL_UNSIGNED_INT8_VEC3_NV 0x8FEE
+ GL_UNSIGNED_INT8_VEC4_NV 0x8FEF
+ GL_UNSIGNED_INT16_NV 0x8FF0
+ GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
+ GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
+ GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
+ GL_UNSIGNED_INT64_VEC2_NV 0x8FF5
+ GL_UNSIGNED_INT64_VEC3_NV 0x8FF6
+ GL_UNSIGNED_INT64_VEC4_NV 0x8FF7
+ GL_FLOAT16_NV 0x8FF8
+ GL_FLOAT16_VEC2_NV 0x8FF9
+ GL_FLOAT16_VEC3_NV 0x8FFA
+ GL_FLOAT16_VEC4_NV 0x8FFB
+ void glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT* params)
+ void glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT* params)
+ void glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x)
+ void glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT* value)
+ void glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x)
+ void glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value)
+ void glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y)
+ void glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT* value)
+ void glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y)
+ void glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value)
+ void glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z)
+ void glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT* value)
+ void glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)
+ void glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value)
+ void glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)
+ void glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT* value)
+ void glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)
+ void glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value)
+ void glUniform1i64NV (GLint location, GLint64EXT x)
+ void glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT* value)
+ void glUniform1ui64NV (GLint location, GLuint64EXT x)
+ void glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT* value)
+ void glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y)
+ void glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT* value)
+ void glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y)
+ void glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT* value)
+ void glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z)
+ void glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT* value)
+ void glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)
+ void glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT* value)
+ void glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)
+ void glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT* value)
+ void glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)
+ void glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_half_float b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_half_float
new file mode 100644
index 0000000..7640902
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_half_float
@@ -0,0 +1,52 @@
+GL_NV_half_float
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_half_float.txt
+GL_NV_half_float
+
+ GL_HALF_FLOAT_NV 0x140B
+ void glColor3hNV (GLhalf red, GLhalf green, GLhalf blue)
+ void glColor3hvNV (const GLhalf* v)
+ void glColor4hNV (GLhalf red, GLhalf green, GLhalf blue, GLhalf alpha)
+ void glColor4hvNV (const GLhalf* v)
+ void glFogCoordhNV (GLhalf fog)
+ void glFogCoordhvNV (const GLhalf* fog)
+ void glMultiTexCoord1hNV (GLenum target, GLhalf s)
+ void glMultiTexCoord1hvNV (GLenum target, const GLhalf* v)
+ void glMultiTexCoord2hNV (GLenum target, GLhalf s, GLhalf t)
+ void glMultiTexCoord2hvNV (GLenum target, const GLhalf* v)
+ void glMultiTexCoord3hNV (GLenum target, GLhalf s, GLhalf t, GLhalf r)
+ void glMultiTexCoord3hvNV (GLenum target, const GLhalf* v)
+ void glMultiTexCoord4hNV (GLenum target, GLhalf s, GLhalf t, GLhalf r, GLhalf q)
+ void glMultiTexCoord4hvNV (GLenum target, const GLhalf* v)
+ void glNormal3hNV (GLhalf nx, GLhalf ny, GLhalf nz)
+ void glNormal3hvNV (const GLhalf* v)
+ void glSecondaryColor3hNV (GLhalf red, GLhalf green, GLhalf blue)
+ void glSecondaryColor3hvNV (const GLhalf* v)
+ void glTexCoord1hNV (GLhalf s)
+ void glTexCoord1hvNV (const GLhalf* v)
+ void glTexCoord2hNV (GLhalf s, GLhalf t)
+ void glTexCoord2hvNV (const GLhalf* v)
+ void glTexCoord3hNV (GLhalf s, GLhalf t, GLhalf r)
+ void glTexCoord3hvNV (const GLhalf* v)
+ void glTexCoord4hNV (GLhalf s, GLhalf t, GLhalf r, GLhalf q)
+ void glTexCoord4hvNV (const GLhalf* v)
+ void glVertex2hNV (GLhalf x, GLhalf y)
+ void glVertex2hvNV (const GLhalf* v)
+ void glVertex3hNV (GLhalf x, GLhalf y, GLhalf z)
+ void glVertex3hvNV (const GLhalf* v)
+ void glVertex4hNV (GLhalf x, GLhalf y, GLhalf z, GLhalf w)
+ void glVertex4hvNV (const GLhalf* v)
+ void glVertexAttrib1hNV (GLuint index, GLhalf x)
+ void glVertexAttrib1hvNV (GLuint index, const GLhalf* v)
+ void glVertexAttrib2hNV (GLuint index, GLhalf x, GLhalf y)
+ void glVertexAttrib2hvNV (GLuint index, const GLhalf* v)
+ void glVertexAttrib3hNV (GLuint index, GLhalf x, GLhalf y, GLhalf z)
+ void glVertexAttrib3hvNV (GLuint index, const GLhalf* v)
+ void glVertexAttrib4hNV (GLuint index, GLhalf x, GLhalf y, GLhalf z, GLhalf w)
+ void glVertexAttrib4hvNV (GLuint index, const GLhalf* v)
+ void glVertexAttribs1hvNV (GLuint index, GLsizei n, const GLhalf* v)
+ void glVertexAttribs2hvNV (GLuint index, GLsizei n, const GLhalf* v)
+ void glVertexAttribs3hvNV (GLuint index, GLsizei n, const GLhalf* v)
+ void glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalf* v)
+ void glVertexWeighthNV (GLhalf weight)
+ void glVertexWeighthvNV (const GLhalf* weight)
+ typedef unsigned short GLhalf
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_image_formats b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_image_formats
new file mode 100644
index 0000000..f6d8f97
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_image_formats
@@ -0,0 +1,4 @@
+GL_NV_image_formats
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_image_formats.txt
+GL_NV_image_formats
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_instanced_arrays b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_instanced_arrays
new file mode 100644
index 0000000..a05b1a7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_instanced_arrays
@@ -0,0 +1,6 @@
+GL_NV_instanced_arrays
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_instanced_arrays.txt
+GL_NV_instanced_arrays
+
+ GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE
+ void glVertexAttribDivisorNV (GLuint index, GLuint divisor)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_internalformat_sample_query b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_internalformat_sample_query
new file mode 100644
index 0000000..d3dc53d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_internalformat_sample_query
@@ -0,0 +1,9 @@
+GL_NV_internalformat_sample_query
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_internalformat_sample_query.txt
+GL_NV_internalformat_sample_query
+
+ GL_MULTISAMPLES_NV 0x9371
+ GL_SUPERSAMPLE_SCALE_X_NV 0x9372
+ GL_SUPERSAMPLE_SCALE_Y_NV 0x9373
+ GL_CONFORMANT_NV 0x9374
+ void glGetInternalformatSampleivNV (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_light_max_exponent b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_light_max_exponent
new file mode 100644
index 0000000..c455a24
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_light_max_exponent
@@ -0,0 +1,6 @@
+GL_NV_light_max_exponent
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_light_max_exponent.txt
+GL_NV_light_max_exponent
+
+ GL_MAX_SHININESS_NV 0x8504
+ GL_MAX_SPOT_EXPONENT_NV 0x8505
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_memory_attachment b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_memory_attachment
new file mode 100644
index 0000000..ee54164
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_memory_attachment
@@ -0,0 +1,20 @@
+GL_NV_memory_attachment
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_memory_attachment.txt
+GL_NV_memory_attachment
+
+ GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4
+ GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5
+ GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6
+ GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7
+ GL_MEMORY_ATTACHABLE_NV 0x95A8
+ GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9
+ GL_DETACHED_TEXTURES_NV 0x95AA
+ GL_DETACHED_BUFFERS_NV 0x95AB
+ GL_MAX_DETACHED_TEXTURES_NV 0x95AC
+ GL_MAX_DETACHED_BUFFERS_NV 0x95AD
+ void glBufferAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset)
+ void glGetMemoryObjectDetachedResourcesuivNV (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint* params)
+ void glNamedBufferAttachMemoryNV (GLuint buffer, GLuint memory, GLuint64 offset)
+ void glResetMemoryObjectParameterNV (GLuint memory, GLenum pname)
+ void glTexAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset)
+ void glTextureAttachMemoryNV (GLuint texture, GLuint memory, GLuint64 offset)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_memory_object_sparse b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_memory_object_sparse
new file mode 100644
index 0000000..7c71774
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_memory_object_sparse
@@ -0,0 +1,8 @@
+GL_NV_memory_object_sparse
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_memory_object_sparse.txt
+GL_NV_memory_object_sparse
+
+ void glBufferPageCommitmentMemNV (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit)
+ void glNamedBufferPageCommitmentMemNV (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit)
+ void glTexPageCommitmentMemNV (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit)
+ void glTexturePageCommitmentMemNV (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_mesh_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_mesh_shader
new file mode 100644
index 0000000..6254e1f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_mesh_shader
@@ -0,0 +1,56 @@
+GL_NV_mesh_shader
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_mesh_shader.txt
+GL_NV_mesh_shader
+
+ GL_MESH_SHADER_BIT_NV 0x00000040
+ GL_TASK_SHADER_BIT_NV 0x00000080
+ GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60
+ GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61
+ GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62
+ GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63
+ GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64
+ GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65
+ GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66
+ GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67
+ GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68
+ GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69
+ GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A
+ GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B
+ GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C
+ GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D
+ GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E
+ GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F
+ GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF
+ GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536
+ GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537
+ GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538
+ GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539
+ GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A
+ GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B
+ GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C
+ GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D
+ GL_MESH_WORK_GROUP_SIZE_NV 0x953E
+ GL_TASK_WORK_GROUP_SIZE_NV 0x953F
+ GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543
+ GL_MAX_MESH_VIEWS_NV 0x9557
+ GL_MESH_SHADER_NV 0x9559
+ GL_TASK_SHADER_NV 0x955A
+ GL_MESH_VERTICES_OUT_NV 0x9579
+ GL_MESH_PRIMITIVES_OUT_NV 0x957A
+ GL_MESH_OUTPUT_TYPE_NV 0x957B
+ GL_MESH_SUBROUTINE_NV 0x957C
+ GL_TASK_SUBROUTINE_NV 0x957D
+ GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E
+ GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F
+ GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C
+ GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F
+ GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0
+ GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1
+ GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2
+ GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3
+ void glDrawMeshTasksIndirectNV (GLintptr indirect)
+ void glDrawMeshTasksNV (GLuint first, GLuint count)
+ void glMultiDrawMeshTasksIndirectCountNV (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)
+ void glMultiDrawMeshTasksIndirectNV (GLintptr indirect, GLsizei drawcount, GLsizei stride)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_multisample_coverage b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_multisample_coverage
new file mode 100644
index 0000000..9f2add6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_multisample_coverage
@@ -0,0 +1,5 @@
+GL_NV_multisample_coverage
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_multisample_coverage.txt
+GL_NV_multisample_coverage
+
+ GL_COLOR_SAMPLES_NV 0x8E20
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_multisample_filter_hint b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_multisample_filter_hint
new file mode 100644
index 0000000..b21dba3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_multisample_filter_hint
@@ -0,0 +1,5 @@
+GL_NV_multisample_filter_hint
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_multisample_filter_hint.txt
+GL_NV_multisample_filter_hint
+
+ GL_MULTISAMPLE_FILTER_HINT_NV 0x8534
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_non_square_matrices b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_non_square_matrices
new file mode 100644
index 0000000..3fd6b78
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_non_square_matrices
@@ -0,0 +1,16 @@
+GL_NV_non_square_matrices
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_non_square_matrices.txt
+GL_NV_non_square_matrices
+
+ GL_FLOAT_MAT2x3_NV 0x8B65
+ GL_FLOAT_MAT2x4_NV 0x8B66
+ GL_FLOAT_MAT3x2_NV 0x8B67
+ GL_FLOAT_MAT3x4_NV 0x8B68
+ GL_FLOAT_MAT4x2_NV 0x8B69
+ GL_FLOAT_MAT4x3_NV 0x8B6A
+ void glUniformMatrix2x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUniformMatrix2x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUniformMatrix3x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUniformMatrix3x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUniformMatrix4x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+ void glUniformMatrix4x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_occlusion_query b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_occlusion_query
new file mode 100644
index 0000000..8ecd77a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_occlusion_query
@@ -0,0 +1,15 @@
+GL_NV_occlusion_query
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_occlusion_query.txt
+GL_NV_occlusion_query
+
+ GL_PIXEL_COUNTER_BITS_NV 0x8864
+ GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
+ GL_PIXEL_COUNT_NV 0x8866
+ GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
+ void glBeginOcclusionQueryNV (GLuint id)
+ void glDeleteOcclusionQueriesNV (GLsizei n, const GLuint* ids)
+ void glEndOcclusionQueryNV (void)
+ void glGenOcclusionQueriesNV (GLsizei n, GLuint* ids)
+ void glGetOcclusionQueryivNV (GLuint id, GLenum pname, GLint* params)
+ void glGetOcclusionQueryuivNV (GLuint id, GLenum pname, GLuint* params)
+ GLboolean glIsOcclusionQueryNV (GLuint id)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_pack_subimage b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_pack_subimage
new file mode 100644
index 0000000..2e8488c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_pack_subimage
@@ -0,0 +1,7 @@
+GL_NV_pack_subimage
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_pack_subimage.txt
+GL_NV_pack_subimage
+
+ GL_PACK_ROW_LENGTH_NV 0x0D02
+ GL_PACK_SKIP_ROWS_NV 0x0D03
+ GL_PACK_SKIP_PIXELS_NV 0x0D04
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_depth_stencil b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_depth_stencil
new file mode 100644
index 0000000..10d567d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_depth_stencil
@@ -0,0 +1,6 @@
+GL_NV_packed_depth_stencil
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_packed_depth_stencil.txt
+GL_NV_packed_depth_stencil
+
+ GL_DEPTH_STENCIL_NV 0x84F9
+ GL_UNSIGNED_INT_24_8_NV 0x84FA
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_float b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_float
new file mode 100644
index 0000000..2cac7d2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_float
@@ -0,0 +1,6 @@
+GL_NV_packed_float
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_packed_float.txt
+GL_NV_packed_float
+
+ GL_R11F_G11F_B10F_NV 0x8C3A
+ GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_float_linear b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_float_linear
new file mode 100644
index 0000000..b5bce68
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_packed_float_linear
@@ -0,0 +1,6 @@
+GL_NV_packed_float_linear
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_packed_float.txt
+GL_NV_packed_float_linear
+
+ GL_R11F_G11F_B10F_NV 0x8C3A
+ GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_parameter_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_parameter_buffer_object
new file mode 100644
index 0000000..91494e3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_parameter_buffer_object
@@ -0,0 +1,12 @@
+GL_NV_parameter_buffer_object
+http://developer.download.nvidia.com/opengl/specs/GL_NV_parameter_buffer_object.txt
+GL_NV_parameter_buffer_object
+
+ GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
+ GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3
+ GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4
+ GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
+ GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
+ void glProgramBufferParametersfvNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params)
+ void glProgramBufferParametersIivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params)
+ void glProgramBufferParametersIuivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_parameter_buffer_object2 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_parameter_buffer_object2
new file mode 100644
index 0000000..f0cbce2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_parameter_buffer_object2
@@ -0,0 +1,4 @@
+GL_NV_parameter_buffer_object2
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_parameter_buffer_object2.txt
+GL_NV_parameter_buffer_object2
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_path_rendering b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_path_rendering
new file mode 100644
index 0000000..4fe92a7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_path_rendering
@@ -0,0 +1,217 @@
+GL_NV_path_rendering
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_path_rendering.txt
+GL_NV_path_rendering
+
+ GL_CLOSE_PATH_NV 0x00
+ GL_BOLD_BIT_NV 0x01
+ GL_GLYPH_WIDTH_BIT_NV 0x01
+ GL_GLYPH_HEIGHT_BIT_NV 0x02
+ GL_ITALIC_BIT_NV 0x02
+ GL_MOVE_TO_NV 0x02
+ GL_RELATIVE_MOVE_TO_NV 0x03
+ GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04
+ GL_LINE_TO_NV 0x04
+ GL_RELATIVE_LINE_TO_NV 0x05
+ GL_HORIZONTAL_LINE_TO_NV 0x06
+ GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07
+ GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08
+ GL_VERTICAL_LINE_TO_NV 0x08
+ GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09
+ GL_QUADRATIC_CURVE_TO_NV 0x0A
+ GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B
+ GL_CUBIC_CURVE_TO_NV 0x0C
+ GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D
+ GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E
+ GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F
+ GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10
+ GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10
+ GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11
+ GL_SMALL_CCW_ARC_TO_NV 0x12
+ GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13
+ GL_SMALL_CW_ARC_TO_NV 0x14
+ GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15
+ GL_LARGE_CCW_ARC_TO_NV 0x16
+ GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17
+ GL_LARGE_CW_ARC_TO_NV 0x18
+ GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19
+ GL_CONIC_CURVE_TO_NV 0x1A
+ GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B
+ GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20
+ GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40
+ GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80
+ GL_ROUNDED_RECT_NV 0xE8
+ GL_RELATIVE_ROUNDED_RECT_NV 0xE9
+ GL_ROUNDED_RECT2_NV 0xEA
+ GL_RELATIVE_ROUNDED_RECT2_NV 0xEB
+ GL_ROUNDED_RECT4_NV 0xEC
+ GL_RELATIVE_ROUNDED_RECT4_NV 0xED
+ GL_ROUNDED_RECT8_NV 0xEE
+ GL_RELATIVE_ROUNDED_RECT8_NV 0xEF
+ GL_RESTART_PATH_NV 0xF0
+ GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2
+ GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4
+ GL_RECT_NV 0xF6
+ GL_RELATIVE_RECT_NV 0xF7
+ GL_CIRCULAR_CCW_ARC_TO_NV 0xF8
+ GL_CIRCULAR_CW_ARC_TO_NV 0xFA
+ GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC
+ GL_ARC_TO_NV 0xFE
+ GL_RELATIVE_ARC_TO_NV 0xFF
+ GL_GLYPH_HAS_KERNING_BIT_NV 0x100
+ GL_PRIMARY_COLOR_NV 0x852C
+ GL_SECONDARY_COLOR_NV 0x852D
+ GL_PRIMARY_COLOR 0x8577
+ GL_PATH_FORMAT_SVG_NV 0x9070
+ GL_PATH_FORMAT_PS_NV 0x9071
+ GL_STANDARD_FONT_NAME_NV 0x9072
+ GL_SYSTEM_FONT_NAME_NV 0x9073
+ GL_FILE_NAME_NV 0x9074
+ GL_PATH_STROKE_WIDTH_NV 0x9075
+ GL_PATH_END_CAPS_NV 0x9076
+ GL_PATH_INITIAL_END_CAP_NV 0x9077
+ GL_PATH_TERMINAL_END_CAP_NV 0x9078
+ GL_PATH_JOIN_STYLE_NV 0x9079
+ GL_PATH_MITER_LIMIT_NV 0x907A
+ GL_PATH_DASH_CAPS_NV 0x907B
+ GL_PATH_INITIAL_DASH_CAP_NV 0x907C
+ GL_PATH_TERMINAL_DASH_CAP_NV 0x907D
+ GL_PATH_DASH_OFFSET_NV 0x907E
+ GL_PATH_CLIENT_LENGTH_NV 0x907F
+ GL_PATH_FILL_MODE_NV 0x9080
+ GL_PATH_FILL_MASK_NV 0x9081
+ GL_PATH_FILL_COVER_MODE_NV 0x9082
+ GL_PATH_STROKE_COVER_MODE_NV 0x9083
+ GL_PATH_STROKE_MASK_NV 0x9084
+ GL_PATH_STROKE_BOUND_NV 0x9086
+ GL_COUNT_UP_NV 0x9088
+ GL_COUNT_DOWN_NV 0x9089
+ GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A
+ GL_CONVEX_HULL_NV 0x908B
+ GL_BOUNDING_BOX_NV 0x908D
+ GL_TRANSLATE_X_NV 0x908E
+ GL_TRANSLATE_Y_NV 0x908F
+ GL_TRANSLATE_2D_NV 0x9090
+ GL_TRANSLATE_3D_NV 0x9091
+ GL_AFFINE_2D_NV 0x9092
+ GL_AFFINE_3D_NV 0x9094
+ GL_TRANSPOSE_AFFINE_2D_NV 0x9096
+ GL_TRANSPOSE_AFFINE_3D_NV 0x9098
+ GL_UTF8_NV 0x909A
+ GL_UTF16_NV 0x909B
+ GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C
+ GL_PATH_COMMAND_COUNT_NV 0x909D
+ GL_PATH_COORD_COUNT_NV 0x909E
+ GL_PATH_DASH_ARRAY_COUNT_NV 0x909F
+ GL_PATH_COMPUTED_LENGTH_NV 0x90A0
+ GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1
+ GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2
+ GL_SQUARE_NV 0x90A3
+ GL_ROUND_NV 0x90A4
+ GL_TRIANGULAR_NV 0x90A5
+ GL_BEVEL_NV 0x90A6
+ GL_MITER_REVERT_NV 0x90A7
+ GL_MITER_TRUNCATE_NV 0x90A8
+ GL_SKIP_MISSING_GLYPH_NV 0x90A9
+ GL_USE_MISSING_GLYPH_NV 0x90AA
+ GL_PATH_ERROR_POSITION_NV 0x90AB
+ GL_PATH_FOG_GEN_MODE_NV 0x90AC
+ GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD
+ GL_ADJACENT_PAIRS_NV 0x90AE
+ GL_FIRST_TO_REST_NV 0x90AF
+ GL_PATH_GEN_MODE_NV 0x90B0
+ GL_PATH_GEN_COEFF_NV 0x90B1
+ GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2
+ GL_PATH_GEN_COMPONENTS_NV 0x90B3
+ GL_PATH_DASH_OFFSET_RESET_NV 0x90B4
+ GL_MOVE_TO_RESETS_NV 0x90B5
+ GL_MOVE_TO_CONTINUES_NV 0x90B6
+ GL_PATH_STENCIL_FUNC_NV 0x90B7
+ GL_PATH_STENCIL_REF_NV 0x90B8
+ GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9
+ GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD
+ GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE
+ GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF
+ GL_FONT_GLYPHS_AVAILABLE_NV 0x9368
+ GL_FONT_TARGET_UNAVAILABLE_NV 0x9369
+ GL_FONT_UNAVAILABLE_NV 0x936A
+ GL_FONT_UNINTELLIGIBLE_NV 0x936B
+ GL_STANDARD_FONT_FORMAT_NV 0x936C
+ GL_FRAGMENT_INPUT_NV 0x936D
+ GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000
+ GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000
+ GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000
+ GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000
+ GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000
+ GL_FONT_ASCENDER_BIT_NV 0x00200000
+ GL_FONT_DESCENDER_BIT_NV 0x00400000
+ GL_FONT_HEIGHT_BIT_NV 0x00800000
+ GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000
+ GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000
+ GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000
+ GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000
+ GL_FONT_HAS_KERNING_BIT_NV 0x10000000
+ GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000
+ void glCopyPathNV (GLuint resultPath, GLuint srcPath)
+ void glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)
+ void glCoverFillPathNV (GLuint path, GLenum coverMode)
+ void glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)
+ void glCoverStrokePathNV (GLuint path, GLenum coverMode)
+ void glDeletePathsNV (GLuint path, GLsizei range)
+ GLuint glGenPathsNV (GLsizei range)
+ void glGetPathColorGenfvNV (GLenum color, GLenum pname, GLfloat* value)
+ void glGetPathColorGenivNV (GLenum color, GLenum pname, GLint* value)
+ void glGetPathCommandsNV (GLuint path, GLubyte* commands)
+ void glGetPathCoordsNV (GLuint path, GLfloat* coords)
+ void glGetPathDashArrayNV (GLuint path, GLfloat* dashArray)
+ GLfloat glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments)
+ void glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics)
+ void glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics)
+ void glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat* value)
+ void glGetPathParameterivNV (GLuint path, GLenum pname, GLint* value)
+ void glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing)
+ void glGetPathTexGenfvNV (GLenum texCoordSet, GLenum pname, GLfloat* value)
+ void glGetPathTexGenivNV (GLenum texCoordSet, GLenum pname, GLint* value)
+ void glGetProgramResourcefvNV (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLfloat *params)
+ void glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight)
+ GLboolean glIsPathNV (GLuint path)
+ GLboolean glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y)
+ GLboolean glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y)
+ void glMatrixLoad3x2fNV (GLenum matrixMode, const GLfloat* m)
+ void glMatrixLoad3x3fNV (GLenum matrixMode, const GLfloat* m)
+ void glMatrixLoadTranspose3x3fNV (GLenum matrixMode, const GLfloat* m)
+ void glMatrixMult3x2fNV (GLenum matrixMode, const GLfloat* m)
+ void glMatrixMult3x3fNV (GLenum matrixMode, const GLfloat* m)
+ void glMatrixMultTranspose3x3fNV (GLenum matrixMode, const GLfloat* m)
+ void glPathColorGenNV (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat* coeffs)
+ void glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords)
+ void glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords)
+ void glPathCoverDepthFuncNV (GLenum zfunc)
+ void glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat* dashArray)
+ void glPathFogGenNV (GLenum genMode)
+ GLenum glPathGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)
+ GLenum glPathGlyphIndexRangeNV (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint* baseAndCount)
+ void glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)
+ void glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)
+ GLenum glPathMemoryGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)
+ void glPathParameterfNV (GLuint path, GLenum pname, GLfloat value)
+ void glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat* value)
+ void glPathParameteriNV (GLuint path, GLenum pname, GLint value)
+ void glPathParameterivNV (GLuint path, GLenum pname, const GLint* value)
+ void glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units)
+ void glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask)
+ void glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString)
+ void glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords)
+ void glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords)
+ void glPathTexGenNV (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat* coeffs)
+ GLboolean glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY)
+ void glProgramPathFragmentInputGenNV (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat* coeffs)
+ void glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues)
+ void glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask)
+ void glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues)
+ void glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask)
+ void glStencilThenCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)
+ void glStencilThenCoverFillPathNV (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode)
+ void glStencilThenCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)
+ void glStencilThenCoverStrokePathNV (GLuint path, GLint reference, GLuint mask, GLenum coverMode)
+ void glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat* transformValues)
+ void glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint paths[], const GLfloat weights[])
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_path_rendering_shared_edge b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_path_rendering_shared_edge
new file mode 100644
index 0000000..8d38a09
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_path_rendering_shared_edge
@@ -0,0 +1,5 @@
+GL_NV_path_rendering_shared_edge
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_path_rendering_shared_edge.txt
+GL_NV_path_rendering_shared_edge
+
+ GL_SHARED_EDGE_NV 0xC0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_pixel_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_pixel_buffer_object
new file mode 100644
index 0000000..d674a76
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_pixel_buffer_object
@@ -0,0 +1,8 @@
+GL_NV_pixel_buffer_object
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_pixel_buffer_object.txt
+GL_NV_pixel_buffer_object
+
+ GL_PIXEL_PACK_BUFFER_NV 0x88EB
+ GL_PIXEL_UNPACK_BUFFER_NV 0x88EC
+ GL_PIXEL_PACK_BUFFER_BINDING_NV 0x88ED
+ GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88EF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_pixel_data_range b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_pixel_data_range
new file mode 100644
index 0000000..14bcc7a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_pixel_data_range
@@ -0,0 +1,12 @@
+GL_NV_pixel_data_range
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_pixel_data_range.txt
+GL_NV_pixel_data_range
+
+ GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878
+ GL_READ_PIXEL_DATA_RANGE_NV 0x8879
+ GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A
+ GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B
+ GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C
+ GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D
+ void glFlushPixelDataRangeNV (GLenum target)
+ void glPixelDataRangeNV (GLenum target, GLsizei length, void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_platform_binary b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_platform_binary
new file mode 100644
index 0000000..7c91456
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_platform_binary
@@ -0,0 +1,5 @@
+GL_NV_platform_binary
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_platform_binary.txt
+GL_NV_platform_binary
+
+ GL_NVIDIA_PLATFORM_BINARY_NV 0x890B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_point_sprite b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_point_sprite
new file mode 100644
index 0000000..4cbfde7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_point_sprite
@@ -0,0 +1,9 @@
+GL_NV_point_sprite
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_point_sprite.txt
+GL_NV_point_sprite
+
+ GL_POINT_SPRITE_NV 0x8861
+ GL_COORD_REPLACE_NV 0x8862
+ GL_POINT_SPRITE_R_MODE_NV 0x8863
+ void glPointParameteriNV (GLenum pname, GLint param)
+ void glPointParameterivNV (GLenum pname, const GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_polygon_mode b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_polygon_mode
new file mode 100644
index 0000000..35c177d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_polygon_mode
@@ -0,0 +1,11 @@
+GL_NV_polygon_mode
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_polygon_mode.txt
+GL_NV_polygon_mode
+
+ GL_POLYGON_MODE_NV 0x0B40
+ GL_POINT_NV 0x1B00
+ GL_LINE_NV 0x1B01
+ GL_FILL_NV 0x1B02
+ GL_POLYGON_OFFSET_POINT_NV 0x2A01
+ GL_POLYGON_OFFSET_LINE_NV 0x2A02
+ void glPolygonModeNV (GLenum face, GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_present_video b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_present_video
new file mode 100644
index 0000000..1a5b8ce
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_present_video
@@ -0,0 +1,16 @@
+GL_NV_present_video
+http://www.opengl.org/registry/specs/NV/present_video.txt
+GL_NV_present_video
+
+ GL_FRAME_NV 0x8E26
+ GL_FIELDS_NV 0x8E27
+ GL_CURRENT_TIME_NV 0x8E28
+ GL_NUM_FILL_STREAMS_NV 0x8E29
+ GL_PRESENT_TIME_NV 0x8E2A
+ GL_PRESENT_DURATION_NV 0x8E2B
+ void glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT* params)
+ void glGetVideoivNV (GLuint video_slot, GLenum pname, GLint* params)
+ void glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT* params)
+ void glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint* params)
+ void glPresentFrameDualFillNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3)
+ void glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_primitive_restart b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_primitive_restart
new file mode 100644
index 0000000..aca79ba
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_primitive_restart
@@ -0,0 +1,8 @@
+GL_NV_primitive_restart
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_primitive_restart.txt
+GL_NV_primitive_restart
+
+ GL_PRIMITIVE_RESTART_NV 0x8558
+ GL_PRIMITIVE_RESTART_INDEX_NV 0x8559
+ void glPrimitiveRestartIndexNV (GLuint index)
+ void glPrimitiveRestartNV (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_primitive_shading_rate b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_primitive_shading_rate
new file mode 100644
index 0000000..c8fec9c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_primitive_shading_rate
@@ -0,0 +1,6 @@
+GL_NV_primitive_shading_rate
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_primitive_shading_rate.txt
+GL_NV_primitive_shading_rate
+
+ GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1
+ GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_query_resource_tag b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_query_resource_tag
new file mode 100644
index 0000000..b45a02f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_query_resource_tag
@@ -0,0 +1,4 @@
+GL_NV_query_resource_tag
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_query_resource_tag.txt
+GL_NV_query_resource_tag
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_buffer
new file mode 100644
index 0000000..980432a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_buffer
@@ -0,0 +1,6 @@
+GL_NV_read_buffer
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_read_buffer.txt
+GL_NV_read_buffer
+
+ GL_READ_BUFFER_NV 0x0C02
+ void glReadBufferNV (GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_buffer_front b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_buffer_front
new file mode 100644
index 0000000..70904f4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_buffer_front
@@ -0,0 +1,5 @@
+GL_NV_read_buffer_front
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_read_buffer.txt
+GL_NV_read_buffer_front
+
+ GL_READ_BUFFER_NV 0x0C02
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_depth b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_depth
new file mode 100644
index 0000000..3dab317
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_depth
@@ -0,0 +1,4 @@
+GL_NV_read_depth
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_read_depth_stencil.txt
+GL_NV_read_depth
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_depth_stencil b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_depth_stencil
new file mode 100644
index 0000000..0f35e80
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_depth_stencil
@@ -0,0 +1,4 @@
+GL_NV_read_depth_stencil
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_read_depth_stencil.txt
+GL_NV_read_depth_stencil
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_stencil b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_stencil
new file mode 100644
index 0000000..4a91298
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_read_stencil
@@ -0,0 +1,4 @@
+GL_NV_read_stencil
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_read_depth_stencil.txt
+GL_NV_read_stencil
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_register_combiners b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_register_combiners
new file mode 100644
index 0000000..4d90284
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_register_combiners
@@ -0,0 +1,68 @@
+GL_NV_register_combiners
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_register_combiners.txt
+GL_NV_register_combiners
+
+ GL_REGISTER_COMBINERS_NV 0x8522
+ GL_VARIABLE_A_NV 0x8523
+ GL_VARIABLE_B_NV 0x8524
+ GL_VARIABLE_C_NV 0x8525
+ GL_VARIABLE_D_NV 0x8526
+ GL_VARIABLE_E_NV 0x8527
+ GL_VARIABLE_F_NV 0x8528
+ GL_VARIABLE_G_NV 0x8529
+ GL_CONSTANT_COLOR0_NV 0x852A
+ GL_CONSTANT_COLOR1_NV 0x852B
+ GL_PRIMARY_COLOR_NV 0x852C
+ GL_SECONDARY_COLOR_NV 0x852D
+ GL_SPARE0_NV 0x852E
+ GL_SPARE1_NV 0x852F
+ GL_DISCARD_NV 0x8530
+ GL_E_TIMES_F_NV 0x8531
+ GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
+ GL_UNSIGNED_IDENTITY_NV 0x8536
+ GL_UNSIGNED_INVERT_NV 0x8537
+ GL_EXPAND_NORMAL_NV 0x8538
+ GL_EXPAND_NEGATE_NV 0x8539
+ GL_HALF_BIAS_NORMAL_NV 0x853A
+ GL_HALF_BIAS_NEGATE_NV 0x853B
+ GL_SIGNED_IDENTITY_NV 0x853C
+ GL_SIGNED_NEGATE_NV 0x853D
+ GL_SCALE_BY_TWO_NV 0x853E
+ GL_SCALE_BY_FOUR_NV 0x853F
+ GL_SCALE_BY_ONE_HALF_NV 0x8540
+ GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541
+ GL_COMBINER_INPUT_NV 0x8542
+ GL_COMBINER_MAPPING_NV 0x8543
+ GL_COMBINER_COMPONENT_USAGE_NV 0x8544
+ GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545
+ GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546
+ GL_COMBINER_MUX_SUM_NV 0x8547
+ GL_COMBINER_SCALE_NV 0x8548
+ GL_COMBINER_BIAS_NV 0x8549
+ GL_COMBINER_AB_OUTPUT_NV 0x854A
+ GL_COMBINER_CD_OUTPUT_NV 0x854B
+ GL_COMBINER_SUM_OUTPUT_NV 0x854C
+ GL_MAX_GENERAL_COMBINERS_NV 0x854D
+ GL_NUM_GENERAL_COMBINERS_NV 0x854E
+ GL_COLOR_SUM_CLAMP_NV 0x854F
+ GL_COMBINER0_NV 0x8550
+ GL_COMBINER1_NV 0x8551
+ GL_COMBINER2_NV 0x8552
+ GL_COMBINER3_NV 0x8553
+ GL_COMBINER4_NV 0x8554
+ GL_COMBINER5_NV 0x8555
+ GL_COMBINER6_NV 0x8556
+ GL_COMBINER7_NV 0x8557
+ void glCombinerInputNV (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage)
+ void glCombinerOutputNV (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum)
+ void glCombinerParameterfNV (GLenum pname, GLfloat param)
+ void glCombinerParameterfvNV (GLenum pname, const GLfloat* params)
+ void glCombinerParameteriNV (GLenum pname, GLint param)
+ void glCombinerParameterivNV (GLenum pname, const GLint* params)
+ void glFinalCombinerInputNV (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage)
+ void glGetCombinerInputParameterfvNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat* params)
+ void glGetCombinerInputParameterivNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint* params)
+ void glGetCombinerOutputParameterfvNV (GLenum stage, GLenum portion, GLenum pname, GLfloat* params)
+ void glGetCombinerOutputParameterivNV (GLenum stage, GLenum portion, GLenum pname, GLint* params)
+ void glGetFinalCombinerInputParameterfvNV (GLenum variable, GLenum pname, GLfloat* params)
+ void glGetFinalCombinerInputParameterivNV (GLenum variable, GLenum pname, GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_register_combiners2 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_register_combiners2
new file mode 100644
index 0000000..9005509
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_register_combiners2
@@ -0,0 +1,7 @@
+GL_NV_register_combiners2
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_register_combiners2.txt
+GL_NV_register_combiners2
+
+ GL_PER_STAGE_CONSTANTS_NV 0x8535
+ void glCombinerStageParameterfvNV (GLenum stage, GLenum pname, const GLfloat* params)
+ void glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname, GLfloat* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_representative_fragment_test b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_representative_fragment_test
new file mode 100644
index 0000000..a7d19db
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_representative_fragment_test
@@ -0,0 +1,5 @@
+GL_NV_representative_fragment_test
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_representative_fragment_test.txt
+GL_NV_representative_fragment_test
+
+ GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_robustness_video_memory_purge b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_robustness_video_memory_purge
new file mode 100644
index 0000000..5766321
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_robustness_video_memory_purge
@@ -0,0 +1,5 @@
+GL_NV_robustness_video_memory_purge
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_robustness_video_memory_purge.txt
+GL_NV_robustness_video_memory_purge
+
+ GL_PURGED_CONTEXT_RESET_NV 0x92BB
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_sRGB_formats b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_sRGB_formats
new file mode 100644
index 0000000..5cd7645
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_sRGB_formats
@@ -0,0 +1,14 @@
+GL_NV_sRGB_formats
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_sRGB_formats.txt
+GL_NV_sRGB_formats
+
+ GL_ETC1_SRGB8_NV 0x88EE
+ GL_SRGB8_NV 0x8C41
+ GL_SLUMINANCE_ALPHA_NV 0x8C44
+ GL_SLUMINANCE8_ALPHA8_NV 0x8C45
+ GL_SLUMINANCE_NV 0x8C46
+ GL_SLUMINANCE8_NV 0x8C47
+ GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_sample_locations b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_sample_locations
new file mode 100644
index 0000000..f3dfc98
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_sample_locations
@@ -0,0 +1,15 @@
+GL_NV_sample_locations
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_sample_locations.txt
+GL_NV_sample_locations
+
+ GL_SAMPLE_LOCATION_NV 0x8E50
+ GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D
+ GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E
+ GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F
+ GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340
+ GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341
+ GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342
+ GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343
+ void glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat* v)
+ void glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v)
+ void glResolveDepthValuesNV (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_sample_mask_override_coverage b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_sample_mask_override_coverage
new file mode 100644
index 0000000..4e184a4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_sample_mask_override_coverage
@@ -0,0 +1,4 @@
+GL_NV_sample_mask_override_coverage
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_sample_mask_override_coverage.txt
+GL_NV_sample_mask_override_coverage
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_scissor_exclusive b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_scissor_exclusive
new file mode 100644
index 0000000..dbb486c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_scissor_exclusive
@@ -0,0 +1,8 @@
+GL_NV_scissor_exclusive
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_scissor_exclusive.txt
+GL_NV_scissor_exclusive
+
+ GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555
+ GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556
+ void glScissorExclusiveArrayvNV (GLuint first, GLsizei count, const GLint* v)
+ void glScissorExclusiveNV (GLint x, GLint y, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_counters b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_counters
new file mode 100644
index 0000000..529e319
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_counters
@@ -0,0 +1,4 @@
+GL_NV_shader_atomic_counters
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_atomic_counters.txt
+GL_NV_shader_atomic_counters
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_float b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_float
new file mode 100644
index 0000000..2d122dc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_float
@@ -0,0 +1,4 @@
+GL_NV_shader_atomic_float
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_atomic_float.txt
+GL_NV_shader_atomic_float
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_float64 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_float64
new file mode 100644
index 0000000..f124742
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_float64
@@ -0,0 +1,4 @@
+GL_NV_shader_atomic_float64
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_atomic_float64.txt
+GL_NV_shader_atomic_float64
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_fp16_vector b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_fp16_vector
new file mode 100644
index 0000000..582d386
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_fp16_vector
@@ -0,0 +1,4 @@
+GL_NV_shader_atomic_fp16_vector
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_atomic_fp16_vector.txt
+GL_NV_shader_atomic_fp16_vector
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_int64 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_int64
new file mode 100644
index 0000000..4d36748
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_atomic_int64
@@ -0,0 +1,4 @@
+GL_NV_shader_atomic_int64
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_atomic_int64.txt
+GL_NV_shader_atomic_int64
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_buffer_load b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_buffer_load
new file mode 100644
index 0000000..3b53b6e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_buffer_load
@@ -0,0 +1,20 @@
+GL_NV_shader_buffer_load
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_buffer_load.txt
+GL_NV_shader_buffer_load
+
+ GL_BUFFER_GPU_ADDRESS_NV 0x8F1D
+ GL_GPU_ADDRESS_NV 0x8F34
+ GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35
+ void glGetBufferParameterui64vNV (GLenum target, GLenum pname, GLuint64EXT* params)
+ void glGetIntegerui64vNV (GLenum value, GLuint64EXT* result)
+ void glGetNamedBufferParameterui64vNV (GLuint buffer, GLenum pname, GLuint64EXT* params)
+ GLboolean glIsBufferResidentNV (GLenum target)
+ GLboolean glIsNamedBufferResidentNV (GLuint buffer)
+ void glMakeBufferNonResidentNV (GLenum target)
+ void glMakeBufferResidentNV (GLenum target, GLenum access)
+ void glMakeNamedBufferNonResidentNV (GLuint buffer)
+ void glMakeNamedBufferResidentNV (GLuint buffer, GLenum access)
+ void glProgramUniformui64NV (GLuint program, GLint location, GLuint64EXT value)
+ void glProgramUniformui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value)
+ void glUniformui64NV (GLint location, GLuint64EXT value)
+ void glUniformui64vNV (GLint location, GLsizei count, const GLuint64EXT* value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_noperspective_interpolation b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_noperspective_interpolation
new file mode 100644
index 0000000..26efc1a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_noperspective_interpolation
@@ -0,0 +1,4 @@
+GL_NV_shader_noperspective_interpolation
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_noperspective_interpolation.txt
+GL_NV_shader_noperspective_interpolation
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_storage_buffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_storage_buffer_object
new file mode 100644
index 0000000..3a04476
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_storage_buffer_object
@@ -0,0 +1,4 @@
+GL_NV_shader_storage_buffer_object
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_storage_buffer_object.txt
+GL_NV_shader_storage_buffer_object
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_subgroup_partitioned b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_subgroup_partitioned
new file mode 100644
index 0000000..71f23df
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_subgroup_partitioned
@@ -0,0 +1,5 @@
+GL_NV_shader_subgroup_partitioned
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_subgroup_partitioned.txt
+GL_NV_shader_subgroup_partitioned
+
+ GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_texture_footprint b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_texture_footprint
new file mode 100644
index 0000000..3ac5d63
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_texture_footprint
@@ -0,0 +1,4 @@
+GL_NV_shader_texture_footprint
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_texture_footprint.txt
+GL_NV_shader_texture_footprint
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_thread_group b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_thread_group
new file mode 100644
index 0000000..788aac5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_thread_group
@@ -0,0 +1,7 @@
+GL_NV_shader_thread_group
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_thread_group.txt
+GL_NV_shader_thread_group
+
+ GL_WARP_SIZE_NV 0x9339
+ GL_WARPS_PER_SM_NV 0x933A
+ GL_SM_COUNT_NV 0x933B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_thread_shuffle b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_thread_shuffle
new file mode 100644
index 0000000..fd79f84
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shader_thread_shuffle
@@ -0,0 +1,4 @@
+GL_NV_shader_thread_shuffle
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shader_thread_shuffle.txt
+GL_NV_shader_thread_shuffle
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shading_rate_image b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shading_rate_image
new file mode 100644
index 0000000..78c61f3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shading_rate_image
@@ -0,0 +1,32 @@
+GL_NV_shading_rate_image
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shading_rate_image.txt
+GL_NV_shading_rate_image
+
+ GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B
+ GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C
+ GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D
+ GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E
+ GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F
+ GL_SHADING_RATE_IMAGE_NV 0x9563
+ GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564
+ GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565
+ GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566
+ GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567
+ GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568
+ GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569
+ GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A
+ GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B
+ GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C
+ GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D
+ GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E
+ GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F
+ GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE
+ GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF
+ GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0
+ void glBindShadingRateImageNV (GLuint texture)
+ void glGetShadingRateImagePaletteNV (GLuint viewport, GLuint entry, GLenum* rate)
+ void glGetShadingRateSampleLocationivNV (GLenum rate, GLuint samples, GLuint index, GLint* location)
+ void glShadingRateImageBarrierNV (GLboolean synchronize)
+ void glShadingRateImagePaletteNV (GLuint viewport, GLuint first, GLsizei count, const GLenum* rates)
+ void glShadingRateSampleOrderCustomNV (GLenum rate, GLuint samples, const GLint* locations)
+ void glShadingRateSampleOrderNV (GLenum order)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shadow_samplers_array b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shadow_samplers_array
new file mode 100644
index 0000000..a3369b6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shadow_samplers_array
@@ -0,0 +1,5 @@
+GL_NV_shadow_samplers_array
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shadow_samplers_array.txt
+GL_NV_shadow_samplers_array
+
+ GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shadow_samplers_cube b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shadow_samplers_cube
new file mode 100644
index 0000000..74b2447
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_shadow_samplers_cube
@@ -0,0 +1,5 @@
+GL_NV_shadow_samplers_cube
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_shadow_samplers_cube.txt
+GL_NV_shadow_samplers_cube
+
+ GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_stereo_view_rendering b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_stereo_view_rendering
new file mode 100644
index 0000000..698b0c2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_stereo_view_rendering
@@ -0,0 +1,4 @@
+GL_NV_stereo_view_rendering
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_stereo_view_rendering.txt
+GL_NV_stereo_view_rendering
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_tessellation_program5 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_tessellation_program5
new file mode 100644
index 0000000..75fd3c7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_tessellation_program5
@@ -0,0 +1,9 @@
+GL_NV_tessellation_program5
+http://www.opengl.org/registry/specs/NV/tessellation_program5.txt
+GL_NV_gpu_program5
+
+ GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
+ GL_TESS_CONTROL_PROGRAM_NV 0x891E
+ GL_TESS_EVALUATION_PROGRAM_NV 0x891F
+ GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74
+ GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texgen_emboss b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texgen_emboss
new file mode 100644
index 0000000..1544a24
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texgen_emboss
@@ -0,0 +1,7 @@
+GL_NV_texgen_emboss
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texgen_emboss.txt
+GL_NV_texgen_emboss
+
+ GL_EMBOSS_LIGHT_NV 0x855D
+ GL_EMBOSS_CONSTANT_NV 0x855E
+ GL_EMBOSS_MAP_NV 0x855F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texgen_reflection b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texgen_reflection
new file mode 100644
index 0000000..011807b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texgen_reflection
@@ -0,0 +1,6 @@
+GL_NV_texgen_reflection
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texgen_reflection.txt
+GL_NV_texgen_reflection
+
+ GL_NORMAL_MAP_NV 0x8511
+ GL_REFLECTION_MAP_NV 0x8512
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_array b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_array
new file mode 100644
index 0000000..635ce85
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_array
@@ -0,0 +1,17 @@
+GL_NV_texture_array
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_array.txt
+GL_NV_texture_array
+
+ GL_UNPACK_SKIP_IMAGES_NV 0x806D
+ GL_UNPACK_IMAGE_HEIGHT_NV 0x806E
+ GL_MAX_ARRAY_TEXTURE_LAYERS_NV 0x88FF
+ GL_TEXTURE_2D_ARRAY_NV 0x8C1A
+ GL_TEXTURE_BINDING_2D_ARRAY_NV 0x8C1D
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_NV 0x8CD4
+ GL_SAMPLER_2D_ARRAY_NV 0x8DC1
+ void glCompressedTexImage3DNV (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedTexSubImage3DNV (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+ void glCopyTexSubImage3DNV (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glFramebufferTextureLayerNV (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+ void glTexImage3DNV (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
+ void glTexSubImage3DNV (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_barrier b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_barrier
new file mode 100644
index 0000000..b7028d8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_barrier
@@ -0,0 +1,5 @@
+GL_NV_texture_barrier
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_barrier.txt
+GL_NV_texture_barrier
+
+ void glTextureBarrierNV (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_border_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_border_clamp
new file mode 100644
index 0000000..25c92aa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_border_clamp
@@ -0,0 +1,6 @@
+GL_NV_texture_border_clamp
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_border_clamp.txt
+GL_NV_texture_border_clamp
+
+ GL_TEXTURE_BORDER_COLOR_NV 0x1004
+ GL_CLAMP_TO_BORDER_NV 0x812D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_latc b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_latc
new file mode 100644
index 0000000..92ff118
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_latc
@@ -0,0 +1,8 @@
+GL_NV_texture_compression_latc
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_compression_latc.txt
+GL_NV_texture_compression_latc
+
+ GL_COMPRESSED_LUMINANCE_LATC1_NV 0x8C70
+ GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_NV 0x8C71
+ GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_NV 0x8C72
+ GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_NV 0x8C73
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_s3tc b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_s3tc
new file mode 100644
index 0000000..036c535
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_s3tc
@@ -0,0 +1,8 @@
+GL_NV_texture_compression_s3tc
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_compression_s3tc.txt
+GL_NV_texture_compression_s3tc
+
+ GL_COMPRESSED_RGB_S3TC_DXT1_NV 0x83F0
+ GL_COMPRESSED_RGBA_S3TC_DXT1_NV 0x83F1
+ GL_COMPRESSED_RGBA_S3TC_DXT3_NV 0x83F2
+ GL_COMPRESSED_RGBA_S3TC_DXT5_NV 0x83F3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_s3tc_update b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_s3tc_update
new file mode 100644
index 0000000..13e4fd1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_s3tc_update
@@ -0,0 +1,4 @@
+GL_NV_texture_compression_s3tc_update
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_compression_s3tc_update.txt
+GL_NV_texture_compression_s3tc_update
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_vtc b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_vtc
new file mode 100644
index 0000000..e41289a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_compression_vtc
@@ -0,0 +1,4 @@
+GL_NV_texture_compression_vtc
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_compression_vtc.txt
+GL_NV_texture_compression_vtc
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_env_combine4 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_env_combine4
new file mode 100644
index 0000000..0175daa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_env_combine4
@@ -0,0 +1,9 @@
+GL_NV_texture_env_combine4
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_env_combine4.txt
+GL_NV_texture_env_combine4
+
+ GL_COMBINE4_NV 0x8503
+ GL_SOURCE3_RGB_NV 0x8583
+ GL_SOURCE3_ALPHA_NV 0x858B
+ GL_OPERAND3_RGB_NV 0x8593
+ GL_OPERAND3_ALPHA_NV 0x859B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_expand_normal b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_expand_normal
new file mode 100644
index 0000000..a708cfe
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_expand_normal
@@ -0,0 +1,5 @@
+GL_NV_texture_expand_normal
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_expand_normal.txt
+GL_NV_texture_expand_normal
+
+ GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_multisample
new file mode 100644
index 0000000..9457b5d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_multisample
@@ -0,0 +1,12 @@
+GL_NV_texture_multisample
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_multisample.txt
+GL_NV_texture_multisample
+
+ GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045
+ GL_TEXTURE_COLOR_SAMPLES_NV 0x9046
+ void glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations)
+ void glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations)
+ void glTextureImage2DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations)
+ void glTextureImage2DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations)
+ void glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations)
+ void glTextureImage3DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_npot_2D_mipmap b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_npot_2D_mipmap
new file mode 100644
index 0000000..6e07b17
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_npot_2D_mipmap
@@ -0,0 +1,4 @@
+GL_NV_texture_npot_2D_mipmap
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_npot_2D_mipmap.txt
+GL_NV_texture_npot_2D_mipmap
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_rectangle b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_rectangle
new file mode 100644
index 0000000..43c6afe
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_rectangle
@@ -0,0 +1,8 @@
+GL_NV_texture_rectangle
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_rectangle.txt
+GL_NV_texture_rectangle
+
+ GL_TEXTURE_RECTANGLE_NV 0x84F5
+ GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6
+ GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7
+ GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_rectangle_compressed b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_rectangle_compressed
new file mode 100644
index 0000000..17be6d4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_rectangle_compressed
@@ -0,0 +1,4 @@
+GL_NV_texture_rectangle_compressed
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_rectangle_compressed.txt
+GL_NV_texture_rectangle_compressed
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader
new file mode 100644
index 0000000..98a986e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader
@@ -0,0 +1,77 @@
+GL_NV_texture_shader
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_shader.txt
+GL_NV_texture_shader
+
+ GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C
+ GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
+ GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
+ GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
+ GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
+ GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
+ GL_DSDT_MAG_INTENSITY_NV 0x86DC
+ GL_SHADER_CONSISTENT_NV 0x86DD
+ GL_TEXTURE_SHADER_NV 0x86DE
+ GL_SHADER_OPERATION_NV 0x86DF
+ GL_CULL_MODES_NV 0x86E0
+ GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1
+ GL_OFFSET_TEXTURE_SCALE_NV 0x86E2
+ GL_OFFSET_TEXTURE_BIAS_NV 0x86E3
+ GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4
+ GL_CONST_EYE_NV 0x86E5
+ GL_PASS_THROUGH_NV 0x86E6
+ GL_CULL_FRAGMENT_NV 0x86E7
+ GL_OFFSET_TEXTURE_2D_NV 0x86E8
+ GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9
+ GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA
+ GL_DOT_PRODUCT_NV 0x86EC
+ GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED
+ GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE
+ GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
+ GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
+ GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
+ GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
+ GL_HILO_NV 0x86F4
+ GL_DSDT_NV 0x86F5
+ GL_DSDT_MAG_NV 0x86F6
+ GL_DSDT_MAG_VIB_NV 0x86F7
+ GL_HILO16_NV 0x86F8
+ GL_SIGNED_HILO_NV 0x86F9
+ GL_SIGNED_HILO16_NV 0x86FA
+ GL_SIGNED_RGBA_NV 0x86FB
+ GL_SIGNED_RGBA8_NV 0x86FC
+ GL_SIGNED_RGB_NV 0x86FE
+ GL_SIGNED_RGB8_NV 0x86FF
+ GL_SIGNED_LUMINANCE_NV 0x8701
+ GL_SIGNED_LUMINANCE8_NV 0x8702
+ GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
+ GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
+ GL_SIGNED_ALPHA_NV 0x8705
+ GL_SIGNED_ALPHA8_NV 0x8706
+ GL_SIGNED_INTENSITY_NV 0x8707
+ GL_SIGNED_INTENSITY8_NV 0x8708
+ GL_DSDT8_NV 0x8709
+ GL_DSDT8_MAG8_NV 0x870A
+ GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
+ GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
+ GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
+ GL_HI_SCALE_NV 0x870E
+ GL_LO_SCALE_NV 0x870F
+ GL_DS_SCALE_NV 0x8710
+ GL_DT_SCALE_NV 0x8711
+ GL_MAGNITUDE_SCALE_NV 0x8712
+ GL_VIBRANCE_SCALE_NV 0x8713
+ GL_HI_BIAS_NV 0x8714
+ GL_LO_BIAS_NV 0x8715
+ GL_DS_BIAS_NV 0x8716
+ GL_DT_BIAS_NV 0x8717
+ GL_MAGNITUDE_BIAS_NV 0x8718
+ GL_VIBRANCE_BIAS_NV 0x8719
+ GL_TEXTURE_BORDER_VALUES_NV 0x871A
+ GL_TEXTURE_HI_SIZE_NV 0x871B
+ GL_TEXTURE_LO_SIZE_NV 0x871C
+ GL_TEXTURE_DS_SIZE_NV 0x871D
+ GL_TEXTURE_DT_SIZE_NV 0x871E
+ GL_TEXTURE_MAG_SIZE_NV 0x871F
+ GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1
+ GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3
+ GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader2 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader2
new file mode 100644
index 0000000..7f1176e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader2
@@ -0,0 +1,32 @@
+GL_NV_texture_shader2
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_shader2.txt
+GL_NV_texture_shader2
+
+ GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
+ GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
+ GL_DSDT_MAG_INTENSITY_NV 0x86DC
+ GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF
+ GL_HILO_NV 0x86F4
+ GL_DSDT_NV 0x86F5
+ GL_DSDT_MAG_NV 0x86F6
+ GL_DSDT_MAG_VIB_NV 0x86F7
+ GL_HILO16_NV 0x86F8
+ GL_SIGNED_HILO_NV 0x86F9
+ GL_SIGNED_HILO16_NV 0x86FA
+ GL_SIGNED_RGBA_NV 0x86FB
+ GL_SIGNED_RGBA8_NV 0x86FC
+ GL_SIGNED_RGB_NV 0x86FE
+ GL_SIGNED_RGB8_NV 0x86FF
+ GL_SIGNED_LUMINANCE_NV 0x8701
+ GL_SIGNED_LUMINANCE8_NV 0x8702
+ GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
+ GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
+ GL_SIGNED_ALPHA_NV 0x8705
+ GL_SIGNED_ALPHA8_NV 0x8706
+ GL_SIGNED_INTENSITY_NV 0x8707
+ GL_SIGNED_INTENSITY8_NV 0x8708
+ GL_DSDT8_NV 0x8709
+ GL_DSDT8_MAG8_NV 0x870A
+ GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
+ GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
+ GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader3 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader3
new file mode 100644
index 0000000..4f98d77
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_texture_shader3
@@ -0,0 +1,21 @@
+GL_NV_texture_shader3
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_texture_shader3.txt
+GL_NV_texture_shader3
+
+ GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
+ GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
+ GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
+ GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
+ GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854
+ GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
+ GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
+ GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
+ GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858
+ GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859
+ GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
+ GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B
+ GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C
+ GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
+ GL_HILO8_NV 0x885E
+ GL_SIGNED_HILO8_NV 0x885F
+ GL_FORCE_BLUE_TO_ONE_NV 0x8860
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_timeline_semaphore b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_timeline_semaphore
new file mode 100644
index 0000000..b6c11be
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_timeline_semaphore
@@ -0,0 +1,12 @@
+GL_NV_timeline_semaphore
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_timeline_semaphore.txt
+GL_NV_timeline_semaphore
+
+ GL_TIMELINE_SEMAPHORE_VALUE_NV 0x9595
+ GL_SEMAPHORE_TYPE_NV 0x95B3
+ GL_SEMAPHORE_TYPE_BINARY_NV 0x95B4
+ GL_SEMAPHORE_TYPE_TIMELINE_NV 0x95B5
+ GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6
+ void glCreateSemaphoresNV (GLsizei n, GLuint* semaphores)
+ void glGetSemaphoreParameterivNV (GLuint semaphore, GLenum pname, GLint* params)
+ void glSemaphoreParameterivNV (GLuint semaphore, GLenum pname, const GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_transform_feedback b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_transform_feedback
new file mode 100644
index 0000000..5f1816e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_transform_feedback
@@ -0,0 +1,40 @@
+GL_NV_transform_feedback
+http://developer.download.nvidia.com/opengl/specs/GL_NV_transform_feedback.txt
+GL_NV_transform_feedback
+
+ GL_BACK_PRIMARY_COLOR_NV 0x8C77
+ GL_BACK_SECONDARY_COLOR_NV 0x8C78
+ GL_TEXTURE_COORD_NV 0x8C79
+ GL_CLIP_DISTANCE_NV 0x8C7A
+ GL_VERTEX_ID_NV 0x8C7B
+ GL_PRIMITIVE_ID_NV 0x8C7C
+ GL_GENERIC_ATTRIB_NV 0x8C7D
+ GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E
+ GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F
+ GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80
+ GL_ACTIVE_VARYINGS_NV 0x8C81
+ GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82
+ GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83
+ GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84
+ GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85
+ GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86
+ GL_PRIMITIVES_GENERATED_NV 0x8C87
+ GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88
+ GL_RASTERIZER_DISCARD_NV 0x8C89
+ GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A
+ GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B
+ GL_INTERLEAVED_ATTRIBS_NV 0x8C8C
+ GL_SEPARATE_ATTRIBS_NV 0x8C8D
+ GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E
+ GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F
+ void glBeginTransformFeedbackNV (GLenum primitiveMode)
+ void glEndTransformFeedbackNV (void)
+ void glTransformFeedbackAttribsNV (GLuint count, const GLint *attribs, GLenum bufferMode)
+ void glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+ void glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset)
+ void glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer)
+ void glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode)
+ void glActiveVaryingNV (GLuint program, const GLchar *name)
+ GLint glGetVaryingLocationNV (GLuint program, const GLchar *name)
+ void glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)
+ void glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_transform_feedback2 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_transform_feedback2
new file mode 100644
index 0000000..540d336
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_transform_feedback2
@@ -0,0 +1,15 @@
+GL_NV_transform_feedback2
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_transform_feedback2.txt
+GL_NV_transform_feedback2
+
+ GL_TRANSFORM_FEEDBACK_NV 0x8E22
+ GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23
+ GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24
+ GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25
+ void glBindTransformFeedbackNV (GLenum target, GLuint id)
+ void glDeleteTransformFeedbacksNV (GLsizei n, const GLuint* ids)
+ void glDrawTransformFeedbackNV (GLenum mode, GLuint id)
+ void glGenTransformFeedbacksNV (GLsizei n, GLuint* ids)
+ GLboolean glIsTransformFeedbackNV (GLuint id)
+ void glPauseTransformFeedbackNV (void)
+ void glResumeTransformFeedbackNV (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_uniform_buffer_unified_memory b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_uniform_buffer_unified_memory
new file mode 100644
index 0000000..b398e3b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_uniform_buffer_unified_memory
@@ -0,0 +1,7 @@
+GL_NV_uniform_buffer_unified_memory
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_uniform_buffer_unified_memory.txt
+GL_NV_uniform_buffer_unified_memory
+
+ GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E
+ GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F
+ GL_UNIFORM_BUFFER_LENGTH_NV 0x9370
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vdpau_interop b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vdpau_interop
new file mode 100644
index 0000000..f52949c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vdpau_interop
@@ -0,0 +1,19 @@
+GL_NV_vdpau_interop
+http://www.opengl.org/registry/specs/NV/vdpau_interop.txt
+GL_NV_vdpau_interop
+
+ GL_SURFACE_STATE_NV 0x86EB
+ GL_SURFACE_REGISTERED_NV 0x86FD
+ GL_SURFACE_MAPPED_NV 0x8700
+ GL_WRITE_DISCARD_NV 0x88BE
+ void glVDPAUFiniNV (void)
+ void glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values)
+ void glVDPAUInitNV (const void* vdpDevice, const void*getProcAddress)
+ void glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface)
+ void glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces)
+ GLvdpauSurfaceNV glVDPAURegisterOutputSurfaceNV (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames)
+ GLvdpauSurfaceNV glVDPAURegisterVideoSurfaceNV (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames)
+ void glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access)
+ void glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces)
+ void glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface)
+ typedef GLintptr GLvdpauSurfaceNV
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vdpau_interop2 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vdpau_interop2
new file mode 100644
index 0000000..c92a64e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vdpau_interop2
@@ -0,0 +1,5 @@
+GL_NV_vdpau_interop2
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_vdpau_interop2.txt
+GL_NV_vdpau_interop2
+
+ GLvdpauSurfaceNV glVDPAURegisterVideoSurfaceWithPictureStructureNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_array_range b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_array_range
new file mode 100644
index 0000000..c845534
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_array_range
@@ -0,0 +1,11 @@
+GL_NV_vertex_array_range
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_vertex_array_range.txt
+GL_NV_vertex_array_range
+
+ GL_VERTEX_ARRAY_RANGE_NV 0x851D
+ GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E
+ GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F
+ GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520
+ GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521
+ void glFlushVertexArrayRangeNV (void)
+ void glVertexArrayRangeNV (GLsizei length, void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_array_range2 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_array_range2
new file mode 100644
index 0000000..6ebd4d0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_array_range2
@@ -0,0 +1,5 @@
+GL_NV_vertex_array_range2
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_vertex_array_range2.txt
+GL_NV_vertex_array_range2
+
+ GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_attrib_integer_64bit b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_attrib_integer_64bit
new file mode 100644
index 0000000..7d2eaa4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_attrib_integer_64bit
@@ -0,0 +1,25 @@
+GL_NV_vertex_attrib_integer_64bit
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_vertex_attrib_integer_64bit.txt
+GL_NV_vertex_attrib_integer_64bit
+
+ GL_INT64_NV 0x140E
+ GL_UNSIGNED_INT64_NV 0x140F
+ void glGetVertexAttribLi64vNV (GLuint index, GLenum pname, GLint64EXT* params)
+ void glGetVertexAttribLui64vNV (GLuint index, GLenum pname, GLuint64EXT* params)
+ void glVertexAttribL1i64NV (GLuint index, GLint64EXT x)
+ void glVertexAttribL1i64vNV (GLuint index, const GLint64EXT* v)
+ void glVertexAttribL1ui64NV (GLuint index, GLuint64EXT x)
+ void glVertexAttribL1ui64vNV (GLuint index, const GLuint64EXT* v)
+ void glVertexAttribL2i64NV (GLuint index, GLint64EXT x, GLint64EXT y)
+ void glVertexAttribL2i64vNV (GLuint index, const GLint64EXT* v)
+ void glVertexAttribL2ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y)
+ void glVertexAttribL2ui64vNV (GLuint index, const GLuint64EXT* v)
+ void glVertexAttribL3i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z)
+ void glVertexAttribL3i64vNV (GLuint index, const GLint64EXT* v)
+ void glVertexAttribL3ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)
+ void glVertexAttribL3ui64vNV (GLuint index, const GLuint64EXT* v)
+ void glVertexAttribL4i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)
+ void glVertexAttribL4i64vNV (GLuint index, const GLint64EXT* v)
+ void glVertexAttribL4ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)
+ void glVertexAttribL4ui64vNV (GLuint index, const GLuint64EXT* v)
+ void glVertexAttribLFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_buffer_unified_memory b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_buffer_unified_memory
new file mode 100644
index 0000000..21e77a9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_buffer_unified_memory
@@ -0,0 +1,41 @@
+GL_NV_vertex_buffer_unified_memory
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_vertex_buffer_unified_memory.txt
+GL_NV_vertex_buffer_unified_memory
+
+ GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E
+ GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F
+ GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20
+ GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21
+ GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22
+ GL_COLOR_ARRAY_ADDRESS_NV 0x8F23
+ GL_INDEX_ARRAY_ADDRESS_NV 0x8F24
+ GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25
+ GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26
+ GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27
+ GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28
+ GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29
+ GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A
+ GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B
+ GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C
+ GL_COLOR_ARRAY_LENGTH_NV 0x8F2D
+ GL_INDEX_ARRAY_LENGTH_NV 0x8F2E
+ GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F
+ GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30
+ GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31
+ GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32
+ GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33
+ void glBufferAddressRangeNV (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length)
+ void glColorFormatNV (GLint size, GLenum type, GLsizei stride)
+ void glEdgeFlagFormatNV (GLsizei stride)
+ void glFogCoordFormatNV (GLenum type, GLsizei stride)
+ void glGetIntegerui64i_vNV (GLenum value, GLuint index, GLuint64EXT result[])
+ void glIndexFormatNV (GLenum type, GLsizei stride)
+ void glNormalFormatNV (GLenum type, GLsizei stride)
+ void glSecondaryColorFormatNV (GLint size, GLenum type, GLsizei stride)
+ void glTexCoordFormatNV (GLint size, GLenum type, GLsizei stride)
+ void glVertexAttribFormatNV (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride)
+ void glVertexAttribIFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride)
+ void glVertexFormatNV (GLint size, GLenum type, GLsizei stride)
+ GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40
+ GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41
+ GL_DRAW_INDIRECT_LENGTH_NV 0x8F42
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program
new file mode 100644
index 0000000..861ede0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program
@@ -0,0 +1,151 @@
+GL_NV_vertex_program
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_vertex_program.txt
+GL_NV_vertex_program
+
+ GL_VERTEX_PROGRAM_NV 0x8620
+ GL_VERTEX_STATE_PROGRAM_NV 0x8621
+ GL_ATTRIB_ARRAY_SIZE_NV 0x8623
+ GL_ATTRIB_ARRAY_STRIDE_NV 0x8624
+ GL_ATTRIB_ARRAY_TYPE_NV 0x8625
+ GL_CURRENT_ATTRIB_NV 0x8626
+ GL_PROGRAM_LENGTH_NV 0x8627
+ GL_PROGRAM_STRING_NV 0x8628
+ GL_MODELVIEW_PROJECTION_NV 0x8629
+ GL_IDENTITY_NV 0x862A
+ GL_INVERSE_NV 0x862B
+ GL_TRANSPOSE_NV 0x862C
+ GL_INVERSE_TRANSPOSE_NV 0x862D
+ GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
+ GL_MAX_TRACK_MATRICES_NV 0x862F
+ GL_MATRIX0_NV 0x8630
+ GL_MATRIX1_NV 0x8631
+ GL_MATRIX2_NV 0x8632
+ GL_MATRIX3_NV 0x8633
+ GL_MATRIX4_NV 0x8634
+ GL_MATRIX5_NV 0x8635
+ GL_MATRIX6_NV 0x8636
+ GL_MATRIX7_NV 0x8637
+ GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640
+ GL_CURRENT_MATRIX_NV 0x8641
+ GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642
+ GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643
+ GL_PROGRAM_PARAMETER_NV 0x8644
+ GL_ATTRIB_ARRAY_POINTER_NV 0x8645
+ GL_PROGRAM_TARGET_NV 0x8646
+ GL_PROGRAM_RESIDENT_NV 0x8647
+ GL_TRACK_MATRIX_NV 0x8648
+ GL_TRACK_MATRIX_TRANSFORM_NV 0x8649
+ GL_VERTEX_PROGRAM_BINDING_NV 0x864A
+ GL_PROGRAM_ERROR_POSITION_NV 0x864B
+ GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650
+ GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651
+ GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652
+ GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653
+ GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654
+ GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655
+ GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656
+ GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657
+ GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658
+ GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659
+ GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A
+ GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B
+ GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C
+ GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D
+ GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E
+ GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F
+ GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660
+ GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661
+ GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662
+ GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663
+ GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664
+ GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665
+ GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666
+ GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667
+ GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668
+ GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669
+ GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A
+ GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B
+ GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C
+ GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D
+ GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E
+ GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F
+ GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670
+ GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671
+ GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672
+ GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673
+ GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674
+ GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675
+ GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676
+ GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677
+ GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678
+ GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679
+ GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A
+ GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B
+ GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C
+ GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D
+ GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E
+ GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F
+ GLboolean glAreProgramsResidentNV (GLsizei n, const GLuint* ids, GLboolean *residences)
+ void glBindProgramNV (GLenum target, GLuint id)
+ void glDeleteProgramsNV (GLsizei n, const GLuint* ids)
+ void glExecuteProgramNV (GLenum target, GLuint id, const GLfloat* params)
+ void glGenProgramsNV (GLsizei n, GLuint* ids)
+ void glGetProgramParameterdvNV (GLenum target, GLuint index, GLenum pname, GLdouble* params)
+ void glGetProgramParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat* params)
+ void glGetProgramStringNV (GLuint id, GLenum pname, GLubyte* program)
+ void glGetProgramivNV (GLuint id, GLenum pname, GLint* params)
+ void glGetTrackMatrixivNV (GLenum target, GLuint address, GLenum pname, GLint* params)
+ void glGetVertexAttribPointervNV (GLuint index, GLenum pname, void** pointer)
+ void glGetVertexAttribdvNV (GLuint index, GLenum pname, GLdouble* params)
+ void glGetVertexAttribfvNV (GLuint index, GLenum pname, GLfloat* params)
+ void glGetVertexAttribivNV (GLuint index, GLenum pname, GLint* params)
+ GLboolean glIsProgramNV (GLuint id)
+ void glLoadProgramNV (GLenum target, GLuint id, GLsizei len, const GLubyte* program)
+ void glProgramParameter4dNV (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glProgramParameter4dvNV (GLenum target, GLuint index, const GLdouble* params)
+ void glProgramParameter4fNV (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glProgramParameter4fvNV (GLenum target, GLuint index, const GLfloat* params)
+ void glProgramParameters4dvNV (GLenum target, GLuint index, GLsizei num, const GLdouble* params)
+ void glProgramParameters4fvNV (GLenum target, GLuint index, GLsizei num, const GLfloat* params)
+ void glRequestResidentProgramsNV (GLsizei n, GLuint* ids)
+ void glTrackMatrixNV (GLenum target, GLuint address, GLenum matrix, GLenum transform)
+ void glVertexAttrib1dNV (GLuint index, GLdouble x)
+ void glVertexAttrib1dvNV (GLuint index, const GLdouble* v)
+ void glVertexAttrib1fNV (GLuint index, GLfloat x)
+ void glVertexAttrib1fvNV (GLuint index, const GLfloat* v)
+ void glVertexAttrib1sNV (GLuint index, GLshort x)
+ void glVertexAttrib1svNV (GLuint index, const GLshort* v)
+ void glVertexAttrib2dNV (GLuint index, GLdouble x, GLdouble y)
+ void glVertexAttrib2dvNV (GLuint index, const GLdouble* v)
+ void glVertexAttrib2fNV (GLuint index, GLfloat x, GLfloat y)
+ void glVertexAttrib2fvNV (GLuint index, const GLfloat* v)
+ void glVertexAttrib2sNV (GLuint index, GLshort x, GLshort y)
+ void glVertexAttrib2svNV (GLuint index, const GLshort* v)
+ void glVertexAttrib3dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z)
+ void glVertexAttrib3dvNV (GLuint index, const GLdouble* v)
+ void glVertexAttrib3fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z)
+ void glVertexAttrib3fvNV (GLuint index, const GLfloat* v)
+ void glVertexAttrib3sNV (GLuint index, GLshort x, GLshort y, GLshort z)
+ void glVertexAttrib3svNV (GLuint index, const GLshort* v)
+ void glVertexAttrib4dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+ void glVertexAttrib4dvNV (GLuint index, const GLdouble* v)
+ void glVertexAttrib4fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glVertexAttrib4fvNV (GLuint index, const GLfloat* v)
+ void glVertexAttrib4sNV (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+ void glVertexAttrib4svNV (GLuint index, const GLshort* v)
+ void glVertexAttrib4ubNV (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+ void glVertexAttrib4ubvNV (GLuint index, const GLubyte* v)
+ void glVertexAttribPointerNV (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
+ void glVertexAttribs1dvNV (GLuint index, GLsizei n, const GLdouble* v)
+ void glVertexAttribs1fvNV (GLuint index, GLsizei n, const GLfloat* v)
+ void glVertexAttribs1svNV (GLuint index, GLsizei n, const GLshort* v)
+ void glVertexAttribs2dvNV (GLuint index, GLsizei n, const GLdouble* v)
+ void glVertexAttribs2fvNV (GLuint index, GLsizei n, const GLfloat* v)
+ void glVertexAttribs2svNV (GLuint index, GLsizei n, const GLshort* v)
+ void glVertexAttribs3dvNV (GLuint index, GLsizei n, const GLdouble* v)
+ void glVertexAttribs3fvNV (GLuint index, GLsizei n, const GLfloat* v)
+ void glVertexAttribs3svNV (GLuint index, GLsizei n, const GLshort* v)
+ void glVertexAttribs4dvNV (GLuint index, GLsizei n, const GLdouble* v)
+ void glVertexAttribs4fvNV (GLuint index, GLsizei n, const GLfloat* v)
+ void glVertexAttribs4svNV (GLuint index, GLsizei n, const GLshort* v)
+ void glVertexAttribs4ubvNV (GLuint index, GLsizei n, const GLubyte* v)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program1_1 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program1_1
new file mode 100644
index 0000000..5a88dd3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program1_1
@@ -0,0 +1,4 @@
+GL_NV_vertex_program1_1
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_vertex_program1_1.txt
+GL_NV_vertex_program1_1
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program2 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program2
new file mode 100644
index 0000000..e25e47f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program2
@@ -0,0 +1,4 @@
+GL_NV_vertex_program2
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_vertex_program2.txt
+GL_NV_vertex_program2
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program2_option b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program2_option
new file mode 100644
index 0000000..3e3e0b7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program2_option
@@ -0,0 +1,6 @@
+GL_NV_vertex_program2_option
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program2_option.txt
+GL_NV_vertex_program2_option
+
+ GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
+ GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program3 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program3
new file mode 100644
index 0000000..fbd3899
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program3
@@ -0,0 +1,5 @@
+GL_NV_vertex_program3
+http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program3.txt
+GL_NV_vertex_program3
+
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program4 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program4
new file mode 100644
index 0000000..b1ff7f8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_vertex_program4
@@ -0,0 +1,5 @@
+GL_NV_vertex_program4
+http://developer.download.nvidia.com/opengl/specs/GL_NV_vertex_program4.txt
+GL_NV_gpu_program4
+
+ GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_video_capture b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_video_capture
new file mode 100644
index 0000000..90a94db
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_video_capture
@@ -0,0 +1,45 @@
+GL_NV_video_capture
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_video_capture.txt
+GL_NV_video_capture
+
+ GL_VIDEO_BUFFER_NV 0x9020
+ GL_VIDEO_BUFFER_BINDING_NV 0x9021
+ GL_FIELD_UPPER_NV 0x9022
+ GL_FIELD_LOWER_NV 0x9023
+ GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024
+ GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025
+ GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026
+ GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027
+ GL_VIDEO_BUFFER_PITCH_NV 0x9028
+ GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029
+ GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A
+ GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B
+ GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C
+ GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D
+ GL_PARTIAL_SUCCESS_NV 0x902E
+ GL_SUCCESS_NV 0x902F
+ GL_FAILURE_NV 0x9030
+ GL_YCBYCR8_422_NV 0x9031
+ GL_YCBAYCR8A_4224_NV 0x9032
+ GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033
+ GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034
+ GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035
+ GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036
+ GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037
+ GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038
+ GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039
+ GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A
+ GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B
+ GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C
+ void glBeginVideoCaptureNV (GLuint video_capture_slot)
+ void glBindVideoCaptureStreamBufferNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset)
+ void glBindVideoCaptureStreamTextureNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture)
+ void glEndVideoCaptureNV (GLuint video_capture_slot)
+ void glGetVideoCaptureivNV (GLuint video_capture_slot, GLenum pname, GLint* params)
+ GLenum glVideoCaptureNV (GLuint video_capture_slot, GLuint* sequence_num, GLuint64EXT *capture_time)
+ void glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params)
+ void glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params)
+ void glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params)
+ void glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params)
+ void glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params)
+ void glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_array b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_array
new file mode 100644
index 0000000..ed49bee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_array
@@ -0,0 +1,24 @@
+GL_NV_viewport_array
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_viewport_array.txt
+GL_NV_viewport_array
+
+ GL_DEPTH_RANGE 0x0B70
+ GL_VIEWPORT 0x0BA2
+ GL_SCISSOR_BOX 0x0C10
+ GL_SCISSOR_TEST 0x0C11
+ GL_MAX_VIEWPORTS_NV 0x825B
+ GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C
+ GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D
+ GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F
+ void glDepthRangeArrayfvNV (GLuint first, GLsizei count, const GLfloat * v)
+ void glDepthRangeIndexedfNV (GLuint index, GLfloat n, GLfloat f)
+ void glDisableiNV (GLenum target, GLuint index)
+ void glEnableiNV (GLenum target, GLuint index)
+ void glGetFloati_vNV (GLenum target, GLuint index, GLfloat* data)
+ GLboolean glIsEnablediNV (GLenum target, GLuint index)
+ void glScissorArrayvNV (GLuint first, GLsizei count, const GLint * v)
+ void glScissorIndexedNV (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)
+ void glScissorIndexedvNV (GLuint index, const GLint * v)
+ void glViewportArrayvNV (GLuint first, GLsizei count, const GLfloat * v)
+ void glViewportIndexedfNV (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)
+ void glViewportIndexedfvNV (GLuint index, const GLfloat * v)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_array2 b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_array2
new file mode 100644
index 0000000..233b5f9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_array2
@@ -0,0 +1,4 @@
+GL_NV_viewport_array2
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_viewport_array2.txt
+GL_NV_viewport_array2
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_swizzle b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_swizzle
new file mode 100644
index 0000000..bf157f4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_NV_viewport_swizzle
@@ -0,0 +1,17 @@
+GL_NV_viewport_swizzle
+https://www.khronos.org/registry/OpenGL/extensions/NV/NV_viewport_swizzle.txt
+GL_NV_viewport_swizzle
+
+ GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350
+ GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351
+ GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352
+ GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353
+ GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354
+ GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355
+ GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356
+ GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357
+ GL_VIEWPORT_SWIZZLE_X_NV 0x9358
+ GL_VIEWPORT_SWIZZLE_Y_NV 0x9359
+ GL_VIEWPORT_SWIZZLE_Z_NV 0x935A
+ GL_VIEWPORT_SWIZZLE_W_NV 0x935B
+ void glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image
new file mode 100644
index 0000000..c602141
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image
@@ -0,0 +1,6 @@
+GL_OES_EGL_image
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image.txt
+GL_OES_EGL_image
+
+ void glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image)
+ void glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image_external b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image_external
new file mode 100644
index 0000000..6116d73
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image_external
@@ -0,0 +1,8 @@
+GL_OES_EGL_image_external
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt
+GL_OES_EGL_image_external
+
+ GL_TEXTURE_EXTERNAL_OES 0x8D65
+ GL_SAMPLER_EXTERNAL_OES 0x8D66
+ GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
+ GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image_external_essl3 b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image_external_essl3
new file mode 100644
index 0000000..bed4631
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_EGL_image_external_essl3
@@ -0,0 +1,4 @@
+GL_OES_EGL_image_external_essl3
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external_essl3.txt
+GL_OES_EGL_image_external_essl3
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_equation_separate b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_equation_separate
new file mode 100644
index 0000000..7cc038c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_equation_separate
@@ -0,0 +1,7 @@
+GL_OES_blend_equation_separate
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_blend_equation_separate.txt
+GL_OES_blend_equation_separate
+
+ GL_BLEND_EQUATION_RGB_OES 0x8009
+ GL_BLEND_EQUATION_ALPHA_OES 0x883D
+ void glBlendEquationSeparateOES (GLenum modeRGB, GLenum modeAlpha)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_func_separate b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_func_separate
new file mode 100644
index 0000000..00d2ce3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_func_separate
@@ -0,0 +1,9 @@
+GL_OES_blend_func_separate
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_blend_func_separate.txt
+GL_OES_blend_func_separate
+
+ GL_BLEND_DST_RGB_OES 0x80C8
+ GL_BLEND_SRC_RGB_OES 0x80C9
+ GL_BLEND_DST_ALPHA_OES 0x80CA
+ GL_BLEND_SRC_ALPHA_OES 0x80CB
+ void glBlendFuncSeparateOES (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_subtract b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_subtract
new file mode 100644
index 0000000..4dd7105
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_blend_subtract
@@ -0,0 +1,9 @@
+GL_OES_blend_subtract
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_blend_subtract.txt
+GL_OES_blend_subtract
+
+ GL_FUNC_ADD_OES 0x8006
+ GL_BLEND_EQUATION_OES 0x8009
+ GL_FUNC_SUBTRACT_OES 0x800A
+ GL_FUNC_REVERSE_SUBTRACT_OES 0x800B
+ void glBlendEquationOES (GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_byte_coordinates b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_byte_coordinates
new file mode 100644
index 0000000..446d175
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_byte_coordinates
@@ -0,0 +1,4 @@
+GL_OES_byte_coordinates
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_byte_coordinates.txt
+GL_OES_byte_coordinates
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_compressed_ETC1_RGB8_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_compressed_ETC1_RGB8_texture
new file mode 100644
index 0000000..62f4a41
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_compressed_ETC1_RGB8_texture
@@ -0,0 +1,5 @@
+GL_OES_compressed_ETC1_RGB8_texture
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt
+GL_OES_compressed_ETC1_RGB8_texture
+
+ GL_ETC1_RGB8_OES 0x8D64
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_compressed_paletted_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_compressed_paletted_texture
new file mode 100644
index 0000000..f50eddc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_compressed_paletted_texture
@@ -0,0 +1,14 @@
+GL_OES_compressed_paletted_texture
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_compressed_paletted_texture.txt
+GL_OES_compressed_paletted_texture
+
+ GL_PALETTE4_RGB8_OES 0x8B90
+ GL_PALETTE4_RGBA8_OES 0x8B91
+ GL_PALETTE4_R5_G6_B5_OES 0x8B92
+ GL_PALETTE4_RGBA4_OES 0x8B93
+ GL_PALETTE4_RGB5_A1_OES 0x8B94
+ GL_PALETTE8_RGB8_OES 0x8B95
+ GL_PALETTE8_RGBA8_OES 0x8B96
+ GL_PALETTE8_R5_G6_B5_OES 0x8B97
+ GL_PALETTE8_RGBA4_OES 0x8B98
+ GL_PALETTE8_RGB5_A1_OES 0x8B99
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_copy_image b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_copy_image
new file mode 100644
index 0000000..1a22b81
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_copy_image
@@ -0,0 +1,5 @@
+GL_OES_copy_image
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_copy_image.txt
+GL_OES_copy_image
+
+ void glCopyImageSubDataOES (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth24 b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth24
new file mode 100644
index 0000000..e23721e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth24
@@ -0,0 +1,5 @@
+GL_OES_depth24
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_depth24.txt
+GL_OES_depth24
+
+ GL_DEPTH_COMPONENT24_OES 0x81A6
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth32 b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth32
new file mode 100644
index 0000000..8c5b78b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth32
@@ -0,0 +1,5 @@
+GL_OES_depth32
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_depth32.txt
+GL_OES_depth32
+
+ GL_DEPTH_COMPONENT32_OES 0x81A7
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth_texture
new file mode 100644
index 0000000..5109bf4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth_texture
@@ -0,0 +1,7 @@
+GL_OES_depth_texture
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_depth_texture.txt
+GL_OES_depth_texture
+
+ GL_UNSIGNED_SHORT 0x1403
+ GL_UNSIGNED_INT 0x1405
+ GL_DEPTH_COMPONENT 0x1902
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth_texture_cube_map b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth_texture_cube_map
new file mode 100644
index 0000000..f7e9f07
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_depth_texture_cube_map
@@ -0,0 +1,9 @@
+GL_OES_depth_texture_cube_map
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_depth_texture_cube_map.txt
+GL_OES_depth_texture_cube_map
+
+ GL_UNSIGNED_SHORT 0x1403
+ GL_UNSIGNED_INT 0x1405
+ GL_DEPTH_COMPONENT 0x1902
+ GL_DEPTH_STENCIL_OES 0x84F9
+ GL_DEPTH24_STENCIL8_OES 0x88F0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_draw_buffers_indexed b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_draw_buffers_indexed
new file mode 100644
index 0000000..5b92ed1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_draw_buffers_indexed
@@ -0,0 +1,12 @@
+GL_OES_draw_buffers_indexed
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_draw_buffers_indexed.txt
+GL_OES_draw_buffers_indexed
+
+ void glBlendEquationSeparateiOES (GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+ void glBlendEquationiOES (GLuint buf, GLenum mode)
+ void glBlendFuncSeparateiOES (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+ void glBlendFunciOES (GLuint buf, GLenum src, GLenum dst)
+ void glColorMaskiOES (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+ void glDisableiOES (GLenum target, GLuint index)
+ void glEnableiOES (GLenum target, GLuint index)
+ GLboolean glIsEnablediOES (GLenum target, GLuint index)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_draw_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_draw_texture
new file mode 100644
index 0000000..f0ee773
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_draw_texture
@@ -0,0 +1,5 @@
+GL_OES_draw_texture
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_draw_texture.txt
+GL_OES_draw_texture
+
+ GL_TEXTURE_CROP_RECT_OES 0x8B9D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_element_index_uint b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_element_index_uint
new file mode 100644
index 0000000..a54cc62
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_element_index_uint
@@ -0,0 +1,5 @@
+GL_OES_element_index_uint
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_element_index_uint.txt
+GL_OES_element_index_uint
+
+ GL_UNSIGNED_INT 0x1405
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_extended_matrix_palette b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_extended_matrix_palette
new file mode 100644
index 0000000..0c4c3b5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_extended_matrix_palette
@@ -0,0 +1,4 @@
+GL_OES_extended_matrix_palette
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_extended_matrix_palette.txt
+GL_OES_extended_matrix_palette
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_fbo_render_mipmap b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_fbo_render_mipmap
new file mode 100644
index 0000000..420c2b9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_fbo_render_mipmap
@@ -0,0 +1,4 @@
+GL_OES_fbo_render_mipmap
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_fbo_render_mipmap.txt
+GL_OES_fbo_render_mipmap
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_fragment_precision_high b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_fragment_precision_high
new file mode 100644
index 0000000..19b6410
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_fragment_precision_high
@@ -0,0 +1,4 @@
+GL_OES_fragment_precision_high
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_fragment_precision_high.txt
+GL_OES_fragment_precision_high
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_framebuffer_object b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_framebuffer_object
new file mode 100644
index 0000000..bdef4b6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_framebuffer_object
@@ -0,0 +1,58 @@
+GL_OES_framebuffer_object
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_framebuffer_object.txt
+GL_OES_framebuffer_object
+
+ GL_NONE_OES 0
+ GL_INVALID_FRAMEBUFFER_OPERATION_OES 0x0506
+ GL_RGBA4_OES 0x8056
+ GL_RGB5_A1_OES 0x8057
+ GL_DEPTH_COMPONENT16_OES 0x81A5
+ GL_MAX_RENDERBUFFER_SIZE_OES 0x84E8
+ GL_FRAMEBUFFER_BINDING_OES 0x8CA6
+ GL_RENDERBUFFER_BINDING_OES 0x8CA7
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES 0x8CD0
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES 0x8CD1
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES 0x8CD2
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8CD3
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4
+ GL_FRAMEBUFFER_COMPLETE_OES 0x8CD5
+ GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 0x8CD6
+ GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES 0x8CD7
+ GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES 0x8CD9
+ GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES 0x8CDA
+ GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES 0x8CDB
+ GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES 0x8CDC
+ GL_FRAMEBUFFER_UNSUPPORTED_OES 0x8CDD
+ GL_COLOR_ATTACHMENT0_OES 0x8CE0
+ GL_DEPTH_ATTACHMENT_OES 0x8D00
+ GL_STENCIL_ATTACHMENT_OES 0x8D20
+ GL_FRAMEBUFFER_OES 0x8D40
+ GL_RENDERBUFFER_OES 0x8D41
+ GL_RENDERBUFFER_WIDTH_OES 0x8D42
+ GL_RENDERBUFFER_HEIGHT_OES 0x8D43
+ GL_RENDERBUFFER_INTERNAL_FORMAT_OES 0x8D44
+ GL_STENCIL_INDEX1_OES 0x8D46
+ GL_STENCIL_INDEX4_OES 0x8D47
+ GL_STENCIL_INDEX8_OES 0x8D48
+ GL_RENDERBUFFER_RED_SIZE_OES 0x8D50
+ GL_RENDERBUFFER_GREEN_SIZE_OES 0x8D51
+ GL_RENDERBUFFER_BLUE_SIZE_OES 0x8D52
+ GL_RENDERBUFFER_ALPHA_SIZE_OES 0x8D53
+ GL_RENDERBUFFER_DEPTH_SIZE_OES 0x8D54
+ GL_RENDERBUFFER_STENCIL_SIZE_OES 0x8D55
+ GL_RGB565_OES 0x8D62
+ void glBindFramebufferOES (GLenum target, GLuint framebuffer)
+ void glBindRenderbufferOES (GLenum target, GLuint renderbuffer)
+ GLenum glCheckFramebufferStatusOES (GLenum target)
+ void glDeleteFramebuffersOES (GLsizei n, const GLuint* framebuffers)
+ void glDeleteRenderbuffersOES (GLsizei n, const GLuint* renderbuffers)
+ void glFramebufferRenderbufferOES (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+ void glFramebufferTexture2DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+ void glGenFramebuffersOES (GLsizei n, GLuint* framebuffers)
+ void glGenRenderbuffersOES (GLsizei n, GLuint* renderbuffers)
+ void glGenerateMipmapOES (GLenum target)
+ void glGetFramebufferAttachmentParameterivOES (GLenum target, GLenum attachment, GLenum pname, GLint* params)
+ void glGetRenderbufferParameterivOES (GLenum target, GLenum pname, GLint* params)
+ GLboolean glIsFramebufferOES (GLuint framebuffer)
+ GLboolean glIsRenderbufferOES (GLuint renderbuffer)
+ void glRenderbufferStorageOES (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_geometry_point_size b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_geometry_point_size
new file mode 100644
index 0000000..cdaab67
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_geometry_point_size
@@ -0,0 +1,37 @@
+GL_OES_geometry_point_size
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_geometry_shader.txt
+GL_OES_geometry_point_size
+
+ GL_GEOMETRY_SHADER_BIT_OES 0x00000004
+ GL_LINES_ADJACENCY_OES 0xA
+ GL_LINE_STRIP_ADJACENCY_OES 0xB
+ GL_TRIANGLES_ADJACENCY_OES 0xC
+ GL_TRIANGLE_STRIP_ADJACENCY_OES 0xD
+ GL_LAYER_PROVOKING_VERTEX_OES 0x825E
+ GL_UNDEFINED_VERTEX_OES 0x8260
+ GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F
+ GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916
+ GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917
+ GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918
+ GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C
+ GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32
+ GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29
+ GL_PRIMITIVES_GENERATED_OES 0x8C87
+ GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7
+ GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8
+ GL_GEOMETRY_SHADER_OES 0x8DD9
+ GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF
+ GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0
+ GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1
+ GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D
+ GL_LAST_VERTEX_CONVENTION_OES 0x8E4E
+ GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A
+ GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD
+ GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7
+ GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123
+ GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124
+ GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF
+ GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5
+ GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309
+ GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312
+ GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_geometry_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_geometry_shader
new file mode 100644
index 0000000..997148b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_geometry_shader
@@ -0,0 +1,37 @@
+GL_OES_geometry_shader
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_geometry_shader.txt
+GL_OES_geometry_shader
+
+ GL_GEOMETRY_SHADER_BIT_OES 0x00000004
+ GL_LINES_ADJACENCY_OES 0xA
+ GL_LINE_STRIP_ADJACENCY_OES 0xB
+ GL_TRIANGLES_ADJACENCY_OES 0xC
+ GL_TRIANGLE_STRIP_ADJACENCY_OES 0xD
+ GL_LAYER_PROVOKING_VERTEX_OES 0x825E
+ GL_UNDEFINED_VERTEX_OES 0x8260
+ GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F
+ GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916
+ GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917
+ GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918
+ GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C
+ GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32
+ GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29
+ GL_PRIMITIVES_GENERATED_OES 0x8C87
+ GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7
+ GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8
+ GL_GEOMETRY_SHADER_OES 0x8DD9
+ GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF
+ GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0
+ GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1
+ GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D
+ GL_LAST_VERTEX_CONVENTION_OES 0x8E4E
+ GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A
+ GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD
+ GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7
+ GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123
+ GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124
+ GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF
+ GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5
+ GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309
+ GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312
+ GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_get_program_binary b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_get_program_binary
new file mode 100644
index 0000000..7644673
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_get_program_binary
@@ -0,0 +1,9 @@
+GL_OES_get_program_binary
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_get_program_binary.txt
+GL_OES_get_program_binary
+
+ GL_PROGRAM_BINARY_LENGTH_OES 0x8741
+ GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE
+ GL_PROGRAM_BINARY_FORMATS_OES 0x87FF
+ void glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, void*binary)
+ void glProgramBinaryOES (GLuint program, GLenum binaryFormat, const void *binary, GLint length)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_gpu_shader5 b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_gpu_shader5
new file mode 100644
index 0000000..714662e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_gpu_shader5
@@ -0,0 +1,4 @@
+GL_OES_gpu_shader5
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_gpu_shader5.txt
+GL_OES_gpu_shader5
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_mapbuffer b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_mapbuffer
new file mode 100644
index 0000000..7738d3d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_mapbuffer
@@ -0,0 +1,11 @@
+GL_OES_mapbuffer
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_mapbuffer.txt
+GL_OES_mapbuffer
+
+ GL_WRITE_ONLY_OES 0x88B9
+ GL_BUFFER_ACCESS_OES 0x88BB
+ GL_BUFFER_MAPPED_OES 0x88BC
+ GL_BUFFER_MAP_POINTER_OES 0x88BD
+ void glGetBufferPointervOES (GLenum target, GLenum pname, void** params)
+ void * glMapBufferOES (GLenum target, GLenum access)
+ GLboolean glUnmapBufferOES (GLenum target)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_matrix_get b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_matrix_get
new file mode 100644
index 0000000..6fe9301
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_matrix_get
@@ -0,0 +1,7 @@
+GL_OES_matrix_get
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_matrix_get.txt
+GL_OES_matrix_get
+
+ GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898d
+ GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898e
+ GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898f
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_matrix_palette b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_matrix_palette
new file mode 100644
index 0000000..d50bdf2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_matrix_palette
@@ -0,0 +1,24 @@
+GL_OES_matrix_palette
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_matrix_palette.txt
+GL_OES_matrix_palette
+
+ GL_MAX_VERTEX_UNITS_OES 0x86A4
+ GL_WEIGHT_ARRAY_TYPE_OES 0x86A9
+ GL_WEIGHT_ARRAY_STRIDE_OES 0x86AA
+ GL_WEIGHT_ARRAY_SIZE_OES 0x86AB
+ GL_WEIGHT_ARRAY_POINTER_OES 0x86AC
+ GL_WEIGHT_ARRAY_OES 0x86AD
+ GL_MATRIX_PALETTE_OES 0x8840
+ GL_MAX_PALETTE_MATRICES_OES 0x8842
+ GL_CURRENT_PALETTE_MATRIX_OES 0x8843
+ GL_MATRIX_INDEX_ARRAY_OES 0x8844
+ GL_MATRIX_INDEX_ARRAY_SIZE_OES 0x8846
+ GL_MATRIX_INDEX_ARRAY_TYPE_OES 0x8847
+ GL_MATRIX_INDEX_ARRAY_STRIDE_OES 0x8848
+ GL_MATRIX_INDEX_ARRAY_POINTER_OES 0x8849
+ GL_WEIGHT_ARRAY_BUFFER_BINDING_OES 0x889E
+ GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8B9E
+ void glCurrentPaletteMatrixOES (GLuint index)
+ void glLoadPaletteFromModelViewMatrixOES (void)
+ void glMatrixIndexPointerOES (GLint size, GLenum type, GLsizei stride, void *pointer)
+ void glWeightPointerOES (GLint size, GLenum type, GLsizei stride, void *pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_packed_depth_stencil b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_packed_depth_stencil
new file mode 100644
index 0000000..89f530c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_packed_depth_stencil
@@ -0,0 +1,7 @@
+GL_OES_packed_depth_stencil
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_packed_depth_stencil.txt
+GL_OES_packed_depth_stencil
+
+ GL_DEPTH_STENCIL_OES 0x84F9
+ GL_UNSIGNED_INT_24_8_OES 0x84FA
+ GL_DEPTH24_STENCIL8_OES 0x88F0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_point_size_array b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_point_size_array
new file mode 100644
index 0000000..b964a47
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_point_size_array
@@ -0,0 +1,9 @@
+GL_OES_point_size_array
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_point_size_array.txt
+GL_OES_point_size_array
+
+ GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A
+ GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B
+ GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C
+ GL_POINT_SIZE_ARRAY_OES 0x8B9C
+ GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_point_sprite b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_point_sprite
new file mode 100644
index 0000000..d6f0a65
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_point_sprite
@@ -0,0 +1,6 @@
+GL_OES_point_sprite
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_point_sprite.txt
+GL_OES_point_sprite
+
+ GL_POINT_SPRITE_OES 0x8861
+ GL_COORD_REPLACE_OES 0x8862
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_read_format b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_read_format
new file mode 100644
index 0000000..125b9eb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_read_format
@@ -0,0 +1,6 @@
+GL_OES_read_format
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_read_format.txt
+GL_OES_read_format
+
+ GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
+ GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_required_internalformat b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_required_internalformat
new file mode 100644
index 0000000..d74084c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_required_internalformat
@@ -0,0 +1,19 @@
+GL_OES_required_internalformat
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_required_internalformat.txt
+GL_OES_required_internalformat
+
+ GL_ALPHA8_OES 0x803C
+ GL_LUMINANCE8_OES 0x8040
+ GL_LUMINANCE4_ALPHA4_OES 0x8043
+ GL_LUMINANCE8_ALPHA8_OES 0x8045
+ GL_RGB8_OES 0x8051
+ GL_RGB10_EXT 0x8052
+ GL_RGBA4_OES 0x8056
+ GL_RGB5_A1_OES 0x8057
+ GL_RGBA8_OES 0x8058
+ GL_RGB10_A2_EXT 0x8059
+ GL_DEPTH_COMPONENT16_OES 0x81A5
+ GL_DEPTH_COMPONENT24_OES 0x81A6
+ GL_DEPTH_COMPONENT32_OES 0x81A7
+ GL_DEPTH24_STENCIL8_OES 0x88F0
+ GL_RGB565_OES 0x8D62
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_rgb8_rgba8 b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_rgb8_rgba8
new file mode 100644
index 0000000..df75ea0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_rgb8_rgba8
@@ -0,0 +1,6 @@
+GL_OES_rgb8_rgba8
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_rgb8_rgba8.txt
+GL_OES_rgb8_rgba8
+
+ GL_RGB8_OES 0x8051
+ GL_RGBA8_OES 0x8058
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_sample_shading b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_sample_shading
new file mode 100644
index 0000000..b27dc5b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_sample_shading
@@ -0,0 +1,7 @@
+GL_OES_sample_shading
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_sample_shading.txt
+GL_OES_sample_shading
+
+ GL_SAMPLE_SHADING_OES 0x8C36
+ GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37
+ void glMinSampleShadingOES (GLfloat value)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_sample_variables b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_sample_variables
new file mode 100644
index 0000000..db6fb7f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_sample_variables
@@ -0,0 +1,4 @@
+GL_OES_sample_variables
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_sample_variables.txt
+GL_OES_sample_variables
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_image_atomic b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_image_atomic
new file mode 100644
index 0000000..09ab403
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_image_atomic
@@ -0,0 +1,4 @@
+GL_OES_shader_image_atomic
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_shader_image_atomic.txt
+GL_OES_shader_image_atomic
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_io_blocks b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_io_blocks
new file mode 100644
index 0000000..08b24fa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_io_blocks
@@ -0,0 +1,4 @@
+GL_OES_shader_io_blocks
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_shader_io_blocks.txt
+GL_OES_shader_io_blocks
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_multisample_interpolation b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_multisample_interpolation
new file mode 100644
index 0000000..24b6919
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_shader_multisample_interpolation
@@ -0,0 +1,7 @@
+GL_OES_shader_multisample_interpolation
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_shader_multisample_interpolation.txt
+GL_OES_shader_multisample_interpolation
+
+ GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B
+ GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C
+ GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_single_precision b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_single_precision
new file mode 100644
index 0000000..8dc86ae
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_single_precision
@@ -0,0 +1,10 @@
+GL_OES_single_precision
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_single_precision.txt
+GL_OES_single_precision
+
+ void glClearDepthfOES (GLclampf depth)
+ void glClipPlanefOES (GLenum plane, const GLfloat* equation)
+ void glDepthRangefOES (GLclampf n, GLclampf f)
+ void glFrustumfOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f)
+ void glGetClipPlanefOES (GLenum plane, GLfloat* equation)
+ void glOrthofOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_standard_derivatives b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_standard_derivatives
new file mode 100644
index 0000000..7dc1bd2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_standard_derivatives
@@ -0,0 +1,5 @@
+GL_OES_standard_derivatives
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_standard_derivatives.txt
+GL_OES_standard_derivatives
+
+ GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil1 b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil1
new file mode 100644
index 0000000..8464243
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil1
@@ -0,0 +1,5 @@
+GL_OES_stencil1
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_stencil1.txt
+GL_OES_stencil1
+
+ GL_STENCIL_INDEX1_OES 0x8D46
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil4 b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil4
new file mode 100644
index 0000000..4ae2518
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil4
@@ -0,0 +1,5 @@
+GL_OES_stencil4
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_stencil4.txt
+GL_OES_stencil4
+
+ GL_STENCIL_INDEX4_OES 0x8D47
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil8 b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil8
new file mode 100644
index 0000000..044da16
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_stencil8
@@ -0,0 +1,5 @@
+GL_OES_stencil8
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_stencil8.txt
+GL_OES_stencil8
+
+ GL_STENCIL_INDEX8_OES 0x8D48
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_surfaceless_context b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_surfaceless_context
new file mode 100644
index 0000000..4085999
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_surfaceless_context
@@ -0,0 +1,5 @@
+GL_OES_surfaceless_context
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_surfaceless_context.txt
+GL_OES_surfaceless_context
+
+ GL_FRAMEBUFFER_UNDEFINED_OES 0x8219
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_tessellation_point_size b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_tessellation_point_size
new file mode 100644
index 0000000..8cebeae
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_tessellation_point_size
@@ -0,0 +1,47 @@
+GL_OES_tessellation_point_size
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_tessellation_shader.txt
+GL_OES_tessellation_point_size
+
+ GL_QUADS_OES 0x0007
+ GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008
+ GL_PATCHES_OES 0xE
+ GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010
+ GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221
+ GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C
+ GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D
+ GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E
+ GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F
+ GL_PATCH_VERTICES_OES 0x8E72
+ GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75
+ GL_TESS_GEN_MODE_OES 0x8E76
+ GL_TESS_GEN_SPACING_OES 0x8E77
+ GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78
+ GL_TESS_GEN_POINT_MODE_OES 0x8E79
+ GL_ISOLINES_OES 0x8E7A
+ GL_FRACTIONAL_ODD_OES 0x8E7B
+ GL_FRACTIONAL_EVEN_OES 0x8E7C
+ GL_MAX_PATCH_VERTICES_OES 0x8E7D
+ GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E
+ GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F
+ GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80
+ GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81
+ GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82
+ GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83
+ GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84
+ GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85
+ GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86
+ GL_TESS_EVALUATION_SHADER_OES 0x8E87
+ GL_TESS_CONTROL_SHADER_OES 0x8E88
+ GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89
+ GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A
+ GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB
+ GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC
+ GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8
+ GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9
+ GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD
+ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE
+ GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3
+ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4
+ GL_IS_PER_PATCH_OES 0x92E7
+ GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307
+ GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_tessellation_shader b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_tessellation_shader
new file mode 100644
index 0000000..461893e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_tessellation_shader
@@ -0,0 +1,47 @@
+GL_OES_tessellation_shader
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_tessellation_shader.txt
+GL_OES_tessellation_shader
+
+ GL_QUADS_OES 0x0007
+ GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008
+ GL_PATCHES_OES 0xE
+ GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010
+ GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221
+ GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C
+ GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D
+ GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E
+ GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F
+ GL_PATCH_VERTICES_OES 0x8E72
+ GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75
+ GL_TESS_GEN_MODE_OES 0x8E76
+ GL_TESS_GEN_SPACING_OES 0x8E77
+ GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78
+ GL_TESS_GEN_POINT_MODE_OES 0x8E79
+ GL_ISOLINES_OES 0x8E7A
+ GL_FRACTIONAL_ODD_OES 0x8E7B
+ GL_FRACTIONAL_EVEN_OES 0x8E7C
+ GL_MAX_PATCH_VERTICES_OES 0x8E7D
+ GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E
+ GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F
+ GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80
+ GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81
+ GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82
+ GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83
+ GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84
+ GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85
+ GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86
+ GL_TESS_EVALUATION_SHADER_OES 0x8E87
+ GL_TESS_CONTROL_SHADER_OES 0x8E88
+ GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89
+ GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A
+ GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB
+ GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC
+ GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8
+ GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9
+ GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD
+ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE
+ GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3
+ GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4
+ GL_IS_PER_PATCH_OES 0x92E7
+ GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307
+ GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_3D b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_3D
new file mode 100644
index 0000000..4be0473
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_3D
@@ -0,0 +1,14 @@
+GL_OES_texture_3D
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_3D.txt
+GL_OES_texture_3D
+
+ GL_TEXTURE_BINDING_3D_OES 0x806A
+ GL_TEXTURE_3D_OES 0x806F
+ GL_TEXTURE_WRAP_R_OES 0x8072
+ GL_MAX_3D_TEXTURE_SIZE_OES 0x8073
+ void glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
+ void glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
+ void glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+ void glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+ void glTexImage3DOES (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
+ void glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_border_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_border_clamp
new file mode 100644
index 0000000..e642831
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_border_clamp
@@ -0,0 +1,14 @@
+GL_OES_texture_border_clamp
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_border_clamp.txt
+GL_OES_texture_border_clamp
+
+ GL_TEXTURE_BORDER_COLOR_OES 0x1004
+ GL_CLAMP_TO_BORDER_OES 0x812D
+ void glGetSamplerParameterIivOES (GLuint sampler, GLenum pname, GLint* params)
+ void glGetSamplerParameterIuivOES (GLuint sampler, GLenum pname, GLuint* params)
+ void glGetTexParameterIivOES (GLenum target, GLenum pname, GLint* params)
+ void glGetTexParameterIuivOES (GLenum target, GLenum pname, GLuint* params)
+ void glSamplerParameterIivOES (GLuint sampler, GLenum pname, const GLint* params)
+ void glSamplerParameterIuivOES (GLuint sampler, GLenum pname, const GLuint* params)
+ void glTexParameterIivOES (GLenum target, GLenum pname, const GLint* params)
+ void glTexParameterIuivOES (GLenum target, GLenum pname, const GLuint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_buffer
new file mode 100644
index 0000000..1dde1a8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_buffer
@@ -0,0 +1,20 @@
+GL_OES_texture_buffer
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_buffer.txt
+GL_OES_texture_buffer
+
+ GL_TEXTURE_BUFFER_BINDING_OES 0x8C2A
+ GL_TEXTURE_BUFFER_OES 0x8C2A
+ GL_MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B
+ GL_TEXTURE_BINDING_BUFFER_OES 0x8C2C
+ GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES 0x8C2D
+ GL_SAMPLER_BUFFER_OES 0x8DC2
+ GL_INT_SAMPLER_BUFFER_OES 0x8DD0
+ GL_UNSIGNED_INT_SAMPLER_BUFFER_OES 0x8DD8
+ GL_IMAGE_BUFFER_OES 0x9051
+ GL_INT_IMAGE_BUFFER_OES 0x905C
+ GL_UNSIGNED_INT_IMAGE_BUFFER_OES 0x9067
+ GL_TEXTURE_BUFFER_OFFSET_OES 0x919D
+ GL_TEXTURE_BUFFER_SIZE_OES 0x919E
+ GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F
+ void glTexBufferOES (GLenum target, GLenum internalformat, GLuint buffer)
+ void glTexBufferRangeOES (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_compression_astc b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_compression_astc
new file mode 100644
index 0000000..c4a49e6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_compression_astc
@@ -0,0 +1,52 @@
+GL_OES_texture_compression_astc
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_compression_astc.txt
+GL_OES_texture_compression_astc
+
+ GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
+ GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
+ GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
+ GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
+ GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
+ GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
+ GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
+ GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
+ GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
+ GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
+ GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
+ GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
+ GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
+ GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
+ GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0
+ GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1
+ GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2
+ GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3
+ GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4
+ GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5
+ GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6
+ GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7
+ GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8
+ GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8
+ GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_cube_map b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_cube_map
new file mode 100644
index 0000000..b4770b4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_cube_map
@@ -0,0 +1,26 @@
+GL_OES_texture_cube_map
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_cube_map.txt
+GL_OES_texture_cube_map
+
+ GL_TEXTURE_GEN_MODE_OES 0x2500
+ GL_NORMAL_MAP_OES 0x8511
+ GL_REFLECTION_MAP_OES 0x8512
+ GL_TEXTURE_CUBE_MAP_OES 0x8513
+ GL_TEXTURE_BINDING_CUBE_MAP_OES 0x8514
+ GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518
+ GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519
+ GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851A
+ GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES 0x851C
+ GL_TEXTURE_GEN_STR_OES 0x8D60
+ void glGetTexGenfvOES (GLenum coord, GLenum pname, GLfloat* params)
+ void glGetTexGenivOES (GLenum coord, GLenum pname, GLint* params)
+ void glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed* params)
+ void glTexGenfOES (GLenum coord, GLenum pname, GLfloat param)
+ void glTexGenfvOES (GLenum coord, GLenum pname, const GLfloat* params)
+ void glTexGeniOES (GLenum coord, GLenum pname, GLint param)
+ void glTexGenivOES (GLenum coord, GLenum pname, const GLint* params)
+ void glTexGenxOES (GLenum coord, GLenum pname, GLfixed param)
+ void glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_cube_map_array b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_cube_map_array
new file mode 100644
index 0000000..6f0d225
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_cube_map_array
@@ -0,0 +1,13 @@
+GL_OES_texture_cube_map_array
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_cube_map_array.txt
+GL_OES_texture_cube_map_array
+
+ GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009
+ GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES 0x900A
+ GL_SAMPLER_CUBE_MAP_ARRAY_OES 0x900C
+ GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES 0x900D
+ GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900E
+ GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900F
+ GL_IMAGE_CUBE_MAP_ARRAY_OES 0x9054
+ GL_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x905F
+ GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x906A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_env_crossbar b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_env_crossbar
new file mode 100644
index 0000000..11ed8b0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_env_crossbar
@@ -0,0 +1,4 @@
+GL_OES_texture_env_crossbar
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_env_crossbar.txt
+GL_OES_texture_env_crossbar
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_mirrored_repeat b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_mirrored_repeat
new file mode 100644
index 0000000..2375ae7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_mirrored_repeat
@@ -0,0 +1,5 @@
+GL_OES_texture_mirrored_repeat
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_mirrored_repeat.txt
+GL_OES_texture_mirrored_repeat
+
+ GL_MIRRORED_REPEAT 0x8370
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_npot b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_npot
new file mode 100644
index 0000000..76a008d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_npot
@@ -0,0 +1,4 @@
+GL_OES_texture_npot
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_npot.txt
+GL_OES_texture_npot
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_stencil8 b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_stencil8
new file mode 100644
index 0000000..70c4db1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_stencil8
@@ -0,0 +1,6 @@
+GL_OES_texture_stencil8
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_stencil8.txt
+GL_OES_texture_stencil8
+
+ GL_STENCIL_INDEX 0x1901
+ GL_STENCIL_INDEX8 0x8D48
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_storage_multisample_2d_array b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_storage_multisample_2d_array
new file mode 100644
index 0000000..8e6e121
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_storage_multisample_2d_array
@@ -0,0 +1,10 @@
+GL_OES_texture_storage_multisample_2d_array
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_storage_multisample_2d_array.txt
+GL_OES_texture_storage_multisample_2d_array
+
+ GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102
+ GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105
+ GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B
+ GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C
+ GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D
+ void glTexStorage3DMultisampleOES (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_view b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_view
new file mode 100644
index 0000000..b6cb050
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_texture_view
@@ -0,0 +1,10 @@
+GL_OES_texture_view
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_view.txt
+GL_OES_texture_view
+
+ GL_TEXTURE_VIEW_MIN_LEVEL_OES 0x82DB
+ GL_TEXTURE_VIEW_NUM_LEVELS_OES 0x82DC
+ GL_TEXTURE_VIEW_MIN_LAYER_OES 0x82DD
+ GL_TEXTURE_VIEW_NUM_LAYERS_OES 0x82DE
+ GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
+ void glTextureViewOES (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_array_object b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_array_object
new file mode 100644
index 0000000..670ab3a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_array_object
@@ -0,0 +1,9 @@
+GL_OES_vertex_array_object
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_vertex_array_object.txt
+GL_OES_vertex_array_object
+
+ GL_VERTEX_ARRAY_BINDING_OES 0x85B5
+ void glBindVertexArrayOES (GLuint array)
+ void glDeleteVertexArraysOES (GLsizei n, const GLuint* arrays)
+ void glGenVertexArraysOES (GLsizei n, GLuint* arrays)
+ GLboolean glIsVertexArrayOES (GLuint array)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_half_float b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_half_float
new file mode 100644
index 0000000..45888ec
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_half_float
@@ -0,0 +1,5 @@
+GL_OES_vertex_half_float
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_vertex_half_float.txt
+GL_OES_vertex_half_float
+
+ GL_HALF_FLOAT_OES 0x8D61
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_type_10_10_10_2 b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_type_10_10_10_2
new file mode 100644
index 0000000..9624b2b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OES_vertex_type_10_10_10_2
@@ -0,0 +1,6 @@
+GL_OES_vertex_type_10_10_10_2
+https://www.khronos.org/registry/OpenGL/extensions/OES/OES_vertex_type_10_10_10_2.txt
+GL_OES_vertex_type_10_10_10_2
+
+ GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6
+ GL_INT_10_10_10_2_OES 0x8DF7
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OML_interlace b/engine-ocean/External/glew/auto/extensions/gl/GL_OML_interlace
new file mode 100644
index 0000000..f79ad81
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OML_interlace
@@ -0,0 +1,6 @@
+GL_OML_interlace
+https://www.khronos.org/registry/OpenGL/extensions/OML/OML_interlace.txt
+GL_OML_interlace
+
+ GL_INTERLACE_OML 0x8980
+ GL_INTERLACE_READ_OML 0x8981
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OML_resample b/engine-ocean/External/glew/auto/extensions/gl/GL_OML_resample
new file mode 100644
index 0000000..3f1428c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OML_resample
@@ -0,0 +1,10 @@
+GL_OML_resample
+https://www.khronos.org/registry/OpenGL/extensions/OML/OML_resample.txt
+GL_OML_resample
+
+ GL_PACK_RESAMPLE_OML 0x8984
+ GL_UNPACK_RESAMPLE_OML 0x8985
+ GL_RESAMPLE_REPLICATE_OML 0x8986
+ GL_RESAMPLE_ZERO_FILL_OML 0x8987
+ GL_RESAMPLE_AVERAGE_OML 0x8988
+ GL_RESAMPLE_DECIMATE_OML 0x8989
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OML_subsample b/engine-ocean/External/glew/auto/extensions/gl/GL_OML_subsample
new file mode 100644
index 0000000..f102246
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OML_subsample
@@ -0,0 +1,6 @@
+GL_OML_subsample
+https://www.khronos.org/registry/OpenGL/extensions/OML/OML_subsample.txt
+GL_OML_subsample
+
+ GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982
+ GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview b/engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview
new file mode 100644
index 0000000..e238930
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview
@@ -0,0 +1,10 @@
+GL_OVR_multiview
+https://www.khronos.org/registry/OpenGL/extensions/OVR/OVR_multiview.txt
+GL_OVR_multiview
+
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630
+ GL_MAX_VIEWS_OVR 0x9631
+ GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632
+ GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633
+ void glFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews)
+ void glNamedFramebufferTextureMultiviewOVR (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview2 b/engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview2
new file mode 100644
index 0000000..2cfd992
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview2
@@ -0,0 +1,4 @@
+GL_OVR_multiview2
+https://www.khronos.org/registry/OpenGL/extensions/OVR/OVR_multiview2.txt
+GL_OVR_multiview2
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview_multisampled_render_to_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview_multisampled_render_to_texture
new file mode 100644
index 0000000..65ac7e5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_OVR_multiview_multisampled_render_to_texture
@@ -0,0 +1,5 @@
+GL_OVR_multiview_multisampled_render_to_texture
+https://www.khronos.org/registry/OpenGL/extensions/OVR/OVR_multiview_multisampled_render_to_texture.txt
+GL_OVR_multiview_multisampled_render_to_texture
+
+ void glFramebufferTextureMultisampleMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_PGI_misc_hints b/engine-ocean/External/glew/auto/extensions/gl/GL_PGI_misc_hints
new file mode 100644
index 0000000..42ba179
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_PGI_misc_hints
@@ -0,0 +1,24 @@
+GL_PGI_misc_hints
+https://www.khronos.org/registry/OpenGL/extensions/PGI/PGI_misc_hints.txt
+GL_PGI_misc_hints
+
+ GL_PREFER_DOUBLEBUFFER_HINT_PGI 107000
+ GL_CONSERVE_MEMORY_HINT_PGI 107005
+ GL_RECLAIM_MEMORY_HINT_PGI 107006
+ GL_NATIVE_GRAPHICS_HANDLE_PGI 107010
+ GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011
+ GL_NATIVE_GRAPHICS_END_HINT_PGI 107012
+ GL_ALWAYS_FAST_HINT_PGI 107020
+ GL_ALWAYS_SOFT_HINT_PGI 107021
+ GL_ALLOW_DRAW_OBJ_HINT_PGI 107022
+ GL_ALLOW_DRAW_WIN_HINT_PGI 107023
+ GL_ALLOW_DRAW_FRG_HINT_PGI 107024
+ GL_ALLOW_DRAW_MEM_HINT_PGI 107025
+ GL_STRICT_DEPTHFUNC_HINT_PGI 107030
+ GL_STRICT_LIGHTING_HINT_PGI 107031
+ GL_STRICT_SCISSOR_HINT_PGI 107032
+ GL_FULL_STIPPLE_HINT_PGI 107033
+ GL_CLIP_NEAR_HINT_PGI 107040
+ GL_CLIP_FAR_HINT_PGI 107041
+ GL_WIDE_LINE_HINT_PGI 107042
+ GL_BACK_NORMALS_HINT_PGI 107043
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_PGI_vertex_hints b/engine-ocean/External/glew/auto/extensions/gl/GL_PGI_vertex_hints
new file mode 100644
index 0000000..3942156
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_PGI_vertex_hints
@@ -0,0 +1,26 @@
+GL_PGI_vertex_hints
+https://www.khronos.org/registry/OpenGL/extensions/PGI/PGI_vertex_hints.txt
+GL_PGI_vertex_hints
+
+ GL_VERTEX23_BIT_PGI 0x00000004
+ GL_VERTEX4_BIT_PGI 0x00000008
+ GL_COLOR3_BIT_PGI 0x00010000
+ GL_COLOR4_BIT_PGI 0x00020000
+ GL_EDGEFLAG_BIT_PGI 0x00040000
+ GL_INDEX_BIT_PGI 0x00080000
+ GL_MAT_AMBIENT_BIT_PGI 0x00100000
+ GL_VERTEX_DATA_HINT_PGI 107050
+ GL_VERTEX_CONSISTENT_HINT_PGI 107051
+ GL_MATERIAL_SIDE_HINT_PGI 107052
+ GL_MAX_VERTEX_HINT_PGI 107053
+ GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000
+ GL_MAT_DIFFUSE_BIT_PGI 0x00400000
+ GL_MAT_EMISSION_BIT_PGI 0x00800000
+ GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000
+ GL_MAT_SHININESS_BIT_PGI 0x02000000
+ GL_MAT_SPECULAR_BIT_PGI 0x04000000
+ GL_NORMAL_BIT_PGI 0x08000000
+ GL_TEXCOORD1_BIT_PGI 0x10000000
+ GL_TEXCOORD2_BIT_PGI 0x20000000
+ GL_TEXCOORD3_BIT_PGI 0x40000000
+ GL_TEXCOORD4_BIT_PGI 0x80000000
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_YUV_texture_gather b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_YUV_texture_gather
new file mode 100644
index 0000000..bfa04de
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_YUV_texture_gather
@@ -0,0 +1,4 @@
+GL_QCOM_YUV_texture_gather
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_YUV_texture_gather.txt
+GL_QCOM_YUV_texture_gather
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_alpha_test b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_alpha_test
new file mode 100644
index 0000000..ac655e2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_alpha_test
@@ -0,0 +1,8 @@
+GL_QCOM_alpha_test
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_alpha_test.txt
+GL_QCOM_alpha_test
+
+ GL_ALPHA_TEST_QCOM 0x0BC0
+ GL_ALPHA_TEST_FUNC_QCOM 0x0BC1
+ GL_ALPHA_TEST_REF_QCOM 0x0BC2
+ void glAlphaFuncQCOM (GLenum func, GLclampf ref)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_binning_control b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_binning_control
new file mode 100644
index 0000000..697e5fc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_binning_control
@@ -0,0 +1,9 @@
+GL_QCOM_binning_control
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_binning_control.txt
+GL_QCOM_binning_control
+
+ GL_DONT_CARE 0x1100
+ GL_BINNING_CONTROL_HINT_QCOM 0x8FB0
+ GL_CPU_OPTIMIZED_QCOM 0x8FB1
+ GL_GPU_OPTIMIZED_QCOM 0x8FB2
+ GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_driver_control b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_driver_control
new file mode 100644
index 0000000..5d7c3eb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_driver_control
@@ -0,0 +1,8 @@
+GL_QCOM_driver_control
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_driver_control.txt
+GL_QCOM_driver_control
+
+ void glDisableDriverControlQCOM (GLuint driverControl)
+ void glEnableDriverControlQCOM (GLuint driverControl)
+ void glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar *driverControlString)
+ void glGetDriverControlsQCOM (GLint* num, GLsizei size, GLuint *driverControls)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_extended_get b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_extended_get
new file mode 100644
index 0000000..af400f2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_extended_get
@@ -0,0 +1,23 @@
+GL_QCOM_extended_get
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_extended_get.txt
+GL_QCOM_extended_get
+
+ GL_TEXTURE_WIDTH_QCOM 0x8BD2
+ GL_TEXTURE_HEIGHT_QCOM 0x8BD3
+ GL_TEXTURE_DEPTH_QCOM 0x8BD4
+ GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5
+ GL_TEXTURE_FORMAT_QCOM 0x8BD6
+ GL_TEXTURE_TYPE_QCOM 0x8BD7
+ GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8
+ GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9
+ GL_TEXTURE_TARGET_QCOM 0x8BDA
+ GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB
+ GL_STATE_RESTORE 0x8BDC
+ void glExtGetBufferPointervQCOM (GLenum target, void** params)
+ void glExtGetBuffersQCOM (GLuint* buffers, GLint maxBuffers, GLint* numBuffers)
+ void glExtGetFramebuffersQCOM (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers)
+ void glExtGetRenderbuffersQCOM (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers)
+ void glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params)
+ void glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels)
+ void glExtGetTexturesQCOM (GLuint* textures, GLint maxTextures, GLint* numTextures)
+ void glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_extended_get2 b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_extended_get2
new file mode 100644
index 0000000..c50e984
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_extended_get2
@@ -0,0 +1,8 @@
+GL_QCOM_extended_get2
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_extended_get2.txt
+GL_QCOM_extended_get2
+
+ void glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar* source, GLint* length)
+ void glExtGetProgramsQCOM (GLuint* programs, GLint maxPrograms, GLint* numPrograms)
+ void glExtGetShadersQCOM (GLuint* shaders, GLint maxShaders, GLint* numShaders)
+ GLboolean glExtIsProgramBinaryQCOM (GLuint program)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_frame_extrapolation b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_frame_extrapolation
new file mode 100644
index 0000000..c6dbc4c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_frame_extrapolation
@@ -0,0 +1,5 @@
+GL_QCOM_frame_extrapolation
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_frame_extrapolation.txt
+GL_QCOM_frame_extrapolation
+
+ void glExtrapolateTex2DQCOM (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_framebuffer_foveated b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_framebuffer_foveated
new file mode 100644
index 0000000..c3abd2c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_framebuffer_foveated
@@ -0,0 +1,8 @@
+GL_QCOM_framebuffer_foveated
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_framebuffer_foveated.txt
+GL_QCOM_framebuffer_foveated
+
+ GL_FOVEATION_ENABLE_BIT_QCOM 0x1
+ GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x2
+ void glFramebufferFoveationConfigQCOM (GLuint fbo, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint* providedFeatures)
+ void glFramebufferFoveationParametersQCOM (GLuint fbo, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_motion_estimation b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_motion_estimation
new file mode 100644
index 0000000..21aa343
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_motion_estimation
@@ -0,0 +1,8 @@
+GL_QCOM_motion_estimation
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_motion_estimation.txt
+GL_QCOM_motion_estimation
+
+ GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM 0x8C90
+ GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM 0x8C91
+ void glTexEstimateMotionQCOM (GLuint ref, GLuint target, GLuint output)
+ void glTexEstimateMotionRegionsQCOM (GLuint ref, GLuint target, GLuint output, GLuint mask)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_perfmon_global_mode b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_perfmon_global_mode
new file mode 100644
index 0000000..5b81152
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_perfmon_global_mode
@@ -0,0 +1,5 @@
+GL_QCOM_perfmon_global_mode
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_performance_monitor_global_mode.txt
+GL_QCOM_perfmon_global_mode
+
+ GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_render_shared_exponent b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_render_shared_exponent
new file mode 100644
index 0000000..d97878e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_render_shared_exponent
@@ -0,0 +1,5 @@
+GL_QCOM_render_shared_exponent
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_render_shared_exponent.txt
+GL_QCOM_render_shared_exponent
+
+ GL_RGB9_E5 0x8C3D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shader_framebuffer_fetch_noncoherent b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shader_framebuffer_fetch_noncoherent
new file mode 100644
index 0000000..1638eac
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shader_framebuffer_fetch_noncoherent
@@ -0,0 +1,6 @@
+GL_QCOM_shader_framebuffer_fetch_noncoherent
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_shader_framebuffer_fetch_noncoherent.txt
+GL_QCOM_shader_framebuffer_fetch_noncoherent
+
+ GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM 0x96A2
+ void glFramebufferFetchBarrierQCOM (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shader_framebuffer_fetch_rate b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shader_framebuffer_fetch_rate
new file mode 100644
index 0000000..80f24d6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shader_framebuffer_fetch_rate
@@ -0,0 +1,4 @@
+GL_QCOM_shader_framebuffer_fetch_rate
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_shader_framebuffer_fetch_rate.txt
+GL_QCOM_shader_framebuffer_fetch_rate
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shading_rate b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shading_rate
new file mode 100644
index 0000000..902995e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_shading_rate
@@ -0,0 +1,13 @@
+GL_QCOM_shading_rate
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_shading_rate.txt
+GL_QCOM_shading_rate
+
+ GL_SHADING_RATE_QCOM 0x96A4
+ GL_SHADING_RATE_PRESERVE_ASPECT_RATIO_QCOM 0x96A5
+ GL_SHADING_RATE_1X1_PIXELS_QCOM 0x96A6
+ GL_SHADING_RATE_1X2_PIXELS_QCOM 0x96A7
+ GL_SHADING_RATE_2X1_PIXELS_QCOM 0x96A8
+ GL_SHADING_RATE_2X2_PIXELS_QCOM 0x96A9
+ GL_SHADING_RATE_4X2_PIXELS_QCOM 0x96AC
+ GL_SHADING_RATE_4X4_PIXELS_QCOM 0x96AE
+ void glShadingRateQCOM (GLenum rate)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated
new file mode 100644
index 0000000..65a1714
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated
@@ -0,0 +1,12 @@
+GL_QCOM_texture_foveated
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_texture_foveated.txt
+GL_QCOM_texture_foveated
+
+ GL_FOVEATION_ENABLE_BIT_QCOM 0x1
+ GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x2
+ GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM 0x8BFB
+ GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM 0x8BFC
+ GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM 0x8BFD
+ GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM 0x8BFE
+ GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM 0x8BFF
+ void glTextureFoveationParametersQCOM (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated2 b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated2
new file mode 100644
index 0000000..c37de07
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated2
@@ -0,0 +1,5 @@
+GL_QCOM_texture_foveated2
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_texture_foveated2.txt
+GL_QCOM_texture_foveated2
+
+ GL_TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM 0x96A0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated_subsampled_layout b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated_subsampled_layout
new file mode 100644
index 0000000..7ba92bc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_texture_foveated_subsampled_layout
@@ -0,0 +1,6 @@
+GL_QCOM_texture_foveated_subsampled_layout
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_texture_foveated_subsampled_layout.txt
+GL_QCOM_texture_foveated_subsampled_layout
+
+ GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM 0x4
+ GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM 0x8FA1
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_tiled_rendering b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_tiled_rendering
new file mode 100644
index 0000000..4ee7b42
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_tiled_rendering
@@ -0,0 +1,38 @@
+GL_QCOM_tiled_rendering
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_tiled_rendering.txt
+GL_QCOM_tiled_rendering
+
+ GL_COLOR_BUFFER_BIT0_QCOM 0x00000001
+ GL_COLOR_BUFFER_BIT1_QCOM 0x00000002
+ GL_COLOR_BUFFER_BIT2_QCOM 0x00000004
+ GL_COLOR_BUFFER_BIT3_QCOM 0x00000008
+ GL_COLOR_BUFFER_BIT4_QCOM 0x00000010
+ GL_COLOR_BUFFER_BIT5_QCOM 0x00000020
+ GL_COLOR_BUFFER_BIT6_QCOM 0x00000040
+ GL_COLOR_BUFFER_BIT7_QCOM 0x00000080
+ GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100
+ GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200
+ GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400
+ GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800
+ GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000
+ GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000
+ GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000
+ GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000
+ GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000
+ GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000
+ GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000
+ GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000
+ GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000
+ GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000
+ GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000
+ GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000
+ GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000
+ GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000
+ GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000
+ GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000
+ GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000
+ GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000
+ GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000
+ GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000
+ void glEndTilingQCOM (GLbitfield preserveMask)
+ void glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_writeonly_rendering b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_writeonly_rendering
new file mode 100644
index 0000000..89de602
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_QCOM_writeonly_rendering
@@ -0,0 +1,5 @@
+GL_QCOM_writeonly_rendering
+https://www.khronos.org/registry/OpenGL/extensions/QCOM/QCOM_writeonly_rendering.txt
+GL_QCOM_writeonly_rendering
+
+ GL_WRITEONLY_RENDERING_QCOM 0x8823
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_ES1_0_compatibility b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_ES1_0_compatibility
new file mode 100644
index 0000000..6742fe0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_ES1_0_compatibility
@@ -0,0 +1,36 @@
+GL_REGAL_ES1_0_compatibility
+https://www.khronos.org/registry/OpenGL/extensions/REGAL/ES1_0_compatibility.txt
+GL_REGAL_ES1_0_compatibility
+
+ void glAlphaFuncx (GLenum func, GLclampx ref)
+ void glClearColorx (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
+ void glClearDepthx (GLclampx depth)
+ void glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
+ void glDepthRangex (GLclampx zNear, GLclampx zFar)
+ void glFogx (GLenum pname, GLfixed param)
+ void glFogxv (GLenum pname, const GLfixed* params)
+ void glFrustumf (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+ void glFrustumx (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+ void glLightModelx (GLenum pname, GLfixed param)
+ void glLightModelxv (GLenum pname, const GLfixed* params)
+ void glLightx (GLenum light, GLenum pname, GLfixed param)
+ void glLightxv (GLenum light, GLenum pname, const GLfixed* params)
+ void glLineWidthx (GLfixed width)
+ void glLoadMatrixx (const GLfixed* m)
+ void glMaterialx (GLenum face, GLenum pname, GLfixed param)
+ void glMaterialxv (GLenum face, GLenum pname, const GLfixed* params)
+ void glMultMatrixx (const GLfixed* m)
+ void glMultiTexCoord4x (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
+ void glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz)
+ void glOrthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+ void glOrthox (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+ void glPointSizex (GLfixed size)
+ void glPolygonOffsetx (GLfixed factor, GLfixed units)
+ void glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
+ void glSampleCoveragex (GLclampx value, GLboolean invert)
+ void glScalex (GLfixed x, GLfixed y, GLfixed z)
+ void glTexEnvx (GLenum target, GLenum pname, GLfixed param)
+ void glTexEnvxv (GLenum target, GLenum pname, const GLfixed* params)
+ void glTexParameterx (GLenum target, GLenum pname, GLfixed param)
+ void glTranslatex (GLfixed x, GLfixed y, GLfixed z)
+ typedef int GLclampx
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_ES1_1_compatibility b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_ES1_1_compatibility
new file mode 100644
index 0000000..c9e7215
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_ES1_1_compatibility
@@ -0,0 +1,17 @@
+GL_REGAL_ES1_1_compatibility
+https://www.khronos.org/registry/OpenGL/extensions/REGAL/ES1_1_compatibility.txt
+GL_REGAL_ES1_1_compatibility
+
+ void glClipPlanef (GLenum plane, const GLfloat* equation)
+ void glClipPlanex (GLenum plane, const GLfixed* equation)
+ void glGetClipPlanef (GLenum pname, GLfloat eqn[4])
+ void glGetClipPlanex (GLenum pname, GLfixed eqn[4])
+ void glGetFixedv (GLenum pname, GLfixed* params)
+ void glGetLightxv (GLenum light, GLenum pname, GLfixed* params)
+ void glGetMaterialxv (GLenum face, GLenum pname, GLfixed* params)
+ void glGetTexEnvxv (GLenum env, GLenum pname, GLfixed* params)
+ void glGetTexParameterxv (GLenum target, GLenum pname, GLfixed* params)
+ void glPointParameterx (GLenum pname, GLfixed param)
+ void glPointParameterxv (GLenum pname, const GLfixed* params)
+ void glPointSizePointerOES (GLenum type, GLsizei stride, const void *pointer)
+ void glTexParameterxv (GLenum target, GLenum pname, const GLfixed* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_enable b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_enable
new file mode 100644
index 0000000..20f4ad6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_enable
@@ -0,0 +1,14 @@
+GL_REGAL_enable
+https://www.khronos.org/registry/OpenGL/extensions/REGAL/enable.txt
+GL_REGAL_enable
+
+ GL_ERROR_REGAL 0x9322
+ GL_DEBUG_REGAL 0x9323
+ GL_LOG_REGAL 0x9324
+ GL_EMULATION_REGAL 0x9325
+ GL_DRIVER_REGAL 0x9326
+ GL_MISSING_REGAL 0x9360
+ GL_TRACE_REGAL 0x9361
+ GL_CACHE_REGAL 0x9362
+ GL_CODE_REGAL 0x9363
+ GL_STATISTICS_REGAL 0x9364
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_error_string b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_error_string
new file mode 100644
index 0000000..fea8476
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_error_string
@@ -0,0 +1,5 @@
+GL_REGAL_error_string
+https://www.khronos.org/registry/OpenGL/extensions/REGAL/error_string.txt
+GL_REGAL_error_string
+
+ const GLchar* glErrorStringREGAL (GLenum error)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_extension_query b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_extension_query
new file mode 100644
index 0000000..8cbcd53
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_extension_query
@@ -0,0 +1,6 @@
+GL_REGAL_extension_query
+https://www.khronos.org/registry/OpenGL/extensions/REGAL/extension_query.txt
+GL_REGAL_extension_query
+
+ GLboolean glGetExtensionREGAL (const GLchar* ext)
+ GLboolean glIsSupportedREGAL (const GLchar* ext)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_log b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_log
new file mode 100644
index 0000000..f67a302
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_log
@@ -0,0 +1,15 @@
+GL_REGAL_log
+https://www.khronos.org/registry/OpenGL/extensions/REGAL/log.txt
+GL_REGAL_log
+
+ GL_LOG_ERROR_REGAL 0x9319
+ GL_LOG_WARNING_REGAL 0x931A
+ GL_LOG_INFO_REGAL 0x931B
+ GL_LOG_APP_REGAL 0x931C
+ GL_LOG_DRIVER_REGAL 0x931D
+ GL_LOG_INTERNAL_REGAL 0x931E
+ GL_LOG_DEBUG_REGAL 0x931F
+ GL_LOG_STATUS_REGAL 0x9320
+ GL_LOG_HTTP_REGAL 0x9321
+ void glLogMessageCallbackREGAL (GLLOGPROCREGAL callback)
+ typedef void (APIENTRY *GLLOGPROCREGAL)(GLenum stream, GLsizei length, const GLchar *message, void *context)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_proc_address b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_proc_address
new file mode 100644
index 0000000..26271dd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_REGAL_proc_address
@@ -0,0 +1,5 @@
+GL_REGAL_proc_address
+https://www.khronos.org/registry/OpenGL/extensions/REGAL/proc_address.txt
+GL_REGAL_proc_address
+
+ void * glGetProcAddressREGAL (const GLchar *name)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_REND_screen_coordinates b/engine-ocean/External/glew/auto/extensions/gl/GL_REND_screen_coordinates
new file mode 100644
index 0000000..a468fd0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_REND_screen_coordinates
@@ -0,0 +1,6 @@
+GL_REND_screen_coordinates
+https://www.khronos.org/registry/OpenGL/extensions/REND/REND_screen_coordinates.txt
+GL_REND_screen_coordinates
+
+ GL_SCREEN_COORDINATES_REND 0x8490
+ GL_INVERTED_SCREEN_W_REND 0x8491
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_S3_s3tc b/engine-ocean/External/glew/auto/extensions/gl/GL_S3_s3tc
new file mode 100644
index 0000000..4f7efea
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_S3_s3tc
@@ -0,0 +1,10 @@
+GL_S3_s3tc
+https://www.khronos.org/registry/OpenGL/extensions/S3/S3_s3tc.txt
+GL_S3_s3tc
+
+ GL_RGB_S3TC 0x83A0
+ GL_RGB4_S3TC 0x83A1
+ GL_RGBA_S3TC 0x83A2
+ GL_RGBA4_S3TC 0x83A3
+ GL_RGBA_DXT5_S3TC 0x83A4
+ GL_RGBA4_DXT5_S3TC 0x83A5
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_clip_band_hint b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_clip_band_hint
new file mode 100644
index 0000000..0a93182
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_clip_band_hint
@@ -0,0 +1,4 @@
+GL_SGIS_clip_band_hint
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_clip_band_hint.txt
+GL_SGIS_clip_band_hint
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_color_range b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_color_range
new file mode 100644
index 0000000..d03efe0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_color_range
@@ -0,0 +1,13 @@
+GL_SGIS_color_range
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/GLX_SGIS_color_range.txt
+GL_SGIS_color_range
+
+ GL_EXTENDED_RANGE_SGIS 0x85A5
+ GL_MIN_RED_SGIS 0x85A6
+ GL_MAX_RED_SGIS 0x85A7
+ GL_MIN_GREEN_SGIS 0x85A8
+ GL_MAX_GREEN_SGIS 0x85A9
+ GL_MIN_BLUE_SGIS 0x85AA
+ GL_MAX_BLUE_SGIS 0x85AB
+ GL_MIN_ALPHA_SGIS 0x85AC
+ GL_MAX_ALPHA_SGIS 0x85AD
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_detail_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_detail_texture
new file mode 100644
index 0000000..ae94123
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_detail_texture
@@ -0,0 +1,6 @@
+GL_SGIS_detail_texture
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_detail_texture.txt
+GL_SGIS_detail_texture
+
+ void glDetailTexFuncSGIS (GLenum target, GLsizei n, const GLfloat* points)
+ void glGetDetailTexFuncSGIS (GLenum target, GLfloat* points)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_fog_function b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_fog_function
new file mode 100644
index 0000000..89b21d2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_fog_function
@@ -0,0 +1,6 @@
+GL_SGIS_fog_function
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_fog_function.txt
+GL_SGIS_fog_function
+
+ void glFogFuncSGIS (GLsizei n, const GLfloat* points)
+ void glGetFogFuncSGIS (GLfloat* points)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_generate_mipmap b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_generate_mipmap
new file mode 100644
index 0000000..bb858c7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_generate_mipmap
@@ -0,0 +1,6 @@
+GL_SGIS_generate_mipmap
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_generate_mipmap.txt
+GL_SGIS_generate_mipmap
+
+ GL_GENERATE_MIPMAP_SGIS 0x8191
+ GL_GENERATE_MIPMAP_HINT_SGIS 0x8192
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_line_texgen b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_line_texgen
new file mode 100644
index 0000000..ff308cf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_line_texgen
@@ -0,0 +1,4 @@
+GL_SGIS_line_texgen
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_line_texgen.txt
+GL_SGIS_line_texgen
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_multisample
new file mode 100644
index 0000000..8f99be6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_multisample
@@ -0,0 +1,22 @@
+GL_SGIS_multisample
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_multisample.txt
+GL_SGIS_multisample
+
+ GL_MULTISAMPLE_SGIS 0x809D
+ GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E
+ GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F
+ GL_SAMPLE_MASK_SGIS 0x80A0
+ GL_1PASS_SGIS 0x80A1
+ GL_2PASS_0_SGIS 0x80A2
+ GL_2PASS_1_SGIS 0x80A3
+ GL_4PASS_0_SGIS 0x80A4
+ GL_4PASS_1_SGIS 0x80A5
+ GL_4PASS_2_SGIS 0x80A6
+ GL_4PASS_3_SGIS 0x80A7
+ GL_SAMPLE_BUFFERS_SGIS 0x80A8
+ GL_SAMPLES_SGIS 0x80A9
+ GL_SAMPLE_MASK_VALUE_SGIS 0x80AA
+ GL_SAMPLE_MASK_INVERT_SGIS 0x80AB
+ GL_SAMPLE_PATTERN_SGIS 0x80AC
+ void glSampleMaskSGIS (GLclampf value, GLboolean invert)
+ void glSamplePatternSGIS (GLenum pattern)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_multitexture b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_multitexture
new file mode 100644
index 0000000..17153c4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_multitexture
@@ -0,0 +1,19 @@
+GL_SGIS_multitexture
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_multitexture.txt
+GL_SGIS_multitexture
+
+ GL_SELECTED_TEXTURE_SGIS 0x83C0
+ GL_SELECTED_TEXTURE_COORD_SET_SGIS 0x83C1
+ GL_SELECTED_TEXTURE_TRANSFORM_SGIS 0x83C2
+ GL_MAX_TEXTURES_SGIS 0x83C3
+ GL_MAX_TEXTURE_COORD_SETS_SGIS 0x83C4
+ GL_TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS 0x83C5
+ GL_TEXTURE_ENV_COORD_SET_SGIS 0x83C6
+ GL_TEXTURE0_SGIS 0x83C7
+ GL_TEXTURE1_SGIS 0x83C8
+ GL_TEXTURE2_SGIS 0x83C9
+ GL_TEXTURE3_SGIS 0x83CA
+ void glInterleavedTextureCoordSetsSGIS (GLint factor)
+ void glSelectTextureCoordSetSGIS (GLenum target)
+ void glSelectTextureSGIS (GLenum target)
+ void glSelectTextureTransformSGIS (GLenum target)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_pixel_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_pixel_texture
new file mode 100644
index 0000000..f7d48bd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_pixel_texture
@@ -0,0 +1,4 @@
+GL_SGIS_pixel_texture
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_pixel_texture.txt
+GL_SGIS_pixel_texture
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_point_line_texgen b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_point_line_texgen
new file mode 100644
index 0000000..194afc2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_point_line_texgen
@@ -0,0 +1,12 @@
+GL_SGIS_point_line_texgen
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_point_line_texgen.txt
+GL_SGIS_point_line_texgen
+
+ GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0
+ GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1
+ GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2
+ GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3
+ GL_EYE_POINT_SGIS 0x81F4
+ GL_OBJECT_POINT_SGIS 0x81F5
+ GL_EYE_LINE_SGIS 0x81F6
+ GL_OBJECT_LINE_SGIS 0x81F7
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_shared_multisample b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_shared_multisample
new file mode 100644
index 0000000..a56c17a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_shared_multisample
@@ -0,0 +1,5 @@
+GL_SGIS_shared_multisample
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_shared_multisample.txt
+GL_SGIS_shared_multisample
+
+ void glMultisampleSubRectPosSGIS (GLint x, GLint y)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_sharpen_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_sharpen_texture
new file mode 100644
index 0000000..f6d9a5c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_sharpen_texture
@@ -0,0 +1,6 @@
+GL_SGIS_sharpen_texture
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_sharpen_texture.txt
+GL_SGIS_sharpen_texture
+
+ void glGetSharpenTexFuncSGIS (GLenum target, GLfloat* points)
+ void glSharpenTexFuncSGIS (GLenum target, GLsizei n, const GLfloat* points)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture4D b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture4D
new file mode 100644
index 0000000..908eed9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture4D
@@ -0,0 +1,6 @@
+GL_SGIS_texture4D
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_texture4D.txt
+GL_SGIS_texture4D
+
+ void glTexImage4DSGIS (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void *pixels)
+ void glTexSubImage4DSGIS (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void *pixels)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_border_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_border_clamp
new file mode 100644
index 0000000..34a3584
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_border_clamp
@@ -0,0 +1,5 @@
+GL_SGIS_texture_border_clamp
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_texture_border_clamp.txt
+GL_SGIS_texture_border_clamp
+
+ GL_CLAMP_TO_BORDER_SGIS 0x812D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_edge_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_edge_clamp
new file mode 100644
index 0000000..db0e205
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_edge_clamp
@@ -0,0 +1,5 @@
+GL_SGIS_texture_edge_clamp
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_texture_edge_clamp.txt
+GL_SGIS_texture_edge_clamp
+
+ GL_CLAMP_TO_EDGE_SGIS 0x812F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_filter4 b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_filter4
new file mode 100644
index 0000000..316e563
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_filter4
@@ -0,0 +1,6 @@
+GL_SGIS_texture_filter4
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_texture_filter4.txt
+GL_SGIS_texture_filter4
+
+ void glGetTexFilterFuncSGIS (GLenum target, GLenum filter, GLfloat* weights)
+ void glTexFilterFuncSGIS (GLenum target, GLenum filter, GLsizei n, const GLfloat* weights)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_lod b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_lod
new file mode 100644
index 0000000..71fe3dd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_lod
@@ -0,0 +1,8 @@
+GL_SGIS_texture_lod
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_texture_lod.txt
+GL_SGIS_texture_lod
+
+ GL_TEXTURE_MIN_LOD_SGIS 0x813A
+ GL_TEXTURE_MAX_LOD_SGIS 0x813B
+ GL_TEXTURE_BASE_LEVEL_SGIS 0x813C
+ GL_TEXTURE_MAX_LEVEL_SGIS 0x813D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_select b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_select
new file mode 100644
index 0000000..74f6fa5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIS_texture_select
@@ -0,0 +1,4 @@
+GL_SGIS_texture_select
+https://www.khronos.org/registry/OpenGL/extensions/SGIS/SGIS_texture_select.txt
+GL_SGIS_texture_select
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async
new file mode 100644
index 0000000..ba7ef69
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async
@@ -0,0 +1,11 @@
+GL_SGIX_async
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_async.txt
+GL_SGIX_async
+
+ GL_ASYNC_MARKER_SGIX 0x8329
+ void glAsyncMarkerSGIX (GLuint marker)
+ void glDeleteAsyncMarkersSGIX (GLuint marker, GLsizei range)
+ GLint glFinishAsyncSGIX (GLuint* markerp)
+ GLuint glGenAsyncMarkersSGIX (GLsizei range)
+ GLboolean glIsAsyncMarkerSGIX (GLuint marker)
+ GLint glPollAsyncSGIX (GLuint* markerp)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async_histogram b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async_histogram
new file mode 100644
index 0000000..32fe841
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async_histogram
@@ -0,0 +1,6 @@
+GL_SGIX_async_histogram
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_async_histogram.txt
+GL_SGIX_async_histogram
+
+ GL_ASYNC_HISTOGRAM_SGIX 0x832C
+ GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async_pixel b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async_pixel
new file mode 100644
index 0000000..9296736
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_async_pixel
@@ -0,0 +1,10 @@
+GL_SGIX_async_pixel
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_async_pixel.txt
+GL_SGIX_async_pixel
+
+ GL_ASYNC_TEX_IMAGE_SGIX 0x835C
+ GL_ASYNC_DRAW_PIXELS_SGIX 0x835D
+ GL_ASYNC_READ_PIXELS_SGIX 0x835E
+ GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F
+ GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360
+ GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_g_instruments b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_g_instruments
new file mode 100644
index 0000000..3547579
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_g_instruments
@@ -0,0 +1,8 @@
+GL_SGIX_bali_g_instruments
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_bali_g_instruments.txt
+GL_SGIX_bali_g_instruments
+
+ GL_BALI_NUM_TRIS_CULLED_INSTRUMENT 0x6080
+ GL_BALI_NUM_PRIMS_CLIPPED_INSTRUMENT 0x6081
+ GL_BALI_NUM_PRIMS_REJECT_INSTRUMENT 0x6082
+ GL_BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT 0x6083
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_r_instruments b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_r_instruments
new file mode 100644
index 0000000..e490715
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_r_instruments
@@ -0,0 +1,7 @@
+GL_SGIX_bali_r_instruments
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_bali_r_instruments.txt
+GL_SGIX_bali_r_instruments
+
+ GL_BALI_FRAGMENTS_GENERATED_INSTRUMENT 0x6090
+ GL_BALI_DEPTH_PASS_INSTRUMENT 0x6091
+ GL_BALI_R_CHIP_COUNT 0x6092
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_timer_instruments b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_timer_instruments
new file mode 100644
index 0000000..a80c9dc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_bali_timer_instruments
@@ -0,0 +1,4 @@
+GL_SGIX_bali_timer_instruments
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_bali_timer_instruments.txt
+GL_SGIX_bali_timer_instruments
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_alpha_minmax b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_alpha_minmax
new file mode 100644
index 0000000..c8820e6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_alpha_minmax
@@ -0,0 +1,6 @@
+GL_SGIX_blend_alpha_minmax
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_blend_alpha_minmax.txt
+GL_SGIX_blend_alpha_minmax
+
+ GL_ALPHA_MIN_SGIX 0x8320
+ GL_ALPHA_MAX_SGIX 0x8321
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_cadd b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_cadd
new file mode 100644
index 0000000..a0bcdd0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_cadd
@@ -0,0 +1,5 @@
+GL_SGIX_blend_cadd
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_blend_cadd.txt
+GL_SGIX_blend_cadd
+
+ GL_FUNC_COMPLEX_ADD_EXT 0x601C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_cmultiply b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_cmultiply
new file mode 100644
index 0000000..35b5618
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_blend_cmultiply
@@ -0,0 +1,5 @@
+GL_SGIX_blend_cmultiply
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_blend_cmultiply.txt
+GL_SGIX_blend_cmultiply
+
+ GL_FUNC_COMPLEX_MULTIPLY_EXT 0x601B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_calligraphic_fragment b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_calligraphic_fragment
new file mode 100644
index 0000000..8761e58
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_calligraphic_fragment
@@ -0,0 +1,4 @@
+GL_SGIX_calligraphic_fragment
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_calligraphic_fragment.txt
+GL_SGIX_calligraphic_fragment
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_clipmap b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_clipmap
new file mode 100644
index 0000000..9d8604d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_clipmap
@@ -0,0 +1,4 @@
+GL_SGIX_clipmap
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_clipmap.txt
+GL_SGIX_clipmap
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_color_matrix_accuracy b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_color_matrix_accuracy
new file mode 100644
index 0000000..33f9e01
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_color_matrix_accuracy
@@ -0,0 +1,5 @@
+GL_SGIX_color_matrix_accuracy
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_color_matrix_accuracy.txt
+GL_SGIX_color_matrix_accuracy
+
+ GL_COLOR_MATRIX_HINT 0x8317
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_color_table_index_mode b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_color_table_index_mode
new file mode 100644
index 0000000..a09f7cc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_color_table_index_mode
@@ -0,0 +1,4 @@
+GL_SGIX_color_table_index_mode
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_color_table_index_mode.txt
+GL_SGIX_color_table_index_mode
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_complex_polar b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_complex_polar
new file mode 100644
index 0000000..04086ed
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_complex_polar
@@ -0,0 +1,4 @@
+GL_SGIX_complex_polar
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_complex_polar.txt
+GL_SGIX_complex_polar
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_convolution_accuracy b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_convolution_accuracy
new file mode 100644
index 0000000..05b8f7e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_convolution_accuracy
@@ -0,0 +1,5 @@
+GL_SGIX_convolution_accuracy
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_convolution_accuracy.txt
+GL_SGIX_convolution_accuracy
+
+ GL_CONVOLUTION_HINT_SGIX 0x8316
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_cube_map b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_cube_map
new file mode 100644
index 0000000..950bd29
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_cube_map
@@ -0,0 +1,13 @@
+GL_SGIX_cube_map
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_cube_map.txt
+GL_SGIX_cube_map
+
+ GL_ENV_MAP_SGIX 0x8340
+ GL_CUBE_MAP_SGIX 0x8341
+ GL_CUBE_MAP_ZP_SGIX 0x8342
+ GL_CUBE_MAP_ZN_SGIX 0x8343
+ GL_CUBE_MAP_XN_SGIX 0x8344
+ GL_CUBE_MAP_XP_SGIX 0x8345
+ GL_CUBE_MAP_YN_SGIX 0x8346
+ GL_CUBE_MAP_YP_SGIX 0x8347
+ GL_CUBE_MAP_BINDING_SGIX 0x8348
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_cylinder_texgen b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_cylinder_texgen
new file mode 100644
index 0000000..c318661
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_cylinder_texgen
@@ -0,0 +1,4 @@
+GL_SGIX_cylinder_texgen
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_cylinder_texgen.txt
+GL_SGIX_cylinder_texgen
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_datapipe b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_datapipe
new file mode 100644
index 0000000..af72c25
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_datapipe
@@ -0,0 +1,8 @@
+GL_SGIX_datapipe
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_datapipe.txt
+GL_SGIX_datapipe
+
+ GL_GEOMETRY_BIT 0x1
+ GL_IMAGE_BIT 0x2
+ void glAddressSpace (GLenum space, GLbitfield mask)
+ GLint glDataPipe (GLenum space)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_decimation b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_decimation
new file mode 100644
index 0000000..e3af60a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_decimation
@@ -0,0 +1,4 @@
+GL_SGIX_decimation
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_decimation.txt
+GL_SGIX_decimation
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_depth_pass_instrument b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_depth_pass_instrument
new file mode 100644
index 0000000..06f474b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_depth_pass_instrument
@@ -0,0 +1,7 @@
+GL_SGIX_depth_pass_instrument
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_depth_pass_instrument.txt
+GL_SGIX_depth_pass_instrument
+
+ GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310
+ GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311
+ GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_depth_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_depth_texture
new file mode 100644
index 0000000..355fe00
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_depth_texture
@@ -0,0 +1,7 @@
+GL_SGIX_depth_texture
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_depth_texture.txt
+GL_SGIX_depth_texture
+
+ GL_DEPTH_COMPONENT16_SGIX 0x81A5
+ GL_DEPTH_COMPONENT24_SGIX 0x81A6
+ GL_DEPTH_COMPONENT32_SGIX 0x81A7
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_dvc b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_dvc
new file mode 100644
index 0000000..f726e33
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_dvc
@@ -0,0 +1,4 @@
+GL_SGIX_dvc
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_dvc.txt
+GL_SGIX_dvc
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_flush_raster b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_flush_raster
new file mode 100644
index 0000000..7c0d4c6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_flush_raster
@@ -0,0 +1,5 @@
+GL_SGIX_flush_raster
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_flush_raster.txt
+GL_SGIX_flush_raster
+
+ void glFlushRasterSGIX (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_blend b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_blend
new file mode 100644
index 0000000..8db6f44
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_blend
@@ -0,0 +1,6 @@
+GL_SGIX_fog_blend
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_fog_blend.txt
+GL_SGIX_fog_blend
+
+ GL_FOG_BLEND_ALPHA_SGIX 0x81FE
+ GL_FOG_BLEND_COLOR_SGIX 0x81FF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_factor_to_alpha b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_factor_to_alpha
new file mode 100644
index 0000000..8b5a9f7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_factor_to_alpha
@@ -0,0 +1,4 @@
+GL_SGIX_fog_factor_to_alpha
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_fog_factor_to_alpha.txt
+GL_SGIX_fog_factor_to_alpha
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_layers b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_layers
new file mode 100644
index 0000000..7fe0f8d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_layers
@@ -0,0 +1,12 @@
+GL_SGIX_fog_layers
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_fog_layers.txt
+GL_SGIX_fog_layers
+
+ GL_FOG_TYPE_SGIX 0x8323
+ GL_UNIFORM_SGIX 0x8324
+ GL_LAYERED_SGIX 0x8325
+ GL_FOG_GROUND_PLANE_SGIX 0x8326
+ GL_FOG_LAYERS_POINTS_SGIX 0x8327
+ GL_MAX_FOG_LAYERS_POINTS_SGIX 0x8328
+ void glFogLayersSGIX (GLsizei n, const GLfloat* points)
+ void glGetFogLayersSGIX (GLfloat* points)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_offset b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_offset
new file mode 100644
index 0000000..3aff66b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_offset
@@ -0,0 +1,6 @@
+GL_SGIX_fog_offset
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_fog_offset.txt
+GL_SGIX_fog_offset
+
+ GL_FOG_OFFSET_SGIX 0x8198
+ GL_FOG_OFFSET_VALUE_SGIX 0x8199
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_patchy b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_patchy
new file mode 100644
index 0000000..02c49b9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_patchy
@@ -0,0 +1,4 @@
+GL_SGIX_fog_patchy
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_fog_patchy.txt
+GL_SGIX_fog_patchy
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_scale b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_scale
new file mode 100644
index 0000000..67451c1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_scale
@@ -0,0 +1,6 @@
+GL_SGIX_fog_scale
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_fog_scale.txt
+GL_SGIX_fog_scale
+
+ GL_FOG_SCALE_SGIX 0x81FC
+ GL_FOG_SCALE_VALUE_SGIX 0x81FD
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_texture
new file mode 100644
index 0000000..de8d9c3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fog_texture
@@ -0,0 +1,5 @@
+GL_SGIX_fog_texture
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_fog_texture.txt
+GL_SGIX_fog_texture
+
+ void glTextureFogSGIX (GLenum pname)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragment_lighting_space b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragment_lighting_space
new file mode 100644
index 0000000..94196c6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragment_lighting_space
@@ -0,0 +1,8 @@
+GL_SGIX_fragment_lighting_space
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_fragment_lighting_space.txt
+GL_SGIX_fragment_lighting_space
+
+ GL_EYE_SPACE_SGIX 0x8436
+ GL_TANGENT_SPACE_SGIX 0x8437
+ GL_OBJECT_SPACE_SGIX 0x8438
+ GL_FRAGMENT_LIGHT_SPACE_SGIX 0x843D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragment_specular_lighting b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragment_specular_lighting
new file mode 100644
index 0000000..f84ace8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragment_specular_lighting
@@ -0,0 +1,21 @@
+GL_SGIX_fragment_specular_lighting
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_fragment_specular_lighting.txt
+GL_SGIX_fragment_specular_lighting
+
+ void glFragmentColorMaterialSGIX (GLenum face, GLenum mode)
+ void glFragmentLightModelfSGIX (GLenum pname, GLfloat param)
+ void glFragmentLightModelfvSGIX (GLenum pname, GLfloat* params)
+ void glFragmentLightModeliSGIX (GLenum pname, GLint param)
+ void glFragmentLightModelivSGIX (GLenum pname, GLint* params)
+ void glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param)
+ void glFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat* params)
+ void glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param)
+ void glFragmentLightivSGIX (GLenum light, GLenum pname, GLint* params)
+ void glFragmentMaterialfSGIX (GLenum face, GLenum pname, const GLfloat param)
+ void glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat* params)
+ void glFragmentMaterialiSGIX (GLenum face, GLenum pname, const GLint param)
+ void glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint* params)
+ void glGetFragmentLightfvSGIX (GLenum light, GLenum value, GLfloat* data)
+ void glGetFragmentLightivSGIX (GLenum light, GLenum value, GLint* data)
+ void glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat* data)
+ void glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint* data)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragments_instrument b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragments_instrument
new file mode 100644
index 0000000..df581fd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_fragments_instrument
@@ -0,0 +1,7 @@
+GL_SGIX_fragments_instrument
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_fragments_instrument.txt
+GL_SGIX_fragments_instrument
+
+ GL_FRAGMENTS_INSTRUMENT_SGIX 0x8313
+ GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX 0x8314
+ GL_FRAGMENTS_INSTRUMENT_MAX_SGIX 0x8315
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_framezoom b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_framezoom
new file mode 100644
index 0000000..b1274a6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_framezoom
@@ -0,0 +1,5 @@
+GL_SGIX_framezoom
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_framezoom.txt
+GL_SGIX_framezoom
+
+ void glFrameZoomSGIX (GLint factor)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_icc_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_icc_texture
new file mode 100644
index 0000000..d73d206
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_icc_texture
@@ -0,0 +1,16 @@
+GL_SGIX_icc_texture
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_icc_texture.txt
+GL_SGIX_icc_texture
+
+ GL_RGB_ICC_SGIX 0x8460
+ GL_RGBA_ICC_SGIX 0x8461
+ GL_ALPHA_ICC_SGIX 0x8462
+ GL_LUMINANCE_ICC_SGIX 0x8463
+ GL_INTENSITY_ICC_SGIX 0x8464
+ GL_LUMINANCE_ALPHA_ICC_SGIX 0x8465
+ GL_R5_G6_B5_ICC_SGIX 0x8466
+ GL_R5_G6_B5_A8_ICC_SGIX 0x8467
+ GL_ALPHA16_ICC_SGIX 0x8468
+ GL_LUMINANCE16_ICC_SGIX 0x8469
+ GL_INTENSITY16_ICC_SGIX 0x846A
+ GL_LUMINANCE16_ALPHA8_ICC_SGIX 0x846B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_igloo_interface b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_igloo_interface
new file mode 100644
index 0000000..31c75e5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_igloo_interface
@@ -0,0 +1,13 @@
+GL_SGIX_igloo_interface
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_igloo_interface.txt
+GL_SGIX_igloo_interface
+
+ GL_IGLOO_FULLSCREEN_SGIX 0x819E
+ GL_IGLOO_VIEWPORT_OFFSET_SGIX 0x819F
+ GL_IGLOO_SWAPTMESH_SGIX 0x81A0
+ GL_IGLOO_COLORNORMAL_SGIX 0x81A1
+ GL_IGLOO_IRISGL_MODE_SGIX 0x81A2
+ GL_IGLOO_LMC_COLOR_SGIX 0x81A3
+ GL_IGLOO_TMESHMODE_SGIX 0x81A4
+ GL_LIGHT31 0xBEAD
+ void glIglooInterfaceSGIX (GLenum pname, void *param)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_image_compression b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_image_compression
new file mode 100644
index 0000000..fce8e02
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_image_compression
@@ -0,0 +1,4 @@
+GL_SGIX_image_compression
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_image_compression.txt
+GL_SGIX_image_compression
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_impact_pixel_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_impact_pixel_texture
new file mode 100644
index 0000000..747a459
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_impact_pixel_texture
@@ -0,0 +1,4 @@
+GL_SGIX_impact_pixel_texture
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_impact_pixel_texture.txt
+GL_SGIX_impact_pixel_texture
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_instrument_error b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_instrument_error
new file mode 100644
index 0000000..dd269e0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_instrument_error
@@ -0,0 +1,4 @@
+GL_SGIX_instrument_error
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_instrument_error.txt
+GL_SGIX_instrument_error
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_interlace b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_interlace
new file mode 100644
index 0000000..bf6bcee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_interlace
@@ -0,0 +1,5 @@
+GL_SGIX_interlace
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_interlace.txt
+GL_SGIX_interlace
+
+ GL_INTERLACE_SGIX 0x8094
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ir_instrument1 b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ir_instrument1
new file mode 100644
index 0000000..7132fdb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ir_instrument1
@@ -0,0 +1,4 @@
+GL_SGIX_ir_instrument1
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_ir_instrument1.txt
+GL_SGIX_ir_instrument1
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_line_quality_hint b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_line_quality_hint
new file mode 100644
index 0000000..11256dc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_line_quality_hint
@@ -0,0 +1,5 @@
+GL_SGIX_line_quality_hint
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_line_quality_hint.txt
+GL_SGIX_line_quality_hint
+
+ GL_LINE_QUALITY_HINT_SGIX 0x835B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_list_priority b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_list_priority
new file mode 100644
index 0000000..b1f6e84
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_list_priority
@@ -0,0 +1,4 @@
+GL_SGIX_list_priority
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_list_priority.txt
+GL_SGIX_list_priority
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_mpeg1 b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_mpeg1
new file mode 100644
index 0000000..1025217
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_mpeg1
@@ -0,0 +1,15 @@
+GL_SGIX_mpeg1
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_mpeg1.txt
+GL_SGIX_mpeg1
+
+ void glAllocMPEGPredictorsSGIX (GLsizei width, GLsizei height, GLsizei n, GLuint* predictors)
+ void glDeleteMPEGPredictorsSGIX (GLsizei n, GLuint* predictors)
+ void glGenMPEGPredictorsSGIX (GLsizei n, GLuint* predictors)
+ void glGetMPEGParameterfvSGIX (GLenum target, GLenum pname, GLfloat* params)
+ void glGetMPEGParameterivSGIX (GLenum target, GLenum pname, GLint* params)
+ void glGetMPEGPredictorSGIX (GLenum target, GLenum format, GLenum type, void *pixels)
+ void glGetMPEGQuantTableubv (GLenum target, GLubyte* values)
+ GLboolean glIsMPEGPredictorSGIX (GLuint predictor)
+ void glMPEGPredictorSGIX (GLenum target, GLenum format, GLenum type, void *pixels)
+ void glMPEGQuantTableubv (GLenum target, GLubyte* values)
+ void glSwapMPEGPredictorsSGIX (GLenum target0, GLenum target1)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_mpeg2 b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_mpeg2
new file mode 100644
index 0000000..879ad63
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_mpeg2
@@ -0,0 +1,4 @@
+GL_SGIX_mpeg2
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_mpeg2.txt
+GL_SGIX_mpeg2
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_nonlinear_lighting_pervertex b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_nonlinear_lighting_pervertex
new file mode 100644
index 0000000..c58f5df
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_nonlinear_lighting_pervertex
@@ -0,0 +1,8 @@
+GL_SGIX_nonlinear_lighting_pervertex
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_nonlinear_lighting_pervertex.txt
+GL_SGIX_nonlinear_lighting_pervertex
+
+ void glGetNonlinLightfvSGIX (GLenum light, GLenum pname, GLint* terms, GLfloat *data)
+ void glGetNonlinMaterialfvSGIX (GLenum face, GLenum pname, GLint* terms, const GLfloat *data)
+ void glNonlinLightfvSGIX (GLenum light, GLenum pname, GLint terms, GLfloat* params)
+ void glNonlinMaterialfvSGIX (GLenum face, GLenum pname, GLint terms, const GLfloat* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_nurbs_eval b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_nurbs_eval
new file mode 100644
index 0000000..ed18763
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_nurbs_eval
@@ -0,0 +1,24 @@
+GL_SGIX_nurbs_eval
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_nurbs_eval.txt
+GL_SGIX_nurbs_eval
+
+ GL_MAP1_VERTEX_3_NURBS_SGIX 0x81CB
+ GL_MAP1_VERTEX_4_NURBS_SGIX 0x81CC
+ GL_MAP1_INDEX_NURBS_SGIX 0x81CD
+ GL_MAP1_COLOR_4_NURBS_SGIX 0x81CE
+ GL_MAP1_NORMAL_NURBS_SGIX 0x81CF
+ GL_MAP1_TEXTURE_COORD_1_NURBS_SGIX 0x81E0
+ GL_MAP1_TEXTURE_COORD_2_NURBS_SGIX 0x81E1
+ GL_MAP1_TEXTURE_COORD_3_NURBS_SGIX 0x81E2
+ GL_MAP1_TEXTURE_COORD_4_NURBS_SGIX 0x81E3
+ GL_MAP2_VERTEX_3_NURBS_SGIX 0x81E4
+ GL_MAP2_VERTEX_4_NURBS_SGIX 0x81E5
+ GL_MAP2_INDEX_NURBS_SGIX 0x81E6
+ GL_MAP2_COLOR_4_NURBS_SGIX 0x81E7
+ GL_MAP2_NORMAL_NURBS_SGIX 0x81E8
+ GL_MAP2_TEXTURE_COORD_1_NURBS_SGIX 0x81E9
+ GL_MAP2_TEXTURE_COORD_2_NURBS_SGIX 0x81EA
+ GL_MAP2_TEXTURE_COORD_3_NURBS_SGIX 0x81EB
+ GL_MAP2_TEXTURE_COORD_4_NURBS_SGIX 0x81EC
+ GL_NURBS_KNOT_COUNT_SGIX 0x81ED
+ GL_NURBS_KNOT_VECTOR_SGIX 0x81EE
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_occlusion_instrument b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_occlusion_instrument
new file mode 100644
index 0000000..ddbfbcb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_occlusion_instrument
@@ -0,0 +1,5 @@
+GL_SGIX_occlusion_instrument
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_occlusion_instrument.txt
+GL_SGIX_occlusion_instrument
+
+ GL_OCCLUSION_INSTRUMENT_SGIX 0x6060
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_packed_6bytes b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_packed_6bytes
new file mode 100644
index 0000000..d5f112d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_packed_6bytes
@@ -0,0 +1,4 @@
+GL_SGIX_packed_6bytes
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_packed_6bytes.txt
+GL_SGIX_packed_6bytes
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture
new file mode 100644
index 0000000..eee7904
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture
@@ -0,0 +1,5 @@
+GL_SGIX_pixel_texture
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_pixel_texture.txt
+GL_SGIX_pixel_texture
+
+ void glPixelTexGenSGIX (GLenum mode)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture_bits b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture_bits
new file mode 100644
index 0000000..76f4e86
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture_bits
@@ -0,0 +1,4 @@
+GL_SGIX_pixel_texture_bits
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_pixel_texture_bits.txt
+GL_SGIX_pixel_texture_bits
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture_lod b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture_lod
new file mode 100644
index 0000000..98d1d21
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_texture_lod
@@ -0,0 +1,4 @@
+GL_SGIX_pixel_texture_lod
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_pixel_texture_lod.txt
+GL_SGIX_pixel_texture_lod
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_tiles b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_tiles
new file mode 100644
index 0000000..24125fe
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_pixel_tiles
@@ -0,0 +1,4 @@
+GL_SGIX_pixel_tiles
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_pixel_tiles.txt
+GL_SGIX_pixel_tiles
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_polynomial_ffd b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_polynomial_ffd
new file mode 100644
index 0000000..69f6019
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_polynomial_ffd
@@ -0,0 +1,8 @@
+GL_SGIX_polynomial_ffd
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_polynomial_ffd.txt
+GL_SGIX_polynomial_ffd
+
+ GL_TEXTURE_DEFORMATION_BIT_SGIX 0x1
+ GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x2
+ void glDeformSGIX (GLbitfield mask)
+ void glLoadIdentityDeformationMapSGIX (GLbitfield mask)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_quad_mesh b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_quad_mesh
new file mode 100644
index 0000000..19b3393
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_quad_mesh
@@ -0,0 +1,6 @@
+GL_SGIX_quad_mesh
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_quad_mesh.txt
+GL_SGIX_quad_mesh
+
+ void glMeshBreadthSGIX (GLint breadth)
+ void glMeshStrideSGIX (GLint stride)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_reference_plane b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_reference_plane
new file mode 100644
index 0000000..ed55a0b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_reference_plane
@@ -0,0 +1,5 @@
+GL_SGIX_reference_plane
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_reference_plane.txt
+GL_SGIX_reference_plane
+
+ void glReferencePlaneSGIX (const GLdouble* equation)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_resample b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_resample
new file mode 100644
index 0000000..c3a8a31
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_resample
@@ -0,0 +1,9 @@
+GL_SGIX_resample
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_resample.txt
+GL_SGIX_resample
+
+ GL_PACK_RESAMPLE_SGIX 0x842E
+ GL_UNPACK_RESAMPLE_SGIX 0x842F
+ GL_RESAMPLE_DECIMATE_SGIX 0x8430
+ GL_RESAMPLE_REPLICATE_SGIX 0x8433
+ GL_RESAMPLE_ZERO_FILL_SGIX 0x8434
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_scalebias_hint b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_scalebias_hint
new file mode 100644
index 0000000..6eb5f19
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_scalebias_hint
@@ -0,0 +1,5 @@
+GL_SGIX_scalebias_hint
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_scalebias_hint.txt
+GL_SGIX_scalebias_hint
+
+ GL_SCALEBIAS_HINT_SGIX 0x8322
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_shadow b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_shadow
new file mode 100644
index 0000000..3580721
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_shadow
@@ -0,0 +1,8 @@
+GL_SGIX_shadow
+http://oss.sgi.com/projects/ogl-sample/registry/SGIX/shadow.txt
+GL_SGIX_shadow
+
+ GL_TEXTURE_COMPARE_SGIX 0x819A
+ GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B
+ GL_TEXTURE_LEQUAL_R_SGIX 0x819C
+ GL_TEXTURE_GEQUAL_R_SGIX 0x819D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_shadow_ambient b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_shadow_ambient
new file mode 100644
index 0000000..94b4d30
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_shadow_ambient
@@ -0,0 +1,5 @@
+GL_SGIX_shadow_ambient
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_shadow_ambient.txt
+GL_SGIX_shadow_ambient
+
+ GL_SHADOW_AMBIENT_SGIX 0x80BF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_slim b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_slim
new file mode 100644
index 0000000..229af5f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_slim
@@ -0,0 +1,8 @@
+GL_SGIX_slim
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_slim.txt
+GL_SGIX_slim
+
+ GL_PACK_MAX_COMPRESSED_SIZE_SGIX 0x831B
+ GL_SLIM8U_SGIX 0x831D
+ GL_SLIM10U_SGIX 0x831E
+ GL_SLIM12S_SGIX 0x831F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_spotlight_cutoff b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_spotlight_cutoff
new file mode 100644
index 0000000..2114034
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_spotlight_cutoff
@@ -0,0 +1,5 @@
+GL_SGIX_spotlight_cutoff
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_spotlight_cutoff.txt
+GL_SGIX_spotlight_cutoff
+
+ GL_SPOT_CUTOFF_DELTA_SGIX 0x8193
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_sprite b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_sprite
new file mode 100644
index 0000000..33aaf0b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_sprite
@@ -0,0 +1,8 @@
+GL_SGIX_sprite
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_sprite.txt
+GL_SGIX_sprite
+
+ void glSpriteParameterfSGIX (GLenum pname, GLfloat param)
+ void glSpriteParameterfvSGIX (GLenum pname, GLfloat* params)
+ void glSpriteParameteriSGIX (GLenum pname, GLint param)
+ void glSpriteParameterivSGIX (GLenum pname, GLint* params)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_subdiv_patch b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_subdiv_patch
new file mode 100644
index 0000000..46f20ab
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_subdiv_patch
@@ -0,0 +1,4 @@
+GL_SGIX_subdiv_patch
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_subdiv_patch.txt
+GL_SGIX_subdiv_patch
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_subsample b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_subsample
new file mode 100644
index 0000000..43a7bd8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_subsample
@@ -0,0 +1,9 @@
+GL_SGIX_subsample
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_subsample.txt
+GL_SGIX_subsample
+
+ GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0
+ GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1
+ GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2
+ GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3
+ GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_tag_sample_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_tag_sample_buffer
new file mode 100644
index 0000000..58dad01
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_tag_sample_buffer
@@ -0,0 +1,5 @@
+GL_SGIX_tag_sample_buffer
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_tag_sample_buffer.txt
+GL_SGIX_tag_sample_buffer
+
+ void glTagSampleBufferSGIX (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_add_env b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_add_env
new file mode 100644
index 0000000..93ab1b5
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_add_env
@@ -0,0 +1,4 @@
+GL_SGIX_texture_add_env
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_texture_add_env.txt
+GL_SGIX_texture_add_env
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_coordinate_clamp b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_coordinate_clamp
new file mode 100644
index 0000000..144c5ee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_coordinate_clamp
@@ -0,0 +1,7 @@
+GL_SGIX_texture_coordinate_clamp
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_texture_coordinate_clamp.txt
+GL_SGIX_texture_coordinate_clamp
+
+ GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369
+ GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A
+ GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_lod_bias b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_lod_bias
new file mode 100644
index 0000000..3013afd
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_lod_bias
@@ -0,0 +1,4 @@
+GL_SGIX_texture_lod_bias
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_texture_lod_bias.txt
+GL_SGIX_texture_lod_bias
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_mipmap_anisotropic b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_mipmap_anisotropic
new file mode 100644
index 0000000..912a31c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_mipmap_anisotropic
@@ -0,0 +1,6 @@
+GL_SGIX_texture_mipmap_anisotropic
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_texture_mipmap_anisotropic.txt
+GL_SGIX_texture_mipmap_anisotropic
+
+ GL_TEXTURE_MIPMAP_ANISOTROPY_SGIX 0x832E
+ GL_MAX_MIPMAP_ANISOTROPY_SGIX 0x832F
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_multi_buffer b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_multi_buffer
new file mode 100644
index 0000000..ce0e0cb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_multi_buffer
@@ -0,0 +1,5 @@
+GL_SGIX_texture_multi_buffer
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_texture_multi_buffer.txt
+GL_SGIX_texture_multi_buffer
+
+ GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_phase b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_phase
new file mode 100644
index 0000000..533f094
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_phase
@@ -0,0 +1,5 @@
+GL_SGIX_texture_phase
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_texture_phase.txt
+GL_SGIX_texture_phase
+
+ GL_PHASE_SGIX 0x832A
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_range b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_range
new file mode 100644
index 0000000..9d92645
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_range
@@ -0,0 +1,32 @@
+GL_SGIX_texture_range
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_texture_range.txt
+GL_SGIX_texture_range
+
+ GL_RGB_SIGNED_SGIX 0x85E0
+ GL_RGBA_SIGNED_SGIX 0x85E1
+ GL_ALPHA_SIGNED_SGIX 0x85E2
+ GL_LUMINANCE_SIGNED_SGIX 0x85E3
+ GL_INTENSITY_SIGNED_SGIX 0x85E4
+ GL_LUMINANCE_ALPHA_SIGNED_SGIX 0x85E5
+ GL_RGB16_SIGNED_SGIX 0x85E6
+ GL_RGBA16_SIGNED_SGIX 0x85E7
+ GL_ALPHA16_SIGNED_SGIX 0x85E8
+ GL_LUMINANCE16_SIGNED_SGIX 0x85E9
+ GL_INTENSITY16_SIGNED_SGIX 0x85EA
+ GL_LUMINANCE16_ALPHA16_SIGNED_SGIX 0x85EB
+ GL_RGB_EXTENDED_RANGE_SGIX 0x85EC
+ GL_RGBA_EXTENDED_RANGE_SGIX 0x85ED
+ GL_ALPHA_EXTENDED_RANGE_SGIX 0x85EE
+ GL_LUMINANCE_EXTENDED_RANGE_SGIX 0x85EF
+ GL_INTENSITY_EXTENDED_RANGE_SGIX 0x85F0
+ GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX 0x85F1
+ GL_RGB16_EXTENDED_RANGE_SGIX 0x85F2
+ GL_RGBA16_EXTENDED_RANGE_SGIX 0x85F3
+ GL_ALPHA16_EXTENDED_RANGE_SGIX 0x85F4
+ GL_LUMINANCE16_EXTENDED_RANGE_SGIX 0x85F5
+ GL_INTENSITY16_EXTENDED_RANGE_SGIX 0x85F6
+ GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7
+ GL_MIN_LUMINANCE_SGIS 0x85F8
+ GL_MAX_LUMINANCE_SGIS 0x85F9
+ GL_MIN_INTENSITY_SGIS 0x85FA
+ GL_MAX_INTENSITY_SGIS 0x85FB
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_scale_bias b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_scale_bias
new file mode 100644
index 0000000..83abc43
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_scale_bias
@@ -0,0 +1,8 @@
+GL_SGIX_texture_scale_bias
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_texture_scale_bias.txt
+GL_SGIX_texture_scale_bias
+
+ GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179
+ GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A
+ GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B
+ GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_supersample b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_supersample
new file mode 100644
index 0000000..4d508be
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_texture_supersample
@@ -0,0 +1,4 @@
+GL_SGIX_texture_supersample
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_texture_supersample.txt
+GL_SGIX_texture_supersample
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vector_ops b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vector_ops
new file mode 100644
index 0000000..6fe7a1b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vector_ops
@@ -0,0 +1,6 @@
+GL_SGIX_vector_ops
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_vector_ops.txt
+GL_SGIX_vector_ops
+
+ void glGetVectorOperationSGIX (GLenum operation)
+ void glVectorOperationSGIX (GLenum operation)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_array_object b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_array_object
new file mode 100644
index 0000000..89d24a4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_array_object
@@ -0,0 +1,10 @@
+GL_SGIX_vertex_array_object
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_vertex_array_object.txt
+GL_SGIX_vertex_array_object
+
+ GLboolean glAreVertexArraysResidentSGIX (GLsizei n, const GLuint* arrays, GLboolean* residences)
+ void glBindVertexArraySGIX (GLuint array)
+ void glDeleteVertexArraysSGIX (GLsizei n, const GLuint* arrays)
+ void glGenVertexArraysSGIX (GLsizei n, GLuint* arrays)
+ GLboolean glIsVertexArraySGIX (GLuint array)
+ void glPrioritizeVertexArraysSGIX (GLsizei n, const GLuint* arrays, const GLclampf* priorities)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_preclip b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_preclip
new file mode 100644
index 0000000..541b535
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_preclip
@@ -0,0 +1,6 @@
+GL_SGIX_vertex_preclip
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_vertex_preclip.txt
+GL_SGIX_vertex_preclip
+
+ GL_VERTEX_PRECLIP_SGIX 0x83EE
+ GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_preclip_hint b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_preclip_hint
new file mode 100644
index 0000000..151bcee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_vertex_preclip_hint
@@ -0,0 +1,6 @@
+GL_SGIX_vertex_preclip_hint
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_vertex_preclip.txt
+GL_SGIX_vertex_preclip_hint
+
+ GL_VERTEX_PRECLIP_SGIX 0x83EE
+ GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcb b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcb
new file mode 100644
index 0000000..56a65d9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcb
@@ -0,0 +1,4 @@
+GL_SGIX_ycrcb
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_ycrcb.txt
+GL_SGIX_ycrcb
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcb_subsample b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcb_subsample
new file mode 100644
index 0000000..4b560c2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcb_subsample
@@ -0,0 +1,4 @@
+GL_SGIX_ycrcb_subsample
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_ycrcb_subsample.txt
+GL_SGIX_ycrcb_subsample
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcba b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcba
new file mode 100644
index 0000000..13bc3d4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGIX_ycrcba
@@ -0,0 +1,6 @@
+GL_SGIX_ycrcba
+https://www.khronos.org/registry/OpenGL/extensions/SGIX/SGIX_ycrcba.txt
+GL_SGIX_ycrcba
+
+ GL_YCRCB_SGIX 0x8318
+ GL_YCRCBA_SGIX 0x8319
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_color_matrix b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_color_matrix
new file mode 100644
index 0000000..52ecd17
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_color_matrix
@@ -0,0 +1,15 @@
+GL_SGI_color_matrix
+https://www.khronos.org/registry/OpenGL/extensions/SGI/SGI_color_matrix.txt
+GL_SGI_color_matrix
+
+ GL_COLOR_MATRIX_SGI 0x80B1
+ GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2
+ GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
+ GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
+ GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
+ GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
+ GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
+ GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
+ GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
+ GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
+ GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_color_table b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_color_table
new file mode 100644
index 0000000..fb7b974
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_color_table
@@ -0,0 +1,27 @@
+GL_SGI_color_table
+https://www.khronos.org/registry/OpenGL/extensions/SGI/SGI_color_table.txt
+GL_SGI_color_table
+
+ GL_COLOR_TABLE_SGI 0x80D0
+ GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
+ GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
+ GL_PROXY_COLOR_TABLE_SGI 0x80D3
+ GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
+ GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
+ GL_COLOR_TABLE_SCALE_SGI 0x80D6
+ GL_COLOR_TABLE_BIAS_SGI 0x80D7
+ GL_COLOR_TABLE_FORMAT_SGI 0x80D8
+ GL_COLOR_TABLE_WIDTH_SGI 0x80D9
+ GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA
+ GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB
+ GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC
+ GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD
+ GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
+ GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
+ void glColorTableParameterfvSGI (GLenum target, GLenum pname, const GLfloat* params)
+ void glColorTableParameterivSGI (GLenum target, GLenum pname, const GLint* params)
+ void glColorTableSGI (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table)
+ void glCopyColorTableSGI (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
+ void glGetColorTableParameterfvSGI (GLenum target, GLenum pname, GLfloat* params)
+ void glGetColorTableParameterivSGI (GLenum target, GLenum pname, GLint* params)
+ void glGetColorTableSGI (GLenum target, GLenum format, GLenum type, void *table)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_complex b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_complex
new file mode 100644
index 0000000..38462af
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_complex
@@ -0,0 +1,4 @@
+GL_SGI_complex
+https://www.khronos.org/registry/OpenGL/extensions/SGI/SGI_complex.txt
+GL_SGI_complex
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_complex_type b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_complex_type
new file mode 100644
index 0000000..b77ac54
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_complex_type
@@ -0,0 +1,11 @@
+GL_SGI_complex_type
+https://www.khronos.org/registry/OpenGL/extensions/SGI/SGI_complex_type.txt
+GL_SGI_complex_type
+
+ GL_COMPLEX_UNSIGNED_BYTE_SGI 0x81BD
+ GL_COMPLEX_BYTE_SGI 0x81BE
+ GL_COMPLEX_UNSIGNED_SHORT_SGI 0x81BF
+ GL_COMPLEX_SHORT_SGI 0x81C0
+ GL_COMPLEX_UNSIGNED_INT_SGI 0x81C1
+ GL_COMPLEX_INT_SGI 0x81C2
+ GL_COMPLEX_FLOAT_SGI 0x81C3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_fft b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_fft
new file mode 100644
index 0000000..cd53834
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_fft
@@ -0,0 +1,16 @@
+GL_SGI_fft
+https://www.khronos.org/registry/OpenGL/extensions/SGI/SGI_fft.txt
+GL_SGI_fft
+
+ GL_PIXEL_TRANSFORM_OPERATOR_SGI 0x81C4
+ GL_CONVOLUTION_SGI 0x81C5
+ GL_FFT_1D_SGI 0x81C6
+ GL_PIXEL_TRANSFORM_SGI 0x81C7
+ GL_MAX_FFT_WIDTH_SGI 0x81C8
+ void glGetPixelTransformParameterfvSGI (GLenum target, GLenum pname, GLfloat* params)
+ void glGetPixelTransformParameterivSGI (GLenum target, GLenum pname, GLint* params)
+ void glPixelTransformParameterfSGI (GLenum target, GLenum pname, GLfloat param)
+ void glPixelTransformParameterfvSGI (GLenum target, GLenum pname, const GLfloat* params)
+ void glPixelTransformParameteriSGI (GLenum target, GLenum pname, GLint param)
+ void glPixelTransformParameterivSGI (GLenum target, GLenum pname, const GLint* params)
+ void glPixelTransformSGI (GLenum target)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_texture_color_table b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_texture_color_table
new file mode 100644
index 0000000..ee795dc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SGI_texture_color_table
@@ -0,0 +1,6 @@
+GL_SGI_texture_color_table
+https://www.khronos.org/registry/OpenGL/extensions/SGI/SGI_texture_color_table.txt
+GL_SGI_texture_color_table
+
+ GL_TEXTURE_COLOR_TABLE_SGI 0x80BC
+ GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SUNX_constant_data b/engine-ocean/External/glew/auto/extensions/gl/GL_SUNX_constant_data
new file mode 100644
index 0000000..e15b7e2
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SUNX_constant_data
@@ -0,0 +1,7 @@
+GL_SUNX_constant_data
+https://www.khronos.org/registry/OpenGL/extensions/SUNX/SUNX_constant_data.txt
+GL_SUNX_constant_data
+
+ GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5
+ GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6
+ void glFinishTextureSUNX (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_convolution_border_modes b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_convolution_border_modes
new file mode 100644
index 0000000..62524fb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_convolution_border_modes
@@ -0,0 +1,5 @@
+GL_SUN_convolution_border_modes
+https://www.khronos.org/registry/OpenGL/extensions/SUN/SUN_convolution_border_modes.txt
+GL_SUN_convolution_border_modes
+
+ GL_WRAP_BORDER_SUN 0x81D4
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_global_alpha b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_global_alpha
new file mode 100644
index 0000000..94e192b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_global_alpha
@@ -0,0 +1,14 @@
+GL_SUN_global_alpha
+https://www.khronos.org/registry/OpenGL/extensions/SUN/SUN_global_alpha.txt
+GL_SUN_global_alpha
+
+ GL_GLOBAL_ALPHA_SUN 0x81D9
+ GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA
+ void glGlobalAlphaFactorbSUN (GLbyte factor)
+ void glGlobalAlphaFactordSUN (GLdouble factor)
+ void glGlobalAlphaFactorfSUN (GLfloat factor)
+ void glGlobalAlphaFactoriSUN (GLint factor)
+ void glGlobalAlphaFactorsSUN (GLshort factor)
+ void glGlobalAlphaFactorubSUN (GLubyte factor)
+ void glGlobalAlphaFactoruiSUN (GLuint factor)
+ void glGlobalAlphaFactorusSUN (GLushort factor)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_mesh_array b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_mesh_array
new file mode 100644
index 0000000..06221ff
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_mesh_array
@@ -0,0 +1,6 @@
+GL_SUN_mesh_array
+https://www.khronos.org/registry/OpenGL/extensions/SUN/SUN_mesh_array.txt
+GL_SUN_mesh_array
+
+ GL_QUAD_MESH_SUN 0x8614
+ GL_TRIANGLE_MESH_SUN 0x8615
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_read_video_pixels b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_read_video_pixels
new file mode 100644
index 0000000..871e6f9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_read_video_pixels
@@ -0,0 +1,5 @@
+GL_SUN_read_video_pixels
+http://wwws.sun.com/software/graphics/opengl/extensions/gl_sun_read_video_pixels.txt
+GL_SUN_read_video_pixels
+
+ void glReadVideoPixelsSUN (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_slice_accum b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_slice_accum
new file mode 100644
index 0000000..24cee68
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_slice_accum
@@ -0,0 +1,5 @@
+GL_SUN_slice_accum
+https://www.khronos.org/registry/OpenGL/extensions/SUN/SUN_slice_accum.txt
+GL_SUN_slice_accum
+
+ GL_SLICE_ACCUM_SUN 0x85CC
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_triangle_list b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_triangle_list
new file mode 100644
index 0000000..b517b89
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_triangle_list
@@ -0,0 +1,28 @@
+GL_SUN_triangle_list
+https://www.khronos.org/registry/OpenGL/extensions/SUN/SUN_triangle_list.txt
+GL_SUN_triangle_list
+
+ GL_RESTART_SUN 0x01
+ GL_REPLACE_MIDDLE_SUN 0x02
+ GL_REPLACE_OLDEST_SUN 0x03
+ GL_TRIANGLE_LIST_SUN 0x81D7
+ GL_REPLACEMENT_CODE_SUN 0x81D8
+ GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0
+ GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1
+ GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2
+ GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3
+ GL_R1UI_V3F_SUN 0x85C4
+ GL_R1UI_C4UB_V3F_SUN 0x85C5
+ GL_R1UI_C3F_V3F_SUN 0x85C6
+ GL_R1UI_N3F_V3F_SUN 0x85C7
+ GL_R1UI_C4F_N3F_V3F_SUN 0x85C8
+ GL_R1UI_T2F_V3F_SUN 0x85C9
+ GL_R1UI_T2F_N3F_V3F_SUN 0x85CA
+ GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB
+ void glReplacementCodePointerSUN (GLenum type, GLsizei stride, const void *pointer)
+ void glReplacementCodeubSUN (GLubyte code)
+ void glReplacementCodeubvSUN (const GLubyte* code)
+ void glReplacementCodeuiSUN (GLuint code)
+ void glReplacementCodeuivSUN (const GLuint* code)
+ void glReplacementCodeusSUN (GLushort code)
+ void glReplacementCodeusvSUN (const GLushort* code)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_vertex b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_vertex
new file mode 100644
index 0000000..b5fe438
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_SUN_vertex
@@ -0,0 +1,44 @@
+GL_SUN_vertex
+https://www.khronos.org/registry/OpenGL/extensions/SUN/SUN_vertex.txt
+GL_SUN_vertex
+
+ void glColor3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z)
+ void glColor3fVertex3fvSUN (const GLfloat* c, const GLfloat *v)
+ void glColor4fNormal3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)
+ void glColor4fNormal3fVertex3fvSUN (const GLfloat* c, const GLfloat *n, const GLfloat *v)
+ void glColor4ubVertex2fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y)
+ void glColor4ubVertex2fvSUN (const GLubyte* c, const GLfloat *v)
+ void glColor4ubVertex3fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z)
+ void glColor4ubVertex3fvSUN (const GLubyte* c, const GLfloat *v)
+ void glNormal3fVertex3fSUN (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)
+ void glNormal3fVertex3fvSUN (const GLfloat* n, const GLfloat *v)
+ void glReplacementCodeuiColor3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z)
+ void glReplacementCodeuiColor3fVertex3fvSUN (const GLuint* rc, const GLfloat *c, const GLfloat *v)
+ void glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)
+ void glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint* rc, const GLfloat *c, const GLfloat *n, const GLfloat *v)
+ void glReplacementCodeuiColor4ubVertex3fSUN (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z)
+ void glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint* rc, const GLubyte *c, const GLfloat *v)
+ void glReplacementCodeuiNormal3fVertex3fSUN (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)
+ void glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint* rc, const GLfloat *n, const GLfloat *v)
+ void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)
+ void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint* rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v)
+ void glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)
+ void glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint* rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v)
+ void glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z)
+ void glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint* rc, const GLfloat *tc, const GLfloat *v)
+ void glReplacementCodeuiVertex3fSUN (GLuint rc, GLfloat x, GLfloat y, GLfloat z)
+ void glReplacementCodeuiVertex3fvSUN (const GLuint* rc, const GLfloat *v)
+ void glTexCoord2fColor3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z)
+ void glTexCoord2fColor3fVertex3fvSUN (const GLfloat* tc, const GLfloat *c, const GLfloat *v)
+ void glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)
+ void glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v)
+ void glTexCoord2fColor4ubVertex3fSUN (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z)
+ void glTexCoord2fColor4ubVertex3fvSUN (const GLfloat* tc, const GLubyte *c, const GLfloat *v)
+ void glTexCoord2fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z)
+ void glTexCoord2fNormal3fVertex3fvSUN (const GLfloat* tc, const GLfloat *n, const GLfloat *v)
+ void glTexCoord2fVertex3fSUN (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z)
+ void glTexCoord2fVertex3fvSUN (const GLfloat* tc, const GLfloat *v)
+ void glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v)
+ void glTexCoord4fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+ void glTexCoord4fVertex4fvSUN (const GLfloat* tc, const GLfloat *v)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_VIV_shader_binary b/engine-ocean/External/glew/auto/extensions/gl/GL_VIV_shader_binary
new file mode 100644
index 0000000..7010bcf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_VIV_shader_binary
@@ -0,0 +1,5 @@
+GL_VIV_shader_binary
+https://www.khronos.org/registry/OpenGL/extensions/VIV/VIV_shader_binary.txt
+GL_VIV_shader_binary
+
+ GL_SHADER_BINARY_VIV 0x8FC4
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_phong_shading b/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_phong_shading
new file mode 100644
index 0000000..d2fb4e1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_phong_shading
@@ -0,0 +1,6 @@
+GL_WIN_phong_shading
+https://www.khronos.org/registry/OpenGL/extensions/WIN/WIN_phong_shading.txt
+GL_WIN_phong_shading
+
+ GL_PHONG_WIN 0x80EA
+ GL_PHONG_HINT_WIN 0x80EB
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_scene_markerXXX b/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_scene_markerXXX
new file mode 100644
index 0000000..88e2d01
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_scene_markerXXX
@@ -0,0 +1,4 @@
+GL_WIN_scene_markerXXX
+https://www.khronos.org/registry/OpenGL/extensions/WIN/WIN_scene_markerXXX.txt
+GL_WIN_scene_markerXXX
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_specular_fog b/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_specular_fog
new file mode 100644
index 0000000..1fae8b8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_specular_fog
@@ -0,0 +1,5 @@
+GL_WIN_specular_fog
+https://www.khronos.org/registry/OpenGL/extensions/WIN/WIN_specular_fog.txt
+GL_WIN_specular_fog
+
+ GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC
diff --git a/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_swap_hint b/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_swap_hint
new file mode 100644
index 0000000..9bb490b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/GL_WIN_swap_hint
@@ -0,0 +1,5 @@
+GL_WIN_swap_hint
+http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glfunc01_16zy.asp
+GL_WIN_swap_hint
+
+ void glAddSwapHintRectWIN (GLint x, GLint y, GLsizei width, GLsizei height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_3DFX_multisample b/engine-ocean/External/glew/auto/extensions/gl/WGL_3DFX_multisample
new file mode 100644
index 0000000..23e158e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_3DFX_multisample
@@ -0,0 +1,6 @@
+WGL_3DFX_multisample
+https://www.khronos.org/registry/OpenGL/extensions/3DFX/WGL_3DFX_multisample.txt
+WGL_3DFX_multisample
+
+ WGL_SAMPLE_BUFFERS_3DFX 0x2060
+ WGL_SAMPLES_3DFX 0x2061
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_3DL_stereo_control b/engine-ocean/External/glew/auto/extensions/gl/WGL_3DL_stereo_control
new file mode 100644
index 0000000..e8c8908
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_3DL_stereo_control
@@ -0,0 +1,9 @@
+WGL_3DL_stereo_control
+https://www.khronos.org/registry/OpenGL/extensions/3DL/WGL_3DL_stereo_control.txt
+WGL_3DL_stereo_control
+
+ WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
+ WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
+ WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
+ WGL_STEREO_POLARITY_INVERT_3DL 0x2058
+ BOOL wglSetStereoEmitterState3DL (HDC hDC, UINT uState)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_AMD_gpu_association b/engine-ocean/External/glew/auto/extensions/gl/WGL_AMD_gpu_association
new file mode 100644
index 0000000..b0ff891
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_AMD_gpu_association
@@ -0,0 +1,23 @@
+WGL_AMD_gpu_association
+https://www.khronos.org/registry/OpenGL/extensions/AMD/WGL_AMD_gpu_association.txt
+WGL_AMD_gpu_association
+
+ WGL_GPU_VENDOR_AMD 0x1F00
+ WGL_GPU_RENDERER_STRING_AMD 0x1F01
+ WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
+ WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
+ WGL_GPU_RAM_AMD 0x21A3
+ WGL_GPU_CLOCK_AMD 0x21A4
+ WGL_GPU_NUM_PIPES_AMD 0x21A5
+ WGL_GPU_NUM_SIMD_AMD 0x21A6
+ WGL_GPU_NUM_RB_AMD 0x21A7
+ WGL_GPU_NUM_SPI_AMD 0x21A8
+ VOID wglBlitContextFramebufferAMD (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+ HGLRC wglCreateAssociatedContextAMD (UINT id)
+ HGLRC wglCreateAssociatedContextAttribsAMD (UINT id, HGLRC hShareContext, const int* attribList)
+ BOOL wglDeleteAssociatedContextAMD (HGLRC hglrc)
+ UINT wglGetContextGPUIDAMD (HGLRC hglrc)
+ HGLRC wglGetCurrentAssociatedContextAMD (void)
+ UINT wglGetGPUIDsAMD (UINT maxCount, UINT* ids)
+ INT wglGetGPUInfoAMD (UINT id, INT property, GLenum dataType, UINT size, void* data)
+ BOOL wglMakeAssociatedContextCurrentAMD (HGLRC hglrc)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_buffer_region b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_buffer_region
new file mode 100644
index 0000000..0bbee28
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_buffer_region
@@ -0,0 +1,12 @@
+WGL_ARB_buffer_region
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_buffer_region.txt
+WGL_ARB_buffer_region
+
+ WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
+ WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
+ WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
+ WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
+ HANDLE wglCreateBufferRegionARB (HDC hDC, int iLayerPlane, UINT uType)
+ VOID wglDeleteBufferRegionARB (HANDLE hRegion)
+ BOOL wglRestoreBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc)
+ BOOL wglSaveBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_context_flush_control b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_context_flush_control
new file mode 100644
index 0000000..aa7a837
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_context_flush_control
@@ -0,0 +1,7 @@
+WGL_ARB_context_flush_control
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_context_flush_control.txt
+WGL_ARB_context_flush_control
+
+ WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
+ WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
+ WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context
new file mode 100644
index 0000000..298c379
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context
@@ -0,0 +1,12 @@
+WGL_ARB_create_context
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_create_context.txt
+WGL_ARB_create_context
+
+ WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
+ WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+ WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
+ WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
+ WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
+ WGL_CONTEXT_FLAGS_ARB 0x2094
+ ERROR_INVALID_VERSION_ARB 0x2095
+ HGLRC wglCreateContextAttribsARB (HDC hDC, HGLRC hShareContext, const int* attribList)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_no_error b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_no_error
new file mode 100644
index 0000000..8e88b79
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_no_error
@@ -0,0 +1,5 @@
+WGL_ARB_create_context_no_error
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_create_context_no_error.txt
+WGL_ARB_create_context_no_error
+
+ WGL_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_profile b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_profile
new file mode 100644
index 0000000..28f2079
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_profile
@@ -0,0 +1,8 @@
+WGL_ARB_create_context_profile
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_create_context_profile.txt
+WGL_ARB_create_context_profile
+
+ WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+ WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
+ ERROR_INVALID_PROFILE_ARB 0x2096
+ WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_robustness b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_robustness
new file mode 100644
index 0000000..1fbf6aa
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_create_context_robustness
@@ -0,0 +1,8 @@
+WGL_ARB_create_context_robustness
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_create_context_robustness.txt
+WGL_ARB_create_context_robustness
+
+ WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
+ WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+ WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+ WGL_NO_RESET_NOTIFICATION_ARB 0x8261
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_extensions_string b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_extensions_string
new file mode 100644
index 0000000..5d3b6f0
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_extensions_string
@@ -0,0 +1,5 @@
+WGL_ARB_extensions_string
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_extensions_string.txt
+WGL_ARB_extensions_string
+
+ const char* wglGetExtensionsStringARB (HDC hdc)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_framebuffer_sRGB b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_framebuffer_sRGB
new file mode 100644
index 0000000..2292233
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_framebuffer_sRGB
@@ -0,0 +1,5 @@
+WGL_ARB_framebuffer_sRGB
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_framebuffer_sRGB.txt
+WGL_ARB_framebuffer_sRGB
+
+ WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_make_current_read b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_make_current_read
new file mode 100644
index 0000000..7a147dc
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_make_current_read
@@ -0,0 +1,10 @@
+WGL_ARB_make_current_read
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_make_current_read.txt
+WGL_ARB_make_current_read
+
+ ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
+ ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
+ HDC wglGetCurrentReadDCARB (void)
+ BOOL wglMakeContextCurrentARB (HDC hDrawDC, HDC hReadDC, HGLRC hglrc)
+ ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
+ ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_multisample b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_multisample
new file mode 100644
index 0000000..8ec8aee
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_multisample
@@ -0,0 +1,6 @@
+WGL_ARB_multisample
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_multisample.txt
+WGL_ARB_multisample
+
+ WGL_SAMPLE_BUFFERS_ARB 0x2041
+ WGL_SAMPLES_ARB 0x2042
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pbuffer b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pbuffer
new file mode 100644
index 0000000..521f491
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pbuffer
@@ -0,0 +1,18 @@
+WGL_ARB_pbuffer
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_pbuffer.txt
+WGL_ARB_pbuffer
+
+ WGL_DRAW_TO_PBUFFER_ARB 0x202D
+ WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
+ WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
+ WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
+ WGL_PBUFFER_LARGEST_ARB 0x2033
+ WGL_PBUFFER_WIDTH_ARB 0x2034
+ WGL_PBUFFER_HEIGHT_ARB 0x2035
+ WGL_PBUFFER_LOST_ARB 0x2036
+ HPBUFFERARB wglCreatePbufferARB (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList)
+ BOOL wglDestroyPbufferARB (HPBUFFERARB hPbuffer)
+ HDC wglGetPbufferDCARB (HPBUFFERARB hPbuffer)
+ BOOL wglQueryPbufferARB (HPBUFFERARB hPbuffer, int iAttribute, int* piValue)
+ int wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC)
+ DECLARE_HANDLE(HPBUFFERARB);
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pixel_format b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pixel_format
new file mode 100644
index 0000000..dd2ca2b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pixel_format
@@ -0,0 +1,56 @@
+WGL_ARB_pixel_format
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_pixel_format.txt
+WGL_ARB_pixel_format
+
+ WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
+ WGL_DRAW_TO_WINDOW_ARB 0x2001
+ WGL_DRAW_TO_BITMAP_ARB 0x2002
+ WGL_ACCELERATION_ARB 0x2003
+ WGL_NEED_PALETTE_ARB 0x2004
+ WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
+ WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
+ WGL_SWAP_METHOD_ARB 0x2007
+ WGL_NUMBER_OVERLAYS_ARB 0x2008
+ WGL_NUMBER_UNDERLAYS_ARB 0x2009
+ WGL_TRANSPARENT_ARB 0x200A
+ WGL_SHARE_DEPTH_ARB 0x200C
+ WGL_SHARE_STENCIL_ARB 0x200D
+ WGL_SHARE_ACCUM_ARB 0x200E
+ WGL_SUPPORT_GDI_ARB 0x200F
+ WGL_SUPPORT_OPENGL_ARB 0x2010
+ WGL_DOUBLE_BUFFER_ARB 0x2011
+ WGL_STEREO_ARB 0x2012
+ WGL_PIXEL_TYPE_ARB 0x2013
+ WGL_COLOR_BITS_ARB 0x2014
+ WGL_RED_BITS_ARB 0x2015
+ WGL_RED_SHIFT_ARB 0x2016
+ WGL_GREEN_BITS_ARB 0x2017
+ WGL_GREEN_SHIFT_ARB 0x2018
+ WGL_BLUE_BITS_ARB 0x2019
+ WGL_BLUE_SHIFT_ARB 0x201A
+ WGL_ALPHA_BITS_ARB 0x201B
+ WGL_ALPHA_SHIFT_ARB 0x201C
+ WGL_ACCUM_BITS_ARB 0x201D
+ WGL_ACCUM_RED_BITS_ARB 0x201E
+ WGL_ACCUM_GREEN_BITS_ARB 0x201F
+ WGL_ACCUM_BLUE_BITS_ARB 0x2020
+ WGL_ACCUM_ALPHA_BITS_ARB 0x2021
+ WGL_DEPTH_BITS_ARB 0x2022
+ WGL_STENCIL_BITS_ARB 0x2023
+ WGL_AUX_BUFFERS_ARB 0x2024
+ WGL_NO_ACCELERATION_ARB 0x2025
+ WGL_GENERIC_ACCELERATION_ARB 0x2026
+ WGL_FULL_ACCELERATION_ARB 0x2027
+ WGL_SWAP_EXCHANGE_ARB 0x2028
+ WGL_SWAP_COPY_ARB 0x2029
+ WGL_SWAP_UNDEFINED_ARB 0x202A
+ WGL_TYPE_RGBA_ARB 0x202B
+ WGL_TYPE_COLORINDEX_ARB 0x202C
+ WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
+ WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
+ WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
+ WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
+ WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
+ BOOL wglChoosePixelFormatARB (HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats)
+ BOOL wglGetPixelFormatAttribfvARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT* pfValues)
+ BOOL wglGetPixelFormatAttribivARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int* piValues)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pixel_format_float b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pixel_format_float
new file mode 100644
index 0000000..e246746
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_pixel_format_float
@@ -0,0 +1,5 @@
+WGL_ARB_pixel_format_float
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_pixel_format_float.txt
+WGL_ARB_pixel_format_float
+
+ WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_render_texture b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_render_texture
new file mode 100644
index 0000000..b6b9084
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_render_texture
@@ -0,0 +1,40 @@
+WGL_ARB_render_texture
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_render_texture.txt
+WGL_ARB_render_texture
+
+ WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
+ WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
+ WGL_TEXTURE_FORMAT_ARB 0x2072
+ WGL_TEXTURE_TARGET_ARB 0x2073
+ WGL_MIPMAP_TEXTURE_ARB 0x2074
+ WGL_TEXTURE_RGB_ARB 0x2075
+ WGL_TEXTURE_RGBA_ARB 0x2076
+ WGL_NO_TEXTURE_ARB 0x2077
+ WGL_TEXTURE_CUBE_MAP_ARB 0x2078
+ WGL_TEXTURE_1D_ARB 0x2079
+ WGL_TEXTURE_2D_ARB 0x207A
+ WGL_MIPMAP_LEVEL_ARB 0x207B
+ WGL_CUBE_MAP_FACE_ARB 0x207C
+ WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
+ WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
+ WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
+ WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
+ WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
+ WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
+ WGL_FRONT_LEFT_ARB 0x2083
+ WGL_FRONT_RIGHT_ARB 0x2084
+ WGL_BACK_LEFT_ARB 0x2085
+ WGL_BACK_RIGHT_ARB 0x2086
+ WGL_AUX0_ARB 0x2087
+ WGL_AUX1_ARB 0x2088
+ WGL_AUX2_ARB 0x2089
+ WGL_AUX3_ARB 0x208A
+ WGL_AUX4_ARB 0x208B
+ WGL_AUX5_ARB 0x208C
+ WGL_AUX6_ARB 0x208D
+ WGL_AUX7_ARB 0x208E
+ WGL_AUX8_ARB 0x208F
+ WGL_AUX9_ARB 0x2090
+ BOOL wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer)
+ BOOL wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer)
+ BOOL wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, const int* piAttribList)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_robustness_application_isolation b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_robustness_application_isolation
new file mode 100644
index 0000000..fdeeede
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_robustness_application_isolation
@@ -0,0 +1,5 @@
+WGL_ARB_robustness_application_isolation
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_robustness_application_isolation.txt
+WGL_ARB_robustness_application_isolation
+
+ WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_robustness_share_group_isolation b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_robustness_share_group_isolation
new file mode 100644
index 0000000..dd81503
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ARB_robustness_share_group_isolation
@@ -0,0 +1,5 @@
+WGL_ARB_robustness_share_group_isolation
+https://www.khronos.org/registry/OpenGL/extensions/ARB/WGL_ARB_robustness_share_group_isolation.txt
+WGL_ARB_robustness_share_group_isolation
+
+ WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ATI_pixel_format_float b/engine-ocean/External/glew/auto/extensions/gl/WGL_ATI_pixel_format_float
new file mode 100644
index 0000000..28a3b79
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ATI_pixel_format_float
@@ -0,0 +1,7 @@
+WGL_ATI_pixel_format_float
+https://www.khronos.org/registry/OpenGL/extensions/ATI/WGL_ATI_pixel_format_float.txt
+WGL_ATI_pixel_format_float
+
+ WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
+ GL_RGBA_FLOAT_MODE_ATI 0x8820
+ GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_ATI_render_texture_rectangle b/engine-ocean/External/glew/auto/extensions/gl/WGL_ATI_render_texture_rectangle
new file mode 100644
index 0000000..c75ea3c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_ATI_render_texture_rectangle
@@ -0,0 +1,5 @@
+WGL_ATI_render_texture_rectangle
+https://www.khronos.org/registry/OpenGL/extensions/ATI/WGL_ATI_render_texture_rectangle.txt
+WGL_ATI_render_texture_rectangle
+
+ WGL_TEXTURE_RECTANGLE_ATI 0x21A5
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_colorspace b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_colorspace
new file mode 100644
index 0000000..94d45fb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_colorspace
@@ -0,0 +1,7 @@
+WGL_EXT_colorspace
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_colorspace.txt
+WGL_EXT_colorspace
+
+ WGL_COLORSPACE_SRGB_EXT 0x3089
+ WGL_COLORSPACE_LINEAR_EXT 0x308A
+ WGL_COLORSPACE_EXT 0x309D
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_create_context_es2_profile b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_create_context_es2_profile
new file mode 100644
index 0000000..a4b060f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_create_context_es2_profile
@@ -0,0 +1,5 @@
+WGL_EXT_create_context_es2_profile
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_create_context_es2_profile.txt
+WGL_EXT_create_context_es2_profile
+
+ WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_create_context_es_profile b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_create_context_es_profile
new file mode 100644
index 0000000..7e503c4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_create_context_es_profile
@@ -0,0 +1,5 @@
+WGL_EXT_create_context_es_profile
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_create_context_es_profile.txt
+WGL_EXT_create_context_es_profile
+
+ WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_depth_float b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_depth_float
new file mode 100644
index 0000000..a389b80
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_depth_float
@@ -0,0 +1,5 @@
+WGL_EXT_depth_float
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_depth_float.txt
+WGL_EXT_depth_float
+
+ WGL_DEPTH_FLOAT_EXT 0x2040
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_display_color_table b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_display_color_table
new file mode 100644
index 0000000..77aee2d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_display_color_table
@@ -0,0 +1,8 @@
+WGL_EXT_display_color_table
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_display_color_table.txt
+WGL_EXT_display_color_table
+
+ GLboolean wglBindDisplayColorTableEXT (GLushort id)
+ GLboolean wglCreateDisplayColorTableEXT (GLushort id)
+ VOID wglDestroyDisplayColorTableEXT (GLushort id)
+ GLboolean wglLoadDisplayColorTableEXT (const GLushort* table, GLuint length)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_extensions_string b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_extensions_string
new file mode 100644
index 0000000..6ff92eb
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_extensions_string
@@ -0,0 +1,5 @@
+WGL_EXT_extensions_string
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_extensions_string.txt
+WGL_EXT_extensions_string
+
+ const char* wglGetExtensionsStringEXT (void)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_framebuffer_sRGB b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_framebuffer_sRGB
new file mode 100644
index 0000000..f567bb7
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_framebuffer_sRGB
@@ -0,0 +1,5 @@
+WGL_EXT_framebuffer_sRGB
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_framebuffer_sRGB.txt
+WGL_EXT_framebuffer_sRGB
+
+ WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_make_current_read b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_make_current_read
new file mode 100644
index 0000000..a95be50
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_make_current_read
@@ -0,0 +1,8 @@
+WGL_EXT_make_current_read
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_make_current_read.txt
+WGL_EXT_make_current_read
+
+ ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
+ HDC wglGetCurrentReadDCEXT (void)
+ BOOL wglMakeContextCurrentEXT (HDC hDrawDC, HDC hReadDC, HGLRC hglrc)
+ ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_multisample b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_multisample
new file mode 100644
index 0000000..73c381e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_multisample
@@ -0,0 +1,6 @@
+WGL_EXT_multisample
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_multisample.txt
+WGL_EXT_multisample
+
+ WGL_SAMPLE_BUFFERS_EXT 0x2041
+ WGL_SAMPLES_EXT 0x2042
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pbuffer b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pbuffer
new file mode 100644
index 0000000..e9e6cec
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pbuffer
@@ -0,0 +1,19 @@
+WGL_EXT_pbuffer
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_pbuffer.txt
+WGL_EXT_pbuffer
+
+ WGL_DRAW_TO_PBUFFER_EXT 0x202D
+ WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
+ WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
+ WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
+ WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
+ WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
+ WGL_PBUFFER_LARGEST_EXT 0x2033
+ WGL_PBUFFER_WIDTH_EXT 0x2034
+ WGL_PBUFFER_HEIGHT_EXT 0x2035
+ HPBUFFEREXT wglCreatePbufferEXT (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList)
+ BOOL wglDestroyPbufferEXT (HPBUFFEREXT hPbuffer)
+ HDC wglGetPbufferDCEXT (HPBUFFEREXT hPbuffer)
+ BOOL wglQueryPbufferEXT (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue)
+ int wglReleasePbufferDCEXT (HPBUFFEREXT hPbuffer, HDC hDC)
+ DECLARE_HANDLE(HPBUFFEREXT);
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pixel_format b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pixel_format
new file mode 100644
index 0000000..d846c4a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pixel_format
@@ -0,0 +1,52 @@
+WGL_EXT_pixel_format
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_pixel_format.txt
+WGL_EXT_pixel_format
+
+ WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
+ WGL_DRAW_TO_WINDOW_EXT 0x2001
+ WGL_DRAW_TO_BITMAP_EXT 0x2002
+ WGL_ACCELERATION_EXT 0x2003
+ WGL_NEED_PALETTE_EXT 0x2004
+ WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
+ WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
+ WGL_SWAP_METHOD_EXT 0x2007
+ WGL_NUMBER_OVERLAYS_EXT 0x2008
+ WGL_NUMBER_UNDERLAYS_EXT 0x2009
+ WGL_TRANSPARENT_EXT 0x200A
+ WGL_TRANSPARENT_VALUE_EXT 0x200B
+ WGL_SHARE_DEPTH_EXT 0x200C
+ WGL_SHARE_STENCIL_EXT 0x200D
+ WGL_SHARE_ACCUM_EXT 0x200E
+ WGL_SUPPORT_GDI_EXT 0x200F
+ WGL_SUPPORT_OPENGL_EXT 0x2010
+ WGL_DOUBLE_BUFFER_EXT 0x2011
+ WGL_STEREO_EXT 0x2012
+ WGL_PIXEL_TYPE_EXT 0x2013
+ WGL_COLOR_BITS_EXT 0x2014
+ WGL_RED_BITS_EXT 0x2015
+ WGL_RED_SHIFT_EXT 0x2016
+ WGL_GREEN_BITS_EXT 0x2017
+ WGL_GREEN_SHIFT_EXT 0x2018
+ WGL_BLUE_BITS_EXT 0x2019
+ WGL_BLUE_SHIFT_EXT 0x201A
+ WGL_ALPHA_BITS_EXT 0x201B
+ WGL_ALPHA_SHIFT_EXT 0x201C
+ WGL_ACCUM_BITS_EXT 0x201D
+ WGL_ACCUM_RED_BITS_EXT 0x201E
+ WGL_ACCUM_GREEN_BITS_EXT 0x201F
+ WGL_ACCUM_BLUE_BITS_EXT 0x2020
+ WGL_ACCUM_ALPHA_BITS_EXT 0x2021
+ WGL_DEPTH_BITS_EXT 0x2022
+ WGL_STENCIL_BITS_EXT 0x2023
+ WGL_AUX_BUFFERS_EXT 0x2024
+ WGL_NO_ACCELERATION_EXT 0x2025
+ WGL_GENERIC_ACCELERATION_EXT 0x2026
+ WGL_FULL_ACCELERATION_EXT 0x2027
+ WGL_SWAP_EXCHANGE_EXT 0x2028
+ WGL_SWAP_COPY_EXT 0x2029
+ WGL_SWAP_UNDEFINED_EXT 0x202A
+ WGL_TYPE_RGBA_EXT 0x202B
+ WGL_TYPE_COLORINDEX_EXT 0x202C
+ BOOL wglChoosePixelFormatEXT (HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats)
+ BOOL wglGetPixelFormatAttribfvEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT* pfValues)
+ BOOL wglGetPixelFormatAttribivEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int* piValues)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pixel_format_packed_float b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pixel_format_packed_float
new file mode 100644
index 0000000..6ee8f9d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_pixel_format_packed_float
@@ -0,0 +1,5 @@
+WGL_EXT_pixel_format_packed_float
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_pixel_format_packed_float.txt
+WGL_EXT_pixel_format_packed_float
+
+ WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_swap_control b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_swap_control
new file mode 100644
index 0000000..c346dd4
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_swap_control
@@ -0,0 +1,6 @@
+WGL_EXT_swap_control
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_swap_control.txt
+WGL_EXT_swap_control
+
+ int wglGetSwapIntervalEXT (void)
+ BOOL wglSwapIntervalEXT (int interval)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_swap_control_tear b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_swap_control_tear
new file mode 100644
index 0000000..fdcb55b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_EXT_swap_control_tear
@@ -0,0 +1,4 @@
+WGL_EXT_swap_control_tear
+https://www.khronos.org/registry/OpenGL/extensions/EXT/WGL_EXT_swap_control_tear.txt
+WGL_EXT_swap_control_tear
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_digital_video_control b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_digital_video_control
new file mode 100644
index 0000000..fd44df1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_digital_video_control
@@ -0,0 +1,10 @@
+WGL_I3D_digital_video_control
+https://www.khronos.org/registry/OpenGL/extensions/I3D/WGL_I3D_digital_video_control.txt
+WGL_I3D_digital_video_control
+
+ WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
+ WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
+ WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
+ WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
+ BOOL wglGetDigitalVideoParametersI3D (HDC hDC, int iAttribute, int* piValue)
+ BOOL wglSetDigitalVideoParametersI3D (HDC hDC, int iAttribute, const int* piValue)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_gamma b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_gamma
new file mode 100644
index 0000000..1cc8076
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_gamma
@@ -0,0 +1,10 @@
+WGL_I3D_gamma
+https://www.khronos.org/registry/OpenGL/extensions/I3D/WGL_I3D_gamma.txt
+WGL_I3D_gamma
+
+ WGL_GAMMA_TABLE_SIZE_I3D 0x204E
+ WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
+ BOOL wglGetGammaTableI3D (HDC hDC, int iEntries, USHORT* puRed, USHORT* puGreen, USHORT* puBlue)
+ BOOL wglGetGammaTableParametersI3D (HDC hDC, int iAttribute, int* piValue)
+ BOOL wglSetGammaTableI3D (HDC hDC, int iEntries, const USHORT* puRed, const USHORT* puGreen, const USHORT* puBlue)
+ BOOL wglSetGammaTableParametersI3D (HDC hDC, int iAttribute, const int* piValue)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_genlock b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_genlock
new file mode 100644
index 0000000..11efee9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_genlock
@@ -0,0 +1,25 @@
+WGL_I3D_genlock
+https://www.khronos.org/registry/OpenGL/extensions/I3D/WGL_I3D_genlock.txt
+WGL_I3D_genlock
+
+ WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
+ WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045
+ WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046
+ WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047
+ WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
+ WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
+ WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
+ WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
+ WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
+ BOOL wglDisableGenlockI3D (HDC hDC)
+ BOOL wglEnableGenlockI3D (HDC hDC)
+ BOOL wglGenlockSampleRateI3D (HDC hDC, UINT uRate)
+ BOOL wglGenlockSourceDelayI3D (HDC hDC, UINT uDelay)
+ BOOL wglGenlockSourceEdgeI3D (HDC hDC, UINT uEdge)
+ BOOL wglGenlockSourceI3D (HDC hDC, UINT uSource)
+ BOOL wglGetGenlockSampleRateI3D (HDC hDC, UINT* uRate)
+ BOOL wglGetGenlockSourceDelayI3D (HDC hDC, UINT* uDelay)
+ BOOL wglGetGenlockSourceEdgeI3D (HDC hDC, UINT* uEdge)
+ BOOL wglGetGenlockSourceI3D (HDC hDC, UINT* uSource)
+ BOOL wglIsEnabledGenlockI3D (HDC hDC, BOOL* pFlag)
+ BOOL wglQueryGenlockMaxSourceDelayI3D (HDC hDC, UINT* uMaxLineDelay, UINT* uMaxPixelDelay)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_image_buffer b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_image_buffer
new file mode 100644
index 0000000..09d7ca9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_image_buffer
@@ -0,0 +1,10 @@
+WGL_I3D_image_buffer
+https://www.khronos.org/registry/OpenGL/extensions/I3D/WGL_I3D_image_buffer.txt
+WGL_I3D_image_buffer
+
+ WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
+ WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
+ BOOL wglAssociateImageBufferEventsI3D (HDC hDC, const HANDLE* pEvent, const LPVOID* pAddress, const DWORD* pSize, UINT count)
+ LPVOID wglCreateImageBufferI3D (HDC hDC, DWORD dwSize, UINT uFlags)
+ BOOL wglDestroyImageBufferI3D (HDC hDC, LPVOID pAddress)
+ BOOL wglReleaseImageBufferEventsI3D (HDC hDC, const LPVOID* pAddress, UINT count)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_swap_frame_lock b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_swap_frame_lock
new file mode 100644
index 0000000..43b578f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_swap_frame_lock
@@ -0,0 +1,8 @@
+WGL_I3D_swap_frame_lock
+https://www.khronos.org/registry/OpenGL/extensions/I3D/WGL_I3D_swap_frame_lock.txt
+WGL_I3D_swap_frame_lock
+
+ BOOL wglDisableFrameLockI3D (void)
+ BOOL wglEnableFrameLockI3D (void)
+ BOOL wglIsEnabledFrameLockI3D (BOOL* pFlag)
+ BOOL wglQueryFrameLockMasterI3D (BOOL* pFlag)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_swap_frame_usage b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_swap_frame_usage
new file mode 100644
index 0000000..291c54a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_I3D_swap_frame_usage
@@ -0,0 +1,8 @@
+WGL_I3D_swap_frame_usage
+https://www.khronos.org/registry/OpenGL/extensions/I3D/WGL_I3D_swap_frame_usage.txt
+WGL_I3D_swap_frame_usage
+
+ BOOL wglBeginFrameTrackingI3D (void)
+ BOOL wglEndFrameTrackingI3D (void)
+ BOOL wglGetFrameUsageI3D (float* pUsage)
+ BOOL wglQueryFrameTrackingI3D (DWORD* pFrameCount, DWORD* pMissedFrames, float* pLastMissedUsage)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_DX_interop b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_DX_interop
new file mode 100644
index 0000000..640e99f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_DX_interop
@@ -0,0 +1,15 @@
+WGL_NV_DX_interop
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_DX_interop.txt
+WGL_NV_DX_interop
+
+ WGL_ACCESS_READ_ONLY_NV 0x00000000
+ WGL_ACCESS_READ_WRITE_NV 0x00000001
+ WGL_ACCESS_WRITE_DISCARD_NV 0x00000002
+ BOOL wglDXCloseDeviceNV (HANDLE hDevice)
+ BOOL wglDXLockObjectsNV (HANDLE hDevice, GLint count, HANDLE* hObjects)
+ BOOL wglDXObjectAccessNV (HANDLE hObject, GLenum access)
+ HANDLE wglDXOpenDeviceNV (void* dxDevice)
+ HANDLE wglDXRegisterObjectNV (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access)
+ BOOL wglDXSetResourceShareHandleNV (void* dxObject, HANDLE shareHandle)
+ BOOL wglDXUnlockObjectsNV (HANDLE hDevice, GLint count, HANDLE* hObjects)
+ BOOL wglDXUnregisterObjectNV (HANDLE hDevice, HANDLE hObject)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_DX_interop2 b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_DX_interop2
new file mode 100644
index 0000000..b900118
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_DX_interop2
@@ -0,0 +1,4 @@
+WGL_NV_DX_interop2
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_DX_interop2.txt
+WGL_NV_DX_interop2
+
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_copy_image b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_copy_image
new file mode 100644
index 0000000..2ca0ad8
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_copy_image
@@ -0,0 +1,6 @@
+WGL_NV_copy_image
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_copy_image.txt
+WGL_NV_copy_image
+
+ BOOL wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
+ BOOL wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_delay_before_swap b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_delay_before_swap
new file mode 100644
index 0000000..9647e2a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_delay_before_swap
@@ -0,0 +1,5 @@
+WGL_NV_delay_before_swap
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_delay_before_swap.txt
+WGL_NV_delay_before_swap
+
+ BOOL wglDelayBeforeSwapNV (HDC hDC, GLfloat seconds)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_float_buffer b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_float_buffer
new file mode 100644
index 0000000..50a0d82
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_float_buffer
@@ -0,0 +1,13 @@
+WGL_NV_float_buffer
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_float_buffer.txt
+WGL_NV_float_buffer
+
+ WGL_FLOAT_COMPONENTS_NV 0x20B0
+ WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
+ WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
+ WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
+ WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
+ WGL_TEXTURE_FLOAT_R_NV 0x20B5
+ WGL_TEXTURE_FLOAT_RG_NV 0x20B6
+ WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
+ WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_gpu_affinity b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_gpu_affinity
new file mode 100644
index 0000000..61ed3f1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_gpu_affinity
@@ -0,0 +1,13 @@
+WGL_NV_gpu_affinity
+http://developer.download.nvidia.com/opengl/specs/WGL_nv_gpu_affinity.txt
+WGL_NV_gpu_affinity
+
+ WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
+ WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
+ BOOL wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu)
+ BOOL wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice)
+ HDC wglCreateAffinityDCNV (const HGPUNV *phGpuList)
+ BOOL wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu)
+ BOOL wglDeleteDCNV (HDC hdc)
+ DECLARE_HANDLE(HGPUNV);
+ typedef struct _GPU_DEVICE { DWORD cb; CHAR DeviceName[32]; CHAR DeviceString[128]; DWORD Flags; RECT rcVirtualScreen; } GPU_DEVICE, *PGPU_DEVICE;
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_multigpu_context b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_multigpu_context
new file mode 100644
index 0000000..58bbb79
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_multigpu_context
@@ -0,0 +1,9 @@
+WGL_NV_multigpu_context
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_multigpu_context.txt
+WGL_NV_multigpu_context
+
+ WGL_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA
+ WGL_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB
+ WGL_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC
+ WGL_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD
+ WGL_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_multisample_coverage b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_multisample_coverage
new file mode 100644
index 0000000..89ffbc3
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_multisample_coverage
@@ -0,0 +1,6 @@
+WGL_NV_multisample_coverage
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_multisample_coverage.txt
+WGL_NV_multisample_coverage
+
+ WGL_COVERAGE_SAMPLES_NV 0x2042
+ WGL_COLOR_SAMPLES_NV 0x20B9
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_present_video b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_present_video
new file mode 100644
index 0000000..3bc4f02
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_present_video
@@ -0,0 +1,9 @@
+WGL_NV_present_video
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_present_video.txt
+WGL_NV_present_video
+
+ WGL_NUM_VIDEO_SLOTS_NV 0x20F0
+ BOOL wglBindVideoDeviceNV (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList)
+ int wglEnumerateVideoDevicesNV (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList)
+ BOOL wglQueryCurrentContextNV (int iAttribute, int* piValue)
+ DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_render_depth_texture b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_render_depth_texture
new file mode 100644
index 0000000..3f2aad6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_render_depth_texture
@@ -0,0 +1,9 @@
+WGL_NV_render_depth_texture
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_render_depth_texture.txt
+WGL_NV_render_depth_texture
+
+ WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
+ WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
+ WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
+ WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
+ WGL_DEPTH_COMPONENT_NV 0x20A7
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_render_texture_rectangle b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_render_texture_rectangle
new file mode 100644
index 0000000..1aaba98
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_render_texture_rectangle
@@ -0,0 +1,7 @@
+WGL_NV_render_texture_rectangle
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_render_texture_rectangle.txt
+WGL_NV_render_texture_rectangle
+
+ WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
+ WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
+ WGL_TEXTURE_RECTANGLE_NV 0x20A2
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_swap_group b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_swap_group
new file mode 100644
index 0000000..af094b6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_swap_group
@@ -0,0 +1,10 @@
+WGL_NV_swap_group
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_swap_group.txt
+WGL_NV_swap_group
+
+ BOOL wglBindSwapBarrierNV (GLuint group, GLuint barrier)
+ BOOL wglJoinSwapGroupNV (HDC hDC, GLuint group)
+ BOOL wglQueryFrameCountNV (HDC hDC, GLuint* count)
+ BOOL wglQueryMaxSwapGroupsNV (HDC hDC, GLuint* maxGroups, GLuint* maxBarriers)
+ BOOL wglQuerySwapGroupNV (HDC hDC, GLuint* group, GLuint* barrier)
+ BOOL wglResetFrameCountNV (HDC hDC)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_vertex_array_range b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_vertex_array_range
new file mode 100644
index 0000000..b51318d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_vertex_array_range
@@ -0,0 +1,6 @@
+WGL_NV_vertex_array_range
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_vertex_array_range.txt
+WGL_NV_vertex_array_range
+
+ void* wglAllocateMemoryNV (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority)
+ void wglFreeMemoryNV (void* pointer)
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_video_capture b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_video_capture
new file mode 100644
index 0000000..5c33f9d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_video_capture
@@ -0,0 +1,12 @@
+WGL_NV_video_capture
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_video_capture.txt
+WGL_NV_video_capture
+
+ WGL_UNIQUE_ID_NV 0x20CE
+ WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
+ BOOL wglBindVideoCaptureDeviceNV (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice)
+ UINT wglEnumerateVideoCaptureDevicesNV (HDC hDc, HVIDEOINPUTDEVICENV* phDeviceList)
+ BOOL wglLockVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice)
+ BOOL wglQueryVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int* piValue)
+ BOOL wglReleaseVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice)
+ DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_video_output b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_video_output
new file mode 100644
index 0000000..f7cc817
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_NV_video_output
@@ -0,0 +1,24 @@
+WGL_NV_video_output
+https://www.khronos.org/registry/OpenGL/extensions/NV/WGL_NV_video_output.txt
+WGL_NV_video_output
+
+ WGL_BIND_TO_VIDEO_RGB_NV 0x20C0
+ WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1
+ WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
+ WGL_VIDEO_OUT_COLOR_NV 0x20C3
+ WGL_VIDEO_OUT_ALPHA_NV 0x20C4
+ WGL_VIDEO_OUT_DEPTH_NV 0x20C5
+ WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
+ WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
+ WGL_VIDEO_OUT_FRAME 0x20C8
+ WGL_VIDEO_OUT_FIELD_1 0x20C9
+ WGL_VIDEO_OUT_FIELD_2 0x20CA
+ WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
+ WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
+ BOOL wglBindVideoImageNV (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer)
+ BOOL wglGetVideoDeviceNV (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice)
+ BOOL wglGetVideoInfoNV (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long* pulCounterOutputVideo)
+ BOOL wglReleaseVideoDeviceNV (HPVIDEODEV hVideoDevice)
+ BOOL wglReleaseVideoImageNV (HPBUFFERARB hPbuffer, int iVideoBuffer)
+ BOOL wglSendPbufferToVideoNV (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock)
+ DECLARE_HANDLE(HPVIDEODEV);
diff --git a/engine-ocean/External/glew/auto/extensions/gl/WGL_OML_sync_control b/engine-ocean/External/glew/auto/extensions/gl/WGL_OML_sync_control
new file mode 100644
index 0000000..6129270
--- /dev/null
+++ b/engine-ocean/External/glew/auto/extensions/gl/WGL_OML_sync_control
@@ -0,0 +1,10 @@
+WGL_OML_sync_control
+https://www.khronos.org/registry/OpenGL/extensions/OML/WGL_OML_sync_control.txt
+WGL_OML_sync_control
+
+ BOOL wglGetMscRateOML (HDC hdc, INT32* numerator, INT32* denominator)
+ BOOL wglGetSyncValuesOML (HDC hdc, INT64* ust, INT64* msc, INT64* sbc)
+ INT64 wglSwapBuffersMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder)
+ INT64 wglSwapLayerBuffersMscOML (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder)
+ BOOL wglWaitForMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64* msc, INT64* sbc)
+ BOOL wglWaitForSbcOML (HDC hdc, INT64 target_sbc, INT64* ust, INT64* msc, INT64* sbc)
diff --git a/engine-ocean/External/glew/auto/src/eglew_head.h b/engine-ocean/External/glew/auto/src/eglew_head.h
new file mode 100644
index 0000000..121efaf
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/eglew_head.h
@@ -0,0 +1,98 @@
+#ifndef __eglew_h__
+#define __eglew_h__
+#define __EGLEW_H__
+
+#ifdef __eglext_h_
+#error eglext.h included before eglew.h
+#endif
+
+#if defined(__egl_h_)
+#error egl.h included before eglew.h
+#endif
+
+#define __eglext_h_
+
+#define __egl_h_
+
+#ifndef EGLAPIENTRY
+#define EGLAPIENTRY
+#endif
+#ifndef EGLAPI
+#define EGLAPI extern
+#endif
+
+/* EGL Types */
+#include <sys/types.h>
+
+#include <KHR/khrplatform.h>
+#include <EGL/eglplatform.h>
+
+#ifndef GLEW_INCLUDE
+# include <GL/glew.h>
+#else
+# include GLEW_INCLUDE
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef int32_t EGLint;
+
+typedef unsigned int EGLBoolean;
+typedef void *EGLDisplay;
+typedef void *EGLConfig;
+typedef void *EGLSurface;
+typedef void *EGLContext;
+typedef void (*__eglMustCastToProperFunctionPointerType)(void);
+
+typedef unsigned int EGLenum;
+typedef void *EGLClientBuffer;
+
+typedef void *EGLSync;
+typedef intptr_t EGLAttrib;
+typedef khronos_utime_nanoseconds_t EGLTime;
+typedef void *EGLImage;
+
+typedef void *EGLSyncKHR;
+typedef intptr_t EGLAttribKHR;
+typedef void *EGLLabelKHR;
+typedef void *EGLObjectKHR;
+typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
+typedef khronos_utime_nanoseconds_t EGLTimeKHR;
+typedef void *EGLImageKHR;
+typedef void *EGLStreamKHR;
+typedef khronos_uint64_t EGLuint64KHR;
+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);
+typedef void *EGLDeviceEXT;
+typedef void *EGLOutputLayerEXT;
+typedef void *EGLOutputPortEXT;
+typedef void *EGLSyncNV;
+typedef khronos_utime_nanoseconds_t EGLTimeNV;
+typedef khronos_utime_nanoseconds_t EGLuint64NV;
+typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
+
+struct EGLClientPixmapHI;
+struct AHardwareBuffer;
+
+/* Wayland types for WL_bind_wayland_display purposes */
+struct wl_buffer;
+struct wl_display;
+struct wl_resource;
+
+#define EGL_DONT_CARE ((EGLint)-1)
+
+#define EGL_NO_CONTEXT ((EGLContext)0)
+#define EGL_NO_DISPLAY ((EGLDisplay)0)
+#define EGL_NO_IMAGE ((EGLImage)0)
+#define EGL_NO_SURFACE ((EGLSurface)0)
+#define EGL_NO_SYNC ((EGLSync)0)
+
+#define EGL_UNKNOWN ((EGLint)-1)
+
+#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
+
+EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname);
diff --git a/engine-ocean/External/glew/auto/src/eglew_mid.h b/engine-ocean/External/glew/auto/src/eglew_mid.h
new file mode 100644
index 0000000..f94a149
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/eglew_mid.h
@@ -0,0 +1,4 @@
+/* ------------------------------------------------------------------------- */
+
+#define EGLEW_FUN_EXPORT GLEW_FUN_EXPORT
+#define EGLEW_VAR_EXPORT GLEW_VAR_EXPORT
diff --git a/engine-ocean/External/glew/auto/src/eglew_tail.h b/engine-ocean/External/glew/auto/src/eglew_tail.h
new file mode 100644
index 0000000..a91a76e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/eglew_tail.h
@@ -0,0 +1,15 @@
+/* ------------------------------------------------------------------------ */
+
+GLEWAPI GLenum GLEWAPIENTRY eglewInit (EGLDisplay display);
+GLEWAPI GLboolean GLEWAPIENTRY eglewIsSupported (const char *name);
+
+#define EGLEW_GET_VAR(x) (*(const GLboolean*)&x)
+#define EGLEW_GET_FUN(x) x
+
+GLEWAPI GLboolean GLEWAPIENTRY eglewGetExtension (const char *name);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __eglew_h__ */
diff --git a/engine-ocean/External/glew/auto/src/footer.html b/engine-ocean/External/glew/auto/src/footer.html
new file mode 100644
index 0000000..3adb9c1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/footer.html
@@ -0,0 +1,4 @@
+<!-- begin footer.html -->
+</td></tr></table></body>
+<!-- end footer.html -->
+
diff --git a/engine-ocean/External/glew/auto/src/glew_head.c b/engine-ocean/External/glew/auto/src/glew_head.c
new file mode 100644
index 0000000..592cd0f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_head.c
@@ -0,0 +1,289 @@
+#ifndef GLEW_INCLUDE
+# include <GL/glew.h>
+#else
+# include GLEW_INCLUDE
+#endif
+
+#if defined(GLEW_OSMESA)
+# define GLAPI extern
+# include <GL/osmesa.h>
+#elif defined(GLEW_EGL)
+# include <GL/eglew.h>
+#elif defined(_WIN32)
+/*
+ * If NOGDI is defined, wingdi.h won't be included by windows.h, and thus
+ * wglGetProcAddress won't be declared. It will instead be implicitly declared,
+ * potentially incorrectly, which we don't want.
+ */
+# if defined(NOGDI)
+# undef NOGDI
+# endif
+# include <GL/wglew.h>
+#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
+# include <GL/glxew.h>
+#endif
+
+#include <stddef.h> /* For size_t */
+
+#if defined(GLEW_EGL)
+#elif defined(GLEW_REGAL)
+
+/* In GLEW_REGAL mode we call directly into the linked
+ libRegal.so glGetProcAddressREGAL for looking up
+ the GL function pointers. */
+
+# undef glGetProcAddressREGAL
+# ifdef WIN32
+extern void * __stdcall glGetProcAddressREGAL(const GLchar *name);
+static void * (__stdcall * regalGetProcAddress) (const GLchar *) = glGetProcAddressREGAL;
+# else
+extern void * glGetProcAddressREGAL(const GLchar *name);
+static void * (*regalGetProcAddress) (const GLchar *) = glGetProcAddressREGAL;
+# endif
+# define glGetProcAddressREGAL GLEW_GET_FUN(__glewGetProcAddressREGAL)
+
+#elif defined(__sgi) || defined (__sun) || defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+void* dlGetProcAddress (const GLubyte* name)
+{
+ static void* h = NULL;
+ static void* gpa;
+
+ if (h == NULL)
+ {
+ if ((h = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL)) == NULL) return NULL;
+ gpa = dlsym(h, "glXGetProcAddress");
+ }
+
+ if (gpa != NULL)
+ return ((void*(*)(const GLubyte*))gpa)(name);
+ else
+ return dlsym(h, (const char*)name);
+}
+#endif /* __sgi || __sun || GLEW_APPLE_GLX */
+
+#if defined(__APPLE__)
+#include <stdlib.h>
+#include <string.h>
+#include <AvailabilityMacros.h>
+
+#ifdef MAC_OS_X_VERSION_10_3
+
+#include <dlfcn.h>
+
+void* NSGLGetProcAddress (const GLubyte *name)
+{
+ static void* image = NULL;
+ void* addr;
+ if (NULL == image)
+ {
+ image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY);
+ }
+ if( !image ) return NULL;
+ addr = dlsym(image, (const char*)name);
+ if( addr ) return addr;
+#ifdef GLEW_APPLE_GLX
+ return dlGetProcAddress( name ); // try next for glx symbols
+#else
+ return NULL;
+#endif
+}
+#else
+
+#include <mach-o/dyld.h>
+
+void* NSGLGetProcAddress (const GLubyte *name)
+{
+ static const struct mach_header* image = NULL;
+ NSSymbol symbol;
+ char* symbolName;
+ if (NULL == image)
+ {
+ image = NSAddImage("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", NSADDIMAGE_OPTION_RETURN_ON_ERROR);
+ }
+ /* prepend a '_' for the Unix C symbol mangling convention */
+ symbolName = malloc(strlen((const char*)name) + 2);
+ strcpy(symbolName+1, (const char*)name);
+ symbolName[0] = '_';
+ symbol = NULL;
+ /* if (NSIsSymbolNameDefined(symbolName))
+ symbol = NSLookupAndBindSymbol(symbolName); */
+ symbol = image ? NSLookupSymbolInImage(image, symbolName, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR) : NULL;
+ free(symbolName);
+ if( symbol ) return NSAddressOfSymbol(symbol);
+#ifdef GLEW_APPLE_GLX
+ return dlGetProcAddress( name ); // try next for glx symbols
+#else
+ return NULL;
+#endif
+}
+#endif /* MAC_OS_X_VERSION_10_3 */
+#endif /* __APPLE__ */
+
+/*
+ * Define glewGetProcAddress.
+ */
+#if defined(GLEW_REGAL)
+# define glewGetProcAddress(name) regalGetProcAddress((const GLchar *)name)
+#elif defined(GLEW_OSMESA)
+# define glewGetProcAddress(name) OSMesaGetProcAddress((const char *)name)
+#elif defined(GLEW_EGL)
+# define glewGetProcAddress(name) eglGetProcAddress((const char *)name)
+#elif defined(_WIN32)
+# define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name)
+#elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
+# define glewGetProcAddress(name) NSGLGetProcAddress(name)
+#elif defined(__sgi) || defined(__sun) || defined(__HAIKU__)
+# define glewGetProcAddress(name) dlGetProcAddress(name)
+#elif defined(__ANDROID__)
+# define glewGetProcAddress(name) NULL /* TODO */
+#elif defined(__native_client__)
+# define glewGetProcAddress(name) NULL /* TODO */
+#else /* __linux */
+# define glewGetProcAddress(name) (*glXGetProcAddressARB)(name)
+#endif
+
+/*
+ * Redefine GLEW_GET_VAR etc without const cast
+ */
+
+#undef GLEW_GET_VAR
+# define GLEW_GET_VAR(x) (x)
+
+#ifdef WGLEW_GET_VAR
+# undef WGLEW_GET_VAR
+# define WGLEW_GET_VAR(x) (x)
+#endif /* WGLEW_GET_VAR */
+
+#ifdef GLXEW_GET_VAR
+# undef GLXEW_GET_VAR
+# define GLXEW_GET_VAR(x) (x)
+#endif /* GLXEW_GET_VAR */
+
+#ifdef EGLEW_GET_VAR
+# undef EGLEW_GET_VAR
+# define EGLEW_GET_VAR(x) (x)
+#endif /* EGLEW_GET_VAR */
+
+/*
+ * GLEW, just like OpenGL or GLU, does not rely on the standard C library.
+ * These functions implement the functionality required in this file.
+ */
+
+static GLuint _glewStrLen (const GLubyte* s)
+{
+ GLuint i=0;
+ if (s == NULL) return 0;
+ while (s[i] != '\0') i++;
+ return i;
+}
+
+static GLuint _glewStrCLen (const GLubyte* s, GLubyte c)
+{
+ GLuint i=0;
+ if (s == NULL) return 0;
+ while (s[i] != '\0' && s[i] != c) i++;
+ return i;
+}
+
+static GLuint _glewStrCopy(char *d, const char *s, char c)
+{
+ GLuint i=0;
+ if (s == NULL) return 0;
+ while (s[i] != '\0' && s[i] != c) { d[i] = s[i]; i++; }
+ d[i] = '\0';
+ return i;
+}
+
+#if !defined(GLEW_OSMESA)
+#if !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+static GLboolean _glewStrSame (const GLubyte* a, const GLubyte* b, GLuint n)
+{
+ GLuint i=0;
+ if(a == NULL || b == NULL)
+ return (a == NULL && b == NULL && n == 0) ? GL_TRUE : GL_FALSE;
+ while (i < n && a[i] != '\0' && b[i] != '\0' && a[i] == b[i]) i++;
+ return i == n ? GL_TRUE : GL_FALSE;
+}
+#endif
+#endif
+
+static GLboolean _glewStrSame1 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb)
+{
+ while (*na > 0 && (**a == ' ' || **a == '\n' || **a == '\r' || **a == '\t'))
+ {
+ (*a)++;
+ (*na)--;
+ }
+ if(*na >= nb)
+ {
+ GLuint i=0;
+ while (i < nb && (*a)[i] == b[i]) i++;
+ if(i == nb)
+ {
+ *a = *a + nb;
+ *na = *na - nb;
+ return GL_TRUE;
+ }
+ }
+ return GL_FALSE;
+}
+
+static GLboolean _glewStrSame2 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb)
+{
+ if(*na >= nb)
+ {
+ GLuint i=0;
+ while (i < nb && (*a)[i] == b[i]) i++;
+ if(i == nb)
+ {
+ *a = *a + nb;
+ *na = *na - nb;
+ return GL_TRUE;
+ }
+ }
+ return GL_FALSE;
+}
+
+static GLboolean _glewStrSame3 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb)
+{
+ if(*na >= nb)
+ {
+ GLuint i=0;
+ while (i < nb && (*a)[i] == b[i]) i++;
+ if (i == nb && (*na == nb || (*a)[i] == ' ' || (*a)[i] == '\n' || (*a)[i] == '\r' || (*a)[i] == '\t'))
+ {
+ *a = *a + nb;
+ *na = *na - nb;
+ return GL_TRUE;
+ }
+ }
+ return GL_FALSE;
+}
+
+/*
+ * Search for name in the extensions string. Use of strstr()
+ * is not sufficient because extension names can be prefixes of
+ * other extension names. Could use strtok() but the constant
+ * string returned by glGetString might be in read-only memory.
+ */
+#if !defined(GLEW_OSMESA)
+#if !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+static GLboolean _glewSearchExtension (const char* name, const GLubyte *start, const GLubyte *end)
+{
+ const GLubyte* p;
+ GLuint len = _glewStrLen((const GLubyte*)name);
+ p = start;
+ while (p < end)
+ {
+ GLuint n = _glewStrCLen(p, ' ');
+ if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE;
+ p += n+1;
+ }
+ return GL_FALSE;
+}
+#endif
+#endif
diff --git a/engine-ocean/External/glew/auto/src/glew_head.h b/engine-ocean/External/glew/auto/src/glew_head.h
new file mode 100644
index 0000000..9277d2a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_head.h
@@ -0,0 +1,1139 @@
+#ifndef __glew_h__
+#define __glew_h__
+#define __GLEW_H__
+
+#if defined(__gl_h_) || defined(__GL_H__) || defined(_GL_H) || defined(__gl_gl_h_) || defined(__X_GL_H)
+#error gl.h included before glew.h
+#endif
+#if defined(__gl2_h_)
+#error gl2.h included before glew.h
+#endif
+#if defined(__gltypes_h_)
+#error gltypes.h included before glew.h
+#endif
+#if defined(__REGAL_H__)
+#error Regal.h included before glew.h
+#endif
+#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_)
+#error glext.h included before glew.h
+#endif
+#if defined(__gl_ATI_h_)
+#error glATI.h included before glew.h
+#endif
+
+#define __gl_h_
+#define __gl2_h_
+#define __GL_H__
+#define _GL_H
+#define __gl_gl_h_
+#define __gltypes_h_
+#define __REGAL_H__
+#define __X_GL_H
+#define __glext_h_
+#define __GLEXT_H_
+#define __gl_glext_h_
+#define __gl_ATI_h_
+
+#if defined(_WIN32)
+
+/*
+ * GLEW does not include <windows.h> to avoid name space pollution.
+ * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t
+ * defined properly.
+ */
+/* <windef.h> and <gl.h>*/
+#ifdef APIENTRY
+# ifndef GLAPIENTRY
+# define GLAPIENTRY APIENTRY
+# endif
+# ifndef GLEWAPIENTRY
+# define GLEWAPIENTRY APIENTRY
+# endif
+#else
+#define GLEW_APIENTRY_DEFINED
+# if defined(__MINGW32__) || defined(__CYGWIN__) || (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__)
+# define APIENTRY __stdcall
+# ifndef GLAPIENTRY
+# define GLAPIENTRY __stdcall
+# endif
+# ifndef GLEWAPIENTRY
+# define GLEWAPIENTRY __stdcall
+# endif
+# else
+# define APIENTRY
+# endif
+#endif
+/* <winnt.h> */
+#ifndef CALLBACK
+#define GLEW_CALLBACK_DEFINED
+# if defined(__MINGW32__) || defined(__CYGWIN__)
+# define CALLBACK __attribute__ ((__stdcall__))
+# elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
+# define CALLBACK __stdcall
+# else
+# define CALLBACK
+# endif
+#endif
+/* <wingdi.h> and <winnt.h> */
+#ifndef WINGDIAPI
+#define GLEW_WINGDIAPI_DEFINED
+#define WINGDIAPI __declspec(dllimport)
+#endif
+/* <ctype.h> */
+#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED)
+typedef unsigned short wchar_t;
+# define _WCHAR_T_DEFINED
+#endif
+/* <stddef.h> */
+#if !defined(_W64)
+# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300
+# define _W64 __w64
+# else
+# define _W64
+# endif
+#endif
+#if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__)
+# ifdef _WIN64
+typedef __int64 ptrdiff_t;
+# else
+typedef _W64 int ptrdiff_t;
+# endif
+# define _PTRDIFF_T_DEFINED
+# define _PTRDIFF_T_
+#endif
+
+#ifndef GLAPI
+# if defined(__MINGW32__) || defined(__CYGWIN__)
+# define GLAPI extern
+# else
+# define GLAPI WINGDIAPI
+# endif
+#endif
+
+/*
+ * GLEW_STATIC is defined for static library.
+ * GLEW_BUILD is defined for building the DLL library.
+ */
+
+#ifdef GLEW_STATIC
+# define GLEWAPI extern
+#else
+# ifdef GLEW_BUILD
+# define GLEWAPI extern __declspec(dllexport)
+# else
+# define GLEWAPI extern __declspec(dllimport)
+# endif
+#endif
+
+#else /* _UNIX */
+
+/*
+ * Needed for ptrdiff_t in turn needed by VBO. This is defined by ISO
+ * C. On my system, this amounts to _3 lines_ of included code, all of
+ * them pretty much harmless. If you know of a way of detecting 32 vs
+ * 64 _targets_ at compile time you are free to replace this with
+ * something that's portable. For now, _this_ is the portable solution.
+ * (mem, 2004-01-04)
+ */
+
+#if defined(__APPLE__) || defined(__linux__)
+# if defined(__cplusplus)
+# include <cstddef>
+# include <cstdint>
+# else
+# include <stddef.h>
+# include <stdint.h>
+# endif
+#else
+
+# include <stddef.h>
+
+/* SGI MIPSPro doesn't like stdint.h in C++ mode */
+/* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */
+
+# if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__)
+# include <inttypes.h>
+# else
+# include <stdint.h>
+# endif
+#endif
+
+#define GLEW_APIENTRY_DEFINED
+#define APIENTRY
+
+/*
+ * GLEW_STATIC is defined for static library.
+ */
+
+#ifdef GLEW_STATIC
+# define GLEWAPI extern
+#else
+# if defined(__GNUC__) && __GNUC__>=4
+# define GLEWAPI extern __attribute__ ((visibility("default")))
+# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+# define GLEWAPI extern __global
+# else
+# define GLEWAPI extern
+# endif
+#endif
+
+/* <glu.h> */
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+#endif /* _WIN32 */
+
+#ifndef GLAPIENTRY
+#define GLAPIENTRY
+#endif
+
+#ifndef GLEWAPIENTRY
+#define GLEWAPIENTRY
+#endif
+
+#define GLEW_VAR_EXPORT GLEWAPI
+#define GLEW_FUN_EXPORT GLEWAPI
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ----------------------------- GL_VERSION_1_1 ---------------------------- */
+
+#ifndef GL_VERSION_1_1
+#define GL_VERSION_1_1 1
+
+typedef unsigned int GLenum;
+typedef unsigned int GLbitfield;
+typedef unsigned int GLuint;
+typedef int GLint;
+typedef int GLsizei;
+typedef unsigned char GLboolean;
+typedef signed char GLbyte;
+typedef short GLshort;
+typedef unsigned char GLubyte;
+typedef unsigned short GLushort;
+typedef unsigned long GLulong;
+typedef float GLfloat;
+typedef float GLclampf;
+typedef double GLdouble;
+typedef double GLclampd;
+typedef void GLvoid;
+#if defined(_MSC_VER) && _MSC_VER < 1400
+typedef __int64 GLint64EXT;
+typedef unsigned __int64 GLuint64EXT;
+#elif defined(_MSC_VER) || defined(__BORLANDC__)
+typedef signed long long GLint64EXT;
+typedef unsigned long long GLuint64EXT;
+#else
+# if defined(__MINGW32__) || defined(__CYGWIN__)
+#include <inttypes.h>
+# endif
+typedef int64_t GLint64EXT;
+typedef uint64_t GLuint64EXT;
+#endif
+typedef GLint64EXT GLint64;
+typedef GLuint64EXT GLuint64;
+typedef struct __GLsync *GLsync;
+
+typedef char GLchar;
+
+typedef void *GLeglImageOES; /* GL_EXT_EGL_image_storage */
+
+#define GL_ZERO 0
+#define GL_FALSE 0
+#define GL_LOGIC_OP 0x0BF1
+#define GL_NONE 0
+#define GL_TEXTURE_COMPONENTS 0x1003
+#define GL_NO_ERROR 0
+#define GL_POINTS 0x0000
+#define GL_CURRENT_BIT 0x00000001
+#define GL_TRUE 1
+#define GL_ONE 1
+#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001
+#define GL_LINES 0x0001
+#define GL_LINE_LOOP 0x0002
+#define GL_POINT_BIT 0x00000002
+#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002
+#define GL_LINE_STRIP 0x0003
+#define GL_LINE_BIT 0x00000004
+#define GL_TRIANGLES 0x0004
+#define GL_TRIANGLE_STRIP 0x0005
+#define GL_TRIANGLE_FAN 0x0006
+#define GL_QUADS 0x0007
+#define GL_QUAD_STRIP 0x0008
+#define GL_POLYGON_BIT 0x00000008
+#define GL_POLYGON 0x0009
+#define GL_POLYGON_STIPPLE_BIT 0x00000010
+#define GL_PIXEL_MODE_BIT 0x00000020
+#define GL_LIGHTING_BIT 0x00000040
+#define GL_FOG_BIT 0x00000080
+#define GL_DEPTH_BUFFER_BIT 0x00000100
+#define GL_ACCUM 0x0100
+#define GL_LOAD 0x0101
+#define GL_RETURN 0x0102
+#define GL_MULT 0x0103
+#define GL_ADD 0x0104
+#define GL_NEVER 0x0200
+#define GL_ACCUM_BUFFER_BIT 0x00000200
+#define GL_LESS 0x0201
+#define GL_EQUAL 0x0202
+#define GL_LEQUAL 0x0203
+#define GL_GREATER 0x0204
+#define GL_NOTEQUAL 0x0205
+#define GL_GEQUAL 0x0206
+#define GL_ALWAYS 0x0207
+#define GL_SRC_COLOR 0x0300
+#define GL_ONE_MINUS_SRC_COLOR 0x0301
+#define GL_SRC_ALPHA 0x0302
+#define GL_ONE_MINUS_SRC_ALPHA 0x0303
+#define GL_DST_ALPHA 0x0304
+#define GL_ONE_MINUS_DST_ALPHA 0x0305
+#define GL_DST_COLOR 0x0306
+#define GL_ONE_MINUS_DST_COLOR 0x0307
+#define GL_SRC_ALPHA_SATURATE 0x0308
+#define GL_STENCIL_BUFFER_BIT 0x00000400
+#define GL_FRONT_LEFT 0x0400
+#define GL_FRONT_RIGHT 0x0401
+#define GL_BACK_LEFT 0x0402
+#define GL_BACK_RIGHT 0x0403
+#define GL_FRONT 0x0404
+#define GL_BACK 0x0405
+#define GL_LEFT 0x0406
+#define GL_RIGHT 0x0407
+#define GL_FRONT_AND_BACK 0x0408
+#define GL_AUX0 0x0409
+#define GL_AUX1 0x040A
+#define GL_AUX2 0x040B
+#define GL_AUX3 0x040C
+#define GL_INVALID_ENUM 0x0500
+#define GL_INVALID_VALUE 0x0501
+#define GL_INVALID_OPERATION 0x0502
+#define GL_STACK_OVERFLOW 0x0503
+#define GL_STACK_UNDERFLOW 0x0504
+#define GL_OUT_OF_MEMORY 0x0505
+#define GL_2D 0x0600
+#define GL_3D 0x0601
+#define GL_3D_COLOR 0x0602
+#define GL_3D_COLOR_TEXTURE 0x0603
+#define GL_4D_COLOR_TEXTURE 0x0604
+#define GL_PASS_THROUGH_TOKEN 0x0700
+#define GL_POINT_TOKEN 0x0701
+#define GL_LINE_TOKEN 0x0702
+#define GL_POLYGON_TOKEN 0x0703
+#define GL_BITMAP_TOKEN 0x0704
+#define GL_DRAW_PIXEL_TOKEN 0x0705
+#define GL_COPY_PIXEL_TOKEN 0x0706
+#define GL_LINE_RESET_TOKEN 0x0707
+#define GL_EXP 0x0800
+#define GL_VIEWPORT_BIT 0x00000800
+#define GL_EXP2 0x0801
+#define GL_CW 0x0900
+#define GL_CCW 0x0901
+#define GL_COEFF 0x0A00
+#define GL_ORDER 0x0A01
+#define GL_DOMAIN 0x0A02
+#define GL_CURRENT_COLOR 0x0B00
+#define GL_CURRENT_INDEX 0x0B01
+#define GL_CURRENT_NORMAL 0x0B02
+#define GL_CURRENT_TEXTURE_COORDS 0x0B03
+#define GL_CURRENT_RASTER_COLOR 0x0B04
+#define GL_CURRENT_RASTER_INDEX 0x0B05
+#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
+#define GL_CURRENT_RASTER_POSITION 0x0B07
+#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08
+#define GL_CURRENT_RASTER_DISTANCE 0x0B09
+#define GL_POINT_SMOOTH 0x0B10
+#define GL_POINT_SIZE 0x0B11
+#define GL_POINT_SIZE_RANGE 0x0B12
+#define GL_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_LINE_SMOOTH 0x0B20
+#define GL_LINE_WIDTH 0x0B21
+#define GL_LINE_WIDTH_RANGE 0x0B22
+#define GL_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_LINE_STIPPLE 0x0B24
+#define GL_LINE_STIPPLE_PATTERN 0x0B25
+#define GL_LINE_STIPPLE_REPEAT 0x0B26
+#define GL_LIST_MODE 0x0B30
+#define GL_MAX_LIST_NESTING 0x0B31
+#define GL_LIST_BASE 0x0B32
+#define GL_LIST_INDEX 0x0B33
+#define GL_POLYGON_MODE 0x0B40
+#define GL_POLYGON_SMOOTH 0x0B41
+#define GL_POLYGON_STIPPLE 0x0B42
+#define GL_EDGE_FLAG 0x0B43
+#define GL_CULL_FACE 0x0B44
+#define GL_CULL_FACE_MODE 0x0B45
+#define GL_FRONT_FACE 0x0B46
+#define GL_LIGHTING 0x0B50
+#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51
+#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
+#define GL_LIGHT_MODEL_AMBIENT 0x0B53
+#define GL_SHADE_MODEL 0x0B54
+#define GL_COLOR_MATERIAL_FACE 0x0B55
+#define GL_COLOR_MATERIAL_PARAMETER 0x0B56
+#define GL_COLOR_MATERIAL 0x0B57
+#define GL_FOG 0x0B60
+#define GL_FOG_INDEX 0x0B61
+#define GL_FOG_DENSITY 0x0B62
+#define GL_FOG_START 0x0B63
+#define GL_FOG_END 0x0B64
+#define GL_FOG_MODE 0x0B65
+#define GL_FOG_COLOR 0x0B66
+#define GL_DEPTH_RANGE 0x0B70
+#define GL_DEPTH_TEST 0x0B71
+#define GL_DEPTH_WRITEMASK 0x0B72
+#define GL_DEPTH_CLEAR_VALUE 0x0B73
+#define GL_DEPTH_FUNC 0x0B74
+#define GL_ACCUM_CLEAR_VALUE 0x0B80
+#define GL_STENCIL_TEST 0x0B90
+#define GL_STENCIL_CLEAR_VALUE 0x0B91
+#define GL_STENCIL_FUNC 0x0B92
+#define GL_STENCIL_VALUE_MASK 0x0B93
+#define GL_STENCIL_FAIL 0x0B94
+#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
+#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
+#define GL_STENCIL_REF 0x0B97
+#define GL_STENCIL_WRITEMASK 0x0B98
+#define GL_MATRIX_MODE 0x0BA0
+#define GL_NORMALIZE 0x0BA1
+#define GL_VIEWPORT 0x0BA2
+#define GL_MODELVIEW_STACK_DEPTH 0x0BA3
+#define GL_PROJECTION_STACK_DEPTH 0x0BA4
+#define GL_TEXTURE_STACK_DEPTH 0x0BA5
+#define GL_MODELVIEW_MATRIX 0x0BA6
+#define GL_PROJECTION_MATRIX 0x0BA7
+#define GL_TEXTURE_MATRIX 0x0BA8
+#define GL_ATTRIB_STACK_DEPTH 0x0BB0
+#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1
+#define GL_ALPHA_TEST 0x0BC0
+#define GL_ALPHA_TEST_FUNC 0x0BC1
+#define GL_ALPHA_TEST_REF 0x0BC2
+#define GL_DITHER 0x0BD0
+#define GL_BLEND_DST 0x0BE0
+#define GL_BLEND_SRC 0x0BE1
+#define GL_BLEND 0x0BE2
+#define GL_LOGIC_OP_MODE 0x0BF0
+#define GL_INDEX_LOGIC_OP 0x0BF1
+#define GL_COLOR_LOGIC_OP 0x0BF2
+#define GL_AUX_BUFFERS 0x0C00
+#define GL_DRAW_BUFFER 0x0C01
+#define GL_READ_BUFFER 0x0C02
+#define GL_SCISSOR_BOX 0x0C10
+#define GL_SCISSOR_TEST 0x0C11
+#define GL_INDEX_CLEAR_VALUE 0x0C20
+#define GL_INDEX_WRITEMASK 0x0C21
+#define GL_COLOR_CLEAR_VALUE 0x0C22
+#define GL_COLOR_WRITEMASK 0x0C23
+#define GL_INDEX_MODE 0x0C30
+#define GL_RGBA_MODE 0x0C31
+#define GL_DOUBLEBUFFER 0x0C32
+#define GL_STEREO 0x0C33
+#define GL_RENDER_MODE 0x0C40
+#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
+#define GL_POINT_SMOOTH_HINT 0x0C51
+#define GL_LINE_SMOOTH_HINT 0x0C52
+#define GL_POLYGON_SMOOTH_HINT 0x0C53
+#define GL_FOG_HINT 0x0C54
+#define GL_TEXTURE_GEN_S 0x0C60
+#define GL_TEXTURE_GEN_T 0x0C61
+#define GL_TEXTURE_GEN_R 0x0C62
+#define GL_TEXTURE_GEN_Q 0x0C63
+#define GL_PIXEL_MAP_I_TO_I 0x0C70
+#define GL_PIXEL_MAP_S_TO_S 0x0C71
+#define GL_PIXEL_MAP_I_TO_R 0x0C72
+#define GL_PIXEL_MAP_I_TO_G 0x0C73
+#define GL_PIXEL_MAP_I_TO_B 0x0C74
+#define GL_PIXEL_MAP_I_TO_A 0x0C75
+#define GL_PIXEL_MAP_R_TO_R 0x0C76
+#define GL_PIXEL_MAP_G_TO_G 0x0C77
+#define GL_PIXEL_MAP_B_TO_B 0x0C78
+#define GL_PIXEL_MAP_A_TO_A 0x0C79
+#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0
+#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1
+#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2
+#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3
+#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4
+#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5
+#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6
+#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7
+#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8
+#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9
+#define GL_UNPACK_SWAP_BYTES 0x0CF0
+#define GL_UNPACK_LSB_FIRST 0x0CF1
+#define GL_UNPACK_ROW_LENGTH 0x0CF2
+#define GL_UNPACK_SKIP_ROWS 0x0CF3
+#define GL_UNPACK_SKIP_PIXELS 0x0CF4
+#define GL_UNPACK_ALIGNMENT 0x0CF5
+#define GL_PACK_SWAP_BYTES 0x0D00
+#define GL_PACK_LSB_FIRST 0x0D01
+#define GL_PACK_ROW_LENGTH 0x0D02
+#define GL_PACK_SKIP_ROWS 0x0D03
+#define GL_PACK_SKIP_PIXELS 0x0D04
+#define GL_PACK_ALIGNMENT 0x0D05
+#define GL_MAP_COLOR 0x0D10
+#define GL_MAP_STENCIL 0x0D11
+#define GL_INDEX_SHIFT 0x0D12
+#define GL_INDEX_OFFSET 0x0D13
+#define GL_RED_SCALE 0x0D14
+#define GL_RED_BIAS 0x0D15
+#define GL_ZOOM_X 0x0D16
+#define GL_ZOOM_Y 0x0D17
+#define GL_GREEN_SCALE 0x0D18
+#define GL_GREEN_BIAS 0x0D19
+#define GL_BLUE_SCALE 0x0D1A
+#define GL_BLUE_BIAS 0x0D1B
+#define GL_ALPHA_SCALE 0x0D1C
+#define GL_ALPHA_BIAS 0x0D1D
+#define GL_DEPTH_SCALE 0x0D1E
+#define GL_DEPTH_BIAS 0x0D1F
+#define GL_MAX_EVAL_ORDER 0x0D30
+#define GL_MAX_LIGHTS 0x0D31
+#define GL_MAX_CLIP_PLANES 0x0D32
+#define GL_MAX_TEXTURE_SIZE 0x0D33
+#define GL_MAX_PIXEL_MAP_TABLE 0x0D34
+#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35
+#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
+#define GL_MAX_NAME_STACK_DEPTH 0x0D37
+#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
+#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
+#define GL_MAX_VIEWPORT_DIMS 0x0D3A
+#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B
+#define GL_SUBPIXEL_BITS 0x0D50
+#define GL_INDEX_BITS 0x0D51
+#define GL_RED_BITS 0x0D52
+#define GL_GREEN_BITS 0x0D53
+#define GL_BLUE_BITS 0x0D54
+#define GL_ALPHA_BITS 0x0D55
+#define GL_DEPTH_BITS 0x0D56
+#define GL_STENCIL_BITS 0x0D57
+#define GL_ACCUM_RED_BITS 0x0D58
+#define GL_ACCUM_GREEN_BITS 0x0D59
+#define GL_ACCUM_BLUE_BITS 0x0D5A
+#define GL_ACCUM_ALPHA_BITS 0x0D5B
+#define GL_NAME_STACK_DEPTH 0x0D70
+#define GL_AUTO_NORMAL 0x0D80
+#define GL_MAP1_COLOR_4 0x0D90
+#define GL_MAP1_INDEX 0x0D91
+#define GL_MAP1_NORMAL 0x0D92
+#define GL_MAP1_TEXTURE_COORD_1 0x0D93
+#define GL_MAP1_TEXTURE_COORD_2 0x0D94
+#define GL_MAP1_TEXTURE_COORD_3 0x0D95
+#define GL_MAP1_TEXTURE_COORD_4 0x0D96
+#define GL_MAP1_VERTEX_3 0x0D97
+#define GL_MAP1_VERTEX_4 0x0D98
+#define GL_MAP2_COLOR_4 0x0DB0
+#define GL_MAP2_INDEX 0x0DB1
+#define GL_MAP2_NORMAL 0x0DB2
+#define GL_MAP2_TEXTURE_COORD_1 0x0DB3
+#define GL_MAP2_TEXTURE_COORD_2 0x0DB4
+#define GL_MAP2_TEXTURE_COORD_3 0x0DB5
+#define GL_MAP2_TEXTURE_COORD_4 0x0DB6
+#define GL_MAP2_VERTEX_3 0x0DB7
+#define GL_MAP2_VERTEX_4 0x0DB8
+#define GL_MAP1_GRID_DOMAIN 0x0DD0
+#define GL_MAP1_GRID_SEGMENTS 0x0DD1
+#define GL_MAP2_GRID_DOMAIN 0x0DD2
+#define GL_MAP2_GRID_SEGMENTS 0x0DD3
+#define GL_TEXTURE_1D 0x0DE0
+#define GL_TEXTURE_2D 0x0DE1
+#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0
+#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1
+#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2
+#define GL_SELECTION_BUFFER_POINTER 0x0DF3
+#define GL_SELECTION_BUFFER_SIZE 0x0DF4
+#define GL_TEXTURE_WIDTH 0x1000
+#define GL_TRANSFORM_BIT 0x00001000
+#define GL_TEXTURE_HEIGHT 0x1001
+#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
+#define GL_TEXTURE_BORDER_COLOR 0x1004
+#define GL_TEXTURE_BORDER 0x1005
+#define GL_DONT_CARE 0x1100
+#define GL_FASTEST 0x1101
+#define GL_NICEST 0x1102
+#define GL_AMBIENT 0x1200
+#define GL_DIFFUSE 0x1201
+#define GL_SPECULAR 0x1202
+#define GL_POSITION 0x1203
+#define GL_SPOT_DIRECTION 0x1204
+#define GL_SPOT_EXPONENT 0x1205
+#define GL_SPOT_CUTOFF 0x1206
+#define GL_CONSTANT_ATTENUATION 0x1207
+#define GL_LINEAR_ATTENUATION 0x1208
+#define GL_QUADRATIC_ATTENUATION 0x1209
+#define GL_COMPILE 0x1300
+#define GL_COMPILE_AND_EXECUTE 0x1301
+#define GL_BYTE 0x1400
+#define GL_UNSIGNED_BYTE 0x1401
+#define GL_SHORT 0x1402
+#define GL_UNSIGNED_SHORT 0x1403
+#define GL_INT 0x1404
+#define GL_UNSIGNED_INT 0x1405
+#define GL_FLOAT 0x1406
+#define GL_2_BYTES 0x1407
+#define GL_3_BYTES 0x1408
+#define GL_4_BYTES 0x1409
+#define GL_DOUBLE 0x140A
+#define GL_CLEAR 0x1500
+#define GL_AND 0x1501
+#define GL_AND_REVERSE 0x1502
+#define GL_COPY 0x1503
+#define GL_AND_INVERTED 0x1504
+#define GL_NOOP 0x1505
+#define GL_XOR 0x1506
+#define GL_OR 0x1507
+#define GL_NOR 0x1508
+#define GL_EQUIV 0x1509
+#define GL_INVERT 0x150A
+#define GL_OR_REVERSE 0x150B
+#define GL_COPY_INVERTED 0x150C
+#define GL_OR_INVERTED 0x150D
+#define GL_NAND 0x150E
+#define GL_SET 0x150F
+#define GL_EMISSION 0x1600
+#define GL_SHININESS 0x1601
+#define GL_AMBIENT_AND_DIFFUSE 0x1602
+#define GL_COLOR_INDEXES 0x1603
+#define GL_MODELVIEW 0x1700
+#define GL_PROJECTION 0x1701
+#define GL_TEXTURE 0x1702
+#define GL_COLOR 0x1800
+#define GL_DEPTH 0x1801
+#define GL_STENCIL 0x1802
+#define GL_COLOR_INDEX 0x1900
+#define GL_STENCIL_INDEX 0x1901
+#define GL_DEPTH_COMPONENT 0x1902
+#define GL_RED 0x1903
+#define GL_GREEN 0x1904
+#define GL_BLUE 0x1905
+#define GL_ALPHA 0x1906
+#define GL_RGB 0x1907
+#define GL_RGBA 0x1908
+#define GL_LUMINANCE 0x1909
+#define GL_LUMINANCE_ALPHA 0x190A
+#define GL_BITMAP 0x1A00
+#define GL_POINT 0x1B00
+#define GL_LINE 0x1B01
+#define GL_FILL 0x1B02
+#define GL_RENDER 0x1C00
+#define GL_FEEDBACK 0x1C01
+#define GL_SELECT 0x1C02
+#define GL_FLAT 0x1D00
+#define GL_SMOOTH 0x1D01
+#define GL_KEEP 0x1E00
+#define GL_REPLACE 0x1E01
+#define GL_INCR 0x1E02
+#define GL_DECR 0x1E03
+#define GL_VENDOR 0x1F00
+#define GL_RENDERER 0x1F01
+#define GL_VERSION 0x1F02
+#define GL_EXTENSIONS 0x1F03
+#define GL_S 0x2000
+#define GL_ENABLE_BIT 0x00002000
+#define GL_T 0x2001
+#define GL_R 0x2002
+#define GL_Q 0x2003
+#define GL_MODULATE 0x2100
+#define GL_DECAL 0x2101
+#define GL_TEXTURE_ENV_MODE 0x2200
+#define GL_TEXTURE_ENV_COLOR 0x2201
+#define GL_TEXTURE_ENV 0x2300
+#define GL_EYE_LINEAR 0x2400
+#define GL_OBJECT_LINEAR 0x2401
+#define GL_SPHERE_MAP 0x2402
+#define GL_TEXTURE_GEN_MODE 0x2500
+#define GL_OBJECT_PLANE 0x2501
+#define GL_EYE_PLANE 0x2502
+#define GL_NEAREST 0x2600
+#define GL_LINEAR 0x2601
+#define GL_NEAREST_MIPMAP_NEAREST 0x2700
+#define GL_LINEAR_MIPMAP_NEAREST 0x2701
+#define GL_NEAREST_MIPMAP_LINEAR 0x2702
+#define GL_LINEAR_MIPMAP_LINEAR 0x2703
+#define GL_TEXTURE_MAG_FILTER 0x2800
+#define GL_TEXTURE_MIN_FILTER 0x2801
+#define GL_TEXTURE_WRAP_S 0x2802
+#define GL_TEXTURE_WRAP_T 0x2803
+#define GL_CLAMP 0x2900
+#define GL_REPEAT 0x2901
+#define GL_POLYGON_OFFSET_UNITS 0x2A00
+#define GL_POLYGON_OFFSET_POINT 0x2A01
+#define GL_POLYGON_OFFSET_LINE 0x2A02
+#define GL_R3_G3_B2 0x2A10
+#define GL_V2F 0x2A20
+#define GL_V3F 0x2A21
+#define GL_C4UB_V2F 0x2A22
+#define GL_C4UB_V3F 0x2A23
+#define GL_C3F_V3F 0x2A24
+#define GL_N3F_V3F 0x2A25
+#define GL_C4F_N3F_V3F 0x2A26
+#define GL_T2F_V3F 0x2A27
+#define GL_T4F_V4F 0x2A28
+#define GL_T2F_C4UB_V3F 0x2A29
+#define GL_T2F_C3F_V3F 0x2A2A
+#define GL_T2F_N3F_V3F 0x2A2B
+#define GL_T2F_C4F_N3F_V3F 0x2A2C
+#define GL_T4F_C4F_N3F_V4F 0x2A2D
+#define GL_CLIP_PLANE0 0x3000
+#define GL_CLIP_PLANE1 0x3001
+#define GL_CLIP_PLANE2 0x3002
+#define GL_CLIP_PLANE3 0x3003
+#define GL_CLIP_PLANE4 0x3004
+#define GL_CLIP_PLANE5 0x3005
+#define GL_LIGHT0 0x4000
+#define GL_COLOR_BUFFER_BIT 0x00004000
+#define GL_LIGHT1 0x4001
+#define GL_LIGHT2 0x4002
+#define GL_LIGHT3 0x4003
+#define GL_LIGHT4 0x4004
+#define GL_LIGHT5 0x4005
+#define GL_LIGHT6 0x4006
+#define GL_LIGHT7 0x4007
+#define GL_HINT_BIT 0x00008000
+#define GL_POLYGON_OFFSET_FILL 0x8037
+#define GL_POLYGON_OFFSET_FACTOR 0x8038
+#define GL_ALPHA4 0x803B
+#define GL_ALPHA8 0x803C
+#define GL_ALPHA12 0x803D
+#define GL_ALPHA16 0x803E
+#define GL_LUMINANCE4 0x803F
+#define GL_LUMINANCE8 0x8040
+#define GL_LUMINANCE12 0x8041
+#define GL_LUMINANCE16 0x8042
+#define GL_LUMINANCE4_ALPHA4 0x8043
+#define GL_LUMINANCE6_ALPHA2 0x8044
+#define GL_LUMINANCE8_ALPHA8 0x8045
+#define GL_LUMINANCE12_ALPHA4 0x8046
+#define GL_LUMINANCE12_ALPHA12 0x8047
+#define GL_LUMINANCE16_ALPHA16 0x8048
+#define GL_INTENSITY 0x8049
+#define GL_INTENSITY4 0x804A
+#define GL_INTENSITY8 0x804B
+#define GL_INTENSITY12 0x804C
+#define GL_INTENSITY16 0x804D
+#define GL_RGB4 0x804F
+#define GL_RGB5 0x8050
+#define GL_RGB8 0x8051
+#define GL_RGB10 0x8052
+#define GL_RGB12 0x8053
+#define GL_RGB16 0x8054
+#define GL_RGBA2 0x8055
+#define GL_RGBA4 0x8056
+#define GL_RGB5_A1 0x8057
+#define GL_RGBA8 0x8058
+#define GL_RGB10_A2 0x8059
+#define GL_RGBA12 0x805A
+#define GL_RGBA16 0x805B
+#define GL_TEXTURE_RED_SIZE 0x805C
+#define GL_TEXTURE_GREEN_SIZE 0x805D
+#define GL_TEXTURE_BLUE_SIZE 0x805E
+#define GL_TEXTURE_ALPHA_SIZE 0x805F
+#define GL_TEXTURE_LUMINANCE_SIZE 0x8060
+#define GL_TEXTURE_INTENSITY_SIZE 0x8061
+#define GL_PROXY_TEXTURE_1D 0x8063
+#define GL_PROXY_TEXTURE_2D 0x8064
+#define GL_TEXTURE_PRIORITY 0x8066
+#define GL_TEXTURE_RESIDENT 0x8067
+#define GL_TEXTURE_BINDING_1D 0x8068
+#define GL_TEXTURE_BINDING_2D 0x8069
+#define GL_VERTEX_ARRAY 0x8074
+#define GL_NORMAL_ARRAY 0x8075
+#define GL_COLOR_ARRAY 0x8076
+#define GL_INDEX_ARRAY 0x8077
+#define GL_TEXTURE_COORD_ARRAY 0x8078
+#define GL_EDGE_FLAG_ARRAY 0x8079
+#define GL_VERTEX_ARRAY_SIZE 0x807A
+#define GL_VERTEX_ARRAY_TYPE 0x807B
+#define GL_VERTEX_ARRAY_STRIDE 0x807C
+#define GL_NORMAL_ARRAY_TYPE 0x807E
+#define GL_NORMAL_ARRAY_STRIDE 0x807F
+#define GL_COLOR_ARRAY_SIZE 0x8081
+#define GL_COLOR_ARRAY_TYPE 0x8082
+#define GL_COLOR_ARRAY_STRIDE 0x8083
+#define GL_INDEX_ARRAY_TYPE 0x8085
+#define GL_INDEX_ARRAY_STRIDE 0x8086
+#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
+#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
+#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
+#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C
+#define GL_VERTEX_ARRAY_POINTER 0x808E
+#define GL_NORMAL_ARRAY_POINTER 0x808F
+#define GL_COLOR_ARRAY_POINTER 0x8090
+#define GL_INDEX_ARRAY_POINTER 0x8091
+#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
+#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093
+#define GL_COLOR_INDEX1_EXT 0x80E2
+#define GL_COLOR_INDEX2_EXT 0x80E3
+#define GL_COLOR_INDEX4_EXT 0x80E4
+#define GL_COLOR_INDEX8_EXT 0x80E5
+#define GL_COLOR_INDEX12_EXT 0x80E6
+#define GL_COLOR_INDEX16_EXT 0x80E7
+#define GL_EVAL_BIT 0x00010000
+#define GL_LIST_BIT 0x00020000
+#define GL_TEXTURE_BIT 0x00040000
+#define GL_SCISSOR_BIT 0x00080000
+#define GL_ALL_ATTRIB_BITS 0x000fffff
+#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff
+
+GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value);
+GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref);
+GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);
+GLAPI void GLAPIENTRY glArrayElement (GLint i);
+GLAPI void GLAPIENTRY glBegin (GLenum mode);
+GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture);
+GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
+GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
+GLAPI void GLAPIENTRY glCallList (GLuint list);
+GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const void *lists);
+GLAPI void GLAPIENTRY glClear (GLbitfield mask);
+GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+GLAPI void GLAPIENTRY glClearDepth (GLclampd depth);
+GLAPI void GLAPIENTRY glClearIndex (GLfloat c);
+GLAPI void GLAPIENTRY glClearStencil (GLint s);
+GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation);
+GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue);
+GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v);
+GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue);
+GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue);
+GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue);
+GLAPI void GLAPIENTRY glColor3iv (const GLint *v);
+GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue);
+GLAPI void GLAPIENTRY glColor3sv (const GLshort *v);
+GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue);
+GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v);
+GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue);
+GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v);
+GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue);
+GLAPI void GLAPIENTRY glColor3usv (const GLushort *v);
+GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v);
+GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha);
+GLAPI void GLAPIENTRY glColor4iv (const GLint *v);
+GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha);
+GLAPI void GLAPIENTRY glColor4sv (const GLshort *v);
+GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v);
+GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha);
+GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v);
+GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha);
+GLAPI void GLAPIENTRY glColor4usv (const GLushort *v);
+GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode);
+GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
+GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
+GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+GLAPI void GLAPIENTRY glCullFace (GLenum mode);
+GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range);
+GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
+GLAPI void GLAPIENTRY glDepthFunc (GLenum func);
+GLAPI void GLAPIENTRY glDepthMask (GLboolean flag);
+GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar);
+GLAPI void GLAPIENTRY glDisable (GLenum cap);
+GLAPI void GLAPIENTRY glDisableClientState (GLenum array);
+GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
+GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode);
+GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
+GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
+GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag);
+GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const void *pointer);
+GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag);
+GLAPI void GLAPIENTRY glEnable (GLenum cap);
+GLAPI void GLAPIENTRY glEnableClientState (GLenum array);
+GLAPI void GLAPIENTRY glEnd (void);
+GLAPI void GLAPIENTRY glEndList (void);
+GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u);
+GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u);
+GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u);
+GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u);
+GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v);
+GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u);
+GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v);
+GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u);
+GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2);
+GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+GLAPI void GLAPIENTRY glEvalPoint1 (GLint i);
+GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j);
+GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer);
+GLAPI void GLAPIENTRY glFinish (void);
+GLAPI void GLAPIENTRY glFlush (void);
+GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param);
+GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params);
+GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param);
+GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params);
+GLAPI void GLAPIENTRY glFrontFace (GLenum mode);
+GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range);
+GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures);
+GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params);
+GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation);
+GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params);
+GLAPI GLenum GLAPIENTRY glGetError (void);
+GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params);
+GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params);
+GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
+GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params);
+GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v);
+GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v);
+GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v);
+GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
+GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params);
+GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values);
+GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values);
+GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values);
+GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, void* *params);
+GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask);
+GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name);
+GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
+GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params);
+GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params);
+GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
+GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params);
+GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
+GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
+GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
+GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
+GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
+GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode);
+GLAPI void GLAPIENTRY glIndexMask (GLuint mask);
+GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const void *pointer);
+GLAPI void GLAPIENTRY glIndexd (GLdouble c);
+GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c);
+GLAPI void GLAPIENTRY glIndexf (GLfloat c);
+GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c);
+GLAPI void GLAPIENTRY glIndexi (GLint c);
+GLAPI void GLAPIENTRY glIndexiv (const GLint *c);
+GLAPI void GLAPIENTRY glIndexs (GLshort c);
+GLAPI void GLAPIENTRY glIndexsv (const GLshort *c);
+GLAPI void GLAPIENTRY glIndexub (GLubyte c);
+GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c);
+GLAPI void GLAPIENTRY glInitNames (void);
+GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const void *pointer);
+GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap);
+GLAPI GLboolean GLAPIENTRY glIsList (GLuint list);
+GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture);
+GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param);
+GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params);
+GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param);
+GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params);
+GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param);
+GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params);
+GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param);
+GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params);
+GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern);
+GLAPI void GLAPIENTRY glLineWidth (GLfloat width);
+GLAPI void GLAPIENTRY glListBase (GLuint base);
+GLAPI void GLAPIENTRY glLoadIdentity (void);
+GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m);
+GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m);
+GLAPI void GLAPIENTRY glLoadName (GLuint name);
+GLAPI void GLAPIENTRY glLogicOp (GLenum opcode);
+GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
+GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
+GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
+GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
+GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2);
+GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2);
+GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param);
+GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
+GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param);
+GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params);
+GLAPI void GLAPIENTRY glMatrixMode (GLenum mode);
+GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m);
+GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m);
+GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode);
+GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz);
+GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v);
+GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz);
+GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
+GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz);
+GLAPI void GLAPIENTRY glNormal3iv (const GLint *v);
+GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz);
+GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v);
+GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer);
+GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLAPI void GLAPIENTRY glPassThrough (GLfloat token);
+GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values);
+GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values);
+GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values);
+GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param);
+GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param);
+GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param);
+GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param);
+GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor);
+GLAPI void GLAPIENTRY glPointSize (GLfloat size);
+GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode);
+GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
+GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask);
+GLAPI void GLAPIENTRY glPopAttrib (void);
+GLAPI void GLAPIENTRY glPopClientAttrib (void);
+GLAPI void GLAPIENTRY glPopMatrix (void);
+GLAPI void GLAPIENTRY glPopName (void);
+GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities);
+GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask);
+GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask);
+GLAPI void GLAPIENTRY glPushMatrix (void);
+GLAPI void GLAPIENTRY glPushName (GLuint name);
+GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y);
+GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y);
+GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y);
+GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v);
+GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y);
+GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v);
+GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z);
+GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z);
+GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z);
+GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v);
+GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z);
+GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v);
+GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w);
+GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v);
+GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w);
+GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v);
+GLAPI void GLAPIENTRY glReadBuffer (GLenum mode);
+GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
+GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2);
+GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2);
+GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2);
+GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2);
+GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2);
+GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode);
+GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z);
+GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z);
+GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
+GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer);
+GLAPI void GLAPIENTRY glShadeModel (GLenum mode);
+GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
+GLAPI void GLAPIENTRY glStencilMask (GLuint mask);
+GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
+GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s);
+GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s);
+GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glTexCoord1i (GLint s);
+GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v);
+GLAPI void GLAPIENTRY glTexCoord1s (GLshort s);
+GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v);
+GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t);
+GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t);
+GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t);
+GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v);
+GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t);
+GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v);
+GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r);
+GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r);
+GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r);
+GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v);
+GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r);
+GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v);
+GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q);
+GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v);
+GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q);
+GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v);
+GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
+GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param);
+GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param);
+GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params);
+GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param);
+GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params);
+GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param);
+GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params);
+GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param);
+GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params);
+GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
+GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
+GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
+GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
+GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
+GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z);
+GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
+GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y);
+GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y);
+GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y);
+GLAPI void GLAPIENTRY glVertex2iv (const GLint *v);
+GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y);
+GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v);
+GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z);
+GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z);
+GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z);
+GLAPI void GLAPIENTRY glVertex3iv (const GLint *v);
+GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z);
+GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v);
+GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v);
+GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v);
+GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w);
+GLAPI void GLAPIENTRY glVertex4iv (const GLint *v);
+GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w);
+GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v);
+GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
+GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
+
+#define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1)
+
+#endif /* GL_VERSION_1_1 */
+
+/* ---------------------------------- GLU ---------------------------------- */
+
+#ifndef GLEW_NO_GLU
+# ifdef __APPLE__
+# include <Availability.h>
+# if defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
+# define GLEW_NO_GLU
+# endif
+# endif
+#endif
+
+#ifndef GLEW_NO_GLU
+/* this is where we can safely include GLU */
+# if defined(__APPLE__) && defined(__MACH__)
+# include <OpenGL/glu.h>
+# else
+# include <GL/glu.h>
+# endif
+#endif
+
diff --git a/engine-ocean/External/glew/auto/src/glew_init_egl.c b/engine-ocean/External/glew/auto/src/glew_init_egl.c
new file mode 100644
index 0000000..1502ef6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_init_egl.c
@@ -0,0 +1,45 @@
+ /* ------------------------------------------------------------------------ */
+
+GLboolean eglewGetExtension (const char* name)
+{
+ const GLubyte* start;
+ const GLubyte* end;
+
+ start = (const GLubyte*) eglQueryString(eglGetCurrentDisplay(), EGL_EXTENSIONS);
+ if (0 == start) return GL_FALSE;
+ end = start + _glewStrLen(start);
+ return _glewSearchExtension(name, start, end);
+}
+
+GLenum eglewInit (EGLDisplay display)
+{
+ EGLint major, minor;
+ const GLubyte* extStart;
+ const GLubyte* extEnd;
+ PFNEGLINITIALIZEPROC initialize = NULL;
+ PFNEGLQUERYSTRINGPROC queryString = NULL;
+
+ /* Load necessary entry points */
+ initialize = (PFNEGLINITIALIZEPROC) glewGetProcAddress("eglInitialize");
+ queryString = (PFNEGLQUERYSTRINGPROC) glewGetProcAddress("eglQueryString");
+ if (!initialize || !queryString)
+ return 1;
+
+ /* query EGL version */
+ if (initialize(display, &major, &minor) != EGL_TRUE)
+ return 1;
+
+ EGLEW_VERSION_1_5 = ( major > 1 ) || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE;
+ EGLEW_VERSION_1_4 = EGLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE;
+ EGLEW_VERSION_1_3 = EGLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE;
+ EGLEW_VERSION_1_2 = EGLEW_VERSION_1_3 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE;
+ EGLEW_VERSION_1_1 = EGLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE;
+ EGLEW_VERSION_1_0 = EGLEW_VERSION_1_1 == GL_TRUE || ( major == 1 && minor >= 0 ) ? GL_TRUE : GL_FALSE;
+
+ /* query EGL extension string */
+ extStart = (const GLubyte*) queryString(display, EGL_EXTENSIONS);
+ if (extStart == 0)
+ extStart = (const GLubyte *)"";
+ extEnd = extStart + _glewStrLen(extStart);
+
+ /* initialize extensions */
diff --git a/engine-ocean/External/glew/auto/src/glew_init_gl.c b/engine-ocean/External/glew/auto/src/glew_init_gl.c
new file mode 100644
index 0000000..53a5885
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_init_gl.c
@@ -0,0 +1,209 @@
+/* ------------------------------------------------------------------------- */
+
+static int _glewExtensionCompare(const char *s1, const char *s2)
+{
+ /* http://www.chanduthedev.com/2012/07/strcmp-implementation-in-c.html */
+ while (*s1 || *s2)
+ {
+ if (*s1 > *s2)
+ return 1;
+ if (*s1 < *s2)
+ return -1;
+ s1++;
+ s2++;
+ }
+ return 0;
+}
+
+static ptrdiff_t _glewBsearchExtension(const char* name)
+{
+ ptrdiff_t lo = 0, hi = sizeof(_glewExtensionLookup) / sizeof(char*) - 2;
+
+ while (lo <= hi)
+ {
+ ptrdiff_t mid = (lo + hi) / 2;
+ const int cmp = _glewExtensionCompare(name, _glewExtensionLookup[mid]);
+ if (cmp < 0) hi = mid - 1;
+ else if (cmp > 0) lo = mid + 1;
+ else return mid;
+ }
+ return -1;
+}
+
+static GLboolean *_glewGetExtensionString(const char *name)
+{
+ ptrdiff_t n = _glewBsearchExtension(name);
+ if (n >= 0) return &_glewExtensionString[n];
+ return NULL;
+}
+
+static GLboolean *_glewGetExtensionEnable(const char *name)
+{
+ ptrdiff_t n = _glewBsearchExtension(name);
+ if (n >= 0) return _glewExtensionEnabled[n];
+ return NULL;
+}
+
+static const char *_glewNextSpace(const char *i)
+{
+ const char *j = i;
+ if (j)
+ while (*j!=' ' && *j) ++j;
+ return j;
+}
+
+static const char *_glewNextNonSpace(const char *i)
+{
+ const char *j = i;
+ if (j)
+ while (*j==' ') ++j;
+ return j;
+}
+
+GLboolean GLEWAPIENTRY glewGetExtension (const char* name)
+{
+ GLboolean *enable = _glewGetExtensionString(name);
+ if (enable)
+ return *enable;
+ return GL_FALSE;
+}
+
+/* ------------------------------------------------------------------------- */
+
+typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGPROC) (GLenum name);
+typedef void (GLAPIENTRY * PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params);
+
+GLenum GLEWAPIENTRY glewContextInit (void)
+{
+ PFNGLGETSTRINGPROC getString;
+ const GLubyte* s;
+ GLuint dot;
+ GLint major, minor;
+
+ #ifdef _WIN32
+ getString = glGetString;
+ #else
+ getString = (PFNGLGETSTRINGPROC) glewGetProcAddress((const GLubyte*)"glGetString");
+ if (!getString)
+ return GLEW_ERROR_NO_GL_VERSION;
+ #endif
+
+ /* query opengl version */
+ s = getString(GL_VERSION);
+ dot = _glewStrCLen(s, '.');
+ if (dot == 0)
+ return GLEW_ERROR_NO_GL_VERSION;
+
+ major = s[dot-1]-'0';
+ minor = s[dot+1]-'0';
+
+ if (minor < 0 || minor > 9)
+ minor = 0;
+ if (major<0 || major>9)
+ return GLEW_ERROR_NO_GL_VERSION;
+
+ if (major == 1 && minor == 0)
+ {
+ return GLEW_ERROR_GL_VERSION_10_ONLY;
+ }
+ else
+ {
+ GLEW_VERSION_4_6 = ( major > 4 ) || ( major == 4 && minor >= 6 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_4_5 = GLEW_VERSION_4_6 == GL_TRUE || ( major == 4 && minor >= 5 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_4_4 = GLEW_VERSION_4_5 == GL_TRUE || ( major == 4 && minor >= 4 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_4_3 = GLEW_VERSION_4_4 == GL_TRUE || ( major == 4 && minor >= 3 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_4_2 = GLEW_VERSION_4_3 == GL_TRUE || ( major == 4 && minor >= 2 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_4_1 = GLEW_VERSION_4_2 == GL_TRUE || ( major == 4 && minor >= 1 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_4_0 = GLEW_VERSION_4_1 == GL_TRUE || ( major == 4 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_3_3 = GLEW_VERSION_4_0 == GL_TRUE || ( major == 3 && minor >= 3 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_3_2 = GLEW_VERSION_3_3 == GL_TRUE || ( major == 3 && minor >= 2 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_3_1 = GLEW_VERSION_3_2 == GL_TRUE || ( major == 3 && minor >= 1 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_3_0 = GLEW_VERSION_3_1 == GL_TRUE || ( major == 3 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_2_1 = GLEW_VERSION_3_0 == GL_TRUE || ( major == 2 && minor >= 1 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_2_0 = GLEW_VERSION_2_1 == GL_TRUE || ( major == 2 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_1_5 = GLEW_VERSION_2_0 == GL_TRUE || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_1_4 = GLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_1_3 = GLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_1_2_1 = GLEW_VERSION_1_3 == GL_TRUE ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_1_2 = GLEW_VERSION_1_2_1 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE;
+ GLEW_VERSION_1_1 = GLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE;
+ }
+
+ {
+ size_t i;
+ for (i = 0; i < sizeof(_glewExtensionString) / sizeof(_glewExtensionString[0]); ++i)
+ _glewExtensionString[i] = GL_FALSE;
+ }
+
+ if (GLEW_VERSION_3_0)
+ {
+ GLint n = 0;
+ GLint i;
+ PFNGLGETINTEGERVPROC getIntegerv;
+ PFNGLGETSTRINGIPROC getStringi;
+ const char *ext;
+ GLboolean *enable;
+
+ #ifdef _WIN32
+ getIntegerv = glGetIntegerv;
+ #else
+ getIntegerv = (PFNGLGETINTEGERVPROC) glewGetProcAddress((const GLubyte*)"glGetIntegerv");
+ #endif
+
+ if (getIntegerv)
+ getIntegerv(GL_NUM_EXTENSIONS, &n);
+
+ /* glGetStringi is OpenGL 3.0 */
+ getStringi = (PFNGLGETSTRINGIPROC) glewGetProcAddress((const GLubyte*)"glGetStringi");
+ if (getStringi)
+ for (i = 0; i<n; ++i)
+ {
+ ext = (const char *) getStringi(GL_EXTENSIONS, i);
+
+ /* Based on extension string(s), glewGetExtension purposes */
+ enable = _glewGetExtensionString(ext);
+ if (enable)
+ *enable = GL_TRUE;
+
+ /* Based on extension string(s), experimental mode, glewIsSupported purposes */
+ enable = _glewGetExtensionEnable(ext);
+ if (enable)
+ *enable = GL_TRUE;
+ }
+ }
+ else
+ {
+ const char *extensions;
+ const char *end;
+ const char *i;
+ const char *j;
+ char ext[128];
+ GLboolean *enable;
+
+ extensions = (const char *) getString(GL_EXTENSIONS);
+
+ if (extensions)
+ {
+ end = extensions + _glewStrLen((const GLubyte *) extensions);
+ for (i=extensions; i<end; i = j + 1)
+ {
+ i = _glewNextNonSpace(i);
+ j = _glewNextSpace(i);
+
+ /* Copy extension into NUL terminated string */
+ if (j-i >= (ptrdiff_t) sizeof(ext))
+ continue;
+ _glewStrCopy(ext, i, ' ');
+
+ /* Based on extension string(s), glewGetExtension purposes */
+ enable = _glewGetExtensionString(ext);
+ if (enable)
+ *enable = GL_TRUE;
+
+ /* Based on extension string(s), experimental mode, glewIsSupported purposes */
+ enable = _glewGetExtensionEnable(ext);
+ if (enable)
+ *enable = GL_TRUE;
+ }
+ }
+ }
diff --git a/engine-ocean/External/glew/auto/src/glew_init_glx.c b/engine-ocean/External/glew/auto/src/glew_init_glx.c
new file mode 100644
index 0000000..8397827
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_init_glx.c
@@ -0,0 +1,57 @@
+/* ------------------------------------------------------------------------ */
+
+GLboolean glxewGetExtension (const char* name)
+{
+ const GLubyte* start;
+ const GLubyte* end;
+
+ if (glXGetCurrentDisplay == NULL) return GL_FALSE;
+ start = (const GLubyte*)glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS);
+ if (0 == start) return GL_FALSE;
+ end = start + _glewStrLen(start);
+ return _glewSearchExtension(name, start, end);
+}
+
+GLenum glxewInit ()
+{
+ Display* display;
+ int major, minor;
+ const GLubyte* extStart;
+ const GLubyte* extEnd;
+ /* initialize core GLX 1.2 */
+ if (_glewInit_GLX_VERSION_1_2()) return GLEW_ERROR_GLX_VERSION_11_ONLY;
+ /* check for a display */
+ display = glXGetCurrentDisplay();
+ if (display == NULL) return GLEW_ERROR_NO_GLX_DISPLAY;
+ /* initialize flags */
+ GLXEW_VERSION_1_0 = GL_TRUE;
+ GLXEW_VERSION_1_1 = GL_TRUE;
+ GLXEW_VERSION_1_2 = GL_TRUE;
+ GLXEW_VERSION_1_3 = GL_TRUE;
+ GLXEW_VERSION_1_4 = GL_TRUE;
+ /* query GLX version */
+ glXQueryVersion(display, &major, &minor);
+ if (major == 1 && minor <= 3)
+ {
+ switch (minor)
+ {
+ case 3:
+ GLXEW_VERSION_1_4 = GL_FALSE;
+ break;
+ case 2:
+ GLXEW_VERSION_1_4 = GL_FALSE;
+ GLXEW_VERSION_1_3 = GL_FALSE;
+ break;
+ default:
+ return GLEW_ERROR_GLX_VERSION_11_ONLY;
+ break;
+ }
+ }
+ /* query GLX extension string */
+ extStart = 0;
+ if (glXGetCurrentDisplay != NULL)
+ extStart = (const GLubyte*)glXGetClientString(display, GLX_EXTENSIONS);
+ if (extStart == 0)
+ extStart = (const GLubyte *)"";
+ extEnd = extStart + _glewStrLen(extStart);
+ /* initialize extensions */
diff --git a/engine-ocean/External/glew/auto/src/glew_init_tail.c b/engine-ocean/External/glew/auto/src/glew_init_tail.c
new file mode 100644
index 0000000..94af367
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_init_tail.c
@@ -0,0 +1,68 @@
+/* ------------------------------------------------------------------------ */
+
+const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error)
+{
+ static const GLubyte* _glewErrorString[] =
+ {
+ (const GLubyte*)"No error",
+ (const GLubyte*)"Missing GL version",
+ (const GLubyte*)"GL 1.1 and up are not supported",
+ (const GLubyte*)"GLX 1.2 and up are not supported",
+ (const GLubyte*)"No GLX display",
+ (const GLubyte*)"Unknown error"
+ };
+ const size_t max_error = sizeof(_glewErrorString)/sizeof(*_glewErrorString) - 1;
+ return _glewErrorString[(size_t)error > max_error ? max_error : (size_t)error];
+}
+
+const GLubyte * GLEWAPIENTRY glewGetString (GLenum name)
+{
+ static const GLubyte* _glewString[] =
+ {
+ (const GLubyte*)NULL,
+ (const GLubyte*)"GLEW_VERSION_STRING",
+ (const GLubyte*)"GLEW_VERSION_MAJOR_STRING",
+ (const GLubyte*)"GLEW_VERSION_MINOR_STRING",
+ (const GLubyte*)"GLEW_VERSION_MICRO_STRING"
+ };
+ const size_t max_string = sizeof(_glewString)/sizeof(*_glewString) - 1;
+ return _glewString[(size_t)name > max_string ? 0 : (size_t)name];
+}
+
+/* ------------------------------------------------------------------------ */
+
+GLboolean glewExperimental = GL_FALSE;
+
+GLenum GLEWAPIENTRY glewInit (void)
+{
+ GLenum r;
+#if defined(GLEW_EGL)
+ PFNEGLGETCURRENTDISPLAYPROC getCurrentDisplay = NULL;
+#endif
+ r = glewContextInit();
+ if ( r != 0 ) return r;
+#if defined(GLEW_EGL)
+ getCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) glewGetProcAddress("eglGetCurrentDisplay");
+ return eglewInit(getCurrentDisplay());
+#elif defined(GLEW_OSMESA) || defined(__ANDROID__) || defined(__native_client__) || defined(__HAIKU__)
+ return r;
+#elif defined(_WIN32)
+ return wglewInit();
+#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) /* _UNIX */
+ return glxewInit();
+#else
+ return r;
+#endif /* _WIN32 */
+}
+
+#if defined(_WIN32) && defined(GLEW_BUILD) && defined(__GNUC__)
+/* GCC requires a DLL entry point even without any standard library included. */
+/* Types extracted from windows.h to avoid polluting the rest of the file. */
+int __stdcall DllMainCRTStartup(void* instance, unsigned reason, void* reserved)
+{
+ (void) instance;
+ (void) reason;
+ (void) reserved;
+ return 1;
+}
+#endif
diff --git a/engine-ocean/External/glew/auto/src/glew_init_wgl.c b/engine-ocean/External/glew/auto/src/glew_init_wgl.c
new file mode 100644
index 0000000..978cf3c
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_init_wgl.c
@@ -0,0 +1,41 @@
+/* ------------------------------------------------------------------------- */
+
+static PFNWGLGETEXTENSIONSSTRINGARBPROC _wglewGetExtensionsStringARB = NULL;
+static PFNWGLGETEXTENSIONSSTRINGEXTPROC _wglewGetExtensionsStringEXT = NULL;
+
+GLboolean GLEWAPIENTRY wglewGetExtension (const char* name)
+{
+ const GLubyte* start;
+ const GLubyte* end;
+ if (_wglewGetExtensionsStringARB == NULL)
+ if (_wglewGetExtensionsStringEXT == NULL)
+ return GL_FALSE;
+ else
+ start = (const GLubyte*)_wglewGetExtensionsStringEXT();
+ else
+ start = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC());
+ if (start == 0)
+ return GL_FALSE;
+ end = start + _glewStrLen(start);
+ return _glewSearchExtension(name, start, end);
+}
+
+GLenum GLEWAPIENTRY wglewInit ()
+{
+ GLboolean crippled;
+ const GLubyte* extStart;
+ const GLubyte* extEnd;
+ /* find wgl extension string query functions */
+ _wglewGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringARB");
+ _wglewGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringEXT");
+ /* query wgl extension string */
+ if (_wglewGetExtensionsStringARB == NULL)
+ if (_wglewGetExtensionsStringEXT == NULL)
+ extStart = (const GLubyte*)"";
+ else
+ extStart = (const GLubyte*)_wglewGetExtensionsStringEXT();
+ else
+ extStart = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC());
+ extEnd = extStart + _glewStrLen(extStart);
+ /* initialize extensions */
+ crippled = _wglewGetExtensionsStringARB == NULL && _wglewGetExtensionsStringEXT == NULL;
diff --git a/engine-ocean/External/glew/auto/src/glew_license.h b/engine-ocean/External/glew/auto/src/glew_license.h
new file mode 100644
index 0000000..353640e
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_license.h
@@ -0,0 +1,32 @@
+/*
+** The OpenGL Extension Wrangler Library
+** Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+** 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.
+*/
+
diff --git a/engine-ocean/External/glew/auto/src/glew_str_egl.c b/engine-ocean/External/glew/auto/src/glew_str_egl.c
new file mode 100644
index 0000000..f0c52f9
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_str_egl.c
@@ -0,0 +1,17 @@
+ }
+ ret = (len == 0);
+ }
+ return ret;
+}
+
+#elif defined(GLEW_EGL)
+
+GLboolean eglewIsSupported (const char* name)
+{
+ const GLubyte* pos = (const GLubyte*)name;
+ GLuint len = _glewStrLen(pos);
+ GLboolean ret = GL_TRUE;
+ while (ret && len > 0)
+ {
+ if(_glewStrSame1(&pos, &len, (const GLubyte*)"EGL_", 4))
+ {
diff --git a/engine-ocean/External/glew/auto/src/glew_str_glx.c b/engine-ocean/External/glew/auto/src/glew_str_glx.c
new file mode 100644
index 0000000..893d741
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_str_glx.c
@@ -0,0 +1,17 @@
+ }
+ ret = (len == 0);
+ }
+ return ret;
+}
+
+#elif !defined(GLEW_OSMESA) && !defined(GLEW_EGL) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+
+GLboolean glxewIsSupported (const char* name)
+{
+ const GLubyte* pos = (const GLubyte*)name;
+ GLuint len = _glewStrLen(pos);
+ GLboolean ret = GL_TRUE;
+ while (ret && len > 0)
+ {
+ if(_glewStrSame1(&pos, &len, (const GLubyte*)"GLX_", 4))
+ {
diff --git a/engine-ocean/External/glew/auto/src/glew_str_head.c b/engine-ocean/External/glew/auto/src/glew_str_head.c
new file mode 100644
index 0000000..fed3a0f
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_str_head.c
@@ -0,0 +1,9 @@
+GLboolean GLEWAPIENTRY glewIsSupported (const char* name)
+{
+ const GLubyte* pos = (const GLubyte*)name;
+ GLuint len = _glewStrLen(pos);
+ GLboolean ret = GL_TRUE;
+ while (ret && len > 0)
+ {
+ if (_glewStrSame1(&pos, &len, (const GLubyte*)"GL_", 3))
+ {
diff --git a/engine-ocean/External/glew/auto/src/glew_str_tail.c b/engine-ocean/External/glew/auto/src/glew_str_tail.c
new file mode 100644
index 0000000..caa9572
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_str_tail.c
@@ -0,0 +1,7 @@
+ }
+ ret = (len == 0);
+ }
+ return ret;
+}
+
+#endif /* _WIN32 */
diff --git a/engine-ocean/External/glew/auto/src/glew_str_wgl.c b/engine-ocean/External/glew/auto/src/glew_str_wgl.c
new file mode 100644
index 0000000..db67b51
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_str_wgl.c
@@ -0,0 +1,17 @@
+ }
+ ret = (len == 0);
+ }
+ return ret;
+}
+
+#if defined(_WIN32) && !defined(GLEW_EGL) && !defined(GLEW_OSMESA)
+
+GLboolean GLEWAPIENTRY wglewIsSupported (const char* name)
+{
+ const GLubyte* pos = (const GLubyte*)name;
+ GLuint len = _glewStrLen(pos);
+ GLboolean ret = GL_TRUE;
+ while (ret && len > 0)
+ {
+ if (_glewStrSame1(&pos, &len, (const GLubyte*)"WGL_", 4))
+ {
diff --git a/engine-ocean/External/glew/auto/src/glew_tail.h b/engine-ocean/External/glew/auto/src/glew_tail.h
new file mode 100644
index 0000000..65c449a
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glew_tail.h
@@ -0,0 +1,69 @@
+/* ------------------------------------------------------------------------- */
+
+/* error codes */
+#define GLEW_OK 0
+#define GLEW_NO_ERROR 0
+#define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */
+#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */
+#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */
+#define GLEW_ERROR_NO_GLX_DISPLAY 4 /* Need GLX display for GLX support */
+
+/* string codes */
+#define GLEW_VERSION 1
+#define GLEW_VERSION_MAJOR 2
+#define GLEW_VERSION_MINOR 3
+#define GLEW_VERSION_MICRO 4
+
+/* ------------------------------------------------------------------------- */
+
+/* GLEW version info */
+
+/*
+VERSION GLEW_VERSION_STRING
+VERSION_MAJOR GLEW_VERSION_MAJOR_STRING
+VERSION_MINOR GLEW_VERSION_MINOR_STRING
+VERSION_MICRO GLEW_VERSION_MICRO_STRING
+*/
+
+/* API */
+GLEWAPI GLenum GLEWAPIENTRY glewInit (void);
+GLEWAPI GLenum GLEWAPIENTRY glewContextInit (void);
+GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name);
+#define glewIsExtensionSupported(x) glewIsSupported(x)
+
+#ifndef GLEW_GET_VAR
+#define GLEW_GET_VAR(x) (*(const GLboolean*)&x)
+#endif
+
+#ifndef GLEW_GET_FUN
+#define GLEW_GET_FUN(x) x
+#endif
+
+GLEWAPI GLboolean glewExperimental;
+GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name);
+GLEWAPI const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error);
+GLEWAPI const GLubyte * GLEWAPIENTRY glewGetString (GLenum name);
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef GLEW_APIENTRY_DEFINED
+#undef GLEW_APIENTRY_DEFINED
+#undef APIENTRY
+#endif
+
+#ifdef GLEW_CALLBACK_DEFINED
+#undef GLEW_CALLBACK_DEFINED
+#undef CALLBACK
+#endif
+
+#ifdef GLEW_WINGDIAPI_DEFINED
+#undef GLEW_WINGDIAPI_DEFINED
+#undef WINGDIAPI
+#endif
+
+#undef GLAPI
+/* #undef GLEWAPI */
+
+#endif /* __glew_h__ */
diff --git a/engine-ocean/External/glew/auto/src/glewinfo_egl.c b/engine-ocean/External/glew/auto/src/glewinfo_egl.c
new file mode 100644
index 0000000..877e722
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glewinfo_egl.c
@@ -0,0 +1,6 @@
+}
+
+#elif defined(GLEW_EGL)
+
+static void eglewInfo ()
+{
diff --git a/engine-ocean/External/glew/auto/src/glewinfo_gl.c b/engine-ocean/External/glew/auto/src/glewinfo_gl.c
new file mode 100644
index 0000000..9d7835d
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glewinfo_gl.c
@@ -0,0 +1,7 @@
+/* ------------------------------------------------------------------------ */
+
+static void glewInfo (void)
+{
+#ifdef GL_VERSION_1_1
+ _glewInfo_GL_VERSION_1_1();
+#endif /* GL_VERSION_1_1 */
diff --git a/engine-ocean/External/glew/auto/src/glewinfo_glx.c b/engine-ocean/External/glew/auto/src/glewinfo_glx.c
new file mode 100644
index 0000000..e60b549
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glewinfo_glx.c
@@ -0,0 +1,6 @@
+}
+
+#elif !defined(GLEW_EGL) && !defined(GLEW_OSMESA) /* _UNIX */
+
+static void glxewInfo ()
+{
diff --git a/engine-ocean/External/glew/auto/src/glewinfo_head.c b/engine-ocean/External/glew/auto/src/glewinfo_head.c
new file mode 100644
index 0000000..79ed785
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glewinfo_head.c
@@ -0,0 +1,96 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <GL/glew.h>
+#if defined(GLEW_EGL)
+#include <GL/eglew.h>
+#elif defined(GLEW_OSMESA)
+#define GLAPI extern
+#include <GL/osmesa.h>
+#elif defined(_WIN32)
+#include <GL/wglew.h>
+#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
+#include <GL/glxew.h>
+#endif
+
+#if defined(__APPLE__)
+#include <AvailabilityMacros.h>
+#endif
+
+#ifdef GLEW_REGAL
+#include <GL/Regal.h>
+#endif
+
+static FILE* f;
+
+/* Command-line parameters for GL context creation */
+
+struct createParams
+{
+#if defined(GLEW_OSMESA)
+#elif defined(GLEW_EGL)
+#elif defined(_WIN32)
+ int pixelformat;
+#elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
+ const char* display;
+ int visual;
+#endif
+ int major, minor; /* GL context version number */
+
+ /* https://www.opengl.org/registry/specs/ARB/glx_create_context.txt */
+ int profile; /* core = 1, compatibility = 2 */
+ int flags; /* debug = 1, forward compatible = 2 */
+
+ /* GLEW experimental mode */
+ int experimental;
+};
+
+GLboolean glewCreateContext (struct createParams *params);
+
+GLboolean glewParseArgs (int argc, char** argv, struct createParams *);
+
+void glewDestroyContext ();
+
+/* ------------------------------------------------------------------------- */
+
+static GLboolean glewPrintExt (const char* name, GLboolean def1, GLboolean def2, GLboolean def3)
+{
+ unsigned int i;
+ fprintf(f, "\n%s:", name);
+ for (i=0; i<62-strlen(name); i++) fprintf(f, " ");
+ fprintf(f, "%s ", def1 ? "OK" : "MISSING");
+ if (def1 != def2)
+ fprintf(f, "[%s] ", def2 ? "OK" : "MISSING");
+ if (def1 != def3)
+ fprintf(f, "[%s]\n", def3 ? "OK" : "MISSING");
+ else
+ fprintf(f, "\n");
+ for (i=0; i<strlen(name)+1; i++) fprintf(f, "-");
+ fprintf(f, "\n");
+ fflush(f);
+ return def1 || def2 || def3 || glewExperimental; /* Enable per-function info too? */
+}
+
+static void glewInfoFunc (GLboolean fi, const char* name, GLint undefined)
+{
+ unsigned int i;
+ if (fi)
+ {
+ fprintf(f, " %s:", name);
+ for (i=0; i<60-strlen(name); i++) fprintf(f, " ");
+ fprintf(f, "%s\n", undefined ? "MISSING" : "OK");
+ fflush(f);
+ }
+}
+
+/* ----------------------------- GL_VERSION_1_1 ---------------------------- */
+
+#ifdef GL_VERSION_1_1
+
+static void _glewInfo_GL_VERSION_1_1 (void)
+{
+ glewPrintExt("GL_VERSION_1_1", GLEW_VERSION_1_1, GLEW_VERSION_1_1, GLEW_VERSION_1_1);
+}
+
+#endif /* GL_VERSION_1_1 */
+
diff --git a/engine-ocean/External/glew/auto/src/glewinfo_tail.c b/engine-ocean/External/glew/auto/src/glewinfo_tail.c
new file mode 100644
index 0000000..fe51168
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glewinfo_tail.c
@@ -0,0 +1,609 @@
+}
+
+#endif /* _WIN32 */
+
+/* ------------------------------------------------------------------------ */
+
+int main (int argc, char** argv)
+{
+ GLuint err;
+ struct createParams params =
+ {
+#if defined(GLEW_OSMESA)
+#elif defined(GLEW_EGL)
+#elif defined(_WIN32)
+ -1, /* pixelformat */
+#elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+ "", /* display */
+ -1, /* visual */
+#endif
+ 0, /* major */
+ 0, /* minor */
+ 0, /* profile mask */
+ 0, /* flags */
+ 0 /* experimental */
+ };
+
+#if defined(GLEW_EGL)
+ typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGPROC) (GLenum name);
+ PFNGLGETSTRINGPROC getString;
+#endif
+
+ if (glewParseArgs(argc-1, argv+1, &params))
+ {
+ fprintf(stderr, "Usage: glewinfo "
+#if defined(GLEW_OSMESA)
+#elif defined(GLEW_EGL)
+#elif defined(_WIN32)
+ "[-pf <pixelformat>] "
+#elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+ "[-display <display>] "
+ "[-visual <visual id>] "
+#endif
+ "[-version <OpenGL version>] "
+ "[-profile core|compatibility] "
+ "[-flag debug|forward] "
+ "[-experimental]"
+ "\n");
+ return 1;
+ }
+
+ if (GL_TRUE == glewCreateContext(&params))
+ {
+ fprintf(stderr, "Error: glewCreateContext failed\n");
+ glewDestroyContext();
+ return 1;
+ }
+ glewExperimental = params.experimental ? GL_TRUE : GL_FALSE;
+ err = glewInit();
+ if (GLEW_OK != err)
+ {
+ fprintf(stderr, "Error [main]: glewInit failed: %s\n", glewGetErrorString(err));
+ glewDestroyContext();
+ return 1;
+ }
+
+#if defined(GLEW_EGL)
+ getString = (PFNGLGETSTRINGPROC) eglGetProcAddress("glGetString");
+ if (!getString)
+ {
+ fprintf(stderr, "Error: eglGetProcAddress failed to fetch glGetString\n");
+ glewDestroyContext();
+ return 1;
+ }
+#endif
+
+#if defined(_WIN32)
+#if defined(_MSC_VER) && (_MSC_VER >= 1400)
+ if (fopen_s(&f, "glewinfo.txt", "w") != 0)
+ f = stdout;
+#else
+ f = fopen("glewinfo.txt", "w");
+#endif
+ if (f == NULL) f = stdout;
+#else
+ f = stdout;
+#endif
+ fprintf(f, "---------------------------\n");
+ fprintf(f, " GLEW Extension Info\n");
+ fprintf(f, "---------------------------\n\n");
+ fprintf(f, "GLEW version %s\n", glewGetString(GLEW_VERSION));
+#if defined(GLEW_OSMESA)
+#elif defined(GLEW_EGL)
+#elif defined(_WIN32)
+ fprintf(f, "Reporting capabilities of pixelformat %d\n", params.pixelformat);
+#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+ fprintf(f, "Reporting capabilities of display %s, visual 0x%x\n",
+ params.display == NULL ? getenv("DISPLAY") : params.display, params.visual);
+#endif
+#if defined(GLEW_EGL)
+ fprintf(f, "Running on a %s from %s\n",
+ getString(GL_RENDERER), getString(GL_VENDOR));
+ fprintf(f, "OpenGL version %s is supported\n", getString(GL_VERSION));
+#else
+ fprintf(f, "Running on a %s from %s\n",
+ glGetString(GL_RENDERER), glGetString(GL_VENDOR));
+ fprintf(f, "OpenGL version %s is supported\n", glGetString(GL_VERSION));
+#endif
+ glewInfo();
+#if defined(GLEW_OSMESA)
+#elif defined(GLEW_EGL)
+ eglewInfo();
+#elif defined(_WIN32)
+ wglewInfo();
+#else
+ glxewInfo();
+#endif
+ if (f != stdout) fclose(f);
+ glewDestroyContext();
+ return 0;
+}
+
+/* ------------------------------------------------------------------------ */
+
+GLboolean glewParseArgs (int argc, char** argv, struct createParams *params)
+{
+ int p = 0;
+ while (p < argc)
+ {
+ if (!strcmp(argv[p], "-version"))
+ {
+ if (++p >= argc) return GL_TRUE;
+#if defined(__STDC_LIB_EXT1__) || (defined(_MSC_VER) && (_MSC_VER >= 1400))
+ if (sscanf_s(argv[p++], "%d.%d", &params->major, &params->minor) != 2) return GL_TRUE;
+#else
+ if (sscanf(argv[p++], "%d.%d", &params->major, &params->minor) != 2) return GL_TRUE;
+#endif
+ }
+ else if (!strcmp(argv[p], "-profile"))
+ {
+ if (++p >= argc) return GL_TRUE;
+ if (strcmp("core", argv[p]) == 0) params->profile |= 1;
+ else if (strcmp("compatibility",argv[p]) == 0) params->profile |= 2;
+ else return GL_TRUE;
+ ++p;
+ }
+ else if (!strcmp(argv[p], "-flag"))
+ {
+ if (++p >= argc) return GL_TRUE;
+ if (strcmp("debug", argv[p]) == 0) params->flags |= 1;
+ else if (strcmp("forward",argv[p]) == 0) params->flags |= 2;
+ else return GL_TRUE;
+ ++p;
+ }
+#if defined(GLEW_OSMESA)
+#elif defined(GLEW_EGL)
+#elif defined(_WIN32)
+ else if (!strcmp(argv[p], "-pf") || !strcmp(argv[p], "-pixelformat"))
+ {
+ if (++p >= argc) return GL_TRUE;
+ params->pixelformat = strtol(argv[p++], NULL, 0);
+ }
+#elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
+ else if (!strcmp(argv[p], "-display"))
+ {
+ if (++p >= argc) return GL_TRUE;
+ params->display = argv[p++];
+ }
+ else if (!strcmp(argv[p], "-visual"))
+ {
+ if (++p >= argc) return GL_TRUE;
+ params->visual = (int)strtol(argv[p++], NULL, 0);
+ }
+#endif
+ else if (!strcmp(argv[p], "-experimental"))
+ {
+ params->experimental = 1;
+ ++p;
+ }
+ else
+ return GL_TRUE;
+ }
+ return GL_FALSE;
+}
+
+/* ------------------------------------------------------------------------ */
+
+#if defined(GLEW_EGL)
+EGLDisplay display;
+EGLContext ctx;
+
+/* See: http://stackoverflow.com/questions/12662227/opengl-es2-0-offscreen-context-for-fbo-rendering */
+
+GLboolean glewCreateContext (struct createParams *params)
+{
+ EGLDeviceEXT devices[1];
+ EGLint numDevices;
+ EGLSurface surface;
+ EGLint majorVersion, minorVersion;
+ EGLint configAttribs[] = {
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
+ EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
+ EGL_NONE
+ };
+ static const EGLint contextAttribs[] = {
+ EGL_CONTEXT_CLIENT_VERSION, 2,
+ EGL_NONE
+ };
+ static const EGLint pBufferAttribs[] = {
+ EGL_WIDTH, 128,
+ EGL_HEIGHT, 128,
+ EGL_NONE
+ };
+ EGLConfig config;
+ EGLint numConfig;
+ EGLBoolean pBuffer;
+
+ PFNEGLQUERYDEVICESEXTPROC queryDevices = NULL;
+ PFNEGLGETPLATFORMDISPLAYEXTPROC getPlatformDisplay = NULL;
+ PFNEGLGETERRORPROC getError = NULL;
+ PFNEGLGETDISPLAYPROC getDisplay = NULL;
+ PFNEGLINITIALIZEPROC initialize = NULL;
+ PFNEGLBINDAPIPROC bindAPI = NULL;
+ PFNEGLCHOOSECONFIGPROC chooseConfig = NULL;
+ PFNEGLCREATEWINDOWSURFACEPROC createWindowSurface = NULL;
+ PFNEGLCREATECONTEXTPROC createContext = NULL;
+ PFNEGLMAKECURRENTPROC makeCurrent = NULL;
+ PFNEGLCREATEPBUFFERSURFACEPROC createPbufferSurface = NULL;
+
+ /* Load necessary entry points */
+ queryDevices = (PFNEGLQUERYDEVICESEXTPROC) eglGetProcAddress("eglQueryDevicesEXT");
+ getPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYEXTPROC) eglGetProcAddress("eglGetPlatformDisplayEXT");
+ getError = (PFNEGLGETERRORPROC) eglGetProcAddress("eglGetError");
+ getDisplay = (PFNEGLGETDISPLAYPROC) eglGetProcAddress("eglGetDisplay");
+ initialize = (PFNEGLINITIALIZEPROC) eglGetProcAddress("eglInitialize");
+ bindAPI = (PFNEGLBINDAPIPROC) eglGetProcAddress("eglBindAPI");
+ chooseConfig = (PFNEGLCHOOSECONFIGPROC) eglGetProcAddress("eglChooseConfig");
+ createWindowSurface = (PFNEGLCREATEWINDOWSURFACEPROC) eglGetProcAddress("eglCreateWindowSurface");
+ createPbufferSurface = (PFNEGLCREATEPBUFFERSURFACEPROC) eglGetProcAddress("eglCreatePbufferSurface");
+ createContext = (PFNEGLCREATECONTEXTPROC) eglGetProcAddress("eglCreateContext");
+ makeCurrent = (PFNEGLMAKECURRENTPROC) eglGetProcAddress("eglMakeCurrent");
+ if (!getError || !getDisplay || !initialize || !bindAPI || !chooseConfig || !createWindowSurface || !createContext || !makeCurrent)
+ return GL_TRUE;
+
+ pBuffer = 0;
+ display = EGL_NO_DISPLAY;
+ if (queryDevices && getPlatformDisplay)
+ {
+ queryDevices(1, devices, &numDevices);
+ if (numDevices==1)
+ {
+ /* Nvidia EGL doesn't need X11 for p-buffer surface */
+ display = getPlatformDisplay(EGL_PLATFORM_DEVICE_EXT, devices[0], 0);
+ configAttribs[1] = EGL_PBUFFER_BIT;
+ pBuffer = 1;
+ }
+ }
+ if (display==EGL_NO_DISPLAY)
+ {
+ /* Fall-back to X11 surface, works on Mesa */
+ display = getDisplay(EGL_DEFAULT_DISPLAY);
+ }
+ if (display == EGL_NO_DISPLAY)
+ return GL_TRUE;
+
+ eglewInit(display);
+
+ if (bindAPI(EGL_OPENGL_API) != EGL_TRUE)
+ return GL_TRUE;
+
+ if (chooseConfig(display, configAttribs, &config, 1, &numConfig) != EGL_TRUE || (numConfig != 1))
+ return GL_TRUE;
+
+ ctx = createContext(display, config, EGL_NO_CONTEXT, pBuffer ? contextAttribs : NULL);
+ if (NULL == ctx)
+ return GL_TRUE;
+
+ surface = EGL_NO_SURFACE;
+ /* Create a p-buffer surface if possible */
+ if (pBuffer && createPbufferSurface)
+ {
+ surface = createPbufferSurface(display, config, pBufferAttribs);
+ }
+ /* Create a generic surface without a native window, if necessary */
+ if (surface==EGL_NO_SURFACE)
+ {
+ surface = createWindowSurface(display, config, (EGLNativeWindowType) NULL, NULL);
+ }
+#if 0
+ if (surface == EGL_NO_SURFACE)
+ return GL_TRUE;
+#endif
+
+ if (makeCurrent(display, surface, surface, ctx) != EGL_TRUE)
+ return GL_TRUE;
+
+ return GL_FALSE;
+}
+
+void glewDestroyContext ()
+{
+ if (NULL != ctx) eglDestroyContext(display, ctx);
+}
+
+#elif defined(GLEW_OSMESA)
+OSMesaContext ctx;
+
+static const GLint osmFormat = GL_UNSIGNED_BYTE;
+static const GLint osmWidth = 640;
+static const GLint osmHeight = 480;
+static GLubyte *osmPixels = NULL;
+
+GLboolean glewCreateContext (struct createParams *params)
+{
+ ctx = OSMesaCreateContext(OSMESA_RGBA, NULL);
+ if (NULL == ctx) return GL_TRUE;
+ if (NULL == osmPixels)
+ {
+ osmPixels = (GLubyte *) calloc(osmWidth*osmHeight*4, 1);
+ }
+ if (!OSMesaMakeCurrent(ctx, osmPixels, GL_UNSIGNED_BYTE, osmWidth, osmHeight))
+ {
+ return GL_TRUE;
+ }
+ return GL_FALSE;
+}
+
+void glewDestroyContext ()
+{
+ if (NULL != ctx) OSMesaDestroyContext(ctx);
+}
+
+#elif defined(_WIN32)
+
+HWND wnd = NULL;
+HDC dc = NULL;
+HGLRC rc = NULL;
+
+GLboolean glewCreateContext (struct createParams* params)
+{
+ WNDCLASS wc;
+ PIXELFORMATDESCRIPTOR pfd;
+ /* register window class */
+ ZeroMemory(&wc, sizeof(WNDCLASS));
+ wc.hInstance = GetModuleHandle(NULL);
+ wc.lpfnWndProc = DefWindowProc;
+ wc.lpszClassName = "GLEW";
+ if (0 == RegisterClass(&wc)) return GL_TRUE;
+ /* create window */
+ wnd = CreateWindow("GLEW", "GLEW", 0, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
+ CW_USEDEFAULT, NULL, NULL, GetModuleHandle(NULL), NULL);
+ if (NULL == wnd) return GL_TRUE;
+ /* get the device context */
+ dc = GetDC(wnd);
+ if (NULL == dc) return GL_TRUE;
+ /* find pixel format */
+ ZeroMemory(&pfd, sizeof(PIXELFORMATDESCRIPTOR));
+ if (params->pixelformat == -1) /* find default */
+ {
+ pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
+ pfd.nVersion = 1;
+ pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL;
+ params->pixelformat = ChoosePixelFormat(dc, &pfd);
+ if (params->pixelformat == 0) return GL_TRUE;
+ }
+ /* set the pixel format for the dc */
+ if (FALSE == SetPixelFormat(dc, params->pixelformat, &pfd)) return GL_TRUE;
+ /* create rendering context */
+ rc = wglCreateContext(dc);
+ if (NULL == rc) return GL_TRUE;
+ if (FALSE == wglMakeCurrent(dc, rc)) return GL_TRUE;
+ if (params->major || params->profile || params->flags)
+ {
+ HGLRC oldRC = rc;
+ int contextAttrs[20];
+ int i;
+
+ wglewInit();
+
+ /* Intel HD 3000 has WGL_ARB_create_context, but not WGL_ARB_create_context_profile */
+ if (!wglewGetExtension("WGL_ARB_create_context"))
+ return GL_TRUE;
+
+ i = 0;
+ if (params->major)
+ {
+ contextAttrs[i++] = WGL_CONTEXT_MAJOR_VERSION_ARB;
+ contextAttrs[i++] = params->major;
+ contextAttrs[i++] = WGL_CONTEXT_MINOR_VERSION_ARB;
+ contextAttrs[i++] = params->minor;
+ }
+ if (params->profile)
+ {
+ contextAttrs[i++] = WGL_CONTEXT_PROFILE_MASK_ARB;
+ contextAttrs[i++] = params->profile;
+ }
+ if (params->flags)
+ {
+ contextAttrs[i++] = WGL_CONTEXT_FLAGS_ARB;
+ contextAttrs[i++] = params->flags;
+ }
+ contextAttrs[i++] = 0;
+ rc = wglCreateContextAttribsARB(dc, 0, contextAttrs);
+
+ if (NULL == rc) return GL_TRUE;
+ if (!wglMakeCurrent(dc, rc)) return GL_TRUE;
+
+ wglDeleteContext(oldRC);
+ }
+ return GL_FALSE;
+}
+
+void glewDestroyContext ()
+{
+ if (NULL != rc) wglMakeCurrent(NULL, NULL);
+ if (NULL != rc) wglDeleteContext(rc);
+ if (NULL != wnd && NULL != dc) ReleaseDC(wnd, dc);
+ if (NULL != wnd) DestroyWindow(wnd);
+ UnregisterClass("GLEW", GetModuleHandle(NULL));
+}
+
+/* ------------------------------------------------------------------------ */
+
+#elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
+
+#include <OpenGL/OpenGL.h>
+#include <OpenGL/CGLTypes.h>
+
+CGLContextObj ctx, octx;
+
+GLboolean glewCreateContext (struct createParams *params)
+{
+ CGLPixelFormatAttribute contextAttrs[20];
+ int i;
+ CGLPixelFormatObj pf;
+ GLint npix;
+ CGLError error;
+
+ i = 0;
+ contextAttrs[i++] = kCGLPFAAccelerated; /* No software rendering */
+
+ /* MAC_OS_X_VERSION_10_7 == 1070 */
+ #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
+ if (params->profile & GL_CONTEXT_CORE_PROFILE_BIT)
+ {
+ if ((params->major==3 && params->minor>=2) || params->major>3)
+ {
+ contextAttrs[i++] = kCGLPFAOpenGLProfile; /* OSX 10.7 Lion onwards */
+ contextAttrs[i++] = (CGLPixelFormatAttribute) kCGLOGLPVersion_3_2_Core; /* 3.2 Core Context */
+ }
+ }
+ #endif
+
+ contextAttrs[i++] = 0;
+
+ error = CGLChoosePixelFormat(contextAttrs, &pf, &npix);
+ if (error) return GL_TRUE;
+ error = CGLCreateContext(pf, NULL, &ctx);
+ if (error) return GL_TRUE;
+ CGLReleasePixelFormat(pf);
+ octx = CGLGetCurrentContext();
+ error = CGLSetCurrentContext(ctx);
+ if (error) return GL_TRUE;
+ /* Needed for Regal on the Mac */
+ #if defined(GLEW_REGAL) && defined(__APPLE__)
+ RegalMakeCurrent(ctx);
+ #endif
+ return GL_FALSE;
+}
+
+void glewDestroyContext ()
+{
+ CGLSetCurrentContext(octx);
+ CGLReleaseContext(ctx);
+}
+
+/* ------------------------------------------------------------------------ */
+
+#elif defined(__HAIKU__)
+
+GLboolean glewCreateContext (struct createParams *params)
+{
+ /* TODO: Haiku: We need to call C++ code here */
+ return GL_FALSE;
+}
+
+void glewDestroyContext ()
+{
+ /* TODO: Haiku: We need to call C++ code here */
+}
+
+/* ------------------------------------------------------------------------ */
+
+#else /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */
+
+Display* dpy = NULL;
+XVisualInfo* vi = NULL;
+XVisualInfo* vis = NULL;
+GLXContext ctx = NULL;
+Window wnd = 0;
+Colormap cmap = 0;
+
+GLboolean glewCreateContext (struct createParams *params)
+{
+ int attrib[] = { GLX_RGBA, GLX_DOUBLEBUFFER, None };
+ int erb, evb;
+ XSetWindowAttributes swa;
+ /* open display */
+ dpy = XOpenDisplay(params->display);
+ if (NULL == dpy) return GL_TRUE;
+ /* query for glx */
+ if (!glXQueryExtension(dpy, &erb, &evb)) return GL_TRUE;
+ /* choose visual */
+ if (params->visual == -1)
+ {
+ vi = glXChooseVisual(dpy, DefaultScreen(dpy), attrib);
+ if (NULL == vi) return GL_TRUE;
+ params->visual = (int)XVisualIDFromVisual(vi->visual);
+ }
+ else
+ {
+ int n_vis, i;
+ vis = XGetVisualInfo(dpy, 0, NULL, &n_vis);
+ for (i=0; i<n_vis; i++)
+ {
+ if ((int)XVisualIDFromVisual(vis[i].visual) == params->visual)
+ vi = &vis[i];
+ }
+ if (vi == NULL) return GL_TRUE;
+ }
+ /* create context */
+ ctx = glXCreateContext(dpy, vi, None, True);
+ if (NULL == ctx) return GL_TRUE;
+ /* create window */
+ /*wnd = XCreateSimpleWindow(dpy, RootWindow(dpy, vi->screen), 0, 0, 1, 1, 1, 0, 0);*/
+ cmap = XCreateColormap(dpy, RootWindow(dpy, vi->screen), vi->visual, AllocNone);
+ swa.border_pixel = 0;
+ swa.colormap = cmap;
+ wnd = XCreateWindow(dpy, RootWindow(dpy, vi->screen),
+ 0, 0, 1, 1, 0, vi->depth, InputOutput, vi->visual,
+ CWBorderPixel | CWColormap, &swa);
+ /* make context current */
+ if (!glXMakeCurrent(dpy, wnd, ctx)) return GL_TRUE;
+ if (params->major || params->profile || params->flags)
+ {
+ GLXContext oldCtx = ctx;
+ GLXFBConfig *FBConfigs;
+ int FBConfigAttrs[] = { GLX_FBCONFIG_ID, 0, None };
+ int contextAttrs[20];
+ int nelems, i;
+
+ glxewInit();
+
+ if (!glxewGetExtension("GLX_ARB_create_context"))
+ return GL_TRUE;
+
+ if (glXQueryContext(dpy, oldCtx, GLX_FBCONFIG_ID, &FBConfigAttrs[1]))
+ return GL_TRUE;
+ FBConfigs = glXChooseFBConfig(dpy, vi->screen, FBConfigAttrs, &nelems);
+
+ if (nelems < 1)
+ return GL_TRUE;
+
+ i = 0;
+ if (params->major)
+ {
+ contextAttrs[i++] = GLX_CONTEXT_MAJOR_VERSION_ARB;
+ contextAttrs[i++] = params->major;
+ contextAttrs[i++] = GLX_CONTEXT_MINOR_VERSION_ARB;
+ contextAttrs[i++] = params->minor;
+ }
+ if (params->profile)
+ {
+ contextAttrs[i++] = GLX_CONTEXT_PROFILE_MASK_ARB;
+ contextAttrs[i++] = params->profile;
+ }
+ if (params->flags)
+ {
+ contextAttrs[i++] = GLX_CONTEXT_FLAGS_ARB;
+ contextAttrs[i++] = params->flags;
+ }
+ contextAttrs[i++] = None;
+ ctx = glXCreateContextAttribsARB(dpy, *FBConfigs, NULL, True, contextAttrs);
+
+ if (NULL == ctx) return GL_TRUE;
+ if (!glXMakeCurrent(dpy, wnd, ctx)) return GL_TRUE;
+
+ glXDestroyContext(dpy, oldCtx);
+
+ XFree(FBConfigs);
+ }
+ return GL_FALSE;
+}
+
+void glewDestroyContext ()
+{
+ if (NULL != dpy && NULL != ctx) glXDestroyContext(dpy, ctx);
+ if (NULL != dpy && 0 != wnd) XDestroyWindow(dpy, wnd);
+ if (NULL != dpy && 0 != cmap) XFreeColormap(dpy, cmap);
+ if (NULL != vis)
+ XFree(vis);
+ else if (NULL != vi)
+ XFree(vi);
+ if (NULL != dpy) XCloseDisplay(dpy);
+}
+
+#endif /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */
diff --git a/engine-ocean/External/glew/auto/src/glewinfo_wgl.c b/engine-ocean/External/glew/auto/src/glewinfo_wgl.c
new file mode 100644
index 0000000..9405667
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glewinfo_wgl.c
@@ -0,0 +1,8 @@
+}
+
+/* ------------------------------------------------------------------------ */
+
+#if defined(_WIN32) && !defined(GLEW_EGL) && !defined(GLEW_OSMESA)
+
+static void wglewInfo ()
+{
diff --git a/engine-ocean/External/glew/auto/src/glxew_head.h b/engine-ocean/External/glew/auto/src/glxew_head.h
new file mode 100644
index 0000000..414dc1b
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glxew_head.h
@@ -0,0 +1,111 @@
+#ifndef __glxew_h__
+#define __glxew_h__
+#define __GLXEW_H__
+
+#ifdef __glxext_h_
+#error glxext.h included before glxew.h
+#endif
+
+#if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__)
+#error glx.h included before glxew.h
+#endif
+
+#define __glxext_h_
+
+#define GLX_H
+#define __GLX_glx_h__
+#define __glx_h__
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xmd.h>
+
+#ifndef GLEW_INCLUDE
+# include <GL/glew.h>
+#else
+# include GLEW_INCLUDE
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ---------------------------- GLX_VERSION_1_0 --------------------------- */
+
+#ifndef GLX_VERSION_1_0
+#define GLX_VERSION_1_0 1
+
+#define GLX_USE_GL 1
+#define GLX_BUFFER_SIZE 2
+#define GLX_LEVEL 3
+#define GLX_RGBA 4
+#define GLX_DOUBLEBUFFER 5
+#define GLX_STEREO 6
+#define GLX_AUX_BUFFERS 7
+#define GLX_RED_SIZE 8
+#define GLX_GREEN_SIZE 9
+#define GLX_BLUE_SIZE 10
+#define GLX_ALPHA_SIZE 11
+#define GLX_DEPTH_SIZE 12
+#define GLX_STENCIL_SIZE 13
+#define GLX_ACCUM_RED_SIZE 14
+#define GLX_ACCUM_GREEN_SIZE 15
+#define GLX_ACCUM_BLUE_SIZE 16
+#define GLX_ACCUM_ALPHA_SIZE 17
+#define GLX_BAD_SCREEN 1
+#define GLX_BAD_ATTRIBUTE 2
+#define GLX_NO_EXTENSION 3
+#define GLX_BAD_VISUAL 4
+#define GLX_BAD_CONTEXT 5
+#define GLX_BAD_VALUE 6
+#define GLX_BAD_ENUM 7
+
+typedef XID GLXDrawable;
+typedef XID GLXPixmap;
+#ifdef __sun
+typedef struct __glXContextRec *GLXContext;
+#else
+typedef struct __GLXcontextRec *GLXContext;
+#endif
+
+typedef unsigned int GLXVideoDeviceNV;
+
+extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase);
+extern Bool glXQueryVersion (Display *dpy, int *major, int *minor);
+extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value);
+extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList);
+extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap);
+extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix);
+extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
+extern void glXDestroyContext (Display *dpy, GLXContext ctx);
+extern Bool glXIsDirect (Display *dpy, GLXContext ctx);
+extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask);
+extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx);
+extern GLXContext glXGetCurrentContext (void);
+extern GLXDrawable glXGetCurrentDrawable (void);
+extern void glXWaitGL (void);
+extern void glXWaitX (void);
+extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable);
+extern void glXUseXFont (Font font, int first, int count, int listBase);
+
+#define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0)
+
+#endif /* GLX_VERSION_1_0 */
+
+/* ---------------------------- GLX_VERSION_1_1 --------------------------- */
+
+#ifndef GLX_VERSION_1_1
+#define GLX_VERSION_1_1
+
+#define GLX_VENDOR 0x1
+#define GLX_VERSION 0x2
+#define GLX_EXTENSIONS 0x3
+
+extern const char* glXQueryExtensionsString (Display *dpy, int screen);
+extern const char* glXGetClientString (Display *dpy, int name);
+extern const char* glXQueryServerString (Display *dpy, int screen, int name);
+
+#define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1)
+
+#endif /* GLX_VERSION_1_1 */
+
diff --git a/engine-ocean/External/glew/auto/src/glxew_mid.h b/engine-ocean/External/glew/auto/src/glxew_mid.h
new file mode 100644
index 0000000..7fcf5d6
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glxew_mid.h
@@ -0,0 +1,4 @@
+/* ------------------------------------------------------------------------- */
+
+#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT
+#define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT
diff --git a/engine-ocean/External/glew/auto/src/glxew_tail.h b/engine-ocean/External/glew/auto/src/glxew_tail.h
new file mode 100644
index 0000000..05ff1b1
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/glxew_tail.h
@@ -0,0 +1,20 @@
+/* ------------------------------------------------------------------------ */
+
+GLEWAPI GLenum GLEWAPIENTRY glxewInit ();
+GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name);
+
+#ifndef GLXEW_GET_VAR
+#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
+#endif
+
+#ifndef GLXEW_GET_FUN
+#define GLXEW_GET_FUN(x) x
+#endif
+
+GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __glxew_h__ */
diff --git a/engine-ocean/External/glew/auto/src/header.html b/engine-ocean/External/glew/auto/src/header.html
new file mode 100644
index 0000000..3af7255
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/header.html
@@ -0,0 +1,96 @@
+<!-- begin header.html -->
+<!--
+The OpenGL Extension Wrangler Library
+Copyright (C) 2008-2019, Nigel Stewart <nigels[]users sourceforge net>
+Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
+Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
+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.
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html/4/loose.dtd">
+<html>
+<head>
+<title>GLEW: The OpenGL Extension Wrangler Library</title>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<link href="glew.css" type="text/css" rel="stylesheet">
+</head>
+<body bgcolor="#fff0d0">
+<table border="0" width="100%" cellpadding="12" cellspacing="8" style="height:100%">
+<tr>
+<td bgcolor="#ffffff" align="left" valign="top" width="200">
+<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
+<tr>
+<td valign="top">
+
+<table border="0" width="100%" cellpadding="0" cellspacing="0" align="left">
+<tr><td align="center"><i>Latest Release: <a href="https://github.com/nigels-com/glew/releases/tag/glew-2.2.0">2.2.0</a></i></td></tr>
+<tr><td align="center"><br></td></tr>
+<tr><td align="center"><img src="./glew.png" alt="GLEW Logo" width="97" height="75"></td></tr>
+<tr><td align="center"><br></td></tr>
+<tr><td align="center">
+<table border="0" cellpadding="0" cellspacing="0" align="center">
+<tr><td align="center"><a href="index.html">Download</a></td></tr>
+<tr><td align="center"><a href="basic.html">Usage</a></td></tr>
+<tr><td align="center"><a href="build.html">Building</a></td></tr>
+<tr><td align="center"><a href="install.html">Installation</a></td></tr>
+<tr><td align="center"><a href="advanced.html">Source Generation</a></td></tr>
+<tr><td align="center"><a href="log.html">Change Log</a></td></tr>
+<tr><td align="center"><br></tr>
+<tr><td align="center"><a href="https://github.com/nigels-com/glew">GitHub</a></td></tr>
+<tr><td align="center"><a href="https://github.com/nigels-com/glew/issues">Issues</a></td></tr>
+<tr><td align="center"><a href="https://github.com/nigels-com/glew/pulls">Pull Requests</a></td></tr>
+<tr><td align="center"><br></tr>
+<tr><td align="center"><a href="https://sourceforge.net/projects/glew">SourceForge Page</a></td></tr>
+</table>
+<tr><td align="center"><br></tr>
+</table>
+</td>
+</tr>
+<tr>
+
+<td valign="bottom">
+<table border="0" width="100%" cellpadding="5" cellspacing="0" align="left">
+<tr><td align="center"><i>Last Update: 03-15-20</i></td></tr>
+<tr><td align="center">
+ <a href="http://www.opengl.org"><img src="./ogl_sm.jpg" width="68" height="35" border="0" alt="OpenGL Logo"></a><br/>
+ <a href="https://github.com/nigels-com/glew"><img src="github.png" width="70" height="29" border="0" alt="GitHub Logo"></a><br/>
+ <a href="https://travis-ci.org/nigels-com/glew/builds"><img src="travis.png" width="114" height="25" border="0" alt="Travis Logo"></a><br/>
+ <a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=67586&amp;type=1" width="88" height="31" border="0" alt="SourceForge Logo"></a>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</td>
+
+<td bgcolor="#ffffff" align="left" valign="top">
+
+<h1>The OpenGL Extension Wrangler Library</h1>
+
+<!-- end header.html -->
+
+
diff --git a/engine-ocean/External/glew/auto/src/khronos_license.h b/engine-ocean/External/glew/auto/src/khronos_license.h
new file mode 100644
index 0000000..420cd72
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/khronos_license.h
@@ -0,0 +1,23 @@
+/*
+** 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/engine-ocean/External/glew/auto/src/mesa_license.h b/engine-ocean/External/glew/auto/src/mesa_license.h
new file mode 100644
index 0000000..3350cca
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/mesa_license.h
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
diff --git a/engine-ocean/External/glew/auto/src/wglew_head.h b/engine-ocean/External/glew/auto/src/wglew_head.h
new file mode 100644
index 0000000..df88503
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/wglew_head.h
@@ -0,0 +1,36 @@
+#ifndef __wglew_h__
+#define __wglew_h__
+#define __WGLEW_H__
+
+#ifdef __wglext_h_
+#error wglext.h included before wglew.h
+#endif
+
+#define __wglext_h_
+
+#if !defined(WINAPI)
+# ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN 1
+# endif
+#include <windows.h>
+# undef WIN32_LEAN_AND_MEAN
+#endif
+
+/*
+ * GLEW_STATIC needs to be set when using the static version.
+ * GLEW_BUILD is set when building the DLL version.
+ */
+#ifdef GLEW_STATIC
+# define GLEWAPI extern
+#else
+# ifdef GLEW_BUILD
+# define GLEWAPI extern __declspec(dllexport)
+# else
+# define GLEWAPI extern __declspec(dllimport)
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
diff --git a/engine-ocean/External/glew/auto/src/wglew_mid.h b/engine-ocean/External/glew/auto/src/wglew_mid.h
new file mode 100644
index 0000000..25b1037
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/wglew_mid.h
@@ -0,0 +1,4 @@
+/* ------------------------------------------------------------------------- */
+
+#define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT
+#define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT
diff --git a/engine-ocean/External/glew/auto/src/wglew_tail.h b/engine-ocean/External/glew/auto/src/wglew_tail.h
new file mode 100644
index 0000000..8971158
--- /dev/null
+++ b/engine-ocean/External/glew/auto/src/wglew_tail.h
@@ -0,0 +1,22 @@
+/* ------------------------------------------------------------------------- */
+
+GLEWAPI GLenum GLEWAPIENTRY wglewInit ();
+GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name);
+
+#ifndef WGLEW_GET_VAR
+#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
+#endif
+
+#ifndef WGLEW_GET_FUN
+#define WGLEW_GET_FUN(x) x
+#endif
+
+GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name);
+
+#ifdef __cplusplus
+}
+#endif
+
+#undef GLEWAPI
+
+#endif /* __wglew_h__ */