refactor(render): extract WbDrawDispatcher.GroupKey to internal type at namespace scope
Mechanical refactor: GroupKey was a private nested record struct on WbDrawDispatcher. The upcoming EntityClassificationCache (ISSUE #53) needs to store GroupKey inside CachedBatch records, so it must be visible to both the dispatcher and the cache. Promoting to internal at file scope is the smallest change that achieves this. No behavior change. 1688 tests pass; 8 pre-existing failures unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
2f8a574b92
commit
c02405cbb7
2 changed files with 20 additions and 9 deletions
20
src/AcDream.App/Rendering/Wb/GroupKey.cs
Normal file
20
src/AcDream.App/Rendering/Wb/GroupKey.cs
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
using AcDream.Core.Meshing;
|
||||||
|
|
||||||
|
namespace AcDream.App.Rendering.Wb;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Bucket identity for <see cref="WbDrawDispatcher"/>'s per-frame group dictionary.
|
||||||
|
/// Two (entity, batch) pairs that share the same <see cref="GroupKey"/> render
|
||||||
|
/// in a single <c>glMultiDrawElementsIndirect</c> draw command. Promoted to
|
||||||
|
/// <c>internal</c> at file scope (was a private nested type) so
|
||||||
|
/// <see cref="EntityClassificationCache"/> can store it inside <see cref="CachedBatch"/>
|
||||||
|
/// without depending on dispatcher internals.
|
||||||
|
/// </summary>
|
||||||
|
internal readonly record struct GroupKey(
|
||||||
|
uint Ibo,
|
||||||
|
uint FirstIndex,
|
||||||
|
int BaseVertex,
|
||||||
|
int IndexCount,
|
||||||
|
ulong BindlessTextureHandle,
|
||||||
|
uint TextureLayer,
|
||||||
|
TranslucencyKind Translucency);
|
||||||
|
|
@ -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
|
private sealed class InstanceGroup
|
||||||
{
|
{
|
||||||
public uint Ibo;
|
public uint Ibo;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue