[PATCH weston 00/12] libweston: Use struct timespec for time values

Alexandros Frantzis alexandros.frantzis at collabora.com
Thu Nov 16 16:20:49 UTC 2017


This patchset changes libweston to consistently use struct timespec for time
values.

struct timespec is the standard way to represent time on Linux and allows for
an improved range and accuracy compared to the millisecond based uint32_t
values currently used in throughout the codebase. This change provides to users
of libweston timestamps with higher accuracy, and will also allow libweston to
more easily support future wayland interfaces that may require such
high-accuracy timestamps.

Note that this patchset breaks the libweston ABI, so we will need to bump the
ABI version at some point.

Patches (1) and (2) add more functionality to the timespec utilities to support
the new uses cases introduced in the commits that follow.

Patches (3) to (12) gradually transition libweston to use struct timespec.  To
make the changes more reviewable, each patch deals with only a specific aspect
of the codebase. In order to limit the scope of each commit, some commits
include temporary time value conversions to accommodate existing internal APIs.
These temporary conversions are later removed as the internal APIs are
also changed to used struct timespec.

Alexandros Frantzis (12):
  shared: Add timespec_is_zero helper
  shared: Add helpers to convert between various time units and timespec
  libweston: Use struct timespec for animations
  libweston: Use struct timespec for the output presentation timestamp
  libweston: Use struct timespec for motion events
  libweston: Use struct timespec for button events
  libweston: Use struct timespec for axis events
  libweston: Use struct timespec for key events
  libweston: Use struct timespec for touch down events
  libweston: Use struct timespec for touch up events
  libweston: Use struct timespec for touch motion events
  libweston: Use struct timespec for compositor time

 compositor/screen-share.c         |  24 +++++--
 compositor/text-backend.c         |  24 +++++--
 compositor/weston-screenshooter.c |   6 +-
 desktop-shell/exposay.c           |  14 ++--
 desktop-shell/shell.c             | 134 +++++++++++++++++++++-----------------
 desktop-shell/shell.h             |   4 +-
 ivi-shell/hmi-controller.c        |  18 +++--
 ivi-shell/ivi-shell.c             |   8 ++-
 libweston-desktop/seat.c          |  23 ++++---
 libweston/animation.c             |  29 +++++----
 libweston/bindings.c              |  32 +++++----
 libweston/compositor-drm.c        |  16 ++---
 libweston/compositor-rdp.c        |  22 +++++--
 libweston/compositor-wayland.c    |  42 +++++++++---
 libweston/compositor-x11.c        |  45 +++++++------
 libweston/compositor.c            |  24 +++----
 libweston/compositor.h            |  99 ++++++++++++++++------------
 libweston/data-device.c           |  34 ++++++----
 libweston/gl-renderer.c           |   6 +-
 libweston/input.c                 | 117 ++++++++++++++++++++-------------
 libweston/launcher-util.c         |   2 +-
 libweston/libinput-device.c       |  59 ++++++++++-------
 libweston/pixman-renderer.c       |   4 +-
 libweston/screenshooter.c         |   3 +-
 libweston/spring-tool.c           |  13 ++--
 libweston/zoom.c                  |   7 +-
 shared/timespec-util.h            |  59 +++++++++++++++++
 tests/surface-screenshot.c        |   4 +-
 tests/timespec-test.c             |  83 +++++++++++++++++++++++
 tests/weston-test.c               |  17 ++++-
 30 files changed, 647 insertions(+), 325 deletions(-)

-- 
2.14.1



More information about the wayland-devel mailing list