summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2010-12-01 09:42:10 -0500
committerKristian Høgsberg <krh@bitplanet.net>2010-12-01 09:42:57 -0500
commit3ada7ec83ace0be56119ca8b14a568f0efb27cde (patch)
tree59fcc294da428528b55ad36e91d394166f77f16c
parent4203df1fd5be095b45389d6084047649c5763cde (diff)
downloadweston-3ada7ec83ace0be56119ca8b14a568f0efb27cde.tar.gz
compositor-wayland: Call wlsc_compositor_finish_frame from frame callback
-rw-r--r--compositor/compositor-wayland.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/compositor/compositor-wayland.c b/compositor/compositor-wayland.c
index e5d0d842..3ac8c5f1 100644
--- a/compositor/compositor-wayland.c
+++ b/compositor/compositor-wayland.c
@@ -27,7 +27,6 @@
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
-#include <sys/time.h>
#include "wayland-client.h"
@@ -170,11 +169,18 @@ wayland_compositor_init_egl(struct wayland_compositor *c)
}
static void
+frame_callback(void *data, uint32_t time)
+{
+ struct wayland_compositor *c = (struct wayland_compositor *) data;
+
+ wlsc_compositor_finish_frame(&c->base, time);
+}
+
+static void
wayland_compositor_present(struct wlsc_compositor *base)
{
struct wayland_compositor *c = (struct wayland_compositor *) base;
struct wayland_output *output;
- struct timeval tv;
uint32_t msec;
glFlush();
@@ -193,10 +199,7 @@ wayland_compositor_present(struct wlsc_compositor *base)
output->base.width, output->base.height);
}
-
- gettimeofday(&tv, NULL);
- msec = tv.tv_sec * 1000 + tv.tv_usec / 1000;
- wlsc_compositor_finish_frame(&c->base, msec);
+ wl_display_frame_callback(c->parent.display, frame_callback, c);
}
static int