DoUpdate(intervalMilliseconds, location);
mCore->PreRender(mRenderStatus, false /*do not force clear*/, false /*do not skip rendering*/);
- mCore->PreRender(mScene, damagedRects);
+ mCore->PreRender(mRenderStatus, mScene, damagedRects);
return mStatus.KeepUpdating() || mRenderStatus.NeedsUpdate();
}
mDamagedRects.clear();
// Collect damage rects
- mCore.PreRender(scene, mDamagedRects);
+ mCore.PreRender(windowRenderStatus, scene, mDamagedRects);
// Render off-screen frame buffers first if any
mCore.RenderScene(windowRenderStatus, scene, true);
Rect<int> clippingRect; // Empty for fbo rendering
// Switch to the context of the surface, merge damaged areas for previous frames
- windowSurface->PreRender(sceneSurfaceResized, mDamagedRects, clippingRect); // Switch GL context
+ if(windowRenderStatus.NeedsUpdate())
+ {
+ windowSurface->PreRender(sceneSurfaceResized, mDamagedRects, clippingRect); // Switch GL context
+ }
// Render the surface
mCore.RenderScene(windowRenderStatus, scene, false, clippingRect);