Preserve state when switching renderers

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-03-16 16:19:56 +01:00
parent b702c50d30
commit 8f33e68c04
4 changed files with 69 additions and 179 deletions

View File

@@ -23,7 +23,6 @@ abstract class BaseWolfRendererState<T extends BaseWolfRenderer>
@override
void initState() {
super.initState();
// DO NOT initialize the engine here. Just start the loop!
gameLoop = createTicker(_tick)..start();
focusNode.requestFocus();
}
@@ -31,10 +30,14 @@ abstract class BaseWolfRendererState<T extends BaseWolfRenderer>
void _tick(Duration elapsed) {
if (!widget.engine.isInitialized) return;
if (_lastTick == Duration.zero) {
_lastTick = elapsed;
return;
}
Duration delta = elapsed - _lastTick;
_lastTick = elapsed;
// Tick the shared engine
widget.engine.tick(delta);
performRender();