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:
parent
ecb9f79444
commit
ce41efb9e5
29 changed files with 613 additions and 778 deletions
|
|
@ -258,7 +258,7 @@ public sealed class GameWindowSlice8BoundaryTests
|
|||
"Hard(\"diagnostic command slot\", ingress.DiagnosticCommands.Deactivate)",
|
||||
"Hard(\"retained gameplay\", () => ingress.RetainedGameplay?.Deactivate())",
|
||||
"Hard(\"gameplay actions\", () => ingress.GameplayActions?.Deactivate())",
|
||||
"Hard(\"live session\", () => DisposeLiveSession(ingress.LiveSession))",
|
||||
"Hard(\"game runtime session\", ingress.Runtime.StopSession)",
|
||||
"new ResourceShutdownStage(\"physical ingress cleanup\"",
|
||||
"Soft(\"retained gameplay\", () => DisposeRetainedGameplay(ingress.RetainedGameplay))",
|
||||
"Soft(\"gameplay actions\", () => DisposeGameplayActions(ingress.GameplayActions))",
|
||||
|
|
@ -469,12 +469,11 @@ public sealed class GameWindowSlice8BoundaryTests
|
|||
"new ResourceShutdownStage(\"frame borrowers\"",
|
||||
"new ResourceShutdownStage(\"session dependents\"",
|
||||
"new ResourceShutdownStage(\"live entities\"",
|
||||
"new ResourceShutdownStage(\"runtime entity/object stream\"",
|
||||
"new ResourceShutdownStage(\"effect dispatch edges\"",
|
||||
"new ResourceShutdownStage(\"live entity dependents\"",
|
||||
"new ResourceShutdownStage(\"submitted GPU work\"",
|
||||
"new ResourceShutdownStage(\"render frontends\"",
|
||||
"new ResourceShutdownStage(\"runtime communication state\"",
|
||||
"new ResourceShutdownStage(\"game runtime root\"",
|
||||
"new ResourceShutdownStage(\"shared texture owners\"",
|
||||
"new ResourceShutdownStage(\"mesh adapter\"",
|
||||
"new ResourceShutdownStage(\"remaining render owners\"",
|
||||
|
|
@ -496,7 +495,7 @@ public sealed class GameWindowSlice8BoundaryTests
|
|||
"Hard(\"retained gameplay\", () => ingress.RetainedGameplay?.Deactivate())",
|
||||
"Hard(\"gameplay actions\", () => ingress.GameplayActions?.Deactivate())",
|
||||
"Hard(\"camera pointer\", () => ingress.CameraPointer?.Deactivate())",
|
||||
"Hard(\"live session\", () => DisposeLiveSession(ingress.LiveSession))",
|
||||
"Hard(\"game runtime session\", ingress.Runtime.StopSession)",
|
||||
"new ResourceShutdownStage(\"physical ingress cleanup\"",
|
||||
"Soft(\"retained gameplay\", () => DisposeRetainedGameplay(ingress.RetainedGameplay))",
|
||||
"Soft(\"gameplay actions\", () => DisposeGameplayActions(ingress.GameplayActions))",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue