Skip to content

Fix scheduling repaints in Effect::prePaintScreen()

Vlad Zahorodnii requested to merge work/zzag/qtquick-3d-weird-behavior into master

If a repaint is scheduled in the prePaintScreen() function, we want it to be applied in the next frame, not the current one.

Currently, it doesn't work like this because prePaintScreen() runs first then the Compositor gathers repaints and resets them.

This is important to qtquick effects that use qtquick3d as some items in qtquick3d schedule repaints for the next frame after synchronizing, i.e. in OffscreenQuickView::update() which is called in prePaintScreen() by QuickSceneEffect.

Merge request reports

Loading