~glproxy-dev/glproxy/trunk

« back to all changes in this revision

Viewing changes to include/EGL/eglext_proxy.h

  • Committer: Marc Ordinas i Llopis
  • Date: 2011-12-08 11:35:53 UTC
  • mfrom: (35.1.7 fixes)
  • Revision ID: marc.ordinasillopis@linaro.org-20111208113553-og785wmh311tv427
EGL support: Add EGL virtualization support to glproxy.

Also,
- Removed the "automagic" best renderer detection, as it needed to start
both EGL and GLX which caused problems on some systems. It will return,
but in a more application-controlled way.
- Now it's necessary to pass the current display to the extensions helper
functions, as using an internal one caused NULL being returned as the
extensions string in some systems.
- A lot of code clean-ups.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef __eglext_h_
 
2
#define __eglext_h_
 
3
 
 
4
#ifdef __cplusplus
 
5
extern "C" {
 
6
#endif
 
7
 
 
8
/*
 
9
** Copyright (c) 2007-2010 The Khronos Group Inc.
 
10
**
 
11
** Permission is hereby granted, free of charge, to any person obtaining a
 
12
** copy of this software and/or associated documentation files (the
 
13
** "Materials"), to deal in the Materials without restriction, including
 
14
** without limitation the rights to use, copy, modify, merge, publish,
 
15
** distribute, sublicense, and/or sell copies of the Materials, and to
 
16
** permit persons to whom the Materials are furnished to do so, subject to
 
17
** the following conditions:
 
18
**
 
19
** The above copyright notice and this permission notice shall be included
 
20
** in all copies or substantial portions of the Materials.
 
21
**
 
22
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
23
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
24
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 
25
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 
26
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 
27
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 
28
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
 
29
*/
 
30
 
 
31
/*
 
32
 * Authors (of the modifications for glproxy:
 
33
 *  Marc Ordinas i Llopis, Collabora Ltd <marc.ordinasillopis@linaro.org>
 
34
 */
 
35
 
 
36
#include <EGL/eglplatform_proxy.h>
 
37
 
 
38
/*************************************************************/
 
39
 
 
40
/* Header file version number */
 
41
/* Current version at http://www.khronos.org/registry/egl/ */
 
42
/* $Revision: 12124 $ on $Date: 2010-07-27 20:12:35 -0700 (Tue, 27 Jul 2010) $ */
 
43
#define EGL_EGLEXT_VERSION 7
 
44
 
 
45
#ifndef EGL_KHR_config_attribs
 
46
#define EGL_KHR_config_attribs 1
 
47
#define EGL_CONFORMANT_KHR                      0x3042  /* EGLConfig attribute */
 
48
#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR        0x0020  /* EGL_SURFACE_TYPE bitfield */
 
49
#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR         0x0040  /* EGL_SURFACE_TYPE bitfield */
 
50
#endif
 
51
 
 
52
#ifndef EGL_KHR_lock_surface
 
53
#define EGL_KHR_lock_surface 1
 
54
#define EGL_READ_SURFACE_BIT_KHR                0x0001  /* EGL_LOCK_USAGE_HINT_KHR bitfield */
 
55
#define EGL_WRITE_SURFACE_BIT_KHR               0x0002  /* EGL_LOCK_USAGE_HINT_KHR bitfield */
 
56
#define EGL_LOCK_SURFACE_BIT_KHR                0x0080  /* EGL_SURFACE_TYPE bitfield */
 
57
#define EGL_OPTIMAL_FORMAT_BIT_KHR              0x0100  /* EGL_SURFACE_TYPE bitfield */
 
58
#define EGL_MATCH_FORMAT_KHR                    0x3043  /* EGLConfig attribute */
 
59
#define EGL_FORMAT_RGB_565_EXACT_KHR            0x30C0  /* EGL_MATCH_FORMAT_KHR value */
 
60
#define EGL_FORMAT_RGB_565_KHR                  0x30C1  /* EGL_MATCH_FORMAT_KHR value */
 
61
#define EGL_FORMAT_RGBA_8888_EXACT_KHR          0x30C2  /* EGL_MATCH_FORMAT_KHR value */
 
62
#define EGL_FORMAT_RGBA_8888_KHR                0x30C3  /* EGL_MATCH_FORMAT_KHR value */
 
63
#define EGL_MAP_PRESERVE_PIXELS_KHR             0x30C4  /* eglLockSurfaceKHR attribute */
 
64
#define EGL_LOCK_USAGE_HINT_KHR                 0x30C5  /* eglLockSurfaceKHR attribute */
 
65
#define EGL_BITMAP_POINTER_KHR                  0x30C6  /* eglQuerySurface attribute */
 
66
#define EGL_BITMAP_PITCH_KHR                    0x30C7  /* eglQuerySurface attribute */
 
67
#define EGL_BITMAP_ORIGIN_KHR                   0x30C8  /* eglQuerySurface attribute */
 
68
#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR         0x30C9  /* eglQuerySurface attribute */
 
69
#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR       0x30CA  /* eglQuerySurface attribute */
 
70
#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR        0x30CB  /* eglQuerySurface attribute */
 
71
#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR       0x30CC  /* eglQuerySurface attribute */
 
72
#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR   0x30CD  /* eglQuerySurface attribute */
 
73
#define EGL_LOWER_LEFT_KHR                      0x30CE  /* EGL_BITMAP_ORIGIN_KHR value */
 
74
#define EGL_UPPER_LEFT_KHR                      0x30CF  /* EGL_BITMAP_ORIGIN_KHR value */
 
75
#ifdef EGL_EGLEXT_PROTOTYPES
 
76
EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
 
77
EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay display, EGLSurface surface);
 
