events

abstract val events: Flow<RendererEvent>

Surface loss, surface return, refresh changes, colour limits, hard failure.

The engine collects this feed. RendererEvent.SurfaceLost and RendererEvent.Failed become warnings, and a failed renderer is detached. RendererEvent.ToneMapEngaged is what lets PlaybackWarning.HdrToneMapped fire, since only the renderer knows whether it actually tone mapped, and RendererEvent.ColorApproximated becomes PlaybackWarning.ColorApproximated. RendererEvent.VsyncChanged reaches the running schedule, RendererEvent.FramePresented becomes a player event when frame events are on, and RendererEvent.SurfaceAvailable is ignored.

Emitting is optional. A renderer that cannot draw refuses the frame instead, which the schedule counts as a drop and carries on from, so a silent feed costs only the chance to report why.