summaryrefslogtreecommitdiff
path: root/src/platform/wayland/backend.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/wayland/backend.c')
-rw-r--r--src/platform/wayland/backend.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/platform/wayland/backend.c b/src/platform/wayland/backend.c
index 3ff696c..f6207ed 100644
--- a/src/platform/wayland/backend.c
+++ b/src/platform/wayland/backend.c
@@ -2,7 +2,7 @@
#include "platform/freedesktop/dbus.h"
#include <errno.h>
-static struct yasl_private_display *impl_display_open(struct yasl_private_loop *loop, const struct yasl_private_display_spec *spec)
+static struct yasl_private_display *impl_display_open(struct yasl_loop *loop, const struct yasl_private_display_spec *spec)
{
struct wayland_display *result = wayland_display_open(loop, spec);
return result ? &result->base : NULL;
@@ -18,9 +18,19 @@ static uint32_t impl_display_caps(const struct yasl_private_display *d)
return wayland_display_caps((const struct wayland_display *)d);
}
-static int impl_display_dispatch_timeout(struct yasl_private_display *d, int timeout_ms)
+static bool impl_display_prepare(struct yasl_private_display *d)
{
- return wayland_display_dispatch_timeout((struct wayland_display *)d, timeout_ms);
+ return wayland_display_prepare((struct wayland_display *)d);
+}
+
+static void impl_display_check(struct yasl_private_display *d)
+{
+ wayland_display_check((struct wayland_display *)d);
+}
+
+static bool impl_surface_frame_in_flight(const struct yasl_surface *s)
+{
+ return ((const struct wayland_surface *)s)->frame_cb != NULL;
}
static void impl_display_flush(struct yasl_private_display *d)
@@ -497,7 +507,9 @@ const struct yasl_private_backend_ops yasl_private_wayland_backend = {
.display_open = impl_display_open,
.display_close = impl_display_close,
.display_caps = impl_display_caps,
- .display_dispatch_timeout = impl_display_dispatch_timeout,
+ .display_prepare = impl_display_prepare,
+ .display_check = impl_display_check,
+ .surface_frame_in_flight = impl_surface_frame_in_flight,
.display_flush = impl_display_flush,
.display_modifiers = impl_display_modifiers,
.display_double_click_ms = impl_display_double_click_ms,