fix(rendering): preserve canonical projection ownership

This commit is contained in:
Erik 2026-07-25 00:47:52 +02:00
parent d8d9897376
commit accd402dd7
2 changed files with 43 additions and 6 deletions

View file

@ -344,6 +344,34 @@ public sealed class CurrentRenderSceneOracleTests
Assert.NotEqual(first.DispatcherDigest, reset.DispatcherDigest);
}
[Fact]
public void DispatcherTemporaryBucket_DoesNotRewriteProjectionOwner()
{
WorldEntity outdoor = Entity(
id: 61,
serverGuid: 0,
parentCell: null);
var oracle = new CurrentRenderSceneOracle();
var result = new InteriorEntityPartition.Result();
InteriorEntityPartition.Partition(
result,
[],
[Entry(LandblockA, outdoor)],
oracle);
oracle.BeginDispatcherFrame();
oracle.ObserveDispatcherDraw(
WbDrawDispatcher.EntitySet.All,
entitiesWalked: 1,
[(outdoor, 0, LandblockB)]);
CurrentRenderDispatcherFingerprint candidate =
Assert.Single(oracle.DispatcherCandidates);
Assert.Equal(LandblockA, candidate.Projection.LandblockId);
Assert.Equal(LandblockB, candidate.TupleLandblockId);
Assert.Equal(LandblockB, candidate.CacheLandblockId);
}
[Fact]
public void DispatcherAbortDiscardsIncompleteCandidates()
{