44c130b9c142607a5b1dc6cbf96b19b9091c782d
[mesa.git] / src / egl / drivers / dri2 / egl_dri2_fallbacks.h
1 /*
2 * Copyright 2014 Intel Corporation
3 *
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:
10 *
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
13 * Software.
14 *
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.
23 */
24
25 #ifndef EGL_DRI2_FALLBACKS_INCLUDED
26 #define EGL_DRI2_FALLBACKS_INCLUDED
27
28 #include "eglcurrent.h"
29 #include "egltypedefs.h"
30
31 struct wl_buffer;
32
33 static inline _EGLImage*
34 dri2_fallback_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
35 _EGLContext *ctx, EGLenum target,
36 EGLClientBuffer buffer,
37 const EGLint *attr_list)
38 {
39 return NULL;
40 }
41
42 static inline EGLBoolean
43 dri2_fallback_swap_buffers_with_damage(_EGLDriver *drv, _EGLDisplay *disp,
44 _EGLSurface *surf,
45 const EGLint *rects, EGLint n_rects)
46 {
47 struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
48 return dri2_dpy->vtbl->swap_buffers(drv, disp, surf);
49 }
50
51 static inline EGLBoolean
52 dri2_fallback_swap_buffers_region(_EGLDriver *drv, _EGLDisplay *disp,
53 _EGLSurface *surf,
54 EGLint numRects, const EGLint *rects)
55 {
56 return EGL_FALSE;
57 }
58
59 static inline EGLBoolean
60 dri2_fallback_post_sub_buffer(_EGLDriver *drv, _EGLDisplay *disp,
61 _EGLSurface *draw,
62 EGLint x, EGLint y, EGLint width, EGLint height)
63 {
64 return EGL_FALSE;
65 }
66
67 static inline EGLBoolean
68 dri2_fallback_copy_buffers(_EGLDriver *drv, _EGLDisplay *disp,
69 _EGLSurface *surf,
70 void *native_pixmap_target)
71 {
72 return _eglError(EGL_BAD_NATIVE_PIXMAP, "no support for native pixmaps");
73 }
74
75 static inline EGLint
76 dri2_fallback_query_buffer_age(_EGLDriver *drv, _EGLDisplay *disp,
77 _EGLSurface *surf)
78 {
79 return 0;
80 }
81
82 static inline struct wl_buffer*
83 dri2_fallback_create_wayland_buffer_from_image(_EGLDriver *drv,
84 _EGLDisplay *disp,
85 _EGLImage *img)
86 {
87 return NULL;
88 }
89
90 static inline EGLBoolean
91 dri2_fallback_get_sync_values(_EGLDisplay *disp, _EGLSurface *surf,
92 EGLuint64KHR *ust, EGLuint64KHR *msc,
93 EGLuint64KHR *sbc)
94 {
95 return EGL_FALSE;
96 }
97
98 #endif /* EGL_DRI2_FALLBACKS_INCLUDED */