56 lines
1.7 KiB
C#
56 lines
1.7 KiB
C#
using AcDream.App.Rendering.Wb;
|
|
using System.Numerics;
|
|
|
|
namespace AcDream.App.Tests.Rendering.Wb;
|
|
|
|
public sealed class PackedDispatcherOracleTests
|
|
{
|
|
[Theory]
|
|
[InlineData(false, 0u)]
|
|
[InlineData(true, 1u)]
|
|
public void PackedInstanceWriter_AppendsDetailCategoryInParallel(
|
|
bool buildingDetail,
|
|
uint expectedCategory)
|
|
{
|
|
var group = new WbDrawDispatcher.InstanceGroup();
|
|
|
|
WbDrawDispatcher.AppendPackedInstance(
|
|
group,
|
|
Matrix4x4.Identity,
|
|
Vector3.One,
|
|
submissionOrder: 7,
|
|
slot: 3u,
|
|
lights: WbDrawDispatcher.InstanceLightSet.Disabled,
|
|
indoor: true,
|
|
buildingDetail: buildingDetail,
|
|
opacity: 0.5f,
|
|
selectionLighting: new Vector2(0.25f, 0.75f));
|
|
|
|
Assert.Single(group.Matrices);
|
|
Assert.Single(group.LocalSortCenters);
|
|
Assert.Single(group.SubmissionOrders);
|
|
Assert.Single(group.Slots);
|
|
Assert.Single(group.LightSets);
|
|
Assert.Single(group.IndoorFlags);
|
|
Assert.Equal(expectedCategory, Assert.Single(group.DetailCategories));
|
|
Assert.Single(group.Opacities);
|
|
Assert.Single(group.SelectionLighting);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(0u, false, false)]
|
|
[InlineData(0u, true, false)]
|
|
[InlineData(7u, false, false)]
|
|
[InlineData(7u, true, true)]
|
|
public void TransparentDeferral_MatchesProductionNoVaoEarlyReturn(
|
|
uint anyVao,
|
|
bool alphaQueueCollecting,
|
|
bool expected)
|
|
{
|
|
Assert.Equal(
|
|
expected,
|
|
WbDrawDispatcher.ShouldDeferPackedTransparent(
|
|
anyVao,
|
|
alphaQueueCollecting));
|
|
}
|
|
}
|