Feature Gallery¶
This document is intentionally structured as simple sections so automated tooling can refresh image links and keep descriptions current.
Generated PNGs are expected in docs/generated and should be regenerated with scripts/generate-documentation.ps1.
Background Color¶
- What it demonstrates: solid background color fill.
- Sample config: background.toml
View sample TOML
# $schema: https://raw.githubusercontent.com/gameshowpro/BgRaster/refs/heads/main/docs/schemas/bgraster-config.schema.json
[background]
color = ["#1A365D"]
alternating = [false]
border = [false]
[grid]
size = ["0"]
coordinates = [false]
[circle]
stroke = ["0"]
color = ["#00000000"]
[crosshair]
stroke = ["0"]
color = ["#00000000"]
[labeled-edges]
thickness = ["0"]
side = []
[text]
text = [""]
[logo]
source = [""]
[render]
no-assignment = true
no-discovery = true
output = ""
[[output]]
target = 0
[output.hardware_output]
index = 0
desktopX = 0
desktopY = 0
widthPx = 640
heightPx = 480
dpiX = 96
dpiY = 96
rotation = 0
adapterName = "FIXED"
friendlyName = "Background Color"

Background Image¶
- What it demonstrates: background bitmap rendering and fit behavior.
- Sample config: background-image.toml
View sample TOML
# $schema: https://raw.githubusercontent.com/gameshowpro/BgRaster/refs/heads/main/docs/schemas/bgraster-config.schema.json
[background]
color = ["#1A365D"]
image = ["images/background.png"]
fit = ["BestFit"]
[grid]
size = ["0"]
coordinates = [false]
[circle]
stroke = ["0"]
color = ["#00000000"]
[crosshair]
stroke = ["0"]
color = ["#00000000"]
[labeled-edges]
thickness = ["0"]
side = []
[text]
text = ["Background bitmap", "best fit."]
[logo]
source = [""]
[render]
no-assignment = true
no-discovery = true
output = ""
[[output]]
target = 0

Background Alternating¶
- What it demonstrates: alternating-pixel checker pattern used for signal verification. You probably need to zoom in to appreciate this. However you try to zoom it, it will probably look mushy. It's already telling you something about your render pipeline!
- Sample config: background-alternating.toml
View sample TOML
# $schema: https://raw.githubusercontent.com/gameshowpro/BgRaster/refs/heads/main/docs/schemas/bgraster-config.schema.json
[background]
color = ["#1A365D"]
alternating = [true]
border = [false]
[grid]
size = ["0"]
coordinates = [false]
[circle]
stroke = ["0"]
color = ["#00000000"]
[crosshair]
stroke = ["0"]
color = ["#00000000"]
[labeled-edges]
thickness = ["0"]
side = []
[text]
text = ["One pixel checkerboard."]
[logo]
source = [""]
[render]
no-assignment = true
no-discovery = true
output = ""
[[output]]
target = 0

Grid¶
- What it demonstrates: checker/grid layer with labels for column and row numbers. The labels include an triangle to mark the corner that the text refers to.
- Sample config: grid.toml
View sample TOML
# $schema: https://raw.githubusercontent.com/gameshowpro/BgRaster/refs/heads/main/docs/schemas/bgraster-config.schema.json
[background]
color = ["#000000"]
alternating = [false]
border = [false]
[grid]
size = ["64px"]
odd-color = ["#000"]
even-color = ["#8d0000"]
stroke = ["0"]
coordinates = [true]
[circle]
stroke = ["0"]
color = ["#00000000"]
[crosshair]
stroke = ["0"]
color = ["#00000000"]
[labeled-edges]
side = []
[text]
text = [""]
[logo]
source = [""]
[render]
no-assignment = true
no-discovery = true
output = ""
[[output]]
target = 0

Circle¶
- What it demonstrates: centered circle sizing and stroke behavior.
- Sample config: circle.toml
View sample TOML
# $schema: https://raw.githubusercontent.com/gameshowpro/BgRaster/refs/heads/main/docs/schemas/bgraster-config.schema.json
[background]
color = ["#000000"]
alternating = [false]
border = [false]
[grid]
size = ["0"]
coordinates = [false]
[circle]
size = ["70vmin"]
color = ["#FFC85780"]
stroke = ["4px"]
[crosshair]
stroke = ["0"]
color = ["#00000000"]
[labeled-edges]
thickness = ["0"]
side = []
[text]
text = [""]
[logo]
source = [""]
[render]
no-assignment = true
no-discovery = true
output = ""
[[output]]
target = 0

Crosshair¶
- What it demonstrates: centered crosshair with configurable arm length and stroke.
- Sample config: crosshair.toml
View sample TOML
# $schema: https://raw.githubusercontent.com/gameshowpro/BgRaster/refs/heads/main/docs/schemas/bgraster-config.schema.json
[background]
color = ["#000000"]
alternating = [false]
border = [false]
[grid]
size = ["0"]
coordinates = [false]
[crosshair]
length = ["40vmin"]
color = ["#00D9FF"]
stroke = ["3px"]
[circle]
stroke = ["0"]
color = ["#00000000"]
[labeled-edges]
thickness = ["0"]
side = []
[text]
text = [""]
[logo]
source = [""]
[render]
no-assignment = true
no-discovery = true
output = ""
[[output]]
target = 0

