/**
 * Loader generated by glad 2.0.8 on Sat Apr 19 13:37:49 2025
 *
 * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
 *
 * Generator: C/C++
 * Specification: egl
 * Extensions: 166
 *
 * APIs:
 *  - egl=1.5
 *
 * Options:
 *  - ALIAS = True
 *  - DEBUG = False
 *  - HEADER_ONLY = True
 *  - LOADER = True
 *  - MX = False
 *  - ON_DEMAND = False
 *
 * Commandline:
 *    --api='egl=1.5' --extensions='EGL_ANDROID_GLES_layers,EGL_ANDROID_blob_cache,EGL_ANDROID_create_native_client_buffer,EGL_ANDROID_framebuffer_target,EGL_ANDROID_front_buffer_auto_refresh,EGL_ANDROID_get_frame_timestamps,EGL_ANDROID_get_native_client_buffer,EGL_ANDROID_image_native_buffer,EGL_ANDROID_native_fence_sync,EGL_ANDROID_presentation_time,EGL_ANDROID_recordable,EGL_ANDROID_telemetry_hint,EGL_ANGLE_d3d_share_handle_client_buffer,EGL_ANGLE_device_d3d,EGL_ANGLE_query_surface_pointer,EGL_ANGLE_surface_d3d_texture_2d_share_handle,EGL_ANGLE_sync_control_rate,EGL_ANGLE_window_fixed_size,EGL_ARM_image_format,EGL_ARM_implicit_external_sync,EGL_ARM_pixmap_multisample_discard,EGL_EXT_bind_to_front,EGL_EXT_buffer_age,EGL_EXT_client_extensions,EGL_EXT_client_sync,EGL_EXT_compositor,EGL_EXT_config_select_group,EGL_EXT_create_context_robustness,EGL_EXT_device_base,EGL_EXT_device_drm,EGL_EXT_device_drm_render_node,EGL_EXT_device_enumeration,EGL_EXT_device_openwf,EGL_EXT_device_persistent_id,EGL_EXT_device_query,EGL_EXT_device_query_name,EGL_EXT_display_alloc,EGL_EXT_explicit_device,EGL_EXT_gl_colorspace_bt2020_hlg,EGL_EXT_gl_colorspace_bt2020_linear,EGL_EXT_gl_colorspace_bt2020_pq,EGL_EXT_gl_colorspace_display_p3,EGL_EXT_gl_colorspace_display_p3_linear,EGL_EXT_gl_colorspace_display_p3_passthrough,EGL_EXT_gl_colorspace_scrgb,EGL_EXT_gl_colorspace_scrgb_linear,EGL_EXT_image_dma_buf_import,EGL_EXT_image_dma_buf_import_modifiers,EGL_EXT_image_gl_colorspace,EGL_EXT_image_implicit_sync_control,EGL_EXT_multiview_window,EGL_EXT_output_base,EGL_EXT_output_drm,EGL_EXT_output_openwf,EGL_EXT_pixel_format_float,EGL_EXT_platform_base,EGL_EXT_platform_device,EGL_EXT_platform_wayland,EGL_EXT_platform_x11,EGL_EXT_platform_xcb,EGL_EXT_present_opaque,EGL_EXT_protected_content,EGL_EXT_protected_surface,EGL_EXT_query_reset_notification_strategy,EGL_EXT_stream_consumer_egloutput,EGL_EXT_surface_CTA861_3_metadata,EGL_EXT_surface_SMPTE2086_metadata,EGL_EXT_surface_compression,EGL_EXT_swap_buffers_with_damage,EGL_EXT_sync_reuse,EGL_EXT_yuv_surface,EGL_HI_clientpixmap,EGL_HI_colorformats,EGL_IMG_context_priority,EGL_IMG_image_plane_attribs,EGL_KHR_cl_event,EGL_KHR_cl_event2,EGL_KHR_client_get_all_proc_addresses,EGL_KHR_config_attribs,EGL_KHR_context_flush_control,EGL_KHR_create_context,EGL_KHR_create_context_no_error,EGL_KHR_debug,EGL_KHR_display_reference,EGL_KHR_fence_sync,EGL_KHR_get_all_proc_addresses,EGL_KHR_gl_colorspace,EGL_KHR_gl_renderbuffer_image,EGL_KHR_gl_texture_2D_image,EGL_KHR_gl_texture_3D_image,EGL_KHR_gl_texture_cubemap_image,EGL_KHR_image,EGL_KHR_image_base,EGL_KHR_image_pixmap,EGL_KHR_lock_surface,EGL_KHR_lock_surface2,EGL_KHR_lock_surface3,EGL_KHR_mutable_render_buffer,EGL_KHR_no_config_context,EGL_KHR_partial_update,EGL_KHR_platform_android,EGL_KHR_platform_gbm,EGL_KHR_platform_wayland,EGL_KHR_platform_x11,EGL_KHR_reusable_sync,EGL_KHR_stream,EGL_KHR_stream_attrib,EGL_KHR_stream_consumer_gltexture,EGL_KHR_stream_cross_process_fd,EGL_KHR_stream_fifo,EGL_KHR_stream_producer_aldatalocator,EGL_KHR_stream_producer_eglsurface,EGL_KHR_surfaceless_context,EGL_KHR_swap_buffers_with_damage,EGL_KHR_vg_parent_image,EGL_KHR_wait_sync,EGL_MESA_drm_image,EGL_MESA_image_dma_buf_export,EGL_MESA_platform_gbm,EGL_MESA_platform_surfaceless,EGL_MESA_query_driver,EGL_NOK_swap_region,EGL_NOK_swap_region2,EGL_NOK_texture_from_pixmap,EGL_NV_3dvision_surface,EGL_NV_context_priority_realtime,EGL_NV_coverage_sample,EGL_NV_coverage_sample_resolve,EGL_NV_cuda_event,EGL_NV_depth_nonlinear,EGL_NV_device_cuda,EGL_NV_native_query,EGL_NV_post_convert_rounding,EGL_NV_post_sub_buffer,EGL_NV_quadruple_buffer,EGL_NV_robustness_video_memory_purge,EGL_NV_stream_consumer_eglimage,EGL_NV_stream_consumer_eglimage_use_scanout_attrib,EGL_NV_stream_consumer_gltexture_yuv,EGL_NV_stream_cross_display,EGL_NV_stream_cross_object,EGL_NV_stream_cross_partition,EGL_NV_stream_cross_process,EGL_NV_stream_cross_system,EGL_NV_stream_dma,EGL_NV_stream_fifo_next,EGL_NV_stream_fifo_synchronous,EGL_NV_stream_flush,EGL_NV_stream_frame_limits,EGL_NV_stream_metadata,EGL_NV_stream_origin,EGL_NV_stream_remote,EGL_NV_stream_reset,EGL_NV_stream_socket,EGL_NV_stream_socket_inet,EGL_NV_stream_socket_unix,EGL_NV_stream_sync,EGL_NV_sync,EGL_NV_system_time,EGL_NV_triple_buffer,EGL_QNX_image_native_buffer,EGL_QNX_platform_screen,EGL_TIZEN_image_native_buffer,EGL_TIZEN_image_native_surface,EGL_WL_bind_wayland_display,EGL_WL_create_wayland_buffer_from_image' c --alias --header-only --loader
 *
 * Online:
 *    http://glad.sh/#api=egl%3D1.5&generator=c&options=ALIAS%2CHEADER_ONLY%2CLOADER
 *
 */

#ifndef SF_GLAD_EGL_H_
#define SF_GLAD_EGL_H_


#define SF_GLAD_EGL
#define GLAD_OPTION_EGL_ALIAS
#define GLAD_OPTION_EGL_HEADER_ONLY
#define GLAD_OPTION_EGL_LOADER

#ifdef __cplusplus
extern "C" {
#endif

#ifndef GLAD_PLATFORM_H_
#define GLAD_PLATFORM_H_

#ifndef GLAD_PLATFORM_WIN32
  #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
    #define GLAD_PLATFORM_WIN32 1
  #else
    #define GLAD_PLATFORM_WIN32 0
  #endif
#endif

#ifndef GLAD_PLATFORM_APPLE
  #ifdef __APPLE__
    #define GLAD_PLATFORM_APPLE 1
  #else
    #define GLAD_PLATFORM_APPLE 0
  #endif
#endif

#ifndef GLAD_PLATFORM_EMSCRIPTEN
  #ifdef __EMSCRIPTEN__
    #define GLAD_PLATFORM_EMSCRIPTEN 1
  #else
    #define GLAD_PLATFORM_EMSCRIPTEN 0
  #endif
#endif

#ifndef GLAD_PLATFORM_UWP
  #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
    #ifdef __has_include
      #if __has_include(<winapifamily.h>)
        #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
      #endif
    #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
      #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
    #endif
  #endif

  #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
    #include <winapifamily.h>
    #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
      #define GLAD_PLATFORM_UWP 1
    #endif
  #endif

  #ifndef GLAD_PLATFORM_UWP
    #define GLAD_PLATFORM_UWP 0
  #endif
#endif

#ifdef __GNUC__
  #define GLAD_GNUC_EXTENSION __extension__
#else
  #define GLAD_GNUC_EXTENSION
#endif

#define GLAD_UNUSED(x) (void)(x)

#ifndef GLAD_API_CALL
  #if defined(GLAD_API_CALL_EXPORT)
    #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
      #if defined(GLAD_API_CALL_EXPORT_BUILD)
        #if defined(__GNUC__)
          #define GLAD_API_CALL __attribute__ ((dllexport)) extern
        #else
          #define GLAD_API_CALL __declspec(dllexport) extern
        #endif
      #else
        #if defined(__GNUC__)
          #define GLAD_API_CALL __attribute__ ((dllimport)) extern
        #else
          #define GLAD_API_CALL __declspec(dllimport) extern
        #endif
      #endif
    #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
      #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
    #else
      #define GLAD_API_CALL extern
    #endif
  #else
    #define GLAD_API_CALL extern
  #endif
#endif

#ifdef APIENTRY
  #define GLAD_API_PTR APIENTRY
#elif GLAD_PLATFORM_WIN32
  #define GLAD_API_PTR __stdcall
#else
  #define GLAD_API_PTR
#endif

#ifndef GLAPI
#define GLAPI GLAD_API_CALL
#endif

#ifndef GLAPIENTRY
#define GLAPIENTRY GLAD_API_PTR
#endif

#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
#define GLAD_VERSION_MAJOR(version) (version / 10000)
#define GLAD_VERSION_MINOR(version) (version % 10000)

#define GLAD_GENERATOR_VERSION "2.0.8"

typedef void (*GLADapiproc)(void);

typedef GLADapiproc (*GLADloadfunc)(const char *name);
typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);

typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);

#endif /* GLAD_PLATFORM_H_ */

#define EGL_ALLOC_NEW_DISPLAY_EXT 0x3379
#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_ALPHA_SIZE 0x3021
#define EGL_ALREADY_SIGNALED_NV 0x30EA
#define EGL_AUTO_STEREO_NV 0x3136
#define EGL_BACK_BUFFER 0x3084
#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_DEVICE_EXT 0x322B
#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_OUTPUT_LAYER_EXT 0x322D
#define EGL_BAD_OUTPUT_PORT_EXT 0x322E
#define EGL_BAD_PARAMETER 0x300C
#define EGL_BAD_STATE_KHR 0x321C
#define EGL_BAD_STREAM_KHR 0x321B
#define EGL_BAD_SURFACE 0x300D
#define EGL_BIND_TO_TEXTURE_RGB 0x3039
#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
#define EGL_BITMAP_ORIGIN_KHR 0x30C8
#define EGL_BITMAP_PITCH_KHR 0x30C7
#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
#define EGL_BITMAP_POINTER_KHR 0x30C6
#define EGL_BLUE_SIZE 0x3022
#define EGL_BOTTOM_NV 0x336E
#define EGL_BUFFER_AGE_EXT 0x313D
#define EGL_BUFFER_AGE_KHR 0x313D
#define EGL_BUFFER_DESTROYED 0x3095
#define EGL_BUFFER_PRESERVED 0x3094
#define EGL_BUFFER_SIZE 0x3020
#define EGL_CLIENT_APIS 0x308D
#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74
#define EGL_CL_EVENT_HANDLE 0x309C
#define EGL_CL_EVENT_HANDLE_KHR 0x309C
#define EGL_COLORSPACE 0x3087
#define EGL_COLORSPACE_LINEAR 0x308A
#define EGL_COLORSPACE_sRGB 0x3089
#define EGL_COLOR_ARGB_HI 0x8F73
#define EGL_COLOR_BUFFER_TYPE 0x303F
#define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339
#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A
#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
#define EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288
#define EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287
#define EGL_COLOR_FORMAT_HI 0x8F70
#define EGL_COLOR_RGBA_HI 0x8F72
#define EGL_COLOR_RGB_HI 0x8F71
#define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431
#define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432
#define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433
#define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436
#define EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462
#define EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463
#define EGL_CONDITION_SATISFIED 0x30F6
#define EGL_CONDITION_SATISFIED_KHR 0x30F6
#define EGL_CONDITION_SATISFIED_NV 0x30EC
#define EGL_CONFIG_CAVEAT 0x3027
#define EGL_CONFIG_ID 0x3028
#define EGL_CONFIG_SELECT_GROUP_EXT 0x34C0
#define EGL_CONFORMANT 0x3042
#define EGL_CONFORMANT_KHR 0x3042
#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E
#define EGL_CONSUMER_AUTO_ORIENTATION_NV 0x3369
#define EGL_CONSUMER_FRAME_KHR 0x3213
#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210
#define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338
#define EGL_CONSUMER_METADATA_NV 0x3254
#define EGL_CONTEXT_CLIENT_TYPE 0x3097
#define EGL_CONTEXT_CLIENT_VERSION 0x3098
#define EGL_CONTEXT_FLAGS_KHR 0x30FC
#define EGL_CONTEXT_LOST 0x300E
#define EGL_CONTEXT_MAJOR_VERSION 0x3098
#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098
#define EGL_CONTEXT_MINOR_VERSION 0x30FB
#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0
#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001
#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3
#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD
#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101
#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100
#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103
#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102
#define EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357
#define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098
#define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097
#define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0
#define EGL_CORE_NATIVE_ENGINE 0x305B
#define EGL_COVERAGE_BUFFERS_NV 0x30E0
#define EGL_COVERAGE_SAMPLES_NV 0x30E1
#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132
#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131
#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360
#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361
#define EGL_CUDA_DEVICE_NV 0x323A
#define EGL_CUDA_EVENT_HANDLE_NV 0x323B
#define EGL_D3D11_DEVICE_ANGLE 0x33A1
#define EGL_D3D9_DEVICE_ANGLE 0x33A0
#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
#define EGL_DEBUG_CALLBACK_KHR 0x33B8
#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9
#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA
#define EGL_DEBUG_MSG_INFO_KHR 0x33BC
#define EGL_DEBUG_MSG_WARN_KHR 0x33BB
#define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0)
#define EGL_DEPTH_ENCODING_NONE_NV 0
#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
#define EGL_DEPTH_ENCODING_NV 0x30E2
#define EGL_DEPTH_SIZE 0x3025
#define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B
#define EGL_DEVICE_EXT 0x322C
#define EGL_DEVICE_UUID_EXT 0x335C
#define EGL_DISCARD_SAMPLES_ARM 0x3286
#define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A
#define EGL_DISPLAY_SCALING 10000
#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
#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_MODIFIER_HI_EXT 0x3446
#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
#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_MODIFIER_HI_EXT 0x3448
#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
#define EGL_DONT_CARE EGL_CAST(EGLint,-1)
#define EGL_DRAW 0x3059
#define EGL_DRIVER_NAME_EXT 0x335E
#define EGL_DRIVER_UUID_EXT 0x335D
#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2
#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
#define EGL_DRM_BUFFER_MESA 0x31D3
#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4
#define EGL_DRM_BUFFER_USE_CURSOR_MESA 0x00000004
#define EGL_DRM_BUFFER_USE_MESA 0x31D1
#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001
#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002
#define EGL_DRM_CONNECTOR_EXT 0x3236
#define EGL_DRM_CRTC_EXT 0x3234
#define EGL_DRM_DEVICE_FILE_EXT 0x3233
#define EGL_DRM_MASTER_FD_EXT 0x333C
#define EGL_DRM_PLANE_EXT 0x3235
#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377
#define EGL_EXTENSIONS 0x3055
#define EGL_EXTERNAL_REF_ID_EXT 0x3461
#define EGL_FALSE 0
#define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439
#define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437
#define EGL_FIXED_SIZE_ANGLE 0x3201
#define EGL_FOREVER 0xFFFFFFFFFFFFFFFF
#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFF
#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFF
#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
#define EGL_FORMAT_RGBA_8888_KHR 0x30C3
#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
#define EGL_FORMAT_RGB_565_KHR 0x30C1
#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147
#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C
#define EGL_FRONT_BUFFER_EXT 0x3464
#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C
#define EGL_GL_COLORSPACE 0x309D
#define EGL_GL_COLORSPACE_BT2020_HLG_EXT 0x3540
#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F
#define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340
#define EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D
#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363
#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362
#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490
#define EGL_GL_COLORSPACE_KHR 0x309D
#define EGL_GL_COLORSPACE_LINEAR 0x308A
#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A
#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351
#define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350
#define EGL_GL_COLORSPACE_SRGB 0x3089
#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089
#define EGL_GL_RENDERBUFFER 0x30B9
#define EGL_GL_RENDERBUFFER_KHR 0x30B9
#define EGL_GL_TEXTURE_2D 0x30B1
#define EGL_GL_TEXTURE_2D_KHR 0x30B1
#define EGL_GL_TEXTURE_3D 0x30B2
#define EGL_GL_TEXTURE_3D_KHR 0x30B2
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7
#define EGL_GL_TEXTURE_LEVEL 0x30BC
#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC
#define EGL_GL_TEXTURE_ZOFFSET 0x30BD
#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD
#define EGL_GREEN_SIZE 0x3023
#define EGL_HEIGHT 0x3056
#define EGL_HORIZONTAL_RESOLUTION 0x3090
#define EGL_IMAGE_PRESERVED 0x30D2
#define EGL_IMAGE_PRESERVED_KHR 0x30D2
#define EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472
#define EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471
#define EGL_IMPORT_SYNC_TYPE_EXT 0x3470
#define EGL_ITU_REC2020_EXT 0x3281
#define EGL_ITU_REC601_EXT 0x327F
#define EGL_ITU_REC709_EXT 0x3280
#define EGL_LARGEST_PBUFFER 0x3058
#define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438
#define EGL_LEFT_NV 0x336B
#define EGL_LEVEL 0x3029
#define EGL_LINUX_DMA_BUF_EXT 0x3270
#define EGL_LINUX_DRM_FOURCC_EXT 0x3271
#define EGL_LOCK_SURFACE_BIT_KHR 0x0080
#define EGL_LOCK_USAGE_HINT_KHR 0x30C5
#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF
#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF
#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF
#define EGL_LOWER_LEFT_KHR 0x30CE
#define EGL_LUMINANCE_BUFFER 0x308F
#define EGL_LUMINANCE_SIZE 0x303D
#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
#define EGL_MATCH_FORMAT_KHR 0x3043
#define EGL_MATCH_NATIVE_PIXMAP 0x3041
#define EGL_MAX_PBUFFER_HEIGHT 0x302A
#define EGL_MAX_PBUFFER_PIXELS 0x302B
#define EGL_MAX_PBUFFER_WIDTH 0x302C
#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_MAX_SWAP_INTERVAL 0x303C
#define EGL_METADATA0_SIZE_NV 0x3255
#define EGL_METADATA0_TYPE_NV 0x3259
#define EGL_METADATA1_SIZE_NV 0x3256
#define EGL_METADATA1_TYPE_NV 0x325A
#define EGL_METADATA2_SIZE_NV 0x3257
#define EGL_METADATA2_TYPE_NV 0x325B
#define EGL_METADATA3_SIZE_NV 0x3258
#define EGL_METADATA3_TYPE_NV 0x325C
#define EGL_METADATA_SCALING_EXT 50000
#define EGL_MIN_SWAP_INTERVAL 0x303B
#define EGL_MIPMAP_LEVEL 0x3083
#define EGL_MIPMAP_TEXTURE 0x3082
#define EGL_MULTISAMPLE_RESOLVE 0x3099
#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B
#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200
#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A
#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134
#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000
#define EGL_NATIVE_BUFFER_ANDROID 0x3140
#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105
#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106
#define EGL_NATIVE_BUFFER_QNX 0x3551
#define EGL_NATIVE_BUFFER_TIZEN 0x32A0
#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
#define EGL_NATIVE_PIXMAP_KHR 0x30B0
#define EGL_NATIVE_RENDERABLE 0x302D
#define EGL_NATIVE_SURFACE_TIZEN 0x32A1
#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_CONFIG_KHR EGL_CAST(EGLConfig,0)
#define EGL_NO_CONTEXT EGL_CAST(EGLContext,0)
#define EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0)
#define EGL_NO_DISPLAY EGL_CAST(EGLDisplay,0)
#define EGL_NO_FILE_DESCRIPTOR_KHR EGL_CAST(EGLNativeFileDescriptorKHR,-1)
#define EGL_NO_IMAGE EGL_CAST(EGLImage,0)
#define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0)
#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1
#define EGL_NO_OUTPUT_LAYER_EXT EGL_CAST(EGLOutputLayerEXT,0)
#define EGL_NO_OUTPUT_PORT_EXT EGL_CAST(EGLOutputPortEXT,0)
#define EGL_NO_RESET_NOTIFICATION 0x31BE
#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE
#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE
#define EGL_NO_STREAM_KHR EGL_CAST(EGLStreamKHR,0)
#define EGL_NO_SURFACE EGL_CAST(EGLSurface,0)
#define EGL_NO_SYNC EGL_CAST(EGLSync,0)
#define EGL_NO_SYNC_KHR EGL_CAST(EGLSync,0)
#define EGL_NO_SYNC_NV EGL_CAST(EGLSync,0)
#define EGL_NO_TEXTURE 0x305C
#define EGL_OBJECT_CONTEXT_KHR 0x33B2
#define EGL_OBJECT_DISPLAY_KHR 0x33B1
#define EGL_OBJECT_IMAGE_KHR 0x33B4
#define EGL_OBJECT_STREAM_KHR 0x33B6
#define EGL_OBJECT_SURFACE_KHR 0x33B3
#define EGL_OBJECT_SYNC_KHR 0x33B5
#define EGL_OBJECT_THREAD_KHR 0x33B0
#define EGL_OPENGL_API 0x30A2
#define EGL_OPENGL_BIT 0x0008
#define EGL_OPENGL_ES2_BIT 0x0004
#define EGL_OPENGL_ES3_BIT 0x00000040
#define EGL_OPENGL_ES3_BIT_KHR 0x00000040
#define EGL_OPENGL_ES_API 0x30A0
#define EGL_OPENGL_ES_BIT 0x0001
#define EGL_OPENVG_API 0x30A1
#define EGL_OPENVG_BIT 0x0002
#define EGL_OPENVG_IMAGE 0x3096
#define EGL_OPENWF_DEVICE_EXT 0x333D
#define EGL_OPENWF_DEVICE_ID_EXT 0x3237
#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238
#define EGL_OPENWF_PORT_ID_EXT 0x3239
#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
#define EGL_PBUFFER_BIT 0x0001
#define EGL_PENDING_FRAME_NV 0x3329
#define EGL_PENDING_METADATA_NV 0x3328
#define EGL_PIXEL_ASPECT_RATIO 0x3092
#define EGL_PIXMAP_BIT 0x0002
#define EGL_PLATFORM_ANDROID_KHR 0x3141
#define EGL_PLATFORM_DEVICE_EXT 0x313F
#define EGL_PLATFORM_GBM_KHR 0x31D7
#define EGL_PLATFORM_GBM_MESA 0x31D7
#define EGL_PLATFORM_SCREEN_QNX 0x3550
#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD
#define EGL_PLATFORM_WAYLAND_EXT 0x31D8
#define EGL_PLATFORM_WAYLAND_KHR 0x31D8
#define EGL_PLATFORM_X11_EXT 0x31D5
#define EGL_PLATFORM_X11_KHR 0x31D5
#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6
#define EGL_PLATFORM_XCB_EXT 0x31DC
#define EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE
#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE
#define EGL_PRESENT_OPAQUE_EXT 0x31DF
#define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460
#define EGL_PRODUCER_AUTO_ORIENTATION_NV 0x336A
#define EGL_PRODUCER_FRAME_KHR 0x3212
#define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337
#define EGL_PRODUCER_METADATA_NV 0x3253
#define EGL_PROTECTED_CONTENT_EXT 0x32C0
#define EGL_QUADRUPLE_BUFFER_NV 0x3231
#define EGL_READ 0x305A
#define EGL_READS_DONE_TIME_ANDROID 0x343C
#define EGL_READ_SURFACE_BIT_KHR 0x0001
#define EGL_RECORDABLE_ANDROID 0x3142
#define EGL_RED_SIZE 0x3024
#define EGL_RENDERABLE_TYPE 0x3040
#define EGL_RENDERER_EXT 0x335F
#define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435
#define EGL_RENDER_BUFFER 0x3086
#define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434
#define EGL_RGB_BUFFER 0x308E
#define EGL_RIGHT_NV 0x336C
#define EGL_SAMPLES 0x3031
#define EGL_SAMPLE_BUFFERS 0x3032
#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C
#define EGL_SIGNALED 0x30F2
#define EGL_SIGNALED_KHR 0x30F2
#define EGL_SIGNALED_NV 0x30E8
#define EGL_SINGLE_BUFFER 0x3085
#define EGL_SLOW_CONFIG 0x3050
#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345
#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346
#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343
#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344
#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341
#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342
#define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349
#define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A
#define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347
#define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348
#define EGL_SOCKET_HANDLE_NV 0x324C
#define EGL_SOCKET_TYPE_INET_NV 0x324F
#define EGL_SOCKET_TYPE_NV 0x324D
#define EGL_SOCKET_TYPE_UNIX_NV 0x324E
#define EGL_STENCIL_SIZE 0x3026
#define EGL_STREAM_BIT_KHR 0x0800
#define EGL_STREAM_CONSUMER_IMAGE_NV 0x3373
#define EGL_STREAM_CONSUMER_IMAGE_USE_SCANOUT_NV 0x3378
#define EGL_STREAM_CONSUMER_NV 0x3248
#define EGL_STREAM_CROSS_DISPLAY_NV 0x334E
#define EGL_STREAM_CROSS_OBJECT_NV 0x334D
#define EGL_STREAM_CROSS_PARTITION_NV 0x323F
#define EGL_STREAM_CROSS_PROCESS_NV 0x3245
#define EGL_STREAM_CROSS_SYSTEM_NV 0x334F
#define EGL_STREAM_DMA_NV 0x3371
#define EGL_STREAM_DMA_SERVER_NV 0x3372
#define EGL_STREAM_ENDPOINT_NV 0x3243
#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC
#define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336
#define EGL_STREAM_FRAME_MAJOR_AXIS_NV 0x3368
#define EGL_STREAM_FRAME_ORIGIN_X_NV 0x3366
#define EGL_STREAM_FRAME_ORIGIN_Y_NV 0x3367
#define EGL_STREAM_IMAGE_ADD_NV 0x3374
#define EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376
#define EGL_STREAM_IMAGE_REMOVE_NV 0x3375
#define EGL_STREAM_LOCAL_NV 0x3244
#define EGL_STREAM_PRODUCER_NV 0x3247
#define EGL_STREAM_PROTOCOL_FD_NV 0x3246
#define EGL_STREAM_PROTOCOL_NV 0x3242
#define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B
#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216
#define EGL_STREAM_STATE_CREATED_KHR 0x3215
#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A
#define EGL_STREAM_STATE_EMPTY_KHR 0x3217
#define EGL_STREAM_STATE_INITIALIZING_NV 0x3240
#define EGL_STREAM_STATE_KHR 0x3214
#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218
#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219
#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE
#define EGL_STREAM_TIME_NOW_KHR 0x31FD
#define EGL_STREAM_TIME_PENDING_NV 0x332A
#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF
#define EGL_STREAM_TYPE_NV 0x3241
#define EGL_SUCCESS 0x3000
#define EGL_SUPPORT_RESET_NV 0x3334
#define EGL_SUPPORT_REUSE_NV 0x3335
#define EGL_SURFACE_COMPRESSION_EXT 0x34B0
#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
#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_DEFAULT_EXT 0x34B2
#define EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x34B1
#define EGL_SURFACE_COMPRESSION_PLANE1_EXT 0x328E
#define EGL_SURFACE_COMPRESSION_PLANE2_EXT 0x328F
#define EGL_SURFACE_TYPE 0x3033
#define EGL_SWAP_BEHAVIOR 0x3093
#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400
#define EGL_SWAP_INTERVAL_EXT 0x322F
#define EGL_SYNC_CLIENT_EXT 0x3364
#define EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365
#define EGL_SYNC_CL_EVENT 0x30FE
#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF
#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
#define EGL_SYNC_CL_EVENT_KHR 0x30FE
#define EGL_SYNC_CONDITION 0x30F8
#define EGL_SYNC_CONDITION_KHR 0x30F8
#define EGL_SYNC_CONDITION_NV 0x30EE
#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D
#define EGL_SYNC_CUDA_EVENT_NV 0x323C
#define EGL_SYNC_FENCE 0x30F9
#define EGL_SYNC_FENCE_KHR 0x30F9
#define EGL_SYNC_FENCE_NV 0x30EF
#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001
#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001
#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_SYNC_NEW_FRAME_NV 0x321F
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6
#define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A
#define EGL_SYNC_REUSABLE_KHR 0x30FA
#define EGL_SYNC_STATUS 0x30F1
#define EGL_SYNC_STATUS_KHR 0x30F1
#define EGL_SYNC_STATUS_NV 0x30E7
#define EGL_SYNC_TYPE 0x30F7
#define EGL_SYNC_TYPE_KHR 0x30F7
#define EGL_SYNC_TYPE_NV 0x30ED
#define EGL_TELEMETRY_HINT_ANDROID 0x3570
#define EGL_TEXTURE_2D 0x305F
#define EGL_TEXTURE_EXTERNAL_WL 0x31DA
#define EGL_TEXTURE_FORMAT 0x3080
#define EGL_TEXTURE_RGB 0x305D
#define EGL_TEXTURE_RGBA 0x305E
#define EGL_TEXTURE_TARGET 0x3081
#define EGL_TEXTURE_Y_UV_WL 0x31D8
#define EGL_TEXTURE_Y_U_V_WL 0x31D7
#define EGL_TEXTURE_Y_XUXV_WL 0x31D9
#define EGL_TIMEOUT_EXPIRED 0x30F5
#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5
#define EGL_TIMEOUT_EXPIRED_NV 0x30EB
#define EGL_TIMESTAMPS_ANDROID 0x3430
#define EGL_TIMESTAMP_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID,-1)
#define EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2)
#define EGL_TOP_NV 0x336D
#define EGL_TRACK_REFERENCES_KHR 0x3352
#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_TRIPLE_BUFFER_NV 0x3230
#define EGL_TRUE 1
#define EGL_UNKNOWN EGL_CAST(EGLint,-1)
#define EGL_UNSIGNALED 0x30F3
#define EGL_UNSIGNALED_KHR 0x30F3
#define EGL_UNSIGNALED_NV 0x30E9
#define EGL_UPPER_LEFT_KHR 0x30CF
#define EGL_VENDOR 0x3053
#define EGL_VERSION 0x3054
#define EGL_VERTICAL_RESOLUTION 0x3091
#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_ALPHA_FORMAT_PRE_BIT_KHR 0x0040
#define EGL_VG_COLORSPACE 0x3087
#define EGL_VG_COLORSPACE_LINEAR 0x308A
#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020
#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020
#define EGL_VG_COLORSPACE_sRGB 0x3089
#define EGL_VG_PARENT_IMAGE_KHR 0x30BA
#define EGL_WAYLAND_BUFFER_WL 0x31D5
#define EGL_WAYLAND_PLANE_WL 0x31D6
#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB
#define EGL_WIDTH 0x3057
#define EGL_WINDOW_BIT 0x0004
#define EGL_WRITE_SURFACE_BIT_KHR 0x0002
#define EGL_X_AXIS_NV 0x336F
#define EGL_YUV_BUFFER_EXT 0x3300
#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285
#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284
#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D
#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B
#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C
#define EGL_YUV_CSC_STANDARD_EXT 0x330A
#define EGL_YUV_DEPTH_RANGE_EXT 0x3317
#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319
#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318
#define EGL_YUV_FULL_RANGE_EXT 0x3282
#define EGL_YUV_NARROW_RANGE_EXT 0x3283
#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
#define EGL_YUV_ORDER_AYUV_EXT 0x3308
#define EGL_YUV_ORDER_EXT 0x3301
#define EGL_YUV_ORDER_UYVY_EXT 0x3305
#define EGL_YUV_ORDER_VYUY_EXT 0x3307
#define EGL_YUV_ORDER_YUV_EXT 0x3302
#define EGL_YUV_ORDER_YUYV_EXT 0x3304
#define EGL_YUV_ORDER_YVU_EXT 0x3303
#define EGL_YUV_ORDER_YVYU_EXT 0x3306
#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C
#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D
#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E
#define EGL_YUV_PLANE_BPP_0_EXT 0x331B
#define EGL_YUV_PLANE_BPP_10_EXT 0x331D
#define EGL_YUV_PLANE_BPP_8_EXT 0x331C
#define EGL_YUV_PLANE_BPP_EXT 0x331A
#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_SUBSAMPLE_EXT 0x3312
#define EGL_Y_AXIS_NV 0x3370
#define EGL_Y_INVERTED_NOK 0x307F


