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