reset generic shader after zoom
REVIEW: 108252 BUG: 355028 REVIEW: 125994 FIXED-IN: 5.5
This commit is contained in:
parent
c04f7919c1
commit
7b459214d9
1 changed files with 5 additions and 0 deletions
|
@ -259,8 +259,11 @@ void ZoomEffect::reconfigure(ReconfigureFlags)
|
|||
|
||||
void ZoomEffect::prePaintScreen(ScreenPrePaintData& data, int time)
|
||||
{
|
||||
bool altered = false;
|
||||
if (zoom != target_zoom) {
|
||||
altered = true;
|
||||
const float zoomDist = qAbs(target_zoom - source_zoom);
|
||||
double diff = time / animationTime(500.0);
|
||||
if (target_zoom > zoom)
|
||||
zoom = qMin(zoom + ((zoomDist * time) / animationTime(150*zoomFactor)), target_zoom);
|
||||
else
|
||||
|
@ -269,6 +272,8 @@ void ZoomEffect::prePaintScreen(ScreenPrePaintData& data, int time)
|
|||
|
||||
if (zoom == 1.0) {
|
||||
showCursor();
|
||||
if (altered) // reset the generic shader to avoid artifacts in plenty other effects
|
||||
ShaderBinder binder(ShaderManager::GenericShader, true);
|
||||
} else {
|
||||
hideCursor();
|
||||
data.mask |= PAINT_SCREEN_TRANSFORMED;
|
||||
|
|
Loading…
Reference in a new issue