1.2.4: mask cascade strict bottom-up + clip-internal masks
Audited masking against the four-scope spec (groups, main timeline, clips, SVG-internal). Rule 2 was already correct; rules 1, 3, 4 needed fixes: - drawMaskedGroup now walks children bottom-up and applies each mask to the offscreen buffer immediately, so a mask only affects layers below it in the stack — layers above the mask render unmasked on top. - drawTrackGroup rewritten with an Item discriminated union collected bottom-up, then a single z-order loop renders/applies, replacing the old "collect all masks → apply at end" pattern. - Both clip-rendering sites (drawSceneFrame top-level clip path and drawTrackGroup's clip-child path) switched from drawLayers to drawMaskedGroup — previously a mask layer inside a clip was rendered as a regular shape instead of masking. - 5 new tests under "mask layers — rendering" cover the four-rule spec (group below-only, group negative below-only, clip-scoped mask, SVG-asset mask scoped to interior, clip-internal layers above mask unmasked). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
127812d3bf
commit
b32b8a6a3d
4 files changed
+319
-35
No files matched your search
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "ruwio",
|
||||
"private": true,
|
||||
"version": "1.2.3",
|
||||
"version": "1.2.4",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
|
||||
Reference in new issue
Block a user