Home | History | Annotate | Download | only in EGL
      1 /**************************************************************************
      2  *
      3  * Copyright 2008 VMware, Inc.
      4  * All Rights Reserved.
      5  *
      6  * Permission is hereby granted, free of charge, to any person obtaining a
      7  * copy of this software and associated documentation files (the
      8  * "Software"), to deal in the Software without restriction, including
      9  * without limitation the rights to use, copy, modify, merge, publish,
     10  * distribute, sub license, and/or sell copies of the Software, and to
     11  * permit persons to whom the Software is furnished to do so, subject to
     12  * the following conditions:
     13  *
     14  * The above copyright notice and this permission notice (including the
     15  * next paragraph) shall be included in all copies or substantial portions
     16  * of the Software.
     17  *
     18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     21  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     22  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     23  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     24  * DEALINGS IN THE SOFTWARE.
     25  *
     26  **************************************************************************/
     27 
     28 #ifndef __eglmesaext_h_
     29 #define __eglmesaext_h_
     30 
     31 #ifdef __cplusplus
     32 extern "C" {
     33 #endif
     34 
     35 #include <EGL/eglplatform.h>
     36 
     37 #ifdef EGL_MESA_drm_image
     38 /* Mesa's extension to EGL_MESA_drm_image... */
     39 #ifndef EGL_DRM_BUFFER_USE_CURSOR_MESA
     40 #define EGL_DRM_BUFFER_USE_CURSOR_MESA		0x0004
     41 #endif
     42 #endif
     43 
     44 #ifndef EGL_WL_bind_wayland_display
     45 #define EGL_WL_bind_wayland_display 1
     46 
     47 #define EGL_WAYLAND_BUFFER_WL		0x31D5 /* eglCreateImageKHR target */
     48 #define EGL_WAYLAND_PLANE_WL		0x31D6 /* eglCreateImageKHR target */
     49 
     50 #define EGL_WAYLAND_Y_INVERTED_WL	0x31DB /* eglQueryWaylandBufferWL attribute */
     51 
     52 #define EGL_TEXTURE_Y_U_V_WL            0x31D7
     53 #define EGL_TEXTURE_Y_UV_WL             0x31D8
     54 #define EGL_TEXTURE_Y_XUXV_WL           0x31D9
     55 #define EGL_TEXTURE_EXTERNAL_WL         0x31DA
     56 
     57 struct wl_display;
     58 struct wl_resource;
     59 #ifdef EGL_EGLEXT_PROTOTYPES
     60 EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display);
     61 EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display);
     62 EGLAPI EGLBoolean EGLAPIENTRY eglQueryWaylandBufferWL(EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value);
     63 #endif
     64 typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
     65 typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
     66 typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWL) (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value);
     67 
     68 #endif
     69 
     70 #ifndef EGL_WL_create_wayland_buffer_from_image
     71 #define EGL_WL_create_wayland_buffer_from_image 1
     72 
     73 #ifdef EGL_EGLEXT_PROTOTYPES
     74 EGLAPI struct wl_buffer * EGLAPIENTRY eglCreateWaylandBufferFromImageWL(EGLDisplay dpy, EGLImageKHR image);
     75 #endif
     76 typedef struct wl_buffer * (EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL) (EGLDisplay dpy, EGLImageKHR image);
     77 
     78 #endif
     79 
     80 /* remnant of EGL_NOK_swap_region kept for compatibility because of a non-standard type name */
     81 typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOK) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
     82 
     83 #ifndef EGL_MESA_configless_context
     84 #define EGL_MESA_configless_context 1
     85 #define EGL_NO_CONFIG_MESA			((EGLConfig)0)
     86 #endif
     87 
     88 #ifndef EGL_MESA_platform_surfaceless
     89 #define EGL_MESA_platform_surfaceless 1
     90 #define EGL_PLATFORM_SURFACELESS_MESA           0x31DD
     91 #endif /* EGL_MESA_platform_surfaceless */
     92 
     93 #ifdef __cplusplus
     94 }
     95 #endif
     96 
     97 #endif
     98