1ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu/**************************************************************************
2ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu *
3ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
4ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * All Rights Reserved.
5ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu *
6ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * Permission is hereby granted, free of charge, to any person obtaining a
7ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * copy of this software and associated documentation files (the
8ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * "Software"), to deal in the Software without restriction, including
9ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * without limitation the rights to use, copy, modify, merge, publish,
10ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * distribute, sub license, and/or sell copies of the Software, and to
11ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * permit persons to whom the Software is furnished to do so, subject to
12ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * the following conditions:
13ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu *
14ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * The above copyright notice and this permission notice (including the
15ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * next paragraph) shall be included in all copies or substantial portions
16ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * of the Software.
17ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu *
18ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
21ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu * DEALINGS IN THE SOFTWARE.
25ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu *
26ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu **************************************************************************/
27ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
28ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifndef __eglmesaext_h_
29ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define __eglmesaext_h_
30ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
31ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifdef __cplusplus
32ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wuextern "C" {
33ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif
34ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
35ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#include <EGL/eglplatform.h>
36ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
37ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu/* EGL_MESA_screen extension  >>> PRELIMINARY <<< */
38ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifndef EGL_MESA_screen_surface
39ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_MESA_screen_surface 1
40ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
41ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_BAD_SCREEN_MESA                    0x4000
42ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_BAD_MODE_MESA                      0x4001
43ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_SCREEN_COUNT_MESA                  0x4002
44ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_SCREEN_POSITION_MESA               0x4003
45ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_SCREEN_POSITION_GRANULARITY_MESA   0x4004
46ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_MODE_ID_MESA                       0x4005
47ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_REFRESH_RATE_MESA                  0x4006
48ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_OPTIMAL_MESA                       0x4007
49ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_INTERLACED_MESA                    0x4008
50ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_SCREEN_BIT_MESA                    0x08
51ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
52ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef khronos_uint32_t EGLScreenMESA;
53ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef khronos_uint32_t EGLModeMESA;
54ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
55ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifdef EGL_EGLEXT_PROTOTYPES
56ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglChooseModeMESA(EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
57ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglGetModesMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
58ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglGetModeAttribMESA(EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
59ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglGetScreensMESA(EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
60ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLSurface EGLAPIENTRY eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
61ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglShowScreenSurfaceMESA(EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
62ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglScreenPositionMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
63ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
64ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
65ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenModeMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
66ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI const char * EGLAPIENTRY eglQueryModeStringMESA(EGLDisplay dpy, EGLModeMESA mode);
67ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif /* EGL_EGLEXT_PROTOTYPES */
68ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
69ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLCHOOSEMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
70ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMODESMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
71ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLGetModeATTRIBMESA) (EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
72ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSCRREENSMESA) (EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
73ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESCREENSURFACEMESA) (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
74ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLSHOWSCREENSURFACEMESA) (EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
75ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLSCREENPOSIITONMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
76ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
77ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENSURFACEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
78ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
79ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef const char * (EGLAPIENTRYP PFNEGLQUERYMODESTRINGMESA) (EGLDisplay dpy, EGLModeMESA mode);
80ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
81ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif /* EGL_MESA_screen_surface */
82ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
83ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifndef EGL_MESA_copy_context
84ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_MESA_copy_context 1
85ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
86ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifdef EGL_EGLEXT_PROTOTYPES
87ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglCopyContextMESA(EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
88ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif /* EGL_EGLEXT_PROTOTYPES */
89ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
90ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLCOPYCONTEXTMESA) (EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
91ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
92ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif /* EGL_MESA_copy_context */
93ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
94ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifndef EGL_MESA_drm_display
95ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_MESA_drm_display 1
96ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
97ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifdef EGL_EGLEXT_PROTOTYPES
98ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLDisplay EGLAPIENTRY eglGetDRMDisplayMESA(int fd);
99ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif /* EGL_EGLEXT_PROTOTYPES */
100ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
101ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLDisplay (EGLAPIENTRYP PFNEGLGETDRMDISPLAYMESA) (int fd);
102ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
103ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif /* EGL_MESA_drm_display */
104ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
105b7acfe7755a316910f883aeb05d834e1f3f7bd93Chia-I Wu#ifdef EGL_MESA_drm_image
106b7acfe7755a316910f883aeb05d834e1f3f7bd93Chia-I Wu/* Mesa's extension to EGL_MESA_drm_image... */
107b7acfe7755a316910f883aeb05d834e1f3f7bd93Chia-I Wu#ifndef EGL_DRM_BUFFER_USE_CURSOR_MESA
108ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_DRM_BUFFER_USE_CURSOR_MESA		0x0004
109ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif
110ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif
111ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
112ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifndef EGL_WL_bind_wayland_display
113ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_WL_bind_wayland_display 1
114ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
115e23bfdb3298ec43ef895121527fb4d79474d7b1bKristian Høgsberg#define EGL_WAYLAND_BUFFER_WL		0x31D5 /* eglCreateImageKHR target */
116e23bfdb3298ec43ef895121527fb4d79474d7b1bKristian Høgsberg#define EGL_WAYLAND_PLANE_WL		0x31D6 /* eglCreateImageKHR target */
117e6a33570b73aa56c87818d7f67a122d4427b7841Kristian Høgsberg
118e23bfdb3298ec43ef895121527fb4d79474d7b1bKristian Høgsberg#define EGL_TEXTURE_Y_U_V_WL            0x31D7
119e23bfdb3298ec43ef895121527fb4d79474d7b1bKristian Høgsberg#define EGL_TEXTURE_Y_UV_WL             0x31D8
120e23bfdb3298ec43ef895121527fb4d79474d7b1bKristian Høgsberg#define EGL_TEXTURE_Y_XUXV_WL           0x31D9
121e6a33570b73aa56c87818d7f67a122d4427b7841Kristian Høgsberg
122ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wustruct wl_display;
123e6a33570b73aa56c87818d7f67a122d4427b7841Kristian Høgsbergstruct wl_buffer;
124ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifdef EGL_EGLEXT_PROTOTYPES
125ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display);
126ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display);
127e6a33570b73aa56c87818d7f67a122d4427b7841Kristian HøgsbergEGLAPI EGLBoolean EGLAPIENTRY eglQueryWaylandBufferWL(EGLDisplay dpy, struct wl_buffer *buffer, EGLint attribute, EGLint *value);
128ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif
129ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
130ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
131e6a33570b73aa56c87818d7f67a122d4427b7841Kristian Høgsbergtypedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWL) (EGLDisplay dpy, struct wl_buffer *buffer, EGLint attribute, EGLint *value);
132e6a33570b73aa56c87818d7f67a122d4427b7841Kristian Høgsberg
133ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif
134ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
135ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifndef EGL_NOK_swap_region
136ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_NOK_swap_region 1
137ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
138ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifdef EGL_EGLEXT_PROTOTYPES
139ab7bb10a2af711086319ce35815acd797b86fe27Chia-I WuEGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
140ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif
141ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
142ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wutypedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOK) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
143ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif
144ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
145ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifndef EGL_NOK_texture_from_pixmap
146ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_NOK_texture_from_pixmap 1
147ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
148ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_Y_INVERTED_NOK			0x307F
149ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif /* EGL_NOK_texture_from_pixmap */
150ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
151ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifndef EGL_ANDROID_image_native_buffer
152ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_ANDROID_image_native_buffer 1
153ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#define EGL_NATIVE_BUFFER_ANDROID       0x3140  /* eglCreateImageKHR target */
154ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif
155ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
156ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#ifdef __cplusplus
157ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu}
158ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif
159ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu
160ab7bb10a2af711086319ce35815acd797b86fe27Chia-I Wu#endif
161