D15514: [libbreezecommon] Use box blur instead of FFT blur
Vlad Zagorodniy
noreply at phabricator.kde.org
Fri Sep 28 18:00:51 BST 2018
zzag updated this revision to Diff 42505.
zzag added a comment.
Introduce BoxShadowRenderer helper
BoxShadowRenderer is a helper to render box shadows. The main benefit of
this class is that it takes care of allocating big enough shadow
texture, so the resulting shadows are not clipped, etc. Also, conceptually,
it makes sense to have it.
The box blur implementation is based on AlphaBoxBlur from Firefox, which means
that the resulting shadows look quite similar to what Firefox would render.
With debug build, opened web browser (Firefox), and a text editor (VS Code),
on average it takes less than 16ms to render decoration shadows for all sizes:
- small: <1 ms
- medium: 1-2ms
- large: 5ms (+/- 1ms)
- very large: 11ms (+/- 1ms)
Things to do:
- revise shadow params (shadows are rendered slightly differently now)
- clean up the code
REPOSITORY
R31 Breeze
CHANGES SINCE LAST UPDATE
https://phabricator.kde.org/D15514?vs=42295&id=42505
BRANCH
zzag/box-shadow-helper-box-blur
REVISION DETAIL
https://phabricator.kde.org/D15514
AFFECTED FILES
CMakeLists.txt
cmake/Modules/FindFFTW.cmake
kdecoration/breezedecoration.cpp
kstyle/breezeshadowhelper.cpp
libbreezecommon/CMakeLists.txt
libbreezecommon/breezeboxshadowhelper.cpp
libbreezecommon/breezeboxshadowhelper.h
libbreezecommon/breezeboxshadowrenderer.cpp
libbreezecommon/breezeboxshadowrenderer.h
To: zzag, #kwin, #plasma
Cc: cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20180928/ee4c4202/attachment.html>
More information about the Plasma-devel
mailing list