#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_GLAD_API_PTR
 *    KHRONOS_APIATTRIBUTES
 *
 * These may be used in function prototypes as:
 *
 *      KHRONOS_APICALL void KHRONOS_GLAD_API_PTR 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_GLAD_API_PTR
 *-------------------------------------------------------------------------
 * 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_GLAD_API_PTR __stdcall
#else
#   define KHRONOS_GLAD_API_PTR
#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_ */
#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 EGLGLAD_API_PTR eglFunction(arguments);
 * typedef return-type (EXPGLAD_API_PTRP PFNEGLFUNCTIONPROC) (arguments);
 *
 * KHRONOS_APICALL and KHRONOS_GLAD_API_PTR are defined in KHR/khrplatform.h
 */

#ifndef EGLAPI
#define EGLAPI KHRONOS_APICALL
#endif

#ifndef EGLGLAD_API_PTR
#define EGLGLAD_API_PTR  KHRONOS_GLAD_API_PTR
#endif
#define EGLGLAD_API_PTRP EGLGLAD_API_PTR*

/* 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(__QNX__)

typedef khronos_uintptr_t      EGLNativeDisplayType;
typedef struct _screen_pixmap* EGLNativePixmapType;  /* screen_pixmap_t */
typedef struct _screen_window* EGLNativeWindowType;  /* screen_window_t */

#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 */











struct AHardwareBuffer;
struct wl_buffer;
struct wl_display;
struct wl_resource;

