staging: add ext-blur-v1
This protocol allows the client to specify a region behind the surface that should be blurred, with the intention to improve the visuals of for example panels or terminals.
This protocol is based on the org_kde_kwin_blur protocol, which has been in use since 2015.
Signed-off-by: Xaver Hugl xaver.hugl@kde.org
The changes vs !43 are:
- I adjusted the naming and "unstable" disclaimer to how newer protocols are done
- The object becomes inert when the surface is destroyed, instead of having an error for that case
- the initial region is empty, which is more similar to how other protocols deal with this sort of extension (=don't change anything by default)
Implementations:
- KWin: https://invent.kde.org/plasma/kwin/-/merge_requests/4890
- KWindowSystem: TODO
TODO:
-
without !149, this can lead to more or less of the surface being blurred than is intended with fractional scaling, so surface-local coordinates are maybe not the best -
how to deal with anti-aliased rounded corners? Using a whole alpha buffer for the blur mask seems like the only option for that
Edited by Xaver Hugl