Home | History | Annotate | Download | only in EGL
      1 #ifndef __eglext_h_
      2 #define __eglext_h_
      3 
      4 #ifdef __cplusplus
      5 extern "C" {
      6 #endif
      7 
      8 /*
      9 ** Copyright (c) 2007-2013 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 #include <EGL/eglplatform.h>
     32 
     33 /*************************************************************/
     34 
     35 /* Header file version number */
     36 /* Current version at http://www.khronos.org/registry/egl/ */
     37 /* $Revision: 20690 $ on $Date: 2013-02-22 17:15:05 -0800 (Fri, 22 Feb 2013) $ */
     38 #define EGL_EGLEXT_VERSION 15
     39 
     40 #ifndef EGL_KHR_config_attribs
     41 #define EGL_KHR_config_attribs 1
     42 #define EGL_CONFORMANT_KHR			0x3042	/* EGLConfig attribute */
     43 #define EGL_VG_COLORSPACE_LINEAR_BIT_KHR	0x0020	/* EGL_SURFACE_TYPE bitfield */
     44 #define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR		0x0040	/* EGL_SURFACE_TYPE bitfield */
     45 #endif
     46 
     47 #ifndef EGL_KHR_lock_surface
     48 #define EGL_KHR_lock_surface 1
     49 #define EGL_READ_SURFACE_BIT_KHR		0x0001	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
     50 #define EGL_WRITE_SURFACE_BIT_KHR		0x0002	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
     51 #define EGL_LOCK_SURFACE_BIT_KHR		0x0080	/* EGL_SURFACE_TYPE bitfield */
     52 #define EGL_OPTIMAL_FORMAT_BIT_KHR		0x0100	/* EGL_SURFACE_TYPE bitfield */
     53 #define EGL_MATCH_FORMAT_KHR			0x3043	/* EGLConfig attribute */
     54 #define EGL_FORMAT_RGB_565_EXACT_KHR		0x30C0	/* EGL_MATCH_FORMAT_KHR value */
     55 #define EGL_FORMAT_RGB_565_KHR			0x30C1	/* EGL_MATCH_FORMAT_KHR value */
     56 #define EGL_FORMAT_RGBA_8888_EXACT_KHR		0x30C2	/* EGL_MATCH_FORMAT_KHR value */
     57 #define EGL_FORMAT_RGBA_8888_KHR		0x30C3	/* EGL_MATCH_FORMAT_KHR value */
     58 #define EGL_MAP_PRESERVE_PIXELS_KHR		0x30C4	/* eglLockSurfaceKHR attribute */
     59 #define EGL_LOCK_USAGE_HINT_KHR			0x30C5	/* eglLockSurfaceKHR attribute */
     60 #define EGL_BITMAP_POINTER_KHR			0x30C6	/* eglQuerySurface attribute */
     61 #define EGL_BITMAP_PITCH_KHR			0x30C7	/* eglQuerySurface attribute */
     62 #define EGL_BITMAP_ORIGIN_KHR			0x30C8	/* eglQuerySurface attribute */
     63 #define EGL_BITMAP_PIXEL_RED_OFFSET_KHR		0x30C9	/* eglQuerySurface attribute */
     64 #define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR	0x30CA	/* eglQuerySurface attribute */
     65 #define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR	0x30CB	/* eglQuerySurface attribute */
     66 #define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR	0x30CC	/* eglQuerySurface attribute */
     67 #define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR	0x30CD	/* eglQuerySurface attribute */
     68 #define EGL_LOWER_LEFT_KHR			0x30CE	/* EGL_BITMAP_ORIGIN_KHR value */
     69 #define EGL_UPPER_LEFT_KHR			0x30CF	/* EGL_BITMAP_ORIGIN_KHR value */
     70 #ifdef EGL_EGLEXT_PROTOTYPES
     71 EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
     72 EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay display, EGLSurface surface);
     73 #endif /* EGL_EGLEXT_PROTOTYPES */
     74 typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
     75 typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface);
     76 #endif
     77 
     78 #ifndef EGL_KHR_image
     79 #define EGL_KHR_image 1
     80 #define EGL_NATIVE_PIXMAP_KHR			0x30B0	/* eglCreateImageKHR target */
     81 typedef void *EGLImageKHR;
     82 #define EGL_NO_IMAGE_KHR			EGL_CAST(EGLImageKHR, 0)
     83 #ifdef EGL_EGLEXT_PROTOTYPES
     84 EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
     85 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
     86 #endif /* EGL_EGLEXT_PROTOTYPES */
     87 typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
     88 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
     89 #endif
     90 
     91 #ifndef EGL_KHR_vg_parent_image
     92 #define EGL_KHR_vg_parent_image 1
     93 #define EGL_VG_PARENT_IMAGE_KHR			0x30BA	/* eglCreateImageKHR target */
     94 #endif
     95 
     96 #ifndef EGL_KHR_gl_texture_2D_image
     97 #define EGL_KHR_gl_texture_2D_image 1
     98 #define EGL_GL_TEXTURE_2D_KHR			0x30B1	/* eglCreateImageKHR target */
     99 #define EGL_GL_TEXTURE_LEVEL_KHR		0x30BC	/* eglCreateImageKHR attribute */
    100 #endif
    101 
    102 #ifndef EGL_KHR_gl_texture_cubemap_image
    103 #define EGL_KHR_gl_texture_cubemap_image 1
    104 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR	0x30B3	/* eglCreateImageKHR target */
    105 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR	0x30B4	/* eglCreateImageKHR target */
    106 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR	0x30B5	/* eglCreateImageKHR target */
    107 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR	0x30B6	/* eglCreateImageKHR target */
    108 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR	0x30B7	/* eglCreateImageKHR target */
    109 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR	0x30B8	/* eglCreateImageKHR target */
    110 #endif
    111 
    112 #ifndef EGL_KHR_gl_texture_3D_image
    113 #define EGL_KHR_gl_texture_3D_image 1
    114 #define EGL_GL_TEXTURE_3D_KHR			0x30B2	/* eglCreateImageKHR target */
    115 #define EGL_GL_TEXTURE_ZOFFSET_KHR		0x30BD	/* eglCreateImageKHR attribute */
    116 #endif
    117 
    118 #ifndef EGL_KHR_gl_colorspace
    119 #define EGL_KHR_gl_colorspace 1
    120 #define EGL_GL_COLORSPACE_KHR             0x309D
    121 #define EGL_GL_COLORSPACE_SRGB_KHR        0x3089
    122 #define EGL_GL_COLORSPACE_LINEAR_KHR      0x308A
    123 #endif
    124 
    125 #ifndef EGL_KHR_gl_renderbuffer_image
    126 #define EGL_KHR_gl_renderbuffer_image 1
    127 #define EGL_GL_RENDERBUFFER_KHR			0x30B9	/* eglCreateImageKHR target */
    128 #endif
    129 
    130 #if KHRONOS_SUPPORT_INT64   /* EGLTimeKHR requires 64-bit uint support */
    131 #ifndef EGL_KHR_reusable_sync
    132 #define EGL_KHR_reusable_sync 1
    133 
    134 typedef void* EGLSyncKHR;
    135 typedef khronos_utime_nanoseconds_t EGLTimeKHR;
    136 
    137 #define EGL_SYNC_STATUS_KHR			0x30F1
    138 #define EGL_SIGNALED_KHR			0x30F2
    139 #define EGL_UNSIGNALED_KHR			0x30F3
    140 #define EGL_TIMEOUT_EXPIRED_KHR			0x30F5
    141 #define EGL_CONDITION_SATISFIED_KHR		0x30F6
    142 #define EGL_SYNC_TYPE_KHR			0x30F7
    143 #define EGL_SYNC_REUSABLE_KHR			0x30FA
    144 #define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR		0x0001	/* eglClientWaitSyncKHR <flags> bitfield */
    145 #define EGL_FOREVER_KHR				0xFFFFFFFFFFFFFFFFull
    146 #define EGL_NO_SYNC_KHR				EGL_CAST(EGLSyncKHR, 0)
    147 #ifdef EGL_EGLEXT_PROTOTYPES
    148 EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
    149 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync);
    150 EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
    151 EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
    152 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
    153 #endif /* EGL_EGLEXT_PROTOTYPES */
    154 typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
    155 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
    156 typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
    157 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
    158 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
    159 #endif
    160 #endif
    161 
    162 #ifndef EGL_KHR_image_base
    163 #define EGL_KHR_image_base 1
    164 /* Most interfaces defined by EGL_KHR_image_pixmap above */
    165 #define EGL_IMAGE_PRESERVED_KHR			0x30D2	/* eglCreateImageKHR attribute */
    166 #endif
    167 
    168 #ifndef EGL_KHR_image_pixmap
    169 #define EGL_KHR_image_pixmap 1
    170 /* Interfaces defined by EGL_KHR_image above */
    171 #endif
    172 
    173 #ifndef EGL_IMG_context_priority
    174 #define EGL_IMG_context_priority 1
    175 #define EGL_CONTEXT_PRIORITY_LEVEL_IMG		0x3100
    176 #define EGL_CONTEXT_PRIORITY_HIGH_IMG		0x3101
    177 #define EGL_CONTEXT_PRIORITY_MEDIUM_IMG		0x3102
    178 #define EGL_CONTEXT_PRIORITY_LOW_IMG		0x3103
    179 #endif
    180 
    181 #ifndef EGL_KHR_lock_surface2
    182 #define EGL_KHR_lock_surface2 1
    183 #define EGL_BITMAP_PIXEL_SIZE_KHR		0x3110
    184 #endif
    185 
    186 #ifndef EGL_KHR_partial_update
    187 #define EGL_KHR_partial_update 1
    188 #define EGL_BUFFER_AGE_KHR                0x313D
    189 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
    190 #ifdef EGL_EGLEXT_PROTOTYPES
    191 EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
    192 #endif
    193 #endif /* EGL_KHR_partial_update */
    194 
    195 #ifndef EGL_NV_coverage_sample
    196 #define EGL_NV_coverage_sample 1
    197 #define EGL_COVERAGE_BUFFERS_NV			0x30E0
    198 #define EGL_COVERAGE_SAMPLES_NV			0x30E1
    199 #endif
    200 
    201 #ifndef EGL_NV_depth_nonlinear
    202 #define EGL_NV_depth_nonlinear 1
    203 #define EGL_DEPTH_ENCODING_NV			0x30E2
    204 #define EGL_DEPTH_ENCODING_NONE_NV 0
    205 #define EGL_DEPTH_ENCODING_NONLINEAR_NV		0x30E3
    206 #endif
    207 
    208 #if KHRONOS_SUPPORT_INT64   /* EGLTimeNV requires 64-bit uint support */
    209 #ifndef EGL_NV_sync
    210 #define EGL_NV_sync 1
    211 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV	0x30E6
    212 #define EGL_SYNC_STATUS_NV			0x30E7
    213 #define EGL_SIGNALED_NV				0x30E8
    214 #define EGL_UNSIGNALED_NV			0x30E9
    215 #define EGL_SYNC_FLUSH_COMMANDS_BIT_NV		0x0001
    216 #define EGL_FOREVER_NV				0xFFFFFFFFFFFFFFFFull
    217 #define EGL_ALREADY_SIGNALED_NV			0x30EA
    218 #define EGL_TIMEOUT_EXPIRED_NV			0x30EB
    219 #define EGL_CONDITION_SATISFIED_NV		0x30EC
    220 #define EGL_SYNC_TYPE_NV			0x30ED
    221 #define EGL_SYNC_CONDITION_NV			0x30EE
    222 #define EGL_SYNC_FENCE_NV			0x30EF
    223 #define EGL_NO_SYNC_NV				EGL_CAST(EGLSyncNV, 0)
    224 typedef void* EGLSyncNV;
    225 typedef khronos_utime_nanoseconds_t EGLTimeNV;
    226 #ifdef EGL_EGLEXT_PROTOTYPES
    227 EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
    228 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync);
    229 EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync);
    230 EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
    231 EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode);
    232 EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value);
    233 #endif /* EGL_EGLEXT_PROTOTYPES */
    234 typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
    235 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
    236 typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
    237 typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
    238 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
    239 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
    240 #endif
    241 #endif
    242 
    243 #if KHRONOS_SUPPORT_INT64   /* Dependent on EGL_KHR_reusable_sync which requires 64-bit uint support */
    244 #ifndef EGL_KHR_fence_sync
    245 #define EGL_KHR_fence_sync 1
    246 /* Reuses most tokens and entry points from EGL_KHR_reusable_sync */
    247 #define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR	0x30F0
    248 #define EGL_SYNC_CONDITION_KHR			0x30F8
    249 #define EGL_SYNC_FENCE_KHR			0x30F9
    250 #endif
    251 #endif
    252 
    253 #ifndef EGL_HI_clientpixmap
    254 #define EGL_HI_clientpixmap 1
    255 
    256 /* Surface Attribute */
    257 #define EGL_CLIENT_PIXMAP_POINTER_HI		0x8F74
    258 /*
    259  * Structure representing a client pixmap
    260  * (pixmap's data is in client-space memory).
    261  */
    262 struct EGLClientPixmapHI
    263 {
    264 	void*		pData;
    265 	EGLint		iWidth;
    266 	EGLint		iHeight;
    267 	EGLint		iStride;
    268 };
    269 #ifdef EGL_EGLEXT_PROTOTYPES
    270 EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
    271 #endif /* EGL_EGLEXT_PROTOTYPES */
    272 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
    273 #endif	/* EGL_HI_clientpixmap */
    274 
    275 #ifndef EGL_HI_colorformats
    276 #define EGL_HI_colorformats 1
    277 /* Config Attribute */
    278 #define EGL_COLOR_FORMAT_HI			0x8F70
    279 /* Color Formats */
    280 #define EGL_COLOR_RGB_HI			0x8F71
    281 #define EGL_COLOR_RGBA_HI			0x8F72
    282 #define EGL_COLOR_ARGB_HI			0x8F73
    283 #endif /* EGL_HI_colorformats */
    284 
    285 #ifndef EGL_MESA_drm_image
    286 #define EGL_MESA_drm_image 1
    287 #define EGL_DRM_BUFFER_FORMAT_MESA		0x31D0	    /* CreateDRMImageMESA attribute */
    288 #define EGL_DRM_BUFFER_USE_MESA			0x31D1	    /* CreateDRMImageMESA attribute */
    289 #define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA	0x31D2	    /* EGL_IMAGE_FORMAT_MESA attribute value */
    290 #define EGL_DRM_BUFFER_MESA			0x31D3	    /* eglCreateImageKHR target */
    291 #define EGL_DRM_BUFFER_STRIDE_MESA		0x31D4
    292 #define EGL_DRM_BUFFER_USE_SCANOUT_MESA		0x00000001  /* EGL_DRM_BUFFER_USE_MESA bits */
    293 #define EGL_DRM_BUFFER_USE_SHARE_MESA		0x00000002  /* EGL_DRM_BUFFER_USE_MESA bits */
    294 #ifdef EGL_EGLEXT_PROTOTYPES
    295 EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list);
    296 EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
    297 #endif /* EGL_EGLEXT_PROTOTYPES */
    298 typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list);
    299 typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
    300 #endif
    301 
    302 #ifndef EGL_NV_post_sub_buffer
    303 #define EGL_NV_post_sub_buffer 1
    304 #define EGL_POST_SUB_BUFFER_SUPPORTED_NV	0x30BE
    305 #ifdef EGL_EGLEXT_PROTOTYPES
    306 EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
    307 #endif /* EGL_EGLEXT_PROTOTYPES */
    308 typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
    309 #endif
    310 
    311 #ifndef EGL_ANGLE_query_surface_pointer
    312 #define EGL_ANGLE_query_surface_pointer 1
    313 #ifdef EGL_EGLEXT_PROTOTYPES
    314 EGLAPI EGLBoolean eglQuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
    315 #endif
    316 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
    317 #endif
    318 
    319 #ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle
    320 #define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
    321 #define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE	0x3200
    322 #endif
    323 
    324 #ifndef EGL_NV_coverage_sample_resolve
    325 #define EGL_NV_coverage_sample_resolve 1
    326 #define EGL_COVERAGE_SAMPLE_RESOLVE_NV		0x3131
    327 #define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV	0x3132
    328 #define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV	0x3133
    329 #endif
    330 
    331 #if KHRONOS_SUPPORT_INT64   /* EGLuint64NV requires 64-bit uint support */
    332 #ifndef EGL_NV_system_time
    333 #define EGL_NV_system_time 1
    334 typedef khronos_utime_nanoseconds_t EGLuint64NV;
    335 #ifdef EGL_EGLEXT_PROTOTYPES
    336 EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV(void);
    337 EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV(void);
    338 #endif /* EGL_EGLEXT_PROTOTYPES */
    339 typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void);
    340 typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void);
    341 #endif
    342 #endif
    343 
    344 #if KHRONOS_SUPPORT_INT64 /* EGLuint64KHR requires 64-bit uint support */
    345 #ifndef EGL_KHR_stream
    346 #define EGL_KHR_stream 1
    347 typedef void* EGLStreamKHR;
    348 typedef khronos_uint64_t EGLuint64KHR;
    349 #define EGL_NO_STREAM_KHR			EGL_CAST(EGLStreamKHR, 0)
    350 #define EGL_CONSUMER_LATENCY_USEC_KHR		0x3210
    351 #define EGL_PRODUCER_FRAME_KHR			0x3212
    352 #define EGL_CONSUMER_FRAME_KHR			0x3213
    353 #define EGL_STREAM_STATE_KHR			0x3214
    354 #define EGL_STREAM_STATE_CREATED_KHR		0x3215
    355 #define EGL_STREAM_STATE_CONNECTING_KHR		0x3216
    356 #define EGL_STREAM_STATE_EMPTY_KHR		0x3217
    357 #define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR    0x3218
    358 #define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR    0x3219
    359 #define EGL_STREAM_STATE_DISCONNECTED_KHR	0x321A
    360 #define EGL_BAD_STREAM_KHR			0x321B
    361 #define EGL_BAD_STATE_KHR			0x321C
    362 #ifdef EGL_EGLEXT_PROTOTYPES
    363 EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_list);
    364 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream);
    365 EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
    366 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
    367 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
    368 #endif /* EGL_EGLEXT_PROTOTYPES */
    369 typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC)(EGLDisplay dpy, const EGLint *attrib_list);
    370 typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
    371 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
    372 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
    373 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
    374 #endif
    375 #endif
    376 
    377 #ifdef EGL_KHR_stream /* Requires KHR_stream extension */
    378 #ifndef EGL_KHR_stream_consumer_gltexture
    379 #define EGL_KHR_stream_consumer_gltexture 1
    380 #define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR	0x321E
    381 #ifdef EGL_EGLEXT_PROTOTYPES
    382 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EGLStreamKHR stream);
    383 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream);
    384 EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream);
    385 #endif /* EGL_EGLEXT_PROTOTYPES */
    386 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
    387 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
    388 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
    389 #endif
    390 #endif
    391 
    392 #ifdef EGL_KHR_stream /* Requires KHR_stream extension */
    393 #ifndef EGL_KHR_stream_producer_eglsurface
    394 #define EGL_KHR_stream_producer_eglsurface 1
    395 #define EGL_STREAM_BIT_KHR			0x0800
    396 #ifdef EGL_EGLEXT_PROTOTYPES
    397 EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
    398 #endif /* EGL_EGLEXT_PROTOTYPES */
    399 typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
    400 #endif
    401 #endif
    402 
    403 #ifdef EGL_KHR_stream /* Requires KHR_stream extension */
    404 #ifndef EGL_KHR_stream_producer_aldatalocator
    405 #define EGL_KHR_stream_producer_aldatalocator 1
    406 #endif
    407 #endif
    408 
    409 #ifdef EGL_KHR_stream /* Requires KHR_stream extension */
    410 #ifndef EGL_KHR_stream_fifo
    411 #define EGL_KHR_stream_fifo 1
    412 /* reuse EGLTimeKHR */
    413 #define EGL_STREAM_FIFO_LENGTH_KHR		0x31FC
    414 #define EGL_STREAM_TIME_NOW_KHR			0x31FD
    415 #define EGL_STREAM_TIME_CONSUMER_KHR		0x31FE
    416 #define EGL_STREAM_TIME_PRODUCER_KHR		0x31FF
    417 #ifdef EGL_EGLEXT_PROTOTYPES
    418 EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
    419 #endif /* EGL_EGLEXT_PROTOTYPES */
    420 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
    421 #endif
    422 #endif
    423 
    424 #ifndef EGL_EXT_create_context_robustness
    425 #define EGL_EXT_create_context_robustness 1
    426 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT	0x30BF
    427 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
    428 #define EGL_NO_RESET_NOTIFICATION_EXT		0x31BE
    429 #define EGL_LOSE_CONTEXT_ON_RESET_EXT		0x31BF
    430 #endif
    431 
    432 #ifndef EGL_ANGLE_d3d_share_handle_client_buffer
    433 #define EGL_ANGLE_d3d_share_handle_client_buffer 1
    434 /* reuse EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE */
    435 #endif
    436 
    437 #ifndef EGL_KHR_create_context
    438 #define EGL_KHR_create_context 1
    439 #define EGL_CONTEXT_MAJOR_VERSION_KHR			    EGL_CONTEXT_CLIENT_VERSION
    440 #define EGL_CONTEXT_MINOR_VERSION_KHR			    0x30FB
    441 #define EGL_CONTEXT_FLAGS_KHR				    0x30FC
    442 #define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR		    0x30FD
    443 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR  0x31BD
    444 #define EGL_NO_RESET_NOTIFICATION_KHR			    0x31BE
    445 #define EGL_LOSE_CONTEXT_ON_RESET_KHR			    0x31BF
    446 #define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR		    0x00000001
    447 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR	    0x00000002
    448 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR	    0x00000004
    449 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR		    0x00000001
    450 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR    0x00000002
    451 #define EGL_OPENGL_ES3_BIT_KHR				    0x00000040
    452 #endif
    453 
    454 #ifndef EGL_KHR_create_context_no_error
    455 #define EGL_KHR_create_context_no_error 1
    456 #define EGL_CONTEXT_OPENGL_NO_ERROR_KHR   0x31B3
    457 #endif /* EGL_KHR_create_context_no_error */
    458 
    459 #ifndef EGL_KHR_surfaceless_context
    460 #define EGL_KHR_surfaceless_context 1
    461 /* No tokens/entry points, just relaxes an error condition */
    462 #endif
    463 
    464 #ifndef EGL_KHR_swap_buffers_with_damage
    465 #define EGL_KHR_swap_buffers_with_damage 1
    466 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
    467 #ifdef EGL_EGLEXT_PROTOTYPES
    468 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
    469 #endif
    470 #endif /* EGL_KHR_swap_buffers_with_damage */
    471 
    472 #ifdef EGL_KHR_stream /* Requires KHR_stream extension */
    473 #ifndef EGL_KHR_stream_cross_process_fd
    474 #define EGL_KHR_stream_cross_process_fd 1
    475 typedef int EGLNativeFileDescriptorKHR;
    476 #define EGL_NO_FILE_DESCRIPTOR_KHR		EGL_CAST(EGLNativeFileDescriptorKHR, -1)
    477 #ifdef EGL_EGLEXT_PROTOTYPES
    478 EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR(EGLDisplay dpy, EGLStreamKHR stream);
    479 EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
    480 #endif /* EGL_EGLEXT_PROTOTYPES */
    481 typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
    482 typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
    483 #endif
    484 #endif
    485 
    486 #ifndef EGL_EXT_multiview_window
    487 #define EGL_EXT_multiview_window 1
    488 #define EGL_MULTIVIEW_VIEW_COUNT_EXT		0x3134
    489 #endif
    490 
    491 #ifndef EGL_KHR_wait_sync
    492 #define EGL_KHR_wait_sync 1
    493 #ifdef EGL_EGLEXT_PROTOTYPES
    494 EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
    495 #endif /* EGL_EGLEXT_PROTOTYPES */
    496 typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
    497 #endif
    498 
    499 #ifndef EGL_NV_post_convert_rounding
    500 #define EGL_NV_post_convert_rounding 1
    501 /* No tokens or entry points, just relaxes behavior of SwapBuffers */
    502 #endif
    503 
    504 #ifndef EGL_NV_native_query
    505 #define EGL_NV_native_query 1
    506 #ifdef EGL_EGLEXT_PROTOTYPES
    507 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV( EGLDisplay dpy, EGLNativeDisplayType* display_id);
    508 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV( EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType* window);
    509 EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV( EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType* pixmap);
    510 #endif /* EGL_EGLEXT_PROTOTYPES */
    511 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC)(EGLDisplay dpy, EGLNativeDisplayType *display_id);
    512 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window);
    513 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap);
    514 #endif
    515 
    516 #ifndef EGL_NV_3dvision_surface
    517 #define EGL_NV_3dvision_surface 1
    518 #define EGL_AUTO_STEREO_NV			0x3136
    519 #endif
    520 
    521 #ifndef EGL_ANDROID_framebuffer_target
    522 #define EGL_ANDROID_framebuffer_target 1
    523 #define EGL_FRAMEBUFFER_TARGET_ANDROID		0x3147
    524 #endif
    525 
    526 #ifndef EGL_ANDROID_image_crop
    527 #define EGL_ANDROID_image_crop 1
    528 #define EGL_IMAGE_CROP_LEFT_ANDROID   0x3148
    529 #define EGL_IMAGE_CROP_TOP_ANDROID    0x3149
    530 #define EGL_IMAGE_CROP_RIGHT_ANDROID  0x314A
    531 #define EGL_IMAGE_CROP_BOTTOM_ANDROID 0x314B
    532 #endif
    533 
    534 #ifndef EGL_ANDROID_blob_cache
    535 #define EGL_ANDROID_blob_cache 1
    536 typedef khronos_ssize_t EGLsizeiANDROID;
    537 typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
    538 typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
    539 #ifdef EGL_EGLEXT_PROTOTYPES
    540 EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
    541 #endif /* EGL_EGLEXT_PROTOTYPES */
    542 typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC)(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
    543 #endif
    544 
    545 #ifndef EGL_ANDROID_image_native_buffer
    546 #define EGL_ANDROID_image_native_buffer 1
    547 #define EGL_NATIVE_BUFFER_ANDROID		0x3140
    548 #endif
    549 
    550 #ifndef EGL_ANDROID_native_fence_sync
    551 #define EGL_ANDROID_native_fence_sync 1
    552 #define EGL_SYNC_NATIVE_FENCE_ANDROID		0x3144
    553 #define EGL_SYNC_NATIVE_FENCE_FD_ANDROID	0x3145
    554 #define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID	0x3146
    555 #define EGL_NO_NATIVE_FENCE_FD_ANDROID		(-1)
    556 #ifdef EGL_EGLEXT_PROTOTYPES
    557 EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID( EGLDisplay dpy, EGLSyncKHR);
    558 #endif /* EGL_EGLEXT_PROTOTYPES */
    559 typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC)(EGLDisplay dpy, EGLSyncKHR);
    560 #endif
    561 
    562 #ifndef EGL_ANDROID_recordable
    563 #define EGL_ANDROID_recordable 1
    564 #define EGL_RECORDABLE_ANDROID			0x3142
    565 #endif
    566 
    567 #ifndef EGL_EXT_buffer_age
    568 #define EGL_EXT_buffer_age 1
    569 #define EGL_BUFFER_AGE_EXT			0x313D
    570 #endif
    571 
    572 #ifndef EGL_EXT_image_dma_buf_import
    573 #define EGL_EXT_image_dma_buf_import 1
    574 #define EGL_LINUX_DMA_BUF_EXT			0x3270
    575 #define EGL_LINUX_DRM_FOURCC_EXT		0x3271
    576 #define EGL_DMA_BUF_PLANE0_FD_EXT		0x3272
    577 #define EGL_DMA_BUF_PLANE0_OFFSET_EXT		0x3273
    578 #define EGL_DMA_BUF_PLANE0_PITCH_EXT		0x3274
    579 #define EGL_DMA_BUF_PLANE1_FD_EXT		0x3275
    580 #define EGL_DMA_BUF_PLANE1_OFFSET_EXT		0x3276
    581 #define EGL_DMA_BUF_PLANE1_PITCH_EXT		0x3277
    582 #define EGL_DMA_BUF_PLANE2_FD_EXT		0x3278
    583 #define EGL_DMA_BUF_PLANE2_OFFSET_EXT		0x3279
    584 #define EGL_DMA_BUF_PLANE2_PITCH_EXT		0x327A
    585 #define EGL_YUV_COLOR_SPACE_HINT_EXT		0x327B
    586 #define EGL_SAMPLE_RANGE_HINT_EXT		0x327C
    587 #define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
    588 #define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
    589 #define EGL_ITU_REC601_EXT			0x327F
    590 #define EGL_ITU_REC709_EXT			0x3280
    591 #define EGL_ITU_REC2020_EXT			0x3281
    592 #define EGL_YUV_FULL_RANGE_EXT			0x3282
    593 #define EGL_YUV_NARROW_RANGE_EXT		0x3283
    594 #define EGL_YUV_CHROMA_SITING_0_EXT		0x3284
    595 #define EGL_YUV_CHROMA_SITING_0_5_EXT		0x3285
    596 #endif
    597 
    598 #ifndef EGL_ANDROID_presentation_time
    599 #define EGL_ANDROID_presentation_time 1
    600 typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
    601 #ifdef EGL_EGLEXT_PROTOTYPES
    602 EGLAPI EGLBoolean eglPresentationTimeANDROID(EGLDisplay dpy, EGLSurface sur, EGLnsecsANDROID time);
    603 #else
    604 typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROID) (EGLDisplay dpy, EGLSurface sur, EGLnsecsANDROID time);
    605 #endif
    606 #endif
    607 
    608 #ifndef EGL_ANDROID_get_native_client_buffer
    609 #define EGL_ANDROID_get_native_client_buffer 1
    610 struct AHardwareBuffer;
    611 #ifdef EGL_EGLEXT_PROTOTYPES
    612 EGLAPI EGLClientBuffer eglGetNativeClientBufferANDROID (const struct AHardwareBuffer *buffer);
    613 #else
    614 typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETNATIVECLIENTBUFFERANDROID) (const struct AHardwareBuffer *buffer);
    615 #endif
    616 #endif
    617 
    618 #ifndef EGL_ANDROID_front_buffer_auto_refresh
    619 #define EGL_ANDROID_front_buffer_auto_refresh 1
    620 #define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C
    621 #endif
    622 
    623 #ifndef EGL_KHR_mutable_render_buffer
    624 #define EGL_KHR_mutable_render_buffer 1
    625 #define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000
    626 #endif
    627 
    628 #ifndef EGL_ANDROID_get_frame_timestamps
    629 #define EGL_ANDROID_get_frame_timestamps 1
    630 #define EGL_TIMESTAMPS_ANDROID 0x3430
    631 #define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431
    632 #define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432
    633 #define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433
    634 #define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434
    635 #define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435
    636 #define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436
    637 #define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437
    638 #define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438
    639 #define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439
    640 #define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A
    641 #define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B
    642 #define EGL_READS_DONE_TIME_ANDROID 0x343C
    643 #define EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID, -2)
    644 #define EGL_TIMESTAMP_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID, -1)
    645 #ifdef EGL_EGLEXT_PROTOTYPES
    646 EGLAPI EGLBoolean eglGetNextFrameIdANDROID(EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId);
    647 EGLAPI EGLBoolean eglGetCompositorTimingANDROID(EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values);
    648 EGLAPI EGLBoolean eglGetCompositorTimingSupportedANDROID(EGLDisplay dpy, EGLSurface surface, EGLint name);
    649 EGLAPI EGLBoolean eglGetFrameTimestampsANDROID(EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values);
    650 EGLAPI EGLBoolean eglGetFrameTimestampSupportedANDROID(EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
    651 #else
    652 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETNEXTFRAMEIDANDROID) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId);
    653 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGANDROID) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values);
    654 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROID) (EGLDisplay dpy, EGLSurface surface, EGLint name);
    655 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSANDROID) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values);
    656 typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROID) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
    657 #endif
    658 #endif
    659 
    660 #ifndef EGL_EXT_gl_colorspace_bt2020_linear
    661 #define EGL_EXT_gl_colorspace_bt2020_linear 1
    662 #define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F
    663 #endif /* EGL_EXT_gl_colorspace_bt2020_linear */
    664 
    665 #ifndef EGL_EXT_gl_colorspace_bt2020_pq
    666 #define EGL_EXT_gl_colorspace_bt2020_pq 1
    667 #define EGL_GL_COLORSPACE_BT2020_PQ_EXT   0x3340
    668 #endif /* EGL_EXT_gl_colorspace_bt2020_pq */
    669 
    670 #ifndef EGL_EXT_gl_colorspace_scrgb_linear
    671 #define EGL_EXT_gl_colorspace_scrgb_linear 1
    672 #define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350
    673 #endif /* EGL_EXT_gl_colorspace_scrgb_linear */
    674 
    675 #ifndef EGL_EXT_pixel_format_float
    676 #define EGL_EXT_pixel_format_float 1
    677 #define EGL_COLOR_COMPONENT_TYPE_EXT      0x3339
    678 #define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A
    679 #define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
    680 #endif /* EGL_EXT_pixel_format_float */
    681 
    682 #ifndef EGL_EXT_surface_SMPTE2086_metadata
    683 #define EGL_EXT_surface_SMPTE2086_metadata 1
    684 #define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341
    685 #define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342
    686 #define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343
    687 #define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344
    688 #define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345
    689 #define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346
    690 #define EGL_SMPTE2086_WHITE_POINT_X_EXT   0x3347
    691 #define EGL_SMPTE2086_WHITE_POINT_Y_EXT   0x3348
    692 #define EGL_SMPTE2086_MAX_LUMINANCE_EXT   0x3349
    693 #define EGL_SMPTE2086_MIN_LUMINANCE_EXT   0x334A
    694 #define EGL_METADATA_SCALING_EXT          50000
    695 #endif /* EGL_EXT_surface_SMPTE2086_metadata */
    696 
    697 #ifdef __cplusplus
    698 }
    699 #endif
    700 
    701 #endif /* __eglext_h_ */
    702