Skip to content

Future plans

This page records deveopment work that is planned or under consideration.

Recycle Bin support for stale outputs

Done: - Stale .png files are detected with StaleFileCleaner.FindStaleFiles. - Stale file intent is logged so the retry path remains visible.

Not done: - The Windows shell recycle-bin integration is still stubbed. - IFileOperation / COM-backed recycle behavior is not implemented yet. - Stale files are returned to the caller for retry on the next run.

Golden image regression coverage

Done: - The renderer is stable enough to support pixel comparison tests. - The codebase already has focused unit tests around parsing, resolution, and hashing.

Not done: - Reference image fixtures are not yet established. - There is no golden comparison harness for rendered outputs. - There is no tolerance or diff-report workflow for visual regressions.

Native AOT validation for rendering dependencies

Done: - The codebase has already been pushed toward AOT-friendly patterns. - SkiaSharp usage is isolated behind rendering layers and helper types.

Not done: - DisableRuntimeMarshalling has not been enabled globally. - The publish/test matrix against the pinned SkiaSharp version still needs explicit validation. - The unsafe pixel-access path in AlternatingLayer remains the most likely breakage point.

Config import command

A CLI sub-command (import) that reads a config file from another system and converts it to a BgRaster TOML file. Possible targets: Ventuz render setup files (.vren), Novastar (VideoWall/NovaLCT JSON/XML project files) and Resolume Avenue/Arena composition files. The import maps each output or layer region to an [[output]] or [[output.slice]] object with inferred target, geometry, and color values.

Windows service mode

Optional installation as a Windows service that listens for OS display change events (WM_DISPLAYCHANGE) and system startup events and reruns the core pipeline automatically when outputs are connected, disconnected, or reconfigured.

HTTP trigger

A lightweight embedded HTTP endpoint that accepts a POST request to trigger a re-render, enabling integration with show-control systems such as QLab, Bitfocus Companion, or custom automation scripts. Command line argument could be provided in the post data.