kwin/plugins/platforms/drm
Roman Gilg 82d2860469 [colorcorrection] Night Color - blue light filter at nighttime
With Wayland KWin needs to provide certain services, which were provided
before that by the Xserver. One of these is gamma correction, which includes
the - by many people beloved - functionality to reduce the blue light at
nighttime. This patch provides the KWin part of that. It is self contained,
but in the end will work in tandem with a lib in Plasma Workspace and a KCM
in Plasma Desktop, which can be used to configure Night Color.

* Three modi:
** Automatic: The location and sun timings are determined automatically
   (location data updates will be provided by the workspace)
** Location: The sun timings are determined by fixed location data
** Timings: The sun timings are set manually by the user
* Color temperature value changes are smoothly applied:
** Configuration changes, which lead to other current values are changed
   in a quick way over a few seconds
** Changes on sunrise and sunset are applied slowly over the course of few
   minutes till several hours depending on the configuration
* The current color value is set immediately at startup or after suspend
  phases and VT switches. There is no flickering.
* All configuration is done via a DBus interface, changed values are tested
  on correctness and applied atomically
* Self contained mechanism, speaks directly to the hardware by setting the
  gamma ramps on the CRTC
* Currently working on DRM backend, extensible to other platform backends in
  the future
* The code is written in a way to make the classes later easily extendable to
  also provide normal color correction, as it's currently done by KGamma on X

Test Plan:
Manually with the workspace parts and added integration tests in KWin using
the virtual backend.

BUG:371494

Reviewers: #kwin, graesslin

Subscribers: kwin, plasma-devel, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5928
2017-12-11 10:58:40 +01:00
..
CMakeLists.txt Merge branch 'Plasma/5.11' 2017-10-09 21:04:41 +02:00
drm.json SVN_SILENT made messages (.desktop file) - always resolve ours 2017-08-30 08:05:15 +02:00
drm_backend.cpp [colorcorrection] Night Color - blue light filter at nighttime 2017-12-11 10:58:40 +01:00
drm_backend.h [colorcorrection] Night Color - blue light filter at nighttime 2017-12-11 10:58:40 +01:00
drm_buffer.cpp [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_buffer.h [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_buffer_gbm.cpp [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_buffer_gbm.h [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_inputeventfilter.cpp
drm_inputeventfilter.h
drm_object.cpp [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_object.h [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_object_connector.cpp [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_object_connector.h [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_object_crtc.cpp [colorcorrection] Night Color - blue light filter at nighttime 2017-12-11 10:58:40 +01:00
drm_object_crtc.h [colorcorrection] Night Color - blue light filter at nighttime 2017-12-11 10:58:40 +01:00
drm_object_plane.cpp [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_object_plane.h [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_output.cpp Support dynamic output enabling/disabling from KScreen 2017-11-21 12:04:30 +00:00
drm_output.h Support dynamic output enabling/disabling from KScreen 2017-11-21 12:04:30 +00:00
drm_pointer.h
egl_gbm_backend.cpp [platforms/drm] At safety checks for the properties 2017-11-13 21:19:31 +01:00
egl_gbm_backend.h [drm] Implement changing of modes 2017-10-31 12:45:38 +01:00
gbm_surface.cpp [platforms/drm] Use a shared pointer for gbm_surface 2017-10-05 21:32:46 +02:00
gbm_surface.h Fix DRM EGL crash regression 2017-10-12 10:12:24 +02:00
logging.cpp
logging.h
scene_qpainter_drm_backend.cpp [drm] Implement changing of modes 2017-10-31 12:45:38 +01:00
scene_qpainter_drm_backend.h Move QPainter compositor into plugin 2017-09-01 17:44:49 +02:00
screens_drm.cpp Support dynamic output enabling/disabling from KScreen 2017-11-21 12:04:30 +00:00
screens_drm.h Support automatic screen rotation based on orientation sensor 2017-11-08 17:44:38 +01:00