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 "egltypedefs.h"
29 
30 struct wl_buffer;
31 
32 static inline _EGLSurface *
dri2_fallback_create_pixmap_surface(_EGLDriver * drv,_EGLDisplay * disp,_EGLConfig * conf,void * native_pixmap,const EGLint * attrib_list)33 dri2_fallback_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp,
34                                     _EGLConfig *conf,
35                                     void *native_pixmap,
36                                     const EGLint *attrib_list)
37 {
38    return NULL;
39 }
40 
41 static inline _EGLSurface *
dri2_fallback_create_pbuffer_surface(_EGLDriver * drv,_EGLDisplay * disp,_EGLConfig * conf,const EGLint * attrib_list)42 dri2_fallback_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *disp,
43                                      _EGLConfig *conf,
44                                      const EGLint *attrib_list)
45 {
46    return NULL;
47 }
48 
49 static inline _EGLImage*
dri2_fallback_create_image_khr(_EGLDriver * drv,_EGLDisplay * disp,_EGLContext * ctx,EGLenum target,EGLClientBuffer buffer,const EGLint * attr_list)50 dri2_fallback_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
51                                _EGLContext *ctx, EGLenum target,
52                                EGLClientBuffer buffer,
53                                const EGLint *attr_list)
54 {
55    return NULL;
56 }
57 
58 static inline EGLBoolean
dri2_fallback_swap_buffers_with_damage(_EGLDriver * drv,_EGLDisplay * dpy,_EGLSurface * surf,const EGLint * rects,EGLint n_rects)59 dri2_fallback_swap_buffers_with_damage(_EGLDriver *drv, _EGLDisplay *dpy,
60                                       _EGLSurface *surf,
61                                       const EGLint *rects, EGLint n_rects)
62 {
63    struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy);
64    dri2_dpy->vtbl->set_damage_region(drv, dpy, surf, rects, n_rects);
65    return dri2_dpy->vtbl->swap_buffers(drv, dpy, surf);
66 }
67 
68 static inline EGLBoolean
dri2_fallback_swap_buffers_region(_EGLDriver * drv,_EGLDisplay * dpy,_EGLSurface * surf,EGLint numRects,const EGLint * rects)69 dri2_fallback_swap_buffers_region(_EGLDriver *drv, _EGLDisplay *dpy,
70                                   _EGLSurface *surf,
71                                   EGLint numRects, const EGLint *rects)
72 {
73    return EGL_FALSE;
74 }
75 
76 static inline EGLBoolean
dri2_fallback_post_sub_buffer(_EGLDriver * drv,_EGLDisplay * dpy,_EGLSurface * draw,EGLint x,EGLint y,EGLint width,EGLint height)77 dri2_fallback_post_sub_buffer(_EGLDriver *drv, _EGLDisplay *dpy,
78                               _EGLSurface *draw,
79                               EGLint x, EGLint y, EGLint width, EGLint height)
80 {
81    return EGL_FALSE;
82 }
83 
84 static inline EGLBoolean
dri2_fallback_copy_buffers(_EGLDriver * drv,_EGLDisplay * dpy,_EGLSurface * surf,void * native_pixmap_target)85 dri2_fallback_copy_buffers(_EGLDriver *drv, _EGLDisplay *dpy,
86                            _EGLSurface *surf,
87                            void *native_pixmap_target)
88 {
89    return EGL_FALSE;
90 }
91 
92 static inline EGLBoolean
dri2_fallback_set_damage_region(_EGLDriver * drv,_EGLDisplay * dpy,_EGLSurface * surf,const EGLint * rects,EGLint n_rects)93 dri2_fallback_set_damage_region(_EGLDriver *drv, _EGLDisplay *dpy,
94                                 _EGLSurface *surf,
95                                 const EGLint *rects, EGLint n_rects)
96 {
97    return EGL_FALSE;
98 }
99 
100 static inline EGLint
dri2_fallback_query_buffer_age(_EGLDriver * drv,_EGLDisplay * dpy,_EGLSurface * surf)101 dri2_fallback_query_buffer_age(_EGLDriver *drv, _EGLDisplay *dpy,
102                                _EGLSurface *surf)
103 {
104    return 0;
105 }
106 
107 static inline struct wl_buffer*
dri2_fallback_create_wayland_buffer_from_image(_EGLDriver * drv,_EGLDisplay * dpy,_EGLImage * img)108 dri2_fallback_create_wayland_buffer_from_image(_EGLDriver *drv,
109                                                _EGLDisplay *dpy,
110                                                _EGLImage *img)
111 {
112    return NULL;
113 }
114 
115 static inline EGLBoolean
dri2_fallback_get_sync_values(_EGLDisplay * dpy,_EGLSurface * surf,EGLuint64KHR * ust,EGLuint64KHR * msc,EGLuint64KHR * sbc)116 dri2_fallback_get_sync_values(_EGLDisplay *dpy, _EGLSurface *surf,
117                               EGLuint64KHR *ust, EGLuint64KHR *msc,
118                               EGLuint64KHR *sbc)
119 {
120    return EGL_FALSE;
121 }
122 
123 #endif /* EGL_DRI2_FALLBACKS_INCLUDED */
124