78
#endif /* EGL_EGLEXT_PROTOTYPES */
 
79
typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
 
80
typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface);
 
81
#endif
 
82
 
 
83
#ifndef EGL_KHR_image
 
84
#define EGL_KHR_image 1
 
85
#define EGL_NATIVE_PIXMAP_KHR                   0x30B0  /* eglCreateImageKHR target */
 
86
typedef void *EGLImageKHR;
 
87
#define EGL_NO_IMAGE_KHR                        ((EGLImageKHR)0)
 
88
#ifdef EGL_EGLEXT_PROTOTYPES
 
89
EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
 
90
EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
 
91
#endif /* EGL_EGLEXT_PROTOTYPES */
 
92
typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
 
93
typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
 
94
#endif
 
95
 
 
96
#ifndef EGL_KHR_vg_parent_image
 
97
#define EGL_KHR_vg_parent_image 1
 
98
#define EGL_VG_PARENT_IMAGE_KHR                 0x30BA  /* eglCreateImageKHR target */
 
99
#endif
 
100
 
 
101
#ifndef EGL_KHR_gl_texture_2D_image
 
102
#define EGL_KHR_gl_texture_2D_image 1
 
103
#define EGL_GL_TEXTURE_2D_KHR                   0x30B1  /* eglCreateImageKHR target */
 
104
#define EGL_GL_TEXTURE_LEVEL_KHR                0x30BC  /* eglCreateImageKHR attribute */
 
105
#endif
 
106
 
 
107
#ifndef EGL_KHR_gl_texture_cubemap_image
 
108
#define EGL_KHR_gl_texture_cubemap_image 1
 
109
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR  0x30B3  /* eglCreateImageKHR target */
 
110
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR  0x30B4  /* eglCreateImageKHR target */
 
111
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR  0x30B5  /* eglCreateImageKHR target */
 
112
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR  0x30B6  /* eglCreateImageKHR target */
 
113
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR  0x30B7  /* eglCreateImageKHR target */
 
114
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR  0x30B8  /* eglCreateImageKHR target */
 
115
#endif
 
116
 
 
117
#ifndef EGL_KHR_gl_texture_3D_image
 
118
#define EGL_KHR_gl_texture_3D_image 1
 
119
#define EGL_GL_TEXTURE_3D_KHR                   0x30B2  /* eglCreateImageKHR target */
 
120
#define EGL_GL_TEXTURE_ZOFFSET_KHR              0x30BD  /* eglCreateImageKHR attribute */
 
121
#endif
 
122
 
 
123
#ifndef EGL_KHR_gl_renderbuffer_image
 
124
#define EGL_KHR_gl_renderbuffer_image 1
 
125
#define EGL_GL_RENDERBUFFER_KHR                 0x30B9  /* eglCreateImageKHR target */
 
126
#endif
 
127
 
 
128
#ifndef EGL_MESA_drm_image
 
129
#define EGL_MESA_drm_image 1
 
130
#define EGL_DRM_BUFFER_FORMAT_MESA              0x31D0  /* eglCreateImageKHR attribute */
 
131
#define EGL_DRM_BUFFER_USE_MESA                 0x31D1
 
