Skip to content

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.

C#
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.