eglext.h revision cdc920a0
14a49301eSmrg#ifndef __eglext_h_
24a49301eSmrg#define __eglext_h_
34a49301eSmrg
44a49301eSmrg#ifdef __cplusplus
54a49301eSmrgextern "C" {
64a49301eSmrg#endif
74a49301eSmrg
84a49301eSmrg/*
9cdc920a0Smrg** Copyright (c) 2007-2009 The Khronos Group Inc.
104a49301eSmrg**
114a49301eSmrg** Permission is hereby granted, free of charge, to any person obtaining a
124a49301eSmrg** copy of this software and/or associated documentation files (the
134a49301eSmrg** "Materials"), to deal in the Materials without restriction, including
144a49301eSmrg** without limitation the rights to use, copy, modify, merge, publish,
154a49301eSmrg** distribute, sublicense, and/or sell copies of the Materials, and to
164a49301eSmrg** permit persons to whom the Materials are furnished to do so, subject to
174a49301eSmrg** the following conditions:
184a49301eSmrg**
194a49301eSmrg** The above copyright notice and this permission notice shall be included
204a49301eSmrg** in all copies or substantial portions of the Materials.
214a49301eSmrg**
224a49301eSmrg** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
234a49301eSmrg** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
244a49301eSmrg** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
254a49301eSmrg** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
264a49301eSmrg** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
274a49301eSmrg** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
284a49301eSmrg** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
294a49301eSmrg*/
304a49301eSmrg
314a49301eSmrg#include <EGL/eglplatform.h>
324a49301eSmrg
334a49301eSmrg/*************************************************************/
344a49301eSmrg
354a49301eSmrg/* Header file version number */
364a49301eSmrg/* Current version at http://www.khronos.org/registry/egl/ */
37cdc920a0Smrg/* $Revision: 1.1.1.2 $ on $Date: 2010/07/19 05:31:29 $ */
38cdc920a0Smrg#define EGL_EGLEXT_VERSION 5
394a49301eSmrg
404a49301eSmrg#ifndef EGL_KHR_config_attribs
414a49301eSmrg#define EGL_KHR_config_attribs 1
424a49301eSmrg#define EGL_CONFORMANT_KHR			0x3042	/* EGLConfig attribute */
434a49301eSmrg#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR	0x0020	/* EGL_SURFACE_TYPE bitfield */
444a49301eSmrg#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR		0x0040	/* EGL_SURFACE_TYPE bitfield */
454a49301eSmrg#endif
464a49301eSmrg
474a49301eSmrg#ifndef EGL_KHR_lock_surface
484a49301eSmrg#define EGL_KHR_lock_surface 1
494a49301eSmrg#define EGL_READ_SURFACE_BIT_KHR		0x0001	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
504a49301eSmrg#define EGL_WRITE_SURFACE_BIT_KHR		0x0002	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
514a49301eSmrg#define EGL_LOCK_SURFACE_BIT_KHR		0x0080	/* EGL_SURFACE_TYPE bitfield */
524a49301eSmrg#define EGL_OPTIMAL_FORMAT_BIT_KHR		0x0100	/* EGL_SURFACE_TYPE bitfield */
534a49301eSmrg#define EGL_MATCH_FORMAT_KHR			0x3043	/* EGLConfig attribute */
544a49301eSmrg#define EGL_FORMAT_RGB_565_EXACT_KHR		0x30C0	/* EGL_MATCH_FORMAT_KHR value */
554a49301eSmrg#define EGL_FORMAT_RGB_565_KHR			0x30C1	/* EGL_MATCH_FORMAT_KHR value */
564a49301eSmrg#define EGL_FORMAT_RGBA_8888_EXACT_KHR		0x30C2	/* EGL_MATCH_FORMAT_KHR value */
574a49301eSmrg#define EGL_FORMAT_RGBA_8888_KHR		0x30C3	/* EGL_MATCH_FORMAT_KHR value */
584a49301eSmrg#define EGL_MAP_PRESERVE_PIXELS_KHR		0x30C4	/* eglLockSurfaceKHR attribute */
594a49301eSmrg#define EGL_LOCK_USAGE_HINT_KHR			0x30C5	/* eglLockSurfaceKHR attribute */
604a49301eSmrg#define EGL_BITMAP_POINTER_KHR			0x30C6	/* eglQuerySurface attribute */
614a49301eSmrg#define EGL_BITMAP_PITCH_KHR			0x30C7	/* eglQuerySurface attribute */
624a49301eSmrg#define EGL_BITMAP_ORIGIN_KHR			0x30C8	/* eglQuerySurface attribute */
634a49301eSmrg#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR		0x30C9	/* eglQuerySurface attribute */
644a49301eSmrg#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR	0x30CA	/* eglQuerySurface attribute */
654a49301eSmrg#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR	0x30CB	/* eglQuerySurface attribute */
664a49301eSmrg#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR	0x30CC	/* eglQuerySurface attribute */
674a49301eSmrg#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR	0x30CD	/* eglQuerySurface attribute */
684a49301eSmrg#define EGL_LOWER_LEFT_KHR			0x30CE	/* EGL_BITMAP_ORIGIN_KHR value */
694a49301eSmrg#define EGL_UPPER_LEFT_KHR			0x30CF	/* EGL_BITMAP_ORIGIN_KHR value */
704a49301eSmrg#ifdef EGL_EGLEXT_PROTOTYPES
714a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
724a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay display, EGLSurface surface);
734a49301eSmrg#endif /* EGL_EGLEXT_PROTOTYPES */
744a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
754a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface);
764a49301eSmrg#endif
774a49301eSmrg
784a49301eSmrg#ifndef EGL_KHR_image
794a49301eSmrg#define EGL_KHR_image 1
804a49301eSmrg#define EGL_NATIVE_PIXMAP_KHR			0x30B0	/* eglCreateImageKHR target */
814a49301eSmrgtypedef void *EGLImageKHR;
82cdc920a0Smrg#define EGL_NO_IMAGE_KHR			((EGLImageKHR)0)
834a49301eSmrg#ifdef EGL_EGLEXT_PROTOTYPES
84cdc920a0SmrgEGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
854a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
864a49301eSmrg#endif /* EGL_EGLEXT_PROTOTYPES */
87cdc920a0Smrgtypedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
884a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
894a49301eSmrg#endif
904a49301eSmrg
914a49301eSmrg#ifndef EGL_KHR_vg_parent_image
924a49301eSmrg#define EGL_KHR_vg_parent_image 1
934a49301eSmrg#define EGL_VG_PARENT_IMAGE_KHR			0x30BA	/* eglCreateImageKHR target */
944a49301eSmrg#endif
954a49301eSmrg
964a49301eSmrg#ifndef EGL_KHR_gl_texture_2D_image
974a49301eSmrg#define EGL_KHR_gl_texture_2D_image 1
984a49301eSmrg#define EGL_GL_TEXTURE_2D_KHR			0x30B1	/* eglCreateImageKHR target */
994a49301eSmrg#define EGL_GL_TEXTURE_LEVEL_KHR		0x30BC	/* eglCreateImageKHR attribute */
1004a49301eSmrg#endif
1014a49301eSmrg
1024a49301eSmrg#ifndef EGL_KHR_gl_texture_cubemap_image
1034a49301eSmrg#define EGL_KHR_gl_texture_cubemap_image 1
1044a49301eSmrg#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR	0x30B3	/* eglCreateImageKHR target */
1054a49301eSmrg#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR	0x30B4	/* eglCreateImageKHR target */
1064a49301eSmrg#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR	0x30B5	/* eglCreateImageKHR target */
1074a49301eSmrg#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR	0x30B6	/* eglCreateImageKHR target */
1084a49301eSmrg#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR	0x30B7	/* eglCreateImageKHR target */
1094a49301eSmrg#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR	0x30B8	/* eglCreateImageKHR target */
1104a49301eSmrg#endif
1114a49301eSmrg
1124a49301eSmrg#ifndef EGL_KHR_gl_texture_3D_image
1134a49301eSmrg#define EGL_KHR_gl_texture_3D_image 1
1144a49301eSmrg#define EGL_GL_TEXTURE_3D_KHR			0x30B2	/* eglCreateImageKHR target */
1154a49301eSmrg#define EGL_GL_TEXTURE_ZOFFSET_KHR		0x30BD	/* eglCreateImageKHR attribute */
1164a49301eSmrg#endif
1174a49301eSmrg
1184a49301eSmrg#ifndef EGL_KHR_gl_renderbuffer_image
1194a49301eSmrg#define EGL_KHR_gl_renderbuffer_image 1
1204a49301eSmrg#define EGL_GL_RENDERBUFFER_KHR			0x30B9	/* eglCreateImageKHR target */
1214a49301eSmrg#endif
1224a49301eSmrg
123cdc920a0Smrg#ifndef EGL_KHR_reusable_sync
124cdc920a0Smrg#define EGL_KHR_reusable_sync 1
125cdc920a0Smrg
126cdc920a0Smrgtypedef void* EGLSyncKHR;
127cdc920a0Smrgtypedef khronos_utime_nanoseconds_t EGLTimeKHR;
128cdc920a0Smrg
129cdc920a0Smrg#define EGL_SYNC_STATUS_KHR			0x30F1
130cdc920a0Smrg#define EGL_SIGNALED_KHR			0x30F2
131cdc920a0Smrg#define EGL_UNSIGNALED_KHR			0x30F3
132cdc920a0Smrg#define EGL_TIMEOUT_EXPIRED_KHR			0x30F5
133cdc920a0Smrg#define EGL_CONDITION_SATISFIED_KHR		0x30F6
134cdc920a0Smrg#define EGL_SYNC_TYPE_KHR			0x30F7
135cdc920a0Smrg#define EGL_SYNC_REUSABLE_KHR			0x30FA
136cdc920a0Smrg#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR		0x0001	/* eglClientWaitSyncKHR <flags> bitfield */
137cdc920a0Smrg#define EGL_FOREVER_KHR				0xFFFFFFFFFFFFFFFFull
138cdc920a0Smrg#define EGL_NO_SYNC_KHR				((EGLSyncKHR)0)
139cdc920a0Smrg#ifdef EGL_EGLEXT_PROTOTYPES
140cdc920a0SmrgEGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
141cdc920a0SmrgEGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync);
142cdc920a0SmrgEGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
143cdc920a0SmrgEGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
144cdc920a0SmrgEGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
145cdc920a0Smrg#endif /* EGL_EGLEXT_PROTOTYPES */
146cdc920a0Smrgtypedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
147cdc920a0Smrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
148cdc920a0Smrgtypedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
149cdc920a0Smrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
150cdc920a0Smrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
151cdc920a0Smrg#endif
1524a49301eSmrg
1534a49301eSmrg/* EGL_MESA_screen extension  >>> PRELIMINARY <<< */
1544a49301eSmrg#ifndef EGL_MESA_screen_surface
1554a49301eSmrg#define EGL_MESA_screen_surface 1
1564a49301eSmrg
1574a49301eSmrg#define EGL_BAD_SCREEN_MESA                    0x4000
1584a49301eSmrg#define EGL_BAD_MODE_MESA                      0x4001
1594a49301eSmrg#define EGL_SCREEN_COUNT_MESA                  0x4002
1604a49301eSmrg#define EGL_SCREEN_POSITION_MESA               0x4003
1614a49301eSmrg#define EGL_SCREEN_POSITION_GRANULARITY_MESA   0x4004
1624a49301eSmrg#define EGL_MODE_ID_MESA                       0x4005
1634a49301eSmrg#define EGL_REFRESH_RATE_MESA                  0x4006
1644a49301eSmrg#define EGL_OPTIMAL_MESA                       0x4007
1654a49301eSmrg#define EGL_INTERLACED_MESA                    0x4008
1664a49301eSmrg#define EGL_SCREEN_BIT_MESA                    0x08
1674a49301eSmrg
1684a49301eSmrgtypedef uint32_t EGLScreenMESA;
1694a49301eSmrgtypedef uint32_t EGLModeMESA;
1704a49301eSmrg
1714a49301eSmrg#ifdef EGL_EGLEXT_PROTOTYPES
1724a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglChooseModeMESA(EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
1734a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglGetModesMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
1744a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglGetModeAttribMESA(EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
1754a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglGetScreensMESA(EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
1764a49301eSmrgEGLAPI EGLSurface EGLAPIENTRY eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
1774a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglShowScreenSurfaceMESA(EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
1784a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglScreenPositionMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
1794a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
1804a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
1814a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenModeMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
1824a49301eSmrgEGLAPI const char * EGLAPIENTRY eglQueryModeStringMESA(EGLDisplay dpy, EGLModeMESA mode);
1834a49301eSmrg#endif /* EGL_EGLEXT_PROTOTYPES */
1844a49301eSmrg
1854a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLCHOOSEMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
1864a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMODESMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
1874a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLGetModeATTRIBMESA) (EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
1884a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSCRREENSMESA) (EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
1894a49301eSmrgtypedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESCREENSURFACEMESA) (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
1904a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLSHOWSCREENSURFACEMESA) (EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
1914a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLSCREENPOSIITONMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
1924a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
1934a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENSURFACEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
1944a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
1954a49301eSmrgtypedef const char * (EGLAPIENTRYP PFNEGLQUERYMODESTRINGMESA) (EGLDisplay dpy, EGLModeMESA mode);
1964a49301eSmrg
1974a49301eSmrg#endif /* EGL_MESA_screen_surface */
1984a49301eSmrg
1994a49301eSmrg
2004a49301eSmrg#ifndef EGL_MESA_copy_context
2014a49301eSmrg#define EGL_MESA_copy_context 1
2024a49301eSmrg
2034a49301eSmrg#ifdef EGL_EGLEXT_PROTOTYPES
2044a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglCopyContextMESA(EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
2054a49301eSmrg#endif /* EGL_EGLEXT_PROTOTYPES */
2064a49301eSmrg
2074a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLCOPYCONTEXTMESA) (EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
2084a49301eSmrg
2094a49301eSmrg#endif /* EGL_MESA_copy_context */
2104a49301eSmrg
211cdc920a0Smrg#ifndef EGL_KHR_image_base
212cdc920a0Smrg#define EGL_KHR_image_base 1
213cdc920a0Smrg/* Most interfaces defined by EGL_KHR_image_pixmap above */
214cdc920a0Smrg#define EGL_IMAGE_PRESERVED_KHR			0x30D2	/* eglCreateImageKHR attribute */
215cdc920a0Smrg#endif
216cdc920a0Smrg
217cdc920a0Smrg#ifndef EGL_KHR_image_pixmap
218cdc920a0Smrg#define EGL_KHR_image_pixmap 1
219cdc920a0Smrg/* Interfaces defined by EGL_KHR_image above */
220cdc920a0Smrg#endif
221cdc920a0Smrg
222cdc920a0Smrg#ifndef EGL_IMG_context_priority
223cdc920a0Smrg#define EGL_IMG_context_priority 1
224cdc920a0Smrg#define EGL_CONTEXT_PRIORITY_LEVEL_IMG		0x3100
225cdc920a0Smrg#define EGL_CONTEXT_PRIORITY_HIGH_IMG		0x3101
226cdc920a0Smrg#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG		0x3102
227cdc920a0Smrg#define EGL_CONTEXT_PRIORITY_LOW_IMG		0x3103
228cdc920a0Smrg#endif
229cdc920a0Smrg
2304a49301eSmrg#ifdef __cplusplus
2314a49301eSmrg}
2324a49301eSmrg#endif
2334a49301eSmrg
2344a49301eSmrg#endif
235