[PATCH weston 2/6] compositors: Wrap clock_gettime() usage
Derek Foreman
derekf at osg.samsung.com
Fri Dec 19 10:45:46 PST 2014
In preparation for a future patch which allows test clients to control
the presentation clock, we wrap any clock_gettime() of the presentation
clock in weston_compositor_presentation_clock_gettime().
Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
---
src/compositor-drm.c | 2 +-
src/compositor-fbdev.c | 2 +-
src/compositor-headless.c | 2 +-
src/compositor-rdp.c | 2 +-
src/compositor-x11.c | 2 +-
src/compositor.c | 12 ++++++++++++
src/compositor.h | 5 +++++
7 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 9b4d4dc..9c9a9e2 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -721,7 +721,7 @@ drm_output_start_repaint_loop(struct weston_output *output_base)
finish_frame:
/* if we cannot page-flip, immediately finish frame */
- clock_gettime(compositor->base.presentation_clock, &ts);
+ weston_compositor_presentation_clock_gettime(&compositor->base, &ts);
weston_output_finish_frame(output_base, &ts);
}
diff --git a/src/compositor-fbdev.c b/src/compositor-fbdev.c
index 65bb035..514ec83 100644
--- a/src/compositor-fbdev.c
+++ b/src/compositor-fbdev.c
@@ -116,7 +116,7 @@ fbdev_output_start_repaint_loop(struct weston_output *output)
{
struct timespec ts;
- clock_gettime(output->compositor->presentation_clock, &ts);
+ weston_compositor_presentation_clock_gettime(output->compositor, &ts);
weston_output_finish_frame(output, &ts);
}
diff --git a/src/compositor-headless.c b/src/compositor-headless.c
index 945c84b..a023e45 100644
--- a/src/compositor-headless.c
+++ b/src/compositor-headless.c
@@ -57,7 +57,7 @@ headless_output_start_repaint_loop(struct weston_output *output)
{
struct timespec ts;
- clock_gettime(output->compositor->presentation_clock, &ts);
+ weston_compositor_presentation_clock_gettime(output->compositor, &ts);
weston_output_finish_frame(output, &ts);
}
diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c
index 2048f8f..e808572 100644
--- a/src/compositor-rdp.c
+++ b/src/compositor-rdp.c
@@ -307,7 +307,7 @@ rdp_output_start_repaint_loop(struct weston_output *output)
{
struct timespec ts;
- clock_gettime(output->compositor->presentation_clock, &ts);
+ weston_compositor_presentation_clock_gettime(output->compositor, &ts);
weston_output_finish_frame(output, &ts);
}
diff --git a/src/compositor-x11.c b/src/compositor-x11.c
index 29f2119..166d61b 100644
--- a/src/compositor-x11.c
+++ b/src/compositor-x11.c
@@ -340,7 +340,7 @@ x11_output_start_repaint_loop(struct weston_output *output)
{
struct timespec ts;
- clock_gettime(output->compositor->presentation_clock, &ts);
+ weston_compositor_presentation_clock_gettime(output->compositor, &ts);
weston_output_finish_frame(output, &ts);
}
diff --git a/src/compositor.c b/src/compositor.c
index 833cf51..6109eb5 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -4221,6 +4221,18 @@ weston_compositor_set_default_pointer_grab(struct weston_compositor *ec,
}
WL_EXPORT int
+weston_compositor_presentation_clock_gettime(
+ struct weston_compositor *compositor,
+ struct timespec *ts)
+{
+ if (compositor->test_mode) {
+ *ts = compositor->test_time;
+ return 0;
+ }
+ return clock_gettime(compositor->presentation_clock, ts);
+}
+
+WL_EXPORT int
weston_compositor_set_presentation_clock(struct weston_compositor *compositor,
clockid_t clk_id)
{
diff --git a/src/compositor.h b/src/compositor.h
index 2b99225..924e354 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -671,6 +671,7 @@ struct weston_compositor {
int exit_code;
bool test_mode;
+ struct timespec test_time;
};
struct weston_buffer {
@@ -1276,6 +1277,10 @@ weston_compositor_set_presentation_clock(struct weston_compositor *compositor,
int
weston_compositor_set_presentation_clock_software(
struct weston_compositor *compositor);
+int
+weston_compositor_presentation_clock_gettime(
+ struct weston_compositor *compositor,
+ struct timespec *ts);
void
weston_compositor_shutdown(struct weston_compositor *ec);
void
--
2.1.3
More information about the wayland-devel
mailing list