Move QPainter compositor into plugin

Authored by graesslin on Aug 11 2017, 7:47 PM.



Provide a virtual Scene::qpainterRenderBuffer() -> QImage* method

Needed by testing of QPainter scene to access the back buffer. Exposed
as a virtual method in Scene, so that the test does not have to cast to

Move QPainter compositor into plugin

This change is similar to D7232 and moves the scene_qpainter into a
dedicated plugin. Compared to the XRender case it's more complicated as
the platform plugins need to implement a platform specific backend.

The base implementation for this part used to be in scene_qpainter. As
the idea is to completly move it away from KWin core it would be point
less to still have the backend definition in KWin core, but it cannot
be in the scene plugin as otherwise all platforms need to link the

To solve this a new platformsupport subdirectory is added which contains
the scene platform backend as a static library. For the OpenGL scene such
a static library will also be required.

Test Plan

SceneQPainter test still passes, nested compositor still works

Diff Detail

R108 KWin
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.
graesslin created this revision.Aug 11 2017, 7:47 PM
Restricted Application added a project: Plasma. · View Herald TranscriptAug 11 2017, 7:47 PM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
graesslin retitled this revision from [autotests] Remove not needed includes for scene_qpainter.h to Move QPainter compositor into plugin.
graesslin updated this revision to Diff 18039.Aug 12 2017, 9:30 AM

Add back a debug message which got lost while moving code around

This revision was automatically updated to reflect the committed changes.