refactor(render): compose render frame orchestrator
Move the accepted draw transaction and failure recovery behind typed frame-phase owners so GameWindow only supplies immutable frame input. Preserve retail draw order, make ImGui/bootstrap shutdown ownership explicit, and restore exact text-render GL state on failures.\n\nCo-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
28e1cf8029
commit
9d7df1bfc5
25 changed files with 1675 additions and 279 deletions
|
|
@ -19,7 +19,6 @@ public sealed class WorldLifecycleAutomationControllerTests
|
|||
];
|
||||
var logs = new List<string>();
|
||||
var controller = new FrameScreenshotController(
|
||||
() => (2, 2),
|
||||
(_, _) => rgba,
|
||||
directory,
|
||||
logs.Add);
|
||||
|
|
@ -29,7 +28,7 @@ public sealed class WorldLifecycleAutomationControllerTests
|
|||
Assert.True(controller.TryRequest("login_stable", out string error), error);
|
||||
Assert.False(controller.IsComplete("login_stable"));
|
||||
|
||||
Assert.True(controller.CapturePending());
|
||||
Assert.True(controller.CapturePending(2, 2));
|
||||
|
||||
Assert.True(controller.IsComplete("login_stable"));
|
||||
string path = Path.Combine(directory, "login_stable.png");
|
||||
|
|
@ -53,15 +52,14 @@ public sealed class WorldLifecycleAutomationControllerTests
|
|||
{
|
||||
string directory = NewDirectory();
|
||||
var controller = new FrameScreenshotController(
|
||||
() => (0, 0),
|
||||
(_, _) => [],
|
||||
directory);
|
||||
|
||||
try
|
||||
{
|
||||
Assert.False(controller.CapturePending());
|
||||
Assert.False(controller.CapturePending(0, 0));
|
||||
Assert.True(controller.TryRequest("bad_frame", out string error), error);
|
||||
Assert.False(controller.CapturePending());
|
||||
Assert.False(controller.CapturePending(0, 0));
|
||||
Assert.False(controller.IsComplete("bad_frame"));
|
||||
}
|
||||
finally
|
||||
|
|
@ -109,7 +107,6 @@ public sealed class WorldLifecycleAutomationControllerTests
|
|||
TrackedGpuBytes = 1234,
|
||||
};
|
||||
var screenshots = new FrameScreenshotController(
|
||||
() => (1, 1),
|
||||
(_, _) => [0, 0, 0, 255],
|
||||
Path.Combine(directory, "screenshots"));
|
||||
var controller = new WorldLifecycleAutomationController(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue