Review Request 125942: KWayland OutputManagement protocol and implementation

Sebastian Kügler sebas at kde.org
Wed Nov 4 12:09:57 UTC 2015


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125942/
-----------------------------------------------------------

(Updated Nov. 4, 2015, 12:09 p.m.)


Review request for kwin, Plasma and Martin Gräßlin.


Changes
-------

Addressed all comments.


Repository: kwayland


Description
-------

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].


Diffs (updated)
-----

  autotests/client/CMakeLists.txt 1556c47 
  autotests/client/test_wayland_outputdevice.cpp PRE-CREATION 
  autotests/client/test_wayland_outputmanagement.cpp PRE-CREATION 
  autotests/client/test_wayland_registry.cpp 55f0f6c 
  autotests/server/test_display.cpp b398812 
  src/client/CMakeLists.txt 79092ef 
  src/client/outputconfiguration.h PRE-CREATION 
  src/client/outputconfiguration.cpp PRE-CREATION 
  src/client/outputdevice.h PRE-CREATION 
  src/client/outputdevice.cpp PRE-CREATION 
  src/client/outputmanagement.h PRE-CREATION 
  src/client/outputmanagement.cpp PRE-CREATION 
  src/client/protocols/output-management.xml PRE-CREATION 
  src/client/protocols/outputdevice.xml PRE-CREATION 
  src/client/registry.h 034e38f 
  src/client/registry.cpp 1a481c8 
  src/server/CMakeLists.txt 57eb763 
  src/server/display.h 0fd1185 
  src/server/display.cpp 019991a 
  src/server/outputchangeset.h PRE-CREATION 
  src/server/outputchangeset.cpp PRE-CREATION 
  src/server/outputchangeset_p.h PRE-CREATION 
  src/server/outputconfiguration_interface.h PRE-CREATION 
  src/server/outputconfiguration_interface.cpp PRE-CREATION 
  src/server/outputdevice_interface.h PRE-CREATION 
  src/server/outputdevice_interface.cpp PRE-CREATION 
  src/server/outputmanagement_interface.h PRE-CREATION 
  src/server/outputmanagement_interface.cpp PRE-CREATION 
  src/tools/mapping.txt d6a4a44 

Diff: https://git.reviewboard.kde.org/r/125942/diff/


Testing
-------

Unit tests pass.


Thanks,

Sebastian Kügler

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20151104/2fd5af89/attachment-0001.html>


More information about the Plasma-devel mailing list