kwin/blur: consider the valid part of the cache as being opaque
This reduces the repaints in cases where several blur regions are stacked on top of each other (e.g. oxygen-transparent) and the topmost layer needs to be updated (e.g. a blurry window is moved).
This commit is contained in:
parent
f3117f1038
commit
999d64bb19
1 changed files with 3 additions and 0 deletions
|
@ -311,6 +311,9 @@ void BlurEffect::prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int t
|
|||
// In case we already have a texture cache mark the dirty regions invalid.
|
||||
it->damagedRegion &= expandedBlur;
|
||||
it->damagedRegion |= damagedCache;
|
||||
// The valid part of the cache can be considered as being opaque
|
||||
// as long as we don't need to update a bordering part
|
||||
data.clip |= blurArea - expand(it->damagedRegion);
|
||||
it->dropCache = false;
|
||||
}
|
||||
// we keep track of the "damage propagation"
|
||||
|
|
Loading…
Reference in a new issue