typedef unsigned int EGLBoolean;
typedef unsigned int EGLenum;
typedef intptr_t EGLAttribKHR;
typedef intptr_t EGLAttrib;
typedef void *EGLClientBuffer;
typedef void *EGLConfig;
typedef void *EGLContext;
typedef void *EGLDeviceEXT;
typedef void *EGLDisplay;
typedef void *EGLImage;
typedef void *EGLImageKHR;
typedef void *EGLLabelKHR;
typedef void *EGLObjectKHR;
typedef void *EGLOutputLayerEXT;
typedef void *EGLOutputPortEXT;
typedef void *EGLStreamKHR;
typedef void *EGLSurface;
typedef void *EGLSync;
typedef void *EGLSyncKHR;
typedef void *EGLSyncNV;
typedef void (*__eglMustCastToProperFunctionPointerType)(void);
typedef khronos_utime_nanoseconds_t EGLTimeKHR;
typedef khronos_utime_nanoseconds_t EGLTime;
typedef khronos_utime_nanoseconds_t EGLTimeNV;
typedef khronos_utime_nanoseconds_t EGLuint64NV;
typedef khronos_uint64_t EGLuint64KHR;
typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
typedef int EGLNativeFileDescriptorKHR;
typedef khronos_ssize_t EGLsizeiANDROID;
typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
struct EGLClientPixmapHI {
    void  *pData;
    EGLint iWidth;
    EGLint iHeight;
    EGLint iStride;
};
typedef void (GLAD_API_PTR *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
#define PFNEGLBINDWAYLANDDISPLAYWL PFNEGLBINDWAYLANDDISPLAYWLPROC
#define PFNEGLUNBINDWAYLANDDISPLAYWL PFNEGLUNBINDWAYLANDDISPLAYWLPROC
#define PFNEGLQUERYWAYLANDBUFFERWL PFNEGLQUERYWAYLANDBUFFERWLPROC
#define PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC


#define EGL_VERSION_1_0 1
GLAD_API_CALL int SF_GLAD_EGL_VERSION_1_0;
#define EGL_VERSION_1_1 1
GLAD_API_CALL int SF_GLAD_EGL_VERSION_1_1;
#define EGL_VERSION_1_2 1
GLAD_API_CALL int SF_GLAD_EGL_VERSION_1_2;
#define EGL_VERSION_1_3 1
GLAD_API_CALL int SF_GLAD_EGL_VERSION_1_3;
#define EGL_VERSION_1_4 1
GLAD_API_CALL int SF_GLAD_EGL_VERSION_1_4;
#define EGL_VERSION_1_5 1
GLAD_API_CALL int SF_GLAD_EGL_VERSION_1_5;
#define EGL_ANDROID_GLES_layers 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_GLES_layers;
#define EGL_ANDROID_blob_cache 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_blob_cache;
#define EGL_ANDROID_create_native_client_buffer 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_create_native_client_buffer;
#define EGL_ANDROID_framebuffer_target 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_framebuffer_target;
#define EGL_ANDROID_front_buffer_auto_refresh 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_front_buffer_auto_refresh;
#define EGL_ANDROID_get_frame_timestamps 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_get_frame_timestamps;
#define EGL_ANDROID_get_native_client_buffer 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_get_native_client_buffer;
#define EGL_ANDROID_image_native_buffer 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_image_native_buffer;
#define EGL_ANDROID_native_fence_sync 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_native_fence_sync;
#define EGL_ANDROID_presentation_time 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_presentation_time;
#define EGL_ANDROID_recordable 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_recordable;
#define EGL_ANDROID_telemetry_hint 1
GLAD_API_CALL int SF_GLAD_EGL_ANDROID_telemetry_hint;
#define EGL_ANGLE_d3d_share_handle_client_buffer 1
GLAD_API_CALL int SF_GLAD_EGL_ANGLE_d3d_share_handle_client_buffer;
#define EGL_ANGLE_device_d3d 1
GLAD_API_CALL int SF_GLAD_EGL_ANGLE_device_d3d;
#define EGL_ANGLE_query_surface_pointer 1
GLAD_API_CALL int SF_GLAD_EGL_ANGLE_query_surface_pointer;
#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
GLAD_API_CALL int SF_GLAD_EGL_ANGLE_surface_d3d_texture_2d_share_handle;
#define EGL_ANGLE_sync_control_rate 1
GLAD_API_CALL int SF_GLAD_EGL_ANGLE_sync_control_rate;
#define EGL_ANGLE_window_fixed_size 1
GLAD_API_CALL int SF_GLAD_EGL_ANGLE_window_fixed_size;
#define EGL_ARM_image_format 1
GLAD_API_CALL int SF_GLAD_EGL_ARM_image_format;
#define EGL_ARM_implicit_external_sync 1
GLAD_API_CALL int SF_GLAD_EGL_ARM_implicit_external_sync;
#define EGL_ARM_pixmap_multisample_discard 1
GLAD_API_CALL int SF_GLAD_EGL_ARM_pixmap_multisample_discard;
#define EGL_EXT_bind_to_front 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_bind_to_front;
#define EGL_EXT_buffer_age 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_buffer_age;
#define EGL_EXT_client_extensions 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_client_extensions;
#define EGL_EXT_client_sync 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_client_sync;
#define EGL_EXT_compositor 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_compositor;
#define EGL_EXT_config_select_group 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_config_select_group;
#define EGL_EXT_create_context_robustness 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_create_context_robustness;
#define EGL_EXT_device_base 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_device_base;
#define EGL_EXT_device_drm 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_device_drm;
#define EGL_EXT_device_drm_render_node 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_device_drm_render_node;
#define EGL_EXT_device_enumeration 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_device_enumeration;
#define EGL_EXT_device_openwf 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_device_openwf;
#define EGL_EXT_device_persistent_id 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_device_persistent_id;
#define EGL_EXT_device_query 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_device_query;
#define EGL_EXT_device_query_name 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_device_query_name;
#define EGL_EXT_display_alloc 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_display_alloc;
#define EGL_EXT_explicit_device 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_explicit_device;
#define EGL_EXT_gl_colorspace_bt2020_hlg 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_gl_colorspace_bt2020_hlg;
#define EGL_EXT_gl_colorspace_bt2020_linear 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_gl_colorspace_bt2020_linear;
#define EGL_EXT_gl_colorspace_bt2020_pq 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_gl_colorspace_bt2020_pq;
#define EGL_EXT_gl_colorspace_display_p3 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_gl_colorspace_display_p3;
#define EGL_EXT_gl_colorspace_display_p3_linear 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_gl_colorspace_display_p3_linear;
#define EGL_EXT_gl_colorspace_display_p3_passthrough 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_gl_colorspace_display_p3_passthrough;
#define EGL_EXT_gl_colorspace_scrgb 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_gl_colorspace_scrgb;
#define EGL_EXT_gl_colorspace_scrgb_linear 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_gl_colorspace_scrgb_linear;
#define EGL_EXT_image_dma_buf_import 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_image_dma_buf_import;
#define EGL_EXT_image_dma_buf_import_modifiers 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_image_dma_buf_import_modifiers;
#define EGL_EXT_image_gl_colorspace 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_image_gl_colorspace;
#define EGL_EXT_image_implicit_sync_control 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_image_implicit_sync_control;
#define EGL_EXT_multiview_window 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_multiview_window;
#define EGL_EXT_output_base 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_output_base;
#define EGL_EXT_output_drm 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_output_drm;
#define EGL_EXT_output_openwf 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_output_openwf;
#define EGL_EXT_pixel_format_float 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_pixel_format_float;
#define EGL_EXT_platform_base 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_platform_base;
#define EGL_EXT_platform_device 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_platform_device;
#define EGL_EXT_platform_wayland 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_platform_wayland;
#define EGL_EXT_platform_x11 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_platform_x11;
#define EGL_EXT_platform_xcb 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_platform_xcb;
#define EGL_EXT_present_opaque 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_present_opaque;
#define EGL_EXT_protected_content 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_protected_content;
#define EGL_EXT_protected_surface 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_protected_surface;
#define EGL_EXT_query_reset_notification_strategy 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_query_reset_notification_strategy;
#define EGL_EXT_stream_consumer_egloutput 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_stream_consumer_egloutput;
#define EGL_EXT_surface_CTA861_3_metadata 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_surface_CTA861_3_metadata;
#define EGL_EXT_surface_SMPTE2086_metadata 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_surface_SMPTE2086_metadata;
#define EGL_EXT_surface_compression 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_surface_compression;
#define EGL_EXT_swap_buffers_with_damage 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_swap_buffers_with_damage;
#define EGL_EXT_sync_reuse 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_sync_reuse;
#define EGL_EXT_yuv_surface 1
GLAD_API_CALL int SF_GLAD_EGL_EXT_yuv_surface;
#define EGL_HI_clientpixmap 1
GLAD_API_CALL int SF_GLAD_EGL_HI_clientpixmap;
#define EGL_HI_colorformats 1
GLAD_API_CALL int SF_GLAD_EGL_HI_colorformats;
#define EGL_IMG_context_priority 1
GLAD_API_CALL int SF_GLAD_EGL_IMG_context_priority;
#define EGL_IMG_image_plane_attribs 1
GLAD_API_CALL int SF_GLAD_EGL_IMG_image_plane_attribs;
#define EGL_KHR_cl_event 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_cl_event;
#define EGL_KHR_cl_event2 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_cl_event2;
#define EGL_KHR_client_get_all_proc_addresses 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_client_get_all_proc_addresses;
#define EGL_KHR_config_attribs 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_config_attribs;
#define EGL_KHR_context_flush_control 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_context_flush_control;
#define EGL_KHR_create_context 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_create_context;
#define EGL_KHR_create_context_no_error 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_create_context_no_error;
#define EGL_KHR_debug 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_debug;
#define EGL_KHR_display_reference 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_display_reference;
#define EGL_KHR_fence_sync 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_fence_sync;
#define EGL_KHR_get_all_proc_addresses 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_get_all_proc_addresses;
#define EGL_KHR_gl_colorspace 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_gl_colorspace;
#define EGL_KHR_gl_renderbuffer_image 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_gl_renderbuffer_image;
#define EGL_KHR_gl_texture_2D_image 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_gl_texture_2D_image;
#define EGL_KHR_gl_texture_3D_image 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_gl_texture_3D_image;
#define EGL_KHR_gl_texture_cubemap_image 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_gl_texture_cubemap_image;
#define EGL_KHR_image 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_image;
#define EGL_KHR_image_base 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_image_base;
#define EGL_KHR_image_pixmap 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_image_pixmap;
#define EGL_KHR_lock_surface 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_lock_surface;
#define EGL_KHR_lock_surface2 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_lock_surface2;
#define EGL_KHR_lock_surface3 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_lock_surface3;
#define EGL_KHR_mutable_render_buffer 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_mutable_render_buffer;
#define EGL_KHR_no_config_context 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_no_config_context;
#define EGL_KHR_partial_update 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_partial_update;
#define EGL_KHR_platform_android 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_platform_android;
#define EGL_KHR_platform_gbm 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_platform_gbm;
#define EGL_KHR_platform_wayland 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_platform_wayland;
#define EGL_KHR_platform_x11 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_platform_x11;
#define EGL_KHR_reusable_sync 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_reusable_sync;
#define EGL_KHR_stream 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_stream;
#define EGL_KHR_stream_attrib 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_stream_attrib;
#define EGL_KHR_stream_consumer_gltexture 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_stream_consumer_gltexture;
#define EGL_KHR_stream_cross_process_fd 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_stream_cross_process_fd;
#define EGL_KHR_stream_fifo 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_stream_fifo;
#define EGL_KHR_stream_producer_aldatalocator 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_stream_producer_aldatalocator;
#define EGL_KHR_stream_producer_eglsurface 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_stream_producer_eglsurface;
#define EGL_KHR_surfaceless_context 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_surfaceless_context;
#define EGL_KHR_swap_buffers_with_damage 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_swap_buffers_with_damage;
#define EGL_KHR_vg_parent_image 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_vg_parent_image;
#define EGL_KHR_wait_sync 1
GLAD_API_CALL int SF_GLAD_EGL_KHR_wait_sync;
#define EGL_MESA_drm_image 1
GLAD_API_CALL int SF_GLAD_EGL_MESA_drm_image;
#define EGL_MESA_image_dma_buf_export 1
GLAD_API_CALL int SF_GLAD_EGL_MESA_image_dma_buf_export;
#define EGL_MESA_platform_gbm 1
GLAD_API_CALL int SF_GLAD_EGL_MESA_platform_gbm;
#define EGL_MESA_platform_surfaceless 1
GLAD_API_CALL int SF_GLAD_EGL_MESA_platform_surfaceless;
#define EGL_MESA_query_driver 1
GLAD_API_CALL int SF_GLAD_EGL_MESA_query_driver;
#define EGL_NOK_swap_region 1
GLAD_API_CALL int SF_GLAD_EGL_NOK_swap_region;
#define EGL_NOK_swap_region2 1
GLAD_API_CALL int SF_GLAD_EGL_NOK_swap_region2;
#define EGL_NOK_texture_from_pixmap 1
GLAD_API_CALL int SF_GLAD_EGL_NOK_texture_from_pixmap;
#define EGL_NV_3dvision_surface 1
GLAD_API_CALL int SF_GLAD_EGL_NV_3dvision_surface;
#define EGL_NV_context_priority_realtime 1
GLAD_API_CALL int SF_GLAD_EGL_NV_context_priority_realtime;
#define EGL_NV_coverage_sample 1
GLAD_API_CALL int SF_GLAD_EGL_NV_coverage_sample;
#define EGL_NV_coverage_sample_resolve 1
GLAD_API_CALL int SF_GLAD_EGL_NV_coverage_sample_resolve;
#define EGL_NV_cuda_event 1
GLAD_API_CALL int SF_GLAD_EGL_NV_cuda_event;
#define EGL_NV_depth_nonlinear 1
GLAD_API_CALL int SF_GLAD_EGL_NV_depth_nonlinear;
#define EGL_NV_device_cuda 1
GLAD_API_CALL int SF_GLAD_EGL_NV_device_cuda;
#define EGL_NV_native_query 1
GLAD_API_CALL int SF_GLAD_EGL_NV_native_query;
#define EGL_NV_post_convert_rounding 1
GLAD_API_CALL int SF_GLAD_EGL_NV_post_convert_rounding;
#define EGL_NV_post_sub_buffer 1
GLAD_API_CALL int SF_GLAD_EGL_NV_post_sub_buffer;
#define EGL_NV_quadruple_buffer 1
GLAD_API_CALL int SF_GLAD_EGL_NV_quadruple_buffer;
#define EGL_NV_robustness_video_memory_purge 1
GLAD_API_CALL int SF_GLAD_EGL_NV_robustness_video_memory_purge;
#define EGL_NV_stream_consumer_eglimage 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_consumer_eglimage;
#define EGL_NV_stream_consumer_eglimage_use_scanout_attrib 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_consumer_eglimage_use_scanout_attrib;
#define EGL_NV_stream_consumer_gltexture_yuv 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_consumer_gltexture_yuv;
#define EGL_NV_stream_cross_display 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_cross_display;
#define EGL_NV_stream_cross_object 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_cross_object;
#define EGL_NV_stream_cross_partition 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_cross_partition;
#define EGL_NV_stream_cross_process 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_cross_process;
#define EGL_NV_stream_cross_system 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_cross_system;
#define EGL_NV_stream_dma 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_dma;
#define EGL_NV_stream_fifo_next 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_fifo_next;
#define EGL_NV_stream_fifo_synchronous 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_fifo_synchronous;
#define EGL_NV_stream_flush 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_flush;
#define EGL_NV_stream_frame_limits 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_frame_limits;
#define EGL_NV_stream_metadata 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_metadata;
#define EGL_NV_stream_origin 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_origin;
#define EGL_NV_stream_remote 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_remote;
#define EGL_NV_stream_reset 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_reset;
#define EGL_NV_stream_socket 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_socket;
#define EGL_NV_stream_socket_inet 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_socket_inet;
#define EGL_NV_stream_socket_unix 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_socket_unix;
#define EGL_NV_stream_sync 1
GLAD_API_CALL int SF_GLAD_EGL_NV_stream_sync;
#define EGL_NV_sync 1
GLAD_API_CALL int SF_GLAD_EGL_NV_sync;
#define EGL_NV_system_time 1
GLAD_API_CALL int SF_GLAD_EGL_NV_system_time;
#define EGL_NV_triple_buffer 1
GLAD_API_CALL int SF_GLAD_EGL_NV_triple_buffer;
#define EGL_QNX_image_native_buffer 1
GLAD_API_CALL int SF_GLAD_EGL_QNX_image_native_buffer;
#define EGL_QNX_platform_screen 1
GLAD_API_CALL int SF_GLAD_EGL_QNX_platform_screen;
#define EGL_TIZEN_image_native_buffer 1
GLAD_API_CALL int SF_GLAD_EGL_TIZEN_image_native_buffer;
#define EGL_TIZEN_image_native_surface 1
GLAD_API_CALL int SF_GLAD_EGL_TIZEN_image_native_surface;
#define EGL_WL_bind_wayland_display 1
GLAD_API_CALL int SF_GLAD_EGL_WL_bind_wayland_display;
#define EGL_WL_create_wayland_buffer_from_image 1
GLAD_API_CALL int SF_GLAD_EGL_WL_create_wayland_buffer_from_image;


typedef EGLBoolean (GLAD_API_PTR *PFNEGLBINDAPIPROC)(EGLenum api);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLBINDTEXIMAGEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLBINDWAYLANDDISPLAYWLPROC)(EGLDisplay dpy, struct wl_display * display);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLCHOOSECONFIGPROC)(EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLCLIENTSIGNALSYNCEXTPROC)(EGLDisplay dpy, EGLSync sync, const EGLAttrib * attrib_list);
typedef EGLint (GLAD_API_PTR *PFNEGLCLIENTWAITSYNCPROC)(EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
typedef EGLint (GLAD_API_PTR *PFNEGLCLIENTWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
typedef EGLint (GLAD_API_PTR *PFNEGLCLIENTWAITSYNCNVPROC)(EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC)(EGLint external_win_id);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC)(EGLint external_ref_id, const EGLint * context_attributes, EGLint num_entries);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC)(const EGLint * external_ref_ids, EGLint num_entries);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLCOMPOSITORSETSIZEEXTPROC)(EGLint external_win_id, EGLint width, EGLint height);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC)(EGLint external_win_id, const EGLint * window_attributes, EGLint num_entries);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC)(EGLint external_ref_id, const EGLint * external_win_ids, EGLint num_entries);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLCOMPOSITORSWAPPOLICYEXTPROC)(EGLint external_win_id, EGLint policy);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLCOPYBUFFERSPROC)(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
typedef EGLContext (GLAD_API_PTR *PFNEGLCREATECONTEXTPROC)(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint * attrib_list);
typedef EGLImageKHR (GLAD_API_PTR *PFNEGLCREATEDRMIMAGEMESAPROC)(EGLDisplay dpy, const EGLint * attrib_list);
typedef EGLSyncNV (GLAD_API_PTR *PFNEGLCREATEFENCESYNCNVPROC)(EGLDisplay dpy, EGLenum condition, const EGLint * attrib_list);
typedef EGLImage (GLAD_API_PTR *PFNEGLCREATEIMAGEPROC)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib * attrib_list);
typedef EGLImageKHR (GLAD_API_PTR *PFNEGLCREATEIMAGEKHRPROC)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint * attrib_list);
typedef EGLClientBuffer (GLAD_API_PTR *PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC)(const EGLint * attrib_list);
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC)(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint * attrib_list);
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPBUFFERSURFACEPROC)(EGLDisplay dpy, EGLConfig config, const EGLint * attrib_list);
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPIXMAPSURFACEPROC)(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint * attrib_list);
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPIXMAPSURFACEHIPROC)(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI * pixmap);
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC)(EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLAttrib * attrib_list);
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC)(EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLint * attrib_list);
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMWINDOWSURFACEPROC)(EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list);
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC)(EGLDisplay dpy, EGLConfig config, void * native_window, const EGLint * attrib_list);
typedef EGLStreamKHR (GLAD_API_PTR *PFNEGLCREATESTREAMATTRIBKHRPROC)(EGLDisplay dpy, const EGLAttrib * attrib_list);
typedef EGLStreamKHR (GLAD_API_PTR *PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
typedef EGLStreamKHR (GLAD_API_PTR *PFNEGLCREATESTREAMKHRPROC)(EGLDisplay dpy, const EGLint * attrib_list);
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint * attrib_list);
typedef EGLSyncKHR (GLAD_API_PTR *PFNEGLCREATESTREAMSYNCNVPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint * attrib_list);
typedef EGLSync (GLAD_API_PTR *PFNEGLCREATESYNCPROC)(EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list);
typedef EGLSyncKHR (GLAD_API_PTR *PFNEGLCREATESYNC64KHRPROC)(EGLDisplay dpy, EGLenum type, const EGLAttribKHR * attrib_list);
typedef EGLSyncKHR (GLAD_API_PTR *PFNEGLCREATESYNCKHRPROC)(EGLDisplay dpy, EGLenum type, const EGLint * attrib_list);
typedef struct wl_buffer * (GLAD_API_PTR *PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC)(EGLDisplay dpy, EGLImageKHR image);
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEWINDOWSURFACEPROC)(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list);
typedef EGLint (GLAD_API_PTR *PFNEGLDEBUGMESSAGECONTROLKHRPROC)(EGLDEBUGPROCKHR callback, const EGLAttrib * attrib_list);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYDISPLAYEXTPROC)(EGLDisplay dpy);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYIMAGEPROC)(EGLDisplay dpy, EGLImage image);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYIMAGEKHRPROC)(EGLDisplay dpy, EGLImageKHR image);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYSURFACEPROC)(EGLDisplay dpy, EGLSurface surface);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYSYNCPROC)(EGLDisplay dpy, EGLSync sync);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYSYNCNVPROC)(EGLSyncNV sync);
typedef EGLint (GLAD_API_PTR *PFNEGLDUPNATIVEFENCEFDANDROIDPROC)(EGLDisplay dpy, EGLSyncKHR sync);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLEXPORTDMABUFIMAGEMESAPROC)(EGLDisplay dpy, EGLImageKHR image, int * fds, EGLint * strides, EGLint * offsets);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC)(EGLDisplay dpy, EGLImageKHR image, int * fourcc, int * num_planes, EGLuint64KHR * modifiers);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLEXPORTDRMIMAGEMESAPROC)(EGLDisplay dpy, EGLImageKHR image, EGLint * name, EGLint * handle, EGLint * stride);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLFENCENVPROC)(EGLSyncNV sync);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETCOMPOSITORTIMINGANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint * names, EGLnsecsANDROID * values);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLint name);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETCONFIGATTRIBPROC)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETCONFIGSPROC)(EGLDisplay dpy, EGLConfig * configs, EGLint config_size, EGLint * num_config);
typedef EGLContext (GLAD_API_PTR *PFNEGLGETCURRENTCONTEXTPROC)(void);
typedef EGLDisplay (GLAD_API_PTR *PFNEGLGETCURRENTDISPLAYPROC)(void);
typedef EGLSurface (GLAD_API_PTR *PFNEGLGETCURRENTSURFACEPROC)(EGLint readdraw);
typedef EGLDisplay (GLAD_API_PTR *PFNEGLGETDISPLAYPROC)(EGLNativeDisplayType display_id);
typedef char * (GLAD_API_PTR *PFNEGLGETDISPLAYDRIVERCONFIGPROC)(EGLDisplay dpy);
typedef const char * (GLAD_API_PTR *PFNEGLGETDISPLAYDRIVERNAMEPROC)(EGLDisplay dpy);
typedef EGLint (GLAD_API_PTR *PFNEGLGETERRORPROC)(void);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETFRAMETIMESTAMPSANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint * timestamps, EGLnsecsANDROID * values);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETMSCRATEANGLEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint * numerator, EGLint * denominator);
typedef EGLClientBuffer (GLAD_API_PTR *PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC)(const struct AHardwareBuffer * buffer);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETNEXTFRAMEIDANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLuint64KHR * frameId);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETOUTPUTLAYERSEXTPROC)(EGLDisplay dpy, const EGLAttrib * attrib_list, EGLOutputLayerEXT * layers, EGLint max_layers, EGLint * num_layers);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETOUTPUTPORTSEXTPROC)(EGLDisplay dpy, const EGLAttrib * attrib_list, EGLOutputPortEXT * ports, EGLint max_ports, EGLint * num_ports);
typedef EGLDisplay (GLAD_API_PTR *PFNEGLGETPLATFORMDISPLAYPROC)(EGLenum platform, void * native_display, const EGLAttrib * attrib_list);
typedef EGLDisplay (GLAD_API_PTR *PFNEGLGETPLATFORMDISPLAYEXTPROC)(EGLenum platform, void * native_display, const EGLint * attrib_list);
typedef __eglMustCastToProperFunctionPointerType (GLAD_API_PTR *PFNEGLGETPROCADDRESSPROC)(const char * procname);
typedef EGLNativeFileDescriptorKHR (GLAD_API_PTR *PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETSYNCATTRIBPROC)(EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETSYNCATTRIBKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETSYNCATTRIBNVPROC)(EGLSyncNV sync, EGLint attribute, EGLint * value);
typedef EGLuint64NV (GLAD_API_PTR *PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC)(void);
typedef EGLuint64NV (GLAD_API_PTR *PFNEGLGETSYSTEMTIMENVPROC)(void);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLINITIALIZEPROC)(EGLDisplay dpy, EGLint * major, EGLint * minor);
typedef EGLint (GLAD_API_PTR *PFNEGLLABELOBJECTKHRPROC)(EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLLOCKSURFACEKHRPROC)(EGLDisplay dpy, EGLSurface surface, const EGLint * attrib_list);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLMAKECURRENTPROC)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLOUTPUTLAYERATTRIBEXTPROC)(EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLOUTPUTPORTATTRIBEXTPROC)(EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLPOSTSUBBUFFERNVPROC)(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLPRESENTATIONTIMEANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
typedef EGLenum (GLAD_API_PTR *PFNEGLQUERYAPIPROC)(void);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDEBUGKHRPROC)(EGLint attribute, EGLAttrib * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDEVICEATTRIBEXTPROC)(EGLDeviceEXT device, EGLint attribute, EGLAttrib * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDEVICEBINARYEXTPROC)(EGLDeviceEXT device, EGLint name, EGLint max_size, void * value, EGLint * size);
typedef const char * (GLAD_API_PTR *PFNEGLQUERYDEVICESTRINGEXTPROC)(EGLDeviceEXT device, EGLint name);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDEVICESEXTPROC)(EGLint max_devices, EGLDeviceEXT * devices, EGLint * num_devices);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDISPLAYATTRIBEXTPROC)(EGLDisplay dpy, EGLint attribute, EGLAttrib * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDISPLAYATTRIBKHRPROC)(EGLDisplay dpy, EGLint name, EGLAttrib * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDISPLAYATTRIBNVPROC)(EGLDisplay dpy, EGLint attribute, EGLAttrib * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDMABUFFORMATSEXTPROC)(EGLDisplay dpy, EGLint max_formats, EGLint * formats, EGLint * num_formats);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDMABUFMODIFIERSEXTPROC)(EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR * modifiers, EGLBoolean * external_only, EGLint * num_modifiers);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYNATIVEDISPLAYNVPROC)(EGLDisplay dpy, EGLNativeDisplayType * display_id);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYNATIVEPIXMAPNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType * pixmap);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYNATIVEWINDOWNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType * window);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC)(EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib * value);
typedef const char * (GLAD_API_PTR *PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC)(EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC)(EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib * value);
typedef const char * (GLAD_API_PTR *PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC)(EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYSTREAMATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib * value);
typedef EGLint (GLAD_API_PTR *PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum * event, EGLAttrib * aux);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYSTREAMMETADATANVPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void * data);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYSTREAMTIMEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYSTREAMU64KHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR * value);
typedef const char * (GLAD_API_PTR *PFNEGLQUERYSTRINGPROC)(EGLDisplay dpy, EGLint name);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC)(EGLDisplay dpy, EGLConfig config, const EGLAttrib * attrib_list, EGLint * rates, EGLint rate_size, EGLint * num_rates);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYSURFACEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYSURFACE64KHRPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYSURFACEPOINTERANGLEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, void ** value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYWAYLANDBUFFERWLPROC)(EGLDisplay dpy, struct wl_resource * buffer, EGLint attribute, EGLint * value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLRELEASETEXIMAGEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLRELEASETHREADPROC)(void);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLRESETSTREAMNVPROC)(EGLDisplay dpy, EGLStreamKHR stream);
typedef void (GLAD_API_PTR *PFNEGLSETBLOBCACHEFUNCSANDROIDPROC)(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSETDAMAGEREGIONKHRPROC)(EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSETSTREAMATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSETSTREAMMETADATANVPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void * data);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSIGNALSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSIGNALSYNCNVPROC)(EGLSyncNV sync, EGLenum mode);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMACQUIREIMAGENVPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLImage * pImage, EGLSync sync);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMCONSUMERACQUIREKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMCONSUMEROUTPUTEXTPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMCONSUMERRELEASEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMFLUSHNVPROC)(EGLDisplay dpy, EGLStreamKHR stream);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR * modifiers, const EGLAttrib * attrib_list);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSTREAMRELEASEIMAGENVPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSURFACEATTRIBPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSWAPBUFFERSPROC)(EGLDisplay dpy, EGLSurface surface);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSWAPBUFFERSREGION2NOKPROC)(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint * rects);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSWAPBUFFERSREGIONNOKPROC)(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint * rects);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)(EGLDisplay dpy, EGLSurface surface, const EGLint * rects, EGLint n_rects);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC)(EGLDisplay dpy, EGLSurface surface, const EGLint * rects, EGLint n_rects);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLSWAPINTERVALPROC)(EGLDisplay dpy, EGLint interval);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLTERMINATEPROC)(EGLDisplay dpy);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLUNBINDWAYLANDDISPLAYWLPROC)(EGLDisplay dpy, struct wl_display * display);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLUNLOCKSURFACEKHRPROC)(EGLDisplay dpy, EGLSurface surface);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLUNSIGNALSYNCEXTPROC)(EGLDisplay dpy, EGLSync sync, const EGLAttrib * attrib_list);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLWAITCLIENTPROC)(void);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLWAITGLPROC)(void);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLWAITNATIVEPROC)(EGLint engine);
typedef EGLBoolean (GLAD_API_PTR *PFNEGLWAITSYNCPROC)(EGLDisplay dpy, EGLSync sync, EGLint flags);
typedef EGLint (GLAD_API_PTR *PFNEGLWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);

