+ mCore->PostRender();
+
+ mFrame++;
+
+ return mStatus.KeepUpdating() || mRenderStatus.NeedsUpdate();
+}
+
+bool TestApplication::RenderWithPartialUpdate(uint32_t intervalMilliseconds, const char* location)
+{
+ DoUpdate(intervalMilliseconds, location);
+
+ // Reset the status
+ mRenderStatus.SetNeedsUpdate(false);
+ mRenderStatus.SetNeedsPostRender(false);
+
+ mCore->PreRender(mRenderStatus, false /*do not force clear*/);
+
+ for(auto&& scene : mScenes)
+ {
+ std::vector<Rect<int>> damagedRects;
+ Rect<int> clippingRect{};
+
+ mCore->PreRender(scene, damagedRects);
+ mCore->RenderScene(mRenderStatus, scene, true /*render the off-screen buffers*/);
+ for(auto&& iter : damagedRects)
+ {
+ clippingRect.Merge(iter);
+ }
+ mCore->RenderScene(mRenderStatus, scene, false /*render the surface*/, clippingRect);
+ }
+ mCore->PostRender();