Fix an endless loop in updateViewGroupOffline when it's given an empty list of frustums
#1224
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reported here:
https://community.cesium.com/t/playmoviesequencer-blueprint-node-freezes-mrq-render-after-v2-15-0/42499
It seems that the first time
ACesium3DTileset::Tickis called under the control of a Level Sequence / Movie Render Queue, the player camera has a width and height of 0 pixels. As a result, Cesium for Unreal discards that camera and callsupdateViewGroupOfflinewith an empty list of frustums. This causesupdateViewGroupOfflineto get stuck in an endless loop waiting for the load progress to reach 100% (it will never go above 0%).The fix here is to end the loop after one iteration when there are no frustums.
This probably worked before #1125 because we used to initialize the load progress to 100%. This was misleading and could cause applications to think loading was complete before it really was, but it also avoided this endless loop.