├── LICENSE ├── CHANGELOG.md ├── lib └── opengl_es_bindings.dart ├── README.md ├── .metadata ├── eglgen.yaml ├── openGLgen.yaml ├── c_headers ├── GLES │ ├── gl3platform.h │ └── khrplatform.h └── EGL │ ├── eglplatform.h │ ├── eglext_angle.h │ ├── egl.h │ ├── Platform.h │ └── eglext.h ├── .gitignore ├── pubspec.yaml └── pubspec.lock /LICENSE: -------------------------------------------------------------------------------- 1 | MIT -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [0.0.1] - TODO: Add release date. 2 | 3 | * TODO: Describe initial release. 4 | -------------------------------------------------------------------------------- /lib/opengl_es_bindings.dart: -------------------------------------------------------------------------------- 1 | library opengl_es_bindings; 2 | 3 | export 'package:opengl_es_bindings/src/egl_bindings.dart'; 4 | export 'package:opengl_es_bindings/src/gles_bindings.dart'; 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # opengl_es_bindings 2 | 3 | This package implements the raw C FFI bindings for OpenGL ES 3.0 and extensions. 4 | It can't be used on it's own but needs to be used by a platform plugin that can load the needed dynamic library -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 655cd1e2a6b359973043bcb0212e94d9c0d45fef 8 | channel: master 9 | 10 | project_type: package 11 | -------------------------------------------------------------------------------- /eglgen.yaml: -------------------------------------------------------------------------------- 1 | name: LibEGL 2 | description: 'https://www.khronos.org/registry/OpenGL/index_es.php#headers3' 3 | output: 'lib/src/egl_bindings.dart' 4 | headers: 5 | entry-points: 6 | - 'c_headers/EGL/**.h' 7 | # - 'include/gl32ext.h' 8 | # - 'include/gl32ext.h' 9 | # functions: 10 | # include: 11 | # - 'wgpu_.*' 12 | # structs: 13 | # include: 14 | # - 'WGPU.*' 15 | # enums: 16 | # include: 17 | # - 'WGPU.*' 18 | # macros: 19 | # include: 20 | # - 'WGPU.*' -------------------------------------------------------------------------------- /openGLgen.yaml: -------------------------------------------------------------------------------- 1 | name: LibOpenGLES 2 | description: 'https://www.khronos.org/registry/OpenGL/index_es.php#headers3' 3 | output: 'lib/src/gles_bindings.dart' 4 | headers: 5 | entry-points: 6 | - 'c_headers/GLES/**.h' 7 | functions: 8 | exclude: 9 | - '__va_start*' 10 | - '__security_init_cookie*' 11 | - '__security_check_cookie*' 12 | # include: 13 | # - 'wgpu_.*' 14 | # structs: 15 | # include: 16 | # - 'WGPU.*' 17 | # enums: 18 | # include: 19 | # - 'WGPU.*' 20 | # macros: 21 | # include: 22 | # - 'WGPU.*' -------------------------------------------------------------------------------- /c_headers/GLES/gl3platform.h: -------------------------------------------------------------------------------- 1 | #ifndef __gl3platform_h_ 2 | #define __gl3platform_h_ 3 | 4 | /* 5 | ** Copyright 2017-2020 The Khronos Group Inc. 6 | ** SPDX-License-Identifier: Apache-2.0 7 | */ 8 | 9 | /* Platform-specific types and definitions for OpenGL ES 3.X gl3.h 10 | * 11 | * Adopters may modify khrplatform.h and this file to suit their platform. 12 | * Please contribute modifications back to Khronos as pull requests on the 13 | * public github repository: 14 | * https://github.com/KhronosGroup/OpenGL-Registry 15 | */ 16 | 17 | #include "khrplatform.h" 18 | 19 | #ifndef GL_APICALL 20 | #define GL_APICALL KHRONOS_APICALL 21 | #endif 22 | 23 | #ifndef GL_APIENTRY 24 | #define GL_APIENTRY KHRONOS_APIENTRY 25 | #endif 26 | 27 | #endif /* __gl3platform_h_ */ 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | .dart_tool/ 26 | .flutter-plugins 27 | .flutter-plugins-dependencies 28 | .packages 29 | .pub-cache/ 30 | .pub/ 31 | build/ 32 | 33 | # Android related 34 | **/android/**/gradle-wrapper.jar 35 | **/android/.gradle 36 | **/android/captures/ 37 | **/android/gradlew 38 | **/android/gradlew.bat 39 | **/android/local.properties 40 | **/android/**/GeneratedPluginRegistrant.java 41 | 42 | # iOS/XCode related 43 | **/ios/**/*.mode1v3 44 | **/ios/**/*.mode2v3 45 | **/ios/**/*.moved-aside 46 | **/ios/**/*.pbxuser 47 | **/ios/**/*.perspectivev3 48 | **/ios/**/*sync/ 49 | **/ios/**/.sconsign.dblite 50 | **/ios/**/.tags* 51 | **/ios/**/.vagrant/ 52 | **/ios/**/DerivedData/ 53 | **/ios/**/Icon? 54 | **/ios/**/Pods/ 55 | **/ios/**/.symlinks/ 56 | **/ios/**/profile 57 | **/ios/**/xcuserdata 58 | **/ios/.generated/ 59 | **/ios/Flutter/App.framework 60 | **/ios/Flutter/Flutter.framework 61 | **/ios/Flutter/Flutter.podspec 62 | **/ios/Flutter/Generated.xcconfig 63 | **/ios/Flutter/app.flx 64 | **/ios/Flutter/app.zip 65 | **/ios/Flutter/flutter_assets/ 66 | **/ios/Flutter/flutter_export_environment.sh 67 | **/ios/ServiceDefinitions.json 68 | **/ios/Runner/GeneratedPluginRegistrant.* 69 | 70 | # Exceptions to above rules. 71 | !**/ios/**/default.mode1v3 72 | !**/ios/**/default.mode2v3 73 | !**/ios/**/default.pbxuser 74 | !**/ios/**/default.perspectivev3 75 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: opengl_es_bindings 2 | description: A new Flutter package project. 3 | version: 1.0.0-pre 4 | author: Thomas Burkhart 5 | homepage: https://github.com/FlutterGL/opengl_es_bindings 6 | 7 | environment: 8 | sdk: ">=2.12.0-0 <3.0.0" 9 | 10 | dependencies: 11 | ffi: ^0.2.0-nullsafety.1 12 | 13 | dev_dependencies: 14 | ffigen: ^2.0.0-null-safety.1 15 | lint: ^1.5.1 16 | test: ^1.16.0-nullsafety.13 17 | 18 | # For information on the generic Dart part of this file, see the 19 | # following page: https://dart.dev/tools/pub/pubspec 20 | 21 | # The following section is specific to Flutter. 22 | flutter: 23 | 24 | # To add assets to your package, add an assets section, like this: 25 | # assets: 26 | # - images/a_dot_burr.jpeg 27 | # - images/a_dot_ham.jpeg 28 | # 29 | # For details regarding assets in packages, see 30 | # https://flutter.dev/assets-and-images/#from-packages 31 | # 32 | # An image asset can refer to one or more resolution-specific "variants", see 33 | # https://flutter.dev/assets-and-images/#resolution-aware. 34 | 35 | # To add custom fonts to your package, add a fonts section here, 36 | # in this "flutter" section. Each entry in this list should have a 37 | # "family" key with the font family name, and a "fonts" key with a 38 | # list giving the asset and other descriptors for the font. For 39 | # example: 40 | # fonts: 41 | # - family: Schyler 42 | # fonts: 43 | # - asset: fonts/Schyler-Regular.ttf 44 | # - asset: fonts/Schyler-Italic.ttf 45 | # style: italic 46 | # - family: Trajan Pro 47 | # fonts: 48 | # - asset: fonts/TrajanPro.ttf 49 | # - asset: fonts/TrajanPro_Bold.ttf 50 | # weight: 700 51 | # 52 | # For details regarding fonts in packages, see 53 | # https://flutter.dev/custom-fonts/#from-packages 54 | -------------------------------------------------------------------------------- /c_headers/EGL/eglplatform.h: -------------------------------------------------------------------------------- 1 | #ifndef __eglplatform_h_ 2 | #define __eglplatform_h_ 3 | 4 | /* 5 | ** Copyright (c) 2007-2016 The Khronos Group Inc. 6 | ** 7 | ** Permission is hereby granted, free of charge, to any person obtaining a 8 | ** copy of this software and/or associated documentation files (the 9 | ** "Materials"), to deal in the Materials without restriction, including 10 | ** without limitation the rights to use, copy, modify, merge, publish, 11 | ** distribute, sublicense, and/or sell copies of the Materials, and to 12 | ** permit persons to whom the Materials are furnished to do so, subject to 13 | ** the following conditions: 14 | ** 15 | ** The above copyright notice and this permission notice shall be included 16 | ** in all copies or substantial portions of the Materials. 17 | ** 18 | ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 21 | ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23 | ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24 | ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 25 | */ 26 | 27 | /* Platform-specific types and definitions for egl.h 28 | * $Revision: 30994 $ on $Date: 2015-04-30 13:36:48 -0700 (Thu, 30 Apr 2015) $ 29 | * 30 | * Adopters may modify khrplatform.h and this file to suit their platform. 31 | * You are encouraged to submit all modifications to the Khronos group so that 32 | * they can be included in future versions of this file. Please submit changes 33 | * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) 34 | * by filing a bug against product "EGL" component "Registry". 35 | */ 36 | 37 | #include 38 | 39 | /* Macros used in EGL function prototype declarations. 40 | * 41 | * EGL functions should be prototyped as: 42 | * 43 | * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); 44 | * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); 45 | * 46 | * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h 47 | */ 48 | 49 | #ifndef EGLAPI 50 | #define EGLAPI KHRONOS_APICALL 51 | #endif 52 | 53 | #ifndef EGLAPIENTRY 54 | #define EGLAPIENTRY KHRONOS_APIENTRY 55 | #endif 56 | #define EGLAPIENTRYP EGLAPIENTRY* 57 | 58 | /* The types NativeDisplayType, NativeWindowType, and NativePixmapType 59 | * are aliases of window-system-dependent types, such as X Display * or 60 | * Windows Device Context. They must be defined in platform-specific 61 | * code below. The EGL-prefixed versions of Native*Type are the same 62 | * types, renamed in EGL 1.3 so all types in the API start with "EGL". 63 | * 64 | * Khronos STRONGLY RECOMMENDS that you use the default definitions 65 | * provided below, since these changes affect both binary and source 66 | * portability of applications using EGL running on different EGL 67 | * implementations. 68 | */ 69 | 70 | #if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ 71 | #ifndef WIN32_LEAN_AND_MEAN 72 | #define WIN32_LEAN_AND_MEAN 1 73 | #endif 74 | #include 75 | 76 | typedef HDC EGLNativeDisplayType; 77 | typedef HBITMAP EGLNativePixmapType; 78 | typedef HWND EGLNativeWindowType; 79 | 80 | #elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ 81 | 82 | typedef int EGLNativeDisplayType; 83 | typedef void *EGLNativeWindowType; 84 | typedef void *EGLNativePixmapType; 85 | 86 | #elif defined(WL_EGL_PLATFORM) 87 | 88 | typedef struct wl_display *EGLNativeDisplayType; 89 | typedef struct wl_egl_pixmap *EGLNativePixmapType; 90 | typedef struct wl_egl_window *EGLNativeWindowType; 91 | 92 | #elif defined(__GBM__) 93 | 94 | typedef struct gbm_device *EGLNativeDisplayType; 95 | typedef struct gbm_bo *EGLNativePixmapType; 96 | typedef void *EGLNativeWindowType; 97 | 98 | #elif defined(__ANDROID__) || defined(ANDROID) 99 | 100 | struct ANativeWindow; 101 | struct egl_native_pixmap_t; 102 | 103 | typedef struct ANativeWindow* EGLNativeWindowType; 104 | typedef struct egl_native_pixmap_t* EGLNativePixmapType; 105 | typedef void* EGLNativeDisplayType; 106 | 107 | #elif defined(USE_OZONE) 108 | 109 | typedef intptr_t EGLNativeDisplayType; 110 | typedef intptr_t EGLNativeWindowType; 111 | typedef intptr_t EGLNativePixmapType; 112 | 113 | #elif defined(__unix__) || defined(USE_X11) 114 | 115 | /* X11 (tentative) */ 116 | #include 117 | #include 118 | 119 | typedef Display *EGLNativeDisplayType; 120 | typedef Pixmap EGLNativePixmapType; 121 | typedef Window EGLNativeWindowType; 122 | 123 | #elif defined(__APPLE__) 124 | 125 | typedef int EGLNativeDisplayType; 126 | typedef void *EGLNativeWindowType; 127 | typedef void *EGLNativePixmapType; 128 | 129 | #elif defined(__HAIKU__) 130 | 131 | #include 132 | 133 | typedef void *EGLNativeDisplayType; 134 | typedef khronos_uintptr_t EGLNativePixmapType; 135 | typedef khronos_uintptr_t EGLNativeWindowType; 136 | 137 | #else 138 | #error "Platform not recognized" 139 | #endif 140 | 141 | /* EGL 1.2 types, renamed for consistency in EGL 1.3 */ 142 | typedef EGLNativeDisplayType NativeDisplayType; 143 | typedef EGLNativePixmapType NativePixmapType; 144 | typedef EGLNativeWindowType NativeWindowType; 145 | 146 | 147 | /* Define EGLint. This must be a signed integral type large enough to contain 148 | * all legal attribute names and values passed into and out of EGL, whether 149 | * their type is boolean, bitmask, enumerant (symbolic constant), integer, 150 | * handle, or other. While in general a 32-bit integer will suffice, if 151 | * handles are 64 bit types, then EGLint should be defined as a signed 64-bit 152 | * integer type. 153 | */ 154 | typedef khronos_int32_t EGLint; 155 | 156 | 157 | /* C++ / C typecast macros for special EGL handle values */ 158 | #if defined(__cplusplus) 159 | #define EGL_CAST(type, value) (static_cast(value)) 160 | #else 161 | #define EGL_CAST(type, value) ((type) (value)) 162 | #endif 163 | 164 | #endif /* __eglplatform_h */ 165 | -------------------------------------------------------------------------------- /c_headers/EGL/eglext_angle.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2017 The ANGLE Project Authors. All rights reserved. 3 | // Use of this source code is governed by a BSD-style license that can be 4 | // found in the LICENSE file. 5 | // 6 | // eglext_angle.h: ANGLE modifications to the eglext.h header file. 7 | // Currently we don't include this file directly, we patch eglext.h 8 | // to include it implicitly so it is visible throughout our code. 9 | 10 | #ifndef INCLUDE_EGL_EGLEXT_ANGLE_ 11 | #define INCLUDE_EGL_EGLEXT_ANGLE_ 12 | 13 | // clang-format off 14 | 15 | #ifndef EGL_ANGLE_robust_resource_initialization 16 | #define EGL_ANGLE_robust_resource_initialization 1 17 | #define EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE 0x3453 18 | #endif /* EGL_ANGLE_robust_resource_initialization */ 19 | 20 | #ifndef EGL_ANGLE_keyed_mutex 21 | #define EGL_ANGLE_keyed_mutex 1 22 | #define EGL_DXGI_KEYED_MUTEX_ANGLE 0x33A2 23 | #endif /* EGL_ANGLE_keyed_mutex */ 24 | 25 | #ifndef EGL_ANGLE_d3d_texture_client_buffer 26 | #define EGL_ANGLE_d3d_texture_client_buffer 1 27 | #define EGL_D3D_TEXTURE_ANGLE 0x33A3 28 | #endif /* EGL_ANGLE_d3d_texture_client_buffer */ 29 | 30 | #ifndef EGL_ANGLE_software_display 31 | #define EGL_ANGLE_software_display 1 32 | #define EGL_SOFTWARE_DISPLAY_ANGLE ((EGLNativeDisplayType)-1) 33 | #endif /* EGL_ANGLE_software_display */ 34 | 35 | #ifndef EGL_ANGLE_direct3d_display 36 | #define EGL_ANGLE_direct3d_display 1 37 | #define EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ((EGLNativeDisplayType)-2) 38 | #define EGL_D3D11_ONLY_DISPLAY_ANGLE ((EGLNativeDisplayType)-3) 39 | #endif /* EGL_ANGLE_direct3d_display */ 40 | 41 | #ifndef EGL_ANGLE_direct_composition 42 | #define EGL_ANGLE_direct_composition 1 43 | #define EGL_DIRECT_COMPOSITION_ANGLE 0x33A5 44 | #endif /* EGL_ANGLE_direct_composition */ 45 | 46 | #ifndef EGL_ANGLE_platform_angle 47 | #define EGL_ANGLE_platform_angle 1 48 | #define EGL_PLATFORM_ANGLE_ANGLE 0x3202 49 | #define EGL_PLATFORM_ANGLE_TYPE_ANGLE 0x3203 50 | #define EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE 0x3204 51 | #define EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE 0x3205 52 | #define EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE 0x3206 53 | #define EGL_PLATFORM_ANGLE_DEBUG_LAYERS_ENABLED_ANGLE 0x3451 54 | #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE 0x3209 55 | #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE 0x320A 56 | #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE 0x345E 57 | #endif /* EGL_ANGLE_platform_angle */ 58 | 59 | #ifndef EGL_ANGLE_platform_angle_d3d 60 | #define EGL_ANGLE_platform_angle_d3d 1 61 | #define EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE 0x3207 62 | #define EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE 0x3208 63 | #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE 0x320B 64 | #define EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_REFERENCE_ANGLE 0x320C 65 | #define EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE 0x320F 66 | #endif /* EGL_ANGLE_platform_angle_d3d */ 67 | 68 | #ifndef EGL_ANGLE_platform_angle_opengl 69 | #define EGL_ANGLE_platform_angle_opengl 1 70 | #define EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE 0x320D 71 | #define EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE 0x320E 72 | #define EGL_PLATFORM_ANGLE_EGL_HANDLE_ANGLE 0x3480 73 | #endif /* EGL_ANGLE_platform_angle_opengl */ 74 | 75 | #ifndef EGL_ANGLE_platform_angle_null 76 | #define EGL_ANGLE_platform_angle_null 1 77 | #define EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE 0x33AE 78 | #endif /* EGL_ANGLE_platform_angle_null */ 79 | 80 | #ifndef EGL_ANGLE_platform_angle_vulkan 81 | #define EGL_ANGLE_platform_angle_vulkan 1 82 | #define EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE 0x3450 83 | #endif /* EGL_ANGLE_platform_angle_vulkan */ 84 | 85 | #ifndef EGL_ANGLE_platform_angle_context_virtualization 86 | #define EGL_ANGLE_platform_angle_context_virtualization 1 87 | #define EGL_PLATFORM_ANGLE_CONTEXT_VIRTUALIZATION_ANGLE 0x3481 88 | #endif /* EGL_ANGLE_platform_angle_context_virtualization */ 89 | 90 | #ifndef EGL_ANGLE_x11_visual 91 | #define EGL_ANGLE_x11_visual 92 | #define EGL_X11_VISUAL_ID_ANGLE 0x33A3 93 | #endif /* EGL_ANGLE_x11_visual */ 94 | 95 | #ifndef EGL_ANGLE_flexible_surface_compatibility 96 | #define EGL_ANGLE_flexible_surface_compatibility 1 97 | #define EGL_FLEXIBLE_SURFACE_COMPATIBILITY_SUPPORTED_ANGLE 0x33A6 98 | #endif /* EGL_ANGLE_flexible_surface_compatibility */ 99 | 100 | #ifndef EGL_ANGLE_surface_orientation 101 | #define EGL_ANGLE_surface_orientation 102 | #define EGL_OPTIMAL_SURFACE_ORIENTATION_ANGLE 0x33A7 103 | #define EGL_SURFACE_ORIENTATION_ANGLE 0x33A8 104 | #define EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE 0x0001 105 | #define EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE 0x0002 106 | #endif /* EGL_ANGLE_surface_orientation */ 107 | 108 | #ifndef EGL_ANGLE_experimental_present_path 109 | #define EGL_ANGLE_experimental_present_path 110 | #define EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE 0x33A4 111 | #define EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE 0x33A9 112 | #define EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE 0x33AA 113 | #endif /* EGL_ANGLE_experimental_present_path */ 114 | 115 | #ifndef EGL_ANGLE_stream_producer_d3d_texture 116 | #define EGL_ANGLE_stream_producer_d3d_texture 117 | #define EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE 0x33AB 118 | typedef EGLBoolean(EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERD3DTEXTUREANGLEPROC)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); 119 | typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMPOSTD3DTEXTUREANGLEPROC)(EGLDisplay dpy, EGLStreamKHR stream, void *texture, const EGLAttrib *attrib_list); 120 | #ifdef EGL_EGLEXT_PROTOTYPES 121 | EGLAPI EGLBoolean EGLAPIENTRY eglCreateStreamProducerD3DTextureANGLE(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); 122 | EGLAPI EGLBoolean EGLAPIENTRY eglStreamPostD3DTextureANGLE(EGLDisplay dpy, EGLStreamKHR stream, void *texture, const EGLAttrib *attrib_list); 123 | #endif 124 | #endif /* EGL_ANGLE_stream_producer_d3d_texture */ 125 | 126 | #ifndef EGL_ANGLE_create_context_webgl_compatibility 127 | #define EGL_ANGLE_create_context_webgl_compatibility 1 128 | #define EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE 0x33AC 129 | #endif /* EGL_ANGLE_create_context_webgl_compatibility */ 130 | 131 | #ifndef EGL_ANGLE_display_texture_share_group 132 | #define EGL_ANGLE_display_texture_share_group 1 133 | #define EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE 0x33AF 134 | #endif /* EGL_ANGLE_display_texture_share_group */ 135 | 136 | #ifndef EGL_CHROMIUM_create_context_bind_generates_resource 137 | #define EGL_CHROMIUM_create_context_bind_generates_resource 1 138 | #define EGL_CONTEXT_BIND_GENERATES_RESOURCE_CHROMIUM 0x33AD 139 | #endif /* EGL_CHROMIUM_create_context_bind_generates_resource */ 140 | 141 | #ifndef EGL_ANGLE_create_context_client_arrays 142 | #define EGL_ANGLE_create_context_client_arrays 1 143 | #define EGL_CONTEXT_CLIENT_ARRAYS_ENABLED_ANGLE 0x3452 144 | #endif /* EGL_ANGLE_create_context_client_arrays */ 145 | 146 | #ifndef EGL_ANGLE_device_creation 147 | #define EGL_ANGLE_device_creation 1 148 | typedef EGLDeviceEXT(EGLAPIENTRYP PFNEGLCREATEDEVICEANGLEPROC) (EGLint device_type, void *native_device, const EGLAttrib *attrib_list); 149 | typedef EGLBoolean(EGLAPIENTRYP PFNEGLRELEASEDEVICEANGLEPROC) (EGLDeviceEXT device); 150 | #ifdef EGL_EGLEXT_PROTOTYPES 151 | EGLAPI EGLDeviceEXT EGLAPIENTRY eglCreateDeviceANGLE(EGLint device_type, void *native_device, const EGLAttrib *attrib_list); 152 | EGLAPI EGLBoolean EGLAPIENTRY eglReleaseDeviceANGLE(EGLDeviceEXT device); 153 | #endif 154 | #endif /* EGL_ANGLE_device_creation */ 155 | 156 | #ifndef EGL_ANGLE_program_cache_control 157 | #define EGL_ANGLE_program_cache_control 1 158 | #define EGL_PROGRAM_CACHE_SIZE_ANGLE 0x3455 159 | #define EGL_PROGRAM_CACHE_KEY_LENGTH_ANGLE 0x3456 160 | #define EGL_PROGRAM_CACHE_RESIZE_ANGLE 0x3457 161 | #define EGL_PROGRAM_CACHE_TRIM_ANGLE 0x3458 162 | #define EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE 0x3459 163 | typedef EGLint (EGLAPIENTRYP PFNEGLPROGRAMCACHEGETATTRIBANGLEPROC) (EGLDisplay dpy, EGLenum attrib); 164 | typedef void (EGLAPIENTRYP PFNEGLPROGRAMCACHEQUERYANGLEPROC) (EGLDisplay dpy, EGLint index, void *key, EGLint *keysize, void *binary, EGLint *binarysize); 165 | typedef void (EGLAPIENTRYP PFNEGPROGRAMCACHELPOPULATEANGLEPROC) (EGLDisplay dpy, const void *key, EGLint keysize, const void *binary, EGLint binarysize); 166 | typedef EGLint (EGLAPIENTRYP PFNEGLPROGRAMCACHERESIZEANGLEPROC) (EGLDisplay dpy, EGLint limit, EGLenum mode); 167 | #ifdef EGL_EGLEXT_PROTOTYPES 168 | EGLAPI EGLint EGLAPIENTRY eglProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib); 169 | EGLAPI void EGLAPIENTRY eglProgramCacheQueryANGLE(EGLDisplay dpy, EGLint index, void *key, EGLint *keysize, void *binary, EGLint *binarysize); 170 | EGLAPI void EGLAPIENTRY eglProgramCachePopulateANGLE(EGLDisplay dpy, const void *key, EGLint keysize, const void *binary, EGLint binarysize); 171 | EGLAPI EGLint EGLAPIENTRY eglProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGLenum mode); 172 | #endif 173 | #endif /* EGL_ANGLE_program_cache_control */ 174 | 175 | #ifndef EGL_ANGLE_iosurface_client_buffer 176 | #define EGL_ANGLE_iosurface_client_buffer 1 177 | #define EGL_IOSURFACE_ANGLE 0x3454 178 | #define EGL_IOSURFACE_PLANE_ANGLE 0x345A 179 | #define EGL_TEXTURE_RECTANGLE_ANGLE 0x345B 180 | #define EGL_TEXTURE_TYPE_ANGLE 0x345C 181 | #define EGL_TEXTURE_INTERNAL_FORMAT_ANGLE 0x345D 182 | #endif /* EGL_ANGLE_iosurface_client_buffer */ 183 | 184 | #ifndef EGL_ANGLE_create_context_extensions_enabled 185 | #define EGL_ANGLE_create_context_extensions_enabled 1 186 | #define EGL_EXTENSIONS_ENABLED_ANGLE 0x345F 187 | #endif /* EGL_ANGLE_create_context_extensions_enabled */ 188 | 189 | // clang-format on 190 | 191 | #endif // INCLUDE_EGL_EGLEXT_ANGLE_ 192 | -------------------------------------------------------------------------------- /pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | _fe_analyzer_shared: 5 | dependency: transitive 6 | description: 7 | name: _fe_analyzer_shared 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "14.0.0" 11 | analyzer: 12 | dependency: transitive 13 | description: 14 | name: analyzer 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "0.41.2" 18 | args: 19 | dependency: transitive 20 | description: 21 | name: args 22 | url: "https://pub.dartlang.org" 23 | source: hosted 24 | version: "1.6.0" 25 | async: 26 | dependency: transitive 27 | description: 28 | name: async 29 | url: "https://pub.dartlang.org" 30 | source: hosted 31 | version: "2.5.0" 32 | boolean_selector: 33 | dependency: transitive 34 | description: 35 | name: boolean_selector 36 | url: "https://pub.dartlang.org" 37 | source: hosted 38 | version: "2.1.0" 39 | charcode: 40 | dependency: transitive 41 | description: 42 | name: charcode 43 | url: "https://pub.dartlang.org" 44 | source: hosted 45 | version: "1.2.0" 46 | cli_util: 47 | dependency: transitive 48 | description: 49 | name: cli_util 50 | url: "https://pub.dartlang.org" 51 | source: hosted 52 | version: "0.2.0" 53 | clock: 54 | dependency: transitive 55 | description: 56 | name: clock 57 | url: "https://pub.dartlang.org" 58 | source: hosted 59 | version: "1.1.0" 60 | collection: 61 | dependency: transitive 62 | description: 63 | name: collection 64 | url: "https://pub.dartlang.org" 65 | source: hosted 66 | version: "1.15.0" 67 | convert: 68 | dependency: transitive 69 | description: 70 | name: convert 71 | url: "https://pub.dartlang.org" 72 | source: hosted 73 | version: "3.0.0" 74 | coverage: 75 | dependency: transitive 76 | description: 77 | name: coverage 78 | url: "https://pub.dartlang.org" 79 | source: hosted 80 | version: "0.15.2" 81 | crypto: 82 | dependency: transitive 83 | description: 84 | name: crypto 85 | url: "https://pub.dartlang.org" 86 | source: hosted 87 | version: "3.0.0" 88 | ffi: 89 | dependency: "direct main" 90 | description: 91 | name: ffi 92 | url: "https://pub.dartlang.org" 93 | source: hosted 94 | version: "0.2.0-nullsafety.1" 95 | ffigen: 96 | dependency: "direct dev" 97 | description: 98 | name: ffigen 99 | url: "https://pub.dartlang.org" 100 | source: hosted 101 | version: "2.0.0-nullsafety.1" 102 | file: 103 | dependency: transitive 104 | description: 105 | name: file 106 | url: "https://pub.dartlang.org" 107 | source: hosted 108 | version: "5.2.1" 109 | glob: 110 | dependency: transitive 111 | description: 112 | name: glob 113 | url: "https://pub.dartlang.org" 114 | source: hosted 115 | version: "1.2.0" 116 | http_multi_server: 117 | dependency: transitive 118 | description: 119 | name: http_multi_server 120 | url: "https://pub.dartlang.org" 121 | source: hosted 122 | version: "2.2.0" 123 | http_parser: 124 | dependency: transitive 125 | description: 126 | name: http_parser 127 | url: "https://pub.dartlang.org" 128 | source: hosted 129 | version: "4.0.0" 130 | intl: 131 | dependency: transitive 132 | description: 133 | name: intl 134 | url: "https://pub.dartlang.org" 135 | source: hosted 136 | version: "0.17.0" 137 | io: 138 | dependency: transitive 139 | description: 140 | name: io 141 | url: "https://pub.dartlang.org" 142 | source: hosted 143 | version: "0.3.4" 144 | js: 145 | dependency: transitive 146 | description: 147 | name: js 148 | url: "https://pub.dartlang.org" 149 | source: hosted 150 | version: "0.6.3" 151 | lint: 152 | dependency: "direct dev" 153 | description: 154 | name: lint 155 | url: "https://pub.dartlang.org" 156 | source: hosted 157 | version: "1.5.1" 158 | logging: 159 | dependency: transitive 160 | description: 161 | name: logging 162 | url: "https://pub.dartlang.org" 163 | source: hosted 164 | version: "0.11.4" 165 | matcher: 166 | dependency: transitive 167 | description: 168 | name: matcher 169 | url: "https://pub.dartlang.org" 170 | source: hosted 171 | version: "0.12.10" 172 | meta: 173 | dependency: transitive 174 | description: 175 | name: meta 176 | url: "https://pub.dartlang.org" 177 | source: hosted 178 | version: "1.3.0" 179 | mime: 180 | dependency: transitive 181 | description: 182 | name: mime 183 | url: "https://pub.dartlang.org" 184 | source: hosted 185 | version: "1.0.0" 186 | node_interop: 187 | dependency: transitive 188 | description: 189 | name: node_interop 190 | url: "https://pub.dartlang.org" 191 | source: hosted 192 | version: "1.2.1" 193 | node_io: 194 | dependency: transitive 195 | description: 196 | name: node_io 197 | url: "https://pub.dartlang.org" 198 | source: hosted 199 | version: "1.2.0" 200 | node_preamble: 201 | dependency: transitive 202 | description: 203 | name: node_preamble 204 | url: "https://pub.dartlang.org" 205 | source: hosted 206 | version: "1.4.13" 207 | package_config: 208 | dependency: transitive 209 | description: 210 | name: package_config 211 | url: "https://pub.dartlang.org" 212 | source: hosted 213 | version: "1.9.3" 214 | path: 215 | dependency: transitive 216 | description: 217 | name: path 218 | url: "https://pub.dartlang.org" 219 | source: hosted 220 | version: "1.8.0" 221 | pedantic: 222 | dependency: transitive 223 | description: 224 | name: pedantic 225 | url: "https://pub.dartlang.org" 226 | source: hosted 227 | version: "1.10.0" 228 | pool: 229 | dependency: transitive 230 | description: 231 | name: pool 232 | url: "https://pub.dartlang.org" 233 | source: hosted 234 | version: "1.5.0" 235 | pub_semver: 236 | dependency: transitive 237 | description: 238 | name: pub_semver 239 | url: "https://pub.dartlang.org" 240 | source: hosted 241 | version: "1.4.4" 242 | quiver: 243 | dependency: transitive 244 | description: 245 | name: quiver 246 | url: "https://pub.dartlang.org" 247 | source: hosted 248 | version: "3.0.0-nullsafety.3" 249 | shelf: 250 | dependency: transitive 251 | description: 252 | name: shelf 253 | url: "https://pub.dartlang.org" 254 | source: hosted 255 | version: "1.0.0" 256 | shelf_packages_handler: 257 | dependency: transitive 258 | description: 259 | name: shelf_packages_handler 260 | url: "https://pub.dartlang.org" 261 | source: hosted 262 | version: "2.0.1" 263 | shelf_static: 264 | dependency: transitive 265 | description: 266 | name: shelf_static 267 | url: "https://pub.dartlang.org" 268 | source: hosted 269 | version: "0.2.9+2" 270 | shelf_web_socket: 271 | dependency: transitive 272 | description: 273 | name: shelf_web_socket 274 | url: "https://pub.dartlang.org" 275 | source: hosted 276 | version: "0.2.4" 277 | source_map_stack_trace: 278 | dependency: transitive 279 | description: 280 | name: source_map_stack_trace 281 | url: "https://pub.dartlang.org" 282 | source: hosted 283 | version: "2.1.0" 284 | source_maps: 285 | dependency: transitive 286 | description: 287 | name: source_maps 288 | url: "https://pub.dartlang.org" 289 | source: hosted 290 | version: "0.10.10" 291 | source_span: 292 | dependency: transitive 293 | description: 294 | name: source_span 295 | url: "https://pub.dartlang.org" 296 | source: hosted 297 | version: "1.8.1" 298 | stack_trace: 299 | dependency: transitive 300 | description: 301 | name: stack_trace 302 | url: "https://pub.dartlang.org" 303 | source: hosted 304 | version: "1.10.0" 305 | stream_channel: 306 | dependency: transitive 307 | description: 308 | name: stream_channel 309 | url: "https://pub.dartlang.org" 310 | source: hosted 311 | version: "2.1.0" 312 | string_scanner: 313 | dependency: transitive 314 | description: 315 | name: string_scanner 316 | url: "https://pub.dartlang.org" 317 | source: hosted 318 | version: "1.1.0" 319 | term_glyph: 320 | dependency: transitive 321 | description: 322 | name: term_glyph 323 | url: "https://pub.dartlang.org" 324 | source: hosted 325 | version: "1.2.0" 326 | test: 327 | dependency: "direct dev" 328 | description: 329 | name: test 330 | url: "https://pub.dartlang.org" 331 | source: hosted 332 | version: "1.16.0" 333 | test_api: 334 | dependency: transitive 335 | description: 336 | name: test_api 337 | url: "https://pub.dartlang.org" 338 | source: hosted 339 | version: "0.2.19" 340 | test_core: 341 | dependency: transitive 342 | description: 343 | name: test_core 344 | url: "https://pub.dartlang.org" 345 | source: hosted 346 | version: "0.3.12" 347 | typed_data: 348 | dependency: transitive 349 | description: 350 | name: typed_data 351 | url: "https://pub.dartlang.org" 352 | source: hosted 353 | version: "1.3.0" 354 | vm_service: 355 | dependency: transitive 356 | description: 357 | name: vm_service 358 | url: "https://pub.dartlang.org" 359 | source: hosted 360 | version: "6.0.1" 361 | watcher: 362 | dependency: transitive 363 | description: 364 | name: watcher 365 | url: "https://pub.dartlang.org" 366 | source: hosted 367 | version: "1.0.0" 368 | web_socket_channel: 369 | dependency: transitive 370 | description: 371 | name: web_socket_channel 372 | url: "https://pub.dartlang.org" 373 | source: hosted 374 | version: "1.2.0" 375 | webkit_inspection_protocol: 376 | dependency: transitive 377 | description: 378 | name: webkit_inspection_protocol 379 | url: "https://pub.dartlang.org" 380 | source: hosted 381 | version: "0.7.5" 382 | yaml: 383 | dependency: transitive 384 | description: 385 | name: yaml 386 | url: "https://pub.dartlang.org" 387 | source: hosted 388 | version: "3.0.0" 389 | sdks: 390 | dart: ">=2.12.0-29.10.beta <3.0.0" 391 | -------------------------------------------------------------------------------- /c_headers/GLES/khrplatform.h: -------------------------------------------------------------------------------- 1 | #ifndef __khrplatform_h_ 2 | #define __khrplatform_h_ 3 | 4 | /* 5 | ** Copyright (c) 2008-2018 The Khronos Group Inc. 6 | ** 7 | ** Permission is hereby granted, free of charge, to any person obtaining a 8 | ** copy of this software and/or associated documentation files (the 9 | ** "Materials"), to deal in the Materials without restriction, including 10 | ** without limitation the rights to use, copy, modify, merge, publish, 11 | ** distribute, sublicense, and/or sell copies of the Materials, and to 12 | ** permit persons to whom the Materials are furnished to do so, subject to 13 | ** the following conditions: 14 | ** 15 | ** The above copyright notice and this permission notice shall be included 16 | ** in all copies or substantial portions of the Materials. 17 | ** 18 | ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 21 | ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23 | ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24 | ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 25 | */ 26 | 27 | /* Khronos platform-specific types and definitions. 28 | * 29 | * The master copy of khrplatform.h is maintained in the Khronos EGL 30 | * Registry repository at https://github.com/KhronosGroup/EGL-Registry 31 | * The last semantic modification to khrplatform.h was at commit ID: 32 | * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 33 | * 34 | * Adopters may modify this file to suit their platform. Adopters are 35 | * encouraged to submit platform specific modifications to the Khronos 36 | * group so that they can be included in future versions of this file. 37 | * Please submit changes by filing pull requests or issues on 38 | * the EGL Registry repository linked above. 39 | * 40 | * 41 | * See the Implementer's Guidelines for information about where this file 42 | * should be located on your system and for more details of its use: 43 | * http://www.khronos.org/registry/implementers_guide.pdf 44 | * 45 | * This file should be included as 46 | * #include 47 | * by Khronos client API header files that use its types and defines. 48 | * 49 | * The types in khrplatform.h should only be used to define API-specific types. 50 | * 51 | * Types defined in khrplatform.h: 52 | * khronos_int8_t signed 8 bit 53 | * khronos_uint8_t unsigned 8 bit 54 | * khronos_int16_t signed 16 bit 55 | * khronos_uint16_t unsigned 16 bit 56 | * khronos_int32_t signed 32 bit 57 | * khronos_uint32_t unsigned 32 bit 58 | * khronos_int64_t signed 64 bit 59 | * khronos_uint64_t unsigned 64 bit 60 | * khronos_intptr_t signed same number of bits as a pointer 61 | * khronos_uintptr_t unsigned same number of bits as a pointer 62 | * khronos_ssize_t signed size 63 | * khronos_usize_t unsigned size 64 | * khronos_float_t signed 32 bit floating point 65 | * khronos_time_ns_t unsigned 64 bit time in nanoseconds 66 | * khronos_utime_nanoseconds_t unsigned time interval or absolute time in 67 | * nanoseconds 68 | * khronos_stime_nanoseconds_t signed time interval in nanoseconds 69 | * khronos_boolean_enum_t enumerated boolean type. This should 70 | * only be used as a base type when a client API's boolean type is 71 | * an enum. Client APIs which use an integer or other type for 72 | * booleans cannot use this as the base type for their boolean. 73 | * 74 | * Tokens defined in khrplatform.h: 75 | * 76 | * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. 77 | * 78 | * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. 79 | * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. 80 | * 81 | * Calling convention macros defined in this file: 82 | * KHRONOS_APICALL 83 | * KHRONOS_APIENTRY 84 | * KHRONOS_APIATTRIBUTES 85 | * 86 | * These may be used in function prototypes as: 87 | * 88 | * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( 89 | * int arg1, 90 | * int arg2) KHRONOS_APIATTRIBUTES; 91 | */ 92 | 93 | #if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) 94 | # define KHRONOS_STATIC 1 95 | #endif 96 | 97 | /*------------------------------------------------------------------------- 98 | * Definition of KHRONOS_APICALL 99 | *------------------------------------------------------------------------- 100 | * This precedes the return type of the function in the function prototype. 101 | */ 102 | #if defined(KHRONOS_STATIC) 103 | /* If the preprocessor constant KHRONOS_STATIC is defined, make the 104 | * header compatible with static linking. */ 105 | # define KHRONOS_APICALL 106 | #elif defined(_WIN32) 107 | # define KHRONOS_APICALL __declspec(dllimport) 108 | #elif defined (__SYMBIAN32__) 109 | # define KHRONOS_APICALL IMPORT_C 110 | #elif defined(__ANDROID__) 111 | # define KHRONOS_APICALL __attribute__((visibility("default"))) 112 | #else 113 | # define KHRONOS_APICALL 114 | #endif 115 | 116 | /*------------------------------------------------------------------------- 117 | * Definition of KHRONOS_APIENTRY 118 | *------------------------------------------------------------------------- 119 | * This follows the return type of the function and precedes the function 120 | * name in the function prototype. 121 | */ 122 | #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) 123 | /* Win32 but not WinCE */ 124 | # define KHRONOS_APIENTRY __stdcall 125 | #else 126 | # define KHRONOS_APIENTRY 127 | #endif 128 | 129 | /*------------------------------------------------------------------------- 130 | * Definition of KHRONOS_APIATTRIBUTES 131 | *------------------------------------------------------------------------- 132 | * This follows the closing parenthesis of the function prototype arguments. 133 | */ 134 | #if defined (__ARMCC_2__) 135 | #define KHRONOS_APIATTRIBUTES __softfp 136 | #else 137 | #define KHRONOS_APIATTRIBUTES 138 | #endif 139 | 140 | /*------------------------------------------------------------------------- 141 | * basic type definitions 142 | *-----------------------------------------------------------------------*/ 143 | #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) 144 | 145 | 146 | /* 147 | * Using 148 | */ 149 | #include 150 | typedef int32_t khronos_int32_t; 151 | typedef uint32_t khronos_uint32_t; 152 | typedef int64_t khronos_int64_t; 153 | typedef uint64_t khronos_uint64_t; 154 | #define KHRONOS_SUPPORT_INT64 1 155 | #define KHRONOS_SUPPORT_FLOAT 1 156 | 157 | #elif defined(__VMS ) || defined(__sgi) 158 | 159 | /* 160 | * Using 161 | */ 162 | #include 163 | typedef int32_t khronos_int32_t; 164 | typedef uint32_t khronos_uint32_t; 165 | typedef int64_t khronos_int64_t; 166 | typedef uint64_t khronos_uint64_t; 167 | #define KHRONOS_SUPPORT_INT64 1 168 | #define KHRONOS_SUPPORT_FLOAT 1 169 | 170 | #elif defined(_WIN32) && !defined(__SCITECH_SNAP__) 171 | 172 | /* 173 | * Win32 174 | */ 175 | typedef __int32 khronos_int32_t; 176 | typedef unsigned __int32 khronos_uint32_t; 177 | typedef __int64 khronos_int64_t; 178 | typedef unsigned __int64 khronos_uint64_t; 179 | #define KHRONOS_SUPPORT_INT64 1 180 | #define KHRONOS_SUPPORT_FLOAT 1 181 | 182 | #elif defined(__sun__) || defined(__digital__) 183 | 184 | /* 185 | * Sun or Digital 186 | */ 187 | typedef int khronos_int32_t; 188 | typedef unsigned int khronos_uint32_t; 189 | #if defined(__arch64__) || defined(_LP64) 190 | typedef long int khronos_int64_t; 191 | typedef unsigned long int khronos_uint64_t; 192 | #else 193 | typedef long long int khronos_int64_t; 194 | typedef unsigned long long int khronos_uint64_t; 195 | #endif /* __arch64__ */ 196 | #define KHRONOS_SUPPORT_INT64 1 197 | #define KHRONOS_SUPPORT_FLOAT 1 198 | 199 | #elif 0 200 | 201 | /* 202 | * Hypothetical platform with no float or int64 support 203 | */ 204 | typedef int khronos_int32_t; 205 | typedef unsigned int khronos_uint32_t; 206 | #define KHRONOS_SUPPORT_INT64 0 207 | #define KHRONOS_SUPPORT_FLOAT 0 208 | 209 | #else 210 | 211 | /* 212 | * Generic fallback 213 | */ 214 | #include 215 | typedef int32_t khronos_int32_t; 216 | typedef uint32_t khronos_uint32_t; 217 | typedef int64_t khronos_int64_t; 218 | typedef uint64_t khronos_uint64_t; 219 | #define KHRONOS_SUPPORT_INT64 1 220 | #define KHRONOS_SUPPORT_FLOAT 1 221 | 222 | #endif 223 | 224 | 225 | /* 226 | * Types that are (so far) the same on all platforms 227 | */ 228 | typedef signed char khronos_int8_t; 229 | typedef unsigned char khronos_uint8_t; 230 | typedef signed short int khronos_int16_t; 231 | typedef unsigned short int khronos_uint16_t; 232 | 233 | /* 234 | * Types that differ between LLP64 and LP64 architectures - in LLP64, 235 | * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears 236 | * to be the only LLP64 architecture in current use. 237 | */ 238 | #ifdef _WIN64 239 | typedef signed long long int khronos_intptr_t; 240 | typedef unsigned long long int khronos_uintptr_t; 241 | typedef signed long long int khronos_ssize_t; 242 | typedef unsigned long long int khronos_usize_t; 243 | #else 244 | typedef signed long int khronos_intptr_t; 245 | typedef unsigned long int khronos_uintptr_t; 246 | typedef signed long int khronos_ssize_t; 247 | typedef unsigned long int khronos_usize_t; 248 | #endif 249 | 250 | #if KHRONOS_SUPPORT_FLOAT 251 | /* 252 | * Float type 253 | */ 254 | typedef float khronos_float_t; 255 | #endif 256 | 257 | #if KHRONOS_SUPPORT_INT64 258 | /* Time types 259 | * 260 | * These types can be used to represent a time interval in nanoseconds or 261 | * an absolute Unadjusted System Time. Unadjusted System Time is the number 262 | * of nanoseconds since some arbitrary system event (e.g. since the last 263 | * time the system booted). The Unadjusted System Time is an unsigned 264 | * 64 bit value that wraps back to 0 every 584 years. Time intervals 265 | * may be either signed or unsigned. 266 | */ 267 | typedef khronos_uint64_t khronos_utime_nanoseconds_t; 268 | typedef khronos_int64_t khronos_stime_nanoseconds_t; 269 | #endif 270 | 271 | /* 272 | * Dummy value used to pad enum types to 32 bits. 273 | */ 274 | #ifndef KHRONOS_MAX_ENUM 275 | #define KHRONOS_MAX_ENUM 0x7FFFFFFF 276 | #endif 277 | 278 | /* 279 | * Enumerated boolean type 280 | * 281 | * Values other than zero should be considered to be true. Therefore 282 | * comparisons should not be made against KHRONOS_TRUE. 283 | */ 284 | typedef enum { 285 | KHRONOS_FALSE = 0, 286 | KHRONOS_TRUE = 1, 287 | KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM 288 | } khronos_boolean_enum_t; 289 | 290 | #endif /* __khrplatform_h_ */ 291 | -------------------------------------------------------------------------------- /c_headers/EGL/egl.h: -------------------------------------------------------------------------------- 1 | // Hacks to help Clang/ffigen parse this file 2 | #define EGLAPIENTRY 3 | #define EGLAPI 4 | typedef void *EGLNativeWindowType; 5 | typedef void *EGLNativeDisplayType; 6 | 7 | #ifndef __egl_h_ 8 | #define __egl_h_ 1 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | /* 15 | ** Copyright (c) 2013-2017 The Khronos Group Inc. 16 | ** 17 | ** Permission is hereby granted, free of charge, to any person obtaining a 18 | ** copy of this software and/or associated documentation files (the 19 | ** "Materials"), to deal in the Materials without restriction, including 20 | ** without limitation the rights to use, copy, modify, merge, publish, 21 | ** distribute, sublicense, and/or sell copies of the Materials, and to 22 | ** permit persons to whom the Materials are furnished to do so, subject to 23 | ** the following conditions: 24 | ** 25 | ** The above copyright notice and this permission notice shall be included 26 | ** in all copies or substantial portions of the Materials. 27 | ** 28 | ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 29 | ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 30 | ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 31 | ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 32 | ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 33 | ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 34 | ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 35 | */ 36 | /* 37 | ** This header is generated from the Khronos OpenGL / OpenGL ES XML 38 | ** API Registry. The current version of the Registry, generator scripts 39 | ** used to make the header, and the header can be found at 40 | ** http://www.khronos.org/registry/egl 41 | ** 42 | ** Khronos $Git commit SHA1: bae3518c48 $ on $Git commit date: 2018-05-17 10:56:57 -0700 $ 43 | */ 44 | 45 | // Hacks to help Clang/ffigen parse this file 46 | #include "eglplatform.h" 47 | 48 | /* Generated on date 20180517 */ 49 | 50 | /* Generated C header for: 51 | * API: egl 52 | * Versions considered: .* 53 | * Versions emitted: .* 54 | * Default extensions included: None 55 | * Additional extensions included: _nomatch_^ 56 | * Extensions removed: _nomatch_^ 57 | */ 58 | 59 | #ifndef EGL_VERSION_1_0 60 | #define EGL_VERSION_1_0 1 61 | typedef unsigned int EGLBoolean; 62 | typedef void *EGLDisplay; 63 | #include 64 | #include 65 | typedef void *EGLConfig; 66 | typedef void *EGLSurface; 67 | typedef void *EGLContext; 68 | typedef void (*__eglMustCastToProperFunctionPointerType)(void); 69 | #define EGL_ALPHA_SIZE 0x3021 70 | #define EGL_BAD_ACCESS 0x3002 71 | #define EGL_BAD_ALLOC 0x3003 72 | #define EGL_BAD_ATTRIBUTE 0x3004 73 | #define EGL_BAD_CONFIG 0x3005 74 | #define EGL_BAD_CONTEXT 0x3006 75 | #define EGL_BAD_CURRENT_SURFACE 0x3007 76 | #define EGL_BAD_DISPLAY 0x3008 77 | #define EGL_BAD_MATCH 0x3009 78 | #define EGL_BAD_NATIVE_PIXMAP 0x300A 79 | #define EGL_BAD_NATIVE_WINDOW 0x300B 80 | #define EGL_BAD_PARAMETER 0x300C 81 | #define EGL_BAD_SURFACE 0x300D 82 | #define EGL_BLUE_SIZE 0x3022 83 | #define EGL_BUFFER_SIZE 0x3020 84 | #define EGL_CONFIG_CAVEAT 0x3027 85 | #define EGL_CONFIG_ID 0x3028 86 | #define EGL_CORE_NATIVE_ENGINE 0x305B 87 | #define EGL_DEPTH_SIZE 0x3025 88 | #define EGL_DONT_CARE EGL_CAST(EGLint, -1) 89 | #define EGL_DRAW 0x3059 90 | #define EGL_EXTENSIONS 0x3055 91 | #define EGL_FALSE 0 92 | #define EGL_GREEN_SIZE 0x3023 93 | #define EGL_HEIGHT 0x3056 94 | #define EGL_LARGEST_PBUFFER 0x3058 95 | #define EGL_LEVEL 0x3029 96 | #define EGL_MAX_PBUFFER_HEIGHT 0x302A 97 | #define EGL_MAX_PBUFFER_PIXELS 0x302B 98 | #define EGL_MAX_PBUFFER_WIDTH 0x302C 99 | #define EGL_NATIVE_RENDERABLE 0x302D 100 | #define EGL_NATIVE_VISUAL_ID 0x302E 101 | #define EGL_NATIVE_VISUAL_TYPE 0x302F 102 | #define EGL_NONE 0x3038 103 | #define EGL_NON_CONFORMANT_CONFIG 0x3051 104 | #define EGL_NOT_INITIALIZED 0x3001 105 | #define EGL_NO_CONTEXT EGL_CAST(EGLContext, 0) 106 | #define EGL_NO_DISPLAY EGL_CAST(EGLDisplay, 0) 107 | #define EGL_NO_SURFACE EGL_CAST(EGLSurface, 0) 108 | #define EGL_PBUFFER_BIT 0x0001 109 | #define EGL_PIXMAP_BIT 0x0002 110 | #define EGL_READ 0x305A 111 | #define EGL_RED_SIZE 0x3024 112 | #define EGL_SAMPLES 0x3031 113 | #define EGL_SAMPLE_BUFFERS 0x3032 114 | #define EGL_SLOW_CONFIG 0x3050 115 | #define EGL_STENCIL_SIZE 0x3026 116 | #define EGL_SUCCESS 0x3000 117 | #define EGL_SURFACE_TYPE 0x3033 118 | #define EGL_TRANSPARENT_BLUE_VALUE 0x3035 119 | #define EGL_TRANSPARENT_GREEN_VALUE 0x3036 120 | #define EGL_TRANSPARENT_RED_VALUE 0x3037 121 | #define EGL_TRANSPARENT_RGB 0x3052 122 | #define EGL_TRANSPARENT_TYPE 0x3034 123 | #define EGL_TRUE 1 124 | #define EGL_VENDOR 0x3053 125 | #define EGL_VERSION 0x3054 126 | #define EGL_WIDTH 0x3057 127 | #define EGL_WINDOW_BIT 0x0004 128 | 129 | EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); 130 | EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); 131 | EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); 132 | EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); 133 | EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); 134 | EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); 135 | EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx); 136 | EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface); 137 | EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); 138 | EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); 139 | EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void); 140 | EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw); 141 | EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id); 142 | EGLAPI EGLint EGLAPIENTRY eglGetError(void); 143 | EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress(const char *procname); 144 | EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor); 145 | EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); 146 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); 147 | EGLAPI const char *EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name); 148 | EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); 149 | EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface); 150 | EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy); 151 | EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void); 152 | EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine); 153 | #endif /* EGL_VERSION_1_0 */ 154 | 155 | #ifndef EGL_VERSION_1_1 156 | #define EGL_VERSION_1_1 1 157 | #define EGL_BACK_BUFFER 0x3084 158 | #define EGL_BIND_TO_TEXTURE_RGB 0x3039 159 | #define EGL_BIND_TO_TEXTURE_RGBA 0x303A 160 | #define EGL_CONTEXT_LOST 0x300E 161 | #define EGL_MIN_SWAP_INTERVAL 0x303B 162 | #define EGL_MAX_SWAP_INTERVAL 0x303C 163 | #define EGL_MIPMAP_TEXTURE 0x3082 164 | #define EGL_MIPMAP_LEVEL 0x3083 165 | #define EGL_NO_TEXTURE 0x305C 166 | #define EGL_TEXTURE_2D 0x305F 167 | #define EGL_TEXTURE_FORMAT 0x3080 168 | #define EGL_TEXTURE_RGB 0x305D 169 | #define EGL_TEXTURE_RGBA 0x305E 170 | #define EGL_TEXTURE_TARGET 0x3081 171 | EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 172 | EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 173 | EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); 174 | EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval); 175 | #endif /* EGL_VERSION_1_1 */ 176 | 177 | #ifndef EGL_VERSION_1_2 178 | #define EGL_VERSION_1_2 1 179 | typedef unsigned int EGLenum; 180 | typedef void *EGLClientBuffer; 181 | #define EGL_ALPHA_FORMAT 0x3088 182 | #define EGL_ALPHA_FORMAT_NONPRE 0x308B 183 | #define EGL_ALPHA_FORMAT_PRE 0x308C 184 | #define EGL_ALPHA_MASK_SIZE 0x303E 185 | #define EGL_BUFFER_PRESERVED 0x3094 186 | #define EGL_BUFFER_DESTROYED 0x3095 187 | #define EGL_CLIENT_APIS 0x308D 188 | #define EGL_COLORSPACE 0x3087 189 | #define EGL_COLORSPACE_sRGB 0x3089 190 | #define EGL_COLORSPACE_LINEAR 0x308A 191 | #define EGL_COLOR_BUFFER_TYPE 0x303F 192 | #define EGL_CONTEXT_CLIENT_TYPE 0x3097 193 | #define EGL_DISPLAY_SCALING 10000 194 | #define EGL_HORIZONTAL_RESOLUTION 0x3090 195 | #define EGL_LUMINANCE_BUFFER 0x308F 196 | #define EGL_LUMINANCE_SIZE 0x303D 197 | #define EGL_OPENGL_ES_BIT 0x0001 198 | #define EGL_OPENVG_BIT 0x0002 199 | #define EGL_OPENGL_ES_API 0x30A0 200 | #define EGL_OPENVG_API 0x30A1 201 | #define EGL_OPENVG_IMAGE 0x3096 202 | #define EGL_PIXEL_ASPECT_RATIO 0x3092 203 | #define EGL_RENDERABLE_TYPE 0x3040 204 | #define EGL_RENDER_BUFFER 0x3086 205 | #define EGL_RGB_BUFFER 0x308E 206 | #define EGL_SINGLE_BUFFER 0x3085 207 | #define EGL_SWAP_BEHAVIOR 0x3093 208 | #define EGL_UNKNOWN EGL_CAST(EGLint, -1) 209 | #define EGL_VERTICAL_RESOLUTION 0x3091 210 | EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api); 211 | EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void); 212 | EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, 213 | const EGLint *attrib_list); 214 | EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void); 215 | EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void); 216 | #endif /* EGL_VERSION_1_2 */ 217 | 218 | #ifndef EGL_VERSION_1_3 219 | #define EGL_VERSION_1_3 1 220 | #define EGL_CONFORMANT 0x3042 221 | #define EGL_CONTEXT_CLIENT_VERSION 0x3098 222 | #define EGL_MATCH_NATIVE_PIXMAP 0x3041 223 | #define EGL_OPENGL_ES2_BIT 0x0004 224 | #define EGL_VG_ALPHA_FORMAT 0x3088 225 | #define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B 226 | #define EGL_VG_ALPHA_FORMAT_PRE 0x308C 227 | #define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 228 | #define EGL_VG_COLORSPACE 0x3087 229 | #define EGL_VG_COLORSPACE_sRGB 0x3089 230 | #define EGL_VG_COLORSPACE_LINEAR 0x308A 231 | #define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 232 | #endif /* EGL_VERSION_1_3 */ 233 | 234 | #ifndef EGL_VERSION_1_4 235 | #define EGL_VERSION_1_4 1 236 | #define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType, 0) 237 | #define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 238 | #define EGL_MULTISAMPLE_RESOLVE 0x3099 239 | #define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A 240 | #define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B 241 | #define EGL_OPENGL_API 0x30A2 242 | #define EGL_OPENGL_BIT 0x0008 243 | #define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 244 | EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void); 245 | #endif /* EGL_VERSION_1_4 */ 246 | 247 | #ifndef EGL_VERSION_1_5 248 | #define EGL_VERSION_1_5 1 249 | typedef void *EGLSync; 250 | typedef intptr_t EGLAttrib; 251 | typedef khronos_utime_nanoseconds_t EGLTime; 252 | typedef void *EGLImage; 253 | #define EGL_CONTEXT_MAJOR_VERSION 0x3098 254 | #define EGL_CONTEXT_MINOR_VERSION 0x30FB 255 | #define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD 256 | #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD 257 | #define EGL_NO_RESET_NOTIFICATION 0x31BE 258 | #define EGL_LOSE_CONTEXT_ON_RESET 0x31BF 259 | #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 260 | #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 261 | #define EGL_CONTEXT_OPENGL_DEBUG 0x31B0 262 | #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 263 | #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 264 | #define EGL_OPENGL_ES3_BIT 0x00000040 265 | #define EGL_CL_EVENT_HANDLE 0x309C 266 | #define EGL_SYNC_CL_EVENT 0x30FE 267 | #define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF 268 | #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 269 | #define EGL_SYNC_TYPE 0x30F7 270 | #define EGL_SYNC_STATUS 0x30F1 271 | #define EGL_SYNC_CONDITION 0x30F8 272 | #define EGL_SIGNALED 0x30F2 273 | #define EGL_UNSIGNALED 0x30F3 274 | #define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 275 | #define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull 276 | #define EGL_TIMEOUT_EXPIRED 0x30F5 277 | #define EGL_CONDITION_SATISFIED 0x30F6 278 | #define EGL_NO_SYNC EGL_CAST(EGLSync, 0) 279 | #define EGL_SYNC_FENCE 0x30F9 280 | #define EGL_GL_COLORSPACE 0x309D 281 | #define EGL_GL_COLORSPACE_SRGB 0x3089 282 | #define EGL_GL_COLORSPACE_LINEAR 0x308A 283 | #define EGL_GL_RENDERBUFFER 0x30B9 284 | #define EGL_GL_TEXTURE_2D 0x30B1 285 | #define EGL_GL_TEXTURE_LEVEL 0x30BC 286 | #define EGL_GL_TEXTURE_3D 0x30B2 287 | #define EGL_GL_TEXTURE_ZOFFSET 0x30BD 288 | #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 289 | #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 290 | #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 291 | #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 292 | #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 293 | #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 294 | #define EGL_IMAGE_PRESERVED 0x30D2 295 | #define EGL_NO_IMAGE EGL_CAST(EGLImage, 0) 296 | EGLAPI EGLSync EGLAPIENTRY eglCreateSync(EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); 297 | EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync(EGLDisplay dpy, EGLSync sync); 298 | EGLAPI EGLint EGLAPIENTRY eglClientWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); 299 | EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib(EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); 300 | EGLAPI EGLImage EGLAPIENTRY eglCreateImage(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); 301 | EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage(EGLDisplay dpy, EGLImage image); 302 | EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay(EGLenum platform, void *native_display, const EGLAttrib *attrib_list); 303 | EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface(EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); 304 | EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface(EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); 305 | EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags); 306 | #endif /* EGL_VERSION_1_5 */ 307 | 308 | #ifdef __cplusplus 309 | } 310 | #endif 311 | 312 | #endif 313 | -------------------------------------------------------------------------------- /c_headers/EGL/Platform.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2015 The ANGLE Project Authors. All rights reserved. 3 | // Use of this source code is governed by a BSD-style license that can be 4 | // found in the LICENSE file. 5 | 6 | // Platform.h: The public interface ANGLE exposes to the API layer, for 7 | // doing platform-specific tasks like gathering data, or for tracing. 8 | 9 | #ifndef ANGLE_PLATFORM_H 10 | #define ANGLE_PLATFORM_H 11 | 12 | #include 13 | #include 14 | 15 | #define EGL_PLATFORM_ANGLE_PLATFORM_METHODS_ANGLEX 0x3482 16 | 17 | #if defined(_WIN32) 18 | # if !defined(LIBANGLE_IMPLEMENTATION) 19 | # define ANGLE_PLATFORM_EXPORT __declspec(dllimport) 20 | # else 21 | # define ANGLE_PLATFORM_EXPORT __declspec(dllexport) 22 | # endif 23 | #elif defined(__GNUC__) || defined(__clang__) 24 | # define ANGLE_PLATFORM_EXPORT __attribute__((visibility ("default"))) 25 | #endif 26 | #if !defined(ANGLE_PLATFORM_EXPORT) 27 | # define ANGLE_PLATFORM_EXPORT 28 | #endif 29 | 30 | #if defined(_WIN32) 31 | # define ANGLE_APIENTRY __stdcall 32 | #else 33 | # define ANGLE_APIENTRY 34 | #endif 35 | 36 | namespace angle 37 | { 38 | struct WorkaroundsD3D; 39 | struct FeaturesVk; 40 | using TraceEventHandle = uint64_t; 41 | using EGLDisplayType = void *; 42 | struct PlatformMethods; 43 | 44 | // Use a C-like API to not trigger undefined calling behaviour. 45 | // Avoid using decltype here to work around sanitizer limitations. 46 | // TODO(jmadill): Use decltype here if/when UBSAN is fixed. 47 | 48 | // System -------------------------------------------------------------- 49 | 50 | // Wall clock time in seconds since the epoch. 51 | // TODO(jmadill): investigate using an ANGLE internal time library 52 | using CurrentTimeFunc = double (*)(PlatformMethods *platform); 53 | inline double DefaultCurrentTime(PlatformMethods *platform) 54 | { 55 | return 0.0; 56 | } 57 | 58 | // Monotonically increasing time in seconds from an arbitrary fixed point in the past. 59 | // This function is expected to return at least millisecond-precision values. For this reason, 60 | // it is recommended that the fixed point be no further in the past than the epoch. 61 | using MonotonicallyIncreasingTimeFunc = double (*)(PlatformMethods *platform); 62 | inline double DefaultMonotonicallyIncreasingTime(PlatformMethods *platform) 63 | { 64 | return 0.0; 65 | } 66 | 67 | // Logging ------------------------------------------------------------ 68 | 69 | // Log an error message within the platform implementation. 70 | using LogErrorFunc = void (*)(PlatformMethods *platform, const char *errorMessage); 71 | inline void DefaultLogError(PlatformMethods *platform, const char *errorMessage) 72 | { 73 | } 74 | 75 | // Log a warning message within the platform implementation. 76 | using LogWarningFunc = void (*)(PlatformMethods *platform, const char *warningMessage); 77 | inline void DefaultLogWarning(PlatformMethods *platform, const char *warningMessage) 78 | { 79 | } 80 | 81 | // Log an info message within the platform implementation. 82 | using LogInfoFunc = void (*)(PlatformMethods *platform, const char *infoMessage); 83 | inline void DefaultLogInfo(PlatformMethods *platform, const char *infoMessage) 84 | { 85 | } 86 | 87 | // Tracing -------- 88 | 89 | // Get a pointer to the enabled state of the given trace category. The 90 | // embedder can dynamically change the enabled state as trace event 91 | // recording is started and stopped by the application. Only long-lived 92 | // literal strings should be given as the category name. The implementation 93 | // expects the returned pointer to be held permanently in a local static. If 94 | // the unsigned char is non-zero, tracing is enabled. If tracing is enabled, 95 | // addTraceEvent is expected to be called by the trace event macros. 96 | using GetTraceCategoryEnabledFlagFunc = const unsigned char *(*)(PlatformMethods *platform, 97 | const char *categoryName); 98 | inline const unsigned char *DefaultGetTraceCategoryEnabledFlag(PlatformMethods *platform, 99 | const char *categoryName) 100 | { 101 | return nullptr; 102 | } 103 | 104 | // 105 | // Add a trace event to the platform tracing system. Depending on the actual 106 | // enabled state, this event may be recorded or dropped. 107 | // - phase specifies the type of event: 108 | // - BEGIN ('B'): Marks the beginning of a scoped event. 109 | // - END ('E'): Marks the end of a scoped event. 110 | // - COMPLETE ('X'): Marks the beginning of a scoped event, but doesn't 111 | // need a matching END event. Instead, at the end of the scope, 112 | // updateTraceEventDuration() must be called with the TraceEventHandle 113 | // returned from addTraceEvent(). 114 | // - INSTANT ('I'): Standalone, instantaneous event. 115 | // - START ('S'): Marks the beginning of an asynchronous event (the end 116 | // event can occur in a different scope or thread). The id parameter is 117 | // used to match START/FINISH pairs. 118 | // - FINISH ('F'): Marks the end of an asynchronous event. 119 | // - COUNTER ('C'): Used to trace integer quantities that change over 120 | // time. The argument values are expected to be of type int. 121 | // - METADATA ('M'): Reserved for internal use. 122 | // - categoryEnabled is the pointer returned by getTraceCategoryEnabledFlag. 123 | // - name is the name of the event. Also used to match BEGIN/END and 124 | // START/FINISH pairs. 125 | // - id optionally allows events of the same name to be distinguished from 126 | // each other. For example, to trace the construction and destruction of 127 | // objects, specify the pointer as the id parameter. 128 | // - timestamp should be a time value returned from monotonicallyIncreasingTime. 129 | // - numArgs specifies the number of elements in argNames, argTypes, and 130 | // argValues. 131 | // - argNames is the array of argument names. Use long-lived literal strings 132 | // or specify the COPY flag. 133 | // - argTypes is the array of argument types: 134 | // - BOOL (1): bool 135 | // - UINT (2): unsigned long long 136 | // - INT (3): long long 137 | // - DOUBLE (4): double 138 | // - POINTER (5): void* 139 | // - STRING (6): char* (long-lived null-terminated char* string) 140 | // - COPY_STRING (7): char* (temporary null-terminated char* string) 141 | // - CONVERTABLE (8): WebConvertableToTraceFormat 142 | // - argValues is the array of argument values. Each value is the unsigned 143 | // long long member of a union of all supported types. 144 | // - flags can be 0 or one or more of the following, ORed together: 145 | // - COPY (0x1): treat all strings (name, argNames and argValues of type 146 | // string) as temporary so that they will be copied by addTraceEvent. 147 | // - HAS_ID (0x2): use the id argument to uniquely identify the event for 148 | // matching with other events of the same name. 149 | // - MANGLE_ID (0x4): specify this flag if the id parameter is the value 150 | // of a pointer. 151 | using AddTraceEventFunc = angle::TraceEventHandle (*)(PlatformMethods *platform, 152 | char phase, 153 | const unsigned char *categoryEnabledFlag, 154 | const char *name, 155 | unsigned long long id, 156 | double timestamp, 157 | int numArgs, 158 | const char **argNames, 159 | const unsigned char *argTypes, 160 | const unsigned long long *argValues, 161 | unsigned char flags); 162 | inline angle::TraceEventHandle DefaultAddTraceEvent(PlatformMethods *platform, 163 | char phase, 164 | const unsigned char *categoryEnabledFlag, 165 | const char *name, 166 | unsigned long long id, 167 | double timestamp, 168 | int numArgs, 169 | const char **argNames, 170 | const unsigned char *argTypes, 171 | const unsigned long long *argValues, 172 | unsigned char flags) 173 | { 174 | return 0; 175 | } 176 | 177 | // Set the duration field of a COMPLETE trace event. 178 | using UpdateTraceEventDurationFunc = void (*)(PlatformMethods *platform, 179 | const unsigned char *categoryEnabledFlag, 180 | const char *name, 181 | angle::TraceEventHandle eventHandle); 182 | inline void DefaultUpdateTraceEventDuration(PlatformMethods *platform, 183 | const unsigned char *categoryEnabledFlag, 184 | const char *name, 185 | angle::TraceEventHandle eventHandle) 186 | { 187 | } 188 | 189 | // Callbacks for reporting histogram data. 190 | // CustomCounts histogram has exponential bucket sizes, so that min=1, max=1000000, bucketCount=50 191 | // would do. 192 | using HistogramCustomCountsFunc = void (*)(PlatformMethods *platform, 193 | const char *name, 194 | int sample, 195 | int min, 196 | int max, 197 | int bucketCount); 198 | inline void DefaultHistogramCustomCounts(PlatformMethods *platform, 199 | const char *name, 200 | int sample, 201 | int min, 202 | int max, 203 | int bucketCount) 204 | { 205 | } 206 | // Enumeration histogram buckets are linear, boundaryValue should be larger than any possible sample 207 | // value. 208 | using HistogramEnumerationFunc = void (*)(PlatformMethods *platform, 209 | const char *name, 210 | int sample, 211 | int boundaryValue); 212 | inline void DefaultHistogramEnumeration(PlatformMethods *platform, 213 | const char *name, 214 | int sample, 215 | int boundaryValue) 216 | { 217 | } 218 | // Unlike enumeration histograms, sparse histograms only allocate memory for non-empty buckets. 219 | using HistogramSparseFunc = void (*)(PlatformMethods *platform, const char *name, int sample); 220 | inline void DefaultHistogramSparse(PlatformMethods *platform, const char *name, int sample) 221 | { 222 | } 223 | // Boolean histograms track two-state variables. 224 | using HistogramBooleanFunc = void (*)(PlatformMethods *platform, const char *name, bool sample); 225 | inline void DefaultHistogramBoolean(PlatformMethods *platform, const char *name, bool sample) 226 | { 227 | } 228 | 229 | // Allows us to programatically override ANGLE's default workarounds for testing purposes. 230 | using OverrideWorkaroundsD3DFunc = void (*)(PlatformMethods *platform, 231 | angle::WorkaroundsD3D *workaroundsD3D); 232 | inline void DefaultOverrideWorkaroundsD3D(PlatformMethods *platform, 233 | angle::WorkaroundsD3D *workaroundsD3D) 234 | { 235 | } 236 | 237 | using OverrideFeaturesVkFunc = void (*)(PlatformMethods *platform, 238 | angle::FeaturesVk *workaroundsVulkan); 239 | inline void DefaultOverrideFeaturesVk(PlatformMethods *platform, 240 | angle::FeaturesVk *workaroundsVulkan) 241 | { 242 | } 243 | 244 | // Callback on a successful program link with the program binary. Can be used to store 245 | // shaders to disk. Keys are a 160-bit SHA-1 hash. 246 | using ProgramKeyType = std::array; 247 | using CacheProgramFunc = void (*)(PlatformMethods *platform, 248 | const ProgramKeyType &key, 249 | size_t programSize, 250 | const uint8_t *programBytes); 251 | inline void DefaultCacheProgram(PlatformMethods *platform, 252 | const ProgramKeyType &key, 253 | size_t programSize, 254 | const uint8_t *programBytes) 255 | { 256 | } 257 | 258 | // Platform methods are enumerated here once. 259 | #define ANGLE_PLATFORM_OP(OP) \ 260 | OP(currentTime, CurrentTime) \ 261 | OP(monotonicallyIncreasingTime, MonotonicallyIncreasingTime) \ 262 | OP(logError, LogError) \ 263 | OP(logWarning, LogWarning) \ 264 | OP(logInfo, LogInfo) \ 265 | OP(getTraceCategoryEnabledFlag, GetTraceCategoryEnabledFlag) \ 266 | OP(addTraceEvent, AddTraceEvent) \ 267 | OP(updateTraceEventDuration, UpdateTraceEventDuration) \ 268 | OP(histogramCustomCounts, HistogramCustomCounts) \ 269 | OP(histogramEnumeration, HistogramEnumeration) \ 270 | OP(histogramSparse, HistogramSparse) \ 271 | OP(histogramBoolean, HistogramBoolean) \ 272 | OP(overrideWorkaroundsD3D, OverrideWorkaroundsD3D) \ 273 | OP(overrideFeaturesVk, OverrideFeaturesVk) \ 274 | OP(cacheProgram, CacheProgram) 275 | 276 | #define ANGLE_PLATFORM_METHOD_DEF(Name, CapsName) CapsName##Func Name = Default##CapsName; 277 | 278 | struct ANGLE_PLATFORM_EXPORT PlatformMethods 279 | { 280 | PlatformMethods() {} 281 | 282 | // User data pointer for any implementation specific members. Put it at the start of the 283 | // platform structure so it doesn't become overwritten if one version of the platform 284 | // adds or removes new members. 285 | void *context = 0; 286 | 287 | ANGLE_PLATFORM_OP(ANGLE_PLATFORM_METHOD_DEF); 288 | }; 289 | 290 | #undef ANGLE_PLATFORM_METHOD_DEF 291 | 292 | // Subtract one to account for the context pointer. 293 | constexpr unsigned int g_NumPlatformMethods = (sizeof(PlatformMethods) / sizeof(uintptr_t)) - 1; 294 | 295 | #define ANGLE_PLATFORM_METHOD_STRING(Name) #Name 296 | #define ANGLE_PLATFORM_METHOD_STRING2(Name, CapsName) ANGLE_PLATFORM_METHOD_STRING(Name), 297 | 298 | constexpr const char *const g_PlatformMethodNames[g_NumPlatformMethods] = { 299 | ANGLE_PLATFORM_OP(ANGLE_PLATFORM_METHOD_STRING2)}; 300 | 301 | #undef ANGLE_PLATFORM_METHOD_STRING2 302 | #undef ANGLE_PLATFORM_METHOD_STRING 303 | 304 | } // namespace angle 305 | 306 | extern "C" { 307 | 308 | // Gets the platform methods on the passed-in EGL display. If the method name signature does not 309 | // match the compiled signature for this ANGLE, false is returned. On success true is returned. 310 | // The application should set any platform methods it cares about on the returned pointer. 311 | // If display is not valid, behaviour is undefined. 312 | 313 | ANGLE_PLATFORM_EXPORT bool ANGLE_APIENTRY ANGLEGetDisplayPlatform(angle::EGLDisplayType display, 314 | const char *const methodNames[], 315 | unsigned int methodNameCount, 316 | void *context, 317 | void *platformMethodsOut); 318 | 319 | // Sets the platform methods back to their defaults. 320 | // If display is not valid, behaviour is undefined. 321 | ANGLE_PLATFORM_EXPORT void ANGLE_APIENTRY ANGLEResetDisplayPlatform(angle::EGLDisplayType display); 322 | 323 | } // extern "C" 324 | 325 | namespace angle 326 | { 327 | typedef bool(ANGLE_APIENTRY *GetDisplayPlatformFunc)(angle::EGLDisplayType, 328 | const char *const *, 329 | unsigned int, 330 | void *, 331 | void *); 332 | typedef void(ANGLE_APIENTRY *ResetDisplayPlatformFunc)(angle::EGLDisplayType); 333 | } // namespace angle 334 | 335 | // This function is not exported 336 | angle::PlatformMethods *ANGLEPlatformCurrent(); 337 | 338 | #endif // ANGLE_PLATFORM_H 339 | -------------------------------------------------------------------------------- /c_headers/EGL/eglext.h: -------------------------------------------------------------------------------- 1 | #ifndef __eglext_h_ 2 | #define __eglext_h_ 1 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | /* 9 | ** Copyright (c) 2013-2017 The Khronos Group Inc. 10 | ** 11 | ** Permission is hereby granted, free of charge, to any person obtaining a 12 | ** copy of this software and/or associated documentation files (the 13 | ** "Materials"), to deal in the Materials without restriction, including 14 | ** without limitation the rights to use, copy, modify, merge, publish, 15 | ** distribute, sublicense, and/or sell copies of the Materials, and to 16 | ** permit persons to whom the Materials are furnished to do so, subject to 17 | ** the following conditions: 18 | ** 19 | ** The above copyright notice and this permission notice shall be included 20 | ** in all copies or substantial portions of the Materials. 21 | ** 22 | ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 | ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 24 | ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 25 | ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 26 | ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 27 | ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 28 | ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 29 | */ 30 | /* 31 | ** This header is generated from the Khronos EGL XML API Registry. 32 | ** The current version of the Registry, generator scripts 33 | ** used to make the header, and the header can be found at 34 | ** http://www.khronos.org/registry/egl 35 | ** 36 | ** Khronos $Git commit SHA1: 726475c203 $ on $Git commit date: 2018-10-03 23:51:49 -0700 $ 37 | */ 38 | 39 | #include 40 | 41 | #define EGL_EGLEXT_VERSION 20181204 42 | 43 | /* Generated C header for: 44 | * API: egl 45 | * Versions considered: .* 46 | * Versions emitted: _nomatch_^ 47 | * Default extensions included: egl 48 | * Additional extensions included: _nomatch_^ 49 | * Extensions removed: _nomatch_^ 50 | */ 51 | 52 | #ifndef EGL_KHR_cl_event 53 | #define EGL_KHR_cl_event 1 54 | #define EGL_CL_EVENT_HANDLE_KHR 0x309C 55 | #define EGL_SYNC_CL_EVENT_KHR 0x30FE 56 | #define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF 57 | #endif /* EGL_KHR_cl_event */ 58 | 59 | #ifndef EGL_KHR_cl_event2 60 | #define EGL_KHR_cl_event2 1 61 | typedef void *EGLSyncKHR; 62 | typedef intptr_t EGLAttribKHR; 63 | typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); 64 | #ifdef EGL_EGLEXT_PROTOTYPES 65 | EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); 66 | #endif 67 | #endif /* EGL_KHR_cl_event2 */ 68 | 69 | #ifndef EGL_KHR_client_get_all_proc_addresses 70 | #define EGL_KHR_client_get_all_proc_addresses 1 71 | #endif /* EGL_KHR_client_get_all_proc_addresses */ 72 | 73 | #ifndef EGL_KHR_config_attribs 74 | #define EGL_KHR_config_attribs 1 75 | #define EGL_CONFORMANT_KHR 0x3042 76 | #define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 77 | #define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 78 | #endif /* EGL_KHR_config_attribs */ 79 | 80 | #ifndef EGL_KHR_context_flush_control 81 | #define EGL_KHR_context_flush_control 1 82 | #define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0 83 | #define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097 84 | #define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098 85 | #endif /* EGL_KHR_context_flush_control */ 86 | 87 | #ifndef EGL_KHR_create_context 88 | #define EGL_KHR_create_context 1 89 | #define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 90 | #define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB 91 | #define EGL_CONTEXT_FLAGS_KHR 0x30FC 92 | #define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD 93 | #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD 94 | #define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE 95 | #define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF 96 | #define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 97 | #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 98 | #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 99 | #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 100 | #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 101 | #define EGL_OPENGL_ES3_BIT_KHR 0x00000040 102 | #endif /* EGL_KHR_create_context */ 103 | 104 | #ifndef EGL_KHR_create_context_no_error 105 | #define EGL_KHR_create_context_no_error 1 106 | #define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 107 | #endif /* EGL_KHR_create_context_no_error */ 108 | 109 | #ifndef EGL_KHR_debug 110 | #define EGL_KHR_debug 1 111 | typedef void *EGLLabelKHR; 112 | typedef void *EGLObjectKHR; 113 | typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); 114 | #define EGL_OBJECT_THREAD_KHR 0x33B0 115 | #define EGL_OBJECT_DISPLAY_KHR 0x33B1 116 | #define EGL_OBJECT_CONTEXT_KHR 0x33B2 117 | #define EGL_OBJECT_SURFACE_KHR 0x33B3 118 | #define EGL_OBJECT_IMAGE_KHR 0x33B4 119 | #define EGL_OBJECT_SYNC_KHR 0x33B5 120 | #define EGL_OBJECT_STREAM_KHR 0x33B6 121 | #define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9 122 | #define EGL_DEBUG_MSG_ERROR_KHR 0x33BA 123 | #define EGL_DEBUG_MSG_WARN_KHR 0x33BB 124 | #define EGL_DEBUG_MSG_INFO_KHR 0x33BC 125 | #define EGL_DEBUG_CALLBACK_KHR 0x33B8 126 | typedef EGLint (EGLAPIENTRYP PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); 127 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib *value); 128 | typedef EGLint (EGLAPIENTRYP PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); 129 | #ifdef EGL_EGLEXT_PROTOTYPES 130 | EGLAPI EGLint EGLAPIENTRY eglDebugMessageControlKHR (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); 131 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryDebugKHR (EGLint attribute, EGLAttrib *value); 132 | EGLAPI EGLint EGLAPIENTRY eglLabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); 133 | #endif 134 | #endif /* EGL_KHR_debug */ 135 | 136 | #ifndef EGL_KHR_display_reference 137 | #define EGL_KHR_display_reference 1 138 | #define EGL_TRACK_REFERENCES_KHR 0x3352 139 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBKHRPROC) (EGLDisplay dpy, EGLint name, EGLAttrib *value); 140 | #ifdef EGL_EGLEXT_PROTOTYPES 141 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribKHR (EGLDisplay dpy, EGLint name, EGLAttrib *value); 142 | #endif 143 | #endif /* EGL_KHR_display_reference */ 144 | 145 | #ifndef EGL_KHR_fence_sync 146 | #define EGL_KHR_fence_sync 1 147 | typedef khronos_utime_nanoseconds_t EGLTimeKHR; 148 | #ifdef KHRONOS_SUPPORT_INT64 149 | #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 150 | #define EGL_SYNC_CONDITION_KHR 0x30F8 151 | #define EGL_SYNC_FENCE_KHR 0x30F9 152 | typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); 153 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); 154 | typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); 155 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); 156 | #ifdef EGL_EGLEXT_PROTOTYPES 157 | EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); 158 | EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync); 159 | EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); 160 | EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); 161 | #endif 162 | #endif /* KHRONOS_SUPPORT_INT64 */ 163 | #endif /* EGL_KHR_fence_sync */ 164 | 165 | #ifndef EGL_KHR_get_all_proc_addresses 166 | #define EGL_KHR_get_all_proc_addresses 1 167 | #endif /* EGL_KHR_get_all_proc_addresses */ 168 | 169 | #ifndef EGL_KHR_gl_colorspace 170 | #define EGL_KHR_gl_colorspace 1 171 | #define EGL_GL_COLORSPACE_KHR 0x309D 172 | #define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 173 | #define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A 174 | #endif /* EGL_KHR_gl_colorspace */ 175 | 176 | #ifndef EGL_KHR_gl_renderbuffer_image 177 | #define EGL_KHR_gl_renderbuffer_image 1 178 | #define EGL_GL_RENDERBUFFER_KHR 0x30B9 179 | #endif /* EGL_KHR_gl_renderbuffer_image */ 180 | 181 | #ifndef EGL_KHR_gl_texture_2D_image 182 | #define EGL_KHR_gl_texture_2D_image 1 183 | #define EGL_GL_TEXTURE_2D_KHR 0x30B1 184 | #define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC 185 | #endif /* EGL_KHR_gl_texture_2D_image */ 186 | 187 | #ifndef EGL_KHR_gl_texture_3D_image 188 | #define EGL_KHR_gl_texture_3D_image 1 189 | #define EGL_GL_TEXTURE_3D_KHR 0x30B2 190 | #define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD 191 | #endif /* EGL_KHR_gl_texture_3D_image */ 192 | 193 | #ifndef EGL_KHR_gl_texture_cubemap_image 194 | #define EGL_KHR_gl_texture_cubemap_image 1 195 | #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 196 | #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 197 | #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 198 | #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 199 | #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 200 | #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 201 | #endif /* EGL_KHR_gl_texture_cubemap_image */ 202 | 203 | #ifndef EGL_KHR_image 204 | #define EGL_KHR_image 1 205 | typedef void *EGLImageKHR; 206 | #define EGL_NATIVE_PIXMAP_KHR 0x30B0 207 | #define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0) 208 | typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); 209 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); 210 | #ifdef EGL_EGLEXT_PROTOTYPES 211 | EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); 212 | EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image); 213 | #endif 214 | #endif /* EGL_KHR_image */ 215 | 216 | #ifndef EGL_KHR_image_base 217 | #define EGL_KHR_image_base 1 218 | #define EGL_IMAGE_PRESERVED_KHR 0x30D2 219 | #endif /* EGL_KHR_image_base */ 220 | 221 | #ifndef EGL_KHR_image_pixmap 222 | #define EGL_KHR_image_pixmap 1 223 | #endif /* EGL_KHR_image_pixmap */ 224 | 225 | #ifndef EGL_KHR_lock_surface 226 | #define EGL_KHR_lock_surface 1 227 | #define EGL_READ_SURFACE_BIT_KHR 0x0001 228 | #define EGL_WRITE_SURFACE_BIT_KHR 0x0002 229 | #define EGL_LOCK_SURFACE_BIT_KHR 0x0080 230 | #define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 231 | #define EGL_MATCH_FORMAT_KHR 0x3043 232 | #define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 233 | #define EGL_FORMAT_RGB_565_KHR 0x30C1 234 | #define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 235 | #define EGL_FORMAT_RGBA_8888_KHR 0x30C3 236 | #define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 237 | #define EGL_LOCK_USAGE_HINT_KHR 0x30C5 238 | #define EGL_BITMAP_POINTER_KHR 0x30C6 239 | #define EGL_BITMAP_PITCH_KHR 0x30C7 240 | #define EGL_BITMAP_ORIGIN_KHR 0x30C8 241 | #define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 242 | #define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA 243 | #define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB 244 | #define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC 245 | #define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD 246 | #define EGL_LOWER_LEFT_KHR 0x30CE 247 | #define EGL_UPPER_LEFT_KHR 0x30CF 248 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); 249 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface); 250 | #ifdef EGL_EGLEXT_PROTOTYPES 251 | EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); 252 | EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface); 253 | #endif 254 | #endif /* EGL_KHR_lock_surface */ 255 | 256 | #ifndef EGL_KHR_lock_surface2 257 | #define EGL_KHR_lock_surface2 1 258 | #define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 259 | #endif /* EGL_KHR_lock_surface2 */ 260 | 261 | #ifndef EGL_KHR_lock_surface3 262 | #define EGL_KHR_lock_surface3 1 263 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); 264 | #ifdef EGL_EGLEXT_PROTOTYPES 265 | EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); 266 | #endif 267 | #endif /* EGL_KHR_lock_surface3 */ 268 | 269 | #ifndef EGL_KHR_mutable_render_buffer 270 | #define EGL_KHR_mutable_render_buffer 1 271 | #define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000 272 | #endif /* EGL_KHR_mutable_render_buffer */ 273 | 274 | #ifndef EGL_KHR_no_config_context 275 | #define EGL_KHR_no_config_context 1 276 | #define EGL_NO_CONFIG_KHR EGL_CAST(EGLConfig,0) 277 | #endif /* EGL_KHR_no_config_context */ 278 | 279 | #ifndef EGL_KHR_partial_update 280 | #define EGL_KHR_partial_update 1 281 | #define EGL_BUFFER_AGE_KHR 0x313D 282 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); 283 | #ifdef EGL_EGLEXT_PROTOTYPES 284 | EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); 285 | #endif 286 | #endif /* EGL_KHR_partial_update */ 287 | 288 | #ifndef EGL_KHR_platform_android 289 | #define EGL_KHR_platform_android 1 290 | #define EGL_PLATFORM_ANDROID_KHR 0x3141 291 | #endif /* EGL_KHR_platform_android */ 292 | 293 | #ifndef EGL_KHR_platform_gbm 294 | #define EGL_KHR_platform_gbm 1 295 | #define EGL_PLATFORM_GBM_KHR 0x31D7 296 | #endif /* EGL_KHR_platform_gbm */ 297 | 298 | #ifndef EGL_KHR_platform_wayland 299 | #define EGL_KHR_platform_wayland 1 300 | #define EGL_PLATFORM_WAYLAND_KHR 0x31D8 301 | #endif /* EGL_KHR_platform_wayland */ 302 | 303 | #ifndef EGL_KHR_platform_x11 304 | #define EGL_KHR_platform_x11 1 305 | #define EGL_PLATFORM_X11_KHR 0x31D5 306 | #define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6 307 | #endif /* EGL_KHR_platform_x11 */ 308 | 309 | #ifndef EGL_KHR_reusable_sync 310 | #define EGL_KHR_reusable_sync 1 311 | #ifdef KHRONOS_SUPPORT_INT64 312 | #define EGL_SYNC_STATUS_KHR 0x30F1 313 | #define EGL_SIGNALED_KHR 0x30F2 314 | #define EGL_UNSIGNALED_KHR 0x30F3 315 | #define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 316 | #define EGL_CONDITION_SATISFIED_KHR 0x30F6 317 | #define EGL_SYNC_TYPE_KHR 0x30F7 318 | #define EGL_SYNC_REUSABLE_KHR 0x30FA 319 | #define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 320 | #define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull 321 | #define EGL_NO_SYNC_KHR EGL_CAST(EGLSyncKHR,0) 322 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); 323 | #ifdef EGL_EGLEXT_PROTOTYPES 324 | EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); 325 | #endif 326 | #endif /* KHRONOS_SUPPORT_INT64 */ 327 | #endif /* EGL_KHR_reusable_sync */ 328 | 329 | #ifndef EGL_KHR_stream 330 | #define EGL_KHR_stream 1 331 | typedef void *EGLStreamKHR; 332 | typedef khronos_uint64_t EGLuint64KHR; 333 | #ifdef KHRONOS_SUPPORT_INT64 334 | #define EGL_NO_STREAM_KHR EGL_CAST(EGLStreamKHR,0) 335 | #define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 336 | #define EGL_PRODUCER_FRAME_KHR 0x3212 337 | #define EGL_CONSUMER_FRAME_KHR 0x3213 338 | #define EGL_STREAM_STATE_KHR 0x3214 339 | #define EGL_STREAM_STATE_CREATED_KHR 0x3215 340 | #define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 341 | #define EGL_STREAM_STATE_EMPTY_KHR 0x3217 342 | #define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 343 | #define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 344 | #define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A 345 | #define EGL_BAD_STREAM_KHR 0x321B 346 | #define EGL_BAD_STATE_KHR 0x321C 347 | typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list); 348 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); 349 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); 350 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); 351 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); 352 | #ifdef EGL_EGLEXT_PROTOTYPES 353 | EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list); 354 | EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream); 355 | EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); 356 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); 357 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); 358 | #endif 359 | #endif /* KHRONOS_SUPPORT_INT64 */ 360 | #endif /* EGL_KHR_stream */ 361 | 362 | #ifndef EGL_KHR_stream_attrib 363 | #define EGL_KHR_stream_attrib 1 364 | #ifdef KHRONOS_SUPPORT_INT64 365 | typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMATTRIBKHRPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list); 366 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); 367 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value); 368 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); 369 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); 370 | #ifdef EGL_EGLEXT_PROTOTYPES 371 | EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamAttribKHR (EGLDisplay dpy, const EGLAttrib *attrib_list); 372 | EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); 373 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value); 374 | EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); 375 | EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); 376 | #endif 377 | #endif /* KHRONOS_SUPPORT_INT64 */ 378 | #endif /* EGL_KHR_stream_attrib */ 379 | 380 | #ifndef EGL_KHR_stream_consumer_gltexture 381 | #define EGL_KHR_stream_consumer_gltexture 1 382 | #ifdef EGL_KHR_stream 383 | #define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E 384 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); 385 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); 386 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); 387 | #ifdef EGL_EGLEXT_PROTOTYPES 388 | EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream); 389 | EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream); 390 | EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream); 391 | #endif 392 | #endif /* EGL_KHR_stream */ 393 | #endif /* EGL_KHR_stream_consumer_gltexture */ 394 | 395 | #ifndef EGL_KHR_stream_cross_process_fd 396 | #define EGL_KHR_stream_cross_process_fd 1 397 | typedef int EGLNativeFileDescriptorKHR; 398 | #ifdef EGL_KHR_stream 399 | #define EGL_NO_FILE_DESCRIPTOR_KHR EGL_CAST(EGLNativeFileDescriptorKHR,-1) 400 | typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); 401 | typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); 402 | #ifdef EGL_EGLEXT_PROTOTYPES 403 | EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream); 404 | EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); 405 | #endif 406 | #endif /* EGL_KHR_stream */ 407 | #endif /* EGL_KHR_stream_cross_process_fd */ 408 | 409 | #ifndef EGL_KHR_stream_fifo 410 | #define EGL_KHR_stream_fifo 1 411 | #ifdef EGL_KHR_stream 412 | #define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC 413 | #define EGL_STREAM_TIME_NOW_KHR 0x31FD 414 | #define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE 415 | #define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF 416 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); 417 | #ifdef EGL_EGLEXT_PROTOTYPES 418 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); 419 | #endif 420 | #endif /* EGL_KHR_stream */ 421 | #endif /* EGL_KHR_stream_fifo */ 422 | 423 | #ifndef EGL_KHR_stream_producer_aldatalocator 424 | #define EGL_KHR_stream_producer_aldatalocator 1 425 | #ifdef EGL_KHR_stream 426 | #endif /* EGL_KHR_stream */ 427 | #endif /* EGL_KHR_stream_producer_aldatalocator */ 428 | 429 | #ifndef EGL_KHR_stream_producer_eglsurface 430 | #define EGL_KHR_stream_producer_eglsurface 1 431 | #ifdef EGL_KHR_stream 432 | #define EGL_STREAM_BIT_KHR 0x0800 433 | typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); 434 | #ifdef EGL_EGLEXT_PROTOTYPES 435 | EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); 436 | #endif 437 | #endif /* EGL_KHR_stream */ 438 | #endif /* EGL_KHR_stream_producer_eglsurface */ 439 | 440 | #ifndef EGL_KHR_surfaceless_context 441 | #define EGL_KHR_surfaceless_context 1 442 | #endif /* EGL_KHR_surfaceless_context */ 443 | 444 | #ifndef EGL_KHR_swap_buffers_with_damage 445 | #define EGL_KHR_swap_buffers_with_damage 1 446 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); 447 | #ifdef EGL_EGLEXT_PROTOTYPES 448 | EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); 449 | #endif 450 | #endif /* EGL_KHR_swap_buffers_with_damage */ 451 | 452 | #ifndef EGL_KHR_vg_parent_image 453 | #define EGL_KHR_vg_parent_image 1 454 | #define EGL_VG_PARENT_IMAGE_KHR 0x30BA 455 | #endif /* EGL_KHR_vg_parent_image */ 456 | 457 | #ifndef EGL_KHR_wait_sync 458 | #define EGL_KHR_wait_sync 1 459 | typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); 460 | #ifdef EGL_EGLEXT_PROTOTYPES 461 | EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); 462 | #endif 463 | #endif /* EGL_KHR_wait_sync */ 464 | 465 | #ifndef EGL_ANDROID_blob_cache 466 | #define EGL_ANDROID_blob_cache 1 467 | typedef khronos_ssize_t EGLsizeiANDROID; 468 | typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); 469 | typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); 470 | typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); 471 | #ifdef EGL_EGLEXT_PROTOTYPES 472 | EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); 473 | #endif 474 | #endif /* EGL_ANDROID_blob_cache */ 475 | 476 | #ifndef EGL_ANDROID_create_native_client_buffer 477 | #define EGL_ANDROID_create_native_client_buffer 1 478 | #define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143 479 | #define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001 480 | #define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002 481 | #define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004 482 | typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint *attrib_list); 483 | #ifdef EGL_EGLEXT_PROTOTYPES 484 | EGLAPI EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID (const EGLint *attrib_list); 485 | #endif 486 | #endif /* EGL_ANDROID_create_native_client_buffer */ 487 | 488 | #ifndef EGL_ANDROID_framebuffer_target 489 | #define EGL_ANDROID_framebuffer_target 1 490 | #define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 491 | #endif /* EGL_ANDROID_framebuffer_target */ 492 | 493 | #ifndef EGL_ANDROID_front_buffer_auto_refresh 494 | #define EGL_ANDROID_front_buffer_auto_refresh 1 495 | #define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C 496 | #endif /* EGL_ANDROID_front_buffer_auto_refresh */ 497 | 498 | #ifndef EGL_ANDROID_get_frame_timestamps 499 | #define EGL_ANDROID_get_frame_timestamps 1 500 | typedef khronos_stime_nanoseconds_t EGLnsecsANDROID; 501 | #define EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2) 502 | #define EGL_TIMESTAMP_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID,-1) 503 | #define EGL_TIMESTAMPS_ANDROID 0x3430 504 | #define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431 505 | #define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432 506 | #define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433 507 | #define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434 508 | #define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435 509 | #define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436 510 | #define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437 511 | #define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438 512 | #define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439 513 | #define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A 514 | #define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B 515 | #define EGL_READS_DONE_TIME_ANDROID 0x343C 516 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint name); 517 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values); 518 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETNEXTFRAMEIDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId); 519 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp); 520 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values); 521 | #ifdef EGL_EGLEXT_PROTOTYPES 522 | EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint name); 523 | EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingANDROID (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values); 524 | EGLAPI EGLBoolean EGLAPIENTRY eglGetNextFrameIdANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId); 525 | EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint timestamp); 526 | EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampsANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values); 527 | #endif 528 | #endif /* EGL_ANDROID_get_frame_timestamps */ 529 | 530 | #ifndef EGL_ANDROID_get_native_client_buffer 531 | #define EGL_ANDROID_get_native_client_buffer 1 532 | struct AHardwareBuffer; 533 | typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer *buffer); 534 | #ifdef EGL_EGLEXT_PROTOTYPES 535 | EGLAPI EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID (const struct AHardwareBuffer *buffer); 536 | #endif 537 | #endif /* EGL_ANDROID_get_native_client_buffer */ 538 | 539 | #ifndef EGL_ANDROID_image_native_buffer 540 | #define EGL_ANDROID_image_native_buffer 1 541 | #define EGL_NATIVE_BUFFER_ANDROID 0x3140 542 | #endif /* EGL_ANDROID_image_native_buffer */ 543 | 544 | #ifndef EGL_ANDROID_native_fence_sync 545 | #define EGL_ANDROID_native_fence_sync 1 546 | #define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 547 | #define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 548 | #define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 549 | #define EGL_NO_NATIVE_FENCE_FD_ANDROID -1 550 | typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync); 551 | #ifdef EGL_EGLEXT_PROTOTYPES 552 | EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync); 553 | #endif 554 | #endif /* EGL_ANDROID_native_fence_sync */ 555 | 556 | #ifndef EGL_ANDROID_presentation_time 557 | #define EGL_ANDROID_presentation_time 1 558 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); 559 | #ifdef EGL_EGLEXT_PROTOTYPES 560 | EGLAPI EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); 561 | #endif 562 | #endif /* EGL_ANDROID_presentation_time */ 563 | 564 | #ifndef EGL_ANDROID_recordable 565 | #define EGL_ANDROID_recordable 1 566 | #define EGL_RECORDABLE_ANDROID 0x3142 567 | #endif /* EGL_ANDROID_recordable */ 568 | 569 | #ifndef EGL_ANGLE_d3d_share_handle_client_buffer 570 | #define EGL_ANGLE_d3d_share_handle_client_buffer 1 571 | #define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 572 | #endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ 573 | 574 | #ifndef EGL_ANGLE_device_d3d 575 | #define EGL_ANGLE_device_d3d 1 576 | #define EGL_D3D9_DEVICE_ANGLE 0x33A0 577 | #define EGL_D3D11_DEVICE_ANGLE 0x33A1 578 | #endif /* EGL_ANGLE_device_d3d */ 579 | 580 | #ifndef EGL_ANGLE_query_surface_pointer 581 | #define EGL_ANGLE_query_surface_pointer 1 582 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); 583 | #ifdef EGL_EGLEXT_PROTOTYPES 584 | EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); 585 | #endif 586 | #endif /* EGL_ANGLE_query_surface_pointer */ 587 | 588 | #ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle 589 | #define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 590 | #endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ 591 | 592 | #ifndef EGL_ANGLE_window_fixed_size 593 | #define EGL_ANGLE_window_fixed_size 1 594 | #define EGL_FIXED_SIZE_ANGLE 0x3201 595 | #endif /* EGL_ANGLE_window_fixed_size */ 596 | 597 | #ifndef EGL_ARM_implicit_external_sync 598 | #define EGL_ARM_implicit_external_sync 1 599 | #define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A 600 | #endif /* EGL_ARM_implicit_external_sync */ 601 | 602 | #ifndef EGL_ARM_pixmap_multisample_discard 603 | #define EGL_ARM_pixmap_multisample_discard 1 604 | #define EGL_DISCARD_SAMPLES_ARM 0x3286 605 | #endif /* EGL_ARM_pixmap_multisample_discard */ 606 | 607 | #ifndef EGL_EXT_bind_to_front 608 | #define EGL_EXT_bind_to_front 1 609 | #define EGL_FRONT_BUFFER_EXT 0x3464 610 | #endif /* EGL_EXT_bind_to_front */ 611 | 612 | #ifndef EGL_EXT_buffer_age 613 | #define EGL_EXT_buffer_age 1 614 | #define EGL_BUFFER_AGE_EXT 0x313D 615 | #endif /* EGL_EXT_buffer_age */ 616 | 617 | #ifndef EGL_EXT_client_extensions 618 | #define EGL_EXT_client_extensions 1 619 | #endif /* EGL_EXT_client_extensions */ 620 | 621 | #ifndef EGL_EXT_client_sync 622 | #define EGL_EXT_client_sync 1 623 | #define EGL_SYNC_CLIENT_EXT 0x3364 624 | #define EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365 625 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLCLIENTSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); 626 | #ifdef EGL_EGLEXT_PROTOTYPES 627 | EGLAPI EGLBoolean EGLAPIENTRY eglClientSignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); 628 | #endif 629 | #endif /* EGL_EXT_client_sync */ 630 | 631 | #ifndef EGL_EXT_compositor 632 | #define EGL_EXT_compositor 1 633 | #define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460 634 | #define EGL_EXTERNAL_REF_ID_EXT 0x3461 635 | #define EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462 636 | #define EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463 637 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC) (const EGLint *external_ref_ids, EGLint num_entries); 638 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC) (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries); 639 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC) (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries); 640 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC) (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries); 641 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC) (EGLint external_win_id); 642 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETSIZEEXTPROC) (EGLint external_win_id, EGLint width, EGLint height); 643 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSWAPPOLICYEXTPROC) (EGLint external_win_id, EGLint policy); 644 | #ifdef EGL_EGLEXT_PROTOTYPES 645 | EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextListEXT (const EGLint *external_ref_ids, EGLint num_entries); 646 | EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextAttributesEXT (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries); 647 | EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowListEXT (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries); 648 | EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowAttributesEXT (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries); 649 | EGLAPI EGLBoolean EGLAPIENTRY eglCompositorBindTexWindowEXT (EGLint external_win_id); 650 | EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetSizeEXT (EGLint external_win_id, EGLint width, EGLint height); 651 | EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSwapPolicyEXT (EGLint external_win_id, EGLint policy); 652 | #endif 653 | #endif /* EGL_EXT_compositor */ 654 | 655 | #ifndef EGL_EXT_create_context_robustness 656 | #define EGL_EXT_create_context_robustness 1 657 | #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF 658 | #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 659 | #define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE 660 | #define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF 661 | #endif /* EGL_EXT_create_context_robustness */ 662 | 663 | #ifndef EGL_EXT_device_base 664 | #define EGL_EXT_device_base 1 665 | typedef void *EGLDeviceEXT; 666 | #define EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0) 667 | #define EGL_BAD_DEVICE_EXT 0x322B 668 | #define EGL_DEVICE_EXT 0x322C 669 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); 670 | typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); 671 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); 672 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); 673 | #ifdef EGL_EGLEXT_PROTOTYPES 674 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); 675 | EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name); 676 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); 677 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); 678 | #endif 679 | #endif /* EGL_EXT_device_base */ 680 | 681 | #ifndef EGL_EXT_device_drm 682 | #define EGL_EXT_device_drm 1 683 | #define EGL_DRM_DEVICE_FILE_EXT 0x3233 684 | #define EGL_DRM_MASTER_FD_EXT 0x333C 685 | #endif /* EGL_EXT_device_drm */ 686 | 687 | #ifndef EGL_EXT_device_enumeration 688 | #define EGL_EXT_device_enumeration 1 689 | #endif /* EGL_EXT_device_enumeration */ 690 | 691 | #ifndef EGL_EXT_device_openwf 692 | #define EGL_EXT_device_openwf 1 693 | #define EGL_OPENWF_DEVICE_ID_EXT 0x3237 694 | #endif /* EGL_EXT_device_openwf */ 695 | 696 | #ifndef EGL_EXT_device_query 697 | #define EGL_EXT_device_query 1 698 | #endif /* EGL_EXT_device_query */ 699 | 700 | #ifndef EGL_EXT_gl_colorspace_bt2020_linear 701 | #define EGL_EXT_gl_colorspace_bt2020_linear 1 702 | #define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F 703 | #endif /* EGL_EXT_gl_colorspace_bt2020_linear */ 704 | 705 | #ifndef EGL_EXT_gl_colorspace_bt2020_pq 706 | #define EGL_EXT_gl_colorspace_bt2020_pq 1 707 | #define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340 708 | #endif /* EGL_EXT_gl_colorspace_bt2020_pq */ 709 | 710 | #ifndef EGL_EXT_gl_colorspace_display_p3 711 | #define EGL_EXT_gl_colorspace_display_p3 1 712 | #define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363 713 | #endif /* EGL_EXT_gl_colorspace_display_p3 */ 714 | 715 | #ifndef EGL_EXT_gl_colorspace_display_p3_linear 716 | #define EGL_EXT_gl_colorspace_display_p3_linear 1 717 | #define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362 718 | #endif /* EGL_EXT_gl_colorspace_display_p3_linear */ 719 | 720 | #ifndef EGL_EXT_gl_colorspace_display_p3_passthrough 721 | #define EGL_EXT_gl_colorspace_display_p3_passthrough 1 722 | #define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490 723 | #endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */ 724 | 725 | #ifndef EGL_EXT_gl_colorspace_scrgb 726 | #define EGL_EXT_gl_colorspace_scrgb 1 727 | #define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351 728 | #endif /* EGL_EXT_gl_colorspace_scrgb */ 729 | 730 | #ifndef EGL_EXT_gl_colorspace_scrgb_linear 731 | #define EGL_EXT_gl_colorspace_scrgb_linear 1 732 | #define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350 733 | #endif /* EGL_EXT_gl_colorspace_scrgb_linear */ 734 | 735 | #ifndef EGL_EXT_image_dma_buf_import 736 | #define EGL_EXT_image_dma_buf_import 1 737 | #define EGL_LINUX_DMA_BUF_EXT 0x3270 738 | #define EGL_LINUX_DRM_FOURCC_EXT 0x3271 739 | #define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 740 | #define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 741 | #define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 742 | #define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 743 | #define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 744 | #define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 745 | #define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 746 | #define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 747 | #define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A 748 | #define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B 749 | #define EGL_SAMPLE_RANGE_HINT_EXT 0x327C 750 | #define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D 751 | #define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E 752 | #define EGL_ITU_REC601_EXT 0x327F 753 | #define EGL_ITU_REC709_EXT 0x3280 754 | #define EGL_ITU_REC2020_EXT 0x3281 755 | #define EGL_YUV_FULL_RANGE_EXT 0x3282 756 | #define EGL_YUV_NARROW_RANGE_EXT 0x3283 757 | #define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 758 | #define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 759 | #endif /* EGL_EXT_image_dma_buf_import */ 760 | 761 | #ifndef EGL_EXT_image_dma_buf_import_modifiers 762 | #define EGL_EXT_image_dma_buf_import_modifiers 1 763 | #define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440 764 | #define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441 765 | #define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442 766 | #define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443 767 | #define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444 768 | #define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445 769 | #define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446 770 | #define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447 771 | #define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448 772 | #define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449 773 | #define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A 774 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); 775 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); 776 | #ifdef EGL_EGLEXT_PROTOTYPES 777 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufFormatsEXT (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); 778 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); 779 | #endif 780 | #endif /* EGL_EXT_image_dma_buf_import_modifiers */ 781 | 782 | #ifndef EGL_EXT_image_gl_colorspace 783 | #define EGL_EXT_image_gl_colorspace 1 784 | #define EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D 785 | #endif /* EGL_EXT_image_gl_colorspace */ 786 | 787 | #ifndef EGL_EXT_image_implicit_sync_control 788 | #define EGL_EXT_image_implicit_sync_control 1 789 | #define EGL_IMPORT_SYNC_TYPE_EXT 0x3470 790 | #define EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471 791 | #define EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472 792 | #endif /* EGL_EXT_image_implicit_sync_control */ 793 | 794 | #ifndef EGL_EXT_multiview_window 795 | #define EGL_EXT_multiview_window 1 796 | #define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 797 | #endif /* EGL_EXT_multiview_window */ 798 | 799 | #ifndef EGL_EXT_output_base 800 | #define EGL_EXT_output_base 1 801 | typedef void *EGLOutputLayerEXT; 802 | typedef void *EGLOutputPortEXT; 803 | #define EGL_NO_OUTPUT_LAYER_EXT EGL_CAST(EGLOutputLayerEXT,0) 804 | #define EGL_NO_OUTPUT_PORT_EXT EGL_CAST(EGLOutputPortEXT,0) 805 | #define EGL_BAD_OUTPUT_LAYER_EXT 0x322D 806 | #define EGL_BAD_OUTPUT_PORT_EXT 0x322E 807 | #define EGL_SWAP_INTERVAL_EXT 0x322F 808 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); 809 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); 810 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); 811 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); 812 | typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); 813 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); 814 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); 815 | typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); 816 | #ifdef EGL_EGLEXT_PROTOTYPES 817 | EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); 818 | EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); 819 | EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); 820 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); 821 | EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); 822 | EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); 823 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); 824 | EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); 825 | #endif 826 | #endif /* EGL_EXT_output_base */ 827 | 828 | #ifndef EGL_EXT_output_drm 829 | #define EGL_EXT_output_drm 1 830 | #define EGL_DRM_CRTC_EXT 0x3234 831 | #define EGL_DRM_PLANE_EXT 0x3235 832 | #define EGL_DRM_CONNECTOR_EXT 0x3236 833 | #endif /* EGL_EXT_output_drm */ 834 | 835 | #ifndef EGL_EXT_output_openwf 836 | #define EGL_EXT_output_openwf 1 837 | #define EGL_OPENWF_PIPELINE_ID_EXT 0x3238 838 | #define EGL_OPENWF_PORT_ID_EXT 0x3239 839 | #endif /* EGL_EXT_output_openwf */ 840 | 841 | #ifndef EGL_EXT_pixel_format_float 842 | #define EGL_EXT_pixel_format_float 1 843 | #define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339 844 | #define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A 845 | #define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B 846 | #endif /* EGL_EXT_pixel_format_float */ 847 | 848 | #ifndef EGL_EXT_platform_base 849 | #define EGL_EXT_platform_base 1 850 | typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list); 851 | typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); 852 | typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); 853 | #ifdef EGL_EGLEXT_PROTOTYPES 854 | EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list); 855 | EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); 856 | EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); 857 | #endif 858 | #endif /* EGL_EXT_platform_base */ 859 | 860 | #ifndef EGL_EXT_platform_device 861 | #define EGL_EXT_platform_device 1 862 | #define EGL_PLATFORM_DEVICE_EXT 0x313F 863 | #endif /* EGL_EXT_platform_device */ 864 | 865 | #ifndef EGL_EXT_platform_wayland 866 | #define EGL_EXT_platform_wayland 1 867 | #define EGL_PLATFORM_WAYLAND_EXT 0x31D8 868 | #endif /* EGL_EXT_platform_wayland */ 869 | 870 | #ifndef EGL_EXT_platform_x11 871 | #define EGL_EXT_platform_x11 1 872 | #define EGL_PLATFORM_X11_EXT 0x31D5 873 | #define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6 874 | #endif /* EGL_EXT_platform_x11 */ 875 | 876 | #ifndef EGL_EXT_protected_content 877 | #define EGL_EXT_protected_content 1 878 | #define EGL_PROTECTED_CONTENT_EXT 0x32C0 879 | #endif /* EGL_EXT_protected_content */ 880 | 881 | #ifndef EGL_EXT_protected_surface 882 | #define EGL_EXT_protected_surface 1 883 | #endif /* EGL_EXT_protected_surface */ 884 | 885 | #ifndef EGL_EXT_stream_consumer_egloutput 886 | #define EGL_EXT_stream_consumer_egloutput 1 887 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); 888 | #ifdef EGL_EGLEXT_PROTOTYPES 889 | EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); 890 | #endif 891 | #endif /* EGL_EXT_stream_consumer_egloutput */ 892 | 893 | #ifndef EGL_EXT_surface_CTA861_3_metadata 894 | #define EGL_EXT_surface_CTA861_3_metadata 1 895 | #define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360 896 | #define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361 897 | #endif /* EGL_EXT_surface_CTA861_3_metadata */ 898 | 899 | #ifndef EGL_EXT_surface_SMPTE2086_metadata 900 | #define EGL_EXT_surface_SMPTE2086_metadata 1 901 | #define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341 902 | #define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342 903 | #define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343 904 | #define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344 905 | #define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345 906 | #define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346 907 | #define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347 908 | #define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348 909 | #define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349 910 | #define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A 911 | #define EGL_METADATA_SCALING_EXT 50000 912 | #endif /* EGL_EXT_surface_SMPTE2086_metadata */ 913 | 914 | #ifndef EGL_EXT_swap_buffers_with_damage 915 | #define EGL_EXT_swap_buffers_with_damage 1 916 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); 917 | #ifdef EGL_EGLEXT_PROTOTYPES 918 | EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); 919 | #endif 920 | #endif /* EGL_EXT_swap_buffers_with_damage */ 921 | 922 | #ifndef EGL_EXT_sync_reuse 923 | #define EGL_EXT_sync_reuse 1 924 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); 925 | #ifdef EGL_EGLEXT_PROTOTYPES 926 | EGLAPI EGLBoolean EGLAPIENTRY eglUnsignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); 927 | #endif 928 | #endif /* EGL_EXT_sync_reuse */ 929 | 930 | #ifndef EGL_EXT_yuv_surface 931 | #define EGL_EXT_yuv_surface 1 932 | #define EGL_YUV_ORDER_EXT 0x3301 933 | #define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 934 | #define EGL_YUV_SUBSAMPLE_EXT 0x3312 935 | #define EGL_YUV_DEPTH_RANGE_EXT 0x3317 936 | #define EGL_YUV_CSC_STANDARD_EXT 0x330A 937 | #define EGL_YUV_PLANE_BPP_EXT 0x331A 938 | #define EGL_YUV_BUFFER_EXT 0x3300 939 | #define EGL_YUV_ORDER_YUV_EXT 0x3302 940 | #define EGL_YUV_ORDER_YVU_EXT 0x3303 941 | #define EGL_YUV_ORDER_YUYV_EXT 0x3304 942 | #define EGL_YUV_ORDER_UYVY_EXT 0x3305 943 | #define EGL_YUV_ORDER_YVYU_EXT 0x3306 944 | #define EGL_YUV_ORDER_VYUY_EXT 0x3307 945 | #define EGL_YUV_ORDER_AYUV_EXT 0x3308 946 | #define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313 947 | #define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314 948 | #define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315 949 | #define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318 950 | #define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319 951 | #define EGL_YUV_CSC_STANDARD_601_EXT 0x330B 952 | #define EGL_YUV_CSC_STANDARD_709_EXT 0x330C 953 | #define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D 954 | #define EGL_YUV_PLANE_BPP_0_EXT 0x331B 955 | #define EGL_YUV_PLANE_BPP_8_EXT 0x331C 956 | #define EGL_YUV_PLANE_BPP_10_EXT 0x331D 957 | #endif /* EGL_EXT_yuv_surface */ 958 | 959 | #ifndef EGL_HI_clientpixmap 960 | #define EGL_HI_clientpixmap 1 961 | struct EGLClientPixmapHI { 962 | void *pData; 963 | EGLint iWidth; 964 | EGLint iHeight; 965 | EGLint iStride; 966 | }; 967 | #define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 968 | typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); 969 | #ifdef EGL_EGLEXT_PROTOTYPES 970 | EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); 971 | #endif 972 | #endif /* EGL_HI_clientpixmap */ 973 | 974 | #ifndef EGL_HI_colorformats 975 | #define EGL_HI_colorformats 1 976 | #define EGL_COLOR_FORMAT_HI 0x8F70 977 | #define EGL_COLOR_RGB_HI 0x8F71 978 | #define EGL_COLOR_RGBA_HI 0x8F72 979 | #define EGL_COLOR_ARGB_HI 0x8F73 980 | #endif /* EGL_HI_colorformats */ 981 | 982 | #ifndef EGL_IMG_context_priority 983 | #define EGL_IMG_context_priority 1 984 | #define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 985 | #define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 986 | #define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 987 | #define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 988 | #endif /* EGL_IMG_context_priority */ 989 | 990 | #ifndef EGL_IMG_image_plane_attribs 991 | #define EGL_IMG_image_plane_attribs 1 992 | #define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105 993 | #define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106 994 | #endif /* EGL_IMG_image_plane_attribs */ 995 | 996 | #ifndef EGL_MESA_drm_image 997 | #define EGL_MESA_drm_image 1 998 | #define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 999 | #define EGL_DRM_BUFFER_USE_MESA 0x31D1 1000 | #define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 1001 | #define EGL_DRM_BUFFER_MESA 0x31D3 1002 | #define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 1003 | #define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 1004 | #define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 1005 | #define EGL_DRM_BUFFER_USE_CURSOR_MESA 0x00000004 1006 | typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list); 1007 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); 1008 | #ifdef EGL_EGLEXT_PROTOTYPES 1009 | EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list); 1010 | EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); 1011 | #endif 1012 | #endif /* EGL_MESA_drm_image */ 1013 | 1014 | #ifndef EGL_MESA_image_dma_buf_export 1015 | #define EGL_MESA_image_dma_buf_export 1 1016 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); 1017 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); 1018 | #ifdef EGL_EGLEXT_PROTOTYPES 1019 | EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); 1020 | EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); 1021 | #endif 1022 | #endif /* EGL_MESA_image_dma_buf_export */ 1023 | 1024 | #ifndef EGL_MESA_platform_gbm 1025 | #define EGL_MESA_platform_gbm 1 1026 | #define EGL_PLATFORM_GBM_MESA 0x31D7 1027 | #endif /* EGL_MESA_platform_gbm */ 1028 | 1029 | #ifndef EGL_MESA_platform_surfaceless 1030 | #define EGL_MESA_platform_surfaceless 1 1031 | #define EGL_PLATFORM_SURFACELESS_MESA 0x31DD 1032 | #endif /* EGL_MESA_platform_surfaceless */ 1033 | 1034 | #ifndef EGL_NOK_swap_region 1035 | #define EGL_NOK_swap_region 1 1036 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); 1037 | #ifdef EGL_EGLEXT_PROTOTYPES 1038 | EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); 1039 | #endif 1040 | #endif /* EGL_NOK_swap_region */ 1041 | 1042 | #ifndef EGL_NOK_swap_region2 1043 | #define EGL_NOK_swap_region2 1 1044 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); 1045 | #ifdef EGL_EGLEXT_PROTOTYPES 1046 | EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); 1047 | #endif 1048 | #endif /* EGL_NOK_swap_region2 */ 1049 | 1050 | #ifndef EGL_NOK_texture_from_pixmap 1051 | #define EGL_NOK_texture_from_pixmap 1 1052 | #define EGL_Y_INVERTED_NOK 0x307F 1053 | #endif /* EGL_NOK_texture_from_pixmap */ 1054 | 1055 | #ifndef EGL_NV_3dvision_surface 1056 | #define EGL_NV_3dvision_surface 1 1057 | #define EGL_AUTO_STEREO_NV 0x3136 1058 | #endif /* EGL_NV_3dvision_surface */ 1059 | 1060 | #ifndef EGL_NV_context_priority_realtime 1061 | #define EGL_NV_context_priority_realtime 1 1062 | #define EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357 1063 | #endif /* EGL_NV_context_priority_realtime */ 1064 | 1065 | #ifndef EGL_NV_coverage_sample 1066 | #define EGL_NV_coverage_sample 1 1067 | #define EGL_COVERAGE_BUFFERS_NV 0x30E0 1068 | #define EGL_COVERAGE_SAMPLES_NV 0x30E1 1069 | #endif /* EGL_NV_coverage_sample */ 1070 | 1071 | #ifndef EGL_NV_coverage_sample_resolve 1072 | #define EGL_NV_coverage_sample_resolve 1 1073 | #define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 1074 | #define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 1075 | #define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 1076 | #endif /* EGL_NV_coverage_sample_resolve */ 1077 | 1078 | #ifndef EGL_NV_cuda_event 1079 | #define EGL_NV_cuda_event 1 1080 | #define EGL_CUDA_EVENT_HANDLE_NV 0x323B 1081 | #define EGL_SYNC_CUDA_EVENT_NV 0x323C 1082 | #define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D 1083 | #endif /* EGL_NV_cuda_event */ 1084 | 1085 | #ifndef EGL_NV_depth_nonlinear 1086 | #define EGL_NV_depth_nonlinear 1 1087 | #define EGL_DEPTH_ENCODING_NV 0x30E2 1088 | #define EGL_DEPTH_ENCODING_NONE_NV 0 1089 | #define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 1090 | #endif /* EGL_NV_depth_nonlinear */ 1091 | 1092 | #ifndef EGL_NV_device_cuda 1093 | #define EGL_NV_device_cuda 1 1094 | #define EGL_CUDA_DEVICE_NV 0x323A 1095 | #endif /* EGL_NV_device_cuda */ 1096 | 1097 | #ifndef EGL_NV_native_query 1098 | #define EGL_NV_native_query 1 1099 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id); 1100 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); 1101 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); 1102 | #ifdef EGL_EGLEXT_PROTOTYPES 1103 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id); 1104 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); 1105 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); 1106 | #endif 1107 | #endif /* EGL_NV_native_query */ 1108 | 1109 | #ifndef EGL_NV_post_convert_rounding 1110 | #define EGL_NV_post_convert_rounding 1 1111 | #endif /* EGL_NV_post_convert_rounding */ 1112 | 1113 | #ifndef EGL_NV_post_sub_buffer 1114 | #define EGL_NV_post_sub_buffer 1 1115 | #define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE 1116 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); 1117 | #ifdef EGL_EGLEXT_PROTOTYPES 1118 | EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); 1119 | #endif 1120 | #endif /* EGL_NV_post_sub_buffer */ 1121 | 1122 | #ifndef EGL_NV_robustness_video_memory_purge 1123 | #define EGL_NV_robustness_video_memory_purge 1 1124 | #define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C 1125 | #endif /* EGL_NV_robustness_video_memory_purge */ 1126 | 1127 | #ifndef EGL_NV_stream_consumer_gltexture_yuv 1128 | #define EGL_NV_stream_consumer_gltexture_yuv 1 1129 | #define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C 1130 | #define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D 1131 | #define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E 1132 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); 1133 | #ifdef EGL_EGLEXT_PROTOTYPES 1134 | EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); 1135 | #endif 1136 | #endif /* EGL_NV_stream_consumer_gltexture_yuv */ 1137 | 1138 | #ifndef EGL_NV_stream_cross_display 1139 | #define EGL_NV_stream_cross_display 1 1140 | #define EGL_STREAM_CROSS_DISPLAY_NV 0x334E 1141 | #endif /* EGL_NV_stream_cross_display */ 1142 | 1143 | #ifndef EGL_NV_stream_cross_object 1144 | #define EGL_NV_stream_cross_object 1 1145 | #define EGL_STREAM_CROSS_OBJECT_NV 0x334D 1146 | #endif /* EGL_NV_stream_cross_object */ 1147 | 1148 | #ifndef EGL_NV_stream_cross_partition 1149 | #define EGL_NV_stream_cross_partition 1 1150 | #define EGL_STREAM_CROSS_PARTITION_NV 0x323F 1151 | #endif /* EGL_NV_stream_cross_partition */ 1152 | 1153 | #ifndef EGL_NV_stream_cross_process 1154 | #define EGL_NV_stream_cross_process 1 1155 | #define EGL_STREAM_CROSS_PROCESS_NV 0x3245 1156 | #endif /* EGL_NV_stream_cross_process */ 1157 | 1158 | #ifndef EGL_NV_stream_cross_system 1159 | #define EGL_NV_stream_cross_system 1 1160 | #define EGL_STREAM_CROSS_SYSTEM_NV 0x334F 1161 | #endif /* EGL_NV_stream_cross_system */ 1162 | 1163 | #ifndef EGL_NV_stream_fifo_next 1164 | #define EGL_NV_stream_fifo_next 1 1165 | #define EGL_PENDING_FRAME_NV 0x3329 1166 | #define EGL_STREAM_TIME_PENDING_NV 0x332A 1167 | #endif /* EGL_NV_stream_fifo_next */ 1168 | 1169 | #ifndef EGL_NV_stream_fifo_synchronous 1170 | #define EGL_NV_stream_fifo_synchronous 1 1171 | #define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336 1172 | #endif /* EGL_NV_stream_fifo_synchronous */ 1173 | 1174 | #ifndef EGL_NV_stream_flush 1175 | #define EGL_NV_stream_flush 1 1176 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMFLUSHNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); 1177 | #ifdef EGL_EGLEXT_PROTOTYPES 1178 | EGLAPI EGLBoolean EGLAPIENTRY eglStreamFlushNV (EGLDisplay dpy, EGLStreamKHR stream); 1179 | #endif 1180 | #endif /* EGL_NV_stream_flush */ 1181 | 1182 | #ifndef EGL_NV_stream_frame_limits 1183 | #define EGL_NV_stream_frame_limits 1 1184 | #define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337 1185 | #define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338 1186 | #endif /* EGL_NV_stream_frame_limits */ 1187 | 1188 | #ifndef EGL_NV_stream_metadata 1189 | #define EGL_NV_stream_metadata 1 1190 | #define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250 1191 | #define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251 1192 | #define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252 1193 | #define EGL_PRODUCER_METADATA_NV 0x3253 1194 | #define EGL_CONSUMER_METADATA_NV 0x3254 1195 | #define EGL_PENDING_METADATA_NV 0x3328 1196 | #define EGL_METADATA0_SIZE_NV 0x3255 1197 | #define EGL_METADATA1_SIZE_NV 0x3256 1198 | #define EGL_METADATA2_SIZE_NV 0x3257 1199 | #define EGL_METADATA3_SIZE_NV 0x3258 1200 | #define EGL_METADATA0_TYPE_NV 0x3259 1201 | #define EGL_METADATA1_TYPE_NV 0x325A 1202 | #define EGL_METADATA2_TYPE_NV 0x325B 1203 | #define EGL_METADATA3_TYPE_NV 0x325C 1204 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); 1205 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); 1206 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); 1207 | #ifdef EGL_EGLEXT_PROTOTYPES 1208 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); 1209 | EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); 1210 | EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); 1211 | #endif 1212 | #endif /* EGL_NV_stream_metadata */ 1213 | 1214 | #ifndef EGL_NV_stream_remote 1215 | #define EGL_NV_stream_remote 1 1216 | #define EGL_STREAM_STATE_INITIALIZING_NV 0x3240 1217 | #define EGL_STREAM_TYPE_NV 0x3241 1218 | #define EGL_STREAM_PROTOCOL_NV 0x3242 1219 | #define EGL_STREAM_ENDPOINT_NV 0x3243 1220 | #define EGL_STREAM_LOCAL_NV 0x3244 1221 | #define EGL_STREAM_PRODUCER_NV 0x3247 1222 | #define EGL_STREAM_CONSUMER_NV 0x3248 1223 | #define EGL_STREAM_PROTOCOL_FD_NV 0x3246 1224 | #endif /* EGL_NV_stream_remote */ 1225 | 1226 | #ifndef EGL_NV_stream_reset 1227 | #define EGL_NV_stream_reset 1 1228 | #define EGL_SUPPORT_RESET_NV 0x3334 1229 | #define EGL_SUPPORT_REUSE_NV 0x3335 1230 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLRESETSTREAMNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); 1231 | #ifdef EGL_EGLEXT_PROTOTYPES 1232 | EGLAPI EGLBoolean EGLAPIENTRY eglResetStreamNV (EGLDisplay dpy, EGLStreamKHR stream); 1233 | #endif 1234 | #endif /* EGL_NV_stream_reset */ 1235 | 1236 | #ifndef EGL_NV_stream_socket 1237 | #define EGL_NV_stream_socket 1 1238 | #define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B 1239 | #define EGL_SOCKET_HANDLE_NV 0x324C 1240 | #define EGL_SOCKET_TYPE_NV 0x324D 1241 | #endif /* EGL_NV_stream_socket */ 1242 | 1243 | #ifndef EGL_NV_stream_socket_inet 1244 | #define EGL_NV_stream_socket_inet 1 1245 | #define EGL_SOCKET_TYPE_INET_NV 0x324F 1246 | #endif /* EGL_NV_stream_socket_inet */ 1247 | 1248 | #ifndef EGL_NV_stream_socket_unix 1249 | #define EGL_NV_stream_socket_unix 1 1250 | #define EGL_SOCKET_TYPE_UNIX_NV 0x324E 1251 | #endif /* EGL_NV_stream_socket_unix */ 1252 | 1253 | #ifndef EGL_NV_stream_sync 1254 | #define EGL_NV_stream_sync 1 1255 | #define EGL_SYNC_NEW_FRAME_NV 0x321F 1256 | typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); 1257 | #ifdef EGL_EGLEXT_PROTOTYPES 1258 | EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); 1259 | #endif 1260 | #endif /* EGL_NV_stream_sync */ 1261 | 1262 | #ifndef EGL_NV_sync 1263 | #define EGL_NV_sync 1 1264 | typedef void *EGLSyncNV; 1265 | typedef khronos_utime_nanoseconds_t EGLTimeNV; 1266 | #ifdef KHRONOS_SUPPORT_INT64 1267 | #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 1268 | #define EGL_SYNC_STATUS_NV 0x30E7 1269 | #define EGL_SIGNALED_NV 0x30E8 1270 | #define EGL_UNSIGNALED_NV 0x30E9 1271 | #define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 1272 | #define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull 1273 | #define EGL_ALREADY_SIGNALED_NV 0x30EA 1274 | #define EGL_TIMEOUT_EXPIRED_NV 0x30EB 1275 | #define EGL_CONDITION_SATISFIED_NV 0x30EC 1276 | #define EGL_SYNC_TYPE_NV 0x30ED 1277 | #define EGL_SYNC_CONDITION_NV 0x30EE 1278 | #define EGL_SYNC_FENCE_NV 0x30EF 1279 | #define EGL_NO_SYNC_NV EGL_CAST(EGLSyncNV,0) 1280 | typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); 1281 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); 1282 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync); 1283 | typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); 1284 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); 1285 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value); 1286 | #ifdef EGL_EGLEXT_PROTOTYPES 1287 | EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); 1288 | EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync); 1289 | EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync); 1290 | EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); 1291 | EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode); 1292 | EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value); 1293 | #endif 1294 | #endif /* KHRONOS_SUPPORT_INT64 */ 1295 | #endif /* EGL_NV_sync */ 1296 | 1297 | #ifndef EGL_NV_system_time 1298 | #define EGL_NV_system_time 1 1299 | typedef khronos_utime_nanoseconds_t EGLuint64NV; 1300 | #ifdef KHRONOS_SUPPORT_INT64 1301 | typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); 1302 | typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void); 1303 | #ifdef EGL_EGLEXT_PROTOTYPES 1304 | EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void); 1305 | EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); 1306 | #endif 1307 | #endif /* KHRONOS_SUPPORT_INT64 */ 1308 | #endif /* EGL_NV_system_time */ 1309 | 1310 | #ifndef EGL_TIZEN_image_native_buffer 1311 | #define EGL_TIZEN_image_native_buffer 1 1312 | #define EGL_NATIVE_BUFFER_TIZEN 0x32A0 1313 | #endif /* EGL_TIZEN_image_native_buffer */ 1314 | 1315 | #ifndef EGL_TIZEN_image_native_surface 1316 | #define EGL_TIZEN_image_native_surface 1 1317 | #define EGL_NATIVE_SURFACE_TIZEN 0x32A1 1318 | #endif /* EGL_TIZEN_image_native_surface */ 1319 | 1320 | #ifdef __cplusplus 1321 | } 1322 | #endif 1323 | 1324 | #endif 1325 | --------------------------------------------------------------------------------