What's Changed
Breaking changes
customFrag now owns NaN/fill discarding. Previously the renderer injected an automatic "discard if any band is NaN" before your customFrag ran, so partial-coverage pixels were dropped before your shader could use them. That implicit discard is gone: every band value (NaN included for missing/fill pixels) is now in scope, and your shader decides what to drop.
Migration: add an explicit discard for the pixels you don't want, e.g.
if (isnan(band_a)) { discard; }This lets you aggregate over partial coverage (the union of bands) instead of only their intersection. Default (no-customFrag) rendering is unchanged. See the custom shaders section of the README.
Full Changelog: v0.5.2...v0.6.0