mDamagedRects.clear();
// Collect damage rects
- mCore.PreRender(scene, mDamagedRects);
-
- graphics.ActivateSurfaceContext(windowSurface);
+ 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);
if(!mUploadWithoutRendering)
{
- graphics.ActivateResourceContext();
+ graphics.PostRender();
}
mCore.PostRender(mUploadWithoutRendering);