GLAD_API_CALL PFNEGLBINDAPIPROC sf_glad_eglBindAPI;
#define eglBindAPI sf_glad_eglBindAPI
GLAD_API_CALL PFNEGLBINDTEXIMAGEPROC sf_glad_eglBindTexImage;
#define eglBindTexImage sf_glad_eglBindTexImage
GLAD_API_CALL PFNEGLBINDWAYLANDDISPLAYWLPROC sf_glad_eglBindWaylandDisplayWL;
#define eglBindWaylandDisplayWL sf_glad_eglBindWaylandDisplayWL
GLAD_API_CALL PFNEGLCHOOSECONFIGPROC sf_glad_eglChooseConfig;
#define eglChooseConfig sf_glad_eglChooseConfig
GLAD_API_CALL PFNEGLCLIENTSIGNALSYNCEXTPROC sf_glad_eglClientSignalSyncEXT;
#define eglClientSignalSyncEXT sf_glad_eglClientSignalSyncEXT
GLAD_API_CALL PFNEGLCLIENTWAITSYNCPROC sf_glad_eglClientWaitSync;
#define eglClientWaitSync sf_glad_eglClientWaitSync
GLAD_API_CALL PFNEGLCLIENTWAITSYNCKHRPROC sf_glad_eglClientWaitSyncKHR;
#define eglClientWaitSyncKHR sf_glad_eglClientWaitSyncKHR
GLAD_API_CALL PFNEGLCLIENTWAITSYNCNVPROC sf_glad_eglClientWaitSyncNV;
#define eglClientWaitSyncNV sf_glad_eglClientWaitSyncNV
GLAD_API_CALL PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC sf_glad_eglCompositorBindTexWindowEXT;
#define eglCompositorBindTexWindowEXT sf_glad_eglCompositorBindTexWindowEXT
GLAD_API_CALL PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC sf_glad_eglCompositorSetContextAttributesEXT;
#define eglCompositorSetContextAttributesEXT sf_glad_eglCompositorSetContextAttributesEXT
GLAD_API_CALL PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC sf_glad_eglCompositorSetContextListEXT;
#define eglCompositorSetContextListEXT sf_glad_eglCompositorSetContextListEXT
GLAD_API_CALL PFNEGLCOMPOSITORSETSIZEEXTPROC sf_glad_eglCompositorSetSizeEXT;
#define eglCompositorSetSizeEXT sf_glad_eglCompositorSetSizeEXT
GLAD_API_CALL PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC sf_glad_eglCompositorSetWindowAttributesEXT;
#define eglCompositorSetWindowAttributesEXT sf_glad_eglCompositorSetWindowAttributesEXT
GLAD_API_CALL PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC sf_glad_eglCompositorSetWindowListEXT;
#define eglCompositorSetWindowListEXT sf_glad_eglCompositorSetWindowListEXT
GLAD_API_CALL PFNEGLCOMPOSITORSWAPPOLICYEXTPROC sf_glad_eglCompositorSwapPolicyEXT;
#define eglCompositorSwapPolicyEXT sf_glad_eglCompositorSwapPolicyEXT
GLAD_API_CALL PFNEGLCOPYBUFFERSPROC sf_glad_eglCopyBuffers;
#define eglCopyBuffers sf_glad_eglCopyBuffers
GLAD_API_CALL PFNEGLCREATECONTEXTPROC sf_glad_eglCreateContext;
#define eglCreateContext sf_glad_eglCreateContext
GLAD_API_CALL PFNEGLCREATEDRMIMAGEMESAPROC sf_glad_eglCreateDRMImageMESA;
#define eglCreateDRMImageMESA sf_glad_eglCreateDRMImageMESA
GLAD_API_CALL PFNEGLCREATEFENCESYNCNVPROC sf_glad_eglCreateFenceSyncNV;
#define eglCreateFenceSyncNV sf_glad_eglCreateFenceSyncNV
GLAD_API_CALL PFNEGLCREATEIMAGEPROC sf_glad_eglCreateImage;
#define eglCreateImage sf_glad_eglCreateImage
GLAD_API_CALL PFNEGLCREATEIMAGEKHRPROC sf_glad_eglCreateImageKHR;
#define eglCreateImageKHR sf_glad_eglCreateImageKHR
GLAD_API_CALL PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC sf_glad_eglCreateNativeClientBufferANDROID;
#define eglCreateNativeClientBufferANDROID sf_glad_eglCreateNativeClientBufferANDROID
GLAD_API_CALL PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC sf_glad_eglCreatePbufferFromClientBuffer;
#define eglCreatePbufferFromClientBuffer sf_glad_eglCreatePbufferFromClientBuffer
GLAD_API_CALL PFNEGLCREATEPBUFFERSURFACEPROC sf_glad_eglCreatePbufferSurface;
#define eglCreatePbufferSurface sf_glad_eglCreatePbufferSurface
GLAD_API_CALL PFNEGLCREATEPIXMAPSURFACEPROC sf_glad_eglCreatePixmapSurface;
#define eglCreatePixmapSurface sf_glad_eglCreatePixmapSurface
GLAD_API_CALL PFNEGLCREATEPIXMAPSURFACEHIPROC sf_glad_eglCreatePixmapSurfaceHI;
#define eglCreatePixmapSurfaceHI sf_glad_eglCreatePixmapSurfaceHI
GLAD_API_CALL PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC sf_glad_eglCreatePlatformPixmapSurface;
#define eglCreatePlatformPixmapSurface sf_glad_eglCreatePlatformPixmapSurface
GLAD_API_CALL PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC sf_glad_eglCreatePlatformPixmapSurfaceEXT;
#define eglCreatePlatformPixmapSurfaceEXT sf_glad_eglCreatePlatformPixmapSurfaceEXT
GLAD_API_CALL PFNEGLCREATEPLATFORMWINDOWSURFACEPROC sf_glad_eglCreatePlatformWindowSurface;
#define eglCreatePlatformWindowSurface sf_glad_eglCreatePlatformWindowSurface
GLAD_API_CALL PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC sf_glad_eglCreatePlatformWindowSurfaceEXT;
#define eglCreatePlatformWindowSurfaceEXT sf_glad_eglCreatePlatformWindowSurfaceEXT
GLAD_API_CALL PFNEGLCREATESTREAMATTRIBKHRPROC sf_glad_eglCreateStreamAttribKHR;
#define eglCreateStreamAttribKHR sf_glad_eglCreateStreamAttribKHR
GLAD_API_CALL PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC sf_glad_eglCreateStreamFromFileDescriptorKHR;
#define eglCreateStreamFromFileDescriptorKHR sf_glad_eglCreateStreamFromFileDescriptorKHR
GLAD_API_CALL PFNEGLCREATESTREAMKHRPROC sf_glad_eglCreateStreamKHR;
#define eglCreateStreamKHR sf_glad_eglCreateStreamKHR
GLAD_API_CALL PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC sf_glad_eglCreateStreamProducerSurfaceKHR;
#define eglCreateStreamProducerSurfaceKHR sf_glad_eglCreateStreamProducerSurfaceKHR
GLAD_API_CALL PFNEGLCREATESTREAMSYNCNVPROC sf_glad_eglCreateStreamSyncNV;
#define eglCreateStreamSyncNV sf_glad_eglCreateStreamSyncNV
GLAD_API_CALL PFNEGLCREATESYNCPROC sf_glad_eglCreateSync;
#define eglCreateSync sf_glad_eglCreateSync
GLAD_API_CALL PFNEGLCREATESYNC64KHRPROC sf_glad_eglCreateSync64KHR;
#define eglCreateSync64KHR sf_glad_eglCreateSync64KHR
GLAD_API_CALL PFNEGLCREATESYNCKHRPROC sf_glad_eglCreateSyncKHR;
#define eglCreateSyncKHR sf_glad_eglCreateSyncKHR
GLAD_API_CALL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC sf_glad_eglCreateWaylandBufferFromImageWL;
#define eglCreateWaylandBufferFromImageWL sf_glad_eglCreateWaylandBufferFromImageWL
GLAD_API_CALL PFNEGLCREATEWINDOWSURFACEPROC sf_glad_eglCreateWindowSurface;
#define eglCreateWindowSurface sf_glad_eglCreateWindowSurface
GLAD_API_CALL PFNEGLDEBUGMESSAGECONTROLKHRPROC sf_glad_eglDebugMessageControlKHR;
#define eglDebugMessageControlKHR sf_glad_eglDebugMessageControlKHR
GLAD_API_CALL PFNEGLDESTROYCONTEXTPROC sf_glad_eglDestroyContext;
#define eglDestroyContext sf_glad_eglDestroyContext
GLAD_API_CALL PFNEGLDESTROYDISPLAYEXTPROC sf_glad_eglDestroyDisplayEXT;
#define eglDestroyDisplayEXT sf_glad_eglDestroyDisplayEXT
GLAD_API_CALL PFNEGLDESTROYIMAGEPROC sf_glad_eglDestroyImage;
#define eglDestroyImage sf_glad_eglDestroyImage
GLAD_API_CALL PFNEGLDESTROYIMAGEKHRPROC sf_glad_eglDestroyImageKHR;
#define eglDestroyImageKHR sf_glad_eglDestroyImageKHR
GLAD_API_CALL PFNEGLDESTROYSTREAMKHRPROC sf_glad_eglDestroyStreamKHR;
#define eglDestroyStreamKHR sf_glad_eglDestroyStreamKHR
GLAD_API_CALL PFNEGLDESTROYSURFACEPROC sf_glad_eglDestroySurface;
#define eglDestroySurface sf_glad_eglDestroySurface
GLAD_API_CALL PFNEGLDESTROYSYNCPROC sf_glad_eglDestroySync;
#define eglDestroySync sf_glad_eglDestroySync
GLAD_API_CALL PFNEGLDESTROYSYNCKHRPROC sf_glad_eglDestroySyncKHR;
#define eglDestroySyncKHR sf_glad_eglDestroySyncKHR
GLAD_API_CALL PFNEGLDESTROYSYNCNVPROC sf_glad_eglDestroySyncNV;
#define eglDestroySyncNV sf_glad_eglDestroySyncNV
GLAD_API_CALL PFNEGLDUPNATIVEFENCEFDANDROIDPROC sf_glad_eglDupNativeFenceFDANDROID;
#define eglDupNativeFenceFDANDROID sf_glad_eglDupNativeFenceFDANDROID
GLAD_API_CALL PFNEGLEXPORTDMABUFIMAGEMESAPROC sf_glad_eglExportDMABUFImageMESA;
#define eglExportDMABUFImageMESA sf_glad_eglExportDMABUFImageMESA
GLAD_API_CALL PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC sf_glad_eglExportDMABUFImageQueryMESA;
#define eglExportDMABUFImageQueryMESA sf_glad_eglExportDMABUFImageQueryMESA
GLAD_API_CALL PFNEGLEXPORTDRMIMAGEMESAPROC sf_glad_eglExportDRMImageMESA;
#define eglExportDRMImageMESA sf_glad_eglExportDRMImageMESA
GLAD_API_CALL PFNEGLFENCENVPROC sf_glad_eglFenceNV;
#define eglFenceNV sf_glad_eglFenceNV
GLAD_API_CALL PFNEGLGETCOMPOSITORTIMINGANDROIDPROC sf_glad_eglGetCompositorTimingANDROID;
#define eglGetCompositorTimingANDROID sf_glad_eglGetCompositorTimingANDROID
GLAD_API_CALL PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC sf_glad_eglGetCompositorTimingSupportedANDROID;
#define eglGetCompositorTimingSupportedANDROID sf_glad_eglGetCompositorTimingSupportedANDROID
GLAD_API_CALL PFNEGLGETCONFIGATTRIBPROC sf_glad_eglGetConfigAttrib;
#define eglGetConfigAttrib sf_glad_eglGetConfigAttrib
GLAD_API_CALL PFNEGLGETCONFIGSPROC sf_glad_eglGetConfigs;
#define eglGetConfigs sf_glad_eglGetConfigs
GLAD_API_CALL PFNEGLGETCURRENTCONTEXTPROC sf_glad_eglGetCurrentContext;
#define eglGetCurrentContext sf_glad_eglGetCurrentContext
GLAD_API_CALL PFNEGLGETCURRENTDISPLAYPROC sf_glad_eglGetCurrentDisplay;
#define eglGetCurrentDisplay sf_glad_eglGetCurrentDisplay
GLAD_API_CALL PFNEGLGETCURRENTSURFACEPROC sf_glad_eglGetCurrentSurface;
#define eglGetCurrentSurface sf_glad_eglGetCurrentSurface
GLAD_API_CALL PFNEGLGETDISPLAYPROC sf_glad_eglGetDisplay;
#define eglGetDisplay sf_glad_eglGetDisplay
GLAD_API_CALL PFNEGLGETDISPLAYDRIVERCONFIGPROC sf_glad_eglGetDisplayDriverConfig;
#define eglGetDisplayDriverConfig sf_glad_eglGetDisplayDriverConfig
GLAD_API_CALL PFNEGLGETDISPLAYDRIVERNAMEPROC sf_glad_eglGetDisplayDriverName;
#define eglGetDisplayDriverName sf_glad_eglGetDisplayDriverName
GLAD_API_CALL PFNEGLGETERRORPROC sf_glad_eglGetError;
#define eglGetError sf_glad_eglGetError
GLAD_API_CALL PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC sf_glad_eglGetFrameTimestampSupportedANDROID;
#define eglGetFrameTimestampSupportedANDROID sf_glad_eglGetFrameTimestampSupportedANDROID
GLAD_API_CALL PFNEGLGETFRAMETIMESTAMPSANDROIDPROC sf_glad_eglGetFrameTimestampsANDROID;
#define eglGetFrameTimestampsANDROID sf_glad_eglGetFrameTimestampsANDROID
GLAD_API_CALL PFNEGLGETMSCRATEANGLEPROC sf_glad_eglGetMscRateANGLE;
#define eglGetMscRateANGLE sf_glad_eglGetMscRateANGLE
GLAD_API_CALL PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC sf_glad_eglGetNativeClientBufferANDROID;
#define eglGetNativeClientBufferANDROID sf_glad_eglGetNativeClientBufferANDROID
GLAD_API_CALL PFNEGLGETNEXTFRAMEIDANDROIDPROC sf_glad_eglGetNextFrameIdANDROID;
#define eglGetNextFrameIdANDROID sf_glad_eglGetNextFrameIdANDROID
GLAD_API_CALL PFNEGLGETOUTPUTLAYERSEXTPROC sf_glad_eglGetOutputLayersEXT;
#define eglGetOutputLayersEXT sf_glad_eglGetOutputLayersEXT
GLAD_API_CALL PFNEGLGETOUTPUTPORTSEXTPROC sf_glad_eglGetOutputPortsEXT;
#define eglGetOutputPortsEXT sf_glad_eglGetOutputPortsEXT
GLAD_API_CALL PFNEGLGETPLATFORMDISPLAYPROC sf_glad_eglGetPlatformDisplay;
#define eglGetPlatformDisplay sf_glad_eglGetPlatformDisplay
GLAD_API_CALL PFNEGLGETPLATFORMDISPLAYEXTPROC sf_glad_eglGetPlatformDisplayEXT;
#define eglGetPlatformDisplayEXT sf_glad_eglGetPlatformDisplayEXT
GLAD_API_CALL PFNEGLGETPROCADDRESSPROC sf_glad_eglGetProcAddress;
#define eglGetProcAddress sf_glad_eglGetProcAddress
GLAD_API_CALL PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC sf_glad_eglGetStreamFileDescriptorKHR;
#define eglGetStreamFileDescriptorKHR sf_glad_eglGetStreamFileDescriptorKHR
GLAD_API_CALL PFNEGLGETSYNCATTRIBPROC sf_glad_eglGetSyncAttrib;
#define eglGetSyncAttrib sf_glad_eglGetSyncAttrib
GLAD_API_CALL PFNEGLGETSYNCATTRIBKHRPROC sf_glad_eglGetSyncAttribKHR;
#define eglGetSyncAttribKHR sf_glad_eglGetSyncAttribKHR
GLAD_API_CALL PFNEGLGETSYNCATTRIBNVPROC sf_glad_eglGetSyncAttribNV;
#define eglGetSyncAttribNV sf_glad_eglGetSyncAttribNV
GLAD_API_CALL PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC sf_glad_eglGetSystemTimeFrequencyNV;
#define eglGetSystemTimeFrequencyNV sf_glad_eglGetSystemTimeFrequencyNV
GLAD_API_CALL PFNEGLGETSYSTEMTIMENVPROC sf_glad_eglGetSystemTimeNV;
#define eglGetSystemTimeNV sf_glad_eglGetSystemTimeNV
GLAD_API_CALL PFNEGLINITIALIZEPROC sf_glad_eglInitialize;
#define eglInitialize sf_glad_eglInitialize
GLAD_API_CALL PFNEGLLABELOBJECTKHRPROC sf_glad_eglLabelObjectKHR;
#define eglLabelObjectKHR sf_glad_eglLabelObjectKHR
GLAD_API_CALL PFNEGLLOCKSURFACEKHRPROC sf_glad_eglLockSurfaceKHR;
#define eglLockSurfaceKHR sf_glad_eglLockSurfaceKHR
GLAD_API_CALL PFNEGLMAKECURRENTPROC sf_glad_eglMakeCurrent;
#define eglMakeCurrent sf_glad_eglMakeCurrent
GLAD_API_CALL PFNEGLOUTPUTLAYERATTRIBEXTPROC sf_glad_eglOutputLayerAttribEXT;
#define eglOutputLayerAttribEXT sf_glad_eglOutputLayerAttribEXT
GLAD_API_CALL PFNEGLOUTPUTPORTATTRIBEXTPROC sf_glad_eglOutputPortAttribEXT;
#define eglOutputPortAttribEXT sf_glad_eglOutputPortAttribEXT
GLAD_API_CALL PFNEGLPOSTSUBBUFFERNVPROC sf_glad_eglPostSubBufferNV;
#define eglPostSubBufferNV sf_glad_eglPostSubBufferNV
GLAD_API_CALL PFNEGLPRESENTATIONTIMEANDROIDPROC sf_glad_eglPresentationTimeANDROID;
#define eglPresentationTimeANDROID sf_glad_eglPresentationTimeANDROID
GLAD_API_CALL PFNEGLQUERYAPIPROC sf_glad_eglQueryAPI;
#define eglQueryAPI sf_glad_eglQueryAPI
GLAD_API_CALL PFNEGLQUERYCONTEXTPROC sf_glad_eglQueryContext;
#define eglQueryContext sf_glad_eglQueryContext
GLAD_API_CALL PFNEGLQUERYDEBUGKHRPROC sf_glad_eglQueryDebugKHR;
#define eglQueryDebugKHR sf_glad_eglQueryDebugKHR
GLAD_API_CALL PFNEGLQUERYDEVICEATTRIBEXTPROC sf_glad_eglQueryDeviceAttribEXT;
#define eglQueryDeviceAttribEXT sf_glad_eglQueryDeviceAttribEXT
GLAD_API_CALL PFNEGLQUERYDEVICEBINARYEXTPROC sf_glad_eglQueryDeviceBinaryEXT;
#define eglQueryDeviceBinaryEXT sf_glad_eglQueryDeviceBinaryEXT
GLAD_API_CALL PFNEGLQUERYDEVICESTRINGEXTPROC sf_glad_eglQueryDeviceStringEXT;
#define eglQueryDeviceStringEXT sf_glad_eglQueryDeviceStringEXT
GLAD_API_CALL PFNEGLQUERYDEVICESEXTPROC sf_glad_eglQueryDevicesEXT;
#define eglQueryDevicesEXT sf_glad_eglQueryDevicesEXT
GLAD_API_CALL PFNEGLQUERYDISPLAYATTRIBEXTPROC sf_glad_eglQueryDisplayAttribEXT;
#define eglQueryDisplayAttribEXT sf_glad_eglQueryDisplayAttribEXT
GLAD_API_CALL PFNEGLQUERYDISPLAYATTRIBKHRPROC sf_glad_eglQueryDisplayAttribKHR;
#define eglQueryDisplayAttribKHR sf_glad_eglQueryDisplayAttribKHR
GLAD_API_CALL PFNEGLQUERYDISPLAYATTRIBNVPROC sf_glad_eglQueryDisplayAttribNV;
#define eglQueryDisplayAttribNV sf_glad_eglQueryDisplayAttribNV
GLAD_API_CALL PFNEGLQUERYDMABUFFORMATSEXTPROC sf_glad_eglQueryDmaBufFormatsEXT;
#define eglQueryDmaBufFormatsEXT sf_glad_eglQueryDmaBufFormatsEXT
GLAD_API_CALL PFNEGLQUERYDMABUFMODIFIERSEXTPROC sf_glad_eglQueryDmaBufModifiersEXT;
#define eglQueryDmaBufModifiersEXT sf_glad_eglQueryDmaBufModifiersEXT
GLAD_API_CALL PFNEGLQUERYNATIVEDISPLAYNVPROC sf_glad_eglQueryNativeDisplayNV;
#define eglQueryNativeDisplayNV sf_glad_eglQueryNativeDisplayNV
GLAD_API_CALL PFNEGLQUERYNATIVEPIXMAPNVPROC sf_glad_eglQueryNativePixmapNV;
#define eglQueryNativePixmapNV sf_glad_eglQueryNativePixmapNV
GLAD_API_CALL PFNEGLQUERYNATIVEWINDOWNVPROC sf_glad_eglQueryNativeWindowNV;
#define eglQueryNativeWindowNV sf_glad_eglQueryNativeWindowNV
GLAD_API_CALL PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC sf_glad_eglQueryOutputLayerAttribEXT;
#define eglQueryOutputLayerAttribEXT sf_glad_eglQueryOutputLayerAttribEXT
GLAD_API_CALL PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC sf_glad_eglQueryOutputLayerStringEXT;
#define eglQueryOutputLayerStringEXT sf_glad_eglQueryOutputLayerStringEXT
GLAD_API_CALL PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC sf_glad_eglQueryOutputPortAttribEXT;
#define eglQueryOutputPortAttribEXT sf_glad_eglQueryOutputPortAttribEXT
GLAD_API_CALL PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC sf_glad_eglQueryOutputPortStringEXT;
#define eglQueryOutputPortStringEXT sf_glad_eglQueryOutputPortStringEXT
GLAD_API_CALL PFNEGLQUERYSTREAMATTRIBKHRPROC sf_glad_eglQueryStreamAttribKHR;
#define eglQueryStreamAttribKHR sf_glad_eglQueryStreamAttribKHR
GLAD_API_CALL PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC sf_glad_eglQueryStreamConsumerEventNV;
#define eglQueryStreamConsumerEventNV sf_glad_eglQueryStreamConsumerEventNV
GLAD_API_CALL PFNEGLQUERYSTREAMKHRPROC sf_glad_eglQueryStreamKHR;
#define eglQueryStreamKHR sf_glad_eglQueryStreamKHR
GLAD_API_CALL PFNEGLQUERYSTREAMMETADATANVPROC sf_glad_eglQueryStreamMetadataNV;
#define eglQueryStreamMetadataNV sf_glad_eglQueryStreamMetadataNV
GLAD_API_CALL PFNEGLQUERYSTREAMTIMEKHRPROC sf_glad_eglQueryStreamTimeKHR;
#define eglQueryStreamTimeKHR sf_glad_eglQueryStreamTimeKHR
GLAD_API_CALL PFNEGLQUERYSTREAMU64KHRPROC sf_glad_eglQueryStreamu64KHR;
#define eglQueryStreamu64KHR sf_glad_eglQueryStreamu64KHR
GLAD_API_CALL PFNEGLQUERYSTRINGPROC sf_glad_eglQueryString;
#define eglQueryString sf_glad_eglQueryString
GLAD_API_CALL PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC sf_glad_eglQuerySupportedCompressionRatesEXT;
#define eglQuerySupportedCompressionRatesEXT sf_glad_eglQuerySupportedCompressionRatesEXT
GLAD_API_CALL PFNEGLQUERYSURFACEPROC sf_glad_eglQuerySurface;
#define eglQuerySurface sf_glad_eglQuerySurface
GLAD_API_CALL PFNEGLQUERYSURFACE64KHRPROC sf_glad_eglQuerySurface64KHR;
#define eglQuerySurface64KHR sf_glad_eglQuerySurface64KHR
GLAD_API_CALL PFNEGLQUERYSURFACEPOINTERANGLEPROC sf_glad_eglQuerySurfacePointerANGLE;
#define eglQuerySurfacePointerANGLE sf_glad_eglQuerySurfacePointerANGLE
GLAD_API_CALL PFNEGLQUERYWAYLANDBUFFERWLPROC sf_glad_eglQueryWaylandBufferWL;
#define eglQueryWaylandBufferWL sf_glad_eglQueryWaylandBufferWL
GLAD_API_CALL PFNEGLRELEASETEXIMAGEPROC sf_glad_eglReleaseTexImage;
#define eglReleaseTexImage sf_glad_eglReleaseTexImage
GLAD_API_CALL PFNEGLRELEASETHREADPROC sf_glad_eglReleaseThread;
#define eglReleaseThread sf_glad_eglReleaseThread
GLAD_API_CALL PFNEGLRESETSTREAMNVPROC sf_glad_eglResetStreamNV;
#define eglResetStreamNV sf_glad_eglResetStreamNV
GLAD_API_CALL PFNEGLSETBLOBCACHEFUNCSANDROIDPROC sf_glad_eglSetBlobCacheFuncsANDROID;
#define eglSetBlobCacheFuncsANDROID sf_glad_eglSetBlobCacheFuncsANDROID
GLAD_API_CALL PFNEGLSETDAMAGEREGIONKHRPROC sf_glad_eglSetDamageRegionKHR;
#define eglSetDamageRegionKHR sf_glad_eglSetDamageRegionKHR
GLAD_API_CALL PFNEGLSETSTREAMATTRIBKHRPROC sf_glad_eglSetStreamAttribKHR;
#define eglSetStreamAttribKHR sf_glad_eglSetStreamAttribKHR
GLAD_API_CALL PFNEGLSETSTREAMMETADATANVPROC sf_glad_eglSetStreamMetadataNV;
#define eglSetStreamMetadataNV sf_glad_eglSetStreamMetadataNV
GLAD_API_CALL PFNEGLSIGNALSYNCKHRPROC sf_glad_eglSignalSyncKHR;
#define eglSignalSyncKHR sf_glad_eglSignalSyncKHR
GLAD_API_CALL PFNEGLSIGNALSYNCNVPROC sf_glad_eglSignalSyncNV;
#define eglSignalSyncNV sf_glad_eglSignalSyncNV
GLAD_API_CALL PFNEGLSTREAMACQUIREIMAGENVPROC sf_glad_eglStreamAcquireImageNV;
#define eglStreamAcquireImageNV sf_glad_eglStreamAcquireImageNV
GLAD_API_CALL PFNEGLSTREAMATTRIBKHRPROC sf_glad_eglStreamAttribKHR;
#define eglStreamAttribKHR sf_glad_eglStreamAttribKHR
GLAD_API_CALL PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC sf_glad_eglStreamConsumerAcquireAttribKHR;
#define eglStreamConsumerAcquireAttribKHR sf_glad_eglStreamConsumerAcquireAttribKHR
GLAD_API_CALL PFNEGLSTREAMCONSUMERACQUIREKHRPROC sf_glad_eglStreamConsumerAcquireKHR;
#define eglStreamConsumerAcquireKHR sf_glad_eglStreamConsumerAcquireKHR
GLAD_API_CALL PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC sf_glad_eglStreamConsumerGLTextureExternalAttribsNV;
#define eglStreamConsumerGLTextureExternalAttribsNV sf_glad_eglStreamConsumerGLTextureExternalAttribsNV
GLAD_API_CALL PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC sf_glad_eglStreamConsumerGLTextureExternalKHR;
#define eglStreamConsumerGLTextureExternalKHR sf_glad_eglStreamConsumerGLTextureExternalKHR
GLAD_API_CALL PFNEGLSTREAMCONSUMEROUTPUTEXTPROC sf_glad_eglStreamConsumerOutputEXT;
#define eglStreamConsumerOutputEXT sf_glad_eglStreamConsumerOutputEXT
GLAD_API_CALL PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC sf_glad_eglStreamConsumerReleaseAttribKHR;
#define eglStreamConsumerReleaseAttribKHR sf_glad_eglStreamConsumerReleaseAttribKHR
GLAD_API_CALL PFNEGLSTREAMCONSUMERRELEASEKHRPROC sf_glad_eglStreamConsumerReleaseKHR;
#define eglStreamConsumerReleaseKHR sf_glad_eglStreamConsumerReleaseKHR
GLAD_API_CALL PFNEGLSTREAMFLUSHNVPROC sf_glad_eglStreamFlushNV;
#define eglStreamFlushNV sf_glad_eglStreamFlushNV
GLAD_API_CALL PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC sf_glad_eglStreamImageConsumerConnectNV;
#define eglStreamImageConsumerConnectNV sf_glad_eglStreamImageConsumerConnectNV
GLAD_API_CALL PFNEGLSTREAMRELEASEIMAGENVPROC sf_glad_eglStreamReleaseImageNV;
#define eglStreamReleaseImageNV sf_glad_eglStreamReleaseImageNV
GLAD_API_CALL PFNEGLSURFACEATTRIBPROC sf_glad_eglSurfaceAttrib;
#define eglSurfaceAttrib sf_glad_eglSurfaceAttrib
GLAD_API_CALL PFNEGLSWAPBUFFERSPROC sf_glad_eglSwapBuffers;
#define eglSwapBuffers sf_glad_eglSwapBuffers
GLAD_API_CALL PFNEGLSWAPBUFFERSREGION2NOKPROC sf_glad_eglSwapBuffersRegion2NOK;
#define eglSwapBuffersRegion2NOK sf_glad_eglSwapBuffersRegion2NOK
GLAD_API_CALL PFNEGLSWAPBUFFERSREGIONNOKPROC sf_glad_eglSwapBuffersRegionNOK;
#define eglSwapBuffersRegionNOK sf_glad_eglSwapBuffersRegionNOK
GLAD_API_CALL PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC sf_glad_eglSwapBuffersWithDamageEXT;
#define eglSwapBuffersWithDamageEXT sf_glad_eglSwapBuffersWithDamageEXT
GLAD_API_CALL PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC sf_glad_eglSwapBuffersWithDamageKHR;
#define eglSwapBuffersWithDamageKHR sf_glad_eglSwapBuffersWithDamageKHR
GLAD_API_CALL PFNEGLSWAPINTERVALPROC sf_glad_eglSwapInterval;
#define eglSwapInterval sf_glad_eglSwapInterval
GLAD_API_CALL PFNEGLTERMINATEPROC sf_glad_eglTerminate;
#define eglTerminate sf_glad_eglTerminate
GLAD_API_CALL PFNEGLUNBINDWAYLANDDISPLAYWLPROC sf_glad_eglUnbindWaylandDisplayWL;
#define eglUnbindWaylandDisplayWL sf_glad_eglUnbindWaylandDisplayWL
GLAD_API_CALL PFNEGLUNLOCKSURFACEKHRPROC sf_glad_eglUnlockSurfaceKHR;
#define eglUnlockSurfaceKHR sf_glad_eglUnlockSurfaceKHR
GLAD_API_CALL PFNEGLUNSIGNALSYNCEXTPROC sf_glad_eglUnsignalSyncEXT;
#define eglUnsignalSyncEXT sf_glad_eglUnsignalSyncEXT
GLAD_API_CALL PFNEGLWAITCLIENTPROC sf_glad_eglWaitClient;
#define eglWaitClient sf_glad_eglWaitClient
GLAD_API_CALL PFNEGLWAITGLPROC sf_glad_eglWaitGL;
#define eglWaitGL sf_glad_eglWaitGL
GLAD_API_CALL PFNEGLWAITNATIVEPROC sf_glad_eglWaitNative;
#define eglWaitNative sf_glad_eglWaitNative
GLAD_API_CALL PFNEGLWAITSYNCPROC sf_glad_eglWaitSync;
#define eglWaitSync sf_glad_eglWaitSync
GLAD_API_CALL PFNEGLWAITSYNCKHRPROC sf_glad_eglWaitSyncKHR;
#define eglWaitSyncKHR sf_glad_eglWaitSyncKHR





#ifdef __cplusplus
}
#endif
#endif

/* Source */
#ifdef SF_GLAD_EGL_IMPLEMENTATION
/**
 * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#ifndef GLAD_IMPL_UTIL_C_
#define GLAD_IMPL_UTIL_C_

#ifdef _MSC_VER
#define GLAD_IMPL_UTIL_SSCANF sscanf_s
#else
#define GLAD_IMPL_UTIL_SSCANF sscanf
#endif

#endif /* GLAD_IMPL_UTIL_C_ */

