mirror of
https://github.com/storytold/photocraft.git
synced 2026-11-02 14:27:35 -06:00
Fill 0 % + an Outside stroke is Photoshop's "outline only" look, but on pixel layers the stroke lay beneath the whole interior at full coverage, relying on the layer composited on top to hide it. With the fill lowered the interior showed the stroke colour (a solid disc instead of a ring). The share beneath an interior pixel is now (1 - a) / (1 - c), with a the shape's coverage and c the layer's alpha after fill: 1 under an opaque layer (100 % fill renders exactly as before, so PSD oracles don't move), 1 - a at 0 % fill. CPU compositor and the wgpu shader agree (the layer's alpha now rides along the coverage seed for pixel layers too). Tests: compose regression at 8/16/32-bit (0 %, 50 %, 100 % fill), and a GPU parity case at fill 0 and 0.5 (fails without the shader change). Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>