Prevent emitting Scene::frameRendered more than once per frame
Currently, the frameRendered() signal is emitted every time an effect calls paintScreen(). This means that the frameRendered() signal can be emitted more than once when effects such as slide are active. However, we'd like if it's emitted only once before buffers are swapped.
This commit is contained in:
parent
8b3e999fbf
commit
d3f4da370b
1 changed files with 2 additions and 2 deletions
|
@ -197,6 +197,8 @@ void Scene::paintScreen(int* mask, const QRegion &damage, const QRegion &repaint
|
||||||
ScreenPaintData data(projection, effects->findScreen(painted_screen));
|
ScreenPaintData data(projection, effects->findScreen(painted_screen));
|
||||||
effects->paintScreen(*mask, region, data);
|
effects->paintScreen(*mask, region, data);
|
||||||
|
|
||||||
|
Q_EMIT frameRendered();
|
||||||
|
|
||||||
foreach (Window *w, stacking_order) {
|
foreach (Window *w, stacking_order) {
|
||||||
effects->postPaintWindow(effectWindow(w));
|
effects->postPaintWindow(effectWindow(w));
|
||||||
}
|
}
|
||||||
|
@ -224,8 +226,6 @@ void Scene::finalPaintScreen(int mask, const QRegion ®ion, ScreenPaintData& d
|
||||||
paintGenericScreen(mask, data);
|
paintGenericScreen(mask, data);
|
||||||
else
|
else
|
||||||
paintSimpleScreen(mask, region);
|
paintSimpleScreen(mask, region);
|
||||||
|
|
||||||
Q_EMIT frameRendered();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void resetRepaintsHelper(Item *item, int screen)
|
static void resetRepaintsHelper(Item *item, int screen)
|
||||||
|
|
Loading…
Reference in a new issue