1 /// EGL bindings for D. Generated automatically by gldgen.py 2 module gfx.bindings.opengl.egl; 3 4 import core.stdc.stdint; 5 import gfx.bindings.core; 6 import gfx.bindings.opengl.eglplatform; 7 import gfx.bindings.opengl.khrplatform; 8 9 // Base Types 10 11 // Types for EGL_VERSION_1_0 12 alias EGLBoolean = uint; 13 alias EGLDisplay = void *; 14 alias EGLConfig = void *; 15 alias EGLSurface = void *; 16 alias EGLContext = void *; 17 18 // Types for EGL_VERSION_1_2 19 alias EGLenum = uint; 20 alias EGLClientBuffer = void *; 21 22 // Types for EGL_VERSION_1_5 23 alias EGLSync = void *; 24 alias EGLAttrib = intptr_t; 25 alias EGLTime = khronos_utime_nanoseconds_t; 26 alias EGLImage = void *; 27 28 // Types for EGL_KHR_cl_event2 29 alias EGLSyncKHR = void *; 30 alias EGLAttribKHR = intptr_t; 31 32 // Types for EGL_KHR_debug 33 alias EGLLabelKHR = void *; 34 alias EGLObjectKHR = void *; 35 36 // Types for EGL_KHR_fence_sync 37 alias EGLTimeKHR = khronos_utime_nanoseconds_t; 38 39 // Types for EGL_KHR_image 40 alias EGLImageKHR = void *; 41 42 // Types for EGL_KHR_stream 43 alias EGLStreamKHR = void *; 44 alias EGLuint64KHR = khronos_uint64_t; 45 46 // Types for EGL_KHR_stream_cross_process_fd 47 alias EGLNativeFileDescriptorKHR = int; 48 49 // Types for EGL_ANDROID_blob_cache 50 alias EGLsizeiANDROID = khronos_ssize_t; 51 52 // Types for EGL_ANDROID_get_frame_timestamps 53 alias EGLnsecsANDROID = khronos_stime_nanoseconds_t; 54 55 // Types for EGL_EXT_device_base 56 alias EGLDeviceEXT = void *; 57 58 // Types for EGL_EXT_output_base 59 alias EGLOutputLayerEXT = void *; 60 alias EGLOutputPortEXT = void *; 61 62 // Types for EGL_NV_sync 63 alias EGLSyncNV = void *; 64 alias EGLTimeNV = khronos_utime_nanoseconds_t; 65 66 // Types for EGL_NV_system_time 67 alias EGLuint64NV = khronos_utime_nanoseconds_t; 68 69 // Struct declarations 70 struct AHardwareBuffer; 71 72 // Struct definitions 73 // Structs for EGL_HI_clientpixmap 74 struct EGLClientPixmapHI { 75 void * pData; 76 EGLint iWidth; 77 EGLint iHeight; 78 EGLint iStride; 79 } 80 81 // Function pointers 82 83 extern(C) nothrow @nogc { 84 85 // for EGL_VERSION_1_0 86 alias __eglMustCastToProperFunctionPointerType = void function(); 87 88 // for EGL_KHR_debug 89 alias EGLDEBUGPROCKHR = void function( 90 EGLenum error, 91 const(char)* command, 92 EGLint messageType, 93 EGLLabelKHR threadLabel, 94 EGLLabelKHR objectLabel, 95 const(char)* message 96 ); 97 98 // for EGL_ANDROID_blob_cache 99 alias EGLSetBlobFuncANDROID = void function( 100 const(void)* key, 101 EGLsizeiANDROID keySize, 102 const(void)* value, 103 EGLsizeiANDROID valueSize 104 ); 105 alias EGLGetBlobFuncANDROID = EGLsizeiANDROID function( 106 const(void)* key, 107 EGLsizeiANDROID keySize, 108 void * value, 109 EGLsizeiANDROID valueSize 110 ); 111 } 112 113 114 // Constants for EGL_VERSION_1_0 115 enum EGL_ALPHA_SIZE = 0x3021; 116 enum EGL_BAD_ACCESS = 0x3002; 117 enum EGL_BAD_ALLOC = 0x3003; 118 enum EGL_BAD_ATTRIBUTE = 0x3004; 119 enum EGL_BAD_CONFIG = 0x3005; 120 enum EGL_BAD_CONTEXT = 0x3006; 121 enum EGL_BAD_CURRENT_SURFACE = 0x3007; 122 enum EGL_BAD_DISPLAY = 0x3008; 123 enum EGL_BAD_MATCH = 0x3009; 124 enum EGL_BAD_NATIVE_PIXMAP = 0x300A; 125 enum EGL_BAD_NATIVE_WINDOW = 0x300B; 126 enum EGL_BAD_PARAMETER = 0x300C; 127 enum EGL_BAD_SURFACE = 0x300D; 128 enum EGL_BLUE_SIZE = 0x3022; 129 enum EGL_BUFFER_SIZE = 0x3020; 130 enum EGL_CONFIG_CAVEAT = 0x3027; 131 enum EGL_CONFIG_ID = 0x3028; 132 enum EGL_CORE_NATIVE_ENGINE = 0x305B; 133 enum EGL_DEPTH_SIZE = 0x3025; 134 enum EGL_DONT_CARE = EGL_CAST!(EGLint)(-1); 135 enum EGL_DRAW = 0x3059; 136 enum EGL_EXTENSIONS = 0x3055; 137 enum EGL_FALSE = 0; 138 enum EGL_GREEN_SIZE = 0x3023; 139 enum EGL_HEIGHT = 0x3056; 140 enum EGL_LARGEST_PBUFFER = 0x3058; 141 enum EGL_LEVEL = 0x3029; 142 enum EGL_MAX_PBUFFER_HEIGHT = 0x302A; 143 enum EGL_MAX_PBUFFER_PIXELS = 0x302B; 144 enum EGL_MAX_PBUFFER_WIDTH = 0x302C; 145 enum EGL_NATIVE_RENDERABLE = 0x302D; 146 enum EGL_NATIVE_VISUAL_ID = 0x302E; 147 enum EGL_NATIVE_VISUAL_TYPE = 0x302F; 148 enum EGL_NONE = 0x3038; 149 enum EGL_NON_CONFORMANT_CONFIG = 0x3051; 150 enum EGL_NOT_INITIALIZED = 0x3001; 151 enum EGL_NO_CONTEXT = EGL_CAST!(EGLContext)(0); 152 enum EGL_NO_DISPLAY = EGL_CAST!(EGLDisplay)(0); 153 enum EGL_NO_SURFACE = EGL_CAST!(EGLSurface)(0); 154 enum EGL_PBUFFER_BIT = 0x0001; 155 enum EGL_PIXMAP_BIT = 0x0002; 156 enum EGL_READ = 0x305A; 157 enum EGL_RED_SIZE = 0x3024; 158 enum EGL_SAMPLES = 0x3031; 159 enum EGL_SAMPLE_BUFFERS = 0x3032; 160 enum EGL_SLOW_CONFIG = 0x3050; 161 enum EGL_STENCIL_SIZE = 0x3026; 162 enum EGL_SUCCESS = 0x3000; 163 enum EGL_SURFACE_TYPE = 0x3033; 164 enum EGL_TRANSPARENT_BLUE_VALUE = 0x3035; 165 enum EGL_TRANSPARENT_GREEN_VALUE = 0x3036; 166 enum EGL_TRANSPARENT_RED_VALUE = 0x3037; 167 enum EGL_TRANSPARENT_RGB = 0x3052; 168 enum EGL_TRANSPARENT_TYPE = 0x3034; 169 enum EGL_TRUE = 1; 170 enum EGL_VENDOR = 0x3053; 171 enum EGL_VERSION = 0x3054; 172 enum EGL_WIDTH = 0x3057; 173 enum EGL_WINDOW_BIT = 0x0004; 174 175 // Constants for EGL_VERSION_1_1 176 enum EGL_BACK_BUFFER = 0x3084; 177 enum EGL_BIND_TO_TEXTURE_RGB = 0x3039; 178 enum EGL_BIND_TO_TEXTURE_RGBA = 0x303A; 179 enum EGL_CONTEXT_LOST = 0x300E; 180 enum EGL_MIN_SWAP_INTERVAL = 0x303B; 181 enum EGL_MAX_SWAP_INTERVAL = 0x303C; 182 enum EGL_MIPMAP_TEXTURE = 0x3082; 183 enum EGL_MIPMAP_LEVEL = 0x3083; 184 enum EGL_NO_TEXTURE = 0x305C; 185 enum EGL_TEXTURE_2D = 0x305F; 186 enum EGL_TEXTURE_FORMAT = 0x3080; 187 enum EGL_TEXTURE_RGB = 0x305D; 188 enum EGL_TEXTURE_RGBA = 0x305E; 189 enum EGL_TEXTURE_TARGET = 0x3081; 190 191 // Constants for EGL_VERSION_1_2 192 enum EGL_ALPHA_FORMAT = 0x3088; 193 enum EGL_ALPHA_FORMAT_NONPRE = 0x308B; 194 enum EGL_ALPHA_FORMAT_PRE = 0x308C; 195 enum EGL_ALPHA_MASK_SIZE = 0x303E; 196 enum EGL_BUFFER_PRESERVED = 0x3094; 197 enum EGL_BUFFER_DESTROYED = 0x3095; 198 enum EGL_CLIENT_APIS = 0x308D; 199 enum EGL_COLORSPACE = 0x3087; 200 enum EGL_COLORSPACE_sRGB = 0x3089; 201 enum EGL_COLORSPACE_LINEAR = 0x308A; 202 enum EGL_COLOR_BUFFER_TYPE = 0x303F; 203 enum EGL_CONTEXT_CLIENT_TYPE = 0x3097; 204 enum EGL_DISPLAY_SCALING = 10000; 205 enum EGL_HORIZONTAL_RESOLUTION = 0x3090; 206 enum EGL_LUMINANCE_BUFFER = 0x308F; 207 enum EGL_LUMINANCE_SIZE = 0x303D; 208 enum EGL_OPENGL_ES_BIT = 0x0001; 209 enum EGL_OPENVG_BIT = 0x0002; 210 enum EGL_OPENGL_ES_API = 0x30A0; 211 enum EGL_OPENVG_API = 0x30A1; 212 enum EGL_OPENVG_IMAGE = 0x3096; 213 enum EGL_PIXEL_ASPECT_RATIO = 0x3092; 214 enum EGL_RENDERABLE_TYPE = 0x3040; 215 enum EGL_RENDER_BUFFER = 0x3086; 216 enum EGL_RGB_BUFFER = 0x308E; 217 enum EGL_SINGLE_BUFFER = 0x3085; 218 enum EGL_SWAP_BEHAVIOR = 0x3093; 219 enum EGL_UNKNOWN = EGL_CAST!(EGLint)(-1); 220 enum EGL_VERTICAL_RESOLUTION = 0x3091; 221 222 // Constants for EGL_VERSION_1_3 223 enum EGL_CONFORMANT = 0x3042; 224 enum EGL_CONTEXT_CLIENT_VERSION = 0x3098; 225 enum EGL_MATCH_NATIVE_PIXMAP = 0x3041; 226 enum EGL_OPENGL_ES2_BIT = 0x0004; 227 enum EGL_VG_ALPHA_FORMAT = 0x3088; 228 enum EGL_VG_ALPHA_FORMAT_NONPRE = 0x308B; 229 enum EGL_VG_ALPHA_FORMAT_PRE = 0x308C; 230 enum EGL_VG_ALPHA_FORMAT_PRE_BIT = 0x0040; 231 enum EGL_VG_COLORSPACE = 0x3087; 232 enum EGL_VG_COLORSPACE_sRGB = 0x3089; 233 enum EGL_VG_COLORSPACE_LINEAR = 0x308A; 234 enum EGL_VG_COLORSPACE_LINEAR_BIT = 0x0020; 235 236 // Constants for EGL_VERSION_1_4 237 enum EGL_DEFAULT_DISPLAY = EGL_CAST!(EGLNativeDisplayType)(0); 238 enum EGL_MULTISAMPLE_RESOLVE_BOX_BIT = 0x0200; 239 enum EGL_MULTISAMPLE_RESOLVE = 0x3099; 240 enum EGL_MULTISAMPLE_RESOLVE_DEFAULT = 0x309A; 241 enum EGL_MULTISAMPLE_RESOLVE_BOX = 0x309B; 242 enum EGL_OPENGL_API = 0x30A2; 243 enum EGL_OPENGL_BIT = 0x0008; 244 enum EGL_SWAP_BEHAVIOR_PRESERVED_BIT = 0x0400; 245 246 // Constants for EGL_VERSION_1_5 247 enum EGL_CONTEXT_MAJOR_VERSION = 0x3098; 248 enum EGL_CONTEXT_MINOR_VERSION = 0x30FB; 249 enum EGL_CONTEXT_OPENGL_PROFILE_MASK = 0x30FD; 250 enum EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY = 0x31BD; 251 enum EGL_NO_RESET_NOTIFICATION = 0x31BE; 252 enum EGL_LOSE_CONTEXT_ON_RESET = 0x31BF; 253 enum EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT = 0x00000001; 254 enum EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT = 0x00000002; 255 enum EGL_CONTEXT_OPENGL_DEBUG = 0x31B0; 256 enum EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE = 0x31B1; 257 enum EGL_CONTEXT_OPENGL_ROBUST_ACCESS = 0x31B2; 258 enum EGL_OPENGL_ES3_BIT = 0x00000040; 259 enum EGL_CL_EVENT_HANDLE = 0x309C; 260 enum EGL_SYNC_CL_EVENT = 0x30FE; 261 enum EGL_SYNC_CL_EVENT_COMPLETE = 0x30FF; 262 enum EGL_SYNC_PRIOR_COMMANDS_COMPLETE = 0x30F0; 263 enum EGL_SYNC_TYPE = 0x30F7; 264 enum EGL_SYNC_STATUS = 0x30F1; 265 enum EGL_SYNC_CONDITION = 0x30F8; 266 enum EGL_SIGNALED = 0x30F2; 267 enum EGL_UNSIGNALED = 0x30F3; 268 enum EGL_SYNC_FLUSH_COMMANDS_BIT = 0x0001; 269 enum EGL_FOREVER = 0xFFFFFFFFFFFFFFFF; 270 enum EGL_TIMEOUT_EXPIRED = 0x30F5; 271 enum EGL_CONDITION_SATISFIED = 0x30F6; 272 enum EGL_NO_SYNC = EGL_CAST!(EGLSync)(0); 273 enum EGL_SYNC_FENCE = 0x30F9; 274 enum EGL_GL_COLORSPACE = 0x309D; 275 enum EGL_GL_COLORSPACE_SRGB = 0x3089; 276 enum EGL_GL_COLORSPACE_LINEAR = 0x308A; 277 enum EGL_GL_RENDERBUFFER = 0x30B9; 278 enum EGL_GL_TEXTURE_2D = 0x30B1; 279 enum EGL_GL_TEXTURE_LEVEL = 0x30BC; 280 enum EGL_GL_TEXTURE_3D = 0x30B2; 281 enum EGL_GL_TEXTURE_ZOFFSET = 0x30BD; 282 enum EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x30B3; 283 enum EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x30B4; 284 enum EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x30B5; 285 enum EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x30B6; 286 enum EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x30B7; 287 enum EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x30B8; 288 enum EGL_IMAGE_PRESERVED = 0x30D2; 289 enum EGL_NO_IMAGE = EGL_CAST!(EGLImage)(0); 290 291 // Constants for EGL_KHR_cl_event 292 enum EGL_CL_EVENT_HANDLE_KHR = 0x309C; 293 enum EGL_SYNC_CL_EVENT_KHR = 0x30FE; 294 enum EGL_SYNC_CL_EVENT_COMPLETE_KHR = 0x30FF; 295 296 // Constants for EGL_KHR_config_attribs 297 enum EGL_CONFORMANT_KHR = 0x3042; 298 enum EGL_VG_COLORSPACE_LINEAR_BIT_KHR = 0x0020; 299 enum EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR = 0x0040; 300 301 // Constants for EGL_KHR_context_flush_control 302 enum EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR = 0; 303 enum EGL_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x2097; 304 enum EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x2098; 305 306 // Constants for EGL_KHR_create_context 307 enum EGL_CONTEXT_MAJOR_VERSION_KHR = 0x3098; 308 enum EGL_CONTEXT_MINOR_VERSION_KHR = 0x30FB; 309 enum EGL_CONTEXT_FLAGS_KHR = 0x30FC; 310 enum EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR = 0x30FD; 311 enum EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR = 0x31BD; 312 enum EGL_NO_RESET_NOTIFICATION_KHR = 0x31BE; 313 enum EGL_LOSE_CONTEXT_ON_RESET_KHR = 0x31BF; 314 enum EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR = 0x00000001; 315 enum EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR = 0x00000002; 316 enum EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR = 0x00000004; 317 enum EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR = 0x00000001; 318 enum EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR = 0x00000002; 319 enum EGL_OPENGL_ES3_BIT_KHR = 0x00000040; 320 321 // Constants for EGL_KHR_create_context_no_error 322 enum EGL_CONTEXT_OPENGL_NO_ERROR_KHR = 0x31B3; 323 324 // Constants for EGL_KHR_debug 325 enum EGL_OBJECT_THREAD_KHR = 0x33B0; 326 enum EGL_OBJECT_DISPLAY_KHR = 0x33B1; 327 enum EGL_OBJECT_CONTEXT_KHR = 0x33B2; 328 enum EGL_OBJECT_SURFACE_KHR = 0x33B3; 329 enum EGL_OBJECT_IMAGE_KHR = 0x33B4; 330 enum EGL_OBJECT_SYNC_KHR = 0x33B5; 331 enum EGL_OBJECT_STREAM_KHR = 0x33B6; 332 enum EGL_DEBUG_MSG_CRITICAL_KHR = 0x33B9; 333 enum EGL_DEBUG_MSG_ERROR_KHR = 0x33BA; 334 enum EGL_DEBUG_MSG_WARN_KHR = 0x33BB; 335 enum EGL_DEBUG_MSG_INFO_KHR = 0x33BC; 336 enum EGL_DEBUG_CALLBACK_KHR = 0x33B8; 337 338 // Constants for EGL_KHR_display_reference 339 enum EGL_TRACK_REFERENCES_KHR = 0x3352; 340 341 // Constants for EGL_KHR_fence_sync 342 enum EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR = 0x30F0; 343 enum EGL_SYNC_CONDITION_KHR = 0x30F8; 344 enum EGL_SYNC_FENCE_KHR = 0x30F9; 345 346 // Constants for EGL_KHR_gl_colorspace 347 enum EGL_GL_COLORSPACE_KHR = 0x309D; 348 enum EGL_GL_COLORSPACE_SRGB_KHR = 0x3089; 349 enum EGL_GL_COLORSPACE_LINEAR_KHR = 0x308A; 350 351 // Constants for EGL_KHR_gl_renderbuffer_image 352 enum EGL_GL_RENDERBUFFER_KHR = 0x30B9; 353 354 // Constants for EGL_KHR_gl_texture_2D_image 355 enum EGL_GL_TEXTURE_2D_KHR = 0x30B1; 356 enum EGL_GL_TEXTURE_LEVEL_KHR = 0x30BC; 357 358 // Constants for EGL_KHR_gl_texture_3D_image 359 enum EGL_GL_TEXTURE_3D_KHR = 0x30B2; 360 enum EGL_GL_TEXTURE_ZOFFSET_KHR = 0x30BD; 361 362 // Constants for EGL_KHR_gl_texture_cubemap_image 363 enum EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR = 0x30B3; 364 enum EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR = 0x30B4; 365 enum EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR = 0x30B5; 366 enum EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR = 0x30B6; 367 enum EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR = 0x30B7; 368 enum EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR = 0x30B8; 369 370 // Constants for EGL_KHR_image 371 enum EGL_NATIVE_PIXMAP_KHR = 0x30B0; 372 enum EGL_NO_IMAGE_KHR = EGL_CAST!(EGLImageKHR)(0); 373 374 // Constants for EGL_KHR_image_base 375 enum EGL_IMAGE_PRESERVED_KHR = 0x30D2; 376 377 // Constants for EGL_KHR_lock_surface 378 enum EGL_READ_SURFACE_BIT_KHR = 0x0001; 379 enum EGL_WRITE_SURFACE_BIT_KHR = 0x0002; 380 enum EGL_LOCK_SURFACE_BIT_KHR = 0x0080; 381 enum EGL_OPTIMAL_FORMAT_BIT_KHR = 0x0100; 382 enum EGL_MATCH_FORMAT_KHR = 0x3043; 383 enum EGL_FORMAT_RGB_565_EXACT_KHR = 0x30C0; 384 enum EGL_FORMAT_RGB_565_KHR = 0x30C1; 385 enum EGL_FORMAT_RGBA_8888_EXACT_KHR = 0x30C2; 386 enum EGL_FORMAT_RGBA_8888_KHR = 0x30C3; 387 enum EGL_MAP_PRESERVE_PIXELS_KHR = 0x30C4; 388 enum EGL_LOCK_USAGE_HINT_KHR = 0x30C5; 389 enum EGL_BITMAP_POINTER_KHR = 0x30C6; 390 enum EGL_BITMAP_PITCH_KHR = 0x30C7; 391 enum EGL_BITMAP_ORIGIN_KHR = 0x30C8; 392 enum EGL_BITMAP_PIXEL_RED_OFFSET_KHR = 0x30C9; 393 enum EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR = 0x30CA; 394 enum EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR = 0x30CB; 395 enum EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR = 0x30CC; 396 enum EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR = 0x30CD; 397 enum EGL_LOWER_LEFT_KHR = 0x30CE; 398 enum EGL_UPPER_LEFT_KHR = 0x30CF; 399 400 // Constants for EGL_KHR_lock_surface2 401 enum EGL_BITMAP_PIXEL_SIZE_KHR = 0x3110; 402 403 // Constants for EGL_KHR_mutable_render_buffer 404 enum EGL_MUTABLE_RENDER_BUFFER_BIT_KHR = 0x1000; 405 406 // Constants for EGL_KHR_no_config_context 407 enum EGL_NO_CONFIG_KHR = EGL_CAST!(EGLConfig)(0); 408 409 // Constants for EGL_KHR_partial_update 410 enum EGL_BUFFER_AGE_KHR = 0x313D; 411 412 // Constants for EGL_KHR_platform_android 413 enum EGL_PLATFORM_ANDROID_KHR = 0x3141; 414 415 // Constants for EGL_KHR_platform_gbm 416 enum EGL_PLATFORM_GBM_KHR = 0x31D7; 417 418 // Constants for EGL_KHR_platform_wayland 419 enum EGL_PLATFORM_WAYLAND_KHR = 0x31D8; 420 421 // Constants for EGL_KHR_platform_x11 422 enum EGL_PLATFORM_X11_KHR = 0x31D5; 423 enum EGL_PLATFORM_X11_SCREEN_KHR = 0x31D6; 424 425 // Constants for EGL_KHR_reusable_sync 426 enum EGL_SYNC_STATUS_KHR = 0x30F1; 427 enum EGL_SIGNALED_KHR = 0x30F2; 428 enum EGL_UNSIGNALED_KHR = 0x30F3; 429 enum EGL_TIMEOUT_EXPIRED_KHR = 0x30F5; 430 enum EGL_CONDITION_SATISFIED_KHR = 0x30F6; 431 enum EGL_SYNC_TYPE_KHR = 0x30F7; 432 enum EGL_SYNC_REUSABLE_KHR = 0x30FA; 433 enum EGL_SYNC_FLUSH_COMMANDS_BIT_KHR = 0x0001; 434 enum EGL_FOREVER_KHR = 0xFFFFFFFFFFFFFFFF; 435 enum EGL_NO_SYNC_KHR = EGL_CAST!(EGLSyncKHR)(0); 436 437 // Constants for EGL_KHR_stream 438 enum EGL_NO_STREAM_KHR = EGL_CAST!(EGLStreamKHR)(0); 439 enum EGL_CONSUMER_LATENCY_USEC_KHR = 0x3210; 440 enum EGL_PRODUCER_FRAME_KHR = 0x3212; 441 enum EGL_CONSUMER_FRAME_KHR = 0x3213; 442 enum EGL_STREAM_STATE_KHR = 0x3214; 443 enum EGL_STREAM_STATE_CREATED_KHR = 0x3215; 444 enum EGL_STREAM_STATE_CONNECTING_KHR = 0x3216; 445 enum EGL_STREAM_STATE_EMPTY_KHR = 0x3217; 446 enum EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR = 0x3218; 447 enum EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR = 0x3219; 448 enum EGL_STREAM_STATE_DISCONNECTED_KHR = 0x321A; 449 enum EGL_BAD_STREAM_KHR = 0x321B; 450 enum EGL_BAD_STATE_KHR = 0x321C; 451 452 // Constants for EGL_KHR_stream_consumer_gltexture 453 enum EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR = 0x321E; 454 455 // Constants for EGL_KHR_stream_cross_process_fd 456 enum EGL_NO_FILE_DESCRIPTOR_KHR = EGL_CAST!(EGLNativeFileDescriptorKHR)(-1); 457 458 // Constants for EGL_KHR_stream_fifo 459 enum EGL_STREAM_FIFO_LENGTH_KHR = 0x31FC; 460 enum EGL_STREAM_TIME_NOW_KHR = 0x31FD; 461 enum EGL_STREAM_TIME_CONSUMER_KHR = 0x31FE; 462 enum EGL_STREAM_TIME_PRODUCER_KHR = 0x31FF; 463 464 // Constants for EGL_KHR_stream_producer_eglsurface 465 enum EGL_STREAM_BIT_KHR = 0x0800; 466 467 // Constants for EGL_KHR_vg_parent_image 468 enum EGL_VG_PARENT_IMAGE_KHR = 0x30BA; 469 470 // Constants for EGL_ANDROID_create_native_client_buffer 471 enum EGL_NATIVE_BUFFER_USAGE_ANDROID = 0x3143; 472 enum EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID = 0x00000001; 473 enum EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID = 0x00000002; 474 enum EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID = 0x00000004; 475 476 // Constants for EGL_ANDROID_framebuffer_target 477 enum EGL_FRAMEBUFFER_TARGET_ANDROID = 0x3147; 478 479 // Constants for EGL_ANDROID_front_buffer_auto_refresh 480 enum EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID = 0x314C; 481 482 // Constants for EGL_ANDROID_get_frame_timestamps 483 enum EGL_TIMESTAMP_PENDING_ANDROID = EGL_CAST!(EGLnsecsANDROID)(-2); 484 enum EGL_TIMESTAMP_INVALID_ANDROID = EGL_CAST!(EGLnsecsANDROID)(-1); 485 enum EGL_TIMESTAMPS_ANDROID = 0x3430; 486 enum EGL_COMPOSITE_DEADLINE_ANDROID = 0x3431; 487 enum EGL_COMPOSITE_INTERVAL_ANDROID = 0x3432; 488 enum EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID = 0x3433; 489 enum EGL_REQUESTED_PRESENT_TIME_ANDROID = 0x3434; 490 enum EGL_RENDERING_COMPLETE_TIME_ANDROID = 0x3435; 491 enum EGL_COMPOSITION_LATCH_TIME_ANDROID = 0x3436; 492 enum EGL_FIRST_COMPOSITION_START_TIME_ANDROID = 0x3437; 493 enum EGL_LAST_COMPOSITION_START_TIME_ANDROID = 0x3438; 494 enum EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID = 0x3439; 495 enum EGL_DISPLAY_PRESENT_TIME_ANDROID = 0x343A; 496 enum EGL_DEQUEUE_READY_TIME_ANDROID = 0x343B; 497 enum EGL_READS_DONE_TIME_ANDROID = 0x343C; 498 499 // Constants for EGL_ANDROID_image_native_buffer 500 enum EGL_NATIVE_BUFFER_ANDROID = 0x3140; 501 502 // Constants for EGL_ANDROID_native_fence_sync 503 enum EGL_SYNC_NATIVE_FENCE_ANDROID = 0x3144; 504 enum EGL_SYNC_NATIVE_FENCE_FD_ANDROID = 0x3145; 505 enum EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID = 0x3146; 506 enum EGL_NO_NATIVE_FENCE_FD_ANDROID = -1; 507 508 // Constants for EGL_ANDROID_recordable 509 enum EGL_RECORDABLE_ANDROID = 0x3142; 510 511 // Constants for EGL_ANGLE_d3d_share_handle_client_buffer 512 enum EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE = 0x3200; 513 514 // Constants for EGL_ANGLE_device_d3d 515 enum EGL_D3D9_DEVICE_ANGLE = 0x33A0; 516 enum EGL_D3D11_DEVICE_ANGLE = 0x33A1; 517 518 // Constants for EGL_ANGLE_window_fixed_size 519 enum EGL_FIXED_SIZE_ANGLE = 0x3201; 520 521 // Constants for EGL_ARM_implicit_external_sync 522 enum EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM = 0x328A; 523 524 // Constants for EGL_ARM_pixmap_multisample_discard 525 enum EGL_DISCARD_SAMPLES_ARM = 0x3286; 526 527 // Constants for EGL_EXT_bind_to_front 528 enum EGL_FRONT_BUFFER_EXT = 0x3464; 529 530 // Constants for EGL_EXT_buffer_age 531 enum EGL_BUFFER_AGE_EXT = 0x313D; 532 533 // Constants for EGL_EXT_compositor 534 enum EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT = 0x3460; 535 enum EGL_EXTERNAL_REF_ID_EXT = 0x3461; 536 enum EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT = 0x3462; 537 enum EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT = 0x3463; 538 539 // Constants for EGL_EXT_create_context_robustness 540 enum EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT = 0x30BF; 541 enum EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT = 0x3138; 542 enum EGL_NO_RESET_NOTIFICATION_EXT = 0x31BE; 543 enum EGL_LOSE_CONTEXT_ON_RESET_EXT = 0x31BF; 544 545 // Constants for EGL_EXT_device_base 546 enum EGL_NO_DEVICE_EXT = EGL_CAST!(EGLDeviceEXT)(0); 547 enum EGL_BAD_DEVICE_EXT = 0x322B; 548 enum EGL_DEVICE_EXT = 0x322C; 549 550 // Constants for EGL_EXT_device_drm 551 enum EGL_DRM_DEVICE_FILE_EXT = 0x3233; 552 553 // Constants for EGL_EXT_device_openwf 554 enum EGL_OPENWF_DEVICE_ID_EXT = 0x3237; 555 556 // Constants for EGL_EXT_gl_colorspace_bt2020_linear 557 enum EGL_GL_COLORSPACE_BT2020_LINEAR_EXT = 0x333F; 558 559 // Constants for EGL_EXT_gl_colorspace_bt2020_pq 560 enum EGL_GL_COLORSPACE_BT2020_PQ_EXT = 0x3340; 561 562 // Constants for EGL_EXT_gl_colorspace_display_p3 563 enum EGL_GL_COLORSPACE_DISPLAY_P3_EXT = 0x3363; 564 565 // Constants for EGL_EXT_gl_colorspace_display_p3_linear 566 enum EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT = 0x3362; 567 568 // Constants for EGL_EXT_gl_colorspace_scrgb 569 enum EGL_GL_COLORSPACE_SCRGB_EXT = 0x3351; 570 571 // Constants for EGL_EXT_gl_colorspace_scrgb_linear 572 enum EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT = 0x3350; 573 574 // Constants for EGL_EXT_image_dma_buf_import 575 enum EGL_LINUX_DMA_BUF_EXT = 0x3270; 576 enum EGL_LINUX_DRM_FOURCC_EXT = 0x3271; 577 enum EGL_DMA_BUF_PLANE0_FD_EXT = 0x3272; 578 enum EGL_DMA_BUF_PLANE0_OFFSET_EXT = 0x3273; 579 enum EGL_DMA_BUF_PLANE0_PITCH_EXT = 0x3274; 580 enum EGL_DMA_BUF_PLANE1_FD_EXT = 0x3275; 581 enum EGL_DMA_BUF_PLANE1_OFFSET_EXT = 0x3276; 582 enum EGL_DMA_BUF_PLANE1_PITCH_EXT = 0x3277; 583 enum EGL_DMA_BUF_PLANE2_FD_EXT = 0x3278; 584 enum EGL_DMA_BUF_PLANE2_OFFSET_EXT = 0x3279; 585 enum EGL_DMA_BUF_PLANE2_PITCH_EXT = 0x327A; 586 enum EGL_YUV_COLOR_SPACE_HINT_EXT = 0x327B; 587 enum EGL_SAMPLE_RANGE_HINT_EXT = 0x327C; 588 enum EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT = 0x327D; 589 enum EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT = 0x327E; 590 enum EGL_ITU_REC601_EXT = 0x327F; 591 enum EGL_ITU_REC709_EXT = 0x3280; 592 enum EGL_ITU_REC2020_EXT = 0x3281; 593 enum EGL_YUV_FULL_RANGE_EXT = 0x3282; 594 enum EGL_YUV_NARROW_RANGE_EXT = 0x3283; 595 enum EGL_YUV_CHROMA_SITING_0_EXT = 0x3284; 596 enum EGL_YUV_CHROMA_SITING_0_5_EXT = 0x3285; 597 598 // Constants for EGL_EXT_image_dma_buf_import_modifiers 599 enum EGL_DMA_BUF_PLANE3_FD_EXT = 0x3440; 600 enum EGL_DMA_BUF_PLANE3_OFFSET_EXT = 0x3441; 601 enum EGL_DMA_BUF_PLANE3_PITCH_EXT = 0x3442; 602 enum EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT = 0x3443; 603 enum EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT = 0x3444; 604 enum EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT = 0x3445; 605 enum EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT = 0x3446; 606 enum EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT = 0x3447; 607 enum EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT = 0x3448; 608 enum EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT = 0x3449; 609 enum EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT = 0x344A; 610 611 // Constants for EGL_EXT_image_implicit_sync_control 612 enum EGL_IMPORT_SYNC_TYPE_EXT = 0x3470; 613 enum EGL_IMPORT_IMPLICIT_SYNC_EXT = 0x3471; 614 enum EGL_IMPORT_EXPLICIT_SYNC_EXT = 0x3472; 615 616 // Constants for EGL_EXT_multiview_window 617 enum EGL_MULTIVIEW_VIEW_COUNT_EXT = 0x3134; 618 619 // Constants for EGL_EXT_output_base 620 enum EGL_NO_OUTPUT_LAYER_EXT = EGL_CAST!(EGLOutputLayerEXT)(0); 621 enum EGL_NO_OUTPUT_PORT_EXT = EGL_CAST!(EGLOutputPortEXT)(0); 622 enum EGL_BAD_OUTPUT_LAYER_EXT = 0x322D; 623 enum EGL_BAD_OUTPUT_PORT_EXT = 0x322E; 624 enum EGL_SWAP_INTERVAL_EXT = 0x322F; 625 626 // Constants for EGL_EXT_output_drm 627 enum EGL_DRM_CRTC_EXT = 0x3234; 628 enum EGL_DRM_PLANE_EXT = 0x3235; 629 enum EGL_DRM_CONNECTOR_EXT = 0x3236; 630 631 // Constants for EGL_EXT_output_openwf 632 enum EGL_OPENWF_PIPELINE_ID_EXT = 0x3238; 633 enum EGL_OPENWF_PORT_ID_EXT = 0x3239; 634 635 // Constants for EGL_EXT_pixel_format_float 636 enum EGL_COLOR_COMPONENT_TYPE_EXT = 0x3339; 637 enum EGL_COLOR_COMPONENT_TYPE_FIXED_EXT = 0x333A; 638 enum EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT = 0x333B; 639 640 // Constants for EGL_EXT_platform_device 641 enum EGL_PLATFORM_DEVICE_EXT = 0x313F; 642 643 // Constants for EGL_EXT_platform_wayland 644 enum EGL_PLATFORM_WAYLAND_EXT = 0x31D8; 645 646 // Constants for EGL_EXT_platform_x11 647 enum EGL_PLATFORM_X11_EXT = 0x31D5; 648 enum EGL_PLATFORM_X11_SCREEN_EXT = 0x31D6; 649 650 // Constants for EGL_EXT_protected_content 651 enum EGL_PROTECTED_CONTENT_EXT = 0x32C0; 652 653 // Constants for EGL_EXT_surface_CTA861_3_metadata 654 enum EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT = 0x3360; 655 enum EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT = 0x3361; 656 657 // Constants for EGL_EXT_surface_SMPTE2086_metadata 658 enum EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT = 0x3341; 659 enum EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT = 0x3342; 660 enum EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT = 0x3343; 661 enum EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT = 0x3344; 662 enum EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT = 0x3345; 663 enum EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT = 0x3346; 664 enum EGL_SMPTE2086_WHITE_POINT_X_EXT = 0x3347; 665 enum EGL_SMPTE2086_WHITE_POINT_Y_EXT = 0x3348; 666 enum EGL_SMPTE2086_MAX_LUMINANCE_EXT = 0x3349; 667 enum EGL_SMPTE2086_MIN_LUMINANCE_EXT = 0x334A; 668 enum EGL_METADATA_SCALING_EXT = 50000; 669 670 // Constants for EGL_EXT_yuv_surface 671 enum EGL_YUV_ORDER_EXT = 0x3301; 672 enum EGL_YUV_NUMBER_OF_PLANES_EXT = 0x3311; 673 enum EGL_YUV_SUBSAMPLE_EXT = 0x3312; 674 enum EGL_YUV_DEPTH_RANGE_EXT = 0x3317; 675 enum EGL_YUV_CSC_STANDARD_EXT = 0x330A; 676 enum EGL_YUV_PLANE_BPP_EXT = 0x331A; 677 enum EGL_YUV_BUFFER_EXT = 0x3300; 678 enum EGL_YUV_ORDER_YUV_EXT = 0x3302; 679 enum EGL_YUV_ORDER_YVU_EXT = 0x3303; 680 enum EGL_YUV_ORDER_YUYV_EXT = 0x3304; 681 enum EGL_YUV_ORDER_UYVY_EXT = 0x3305; 682 enum EGL_YUV_ORDER_YVYU_EXT = 0x3306; 683 enum EGL_YUV_ORDER_VYUY_EXT = 0x3307; 684 enum EGL_YUV_ORDER_AYUV_EXT = 0x3308; 685 enum EGL_YUV_SUBSAMPLE_4_2_0_EXT = 0x3313; 686 enum EGL_YUV_SUBSAMPLE_4_2_2_EXT = 0x3314; 687 enum EGL_YUV_SUBSAMPLE_4_4_4_EXT = 0x3315; 688 enum EGL_YUV_DEPTH_RANGE_LIMITED_EXT = 0x3318; 689 enum EGL_YUV_DEPTH_RANGE_FULL_EXT = 0x3319; 690 enum EGL_YUV_CSC_STANDARD_601_EXT = 0x330B; 691 enum EGL_YUV_CSC_STANDARD_709_EXT = 0x330C; 692 enum EGL_YUV_CSC_STANDARD_2020_EXT = 0x330D; 693 enum EGL_YUV_PLANE_BPP_0_EXT = 0x331B; 694 enum EGL_YUV_PLANE_BPP_8_EXT = 0x331C; 695 enum EGL_YUV_PLANE_BPP_10_EXT = 0x331D; 696 697 // Constants for EGL_HI_clientpixmap 698 enum EGL_CLIENT_PIXMAP_POINTER_HI = 0x8F74; 699 700 // Constants for EGL_HI_colorformats 701 enum EGL_COLOR_FORMAT_HI = 0x8F70; 702 enum EGL_COLOR_RGB_HI = 0x8F71; 703 enum EGL_COLOR_RGBA_HI = 0x8F72; 704 enum EGL_COLOR_ARGB_HI = 0x8F73; 705 706 // Constants for EGL_IMG_context_priority 707 enum EGL_CONTEXT_PRIORITY_LEVEL_IMG = 0x3100; 708 enum EGL_CONTEXT_PRIORITY_HIGH_IMG = 0x3101; 709 enum EGL_CONTEXT_PRIORITY_MEDIUM_IMG = 0x3102; 710 enum EGL_CONTEXT_PRIORITY_LOW_IMG = 0x3103; 711 712 // Constants for EGL_IMG_image_plane_attribs 713 enum EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG = 0x3105; 714 enum EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG = 0x3106; 715 716 // Constants for EGL_MESA_drm_image 717 enum EGL_DRM_BUFFER_FORMAT_MESA = 0x31D0; 718 enum EGL_DRM_BUFFER_USE_MESA = 0x31D1; 719 enum EGL_DRM_BUFFER_FORMAT_ARGB32_MESA = 0x31D2; 720 enum EGL_DRM_BUFFER_MESA = 0x31D3; 721 enum EGL_DRM_BUFFER_STRIDE_MESA = 0x31D4; 722 enum EGL_DRM_BUFFER_USE_SCANOUT_MESA = 0x00000001; 723 enum EGL_DRM_BUFFER_USE_SHARE_MESA = 0x00000002; 724 enum EGL_DRM_BUFFER_USE_CURSOR_MESA = 0x00000004; 725 726 // Constants for EGL_MESA_platform_gbm 727 enum EGL_PLATFORM_GBM_MESA = 0x31D7; 728 729 // Constants for EGL_MESA_platform_surfaceless 730 enum EGL_PLATFORM_SURFACELESS_MESA = 0x31DD; 731 732 // Constants for EGL_NOK_texture_from_pixmap 733 enum EGL_Y_INVERTED_NOK = 0x307F; 734 735 // Constants for EGL_NV_3dvision_surface 736 enum EGL_AUTO_STEREO_NV = 0x3136; 737 738 // Constants for EGL_NV_context_priority_realtime 739 enum EGL_CONTEXT_PRIORITY_REALTIME_NV = 0x3357; 740 741 // Constants for EGL_NV_coverage_sample 742 enum EGL_COVERAGE_BUFFERS_NV = 0x30E0; 743 enum EGL_COVERAGE_SAMPLES_NV = 0x30E1; 744 745 // Constants for EGL_NV_coverage_sample_resolve 746 enum EGL_COVERAGE_SAMPLE_RESOLVE_NV = 0x3131; 747 enum EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV = 0x3132; 748 enum EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV = 0x3133; 749 750 // Constants for EGL_NV_cuda_event 751 enum EGL_CUDA_EVENT_HANDLE_NV = 0x323B; 752 enum EGL_SYNC_CUDA_EVENT_NV = 0x323C; 753 enum EGL_SYNC_CUDA_EVENT_COMPLETE_NV = 0x323D; 754 755 // Constants for EGL_NV_depth_nonlinear 756 enum EGL_DEPTH_ENCODING_NV = 0x30E2; 757 enum EGL_DEPTH_ENCODING_NONE_NV = 0; 758 enum EGL_DEPTH_ENCODING_NONLINEAR_NV = 0x30E3; 759 760 // Constants for EGL_NV_device_cuda 761 enum EGL_CUDA_DEVICE_NV = 0x323A; 762 763 // Constants for EGL_NV_post_sub_buffer 764 enum EGL_POST_SUB_BUFFER_SUPPORTED_NV = 0x30BE; 765 766 // Constants for EGL_NV_robustness_video_memory_purge 767 enum EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV = 0x334C; 768 769 // Constants for EGL_NV_stream_consumer_gltexture_yuv 770 enum EGL_YUV_PLANE0_TEXTURE_UNIT_NV = 0x332C; 771 enum EGL_YUV_PLANE1_TEXTURE_UNIT_NV = 0x332D; 772 enum EGL_YUV_PLANE2_TEXTURE_UNIT_NV = 0x332E; 773 774 // Constants for EGL_NV_stream_cross_display 775 enum EGL_STREAM_CROSS_DISPLAY_NV = 0x334E; 776 777 // Constants for EGL_NV_stream_cross_object 778 enum EGL_STREAM_CROSS_OBJECT_NV = 0x334D; 779 780 // Constants for EGL_NV_stream_cross_partition 781 enum EGL_STREAM_CROSS_PARTITION_NV = 0x323F; 782 783 // Constants for EGL_NV_stream_cross_process 784 enum EGL_STREAM_CROSS_PROCESS_NV = 0x3245; 785 786 // Constants for EGL_NV_stream_cross_system 787 enum EGL_STREAM_CROSS_SYSTEM_NV = 0x334F; 788 789 // Constants for EGL_NV_stream_fifo_next 790 enum EGL_PENDING_FRAME_NV = 0x3329; 791 enum EGL_STREAM_TIME_PENDING_NV = 0x332A; 792 793 // Constants for EGL_NV_stream_fifo_synchronous 794 enum EGL_STREAM_FIFO_SYNCHRONOUS_NV = 0x3336; 795 796 // Constants for EGL_NV_stream_frame_limits 797 enum EGL_PRODUCER_MAX_FRAME_HINT_NV = 0x3337; 798 enum EGL_CONSUMER_MAX_FRAME_HINT_NV = 0x3338; 799 800 // Constants for EGL_NV_stream_metadata 801 enum EGL_MAX_STREAM_METADATA_BLOCKS_NV = 0x3250; 802 enum EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV = 0x3251; 803 enum EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV = 0x3252; 804 enum EGL_PRODUCER_METADATA_NV = 0x3253; 805 enum EGL_CONSUMER_METADATA_NV = 0x3254; 806 enum EGL_PENDING_METADATA_NV = 0x3328; 807 enum EGL_METADATA0_SIZE_NV = 0x3255; 808 enum EGL_METADATA1_SIZE_NV = 0x3256; 809 enum EGL_METADATA2_SIZE_NV = 0x3257; 810 enum EGL_METADATA3_SIZE_NV = 0x3258; 811 enum EGL_METADATA0_TYPE_NV = 0x3259; 812 enum EGL_METADATA1_TYPE_NV = 0x325A; 813 enum EGL_METADATA2_TYPE_NV = 0x325B; 814 enum EGL_METADATA3_TYPE_NV = 0x325C; 815 816 // Constants for EGL_NV_stream_remote 817 enum EGL_STREAM_STATE_INITIALIZING_NV = 0x3240; 818 enum EGL_STREAM_TYPE_NV = 0x3241; 819 enum EGL_STREAM_PROTOCOL_NV = 0x3242; 820 enum EGL_STREAM_ENDPOINT_NV = 0x3243; 821 enum EGL_STREAM_LOCAL_NV = 0x3244; 822 enum EGL_STREAM_PRODUCER_NV = 0x3247; 823 enum EGL_STREAM_CONSUMER_NV = 0x3248; 824 enum EGL_STREAM_PROTOCOL_FD_NV = 0x3246; 825 826 // Constants for EGL_NV_stream_reset 827 enum EGL_SUPPORT_RESET_NV = 0x3334; 828 enum EGL_SUPPORT_REUSE_NV = 0x3335; 829 830 // Constants for EGL_NV_stream_socket 831 enum EGL_STREAM_PROTOCOL_SOCKET_NV = 0x324B; 832 enum EGL_SOCKET_HANDLE_NV = 0x324C; 833 enum EGL_SOCKET_TYPE_NV = 0x324D; 834 835 // Constants for EGL_NV_stream_socket_inet 836 enum EGL_SOCKET_TYPE_INET_NV = 0x324F; 837 838 // Constants for EGL_NV_stream_socket_unix 839 enum EGL_SOCKET_TYPE_UNIX_NV = 0x324E; 840 841 // Constants for EGL_NV_stream_sync 842 enum EGL_SYNC_NEW_FRAME_NV = 0x321F; 843 844 // Constants for EGL_NV_sync 845 enum EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV = 0x30E6; 846 enum EGL_SYNC_STATUS_NV = 0x30E7; 847 enum EGL_SIGNALED_NV = 0x30E8; 848 enum EGL_UNSIGNALED_NV = 0x30E9; 849 enum EGL_SYNC_FLUSH_COMMANDS_BIT_NV = 0x0001; 850 enum EGL_FOREVER_NV = 0xFFFFFFFFFFFFFFFF; 851 enum EGL_ALREADY_SIGNALED_NV = 0x30EA; 852 enum EGL_TIMEOUT_EXPIRED_NV = 0x30EB; 853 enum EGL_CONDITION_SATISFIED_NV = 0x30EC; 854 enum EGL_SYNC_TYPE_NV = 0x30ED; 855 enum EGL_SYNC_CONDITION_NV = 0x30EE; 856 enum EGL_SYNC_FENCE_NV = 0x30EF; 857 enum EGL_NO_SYNC_NV = EGL_CAST!(EGLSyncNV)(0); 858 859 // Constants for EGL_TIZEN_image_native_buffer 860 enum EGL_NATIVE_BUFFER_TIZEN = 0x32A0; 861 862 // Constants for EGL_TIZEN_image_native_surface 863 enum EGL_NATIVE_SURFACE_TIZEN = 0x32A1; 864 865 // Command pointer aliases 866 867 extern(C) nothrow @nogc { 868 869 // Command pointers for EGL_VERSION_1_0 870 alias PFN_eglChooseConfig = EGLBoolean function ( 871 EGLDisplay dpy, 872 const(EGLint)* attrib_list, 873 EGLConfig* configs, 874 EGLint config_size, 875 EGLint* num_config, 876 ); 877 alias PFN_eglCopyBuffers = EGLBoolean function ( 878 EGLDisplay dpy, 879 EGLSurface surface, 880 EGLNativePixmapType target, 881 ); 882 alias PFN_eglCreateContext = EGLContext function ( 883 EGLDisplay dpy, 884 EGLConfig config, 885 EGLContext share_context, 886 const(EGLint)* attrib_list, 887 ); 888 alias PFN_eglCreatePbufferSurface = EGLSurface function ( 889 EGLDisplay dpy, 890 EGLConfig config, 891 const(EGLint)* attrib_list, 892 ); 893 alias PFN_eglCreatePixmapSurface = EGLSurface function ( 894 EGLDisplay dpy, 895 EGLConfig config, 896 EGLNativePixmapType pixmap, 897 const(EGLint)* attrib_list, 898 ); 899 alias PFN_eglCreateWindowSurface = EGLSurface function ( 900 EGLDisplay dpy, 901 EGLConfig config, 902 EGLNativeWindowType win, 903 const(EGLint)* attrib_list, 904 ); 905 alias PFN_eglDestroyContext = EGLBoolean function ( 906 EGLDisplay dpy, 907 EGLContext ctx, 908 ); 909 alias PFN_eglDestroySurface = EGLBoolean function ( 910 EGLDisplay dpy, 911 EGLSurface surface, 912 ); 913 alias PFN_eglGetConfigAttrib = EGLBoolean function ( 914 EGLDisplay dpy, 915 EGLConfig config, 916 EGLint attribute, 917 EGLint* value, 918 ); 919 alias PFN_eglGetConfigs = EGLBoolean function ( 920 EGLDisplay dpy, 921 EGLConfig* configs, 922 EGLint config_size, 923 EGLint* num_config, 924 ); 925 alias PFN_eglGetCurrentDisplay = EGLDisplay function (); 926 alias PFN_eglGetCurrentSurface = EGLSurface function ( 927 EGLint readdraw, 928 ); 929 alias PFN_eglGetDisplay = EGLDisplay function ( 930 EGLNativeDisplayType display_id, 931 ); 932 alias PFN_eglGetError = EGLint function (); 933 alias PFN_eglGetProcAddress = __eglMustCastToProperFunctionPointerType function ( 934 const(char)* procname, 935 ); 936 alias PFN_eglInitialize = EGLBoolean function ( 937 EGLDisplay dpy, 938 EGLint* major, 939 EGLint* minor, 940 ); 941 alias PFN_eglMakeCurrent = EGLBoolean function ( 942 EGLDisplay dpy, 943 EGLSurface draw, 944 EGLSurface read, 945 EGLContext ctx, 946 ); 947 alias PFN_eglQueryContext = EGLBoolean function ( 948 EGLDisplay dpy, 949 EGLContext ctx, 950 EGLint attribute, 951 EGLint* value, 952 ); 953 alias PFN_eglQueryString = const(char)* function ( 954 EGLDisplay dpy, 955 EGLint name, 956 ); 957 alias PFN_eglQuerySurface = EGLBoolean function ( 958 EGLDisplay dpy, 959 EGLSurface surface, 960 EGLint attribute, 961 EGLint* value, 962 ); 963 alias PFN_eglSwapBuffers = EGLBoolean function ( 964 EGLDisplay dpy, 965 EGLSurface surface, 966 ); 967 alias PFN_eglTerminate = EGLBoolean function ( 968 EGLDisplay dpy, 969 ); 970 alias PFN_eglWaitGL = EGLBoolean function (); 971 alias PFN_eglWaitNative = EGLBoolean function ( 972 EGLint engine, 973 ); 974 975 // Command pointers for EGL_VERSION_1_1 976 alias PFN_eglBindTexImage = EGLBoolean function ( 977 EGLDisplay dpy, 978 EGLSurface surface, 979 EGLint buffer, 980 ); 981 alias PFN_eglReleaseTexImage = EGLBoolean function ( 982 EGLDisplay dpy, 983 EGLSurface surface, 984 EGLint buffer, 985 ); 986 alias PFN_eglSurfaceAttrib = EGLBoolean function ( 987 EGLDisplay dpy, 988 EGLSurface surface, 989 EGLint attribute, 990 EGLint value, 991 ); 992 alias PFN_eglSwapInterval = EGLBoolean function ( 993 EGLDisplay dpy, 994 EGLint interval, 995 ); 996 997 // Command pointers for EGL_VERSION_1_2 998 alias PFN_eglBindAPI = EGLBoolean function ( 999 EGLenum api, 1000 ); 1001 alias PFN_eglQueryAPI = EGLenum function (); 1002 alias PFN_eglCreatePbufferFromClientBuffer = EGLSurface function ( 1003 EGLDisplay dpy, 1004 EGLenum buftype, 1005 EGLClientBuffer buffer, 1006 EGLConfig config, 1007 const(EGLint)* attrib_list, 1008 ); 1009 alias PFN_eglReleaseThread = EGLBoolean function (); 1010 alias PFN_eglWaitClient = EGLBoolean function (); 1011 1012 // Command pointers for EGL_VERSION_1_4 1013 alias PFN_eglGetCurrentContext = EGLContext function (); 1014 1015 // Command pointers for EGL_VERSION_1_5 1016 alias PFN_eglCreateSync = EGLSync function ( 1017 EGLDisplay dpy, 1018 EGLenum type, 1019 const(EGLAttrib)* attrib_list, 1020 ); 1021 alias PFN_eglDestroySync = EGLBoolean function ( 1022 EGLDisplay dpy, 1023 EGLSync sync, 1024 ); 1025 alias PFN_eglClientWaitSync = EGLint function ( 1026 EGLDisplay dpy, 1027 EGLSync sync, 1028 EGLint flags, 1029 EGLTime timeout, 1030 ); 1031 alias PFN_eglGetSyncAttrib = EGLBoolean function ( 1032 EGLDisplay dpy, 1033 EGLSync sync, 1034 EGLint attribute, 1035 EGLAttrib* value, 1036 ); 1037 alias PFN_eglCreateImage = EGLImage function ( 1038 EGLDisplay dpy, 1039 EGLContext ctx, 1040 EGLenum target, 1041 EGLClientBuffer buffer, 1042 const(EGLAttrib)* attrib_list, 1043 ); 1044 alias PFN_eglDestroyImage = EGLBoolean function ( 1045 EGLDisplay dpy, 1046 EGLImage image, 1047 ); 1048 alias PFN_eglGetPlatformDisplay = EGLDisplay function ( 1049 EGLenum platform, 1050 void* native_display, 1051 const(EGLAttrib)* attrib_list, 1052 ); 1053 alias PFN_eglCreatePlatformWindowSurface = EGLSurface function ( 1054 EGLDisplay dpy, 1055 EGLConfig config, 1056 void* native_window, 1057 const(EGLAttrib)* attrib_list, 1058 ); 1059 alias PFN_eglCreatePlatformPixmapSurface = EGLSurface function ( 1060 EGLDisplay dpy, 1061 EGLConfig config, 1062 void* native_pixmap, 1063 const(EGLAttrib)* attrib_list, 1064 ); 1065 alias PFN_eglWaitSync = EGLBoolean function ( 1066 EGLDisplay dpy, 1067 EGLSync sync, 1068 EGLint flags, 1069 ); 1070 1071 // Command pointers for EGL_KHR_debug 1072 alias PFN_eglDebugMessageControlKHR = EGLint function ( 1073 EGLDEBUGPROCKHR callback, 1074 const(EGLAttrib)* attrib_list, 1075 ); 1076 alias PFN_eglQueryDebugKHR = EGLBoolean function ( 1077 EGLint attribute, 1078 EGLAttrib* value, 1079 ); 1080 alias PFN_eglLabelObjectKHR = EGLint function ( 1081 EGLDisplay display, 1082 EGLenum objectType, 1083 EGLObjectKHR object, 1084 EGLLabelKHR label, 1085 ); 1086 1087 // Command pointers for EGL_KHR_display_reference 1088 alias PFN_eglQueryDisplayAttribKHR = EGLBoolean function ( 1089 EGLDisplay dpy, 1090 EGLint name, 1091 EGLAttrib* value, 1092 ); 1093 1094 // Command pointers for EGL_KHR_fence_sync 1095 alias PFN_eglCreateSyncKHR = EGLSyncKHR function ( 1096 EGLDisplay dpy, 1097 EGLenum type, 1098 const(EGLint)* attrib_list, 1099 ); 1100 alias PFN_eglGetSyncAttribKHR = EGLBoolean function ( 1101 EGLDisplay dpy, 1102 EGLSyncKHR sync, 1103 EGLint attribute, 1104 EGLint* value, 1105 ); 1106 1107 // Command pointers for EGL_KHR_image 1108 alias PFN_eglCreateImageKHR = EGLImageKHR function ( 1109 EGLDisplay dpy, 1110 EGLContext ctx, 1111 EGLenum target, 1112 EGLClientBuffer buffer, 1113 const(EGLint)* attrib_list, 1114 ); 1115 1116 // Command pointers for EGL_KHR_lock_surface 1117 alias PFN_eglLockSurfaceKHR = EGLBoolean function ( 1118 EGLDisplay dpy, 1119 EGLSurface surface, 1120 const(EGLint)* attrib_list, 1121 ); 1122 alias PFN_eglUnlockSurfaceKHR = EGLBoolean function ( 1123 EGLDisplay dpy, 1124 EGLSurface surface, 1125 ); 1126 1127 // Command pointers for EGL_KHR_lock_surface3 1128 alias PFN_eglQuerySurface64KHR = EGLBoolean function ( 1129 EGLDisplay dpy, 1130 EGLSurface surface, 1131 EGLint attribute, 1132 EGLAttribKHR* value, 1133 ); 1134 1135 // Command pointers for EGL_KHR_partial_update 1136 alias PFN_eglSetDamageRegionKHR = EGLBoolean function ( 1137 EGLDisplay dpy, 1138 EGLSurface surface, 1139 EGLint* rects, 1140 EGLint n_rects, 1141 ); 1142 1143 // Command pointers for EGL_KHR_reusable_sync 1144 alias PFN_eglSignalSyncKHR = EGLBoolean function ( 1145 EGLDisplay dpy, 1146 EGLSyncKHR sync, 1147 EGLenum mode, 1148 ); 1149 1150 // Command pointers for EGL_KHR_stream 1151 alias PFN_eglCreateStreamKHR = EGLStreamKHR function ( 1152 EGLDisplay dpy, 1153 const(EGLint)* attrib_list, 1154 ); 1155 alias PFN_eglDestroyStreamKHR = EGLBoolean function ( 1156 EGLDisplay dpy, 1157 EGLStreamKHR stream, 1158 ); 1159 alias PFN_eglStreamAttribKHR = EGLBoolean function ( 1160 EGLDisplay dpy, 1161 EGLStreamKHR stream, 1162 EGLenum attribute, 1163 EGLint value, 1164 ); 1165 alias PFN_eglQueryStreamKHR = EGLBoolean function ( 1166 EGLDisplay dpy, 1167 EGLStreamKHR stream, 1168 EGLenum attribute, 1169 EGLint* value, 1170 ); 1171 alias PFN_eglQueryStreamu64KHR = EGLBoolean function ( 1172 EGLDisplay dpy, 1173 EGLStreamKHR stream, 1174 EGLenum attribute, 1175 EGLuint64KHR* value, 1176 ); 1177 1178 // Command pointers for EGL_KHR_stream_attrib 1179 alias PFN_eglCreateStreamAttribKHR = EGLStreamKHR function ( 1180 EGLDisplay dpy, 1181 const(EGLAttrib)* attrib_list, 1182 ); 1183 alias PFN_eglSetStreamAttribKHR = EGLBoolean function ( 1184 EGLDisplay dpy, 1185 EGLStreamKHR stream, 1186 EGLenum attribute, 1187 EGLAttrib value, 1188 ); 1189 alias PFN_eglQueryStreamAttribKHR = EGLBoolean function ( 1190 EGLDisplay dpy, 1191 EGLStreamKHR stream, 1192 EGLenum attribute, 1193 EGLAttrib* value, 1194 ); 1195 alias PFN_eglStreamConsumerAcquireAttribKHR = EGLBoolean function ( 1196 EGLDisplay dpy, 1197 EGLStreamKHR stream, 1198 const(EGLAttrib)* attrib_list, 1199 ); 1200 alias PFN_eglStreamConsumerReleaseAttribKHR = EGLBoolean function ( 1201 EGLDisplay dpy, 1202 EGLStreamKHR stream, 1203 const(EGLAttrib)* attrib_list, 1204 ); 1205 1206 // Command pointers for EGL_KHR_stream_consumer_gltexture 1207 alias PFN_eglStreamConsumerGLTextureExternalKHR = EGLBoolean function ( 1208 EGLDisplay dpy, 1209 EGLStreamKHR stream, 1210 ); 1211 alias PFN_eglStreamConsumerAcquireKHR = EGLBoolean function ( 1212 EGLDisplay dpy, 1213 EGLStreamKHR stream, 1214 ); 1215 alias PFN_eglStreamConsumerReleaseKHR = EGLBoolean function ( 1216 EGLDisplay dpy, 1217 EGLStreamKHR stream, 1218 ); 1219 1220 // Command pointers for EGL_KHR_stream_cross_process_fd 1221 alias PFN_eglGetStreamFileDescriptorKHR = EGLNativeFileDescriptorKHR function ( 1222 EGLDisplay dpy, 1223 EGLStreamKHR stream, 1224 ); 1225 alias PFN_eglCreateStreamFromFileDescriptorKHR = EGLStreamKHR function ( 1226 EGLDisplay dpy, 1227 EGLNativeFileDescriptorKHR file_descriptor, 1228 ); 1229 1230 // Command pointers for EGL_KHR_stream_fifo 1231 alias PFN_eglQueryStreamTimeKHR = EGLBoolean function ( 1232 EGLDisplay dpy, 1233 EGLStreamKHR stream, 1234 EGLenum attribute, 1235 EGLTimeKHR* value, 1236 ); 1237 1238 // Command pointers for EGL_KHR_stream_producer_eglsurface 1239 alias PFN_eglCreateStreamProducerSurfaceKHR = EGLSurface function ( 1240 EGLDisplay dpy, 1241 EGLConfig config, 1242 EGLStreamKHR stream, 1243 const(EGLint)* attrib_list, 1244 ); 1245 1246 // Command pointers for EGL_KHR_swap_buffers_with_damage 1247 alias PFN_eglSwapBuffersWithDamageKHR = EGLBoolean function ( 1248 EGLDisplay dpy, 1249 EGLSurface surface, 1250 EGLint* rects, 1251 EGLint n_rects, 1252 ); 1253 1254 // Command pointers for EGL_KHR_wait_sync 1255 alias PFN_eglWaitSyncKHR = EGLint function ( 1256 EGLDisplay dpy, 1257 EGLSyncKHR sync, 1258 EGLint flags, 1259 ); 1260 1261 // Command pointers for EGL_ANDROID_blob_cache 1262 alias PFN_eglSetBlobCacheFuncsANDROID = void function ( 1263 EGLDisplay dpy, 1264 EGLSetBlobFuncANDROID set, 1265 EGLGetBlobFuncANDROID get, 1266 ); 1267 1268 // Command pointers for EGL_ANDROID_create_native_client_buffer 1269 alias PFN_eglCreateNativeClientBufferANDROID = EGLClientBuffer function ( 1270 const(EGLint)* attrib_list, 1271 ); 1272 1273 // Command pointers for EGL_ANDROID_get_frame_timestamps 1274 alias PFN_eglGetCompositorTimingSupportedANDROID = EGLBoolean function ( 1275 EGLDisplay dpy, 1276 EGLSurface surface, 1277 EGLint name, 1278 ); 1279 alias PFN_eglGetCompositorTimingANDROID = EGLBoolean function ( 1280 EGLDisplay dpy, 1281 EGLSurface surface, 1282 EGLint numTimestamps, 1283 const(EGLint)* names, 1284 EGLnsecsANDROID* values, 1285 ); 1286 alias PFN_eglGetNextFrameIdANDROID = EGLBoolean function ( 1287 EGLDisplay dpy, 1288 EGLSurface surface, 1289 EGLuint64KHR* frameId, 1290 ); 1291 alias PFN_eglGetFrameTimestampSupportedANDROID = EGLBoolean function ( 1292 EGLDisplay dpy, 1293 EGLSurface surface, 1294 EGLint timestamp, 1295 ); 1296 alias PFN_eglGetFrameTimestampsANDROID = EGLBoolean function ( 1297 EGLDisplay dpy, 1298 EGLSurface surface, 1299 EGLuint64KHR frameId, 1300 EGLint numTimestamps, 1301 const(EGLint)* timestamps, 1302 EGLnsecsANDROID* values, 1303 ); 1304 1305 // Command pointers for EGL_ANDROID_get_native_client_buffer 1306 alias PFN_eglGetNativeClientBufferANDROID = EGLClientBuffer function ( 1307 const(AHardwareBuffer)* buffer, 1308 ); 1309 1310 // Command pointers for EGL_ANDROID_native_fence_sync 1311 alias PFN_eglDupNativeFenceFDANDROID = EGLint function ( 1312 EGLDisplay dpy, 1313 EGLSyncKHR sync, 1314 ); 1315 1316 // Command pointers for EGL_ANDROID_presentation_time 1317 alias PFN_eglPresentationTimeANDROID = EGLBoolean function ( 1318 EGLDisplay dpy, 1319 EGLSurface surface, 1320 EGLnsecsANDROID time, 1321 ); 1322 1323 // Command pointers for EGL_ANGLE_query_surface_pointer 1324 alias PFN_eglQuerySurfacePointerANGLE = EGLBoolean function ( 1325 EGLDisplay dpy, 1326 EGLSurface surface, 1327 EGLint attribute, 1328 void** value, 1329 ); 1330 1331 // Command pointers for EGL_EXT_compositor 1332 alias PFN_eglCompositorSetContextListEXT = EGLBoolean function ( 1333 const(EGLint)* external_ref_ids, 1334 EGLint num_entries, 1335 ); 1336 alias PFN_eglCompositorSetContextAttributesEXT = EGLBoolean function ( 1337 EGLint external_ref_id, 1338 const(EGLint)* context_attributes, 1339 EGLint num_entries, 1340 ); 1341 alias PFN_eglCompositorSetWindowListEXT = EGLBoolean function ( 1342 EGLint external_ref_id, 1343 const(EGLint)* external_win_ids, 1344 EGLint num_entries, 1345 ); 1346 alias PFN_eglCompositorSetWindowAttributesEXT = EGLBoolean function ( 1347 EGLint external_win_id, 1348 const(EGLint)* window_attributes, 1349 EGLint num_entries, 1350 ); 1351 alias PFN_eglCompositorBindTexWindowEXT = EGLBoolean function ( 1352 EGLint external_win_id, 1353 ); 1354 alias PFN_eglCompositorSetSizeEXT = EGLBoolean function ( 1355 EGLint external_win_id, 1356 EGLint width, 1357 EGLint height, 1358 ); 1359 alias PFN_eglCompositorSwapPolicyEXT = EGLBoolean function ( 1360 EGLint external_win_id, 1361 EGLint policy, 1362 ); 1363 1364 // Command pointers for EGL_EXT_device_base 1365 alias PFN_eglQueryDeviceAttribEXT = EGLBoolean function ( 1366 EGLDeviceEXT device, 1367 EGLint attribute, 1368 EGLAttrib* value, 1369 ); 1370 alias PFN_eglQueryDeviceStringEXT = const(char)* function ( 1371 EGLDeviceEXT device, 1372 EGLint name, 1373 ); 1374 alias PFN_eglQueryDevicesEXT = EGLBoolean function ( 1375 EGLint max_devices, 1376 EGLDeviceEXT* devices, 1377 EGLint* num_devices, 1378 ); 1379 alias PFN_eglQueryDisplayAttribEXT = EGLBoolean function ( 1380 EGLDisplay dpy, 1381 EGLint attribute, 1382 EGLAttrib* value, 1383 ); 1384 1385 // Command pointers for EGL_EXT_image_dma_buf_import_modifiers 1386 alias PFN_eglQueryDmaBufFormatsEXT = EGLBoolean function ( 1387 EGLDisplay dpy, 1388 EGLint max_formats, 1389 EGLint* formats, 1390 EGLint* num_formats, 1391 ); 1392 alias PFN_eglQueryDmaBufModifiersEXT = EGLBoolean function ( 1393 EGLDisplay dpy, 1394 EGLint format, 1395 EGLint max_modifiers, 1396 EGLuint64KHR* modifiers, 1397 EGLBoolean* external_only, 1398 EGLint* num_modifiers, 1399 ); 1400 1401 // Command pointers for EGL_EXT_output_base 1402 alias PFN_eglGetOutputLayersEXT = EGLBoolean function ( 1403 EGLDisplay dpy, 1404 const(EGLAttrib)* attrib_list, 1405 EGLOutputLayerEXT* layers, 1406 EGLint max_layers, 1407 EGLint* num_layers, 1408 ); 1409 alias PFN_eglGetOutputPortsEXT = EGLBoolean function ( 1410 EGLDisplay dpy, 1411 const(EGLAttrib)* attrib_list, 1412 EGLOutputPortEXT* ports, 1413 EGLint max_ports, 1414 EGLint* num_ports, 1415 ); 1416 alias PFN_eglOutputLayerAttribEXT = EGLBoolean function ( 1417 EGLDisplay dpy, 1418 EGLOutputLayerEXT layer, 1419 EGLint attribute, 1420 EGLAttrib value, 1421 ); 1422 alias PFN_eglQueryOutputLayerAttribEXT = EGLBoolean function ( 1423 EGLDisplay dpy, 1424 EGLOutputLayerEXT layer, 1425 EGLint attribute, 1426 EGLAttrib* value, 1427 ); 1428 alias PFN_eglQueryOutputLayerStringEXT = const(char)* function ( 1429 EGLDisplay dpy, 1430 EGLOutputLayerEXT layer, 1431 EGLint name, 1432 ); 1433 alias PFN_eglOutputPortAttribEXT = EGLBoolean function ( 1434 EGLDisplay dpy, 1435 EGLOutputPortEXT port, 1436 EGLint attribute, 1437 EGLAttrib value, 1438 ); 1439 alias PFN_eglQueryOutputPortAttribEXT = EGLBoolean function ( 1440 EGLDisplay dpy, 1441 EGLOutputPortEXT port, 1442 EGLint attribute, 1443 EGLAttrib* value, 1444 ); 1445 alias PFN_eglQueryOutputPortStringEXT = const(char)* function ( 1446 EGLDisplay dpy, 1447 EGLOutputPortEXT port, 1448 EGLint name, 1449 ); 1450 1451 // Command pointers for EGL_EXT_platform_base 1452 alias PFN_eglGetPlatformDisplayEXT = EGLDisplay function ( 1453 EGLenum platform, 1454 void* native_display, 1455 const(EGLint)* attrib_list, 1456 ); 1457 alias PFN_eglCreatePlatformWindowSurfaceEXT = EGLSurface function ( 1458 EGLDisplay dpy, 1459 EGLConfig config, 1460 void* native_window, 1461 const(EGLint)* attrib_list, 1462 ); 1463 alias PFN_eglCreatePlatformPixmapSurfaceEXT = EGLSurface function ( 1464 EGLDisplay dpy, 1465 EGLConfig config, 1466 void* native_pixmap, 1467 const(EGLint)* attrib_list, 1468 ); 1469 1470 // Command pointers for EGL_EXT_stream_consumer_egloutput 1471 alias PFN_eglStreamConsumerOutputEXT = EGLBoolean function ( 1472 EGLDisplay dpy, 1473 EGLStreamKHR stream, 1474 EGLOutputLayerEXT layer, 1475 ); 1476 1477 // Command pointers for EGL_EXT_swap_buffers_with_damage 1478 alias PFN_eglSwapBuffersWithDamageEXT = EGLBoolean function ( 1479 EGLDisplay dpy, 1480 EGLSurface surface, 1481 EGLint* rects, 1482 EGLint n_rects, 1483 ); 1484 1485 // Command pointers for EGL_HI_clientpixmap 1486 alias PFN_eglCreatePixmapSurfaceHI = EGLSurface function ( 1487 EGLDisplay dpy, 1488 EGLConfig config, 1489 EGLClientPixmapHI* pixmap, 1490 ); 1491 1492 // Command pointers for EGL_MESA_drm_image 1493 alias PFN_eglCreateDRMImageMESA = EGLImageKHR function ( 1494 EGLDisplay dpy, 1495 const(EGLint)* attrib_list, 1496 ); 1497 alias PFN_eglExportDRMImageMESA = EGLBoolean function ( 1498 EGLDisplay dpy, 1499 EGLImageKHR image, 1500 EGLint* name, 1501 EGLint* handle, 1502 EGLint* stride, 1503 ); 1504 1505 // Command pointers for EGL_MESA_image_dma_buf_export 1506 alias PFN_eglExportDMABUFImageQueryMESA = EGLBoolean function ( 1507 EGLDisplay dpy, 1508 EGLImageKHR image, 1509 int* fourcc, 1510 int* num_planes, 1511 EGLuint64KHR* modifiers, 1512 ); 1513 alias PFN_eglExportDMABUFImageMESA = EGLBoolean function ( 1514 EGLDisplay dpy, 1515 EGLImageKHR image, 1516 int* fds, 1517 EGLint* strides, 1518 EGLint* offsets, 1519 ); 1520 1521 // Command pointers for EGL_NOK_swap_region 1522 alias PFN_eglSwapBuffersRegionNOK = EGLBoolean function ( 1523 EGLDisplay dpy, 1524 EGLSurface surface, 1525 EGLint numRects, 1526 const(EGLint)* rects, 1527 ); 1528 1529 // Command pointers for EGL_NOK_swap_region2 1530 alias PFN_eglSwapBuffersRegion2NOK = EGLBoolean function ( 1531 EGLDisplay dpy, 1532 EGLSurface surface, 1533 EGLint numRects, 1534 const(EGLint)* rects, 1535 ); 1536 1537 // Command pointers for EGL_NV_native_query 1538 alias PFN_eglQueryNativeDisplayNV = EGLBoolean function ( 1539 EGLDisplay dpy, 1540 EGLNativeDisplayType* display_id, 1541 ); 1542 alias PFN_eglQueryNativeWindowNV = EGLBoolean function ( 1543 EGLDisplay dpy, 1544 EGLSurface surf, 1545 EGLNativeWindowType* window, 1546 ); 1547 alias PFN_eglQueryNativePixmapNV = EGLBoolean function ( 1548 EGLDisplay dpy, 1549 EGLSurface surf, 1550 EGLNativePixmapType* pixmap, 1551 ); 1552 1553 // Command pointers for EGL_NV_post_sub_buffer 1554 alias PFN_eglPostSubBufferNV = EGLBoolean function ( 1555 EGLDisplay dpy, 1556 EGLSurface surface, 1557 EGLint x, 1558 EGLint y, 1559 EGLint width, 1560 EGLint height, 1561 ); 1562 1563 // Command pointers for EGL_NV_stream_consumer_gltexture_yuv 1564 alias PFN_eglStreamConsumerGLTextureExternalAttribsNV = EGLBoolean function ( 1565 EGLDisplay dpy, 1566 EGLStreamKHR stream, 1567 const(EGLAttrib)* attrib_list, 1568 ); 1569 1570 // Command pointers for EGL_NV_stream_metadata 1571 alias PFN_eglQueryDisplayAttribNV = EGLBoolean function ( 1572 EGLDisplay dpy, 1573 EGLint attribute, 1574 EGLAttrib* value, 1575 ); 1576 alias PFN_eglSetStreamMetadataNV = EGLBoolean function ( 1577 EGLDisplay dpy, 1578 EGLStreamKHR stream, 1579 EGLint n, 1580 EGLint offset, 1581 EGLint size, 1582 const(void)* data, 1583 ); 1584 alias PFN_eglQueryStreamMetadataNV = EGLBoolean function ( 1585 EGLDisplay dpy, 1586 EGLStreamKHR stream, 1587 EGLenum name, 1588 EGLint n, 1589 EGLint offset, 1590 EGLint size, 1591 void* data, 1592 ); 1593 1594 // Command pointers for EGL_NV_stream_reset 1595 alias PFN_eglResetStreamNV = EGLBoolean function ( 1596 EGLDisplay dpy, 1597 EGLStreamKHR stream, 1598 ); 1599 1600 // Command pointers for EGL_NV_stream_sync 1601 alias PFN_eglCreateStreamSyncNV = EGLSyncKHR function ( 1602 EGLDisplay dpy, 1603 EGLStreamKHR stream, 1604 EGLenum type, 1605 const(EGLint)* attrib_list, 1606 ); 1607 1608 // Command pointers for EGL_NV_sync 1609 alias PFN_eglCreateFenceSyncNV = EGLSyncNV function ( 1610 EGLDisplay dpy, 1611 EGLenum condition, 1612 const(EGLint)* attrib_list, 1613 ); 1614 alias PFN_eglDestroySyncNV = EGLBoolean function ( 1615 EGLSyncNV sync, 1616 ); 1617 alias PFN_eglFenceNV = EGLBoolean function ( 1618 EGLSyncNV sync, 1619 ); 1620 alias PFN_eglClientWaitSyncNV = EGLint function ( 1621 EGLSyncNV sync, 1622 EGLint flags, 1623 EGLTimeNV timeout, 1624 ); 1625 alias PFN_eglSignalSyncNV = EGLBoolean function ( 1626 EGLSyncNV sync, 1627 EGLenum mode, 1628 ); 1629 alias PFN_eglGetSyncAttribNV = EGLBoolean function ( 1630 EGLSyncNV sync, 1631 EGLint attribute, 1632 EGLint* value, 1633 ); 1634 1635 // Command pointers for EGL_NV_system_time 1636 alias PFN_eglGetSystemTimeFrequencyNV = EGLuint64NV function (); 1637 alias PFN_eglGetSystemTimeNV = EGLuint64NV function (); 1638 } 1639 1640 /// EglVersion describes the version of EGL 1641 enum EglVersion { 1642 egl10 = 10, 1643 egl11 = 11, 1644 egl12 = 12, 1645 egl14 = 14, 1646 egl15 = 15, 1647 } 1648 1649 /// EGL loader base class 1650 final class Egl { 1651 this(SymbolLoader loader) { 1652 1653 // EGL_VERSION_1_0 1654 _ChooseConfig = cast(PFN_eglChooseConfig)loadSymbol(loader, "eglChooseConfig", []); 1655 _CopyBuffers = cast(PFN_eglCopyBuffers)loadSymbol(loader, "eglCopyBuffers", []); 1656 _CreateContext = cast(PFN_eglCreateContext)loadSymbol(loader, "eglCreateContext", []); 1657 _CreatePbufferSurface = cast(PFN_eglCreatePbufferSurface)loadSymbol(loader, "eglCreatePbufferSurface", []); 1658 _CreatePixmapSurface = cast(PFN_eglCreatePixmapSurface)loadSymbol(loader, "eglCreatePixmapSurface", []); 1659 _CreateWindowSurface = cast(PFN_eglCreateWindowSurface)loadSymbol(loader, "eglCreateWindowSurface", []); 1660 _DestroyContext = cast(PFN_eglDestroyContext)loadSymbol(loader, "eglDestroyContext", []); 1661 _DestroySurface = cast(PFN_eglDestroySurface)loadSymbol(loader, "eglDestroySurface", []); 1662 _GetConfigAttrib = cast(PFN_eglGetConfigAttrib)loadSymbol(loader, "eglGetConfigAttrib", []); 1663 _GetConfigs = cast(PFN_eglGetConfigs)loadSymbol(loader, "eglGetConfigs", []); 1664 _GetCurrentDisplay = cast(PFN_eglGetCurrentDisplay)loadSymbol(loader, "eglGetCurrentDisplay", []); 1665 _GetCurrentSurface = cast(PFN_eglGetCurrentSurface)loadSymbol(loader, "eglGetCurrentSurface", []); 1666 _GetDisplay = cast(PFN_eglGetDisplay)loadSymbol(loader, "eglGetDisplay", []); 1667 _GetError = cast(PFN_eglGetError)loadSymbol(loader, "eglGetError", []); 1668 _GetProcAddress = cast(PFN_eglGetProcAddress)loadSymbol(loader, "eglGetProcAddress", []); 1669 _Initialize = cast(PFN_eglInitialize)loadSymbol(loader, "eglInitialize", []); 1670 _MakeCurrent = cast(PFN_eglMakeCurrent)loadSymbol(loader, "eglMakeCurrent", []); 1671 _QueryContext = cast(PFN_eglQueryContext)loadSymbol(loader, "eglQueryContext", []); 1672 _QueryString = cast(PFN_eglQueryString)loadSymbol(loader, "eglQueryString", []); 1673 _QuerySurface = cast(PFN_eglQuerySurface)loadSymbol(loader, "eglQuerySurface", []); 1674 _SwapBuffers = cast(PFN_eglSwapBuffers)loadSymbol(loader, "eglSwapBuffers", []); 1675 _Terminate = cast(PFN_eglTerminate)loadSymbol(loader, "eglTerminate", []); 1676 _WaitGL = cast(PFN_eglWaitGL)loadSymbol(loader, "eglWaitGL", []); 1677 _WaitNative = cast(PFN_eglWaitNative)loadSymbol(loader, "eglWaitNative", []); 1678 1679 // EGL_VERSION_1_1 1680 _BindTexImage = cast(PFN_eglBindTexImage)loadSymbol(loader, "eglBindTexImage", []); 1681 _ReleaseTexImage = cast(PFN_eglReleaseTexImage)loadSymbol(loader, "eglReleaseTexImage", []); 1682 _SurfaceAttrib = cast(PFN_eglSurfaceAttrib)loadSymbol(loader, "eglSurfaceAttrib", []); 1683 _SwapInterval = cast(PFN_eglSwapInterval)loadSymbol(loader, "eglSwapInterval", []); 1684 1685 // EGL_VERSION_1_2 1686 _BindAPI = cast(PFN_eglBindAPI)loadSymbol(loader, "eglBindAPI", []); 1687 _QueryAPI = cast(PFN_eglQueryAPI)loadSymbol(loader, "eglQueryAPI", []); 1688 _CreatePbufferFromClientBuffer = cast(PFN_eglCreatePbufferFromClientBuffer)loadSymbol(loader, "eglCreatePbufferFromClientBuffer", []); 1689 _ReleaseThread = cast(PFN_eglReleaseThread)loadSymbol(loader, "eglReleaseThread", []); 1690 _WaitClient = cast(PFN_eglWaitClient)loadSymbol(loader, "eglWaitClient", []); 1691 1692 // EGL_VERSION_1_4 1693 _GetCurrentContext = cast(PFN_eglGetCurrentContext)loadSymbol(loader, "eglGetCurrentContext", []); 1694 1695 // EGL_VERSION_1_5 1696 _CreateSync = cast(PFN_eglCreateSync)loadSymbol(loader, "eglCreateSync", ["eglCreateSync64KHR"]); 1697 _DestroySync = cast(PFN_eglDestroySync)loadSymbol(loader, "eglDestroySync", ["eglDestroySyncKHR"]); 1698 _ClientWaitSync = cast(PFN_eglClientWaitSync)loadSymbol(loader, "eglClientWaitSync", ["eglClientWaitSyncKHR"]); 1699 _GetSyncAttrib = cast(PFN_eglGetSyncAttrib)loadSymbol(loader, "eglGetSyncAttrib", []); 1700 _CreateImage = cast(PFN_eglCreateImage)loadSymbol(loader, "eglCreateImage", []); 1701 _DestroyImage = cast(PFN_eglDestroyImage)loadSymbol(loader, "eglDestroyImage", ["eglDestroyImageKHR"]); 1702 _GetPlatformDisplay = cast(PFN_eglGetPlatformDisplay)loadSymbol(loader, "eglGetPlatformDisplay", []); 1703 _CreatePlatformWindowSurface = cast(PFN_eglCreatePlatformWindowSurface)loadSymbol(loader, "eglCreatePlatformWindowSurface", []); 1704 _CreatePlatformPixmapSurface = cast(PFN_eglCreatePlatformPixmapSurface)loadSymbol(loader, "eglCreatePlatformPixmapSurface", []); 1705 _WaitSync = cast(PFN_eglWaitSync)loadSymbol(loader, "eglWaitSync", []); 1706 1707 // EGL_KHR_debug, 1708 _DebugMessageControlKHR = cast(PFN_eglDebugMessageControlKHR)loadSymbol(loader, "eglDebugMessageControlKHR", []); 1709 _QueryDebugKHR = cast(PFN_eglQueryDebugKHR)loadSymbol(loader, "eglQueryDebugKHR", []); 1710 _LabelObjectKHR = cast(PFN_eglLabelObjectKHR)loadSymbol(loader, "eglLabelObjectKHR", []); 1711 1712 // EGL_KHR_display_reference, 1713 _QueryDisplayAttribKHR = cast(PFN_eglQueryDisplayAttribKHR)loadSymbol(loader, "eglQueryDisplayAttribKHR", []); 1714 1715 // EGL_KHR_fence_sync, 1716 _CreateSyncKHR = cast(PFN_eglCreateSyncKHR)loadSymbol(loader, "eglCreateSyncKHR", []); 1717 _GetSyncAttribKHR = cast(PFN_eglGetSyncAttribKHR)loadSymbol(loader, "eglGetSyncAttribKHR", []); 1718 1719 // EGL_KHR_image, 1720 _CreateImageKHR = cast(PFN_eglCreateImageKHR)loadSymbol(loader, "eglCreateImageKHR", []); 1721 1722 // EGL_KHR_lock_surface, 1723 _LockSurfaceKHR = cast(PFN_eglLockSurfaceKHR)loadSymbol(loader, "eglLockSurfaceKHR", []); 1724 _UnlockSurfaceKHR = cast(PFN_eglUnlockSurfaceKHR)loadSymbol(loader, "eglUnlockSurfaceKHR", []); 1725 1726 // EGL_KHR_lock_surface3, 1727 _QuerySurface64KHR = cast(PFN_eglQuerySurface64KHR)loadSymbol(loader, "eglQuerySurface64KHR", []); 1728 1729 // EGL_KHR_partial_update, 1730 _SetDamageRegionKHR = cast(PFN_eglSetDamageRegionKHR)loadSymbol(loader, "eglSetDamageRegionKHR", []); 1731 1732 // EGL_KHR_reusable_sync, 1733 _SignalSyncKHR = cast(PFN_eglSignalSyncKHR)loadSymbol(loader, "eglSignalSyncKHR", []); 1734 1735 // EGL_KHR_stream, 1736 _CreateStreamKHR = cast(PFN_eglCreateStreamKHR)loadSymbol(loader, "eglCreateStreamKHR", []); 1737 _DestroyStreamKHR = cast(PFN_eglDestroyStreamKHR)loadSymbol(loader, "eglDestroyStreamKHR", []); 1738 _StreamAttribKHR = cast(PFN_eglStreamAttribKHR)loadSymbol(loader, "eglStreamAttribKHR", []); 1739 _QueryStreamKHR = cast(PFN_eglQueryStreamKHR)loadSymbol(loader, "eglQueryStreamKHR", []); 1740 _QueryStreamu64KHR = cast(PFN_eglQueryStreamu64KHR)loadSymbol(loader, "eglQueryStreamu64KHR", []); 1741 1742 // EGL_KHR_stream_attrib, 1743 _CreateStreamAttribKHR = cast(PFN_eglCreateStreamAttribKHR)loadSymbol(loader, "eglCreateStreamAttribKHR", []); 1744 _SetStreamAttribKHR = cast(PFN_eglSetStreamAttribKHR)loadSymbol(loader, "eglSetStreamAttribKHR", []); 1745 _QueryStreamAttribKHR = cast(PFN_eglQueryStreamAttribKHR)loadSymbol(loader, "eglQueryStreamAttribKHR", []); 1746 _StreamConsumerAcquireAttribKHR = cast(PFN_eglStreamConsumerAcquireAttribKHR)loadSymbol(loader, "eglStreamConsumerAcquireAttribKHR", []); 1747 _StreamConsumerReleaseAttribKHR = cast(PFN_eglStreamConsumerReleaseAttribKHR)loadSymbol(loader, "eglStreamConsumerReleaseAttribKHR", []); 1748 1749 // EGL_KHR_stream_consumer_gltexture, 1750 _StreamConsumerGLTextureExternalKHR = cast(PFN_eglStreamConsumerGLTextureExternalKHR)loadSymbol(loader, "eglStreamConsumerGLTextureExternalKHR", []); 1751 _StreamConsumerAcquireKHR = cast(PFN_eglStreamConsumerAcquireKHR)loadSymbol(loader, "eglStreamConsumerAcquireKHR", []); 1752 _StreamConsumerReleaseKHR = cast(PFN_eglStreamConsumerReleaseKHR)loadSymbol(loader, "eglStreamConsumerReleaseKHR", []); 1753 1754 // EGL_KHR_stream_cross_process_fd, 1755 _GetStreamFileDescriptorKHR = cast(PFN_eglGetStreamFileDescriptorKHR)loadSymbol(loader, "eglGetStreamFileDescriptorKHR", []); 1756 _CreateStreamFromFileDescriptorKHR = cast(PFN_eglCreateStreamFromFileDescriptorKHR)loadSymbol(loader, "eglCreateStreamFromFileDescriptorKHR", []); 1757 1758 // EGL_KHR_stream_fifo, 1759 _QueryStreamTimeKHR = cast(PFN_eglQueryStreamTimeKHR)loadSymbol(loader, "eglQueryStreamTimeKHR", []); 1760 1761 // EGL_KHR_stream_producer_eglsurface, 1762 _CreateStreamProducerSurfaceKHR = cast(PFN_eglCreateStreamProducerSurfaceKHR)loadSymbol(loader, "eglCreateStreamProducerSurfaceKHR", []); 1763 1764 // EGL_KHR_swap_buffers_with_damage, 1765 _SwapBuffersWithDamageKHR = cast(PFN_eglSwapBuffersWithDamageKHR)loadSymbol(loader, "eglSwapBuffersWithDamageKHR", []); 1766 1767 // EGL_KHR_wait_sync, 1768 _WaitSyncKHR = cast(PFN_eglWaitSyncKHR)loadSymbol(loader, "eglWaitSyncKHR", []); 1769 1770 // EGL_ANDROID_blob_cache, 1771 _SetBlobCacheFuncsANDROID = cast(PFN_eglSetBlobCacheFuncsANDROID)loadSymbol(loader, "eglSetBlobCacheFuncsANDROID", []); 1772 1773 // EGL_ANDROID_create_native_client_buffer, 1774 _CreateNativeClientBufferANDROID = cast(PFN_eglCreateNativeClientBufferANDROID)loadSymbol(loader, "eglCreateNativeClientBufferANDROID", []); 1775 1776 // EGL_ANDROID_get_frame_timestamps, 1777 _GetCompositorTimingSupportedANDROID = cast(PFN_eglGetCompositorTimingSupportedANDROID)loadSymbol(loader, "eglGetCompositorTimingSupportedANDROID", []); 1778 _GetCompositorTimingANDROID = cast(PFN_eglGetCompositorTimingANDROID)loadSymbol(loader, "eglGetCompositorTimingANDROID", []); 1779 _GetNextFrameIdANDROID = cast(PFN_eglGetNextFrameIdANDROID)loadSymbol(loader, "eglGetNextFrameIdANDROID", []); 1780 _GetFrameTimestampSupportedANDROID = cast(PFN_eglGetFrameTimestampSupportedANDROID)loadSymbol(loader, "eglGetFrameTimestampSupportedANDROID", []); 1781 _GetFrameTimestampsANDROID = cast(PFN_eglGetFrameTimestampsANDROID)loadSymbol(loader, "eglGetFrameTimestampsANDROID", []); 1782 1783 // EGL_ANDROID_get_native_client_buffer, 1784 _GetNativeClientBufferANDROID = cast(PFN_eglGetNativeClientBufferANDROID)loadSymbol(loader, "eglGetNativeClientBufferANDROID", []); 1785 1786 // EGL_ANDROID_native_fence_sync, 1787 _DupNativeFenceFDANDROID = cast(PFN_eglDupNativeFenceFDANDROID)loadSymbol(loader, "eglDupNativeFenceFDANDROID", []); 1788 1789 // EGL_ANDROID_presentation_time, 1790 _PresentationTimeANDROID = cast(PFN_eglPresentationTimeANDROID)loadSymbol(loader, "eglPresentationTimeANDROID", []); 1791 1792 // EGL_ANGLE_query_surface_pointer, 1793 _QuerySurfacePointerANGLE = cast(PFN_eglQuerySurfacePointerANGLE)loadSymbol(loader, "eglQuerySurfacePointerANGLE", []); 1794 1795 // EGL_EXT_compositor, 1796 _CompositorSetContextListEXT = cast(PFN_eglCompositorSetContextListEXT)loadSymbol(loader, "eglCompositorSetContextListEXT", []); 1797 _CompositorSetContextAttributesEXT = cast(PFN_eglCompositorSetContextAttributesEXT)loadSymbol(loader, "eglCompositorSetContextAttributesEXT", []); 1798 _CompositorSetWindowListEXT = cast(PFN_eglCompositorSetWindowListEXT)loadSymbol(loader, "eglCompositorSetWindowListEXT", []); 1799 _CompositorSetWindowAttributesEXT = cast(PFN_eglCompositorSetWindowAttributesEXT)loadSymbol(loader, "eglCompositorSetWindowAttributesEXT", []); 1800 _CompositorBindTexWindowEXT = cast(PFN_eglCompositorBindTexWindowEXT)loadSymbol(loader, "eglCompositorBindTexWindowEXT", []); 1801 _CompositorSetSizeEXT = cast(PFN_eglCompositorSetSizeEXT)loadSymbol(loader, "eglCompositorSetSizeEXT", []); 1802 _CompositorSwapPolicyEXT = cast(PFN_eglCompositorSwapPolicyEXT)loadSymbol(loader, "eglCompositorSwapPolicyEXT", []); 1803 1804 // EGL_EXT_device_base, 1805 _QueryDeviceAttribEXT = cast(PFN_eglQueryDeviceAttribEXT)loadSymbol(loader, "eglQueryDeviceAttribEXT", []); 1806 _QueryDeviceStringEXT = cast(PFN_eglQueryDeviceStringEXT)loadSymbol(loader, "eglQueryDeviceStringEXT", []); 1807 _QueryDevicesEXT = cast(PFN_eglQueryDevicesEXT)loadSymbol(loader, "eglQueryDevicesEXT", []); 1808 _QueryDisplayAttribEXT = cast(PFN_eglQueryDisplayAttribEXT)loadSymbol(loader, "eglQueryDisplayAttribEXT", []); 1809 1810 // EGL_EXT_image_dma_buf_import_modifiers, 1811 _QueryDmaBufFormatsEXT = cast(PFN_eglQueryDmaBufFormatsEXT)loadSymbol(loader, "eglQueryDmaBufFormatsEXT", []); 1812 _QueryDmaBufModifiersEXT = cast(PFN_eglQueryDmaBufModifiersEXT)loadSymbol(loader, "eglQueryDmaBufModifiersEXT", []); 1813 1814 // EGL_EXT_output_base, 1815 _GetOutputLayersEXT = cast(PFN_eglGetOutputLayersEXT)loadSymbol(loader, "eglGetOutputLayersEXT", []); 1816 _GetOutputPortsEXT = cast(PFN_eglGetOutputPortsEXT)loadSymbol(loader, "eglGetOutputPortsEXT", []); 1817 _OutputLayerAttribEXT = cast(PFN_eglOutputLayerAttribEXT)loadSymbol(loader, "eglOutputLayerAttribEXT", []); 1818 _QueryOutputLayerAttribEXT = cast(PFN_eglQueryOutputLayerAttribEXT)loadSymbol(loader, "eglQueryOutputLayerAttribEXT", []); 1819 _QueryOutputLayerStringEXT = cast(PFN_eglQueryOutputLayerStringEXT)loadSymbol(loader, "eglQueryOutputLayerStringEXT", []); 1820 _OutputPortAttribEXT = cast(PFN_eglOutputPortAttribEXT)loadSymbol(loader, "eglOutputPortAttribEXT", []); 1821 _QueryOutputPortAttribEXT = cast(PFN_eglQueryOutputPortAttribEXT)loadSymbol(loader, "eglQueryOutputPortAttribEXT", []); 1822 _QueryOutputPortStringEXT = cast(PFN_eglQueryOutputPortStringEXT)loadSymbol(loader, "eglQueryOutputPortStringEXT", []); 1823 1824 // EGL_EXT_platform_base, 1825 _GetPlatformDisplayEXT = cast(PFN_eglGetPlatformDisplayEXT)loadSymbol(loader, "eglGetPlatformDisplayEXT", []); 1826 _CreatePlatformWindowSurfaceEXT = cast(PFN_eglCreatePlatformWindowSurfaceEXT)loadSymbol(loader, "eglCreatePlatformWindowSurfaceEXT", []); 1827 _CreatePlatformPixmapSurfaceEXT = cast(PFN_eglCreatePlatformPixmapSurfaceEXT)loadSymbol(loader, "eglCreatePlatformPixmapSurfaceEXT", []); 1828 1829 // EGL_EXT_stream_consumer_egloutput, 1830 _StreamConsumerOutputEXT = cast(PFN_eglStreamConsumerOutputEXT)loadSymbol(loader, "eglStreamConsumerOutputEXT", []); 1831 1832 // EGL_EXT_swap_buffers_with_damage, 1833 _SwapBuffersWithDamageEXT = cast(PFN_eglSwapBuffersWithDamageEXT)loadSymbol(loader, "eglSwapBuffersWithDamageEXT", []); 1834 1835 // EGL_HI_clientpixmap, 1836 _CreatePixmapSurfaceHI = cast(PFN_eglCreatePixmapSurfaceHI)loadSymbol(loader, "eglCreatePixmapSurfaceHI", []); 1837 1838 // EGL_MESA_drm_image, 1839 _CreateDRMImageMESA = cast(PFN_eglCreateDRMImageMESA)loadSymbol(loader, "eglCreateDRMImageMESA", []); 1840 _ExportDRMImageMESA = cast(PFN_eglExportDRMImageMESA)loadSymbol(loader, "eglExportDRMImageMESA", []); 1841 1842 // EGL_MESA_image_dma_buf_export, 1843 _ExportDMABUFImageQueryMESA = cast(PFN_eglExportDMABUFImageQueryMESA)loadSymbol(loader, "eglExportDMABUFImageQueryMESA", []); 1844 _ExportDMABUFImageMESA = cast(PFN_eglExportDMABUFImageMESA)loadSymbol(loader, "eglExportDMABUFImageMESA", []); 1845 1846 // EGL_NOK_swap_region, 1847 _SwapBuffersRegionNOK = cast(PFN_eglSwapBuffersRegionNOK)loadSymbol(loader, "eglSwapBuffersRegionNOK", []); 1848 1849 // EGL_NOK_swap_region2, 1850 _SwapBuffersRegion2NOK = cast(PFN_eglSwapBuffersRegion2NOK)loadSymbol(loader, "eglSwapBuffersRegion2NOK", []); 1851 1852 // EGL_NV_native_query, 1853 _QueryNativeDisplayNV = cast(PFN_eglQueryNativeDisplayNV)loadSymbol(loader, "eglQueryNativeDisplayNV", []); 1854 _QueryNativeWindowNV = cast(PFN_eglQueryNativeWindowNV)loadSymbol(loader, "eglQueryNativeWindowNV", []); 1855 _QueryNativePixmapNV = cast(PFN_eglQueryNativePixmapNV)loadSymbol(loader, "eglQueryNativePixmapNV", []); 1856 1857 // EGL_NV_post_sub_buffer, 1858 _PostSubBufferNV = cast(PFN_eglPostSubBufferNV)loadSymbol(loader, "eglPostSubBufferNV", []); 1859 1860 // EGL_NV_stream_consumer_gltexture_yuv, 1861 _StreamConsumerGLTextureExternalAttribsNV = cast(PFN_eglStreamConsumerGLTextureExternalAttribsNV)loadSymbol(loader, "eglStreamConsumerGLTextureExternalAttribsNV", []); 1862 1863 // EGL_NV_stream_metadata, 1864 _QueryDisplayAttribNV = cast(PFN_eglQueryDisplayAttribNV)loadSymbol(loader, "eglQueryDisplayAttribNV", []); 1865 _SetStreamMetadataNV = cast(PFN_eglSetStreamMetadataNV)loadSymbol(loader, "eglSetStreamMetadataNV", []); 1866 _QueryStreamMetadataNV = cast(PFN_eglQueryStreamMetadataNV)loadSymbol(loader, "eglQueryStreamMetadataNV", []); 1867 1868 // EGL_NV_stream_reset, 1869 _ResetStreamNV = cast(PFN_eglResetStreamNV)loadSymbol(loader, "eglResetStreamNV", []); 1870 1871 // EGL_NV_stream_sync, 1872 _CreateStreamSyncNV = cast(PFN_eglCreateStreamSyncNV)loadSymbol(loader, "eglCreateStreamSyncNV", []); 1873 1874 // EGL_NV_sync, 1875 _CreateFenceSyncNV = cast(PFN_eglCreateFenceSyncNV)loadSymbol(loader, "eglCreateFenceSyncNV", []); 1876 _DestroySyncNV = cast(PFN_eglDestroySyncNV)loadSymbol(loader, "eglDestroySyncNV", []); 1877 _FenceNV = cast(PFN_eglFenceNV)loadSymbol(loader, "eglFenceNV", []); 1878 _ClientWaitSyncNV = cast(PFN_eglClientWaitSyncNV)loadSymbol(loader, "eglClientWaitSyncNV", []); 1879 _SignalSyncNV = cast(PFN_eglSignalSyncNV)loadSymbol(loader, "eglSignalSyncNV", []); 1880 _GetSyncAttribNV = cast(PFN_eglGetSyncAttribNV)loadSymbol(loader, "eglGetSyncAttribNV", []); 1881 1882 // EGL_NV_system_time, 1883 _GetSystemTimeFrequencyNV = cast(PFN_eglGetSystemTimeFrequencyNV)loadSymbol(loader, "eglGetSystemTimeFrequencyNV", []); 1884 _GetSystemTimeNV = cast(PFN_eglGetSystemTimeNV)loadSymbol(loader, "eglGetSystemTimeNV", []); 1885 } 1886 1887 private static void* loadSymbol(SymbolLoader loader, in string name, in string[] aliases) { 1888 void* sym = loader(name); 1889 if (sym) return sym; 1890 foreach (n; aliases) { 1891 sym = loader(n); 1892 if (sym) return sym; 1893 } 1894 return null; 1895 } 1896 1897 /// Commands for EGL_VERSION_1_0 1898 public EGLBoolean ChooseConfig (EGLDisplay dpy, const(EGLint)* attrib_list, EGLConfig* configs, EGLint config_size, EGLint* num_config) const { 1899 assert(_ChooseConfig !is null, "EGL command eglChooseConfig was not loaded"); 1900 return _ChooseConfig (dpy, attrib_list, configs, config_size, num_config); 1901 } 1902 /// ditto 1903 public EGLBoolean CopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target) const { 1904 assert(_CopyBuffers !is null, "EGL command eglCopyBuffers was not loaded"); 1905 return _CopyBuffers (dpy, surface, target); 1906 } 1907 /// ditto 1908 public EGLContext CreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const(EGLint)* attrib_list) const { 1909 assert(_CreateContext !is null, "EGL command eglCreateContext was not loaded"); 1910 return _CreateContext (dpy, config, share_context, attrib_list); 1911 } 1912 /// ditto 1913 public EGLSurface CreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const(EGLint)* attrib_list) const { 1914 assert(_CreatePbufferSurface !is null, "EGL command eglCreatePbufferSurface was not loaded"); 1915 return _CreatePbufferSurface (dpy, config, attrib_list); 1916 } 1917 /// ditto 1918 public EGLSurface CreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const(EGLint)* attrib_list) const { 1919 assert(_CreatePixmapSurface !is null, "EGL command eglCreatePixmapSurface was not loaded"); 1920 return _CreatePixmapSurface (dpy, config, pixmap, attrib_list); 1921 } 1922 /// ditto 1923 public EGLSurface CreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const(EGLint)* attrib_list) const { 1924 assert(_CreateWindowSurface !is null, "EGL command eglCreateWindowSurface was not loaded"); 1925 return _CreateWindowSurface (dpy, config, win, attrib_list); 1926 } 1927 /// ditto 1928 public EGLBoolean DestroyContext (EGLDisplay dpy, EGLContext ctx) const { 1929 assert(_DestroyContext !is null, "EGL command eglDestroyContext was not loaded"); 1930 return _DestroyContext (dpy, ctx); 1931 } 1932 /// ditto 1933 public EGLBoolean DestroySurface (EGLDisplay dpy, EGLSurface surface) const { 1934 assert(_DestroySurface !is null, "EGL command eglDestroySurface was not loaded"); 1935 return _DestroySurface (dpy, surface); 1936 } 1937 /// ditto 1938 public EGLBoolean GetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint* value) const { 1939 assert(_GetConfigAttrib !is null, "EGL command eglGetConfigAttrib was not loaded"); 1940 return _GetConfigAttrib (dpy, config, attribute, value); 1941 } 1942 /// ditto 1943 public EGLBoolean GetConfigs (EGLDisplay dpy, EGLConfig* configs, EGLint config_size, EGLint* num_config) const { 1944 assert(_GetConfigs !is null, "EGL command eglGetConfigs was not loaded"); 1945 return _GetConfigs (dpy, configs, config_size, num_config); 1946 } 1947 /// ditto 1948 public EGLDisplay GetCurrentDisplay () const { 1949 assert(_GetCurrentDisplay !is null, "EGL command eglGetCurrentDisplay was not loaded"); 1950 return _GetCurrentDisplay (); 1951 } 1952 /// ditto 1953 public EGLSurface GetCurrentSurface (EGLint readdraw) const { 1954 assert(_GetCurrentSurface !is null, "EGL command eglGetCurrentSurface was not loaded"); 1955 return _GetCurrentSurface (readdraw); 1956 } 1957 /// ditto 1958 public EGLDisplay GetDisplay (EGLNativeDisplayType display_id) const { 1959 assert(_GetDisplay !is null, "EGL command eglGetDisplay was not loaded"); 1960 return _GetDisplay (display_id); 1961 } 1962 /// ditto 1963 public EGLint GetError () const { 1964 assert(_GetError !is null, "EGL command eglGetError was not loaded"); 1965 return _GetError (); 1966 } 1967 /// ditto 1968 public __eglMustCastToProperFunctionPointerType GetProcAddress (const(char)* procname) const { 1969 assert(_GetProcAddress !is null, "EGL command eglGetProcAddress was not loaded"); 1970 return _GetProcAddress (procname); 1971 } 1972 /// ditto 1973 public EGLBoolean Initialize (EGLDisplay dpy, EGLint* major, EGLint* minor) const { 1974 assert(_Initialize !is null, "EGL command eglInitialize was not loaded"); 1975 return _Initialize (dpy, major, minor); 1976 } 1977 /// ditto 1978 public EGLBoolean MakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx) const { 1979 assert(_MakeCurrent !is null, "EGL command eglMakeCurrent was not loaded"); 1980 return _MakeCurrent (dpy, draw, read, ctx); 1981 } 1982 /// ditto 1983 public EGLBoolean QueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint* value) const { 1984 assert(_QueryContext !is null, "EGL command eglQueryContext was not loaded"); 1985 return _QueryContext (dpy, ctx, attribute, value); 1986 } 1987 /// ditto 1988 public const(char)* QueryString (EGLDisplay dpy, EGLint name) const { 1989 assert(_QueryString !is null, "EGL command eglQueryString was not loaded"); 1990 return _QueryString (dpy, name); 1991 } 1992 /// ditto 1993 public EGLBoolean QuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint* value) const { 1994 assert(_QuerySurface !is null, "EGL command eglQuerySurface was not loaded"); 1995 return _QuerySurface (dpy, surface, attribute, value); 1996 } 1997 /// ditto 1998 public EGLBoolean SwapBuffers (EGLDisplay dpy, EGLSurface surface) const { 1999 assert(_SwapBuffers !is null, "EGL command eglSwapBuffers was not loaded"); 2000 return _SwapBuffers (dpy, surface); 2001 } 2002 /// ditto 2003 public EGLBoolean Terminate (EGLDisplay dpy) const { 2004 assert(_Terminate !is null, "EGL command eglTerminate was not loaded"); 2005 return _Terminate (dpy); 2006 } 2007 /// ditto 2008 public EGLBoolean WaitGL () const { 2009 assert(_WaitGL !is null, "EGL command eglWaitGL was not loaded"); 2010 return _WaitGL (); 2011 } 2012 /// ditto 2013 public EGLBoolean WaitNative (EGLint engine) const { 2014 assert(_WaitNative !is null, "EGL command eglWaitNative was not loaded"); 2015 return _WaitNative (engine); 2016 } 2017 2018 /// Commands for EGL_VERSION_1_1 2019 public EGLBoolean BindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer) const { 2020 assert(_BindTexImage !is null, "EGL command eglBindTexImage was not loaded"); 2021 return _BindTexImage (dpy, surface, buffer); 2022 } 2023 /// ditto 2024 public EGLBoolean ReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer) const { 2025 assert(_ReleaseTexImage !is null, "EGL command eglReleaseTexImage was not loaded"); 2026 return _ReleaseTexImage (dpy, surface, buffer); 2027 } 2028 /// ditto 2029 public EGLBoolean SurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value) const { 2030 assert(_SurfaceAttrib !is null, "EGL command eglSurfaceAttrib was not loaded"); 2031 return _SurfaceAttrib (dpy, surface, attribute, value); 2032 } 2033 /// ditto 2034 public EGLBoolean SwapInterval (EGLDisplay dpy, EGLint interval) const { 2035 assert(_SwapInterval !is null, "EGL command eglSwapInterval was not loaded"); 2036 return _SwapInterval (dpy, interval); 2037 } 2038 2039 /// Commands for EGL_VERSION_1_2 2040 public EGLBoolean BindAPI (EGLenum api) const { 2041 assert(_BindAPI !is null, "EGL command eglBindAPI was not loaded"); 2042 return _BindAPI (api); 2043 } 2044 /// ditto 2045 public EGLenum QueryAPI () const { 2046 assert(_QueryAPI !is null, "EGL command eglQueryAPI was not loaded"); 2047 return _QueryAPI (); 2048 } 2049 /// ditto 2050 public EGLSurface CreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const(EGLint)* attrib_list) const { 2051 assert(_CreatePbufferFromClientBuffer !is null, "EGL command eglCreatePbufferFromClientBuffer was not loaded"); 2052 return _CreatePbufferFromClientBuffer (dpy, buftype, buffer, config, attrib_list); 2053 } 2054 /// ditto 2055 public EGLBoolean ReleaseThread () const { 2056 assert(_ReleaseThread !is null, "EGL command eglReleaseThread was not loaded"); 2057 return _ReleaseThread (); 2058 } 2059 /// ditto 2060 public EGLBoolean WaitClient () const { 2061 assert(_WaitClient !is null, "EGL command eglWaitClient was not loaded"); 2062 return _WaitClient (); 2063 } 2064 2065 /// Commands for EGL_VERSION_1_4 2066 public EGLContext GetCurrentContext () const { 2067 assert(_GetCurrentContext !is null, "EGL command eglGetCurrentContext was not loaded"); 2068 return _GetCurrentContext (); 2069 } 2070 2071 /// Commands for EGL_VERSION_1_5 2072 public EGLSync CreateSync (EGLDisplay dpy, EGLenum type, const(EGLAttrib)* attrib_list) const { 2073 assert(_CreateSync !is null, "EGL command eglCreateSync was not loaded"); 2074 return _CreateSync (dpy, type, attrib_list); 2075 } 2076 /// ditto 2077 public EGLBoolean DestroySync (EGLDisplay dpy, EGLSync sync) const { 2078 assert(_DestroySync !is null, "EGL command eglDestroySync was not loaded"); 2079 return _DestroySync (dpy, sync); 2080 } 2081 /// ditto 2082 public EGLint ClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout) const { 2083 assert(_ClientWaitSync !is null, "EGL command eglClientWaitSync was not loaded"); 2084 return _ClientWaitSync (dpy, sync, flags, timeout); 2085 } 2086 /// ditto 2087 public EGLBoolean GetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib* value) const { 2088 assert(_GetSyncAttrib !is null, "EGL command eglGetSyncAttrib was not loaded"); 2089 return _GetSyncAttrib (dpy, sync, attribute, value); 2090 } 2091 /// ditto 2092 public EGLImage CreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const(EGLAttrib)* attrib_list) const { 2093 assert(_CreateImage !is null, "EGL command eglCreateImage was not loaded"); 2094 return _CreateImage (dpy, ctx, target, buffer, attrib_list); 2095 } 2096 /// ditto 2097 public EGLBoolean DestroyImage (EGLDisplay dpy, EGLImage image) const { 2098 assert(_DestroyImage !is null, "EGL command eglDestroyImage was not loaded"); 2099 return _DestroyImage (dpy, image); 2100 } 2101 /// ditto 2102 public EGLDisplay GetPlatformDisplay (EGLenum platform, void* native_display, const(EGLAttrib)* attrib_list) const { 2103 assert(_GetPlatformDisplay !is null, "EGL command eglGetPlatformDisplay was not loaded"); 2104 return _GetPlatformDisplay (platform, native_display, attrib_list); 2105 } 2106 /// ditto 2107 public EGLSurface CreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void* native_window, const(EGLAttrib)* attrib_list) const { 2108 assert(_CreatePlatformWindowSurface !is null, "EGL command eglCreatePlatformWindowSurface was not loaded"); 2109 return _CreatePlatformWindowSurface (dpy, config, native_window, attrib_list); 2110 } 2111 /// ditto 2112 public EGLSurface CreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void* native_pixmap, const(EGLAttrib)* attrib_list) const { 2113 assert(_CreatePlatformPixmapSurface !is null, "EGL command eglCreatePlatformPixmapSurface was not loaded"); 2114 return _CreatePlatformPixmapSurface (dpy, config, native_pixmap, attrib_list); 2115 } 2116 /// ditto 2117 public EGLBoolean WaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags) const { 2118 assert(_WaitSync !is null, "EGL command eglWaitSync was not loaded"); 2119 return _WaitSync (dpy, sync, flags); 2120 } 2121 2122 /// Commands for EGL_KHR_debug 2123 public EGLint DebugMessageControlKHR (EGLDEBUGPROCKHR callback, const(EGLAttrib)* attrib_list) const { 2124 assert(_DebugMessageControlKHR !is null, "EGL command eglDebugMessageControlKHR was not loaded"); 2125 return _DebugMessageControlKHR (callback, attrib_list); 2126 } 2127 /// ditto 2128 public EGLBoolean QueryDebugKHR (EGLint attribute, EGLAttrib* value) const { 2129 assert(_QueryDebugKHR !is null, "EGL command eglQueryDebugKHR was not loaded"); 2130 return _QueryDebugKHR (attribute, value); 2131 } 2132 /// ditto 2133 public EGLint LabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label) const { 2134 assert(_LabelObjectKHR !is null, "EGL command eglLabelObjectKHR was not loaded"); 2135 return _LabelObjectKHR (display, objectType, object, label); 2136 } 2137 2138 /// Commands for EGL_KHR_display_reference 2139 public EGLBoolean QueryDisplayAttribKHR (EGLDisplay dpy, EGLint name, EGLAttrib* value) const { 2140 assert(_QueryDisplayAttribKHR !is null, "EGL command eglQueryDisplayAttribKHR was not loaded"); 2141 return _QueryDisplayAttribKHR (dpy, name, value); 2142 } 2143 2144 /// Commands for EGL_KHR_fence_sync 2145 public EGLSyncKHR CreateSyncKHR (EGLDisplay dpy, EGLenum type, const(EGLint)* attrib_list) const { 2146 assert(_CreateSyncKHR !is null, "EGL command eglCreateSyncKHR was not loaded"); 2147 return _CreateSyncKHR (dpy, type, attrib_list); 2148 } 2149 /// ditto 2150 public EGLBoolean GetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint* value) const { 2151 assert(_GetSyncAttribKHR !is null, "EGL command eglGetSyncAttribKHR was not loaded"); 2152 return _GetSyncAttribKHR (dpy, sync, attribute, value); 2153 } 2154 2155 /// Commands for EGL_KHR_image 2156 public EGLImageKHR CreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const(EGLint)* attrib_list) const { 2157 assert(_CreateImageKHR !is null, "EGL command eglCreateImageKHR was not loaded"); 2158 return _CreateImageKHR (dpy, ctx, target, buffer, attrib_list); 2159 } 2160 2161 /// Commands for EGL_KHR_lock_surface 2162 public EGLBoolean LockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const(EGLint)* attrib_list) const { 2163 assert(_LockSurfaceKHR !is null, "EGL command eglLockSurfaceKHR was not loaded"); 2164 return _LockSurfaceKHR (dpy, surface, attrib_list); 2165 } 2166 /// ditto 2167 public EGLBoolean UnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface) const { 2168 assert(_UnlockSurfaceKHR !is null, "EGL command eglUnlockSurfaceKHR was not loaded"); 2169 return _UnlockSurfaceKHR (dpy, surface); 2170 } 2171 2172 /// Commands for EGL_KHR_lock_surface3 2173 public EGLBoolean QuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR* value) const { 2174 assert(_QuerySurface64KHR !is null, "EGL command eglQuerySurface64KHR was not loaded"); 2175 return _QuerySurface64KHR (dpy, surface, attribute, value); 2176 } 2177 2178 /// Commands for EGL_KHR_partial_update 2179 public EGLBoolean SetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint* rects, EGLint n_rects) const { 2180 assert(_SetDamageRegionKHR !is null, "EGL command eglSetDamageRegionKHR was not loaded"); 2181 return _SetDamageRegionKHR (dpy, surface, rects, n_rects); 2182 } 2183 2184 /// Commands for EGL_KHR_reusable_sync 2185 public EGLBoolean SignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode) const { 2186 assert(_SignalSyncKHR !is null, "EGL command eglSignalSyncKHR was not loaded"); 2187 return _SignalSyncKHR (dpy, sync, mode); 2188 } 2189 2190 /// Commands for EGL_KHR_stream 2191 public EGLStreamKHR CreateStreamKHR (EGLDisplay dpy, const(EGLint)* attrib_list) const { 2192 assert(_CreateStreamKHR !is null, "EGL command eglCreateStreamKHR was not loaded"); 2193 return _CreateStreamKHR (dpy, attrib_list); 2194 } 2195 /// ditto 2196 public EGLBoolean DestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream) const { 2197 assert(_DestroyStreamKHR !is null, "EGL command eglDestroyStreamKHR was not loaded"); 2198 return _DestroyStreamKHR (dpy, stream); 2199 } 2200 /// ditto 2201 public EGLBoolean StreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value) const { 2202 assert(_StreamAttribKHR !is null, "EGL command eglStreamAttribKHR was not loaded"); 2203 return _StreamAttribKHR (dpy, stream, attribute, value); 2204 } 2205 /// ditto 2206 public EGLBoolean QueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint* value) const { 2207 assert(_QueryStreamKHR !is null, "EGL command eglQueryStreamKHR was not loaded"); 2208 return _QueryStreamKHR (dpy, stream, attribute, value); 2209 } 2210 /// ditto 2211 public EGLBoolean QueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR* value) const { 2212 assert(_QueryStreamu64KHR !is null, "EGL command eglQueryStreamu64KHR was not loaded"); 2213 return _QueryStreamu64KHR (dpy, stream, attribute, value); 2214 } 2215 2216 /// Commands for EGL_KHR_stream_attrib 2217 public EGLStreamKHR CreateStreamAttribKHR (EGLDisplay dpy, const(EGLAttrib)* attrib_list) const { 2218 assert(_CreateStreamAttribKHR !is null, "EGL command eglCreateStreamAttribKHR was not loaded"); 2219 return _CreateStreamAttribKHR (dpy, attrib_list); 2220 } 2221 /// ditto 2222 public EGLBoolean SetStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value) const { 2223 assert(_SetStreamAttribKHR !is null, "EGL command eglSetStreamAttribKHR was not loaded"); 2224 return _SetStreamAttribKHR (dpy, stream, attribute, value); 2225 } 2226 /// ditto 2227 public EGLBoolean QueryStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib* value) const { 2228 assert(_QueryStreamAttribKHR !is null, "EGL command eglQueryStreamAttribKHR was not loaded"); 2229 return _QueryStreamAttribKHR (dpy, stream, attribute, value); 2230 } 2231 /// ditto 2232 public EGLBoolean StreamConsumerAcquireAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const(EGLAttrib)* attrib_list) const { 2233 assert(_StreamConsumerAcquireAttribKHR !is null, "EGL command eglStreamConsumerAcquireAttribKHR was not loaded"); 2234 return _StreamConsumerAcquireAttribKHR (dpy, stream, attrib_list); 2235 } 2236 /// ditto 2237 public EGLBoolean StreamConsumerReleaseAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const(EGLAttrib)* attrib_list) const { 2238 assert(_StreamConsumerReleaseAttribKHR !is null, "EGL command eglStreamConsumerReleaseAttribKHR was not loaded"); 2239 return _StreamConsumerReleaseAttribKHR (dpy, stream, attrib_list); 2240 } 2241 2242 /// Commands for EGL_KHR_stream_consumer_gltexture 2243 public EGLBoolean StreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream) const { 2244 assert(_StreamConsumerGLTextureExternalKHR !is null, "EGL command eglStreamConsumerGLTextureExternalKHR was not loaded"); 2245 return _StreamConsumerGLTextureExternalKHR (dpy, stream); 2246 } 2247 /// ditto 2248 public EGLBoolean StreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream) const { 2249 assert(_StreamConsumerAcquireKHR !is null, "EGL command eglStreamConsumerAcquireKHR was not loaded"); 2250 return _StreamConsumerAcquireKHR (dpy, stream); 2251 } 2252 /// ditto 2253 public EGLBoolean StreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream) const { 2254 assert(_StreamConsumerReleaseKHR !is null, "EGL command eglStreamConsumerReleaseKHR was not loaded"); 2255 return _StreamConsumerReleaseKHR (dpy, stream); 2256 } 2257 2258 /// Commands for EGL_KHR_stream_cross_process_fd 2259 public EGLNativeFileDescriptorKHR GetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream) const { 2260 assert(_GetStreamFileDescriptorKHR !is null, "EGL command eglGetStreamFileDescriptorKHR was not loaded"); 2261 return _GetStreamFileDescriptorKHR (dpy, stream); 2262 } 2263 /// ditto 2264 public EGLStreamKHR CreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor) const { 2265 assert(_CreateStreamFromFileDescriptorKHR !is null, "EGL command eglCreateStreamFromFileDescriptorKHR was not loaded"); 2266 return _CreateStreamFromFileDescriptorKHR (dpy, file_descriptor); 2267 } 2268 2269 /// Commands for EGL_KHR_stream_fifo 2270 public EGLBoolean QueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR* value) const { 2271 assert(_QueryStreamTimeKHR !is null, "EGL command eglQueryStreamTimeKHR was not loaded"); 2272 return _QueryStreamTimeKHR (dpy, stream, attribute, value); 2273 } 2274 2275 /// Commands for EGL_KHR_stream_producer_eglsurface 2276 public EGLSurface CreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const(EGLint)* attrib_list) const { 2277 assert(_CreateStreamProducerSurfaceKHR !is null, "EGL command eglCreateStreamProducerSurfaceKHR was not loaded"); 2278 return _CreateStreamProducerSurfaceKHR (dpy, config, stream, attrib_list); 2279 } 2280 2281 /// Commands for EGL_KHR_swap_buffers_with_damage 2282 public EGLBoolean SwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint* rects, EGLint n_rects) const { 2283 assert(_SwapBuffersWithDamageKHR !is null, "EGL command eglSwapBuffersWithDamageKHR was not loaded"); 2284 return _SwapBuffersWithDamageKHR (dpy, surface, rects, n_rects); 2285 } 2286 2287 /// Commands for EGL_KHR_wait_sync 2288 public EGLint WaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags) const { 2289 assert(_WaitSyncKHR !is null, "EGL command eglWaitSyncKHR was not loaded"); 2290 return _WaitSyncKHR (dpy, sync, flags); 2291 } 2292 2293 /// Commands for EGL_ANDROID_blob_cache 2294 public void SetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get) const { 2295 assert(_SetBlobCacheFuncsANDROID !is null, "EGL command eglSetBlobCacheFuncsANDROID was not loaded"); 2296 return _SetBlobCacheFuncsANDROID (dpy, set, get); 2297 } 2298 2299 /// Commands for EGL_ANDROID_create_native_client_buffer 2300 public EGLClientBuffer CreateNativeClientBufferANDROID (const(EGLint)* attrib_list) const { 2301 assert(_CreateNativeClientBufferANDROID !is null, "EGL command eglCreateNativeClientBufferANDROID was not loaded"); 2302 return _CreateNativeClientBufferANDROID (attrib_list); 2303 } 2304 2305 /// Commands for EGL_ANDROID_get_frame_timestamps 2306 public EGLBoolean GetCompositorTimingSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint name) const { 2307 assert(_GetCompositorTimingSupportedANDROID !is null, "EGL command eglGetCompositorTimingSupportedANDROID was not loaded"); 2308 return _GetCompositorTimingSupportedANDROID (dpy, surface, name); 2309 } 2310 /// ditto 2311 public EGLBoolean GetCompositorTimingANDROID (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const(EGLint)* names, EGLnsecsANDROID* values) const { 2312 assert(_GetCompositorTimingANDROID !is null, "EGL command eglGetCompositorTimingANDROID was not loaded"); 2313 return _GetCompositorTimingANDROID (dpy, surface, numTimestamps, names, values); 2314 } 2315 /// ditto 2316 public EGLBoolean GetNextFrameIdANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR* frameId) const { 2317 assert(_GetNextFrameIdANDROID !is null, "EGL command eglGetNextFrameIdANDROID was not loaded"); 2318 return _GetNextFrameIdANDROID (dpy, surface, frameId); 2319 } 2320 /// ditto 2321 public EGLBoolean GetFrameTimestampSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint timestamp) const { 2322 assert(_GetFrameTimestampSupportedANDROID !is null, "EGL command eglGetFrameTimestampSupportedANDROID was not loaded"); 2323 return _GetFrameTimestampSupportedANDROID (dpy, surface, timestamp); 2324 } 2325 /// ditto 2326 public EGLBoolean GetFrameTimestampsANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const(EGLint)* timestamps, EGLnsecsANDROID* values) const { 2327 assert(_GetFrameTimestampsANDROID !is null, "EGL command eglGetFrameTimestampsANDROID was not loaded"); 2328 return _GetFrameTimestampsANDROID (dpy, surface, frameId, numTimestamps, timestamps, values); 2329 } 2330 2331 /// Commands for EGL_ANDROID_get_native_client_buffer 2332 public EGLClientBuffer GetNativeClientBufferANDROID (const(AHardwareBuffer)* buffer) const { 2333 assert(_GetNativeClientBufferANDROID !is null, "EGL command eglGetNativeClientBufferANDROID was not loaded"); 2334 return _GetNativeClientBufferANDROID (buffer); 2335 } 2336 2337 /// Commands for EGL_ANDROID_native_fence_sync 2338 public EGLint DupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync) const { 2339 assert(_DupNativeFenceFDANDROID !is null, "EGL command eglDupNativeFenceFDANDROID was not loaded"); 2340 return _DupNativeFenceFDANDROID (dpy, sync); 2341 } 2342 2343 /// Commands for EGL_ANDROID_presentation_time 2344 public EGLBoolean PresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time) const { 2345 assert(_PresentationTimeANDROID !is null, "EGL command eglPresentationTimeANDROID was not loaded"); 2346 return _PresentationTimeANDROID (dpy, surface, time); 2347 } 2348 2349 /// Commands for EGL_ANGLE_query_surface_pointer 2350 public EGLBoolean QuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void** value) const { 2351 assert(_QuerySurfacePointerANGLE !is null, "EGL command eglQuerySurfacePointerANGLE was not loaded"); 2352 return _QuerySurfacePointerANGLE (dpy, surface, attribute, value); 2353 } 2354 2355 /// Commands for EGL_EXT_compositor 2356 public EGLBoolean CompositorSetContextListEXT (const(EGLint)* external_ref_ids, EGLint num_entries) const { 2357 assert(_CompositorSetContextListEXT !is null, "EGL command eglCompositorSetContextListEXT was not loaded"); 2358 return _CompositorSetContextListEXT (external_ref_ids, num_entries); 2359 } 2360 /// ditto 2361 public EGLBoolean CompositorSetContextAttributesEXT (EGLint external_ref_id, const(EGLint)* context_attributes, EGLint num_entries) const { 2362 assert(_CompositorSetContextAttributesEXT !is null, "EGL command eglCompositorSetContextAttributesEXT was not loaded"); 2363 return _CompositorSetContextAttributesEXT (external_ref_id, context_attributes, num_entries); 2364 } 2365 /// ditto 2366 public EGLBoolean CompositorSetWindowListEXT (EGLint external_ref_id, const(EGLint)* external_win_ids, EGLint num_entries) const { 2367 assert(_CompositorSetWindowListEXT !is null, "EGL command eglCompositorSetWindowListEXT was not loaded"); 2368 return _CompositorSetWindowListEXT (external_ref_id, external_win_ids, num_entries); 2369 } 2370 /// ditto 2371 public EGLBoolean CompositorSetWindowAttributesEXT (EGLint external_win_id, const(EGLint)* window_attributes, EGLint num_entries) const { 2372 assert(_CompositorSetWindowAttributesEXT !is null, "EGL command eglCompositorSetWindowAttributesEXT was not loaded"); 2373 return _CompositorSetWindowAttributesEXT (external_win_id, window_attributes, num_entries); 2374 } 2375 /// ditto 2376 public EGLBoolean CompositorBindTexWindowEXT (EGLint external_win_id) const { 2377 assert(_CompositorBindTexWindowEXT !is null, "EGL command eglCompositorBindTexWindowEXT was not loaded"); 2378 return _CompositorBindTexWindowEXT (external_win_id); 2379 } 2380 /// ditto 2381 public EGLBoolean CompositorSetSizeEXT (EGLint external_win_id, EGLint width, EGLint height) const { 2382 assert(_CompositorSetSizeEXT !is null, "EGL command eglCompositorSetSizeEXT was not loaded"); 2383 return _CompositorSetSizeEXT (external_win_id, width, height); 2384 } 2385 /// ditto 2386 public EGLBoolean CompositorSwapPolicyEXT (EGLint external_win_id, EGLint policy) const { 2387 assert(_CompositorSwapPolicyEXT !is null, "EGL command eglCompositorSwapPolicyEXT was not loaded"); 2388 return _CompositorSwapPolicyEXT (external_win_id, policy); 2389 } 2390 2391 /// Commands for EGL_EXT_device_base 2392 public EGLBoolean QueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib* value) const { 2393 assert(_QueryDeviceAttribEXT !is null, "EGL command eglQueryDeviceAttribEXT was not loaded"); 2394 return _QueryDeviceAttribEXT (device, attribute, value); 2395 } 2396 /// ditto 2397 public const(char)* QueryDeviceStringEXT (EGLDeviceEXT device, EGLint name) const { 2398 assert(_QueryDeviceStringEXT !is null, "EGL command eglQueryDeviceStringEXT was not loaded"); 2399 return _QueryDeviceStringEXT (device, name); 2400 } 2401 /// ditto 2402 public EGLBoolean QueryDevicesEXT (EGLint max_devices, EGLDeviceEXT* devices, EGLint* num_devices) const { 2403 assert(_QueryDevicesEXT !is null, "EGL command eglQueryDevicesEXT was not loaded"); 2404 return _QueryDevicesEXT (max_devices, devices, num_devices); 2405 } 2406 /// ditto 2407 public EGLBoolean QueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib* value) const { 2408 assert(_QueryDisplayAttribEXT !is null, "EGL command eglQueryDisplayAttribEXT was not loaded"); 2409 return _QueryDisplayAttribEXT (dpy, attribute, value); 2410 } 2411 2412 /// Commands for EGL_EXT_image_dma_buf_import_modifiers 2413 public EGLBoolean QueryDmaBufFormatsEXT (EGLDisplay dpy, EGLint max_formats, EGLint* formats, EGLint* num_formats) const { 2414 assert(_QueryDmaBufFormatsEXT !is null, "EGL command eglQueryDmaBufFormatsEXT was not loaded"); 2415 return _QueryDmaBufFormatsEXT (dpy, max_formats, formats, num_formats); 2416 } 2417 /// ditto 2418 public EGLBoolean QueryDmaBufModifiersEXT (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR* modifiers, EGLBoolean* external_only, EGLint* num_modifiers) const { 2419 assert(_QueryDmaBufModifiersEXT !is null, "EGL command eglQueryDmaBufModifiersEXT was not loaded"); 2420 return _QueryDmaBufModifiersEXT (dpy, format, max_modifiers, modifiers, external_only, num_modifiers); 2421 } 2422 2423 /// Commands for EGL_EXT_output_base 2424 public EGLBoolean GetOutputLayersEXT (EGLDisplay dpy, const(EGLAttrib)* attrib_list, EGLOutputLayerEXT* layers, EGLint max_layers, EGLint* num_layers) const { 2425 assert(_GetOutputLayersEXT !is null, "EGL command eglGetOutputLayersEXT was not loaded"); 2426 return _GetOutputLayersEXT (dpy, attrib_list, layers, max_layers, num_layers); 2427 } 2428 /// ditto 2429 public EGLBoolean GetOutputPortsEXT (EGLDisplay dpy, const(EGLAttrib)* attrib_list, EGLOutputPortEXT* ports, EGLint max_ports, EGLint* num_ports) const { 2430 assert(_GetOutputPortsEXT !is null, "EGL command eglGetOutputPortsEXT was not loaded"); 2431 return _GetOutputPortsEXT (dpy, attrib_list, ports, max_ports, num_ports); 2432 } 2433 /// ditto 2434 public EGLBoolean OutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value) const { 2435 assert(_OutputLayerAttribEXT !is null, "EGL command eglOutputLayerAttribEXT was not loaded"); 2436 return _OutputLayerAttribEXT (dpy, layer, attribute, value); 2437 } 2438 /// ditto 2439 public EGLBoolean QueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib* value) const { 2440 assert(_QueryOutputLayerAttribEXT !is null, "EGL command eglQueryOutputLayerAttribEXT was not loaded"); 2441 return _QueryOutputLayerAttribEXT (dpy, layer, attribute, value); 2442 } 2443 /// ditto 2444 public const(char)* QueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name) const { 2445 assert(_QueryOutputLayerStringEXT !is null, "EGL command eglQueryOutputLayerStringEXT was not loaded"); 2446 return _QueryOutputLayerStringEXT (dpy, layer, name); 2447 } 2448 /// ditto 2449 public EGLBoolean OutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value) const { 2450 assert(_OutputPortAttribEXT !is null, "EGL command eglOutputPortAttribEXT was not loaded"); 2451 return _OutputPortAttribEXT (dpy, port, attribute, value); 2452 } 2453 /// ditto 2454 public EGLBoolean QueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib* value) const { 2455 assert(_QueryOutputPortAttribEXT !is null, "EGL command eglQueryOutputPortAttribEXT was not loaded"); 2456 return _QueryOutputPortAttribEXT (dpy, port, attribute, value); 2457 } 2458 /// ditto 2459 public const(char)* QueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name) const { 2460 assert(_QueryOutputPortStringEXT !is null, "EGL command eglQueryOutputPortStringEXT was not loaded"); 2461 return _QueryOutputPortStringEXT (dpy, port, name); 2462 } 2463 2464 /// Commands for EGL_EXT_platform_base 2465 public EGLDisplay GetPlatformDisplayEXT (EGLenum platform, void* native_display, const(EGLint)* attrib_list) const { 2466 assert(_GetPlatformDisplayEXT !is null, "EGL command eglGetPlatformDisplayEXT was not loaded"); 2467 return _GetPlatformDisplayEXT (platform, native_display, attrib_list); 2468 } 2469 /// ditto 2470 public EGLSurface CreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void* native_window, const(EGLint)* attrib_list) const { 2471 assert(_CreatePlatformWindowSurfaceEXT !is null, "EGL command eglCreatePlatformWindowSurfaceEXT was not loaded"); 2472 return _CreatePlatformWindowSurfaceEXT (dpy, config, native_window, attrib_list); 2473 } 2474 /// ditto 2475 public EGLSurface CreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void* native_pixmap, const(EGLint)* attrib_list) const { 2476 assert(_CreatePlatformPixmapSurfaceEXT !is null, "EGL command eglCreatePlatformPixmapSurfaceEXT was not loaded"); 2477 return _CreatePlatformPixmapSurfaceEXT (dpy, config, native_pixmap, attrib_list); 2478 } 2479 2480 /// Commands for EGL_EXT_stream_consumer_egloutput 2481 public EGLBoolean StreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer) const { 2482 assert(_StreamConsumerOutputEXT !is null, "EGL command eglStreamConsumerOutputEXT was not loaded"); 2483 return _StreamConsumerOutputEXT (dpy, stream, layer); 2484 } 2485 2486 /// Commands for EGL_EXT_swap_buffers_with_damage 2487 public EGLBoolean SwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, EGLint* rects, EGLint n_rects) const { 2488 assert(_SwapBuffersWithDamageEXT !is null, "EGL command eglSwapBuffersWithDamageEXT was not loaded"); 2489 return _SwapBuffersWithDamageEXT (dpy, surface, rects, n_rects); 2490 } 2491 2492 /// Commands for EGL_HI_clientpixmap 2493 public EGLSurface CreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, EGLClientPixmapHI* pixmap) const { 2494 assert(_CreatePixmapSurfaceHI !is null, "EGL command eglCreatePixmapSurfaceHI was not loaded"); 2495 return _CreatePixmapSurfaceHI (dpy, config, pixmap); 2496 } 2497 2498 /// Commands for EGL_MESA_drm_image 2499 public EGLImageKHR CreateDRMImageMESA (EGLDisplay dpy, const(EGLint)* attrib_list) const { 2500 assert(_CreateDRMImageMESA !is null, "EGL command eglCreateDRMImageMESA was not loaded"); 2501 return _CreateDRMImageMESA (dpy, attrib_list); 2502 } 2503 /// ditto 2504 public EGLBoolean ExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint* name, EGLint* handle, EGLint* stride) const { 2505 assert(_ExportDRMImageMESA !is null, "EGL command eglExportDRMImageMESA was not loaded"); 2506 return _ExportDRMImageMESA (dpy, image, name, handle, stride); 2507 } 2508 2509 /// Commands for EGL_MESA_image_dma_buf_export 2510 public EGLBoolean ExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int* fourcc, int* num_planes, EGLuint64KHR* modifiers) const { 2511 assert(_ExportDMABUFImageQueryMESA !is null, "EGL command eglExportDMABUFImageQueryMESA was not loaded"); 2512 return _ExportDMABUFImageQueryMESA (dpy, image, fourcc, num_planes, modifiers); 2513 } 2514 /// ditto 2515 public EGLBoolean ExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int* fds, EGLint* strides, EGLint* offsets) const { 2516 assert(_ExportDMABUFImageMESA !is null, "EGL command eglExportDMABUFImageMESA was not loaded"); 2517 return _ExportDMABUFImageMESA (dpy, image, fds, strides, offsets); 2518 } 2519 2520 /// Commands for EGL_NOK_swap_region 2521 public EGLBoolean SwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const(EGLint)* rects) const { 2522 assert(_SwapBuffersRegionNOK !is null, "EGL command eglSwapBuffersRegionNOK was not loaded"); 2523 return _SwapBuffersRegionNOK (dpy, surface, numRects, rects); 2524 } 2525 2526 /// Commands for EGL_NOK_swap_region2 2527 public EGLBoolean SwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const(EGLint)* rects) const { 2528 assert(_SwapBuffersRegion2NOK !is null, "EGL command eglSwapBuffersRegion2NOK was not loaded"); 2529 return _SwapBuffersRegion2NOK (dpy, surface, numRects, rects); 2530 } 2531 2532 /// Commands for EGL_NV_native_query 2533 public EGLBoolean QueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType* display_id) const { 2534 assert(_QueryNativeDisplayNV !is null, "EGL command eglQueryNativeDisplayNV was not loaded"); 2535 return _QueryNativeDisplayNV (dpy, display_id); 2536 } 2537 /// ditto 2538 public EGLBoolean QueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType* window) const { 2539 assert(_QueryNativeWindowNV !is null, "EGL command eglQueryNativeWindowNV was not loaded"); 2540 return _QueryNativeWindowNV (dpy, surf, window); 2541 } 2542 /// ditto 2543 public EGLBoolean QueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType* pixmap) const { 2544 assert(_QueryNativePixmapNV !is null, "EGL command eglQueryNativePixmapNV was not loaded"); 2545 return _QueryNativePixmapNV (dpy, surf, pixmap); 2546 } 2547 2548 /// Commands for EGL_NV_post_sub_buffer 2549 public EGLBoolean PostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height) const { 2550 assert(_PostSubBufferNV !is null, "EGL command eglPostSubBufferNV was not loaded"); 2551 return _PostSubBufferNV (dpy, surface, x, y, width, height); 2552 } 2553 2554 /// Commands for EGL_NV_stream_consumer_gltexture_yuv 2555 public EGLBoolean StreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, const(EGLAttrib)* attrib_list) const { 2556 assert(_StreamConsumerGLTextureExternalAttribsNV !is null, "EGL command eglStreamConsumerGLTextureExternalAttribsNV was not loaded"); 2557 return _StreamConsumerGLTextureExternalAttribsNV (dpy, stream, attrib_list); 2558 } 2559 2560 /// Commands for EGL_NV_stream_metadata 2561 public EGLBoolean QueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib* value) const { 2562 assert(_QueryDisplayAttribNV !is null, "EGL command eglQueryDisplayAttribNV was not loaded"); 2563 return _QueryDisplayAttribNV (dpy, attribute, value); 2564 } 2565 /// ditto 2566 public EGLBoolean SetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const(void)* data) const { 2567 assert(_SetStreamMetadataNV !is null, "EGL command eglSetStreamMetadataNV was not loaded"); 2568 return _SetStreamMetadataNV (dpy, stream, n, offset, size, data); 2569 } 2570 /// ditto 2571 public EGLBoolean QueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void* data) const { 2572 assert(_QueryStreamMetadataNV !is null, "EGL command eglQueryStreamMetadataNV was not loaded"); 2573 return _QueryStreamMetadataNV (dpy, stream, name, n, offset, size, data); 2574 } 2575 2576 /// Commands for EGL_NV_stream_reset 2577 public EGLBoolean ResetStreamNV (EGLDisplay dpy, EGLStreamKHR stream) const { 2578 assert(_ResetStreamNV !is null, "EGL command eglResetStreamNV was not loaded"); 2579 return _ResetStreamNV (dpy, stream); 2580 } 2581 2582 /// Commands for EGL_NV_stream_sync 2583 public EGLSyncKHR CreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const(EGLint)* attrib_list) const { 2584 assert(_CreateStreamSyncNV !is null, "EGL command eglCreateStreamSyncNV was not loaded"); 2585 return _CreateStreamSyncNV (dpy, stream, type, attrib_list); 2586 } 2587 2588 /// Commands for EGL_NV_sync 2589 public EGLSyncNV CreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const(EGLint)* attrib_list) const { 2590 assert(_CreateFenceSyncNV !is null, "EGL command eglCreateFenceSyncNV was not loaded"); 2591 return _CreateFenceSyncNV (dpy, condition, attrib_list); 2592 } 2593 /// ditto 2594 public EGLBoolean DestroySyncNV (EGLSyncNV sync) const { 2595 assert(_DestroySyncNV !is null, "EGL command eglDestroySyncNV was not loaded"); 2596 return _DestroySyncNV (sync); 2597 } 2598 /// ditto 2599 public EGLBoolean FenceNV (EGLSyncNV sync) const { 2600 assert(_FenceNV !is null, "EGL command eglFenceNV was not loaded"); 2601 return _FenceNV (sync); 2602 } 2603 /// ditto 2604 public EGLint ClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout) const { 2605 assert(_ClientWaitSyncNV !is null, "EGL command eglClientWaitSyncNV was not loaded"); 2606 return _ClientWaitSyncNV (sync, flags, timeout); 2607 } 2608 /// ditto 2609 public EGLBoolean SignalSyncNV (EGLSyncNV sync, EGLenum mode) const { 2610 assert(_SignalSyncNV !is null, "EGL command eglSignalSyncNV was not loaded"); 2611 return _SignalSyncNV (sync, mode); 2612 } 2613 /// ditto 2614 public EGLBoolean GetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint* value) const { 2615 assert(_GetSyncAttribNV !is null, "EGL command eglGetSyncAttribNV was not loaded"); 2616 return _GetSyncAttribNV (sync, attribute, value); 2617 } 2618 2619 /// Commands for EGL_NV_system_time 2620 public EGLuint64NV GetSystemTimeFrequencyNV () const { 2621 assert(_GetSystemTimeFrequencyNV !is null, "EGL command eglGetSystemTimeFrequencyNV was not loaded"); 2622 return _GetSystemTimeFrequencyNV (); 2623 } 2624 /// ditto 2625 public EGLuint64NV GetSystemTimeNV () const { 2626 assert(_GetSystemTimeNV !is null, "EGL command eglGetSystemTimeNV was not loaded"); 2627 return _GetSystemTimeNV (); 2628 } 2629 2630 // EGL_VERSION_1_0 2631 private PFN_eglChooseConfig _ChooseConfig; 2632 private PFN_eglCopyBuffers _CopyBuffers; 2633 private PFN_eglCreateContext _CreateContext; 2634 private PFN_eglCreatePbufferSurface _CreatePbufferSurface; 2635 private PFN_eglCreatePixmapSurface _CreatePixmapSurface; 2636 private PFN_eglCreateWindowSurface _CreateWindowSurface; 2637 private PFN_eglDestroyContext _DestroyContext; 2638 private PFN_eglDestroySurface _DestroySurface; 2639 private PFN_eglGetConfigAttrib _GetConfigAttrib; 2640 private PFN_eglGetConfigs _GetConfigs; 2641 private PFN_eglGetCurrentDisplay _GetCurrentDisplay; 2642 private PFN_eglGetCurrentSurface _GetCurrentSurface; 2643 private PFN_eglGetDisplay _GetDisplay; 2644 private PFN_eglGetError _GetError; 2645 private PFN_eglGetProcAddress _GetProcAddress; 2646 private PFN_eglInitialize _Initialize; 2647 private PFN_eglMakeCurrent _MakeCurrent; 2648 private PFN_eglQueryContext _QueryContext; 2649 private PFN_eglQueryString _QueryString; 2650 private PFN_eglQuerySurface _QuerySurface; 2651 private PFN_eglSwapBuffers _SwapBuffers; 2652 private PFN_eglTerminate _Terminate; 2653 private PFN_eglWaitGL _WaitGL; 2654 private PFN_eglWaitNative _WaitNative; 2655 2656 // EGL_VERSION_1_1 2657 private PFN_eglBindTexImage _BindTexImage; 2658 private PFN_eglReleaseTexImage _ReleaseTexImage; 2659 private PFN_eglSurfaceAttrib _SurfaceAttrib; 2660 private PFN_eglSwapInterval _SwapInterval; 2661 2662 // EGL_VERSION_1_2 2663 private PFN_eglBindAPI _BindAPI; 2664 private PFN_eglQueryAPI _QueryAPI; 2665 private PFN_eglCreatePbufferFromClientBuffer _CreatePbufferFromClientBuffer; 2666 private PFN_eglReleaseThread _ReleaseThread; 2667 private PFN_eglWaitClient _WaitClient; 2668 2669 // EGL_VERSION_1_4 2670 private PFN_eglGetCurrentContext _GetCurrentContext; 2671 2672 // EGL_VERSION_1_5 2673 private PFN_eglCreateSync _CreateSync; 2674 private PFN_eglDestroySync _DestroySync; 2675 private PFN_eglClientWaitSync _ClientWaitSync; 2676 private PFN_eglGetSyncAttrib _GetSyncAttrib; 2677 private PFN_eglCreateImage _CreateImage; 2678 private PFN_eglDestroyImage _DestroyImage; 2679 private PFN_eglGetPlatformDisplay _GetPlatformDisplay; 2680 private PFN_eglCreatePlatformWindowSurface _CreatePlatformWindowSurface; 2681 private PFN_eglCreatePlatformPixmapSurface _CreatePlatformPixmapSurface; 2682 private PFN_eglWaitSync _WaitSync; 2683 2684 // EGL_KHR_debug, 2685 private PFN_eglDebugMessageControlKHR _DebugMessageControlKHR; 2686 private PFN_eglQueryDebugKHR _QueryDebugKHR; 2687 private PFN_eglLabelObjectKHR _LabelObjectKHR; 2688 2689 // EGL_KHR_display_reference, 2690 private PFN_eglQueryDisplayAttribKHR _QueryDisplayAttribKHR; 2691 2692 // EGL_KHR_fence_sync, 2693 private PFN_eglCreateSyncKHR _CreateSyncKHR; 2694 private PFN_eglGetSyncAttribKHR _GetSyncAttribKHR; 2695 2696 // EGL_KHR_image, 2697 private PFN_eglCreateImageKHR _CreateImageKHR; 2698 2699 // EGL_KHR_lock_surface, 2700 private PFN_eglLockSurfaceKHR _LockSurfaceKHR; 2701 private PFN_eglUnlockSurfaceKHR _UnlockSurfaceKHR; 2702 2703 // EGL_KHR_lock_surface3, 2704 private PFN_eglQuerySurface64KHR _QuerySurface64KHR; 2705 2706 // EGL_KHR_partial_update, 2707 private PFN_eglSetDamageRegionKHR _SetDamageRegionKHR; 2708 2709 // EGL_KHR_reusable_sync, 2710 private PFN_eglSignalSyncKHR _SignalSyncKHR; 2711 2712 // EGL_KHR_stream, 2713 private PFN_eglCreateStreamKHR _CreateStreamKHR; 2714 private PFN_eglDestroyStreamKHR _DestroyStreamKHR; 2715 private PFN_eglStreamAttribKHR _StreamAttribKHR; 2716 private PFN_eglQueryStreamKHR _QueryStreamKHR; 2717 private PFN_eglQueryStreamu64KHR _QueryStreamu64KHR; 2718 2719 // EGL_KHR_stream_attrib, 2720 private PFN_eglCreateStreamAttribKHR _CreateStreamAttribKHR; 2721 private PFN_eglSetStreamAttribKHR _SetStreamAttribKHR; 2722 private PFN_eglQueryStreamAttribKHR _QueryStreamAttribKHR; 2723 private PFN_eglStreamConsumerAcquireAttribKHR _StreamConsumerAcquireAttribKHR; 2724 private PFN_eglStreamConsumerReleaseAttribKHR _StreamConsumerReleaseAttribKHR; 2725 2726 // EGL_KHR_stream_consumer_gltexture, 2727 private PFN_eglStreamConsumerGLTextureExternalKHR _StreamConsumerGLTextureExternalKHR; 2728 private PFN_eglStreamConsumerAcquireKHR _StreamConsumerAcquireKHR; 2729 private PFN_eglStreamConsumerReleaseKHR _StreamConsumerReleaseKHR; 2730 2731 // EGL_KHR_stream_cross_process_fd, 2732 private PFN_eglGetStreamFileDescriptorKHR _GetStreamFileDescriptorKHR; 2733 private PFN_eglCreateStreamFromFileDescriptorKHR _CreateStreamFromFileDescriptorKHR; 2734 2735 // EGL_KHR_stream_fifo, 2736 private PFN_eglQueryStreamTimeKHR _QueryStreamTimeKHR; 2737 2738 // EGL_KHR_stream_producer_eglsurface, 2739 private PFN_eglCreateStreamProducerSurfaceKHR _CreateStreamProducerSurfaceKHR; 2740 2741 // EGL_KHR_swap_buffers_with_damage, 2742 private PFN_eglSwapBuffersWithDamageKHR _SwapBuffersWithDamageKHR; 2743 2744 // EGL_KHR_wait_sync, 2745 private PFN_eglWaitSyncKHR _WaitSyncKHR; 2746 2747 // EGL_ANDROID_blob_cache, 2748 private PFN_eglSetBlobCacheFuncsANDROID _SetBlobCacheFuncsANDROID; 2749 2750 // EGL_ANDROID_create_native_client_buffer, 2751 private PFN_eglCreateNativeClientBufferANDROID _CreateNativeClientBufferANDROID; 2752 2753 // EGL_ANDROID_get_frame_timestamps, 2754 private PFN_eglGetCompositorTimingSupportedANDROID _GetCompositorTimingSupportedANDROID; 2755 private PFN_eglGetCompositorTimingANDROID _GetCompositorTimingANDROID; 2756 private PFN_eglGetNextFrameIdANDROID _GetNextFrameIdANDROID; 2757 private PFN_eglGetFrameTimestampSupportedANDROID _GetFrameTimestampSupportedANDROID; 2758 private PFN_eglGetFrameTimestampsANDROID _GetFrameTimestampsANDROID; 2759 2760 // EGL_ANDROID_get_native_client_buffer, 2761 private PFN_eglGetNativeClientBufferANDROID _GetNativeClientBufferANDROID; 2762 2763 // EGL_ANDROID_native_fence_sync, 2764 private PFN_eglDupNativeFenceFDANDROID _DupNativeFenceFDANDROID; 2765 2766 // EGL_ANDROID_presentation_time, 2767 private PFN_eglPresentationTimeANDROID _PresentationTimeANDROID; 2768 2769 // EGL_ANGLE_query_surface_pointer, 2770 private PFN_eglQuerySurfacePointerANGLE _QuerySurfacePointerANGLE; 2771 2772 // EGL_EXT_compositor, 2773 private PFN_eglCompositorSetContextListEXT _CompositorSetContextListEXT; 2774 private PFN_eglCompositorSetContextAttributesEXT _CompositorSetContextAttributesEXT; 2775 private PFN_eglCompositorSetWindowListEXT _CompositorSetWindowListEXT; 2776 private PFN_eglCompositorSetWindowAttributesEXT _CompositorSetWindowAttributesEXT; 2777 private PFN_eglCompositorBindTexWindowEXT _CompositorBindTexWindowEXT; 2778 private PFN_eglCompositorSetSizeEXT _CompositorSetSizeEXT; 2779 private PFN_eglCompositorSwapPolicyEXT _CompositorSwapPolicyEXT; 2780 2781 // EGL_EXT_device_base, 2782 private PFN_eglQueryDeviceAttribEXT _QueryDeviceAttribEXT; 2783 private PFN_eglQueryDeviceStringEXT _QueryDeviceStringEXT; 2784 private PFN_eglQueryDevicesEXT _QueryDevicesEXT; 2785 private PFN_eglQueryDisplayAttribEXT _QueryDisplayAttribEXT; 2786 2787 // EGL_EXT_image_dma_buf_import_modifiers, 2788 private PFN_eglQueryDmaBufFormatsEXT _QueryDmaBufFormatsEXT; 2789 private PFN_eglQueryDmaBufModifiersEXT _QueryDmaBufModifiersEXT; 2790 2791 // EGL_EXT_output_base, 2792 private PFN_eglGetOutputLayersEXT _GetOutputLayersEXT; 2793 private PFN_eglGetOutputPortsEXT _GetOutputPortsEXT; 2794 private PFN_eglOutputLayerAttribEXT _OutputLayerAttribEXT; 2795 private PFN_eglQueryOutputLayerAttribEXT _QueryOutputLayerAttribEXT; 2796 private PFN_eglQueryOutputLayerStringEXT _QueryOutputLayerStringEXT; 2797 private PFN_eglOutputPortAttribEXT _OutputPortAttribEXT; 2798 private PFN_eglQueryOutputPortAttribEXT _QueryOutputPortAttribEXT; 2799 private PFN_eglQueryOutputPortStringEXT _QueryOutputPortStringEXT; 2800 2801 // EGL_EXT_platform_base, 2802 private PFN_eglGetPlatformDisplayEXT _GetPlatformDisplayEXT; 2803 private PFN_eglCreatePlatformWindowSurfaceEXT _CreatePlatformWindowSurfaceEXT; 2804 private PFN_eglCreatePlatformPixmapSurfaceEXT _CreatePlatformPixmapSurfaceEXT; 2805 2806 // EGL_EXT_stream_consumer_egloutput, 2807 private PFN_eglStreamConsumerOutputEXT _StreamConsumerOutputEXT; 2808 2809 // EGL_EXT_swap_buffers_with_damage, 2810 private PFN_eglSwapBuffersWithDamageEXT _SwapBuffersWithDamageEXT; 2811 2812 // EGL_HI_clientpixmap, 2813 private PFN_eglCreatePixmapSurfaceHI _CreatePixmapSurfaceHI; 2814 2815 // EGL_MESA_drm_image, 2816 private PFN_eglCreateDRMImageMESA _CreateDRMImageMESA; 2817 private PFN_eglExportDRMImageMESA _ExportDRMImageMESA; 2818 2819 // EGL_MESA_image_dma_buf_export, 2820 private PFN_eglExportDMABUFImageQueryMESA _ExportDMABUFImageQueryMESA; 2821 private PFN_eglExportDMABUFImageMESA _ExportDMABUFImageMESA; 2822 2823 // EGL_NOK_swap_region, 2824 private PFN_eglSwapBuffersRegionNOK _SwapBuffersRegionNOK; 2825 2826 // EGL_NOK_swap_region2, 2827 private PFN_eglSwapBuffersRegion2NOK _SwapBuffersRegion2NOK; 2828 2829 // EGL_NV_native_query, 2830 private PFN_eglQueryNativeDisplayNV _QueryNativeDisplayNV; 2831 private PFN_eglQueryNativeWindowNV _QueryNativeWindowNV; 2832 private PFN_eglQueryNativePixmapNV _QueryNativePixmapNV; 2833 2834 // EGL_NV_post_sub_buffer, 2835 private PFN_eglPostSubBufferNV _PostSubBufferNV; 2836 2837 // EGL_NV_stream_consumer_gltexture_yuv, 2838 private PFN_eglStreamConsumerGLTextureExternalAttribsNV _StreamConsumerGLTextureExternalAttribsNV; 2839 2840 // EGL_NV_stream_metadata, 2841 private PFN_eglQueryDisplayAttribNV _QueryDisplayAttribNV; 2842 private PFN_eglSetStreamMetadataNV _SetStreamMetadataNV; 2843 private PFN_eglQueryStreamMetadataNV _QueryStreamMetadataNV; 2844 2845 // EGL_NV_stream_reset, 2846 private PFN_eglResetStreamNV _ResetStreamNV; 2847 2848 // EGL_NV_stream_sync, 2849 private PFN_eglCreateStreamSyncNV _CreateStreamSyncNV; 2850 2851 // EGL_NV_sync, 2852 private PFN_eglCreateFenceSyncNV _CreateFenceSyncNV; 2853 private PFN_eglDestroySyncNV _DestroySyncNV; 2854 private PFN_eglFenceNV _FenceNV; 2855 private PFN_eglClientWaitSyncNV _ClientWaitSyncNV; 2856 private PFN_eglSignalSyncNV _SignalSyncNV; 2857 private PFN_eglGetSyncAttribNV _GetSyncAttribNV; 2858 2859 // EGL_NV_system_time, 2860 private PFN_eglGetSystemTimeFrequencyNV _GetSystemTimeFrequencyNV; 2861 private PFN_eglGetSystemTimeNV _GetSystemTimeNV; 2862 }