HeadlessRenderer Module
Off-screen render pipeline for the Viewer tab. Reads the current `SessionManager` game state + `HubStateStore` camera + `HubStateStore.VizConfig` every tick, calls `SceneBuilder.buildSceneHeadlessView`, rasterizes into an off-screen SKSurface (raster backend — the GPU backend segfaults in this environment per CLAUDE.md), encodes PNG/JPEG, and fans out to per-subscriber bounded channels (capacity 16, DropOldest).
Types
| Type | Description |
|
|
Functions and values
| Function or value |
Description
|
Full Usage:
create sessions store overlays events settings
Parameters:
SessionManager
store : T
overlays : T
events : IHubEventSink
settings : unit -> HubSettings
Returns: T
|
Allocate a new renderer. Retains the session manager, state store, overlay store, and event sink. Per-frame composite emits a `HubEvent.DiagnosticsLine Warning` on the supplied sink when the overlay-pass elapsed time exceeds the SC-002 5 ms budget (feature 041 FR-006a / R2). The frame still ships unchanged.
|
Full Usage:
renderOnce arg1 format viewportWidth viewportHeight jpegQuality
Parameters:
T
format : ImageFormat
viewportWidth : int
viewportHeight : int
jpegQuality : int
Returns: RenderFrameMessage
|
Synchronously render + encode a single frame at the caller's requested viewport. Used by the `GetRenderFrame` unary RPC. When no session is active, returns a placeholder frame with `IsPlaceholder = true`.
|
Full Usage:
subscribe arg1 arg2
Parameters:
T
arg1 : RenderSubscriptionRequest
Returns: SubscribeOutcome
|
Subscribe a new client. Returns `Subscribed` with a `RenderSubscription` whose `Channel` receives one `RenderFrameMessage` per render tick. When `HubSettings.MaxRenderFrameSubscribers` is reached returns `SubscribeRejected "max subscribers reached"`.
|
|
FSBarV1_Archived