#ifdef __cplusplus
extern "C" {
#endif



int SF_GLAD_EGL_VERSION_1_0 = 0;
int SF_GLAD_EGL_VERSION_1_1 = 0;
int SF_GLAD_EGL_VERSION_1_2 = 0;
int SF_GLAD_EGL_VERSION_1_3 = 0;
int SF_GLAD_EGL_VERSION_1_4 = 0;
int SF_GLAD_EGL_VERSION_1_5 = 0;
int SF_GLAD_EGL_ANDROID_GLES_layers = 0;
int SF_GLAD_EGL_ANDROID_blob_cache = 0;
int SF_GLAD_EGL_ANDROID_create_native_client_buffer = 0;
int SF_GLAD_EGL_ANDROID_framebuffer_target = 0;
int SF_GLAD_EGL_ANDROID_front_buffer_auto_refresh = 0;
int SF_GLAD_EGL_ANDROID_get_frame_timestamps = 0;
int SF_GLAD_EGL_ANDROID_get_native_client_buffer = 0;
int SF_GLAD_EGL_ANDROID_image_native_buffer = 0;
int SF_GLAD_EGL_ANDROID_native_fence_sync = 0;
int SF_GLAD_EGL_ANDROID_presentation_time = 0;
int SF_GLAD_EGL_ANDROID_recordable = 0;
int SF_GLAD_EGL_ANDROID_telemetry_hint = 0;
int SF_GLAD_EGL_ANGLE_d3d_share_handle_client_buffer = 0;
int SF_GLAD_EGL_ANGLE_device_d3d = 0;
int SF_GLAD_EGL_ANGLE_query_surface_pointer = 0;
int SF_GLAD_EGL_ANGLE_surface_d3d_texture_2d_share_handle = 0;
int SF_GLAD_EGL_ANGLE_sync_control_rate = 0;
int SF_GLAD_EGL_ANGLE_window_fixed_size = 0;
int SF_GLAD_EGL_ARM_image_format = 0;
int SF_GLAD_EGL_ARM_implicit_external_sync = 0;
int SF_GLAD_EGL_ARM_pixmap_multisample_discard = 0;
int SF_GLAD_EGL_EXT_bind_to_front = 0;
int SF_GLAD_EGL_EXT_buffer_age = 0;
int SF_GLAD_EGL_EXT_client_extensions = 0;
int SF_GLAD_EGL_EXT_client_sync = 0;
int SF_GLAD_EGL_EXT_compositor = 0;
int SF_GLAD_EGL_EXT_config_select_group = 0;
int SF_GLAD_EGL_EXT_create_context_robustness = 0;
int SF_GLAD_EGL_EXT_device_base = 0;
int SF_GLAD_EGL_EXT_device_drm = 0;
int SF_GLAD_EGL_EXT_device_drm_render_node = 0;
int SF_GLAD_EGL_EXT_device_enumeration = 0;
int SF_GLAD_EGL_EXT_device_openwf = 0;
int SF_GLAD_EGL_EXT_device_persistent_id = 0;
int SF_GLAD_EGL_EXT_device_query = 0;
int SF_GLAD_EGL_EXT_device_query_name = 0;
int SF_GLAD_EGL_EXT_display_alloc = 0;
int SF_GLAD_EGL_EXT_explicit_device = 0;
int SF_GLAD_EGL_EXT_gl_colorspace_bt2020_hlg = 0;
int SF_GLAD_EGL_EXT_gl_colorspace_bt2020_linear = 0;
int SF_GLAD_EGL_EXT_gl_colorspace_bt2020_pq = 0;
int SF_GLAD_EGL_EXT_gl_colorspace_display_p3 = 0;
int SF_GLAD_EGL_EXT_gl_colorspace_display_p3_linear = 0;
int SF_GLAD_EGL_EXT_gl_colorspace_display_p3_passthrough = 0;
int SF_GLAD_EGL_EXT_gl_colorspace_scrgb = 0;
int SF_GLAD_EGL_EXT_gl_colorspace_scrgb_linear = 0;
int SF_GLAD_EGL_EXT_image_dma_buf_import = 0;
int SF_GLAD_EGL_EXT_image_dma_buf_import_modifiers = 0;
int SF_GLAD_EGL_EXT_image_gl_colorspace = 0;
int SF_GLAD_EGL_EXT_image_implicit_sync_control = 0;
int SF_GLAD_EGL_EXT_multiview_window = 0;
int SF_GLAD_EGL_EXT_output_base = 0;
int SF_GLAD_EGL_EXT_output_drm = 0;
int SF_GLAD_EGL_EXT_output_openwf = 0;
int SF_GLAD_EGL_EXT_pixel_format_float = 0;
int SF_GLAD_EGL_EXT_platform_base = 0;
int SF_GLAD_EGL_EXT_platform_device = 0;
int SF_GLAD_EGL_EXT_platform_wayland = 0;
int SF_GLAD_EGL_EXT_platform_x11 = 0;
int SF_GLAD_EGL_EXT_platform_xcb = 0;
int SF_GLAD_EGL_EXT_present_opaque = 0;
int SF_GLAD_EGL_EXT_protected_content = 0;
int SF_GLAD_EGL_EXT_protected_surface = 0;
int SF_GLAD_EGL_EXT_query_reset_notification_strategy = 0;
int SF_GLAD_EGL_EXT_stream_consumer_egloutput = 0;
int SF_GLAD_EGL_EXT_surface_CTA861_3_metadata = 0;
int SF_GLAD_EGL_EXT_surface_SMPTE2086_metadata = 0;
int SF_GLAD_EGL_EXT_surface_compression = 0;
int SF_GLAD_EGL_EXT_swap_buffers_with_damage = 0;
int SF_GLAD_EGL_EXT_sync_reuse = 0;
int SF_GLAD_EGL_EXT_yuv_surface = 0;
int SF_GLAD_EGL_HI_clientpixmap = 0;
int SF_GLAD_EGL_HI_colorformats = 0;
int SF_GLAD_EGL_IMG_context_priority = 0;
int SF_GLAD_EGL_IMG_image_plane_attribs = 0;
int SF_GLAD_EGL_KHR_cl_event = 0;
int SF_GLAD_EGL_KHR_cl_event2 = 0;
int SF_GLAD_EGL_KHR_client_get_all_proc_addresses = 0;
int SF_GLAD_EGL_KHR_config_attribs = 0;
int SF_GLAD_EGL_KHR_context_flush_control = 0;
int SF_GLAD_EGL_KHR_create_context = 0;
int SF_GLAD_EGL_KHR_create_context_no_error = 0;
int SF_GLAD_EGL_KHR_debug = 0;
int SF_GLAD_EGL_KHR_display_reference = 0;
int SF_GLAD_EGL_KHR_fence_sync = 0;
int SF_GLAD_EGL_KHR_get_all_proc_addresses = 0;
int SF_GLAD_EGL_KHR_gl_colorspace = 0;
int SF_GLAD_EGL_KHR_gl_renderbuffer_image = 0;
int SF_GLAD_EGL_KHR_gl_texture_2D_image = 0;
int SF_GLAD_EGL_KHR_gl_texture_3D_image = 0;
int SF_GLAD_EGL_KHR_gl_texture_cubemap_image = 0;
int SF_GLAD_EGL_KHR_image = 0;
int SF_GLAD_EGL_KHR_image_base = 0;
int SF_GLAD_EGL_KHR_image_pixmap = 0;
int SF_GLAD_EGL_KHR_lock_surface = 0;
int SF_GLAD_EGL_KHR_lock_surface2 = 0;
int SF_GLAD_EGL_KHR_lock_surface3 = 0;
int SF_GLAD_EGL_KHR_mutable_render_buffer = 0;
int SF_GLAD_EGL_KHR_no_config_context = 0;
int SF_GLAD_EGL_KHR_partial_update = 0;
int SF_GLAD_EGL_KHR_platform_android = 0;
int SF_GLAD_EGL_KHR_platform_gbm = 0;
int SF_GLAD_EGL_KHR_platform_wayland = 0;
int SF_GLAD_EGL_KHR_platform_x11 = 0;
int SF_GLAD_EGL_KHR_reusable_sync = 0;
int SF_GLAD_EGL_KHR_stream = 0;
int SF_GLAD_EGL_KHR_stream_attrib = 0;
int SF_GLAD_EGL_KHR_stream_consumer_gltexture = 0;
int SF_GLAD_EGL_KHR_stream_cross_process_fd = 0;
int SF_GLAD_EGL_KHR_stream_fifo = 0;
int SF_GLAD_EGL_KHR_stream_producer_aldatalocator = 0;
int SF_GLAD_EGL_KHR_stream_producer_eglsurface = 0;
int SF_GLAD_EGL_KHR_surfaceless_context = 0;
int SF_GLAD_EGL_KHR_swap_buffers_with_damage = 0;
int SF_GLAD_EGL_KHR_vg_parent_image = 0;
int SF_GLAD_EGL_KHR_wait_sync = 0;
int SF_GLAD_EGL_MESA_drm_image = 0;
int SF_GLAD_EGL_MESA_image_dma_buf_export = 0;
int SF_GLAD_EGL_MESA_platform_gbm = 0;
int SF_GLAD_EGL_MESA_platform_surfaceless = 0;
int SF_GLAD_EGL_MESA_query_driver = 0;
int SF_GLAD_EGL_NOK_swap_region = 0;
int SF_GLAD_EGL_NOK_swap_region2 = 0;
int SF_GLAD_EGL_NOK_texture_from_pixmap = 0;
int SF_GLAD_EGL_NV_3dvision_surface = 0;
int SF_GLAD_EGL_NV_context_priority_realtime = 0;
int SF_GLAD_EGL_NV_coverage_sample = 0;
int SF_GLAD_EGL_NV_coverage_sample_resolve = 0;
int SF_GLAD_EGL_NV_cuda_event = 0;
int SF_GLAD_EGL_NV_depth_nonlinear = 0;
int SF_GLAD_EGL_NV_device_cuda = 0;
int SF_GLAD_EGL_NV_native_query = 0;
int SF_GLAD_EGL_NV_post_convert_rounding = 0;
int SF_GLAD_EGL_NV_post_sub_buffer = 0;
int SF_GLAD_EGL_NV_quadruple_buffer = 0;
int SF_GLAD_EGL_NV_robustness_video_memory_purge = 0;
int SF_GLAD_EGL_NV_stream_consumer_eglimage = 0;
int SF_GLAD_EGL_NV_stream_consumer_eglimage_use_scanout_attrib = 0;
int SF_GLAD_EGL_NV_stream_consumer_gltexture_yuv = 0;
int SF_GLAD_EGL_NV_stream_cross_display = 0;
int SF_GLAD_EGL_NV_stream_cross_object = 0;
int SF_GLAD_EGL_NV_stream_cross_partition = 0;
int SF_GLAD_EGL_NV_stream_cross_process = 0;
int SF_GLAD_EGL_NV_stream_cross_system = 0;
int SF_GLAD_EGL_NV_stream_dma = 0;
int SF_GLAD_EGL_NV_stream_fifo_next = 0;
int SF_GLAD_EGL_NV_stream_fifo_synchronous = 0;
int SF_GLAD_EGL_NV_stream_flush = 0;
int SF_GLAD_EGL_NV_stream_frame_limits = 0;
int SF_GLAD_EGL_NV_stream_metadata = 0;
int SF_GLAD_EGL_NV_stream_origin = 0;
int SF_GLAD_EGL_NV_stream_remote = 0;
int SF_GLAD_EGL_NV_stream_reset = 0;
int SF_GLAD_EGL_NV_stream_socket = 0;
int SF_GLAD_EGL_NV_stream_socket_inet = 0;
int SF_GLAD_EGL_NV_stream_socket_unix = 0;
int SF_GLAD_EGL_NV_stream_sync = 0;
int SF_GLAD_EGL_NV_sync = 0;
int SF_GLAD_EGL_NV_system_time = 0;
int SF_GLAD_EGL_NV_triple_buffer = 0;
int SF_GLAD_EGL_QNX_image_native_buffer = 0;
int SF_GLAD_EGL_QNX_platform_screen = 0;
int SF_GLAD_EGL_TIZEN_image_native_buffer = 0;
int SF_GLAD_EGL_TIZEN_image_native_surface = 0;
int SF_GLAD_EGL_WL_bind_wayland_display = 0;
int SF_GLAD_EGL_WL_create_wayland_buffer_from_image = 0;



PFNEGLBINDAPIPROC sf_glad_eglBindAPI = NULL;
PFNEGLBINDTEXIMAGEPROC sf_glad_eglBindTexImage = NULL;
PFNEGLBINDWAYLANDDISPLAYWLPROC sf_glad_eglBindWaylandDisplayWL = NULL;
PFNEGLCHOOSECONFIGPROC sf_glad_eglChooseConfig = NULL;
PFNEGLCLIENTSIGNALSYNCEXTPROC sf_glad_eglClientSignalSyncEXT = NULL;
PFNEGLCLIENTWAITSYNCPROC sf_glad_eglClientWaitSync = NULL;
PFNEGLCLIENTWAITSYNCKHRPROC sf_glad_eglClientWaitSyncKHR = NULL;
PFNEGLCLIENTWAITSYNCNVPROC sf_glad_eglClientWaitSyncNV = NULL;
PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC sf_glad_eglCompositorBindTexWindowEXT = NULL;
PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC sf_glad_eglCompositorSetContextAttributesEXT = NULL;
PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC sf_glad_eglCompositorSetContextListEXT = NULL;
PFNEGLCOMPOSITORSETSIZEEXTPROC sf_glad_eglCompositorSetSizeEXT = NULL;
PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC sf_glad_eglCompositorSetWindowAttributesEXT = NULL;
PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC sf_glad_eglCompositorSetWindowListEXT = NULL;
PFNEGLCOMPOSITORSWAPPOLICYEXTPROC sf_glad_eglCompositorSwapPolicyEXT = NULL;
PFNEGLCOPYBUFFERSPROC sf_glad_eglCopyBuffers = NULL;
PFNEGLCREATECONTEXTPROC sf_glad_eglCreateContext = NULL;
PFNEGLCREATEDRMIMAGEMESAPROC sf_glad_eglCreateDRMImageMESA = NULL;
PFNEGLCREATEFENCESYNCNVPROC sf_glad_eglCreateFenceSyncNV = NULL;
PFNEGLCREATEIMAGEPROC sf_glad_eglCreateImage = NULL;
PFNEGLCREATEIMAGEKHRPROC sf_glad_eglCreateImageKHR = NULL;
PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC sf_glad_eglCreateNativeClientBufferANDROID = NULL;
PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC sf_glad_eglCreatePbufferFromClientBuffer = NULL;
PFNEGLCREATEPBUFFERSURFACEPROC sf_glad_eglCreatePbufferSurface = NULL;
PFNEGLCREATEPIXMAPSURFACEPROC sf_glad_eglCreatePixmapSurface = NULL;
PFNEGLCREATEPIXMAPSURFACEHIPROC sf_glad_eglCreatePixmapSurfaceHI = NULL;
PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC sf_glad_eglCreatePlatformPixmapSurface = NULL;
PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC sf_glad_eglCreatePlatformPixmapSurfaceEXT = NULL;
PFNEGLCREATEPLATFORMWINDOWSURFACEPROC sf_glad_eglCreatePlatformWindowSurface = NULL;
PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC sf_glad_eglCreatePlatformWindowSurfaceEXT = NULL;
PFNEGLCREATESTREAMATTRIBKHRPROC sf_glad_eglCreateStreamAttribKHR = NULL;
PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC sf_glad_eglCreateStreamFromFileDescriptorKHR = NULL;
PFNEGLCREATESTREAMKHRPROC sf_glad_eglCreateStreamKHR = NULL;
PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC sf_glad_eglCreateStreamProducerSurfaceKHR = NULL;
PFNEGLCREATESTREAMSYNCNVPROC sf_glad_eglCreateStreamSyncNV = NULL;
PFNEGLCREATESYNCPROC sf_glad_eglCreateSync = NULL;
PFNEGLCREATESYNC64KHRPROC sf_glad_eglCreateSync64KHR = NULL;
PFNEGLCREATESYNCKHRPROC sf_glad_eglCreateSyncKHR = NULL;
PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC sf_glad_eglCreateWaylandBufferFromImageWL = NULL;
PFNEGLCREATEWINDOWSURFACEPROC sf_glad_eglCreateWindowSurface = NULL;
PFNEGLDEBUGMESSAGECONTROLKHRPROC sf_glad_eglDebugMessageControlKHR = NULL;
PFNEGLDESTROYCONTEXTPROC sf_glad_eglDestroyContext = NULL;
PFNEGLDESTROYDISPLAYEXTPROC sf_glad_eglDestroyDisplayEXT = NULL;
PFNEGLDESTROYIMAGEPROC sf_glad_eglDestroyImage = NULL;
PFNEGLDESTROYIMAGEKHRPROC sf_glad_eglDestroyImageKHR = NULL;
PFNEGLDESTROYSTREAMKHRPROC sf_glad_eglDestroyStreamKHR = NULL;
PFNEGLDESTROYSURFACEPROC sf_glad_eglDestroySurface = NULL;
PFNEGLDESTROYSYNCPROC sf_glad_eglDestroySync = NULL;
PFNEGLDESTROYSYNCKHRPROC sf_glad_eglDestroySyncKHR = NULL;
PFNEGLDESTROYSYNCNVPROC sf_glad_eglDestroySyncNV = NULL;
PFNEGLDUPNATIVEFENCEFDANDROIDPROC sf_glad_eglDupNativeFenceFDANDROID = NULL;
PFNEGLEXPORTDMABUFIMAGEMESAPROC sf_glad_eglExportDMABUFImageMESA = NULL;
PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC sf_glad_eglExportDMABUFImageQueryMESA = NULL;
PFNEGLEXPORTDRMIMAGEMESAPROC sf_glad_eglExportDRMImageMESA = NULL;
PFNEGLFENCENVPROC sf_glad_eglFenceNV = NULL;
PFNEGLGETCOMPOSITORTIMINGANDROIDPROC sf_glad_eglGetCompositorTimingANDROID = NULL;
PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC sf_glad_eglGetCompositorTimingSupportedANDROID = NULL;
PFNEGLGETCONFIGATTRIBPROC sf_glad_eglGetConfigAttrib = NULL;
PFNEGLGETCONFIGSPROC sf_glad_eglGetConfigs = NULL;
PFNEGLGETCURRENTCONTEXTPROC sf_glad_eglGetCurrentContext = NULL;
PFNEGLGETCURRENTDISPLAYPROC sf_glad_eglGetCurrentDisplay = NULL;
PFNEGLGETCURRENTSURFACEPROC sf_glad_eglGetCurrentSurface = NULL;
PFNEGLGETDISPLAYPROC sf_glad_eglGetDisplay = NULL;
PFNEGLGETDISPLAYDRIVERCONFIGPROC sf_glad_eglGetDisplayDriverConfig = NULL;
PFNEGLGETDISPLAYDRIVERNAMEPROC sf_glad_eglGetDisplayDriverName = NULL;
PFNEGLGETERRORPROC sf_glad_eglGetError = NULL;
PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC sf_glad_eglGetFrameTimestampSupportedANDROID = NULL;
PFNEGLGETFRAMETIMESTAMPSANDROIDPROC sf_glad_eglGetFrameTimestampsANDROID = NULL;
PFNEGLGETMSCRATEANGLEPROC sf_glad_eglGetMscRateANGLE = NULL;
PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC sf_glad_eglGetNativeClientBufferANDROID = NULL;
PFNEGLGETNEXTFRAMEIDANDROIDPROC sf_glad_eglGetNextFrameIdANDROID = NULL;
PFNEGLGETOUTPUTLAYERSEXTPROC sf_glad_eglGetOutputLayersEXT = NULL;
PFNEGLGETOUTPUTPORTSEXTPROC sf_glad_eglGetOutputPortsEXT = NULL;
PFNEGLGETPLATFORMDISPLAYPROC sf_glad_eglGetPlatformDisplay = NULL;
PFNEGLGETPLATFORMDISPLAYEXTPROC sf_glad_eglGetPlatformDisplayEXT = NULL;
PFNEGLGETPROCADDRESSPROC sf_glad_eglGetProcAddress = NULL;
PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC sf_glad_eglGetStreamFileDescriptorKHR = NULL;
PFNEGLGETSYNCATTRIBPROC sf_glad_eglGetSyncAttrib = NULL;
PFNEGLGETSYNCATTRIBKHRPROC sf_glad_eglGetSyncAttribKHR = NULL;
PFNEGLGETSYNCATTRIBNVPROC sf_glad_eglGetSyncAttribNV = NULL;
PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC sf_glad_eglGetSystemTimeFrequencyNV = NULL;
PFNEGLGETSYSTEMTIMENVPROC sf_glad_eglGetSystemTimeNV = NULL;
PFNEGLINITIALIZEPROC sf_glad_eglInitialize = NULL;
PFNEGLLABELOBJECTKHRPROC sf_glad_eglLabelObjectKHR = NULL;
PFNEGLLOCKSURFACEKHRPROC sf_glad_eglLockSurfaceKHR = NULL;
PFNEGLMAKECURRENTPROC sf_glad_eglMakeCurrent = NULL;
PFNEGLOUTPUTLAYERATTRIBEXTPROC sf_glad_eglOutputLayerAttribEXT = NULL;
PFNEGLOUTPUTPORTATTRIBEXTPROC sf_glad_eglOutputPortAttribEXT = NULL;
PFNEGLPOSTSUBBUFFERNVPROC sf_glad_eglPostSubBufferNV = NULL;
PFNEGLPRESENTATIONTIMEANDROIDPROC sf_glad_eglPresentationTimeANDROID = NULL;
PFNEGLQUERYAPIPROC sf_glad_eglQueryAPI = NULL;
PFNEGLQUERYCONTEXTPROC sf_glad_eglQueryContext = NULL;
PFNEGLQUERYDEBUGKHRPROC sf_glad_eglQueryDebugKHR = NULL;
PFNEGLQUERYDEVICEATTRIBEXTPROC sf_glad_eglQueryDeviceAttribEXT = NULL;
PFNEGLQUERYDEVICEBINARYEXTPROC sf_glad_eglQueryDeviceBinaryEXT = NULL;
PFNEGLQUERYDEVICESTRINGEXTPROC sf_glad_eglQueryDeviceStringEXT = NULL;
PFNEGLQUERYDEVICESEXTPROC sf_glad_eglQueryDevicesEXT = NULL;
PFNEGLQUERYDISPLAYATTRIBEXTPROC sf_glad_eglQueryDisplayAttribEXT = NULL;
PFNEGLQUERYDISPLAYATTRIBKHRPROC sf_glad_eglQueryDisplayAttribKHR = NULL;
PFNEGLQUERYDISPLAYATTRIBNVPROC sf_glad_eglQueryDisplayAttribNV = NULL;
PFNEGLQUERYDMABUFFORMATSEXTPROC sf_glad_eglQueryDmaBufFormatsEXT = NULL;
PFNEGLQUERYDMABUFMODIFIERSEXTPROC sf_glad_eglQueryDmaBufModifiersEXT = NULL;
PFNEGLQUERYNATIVEDISPLAYNVPROC sf_glad_eglQueryNativeDisplayNV = NULL;
PFNEGLQUERYNATIVEPIXMAPNVPROC sf_glad_eglQueryNativePixmapNV = NULL;
PFNEGLQUERYNATIVEWINDOWNVPROC sf_glad_eglQueryNativeWindowNV = NULL;
PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC sf_glad_eglQueryOutputLayerAttribEXT = NULL;
PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC sf_glad_eglQueryOutputLayerStringEXT = NULL;
PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC sf_glad_eglQueryOutputPortAttribEXT = NULL;
PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC sf_glad_eglQueryOutputPortStringEXT = NULL;
PFNEGLQUERYSTREAMATTRIBKHRPROC sf_glad_eglQueryStreamAttribKHR = NULL;
PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC sf_glad_eglQueryStreamConsumerEventNV = NULL;
PFNEGLQUERYSTREAMKHRPROC sf_glad_eglQueryStreamKHR = NULL;
PFNEGLQUERYSTREAMMETADATANVPROC sf_glad_eglQueryStreamMetadataNV = NULL;
PFNEGLQUERYSTREAMTIMEKHRPROC sf_glad_eglQueryStreamTimeKHR = NULL;
PFNEGLQUERYSTREAMU64KHRPROC sf_glad_eglQueryStreamu64KHR = NULL;
PFNEGLQUERYSTRINGPROC sf_glad_eglQueryString = NULL;
PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC sf_glad_eglQuerySupportedCompressionRatesEXT = NULL;
PFNEGLQUERYSURFACEPROC sf_glad_eglQuerySurface = NULL;
PFNEGLQUERYSURFACE64KHRPROC sf_glad_eglQuerySurface64KHR = NULL;
PFNEGLQUERYSURFACEPOINTERANGLEPROC sf_glad_eglQuerySurfacePointerANGLE = NULL;
PFNEGLQUERYWAYLANDBUFFERWLPROC sf_glad_eglQueryWaylandBufferWL = NULL;
PFNEGLRELEASETEXIMAGEPROC sf_glad_eglReleaseTexImage = NULL;
PFNEGLRELEASETHREADPROC sf_glad_eglReleaseThread = NULL;
PFNEGLRESETSTREAMNVPROC sf_glad_eglResetStreamNV = NULL;
PFNEGLSETBLOBCACHEFUNCSANDROIDPROC sf_glad_eglSetBlobCacheFuncsANDROID = NULL;
PFNEGLSETDAMAGEREGIONKHRPROC sf_glad_eglSetDamageRegionKHR = NULL;
PFNEGLSETSTREAMATTRIBKHRPROC sf_glad_eglSetStreamAttribKHR = NULL;
PFNEGLSETSTREAMMETADATANVPROC sf_glad_eglSetStreamMetadataNV = NULL;
PFNEGLSIGNALSYNCKHRPROC sf_glad_eglSignalSyncKHR = NULL;
PFNEGLSIGNALSYNCNVPROC sf_glad_eglSignalSyncNV = NULL;
PFNEGLSTREAMACQUIREIMAGENVPROC sf_glad_eglStreamAcquireImageNV = NULL;
PFNEGLSTREAMATTRIBKHRPROC sf_glad_eglStreamAttribKHR = NULL;
PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC sf_glad_eglStreamConsumerAcquireAttribKHR = NULL;
PFNEGLSTREAMCONSUMERACQUIREKHRPROC sf_glad_eglStreamConsumerAcquireKHR = NULL;
PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC sf_glad_eglStreamConsumerGLTextureExternalAttribsNV = NULL;
PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC sf_glad_eglStreamConsumerGLTextureExternalKHR = NULL;
PFNEGLSTREAMCONSUMEROUTPUTEXTPROC sf_glad_eglStreamConsumerOutputEXT = NULL;
PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC sf_glad_eglStreamConsumerReleaseAttribKHR = NULL;
PFNEGLSTREAMCONSUMERRELEASEKHRPROC sf_glad_eglStreamConsumerReleaseKHR = NULL;
PFNEGLSTREAMFLUSHNVPROC sf_glad_eglStreamFlushNV = NULL;
PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC sf_glad_eglStreamImageConsumerConnectNV = NULL;
PFNEGLSTREAMRELEASEIMAGENVPROC sf_glad_eglStreamReleaseImageNV = NULL;
PFNEGLSURFACEATTRIBPROC sf_glad_eglSurfaceAttrib = NULL;
PFNEGLSWAPBUFFERSPROC sf_glad_eglSwapBuffers = NULL;
PFNEGLSWAPBUFFERSREGION2NOKPROC sf_glad_eglSwapBuffersRegion2NOK = NULL;
PFNEGLSWAPBUFFERSREGIONNOKPROC sf_glad_eglSwapBuffersRegionNOK = NULL;
PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC sf_glad_eglSwapBuffersWithDamageEXT = NULL;
PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC sf_glad_eglSwapBuffersWithDamageKHR = NULL;
PFNEGLSWAPINTERVALPROC sf_glad_eglSwapInterval = NULL;
PFNEGLTERMINATEPROC sf_glad_eglTerminate = NULL;
PFNEGLUNBINDWAYLANDDISPLAYWLPROC sf_glad_eglUnbindWaylandDisplayWL = NULL;
PFNEGLUNLOCKSURFACEKHRPROC sf_glad_eglUnlockSurfaceKHR = NULL;
PFNEGLUNSIGNALSYNCEXTPROC sf_glad_eglUnsignalSyncEXT = NULL;
PFNEGLWAITCLIENTPROC sf_glad_eglWaitClient = NULL;
PFNEGLWAITGLPROC sf_glad_eglWaitGL = NULL;
PFNEGLWAITNATIVEPROC sf_glad_eglWaitNative = NULL;
PFNEGLWAITSYNCPROC sf_glad_eglWaitSync = NULL;
PFNEGLWAITSYNCKHRPROC sf_glad_eglWaitSyncKHR = NULL;


static void sf_glad_egl_load_EGL_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_VERSION_1_0) return;
    sf_glad_eglChooseConfig = (PFNEGLCHOOSECONFIGPROC) load(userptr, "eglChooseConfig");
    sf_glad_eglCopyBuffers = (PFNEGLCOPYBUFFERSPROC) load(userptr, "eglCopyBuffers");
    sf_glad_eglCreateContext = (PFNEGLCREATECONTEXTPROC) load(userptr, "eglCreateContext");
    sf_glad_eglCreatePbufferSurface = (PFNEGLCREATEPBUFFERSURFACEPROC) load(userptr, "eglCreatePbufferSurface");
    sf_glad_eglCreatePixmapSurface = (PFNEGLCREATEPIXMAPSURFACEPROC) load(userptr, "eglCreatePixmapSurface");
    sf_glad_eglCreateWindowSurface = (PFNEGLCREATEWINDOWSURFACEPROC) load(userptr, "eglCreateWindowSurface");
    sf_glad_eglDestroyContext = (PFNEGLDESTROYCONTEXTPROC) load(userptr, "eglDestroyContext");
    sf_glad_eglDestroySurface = (PFNEGLDESTROYSURFACEPROC) load(userptr, "eglDestroySurface");
    sf_glad_eglGetConfigAttrib = (PFNEGLGETCONFIGATTRIBPROC) load(userptr, "eglGetConfigAttrib");
    sf_glad_eglGetConfigs = (PFNEGLGETCONFIGSPROC) load(userptr, "eglGetConfigs");
    sf_glad_eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) load(userptr, "eglGetCurrentDisplay");
    sf_glad_eglGetCurrentSurface = (PFNEGLGETCURRENTSURFACEPROC) load(userptr, "eglGetCurrentSurface");
    sf_glad_eglGetDisplay = (PFNEGLGETDISPLAYPROC) load(userptr, "eglGetDisplay");
    sf_glad_eglGetError = (PFNEGLGETERRORPROC) load(userptr, "eglGetError");
    sf_glad_eglGetProcAddress = (PFNEGLGETPROCADDRESSPROC) load(userptr, "eglGetProcAddress");
    sf_glad_eglInitialize = (PFNEGLINITIALIZEPROC) load(userptr, "eglInitialize");
    sf_glad_eglMakeCurrent = (PFNEGLMAKECURRENTPROC) load(userptr, "eglMakeCurrent");
    sf_glad_eglQueryContext = (PFNEGLQUERYCONTEXTPROC) load(userptr, "eglQueryContext");
    sf_glad_eglQueryString = (PFNEGLQUERYSTRINGPROC) load(userptr, "eglQueryString");
    sf_glad_eglQuerySurface = (PFNEGLQUERYSURFACEPROC) load(userptr, "eglQuerySurface");
    sf_glad_eglSwapBuffers = (PFNEGLSWAPBUFFERSPROC) load(userptr, "eglSwapBuffers");
    sf_glad_eglTerminate = (PFNEGLTERMINATEPROC) load(userptr, "eglTerminate");
    sf_glad_eglWaitGL = (PFNEGLWAITGLPROC) load(userptr, "eglWaitGL");
    sf_glad_eglWaitNative = (PFNEGLWAITNATIVEPROC) load(userptr, "eglWaitNative");
}
static void sf_glad_egl_load_EGL_VERSION_1_1( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_VERSION_1_1) return;
    sf_glad_eglBindTexImage = (PFNEGLBINDTEXIMAGEPROC) load(userptr, "eglBindTexImage");
    sf_glad_eglReleaseTexImage = (PFNEGLRELEASETEXIMAGEPROC) load(userptr, "eglReleaseTexImage");
    sf_glad_eglSurfaceAttrib = (PFNEGLSURFACEATTRIBPROC) load(userptr, "eglSurfaceAttrib");
    sf_glad_eglSwapInterval = (PFNEGLSWAPINTERVALPROC) load(userptr, "eglSwapInterval");
}
static void sf_glad_egl_load_EGL_VERSION_1_2( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_VERSION_1_2) return;
    sf_glad_eglBindAPI = (PFNEGLBINDAPIPROC) load(userptr, "eglBindAPI");
    sf_glad_eglCreatePbufferFromClientBuffer = (PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) load(userptr, "eglCreatePbufferFromClientBuffer");
    sf_glad_eglQueryAPI = (PFNEGLQUERYAPIPROC) load(userptr, "eglQueryAPI");
    sf_glad_eglReleaseThread = (PFNEGLRELEASETHREADPROC) load(userptr, "eglReleaseThread");
    sf_glad_eglWaitClient = (PFNEGLWAITCLIENTPROC) load(userptr, "eglWaitClient");
}
static void sf_glad_egl_load_EGL_VERSION_1_4( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_VERSION_1_4) return;
    sf_glad_eglGetCurrentContext = (PFNEGLGETCURRENTCONTEXTPROC) load(userptr, "eglGetCurrentContext");
}
static void sf_glad_egl_load_EGL_VERSION_1_5( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_VERSION_1_5) return;
    sf_glad_eglClientWaitSync = (PFNEGLCLIENTWAITSYNCPROC) load(userptr, "eglClientWaitSync");
    sf_glad_eglCreateImage = (PFNEGLCREATEIMAGEPROC) load(userptr, "eglCreateImage");
    sf_glad_eglCreatePlatformPixmapSurface = (PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) load(userptr, "eglCreatePlatformPixmapSurface");
    sf_glad_eglCreatePlatformWindowSurface = (PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) load(userptr, "eglCreatePlatformWindowSurface");
    sf_glad_eglCreateSync = (PFNEGLCREATESYNCPROC) load(userptr, "eglCreateSync");
    sf_glad_eglDestroyImage = (PFNEGLDESTROYIMAGEPROC) load(userptr, "eglDestroyImage");
    sf_glad_eglDestroySync = (PFNEGLDESTROYSYNCPROC) load(userptr, "eglDestroySync");
    sf_glad_eglGetPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYPROC) load(userptr, "eglGetPlatformDisplay");
    sf_glad_eglGetSyncAttrib = (PFNEGLGETSYNCATTRIBPROC) load(userptr, "eglGetSyncAttrib");
    sf_glad_eglWaitSync = (PFNEGLWAITSYNCPROC) load(userptr, "eglWaitSync");
}
static void sf_glad_egl_load_EGL_ANDROID_blob_cache( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_ANDROID_blob_cache) return;
    sf_glad_eglSetBlobCacheFuncsANDROID = (PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) load(userptr, "eglSetBlobCacheFuncsANDROID");
}
static void sf_glad_egl_load_EGL_ANDROID_create_native_client_buffer( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_ANDROID_create_native_client_buffer) return;
    sf_glad_eglCreateNativeClientBufferANDROID = (PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) load(userptr, "eglCreateNativeClientBufferANDROID");
}
static void sf_glad_egl_load_EGL_ANDROID_get_frame_timestamps( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_ANDROID_get_frame_timestamps) return;
    sf_glad_eglGetCompositorTimingANDROID = (PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) load(userptr, "eglGetCompositorTimingANDROID");
    sf_glad_eglGetCompositorTimingSupportedANDROID = (PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) load(userptr, "eglGetCompositorTimingSupportedANDROID");
    sf_glad_eglGetFrameTimestampSupportedANDROID = (PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) load(userptr, "eglGetFrameTimestampSupportedANDROID");
    sf_glad_eglGetFrameTimestampsANDROID = (PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) load(userptr, "eglGetFrameTimestampsANDROID");
    sf_glad_eglGetNextFrameIdANDROID = (PFNEGLGETNEXTFRAMEIDANDROIDPROC) load(userptr, "eglGetNextFrameIdANDROID");
}
static void sf_glad_egl_load_EGL_ANDROID_get_native_client_buffer( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_ANDROID_get_native_client_buffer) return;
    sf_glad_eglGetNativeClientBufferANDROID = (PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) load(userptr, "eglGetNativeClientBufferANDROID");
}
static void sf_glad_egl_load_EGL_ANDROID_native_fence_sync( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_ANDROID_native_fence_sync) return;
    sf_glad_eglDupNativeFenceFDANDROID = (PFNEGLDUPNATIVEFENCEFDANDROIDPROC) load(userptr, "eglDupNativeFenceFDANDROID");
}
static void sf_glad_egl_load_EGL_ANDROID_presentation_time( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_ANDROID_presentation_time) return;
    sf_glad_eglPresentationTimeANDROID = (PFNEGLPRESENTATIONTIMEANDROIDPROC) load(userptr, "eglPresentationTimeANDROID");
}
static void sf_glad_egl_load_EGL_ANGLE_query_surface_pointer( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_ANGLE_query_surface_pointer) return;
    sf_glad_eglQuerySurfacePointerANGLE = (PFNEGLQUERYSURFACEPOINTERANGLEPROC) load(userptr, "eglQuerySurfacePointerANGLE");
}
static void sf_glad_egl_load_EGL_ANGLE_sync_control_rate( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_ANGLE_sync_control_rate) return;
    sf_glad_eglGetMscRateANGLE = (PFNEGLGETMSCRATEANGLEPROC) load(userptr, "eglGetMscRateANGLE");
}
static void sf_glad_egl_load_EGL_EXT_client_sync( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_client_sync) return;
    sf_glad_eglClientSignalSyncEXT = (PFNEGLCLIENTSIGNALSYNCEXTPROC) load(userptr, "eglClientSignalSyncEXT");
}
static void sf_glad_egl_load_EGL_EXT_compositor( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_compositor) return;
    sf_glad_eglCompositorBindTexWindowEXT = (PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC) load(userptr, "eglCompositorBindTexWindowEXT");
    sf_glad_eglCompositorSetContextAttributesEXT = (PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC) load(userptr, "eglCompositorSetContextAttributesEXT");
    sf_glad_eglCompositorSetContextListEXT = (PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC) load(userptr, "eglCompositorSetContextListEXT");
    sf_glad_eglCompositorSetSizeEXT = (PFNEGLCOMPOSITORSETSIZEEXTPROC) load(userptr, "eglCompositorSetSizeEXT");
    sf_glad_eglCompositorSetWindowAttributesEXT = (PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC) load(userptr, "eglCompositorSetWindowAttributesEXT");
    sf_glad_eglCompositorSetWindowListEXT = (PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC) load(userptr, "eglCompositorSetWindowListEXT");
    sf_glad_eglCompositorSwapPolicyEXT = (PFNEGLCOMPOSITORSWAPPOLICYEXTPROC) load(userptr, "eglCompositorSwapPolicyEXT");
}
static void sf_glad_egl_load_EGL_EXT_device_base( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_device_base) return;
    sf_glad_eglQueryDeviceAttribEXT = (PFNEGLQUERYDEVICEATTRIBEXTPROC) load(userptr, "eglQueryDeviceAttribEXT");
    sf_glad_eglQueryDeviceStringEXT = (PFNEGLQUERYDEVICESTRINGEXTPROC) load(userptr, "eglQueryDeviceStringEXT");
    sf_glad_eglQueryDevicesEXT = (PFNEGLQUERYDEVICESEXTPROC) load(userptr, "eglQueryDevicesEXT");
    sf_glad_eglQueryDisplayAttribEXT = (PFNEGLQUERYDISPLAYATTRIBEXTPROC) load(userptr, "eglQueryDisplayAttribEXT");
}
static void sf_glad_egl_load_EGL_EXT_device_enumeration( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_device_enumeration) return;
    sf_glad_eglQueryDevicesEXT = (PFNEGLQUERYDEVICESEXTPROC) load(userptr, "eglQueryDevicesEXT");
}
static void sf_glad_egl_load_EGL_EXT_device_persistent_id( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_device_persistent_id) return;
    sf_glad_eglQueryDeviceBinaryEXT = (PFNEGLQUERYDEVICEBINARYEXTPROC) load(userptr, "eglQueryDeviceBinaryEXT");
}
static void sf_glad_egl_load_EGL_EXT_device_query( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_device_query) return;
    sf_glad_eglQueryDeviceAttribEXT = (PFNEGLQUERYDEVICEATTRIBEXTPROC) load(userptr, "eglQueryDeviceAttribEXT");
    sf_glad_eglQueryDeviceStringEXT = (PFNEGLQUERYDEVICESTRINGEXTPROC) load(userptr, "eglQueryDeviceStringEXT");
    sf_glad_eglQueryDisplayAttribEXT = (PFNEGLQUERYDISPLAYATTRIBEXTPROC) load(userptr, "eglQueryDisplayAttribEXT");
}
static void sf_glad_egl_load_EGL_EXT_display_alloc( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_display_alloc) return;
    sf_glad_eglDestroyDisplayEXT = (PFNEGLDESTROYDISPLAYEXTPROC) load(userptr, "eglDestroyDisplayEXT");
}
static void sf_glad_egl_load_EGL_EXT_image_dma_buf_import_modifiers( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_image_dma_buf_import_modifiers) return;
    sf_glad_eglQueryDmaBufFormatsEXT = (PFNEGLQUERYDMABUFFORMATSEXTPROC) load(userptr, "eglQueryDmaBufFormatsEXT");
    sf_glad_eglQueryDmaBufModifiersEXT = (PFNEGLQUERYDMABUFMODIFIERSEXTPROC) load(userptr, "eglQueryDmaBufModifiersEXT");
}
static void sf_glad_egl_load_EGL_EXT_output_base( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_output_base) return;
    sf_glad_eglGetOutputLayersEXT = (PFNEGLGETOUTPUTLAYERSEXTPROC) load(userptr, "eglGetOutputLayersEXT");
    sf_glad_eglGetOutputPortsEXT = (PFNEGLGETOUTPUTPORTSEXTPROC) load(userptr, "eglGetOutputPortsEXT");
    sf_glad_eglOutputLayerAttribEXT = (PFNEGLOUTPUTLAYERATTRIBEXTPROC) load(userptr, "eglOutputLayerAttribEXT");
    sf_glad_eglOutputPortAttribEXT = (PFNEGLOUTPUTPORTATTRIBEXTPROC) load(userptr, "eglOutputPortAttribEXT");
    sf_glad_eglQueryOutputLayerAttribEXT = (PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) load(userptr, "eglQueryOutputLayerAttribEXT");
    sf_glad_eglQueryOutputLayerStringEXT = (PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) load(userptr, "eglQueryOutputLayerStringEXT");
    sf_glad_eglQueryOutputPortAttribEXT = (PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) load(userptr, "eglQueryOutputPortAttribEXT");
    sf_glad_eglQueryOutputPortStringEXT = (PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) load(userptr, "eglQueryOutputPortStringEXT");
}
static void sf_glad_egl_load_EGL_EXT_platform_base( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_platform_base) return;
    sf_glad_eglCreatePlatformPixmapSurfaceEXT = (PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) load(userptr, "eglCreatePlatformPixmapSurfaceEXT");
    sf_glad_eglCreatePlatformWindowSurfaceEXT = (PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) load(userptr, "eglCreatePlatformWindowSurfaceEXT");
    sf_glad_eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC) load(userptr, "eglGetPlatformDisplayEXT");
}
static void sf_glad_egl_load_EGL_EXT_stream_consumer_egloutput( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_stream_consumer_egloutput) return;
    sf_glad_eglStreamConsumerOutputEXT = (PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) load(userptr, "eglStreamConsumerOutputEXT");
}
static void sf_glad_egl_load_EGL_EXT_surface_compression( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_surface_compression) return;
    sf_glad_eglQuerySupportedCompressionRatesEXT = (PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC) load(userptr, "eglQuerySupportedCompressionRatesEXT");
}
static void sf_glad_egl_load_EGL_EXT_swap_buffers_with_damage( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_swap_buffers_with_damage) return;
    sf_glad_eglSwapBuffersWithDamageEXT = (PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) load(userptr, "eglSwapBuffersWithDamageEXT");
}
static void sf_glad_egl_load_EGL_EXT_sync_reuse( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_EXT_sync_reuse) return;
    sf_glad_eglUnsignalSyncEXT = (PFNEGLUNSIGNALSYNCEXTPROC) load(userptr, "eglUnsignalSyncEXT");
}
static void sf_glad_egl_load_EGL_HI_clientpixmap( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_HI_clientpixmap) return;
    sf_glad_eglCreatePixmapSurfaceHI = (PFNEGLCREATEPIXMAPSURFACEHIPROC) load(userptr, "eglCreatePixmapSurfaceHI");
}
static void sf_glad_egl_load_EGL_KHR_cl_event2( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_cl_event2) return;
    sf_glad_eglCreateSync64KHR = (PFNEGLCREATESYNC64KHRPROC) load(userptr, "eglCreateSync64KHR");
}
static void sf_glad_egl_load_EGL_KHR_debug( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_debug) return;
    sf_glad_eglDebugMessageControlKHR = (PFNEGLDEBUGMESSAGECONTROLKHRPROC) load(userptr, "eglDebugMessageControlKHR");
    sf_glad_eglLabelObjectKHR = (PFNEGLLABELOBJECTKHRPROC) load(userptr, "eglLabelObjectKHR");
    sf_glad_eglQueryDebugKHR = (PFNEGLQUERYDEBUGKHRPROC) load(userptr, "eglQueryDebugKHR");
}
static void sf_glad_egl_load_EGL_KHR_display_reference( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_display_reference) return;
    sf_glad_eglQueryDisplayAttribKHR = (PFNEGLQUERYDISPLAYATTRIBKHRPROC) load(userptr, "eglQueryDisplayAttribKHR");
}
static void sf_glad_egl_load_EGL_KHR_fence_sync( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_fence_sync) return;
    sf_glad_eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC) load(userptr, "eglClientWaitSyncKHR");
    sf_glad_eglCreateSyncKHR = (PFNEGLCREATESYNCKHRPROC) load(userptr, "eglCreateSyncKHR");
    sf_glad_eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC) load(userptr, "eglDestroySyncKHR");
    sf_glad_eglGetSyncAttribKHR = (PFNEGLGETSYNCATTRIBKHRPROC) load(userptr, "eglGetSyncAttribKHR");
}
static void sf_glad_egl_load_EGL_KHR_image( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_image) return;
    sf_glad_eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC) load(userptr, "eglCreateImageKHR");
    sf_glad_eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC) load(userptr, "eglDestroyImageKHR");
}
static void sf_glad_egl_load_EGL_KHR_image_base( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_image_base) return;
    sf_glad_eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC) load(userptr, "eglCreateImageKHR");
    sf_glad_eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC) load(userptr, "eglDestroyImageKHR");
}
static void sf_glad_egl_load_EGL_KHR_lock_surface( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_lock_surface) return;
    sf_glad_eglLockSurfaceKHR = (PFNEGLLOCKSURFACEKHRPROC) load(userptr, "eglLockSurfaceKHR");
    sf_glad_eglUnlockSurfaceKHR = (PFNEGLUNLOCKSURFACEKHRPROC) load(userptr, "eglUnlockSurfaceKHR");
}
static void sf_glad_egl_load_EGL_KHR_lock_surface3( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_lock_surface3) return;
    sf_glad_eglLockSurfaceKHR = (PFNEGLLOCKSURFACEKHRPROC) load(userptr, "eglLockSurfaceKHR");
    sf_glad_eglQuerySurface64KHR = (PFNEGLQUERYSURFACE64KHRPROC) load(userptr, "eglQuerySurface64KHR");
    sf_glad_eglUnlockSurfaceKHR = (PFNEGLUNLOCKSURFACEKHRPROC) load(userptr, "eglUnlockSurfaceKHR");
}
static void sf_glad_egl_load_EGL_KHR_partial_update( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_partial_update) return;
    sf_glad_eglSetDamageRegionKHR = (PFNEGLSETDAMAGEREGIONKHRPROC) load(userptr, "eglSetDamageRegionKHR");
}
static void sf_glad_egl_load_EGL_KHR_reusable_sync( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_reusable_sync) return;
    sf_glad_eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC) load(userptr, "eglClientWaitSyncKHR");
    sf_glad_eglCreateSyncKHR = (PFNEGLCREATESYNCKHRPROC) load(userptr, "eglCreateSyncKHR");
    sf_glad_eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC) load(userptr, "eglDestroySyncKHR");
    sf_glad_eglGetSyncAttribKHR = (PFNEGLGETSYNCATTRIBKHRPROC) load(userptr, "eglGetSyncAttribKHR");
    sf_glad_eglSignalSyncKHR = (PFNEGLSIGNALSYNCKHRPROC) load(userptr, "eglSignalSyncKHR");
}
static void sf_glad_egl_load_EGL_KHR_stream( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_stream) return;
    sf_glad_eglCreateStreamKHR = (PFNEGLCREATESTREAMKHRPROC) load(userptr, "eglCreateStreamKHR");
    sf_glad_eglDestroyStreamKHR = (PFNEGLDESTROYSTREAMKHRPROC) load(userptr, "eglDestroyStreamKHR");
    sf_glad_eglQueryStreamKHR = (PFNEGLQUERYSTREAMKHRPROC) load(userptr, "eglQueryStreamKHR");
    sf_glad_eglQueryStreamu64KHR = (PFNEGLQUERYSTREAMU64KHRPROC) load(userptr, "eglQueryStreamu64KHR");
    sf_glad_eglStreamAttribKHR = (PFNEGLSTREAMATTRIBKHRPROC) load(userptr, "eglStreamAttribKHR");
}
static void sf_glad_egl_load_EGL_KHR_stream_attrib( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_stream_attrib) return;
    sf_glad_eglCreateStreamAttribKHR = (PFNEGLCREATESTREAMATTRIBKHRPROC) load(userptr, "eglCreateStreamAttribKHR");
    sf_glad_eglQueryStreamAttribKHR = (PFNEGLQUERYSTREAMATTRIBKHRPROC) load(userptr, "eglQueryStreamAttribKHR");
    sf_glad_eglSetStreamAttribKHR = (PFNEGLSETSTREAMATTRIBKHRPROC) load(userptr, "eglSetStreamAttribKHR");
    sf_glad_eglStreamConsumerAcquireAttribKHR = (PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) load(userptr, "eglStreamConsumerAcquireAttribKHR");
    sf_glad_eglStreamConsumerReleaseAttribKHR = (PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) load(userptr, "eglStreamConsumerReleaseAttribKHR");
}
static void sf_glad_egl_load_EGL_KHR_stream_consumer_gltexture( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_stream_consumer_gltexture) return;
    sf_glad_eglStreamConsumerAcquireKHR = (PFNEGLSTREAMCONSUMERACQUIREKHRPROC) load(userptr, "eglStreamConsumerAcquireKHR");
    sf_glad_eglStreamConsumerGLTextureExternalKHR = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) load(userptr, "eglStreamConsumerGLTextureExternalKHR");
    sf_glad_eglStreamConsumerReleaseKHR = (PFNEGLSTREAMCONSUMERRELEASEKHRPROC) load(userptr, "eglStreamConsumerReleaseKHR");
}
static void sf_glad_egl_load_EGL_KHR_stream_cross_process_fd( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_stream_cross_process_fd) return;
    sf_glad_eglCreateStreamFromFileDescriptorKHR = (PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) load(userptr, "eglCreateStreamFromFileDescriptorKHR");
    sf_glad_eglGetStreamFileDescriptorKHR = (PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) load(userptr, "eglGetStreamFileDescriptorKHR");
}
static void sf_glad_egl_load_EGL_KHR_stream_fifo( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_stream_fifo) return;
    sf_glad_eglQueryStreamTimeKHR = (PFNEGLQUERYSTREAMTIMEKHRPROC) load(userptr, "eglQueryStreamTimeKHR");
}
static void sf_glad_egl_load_EGL_KHR_stream_producer_eglsurface( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_stream_producer_eglsurface) return;
    sf_glad_eglCreateStreamProducerSurfaceKHR = (PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) load(userptr, "eglCreateStreamProducerSurfaceKHR");
}
static void sf_glad_egl_load_EGL_KHR_swap_buffers_with_damage( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_swap_buffers_with_damage) return;
    sf_glad_eglSwapBuffersWithDamageKHR = (PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) load(userptr, "eglSwapBuffersWithDamageKHR");
}
static void sf_glad_egl_load_EGL_KHR_wait_sync( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_KHR_wait_sync) return;
    sf_glad_eglWaitSyncKHR = (PFNEGLWAITSYNCKHRPROC) load(userptr, "eglWaitSyncKHR");
}
static void sf_glad_egl_load_EGL_MESA_drm_image( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_MESA_drm_image) return;
    sf_glad_eglCreateDRMImageMESA = (PFNEGLCREATEDRMIMAGEMESAPROC) load(userptr, "eglCreateDRMImageMESA");
    sf_glad_eglExportDRMImageMESA = (PFNEGLEXPORTDRMIMAGEMESAPROC) load(userptr, "eglExportDRMImageMESA");
}
static void sf_glad_egl_load_EGL_MESA_image_dma_buf_export( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_MESA_image_dma_buf_export) return;
    sf_glad_eglExportDMABUFImageMESA = (PFNEGLEXPORTDMABUFIMAGEMESAPROC) load(userptr, "eglExportDMABUFImageMESA");
    sf_glad_eglExportDMABUFImageQueryMESA = (PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) load(userptr, "eglExportDMABUFImageQueryMESA");
}
static void sf_glad_egl_load_EGL_MESA_query_driver( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_MESA_query_driver) return;
    sf_glad_eglGetDisplayDriverConfig = (PFNEGLGETDISPLAYDRIVERCONFIGPROC) load(userptr, "eglGetDisplayDriverConfig");
    sf_glad_eglGetDisplayDriverName = (PFNEGLGETDISPLAYDRIVERNAMEPROC) load(userptr, "eglGetDisplayDriverName");
}
static void sf_glad_egl_load_EGL_NOK_swap_region( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NOK_swap_region) return;
    sf_glad_eglSwapBuffersRegionNOK = (PFNEGLSWAPBUFFERSREGIONNOKPROC) load(userptr, "eglSwapBuffersRegionNOK");
}
static void sf_glad_egl_load_EGL_NOK_swap_region2( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NOK_swap_region2) return;
    sf_glad_eglSwapBuffersRegion2NOK = (PFNEGLSWAPBUFFERSREGION2NOKPROC) load(userptr, "eglSwapBuffersRegion2NOK");
}
static void sf_glad_egl_load_EGL_NV_native_query( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NV_native_query) return;
    sf_glad_eglQueryNativeDisplayNV = (PFNEGLQUERYNATIVEDISPLAYNVPROC) load(userptr, "eglQueryNativeDisplayNV");
    sf_glad_eglQueryNativePixmapNV = (PFNEGLQUERYNATIVEPIXMAPNVPROC) load(userptr, "eglQueryNativePixmapNV");
    sf_glad_eglQueryNativeWindowNV = (PFNEGLQUERYNATIVEWINDOWNVPROC) load(userptr, "eglQueryNativeWindowNV");
}
static void sf_glad_egl_load_EGL_NV_post_sub_buffer( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NV_post_sub_buffer) return;
    sf_glad_eglPostSubBufferNV = (PFNEGLPOSTSUBBUFFERNVPROC) load(userptr, "eglPostSubBufferNV");
}
static void sf_glad_egl_load_EGL_NV_stream_consumer_eglimage( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NV_stream_consumer_eglimage) return;
    sf_glad_eglQueryStreamConsumerEventNV = (PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC) load(userptr, "eglQueryStreamConsumerEventNV");
    sf_glad_eglStreamAcquireImageNV = (PFNEGLSTREAMACQUIREIMAGENVPROC) load(userptr, "eglStreamAcquireImageNV");
    sf_glad_eglStreamImageConsumerConnectNV = (PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC) load(userptr, "eglStreamImageConsumerConnectNV");
    sf_glad_eglStreamReleaseImageNV = (PFNEGLSTREAMRELEASEIMAGENVPROC) load(userptr, "eglStreamReleaseImageNV");
}
static void sf_glad_egl_load_EGL_NV_stream_consumer_gltexture_yuv( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NV_stream_consumer_gltexture_yuv) return;
    sf_glad_eglStreamConsumerGLTextureExternalAttribsNV = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) load(userptr, "eglStreamConsumerGLTextureExternalAttribsNV");
}
static void sf_glad_egl_load_EGL_NV_stream_flush( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NV_stream_flush) return;
    sf_glad_eglStreamFlushNV = (PFNEGLSTREAMFLUSHNVPROC) load(userptr, "eglStreamFlushNV");
}
static void sf_glad_egl_load_EGL_NV_stream_metadata( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NV_stream_metadata) return;
    sf_glad_eglQueryDisplayAttribNV = (PFNEGLQUERYDISPLAYATTRIBNVPROC) load(userptr, "eglQueryDisplayAttribNV");
    sf_glad_eglQueryStreamMetadataNV = (PFNEGLQUERYSTREAMMETADATANVPROC) load(userptr, "eglQueryStreamMetadataNV");
    sf_glad_eglSetStreamMetadataNV = (PFNEGLSETSTREAMMETADATANVPROC) load(userptr, "eglSetStreamMetadataNV");
}
static void sf_glad_egl_load_EGL_NV_stream_reset( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NV_stream_reset) return;
    sf_glad_eglResetStreamNV = (PFNEGLRESETSTREAMNVPROC) load(userptr, "eglResetStreamNV");
}
static void sf_glad_egl_load_EGL_NV_stream_sync( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NV_stream_sync) return;
    sf_glad_eglCreateStreamSyncNV = (PFNEGLCREATESTREAMSYNCNVPROC) load(userptr, "eglCreateStreamSyncNV");
}
static void sf_glad_egl_load_EGL_NV_sync( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NV_sync) return;
    sf_glad_eglClientWaitSyncNV = (PFNEGLCLIENTWAITSYNCNVPROC) load(userptr, "eglClientWaitSyncNV");
    sf_glad_eglCreateFenceSyncNV = (PFNEGLCREATEFENCESYNCNVPROC) load(userptr, "eglCreateFenceSyncNV");
    sf_glad_eglDestroySyncNV = (PFNEGLDESTROYSYNCNVPROC) load(userptr, "eglDestroySyncNV");
    sf_glad_eglFenceNV = (PFNEGLFENCENVPROC) load(userptr, "eglFenceNV");
    sf_glad_eglGetSyncAttribNV = (PFNEGLGETSYNCATTRIBNVPROC) load(userptr, "eglGetSyncAttribNV");
    sf_glad_eglSignalSyncNV = (PFNEGLSIGNALSYNCNVPROC) load(userptr, "eglSignalSyncNV");
}
static void sf_glad_egl_load_EGL_NV_system_time( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_NV_system_time) return;
    sf_glad_eglGetSystemTimeFrequencyNV = (PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) load(userptr, "eglGetSystemTimeFrequencyNV");
    sf_glad_eglGetSystemTimeNV = (PFNEGLGETSYSTEMTIMENVPROC) load(userptr, "eglGetSystemTimeNV");
}
static void sf_glad_egl_load_EGL_WL_bind_wayland_display( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_WL_bind_wayland_display) return;
    sf_glad_eglBindWaylandDisplayWL = (PFNEGLBINDWAYLANDDISPLAYWLPROC) load(userptr, "eglBindWaylandDisplayWL");
    sf_glad_eglQueryWaylandBufferWL = (PFNEGLQUERYWAYLANDBUFFERWLPROC) load(userptr, "eglQueryWaylandBufferWL");
    sf_glad_eglUnbindWaylandDisplayWL = (PFNEGLUNBINDWAYLANDDISPLAYWLPROC) load(userptr, "eglUnbindWaylandDisplayWL");
}
static void sf_glad_egl_load_EGL_WL_create_wayland_buffer_from_image( GLADuserptrloadfunc load, void* userptr) {
    if(!SF_GLAD_EGL_WL_create_wayland_buffer_from_image) return;
    sf_glad_eglCreateWaylandBufferFromImageWL = (PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC) load(userptr, "eglCreateWaylandBufferFromImageWL");
}