Labeled Edges¶
- What it demonstrates: edge labels, tail-length, and scope behavior.
- Sample config: labeled-edges.toml
View sample TOML
# $schema: https://raw.githubusercontent.com/gameshowpro/BgRaster/refs/heads/main/docs/schemas/bgraster-config.schema.json
[background]
color = ["#000000"]
alternating = [false]
border = [false]
[grid]
size = ["0"]
coordinates = [false]
[labeled-edges]
text-size = ["14px"]
tail-length = ["20px"]
thickness = ["4px"]
head-scale = [1.2]
scope = ["Output"]
side = ["TL", "T", "TR", "R", "BR", "B", "BL", "L"]
[circle]
stroke = ["0"]
color = ["#00000000"]
[crosshair]
stroke = ["0"]
color = ["#00000000"]
[text]
text = [""]
[logo]
source = [""]
[render]
no-assignment = true
no-discovery = true
output = ""
[[output]]
target = 0

Text + Logo¶
- What it demonstrates: text composition and inclusion of arbitrary logo bitmap.
- Sample config: text-logo.toml
View sample TOML
# $schema: https://raw.githubusercontent.com/gameshowpro/BgRaster/refs/heads/main/docs/schemas/bgraster-config.schema.json
[background]
color = ["#000000"]
alternating = [false]
border = [false]
[grid]
size = ["0"]
coordinates = [false]
[text]
text = ["BgRaster", "Text + Logo", "640x480"]
size = ["8vh", "4vh", "4vh"]
color = ["#FFFFFF", "#a0a0a0", "#FFFFFF"]
x = ["50vw"]
y = ["70vh"]
[logo]
source = ["images/logo.png"]
x = ["50vw"]
y = ["45vh"]
width = ["40vw"]
height = ["25vh"]
opacity = [1]
[circle]
stroke = ["0"]
color = ["#00000000"]
[crosshair]
stroke = ["0"]
color = ["#00000000"]
[labeled-edges]
thickness = ["0"]
side = []
[render]
no-assignment = true
no-discovery = true
output = ""
[[output]]
target = 0
[output.hardware_output]
index = 0
desktopX = 0
desktopY = 0
widthPx = 640
heightPx = 480
dpiX = 96
dpiY = 96
rotation = 0
adapterName = "FIXED"
friendlyName = "Text and Logo"

Slices¶
- What it demonstrates: output split into four custom-sized slices, with varying options. Demonstrates many features in a single example.
- Sample config: slices.toml
View sample TOML
# $schema: https://raw.githubusercontent.com/gameshowpro/BgRaster/refs/heads/main/docs/schemas/bgraster-config.schema.json
machine-name = "SAMPLE_MACHINE"
[text]
text = ["${MachineName} output ${OutputIndexPlusOne}", "slice ${SliceLetterMinusOne}", "${SliceWidth}x${SliceHeight}"]
size = ["16px", "12px", "14px"]
color = ["#fff"]
x = ["50vw"]
y = ["50vh"]
[background]
color = ["#808080", "#FF0000", "#00FF00", "#0000FF"]
image = [""]
fit = ["CropToFill"]
alternating = [false]
border = [false]
border-color = ["#FFFFFF"]
[grid]
size = ["100px"]
odd-color = ["#00000080"]
even-color = ["transparent"]
stroke = ["0"]
offset-x = ["0"]
offset-y = ["0"]
coordinates = [false]
[circle]
size = ["100vmin"]
color = ["#ffffff"]
stroke = ["1"]
[crosshair]
length = ["5vmin"]
color = ["#ffffff80"]
stroke = ["1px"]
[labeled-edges]
text-size = ["10px"]
tail-length = ["10px"]
thickness = ["3px"]
head-scale = [1]
scope = ["Desktop"]
side = ["TL", "T", "TR", "R", "BR", "B", "BL", "L"]
[logo]
x = "75vw"
y = "50vh"
width = "40vw"
height = "50vh"
opacity = 1
[render]
no-assignment = false
outputs-skip-unspecified = false
output = ""
force = true
verbosity = "verbose"
[[output]]
target = 0
[output.grid]
size = "25vh"
[[output.slice]]
x = "0"
y = "0"
width = "100vw"
height = "100vh"
[output.slice.text]
size = ["0"]
[output.slice.circle]
size = "0"
[output.slice.grid]
size = "12.5vh"
[[output.slice]]
x = "0"
y = "0"
width = "600px"
height = "150px"
[output.slice.circle]
x = "0"
[[output.slice]]
x = "0"
y = "150px"
width = "600px"
height = "150px"
[[output.slice]]
x = "0"
y = "300px"
width = "600px"
height = "150px"
[output.slice.circle]
x = "100vw"
