refactor(runtime): cut graphical host over to canonical root

Make every App composition phase borrow one GameRuntime, retire the duplicate view/event adapters, and dispose the root only after its graphical borrowers release. This preserves synchronous UI commands while giving shutdown one exact ownership ledger.

Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-26 19:06:09 +02:00
parent ecb9f79444
commit ce41efb9e5
29 changed files with 613 additions and 778 deletions

View file

@ -8,7 +8,15 @@ public sealed class RuntimeCharacterOwnershipTests
string source = ReadSource("Rendering", "GameWindow.cs");
Assert.Contains(
"_runtimeCharacter = new RuntimeCharacterState();",
"private readonly GameRuntime _runtime;",
source,
StringComparison.Ordinal);
Assert.Contains(
"_runtime = new GameRuntime(new GameRuntimeDependencies(",
source,
StringComparison.Ordinal);
Assert.DoesNotContain(
"new RuntimeCharacterState(",
source,
StringComparison.Ordinal);
Assert.DoesNotContain(
@ -76,7 +84,11 @@ public sealed class RuntimeCharacterOwnershipTests
inventory,
StringComparison.Ordinal);
Assert.Contains(
"\"runtime character state\"",
"new ResourceShutdownStage(\"game runtime root\"",
shutdown,
StringComparison.Ordinal);
Assert.DoesNotContain(
"RuntimeCharacterState Character",
shutdown,
StringComparison.Ordinal);
}