Skip to content

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 sample

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 image sample

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

Background alternating sample

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

Grid sample

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

Circle sample

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

Crosshair sample

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

Labeled edges sample

  • 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"

Text and logo sample

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"

Slices sample