nowicki created this revision.
nowicki added a project: KWin.
Restricted Application edited projects, added Plasma; removed KWin.
Restricted Application added a subscriber: KWin.

REVISION SUMMARY
  I have been using my laptop to display content on a projector and sometimes I 
have encountered some cheap/broken device that either cannot be set-up properly 
or it is fixed to the wall with no way of doing any adjustments. This led me to 
the idea to do this transformation in software. I have found that KWin - due to 
its nice architecture - is a good place to hook up into.
  
  I am aware that at least on X (not sure about Wayland - never been there yet) 
it is possible to configure a transform matrix with a specific output using 
XRandr. Unfortunately this seems to be rarely used and thus broken on all 
drivers I have attempted to use it (nVidia proprietary, amdgpu, qemu/qxl).
  
  This patch is a working concept, which I am aware has some shortcomings. 
Window frames are rendered with ugly aliasing and interaction with other 
effects can sometimes lead to funny results. Nevertheless if you consider that 
it will be mostly used to display a full-screen window with a presentation, it 
does the job quite nicely.
  
  The configuration is very basic ATM - a DBus interface is exposed to set the 
target rectangle on a given output. This is because I am not exactly sure where 
the configuration of this effect should be done. From KWin architecture POV it 
should receive its own config window. However from UX POV it might be better to 
hook it up with the KScreen KCM, so that the correction can be adjusted per 
display and optionally be stored along with the KScreen configuration.

REPOSITORY
  R108 KWin

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

AFFECTED FILES
  autotests/mock_effectshandler.h
  effects.cpp
  effects.h
  effects/CMakeLists.txt
  effects/effect_builtins.cpp
  effects/effect_builtins.h
  effects/projector/CMakeLists.txt
  effects/projector/org.kde.kwin.ProjectorEffect.xml
  effects/projector/projector.cpp
  effects/projector/projector.h
  libkwineffects/kwineffects.h

To: nowicki, #plasma, graesslin
Cc: kwin, plasma-devel, #kwin, progwolff, lesliezhai, ali-mohamed, 
jensreuterberg, abetts, sebas, apol

Reply via email to