egl/wayland: Remove more surface specifics from create_wl_buffer
authorDaniel Stone <daniels@collabora.com>
Fri, 16 Jun 2017 16:33:56 +0000 (17:33 +0100)
committerDaniel Stone <daniels@collabora.com>
Tue, 18 Jul 2017 21:16:21 +0000 (22:16 +0100)
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/egl/drivers/dri2/platform_wayland.c

index 1736c4c9fb1faa73412ac8123fa77acbc3fef00b..b86b5481baddecf54841091a82ebb7195abb30e2 100644 (file)
@@ -643,31 +643,28 @@ create_wl_buffer(struct dri2_egl_display *dri2_dpy,
                  __DRIimage *image)
 {
    struct wl_buffer *ret;
-   int fd, stride, name;
+   int width, height, fourcc;
+
+   dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_WIDTH, &width);
+   dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_HEIGHT, &height);
+   dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_FOURCC, &fourcc);
 
    if (dri2_dpy->capabilities & WL_DRM_CAPABILITY_PRIME) {
+      int fd, stride;
+
       dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_FD, &fd);
       dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_STRIDE, &stride);
-
       ret = wl_drm_create_prime_buffer(dri2_surf->wl_drm_wrapper,
-                                       fd,
-                                       dri2_surf->base.Width,
-                                       dri2_surf->base.Height,
-                                       dri2_surf->format,
-                                       0, stride,
-                                       0, 0,
-                                       0, 0);
+                                       fd, width, height, fourcc, 0, stride,
+                                       0, 0, 0, 0);
       close(fd);
    } else {
+      int name, stride;
+
       dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_NAME, &name);
       dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_STRIDE, &stride);
-
       ret = wl_drm_create_buffer(dri2_surf->wl_drm_wrapper,
-                                 name,
-                                 dri2_surf->base.Width,
-                                 dri2_surf->base.Height,
-                                 stride,
-                                 dri2_surf->format);
+                                 name, width, height, stride, fourcc);
    }
 
    return ret;