eglext.h revision 4a49301e
14a49301eSmrg#ifndef __eglext_h_
24a49301eSmrg#define __eglext_h_
34a49301eSmrg
44a49301eSmrg#ifdef __cplusplus
54a49301eSmrgextern "C" {
64a49301eSmrg#endif
74a49301eSmrg
84a49301eSmrg/*
94a49301eSmrg** Copyright (c) 2007 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/* eglext.h last updated 2007/11/20 */
374a49301eSmrg/* Current version at http://www.khronos.org/registry/egl/ */
384a49301eSmrg#define EGL_EGLEXT_VERSION 1
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;
824a49301eSmrgextern const EGLImageKHR EGL_NO_IMAGE_KHR;
834a49301eSmrg#ifdef EGL_EGLEXT_PROTOTYPES
844a49301eSmrgEGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, EGLint *attr_list);
854a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
864a49301eSmrg#endif /* EGL_EGLEXT_PROTOTYPES */
874a49301eSmrgtypedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, EGLint *attr_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
1234a49301eSmrg
1244a49301eSmrg/* EGL_MESA_screen extension  >>> PRELIMINARY <<< */
1254a49301eSmrg#ifndef EGL_MESA_screen_surface
1264a49301eSmrg#define EGL_MESA_screen_surface 1
1274a49301eSmrg
1284a49301eSmrg#define EGL_BAD_SCREEN_MESA                    0x4000
1294a49301eSmrg#define EGL_BAD_MODE_MESA                      0x4001
1304a49301eSmrg#define EGL_SCREEN_COUNT_MESA                  0x4002
1314a49301eSmrg#define EGL_SCREEN_POSITION_MESA               0x4003
1324a49301eSmrg#define EGL_SCREEN_POSITION_GRANULARITY_MESA   0x4004
1334a49301eSmrg#define EGL_MODE_ID_MESA                       0x4005
1344a49301eSmrg#define EGL_REFRESH_RATE_MESA                  0x4006
1354a49301eSmrg#define EGL_OPTIMAL_MESA                       0x4007
1364a49301eSmrg#define EGL_INTERLACED_MESA                    0x4008
1374a49301eSmrg#define EGL_SCREEN_BIT_MESA                    0x08
1384a49301eSmrg
1394a49301eSmrgtypedef uint32_t EGLScreenMESA;
1404a49301eSmrgtypedef uint32_t EGLModeMESA;
1414a49301eSmrg
1424a49301eSmrg#ifdef EGL_EGLEXT_PROTOTYPES
1434a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglChooseModeMESA(EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
1444a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglGetModesMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
1454a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglGetModeAttribMESA(EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
1464a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglGetScreensMESA(EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
1474a49301eSmrgEGLAPI EGLSurface EGLAPIENTRY eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
1484a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglShowScreenSurfaceMESA(EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
1494a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglScreenPositionMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
1504a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
1514a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
1524a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenModeMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
1534a49301eSmrgEGLAPI const char * EGLAPIENTRY eglQueryModeStringMESA(EGLDisplay dpy, EGLModeMESA mode);
1544a49301eSmrg#endif /* EGL_EGLEXT_PROTOTYPES */
1554a49301eSmrg
1564a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLCHOOSEMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
1574a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMODESMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
1584a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLGetModeATTRIBMESA) (EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
1594a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSCRREENSMESA) (EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
1604a49301eSmrgtypedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESCREENSURFACEMESA) (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
1614a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLSHOWSCREENSURFACEMESA) (EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
1624a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLSCREENPOSIITONMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
1634a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
1644a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENSURFACEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
1654a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
1664a49301eSmrgtypedef const char * (EGLAPIENTRYP PFNEGLQUERYMODESTRINGMESA) (EGLDisplay dpy, EGLModeMESA mode);
1674a49301eSmrg
1684a49301eSmrg#endif /* EGL_MESA_screen_surface */
1694a49301eSmrg
1704a49301eSmrg
1714a49301eSmrg#ifndef EGL_MESA_copy_context
1724a49301eSmrg#define EGL_MESA_copy_context 1
1734a49301eSmrg
1744a49301eSmrg#ifdef EGL_EGLEXT_PROTOTYPES
1754a49301eSmrgEGLAPI EGLBoolean EGLAPIENTRY eglCopyContextMESA(EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
1764a49301eSmrg#endif /* EGL_EGLEXT_PROTOTYPES */
1774a49301eSmrg
1784a49301eSmrgtypedef EGLBoolean (EGLAPIENTRYP PFNEGLCOPYCONTEXTMESA) (EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
1794a49301eSmrg
1804a49301eSmrg#endif /* EGL_MESA_copy_context */
1814a49301eSmrg
1824a49301eSmrg#ifdef __cplusplus
1834a49301eSmrg}
1844a49301eSmrg#endif
1854a49301eSmrg
1864a49301eSmrg#endif
187