Skip to content

effects: Port EffectFrame to OffscreenQuickView

Kai Uwe Broulik requested to merge work/kbrouli/effectframe-quickscene into master

This allows to toss a large amount of custom rendering code.

Furthermore, it removes the build-time dependency on Plasma Framework for FrameSvg and Theme as it's pulled in through QML imports now.

It is API compatible with existing effects but may introduce subtle behavior differences, even though it was tried to keep them to a minimum.

For instance, effects often destroy their effect frames in pre/postPaintScreen, which would now destroy an OffscreenQuickView, which changes GL context. This is alleviated by delaying detruction of the internal view.

Support for the features of icon/text cross-fade and selection frame, which are not used by any of the built-in effects, is dropped.


This is loosely based on David Edmundson's previous work in https://phabricator.kde.org/D26446

However, this patchset leaves the EffectFrame in libkwineffects untouched for maximum compatibility, and only swaps its guts out.

Tested effects:

  • Present Windows
  • Desktop Grid
  • Show FPS
  • Mouse click

Observed issues:

  • Creating those Quickscenes is comparatively slow. Present Windows creates two (label + icon) for each window, which is definitely noticeable, even with few windows open
  • Occasional FrameSVG repaint/resize glitches, observable when frantically clicking in mouse click effect, or when typing a filter in Present Windows
  • Show FPS disclaimer flickers but this is pre-existing and goes to show how compatible this change is

Merge request reports