1 //------------------------------------------------------//
3 //------------------------------------------------------//
6 /* EGLint is defined in eglplatform.h */
8 typedef unsigned int EGLBoolean;
9 typedef unsigned int EGLenum;
10 typedef void *EGLConfig;
11 typedef void *EGLContext;
12 typedef void *EGLDisplay;
13 typedef void *EGLSurface;
14 typedef void *EGLClientBuffer;
17 #define EGL_VERSION_1_0 1
18 #define EGL_VERSION_1_1 1
19 #define EGL_VERSION_1_2 1
20 #define EGL_VERSION_1_3 1
21 #define EGL_VERSION_1_4 1
23 /* EGL Enumerants. Bitmasks and other exceptional cases aside, most
24 * enums are assigned unique values starting at 0x3000.
31 /* Out-of-band handle values */
32 #define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
33 #define EGL_NO_CONTEXT ((EGLContext)0)
34 #define EGL_NO_DISPLAY ((EGLDisplay)0)
35 #define EGL_NO_SURFACE ((EGLSurface)0)
37 /* Out-of-band attribute value */
38 #define EGL_DONT_CARE ((EGLint)-1)
40 /* Errors / GetError return values */
41 #define EGL_SUCCESS 0x3000
42 #define EGL_NOT_INITIALIZED 0x3001
43 #define EGL_BAD_ACCESS 0x3002
44 #define EGL_BAD_ALLOC 0x3003
45 #define EGL_BAD_ATTRIBUTE 0x3004
46 #define EGL_BAD_CONFIG 0x3005
47 #define EGL_BAD_CONTEXT 0x3006
48 #define EGL_BAD_CURRENT_SURFACE 0x3007
49 #define EGL_BAD_DISPLAY 0x3008
50 #define EGL_BAD_MATCH 0x3009
51 #define EGL_BAD_NATIVE_PIXMAP 0x300A
52 #define EGL_BAD_NATIVE_WINDOW 0x300B
53 #define EGL_BAD_PARAMETER 0x300C
54 #define EGL_BAD_SURFACE 0x300D
55 #define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */
57 /* Reserved 0x300F-0x301F for additional errors */
59 /* Config attributes */
60 #define EGL_BUFFER_SIZE 0x3020
61 #define EGL_ALPHA_SIZE 0x3021
62 #define EGL_BLUE_SIZE 0x3022
63 #define EGL_GREEN_SIZE 0x3023
64 #define EGL_RED_SIZE 0x3024
65 #define EGL_DEPTH_SIZE 0x3025
66 #define EGL_STENCIL_SIZE 0x3026
67 #define EGL_CONFIG_CAVEAT 0x3027
68 #define EGL_CONFIG_ID 0x3028
69 #define EGL_LEVEL 0x3029
70 #define EGL_MAX_PBUFFER_HEIGHT 0x302A
71 #define EGL_MAX_PBUFFER_PIXELS 0x302B
72 #define EGL_MAX_PBUFFER_WIDTH 0x302C
73 #define EGL_NATIVE_RENDERABLE 0x302D
74 #define EGL_NATIVE_VISUAL_ID 0x302E
75 #define EGL_NATIVE_VISUAL_TYPE 0x302F
76 #define EGL_PRESERVED_RESOURCES 0x3030
77 #define EGL_SAMPLES 0x3031
78 #define EGL_SAMPLE_BUFFERS 0x3032
79 #define EGL_SURFACE_TYPE 0x3033
80 #define EGL_TRANSPARENT_TYPE 0x3034
81 #define EGL_TRANSPARENT_BLUE_VALUE 0x3035
82 #define EGL_TRANSPARENT_GREEN_VALUE 0x3036
83 #define EGL_TRANSPARENT_RED_VALUE 0x3037
84 #define EGL_NONE 0x3038 /* Attrib list terminator */
85 #define EGL_BIND_TO_TEXTURE_RGB 0x3039
86 #define EGL_BIND_TO_TEXTURE_RGBA 0x303A
87 #define EGL_MIN_SWAP_INTERVAL 0x303B
88 #define EGL_MAX_SWAP_INTERVAL 0x303C
89 #define EGL_LUMINANCE_SIZE 0x303D
90 #define EGL_ALPHA_MASK_SIZE 0x303E
91 #define EGL_COLOR_BUFFER_TYPE 0x303F
92 #define EGL_RENDERABLE_TYPE 0x3040
93 #define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */
94 #define EGL_CONFORMANT 0x3042
96 /* Reserved 0x3041-0x304F for additional config attributes */
98 /* Config attribute values */
99 #define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */
100 #define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */
101 #define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */
102 #define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */
103 #define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */
105 /* More config attribute values, for EGL_TEXTURE_FORMAT */
106 #define EGL_NO_TEXTURE 0x305C
107 #define EGL_TEXTURE_RGB 0x305D
108 #define EGL_TEXTURE_RGBA 0x305E
109 #define EGL_TEXTURE_2D 0x305F
110 #define EGL_GL_TEXTURE_2D_KHR 0x30B1
111 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3
112 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4
113 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5
114 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6
115 #define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7
116 #define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8
117 #define EGL_GL_TEXTURE_3D_KHR 0x30B2
118 #define EGL_GL_RENDERBUFFER_KHR 0x30B9
120 /* Config attribute mask bits */
121 #define EGL_PBUFFER_BIT 0x0001 /* EGL_SURFACE_TYPE mask bits */
122 #define EGL_PIXMAP_BIT 0x0002 /* EGL_SURFACE_TYPE mask bits */
123 #define EGL_WINDOW_BIT 0x0004 /* EGL_SURFACE_TYPE mask bits */
124 #define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 /* EGL_SURFACE_TYPE mask bits */
125 #define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 /* EGL_SURFACE_TYPE mask bits */
126 #define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 /* EGL_SURFACE_TYPE mask bits */
127 #define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 /* EGL_SURFACE_TYPE mask bits */
129 #define EGL_OPENGL_ES_BIT 0x0001 /* EGL_RENDERABLE_TYPE mask bits */
130 #define EGL_OPENVG_BIT 0x0002 /* EGL_RENDERABLE_TYPE mask bits */
131 #define EGL_OPENGL_ES2_BIT 0x0004 /* EGL_RENDERABLE_TYPE mask bits */
132 #define EGL_OPENGL_BIT 0x0008 /* EGL_RENDERABLE_TYPE mask bits */
134 /* QueryString targets */
135 #define EGL_VENDOR 0x3053
136 #define EGL_VERSION 0x3054
137 #define EGL_EXTENSIONS 0x3055
138 #define EGL_CLIENT_APIS 0x308D
140 /* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */
141 #define EGL_HEIGHT 0x3056
142 #define EGL_WIDTH 0x3057
143 #define EGL_LARGEST_PBUFFER 0x3058
144 #define EGL_TEXTURE_FORMAT 0x3080
145 #define EGL_TEXTURE_TARGET 0x3081
146 #define EGL_MIPMAP_TEXTURE 0x3082
147 #define EGL_MIPMAP_LEVEL 0x3083
148 #define EGL_RENDER_BUFFER 0x3086
149 #define EGL_VG_COLORSPACE 0x3087
150 #define EGL_VG_ALPHA_FORMAT 0x3088
151 #define EGL_HORIZONTAL_RESOLUTION 0x3090
152 #define EGL_VERTICAL_RESOLUTION 0x3091
153 #define EGL_PIXEL_ASPECT_RATIO 0x3092
154 #define EGL_SWAP_BEHAVIOR 0x3093
155 #define EGL_MULTISAMPLE_RESOLVE 0x3099
157 /* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
158 #define EGL_BACK_BUFFER 0x3084
159 #define EGL_SINGLE_BUFFER 0x3085
161 /* OpenVG color spaces */
162 #define EGL_VG_COLORSPACE_sRGB 0x3089 /* EGL_VG_COLORSPACE value */
163 #define EGL_VG_COLORSPACE_LINEAR 0x308A /* EGL_VG_COLORSPACE value */
165 /* OpenVG alpha formats */
166 #define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */
167 #define EGL_VG_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */
169 /* Constant scale factor by which fractional display resolutions &
170 * aspect ratio are scaled when queried as integer values.
172 #define EGL_DISPLAY_SCALING 10000
174 /* Unknown display resolution/aspect ratio */
175 #define EGL_UNKNOWN ((EGLint)-1)
177 /* Back buffer swap behaviors */
178 #define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */
179 #define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */
181 /* CreatePbufferFromClientBuffer buffer types */
182 #define EGL_OPENVG_IMAGE 0x3096
184 /* QueryContext targets */
185 #define EGL_CONTEXT_CLIENT_TYPE 0x3097
187 /* CreateContext attributes */
188 #define EGL_CONTEXT_CLIENT_VERSION 0x3098
190 /* Multisample resolution behaviors */
191 #define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A /* EGL_MULTISAMPLE_RESOLVE value */
192 #define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B /* EGL_MULTISAMPLE_RESOLVE value */
194 /* BindAPI/QueryAPI targets */
195 #define EGL_OPENGL_ES_API 0x30A0
196 #define EGL_OPENVG_API 0x30A1
197 #define EGL_OPENGL_API 0x30A2
199 /* GetCurrentSurface targets */
200 #define EGL_DRAW 0x3059
201 #define EGL_READ 0x305A
203 /* WaitNative engines */
204 #define EGL_CORE_NATIVE_ENGINE 0x305B
206 /* EGL 1.2 tokens renamed for consistency in EGL 1.3 */
207 #define EGL_COLORSPACE EGL_VG_COLORSPACE
208 #define EGL_ALPHA_FORMAT EGL_VG_ALPHA_FORMAT
209 #define EGL_COLORSPACE_sRGB EGL_VG_COLORSPACE_sRGB
210 #define EGL_COLORSPACE_LINEAR EGL_VG_COLORSPACE_LINEAR
211 #define EGL_ALPHA_FORMAT_NONPRE EGL_VG_ALPHA_FORMAT_NONPRE
212 #define EGL_ALPHA_FORMAT_PRE EGL_VG_ALPHA_FORMAT_PRE
216 #ifndef EGL_KHR_image
217 #define EGL_KHR_image 1
218 typedef void *EGLImageKHR;
219 #define EGL_NATIVE_PIXMAP_KHR 0x30B0
220 #define EGL_NO_IMAGE_KHR ((EGLImageKHR)0)
221 #endif /* EGL_KHR_image */
223 #ifndef EGL_KHR_create_context
224 #define EGL_KHR_create_context 1
225 #define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098
226 #define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
227 #define EGL_CONTEXT_FLAGS_KHR 0x30FC
228 #define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
229 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
230 #define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE
231 #define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF
232 #define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001
233 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
234 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
235 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
236 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
237 #define EGL_OPENGL_ES3_BIT_KHR 0x00000040
238 #endif /* EGL_KHR_create_context */