diff --git a/src/AcDream.App/Rendering/Wb/GroupKey.cs b/src/AcDream.App/Rendering/Wb/GroupKey.cs new file mode 100644 index 0000000..696363c --- /dev/null +++ b/src/AcDream.App/Rendering/Wb/GroupKey.cs @@ -0,0 +1,20 @@ +using AcDream.Core.Meshing; + +namespace AcDream.App.Rendering.Wb; + +/// +/// Bucket identity for 's per-frame group dictionary. +/// Two (entity, batch) pairs that share the same render +/// in a single glMultiDrawElementsIndirect draw command. Promoted to +/// internal at file scope (was a private nested type) so +/// can store it inside +/// without depending on dispatcher internals. +/// +internal readonly record struct GroupKey( + uint Ibo, + uint FirstIndex, + int BaseVertex, + int IndexCount, + ulong BindlessTextureHandle, + uint TextureLayer, + TranslucencyKind Translucency); diff --git a/src/AcDream.App/Rendering/Wb/WbDrawDispatcher.cs b/src/AcDream.App/Rendering/Wb/WbDrawDispatcher.cs index cb27f87..15d0e6e 100644 --- a/src/AcDream.App/Rendering/Wb/WbDrawDispatcher.cs +++ b/src/AcDream.App/Rendering/Wb/WbDrawDispatcher.cs @@ -920,15 +920,6 @@ public sealed unsafe class WbDrawDispatcher : IDisposable // ──────────────────────────────────────────────────────────────────────── - private readonly record struct GroupKey( - uint Ibo, - uint FirstIndex, - int BaseVertex, - int IndexCount, - ulong BindlessTextureHandle, - uint TextureLayer, - TranslucencyKind Translucency); - private sealed class InstanceGroup { public uint Ibo;