132
 
 
133
/* EGL_DRM_BUFFER_FORMAT_MESA tokens */
 
134
#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA       0x31D2
 
135
 
 
136
/* EGL_DRM_BUFFER_USE_MESA bits */
 
137
#define EGL_DRM_BUFFER_USE_SCANOUT_MESA         0x0001
 
138
#define EGL_DRM_BUFFER_USE_SHARE_MESA           0x0002
 
139
 
 
140
#define EGL_DRM_BUFFER_MESA                     0x31D3  /* eglCreateImageKHR target */
 
141
#define EGL_DRM_BUFFER_STRIDE_MESA              0x31D4  /* eglCreateImageKHR attribute */
 
142
 
 
143
#ifdef EGL_EGLEXT_PROTOTYPES
 
144
EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint *attrib_list);
 
145
EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
 
146
#endif
 
147
typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESA) (EGLDisplay dpy, const EGLint *attrib_list);
 
148
typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESA) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
 
149
#endif
 
150
 
 
151
#if KHRONOS_SUPPORT_INT64   /* EGLTimeKHR requires 64-bit uint support */
 
152
#ifndef EGL_KHR_reusable_sync
 
153
#define EGL_KHR_reusable_sync 1
 
154
 
 
155
typedef void* EGLSyncKHR;
 
156
typedef khronos_utime_nanoseconds_t EGLTimeKHR;
 
157
 
 
158
#define EGL_SYNC_STATUS_KHR                     0x30F1
 
159
#define EGL_SIGNALED_KHR                        0x30F2
 
160
#define EGL_UNSIGNALED_KHR                      0x30F3
 
161
#define EGL_TIMEOUT_EXPIRED_KHR                 0x30F5
 
162
#define EGL_CONDITION_SATISFIED_KHR             0x30F6
 
163
#define EGL_SYNC_TYPE_KHR                       0x30F7
 
164
#define EGL_SYNC_REUSABLE_KHR                   0x30FA
 
165
#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR         0x0001  /* eglClientWaitSyncKHR <flags> bitfield */
 
166
#define EGL_FOREVER_KHR                         0xFFFFFFFFFFFFFFFFull
 
167
#define EGL_NO_SYNC_KHR                         ((EGLSyncKHR)0)
 
168
#ifdef EGL_EGLEXT_PROTOTYPES
 
169
EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
 
170
EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync);
 
171
EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
 
172
EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
 
173
EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
 
174
#endif /* EGL_EGLEXT_PROTOTYPES */
 
175
typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
 
176
typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
 
177
typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
 
178
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
 
179
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
 
180
#endif
 
181
#endif
 
182
 
 
183
/* EGL_MESA_screen extension  >>> PRELIMINARY <<< */
 
184
#ifndef EGL_MESA_screen_surface
 
185
#define EGL_MESA_screen_surface 1
 
186
 
 
187
#define EGL_BAD_SCREEN_MESA                    0x4000
 
188
#define EGL_BAD_MODE_MESA                      0x4001
 
189
#define EGL_SCREEN_COUNT_MESA                  0x4002
 
190
#define EGL_SCREEN_POSITION_MESA               0x4003
 
191
#define EGL_SCREEN_POSITION_GRANULARITY_MESA   0x4004
 
192
#define EGL_MODE_ID_MESA                       0x4005
 
193
#define EGL_REFRESH_RATE_MESA                  0x4006
 
194
#define EGL_OPTIMAL_MESA                       0x4007
 
195
#define EGL_INTERLACED_MESA                    0x4008
 
196
#define EGL_SCREEN_BIT_MESA                    0x08
 
197
 
 
198
typedef khronos_uint32_t EGLScreenMESA;
 
199
typedef khronos_uint32_t EGLModeMESA;
 
200
 
 
201
#ifdef EGL_EGLEXT_PROTOTYPES
 
