| Camera2D |
A 2D camera for viewing and navigating the game world. |
| CameraBounds |
Constrains camera movement to stay within world bounds. |
| CameraExtensions |
Stateless interpolation helpers for any ICamera. |
| CameraManager |
Default implementation of camera manager. Manages multiple cameras for different rendering viewports. |
| DrawContextExtensions |
Scoped helpers for IDrawContext state that auto-restore on dispose. |
| FontAtlas |
Represents a font atlas containing pre-rendered glyphs packed into a texture. |
| GpuDeviceHandle |
Shared, mutable reference to the GPU device pointer. The renderer creates one instance and passes it to every texture it allocates. When the renderer destroys the device, it calls Brine2D.Rendering.GpuDeviceHandle.Invalidate, and all textures that still reference this handle see System.IntPtr.Zero instead of a dangling pointer. |
| GPUDriverExtensions |
|
| HeadlessFontLoader |
No-op font loader for headless mode \(servers, testing\). Returns stub fonts; all operations are silently ignored. |
| HeadlessRenderer |
No-op renderer for headless mode \(servers, testing\). All rendering operations are silently ignored. CreateRenderTarget\(int, int\) is the sole exception: render targets require GPU infrastructure that does not exist in headless mode and throw System.NotSupportedException. |
| HeadlessTextureLoader |
No-op texture loader for headless mode \(servers, testing\). Returns zero-size stub textures; all operations are silently ignored. |
| RendererExtensions |
Extension methods for IRenderer to simplify common operations. |
| RenderingOptions |
Configuration options for the rendering system. |
| ScissorRectHelper |
Shared scissor rectangle intersection logic used by both HeadlessRenderer and SDL3StateManager. |
| SDL3BatchRenderer |
Handles vertex batching and indexed primitive rendering operations. All geometry is emitted as groups of four vertices with a pre-generated static index buffer using the quad pattern [0, 1, 2, 1, 3, 2], reducing vertex throughput by a third for quads. |
| SDL3Font |
SDL_ttf implementation of a font. |
| SDL3FontLoader |
SDL_ttf implementation of font loader. |
| SDL3FrameManager |
Manages frame lifecycle including command buffers, swapchain acquisition, and presentation. |
| SDL3Lifecycle |
Owns the SDL3 process-level lifetime. ...SDL_Quit intentionally lives in Brine2D.Rendering.SDL3Lifecycle.Dispose, not Microsoft.Extensions.Hosting.IHostedService.StopAsync\(System\.Threading\.CancellationToken\), because StopAsync runs before DI disposal — calling it there would pull the rug from under services like AudioService that release SDL resources in their own System.IDisposable.Dispose. |
| SDL3ParticleRenderer |
Hardware-instanced renderer for particle emitters. Manages a static unit-quad vertex buffer (slot 0, 4 × float2 corners), a per-frame CPU staging array, a GPU instance buffer \(slot 1, N × 48\-byte [ParticleInstance](SDL3ParticleRenderer/ParticleInstance/index.md 'Brine2D\.Rendering\.SDL3ParticleRenderer\.ParticleInstance')\), and uploads all staged instances once per frame inside the GPU copy pass issued by SDL3Renderer. |
| SDL3Renderer |
SDL3 GPU API implementation of the renderer. |
| SDL3RenderTargetManager |
Manages render targets and post-processing effects. |
| SDL3Shader |
SDL3 GPU shader implementation. |
| SDL3ShaderLoader |
Compiles and loads HLSL shaders at runtime via SDL_ShaderCross. ShaderCross transpiles HLSL to the format required by the active GPU backend \(SPIRV for Vulkan, DXIL for D3D12, DXBC for D3D11, MSL for Metal\). |
| SDL3StateManager |
Manages render state: blend modes, scissor rectangles, layers, and camera transforms. |
| SDL3TextRenderer |
Handles text rendering using font atlases and markup parsing. |
| SDL3Texture |
SDL3 GPU API texture implementation. |
| ShaderSource |
Represents shader source code. |
| SpriteBatcher |
Batches sprite draw calls for efficient rendering. Sorts and groups sprites before submission to minimize state changes and draw calls. |
| TilemapRenderer |
|
| WindowOptions |
Configuration options for the game window. |