graesslin created this revision. Restricted Application added a project: Plasma. Restricted Application added a subscriber: plasma-devel.
REVISION SUMMARY 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 SceneQPainter. Move QPainter compositor into plugin This change is similar to https://phabricator.kde.org/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 plugin. 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 BRANCH scene-qpainter-plugin REVISION DETAIL https://phabricator.kde.org/D7259 AFFECTED FILES CMakeLists.txt autotests/integration/effects/fade_test.cpp autotests/integration/effects/slidingpopups_test.cpp autotests/integration/effects/translucency_test.cpp autotests/integration/scene_qpainter_test.cpp autotests/integration/x11_client_test.cpp composite.cpp platformsupport/CMakeLists.txt platformsupport/scenes/CMakeLists.txt platformsupport/scenes/qpainter/CMakeLists.txt platformsupport/scenes/qpainter/backend.cpp platformsupport/scenes/qpainter/backend.h plugins/platforms/drm/CMakeLists.txt plugins/platforms/drm/scene_qpainter_drm_backend.h plugins/platforms/fbdev/CMakeLists.txt plugins/platforms/fbdev/scene_qpainter_fb_backend.h plugins/platforms/virtual/CMakeLists.txt plugins/platforms/virtual/scene_qpainter_virtual_backend.h plugins/platforms/wayland/CMakeLists.txt plugins/platforms/wayland/scene_qpainter_wayland_backend.h plugins/platforms/x11/windowed/CMakeLists.txt plugins/platforms/x11/windowed/scene_qpainter_x11_backend.h plugins/scenes/CMakeLists.txt plugins/scenes/qpainter/CMakeLists.txt plugins/scenes/qpainter/qpainter.json plugins/scenes/qpainter/scene_qpainter.cpp plugins/scenes/qpainter/scene_qpainter.h scene.cpp scene.h scene_qpainter.cpp scene_qpainter.h To: graesslin, #kwin, #plasma Cc: plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart, lukas