diff options
author | Chad Versace <[email protected]> | 2014-01-28 17:03:03 -0800 |
---|---|---|
committer | Chad Versace <[email protected]> | 2014-03-17 15:36:04 -0700 |
commit | bc2cbc0951ded883dc610672a6f6d4cca5d99502 (patch) | |
tree | ed372276f04833dbcf44a41aed090f4260e1d1a6 /src/egl/drivers/dri2/egl_dri2.c | |
parent | 3fdfbd2572ea42f3ef71db032b31cc87ea274e11 (diff) |
egl/dri2: Dispatch eglCopyBuffers by display, not driver
Add dri2_egl_display_vtbl::copy_buffers, set it for each
platform, and let egl_dri2 dispatch eglCopyBuffers to that.
This prepares for the EGL platform extensions.
Reviewed-by: Ian Romanick <[email protected]>
Signed-off-by: Chad Versace <[email protected]>
Diffstat (limited to 'src/egl/drivers/dri2/egl_dri2.c')
-rw-r--r-- | src/egl/drivers/dri2/egl_dri2.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 9ee4e123b53..3bf96ba111c 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1073,6 +1073,14 @@ dri2_swap_buffers_with_damage(_EGLDriver *drv, _EGLDisplay *dpy, rects, n_rects); } +static EGLBoolean +dri2_copy_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf, + EGLNativePixmapType target) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(dpy); + return dri2_dpy->vtbl->copy_buffers(drv, dpy, surf, target); +} + static EGLint dri2_query_buffer_age(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf) { @@ -2110,6 +2118,7 @@ _eglBuiltInDriverDRI2(const char *args) dri2_drv->base.API.SwapInterval = dri2_swap_interval; dri2_drv->base.API.SwapBuffers = dri2_swap_buffers; dri2_drv->base.API.SwapBuffersWithDamageEXT = dri2_swap_buffers_with_damage; + dri2_drv->base.API.CopyBuffers = dri2_copy_buffers, dri2_drv->base.API.QueryBufferAge = dri2_query_buffer_age; dri2_drv->base.API.CreateImageKHR = dri2_create_image_khr; dri2_drv->base.API.DestroyImageKHR = dri2_destroy_image_khr; |