APRICITYUI / ORE RENDER LAB / CSS COMPOSITING

Compositing bench

A compact visual regression fixture for mix-blend-mode, isolation, color(srgb-linear ...), and dynamic-range-limit. Pick a declaration, then compare the live layer, the reference grid, and CSSOM readback.

FBO blend isolated group linear-light color readback

Initializing compositor checks...

Declaration controlsready
Each change invalidates the affected paint list and shader pass.
mix-blend-mode: screen;
isolation: auto;
dynamic-range-limit: standard;
background-color: color(srgb-linear 2 .45 .04 / 75%);
01

Live compositor

The gold layer is rendered through the selected blend operator against the colored backdrop.

Source-over viewportscreen
LIVE LAYER
mix-blend-mode: screen
Operator reference matrix17 modes
normal
multiply
screen
overlay
darken
lighten
color-dodge
color-burn
hard-light
soft-light
difference
exclusion
hue
saturation
color
luminosity
plus-lighter
02

Isolation boundary

The left reference stays auto; the right group follows the control above.

reference / isolation: auto
controlled / isolation: auto
03

Linear-light and range mapping

These swatches use real color(srgb-linear ...) declarations. The live swatch also carries the selected range limit.

linear SDR neutral
color(srgb-linear .18 .18 .18)
linear SDR color
color(srgb-linear .5 .18 .04)
live HDR / alpha 75%
color(srgb-linear 2 .45 .04 / 75%)
extended range
color(srgb-linear 8 1.8 .15)
The default framebuffer is still an 8-bit display target. This fixture verifies linear color parsing, CSSOM values, dynamic range mapping, FBO routing, and shader behavior; it does not promise physical HDR output on an SDR monitor.
04

Readback and checks

Every control update refreshes this small machine-readable snapshot.

CSSOM readback
computed mix-blend-mode: screen
computed isolation: auto
computed dynamic-range-limit: standard
computed background-color: color(srgb-linear 2 .45 .04 / 75%)
Regression assertions
assertionstateobserved
blend declaration reaches live targetpending-
isolation declaration reaches live grouppending-
range declaration reaches HDR targetpending-
linear color declaration is presentpending-