aboutsummaryrefslogtreecommitdiff
path: root/backend/multi
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-10-01 22:57:36 +0200
committeremersion <contact@emersion.fr>2018-10-04 22:00:22 +0200
commitb0635bf3e7f0de7c641ffafb0e8962d62ee88c73 (patch)
tree4729687de85fff3e855c1958c09a03f10ab54831 /backend/multi
parentabddfc99f2a0fb4f61292e3ac1c0b142effa28c2 (diff)
Rename get_present_clock to get_presentation clock, use it
Diffstat (limited to 'backend/multi')
-rw-r--r--backend/multi/backend.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/backend/multi/backend.c b/backend/multi/backend.c
index 2f4b929f..cefaa361 100644
--- a/backend/multi/backend.c
+++ b/backend/multi/backend.c
@@ -1,6 +1,8 @@
+#define _POSIX_C_SOURCE 199309L
#include <assert.h>
#include <stdbool.h>
#include <stdlib.h>
+#include <time.h>
#include <wlr/backend/interface.h>
#include <wlr/backend/session.h>
#include <wlr/util/log.h>
@@ -77,11 +79,26 @@ static struct wlr_session *multi_backend_get_session(
return backend->session;
}
+static clockid_t multi_backend_get_presentation_clock(
+ struct wlr_backend *backend) {
+ struct wlr_multi_backend *multi = multi_backend_from_backend(backend);
+
+ struct subbackend_state *sub;
+ wl_list_for_each(sub, &multi->backends, link) {
+ if (sub->backend->impl->get_presentation_clock) {
+ return wlr_backend_get_presentation_clock(sub->backend);
+ }
+ }
+
+ return CLOCK_MONOTONIC;
+}
+
struct wlr_backend_impl backend_impl = {
.start = multi_backend_start,
.destroy = multi_backend_destroy,
.get_renderer = multi_backend_get_renderer,
.get_session = multi_backend_get_session,
+ .get_presentation_clock = multi_backend_get_presentation_clock,
};
static void handle_display_destroy(struct wl_listener *listener, void *data) {