Adds DrawElementsIndirectCommand struct (20-byte layout for glMultiDrawElementsIndirect). Replaces _instanceVbo field on WbDrawDispatcher with three buffers: _instanceSsbo (mat4[]), _batchSsbo (BatchData[]), _indirectBuffer (DEIC[]). Adds BindlessSupport constructor parameter — non-null required since the dispatcher is only constructed when WB foundation is on (which implies bindless is present per Task 6 capability detection). Existing Draw() method substitutes _instanceVbo -> _instanceSsbo for compile. Behavior is temporarily wrong (SSBO bound as ArrayBuffer for per-vertex attribs); Tasks 9-10 fully rewrite the draw loop and the per-frame uploads to use BindBufferBase + glMultiDrawElementsIndirect. GameWindow construction site updated to add _bindlessSupport guard and pass it as the new last argument to the constructor. Dispatcher is only constructed when bindless is guaranteed present. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Audio | ||
| Input | ||
| Plugins | ||
| Rendering | ||
| Streaming | ||
| UI | ||
| AcDream.App.csproj | ||
| Program.cs | ||