Files
sousa-gecko/layout/svg
Glenn Watson fd597a19c1 Bug 2054400 - Desugar text-shadows into standard display items in the DL builder r=gfx-reviewers,lsalzman
Move shadow expansion out of the scene builder and into the
webrender_api DisplayListBuilder. push_shadow/pop_all_shadows no
longer emit PushShadow/PopAllShadows items; instead pop_all_shadows
captures the shadowed items and rewrites them into standard display
items: a blur stacking context plus offset/recolored copies of the
shadowed primitives, followed by the originals.

This removes the deferred shadow machinery from the scene builder
(pending_shadow_items, ShadowItem/PendingShadow/PendingPrimitive, the
CreateShadow trait and its per-prim impls) so the scene builder sees
only ordinary primitives.

The captured shadow state now lives in the builder (shadow_capture and
pending_shadows) rather than in the item stream, so save()/restore()
snapshots and truncates both buffers to keep a speculative shadow scope
discardable, matching the previous behaviour where restore() simply
truncated items_data.

FilterOp::Blur gains a should_inflate parameter so the desugared blur
respects the caller's inflation choice (Gecko already inflates the
bounding rect of text shadows and passes false), matching the previous
scene-builder behaviour.

Differential Revision: https://phabricator.services.mozilla.com/D311754
2026-07-13 19:27:40 +00:00
..
…
…