Source code
Revision control
Copy as Markdown
Other Tools
---
# At scale(1.0), element at (5, 5) is already integer-aligned (scene-builder
# snap is a no-op). spread 2.5 + blur 1 (blur_offset 3) inflates to dest_rect
# at (-0.5, -0.5) device. -0.5 is exact in f32, where f32::round
# (half-away-from-zero) gives -1 and euclid::Round (= (n+0.5).floor()) gives 0
# - a one-device-pixel disagreement. create_quad_primitive uses euclid::Round,
# so prepare.rs must match it; otherwise dest_rect_offset shifts the
# analytical shadow by one device pixel relative to the blurred mask.
root:
items:
- type: rect
bounds: [0, 0, 800, 400]
color: [255, 255, 255]
- type: rect
bounds: [5, 5, 200, 200]
color: [103, 150, 29]
- type: box-shadow
bounds: [5, 5, 200, 200]
color: [0, 0, 0, 0.47]
clip-mode: outset
offset: [0, 0]
blur-radius: 1
spread-radius: 2.5