You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Before, we would check both methods together, leading to loops. Now we track the actual reason we suspended and only unsuspend when that same reason triggers. For example, if we suspend because of the suspended flag we'll unsuspend only because it got unset. Conversely, if we suspend because of a timeout we'll unsuspend only if we get a new frame event. We do this because, while some compositors properly report a "suspended" state (hinting us to stop repainting), most don't and we need a "safety net" anyways as we do not want to constantly stay at 1fps (the max time we'll wait before giving up) either.
13 KiB
13 KiB