static void sf_glad_egl_resolve_aliases(void) {
    if (sf_glad_eglClientWaitSync == NULL && sf_glad_eglClientWaitSyncKHR != NULL) sf_glad_eglClientWaitSync = (PFNEGLCLIENTWAITSYNCPROC)sf_glad_eglClientWaitSyncKHR;
    if (sf_glad_eglClientWaitSyncKHR == NULL && sf_glad_eglClientWaitSync != NULL) sf_glad_eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC)sf_glad_eglClientWaitSync;
    if (sf_glad_eglCreateSync == NULL && sf_glad_eglCreateSync64KHR != NULL) sf_glad_eglCreateSync = (PFNEGLCREATESYNCPROC)sf_glad_eglCreateSync64KHR;
    if (sf_glad_eglCreateSync64KHR == NULL && sf_glad_eglCreateSync != NULL) sf_glad_eglCreateSync64KHR = (PFNEGLCREATESYNC64KHRPROC)sf_glad_eglCreateSync;
    if (sf_glad_eglDestroyImage == NULL && sf_glad_eglDestroyImageKHR != NULL) sf_glad_eglDestroyImage = (PFNEGLDESTROYIMAGEPROC)sf_glad_eglDestroyImageKHR;
    if (sf_glad_eglDestroyImageKHR == NULL && sf_glad_eglDestroyImage != NULL) sf_glad_eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC)sf_glad_eglDestroyImage;
    if (sf_glad_eglDestroySync == NULL && sf_glad_eglDestroySyncKHR != NULL) sf_glad_eglDestroySync = (PFNEGLDESTROYSYNCPROC)sf_glad_eglDestroySyncKHR;
    if (sf_glad_eglDestroySyncKHR == NULL && sf_glad_eglDestroySync != NULL) sf_glad_eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC)sf_glad_eglDestroySync;
    if (sf_glad_eglQueryDisplayAttribEXT == NULL && sf_glad_eglQueryDisplayAttribKHR != NULL) sf_glad_eglQueryDisplayAttribEXT = (PFNEGLQUERYDISPLAYATTRIBEXTPROC)sf_glad_eglQueryDisplayAttribKHR;
    if (sf_glad_eglQueryDisplayAttribEXT == NULL && sf_glad_eglQueryDisplayAttribNV != NULL) sf_glad_eglQueryDisplayAttribEXT = (PFNEGLQUERYDISPLAYATTRIBEXTPROC)sf_glad_eglQueryDisplayAttribNV;
    if (sf_glad_eglQueryDisplayAttribKHR == NULL && sf_glad_eglQueryDisplayAttribEXT != NULL) sf_glad_eglQueryDisplayAttribKHR = (PFNEGLQUERYDISPLAYATTRIBKHRPROC)sf_glad_eglQueryDisplayAttribEXT;
    if (sf_glad_eglQueryDisplayAttribKHR == NULL && sf_glad_eglQueryDisplayAttribNV != NULL) sf_glad_eglQueryDisplayAttribKHR = (PFNEGLQUERYDISPLAYATTRIBKHRPROC)sf_glad_eglQueryDisplayAttribNV;
    if (sf_glad_eglQueryDisplayAttribNV == NULL && sf_glad_eglQueryDisplayAttribEXT != NULL) sf_glad_eglQueryDisplayAttribNV = (PFNEGLQUERYDISPLAYATTRIBNVPROC)sf_glad_eglQueryDisplayAttribEXT;
    if (sf_glad_eglQueryDisplayAttribNV == NULL && sf_glad_eglQueryDisplayAttribKHR != NULL) sf_glad_eglQueryDisplayAttribNV = (PFNEGLQUERYDISPLAYATTRIBNVPROC)sf_glad_eglQueryDisplayAttribKHR;
}

