summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/egl/wayland/wayland-drm/wayland-drm.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/egl/wayland/wayland-drm/wayland-drm.c b/src/egl/wayland/wayland-drm/wayland-drm.c
index 101b2c40051..5f831b3487f 100644
--- a/src/egl/wayland/wayland-drm/wayland-drm.c
+++ b/src/egl/wayland/wayland-drm/wayland-drm.c
@@ -36,6 +36,17 @@
#include "wayland-drm.h"
#include "wayland-drm-server-protocol.h"
+/* Git master of Wayland is moving towards a stable version of the
+ * protocol, but breaking from 0.85 in the process. For the time
+ * being, it's convenient to be able to build Mesa against both master
+ * and 0.85.x of Wayland. To make this work we'll do a compile-time
+ * version check and work around the difference in API and protocol */
+#if defined (WAYLAND_VERSION_MAJOR) && \
+ WAYLAND_VERSION_MAJOR == 0 && \
+ WAYLAND_VERSION_MINOR == 85
+#define HAS_WAYLAND_0_85
+#endif
+
struct wl_drm {
struct wl_display *display;
@@ -67,10 +78,25 @@ destroy_buffer(struct wl_resource *resource)
static void
buffer_destroy(struct wl_client *client, struct wl_resource *resource)
{
+#ifdef HAS_WAYLAND_0_85
wl_resource_destroy(resource, 0);
+#else
+ wl_resource_destroy(resource);
+#endif
+}
+
+#ifdef HAS_WAYLAND_0_85
+static void
+buffer_damage(struct wl_client *client, struct wl_resource *buffer,
+ int32_t x, int32_t y, int32_t width, int32_t height)
+{
}
+#endif
const static struct wl_buffer_interface drm_buffer_interface = {
+#ifdef HAS_WAYLAND_0_85
+ buffer_damage,
+#endif
buffer_destroy
};