202
EGLAPI EGLBoolean EGLAPIENTRY eglChooseModeMESA(EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
 
203
EGLAPI EGLBoolean EGLAPIENTRY eglGetModesMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
 
204
EGLAPI EGLBoolean EGLAPIENTRY eglGetModeAttribMESA(EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
 
205
EGLAPI EGLBoolean EGLAPIENTRY eglGetScreensMESA(EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
 
206
EGLAPI EGLSurface EGLAPIENTRY eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
 
207
EGLAPI EGLBoolean EGLAPIENTRY eglShowScreenSurfaceMESA(EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
 
208
EGLAPI EGLBoolean EGLAPIENTRY eglScreenPositionMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
 
209
EGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
 
210
EGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
 
211
EGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenModeMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
 
212
EGLAPI const char * EGLAPIENTRY eglQueryModeStringMESA(EGLDisplay dpy, EGLModeMESA mode);
 
213
#endif /* EGL_EGLEXT_PROTOTYPES */
 
214
 
 
215
typedef EGLBoolean (EGLAPIENTRYP PFNEGLCHOOSEMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
 
216
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMODESMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
 
217
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGetModeATTRIBMESA) (EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
 
218
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSCRREENSMESA) (EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
 
219
typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESCREENSURFACEMESA) (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
 
220
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSHOWSCREENSURFACEMESA) (EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
 
221
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSCREENPOSIITONMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
 
222
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
 
223
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENSURFACEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
 
224
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
 
225
typedef const char * (EGLAPIENTRYP PFNEGLQUERYMODESTRINGMESA) (EGLDisplay dpy, EGLModeMESA mode);
 
226
 
 
227
#endif /* EGL_MESA_screen_surface */
 
228
 
 
229
 
 
230
#ifndef EGL_MESA_copy_context
 
231
#define EGL_MESA_copy_context 1
 
232
 
 
233
#ifdef EGL_EGLEXT_PROTOTYPES
 
234
EGLAPI EGLBoolean EGLAPIENTRY eglCopyContextMESA(EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
 
235
#endif /* EGL_EGLEXT_PROTOTYPES */
 
236
 
 
237
typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOPYCONTEXTMESA) (EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
 
238
 
 
239
#endif /* EGL_MESA_copy_context */
 
240
 
 
241
#ifndef EGL_MESA_drm_display
 
242
#define EGL_MESA_drm_display 1
 
243
 
 
244
#ifdef EGL_EGLEXT_PROTOTYPES
 
245
EGLAPI EGLDisplay EGLAPIENTRY eglGetDRMDisplayMESA(int fd);
 
246
#endif /* EGL_EGLEXT_PROTOTYPES */
 
247
 
 
248
typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETDRMDISPLAYMESA) (int fd);
 
249
 
 
250
#endif /* EGL_MESA_drm_display */
 
251
 
 
252
#ifndef EGL_KHR_image_base
 
253
#define EGL_KHR_image_base 1
 
254
/* Most interfaces defined by EGL_KHR_image_pixmap above */
 
255
#define EGL_IMAGE_PRESERVED_KHR                 0x30D2  /* eglCreateImageKHR attribute */
 
256
#endif
 
257
 
 
258
#ifndef EGL_KHR_image_pixmap
 
259
#define EGL_KHR_image_pixmap 1
 
260
/* Interfaces defined by EGL_KHR_image above */
 
261
#endif
 
262
 
 
263
#ifndef EGL_IMG_context_priority
 
264
#define EGL_IMG_context_priority 1
 
265
#define EGL_CONTEXT_PRIORITY_LEVEL_IMG          0x3100
 
266
#define EGL_CONTEXT_PRIORITY_HIGH_IMG           0x3101
 
267
#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG         0x3102
 
268
#define EGL_CONTEXT_PRIORITY_LOW_IMG            0x3103
 
269
#endif
 
270
 
 
271
#ifndef EGL_KHR_lock_surface2
 
272
#define EGL_KHR_lock_surface2 1
 
273
#define EGL_BITMAP_PIXEL_SIZE_KHR               0x3110
 
274
#endif
 
275
 
 
276
#ifndef EGL_NV_coverage_sample
 
277
#define EGL_NV_coverage_sample 1
 
278
#define EGL_COVERAGE_BUFFERS_NV 0x30E0
 
279
#define EGL_COVERAGE_SAMPLES_NV 0x30E1
 
280
#endif
 
281
 
 
282
#ifndef EGL_NV_depth_nonlinear
 
283
#define EGL_NV_depth_nonlinear 1
 
284
#define EGL_DEPTH_ENCODING_NV 0x30E2
 
285
#define EGL_DEPTH_ENCODING_NONE_NV 0
 
286
#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
 
287
#endif
 
288
 
 
289
#if KHRONOS_SUPPORT_INT64   /* EGLTimeNV requires 64-bit uint support */
 
290
#ifndef EGL_NV_sync
 
291
#define EGL_NV_sync 1
 
292
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV     0x30E6
 
293
#define EGL_SYNC_STATUS_NV                      0x30E7
 
294
#define EGL_SIGNALED_NV                         0x30E8
 
295
#define EGL_UNSIGNALED_NV                       0x30E9
 
296
#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV          0x0001
 
297
#define EGL_FOREVER_NV                          0xFFFFFFFFFFFFFFFFull
 
298
#define EGL_ALREADY_SIGNALED_NV                 0x30EA
 
299
#define EGL_TIMEOUT_EXPIRED_NV                  0x30EB
 
300
#define EGL_CONDITION_SATISFIED_NV              0x30EC
 
301
#define EGL_SYNC_TYPE_NV                        0x30ED
 
302
#define EGL_SYNC_CONDITION_NV                   0x30EE
 
303
#define EGL_SYNC_FENCE_NV                       0x30EF
 
304
#define EGL_NO_SYNC_NV                          ((EGLSyncNV)0)
 
305
typedef void* EGLSyncNV;
 
306
typedef khronos_utime_nanoseconds_t EGLTimeNV;
 
307
#ifdef EGL_EGLEXT_PROTOTYPES
 
308
EGLSyncNV eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
 
309
EGLBoolean eglDestroySyncNV (EGLSyncNV sync);
 
310
EGLBoolean eglFenceNV (EGLSyncNV sync);
 
311
EGLint eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
 
312
EGLBoolean eglSignalSyncNV (EGLSyncNV sync, EGLenum mode);
 
313
EGLBoolean eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value);
 
314
#endif /* EGL_EGLEXT_PROTOTYPES */
 
315
typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
 
316
typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
 
317
typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
 
318
typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
 
319
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
 
320
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
 
321
#endif
 
322
#endif
 
323
 
 
324
#if KHRONOS_SUPPORT_INT64   /* Dependent on EGL_KHR_reusable_sync which requires 64-bit uint support */
 
325
#ifndef EGL_KHR_fence_sync
 
326
#define EGL_KHR_fence_sync 1
 
327
/* Reuses most tokens and entry points from EGL_KHR_reusable_sync */
 
328
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR    0x30F0
 
329
#define EGL_SYNC_CONDITION_KHR                  0x30F8
 
330
#define EGL_SYNC_FENCE_KHR                      0x30F9
 
331
#endif
 
332
#endif
 
333
 
 
334
#ifndef EGL_HI_clientpixmap
 
335
#define EGL_HI_clientpixmap 1
 
336
 
 
337
/* Surface Attribute */
 
338
#define EGL_CLIENT_PIXMAP_POINTER_HI            0x8F74
 
339
/*
 
340
 * Structure representing a client pixmap
 
341
 * (pixmap's data is in client-space memory).
 
342
 */
 
343
struct EGLClientPixmapHI
 
344
{
 
345
        void*           pData;
 
346
        EGLint          iWidth;
 
347
        EGLint          iHeight;
 
348
        EGLint          iStride;
 
349
};
 
350
 
 
351
#ifdef EGL_EGLEXT_PROTOTYPES
 
352
EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
 
353
#endif /* EGL_EGLEXT_PROTOTYPES */
 
354
typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
 
355
#endif  /* EGL_HI_clientpixmap */
 
356
 
 
357
#ifndef EGL_HI_colorformats
 
358
#define EGL_HI_colorformats 1
 
359
/* Config Attribute */
 
360
#define EGL_COLOR_FORMAT_HI                     0x8F70
 
361
/* Color Formats */
 
362
#define EGL_COLOR_RGB_HI                        0x8F71
 
363
#define EGL_COLOR_RGBA_HI                       0x8F72
 
364
#define EGL_COLOR_ARGB_HI                       0x8F73
 
365
#endif /* EGL_HI_colorformats */
 
366
 
 
367
#ifndef EGL_NOK_swap_region
 
368
#define EGL_NOK_swap_region 1
 
369
 
 
370
#ifdef EGL_EGLEXT_PROTOTYPES
 
371
EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
 
372
#endif
 
373
 
 
374
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOK) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
 
375
#endif
 
376
 
 
377
 
 
378
#ifndef EGL_NOK_texture_from_pixmap
 
379
#define EGL_NOK_texture_from_pixmap 1
 
380
 
 
381
#define EGL_Y_INVERTED_NOK                      0x307F
 
382
#endif /* EGL_NOK_texture_from_pixmap */
 
383
 
 
384
 
 
385
#ifdef __cplusplus
 
386
}
 
387
#endif
 
388
 
 
389
#endif