fix(rendering): preserve exact scene traversal order
This commit is contained in:
parent
06e7754619
commit
e0f36caa70
12 changed files with 500 additions and 77 deletions
|
|
@ -55,10 +55,13 @@ public sealed class LiveRenderProjectionJournalTests
|
|||
Load(harness.State, LandblockId);
|
||||
|
||||
Assert.True(record.IsSpatiallyVisible);
|
||||
Assert.Equal(2, harness.Journal.Count);
|
||||
Assert.Equal(3, harness.Journal.Count);
|
||||
Assert.Equal(
|
||||
RenderProjectionDeltaKind.UpdateTransform,
|
||||
harness.Journal.Pending[1].Kind);
|
||||
Assert.Equal(
|
||||
RenderProjectionDeltaKind.UpdateFlags,
|
||||
harness.Journal.Pending[1].Kind);
|
||||
harness.Journal.Pending[2].Kind);
|
||||
|
||||
const uint secondLandblock = 0x1235FFFFu;
|
||||
const uint secondCell = 0x12350100u;
|
||||
|
|
@ -66,13 +69,16 @@ public sealed class LiveRenderProjectionJournalTests
|
|||
Assert.True(harness.Runtime.RebucketLiveEntity(Guid, secondCell));
|
||||
harness.Projections.SynchronizeActiveSources();
|
||||
|
||||
Assert.Equal(3, harness.Journal.Count);
|
||||
Assert.Equal(5, harness.Journal.Count);
|
||||
Assert.Equal(
|
||||
RenderProjectionDeltaKind.UpdateTransform,
|
||||
harness.Journal.Pending[3].Kind);
|
||||
Assert.Equal(
|
||||
RenderProjectionDeltaKind.Rebucket,
|
||||
harness.Journal.Pending[2].Kind);
|
||||
harness.Journal.Pending[4].Kind);
|
||||
Assert.Equal(
|
||||
incarnation,
|
||||
harness.Journal.Pending[2].Record.OwnerIncarnation);
|
||||
harness.Journal.Pending[4].Record.OwnerIncarnation);
|
||||
Assert.Equal(1, harness.Projections.ProjectionCount);
|
||||
}
|
||||
|
||||
|
|
@ -357,7 +363,10 @@ public sealed class LiveRenderProjectionJournalTests
|
|||
var runtime = new LiveEntityRuntime(state, resources);
|
||||
var journal = new RenderProjectionJournal(
|
||||
RenderSceneGeneration.FromRaw(1));
|
||||
var projections = new LiveRenderProjectionJournal(runtime, journal);
|
||||
var projections = new LiveRenderProjectionJournal(
|
||||
runtime,
|
||||
journal,
|
||||
new GpuWorldRenderTraversalOrderSource(state));
|
||||
sink = projections;
|
||||
var scene = new ArchRenderScene(RenderSceneGeneration.FromRaw(1));
|
||||
return new Harness(state, runtime, journal, projections, scene);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue