1edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* -*- mode: c; tab-width: 8; -*- */
2edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* vi: set sw=4 ts=8: */
3edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Reference version of egl.h for EGL 1.4.
4e81a3cb2bd16f0ce1e9c256559aaa2095a1f41f6Mathias Agopian * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $
5edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */
6edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
7edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/*
8edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** Copyright (c) 2007-2009 The Khronos Group Inc.
9edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project**
10edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** Permission is hereby granted, free of charge, to any person obtaining a
11edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** copy of this software and/or associated documentation files (the
12edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** "Materials"), to deal in the Materials without restriction, including
13edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** without limitation the rights to use, copy, modify, merge, publish,
14edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** distribute, sublicense, and/or sell copies of the Materials, and to
15edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** permit persons to whom the Materials are furnished to do so, subject to
16edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** the following conditions:
17edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project**
18edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** The above copyright notice and this permission notice shall be included
19edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** in all copies or substantial portions of the Materials.
20edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project**
21edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
25edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
26edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
28edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project*/
29edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
30edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#ifndef __egl_h_
31edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define __egl_h_
32edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
33edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* All platform-dependent types and macro boilerplate (such as EGLAPI
34edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * and EGLAPIENTRY) should go in eglplatform.h.
35edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */
36edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#include <EGL/eglplatform.h>
37edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
38edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#ifdef __cplusplus
39edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectextern "C" {
40edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#endif
41edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
42edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL Types */
43edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGLint is defined in eglplatform.h */
44edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef unsigned int EGLBoolean;
45edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef unsigned int EGLenum;
46edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void *EGLConfig;
47edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void *EGLContext;
48edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void *EGLDisplay;
49edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void *EGLSurface;
50edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void *EGLClientBuffer;
51edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
52edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL Versioning */
53edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION_1_0			1
54edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION_1_1			1
55edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION_1_2			1
56edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION_1_3			1
57edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION_1_4			1
58edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
59edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL Enumerants. Bitmasks and other exceptional cases aside, most
60edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * enums are assigned unique values starting at 0x3000.
61edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */
62edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
63edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL aliases */
64edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_FALSE			0
65edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRUE			1
66edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
67edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Out-of-band handle values */
68edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DEFAULT_DISPLAY		((EGLNativeDisplayType)0)
69edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NO_CONTEXT			((EGLContext)0)
70edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NO_DISPLAY			((EGLDisplay)0)
71edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NO_SURFACE			((EGLSurface)0)
72edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
73edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Out-of-band attribute value */
74edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DONT_CARE			((EGLint)-1)
75edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
76edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Errors / GetError return values */
77edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SUCCESS			0x3000
78edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NOT_INITIALIZED		0x3001
79edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_ACCESS			0x3002
80edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_ALLOC			0x3003
81edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_ATTRIBUTE		0x3004
82edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_CONFIG			0x3005
83edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_CONTEXT			0x3006
84edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_CURRENT_SURFACE		0x3007
85edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_DISPLAY			0x3008
86edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_MATCH			0x3009
87edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_NATIVE_PIXMAP		0x300A
88edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_NATIVE_WINDOW		0x300B
89edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_PARAMETER		0x300C
90edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_SURFACE			0x300D
91edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONTEXT_LOST		0x300E	/* EGL 1.1 - IMG_power_management */
92edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
93edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Reserved 0x300F-0x301F for additional errors */
94edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
95edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Config attributes */
96edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BUFFER_SIZE			0x3020
97edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_SIZE			0x3021
98edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BLUE_SIZE			0x3022
99edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_GREEN_SIZE			0x3023
100edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_RED_SIZE			0x3024
101edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DEPTH_SIZE			0x3025
102edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_STENCIL_SIZE		0x3026
103edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONFIG_CAVEAT		0x3027
104edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONFIG_ID			0x3028
105edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_LEVEL			0x3029
106edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MAX_PBUFFER_HEIGHT		0x302A
107edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MAX_PBUFFER_PIXELS		0x302B
108edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MAX_PBUFFER_WIDTH		0x302C
109edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NATIVE_RENDERABLE		0x302D
110edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NATIVE_VISUAL_ID		0x302E
111edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NATIVE_VISUAL_TYPE		0x302F
112edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SAMPLES			0x3031
113edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SAMPLE_BUFFERS		0x3032
114edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SURFACE_TYPE		0x3033
115edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_TYPE		0x3034
116edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_BLUE_VALUE	0x3035
117edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_GREEN_VALUE	0x3036
118edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_RED_VALUE	0x3037
119edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NONE			0x3038	/* Attrib list terminator */
120edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BIND_TO_TEXTURE_RGB		0x3039
121edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BIND_TO_TEXTURE_RGBA	0x303A
122edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MIN_SWAP_INTERVAL		0x303B
123edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MAX_SWAP_INTERVAL		0x303C
124edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_LUMINANCE_SIZE		0x303D
125edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_MASK_SIZE		0x303E
126edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLOR_BUFFER_TYPE		0x303F
127edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_RENDERABLE_TYPE		0x3040
128edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MATCH_NATIVE_PIXMAP		0x3041	/* Pseudo-attribute (not queryable) */
129edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONFORMANT			0x3042
130edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
131edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Reserved 0x3041-0x304F for additional config attributes */
132edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
133edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Config attribute values */
134edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SLOW_CONFIG			0x3050	/* EGL_CONFIG_CAVEAT value */
135edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NON_CONFORMANT_CONFIG	0x3051	/* EGL_CONFIG_CAVEAT value */
136edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_RGB		0x3052	/* EGL_TRANSPARENT_TYPE value */
137edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_RGB_BUFFER			0x308E	/* EGL_COLOR_BUFFER_TYPE value */
138edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_LUMINANCE_BUFFER		0x308F	/* EGL_COLOR_BUFFER_TYPE value */
139edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
140edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* More config attribute values, for EGL_TEXTURE_FORMAT */
141edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NO_TEXTURE			0x305C
142edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_RGB			0x305D
143edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_RGBA		0x305E
144edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_2D			0x305F
145edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
146edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Config attribute mask bits */
147edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_PBUFFER_BIT			0x0001	/* EGL_SURFACE_TYPE mask bits */
148edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_PIXMAP_BIT			0x0002	/* EGL_SURFACE_TYPE mask bits */
149edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_WINDOW_BIT			0x0004	/* EGL_SURFACE_TYPE mask bits */
150edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE_LINEAR_BIT	0x0020	/* EGL_SURFACE_TYPE mask bits */
151edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT_PRE_BIT	0x0040	/* EGL_SURFACE_TYPE mask bits */
152edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200	/* EGL_SURFACE_TYPE mask bits */
153edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400	/* EGL_SURFACE_TYPE mask bits */
154edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
155edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_ES_BIT		0x0001	/* EGL_RENDERABLE_TYPE mask bits */
156edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENVG_BIT			0x0002	/* EGL_RENDERABLE_TYPE mask bits */
157edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_ES2_BIT		0x0004	/* EGL_RENDERABLE_TYPE mask bits */
158edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_BIT			0x0008	/* EGL_RENDERABLE_TYPE mask bits */
159edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
160edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* QueryString targets */
161edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VENDOR			0x3053
162edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION			0x3054
163edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_EXTENSIONS			0x3055
164edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CLIENT_APIS			0x308D
165edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
166edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */
167edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_HEIGHT			0x3056
168edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_WIDTH			0x3057
169edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_LARGEST_PBUFFER		0x3058
170edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_FORMAT		0x3080
171edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_TARGET		0x3081
172edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MIPMAP_TEXTURE		0x3082
173edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MIPMAP_LEVEL		0x3083
174edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_RENDER_BUFFER		0x3086
175edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE		0x3087
176edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT		0x3088
177edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_HORIZONTAL_RESOLUTION	0x3090
178edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERTICAL_RESOLUTION		0x3091
179edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_PIXEL_ASPECT_RATIO		0x3092
180edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SWAP_BEHAVIOR		0x3093
181edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE		0x3099
182edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
183edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
184edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BACK_BUFFER			0x3084
185edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SINGLE_BUFFER		0x3085
186edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
187edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* OpenVG color spaces */
188edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE_sRGB		0x3089	/* EGL_VG_COLORSPACE value */
189edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE_LINEAR	0x308A	/* EGL_VG_COLORSPACE value */
190edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
191edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* OpenVG alpha formats */
192edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT_NONPRE	0x308B	/* EGL_ALPHA_FORMAT value */
193edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT_PRE		0x308C	/* EGL_ALPHA_FORMAT value */
194edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
195edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Constant scale factor by which fractional display resolutions &
196edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * aspect ratio are scaled when queried as integer values.
197edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */
198edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DISPLAY_SCALING		10000
199edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
200edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Unknown display resolution/aspect ratio */
201edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_UNKNOWN			((EGLint)-1)
202edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
203edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Back buffer swap behaviors */
204edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BUFFER_PRESERVED		0x3094	/* EGL_SWAP_BEHAVIOR value */
205edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BUFFER_DESTROYED		0x3095	/* EGL_SWAP_BEHAVIOR value */
206edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
207edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* CreatePbufferFromClientBuffer buffer types */
208edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENVG_IMAGE		0x3096
209edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
210edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* QueryContext targets */
211edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONTEXT_CLIENT_TYPE		0x3097
212edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
213edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* CreateContext attributes */
214edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONTEXT_CLIENT_VERSION	0x3098
215edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
216edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Multisample resolution behaviors */
217edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A	/* EGL_MULTISAMPLE_RESOLVE value */
218edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE_BOX	0x309B	/* EGL_MULTISAMPLE_RESOLVE value */
219edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
220edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* BindAPI/QueryAPI targets */
221edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_ES_API		0x30A0
222edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENVG_API			0x30A1
223edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_API			0x30A2
224edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
225edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* GetCurrentSurface targets */
226edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DRAW			0x3059
227edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_READ			0x305A
228edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
229edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* WaitNative engines */
230edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CORE_NATIVE_ENGINE		0x305B
231edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
232edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL 1.2 tokens renamed for consistency in EGL 1.3 */
233edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLORSPACE			EGL_VG_COLORSPACE
234edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_FORMAT		EGL_VG_ALPHA_FORMAT
235edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLORSPACE_sRGB		EGL_VG_COLORSPACE_sRGB
236edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLORSPACE_LINEAR		EGL_VG_COLORSPACE_LINEAR
237edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_FORMAT_NONPRE		EGL_VG_ALPHA_FORMAT_NONPRE
238edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_FORMAT_PRE		EGL_VG_ALPHA_FORMAT_PRE
239edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
240edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL extensions must request enum blocks from the Khronos
241edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * API Registrar, who maintains the enumerant registry. Submit
242edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * a bug in Khronos Bugzilla against task "Registry".
243edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */
244edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
245edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
246edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
247edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL Functions */
248edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
249edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLint EGLAPIENTRY eglGetError(void);
250edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
251edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
252edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
253edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy);
254edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
255edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
256edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
257edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
258edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project			 EGLint config_size, EGLint *num_config);
259edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
260edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project			   EGLConfig *configs, EGLint config_size,
261edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project			   EGLint *num_config);
262edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
263edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project			      EGLint attribute, EGLint *value);
264edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
265edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
266edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project				  EGLNativeWindowType win,
267edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project				  const EGLint *attrib_list);
268edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
269edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project				   const EGLint *attrib_list);
270edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
271edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project				  EGLNativePixmapType pixmap,
272edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project				  const EGLint *attrib_list);
273edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
274edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
275edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project			   EGLint attribute, EGLint *value);
276edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
277edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api);
278edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void);
279edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
280edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void);
281edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
282edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void);
283edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
284edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(
285edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project	      EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
286edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project	      EGLConfig config, const EGLint *attrib_list);
287edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
288edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
289edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project			    EGLint attribute, EGLint value);
290edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
291edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
292edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
293edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
294edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
295edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
296edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
297edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
298edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project			    EGLContext share_context,
299edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project			    const EGLint *attrib_list);
300edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
301edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
302edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project			  EGLSurface read, EGLContext ctx);
303edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
304edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void);
305edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw);
306edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void);
307edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
308edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project			   EGLint attribute, EGLint *value);
309edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
310edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void);
311edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine);
312edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
313edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
314edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project			  EGLNativePixmapType target);
315edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
316edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* This is a generic function pointer type, whose name indicates it must
317edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * be cast to the proper type *and calling convention* before use.
318edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */
319edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void (*__eglMustCastToProperFunctionPointerType)(void);
320edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
321edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Now, define eglGetProcAddress using the generic function ptr. type */
322edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
323edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project       eglGetProcAddress(const char *procname);
324edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
325edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#ifdef __cplusplus
326edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}
327edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#endif
328edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
329edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#endif /* __egl_h_ */
330