[PATCH 00/12] New output configuration API take 2
Armin Krezović
krezovic.armin at gmail.com
Sun Aug 14 15:28:09 UTC 2016
Hi,
This is second version of the new output configuration API
that I've been working on as part of my GSoC project.
In this version, I've implemented Pekka's and Quentin's
review, where most important change was splitting of
weston_output_disable() into 2 different functions to
make backend-specific destroy call backend-specific
disable function manually, or, if needed, differently.
In case you've missed previous series, the following
features are now available:
- When a specific backend creates an output, it sends a signal to
libweston user that an output needs configuration, and libweston
user can choose whether an output should be configured and how
it will be configured. This also enables creating output
configuration dialogs. After the configuration is done, an output
needs to be enabled explicitly. Some configuration is still limited
to an output that isn't enabled.
- An output can be disabled at any time and reconfigured if necessary.
- For backends that don't use physical outputs ("windowed" and headless
backends), a new output can be created at runtime if desired.
- Backend independent functions for setting output scale and transform
were introduced and can be used to set output's scale and transform.
Compositor specific wrappers were also introduced to ease setting
output scale and transform from weston's config file.
- Each backend has been individually ported to support new output
configuration. The following plugin API's are now exported
depending on the backend that's used.
- headless, wayland (windowed) and x11 backends use
weston_windowed_output_api which supports configuring an output
with desired width and height, as well as creating a new output
with a desired name.
- drm backend uses weston_drm_output_api, which supports setting
drm mode, gbm format and seat id.
- fbdev backend doesn't use any configuration API as it can't be
configured. It supports setting scale and transform and can
be enabled or disabled at any time.
- rdp backend uses weston_rdp_output_api, which works as a subset
of weston_windowed_output_api, but it can't create a new output
at will.
- wayland backend on fullscreen shell or with sprawl enabled uses
weston_wayland_output_api, because in such conditions an
output can only be configured (but configuration is limited)
and new outputs are created as new screens appear.
Armin Krezović (12):
libweston: Add more functionality for handling weston_output objects
libweston: Add initial output API for windowed outputs configuration
compositor: Implement output configuration using windowed_output_api
weston: Port DRM backend to new output handling API
weston: Port fbdev backend to new output handling API
weston: Port headless backend to new output handling API
Port RDP backend to new output handling API
weston: Port Wayland backend to new output handling API
weston: Port X11 backend to new output handling API
libweston: Merge weston_output_init() into weston_output_enable()
weston: Rename weston_output_init_pending() to weston_output_init()
libweston: Remove weston_backend_output_config structure
Makefile.am | 1 +
compositor/main.c | 798 +++++++++++++++++++++++++---------------
libweston/compositor-drm.c | 439 +++++++++++++---------
libweston/compositor-drm.h | 48 ++-
libweston/compositor-fbdev.c | 87 +++--
libweston/compositor-fbdev.h | 2 -
libweston/compositor-headless.c | 136 ++++---
libweston/compositor-headless.h | 6 -
libweston/compositor-rdp.c | 130 +++++--
libweston/compositor-rdp.h | 24 +-
libweston/compositor-wayland.c | 327 +++++++++-------
libweston/compositor-wayland.h | 27 +-
libweston/compositor-x11.c | 295 ++++++++-------
libweston/compositor-x11.h | 11 -
libweston/compositor.c | 393 ++++++++++++++++----
libweston/compositor.h | 47 ++-
libweston/windowed-output-api.h | 92 +++++
17 files changed, 1847 insertions(+), 1016 deletions(-)
create mode 100644 libweston/windowed-output-api.h
--
2.9.3
More information about the wayland-devel
mailing list