17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef __eglext_h_
27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define __eglext_h_
37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef __cplusplus
57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochextern "C" {
67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/*
97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** Copyright (c) 2007-2010 The Khronos Group Inc.
107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch**
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** Permission is hereby granted, free of charge, to any person obtaining a
127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** copy of this software and/or associated documentation files (the
137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** "Materials"), to deal in the Materials without restriction, including
147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** without limitation the rights to use, copy, modify, merge, publish,
157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** distribute, sublicense, and/or sell copies of the Materials, and to
167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** permit persons to whom the Materials are furnished to do so, subject to
177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** the following conditions:
187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch**
197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** The above copyright notice and this permission notice shall be included
207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** in all copies or substantial portions of the Materials.
217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch**
227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch*/
307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include <EGL/eglplatform.h>
327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/*************************************************************/
347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Header file version number */
367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Current version at http://www.khronos.org/registry/egl/ */
377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* $Revision: 13164 $ on $Date: 2010-12-09 01:26:57 -0800 (Thu, 09 Dec 2010) $ */
387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_EGLEXT_VERSION 9
397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_config_attribs
417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_config_attribs 1
427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONFORMANT_KHR			0x3042	/* EGLConfig attribute */
437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR	0x0020	/* EGL_SURFACE_TYPE bitfield */
447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR		0x0040	/* EGL_SURFACE_TYPE bitfield */
457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_lock_surface
487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_lock_surface 1
497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_READ_SURFACE_BIT_KHR		0x0001	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_WRITE_SURFACE_BIT_KHR		0x0002	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_LOCK_SURFACE_BIT_KHR		0x0080	/* EGL_SURFACE_TYPE bitfield */
527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPTIMAL_FORMAT_BIT_KHR		0x0100	/* EGL_SURFACE_TYPE bitfield */
537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MATCH_FORMAT_KHR			0x3043	/* EGLConfig attribute */
547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_FORMAT_RGB_565_EXACT_KHR		0x30C0	/* EGL_MATCH_FORMAT_KHR value */
557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_FORMAT_RGB_565_KHR			0x30C1	/* EGL_MATCH_FORMAT_KHR value */
567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_FORMAT_RGBA_8888_EXACT_KHR		0x30C2	/* EGL_MATCH_FORMAT_KHR value */
577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_FORMAT_RGBA_8888_KHR		0x30C3	/* EGL_MATCH_FORMAT_KHR value */
587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MAP_PRESERVE_PIXELS_KHR		0x30C4	/* eglLockSurfaceKHR attribute */
597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_LOCK_USAGE_HINT_KHR			0x30C5	/* eglLockSurfaceKHR attribute */
607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BITMAP_POINTER_KHR			0x30C6	/* eglQuerySurface attribute */
617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BITMAP_PITCH_KHR			0x30C7	/* eglQuerySurface attribute */
627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BITMAP_ORIGIN_KHR			0x30C8	/* eglQuerySurface attribute */
637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR		0x30C9	/* eglQuerySurface attribute */
647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR	0x30CA	/* eglQuerySurface attribute */
657dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR	0x30CB	/* eglQuerySurface attribute */
667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR	0x30CC	/* eglQuerySurface attribute */
677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR	0x30CD	/* eglQuerySurface attribute */
687dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_LOWER_LEFT_KHR			0x30CE	/* EGL_BITMAP_ORIGIN_KHR value */
697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_UPPER_LEFT_KHR			0x30CF	/* EGL_BITMAP_ORIGIN_KHR value */
707dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef EGL_EGLEXT_PROTOTYPES
717dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
727dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay display, EGLSurface surface);
737dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif /* EGL_EGLEXT_PROTOTYPES */
747dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface);
767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
777dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
787dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_image
797dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_image 1
807dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NATIVE_PIXMAP_KHR			0x30B0	/* eglCreateImageKHR target */
817dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void *EGLImageKHR;
827dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NO_IMAGE_KHR			((EGLImageKHR)0)
837dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef EGL_EGLEXT_PROTOTYPES
847dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
857dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
867dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif /* EGL_EGLEXT_PROTOTYPES */
877dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
887dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
907dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
917dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_vg_parent_image
927dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_vg_parent_image 1
937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_PARENT_IMAGE_KHR			0x30BA	/* eglCreateImageKHR target */
947dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_gl_texture_2D_image
977dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_gl_texture_2D_image 1
987dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GL_TEXTURE_2D_KHR			0x30B1	/* eglCreateImageKHR target */
997dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GL_TEXTURE_LEVEL_KHR		0x30BC	/* eglCreateImageKHR attribute */
1007dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1017dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1027dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_gl_texture_cubemap_image
1037dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_gl_texture_cubemap_image 1
1047dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR	0x30B3	/* eglCreateImageKHR target */
1057dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR	0x30B4	/* eglCreateImageKHR target */
1067dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR	0x30B5	/* eglCreateImageKHR target */
1077dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR	0x30B6	/* eglCreateImageKHR target */
1087dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR	0x30B7	/* eglCreateImageKHR target */
1097dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR	0x30B8	/* eglCreateImageKHR target */
1107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_gl_texture_3D_image
1137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_gl_texture_3D_image 1
1147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GL_TEXTURE_3D_KHR			0x30B2	/* eglCreateImageKHR target */
1157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GL_TEXTURE_ZOFFSET_KHR		0x30BD	/* eglCreateImageKHR attribute */
1167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_gl_renderbuffer_image
1197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_gl_renderbuffer_image 1
1207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GL_RENDERBUFFER_KHR			0x30B9	/* eglCreateImageKHR target */
1217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#if KHRONOS_SUPPORT_INT64   /* EGLTimeKHR requires 64-bit uint support */
1247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_reusable_sync
1257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_reusable_sync 1
1267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void* EGLSyncKHR;
1287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef khronos_utime_nanoseconds_t EGLTimeKHR;
1297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_STATUS_KHR			0x30F1
1317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SIGNALED_KHR			0x30F2
1327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_UNSIGNALED_KHR			0x30F3
1337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TIMEOUT_EXPIRED_KHR			0x30F5
1347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONDITION_SATISFIED_KHR		0x30F6
1357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_TYPE_KHR			0x30F7
1367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_REUSABLE_KHR			0x30FA
1377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR		0x0001	/* eglClientWaitSyncKHR <flags> bitfield */
1387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_FOREVER_KHR				0xFFFFFFFFFFFFFFFFull
1397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NO_SYNC_KHR				((EGLSyncKHR)0)
1407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef EGL_EGLEXT_PROTOTYPES
1417dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
1427dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync);
1437dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
1447dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
1457dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
1467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif /* EGL_EGLEXT_PROTOTYPES */
1477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
1487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
1497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
1507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
1517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
1527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_image_base
1567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_image_base 1
1577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Most interfaces defined by EGL_KHR_image_pixmap above */
1587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_IMAGE_PRESERVED_KHR			0x30D2	/* eglCreateImageKHR attribute */
1597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_image_pixmap
1627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_image_pixmap 1
1637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Interfaces defined by EGL_KHR_image above */
1647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1657dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_IMG_context_priority
1677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_IMG_context_priority 1
1687dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONTEXT_PRIORITY_LEVEL_IMG		0x3100
1697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONTEXT_PRIORITY_HIGH_IMG		0x3101
1707dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG		0x3102
1717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONTEXT_PRIORITY_LOW_IMG		0x3103
1727dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1737dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1747dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_lock_surface2
1757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_lock_surface2 1
1767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BITMAP_PIXEL_SIZE_KHR		0x3110
1777dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1787dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1797dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_NV_coverage_sample
1807dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NV_coverage_sample 1
1817dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COVERAGE_BUFFERS_NV 0x30E0
1827dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COVERAGE_SAMPLES_NV 0x30E1
1837dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1847dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1857dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_NV_depth_nonlinear
1867dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NV_depth_nonlinear 1
1877dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DEPTH_ENCODING_NV 0x30E2
1887dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DEPTH_ENCODING_NONE_NV 0
1897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
1907dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
1917dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1927dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#if KHRONOS_SUPPORT_INT64   /* EGLTimeNV requires 64-bit uint support */
1937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_NV_sync
1947dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NV_sync 1
1957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV	0x30E6
1967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_STATUS_NV			0x30E7
1977dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SIGNALED_NV				0x30E8
1987dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_UNSIGNALED_NV			0x30E9
1997dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV		0x0001
2007dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_FOREVER_NV				0xFFFFFFFFFFFFFFFFull
2017dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_ALREADY_SIGNALED_NV			0x30EA
2027dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TIMEOUT_EXPIRED_NV			0x30EB
2037dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONDITION_SATISFIED_NV		0x30EC
2047dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_TYPE_NV			0x30ED
2057dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_CONDITION_NV			0x30EE
2067dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_FENCE_NV			0x30EF
2077dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NO_SYNC_NV				((EGLSyncNV)0)
2087dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void* EGLSyncNV;
2097dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef khronos_utime_nanoseconds_t EGLTimeNV;
2107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef EGL_EGLEXT_PROTOTYPES
2117dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLSyncNV eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
2127dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLBoolean eglDestroySyncNV (EGLSyncNV sync);
2137dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLBoolean eglFenceNV (EGLSyncNV sync);
2147dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLint eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
2157dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLBoolean eglSignalSyncNV (EGLSyncNV sync, EGLenum mode);
2167dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLBoolean eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value);
2177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif /* EGL_EGLEXT_PROTOTYPES */
2187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
2197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
2207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
2217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
2227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
2237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
2247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
2257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
2267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#if KHRONOS_SUPPORT_INT64   /* Dependent on EGL_KHR_reusable_sync which requires 64-bit uint support */
2287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_KHR_fence_sync
2297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_KHR_fence_sync 1
2307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Reuses most tokens and entry points from EGL_KHR_reusable_sync */
2317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR	0x30F0
2327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_CONDITION_KHR			0x30F8
2337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SYNC_FENCE_KHR			0x30F9
2347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
2357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
2367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_HI_clientpixmap
2387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_HI_clientpixmap 1
2397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Surface Attribute */
2417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CLIENT_PIXMAP_POINTER_HI		0x8F74
2427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/*
2437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * Structure representing a client pixmap
2447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * (pixmap's data is in client-space memory).
2457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */
2467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochstruct EGLClientPixmapHI
2477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch{
2487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch	void*		pData;
2497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch	EGLint		iWidth;
2507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch	EGLint		iHeight;
2517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch	EGLint		iStride;
2527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch};
2537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef EGL_EGLEXT_PROTOTYPES
2557dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
2567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif /* EGL_EGLEXT_PROTOTYPES */
2577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
2587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif	/* EGL_HI_clientpixmap */
2597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_HI_colorformats
2617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_HI_colorformats 1
2627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Config Attribute */
2637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLOR_FORMAT_HI			0x8F70
2647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Color Formats */
2657dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLOR_RGB_HI			0x8F71
2667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLOR_RGBA_HI			0x8F72
2677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLOR_ARGB_HI			0x8F73
2687dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif /* EGL_HI_colorformats */
2697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2707dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_MESA_drm_image
2717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MESA_drm_image 1
2727dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DRM_BUFFER_FORMAT_MESA		0x31D0	    /* CreateDRMImageMESA attribute */
2737dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DRM_BUFFER_USE_MESA			0x31D1	    /* CreateDRMImageMESA attribute */
2747dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA	0x31D2	    /* EGL_IMAGE_FORMAT_MESA attribute value */
2757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DRM_BUFFER_MESA			0x31D3	    /* eglCreateImageKHR target */
2767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DRM_BUFFER_STRIDE_MESA		0x31D4
2777dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DRM_BUFFER_USE_SCANOUT_MESA		0x00000001  /* EGL_DRM_BUFFER_USE_MESA bits */
2787dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DRM_BUFFER_USE_SHARE_MESA		0x00000002  /* EGL_DRM_BUFFER_USE_MESA bits */
2797dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef EGL_EGLEXT_PROTOTYPES
2807dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list);
2817dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
2827dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif /* EGL_EGLEXT_PROTOTYPES */
2837dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list);
2847dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
2857dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
2867dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2877dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef EGL_NV_post_sub_buffer
2887dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NV_post_sub_buffer 1
2897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_POST_SUB_BUFFER_SUPPORTED_NV	0x30BE
2907dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef EGL_EGLEXT_PROTOTYPES
2917dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
2927dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif /* EGL_EGLEXT_PROTOTYPES */
2937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
2947dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
2957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef __cplusplus
2977dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
2987dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
2997dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
3007dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
301