diff options
Diffstat (limited to '')
75 files changed, 1459 insertions, 0 deletions
diff --git a/gfx/wr/wrench/reftests/boxshadow/blank.yaml b/gfx/wr/wrench/reftests/boxshadow/blank.yaml new file mode 100644 index 0000000000..c4eb3ab673 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/blank.yaml @@ -0,0 +1,2 @@ +--- +root: diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-blurred-overlapping-radii-ref.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-blurred-overlapping-radii-ref.yaml new file mode 100644 index 0000000000..5e2da4fa8a --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-blurred-overlapping-radii-ref.yaml @@ -0,0 +1,20 @@ + +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 0, 1, 265, 265 ] + color: red + clip-mode: outset + offset: 350 -1 + blur-radius: 1 + spread-radius: -80 + border-radius: + top-left: [185, 185] + top-right: [0, 0] + bottom-left: [0, 0] + bottom-right: [185, 185] + diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-blurred-overlapping-radii.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-blurred-overlapping-radii.yaml new file mode 100644 index 0000000000..ebc4b263a1 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-blurred-overlapping-radii.yaml @@ -0,0 +1,19 @@ + +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 0, 1, 265, 265 ] + color: red + clip-mode: outset + offset: 350 -1 + blur-radius: 1 + spread-radius: -80 + border-radius: + top-left: [250, 250] + top-right: [0, 0] + bottom-left: [0, 0] + bottom-right: [250, 250] diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-border-radii.png b/gfx/wr/wrench/reftests/boxshadow/box-shadow-border-radii.png Binary files differnew file mode 100644 index 0000000000..0741826160 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-border-radii.png diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-border-radii.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-border-radii.yaml new file mode 100644 index 0000000000..d52601e019 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-border-radii.yaml @@ -0,0 +1,36 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 50, 50, 100, 100 ] + color: red + clip-mode: outset + blur-radius: 10 + border-radius: { + top-left: [20, 30], + top-right: [10, 30], + bottom-left: [50, 25], + bottom-right: [0, 0], + } + + - type: box-shadow + bounds: [ 200, 50, 100, 100 ] + color: green + clip-mode: inset + blur-radius: 10 + border-radius: { + top-left: [20, 30], + top-right: [10, 30], + bottom-left: [50, 25], + bottom-right: [0, 0], + } + + - type: box-shadow + bounds: [ 350, 50, 100, 100 ] + color: blue + clip-mode: outset + blur-radius: 10 + border-radius: [ 10, 20, 30, 40 ] diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-cache.png b/gfx/wr/wrench/reftests/boxshadow/box-shadow-cache.png Binary files differnew file mode 100644 index 0000000000..96d2c7fed3 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-cache.png diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-cache.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-cache.yaml new file mode 100644 index 0000000000..721c6fe4e0 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-cache.yaml @@ -0,0 +1,98 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 50, 50, 100, 100 ] + color: red + clip-mode: outset + blur-radius: 10 + border-radius: { + top-left: [20, 30], + top-right: [10, 30], + bottom-left: [50, 25], + bottom-right: [0, 0], + } + + - type: box-shadow + bounds: [ 50, 200, 100, 100 ] + color: red + clip-mode: outset + blur-radius: 10 + border-radius: { + top-left: [20, 30], + top-right: [10, 30], + bottom-left: [50, 25], + bottom-right: [0, 0], + } + + - type: box-shadow + bounds: [ 50, 350, 100, 100 ] + color: red + clip-mode: outset + blur-radius: 10 + border-radius: { + top-left: [20, 30], + top-right: [10, 30], + bottom-left: [50, 25], + bottom-right: [0, 0], + } + + - type: box-shadow + bounds: [ 200, 50, 100, 100 ] + color: green + clip-mode: inset + blur-radius: 10 + border-radius: { + top-left: [20, 30], + top-right: [10, 30], + bottom-left: [50, 25], + bottom-right: [0, 0], + } + + - type: box-shadow + bounds: [ 200, 200, 100, 100 ] + color: green + clip-mode: inset + blur-radius: 10 + border-radius: { + top-left: [20, 30], + top-right: [10, 30], + bottom-left: [50, 25], + bottom-right: [0, 0], + } + + - type: box-shadow + bounds: [ 200, 350, 100, 100 ] + color: green + clip-mode: inset + blur-radius: 10 + border-radius: { + top-left: [20, 30], + top-right: [10, 30], + bottom-left: [50, 25], + bottom-right: [0, 0], + } + + - type: box-shadow + bounds: [ 350, 50, 100, 100 ] + color: blue + clip-mode: outset + blur-radius: 10 + border-radius: [ 10, 20, 30, 40 ] + + - type: box-shadow + bounds: [ 350, 200, 100, 100 ] + color: blue + clip-mode: outset + blur-radius: 10 + border-radius: [ 10, 20, 30, 40 ] + + - type: box-shadow + bounds: [ 350, 350, 100, 100 ] + color: blue + clip-mode: outset + blur-radius: 10 + border-radius: [ 10, 20, 30, 40 ] diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-clip-ref.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-clip-ref.yaml new file mode 100644 index 0000000000..cda90245c9 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-clip-ref.yaml @@ -0,0 +1,59 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: clip + id: 2 + bounds: [0, 0, 100, 200] + - type: clip-chain + id: 10 + clips: [2] + - type: box-shadow + bounds: [ 20, 20, 200, 80 ] + color: blue + offset: [10, 20] + clip-mode: outset + clip-chain: 10 + + - type: clip + id: 3 + bounds: [200, 0, 100, 200] + - type: clip-chain + id: 11 + clips: [3] + - type: box-shadow + bounds: [ 220, 20, 200, 80 ] + color: red + offset: [10, 20] + blur-radius: 10 + clip-mode: outset + clip-chain: 11 + + - type: clip + id: 4 + bounds: [0, 200, 100, 200] + - type: clip-chain + id: 12 + clips: [4] + - type: box-shadow + bounds: [ 20, 220, 200, 80 ] + color: green + offset: [10, 20] + clip-mode: inset + clip-chain: 12 + + - type: clip + id: 5 + bounds: [200, 200, 100, 200] + - type: clip-chain + id: 13 + clips: [5] + - type: box-shadow + bounds: [ 220, 220, 200, 80 ] + color: yellow + offset: [10, 20] + blur-radius: 10 + clip-mode: inset + clip-chain: 13 diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-clip.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-clip.yaml new file mode 100644 index 0000000000..c027b54379 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-clip.yaml @@ -0,0 +1,32 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 20, 20, 200, 80 ] + clip-rect: [0, 0, 100, 200] + color: blue + offset: [10, 20] + clip-mode: outset + - type: box-shadow + bounds: [ 220, 20, 200, 80 ] + clip-rect: [200, 0, 100, 200] + color: red + offset: [10, 20] + blur-radius: 10 + clip-mode: outset + - type: box-shadow + bounds: [ 20, 220, 200, 80 ] + clip-rect: [0, 200, 100, 200] + color: green + offset: [10, 20] + clip-mode: inset + - type: box-shadow + bounds: [ 220, 220, 200, 80 ] + clip-rect: [200, 200, 100, 200] + color: yellow + offset: [10, 20] + blur-radius: 10 + clip-mode: inset diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-clipped-corners-ref.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-clipped-corners-ref.yaml new file mode 100644 index 0000000000..ce0bd28a5d --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-clipped-corners-ref.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: rect + bounds: [ 40, 100, 10, 100 ] + color: red + - type: rect + bounds: [ 250, 100, 10, 100 ] + color: red diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-clipped-corners.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-clipped-corners.yaml new file mode 100644 index 0000000000..dd457e7e4a --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-clipped-corners.yaml @@ -0,0 +1,16 @@ +# Verify that if a clip results in all the corner segments of a box-shadow +# (clip-out) primitive being culled, we still correctly clip-out and render +# the inner segments +--- +root: + items: + - type: clip + id: 2 + bounds: [ 0, 100, 300, 100 ] + + - type: box-shadow + bounds: [ 50, 50, 200, 200 ] + clip-chain: [2] + color: red + spread-radius: 10 + border-radius: 10 diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-empty.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-empty.yaml new file mode 100644 index 0000000000..d3640d53f5 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-empty.yaml @@ -0,0 +1,13 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 500, 500] + items: + - type: box-shadow + bounds: [ 10, 10, 400, 400 ] + blur-radius: 0 + clip-mode: outset + offset: [0, 0] + spread-radius: 0 + color: [255, 0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-huge-radius.png b/gfx/wr/wrench/reftests/boxshadow/box-shadow-huge-radius.png Binary files differnew file mode 100644 index 0000000000..f2be685139 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-huge-radius.png diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-huge-radius.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-huge-radius.yaml new file mode 100644 index 0000000000..28ac4a62a3 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-huge-radius.yaml @@ -0,0 +1,120 @@ +--- +root: + items: + - + bounds: [0, 0, 0, 0] + "clip-rect": [0, 0, 0, 0] + "backface-visible": true + type: "stacking-context" + "transform-style": flat + "raster-space": screen + filters: [] + items: + - + bounds: [0, 148, 1368, 588] + "clip-rect": [0, 148, 1368, 588] + "backface-visible": true + type: clip + id: 2 + - + bounds: [0, 0, 0, 0] + "clip-rect": [0, 0, 0, 0] + "backface-visible": true + type: "clip-chain" + id: 3 + clips: [2] + - + bounds: [16, 164, 16200, 200] + "clip-rect": [40, 188, 1328, 216] + clip-chain: 3 + "backface-visible": true + type: "box-shadow" + "box-bounds": [16, 164, 16200, 200] + offset: [32, 32] + color: 0 0 255 1.0000 + "blur-radius": 6 + "spread-radius": 0 + "border-radius": + "top-left": [16200, 200] + "top-right": [0, 0] + "bottom-left": [0, 0] + "bottom-right": [0, 0] + "clip-mode": outset + - + "clip-rect": [16, 164, 1352, 200] + "backface-visible": true + type: clip + id: 4 + complex: + - + rect: [16, 164, 16200, 200] + radius: + "top-left": [16200, 200] + "top-right": [0, 0] + "bottom-left": [0, 0] + "bottom-right": [0, 0] + "clip-mode": clip + - + bounds: [0, 0, 0, 0] + "clip-rect": [0, 0, 0, 0] + clip-chain: 3 + "backface-visible": true + type: "clip-chain" + id: 5 + clips: [4] + parent: 3 + - + bounds: [16, 164, 16200, 200] + "clip-rect": [16, 164, 16200, 200] + clip-chain: 5 + "backface-visible": true + type: rect + color: 255 0 255 1.0000 + - + bounds: [16, 402, 200, 200] + "clip-rect": [40, 426, 216, 216] + clip-chain: 3 + "backface-visible": true + type: "box-shadow" + "box-bounds": [16, 402, 200, 200] + offset: [32, 32] + color: 0 255 255 1.0000 + "blur-radius": 6 + "spread-radius": 0 + "border-radius": + "top-left": [0, 0] + "top-right": [200, 200] + "bottom-left": [0, 0] + "bottom-right": [0, 0] + "clip-mode": outset + - + "clip-rect": [16, 402, 200, 200] + "backface-visible": true + type: clip + id: 6 + complex: + - + rect: [16, 402, 200, 200] + radius: + "top-left": [0, 0] + "top-right": [200, 200] + "bottom-left": [0, 0] + "bottom-right": [0, 0] + "clip-mode": clip + - + bounds: [0, 0, 0, 0] + "clip-rect": [0, 0, 0, 0] + "backface-visible": true + type: "clip-chain" + id: 7 + clips: [6] + parent: 3 + - + bounds: [16, 402, 200, 200] + "clip-rect": [16, 402, 200, 200] + clip-chain: 7 + "backface-visible": true + type: rect + color: 0 128 0 1.0000 + id: [0, 0] +pipelines: [] diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-2.png b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-2.png Binary files differnew file mode 100644 index 0000000000..9111ca4413 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-2.png diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-2.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-2.yaml new file mode 100644 index 0000000000..0a82cb5bee --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-2.yaml @@ -0,0 +1,14 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 1500, 200] + items: + - type: box-shadow + bounds: [ 10, 10, 900, 900 ] + blur-radius: 5000 + clip-mode: outset + offset: [10, 10] + spread-radius: 10 + color: [255, 0, 0] + border-radius: 10 diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-3.png b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-3.png Binary files differnew file mode 100644 index 0000000000..2b95442280 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-3.png diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-3.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-3.yaml new file mode 100644 index 0000000000..49d53e721f --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-3.yaml @@ -0,0 +1,14 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 1500, 200] + items: + - type: box-shadow + bounds: [ 10, 10, 1500, 100 ] + blur-radius: 200 + clip-mode: outset + offset: [10, 100] + spread-radius: 10 + color: [255, 0, 0] + border-radius: 10 diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-ref.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-ref.yaml new file mode 100644 index 0000000000..29555c8f1d --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius-ref.yaml @@ -0,0 +1,13 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 500, 500] + items: + - type: box-shadow + bounds: [ 10, 10, 400, 400 ] + blur-radius: 300 + clip-mode: outset + offset: [0, 0] + spread-radius: 0 + color: [255, 0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius.yaml new file mode 100644 index 0000000000..13b2239658 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-large-blur-radius.yaml @@ -0,0 +1,13 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 500, 500] + items: + - type: box-shadow + bounds: [ 10, 10, 400, 400 ] + blur-radius: 2000 + clip-mode: outset + offset: [0, 0] + spread-radius: 0 + color: [255, 0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-non-uniform-corner.png b/gfx/wr/wrench/reftests/boxshadow/box-shadow-non-uniform-corner.png Binary files differnew file mode 100644 index 0000000000..84d7af5164 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-non-uniform-corner.png diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-non-uniform-corner.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-non-uniform-corner.yaml new file mode 100644 index 0000000000..2dd7175d17 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-non-uniform-corner.yaml @@ -0,0 +1,12 @@ +--- +root: + items: + - type: box-shadow + bounds: [ 50, 50, 500, 200 ] + color: red + clip-mode: outset + blur-radius: 0 + spread-radius: 10 + border-radius: { + top-left: 32, + } diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread-radii-ref.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread-radii-ref.yaml new file mode 100644 index 0000000000..e44008fcb5 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread-radii-ref.yaml @@ -0,0 +1,21 @@ +# This emulates the result of box-shadow-spread.yaml without with a spread +# amount of 0 compensated by manually inflating and offsetting the rectangle +# and border radii. +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 0, 0, 280, 280 ] + color: blue + clip-mode: outset + offset: 300 20 + blur-radius: 4 + spread-radius: 0 + border-radius: + top-left: [0, 0] + top-right: [140, 140] + bottom-left: [140, 140] + bottom-right: [0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread-radii.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread-radii.yaml new file mode 100644 index 0000000000..902c7d089b --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread-radii.yaml @@ -0,0 +1,18 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 0, 0, 200, 200 ] + color: blue + clip-mode: outset + offset: 340 60 + blur-radius: 4 + spread-radius: 40 + border-radius: + top-left: [0, 0] + top-right: [100, 100] + bottom-left: [100, 100] + bottom-right: [0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread.png b/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread.png Binary files differnew file mode 100644 index 0000000000..7c1910aba4 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread.png diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread.yaml new file mode 100644 index 0000000000..0add751910 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-spread.yaml @@ -0,0 +1,68 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 20, 20, 80, 80 ] + color: blue + clip-mode: inset + spread-radius: 10 + border-radius: 20 + + - type: box-shadow + bounds: [ 120, 20, 80, 80 ] + color: blue + clip-mode: inset + spread-radius: 10 + border-radius: 25 + + - type: box-shadow + bounds: [ 220, 20, 80, 80 ] + color: blue + clip-mode: inset + spread-radius: 10 + border-radius: 10 + + - type: box-shadow + bounds: [ 320, 20, 80, 80 ] + color: blue + clip-mode: inset + spread-radius: 10 + border-radius: 9 + + - type: box-shadow + bounds: [ 420, 20, 80, 80 ] + color: blue + clip-mode: inset + spread-radius: 10 + border-radius: 8 + + - type: box-shadow + bounds: [ 520, 20, 80, 80 ] + color: blue + clip-mode: inset + spread-radius: 10 + border-radius: 7 + + - type: box-shadow + bounds: [ 620, 20, 80, 80 ] + color: blue + clip-mode: inset + spread-radius: 10 + border-radius: 6 + + - type: box-shadow + bounds: [ 720, 20, 80, 80 ] + color: blue + clip-mode: inset + spread-radius: 10 + border-radius: 5 + + - type: box-shadow + bounds: [ 820, 20, 80, 80 ] + color: blue + clip-mode: inset + spread-radius: 10 + border-radius: 4 diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-x.png b/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-x.png Binary files differnew file mode 100644 index 0000000000..5d631c182b --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-x.png diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-x.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-x.yaml new file mode 100644 index 0000000000..225433e4fe --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-x.yaml @@ -0,0 +1,8 @@ +--- +root: + items: + - type: box-shadow + bounds: [ 50, 50, 100, 800 ] + color: red + blur-radius: 16 + border-radius: 32 diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-y.png b/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-y.png Binary files differnew file mode 100644 index 0000000000..d76f58e170 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-y.png diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-y.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-y.yaml new file mode 100644 index 0000000000..f90366b79f --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-stretch-mode-y.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: box-shadow + bounds: [ 50, 50, 800, 100 ] + color: green + clip-mode: inset + blur-radius: 16 + border-radius: 32 diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-blur.png b/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-blur.png Binary files differnew file mode 100644 index 0000000000..67b46a609e --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-blur.png diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-blur.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-blur.yaml new file mode 100644 index 0000000000..29ab5a2a43 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-blur.yaml @@ -0,0 +1,154 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + # 1st row + - type: box-shadow + bounds: [ 50, 50, 100, 100 ] + color: red + clip-mode: outset + blur-radius: 5 + + - type: box-shadow + bounds: [ 200, 50, 100, 100 ] + color: red + clip-mode: outset + offset: 20 0 + blur-radius: 5 + + - type: box-shadow + bounds: [ 350, 50, 100, 100 ] + color: red + clip-mode: outset + offset: 0 -40 + blur-radius: 5 + + - type: box-shadow + bounds: [ 500, 50, 100, 100 ] + color: red + clip-mode: outset + spread-radius: 30 + blur-radius: 5 + + - type: box-shadow + bounds: [ 650, 50, 100, 100 ] + color: red + clip-mode: outset + spread-radius: 30 + offset: 50 -10 + blur-radius: 5 + + # 2nd row + - type: box-shadow + bounds: [ 50, 250, 100, 100 ] + color: green + border-radius: 32 + blur-radius: 5 + + - type: box-shadow + bounds: [ 200, 250, 100, 100 ] + color: green + offset: 20 0 + border-radius: 32 + blur-radius: 5 + + - type: box-shadow + bounds: [ 350, 250, 100, 100 ] + color: green + offset: 0 -40 + border-radius: 32 + blur-radius: 5 + + - type: box-shadow + bounds: [ 500, 250, 100, 100 ] + color: green + spread-radius: 30 + border-radius: 32 + blur-radius: 5 + + - type: box-shadow + bounds: [ 650, 250, 100, 100 ] + color: green + spread-radius: 30 + offset: 50 -10 + border-radius: 32 + blur-radius: 5 + + # 3rd row + - type: box-shadow + bounds: [ 50, 450, 100, 100 ] + color: red + clip-mode: inset + blur-radius: 5 + + - type: box-shadow + bounds: [ 200, 450, 100, 100 ] + color: red + clip-mode: inset + offset: 20 0 + blur-radius: 5 + + - type: box-shadow + bounds: [ 350, 450, 100, 100 ] + color: red + clip-mode: inset + offset: 0 -40 + blur-radius: 5 + + - type: box-shadow + bounds: [ 500, 450, 100, 100 ] + color: red + clip-mode: inset + spread-radius: 30 + blur-radius: 5 + + - type: box-shadow + bounds: [ 650, 450, 100, 100 ] + color: red + clip-mode: inset + spread-radius: 30 + offset: 50 -10 + blur-radius: 5 + + # 4th row + - type: box-shadow + bounds: [ 50, 650, 100, 100 ] + color: red + clip-mode: inset + border-radius: 32 + blur-radius: 5 + + - type: box-shadow + bounds: [ 200, 650, 100, 100 ] + color: red + clip-mode: inset + offset: 20 0 + border-radius: 32 + blur-radius: 5 + + - type: box-shadow + bounds: [ 350, 650, 100, 100 ] + color: red + clip-mode: inset + offset: 0 -40 + border-radius: 32 + blur-radius: 5 + + - type: box-shadow + bounds: [ 500, 650, 100, 100 ] + color: red + clip-mode: inset + spread-radius: 30 + border-radius: 32 + blur-radius: 5 + + - type: box-shadow + bounds: [ 650, 650, 100, 100 ] + color: red + clip-mode: inset + spread-radius: 30 + offset: 50 -10 + border-radius: 32 + blur-radius: 5 diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-no-blur.png b/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-no-blur.png Binary files differnew file mode 100644 index 0000000000..66e6dd9c38 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-no-blur.png diff --git a/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-no-blur.yaml b/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-no-blur.yaml new file mode 100644 index 0000000000..8544da8ccc --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/box-shadow-suite-no-blur.yaml @@ -0,0 +1,134 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + # 1st row + - type: box-shadow + bounds: [ 50, 50, 100, 100 ] + color: red + clip-mode: outset + + - type: box-shadow + bounds: [ 200, 50, 100, 100 ] + color: red + clip-mode: outset + offset: 20 0 + + - type: box-shadow + bounds: [ 350, 50, 100, 100 ] + color: red + clip-mode: outset + offset: 0 -40 + + - type: box-shadow + bounds: [ 500, 50, 100, 100 ] + color: red + clip-mode: outset + spread-radius: 30 + + - type: box-shadow + bounds: [ 650, 50, 100, 100 ] + color: red + clip-mode: outset + spread-radius: 30 + offset: 50 -10 + + # 2nd row + - type: box-shadow + bounds: [ 50, 250, 100, 100 ] + color: green + border-radius: 32 + + - type: box-shadow + bounds: [ 200, 250, 100, 100 ] + color: green + offset: 20 0 + border-radius: 32 + + - type: box-shadow + bounds: [ 350, 250, 100, 100 ] + color: green + offset: 0 -40 + border-radius: 32 + + - type: box-shadow + bounds: [ 500, 250, 100, 100 ] + color: green + spread-radius: 30 + border-radius: 32 + + - type: box-shadow + bounds: [ 650, 250, 100, 100 ] + color: green + spread-radius: 30 + offset: 50 -10 + border-radius: 32 + + # 3rd row + - type: box-shadow + bounds: [ 50, 450, 100, 100 ] + color: red + clip-mode: inset + + - type: box-shadow + bounds: [ 200, 450, 100, 100 ] + color: red + clip-mode: inset + offset: 20 0 + + - type: box-shadow + bounds: [ 350, 450, 100, 100 ] + color: red + clip-mode: inset + offset: 0 -40 + + - type: box-shadow + bounds: [ 500, 450, 100, 100 ] + color: red + clip-mode: inset + spread-radius: 30 + + - type: box-shadow + bounds: [ 650, 450, 100, 100 ] + color: red + clip-mode: inset + spread-radius: 30 + offset: 50 -10 + + # 4th row + - type: box-shadow + bounds: [ 50, 650, 100, 100 ] + color: red + clip-mode: inset + border-radius: 32 + + - type: box-shadow + bounds: [ 200, 650, 100, 100 ] + color: red + clip-mode: inset + offset: 20 0 + border-radius: 32 + + - type: box-shadow + bounds: [ 350, 650, 100, 100 ] + color: red + clip-mode: inset + offset: 0 -40 + border-radius: 32 + + - type: box-shadow + bounds: [ 500, 650, 100, 100 ] + color: red + clip-mode: inset + spread-radius: 30 + border-radius: 32 + + - type: box-shadow + bounds: [ 650, 650, 100, 100 ] + color: red + clip-mode: inset + spread-radius: 30 + offset: 50 -10 + border-radius: 32 diff --git a/gfx/wr/wrench/reftests/boxshadow/boxshadow-spread-only-ref.png b/gfx/wr/wrench/reftests/boxshadow/boxshadow-spread-only-ref.png Binary files differnew file mode 100644 index 0000000000..314b17f963 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/boxshadow-spread-only-ref.png diff --git a/gfx/wr/wrench/reftests/boxshadow/boxshadow-spread-only.yaml b/gfx/wr/wrench/reftests/boxshadow/boxshadow-spread-only.yaml new file mode 100644 index 0000000000..d8dabde293 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/boxshadow-spread-only.yaml @@ -0,0 +1,13 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 600, 600] + items: + - type: box-shadow + bounds: [ 40, 40, 400, 400 ] + blur-radius: 0 + spread-radius: 20 + clip-mode: outset + border-radius: 200 + color: black diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-alpha.png b/gfx/wr/wrench/reftests/boxshadow/inset-alpha.png Binary files differnew file mode 100644 index 0000000000..bc4c0a1f37 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-alpha.png diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-alpha.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-alpha.yaml new file mode 100644 index 0000000000..7764f0a276 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-alpha.yaml @@ -0,0 +1,14 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 100, 100] + items: + - type: rect + bounds: [ 0, 0, 100, 100 ] + color: [0, 255, 0] + - type: box-shadow + bounds: [ 0, 0, 100, 100 ] + clip-mode: inset + color: [255, 255, 255, 0.1] + blur-radius: 100 diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-border-radius-ref.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-border-radius-ref.yaml new file mode 100644 index 0000000000..62d5dd10c9 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-border-radius-ref.yaml @@ -0,0 +1,16 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 100, 100] + items: + - type: clip + bounds: [0, 0, 100, 100] + complex: + - rect: [ 10, 10, 80, 80 ] + radius: 10 + items: + - type: box-shadow + bounds: [ 10, 10, 80, 80 ] + blur-radius: 25 + clip-mode: inset diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-border-radius.png b/gfx/wr/wrench/reftests/boxshadow/inset-border-radius.png Binary files differnew file mode 100644 index 0000000000..1572de5b77 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-border-radius.png diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-border-radius.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-border-radius.yaml new file mode 100644 index 0000000000..cb5c274f5a --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-border-radius.yaml @@ -0,0 +1,11 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 100, 100] + items: + - type: box-shadow + bounds: [ 10, 10, 80, 80 ] + blur-radius: 25 + clip-mode: inset + border-radius: 10 diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-downscale.png b/gfx/wr/wrench/reftests/boxshadow/inset-downscale.png Binary files differnew file mode 100644 index 0000000000..aef7968600 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-downscale.png diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-downscale.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-downscale.yaml new file mode 100644 index 0000000000..dd0c3abc2d --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-downscale.yaml @@ -0,0 +1,10 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 400, 200] + items: + - type: box-shadow + bounds: [ 10, 10, 400, 200 ] + blur-radius: 50 + clip-mode: inset diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-empty.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-empty.yaml new file mode 100644 index 0000000000..85d2840546 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-empty.yaml @@ -0,0 +1,13 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 500, 500] + items: + - type: box-shadow + bounds: [ 10, 10, 400, 400 ] + blur-radius: 0 + clip-mode: inset + offset: [0, 0] + spread-radius: 0 + color: [255, 0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-large-offset-ref.png b/gfx/wr/wrench/reftests/boxshadow/inset-large-offset-ref.png Binary files differnew file mode 100644 index 0000000000..e1d189eaa0 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-large-offset-ref.png diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-large-offset.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-large-offset.yaml new file mode 100644 index 0000000000..1cc2355d02 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-large-offset.yaml @@ -0,0 +1,13 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 500, 500] + items: + - type: box-shadow + bounds: [ 10, 10, 400, 400 ] + blur-radius: 1 + clip-mode: inset + offset: [0, 200] + spread-radius: 0 + color: [255, 0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-mask-region.png b/gfx/wr/wrench/reftests/boxshadow/inset-mask-region.png Binary files differnew file mode 100644 index 0000000000..b696cbfd41 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-mask-region.png diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-mask-region.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-mask-region.yaml new file mode 100644 index 0000000000..08f52af181 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-mask-region.yaml @@ -0,0 +1,11 @@ +--- +root: + items: + - type: stacking-context + items: + - type: box-shadow + bounds: [ 50, 50, 400.1, 400.1 ] + color: red + blur-radius: 10 + clip-mode: inset + border-radius: 185 diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-neg-offset.png b/gfx/wr/wrench/reftests/boxshadow/inset-neg-offset.png Binary files differnew file mode 100644 index 0000000000..b6b232a1d0 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-neg-offset.png diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-neg-offset.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-neg-offset.yaml new file mode 100644 index 0000000000..9fe63176c0 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-neg-offset.yaml @@ -0,0 +1,18 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 22, 22, 200, 80 ] + color: blue + clip-mode: inset + offset: -2 -2 + blur-radius: 20 + spread-radius: 0 + border-radius: + top-left: [0, 0] + top-right: [0, 0] + bottom-left: [0, 0] + bottom-right: [0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-no-blur-radius-ref.png b/gfx/wr/wrench/reftests/boxshadow/inset-no-blur-radius-ref.png Binary files differnew file mode 100644 index 0000000000..9c6a8d4bcf --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-no-blur-radius-ref.png diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-no-blur-radius.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-no-blur-radius.yaml new file mode 100644 index 0000000000..eb9c783718 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-no-blur-radius.yaml @@ -0,0 +1,13 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 100, 100] + items: + - type: box-shadow + bounds: [ 10, 10, 80, 80 ] + blur-radius: 0 + clip-mode: inset + border-radius: 10 + offset: 10 10 + color: [255, 0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-offset.png b/gfx/wr/wrench/reftests/boxshadow/inset-offset.png Binary files differnew file mode 100644 index 0000000000..d5f41456fe --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-offset.png diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-offset.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-offset.yaml new file mode 100644 index 0000000000..17fa232f3a --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-offset.yaml @@ -0,0 +1,18 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 22, 22, 200, 80 ] + color: blue + clip-mode: inset + offset: 5 5 + blur-radius: 20 + spread-radius: 0 + border-radius: + top-left: [0, 0] + top-right: [0, 0] + bottom-left: [0, 0] + bottom-right: [0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-simple-ref.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-simple-ref.yaml new file mode 100644 index 0000000000..526a1fa4e0 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-simple-ref.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 100, 100] + items: + - type: rect + bounds: [ 10, 10, 80, 80 ] + color: [0, 255, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-simple.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-simple.yaml new file mode 100644 index 0000000000..78f6ef18c1 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-simple.yaml @@ -0,0 +1,13 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 100, 100] + items: + - type: rect + bounds: [ 10, 10, 80, 80 ] + color: [0, 255, 0] + - type: box-shadow + bounds: [ 10, 10, 80, 80 ] + blur-radius: 25 + clip-mode: inset diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-spread-large-ref.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-spread-large-ref.yaml new file mode 100644 index 0000000000..bdeec79e35 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-spread-large-ref.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 100, 100] + items: + - type: rect + bounds: [ 10, 10, 80, 80 ] + color: [255, 0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-spread-large.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-spread-large.yaml new file mode 100644 index 0000000000..05cc5e40f2 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-spread-large.yaml @@ -0,0 +1,12 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 100, 100] + items: + - type: box-shadow + bounds: [ 10, 10, 80, 80 ] + blur-radius: 5 + clip-mode: inset + spread-radius: 200 + color: [255, 0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-spread-ref.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-spread-ref.yaml new file mode 100644 index 0000000000..76802f9db0 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-spread-ref.yaml @@ -0,0 +1,10 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 100, 100] + items: + - type: rect + bounds: [ 10, 10, 80, 80 ] + color: [255, 255, 255] + diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-spread.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-spread.yaml new file mode 100644 index 0000000000..de09797dcf --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-spread.yaml @@ -0,0 +1,12 @@ +--- +root: + items: + - type: stacking-context + bounds: [50, 50, 100, 100] + items: + - type: box-shadow + bounds: [ 10, 10, 80, 80 ] + blur-radius: 5 + clip-mode: inset + spread-radius: 20 + color: [0, 0, 0] diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-subpx.png b/gfx/wr/wrench/reftests/boxshadow/inset-subpx.png Binary files differnew file mode 100644 index 0000000000..89ca1e44b1 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-subpx.png diff --git a/gfx/wr/wrench/reftests/boxshadow/inset-subpx.yaml b/gfx/wr/wrench/reftests/boxshadow/inset-subpx.yaml new file mode 100644 index 0000000000..22dc3f0959 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/inset-subpx.yaml @@ -0,0 +1,12 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 76, 67.5, 59.016666, 39 ] + offset: [30, 9] + blur-radius: 7 + color: blue + clip-mode: inset diff --git a/gfx/wr/wrench/reftests/boxshadow/invalid-ref.yaml b/gfx/wr/wrench/reftests/boxshadow/invalid-ref.yaml new file mode 100644 index 0000000000..4f2245ccaa --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/invalid-ref.yaml @@ -0,0 +1,5 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] diff --git a/gfx/wr/wrench/reftests/boxshadow/invalid.yaml b/gfx/wr/wrench/reftests/boxshadow/invalid.yaml new file mode 100644 index 0000000000..6c1fecb995 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/invalid.yaml @@ -0,0 +1,12 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 100, 100, 200, 10 ] + blur-radius: 10.5 + offset: [15, 15] + spread-radius: -15 + color: red diff --git a/gfx/wr/wrench/reftests/boxshadow/no-stretch.png b/gfx/wr/wrench/reftests/boxshadow/no-stretch.png Binary files differnew file mode 100644 index 0000000000..e916a7d382 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/no-stretch.png diff --git a/gfx/wr/wrench/reftests/boxshadow/no-stretch.yaml b/gfx/wr/wrench/reftests/boxshadow/no-stretch.yaml new file mode 100644 index 0000000000..4276ffa929 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/no-stretch.yaml @@ -0,0 +1,21 @@ +# Test that box-shadows with overlapping corners +# are drawn with simple mode (not stretched). +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 50, 50, 150, 150 ] + color: red + clip-mode: outset + blur-radius: 2.4 + offset: [100, 0] + spread-radius: -40 + border-radius: { + top-left: 112, + top-right: 48, + bottom-left: 48, + bottom-right: 112, + } diff --git a/gfx/wr/wrench/reftests/boxshadow/overlap1.png b/gfx/wr/wrench/reftests/boxshadow/overlap1.png Binary files differnew file mode 100644 index 0000000000..a47c3ad696 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/overlap1.png diff --git a/gfx/wr/wrench/reftests/boxshadow/overlap1.yaml b/gfx/wr/wrench/reftests/boxshadow/overlap1.yaml new file mode 100644 index 0000000000..1744983da6 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/overlap1.yaml @@ -0,0 +1,18 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 50, 10, 200, 80 ] + color: black + clip-mode: outset + offset: 0 150 + blur-radius: 20 + border-radius: + top-left: [100, 40] + top-right: [0, 0] + bottom-left: [100, 40] + bottom-right: [0, 0] + diff --git a/gfx/wr/wrench/reftests/boxshadow/overlap2.png b/gfx/wr/wrench/reftests/boxshadow/overlap2.png Binary files differnew file mode 100644 index 0000000000..6b7b176011 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/overlap2.png diff --git a/gfx/wr/wrench/reftests/boxshadow/overlap2.yaml b/gfx/wr/wrench/reftests/boxshadow/overlap2.yaml new file mode 100644 index 0000000000..59ffb2c438 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/overlap2.yaml @@ -0,0 +1,19 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: box-shadow + bounds: [ 0, 0, 200, 200 ] + color: red + clip-mode: outset + offset: 200 0 + blur-radius: 1 + spread-radius: 0 + border-radius: + top-left: [100, 100] + top-right: [0, 0] + bottom-left: [0, 0] + bottom-right: [150, 150] + diff --git a/gfx/wr/wrench/reftests/boxshadow/reftest.list b/gfx/wr/wrench/reftests/boxshadow/reftest.list new file mode 100644 index 0000000000..279b9fb59a --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/reftest.list @@ -0,0 +1,39 @@ +!= inset-simple.yaml inset-simple-ref.yaml +!= inset-spread.yaml inset-spread-ref.yaml +fuzzy-if(platform(swgl),3,2) == inset-no-blur-radius.yaml inset-no-blur-radius-ref.png +== inset-spread-large.yaml inset-spread-large-ref.yaml +platform(linux,mac) == inset-alpha.yaml inset-alpha.png +platform(linux,mac) == boxshadow-spread-only.yaml boxshadow-spread-only-ref.png +== box-shadow-clip.yaml box-shadow-clip-ref.yaml +fuzzy(1,402) fuzzy-if(platform(swgl),2,1208) fuzzy-if(env(android,device),6,399) == inset-large-offset.yaml inset-large-offset-ref.png +platform(linux,mac) == inset-border-radius.yaml inset-border-radius.png +platform(linux,mac) == inset-offset.yaml inset-offset.png +platform(linux,mac) == inset-neg-offset.yaml inset-neg-offset.png +== box-shadow-empty.yaml blank.yaml +platform(linux,mac) == box-shadow-suite-no-blur.yaml box-shadow-suite-no-blur.png +platform(linux,mac) fuzzy(1,84) == box-shadow-suite-blur.yaml box-shadow-suite-blur.png +fuzzy(1,8) == box-shadow-large-blur-radius.yaml box-shadow-large-blur-radius-ref.yaml +fuzzy(1,6388) == rounding.yaml rounding-ref.yaml +platform(linux,mac) == box-shadow-border-radii.yaml box-shadow-border-radii.png +skip_on(android) fuzzy-if(platform(swgl),9,34) == box-shadow-spread.yaml box-shadow-spread.png # Too wide for Android +== box-shadow-spread-radii.yaml box-shadow-spread-radii-ref.yaml +== invalid.yaml invalid-ref.yaml +== inset-empty.yaml blank.yaml +platform(linux,mac) == inset-subpx.yaml inset-subpx.png +platform(linux,mac) fuzzy(1,4) == inset-downscale.yaml inset-downscale.png +platform(linux,mac) fuzzy(1,979) == box-shadow-cache.yaml box-shadow-cache.png +platform(linux,mac) fuzzy(1,685) == overlap1.yaml overlap1.png +fuzzy(2,757) fuzzy-if(platform(swgl),2,2414) == overlap2.yaml overlap2.png +platform(linux,mac) fuzzy(1,48) == no-stretch.yaml no-stretch.png +platform(linux,mac) fuzzy(1,9) == box-shadow-stretch-mode-x.yaml box-shadow-stretch-mode-x.png +platform(linux,mac) fuzzy(1,41) == box-shadow-stretch-mode-y.yaml box-shadow-stretch-mode-y.png +platform(linux,mac) fuzzy(1,14) == inset-mask-region.yaml inset-mask-region.png +== box-shadow-blurred-overlapping-radii.yaml box-shadow-blurred-overlapping-radii-ref.yaml + +fuzzy(1,5) platform(linux,mac) == box-shadow-huge-radius.yaml box-shadow-huge-radius.png + +platform(linux,mac) == box-shadow-large-blur-radius-2.yaml box-shadow-large-blur-radius-2.png +platform(linux,mac) fuzzy(1,8) == box-shadow-large-blur-radius-3.yaml box-shadow-large-blur-radius-3.png +platform(linux,mac) fuzzy(1,79) == scale.yaml scale.png +platform(linux,mac) fuzzy(1,4) == box-shadow-non-uniform-corner.yaml box-shadow-non-uniform-corner.png +== box-shadow-clipped-corners.yaml box-shadow-clipped-corners-ref.yaml diff --git a/gfx/wr/wrench/reftests/boxshadow/rounding-ref.yaml b/gfx/wr/wrench/reftests/boxshadow/rounding-ref.yaml new file mode 100644 index 0000000000..e6e2fb8464 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/rounding-ref.yaml @@ -0,0 +1,18 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: rect + bounds: [100, 100, 500, 500] + color: green + - type: rect + bounds: [200, 200, 300, 300] + color: black + - type: box-shadow + bounds: [200, 200, 300, 300] + blur-radius: 20 + clip-mode: inset + spread-radius: 100 + color: green diff --git a/gfx/wr/wrench/reftests/boxshadow/rounding.yaml b/gfx/wr/wrench/reftests/boxshadow/rounding.yaml new file mode 100644 index 0000000000..8078b2e1d6 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/rounding.yaml @@ -0,0 +1,15 @@ +--- +root: + items: + - type: stacking-context + bounds: [0, 0, 1000, 1000] + items: + - type: rect + bounds: [100, 100, 500, 500] + color: black + - type: box-shadow + bounds: [100, 100, 500, 500] + blur-radius: 20 + clip-mode: inset + spread-radius: 200 + color: green diff --git a/gfx/wr/wrench/reftests/boxshadow/scale.png b/gfx/wr/wrench/reftests/boxshadow/scale.png Binary files differnew file mode 100644 index 0000000000..58505f2845 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/scale.png diff --git a/gfx/wr/wrench/reftests/boxshadow/scale.yaml b/gfx/wr/wrench/reftests/boxshadow/scale.yaml new file mode 100644 index 0000000000..12263b4eb9 --- /dev/null +++ b/gfx/wr/wrench/reftests/boxshadow/scale.yaml @@ -0,0 +1,183 @@ +# Test that box shadows are drawn with correct symmetry in +# a variety of cases. This test checks for various scale +# factors, in combination with box shadows clipped by the +# screen rect. It also has come large box shadows that check +# the symmetry still works with segmentation enabled. +--- +root: + items: + - type: stacking-context + transform: scale(0.3) + items: + - type: box-shadow + bounds: [ -70, 50, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.4) + items: + - type: box-shadow + bounds: [ -70, 150, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.5) + items: + - type: box-shadow + bounds: [ -70, 250, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.6) + items: + - type: box-shadow + bounds: [ -70, 350, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.7) + items: + - type: box-shadow + bounds: [ -70, 450, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.73) + items: + - type: box-shadow + bounds: [ -70, 550, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.75) + items: + - type: box-shadow + bounds: [ -70, 650, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.77) + items: + - type: box-shadow + bounds: [ -70, 750, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.8) + items: + - type: box-shadow + bounds: [ -70, 850, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + items: + - type: box-shadow + bounds: [ -70, 800, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + + - type: stacking-context + transform: scale(0.3) + items: + - type: box-shadow + bounds: [ 50, 50, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.4) + items: + - type: box-shadow + bounds: [ 50, 150, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.5) + items: + - type: box-shadow + bounds: [ 50, 250, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.6) + items: + - type: box-shadow + bounds: [ 50, 350, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.7) + items: + - type: box-shadow + bounds: [ 50, 450, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.73) + items: + - type: box-shadow + bounds: [ 50, 550, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.75) + items: + - type: box-shadow + bounds: [ 50, 650, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.77) + items: + - type: box-shadow + bounds: [ 50, 750, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + transform: scale(0.8) + items: + - type: box-shadow + bounds: [ 50, 850, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + - type: stacking-context + items: + - type: box-shadow + bounds: [ 50, 800, 100, 100 ] + color: black + blur-radius: 1 + clip-mode: inset + + - type: stacking-context + items: + - type: box-shadow + bounds: [ 200, -100, 600, 200 ] + color: black + blur-radius: 5 + clip-mode: inset + + - type: stacking-context + items: + - type: box-shadow + bounds: [ 200, 200, 600, 200 ] + color: black + blur-radius: 5 + clip-mode: outset |