diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c index 37499d3f0..e3c5bb581 100644 --- a/hw/xwayland/xwayland-glamor-gbm.c +++ b/hw/xwayland/xwayland-glamor-gbm.c @@ -402,13 +402,17 @@ xwl_glamor_gbm_create_pixmap(ScreenPtr screen, width, height, depth, hint, FALSE); } -static PixmapPtr -xwl_glamor_gbm_create_pixmap_for_window(struct xwl_window *xwl_window) +PixmapPtr +xwl_glamor_create_pixmap_for_window(struct xwl_window *xwl_window) { + struct xwl_screen *xwl_screen = xwl_window->xwl_screen; WindowPtr window = xwl_window->window; unsigned border_width = 2 * window->borderWidth; - return xwl_glamor_gbm_create_pixmap_internal(xwl_window->xwl_screen, + if (!xwl_screen->glamor || !xwl_screen->egl_backend) + return NullPixmap; + + return xwl_glamor_gbm_create_pixmap_internal(xwl_screen, &window->drawable, window->drawable.width + border_width, window->drawable.height + border_width, @@ -1304,5 +1308,4 @@ xwl_glamor_init_gbm(struct xwl_screen *xwl_screen) xwl_screen->gbm_backend.is_available = TRUE; xwl_screen->gbm_backend.backend_flags = XWL_EGL_BACKEND_NEEDS_BUFFER_FLUSH | XWL_EGL_BACKEND_NEEDS_N_BUFFERING; - xwl_screen->gbm_backend.create_pixmap_for_window = xwl_glamor_gbm_create_pixmap_for_window; } diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c index a4ddaf9bd..16f862896 100644 --- a/hw/xwayland/xwayland-glamor.c +++ b/hw/xwayland/xwayland-glamor.c @@ -315,20 +315,6 @@ xwl_glamor_needs_n_buffering(struct xwl_screen *xwl_screen) XWL_EGL_BACKEND_NEEDS_N_BUFFERING); } -PixmapPtr -xwl_glamor_create_pixmap_for_window(struct xwl_window *xwl_window) -{ - struct xwl_screen *xwl_screen = xwl_window->xwl_screen; - - if (!xwl_screen->glamor || !xwl_screen->egl_backend) - return NullPixmap; - - if (xwl_screen->egl_backend->create_pixmap_for_window) - return xwl_screen->egl_backend->create_pixmap_for_window(xwl_window); - else - return NullPixmap; -} - void xwl_glamor_init_backends(struct xwl_screen *xwl_screen) {