static int sf_glad_egl_get_extensions(EGLDisplay display, const char **extensions) {
    *extensions = eglQueryString(display, EGL_EXTENSIONS);

    return extensions != NULL;
}

static int sf_glad_egl_has_extension(const char *extensions, const char *ext) {
    const char *loc;
    const char *terminator;
    if(extensions == NULL) {
        return 0;
    }
    while(1) {
        loc = strstr(extensions, ext);
        if(loc == NULL) {
            return 0;
        }
        terminator = loc + strlen(ext);
        if((loc == extensions || *(loc - 1) == ' ') &&
            (*terminator == ' ' || *terminator == '\0')) {
            return 1;
        }
        extensions = terminator;
    }
}

static GLADapiproc sf_glad_egl_get_proc_from_userptr(void *userptr, const char *name) {
    return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name);
}

static int sf_glad_egl_find_extensions_egl(EGLDisplay display) {
    const char *extensions;
    if (!sf_glad_egl_get_extensions(display, &extensions)) return 0;

    SF_GLAD_EGL_ANDROID_GLES_layers = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_GLES_layers");
    SF_GLAD_EGL_ANDROID_blob_cache = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_blob_cache");
    SF_GLAD_EGL_ANDROID_create_native_client_buffer = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_create_native_client_buffer");
    SF_GLAD_EGL_ANDROID_framebuffer_target = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_framebuffer_target");
    SF_GLAD_EGL_ANDROID_front_buffer_auto_refresh = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_front_buffer_auto_refresh");
    SF_GLAD_EGL_ANDROID_get_frame_timestamps = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_get_frame_timestamps");
    SF_GLAD_EGL_ANDROID_get_native_client_buffer = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_get_native_client_buffer");
    SF_GLAD_EGL_ANDROID_image_native_buffer = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_image_native_buffer");
    SF_GLAD_EGL_ANDROID_native_fence_sync = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_native_fence_sync");
    SF_GLAD_EGL_ANDROID_presentation_time = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_presentation_time");
    SF_GLAD_EGL_ANDROID_recordable = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_recordable");
    SF_GLAD_EGL_ANDROID_telemetry_hint = sf_glad_egl_has_extension(extensions, "EGL_ANDROID_telemetry_hint");
    SF_GLAD_EGL_ANGLE_d3d_share_handle_client_buffer = sf_glad_egl_has_extension(extensions, "EGL_ANGLE_d3d_share_handle_client_buffer");
    SF_GLAD_EGL_ANGLE_device_d3d = sf_glad_egl_has_extension(extensions, "EGL_ANGLE_device_d3d");
    SF_GLAD_EGL_ANGLE_query_surface_pointer = sf_glad_egl_has_extension(extensions, "EGL_ANGLE_query_surface_pointer");
    SF_GLAD_EGL_ANGLE_surface_d3d_texture_2d_share_handle = sf_glad_egl_has_extension(extensions, "EGL_ANGLE_surface_d3d_texture_2d_share_handle");
    SF_GLAD_EGL_ANGLE_sync_control_rate = sf_glad_egl_has_extension(extensions, "EGL_ANGLE_sync_control_rate");
    SF_GLAD_EGL_ANGLE_window_fixed_size = sf_glad_egl_has_extension(extensions, "EGL_ANGLE_window_fixed_size");
    SF_GLAD_EGL_ARM_image_format = sf_glad_egl_has_extension(extensions, "EGL_ARM_image_format");
    SF_GLAD_EGL_ARM_implicit_external_sync = sf_glad_egl_has_extension(extensions, "EGL_ARM_implicit_external_sync");
    SF_GLAD_EGL_ARM_pixmap_multisample_discard = sf_glad_egl_has_extension(extensions, "EGL_ARM_pixmap_multisample_discard");
    SF_GLAD_EGL_EXT_bind_to_front = sf_glad_egl_has_extension(extensions, "EGL_EXT_bind_to_front");
    SF_GLAD_EGL_EXT_buffer_age = sf_glad_egl_has_extension(extensions, "EGL_EXT_buffer_age");
    SF_GLAD_EGL_EXT_client_extensions = sf_glad_egl_has_extension(extensions, "EGL_EXT_client_extensions");
    SF_GLAD_EGL_EXT_client_sync = sf_glad_egl_has_extension(extensions, "EGL_EXT_client_sync");
    SF_GLAD_EGL_EXT_compositor = sf_glad_egl_has_extension(extensions, "EGL_EXT_compositor");
    SF_GLAD_EGL_EXT_config_select_group = sf_glad_egl_has_extension(extensions, "EGL_EXT_config_select_group");
    SF_GLAD_EGL_EXT_create_context_robustness = sf_glad_egl_has_extension(extensions, "EGL_EXT_create_context_robustness");
    SF_GLAD_EGL_EXT_device_base = sf_glad_egl_has_extension(extensions, "EGL_EXT_device_base");
    SF_GLAD_EGL_EXT_device_drm = sf_glad_egl_has_extension(extensions, "EGL_EXT_device_drm");
    SF_GLAD_EGL_EXT_device_drm_render_node = sf_glad_egl_has_extension(extensions, "EGL_EXT_device_drm_render_node");
    SF_GLAD_EGL_EXT_device_enumeration = sf_glad_egl_has_extension(extensions, "EGL_EXT_device_enumeration");
    SF_GLAD_EGL_EXT_device_openwf = sf_glad_egl_has_extension(extensions, "EGL_EXT_device_openwf");
    SF_GLAD_EGL_EXT_device_persistent_id = sf_glad_egl_has_extension(extensions, "EGL_EXT_device_persistent_id");
    SF_GLAD_EGL_EXT_device_query = sf_glad_egl_has_extension(extensions, "EGL_EXT_device_query");
    SF_GLAD_EGL_EXT_device_query_name = sf_glad_egl_has_extension(extensions, "EGL_EXT_device_query_name");
    SF_GLAD_EGL_EXT_display_alloc = sf_glad_egl_has_extension(extensions, "EGL_EXT_display_alloc");
    SF_GLAD_EGL_EXT_explicit_device = sf_glad_egl_has_extension(extensions, "EGL_EXT_explicit_device");
    SF_GLAD_EGL_EXT_gl_colorspace_bt2020_hlg = sf_glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_bt2020_hlg");
    SF_GLAD_EGL_EXT_gl_colorspace_bt2020_linear = sf_glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_bt2020_linear");
    SF_GLAD_EGL_EXT_gl_colorspace_bt2020_pq = sf_glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_bt2020_pq");
    SF_GLAD_EGL_EXT_gl_colorspace_display_p3 = sf_glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_display_p3");
    SF_GLAD_EGL_EXT_gl_colorspace_display_p3_linear = sf_glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_display_p3_linear");
    SF_GLAD_EGL_EXT_gl_colorspace_display_p3_passthrough = sf_glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_display_p3_passthrough");
    SF_GLAD_EGL_EXT_gl_colorspace_scrgb = sf_glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_scrgb");
    SF_GLAD_EGL_EXT_gl_colorspace_scrgb_linear = sf_glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_scrgb_linear");
    SF_GLAD_EGL_EXT_image_dma_buf_import = sf_glad_egl_has_extension(extensions, "EGL_EXT_image_dma_buf_import");
    SF_GLAD_EGL_EXT_image_dma_buf_import_modifiers = sf_glad_egl_has_extension(extensions, "EGL_EXT_image_dma_buf_import_modifiers");
    SF_GLAD_EGL_EXT_image_gl_colorspace = sf_glad_egl_has_extension(extensions, "EGL_EXT_image_gl_colorspace");
    SF_GLAD_EGL_EXT_image_implicit_sync_control = sf_glad_egl_has_extension(extensions, "EGL_EXT_image_implicit_sync_control");
    SF_GLAD_EGL_EXT_multiview_window = sf_glad_egl_has_extension(extensions, "EGL_EXT_multiview_window");
    SF_GLAD_EGL_EXT_output_base = sf_glad_egl_has_extension(extensions, "EGL_EXT_output_base");
    SF_GLAD_EGL_EXT_output_drm = sf_glad_egl_has_extension(extensions, "EGL_EXT_output_drm");
    SF_GLAD_EGL_EXT_output_openwf = sf_glad_egl_has_extension(extensions, "EGL_EXT_output_openwf");
    SF_GLAD_EGL_EXT_pixel_format_float = sf_glad_egl_has_extension(extensions, "EGL_EXT_pixel_format_float");
    SF_GLAD_EGL_EXT_platform_base = sf_glad_egl_has_extension(extensions, "EGL_EXT_platform_base");
    SF_GLAD_EGL_EXT_platform_device = sf_glad_egl_has_extension(extensions, "EGL_EXT_platform_device");
    SF_GLAD_EGL_EXT_platform_wayland = sf_glad_egl_has_extension(extensions, "EGL_EXT_platform_wayland");
    SF_GLAD_EGL_EXT_platform_x11 = sf_glad_egl_has_extension(extensions, "EGL_EXT_platform_x11");
    SF_GLAD_EGL_EXT_platform_xcb = sf_glad_egl_has_extension(extensions, "EGL_EXT_platform_xcb");
    SF_GLAD_EGL_EXT_present_opaque = sf_glad_egl_has_extension(extensions, "EGL_EXT_present_opaque");
    SF_GLAD_EGL_EXT_protected_content = sf_glad_egl_has_extension(extensions, "EGL_EXT_protected_content");
    SF_GLAD_EGL_EXT_protected_surface = sf_glad_egl_has_extension(extensions, "EGL_EXT_protected_surface");
    SF_GLAD_EGL_EXT_query_reset_notification_strategy = sf_glad_egl_has_extension(extensions, "EGL_EXT_query_reset_notification_strategy");
    SF_GLAD_EGL_EXT_stream_consumer_egloutput = sf_glad_egl_has_extension(extensions, "EGL_EXT_stream_consumer_egloutput");
    SF_GLAD_EGL_EXT_surface_CTA861_3_metadata = sf_glad_egl_has_extension(extensions, "EGL_EXT_surface_CTA861_3_metadata");
    SF_GLAD_EGL_EXT_surface_SMPTE2086_metadata = sf_glad_egl_has_extension(extensions, "EGL_EXT_surface_SMPTE2086_metadata");
    SF_GLAD_EGL_EXT_surface_compression = sf_glad_egl_has_extension(extensions, "EGL_EXT_surface_compression");
    SF_GLAD_EGL_EXT_swap_buffers_with_damage = sf_glad_egl_has_extension(extensions, "EGL_EXT_swap_buffers_with_damage");
    SF_GLAD_EGL_EXT_sync_reuse = sf_glad_egl_has_extension(extensions, "EGL_EXT_sync_reuse");
    SF_GLAD_EGL_EXT_yuv_surface = sf_glad_egl_has_extension(extensions, "EGL_EXT_yuv_surface");
    SF_GLAD_EGL_HI_clientpixmap = sf_glad_egl_has_extension(extensions, "EGL_HI_clientpixmap");
    SF_GLAD_EGL_HI_colorformats = sf_glad_egl_has_extension(extensions, "EGL_HI_colorformats");
    SF_GLAD_EGL_IMG_context_priority = sf_glad_egl_has_extension(extensions, "EGL_IMG_context_priority");
    SF_GLAD_EGL_IMG_image_plane_attribs = sf_glad_egl_has_extension(extensions, "EGL_IMG_image_plane_attribs");
    SF_GLAD_EGL_KHR_cl_event = sf_glad_egl_has_extension(extensions, "EGL_KHR_cl_event");
    SF_GLAD_EGL_KHR_cl_event2 = sf_glad_egl_has_extension(extensions, "EGL_KHR_cl_event2");
    SF_GLAD_EGL_KHR_client_get_all_proc_addresses = sf_glad_egl_has_extension(extensions, "EGL_KHR_client_get_all_proc_addresses");
    SF_GLAD_EGL_KHR_config_attribs = sf_glad_egl_has_extension(extensions, "EGL_KHR_config_attribs");
    SF_GLAD_EGL_KHR_context_flush_control = sf_glad_egl_has_extension(extensions, "EGL_KHR_context_flush_control");
    SF_GLAD_EGL_KHR_create_context = sf_glad_egl_has_extension(extensions, "EGL_KHR_create_context");
    SF_GLAD_EGL_KHR_create_context_no_error = sf_glad_egl_has_extension(extensions, "EGL_KHR_create_context_no_error");
    SF_GLAD_EGL_KHR_debug = sf_glad_egl_has_extension(extensions, "EGL_KHR_debug");
    SF_GLAD_EGL_KHR_display_reference = sf_glad_egl_has_extension(extensions, "EGL_KHR_display_reference");
    SF_GLAD_EGL_KHR_fence_sync = sf_glad_egl_has_extension(extensions, "EGL_KHR_fence_sync");
    SF_GLAD_EGL_KHR_get_all_proc_addresses = sf_glad_egl_has_extension(extensions, "EGL_KHR_get_all_proc_addresses");
    SF_GLAD_EGL_KHR_gl_colorspace = sf_glad_egl_has_extension(extensions, "EGL_KHR_gl_colorspace");
    SF_GLAD_EGL_KHR_gl_renderbuffer_image = sf_glad_egl_has_extension(extensions, "EGL_KHR_gl_renderbuffer_image");
    SF_GLAD_EGL_KHR_gl_texture_2D_image = sf_glad_egl_has_extension(extensions, "EGL_KHR_gl_texture_2D_image");
    SF_GLAD_EGL_KHR_gl_texture_3D_image = sf_glad_egl_has_extension(extensions, "EGL_KHR_gl_texture_3D_image");
    SF_GLAD_EGL_KHR_gl_texture_cubemap_image = sf_glad_egl_has_extension(extensions, "EGL_KHR_gl_texture_cubemap_image");
    SF_GLAD_EGL_KHR_image = sf_glad_egl_has_extension(extensions, "EGL_KHR_image");
    SF_GLAD_EGL_KHR_image_base = sf_glad_egl_has_extension(extensions, "EGL_KHR_image_base");
    SF_GLAD_EGL_KHR_image_pixmap = sf_glad_egl_has_extension(extensions, "EGL_KHR_image_pixmap");
    SF_GLAD_EGL_KHR_lock_surface = sf_glad_egl_has_extension(extensions, "EGL_KHR_lock_surface");
    SF_GLAD_EGL_KHR_lock_surface2 = sf_glad_egl_has_extension(extensions, "EGL_KHR_lock_surface2");
    SF_GLAD_EGL_KHR_lock_surface3 = sf_glad_egl_has_extension(extensions, "EGL_KHR_lock_surface3");
    SF_GLAD_EGL_KHR_mutable_render_buffer = sf_glad_egl_has_extension(extensions, "EGL_KHR_mutable_render_buffer");
    SF_GLAD_EGL_KHR_no_config_context = sf_glad_egl_has_extension(extensions, "EGL_KHR_no_config_context");
    SF_GLAD_EGL_KHR_partial_update = sf_glad_egl_has_extension(extensions, "EGL_KHR_partial_update");
    SF_GLAD_EGL_KHR_platform_android = sf_glad_egl_has_extension(extensions, "EGL_KHR_platform_android");
    SF_GLAD_EGL_KHR_platform_gbm = sf_glad_egl_has_extension(extensions, "EGL_KHR_platform_gbm");
    SF_GLAD_EGL_KHR_platform_wayland = sf_glad_egl_has_extension(extensions, "EGL_KHR_platform_wayland");
    SF_GLAD_EGL_KHR_platform_x11 = sf_glad_egl_has_extension(extensions, "EGL_KHR_platform_x11");
    SF_GLAD_EGL_KHR_reusable_sync = sf_glad_egl_has_extension(extensions, "EGL_KHR_reusable_sync");
    SF_GLAD_EGL_KHR_stream = sf_glad_egl_has_extension(extensions, "EGL_KHR_stream");
    SF_GLAD_EGL_KHR_stream_attrib = sf_glad_egl_has_extension(extensions, "EGL_KHR_stream_attrib");
    SF_GLAD_EGL_KHR_stream_consumer_gltexture = sf_glad_egl_has_extension(extensions, "EGL_KHR_stream_consumer_gltexture");
    SF_GLAD_EGL_KHR_stream_cross_process_fd = sf_glad_egl_has_extension(extensions, "EGL_KHR_stream_cross_process_fd");
    SF_GLAD_EGL_KHR_stream_fifo = sf_glad_egl_has_extension(extensions, "EGL_KHR_stream_fifo");
    SF_GLAD_EGL_KHR_stream_producer_aldatalocator = sf_glad_egl_has_extension(extensions, "EGL_KHR_stream_producer_aldatalocator");
    SF_GLAD_EGL_KHR_stream_producer_eglsurface = sf_glad_egl_has_extension(extensions, "EGL_KHR_stream_producer_eglsurface");
    SF_GLAD_EGL_KHR_surfaceless_context = sf_glad_egl_has_extension(extensions, "EGL_KHR_surfaceless_context");
    SF_GLAD_EGL_KHR_swap_buffers_with_damage = sf_glad_egl_has_extension(extensions, "EGL_KHR_swap_buffers_with_damage");
    SF_GLAD_EGL_KHR_vg_parent_image = sf_glad_egl_has_extension(extensions, "EGL_KHR_vg_parent_image");
    SF_GLAD_EGL_KHR_wait_sync = sf_glad_egl_has_extension(extensions, "EGL_KHR_wait_sync");
    SF_GLAD_EGL_MESA_drm_image = sf_glad_egl_has_extension(extensions, "EGL_MESA_drm_image");
    SF_GLAD_EGL_MESA_image_dma_buf_export = sf_glad_egl_has_extension(extensions, "EGL_MESA_image_dma_buf_export");
    SF_GLAD_EGL_MESA_platform_gbm = sf_glad_egl_has_extension(extensions, "EGL_MESA_platform_gbm");
    SF_GLAD_EGL_MESA_platform_surfaceless = sf_glad_egl_has_extension(extensions, "EGL_MESA_platform_surfaceless");
    SF_GLAD_EGL_MESA_query_driver = sf_glad_egl_has_extension(extensions, "EGL_MESA_query_driver");
    SF_GLAD_EGL_NOK_swap_region = sf_glad_egl_has_extension(extensions, "EGL_NOK_swap_region");
    SF_GLAD_EGL_NOK_swap_region2 = sf_glad_egl_has_extension(extensions, "EGL_NOK_swap_region2");
    SF_GLAD_EGL_NOK_texture_from_pixmap = sf_glad_egl_has_extension(extensions, "EGL_NOK_texture_from_pixmap");
    SF_GLAD_EGL_NV_3dvision_surface = sf_glad_egl_has_extension(extensions, "EGL_NV_3dvision_surface");
    SF_GLAD_EGL_NV_context_priority_realtime = sf_glad_egl_has_extension(extensions, "EGL_NV_context_priority_realtime");
    SF_GLAD_EGL_NV_coverage_sample = sf_glad_egl_has_extension(extensions, "EGL_NV_coverage_sample");
    SF_GLAD_EGL_NV_coverage_sample_resolve = sf_glad_egl_has_extension(extensions, "EGL_NV_coverage_sample_resolve");
    SF_GLAD_EGL_NV_cuda_event = sf_glad_egl_has_extension(extensions, "EGL_NV_cuda_event");
    SF_GLAD_EGL_NV_depth_nonlinear = sf_glad_egl_has_extension(extensions, "EGL_NV_depth_nonlinear");
    SF_GLAD_EGL_NV_device_cuda = sf_glad_egl_has_extension(extensions, "EGL_NV_device_cuda");
    SF_GLAD_EGL_NV_native_query = sf_glad_egl_has_extension(extensions, "EGL_NV_native_query");
    SF_GLAD_EGL_NV_post_convert_rounding = sf_glad_egl_has_extension(extensions, "EGL_NV_post_convert_rounding");
    SF_GLAD_EGL_NV_post_sub_buffer = sf_glad_egl_has_extension(extensions, "EGL_NV_post_sub_buffer");
    SF_GLAD_EGL_NV_quadruple_buffer = sf_glad_egl_has_extension(extensions, "EGL_NV_quadruple_buffer");
    SF_GLAD_EGL_NV_robustness_video_memory_purge = sf_glad_egl_has_extension(extensions, "EGL_NV_robustness_video_memory_purge");
    SF_GLAD_EGL_NV_stream_consumer_eglimage = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_consumer_eglimage");
    SF_GLAD_EGL_NV_stream_consumer_eglimage_use_scanout_attrib = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_consumer_eglimage_use_scanout_attrib");
    SF_GLAD_EGL_NV_stream_consumer_gltexture_yuv = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_consumer_gltexture_yuv");
    SF_GLAD_EGL_NV_stream_cross_display = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_cross_display");
    SF_GLAD_EGL_NV_stream_cross_object = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_cross_object");
    SF_GLAD_EGL_NV_stream_cross_partition = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_cross_partition");
    SF_GLAD_EGL_NV_stream_cross_process = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_cross_process");
    SF_GLAD_EGL_NV_stream_cross_system = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_cross_system");
    SF_GLAD_EGL_NV_stream_dma = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_dma");
    SF_GLAD_EGL_NV_stream_fifo_next = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_fifo_next");
    SF_GLAD_EGL_NV_stream_fifo_synchronous = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_fifo_synchronous");
    SF_GLAD_EGL_NV_stream_flush = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_flush");
    SF_GLAD_EGL_NV_stream_frame_limits = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_frame_limits");
    SF_GLAD_EGL_NV_stream_metadata = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_metadata");
    SF_GLAD_EGL_NV_stream_origin = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_origin");
    SF_GLAD_EGL_NV_stream_remote = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_remote");
    SF_GLAD_EGL_NV_stream_reset = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_reset");
    SF_GLAD_EGL_NV_stream_socket = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_socket");
    SF_GLAD_EGL_NV_stream_socket_inet = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_socket_inet");
    SF_GLAD_EGL_NV_stream_socket_unix = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_socket_unix");
    SF_GLAD_EGL_NV_stream_sync = sf_glad_egl_has_extension(extensions, "EGL_NV_stream_sync");
    SF_GLAD_EGL_NV_sync = sf_glad_egl_has_extension(extensions, "EGL_NV_sync");
    SF_GLAD_EGL_NV_system_time = sf_glad_egl_has_extension(extensions, "EGL_NV_system_time");
    SF_GLAD_EGL_NV_triple_buffer = sf_glad_egl_has_extension(extensions, "EGL_NV_triple_buffer");
    SF_GLAD_EGL_QNX_image_native_buffer = sf_glad_egl_has_extension(extensions, "EGL_QNX_image_native_buffer");
    SF_GLAD_EGL_QNX_platform_screen = sf_glad_egl_has_extension(extensions, "EGL_QNX_platform_screen");
    SF_GLAD_EGL_TIZEN_image_native_buffer = sf_glad_egl_has_extension(extensions, "EGL_TIZEN_image_native_buffer");
    SF_GLAD_EGL_TIZEN_image_native_surface = sf_glad_egl_has_extension(extensions, "EGL_TIZEN_image_native_surface");
    SF_GLAD_EGL_WL_bind_wayland_display = sf_glad_egl_has_extension(extensions, "EGL_WL_bind_wayland_display");
    SF_GLAD_EGL_WL_create_wayland_buffer_from_image = sf_glad_egl_has_extension(extensions, "EGL_WL_create_wayland_buffer_from_image");

    return 1;
}

static int sf_glad_egl_find_core_egl(EGLDisplay display) {
    int major, minor;
    const char *version;

    if (display == NULL) {
        display = EGL_NO_DISPLAY; /* this is usually NULL, better safe than sorry */
    }
    if (display == EGL_NO_DISPLAY) {
        display = eglGetCurrentDisplay();
    }
#ifdef EGL_VERSION_1_4
    if (display == EGL_NO_DISPLAY) {
        display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
    }
#endif
#ifndef EGL_VERSION_1_5
    if (display == EGL_NO_DISPLAY) {
        return 0;
    }
#endif

    version = eglQueryString(display, EGL_VERSION);
    (void) eglGetError();

    if (version == NULL) {
        major = 1;
        minor = 0;
    } else {
        GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor);
    }

    SF_GLAD_EGL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
    SF_GLAD_EGL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
    SF_GLAD_EGL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
    SF_GLAD_EGL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1;
    SF_GLAD_EGL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1;
    SF_GLAD_EGL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1;

    return GLAD_MAKE_VERSION(major, minor);
}

static int gladLoadEGLUserPtr(EGLDisplay display, GLADuserptrloadfunc load, void* userptr) {
    int version;
    eglGetDisplay = (PFNEGLGETDISPLAYPROC) load(userptr, "eglGetDisplay");
    eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) load(userptr, "eglGetCurrentDisplay");
    eglQueryString = (PFNEGLQUERYSTRINGPROC) load(userptr, "eglQueryString");
    eglGetError = (PFNEGLGETERRORPROC) load(userptr, "eglGetError");
    if (eglGetDisplay == NULL || eglGetCurrentDisplay == NULL || eglQueryString == NULL || eglGetError == NULL) return 0;

    version = sf_glad_egl_find_core_egl(display);
    if (!version) return 0;
    sf_glad_egl_load_EGL_VERSION_1_0(load, userptr);
    sf_glad_egl_load_EGL_VERSION_1_1(load, userptr);
    sf_glad_egl_load_EGL_VERSION_1_2(load, userptr);
    sf_glad_egl_load_EGL_VERSION_1_4(load, userptr);
    sf_glad_egl_load_EGL_VERSION_1_5(load, userptr);

    if (!sf_glad_egl_find_extensions_egl(display)) return 0;
    sf_glad_egl_load_EGL_ANDROID_blob_cache(load, userptr);
    sf_glad_egl_load_EGL_ANDROID_create_native_client_buffer(load, userptr);
    sf_glad_egl_load_EGL_ANDROID_get_frame_timestamps(load, userptr);
    sf_glad_egl_load_EGL_ANDROID_get_native_client_buffer(load, userptr);
    sf_glad_egl_load_EGL_ANDROID_native_fence_sync(load, userptr);
    sf_glad_egl_load_EGL_ANDROID_presentation_time(load, userptr);
    sf_glad_egl_load_EGL_ANGLE_query_surface_pointer(load, userptr);
    sf_glad_egl_load_EGL_ANGLE_sync_control_rate(load, userptr);
    sf_glad_egl_load_EGL_EXT_client_sync(load, userptr);
    sf_glad_egl_load_EGL_EXT_compositor(load, userptr);
    sf_glad_egl_load_EGL_EXT_device_base(load, userptr);
    sf_glad_egl_load_EGL_EXT_device_enumeration(load, userptr);
    sf_glad_egl_load_EGL_EXT_device_persistent_id(load, userptr);
    sf_glad_egl_load_EGL_EXT_device_query(load, userptr);
    sf_glad_egl_load_EGL_EXT_display_alloc(load, userptr);
    sf_glad_egl_load_EGL_EXT_image_dma_buf_import_modifiers(load, userptr);
    sf_glad_egl_load_EGL_EXT_output_base(load, userptr);
    sf_glad_egl_load_EGL_EXT_platform_base(load, userptr);
    sf_glad_egl_load_EGL_EXT_stream_consumer_egloutput(load, userptr);
    sf_glad_egl_load_EGL_EXT_surface_compression(load, userptr);
    sf_glad_egl_load_EGL_EXT_swap_buffers_with_damage(load, userptr);
    sf_glad_egl_load_EGL_EXT_sync_reuse(load, userptr);
    sf_glad_egl_load_EGL_HI_clientpixmap(load, userptr);
    sf_glad_egl_load_EGL_KHR_cl_event2(load, userptr);
    sf_glad_egl_load_EGL_KHR_debug(load, userptr);
    sf_glad_egl_load_EGL_KHR_display_reference(load, userptr);
    sf_glad_egl_load_EGL_KHR_fence_sync(load, userptr);
    sf_glad_egl_load_EGL_KHR_image(load, userptr);
    sf_glad_egl_load_EGL_KHR_image_base(load, userptr);
    sf_glad_egl_load_EGL_KHR_lock_surface(load, userptr);
    sf_glad_egl_load_EGL_KHR_lock_surface3(load, userptr);
    sf_glad_egl_load_EGL_KHR_partial_update(load, userptr);
    sf_glad_egl_load_EGL_KHR_reusable_sync(load, userptr);
    sf_glad_egl_load_EGL_KHR_stream(load, userptr);
    sf_glad_egl_load_EGL_KHR_stream_attrib(load, userptr);
    sf_glad_egl_load_EGL_KHR_stream_consumer_gltexture(load, userptr);
    sf_glad_egl_load_EGL_KHR_stream_cross_process_fd(load, userptr);
    sf_glad_egl_load_EGL_KHR_stream_fifo(load, userptr);
    sf_glad_egl_load_EGL_KHR_stream_producer_eglsurface(load, userptr);
    sf_glad_egl_load_EGL_KHR_swap_buffers_with_damage(load, userptr);
    sf_glad_egl_load_EGL_KHR_wait_sync(load, userptr);
    sf_glad_egl_load_EGL_MESA_drm_image(load, userptr);
    sf_glad_egl_load_EGL_MESA_image_dma_buf_export(load, userptr);
    sf_glad_egl_load_EGL_MESA_query_driver(load, userptr);
    sf_glad_egl_load_EGL_NOK_swap_region(load, userptr);
    sf_glad_egl_load_EGL_NOK_swap_region2(load, userptr);
    sf_glad_egl_load_EGL_NV_native_query(load, userptr);
    sf_glad_egl_load_EGL_NV_post_sub_buffer(load, userptr);
    sf_glad_egl_load_EGL_NV_stream_consumer_eglimage(load, userptr);
    sf_glad_egl_load_EGL_NV_stream_consumer_gltexture_yuv(load, userptr);
    sf_glad_egl_load_EGL_NV_stream_flush(load, userptr);
    sf_glad_egl_load_EGL_NV_stream_metadata(load, userptr);
    sf_glad_egl_load_EGL_NV_stream_reset(load, userptr);
    sf_glad_egl_load_EGL_NV_stream_sync(load, userptr);
    sf_glad_egl_load_EGL_NV_sync(load, userptr);
    sf_glad_egl_load_EGL_NV_system_time(load, userptr);
    sf_glad_egl_load_EGL_WL_bind_wayland_display(load, userptr);
    sf_glad_egl_load_EGL_WL_create_wayland_buffer_from_image(load, userptr);

    sf_glad_egl_resolve_aliases();

    return version;
}

static int gladLoadEGL(EGLDisplay display, GLADloadfunc load) {
    return gladLoadEGLUserPtr(display, sf_glad_egl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
}



#ifdef SF_GLAD_EGL

#ifndef GLAD_LOADER_LIBRARY_C_
#define GLAD_LOADER_LIBRARY_C_

#include <stddef.h>
#include <stdlib.h>

#if GLAD_PLATFORM_WIN32
#include <windows.h>
#else
#include <dlfcn.h>
#endif


static void* sf_glad_get_dlopen_handle(const char *lib_names[], int length) {
    void *handle = NULL;
    int i;

    for (i = 0; i < length; ++i) {
#if GLAD_PLATFORM_WIN32
  #if GLAD_PLATFORM_UWP
        size_t buffer_size = (strlen(lib_names[i]) + 1) * sizeof(WCHAR);
        LPWSTR buffer = (LPWSTR) malloc(buffer_size);
        if (buffer != NULL) {
            int ret = MultiByteToWideChar(CP_ACP, 0, lib_names[i], -1, buffer, buffer_size);
            if (ret != 0) {
                handle = (void*) LoadPackagedLibrary(buffer, 0);
            }
            free((void*) buffer);
        }
  #else
        handle = (void*) LoadLibraryA(lib_names[i]);
  #endif
#else
        handle = dlopen(lib_names[i], RTLD_LAZY | RTLD_LOCAL);
#endif
        if (handle != NULL) {
            return handle;
        }
    }

    return NULL;
}

static void sf_glad_close_dlopen_handle(void* handle) {
    if (handle != NULL) {
#if GLAD_PLATFORM_WIN32
        FreeLibrary((HMODULE) handle);
#else
        dlclose(handle);
#endif
    }
}

static GLADapiproc sf_glad_dlsym_handle(void* handle, const char *name) {
    if (handle == NULL) {
        return NULL;
    }

#if GLAD_PLATFORM_WIN32
    return (GLADapiproc) GetProcAddress((HMODULE) handle, name);
#else
    return GLAD_GNUC_EXTENSION (GLADapiproc) dlsym(handle, name);
#endif
}

#endif /* GLAD_LOADER_LIBRARY_C_ */

struct _sf_glad_egl_userptr {
    void *handle;
    PFNEGLGETPROCADDRESSPROC get_proc_address_ptr;
};

static GLADapiproc sf_glad_egl_get_proc(void *vuserptr, const char* name) {
    struct _sf_glad_egl_userptr userptr = *(struct _sf_glad_egl_userptr*) vuserptr;
    GLADapiproc result = NULL;

    result = sf_glad_dlsym_handle(userptr.handle, name);
    if (result == NULL) {
        result = GLAD_GNUC_EXTENSION (GLADapiproc) userptr.get_proc_address_ptr(name);
    }

    return result;
}

static void* _egl_handle = NULL;

static void* sf_glad_egl_dlopen_handle(void) {
#if GLAD_PLATFORM_APPLE
    static const char *NAMES[] = {"libEGL.dylib"};
#elif GLAD_PLATFORM_WIN32
    static const char *NAMES[] = {"libEGL.dll", "EGL.dll"};
#else
    static const char *NAMES[] = {"libEGL.so.1", "libEGL.so"};
#endif

    if (_egl_handle == NULL) {
        _egl_handle = sf_glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0]));
    }

    return _egl_handle;
}

static struct _sf_glad_egl_userptr sf_glad_egl_build_userptr(void *handle) {
    struct _sf_glad_egl_userptr userptr;
    userptr.handle = handle;
    userptr.get_proc_address_ptr = (PFNEGLGETPROCADDRESSPROC) sf_glad_dlsym_handle(handle, "eglGetProcAddress");
    return userptr;
}

static void gladLoaderUnloadEGL() {
    if (_egl_handle != NULL) {
        sf_glad_close_dlopen_handle(_egl_handle);
        _egl_handle = NULL;
    }
}

static int gladLoaderLoadEGL(EGLDisplay display) {
    int version = 0;
    void *handle = NULL;
    int did_load = 0;
    struct _sf_glad_egl_userptr userptr;

    did_load = _egl_handle == NULL;
    handle = sf_glad_egl_dlopen_handle();
    if (handle != NULL) {
        userptr = sf_glad_egl_build_userptr(handle);

        if (userptr.get_proc_address_ptr != NULL) {
            version = gladLoadEGLUserPtr(display, sf_glad_egl_get_proc, &userptr);
        }

        if (!version && did_load) {
            gladLoaderUnloadEGL();
        }
    }

    return version;
}

#endif /* SF_GLAD_EGL */

#ifdef __cplusplus
}
#endif

#endif /* SF_GLAD_EGL_IMPLEMENTATION */

