GameLoop Class

Main game loop. Runs synchronously on the main thread as required by SDL3. Scene transitions are non-blocking; loading screens render while the next scene loads in the background.

internal sealed class GameLoop

Inheritance System.Object → GameLoop

Properties
IsRunning Gets whether the game loop is currently running.
MaxDeltaTime Maximum delta time per frame. Clamps large spikes caused by pauses or debugger breaks. Initialized from MaxDeltaTimeMs; can be changed at runtime.
TargetFramesPerSecond Target frames per second. 0 = uncapped (VSync or no frame limit). Initialized from TargetFPS; can be changed at runtime.
Methods
Run(CancellationToken) Starts the game loop on the current thread. Blocks until the loop exits. Named Run rather than RunAsync intentionally: SDL3 requires all window and event operations on a single thread, so this must be synchronous.