[PATCH 00/12] New output configuration API take 2

Armin Krezović krezovic.armin at gmail.com
Sun Aug 14 15:28:09 UTC 2016


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


More information about the wayland-devel mailing list