Mesa (master): st/egl: Update to the new wl_shm_pool interface

Benjamin Franzke bnf at kemper.freedesktop.org
Tue Apr 3 18:30:03 UTC 2012


Module: Mesa
Branch: master
Commit: 9ba3cecaa02eba07bc6456c441126e4e2e823da5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9ba3cecaa02eba07bc6456c441126e4e2e823da5

Author: Benjamin Franzke <benjaminfranzke at googlemail.com>
Date:   Tue Apr  3 20:20:49 2012 +0200

st/egl: Update to the new wl_shm_pool interface

---

 .../state_trackers/egl/wayland/native_shm.c        |   11 ++++++++---
 src/gallium/winsys/sw/wayland/wayland_sw_winsys.c  |    1 +
 src/gallium/winsys/sw/wayland/wayland_sw_winsys.h  |    1 +
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/gallium/state_trackers/egl/wayland/native_shm.c b/src/gallium/state_trackers/egl/wayland/native_shm.c
index c237578..574ffce 100644
--- a/src/gallium/state_trackers/egl/wayland/native_shm.c
+++ b/src/gallium/state_trackers/egl/wayland/native_shm.c
@@ -84,6 +84,8 @@ wayland_create_shm_buffer(struct wayland_display *display,
    struct winsys_handle wsh;
    uint width, height;
    enum wl_shm_format format;
+   struct wl_buffer *buffer;
+   struct wl_shm_pool *pool;
 
    resource = resource_surface_get_single_resource(surface->rsurf, attachment);
    resource_surface_get_size(surface->rsurf, &width, &height);
@@ -104,9 +106,12 @@ wayland_create_shm_buffer(struct wayland_display *display,
       break;
    }
 
-   return wl_shm_create_buffer(shmdpy->wl_shm, wsh.fd,
-                               width, height,
-                               wsh.stride, format);
+   pool = wl_shm_create_pool(shmdpy->wl_shm, wsh.fd, wsh.size);
+   buffer = wl_shm_pool_create_buffer(pool, 0, width, height,
+                                      wsh.stride, format);
+   wl_shm_pool_destroy(pool);
+
+   return buffer;
 }
 
 static void
diff --git a/src/gallium/winsys/sw/wayland/wayland_sw_winsys.c b/src/gallium/winsys/sw/wayland/wayland_sw_winsys.c
index 1a31ada..331900e 100644
--- a/src/gallium/winsys/sw/wayland/wayland_sw_winsys.c
+++ b/src/gallium/winsys/sw/wayland/wayland_sw_winsys.c
@@ -243,6 +243,7 @@ wayland_displaytarget_get_handle(struct sw_winsys *ws,
 
    whandle->fd = wldt->fd;
    whandle->stride = wldt->stride;
+   whandle->size = wldt->size;
 
    return TRUE;
 }
diff --git a/src/gallium/winsys/sw/wayland/wayland_sw_winsys.h b/src/gallium/winsys/sw/wayland/wayland_sw_winsys.h
index bedd240..c7a0b5c 100644
--- a/src/gallium/winsys/sw/wayland/wayland_sw_winsys.h
+++ b/src/gallium/winsys/sw/wayland/wayland_sw_winsys.h
@@ -32,6 +32,7 @@ struct wl_display;
 struct winsys_handle {
    int fd;
    unsigned stride;
+   unsigned size;
 };
 
 struct sw_winsys *




More information about the mesa-commit mailing list