Skip to content

Decouple render backend from scene

Vlad Zahorodnii requested to merge work/zzag/decouple-renderer-from-scene into master

Currently, the scene owns the renderer, which puts more responsibilities on the scene other than painting windows and it also puts some limitations on what we can do, for example, there can be only one scene, etc.

This change decouples the scene and the renderer so the scene is more swappable.

Scenes are no longer implemented as plugins because opengl backend and scene creation needs to be wrapped in opengl safety points. We could still create the render backend and then go through the list of scene plugins, but accessing concrete scene implementation is much much simpler. Besides that, having scenes implemented as plugins is not worthwhile because there are only two scenes and each contributes very small amount of binary size. On the hand, we still need to take into account how many times kwin accesses the hard drive to load plugins in order to function as expected.

Edited by Vlad Zahorodnii

Merge request reports