[vlc-commits] xdg-shell: bind wl_shm
Rémi Denis-Courmont
git at videolan.org
Thu May 24 19:33:18 CEST 2018
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu May 24 20:24:25 2018 +0300| [330fc86d067c598512382b17cf36de1661798126] | committer: Rémi Denis-Courmont
xdg-shell: bind wl_shm
This will be needed to allocate a cursor.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=330fc86d067c598512382b17cf36de1661798126
---
modules/video_output/wayland/xdg-shell.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/modules/video_output/wayland/xdg-shell.c b/modules/video_output/wayland/xdg-shell.c
index 06d3a286a5..a054656459 100644
--- a/modules/video_output/wayland/xdg-shell.c
+++ b/modules/video_output/wayland/xdg-shell.c
@@ -71,6 +71,7 @@ struct vout_window_sys_t
{
struct wl_registry *registry;
struct wl_compositor *compositor;
+ struct wl_shm *shm;
struct xdg_wm_base *wm_base;
struct xdg_surface *surface;
struct xdg_toplevel *toplevel;
@@ -355,6 +356,9 @@ static void registry_global_cb(void *data, struct wl_registry *registry,
1);
#endif
else
+ if (!strcmp(iface, "wl_shm"))
+ sys->shm = wl_registry_bind(registry, name, &wl_shm_interface, 1);
+ else
if (!strcmp(iface, "wl_seat"))
seat_create(wnd, registry, name, vers, &sys->seats);
else
@@ -398,6 +402,7 @@ static int Open(vout_window_t *wnd, const vout_window_cfg_t *cfg)
return VLC_ENOMEM;
sys->compositor = NULL;
+ sys->shm = NULL;
sys->wm_base = NULL;
sys->surface = NULL;
sys->toplevel = NULL;
@@ -536,6 +541,8 @@ error:
xdg_wm_base_destroy(sys->wm_base);
if (wnd->handle.wl != NULL)
wl_surface_destroy(wnd->handle.wl);
+ if (sys->shm != NULL)
+ wl_shm_destroy(sys->shm);
if (sys->compositor != NULL)
wl_compositor_destroy(sys->compositor);
if (sys->registry != NULL)
@@ -565,6 +572,8 @@ static void Close(vout_window_t *wnd)
xdg_surface_destroy(sys->surface);
xdg_wm_base_destroy(sys->wm_base);
wl_surface_destroy(wnd->handle.wl);
+ if (sys->shm != NULL)
+ wl_shm_destroy(sys->shm);
wl_compositor_destroy(sys->compositor);
wl_registry_destroy(sys->registry);
wl_display_disconnect(wnd->display.wl);
More information about the vlc-commits
mailing list