2 * Copyright 2014 Intel Corporation
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
25 #ifndef EGL_DRI2_FALLBACKS_INCLUDED
26 #define EGL_DRI2_FALLBACKS_INCLUDED
28 #include "eglcurrent.h"
29 #include "egltypedefs.h"
33 static inline _EGLSurface
*
34 dri2_fallback_create_pixmap_surface(_EGLDriver
*drv
, _EGLDisplay
*disp
,
37 const EGLint
*attrib_list
)
42 static inline _EGLSurface
*
43 dri2_fallback_create_pbuffer_surface(_EGLDriver
*drv
, _EGLDisplay
*disp
,
45 const EGLint
*attrib_list
)
50 static inline _EGLImage
*
51 dri2_fallback_create_image_khr(_EGLDriver
*drv
, _EGLDisplay
*disp
,
52 _EGLContext
*ctx
, EGLenum target
,
53 EGLClientBuffer buffer
,
54 const EGLint
*attr_list
)
59 static inline EGLBoolean
60 dri2_fallback_swap_buffers_with_damage(_EGLDriver
*drv
, _EGLDisplay
*disp
,
62 const EGLint
*rects
, EGLint n_rects
)
64 struct dri2_egl_display
*dri2_dpy
= dri2_egl_display(disp
);
65 dri2_dpy
->vtbl
->set_damage_region(drv
, disp
, surf
, rects
, n_rects
);
66 return dri2_dpy
->vtbl
->swap_buffers(drv
, disp
, surf
);
69 static inline EGLBoolean
70 dri2_fallback_swap_buffers_region(_EGLDriver
*drv
, _EGLDisplay
*disp
,
72 EGLint numRects
, const EGLint
*rects
)
77 static inline EGLBoolean
78 dri2_fallback_post_sub_buffer(_EGLDriver
*drv
, _EGLDisplay
*disp
,
80 EGLint x
, EGLint y
, EGLint width
, EGLint height
)
85 static inline EGLBoolean
86 dri2_fallback_copy_buffers(_EGLDriver
*drv
, _EGLDisplay
*disp
,
88 void *native_pixmap_target
)
90 return _eglError(EGL_BAD_NATIVE_PIXMAP
, "no support for native pixmaps");
93 static inline EGLBoolean
94 dri2_fallback_set_damage_region(_EGLDriver
*drv
, _EGLDisplay
*disp
,
96 const EGLint
*rects
, EGLint n_rects
)
102 dri2_fallback_query_buffer_age(_EGLDriver
*drv
, _EGLDisplay
*disp
,
108 static inline struct wl_buffer
*
109 dri2_fallback_create_wayland_buffer_from_image(_EGLDriver
*drv
,
116 static inline EGLBoolean
117 dri2_fallback_get_sync_values(_EGLDisplay
*disp
, _EGLSurface
*surf
,
118 EGLuint64KHR
*ust
, EGLuint64KHR
*msc
,
124 #endif /* EGL_DRI2_FALLBACKS_INCLUDED */