D15514: [libbreezecommon] Use box blur instead of FFT blur
zzag closed this revision. zzag added a comment. It's fixed now. REPOSITORY R31 Breeze REVISION DETAIL https://phabricator.kde.org/D15514 To: zzag, #kwin, #plasma, #breeze, #vdg, ngraham Cc: fvogt, cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
D15514: [libbreezecommon] Use box blur instead of FFT blur
fvogt reopened this revision. fvogt added a comment. This revision is now accepted and ready to land. Fails to build the KDE4 version here: [ 76s] /home/abuild/rpmbuild/BUILD/breeze-5.14.80git.20181027T152517~f1e4f103/libbreezecommon/breezeboxshadowrenderer.cpp:29:10: fatal error: QtMath: No such file or directory [ 76s] #include REPOSITORY R31 Breeze BRANCH zzag/box-shadow-helper-box-blur REVISION DETAIL https://phabricator.kde.org/D15514 To: zzag, #kwin, #plasma, #breeze, #vdg, ngraham Cc: fvogt, cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
D15514: [libbreezecommon] Use box blur instead of FFT blur
zzag closed this revision. REPOSITORY R31 Breeze REVISION DETAIL https://phabricator.kde.org/D15514 To: zzag, #kwin, #plasma, #breeze, #vdg, ngraham Cc: cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
D15514: [libbreezecommon] Use box blur instead of FFT blur
zzag added a comment. Landing it... REPOSITORY R31 Breeze BRANCH zzag/box-shadow-helper-box-blur REVISION DETAIL https://phabricator.kde.org/D15514 To: zzag, #kwin, #plasma, #breeze, #vdg, ngraham Cc: cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
D15514: [libbreezecommon] Use box blur instead of FFT blur
zzag updated this revision to Diff 43161. zzag added a comment. Adjust MDI shadows REPOSITORY R31 Breeze CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15514?vs=43154&id=43161 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/breezemdiwindowshadow.cpp kstyle/breezeshadowhelper.cpp libbreezecommon/CMakeLists.txt libbreezecommon/breezeboxshadowhelper.cpp libbreezecommon/breezeboxshadowhelper.h libbreezecommon/breezeboxshadowrenderer.cpp libbreezecommon/breezeboxshadowrenderer.h To: zzag, #kwin, #plasma, #breeze, #vdg, ngraham Cc: cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
D15514: [libbreezecommon] Use box blur instead of FFT blur
zzag updated this revision to Diff 43154. zzag added a comment. Update copyright info REPOSITORY R31 Breeze CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15514?vs=43146&id=43154 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/breezemdiwindowshadow.cpp kstyle/breezeshadowhelper.cpp libbreezecommon/CMakeLists.txt libbreezecommon/breezeboxshadowhelper.cpp libbreezecommon/breezeboxshadowhelper.h libbreezecommon/breezeboxshadowrenderer.cpp libbreezecommon/breezeboxshadowrenderer.h To: zzag, #kwin, #plasma, #breeze, #vdg Cc: cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
D15514: [libbreezecommon] Use box blur instead of FFT blur
zzag updated this revision to Diff 43146. zzag added a comment. Decrease the standard deviation scale constant REPOSITORY R31 Breeze CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15514?vs=43143&id=43146 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/breezemdiwindowshadow.cpp kstyle/breezeshadowhelper.cpp libbreezecommon/CMakeLists.txt libbreezecommon/breezeboxshadowhelper.cpp libbreezecommon/breezeboxshadowhelper.h libbreezecommon/breezeboxshadowrenderer.cpp libbreezecommon/breezeboxshadowrenderer.h To: zzag, #kwin, #plasma, #breeze, #vdg Cc: cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
D15514: [libbreezecommon] Use box blur instead of FFT blur
zzag updated this revision to Diff 43143. zzag added a comment. Do not follow https://www.w3.org/TR/css-backgrounds-3/#shadow-blur REPOSITORY R31 Breeze CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15514?vs=43140&id=43143 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/breezemdiwindowshadow.cpp kstyle/breezeshadowhelper.cpp libbreezecommon/CMakeLists.txt libbreezecommon/breezeboxshadowhelper.cpp libbreezecommon/breezeboxshadowhelper.h libbreezecommon/breezeboxshadowrenderer.cpp libbreezecommon/breezeboxshadowrenderer.h To: zzag, #kwin, #plasma, #breeze, #vdg Cc: cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
D15514: [libbreezecommon] Use box blur instead of FFT blur
zzag added a comment. Currently, it takes less than 5ms to generate shadows with the debug build. - small: < 1ms - medium: 1ms - large: 2ms - very large: 3ms REPOSITORY R31 Breeze REVISION DETAIL https://phabricator.kde.org/D15514 To: zzag, #kwin, #plasma, #breeze, #vdg Cc: cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
D15514: [libbreezecommon] Use box blur instead of FFT blur
zzag updated this revision to Diff 43140. zzag added a comment. - Clean up code; - Revise shadow params: Because shadows are rendered slightly differently now, we have to revise params. For example, with the large size, shadows are not large, they are extremely large. I've tried to preserve the old look as much as possible; - Add explanation how shadow params are computed. REPOSITORY R31 Breeze CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15514?vs=42505&id=43140 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/breezemdiwindowshadow.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
D15514: [libbreezecommon] Use box blur instead of FFT blur
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
D15514: [libbreezecommon] Use box blur instead of FFT blur
zzag planned changes to this revision. zzag added a comment. Follow https://www.w3.org/TR/SVG11/filters.html#feGaussianBlurElement REPOSITORY R31 Breeze REVISION DETAIL https://phabricator.kde.org/D15514 To: zzag, #kwin, #plasma Cc: cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
D15514: [libbreezecommon] Use box blur instead of FFT blur
zzag updated this revision to Diff 42295. zzag added a comment. Comment on why shadows are a little bit lighter. REPOSITORY R31 Breeze CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15514?vs=41667&id=42295 BRANCH zzag/box-shadow-helper-box-blur REVISION DETAIL https://phabricator.kde.org/D15514 AFFECTED FILES CMakeLists.txt cmake/Modules/FindFFTW.cmake libbreezecommon/CMakeLists.txt libbreezecommon/breezeboxshadowhelper.cpp To: zzag, #kwin, #plasma Cc: cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
D15514: [libbreezecommon] Use box blur instead of FFT blur
ngraham added a comment. Still +1, looks great! REPOSITORY R31 Breeze REVISION DETAIL https://phabricator.kde.org/D15514 To: zzag, #kwin, #plasma Cc: cfeck, ngraham, abetts, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart
