subdiff created this revision.
subdiff added projects: KWin, Plasma on Wayland.
Restricted Application added subscribers: kwin, plasma-devel.

REVISION SUMMARY
  Introduction
  ------------
  
  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. Diffs for these 
parts will be posted this weekend.
  
  Features:
  ---------
  
  - 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
  
  This patch solves the redshift part of https://phabricator.kde.org/T4465 and 
lays the foundations to solve the task in total in the near future.

TEST PLAN
  Manually with the workspace parts and added integration tests in KWin using 
the virtual backend.

REPOSITORY
  R108 KWin

REVISION DETAIL
  https://phabricator.kde.org/D5928

AFFECTED FILES
  CMakeLists.txt
  autotests/integration/CMakeLists.txt
  autotests/integration/colorcorrect_nightcolor_test.cpp
  colorcorrection/colorcorrectdbusinterface.cpp
  colorcorrection/colorcorrectdbusinterface.h
  colorcorrection/constants.h
  colorcorrection/logging.cpp
  colorcorrection/logging.h
  colorcorrection/nightcolor.cpp
  colorcorrection/nightcolor.h
  colorcorrection/suncalc.cpp
  colorcorrection/suncalc.h
  org.kde.kwin.ColorCorrect.xml
  platform.cpp
  platform.h
  plugins/platforms/drm/drm_backend.cpp
  plugins/platforms/drm/drm_backend.h
  plugins/platforms/drm/drm_object_crtc.cpp
  plugins/platforms/drm/drm_object_crtc.h
  plugins/platforms/virtual/virtual_backend.cpp
  plugins/platforms/virtual/virtual_backend.h

To: subdiff, #kwin
Cc: plasma-devel, kwin, ZrenBot, spstarr, progwolff, lesliezhai, ali-mohamed, 
hardening, jensreuterberg, abetts, eliasp, sebas, apol, hein, lukas

Reply via email to