perf(streaming): reserve destination reveal capacity
Join destination scheduling to the canonical reveal generation, protect its share across every typed frame-budget dimension, and prevent stale work from clearing a replacement reservation. Remove forced incomplete materialization and project retail's centered portal wait cue while the authored tunnel remains active. Tests: Release build clean; 91 focused reservation/reveal tests; full solution 8,158 passed, 5 skipped. Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
parent
98f1ac8934
commit
2ff8f844b0
33 changed files with 870 additions and 230 deletions
|
|
@ -0,0 +1,37 @@
|
|||
using AcDream.App.UI;
|
||||
|
||||
namespace AcDream.App.Tests.UI;
|
||||
|
||||
public sealed class PortalWaitNoticeControllerTests
|
||||
{
|
||||
[Fact]
|
||||
public void Notice_IsCenteredOverlayAndDisposesFromRetainedRoot()
|
||||
{
|
||||
var root = new UiRoot
|
||||
{
|
||||
Width = 1280f,
|
||||
Height = 720f,
|
||||
};
|
||||
|
||||
using (var controller = new PortalWaitNoticeController(root))
|
||||
{
|
||||
UiText text = Assert.IsType<UiText>(Assert.Single(root.Children));
|
||||
Assert.False(text.Visible);
|
||||
Assert.True(text.Centered);
|
||||
Assert.True(text.ClickThrough);
|
||||
Assert.Equal(root.Width, text.Width);
|
||||
Assert.Equal(root.Height, text.Height);
|
||||
|
||||
controller.Set("In Portal Space - Please Wait...");
|
||||
|
||||
Assert.True(text.Visible);
|
||||
UiText.Line line = Assert.Single(text.LinesProvider!());
|
||||
Assert.Equal("In Portal Space - Please Wait...", line.Text);
|
||||
|
||||
controller.Set(null);
|
||||
Assert.False(text.Visible);
|
||||
}
|
||||
|
||||
Assert.Empty(root.Children);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue