egl.c (68073B)
1 /** 2 * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0 3 */ 4 #include <stdio.h> 5 #include <stdlib.h> 6 #include <string.h> 7 #include <glad/egl.h> 8 9 #ifndef GLAD_IMPL_UTIL_C_ 10 #define GLAD_IMPL_UTIL_C_ 11 12 #ifdef _MSC_VER 13 #define GLAD_IMPL_UTIL_SSCANF sscanf_s 14 #else 15 #define GLAD_IMPL_UTIL_SSCANF sscanf 16 #endif 17 18 #endif /* GLAD_IMPL_UTIL_C_ */ 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 25 26 int GLAD_EGL_VERSION_1_0 = 0; 27 int GLAD_EGL_VERSION_1_1 = 0; 28 int GLAD_EGL_VERSION_1_2 = 0; 29 int GLAD_EGL_VERSION_1_3 = 0; 30 int GLAD_EGL_VERSION_1_4 = 0; 31 int GLAD_EGL_VERSION_1_5 = 0; 32 int GLAD_EGL_ANDROID_GLES_layers = 0; 33 int GLAD_EGL_ANDROID_blob_cache = 0; 34 int GLAD_EGL_ANDROID_create_native_client_buffer = 0; 35 int GLAD_EGL_ANDROID_framebuffer_target = 0; 36 int GLAD_EGL_ANDROID_front_buffer_auto_refresh = 0; 37 int GLAD_EGL_ANDROID_get_frame_timestamps = 0; 38 int GLAD_EGL_ANDROID_get_native_client_buffer = 0; 39 int GLAD_EGL_ANDROID_image_native_buffer = 0; 40 int GLAD_EGL_ANDROID_native_fence_sync = 0; 41 int GLAD_EGL_ANDROID_presentation_time = 0; 42 int GLAD_EGL_ANDROID_recordable = 0; 43 int GLAD_EGL_ANGLE_d3d_share_handle_client_buffer = 0; 44 int GLAD_EGL_ANGLE_device_d3d = 0; 45 int GLAD_EGL_ANGLE_query_surface_pointer = 0; 46 int GLAD_EGL_ANGLE_surface_d3d_texture_2d_share_handle = 0; 47 int GLAD_EGL_ANGLE_sync_control_rate = 0; 48 int GLAD_EGL_ANGLE_window_fixed_size = 0; 49 int GLAD_EGL_ARM_image_format = 0; 50 int GLAD_EGL_ARM_implicit_external_sync = 0; 51 int GLAD_EGL_ARM_pixmap_multisample_discard = 0; 52 int GLAD_EGL_EXT_bind_to_front = 0; 53 int GLAD_EGL_EXT_buffer_age = 0; 54 int GLAD_EGL_EXT_client_extensions = 0; 55 int GLAD_EGL_EXT_client_sync = 0; 56 int GLAD_EGL_EXT_compositor = 0; 57 int GLAD_EGL_EXT_config_select_group = 0; 58 int GLAD_EGL_EXT_create_context_robustness = 0; 59 int GLAD_EGL_EXT_device_base = 0; 60 int GLAD_EGL_EXT_device_drm = 0; 61 int GLAD_EGL_EXT_device_drm_render_node = 0; 62 int GLAD_EGL_EXT_device_enumeration = 0; 63 int GLAD_EGL_EXT_device_openwf = 0; 64 int GLAD_EGL_EXT_device_persistent_id = 0; 65 int GLAD_EGL_EXT_device_query = 0; 66 int GLAD_EGL_EXT_device_query_name = 0; 67 int GLAD_EGL_EXT_explicit_device = 0; 68 int GLAD_EGL_EXT_gl_colorspace_bt2020_hlg = 0; 69 int GLAD_EGL_EXT_gl_colorspace_bt2020_linear = 0; 70 int GLAD_EGL_EXT_gl_colorspace_bt2020_pq = 0; 71 int GLAD_EGL_EXT_gl_colorspace_display_p3 = 0; 72 int GLAD_EGL_EXT_gl_colorspace_display_p3_linear = 0; 73 int GLAD_EGL_EXT_gl_colorspace_display_p3_passthrough = 0; 74 int GLAD_EGL_EXT_gl_colorspace_scrgb = 0; 75 int GLAD_EGL_EXT_gl_colorspace_scrgb_linear = 0; 76 int GLAD_EGL_EXT_image_dma_buf_import = 0; 77 int GLAD_EGL_EXT_image_dma_buf_import_modifiers = 0; 78 int GLAD_EGL_EXT_image_gl_colorspace = 0; 79 int GLAD_EGL_EXT_image_implicit_sync_control = 0; 80 int GLAD_EGL_EXT_multiview_window = 0; 81 int GLAD_EGL_EXT_output_base = 0; 82 int GLAD_EGL_EXT_output_drm = 0; 83 int GLAD_EGL_EXT_output_openwf = 0; 84 int GLAD_EGL_EXT_pixel_format_float = 0; 85 int GLAD_EGL_EXT_platform_base = 0; 86 int GLAD_EGL_EXT_platform_device = 0; 87 int GLAD_EGL_EXT_platform_wayland = 0; 88 int GLAD_EGL_EXT_platform_x11 = 0; 89 int GLAD_EGL_EXT_platform_xcb = 0; 90 int GLAD_EGL_EXT_present_opaque = 0; 91 int GLAD_EGL_EXT_protected_content = 0; 92 int GLAD_EGL_EXT_protected_surface = 0; 93 int GLAD_EGL_EXT_query_reset_notification_strategy = 0; 94 int GLAD_EGL_EXT_stream_consumer_egloutput = 0; 95 int GLAD_EGL_EXT_surface_CTA861_3_metadata = 0; 96 int GLAD_EGL_EXT_surface_SMPTE2086_metadata = 0; 97 int GLAD_EGL_EXT_surface_compression = 0; 98 int GLAD_EGL_EXT_swap_buffers_with_damage = 0; 99 int GLAD_EGL_EXT_sync_reuse = 0; 100 int GLAD_EGL_EXT_yuv_surface = 0; 101 int GLAD_EGL_HI_clientpixmap = 0; 102 int GLAD_EGL_HI_colorformats = 0; 103 int GLAD_EGL_IMG_context_priority = 0; 104 int GLAD_EGL_IMG_image_plane_attribs = 0; 105 int GLAD_EGL_KHR_cl_event = 0; 106 int GLAD_EGL_KHR_cl_event2 = 0; 107 int GLAD_EGL_KHR_client_get_all_proc_addresses = 0; 108 int GLAD_EGL_KHR_config_attribs = 0; 109 int GLAD_EGL_KHR_context_flush_control = 0; 110 int GLAD_EGL_KHR_create_context = 0; 111 int GLAD_EGL_KHR_create_context_no_error = 0; 112 int GLAD_EGL_KHR_debug = 0; 113 int GLAD_EGL_KHR_display_reference = 0; 114 int GLAD_EGL_KHR_fence_sync = 0; 115 int GLAD_EGL_KHR_get_all_proc_addresses = 0; 116 int GLAD_EGL_KHR_gl_colorspace = 0; 117 int GLAD_EGL_KHR_gl_renderbuffer_image = 0; 118 int GLAD_EGL_KHR_gl_texture_2D_image = 0; 119 int GLAD_EGL_KHR_gl_texture_3D_image = 0; 120 int GLAD_EGL_KHR_gl_texture_cubemap_image = 0; 121 int GLAD_EGL_KHR_image = 0; 122 int GLAD_EGL_KHR_image_base = 0; 123 int GLAD_EGL_KHR_image_pixmap = 0; 124 int GLAD_EGL_KHR_lock_surface = 0; 125 int GLAD_EGL_KHR_lock_surface2 = 0; 126 int GLAD_EGL_KHR_lock_surface3 = 0; 127 int GLAD_EGL_KHR_mutable_render_buffer = 0; 128 int GLAD_EGL_KHR_no_config_context = 0; 129 int GLAD_EGL_KHR_partial_update = 0; 130 int GLAD_EGL_KHR_platform_android = 0; 131 int GLAD_EGL_KHR_platform_gbm = 0; 132 int GLAD_EGL_KHR_platform_wayland = 0; 133 int GLAD_EGL_KHR_platform_x11 = 0; 134 int GLAD_EGL_KHR_reusable_sync = 0; 135 int GLAD_EGL_KHR_stream = 0; 136 int GLAD_EGL_KHR_stream_attrib = 0; 137 int GLAD_EGL_KHR_stream_consumer_gltexture = 0; 138 int GLAD_EGL_KHR_stream_cross_process_fd = 0; 139 int GLAD_EGL_KHR_stream_fifo = 0; 140 int GLAD_EGL_KHR_stream_producer_aldatalocator = 0; 141 int GLAD_EGL_KHR_stream_producer_eglsurface = 0; 142 int GLAD_EGL_KHR_surfaceless_context = 0; 143 int GLAD_EGL_KHR_swap_buffers_with_damage = 0; 144 int GLAD_EGL_KHR_vg_parent_image = 0; 145 int GLAD_EGL_KHR_wait_sync = 0; 146 int GLAD_EGL_MESA_drm_image = 0; 147 int GLAD_EGL_MESA_image_dma_buf_export = 0; 148 int GLAD_EGL_MESA_platform_gbm = 0; 149 int GLAD_EGL_MESA_platform_surfaceless = 0; 150 int GLAD_EGL_MESA_query_driver = 0; 151 int GLAD_EGL_NOK_swap_region = 0; 152 int GLAD_EGL_NOK_swap_region2 = 0; 153 int GLAD_EGL_NOK_texture_from_pixmap = 0; 154 int GLAD_EGL_NV_3dvision_surface = 0; 155 int GLAD_EGL_NV_context_priority_realtime = 0; 156 int GLAD_EGL_NV_coverage_sample = 0; 157 int GLAD_EGL_NV_coverage_sample_resolve = 0; 158 int GLAD_EGL_NV_cuda_event = 0; 159 int GLAD_EGL_NV_depth_nonlinear = 0; 160 int GLAD_EGL_NV_device_cuda = 0; 161 int GLAD_EGL_NV_native_query = 0; 162 int GLAD_EGL_NV_post_convert_rounding = 0; 163 int GLAD_EGL_NV_post_sub_buffer = 0; 164 int GLAD_EGL_NV_quadruple_buffer = 0; 165 int GLAD_EGL_NV_robustness_video_memory_purge = 0; 166 int GLAD_EGL_NV_stream_consumer_eglimage = 0; 167 int GLAD_EGL_NV_stream_consumer_eglimage_use_scanout_attrib = 0; 168 int GLAD_EGL_NV_stream_consumer_gltexture_yuv = 0; 169 int GLAD_EGL_NV_stream_cross_display = 0; 170 int GLAD_EGL_NV_stream_cross_object = 0; 171 int GLAD_EGL_NV_stream_cross_partition = 0; 172 int GLAD_EGL_NV_stream_cross_process = 0; 173 int GLAD_EGL_NV_stream_cross_system = 0; 174 int GLAD_EGL_NV_stream_dma = 0; 175 int GLAD_EGL_NV_stream_fifo_next = 0; 176 int GLAD_EGL_NV_stream_fifo_synchronous = 0; 177 int GLAD_EGL_NV_stream_flush = 0; 178 int GLAD_EGL_NV_stream_frame_limits = 0; 179 int GLAD_EGL_NV_stream_metadata = 0; 180 int GLAD_EGL_NV_stream_origin = 0; 181 int GLAD_EGL_NV_stream_remote = 0; 182 int GLAD_EGL_NV_stream_reset = 0; 183 int GLAD_EGL_NV_stream_socket = 0; 184 int GLAD_EGL_NV_stream_socket_inet = 0; 185 int GLAD_EGL_NV_stream_socket_unix = 0; 186 int GLAD_EGL_NV_stream_sync = 0; 187 int GLAD_EGL_NV_sync = 0; 188 int GLAD_EGL_NV_system_time = 0; 189 int GLAD_EGL_NV_triple_buffer = 0; 190 int GLAD_EGL_QNX_image_native_buffer = 0; 191 int GLAD_EGL_QNX_platform_screen = 0; 192 int GLAD_EGL_TIZEN_image_native_buffer = 0; 193 int GLAD_EGL_TIZEN_image_native_surface = 0; 194 int GLAD_EGL_WL_bind_wayland_display = 0; 195 int GLAD_EGL_WL_create_wayland_buffer_from_image = 0; 196 197 198 199 PFNEGLBINDAPIPROC glad_eglBindAPI = NULL; 200 PFNEGLBINDTEXIMAGEPROC glad_eglBindTexImage = NULL; 201 PFNEGLBINDWAYLANDDISPLAYWLPROC glad_eglBindWaylandDisplayWL = NULL; 202 PFNEGLCHOOSECONFIGPROC glad_eglChooseConfig = NULL; 203 PFNEGLCLIENTSIGNALSYNCEXTPROC glad_eglClientSignalSyncEXT = NULL; 204 PFNEGLCLIENTWAITSYNCPROC glad_eglClientWaitSync = NULL; 205 PFNEGLCLIENTWAITSYNCKHRPROC glad_eglClientWaitSyncKHR = NULL; 206 PFNEGLCLIENTWAITSYNCNVPROC glad_eglClientWaitSyncNV = NULL; 207 PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC glad_eglCompositorBindTexWindowEXT = NULL; 208 PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC glad_eglCompositorSetContextAttributesEXT = NULL; 209 PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC glad_eglCompositorSetContextListEXT = NULL; 210 PFNEGLCOMPOSITORSETSIZEEXTPROC glad_eglCompositorSetSizeEXT = NULL; 211 PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC glad_eglCompositorSetWindowAttributesEXT = NULL; 212 PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC glad_eglCompositorSetWindowListEXT = NULL; 213 PFNEGLCOMPOSITORSWAPPOLICYEXTPROC glad_eglCompositorSwapPolicyEXT = NULL; 214 PFNEGLCOPYBUFFERSPROC glad_eglCopyBuffers = NULL; 215 PFNEGLCREATECONTEXTPROC glad_eglCreateContext = NULL; 216 PFNEGLCREATEDRMIMAGEMESAPROC glad_eglCreateDRMImageMESA = NULL; 217 PFNEGLCREATEFENCESYNCNVPROC glad_eglCreateFenceSyncNV = NULL; 218 PFNEGLCREATEIMAGEPROC glad_eglCreateImage = NULL; 219 PFNEGLCREATEIMAGEKHRPROC glad_eglCreateImageKHR = NULL; 220 PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC glad_eglCreateNativeClientBufferANDROID = NULL; 221 PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC glad_eglCreatePbufferFromClientBuffer = NULL; 222 PFNEGLCREATEPBUFFERSURFACEPROC glad_eglCreatePbufferSurface = NULL; 223 PFNEGLCREATEPIXMAPSURFACEPROC glad_eglCreatePixmapSurface = NULL; 224 PFNEGLCREATEPIXMAPSURFACEHIPROC glad_eglCreatePixmapSurfaceHI = NULL; 225 PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC glad_eglCreatePlatformPixmapSurface = NULL; 226 PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC glad_eglCreatePlatformPixmapSurfaceEXT = NULL; 227 PFNEGLCREATEPLATFORMWINDOWSURFACEPROC glad_eglCreatePlatformWindowSurface = NULL; 228 PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC glad_eglCreatePlatformWindowSurfaceEXT = NULL; 229 PFNEGLCREATESTREAMATTRIBKHRPROC glad_eglCreateStreamAttribKHR = NULL; 230 PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC glad_eglCreateStreamFromFileDescriptorKHR = NULL; 231 PFNEGLCREATESTREAMKHRPROC glad_eglCreateStreamKHR = NULL; 232 PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC glad_eglCreateStreamProducerSurfaceKHR = NULL; 233 PFNEGLCREATESTREAMSYNCNVPROC glad_eglCreateStreamSyncNV = NULL; 234 PFNEGLCREATESYNCPROC glad_eglCreateSync = NULL; 235 PFNEGLCREATESYNC64KHRPROC glad_eglCreateSync64KHR = NULL; 236 PFNEGLCREATESYNCKHRPROC glad_eglCreateSyncKHR = NULL; 237 PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC glad_eglCreateWaylandBufferFromImageWL = NULL; 238 PFNEGLCREATEWINDOWSURFACEPROC glad_eglCreateWindowSurface = NULL; 239 PFNEGLDEBUGMESSAGECONTROLKHRPROC glad_eglDebugMessageControlKHR = NULL; 240 PFNEGLDESTROYCONTEXTPROC glad_eglDestroyContext = NULL; 241 PFNEGLDESTROYIMAGEPROC glad_eglDestroyImage = NULL; 242 PFNEGLDESTROYIMAGEKHRPROC glad_eglDestroyImageKHR = NULL; 243 PFNEGLDESTROYSTREAMKHRPROC glad_eglDestroyStreamKHR = NULL; 244 PFNEGLDESTROYSURFACEPROC glad_eglDestroySurface = NULL; 245 PFNEGLDESTROYSYNCPROC glad_eglDestroySync = NULL; 246 PFNEGLDESTROYSYNCKHRPROC glad_eglDestroySyncKHR = NULL; 247 PFNEGLDESTROYSYNCNVPROC glad_eglDestroySyncNV = NULL; 248 PFNEGLDUPNATIVEFENCEFDANDROIDPROC glad_eglDupNativeFenceFDANDROID = NULL; 249 PFNEGLEXPORTDMABUFIMAGEMESAPROC glad_eglExportDMABUFImageMESA = NULL; 250 PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC glad_eglExportDMABUFImageQueryMESA = NULL; 251 PFNEGLEXPORTDRMIMAGEMESAPROC glad_eglExportDRMImageMESA = NULL; 252 PFNEGLFENCENVPROC glad_eglFenceNV = NULL; 253 PFNEGLGETCOMPOSITORTIMINGANDROIDPROC glad_eglGetCompositorTimingANDROID = NULL; 254 PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC glad_eglGetCompositorTimingSupportedANDROID = NULL; 255 PFNEGLGETCONFIGATTRIBPROC glad_eglGetConfigAttrib = NULL; 256 PFNEGLGETCONFIGSPROC glad_eglGetConfigs = NULL; 257 PFNEGLGETCURRENTCONTEXTPROC glad_eglGetCurrentContext = NULL; 258 PFNEGLGETCURRENTDISPLAYPROC glad_eglGetCurrentDisplay = NULL; 259 PFNEGLGETCURRENTSURFACEPROC glad_eglGetCurrentSurface = NULL; 260 PFNEGLGETDISPLAYPROC glad_eglGetDisplay = NULL; 261 PFNEGLGETDISPLAYDRIVERCONFIGPROC glad_eglGetDisplayDriverConfig = NULL; 262 PFNEGLGETDISPLAYDRIVERNAMEPROC glad_eglGetDisplayDriverName = NULL; 263 PFNEGLGETERRORPROC glad_eglGetError = NULL; 264 PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC glad_eglGetFrameTimestampSupportedANDROID = NULL; 265 PFNEGLGETFRAMETIMESTAMPSANDROIDPROC glad_eglGetFrameTimestampsANDROID = NULL; 266 PFNEGLGETMSCRATEANGLEPROC glad_eglGetMscRateANGLE = NULL; 267 PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC glad_eglGetNativeClientBufferANDROID = NULL; 268 PFNEGLGETNEXTFRAMEIDANDROIDPROC glad_eglGetNextFrameIdANDROID = NULL; 269 PFNEGLGETOUTPUTLAYERSEXTPROC glad_eglGetOutputLayersEXT = NULL; 270 PFNEGLGETOUTPUTPORTSEXTPROC glad_eglGetOutputPortsEXT = NULL; 271 PFNEGLGETPLATFORMDISPLAYPROC glad_eglGetPlatformDisplay = NULL; 272 PFNEGLGETPLATFORMDISPLAYEXTPROC glad_eglGetPlatformDisplayEXT = NULL; 273 PFNEGLGETPROCADDRESSPROC glad_eglGetProcAddress = NULL; 274 PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC glad_eglGetStreamFileDescriptorKHR = NULL; 275 PFNEGLGETSYNCATTRIBPROC glad_eglGetSyncAttrib = NULL; 276 PFNEGLGETSYNCATTRIBKHRPROC glad_eglGetSyncAttribKHR = NULL; 277 PFNEGLGETSYNCATTRIBNVPROC glad_eglGetSyncAttribNV = NULL; 278 PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC glad_eglGetSystemTimeFrequencyNV = NULL; 279 PFNEGLGETSYSTEMTIMENVPROC glad_eglGetSystemTimeNV = NULL; 280 PFNEGLINITIALIZEPROC glad_eglInitialize = NULL; 281 PFNEGLLABELOBJECTKHRPROC glad_eglLabelObjectKHR = NULL; 282 PFNEGLLOCKSURFACEKHRPROC glad_eglLockSurfaceKHR = NULL; 283 PFNEGLMAKECURRENTPROC glad_eglMakeCurrent = NULL; 284 PFNEGLOUTPUTLAYERATTRIBEXTPROC glad_eglOutputLayerAttribEXT = NULL; 285 PFNEGLOUTPUTPORTATTRIBEXTPROC glad_eglOutputPortAttribEXT = NULL; 286 PFNEGLPOSTSUBBUFFERNVPROC glad_eglPostSubBufferNV = NULL; 287 PFNEGLPRESENTATIONTIMEANDROIDPROC glad_eglPresentationTimeANDROID = NULL; 288 PFNEGLQUERYAPIPROC glad_eglQueryAPI = NULL; 289 PFNEGLQUERYCONTEXTPROC glad_eglQueryContext = NULL; 290 PFNEGLQUERYDEBUGKHRPROC glad_eglQueryDebugKHR = NULL; 291 PFNEGLQUERYDEVICEATTRIBEXTPROC glad_eglQueryDeviceAttribEXT = NULL; 292 PFNEGLQUERYDEVICEBINARYEXTPROC glad_eglQueryDeviceBinaryEXT = NULL; 293 PFNEGLQUERYDEVICESTRINGEXTPROC glad_eglQueryDeviceStringEXT = NULL; 294 PFNEGLQUERYDEVICESEXTPROC glad_eglQueryDevicesEXT = NULL; 295 PFNEGLQUERYDISPLAYATTRIBEXTPROC glad_eglQueryDisplayAttribEXT = NULL; 296 PFNEGLQUERYDISPLAYATTRIBKHRPROC glad_eglQueryDisplayAttribKHR = NULL; 297 PFNEGLQUERYDISPLAYATTRIBNVPROC glad_eglQueryDisplayAttribNV = NULL; 298 PFNEGLQUERYDMABUFFORMATSEXTPROC glad_eglQueryDmaBufFormatsEXT = NULL; 299 PFNEGLQUERYDMABUFMODIFIERSEXTPROC glad_eglQueryDmaBufModifiersEXT = NULL; 300 PFNEGLQUERYNATIVEDISPLAYNVPROC glad_eglQueryNativeDisplayNV = NULL; 301 PFNEGLQUERYNATIVEPIXMAPNVPROC glad_eglQueryNativePixmapNV = NULL; 302 PFNEGLQUERYNATIVEWINDOWNVPROC glad_eglQueryNativeWindowNV = NULL; 303 PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC glad_eglQueryOutputLayerAttribEXT = NULL; 304 PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC glad_eglQueryOutputLayerStringEXT = NULL; 305 PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC glad_eglQueryOutputPortAttribEXT = NULL; 306 PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC glad_eglQueryOutputPortStringEXT = NULL; 307 PFNEGLQUERYSTREAMATTRIBKHRPROC glad_eglQueryStreamAttribKHR = NULL; 308 PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC glad_eglQueryStreamConsumerEventNV = NULL; 309 PFNEGLQUERYSTREAMKHRPROC glad_eglQueryStreamKHR = NULL; 310 PFNEGLQUERYSTREAMMETADATANVPROC glad_eglQueryStreamMetadataNV = NULL; 311 PFNEGLQUERYSTREAMTIMEKHRPROC glad_eglQueryStreamTimeKHR = NULL; 312 PFNEGLQUERYSTREAMU64KHRPROC glad_eglQueryStreamu64KHR = NULL; 313 PFNEGLQUERYSTRINGPROC glad_eglQueryString = NULL; 314 PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC glad_eglQuerySupportedCompressionRatesEXT = NULL; 315 PFNEGLQUERYSURFACEPROC glad_eglQuerySurface = NULL; 316 PFNEGLQUERYSURFACE64KHRPROC glad_eglQuerySurface64KHR = NULL; 317 PFNEGLQUERYSURFACEPOINTERANGLEPROC glad_eglQuerySurfacePointerANGLE = NULL; 318 PFNEGLQUERYWAYLANDBUFFERWLPROC glad_eglQueryWaylandBufferWL = NULL; 319 PFNEGLRELEASETEXIMAGEPROC glad_eglReleaseTexImage = NULL; 320 PFNEGLRELEASETHREADPROC glad_eglReleaseThread = NULL; 321 PFNEGLRESETSTREAMNVPROC glad_eglResetStreamNV = NULL; 322 PFNEGLSETBLOBCACHEFUNCSANDROIDPROC glad_eglSetBlobCacheFuncsANDROID = NULL; 323 PFNEGLSETDAMAGEREGIONKHRPROC glad_eglSetDamageRegionKHR = NULL; 324 PFNEGLSETSTREAMATTRIBKHRPROC glad_eglSetStreamAttribKHR = NULL; 325 PFNEGLSETSTREAMMETADATANVPROC glad_eglSetStreamMetadataNV = NULL; 326 PFNEGLSIGNALSYNCKHRPROC glad_eglSignalSyncKHR = NULL; 327 PFNEGLSIGNALSYNCNVPROC glad_eglSignalSyncNV = NULL; 328 PFNEGLSTREAMACQUIREIMAGENVPROC glad_eglStreamAcquireImageNV = NULL; 329 PFNEGLSTREAMATTRIBKHRPROC glad_eglStreamAttribKHR = NULL; 330 PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC glad_eglStreamConsumerAcquireAttribKHR = NULL; 331 PFNEGLSTREAMCONSUMERACQUIREKHRPROC glad_eglStreamConsumerAcquireKHR = NULL; 332 PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC glad_eglStreamConsumerGLTextureExternalAttribsNV = NULL; 333 PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC glad_eglStreamConsumerGLTextureExternalKHR = NULL; 334 PFNEGLSTREAMCONSUMEROUTPUTEXTPROC glad_eglStreamConsumerOutputEXT = NULL; 335 PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC glad_eglStreamConsumerReleaseAttribKHR = NULL; 336 PFNEGLSTREAMCONSUMERRELEASEKHRPROC glad_eglStreamConsumerReleaseKHR = NULL; 337 PFNEGLSTREAMFLUSHNVPROC glad_eglStreamFlushNV = NULL; 338 PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC glad_eglStreamImageConsumerConnectNV = NULL; 339 PFNEGLSTREAMRELEASEIMAGENVPROC glad_eglStreamReleaseImageNV = NULL; 340 PFNEGLSURFACEATTRIBPROC glad_eglSurfaceAttrib = NULL; 341 PFNEGLSWAPBUFFERSPROC glad_eglSwapBuffers = NULL; 342 PFNEGLSWAPBUFFERSREGION2NOKPROC glad_eglSwapBuffersRegion2NOK = NULL; 343 PFNEGLSWAPBUFFERSREGIONNOKPROC glad_eglSwapBuffersRegionNOK = NULL; 344 PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC glad_eglSwapBuffersWithDamageEXT = NULL; 345 PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC glad_eglSwapBuffersWithDamageKHR = NULL; 346 PFNEGLSWAPINTERVALPROC glad_eglSwapInterval = NULL; 347 PFNEGLTERMINATEPROC glad_eglTerminate = NULL; 348 PFNEGLUNBINDWAYLANDDISPLAYWLPROC glad_eglUnbindWaylandDisplayWL = NULL; 349 PFNEGLUNLOCKSURFACEKHRPROC glad_eglUnlockSurfaceKHR = NULL; 350 PFNEGLUNSIGNALSYNCEXTPROC glad_eglUnsignalSyncEXT = NULL; 351 PFNEGLWAITCLIENTPROC glad_eglWaitClient = NULL; 352 PFNEGLWAITGLPROC glad_eglWaitGL = NULL; 353 PFNEGLWAITNATIVEPROC glad_eglWaitNative = NULL; 354 PFNEGLWAITSYNCPROC glad_eglWaitSync = NULL; 355 PFNEGLWAITSYNCKHRPROC glad_eglWaitSyncKHR = NULL; 356 357 358 static void glad_egl_load_EGL_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) { 359 if(!GLAD_EGL_VERSION_1_0) return; 360 glad_eglChooseConfig = (PFNEGLCHOOSECONFIGPROC) load(userptr, "eglChooseConfig"); 361 glad_eglCopyBuffers = (PFNEGLCOPYBUFFERSPROC) load(userptr, "eglCopyBuffers"); 362 glad_eglCreateContext = (PFNEGLCREATECONTEXTPROC) load(userptr, "eglCreateContext"); 363 glad_eglCreatePbufferSurface = (PFNEGLCREATEPBUFFERSURFACEPROC) load(userptr, "eglCreatePbufferSurface"); 364 glad_eglCreatePixmapSurface = (PFNEGLCREATEPIXMAPSURFACEPROC) load(userptr, "eglCreatePixmapSurface"); 365 glad_eglCreateWindowSurface = (PFNEGLCREATEWINDOWSURFACEPROC) load(userptr, "eglCreateWindowSurface"); 366 glad_eglDestroyContext = (PFNEGLDESTROYCONTEXTPROC) load(userptr, "eglDestroyContext"); 367 glad_eglDestroySurface = (PFNEGLDESTROYSURFACEPROC) load(userptr, "eglDestroySurface"); 368 glad_eglGetConfigAttrib = (PFNEGLGETCONFIGATTRIBPROC) load(userptr, "eglGetConfigAttrib"); 369 glad_eglGetConfigs = (PFNEGLGETCONFIGSPROC) load(userptr, "eglGetConfigs"); 370 glad_eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) load(userptr, "eglGetCurrentDisplay"); 371 glad_eglGetCurrentSurface = (PFNEGLGETCURRENTSURFACEPROC) load(userptr, "eglGetCurrentSurface"); 372 glad_eglGetDisplay = (PFNEGLGETDISPLAYPROC) load(userptr, "eglGetDisplay"); 373 glad_eglGetError = (PFNEGLGETERRORPROC) load(userptr, "eglGetError"); 374 glad_eglGetProcAddress = (PFNEGLGETPROCADDRESSPROC) load(userptr, "eglGetProcAddress"); 375 glad_eglInitialize = (PFNEGLINITIALIZEPROC) load(userptr, "eglInitialize"); 376 glad_eglMakeCurrent = (PFNEGLMAKECURRENTPROC) load(userptr, "eglMakeCurrent"); 377 glad_eglQueryContext = (PFNEGLQUERYCONTEXTPROC) load(userptr, "eglQueryContext"); 378 glad_eglQueryString = (PFNEGLQUERYSTRINGPROC) load(userptr, "eglQueryString"); 379 glad_eglQuerySurface = (PFNEGLQUERYSURFACEPROC) load(userptr, "eglQuerySurface"); 380 glad_eglSwapBuffers = (PFNEGLSWAPBUFFERSPROC) load(userptr, "eglSwapBuffers"); 381 glad_eglTerminate = (PFNEGLTERMINATEPROC) load(userptr, "eglTerminate"); 382 glad_eglWaitGL = (PFNEGLWAITGLPROC) load(userptr, "eglWaitGL"); 383 glad_eglWaitNative = (PFNEGLWAITNATIVEPROC) load(userptr, "eglWaitNative"); 384 } 385 static void glad_egl_load_EGL_VERSION_1_1( GLADuserptrloadfunc load, void* userptr) { 386 if(!GLAD_EGL_VERSION_1_1) return; 387 glad_eglBindTexImage = (PFNEGLBINDTEXIMAGEPROC) load(userptr, "eglBindTexImage"); 388 glad_eglReleaseTexImage = (PFNEGLRELEASETEXIMAGEPROC) load(userptr, "eglReleaseTexImage"); 389 glad_eglSurfaceAttrib = (PFNEGLSURFACEATTRIBPROC) load(userptr, "eglSurfaceAttrib"); 390 glad_eglSwapInterval = (PFNEGLSWAPINTERVALPROC) load(userptr, "eglSwapInterval"); 391 } 392 static void glad_egl_load_EGL_VERSION_1_2( GLADuserptrloadfunc load, void* userptr) { 393 if(!GLAD_EGL_VERSION_1_2) return; 394 glad_eglBindAPI = (PFNEGLBINDAPIPROC) load(userptr, "eglBindAPI"); 395 glad_eglCreatePbufferFromClientBuffer = (PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) load(userptr, "eglCreatePbufferFromClientBuffer"); 396 glad_eglQueryAPI = (PFNEGLQUERYAPIPROC) load(userptr, "eglQueryAPI"); 397 glad_eglReleaseThread = (PFNEGLRELEASETHREADPROC) load(userptr, "eglReleaseThread"); 398 glad_eglWaitClient = (PFNEGLWAITCLIENTPROC) load(userptr, "eglWaitClient"); 399 } 400 static void glad_egl_load_EGL_VERSION_1_4( GLADuserptrloadfunc load, void* userptr) { 401 if(!GLAD_EGL_VERSION_1_4) return; 402 glad_eglGetCurrentContext = (PFNEGLGETCURRENTCONTEXTPROC) load(userptr, "eglGetCurrentContext"); 403 } 404 static void glad_egl_load_EGL_VERSION_1_5( GLADuserptrloadfunc load, void* userptr) { 405 if(!GLAD_EGL_VERSION_1_5) return; 406 glad_eglClientWaitSync = (PFNEGLCLIENTWAITSYNCPROC) load(userptr, "eglClientWaitSync"); 407 glad_eglCreateImage = (PFNEGLCREATEIMAGEPROC) load(userptr, "eglCreateImage"); 408 glad_eglCreatePlatformPixmapSurface = (PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) load(userptr, "eglCreatePlatformPixmapSurface"); 409 glad_eglCreatePlatformWindowSurface = (PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) load(userptr, "eglCreatePlatformWindowSurface"); 410 glad_eglCreateSync = (PFNEGLCREATESYNCPROC) load(userptr, "eglCreateSync"); 411 glad_eglDestroyImage = (PFNEGLDESTROYIMAGEPROC) load(userptr, "eglDestroyImage"); 412 glad_eglDestroySync = (PFNEGLDESTROYSYNCPROC) load(userptr, "eglDestroySync"); 413 glad_eglGetPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYPROC) load(userptr, "eglGetPlatformDisplay"); 414 glad_eglGetSyncAttrib = (PFNEGLGETSYNCATTRIBPROC) load(userptr, "eglGetSyncAttrib"); 415 glad_eglWaitSync = (PFNEGLWAITSYNCPROC) load(userptr, "eglWaitSync"); 416 } 417 static void glad_egl_load_EGL_ANDROID_blob_cache( GLADuserptrloadfunc load, void* userptr) { 418 if(!GLAD_EGL_ANDROID_blob_cache) return; 419 glad_eglSetBlobCacheFuncsANDROID = (PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) load(userptr, "eglSetBlobCacheFuncsANDROID"); 420 } 421 static void glad_egl_load_EGL_ANDROID_create_native_client_buffer( GLADuserptrloadfunc load, void* userptr) { 422 if(!GLAD_EGL_ANDROID_create_native_client_buffer) return; 423 glad_eglCreateNativeClientBufferANDROID = (PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) load(userptr, "eglCreateNativeClientBufferANDROID"); 424 } 425 static void glad_egl_load_EGL_ANDROID_get_frame_timestamps( GLADuserptrloadfunc load, void* userptr) { 426 if(!GLAD_EGL_ANDROID_get_frame_timestamps) return; 427 glad_eglGetCompositorTimingANDROID = (PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) load(userptr, "eglGetCompositorTimingANDROID"); 428 glad_eglGetCompositorTimingSupportedANDROID = (PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) load(userptr, "eglGetCompositorTimingSupportedANDROID"); 429 glad_eglGetFrameTimestampSupportedANDROID = (PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) load(userptr, "eglGetFrameTimestampSupportedANDROID"); 430 glad_eglGetFrameTimestampsANDROID = (PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) load(userptr, "eglGetFrameTimestampsANDROID"); 431 glad_eglGetNextFrameIdANDROID = (PFNEGLGETNEXTFRAMEIDANDROIDPROC) load(userptr, "eglGetNextFrameIdANDROID"); 432 } 433 static void glad_egl_load_EGL_ANDROID_get_native_client_buffer( GLADuserptrloadfunc load, void* userptr) { 434 if(!GLAD_EGL_ANDROID_get_native_client_buffer) return; 435 glad_eglGetNativeClientBufferANDROID = (PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) load(userptr, "eglGetNativeClientBufferANDROID"); 436 } 437 static void glad_egl_load_EGL_ANDROID_native_fence_sync( GLADuserptrloadfunc load, void* userptr) { 438 if(!GLAD_EGL_ANDROID_native_fence_sync) return; 439 glad_eglDupNativeFenceFDANDROID = (PFNEGLDUPNATIVEFENCEFDANDROIDPROC) load(userptr, "eglDupNativeFenceFDANDROID"); 440 } 441 static void glad_egl_load_EGL_ANDROID_presentation_time( GLADuserptrloadfunc load, void* userptr) { 442 if(!GLAD_EGL_ANDROID_presentation_time) return; 443 glad_eglPresentationTimeANDROID = (PFNEGLPRESENTATIONTIMEANDROIDPROC) load(userptr, "eglPresentationTimeANDROID"); 444 } 445 static void glad_egl_load_EGL_ANGLE_query_surface_pointer( GLADuserptrloadfunc load, void* userptr) { 446 if(!GLAD_EGL_ANGLE_query_surface_pointer) return; 447 glad_eglQuerySurfacePointerANGLE = (PFNEGLQUERYSURFACEPOINTERANGLEPROC) load(userptr, "eglQuerySurfacePointerANGLE"); 448 } 449 static void glad_egl_load_EGL_ANGLE_sync_control_rate( GLADuserptrloadfunc load, void* userptr) { 450 if(!GLAD_EGL_ANGLE_sync_control_rate) return; 451 glad_eglGetMscRateANGLE = (PFNEGLGETMSCRATEANGLEPROC) load(userptr, "eglGetMscRateANGLE"); 452 } 453 static void glad_egl_load_EGL_EXT_client_sync( GLADuserptrloadfunc load, void* userptr) { 454 if(!GLAD_EGL_EXT_client_sync) return; 455 glad_eglClientSignalSyncEXT = (PFNEGLCLIENTSIGNALSYNCEXTPROC) load(userptr, "eglClientSignalSyncEXT"); 456 } 457 static void glad_egl_load_EGL_EXT_compositor( GLADuserptrloadfunc load, void* userptr) { 458 if(!GLAD_EGL_EXT_compositor) return; 459 glad_eglCompositorBindTexWindowEXT = (PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC) load(userptr, "eglCompositorBindTexWindowEXT"); 460 glad_eglCompositorSetContextAttributesEXT = (PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC) load(userptr, "eglCompositorSetContextAttributesEXT"); 461 glad_eglCompositorSetContextListEXT = (PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC) load(userptr, "eglCompositorSetContextListEXT"); 462 glad_eglCompositorSetSizeEXT = (PFNEGLCOMPOSITORSETSIZEEXTPROC) load(userptr, "eglCompositorSetSizeEXT"); 463 glad_eglCompositorSetWindowAttributesEXT = (PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC) load(userptr, "eglCompositorSetWindowAttributesEXT"); 464 glad_eglCompositorSetWindowListEXT = (PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC) load(userptr, "eglCompositorSetWindowListEXT"); 465 glad_eglCompositorSwapPolicyEXT = (PFNEGLCOMPOSITORSWAPPOLICYEXTPROC) load(userptr, "eglCompositorSwapPolicyEXT"); 466 } 467 static void glad_egl_load_EGL_EXT_device_base( GLADuserptrloadfunc load, void* userptr) { 468 if(!GLAD_EGL_EXT_device_base) return; 469 glad_eglQueryDeviceAttribEXT = (PFNEGLQUERYDEVICEATTRIBEXTPROC) load(userptr, "eglQueryDeviceAttribEXT"); 470 glad_eglQueryDeviceStringEXT = (PFNEGLQUERYDEVICESTRINGEXTPROC) load(userptr, "eglQueryDeviceStringEXT"); 471 glad_eglQueryDevicesEXT = (PFNEGLQUERYDEVICESEXTPROC) load(userptr, "eglQueryDevicesEXT"); 472 glad_eglQueryDisplayAttribEXT = (PFNEGLQUERYDISPLAYATTRIBEXTPROC) load(userptr, "eglQueryDisplayAttribEXT"); 473 } 474 static void glad_egl_load_EGL_EXT_device_enumeration( GLADuserptrloadfunc load, void* userptr) { 475 if(!GLAD_EGL_EXT_device_enumeration) return; 476 glad_eglQueryDevicesEXT = (PFNEGLQUERYDEVICESEXTPROC) load(userptr, "eglQueryDevicesEXT"); 477 } 478 static void glad_egl_load_EGL_EXT_device_persistent_id( GLADuserptrloadfunc load, void* userptr) { 479 if(!GLAD_EGL_EXT_device_persistent_id) return; 480 glad_eglQueryDeviceBinaryEXT = (PFNEGLQUERYDEVICEBINARYEXTPROC) load(userptr, "eglQueryDeviceBinaryEXT"); 481 } 482 static void glad_egl_load_EGL_EXT_device_query( GLADuserptrloadfunc load, void* userptr) { 483 if(!GLAD_EGL_EXT_device_query) return; 484 glad_eglQueryDeviceAttribEXT = (PFNEGLQUERYDEVICEATTRIBEXTPROC) load(userptr, "eglQueryDeviceAttribEXT"); 485 glad_eglQueryDeviceStringEXT = (PFNEGLQUERYDEVICESTRINGEXTPROC) load(userptr, "eglQueryDeviceStringEXT"); 486 glad_eglQueryDisplayAttribEXT = (PFNEGLQUERYDISPLAYATTRIBEXTPROC) load(userptr, "eglQueryDisplayAttribEXT"); 487 } 488 static void glad_egl_load_EGL_EXT_image_dma_buf_import_modifiers( GLADuserptrloadfunc load, void* userptr) { 489 if(!GLAD_EGL_EXT_image_dma_buf_import_modifiers) return; 490 glad_eglQueryDmaBufFormatsEXT = (PFNEGLQUERYDMABUFFORMATSEXTPROC) load(userptr, "eglQueryDmaBufFormatsEXT"); 491 glad_eglQueryDmaBufModifiersEXT = (PFNEGLQUERYDMABUFMODIFIERSEXTPROC) load(userptr, "eglQueryDmaBufModifiersEXT"); 492 } 493 static void glad_egl_load_EGL_EXT_output_base( GLADuserptrloadfunc load, void* userptr) { 494 if(!GLAD_EGL_EXT_output_base) return; 495 glad_eglGetOutputLayersEXT = (PFNEGLGETOUTPUTLAYERSEXTPROC) load(userptr, "eglGetOutputLayersEXT"); 496 glad_eglGetOutputPortsEXT = (PFNEGLGETOUTPUTPORTSEXTPROC) load(userptr, "eglGetOutputPortsEXT"); 497 glad_eglOutputLayerAttribEXT = (PFNEGLOUTPUTLAYERATTRIBEXTPROC) load(userptr, "eglOutputLayerAttribEXT"); 498 glad_eglOutputPortAttribEXT = (PFNEGLOUTPUTPORTATTRIBEXTPROC) load(userptr, "eglOutputPortAttribEXT"); 499 glad_eglQueryOutputLayerAttribEXT = (PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) load(userptr, "eglQueryOutputLayerAttribEXT"); 500 glad_eglQueryOutputLayerStringEXT = (PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) load(userptr, "eglQueryOutputLayerStringEXT"); 501 glad_eglQueryOutputPortAttribEXT = (PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) load(userptr, "eglQueryOutputPortAttribEXT"); 502 glad_eglQueryOutputPortStringEXT = (PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) load(userptr, "eglQueryOutputPortStringEXT"); 503 } 504 static void glad_egl_load_EGL_EXT_platform_base( GLADuserptrloadfunc load, void* userptr) { 505 if(!GLAD_EGL_EXT_platform_base) return; 506 glad_eglCreatePlatformPixmapSurfaceEXT = (PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) load(userptr, "eglCreatePlatformPixmapSurfaceEXT"); 507 glad_eglCreatePlatformWindowSurfaceEXT = (PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) load(userptr, "eglCreatePlatformWindowSurfaceEXT"); 508 glad_eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC) load(userptr, "eglGetPlatformDisplayEXT"); 509 } 510 static void glad_egl_load_EGL_EXT_stream_consumer_egloutput( GLADuserptrloadfunc load, void* userptr) { 511 if(!GLAD_EGL_EXT_stream_consumer_egloutput) return; 512 glad_eglStreamConsumerOutputEXT = (PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) load(userptr, "eglStreamConsumerOutputEXT"); 513 } 514 static void glad_egl_load_EGL_EXT_surface_compression( GLADuserptrloadfunc load, void* userptr) { 515 if(!GLAD_EGL_EXT_surface_compression) return; 516 glad_eglQuerySupportedCompressionRatesEXT = (PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC) load(userptr, "eglQuerySupportedCompressionRatesEXT"); 517 } 518 static void glad_egl_load_EGL_EXT_swap_buffers_with_damage( GLADuserptrloadfunc load, void* userptr) { 519 if(!GLAD_EGL_EXT_swap_buffers_with_damage) return; 520 glad_eglSwapBuffersWithDamageEXT = (PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) load(userptr, "eglSwapBuffersWithDamageEXT"); 521 } 522 static void glad_egl_load_EGL_EXT_sync_reuse( GLADuserptrloadfunc load, void* userptr) { 523 if(!GLAD_EGL_EXT_sync_reuse) return; 524 glad_eglUnsignalSyncEXT = (PFNEGLUNSIGNALSYNCEXTPROC) load(userptr, "eglUnsignalSyncEXT"); 525 } 526 static void glad_egl_load_EGL_HI_clientpixmap( GLADuserptrloadfunc load, void* userptr) { 527 if(!GLAD_EGL_HI_clientpixmap) return; 528 glad_eglCreatePixmapSurfaceHI = (PFNEGLCREATEPIXMAPSURFACEHIPROC) load(userptr, "eglCreatePixmapSurfaceHI"); 529 } 530 static void glad_egl_load_EGL_KHR_cl_event2( GLADuserptrloadfunc load, void* userptr) { 531 if(!GLAD_EGL_KHR_cl_event2) return; 532 glad_eglCreateSync64KHR = (PFNEGLCREATESYNC64KHRPROC) load(userptr, "eglCreateSync64KHR"); 533 } 534 static void glad_egl_load_EGL_KHR_debug( GLADuserptrloadfunc load, void* userptr) { 535 if(!GLAD_EGL_KHR_debug) return; 536 glad_eglDebugMessageControlKHR = (PFNEGLDEBUGMESSAGECONTROLKHRPROC) load(userptr, "eglDebugMessageControlKHR"); 537 glad_eglLabelObjectKHR = (PFNEGLLABELOBJECTKHRPROC) load(userptr, "eglLabelObjectKHR"); 538 glad_eglQueryDebugKHR = (PFNEGLQUERYDEBUGKHRPROC) load(userptr, "eglQueryDebugKHR"); 539 } 540 static void glad_egl_load_EGL_KHR_display_reference( GLADuserptrloadfunc load, void* userptr) { 541 if(!GLAD_EGL_KHR_display_reference) return; 542 glad_eglQueryDisplayAttribKHR = (PFNEGLQUERYDISPLAYATTRIBKHRPROC) load(userptr, "eglQueryDisplayAttribKHR"); 543 } 544 static void glad_egl_load_EGL_KHR_fence_sync( GLADuserptrloadfunc load, void* userptr) { 545 if(!GLAD_EGL_KHR_fence_sync) return; 546 glad_eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC) load(userptr, "eglClientWaitSyncKHR"); 547 glad_eglCreateSyncKHR = (PFNEGLCREATESYNCKHRPROC) load(userptr, "eglCreateSyncKHR"); 548 glad_eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC) load(userptr, "eglDestroySyncKHR"); 549 glad_eglGetSyncAttribKHR = (PFNEGLGETSYNCATTRIBKHRPROC) load(userptr, "eglGetSyncAttribKHR"); 550 } 551 static void glad_egl_load_EGL_KHR_image( GLADuserptrloadfunc load, void* userptr) { 552 if(!GLAD_EGL_KHR_image) return; 553 glad_eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC) load(userptr, "eglCreateImageKHR"); 554 glad_eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC) load(userptr, "eglDestroyImageKHR"); 555 } 556 static void glad_egl_load_EGL_KHR_image_base( GLADuserptrloadfunc load, void* userptr) { 557 if(!GLAD_EGL_KHR_image_base) return; 558 glad_eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC) load(userptr, "eglCreateImageKHR"); 559 glad_eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC) load(userptr, "eglDestroyImageKHR"); 560 } 561 static void glad_egl_load_EGL_KHR_lock_surface( GLADuserptrloadfunc load, void* userptr) { 562 if(!GLAD_EGL_KHR_lock_surface) return; 563 glad_eglLockSurfaceKHR = (PFNEGLLOCKSURFACEKHRPROC) load(userptr, "eglLockSurfaceKHR"); 564 glad_eglUnlockSurfaceKHR = (PFNEGLUNLOCKSURFACEKHRPROC) load(userptr, "eglUnlockSurfaceKHR"); 565 } 566 static void glad_egl_load_EGL_KHR_lock_surface3( GLADuserptrloadfunc load, void* userptr) { 567 if(!GLAD_EGL_KHR_lock_surface3) return; 568 glad_eglLockSurfaceKHR = (PFNEGLLOCKSURFACEKHRPROC) load(userptr, "eglLockSurfaceKHR"); 569 glad_eglQuerySurface64KHR = (PFNEGLQUERYSURFACE64KHRPROC) load(userptr, "eglQuerySurface64KHR"); 570 glad_eglUnlockSurfaceKHR = (PFNEGLUNLOCKSURFACEKHRPROC) load(userptr, "eglUnlockSurfaceKHR"); 571 } 572 static void glad_egl_load_EGL_KHR_partial_update( GLADuserptrloadfunc load, void* userptr) { 573 if(!GLAD_EGL_KHR_partial_update) return; 574 glad_eglSetDamageRegionKHR = (PFNEGLSETDAMAGEREGIONKHRPROC) load(userptr, "eglSetDamageRegionKHR"); 575 } 576 static void glad_egl_load_EGL_KHR_reusable_sync( GLADuserptrloadfunc load, void* userptr) { 577 if(!GLAD_EGL_KHR_reusable_sync) return; 578 glad_eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC) load(userptr, "eglClientWaitSyncKHR"); 579 glad_eglCreateSyncKHR = (PFNEGLCREATESYNCKHRPROC) load(userptr, "eglCreateSyncKHR"); 580 glad_eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC) load(userptr, "eglDestroySyncKHR"); 581 glad_eglGetSyncAttribKHR = (PFNEGLGETSYNCATTRIBKHRPROC) load(userptr, "eglGetSyncAttribKHR"); 582 glad_eglSignalSyncKHR = (PFNEGLSIGNALSYNCKHRPROC) load(userptr, "eglSignalSyncKHR"); 583 } 584 static void glad_egl_load_EGL_KHR_stream( GLADuserptrloadfunc load, void* userptr) { 585 if(!GLAD_EGL_KHR_stream) return; 586 glad_eglCreateStreamKHR = (PFNEGLCREATESTREAMKHRPROC) load(userptr, "eglCreateStreamKHR"); 587 glad_eglDestroyStreamKHR = (PFNEGLDESTROYSTREAMKHRPROC) load(userptr, "eglDestroyStreamKHR"); 588 glad_eglQueryStreamKHR = (PFNEGLQUERYSTREAMKHRPROC) load(userptr, "eglQueryStreamKHR"); 589 glad_eglQueryStreamu64KHR = (PFNEGLQUERYSTREAMU64KHRPROC) load(userptr, "eglQueryStreamu64KHR"); 590 glad_eglStreamAttribKHR = (PFNEGLSTREAMATTRIBKHRPROC) load(userptr, "eglStreamAttribKHR"); 591 } 592 static void glad_egl_load_EGL_KHR_stream_attrib( GLADuserptrloadfunc load, void* userptr) { 593 if(!GLAD_EGL_KHR_stream_attrib) return; 594 glad_eglCreateStreamAttribKHR = (PFNEGLCREATESTREAMATTRIBKHRPROC) load(userptr, "eglCreateStreamAttribKHR"); 595 glad_eglQueryStreamAttribKHR = (PFNEGLQUERYSTREAMATTRIBKHRPROC) load(userptr, "eglQueryStreamAttribKHR"); 596 glad_eglSetStreamAttribKHR = (PFNEGLSETSTREAMATTRIBKHRPROC) load(userptr, "eglSetStreamAttribKHR"); 597 glad_eglStreamConsumerAcquireAttribKHR = (PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) load(userptr, "eglStreamConsumerAcquireAttribKHR"); 598 glad_eglStreamConsumerReleaseAttribKHR = (PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) load(userptr, "eglStreamConsumerReleaseAttribKHR"); 599 } 600 static void glad_egl_load_EGL_KHR_stream_consumer_gltexture( GLADuserptrloadfunc load, void* userptr) { 601 if(!GLAD_EGL_KHR_stream_consumer_gltexture) return; 602 glad_eglStreamConsumerAcquireKHR = (PFNEGLSTREAMCONSUMERACQUIREKHRPROC) load(userptr, "eglStreamConsumerAcquireKHR"); 603 glad_eglStreamConsumerGLTextureExternalKHR = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) load(userptr, "eglStreamConsumerGLTextureExternalKHR"); 604 glad_eglStreamConsumerReleaseKHR = (PFNEGLSTREAMCONSUMERRELEASEKHRPROC) load(userptr, "eglStreamConsumerReleaseKHR"); 605 } 606 static void glad_egl_load_EGL_KHR_stream_cross_process_fd( GLADuserptrloadfunc load, void* userptr) { 607 if(!GLAD_EGL_KHR_stream_cross_process_fd) return; 608 glad_eglCreateStreamFromFileDescriptorKHR = (PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) load(userptr, "eglCreateStreamFromFileDescriptorKHR"); 609 glad_eglGetStreamFileDescriptorKHR = (PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) load(userptr, "eglGetStreamFileDescriptorKHR"); 610 } 611 static void glad_egl_load_EGL_KHR_stream_fifo( GLADuserptrloadfunc load, void* userptr) { 612 if(!GLAD_EGL_KHR_stream_fifo) return; 613 glad_eglQueryStreamTimeKHR = (PFNEGLQUERYSTREAMTIMEKHRPROC) load(userptr, "eglQueryStreamTimeKHR"); 614 } 615 static void glad_egl_load_EGL_KHR_stream_producer_eglsurface( GLADuserptrloadfunc load, void* userptr) { 616 if(!GLAD_EGL_KHR_stream_producer_eglsurface) return; 617 glad_eglCreateStreamProducerSurfaceKHR = (PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) load(userptr, "eglCreateStreamProducerSurfaceKHR"); 618 } 619 static void glad_egl_load_EGL_KHR_swap_buffers_with_damage( GLADuserptrloadfunc load, void* userptr) { 620 if(!GLAD_EGL_KHR_swap_buffers_with_damage) return; 621 glad_eglSwapBuffersWithDamageKHR = (PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) load(userptr, "eglSwapBuffersWithDamageKHR"); 622 } 623 static void glad_egl_load_EGL_KHR_wait_sync( GLADuserptrloadfunc load, void* userptr) { 624 if(!GLAD_EGL_KHR_wait_sync) return; 625 glad_eglWaitSyncKHR = (PFNEGLWAITSYNCKHRPROC) load(userptr, "eglWaitSyncKHR"); 626 } 627 static void glad_egl_load_EGL_MESA_drm_image( GLADuserptrloadfunc load, void* userptr) { 628 if(!GLAD_EGL_MESA_drm_image) return; 629 glad_eglCreateDRMImageMESA = (PFNEGLCREATEDRMIMAGEMESAPROC) load(userptr, "eglCreateDRMImageMESA"); 630 glad_eglExportDRMImageMESA = (PFNEGLEXPORTDRMIMAGEMESAPROC) load(userptr, "eglExportDRMImageMESA"); 631 } 632 static void glad_egl_load_EGL_MESA_image_dma_buf_export( GLADuserptrloadfunc load, void* userptr) { 633 if(!GLAD_EGL_MESA_image_dma_buf_export) return; 634 glad_eglExportDMABUFImageMESA = (PFNEGLEXPORTDMABUFIMAGEMESAPROC) load(userptr, "eglExportDMABUFImageMESA"); 635 glad_eglExportDMABUFImageQueryMESA = (PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) load(userptr, "eglExportDMABUFImageQueryMESA"); 636 } 637 static void glad_egl_load_EGL_MESA_query_driver( GLADuserptrloadfunc load, void* userptr) { 638 if(!GLAD_EGL_MESA_query_driver) return; 639 glad_eglGetDisplayDriverConfig = (PFNEGLGETDISPLAYDRIVERCONFIGPROC) load(userptr, "eglGetDisplayDriverConfig"); 640 glad_eglGetDisplayDriverName = (PFNEGLGETDISPLAYDRIVERNAMEPROC) load(userptr, "eglGetDisplayDriverName"); 641 } 642 static void glad_egl_load_EGL_NOK_swap_region( GLADuserptrloadfunc load, void* userptr) { 643 if(!GLAD_EGL_NOK_swap_region) return; 644 glad_eglSwapBuffersRegionNOK = (PFNEGLSWAPBUFFERSREGIONNOKPROC) load(userptr, "eglSwapBuffersRegionNOK"); 645 } 646 static void glad_egl_load_EGL_NOK_swap_region2( GLADuserptrloadfunc load, void* userptr) { 647 if(!GLAD_EGL_NOK_swap_region2) return; 648 glad_eglSwapBuffersRegion2NOK = (PFNEGLSWAPBUFFERSREGION2NOKPROC) load(userptr, "eglSwapBuffersRegion2NOK"); 649 } 650 static void glad_egl_load_EGL_NV_native_query( GLADuserptrloadfunc load, void* userptr) { 651 if(!GLAD_EGL_NV_native_query) return; 652 glad_eglQueryNativeDisplayNV = (PFNEGLQUERYNATIVEDISPLAYNVPROC) load(userptr, "eglQueryNativeDisplayNV"); 653 glad_eglQueryNativePixmapNV = (PFNEGLQUERYNATIVEPIXMAPNVPROC) load(userptr, "eglQueryNativePixmapNV"); 654 glad_eglQueryNativeWindowNV = (PFNEGLQUERYNATIVEWINDOWNVPROC) load(userptr, "eglQueryNativeWindowNV"); 655 } 656 static void glad_egl_load_EGL_NV_post_sub_buffer( GLADuserptrloadfunc load, void* userptr) { 657 if(!GLAD_EGL_NV_post_sub_buffer) return; 658 glad_eglPostSubBufferNV = (PFNEGLPOSTSUBBUFFERNVPROC) load(userptr, "eglPostSubBufferNV"); 659 } 660 static void glad_egl_load_EGL_NV_stream_consumer_eglimage( GLADuserptrloadfunc load, void* userptr) { 661 if(!GLAD_EGL_NV_stream_consumer_eglimage) return; 662 glad_eglQueryStreamConsumerEventNV = (PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC) load(userptr, "eglQueryStreamConsumerEventNV"); 663 glad_eglStreamAcquireImageNV = (PFNEGLSTREAMACQUIREIMAGENVPROC) load(userptr, "eglStreamAcquireImageNV"); 664 glad_eglStreamImageConsumerConnectNV = (PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC) load(userptr, "eglStreamImageConsumerConnectNV"); 665 glad_eglStreamReleaseImageNV = (PFNEGLSTREAMRELEASEIMAGENVPROC) load(userptr, "eglStreamReleaseImageNV"); 666 } 667 static void glad_egl_load_EGL_NV_stream_consumer_gltexture_yuv( GLADuserptrloadfunc load, void* userptr) { 668 if(!GLAD_EGL_NV_stream_consumer_gltexture_yuv) return; 669 glad_eglStreamConsumerGLTextureExternalAttribsNV = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) load(userptr, "eglStreamConsumerGLTextureExternalAttribsNV"); 670 } 671 static void glad_egl_load_EGL_NV_stream_flush( GLADuserptrloadfunc load, void* userptr) { 672 if(!GLAD_EGL_NV_stream_flush) return; 673 glad_eglStreamFlushNV = (PFNEGLSTREAMFLUSHNVPROC) load(userptr, "eglStreamFlushNV"); 674 } 675 static void glad_egl_load_EGL_NV_stream_metadata( GLADuserptrloadfunc load, void* userptr) { 676 if(!GLAD_EGL_NV_stream_metadata) return; 677 glad_eglQueryDisplayAttribNV = (PFNEGLQUERYDISPLAYATTRIBNVPROC) load(userptr, "eglQueryDisplayAttribNV"); 678 glad_eglQueryStreamMetadataNV = (PFNEGLQUERYSTREAMMETADATANVPROC) load(userptr, "eglQueryStreamMetadataNV"); 679 glad_eglSetStreamMetadataNV = (PFNEGLSETSTREAMMETADATANVPROC) load(userptr, "eglSetStreamMetadataNV"); 680 } 681 static void glad_egl_load_EGL_NV_stream_reset( GLADuserptrloadfunc load, void* userptr) { 682 if(!GLAD_EGL_NV_stream_reset) return; 683 glad_eglResetStreamNV = (PFNEGLRESETSTREAMNVPROC) load(userptr, "eglResetStreamNV"); 684 } 685 static void glad_egl_load_EGL_NV_stream_sync( GLADuserptrloadfunc load, void* userptr) { 686 if(!GLAD_EGL_NV_stream_sync) return; 687 glad_eglCreateStreamSyncNV = (PFNEGLCREATESTREAMSYNCNVPROC) load(userptr, "eglCreateStreamSyncNV"); 688 } 689 static void glad_egl_load_EGL_NV_sync( GLADuserptrloadfunc load, void* userptr) { 690 if(!GLAD_EGL_NV_sync) return; 691 glad_eglClientWaitSyncNV = (PFNEGLCLIENTWAITSYNCNVPROC) load(userptr, "eglClientWaitSyncNV"); 692 glad_eglCreateFenceSyncNV = (PFNEGLCREATEFENCESYNCNVPROC) load(userptr, "eglCreateFenceSyncNV"); 693 glad_eglDestroySyncNV = (PFNEGLDESTROYSYNCNVPROC) load(userptr, "eglDestroySyncNV"); 694 glad_eglFenceNV = (PFNEGLFENCENVPROC) load(userptr, "eglFenceNV"); 695 glad_eglGetSyncAttribNV = (PFNEGLGETSYNCATTRIBNVPROC) load(userptr, "eglGetSyncAttribNV"); 696 glad_eglSignalSyncNV = (PFNEGLSIGNALSYNCNVPROC) load(userptr, "eglSignalSyncNV"); 697 } 698 static void glad_egl_load_EGL_NV_system_time( GLADuserptrloadfunc load, void* userptr) { 699 if(!GLAD_EGL_NV_system_time) return; 700 glad_eglGetSystemTimeFrequencyNV = (PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) load(userptr, "eglGetSystemTimeFrequencyNV"); 701 glad_eglGetSystemTimeNV = (PFNEGLGETSYSTEMTIMENVPROC) load(userptr, "eglGetSystemTimeNV"); 702 } 703 static void glad_egl_load_EGL_WL_bind_wayland_display( GLADuserptrloadfunc load, void* userptr) { 704 if(!GLAD_EGL_WL_bind_wayland_display) return; 705 glad_eglBindWaylandDisplayWL = (PFNEGLBINDWAYLANDDISPLAYWLPROC) load(userptr, "eglBindWaylandDisplayWL"); 706 glad_eglQueryWaylandBufferWL = (PFNEGLQUERYWAYLANDBUFFERWLPROC) load(userptr, "eglQueryWaylandBufferWL"); 707 glad_eglUnbindWaylandDisplayWL = (PFNEGLUNBINDWAYLANDDISPLAYWLPROC) load(userptr, "eglUnbindWaylandDisplayWL"); 708 } 709 static void glad_egl_load_EGL_WL_create_wayland_buffer_from_image( GLADuserptrloadfunc load, void* userptr) { 710 if(!GLAD_EGL_WL_create_wayland_buffer_from_image) return; 711 glad_eglCreateWaylandBufferFromImageWL = (PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC) load(userptr, "eglCreateWaylandBufferFromImageWL"); 712 } 713 714 715 716 static int glad_egl_get_extensions(EGLDisplay display, const char **extensions) { 717 *extensions = eglQueryString(display, EGL_EXTENSIONS); 718 719 return extensions != NULL; 720 } 721 722 static int glad_egl_has_extension(const char *extensions, const char *ext) { 723 const char *loc; 724 const char *terminator; 725 if(extensions == NULL) { 726 return 0; 727 } 728 while(1) { 729 loc = strstr(extensions, ext); 730 if(loc == NULL) { 731 return 0; 732 } 733 terminator = loc + strlen(ext); 734 if((loc == extensions || *(loc - 1) == ' ') && 735 (*terminator == ' ' || *terminator == '\0')) { 736 return 1; 737 } 738 extensions = terminator; 739 } 740 } 741 742 static GLADapiproc glad_egl_get_proc_from_userptr(void *userptr, const char *name) { 743 return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name); 744 } 745 746 static int glad_egl_find_extensions_egl(EGLDisplay display) { 747 const char *extensions; 748 if (!glad_egl_get_extensions(display, &extensions)) return 0; 749 750 GLAD_EGL_ANDROID_GLES_layers = glad_egl_has_extension(extensions, "EGL_ANDROID_GLES_layers"); 751 GLAD_EGL_ANDROID_blob_cache = glad_egl_has_extension(extensions, "EGL_ANDROID_blob_cache"); 752 GLAD_EGL_ANDROID_create_native_client_buffer = glad_egl_has_extension(extensions, "EGL_ANDROID_create_native_client_buffer"); 753 GLAD_EGL_ANDROID_framebuffer_target = glad_egl_has_extension(extensions, "EGL_ANDROID_framebuffer_target"); 754 GLAD_EGL_ANDROID_front_buffer_auto_refresh = glad_egl_has_extension(extensions, "EGL_ANDROID_front_buffer_auto_refresh"); 755 GLAD_EGL_ANDROID_get_frame_timestamps = glad_egl_has_extension(extensions, "EGL_ANDROID_get_frame_timestamps"); 756 GLAD_EGL_ANDROID_get_native_client_buffer = glad_egl_has_extension(extensions, "EGL_ANDROID_get_native_client_buffer"); 757 GLAD_EGL_ANDROID_image_native_buffer = glad_egl_has_extension(extensions, "EGL_ANDROID_image_native_buffer"); 758 GLAD_EGL_ANDROID_native_fence_sync = glad_egl_has_extension(extensions, "EGL_ANDROID_native_fence_sync"); 759 GLAD_EGL_ANDROID_presentation_time = glad_egl_has_extension(extensions, "EGL_ANDROID_presentation_time"); 760 GLAD_EGL_ANDROID_recordable = glad_egl_has_extension(extensions, "EGL_ANDROID_recordable"); 761 GLAD_EGL_ANGLE_d3d_share_handle_client_buffer = glad_egl_has_extension(extensions, "EGL_ANGLE_d3d_share_handle_client_buffer"); 762 GLAD_EGL_ANGLE_device_d3d = glad_egl_has_extension(extensions, "EGL_ANGLE_device_d3d"); 763 GLAD_EGL_ANGLE_query_surface_pointer = glad_egl_has_extension(extensions, "EGL_ANGLE_query_surface_pointer"); 764 GLAD_EGL_ANGLE_surface_d3d_texture_2d_share_handle = glad_egl_has_extension(extensions, "EGL_ANGLE_surface_d3d_texture_2d_share_handle"); 765 GLAD_EGL_ANGLE_sync_control_rate = glad_egl_has_extension(extensions, "EGL_ANGLE_sync_control_rate"); 766 GLAD_EGL_ANGLE_window_fixed_size = glad_egl_has_extension(extensions, "EGL_ANGLE_window_fixed_size"); 767 GLAD_EGL_ARM_image_format = glad_egl_has_extension(extensions, "EGL_ARM_image_format"); 768 GLAD_EGL_ARM_implicit_external_sync = glad_egl_has_extension(extensions, "EGL_ARM_implicit_external_sync"); 769 GLAD_EGL_ARM_pixmap_multisample_discard = glad_egl_has_extension(extensions, "EGL_ARM_pixmap_multisample_discard"); 770 GLAD_EGL_EXT_bind_to_front = glad_egl_has_extension(extensions, "EGL_EXT_bind_to_front"); 771 GLAD_EGL_EXT_buffer_age = glad_egl_has_extension(extensions, "EGL_EXT_buffer_age"); 772 GLAD_EGL_EXT_client_extensions = glad_egl_has_extension(extensions, "EGL_EXT_client_extensions"); 773 GLAD_EGL_EXT_client_sync = glad_egl_has_extension(extensions, "EGL_EXT_client_sync"); 774 GLAD_EGL_EXT_compositor = glad_egl_has_extension(extensions, "EGL_EXT_compositor"); 775 GLAD_EGL_EXT_config_select_group = glad_egl_has_extension(extensions, "EGL_EXT_config_select_group"); 776 GLAD_EGL_EXT_create_context_robustness = glad_egl_has_extension(extensions, "EGL_EXT_create_context_robustness"); 777 GLAD_EGL_EXT_device_base = glad_egl_has_extension(extensions, "EGL_EXT_device_base"); 778 GLAD_EGL_EXT_device_drm = glad_egl_has_extension(extensions, "EGL_EXT_device_drm"); 779 GLAD_EGL_EXT_device_drm_render_node = glad_egl_has_extension(extensions, "EGL_EXT_device_drm_render_node"); 780 GLAD_EGL_EXT_device_enumeration = glad_egl_has_extension(extensions, "EGL_EXT_device_enumeration"); 781 GLAD_EGL_EXT_device_openwf = glad_egl_has_extension(extensions, "EGL_EXT_device_openwf"); 782 GLAD_EGL_EXT_device_persistent_id = glad_egl_has_extension(extensions, "EGL_EXT_device_persistent_id"); 783 GLAD_EGL_EXT_device_query = glad_egl_has_extension(extensions, "EGL_EXT_device_query"); 784 GLAD_EGL_EXT_device_query_name = glad_egl_has_extension(extensions, "EGL_EXT_device_query_name"); 785 GLAD_EGL_EXT_explicit_device = glad_egl_has_extension(extensions, "EGL_EXT_explicit_device"); 786 GLAD_EGL_EXT_gl_colorspace_bt2020_hlg = glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_bt2020_hlg"); 787 GLAD_EGL_EXT_gl_colorspace_bt2020_linear = glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_bt2020_linear"); 788 GLAD_EGL_EXT_gl_colorspace_bt2020_pq = glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_bt2020_pq"); 789 GLAD_EGL_EXT_gl_colorspace_display_p3 = glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_display_p3"); 790 GLAD_EGL_EXT_gl_colorspace_display_p3_linear = glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_display_p3_linear"); 791 GLAD_EGL_EXT_gl_colorspace_display_p3_passthrough = glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_display_p3_passthrough"); 792 GLAD_EGL_EXT_gl_colorspace_scrgb = glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_scrgb"); 793 GLAD_EGL_EXT_gl_colorspace_scrgb_linear = glad_egl_has_extension(extensions, "EGL_EXT_gl_colorspace_scrgb_linear"); 794 GLAD_EGL_EXT_image_dma_buf_import = glad_egl_has_extension(extensions, "EGL_EXT_image_dma_buf_import"); 795 GLAD_EGL_EXT_image_dma_buf_import_modifiers = glad_egl_has_extension(extensions, "EGL_EXT_image_dma_buf_import_modifiers"); 796 GLAD_EGL_EXT_image_gl_colorspace = glad_egl_has_extension(extensions, "EGL_EXT_image_gl_colorspace"); 797 GLAD_EGL_EXT_image_implicit_sync_control = glad_egl_has_extension(extensions, "EGL_EXT_image_implicit_sync_control"); 798 GLAD_EGL_EXT_multiview_window = glad_egl_has_extension(extensions, "EGL_EXT_multiview_window"); 799 GLAD_EGL_EXT_output_base = glad_egl_has_extension(extensions, "EGL_EXT_output_base"); 800 GLAD_EGL_EXT_output_drm = glad_egl_has_extension(extensions, "EGL_EXT_output_drm"); 801 GLAD_EGL_EXT_output_openwf = glad_egl_has_extension(extensions, "EGL_EXT_output_openwf"); 802 GLAD_EGL_EXT_pixel_format_float = glad_egl_has_extension(extensions, "EGL_EXT_pixel_format_float"); 803 GLAD_EGL_EXT_platform_base = glad_egl_has_extension(extensions, "EGL_EXT_platform_base"); 804 GLAD_EGL_EXT_platform_device = glad_egl_has_extension(extensions, "EGL_EXT_platform_device"); 805 GLAD_EGL_EXT_platform_wayland = glad_egl_has_extension(extensions, "EGL_EXT_platform_wayland"); 806 GLAD_EGL_EXT_platform_x11 = glad_egl_has_extension(extensions, "EGL_EXT_platform_x11"); 807 GLAD_EGL_EXT_platform_xcb = glad_egl_has_extension(extensions, "EGL_EXT_platform_xcb"); 808 GLAD_EGL_EXT_present_opaque = glad_egl_has_extension(extensions, "EGL_EXT_present_opaque"); 809 GLAD_EGL_EXT_protected_content = glad_egl_has_extension(extensions, "EGL_EXT_protected_content"); 810 GLAD_EGL_EXT_protected_surface = glad_egl_has_extension(extensions, "EGL_EXT_protected_surface"); 811 GLAD_EGL_EXT_query_reset_notification_strategy = glad_egl_has_extension(extensions, "EGL_EXT_query_reset_notification_strategy"); 812 GLAD_EGL_EXT_stream_consumer_egloutput = glad_egl_has_extension(extensions, "EGL_EXT_stream_consumer_egloutput"); 813 GLAD_EGL_EXT_surface_CTA861_3_metadata = glad_egl_has_extension(extensions, "EGL_EXT_surface_CTA861_3_metadata"); 814 GLAD_EGL_EXT_surface_SMPTE2086_metadata = glad_egl_has_extension(extensions, "EGL_EXT_surface_SMPTE2086_metadata"); 815 GLAD_EGL_EXT_surface_compression = glad_egl_has_extension(extensions, "EGL_EXT_surface_compression"); 816 GLAD_EGL_EXT_swap_buffers_with_damage = glad_egl_has_extension(extensions, "EGL_EXT_swap_buffers_with_damage"); 817 GLAD_EGL_EXT_sync_reuse = glad_egl_has_extension(extensions, "EGL_EXT_sync_reuse"); 818 GLAD_EGL_EXT_yuv_surface = glad_egl_has_extension(extensions, "EGL_EXT_yuv_surface"); 819 GLAD_EGL_HI_clientpixmap = glad_egl_has_extension(extensions, "EGL_HI_clientpixmap"); 820 GLAD_EGL_HI_colorformats = glad_egl_has_extension(extensions, "EGL_HI_colorformats"); 821 GLAD_EGL_IMG_context_priority = glad_egl_has_extension(extensions, "EGL_IMG_context_priority"); 822 GLAD_EGL_IMG_image_plane_attribs = glad_egl_has_extension(extensions, "EGL_IMG_image_plane_attribs"); 823 GLAD_EGL_KHR_cl_event = glad_egl_has_extension(extensions, "EGL_KHR_cl_event"); 824 GLAD_EGL_KHR_cl_event2 = glad_egl_has_extension(extensions, "EGL_KHR_cl_event2"); 825 GLAD_EGL_KHR_client_get_all_proc_addresses = glad_egl_has_extension(extensions, "EGL_KHR_client_get_all_proc_addresses"); 826 GLAD_EGL_KHR_config_attribs = glad_egl_has_extension(extensions, "EGL_KHR_config_attribs"); 827 GLAD_EGL_KHR_context_flush_control = glad_egl_has_extension(extensions, "EGL_KHR_context_flush_control"); 828 GLAD_EGL_KHR_create_context = glad_egl_has_extension(extensions, "EGL_KHR_create_context"); 829 GLAD_EGL_KHR_create_context_no_error = glad_egl_has_extension(extensions, "EGL_KHR_create_context_no_error"); 830 GLAD_EGL_KHR_debug = glad_egl_has_extension(extensions, "EGL_KHR_debug"); 831 GLAD_EGL_KHR_display_reference = glad_egl_has_extension(extensions, "EGL_KHR_display_reference"); 832 GLAD_EGL_KHR_fence_sync = glad_egl_has_extension(extensions, "EGL_KHR_fence_sync"); 833 GLAD_EGL_KHR_get_all_proc_addresses = glad_egl_has_extension(extensions, "EGL_KHR_get_all_proc_addresses"); 834 GLAD_EGL_KHR_gl_colorspace = glad_egl_has_extension(extensions, "EGL_KHR_gl_colorspace"); 835 GLAD_EGL_KHR_gl_renderbuffer_image = glad_egl_has_extension(extensions, "EGL_KHR_gl_renderbuffer_image"); 836 GLAD_EGL_KHR_gl_texture_2D_image = glad_egl_has_extension(extensions, "EGL_KHR_gl_texture_2D_image"); 837 GLAD_EGL_KHR_gl_texture_3D_image = glad_egl_has_extension(extensions, "EGL_KHR_gl_texture_3D_image"); 838 GLAD_EGL_KHR_gl_texture_cubemap_image = glad_egl_has_extension(extensions, "EGL_KHR_gl_texture_cubemap_image"); 839 GLAD_EGL_KHR_image = glad_egl_has_extension(extensions, "EGL_KHR_image"); 840 GLAD_EGL_KHR_image_base = glad_egl_has_extension(extensions, "EGL_KHR_image_base"); 841 GLAD_EGL_KHR_image_pixmap = glad_egl_has_extension(extensions, "EGL_KHR_image_pixmap"); 842 GLAD_EGL_KHR_lock_surface = glad_egl_has_extension(extensions, "EGL_KHR_lock_surface"); 843 GLAD_EGL_KHR_lock_surface2 = glad_egl_has_extension(extensions, "EGL_KHR_lock_surface2"); 844 GLAD_EGL_KHR_lock_surface3 = glad_egl_has_extension(extensions, "EGL_KHR_lock_surface3"); 845 GLAD_EGL_KHR_mutable_render_buffer = glad_egl_has_extension(extensions, "EGL_KHR_mutable_render_buffer"); 846 GLAD_EGL_KHR_no_config_context = glad_egl_has_extension(extensions, "EGL_KHR_no_config_context"); 847 GLAD_EGL_KHR_partial_update = glad_egl_has_extension(extensions, "EGL_KHR_partial_update"); 848 GLAD_EGL_KHR_platform_android = glad_egl_has_extension(extensions, "EGL_KHR_platform_android"); 849 GLAD_EGL_KHR_platform_gbm = glad_egl_has_extension(extensions, "EGL_KHR_platform_gbm"); 850 GLAD_EGL_KHR_platform_wayland = glad_egl_has_extension(extensions, "EGL_KHR_platform_wayland"); 851 GLAD_EGL_KHR_platform_x11 = glad_egl_has_extension(extensions, "EGL_KHR_platform_x11"); 852 GLAD_EGL_KHR_reusable_sync = glad_egl_has_extension(extensions, "EGL_KHR_reusable_sync"); 853 GLAD_EGL_KHR_stream = glad_egl_has_extension(extensions, "EGL_KHR_stream"); 854 GLAD_EGL_KHR_stream_attrib = glad_egl_has_extension(extensions, "EGL_KHR_stream_attrib"); 855 GLAD_EGL_KHR_stream_consumer_gltexture = glad_egl_has_extension(extensions, "EGL_KHR_stream_consumer_gltexture"); 856 GLAD_EGL_KHR_stream_cross_process_fd = glad_egl_has_extension(extensions, "EGL_KHR_stream_cross_process_fd"); 857 GLAD_EGL_KHR_stream_fifo = glad_egl_has_extension(extensions, "EGL_KHR_stream_fifo"); 858 GLAD_EGL_KHR_stream_producer_aldatalocator = glad_egl_has_extension(extensions, "EGL_KHR_stream_producer_aldatalocator"); 859 GLAD_EGL_KHR_stream_producer_eglsurface = glad_egl_has_extension(extensions, "EGL_KHR_stream_producer_eglsurface"); 860 GLAD_EGL_KHR_surfaceless_context = glad_egl_has_extension(extensions, "EGL_KHR_surfaceless_context"); 861 GLAD_EGL_KHR_swap_buffers_with_damage = glad_egl_has_extension(extensions, "EGL_KHR_swap_buffers_with_damage"); 862 GLAD_EGL_KHR_vg_parent_image = glad_egl_has_extension(extensions, "EGL_KHR_vg_parent_image"); 863 GLAD_EGL_KHR_wait_sync = glad_egl_has_extension(extensions, "EGL_KHR_wait_sync"); 864 GLAD_EGL_MESA_drm_image = glad_egl_has_extension(extensions, "EGL_MESA_drm_image"); 865 GLAD_EGL_MESA_image_dma_buf_export = glad_egl_has_extension(extensions, "EGL_MESA_image_dma_buf_export"); 866 GLAD_EGL_MESA_platform_gbm = glad_egl_has_extension(extensions, "EGL_MESA_platform_gbm"); 867 GLAD_EGL_MESA_platform_surfaceless = glad_egl_has_extension(extensions, "EGL_MESA_platform_surfaceless"); 868 GLAD_EGL_MESA_query_driver = glad_egl_has_extension(extensions, "EGL_MESA_query_driver"); 869 GLAD_EGL_NOK_swap_region = glad_egl_has_extension(extensions, "EGL_NOK_swap_region"); 870 GLAD_EGL_NOK_swap_region2 = glad_egl_has_extension(extensions, "EGL_NOK_swap_region2"); 871 GLAD_EGL_NOK_texture_from_pixmap = glad_egl_has_extension(extensions, "EGL_NOK_texture_from_pixmap"); 872 GLAD_EGL_NV_3dvision_surface = glad_egl_has_extension(extensions, "EGL_NV_3dvision_surface"); 873 GLAD_EGL_NV_context_priority_realtime = glad_egl_has_extension(extensions, "EGL_NV_context_priority_realtime"); 874 GLAD_EGL_NV_coverage_sample = glad_egl_has_extension(extensions, "EGL_NV_coverage_sample"); 875 GLAD_EGL_NV_coverage_sample_resolve = glad_egl_has_extension(extensions, "EGL_NV_coverage_sample_resolve"); 876 GLAD_EGL_NV_cuda_event = glad_egl_has_extension(extensions, "EGL_NV_cuda_event"); 877 GLAD_EGL_NV_depth_nonlinear = glad_egl_has_extension(extensions, "EGL_NV_depth_nonlinear"); 878 GLAD_EGL_NV_device_cuda = glad_egl_has_extension(extensions, "EGL_NV_device_cuda"); 879 GLAD_EGL_NV_native_query = glad_egl_has_extension(extensions, "EGL_NV_native_query"); 880 GLAD_EGL_NV_post_convert_rounding = glad_egl_has_extension(extensions, "EGL_NV_post_convert_rounding"); 881 GLAD_EGL_NV_post_sub_buffer = glad_egl_has_extension(extensions, "EGL_NV_post_sub_buffer"); 882 GLAD_EGL_NV_quadruple_buffer = glad_egl_has_extension(extensions, "EGL_NV_quadruple_buffer"); 883 GLAD_EGL_NV_robustness_video_memory_purge = glad_egl_has_extension(extensions, "EGL_NV_robustness_video_memory_purge"); 884 GLAD_EGL_NV_stream_consumer_eglimage = glad_egl_has_extension(extensions, "EGL_NV_stream_consumer_eglimage"); 885 GLAD_EGL_NV_stream_consumer_eglimage_use_scanout_attrib = glad_egl_has_extension(extensions, "EGL_NV_stream_consumer_eglimage_use_scanout_attrib"); 886 GLAD_EGL_NV_stream_consumer_gltexture_yuv = glad_egl_has_extension(extensions, "EGL_NV_stream_consumer_gltexture_yuv"); 887 GLAD_EGL_NV_stream_cross_display = glad_egl_has_extension(extensions, "EGL_NV_stream_cross_display"); 888 GLAD_EGL_NV_stream_cross_object = glad_egl_has_extension(extensions, "EGL_NV_stream_cross_object"); 889 GLAD_EGL_NV_stream_cross_partition = glad_egl_has_extension(extensions, "EGL_NV_stream_cross_partition"); 890 GLAD_EGL_NV_stream_cross_process = glad_egl_has_extension(extensions, "EGL_NV_stream_cross_process"); 891 GLAD_EGL_NV_stream_cross_system = glad_egl_has_extension(extensions, "EGL_NV_stream_cross_system"); 892 GLAD_EGL_NV_stream_dma = glad_egl_has_extension(extensions, "EGL_NV_stream_dma"); 893 GLAD_EGL_NV_stream_fifo_next = glad_egl_has_extension(extensions, "EGL_NV_stream_fifo_next"); 894 GLAD_EGL_NV_stream_fifo_synchronous = glad_egl_has_extension(extensions, "EGL_NV_stream_fifo_synchronous"); 895 GLAD_EGL_NV_stream_flush = glad_egl_has_extension(extensions, "EGL_NV_stream_flush"); 896 GLAD_EGL_NV_stream_frame_limits = glad_egl_has_extension(extensions, "EGL_NV_stream_frame_limits"); 897 GLAD_EGL_NV_stream_metadata = glad_egl_has_extension(extensions, "EGL_NV_stream_metadata"); 898 GLAD_EGL_NV_stream_origin = glad_egl_has_extension(extensions, "EGL_NV_stream_origin"); 899 GLAD_EGL_NV_stream_remote = glad_egl_has_extension(extensions, "EGL_NV_stream_remote"); 900 GLAD_EGL_NV_stream_reset = glad_egl_has_extension(extensions, "EGL_NV_stream_reset"); 901 GLAD_EGL_NV_stream_socket = glad_egl_has_extension(extensions, "EGL_NV_stream_socket"); 902 GLAD_EGL_NV_stream_socket_inet = glad_egl_has_extension(extensions, "EGL_NV_stream_socket_inet"); 903 GLAD_EGL_NV_stream_socket_unix = glad_egl_has_extension(extensions, "EGL_NV_stream_socket_unix"); 904 GLAD_EGL_NV_stream_sync = glad_egl_has_extension(extensions, "EGL_NV_stream_sync"); 905 GLAD_EGL_NV_sync = glad_egl_has_extension(extensions, "EGL_NV_sync"); 906 GLAD_EGL_NV_system_time = glad_egl_has_extension(extensions, "EGL_NV_system_time"); 907 GLAD_EGL_NV_triple_buffer = glad_egl_has_extension(extensions, "EGL_NV_triple_buffer"); 908 GLAD_EGL_QNX_image_native_buffer = glad_egl_has_extension(extensions, "EGL_QNX_image_native_buffer"); 909 GLAD_EGL_QNX_platform_screen = glad_egl_has_extension(extensions, "EGL_QNX_platform_screen"); 910 GLAD_EGL_TIZEN_image_native_buffer = glad_egl_has_extension(extensions, "EGL_TIZEN_image_native_buffer"); 911 GLAD_EGL_TIZEN_image_native_surface = glad_egl_has_extension(extensions, "EGL_TIZEN_image_native_surface"); 912 GLAD_EGL_WL_bind_wayland_display = glad_egl_has_extension(extensions, "EGL_WL_bind_wayland_display"); 913 GLAD_EGL_WL_create_wayland_buffer_from_image = glad_egl_has_extension(extensions, "EGL_WL_create_wayland_buffer_from_image"); 914 915 return 1; 916 } 917 918 static int glad_egl_find_core_egl(EGLDisplay display) { 919 int major, minor; 920 const char *version; 921 922 if (display == NULL) { 923 display = EGL_NO_DISPLAY; /* this is usually NULL, better safe than sorry */ 924 } 925 if (display == EGL_NO_DISPLAY) { 926 display = eglGetCurrentDisplay(); 927 } 928 #ifdef EGL_VERSION_1_4 929 if (display == EGL_NO_DISPLAY) { 930 display = eglGetDisplay(EGL_DEFAULT_DISPLAY); 931 } 932 #endif 933 #ifndef EGL_VERSION_1_5 934 if (display == EGL_NO_DISPLAY) { 935 return 0; 936 } 937 #endif 938 939 version = eglQueryString(display, EGL_VERSION); 940 (void) eglGetError(); 941 942 if (version == NULL) { 943 major = 1; 944 minor = 0; 945 } else { 946 GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor); 947 } 948 949 GLAD_EGL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; 950 GLAD_EGL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; 951 GLAD_EGL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; 952 GLAD_EGL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; 953 GLAD_EGL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; 954 GLAD_EGL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; 955 956 return GLAD_MAKE_VERSION(major, minor); 957 } 958 959 int gladLoadEGLUserPtr(EGLDisplay display, GLADuserptrloadfunc load, void* userptr) { 960 int version; 961 eglGetDisplay = (PFNEGLGETDISPLAYPROC) load(userptr, "eglGetDisplay"); 962 eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) load(userptr, "eglGetCurrentDisplay"); 963 eglQueryString = (PFNEGLQUERYSTRINGPROC) load(userptr, "eglQueryString"); 964 eglGetError = (PFNEGLGETERRORPROC) load(userptr, "eglGetError"); 965 if (eglGetDisplay == NULL || eglGetCurrentDisplay == NULL || eglQueryString == NULL || eglGetError == NULL) return 0; 966 967 version = glad_egl_find_core_egl(display); 968 if (!version) return 0; 969 glad_egl_load_EGL_VERSION_1_0(load, userptr); 970 glad_egl_load_EGL_VERSION_1_1(load, userptr); 971 glad_egl_load_EGL_VERSION_1_2(load, userptr); 972 glad_egl_load_EGL_VERSION_1_4(load, userptr); 973 glad_egl_load_EGL_VERSION_1_5(load, userptr); 974 975 if (!glad_egl_find_extensions_egl(display)) return 0; 976 glad_egl_load_EGL_ANDROID_blob_cache(load, userptr); 977 glad_egl_load_EGL_ANDROID_create_native_client_buffer(load, userptr); 978 glad_egl_load_EGL_ANDROID_get_frame_timestamps(load, userptr); 979 glad_egl_load_EGL_ANDROID_get_native_client_buffer(load, userptr); 980 glad_egl_load_EGL_ANDROID_native_fence_sync(load, userptr); 981 glad_egl_load_EGL_ANDROID_presentation_time(load, userptr); 982 glad_egl_load_EGL_ANGLE_query_surface_pointer(load, userptr); 983 glad_egl_load_EGL_ANGLE_sync_control_rate(load, userptr); 984 glad_egl_load_EGL_EXT_client_sync(load, userptr); 985 glad_egl_load_EGL_EXT_compositor(load, userptr); 986 glad_egl_load_EGL_EXT_device_base(load, userptr); 987 glad_egl_load_EGL_EXT_device_enumeration(load, userptr); 988 glad_egl_load_EGL_EXT_device_persistent_id(load, userptr); 989 glad_egl_load_EGL_EXT_device_query(load, userptr); 990 glad_egl_load_EGL_EXT_image_dma_buf_import_modifiers(load, userptr); 991 glad_egl_load_EGL_EXT_output_base(load, userptr); 992 glad_egl_load_EGL_EXT_platform_base(load, userptr); 993 glad_egl_load_EGL_EXT_stream_consumer_egloutput(load, userptr); 994 glad_egl_load_EGL_EXT_surface_compression(load, userptr); 995 glad_egl_load_EGL_EXT_swap_buffers_with_damage(load, userptr); 996 glad_egl_load_EGL_EXT_sync_reuse(load, userptr); 997 glad_egl_load_EGL_HI_clientpixmap(load, userptr); 998 glad_egl_load_EGL_KHR_cl_event2(load, userptr); 999 glad_egl_load_EGL_KHR_debug(load, userptr); 1000 glad_egl_load_EGL_KHR_display_reference(load, userptr); 1001 glad_egl_load_EGL_KHR_fence_sync(load, userptr); 1002 glad_egl_load_EGL_KHR_image(load, userptr); 1003 glad_egl_load_EGL_KHR_image_base(load, userptr); 1004 glad_egl_load_EGL_KHR_lock_surface(load, userptr); 1005 glad_egl_load_EGL_KHR_lock_surface3(load, userptr); 1006 glad_egl_load_EGL_KHR_partial_update(load, userptr); 1007 glad_egl_load_EGL_KHR_reusable_sync(load, userptr); 1008 glad_egl_load_EGL_KHR_stream(load, userptr); 1009 glad_egl_load_EGL_KHR_stream_attrib(load, userptr); 1010 glad_egl_load_EGL_KHR_stream_consumer_gltexture(load, userptr); 1011 glad_egl_load_EGL_KHR_stream_cross_process_fd(load, userptr); 1012 glad_egl_load_EGL_KHR_stream_fifo(load, userptr); 1013 glad_egl_load_EGL_KHR_stream_producer_eglsurface(load, userptr); 1014 glad_egl_load_EGL_KHR_swap_buffers_with_damage(load, userptr); 1015 glad_egl_load_EGL_KHR_wait_sync(load, userptr); 1016 glad_egl_load_EGL_MESA_drm_image(load, userptr); 1017 glad_egl_load_EGL_MESA_image_dma_buf_export(load, userptr); 1018 glad_egl_load_EGL_MESA_query_driver(load, userptr); 1019 glad_egl_load_EGL_NOK_swap_region(load, userptr); 1020 glad_egl_load_EGL_NOK_swap_region2(load, userptr); 1021 glad_egl_load_EGL_NV_native_query(load, userptr); 1022 glad_egl_load_EGL_NV_post_sub_buffer(load, userptr); 1023 glad_egl_load_EGL_NV_stream_consumer_eglimage(load, userptr); 1024 glad_egl_load_EGL_NV_stream_consumer_gltexture_yuv(load, userptr); 1025 glad_egl_load_EGL_NV_stream_flush(load, userptr); 1026 glad_egl_load_EGL_NV_stream_metadata(load, userptr); 1027 glad_egl_load_EGL_NV_stream_reset(load, userptr); 1028 glad_egl_load_EGL_NV_stream_sync(load, userptr); 1029 glad_egl_load_EGL_NV_sync(load, userptr); 1030 glad_egl_load_EGL_NV_system_time(load, userptr); 1031 glad_egl_load_EGL_WL_bind_wayland_display(load, userptr); 1032 glad_egl_load_EGL_WL_create_wayland_buffer_from_image(load, userptr); 1033 1034 1035 return version; 1036 } 1037 1038 int gladLoadEGL(EGLDisplay display, GLADloadfunc load) { 1039 return gladLoadEGLUserPtr(display, glad_egl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load); 1040 } 1041 1042 1043 1044 1045 #ifdef __cplusplus 1046 } 1047 #endif