acdream/src/AcDream.App/Rendering/Selection/IRetailSelectionRenderSink.cs
Erik 29195fb255 feat(rendering): prove packed dispatcher output parity
Build a compare-only dispatcher classifier from RenderFrameView and compare complete opaque, alpha, selection, clip, light, texture, transform, and draw payloads against the accepted path. Preserve retail's stable equal-CYpt ordering with explicit draw-local submission ordinals so material-group history cannot affect alpha ties.
2026-07-25 01:31:56 +02:00

33 lines
953 B
C#

using System.Numerics;
using AcDream.Core.Selection;
namespace AcDream.App.Rendering.Selection;
/// <summary>
/// Narrow seam from the normal world draw traversal to retail mouse selection.
/// Only entities which survive that traversal are published.
/// </summary>
internal interface IRetailSelectionRenderSink
{
void AddVisiblePart(
uint serverGuid,
uint localEntityId,
int partIndex,
uint gfxObjId,
Matrix4x4 partWorld);
}
/// <summary>
/// Read-only mirror of the exact geometry and drawing-sphere acceptance used
/// by the retained selection scene. G2's packed dispatcher referee uses it
/// without publishing a second picking frame.
/// </summary>
internal interface IRetailSelectionRenderOracle
{
bool TryCreateVisiblePart(
uint serverGuid,
uint localEntityId,
int partIndex,
uint gfxObjId,
Matrix4x4 partWorld,
out RetailSelectionPart part);
}