[vlc-commits] window: define Wayland surface type

Rémi Denis-Courmont git at videolan.org
Thu Aug 28 22:56:17 CEST 2014


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Wed Aug 27 19:39:32 2014 +0300| [6eafc08b3ed0421b66dc2eb7e44e9cb465b6f987] | committer: Rémi Denis-Courmont

window: define Wayland surface type

The convention used here matches with the Qt Wayland native platform,
and seems most generic. Note that Wayland does not allow "sharing"
surface handles between multiple display connections in general, and
multiple processes in particular.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6eafc08b3ed0421b66dc2eb7e44e9cb465b6f987
---

 include/vlc_vout_window.h |    5 +++++
 src/video_output/window.c |    5 +++++
 2 files changed, 10 insertions(+)

diff --git a/include/vlc_vout_window.h b/include/vlc_vout_window.h
index ed7d42c..a633b0d 100644
--- a/include/vlc_vout_window.h
+++ b/include/vlc_vout_window.h
@@ -36,6 +36,8 @@
 typedef struct vout_window_t vout_window_t;
 typedef struct vout_window_sys_t vout_window_sys_t;
 
+struct wl_display;
+struct wl_surface;
 
 /**
  * Window handle type
@@ -46,6 +48,7 @@ enum {
     VOUT_WINDOW_TYPE_HWND,
     VOUT_WINDOW_TYPE_NSOBJECT,
     VOUT_WINDOW_TYPE_ANDROID_NATIVE,
+    VOUT_WINDOW_TYPE_WAYLAND,
 };
 
 /**
@@ -92,11 +95,13 @@ struct vout_window_t {
         uint32_t xid;            /* X11 windows ID */
         void     *nsobject;      /* Mac OSX view object */
         void     *anativewindow; /* Android native window. */
+        struct wl_surface *wl;   /* Wayland surface */
     } handle;
 
     /* display server (mandatory) */
     union {
         char     *x11; /* X11 display (NULL = use default) */
+        struct wl_display *wl;   /* Wayland struct wl_display pointer */
     } display;
 
     /* Control on the module (mandatory)
diff --git a/src/video_output/window.c b/src/video_output/window.c
index bc45bc2..8be5492 100644
--- a/src/video_output/window.c
+++ b/src/video_output/window.c
@@ -86,6 +86,11 @@ vout_window_t *vout_window_New(vlc_object_t *obj,
         type = "vout window anative";
         window->handle.anativewindow = NULL;
         break;
+    case VOUT_WINDOW_TYPE_WAYLAND:
+        type = "vout surface wl";
+        window->handle.wl = NULL;
+        window->display.wl = NULL;
+        break;
     default:
         assert(0);
     }



More information about the vlc-commits mailing list