GlHost Module
The OpenGL/Skia presentation host body (internal helpers hidden; only `run` is reachable).
Types
| Type | Description |
|
|
Functions and values
| Function or value |
Description
|
|
Feature 120 (US1, FR-001/002): the most recent present's per-phase durations — the scene→canvas paint walk and the flush + buffer-swap (compose). Live-only, non-golden; consumed by the interactive adapter's `FrameMetrics.PaintDuration`/`ComposeDuration` and the timing baseline.
|
Full Usage:
planPresent prev next sizeChanged idleRepresentsRemaining
Parameters: Returns: PresentAction
|
Feature 122 (FR-001/002): the pure present decision. `PaintAndPresent` when `shouldPresent`; otherwise `RepresentLastGood` while `idleRepresentsRemaining > 0` (buffers may still be undrawn), else `SkipPresent` (full idle). Keeping every swapchain buffer populated stops a multi-buffer compositor (Wayland windowed-fullscreen) from rotating an undrawn black buffer into view. Exposed for the present-plan transition test (T011).
|
Full Usage:
run program
Parameters:
ViewerProgram<'model, 'msg>
Returns: Result<unit, RenderDiagnostic>
Type parameters: 'model, 'msg |
Public contract function exposed by this FS.Skia.UI package. Signature shape preserved from the former VulkanHost.run so Host/Viewer.fs routes unchanged.
|
Full Usage:
shouldAdvanceFrame lastFrameTime now frameInterval
Parameters:
float
now : float
frameInterval : float
Returns: bool
|
Feature 121 (US1, FR-002): pure frame-pacing decision — advance (update + present) iff at least `frameInterval` seconds elapsed since the last advance. Gates DoUpdate AND DoRender so the `ViewerOptions.FrameRateCap` bounds render cadence. Exposed for the pacing test (T006).
|
|