KWayland OutputManagement protocol and implementation

Review Request #125942 - Created Nov. 4, 2015 and submitted

Sebastian Kügler
kwin, plasma

This implements the client and server part of the screen management protocol. The protocol is implemented as a wayland protocol.

It provides the following mechanisms:
- a list of outputs, close to wl_output, with additional properties for enabled, uuid, edid, etc.. These OutputDevices correspond to a connected output that can be enabled by the compositor, but is not necessarily currently used for rendering.
- a global OutputManagement, which allows creating config objects, one per client. The client can make changes to the outputs through setScale(outputdevice*, scale) for example.
- an OutputConfiguration resource, that can be handed to a client and used for configuration. Changes are double buffered here. Only after OutputConfiguration.apply() has been called, the changes are relayed over the global OutputManagement.

The compositor is responsible to handle changes.

For a more detailed description, see the API docs in especially outputconfiguration.h.

The working branch for this is kwayland[sebas/kwin]. A backend for libkscreen is available in libkscreen[sebas/wayland].

Unit tests pass.


  • 0
  • 19
  • 1
  • 20
Description From Last Updated
Martin Flöser
Martin Flöser
Sebastian Kügler
Review request changed

Status: Closed (submitted)

Change Summary:

Submitted with commit 493e3fe98e36d14e0764099206ce5db8c51ee7c8 by Sebastian Kügler to branch master.