17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* -*- mode: c; tab-width: 8; -*- */
27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* vi: set sw=4 ts=8: */
37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Reference version of egl.h for EGL 1.4.
47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $
57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */
67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/*
87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** Copyright (c) 2007-2009 The Khronos Group Inc.
97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch**
107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** Permission is hereby granted, free of charge, to any person obtaining a
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** copy of this software and/or associated documentation files (the
127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** "Materials"), to deal in the Materials without restriction, including
137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** without limitation the rights to use, copy, modify, merge, publish,
147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** distribute, sublicense, and/or sell copies of the Materials, and to
157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** permit persons to whom the Materials are furnished to do so, subject to
167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** the following conditions:
177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch**
187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** The above copyright notice and this permission notice shall be included
197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** in all copies or substantial portions of the Materials.
207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch**
217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch*/
297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef __egl_h_
317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define __egl_h_
327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* All platform-dependent types and macro boilerplate (such as EGLAPI
347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * and EGLAPIENTRY) should go in eglplatform.h.
357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */
367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include <EGL/eglplatform.h>
377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef __cplusplus
397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochextern "C" {
407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL Types */
437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGLint is defined in eglplatform.h */
447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef unsigned int EGLBoolean;
457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef unsigned int EGLenum;
467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void *EGLConfig;
477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void *EGLContext;
487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void *EGLDisplay;
497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void *EGLSurface;
507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void *EGLClientBuffer;
517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL Versioning */
537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION_1_0			1
547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION_1_1			1
557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION_1_2			1
567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION_1_3			1
577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION_1_4			1
587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL Enumerants. Bitmasks and other exceptional cases aside, most
607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * enums are assigned unique values starting at 0x3000.
617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */
627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL aliases */
647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_FALSE			0
657dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRUE			1
667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Out-of-band handle values */
687dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DEFAULT_DISPLAY		((EGLNativeDisplayType)0)
697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NO_CONTEXT			((EGLContext)0)
707dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NO_DISPLAY			((EGLDisplay)0)
717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NO_SURFACE			((EGLSurface)0)
727dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
737dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Out-of-band attribute value */
747dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DONT_CARE			((EGLint)-1)
757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Errors / GetError return values */
777dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SUCCESS			0x3000
787dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NOT_INITIALIZED		0x3001
797dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_ACCESS			0x3002
807dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_ALLOC			0x3003
817dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_ATTRIBUTE		0x3004
827dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_CONFIG			0x3005
837dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_CONTEXT			0x3006
847dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_CURRENT_SURFACE		0x3007
857dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_DISPLAY			0x3008
867dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_MATCH			0x3009
877dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_NATIVE_PIXMAP		0x300A
887dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_NATIVE_WINDOW		0x300B
897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_PARAMETER		0x300C
907dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_SURFACE			0x300D
917dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONTEXT_LOST		0x300E	/* EGL 1.1 - IMG_power_management */
927dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Reserved 0x300F-0x301F for additional errors */
947dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Config attributes */
967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BUFFER_SIZE			0x3020
977dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_ALPHA_SIZE			0x3021
987dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BLUE_SIZE			0x3022
997dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GREEN_SIZE			0x3023
1007dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_RED_SIZE			0x3024
1017dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DEPTH_SIZE			0x3025
1027dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_STENCIL_SIZE		0x3026
1037dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONFIG_CAVEAT		0x3027
1047dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONFIG_ID			0x3028
1057dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_LEVEL			0x3029
1067dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MAX_PBUFFER_HEIGHT		0x302A
1077dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MAX_PBUFFER_PIXELS		0x302B
1087dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MAX_PBUFFER_WIDTH		0x302C
1097dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NATIVE_RENDERABLE		0x302D
1107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NATIVE_VISUAL_ID		0x302E
1117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NATIVE_VISUAL_TYPE		0x302F
1127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SAMPLES			0x3031
1137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SAMPLE_BUFFERS		0x3032
1147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SURFACE_TYPE		0x3033
1157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRANSPARENT_TYPE		0x3034
1167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRANSPARENT_BLUE_VALUE	0x3035
1177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRANSPARENT_GREEN_VALUE	0x3036
1187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRANSPARENT_RED_VALUE	0x3037
1197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NONE			0x3038	/* Attrib list terminator */
1207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BIND_TO_TEXTURE_RGB		0x3039
1217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BIND_TO_TEXTURE_RGBA	0x303A
1227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MIN_SWAP_INTERVAL		0x303B
1237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MAX_SWAP_INTERVAL		0x303C
1247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_LUMINANCE_SIZE		0x303D
1257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_ALPHA_MASK_SIZE		0x303E
1267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLOR_BUFFER_TYPE		0x303F
1277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_RENDERABLE_TYPE		0x3040
1287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MATCH_NATIVE_PIXMAP		0x3041	/* Pseudo-attribute (not queryable) */
1297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONFORMANT			0x3042
1307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Reserved 0x3041-0x304F for additional config attributes */
1327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Config attribute values */
1347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SLOW_CONFIG			0x3050	/* EGL_CONFIG_CAVEAT value */
1357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NON_CONFORMANT_CONFIG	0x3051	/* EGL_CONFIG_CAVEAT value */
1367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRANSPARENT_RGB		0x3052	/* EGL_TRANSPARENT_TYPE value */
1377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_RGB_BUFFER			0x308E	/* EGL_COLOR_BUFFER_TYPE value */
1387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_LUMINANCE_BUFFER		0x308F	/* EGL_COLOR_BUFFER_TYPE value */
1397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* More config attribute values, for EGL_TEXTURE_FORMAT */
1417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NO_TEXTURE			0x305C
1427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TEXTURE_RGB			0x305D
1437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TEXTURE_RGBA		0x305E
1447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TEXTURE_2D			0x305F
1457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Config attribute mask bits */
1477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_PBUFFER_BIT			0x0001	/* EGL_SURFACE_TYPE mask bits */
1487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_PIXMAP_BIT			0x0002	/* EGL_SURFACE_TYPE mask bits */
1497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_WINDOW_BIT			0x0004	/* EGL_SURFACE_TYPE mask bits */
1507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_COLORSPACE_LINEAR_BIT	0x0020	/* EGL_SURFACE_TYPE mask bits */
1517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_ALPHA_FORMAT_PRE_BIT	0x0040	/* EGL_SURFACE_TYPE mask bits */
1527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200	/* EGL_SURFACE_TYPE mask bits */
1537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400	/* EGL_SURFACE_TYPE mask bits */
1547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENGL_ES_BIT		0x0001	/* EGL_RENDERABLE_TYPE mask bits */
1567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENVG_BIT			0x0002	/* EGL_RENDERABLE_TYPE mask bits */
1577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENGL_ES2_BIT		0x0004	/* EGL_RENDERABLE_TYPE mask bits */
1587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENGL_BIT			0x0008	/* EGL_RENDERABLE_TYPE mask bits */
1597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* QueryString targets */
1617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VENDOR			0x3053
1627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION			0x3054
1637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_EXTENSIONS			0x3055
1647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CLIENT_APIS			0x308D
1657dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */
1677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_HEIGHT			0x3056
1687dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_WIDTH			0x3057
1697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_LARGEST_PBUFFER		0x3058
1707dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TEXTURE_FORMAT		0x3080
1717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TEXTURE_TARGET		0x3081
1727dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MIPMAP_TEXTURE		0x3082
1737dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MIPMAP_LEVEL		0x3083
1747dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_RENDER_BUFFER		0x3086
1757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_COLORSPACE		0x3087
1767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_ALPHA_FORMAT		0x3088
1777dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_HORIZONTAL_RESOLUTION	0x3090
1787dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERTICAL_RESOLUTION		0x3091
1797dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_PIXEL_ASPECT_RATIO		0x3092
1807dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SWAP_BEHAVIOR		0x3093
1817dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MULTISAMPLE_RESOLVE		0x3099
1827dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1837dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
1847dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BACK_BUFFER			0x3084
1857dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SINGLE_BUFFER		0x3085
1867dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1877dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* OpenVG color spaces */
1887dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_COLORSPACE_sRGB		0x3089	/* EGL_VG_COLORSPACE value */
1897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_COLORSPACE_LINEAR	0x308A	/* EGL_VG_COLORSPACE value */
1907dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1917dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* OpenVG alpha formats */
1927dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_ALPHA_FORMAT_NONPRE	0x308B	/* EGL_ALPHA_FORMAT value */
1937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_ALPHA_FORMAT_PRE		0x308C	/* EGL_ALPHA_FORMAT value */
1947dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
1957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Constant scale factor by which fractional display resolutions &
1967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * aspect ratio are scaled when queried as integer values.
1977dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */
1987dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DISPLAY_SCALING		10000
1997dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2007dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Unknown display resolution/aspect ratio */
2017dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_UNKNOWN			((EGLint)-1)
2027dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2037dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Back buffer swap behaviors */
2047dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BUFFER_PRESERVED		0x3094	/* EGL_SWAP_BEHAVIOR value */
2057dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BUFFER_DESTROYED		0x3095	/* EGL_SWAP_BEHAVIOR value */
2067dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2077dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* CreatePbufferFromClientBuffer buffer types */
2087dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENVG_IMAGE		0x3096
2097dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* QueryContext targets */
2117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONTEXT_CLIENT_TYPE		0x3097
2127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* CreateContext attributes */
2147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONTEXT_CLIENT_VERSION	0x3098
2157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Multisample resolution behaviors */
2177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A	/* EGL_MULTISAMPLE_RESOLVE value */
2187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MULTISAMPLE_RESOLVE_BOX	0x309B	/* EGL_MULTISAMPLE_RESOLVE value */
2197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* BindAPI/QueryAPI targets */
2217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENGL_ES_API		0x30A0
2227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENVG_API			0x30A1
2237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENGL_API			0x30A2
2247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* GetCurrentSurface targets */
2267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DRAW			0x3059
2277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_READ			0x305A
2287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* WaitNative engines */
2307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CORE_NATIVE_ENGINE		0x305B
2317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL 1.2 tokens renamed for consistency in EGL 1.3 */
2337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLORSPACE			EGL_VG_COLORSPACE
2347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_ALPHA_FORMAT		EGL_VG_ALPHA_FORMAT
2357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLORSPACE_sRGB		EGL_VG_COLORSPACE_sRGB
2367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLORSPACE_LINEAR		EGL_VG_COLORSPACE_LINEAR
2377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_ALPHA_FORMAT_NONPRE		EGL_VG_ALPHA_FORMAT_NONPRE
2387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_ALPHA_FORMAT_PRE		EGL_VG_ALPHA_FORMAT_PRE
2397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL extensions must request enum blocks from the Khronos
2417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * API Registrar, who maintains the enumerant registry. Submit
2427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * a bug in Khronos Bugzilla against task "Registry".
2437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */
2447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL Functions */
2487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2497dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLint EGLAPIENTRY eglGetError(void);
2507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2517dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
2527dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
2537dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy);
2547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2557dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
2567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2577dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
2587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch			 EGLint config_size, EGLint *num_config);
2597dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
2607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch			   EGLConfig *configs, EGLint config_size,
2617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch			   EGLint *num_config);
2627dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
2637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch			      EGLint attribute, EGLint *value);
2647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2657dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
2667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch				  EGLNativeWindowType win,
2677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch				  const EGLint *attrib_list);
2687dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
2697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch				   const EGLint *attrib_list);
2707dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
2717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch				  EGLNativePixmapType pixmap,
2727dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch				  const EGLint *attrib_list);
2737dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
2747dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
2757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch			   EGLint attribute, EGLint *value);
2767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2777dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api);
2787dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void);
2797dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2807dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void);
2817dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2827dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void);
2837dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2847dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(
2857dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch	      EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
2867dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch	      EGLConfig config, const EGLint *attrib_list);
2877dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2887dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
2897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch			    EGLint attribute, EGLint value);
2907dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
2917dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
2927dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2947dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
2957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2977dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
2987dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch			    EGLContext share_context,
2997dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch			    const EGLint *attrib_list);
3007dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
3017dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
3027dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch			  EGLSurface read, EGLContext ctx);
3037dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
3047dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void);
3057dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw);
3067dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void);
3077dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
3087dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch			   EGLint attribute, EGLint *value);
3097dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
3107dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void);
3117dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine);
3127dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
3137dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
3147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch			  EGLNativePixmapType target);
3157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
3167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* This is a generic function pointer type, whose name indicates it must
3177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * be cast to the proper type *and calling convention* before use.
3187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */
3197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void (*__eglMustCastToProperFunctionPointerType)(void);
3207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
3217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Now, define eglGetProcAddress using the generic function ptr. type */
3227dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
3237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch       eglGetProcAddress(const char *procname);
3247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
3257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef __cplusplus
3267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
3277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
3287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
3297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif /* __egl_h_ */
330