SDL3Lifecycle Class
Definition
Namespace: Brine2D.Rendering
Owns the SDL3 process-level lifetime.
- Microsoft.Extensions.Hosting.IHostedService.StartAsync\(System\.Threading\.CancellationToken\) calls SDL_Init before any SDL-dependent service is resolved.
- System.IDisposable.Dispose calls SDL_Quit during DI LIFO teardown, after all SDL-dependent
singletons have been disposed.
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.
internal sealed class SDL3Lifecycle : Microsoft.Extensions.Hosting.IHostedService, System.IDisposable
Inheritance System.Object → SDL3Lifecycle
Implements Microsoft.Extensions.Hosting.IHostedService, System.IDisposable
| Constructors | |
|---|---|
| SDL3Lifecycle\(ILogger<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. |