mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-29 12:37:51 -06:00
`Overlay::AllMasks` painted each mask's plane in turn, and every mask view rewrites the whole image from its alpha (White on Black writes `255·a`, Image on Black multiplies by `a`…), so each plane wiped the ones before it and only the last visible mask showed. The planes are now merged (per-pixel max) and painted once; the GPU path goes through the same `apply`. The test added with #919 could not pass: besides the above, its hidden-mask check expected the plain pixel under White on Black, where everything outside the masks is black by definition (as the single-mask test asserts). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NH3itd85jPuM6wNjgcGfEH