From e091d5df3b9b4722059dc842b0d1d40735fe286a Mon Sep 17 00:00:00 2001 From: Tim Nguyen Date: Wed, 19 Feb 2020 17:30:01 +0000 Subject: [PATCH] Bug 1616106 - Add more tests and reference images for conic-gradient wrench test suite. r=nical Differential Revision: https://phabricator.services.mozilla.com/D63213 [ghsync] From https://hg.mozilla.org/mozilla-central/rev/ca2d1a7a9522088e218dce0127b34a43d250dc51 --- .../conic-angle-wraparound-negative.yaml | 8 +++ .../gradient/conic-angle-wraparound.yaml | 8 +++ wrench/reftests/gradient/conic-angle.png | Bin 0 -> 24700 bytes ...onic-start-angle.yaml => conic-angle.yaml} | 0 wrench/reftests/gradient/conic-center.png | Bin 0 -> 3117 bytes wrench/reftests/gradient/conic-center.yaml | 11 +++++ .../reftests/gradient/conic-color-wheel.png | Bin 0 -> 36018 bytes wrench/reftests/gradient/conic-ref.yaml | 18 +++++++ wrench/reftests/gradient/conic-simple.png | Bin 0 -> 24158 bytes wrench/reftests/gradient/conic.yaml | 11 +++++ .../reftests/gradient/norm-conic-1-ref.yaml | 9 ++++ wrench/reftests/gradient/norm-conic-1.yaml | 9 ++++ .../reftests/gradient/norm-conic-2-ref.yaml | 9 ++++ wrench/reftests/gradient/norm-conic-2.yaml | 9 ++++ .../reftests/gradient/norm-conic-3-ref.yaml | 8 +++ wrench/reftests/gradient/norm-conic-3.yaml | 9 ++++ .../reftests/gradient/norm-conic-4-ref.yaml | 8 +++ wrench/reftests/gradient/norm-conic-4.yaml | 9 ++++ .../gradient/norm-conic-degenerate-ref.yaml | 8 +++ .../gradient/norm-conic-degenerate.yaml | 14 ++++++ .../gradient/premultiplied-conic-2.png | Bin 0 -> 14475 bytes .../gradient/premultiplied-conic-2.yaml | 8 +++ .../reftests/gradient/premultiplied-conic.png | Bin 0 -> 16782 bytes .../gradient/premultiplied-conic.yaml | 8 +++ wrench/reftests/gradient/reftest.list | 23 +++++++++ .../gradient/repeat-border-radius.png | Bin 16414 -> 31964 bytes .../gradient/repeat-border-radius.yaml | 46 ++++++++++++++++++ .../gradient/repeat-conic-negative.yaml | 9 ++++ .../reftests/gradient/repeat-conic-ref.yaml | 27 ++++++++++ wrench/reftests/gradient/repeat-conic.yaml | 9 ++++ .../reftests/gradient/tiling-conic-1-ref.yaml | 27 ++++++++++ wrench/reftests/gradient/tiling-conic-1.yaml | 11 +++++ .../reftests/gradient/tiling-conic-2-ref.yaml | 27 ++++++++++ wrench/reftests/gradient/tiling-conic-2.yaml | 11 +++++ .../reftests/gradient/tiling-conic-3-ref.yaml | 27 ++++++++++ wrench/reftests/gradient/tiling-conic-3.yaml | 11 +++++ 36 files changed, 392 insertions(+) create mode 100644 wrench/reftests/gradient/conic-angle-wraparound-negative.yaml create mode 100644 wrench/reftests/gradient/conic-angle-wraparound.yaml create mode 100644 wrench/reftests/gradient/conic-angle.png rename wrench/reftests/gradient/{conic-start-angle.yaml => conic-angle.yaml} (100%) create mode 100644 wrench/reftests/gradient/conic-center.png create mode 100644 wrench/reftests/gradient/conic-center.yaml create mode 100644 wrench/reftests/gradient/conic-color-wheel.png create mode 100644 wrench/reftests/gradient/conic-ref.yaml create mode 100644 wrench/reftests/gradient/conic-simple.png create mode 100644 wrench/reftests/gradient/conic.yaml create mode 100644 wrench/reftests/gradient/norm-conic-1-ref.yaml create mode 100644 wrench/reftests/gradient/norm-conic-1.yaml create mode 100644 wrench/reftests/gradient/norm-conic-2-ref.yaml create mode 100644 wrench/reftests/gradient/norm-conic-2.yaml create mode 100644 wrench/reftests/gradient/norm-conic-3-ref.yaml create mode 100644 wrench/reftests/gradient/norm-conic-3.yaml create mode 100644 wrench/reftests/gradient/norm-conic-4-ref.yaml create mode 100644 wrench/reftests/gradient/norm-conic-4.yaml create mode 100644 wrench/reftests/gradient/norm-conic-degenerate-ref.yaml create mode 100644 wrench/reftests/gradient/norm-conic-degenerate.yaml create mode 100644 wrench/reftests/gradient/premultiplied-conic-2.png create mode 100644 wrench/reftests/gradient/premultiplied-conic-2.yaml create mode 100644 wrench/reftests/gradient/premultiplied-conic.png create mode 100644 wrench/reftests/gradient/premultiplied-conic.yaml create mode 100644 wrench/reftests/gradient/repeat-conic-negative.yaml create mode 100644 wrench/reftests/gradient/repeat-conic-ref.yaml create mode 100644 wrench/reftests/gradient/repeat-conic.yaml create mode 100644 wrench/reftests/gradient/tiling-conic-1-ref.yaml create mode 100644 wrench/reftests/gradient/tiling-conic-1.yaml create mode 100644 wrench/reftests/gradient/tiling-conic-2-ref.yaml create mode 100644 wrench/reftests/gradient/tiling-conic-2.yaml create mode 100644 wrench/reftests/gradient/tiling-conic-3-ref.yaml create mode 100644 wrench/reftests/gradient/tiling-conic-3.yaml diff --git a/wrench/reftests/gradient/conic-angle-wraparound-negative.yaml b/wrench/reftests/gradient/conic-angle-wraparound-negative.yaml new file mode 100644 index 0000000000..f2053c42b6 --- /dev/null +++ b/wrench/reftests/gradient/conic-angle-wraparound-negative.yaml @@ -0,0 +1,8 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 300 300 + center: 150 150 + angle: -5.497787143782138 + stops: [0.0, red, 1.0, yellow] \ No newline at end of file diff --git a/wrench/reftests/gradient/conic-angle-wraparound.yaml b/wrench/reftests/gradient/conic-angle-wraparound.yaml new file mode 100644 index 0000000000..67a1370eac --- /dev/null +++ b/wrench/reftests/gradient/conic-angle-wraparound.yaml @@ -0,0 +1,8 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 300 300 + center: 150 150 + angle: 7.0685834705770345 + stops: [0.0, red, 1.0, yellow] \ No newline at end of file diff --git a/wrench/reftests/gradient/conic-angle.png b/wrench/reftests/gradient/conic-angle.png new file mode 100644 index 0000000000000000000000000000000000000000..81ec931cecdf97789efffd154f19cfb6885096c6 GIT binary patch literal 24700 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 as`=?+_N#69e-+UBWRb(dl#e%j^M3$n9LG8U literal 0 HcmV?d00001 diff --git a/wrench/reftests/gradient/conic-start-angle.yaml b/wrench/reftests/gradient/conic-angle.yaml similarity index 100% rename from wrench/reftests/gradient/conic-start-angle.yaml rename to wrench/reftests/gradient/conic-angle.yaml diff --git a/wrench/reftests/gradient/conic-center.png b/wrench/reftests/gradient/conic-center.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb0c293981f58e2b8938d855ca7a65b0d7aae52 GIT binary patch literal 3117 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4mO}jWo=(6kYX$ja(7}_cTVOdkR6#B5>XQ2 z>tmIipR1RclAn~SSCLx)RK>txQ(*;U=BAb;Dpcg=|?L9&C18K8MsJ85p>lJY5_^Dj45hbL@*T7jQY4nf$K)>9&Vk zcX(+W)M}fS8{q0zYyaZ&-}mSH?O8YkBoscJZ?N8_#K^?*Ph3Dpo{5nunS~|$%&M3v z42%aq@d_vyxH)V%w&s*8r+|RYeTGqKDhJDtyG|c|)`ZzS-Tg>Zu5j*w^5fH=#z$PQ zjns2#IN<59!Oy5p-Qj^1<|H+hJbC%@Su7>)=y_+)Mt88#^*dV5JQJ7FKET9yFlvK~zru&EhJ;aL=oK~(;u&`EhuP~& R{{uDbJzf1=);T3K0RUY{L|^~_ literal 0 HcmV?d00001 diff --git a/wrench/reftests/gradient/conic-center.yaml b/wrench/reftests/gradient/conic-center.yaml new file mode 100644 index 0000000000..d01ebc9c8e --- /dev/null +++ b/wrench/reftests/gradient/conic-center.yaml @@ -0,0 +1,11 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 200 200 + center: 50 50 + angle: 0.0 + stops: [0.0, red, 0.25, red, + 0.25, green, 0.5, green, + 0.5, blue, 0.75, blue, + 0.75, black, 1.0, black] \ No newline at end of file diff --git a/wrench/reftests/gradient/conic-color-wheel.png b/wrench/reftests/gradient/conic-color-wheel.png new file mode 100644 index 0000000000000000000000000000000000000000..368007c74f6ed33e2124242b7124e83aa496209d GIT binary patch literal 36018 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 H+Fke`0E)c9 literal 0 HcmV?d00001 diff --git a/wrench/reftests/gradient/conic-ref.yaml b/wrench/reftests/gradient/conic-ref.yaml new file mode 100644 index 0000000000..c29484ae9c --- /dev/null +++ b/wrench/reftests/gradient/conic-ref.yaml @@ -0,0 +1,18 @@ +--- +root: + items: + - type: stacking-context + bounds: 50 50 100 100 + items: + - type: rect + bounds: 0 0 100 100 + color: black + - type: rect + bounds: 100 0 100 100 + color: red + - type: rect + bounds: 100 100 100 100 + color: green + - type: rect + bounds: 0 100 100 100 + color: blue diff --git a/wrench/reftests/gradient/conic-simple.png b/wrench/reftests/gradient/conic-simple.png new file mode 100644 index 0000000000000000000000000000000000000000..79d0885c402c3bdda2a28172e2aa2ac2c6101014 GIT binary patch literal 24158 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 Lvl3=}v*mvQB3~1I literal 0 HcmV?d00001 diff --git a/wrench/reftests/gradient/conic.yaml b/wrench/reftests/gradient/conic.yaml new file mode 100644 index 0000000000..ad034d6a9b --- /dev/null +++ b/wrench/reftests/gradient/conic.yaml @@ -0,0 +1,11 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 200 200 + center: 100 100 + angle: 0.0 + stops: [0.0, red, 0.25, red, + 0.25, green, 0.5, green, + 0.5, blue, 0.75, blue, + 0.75, black, 1.0, black] \ No newline at end of file diff --git a/wrench/reftests/gradient/norm-conic-1-ref.yaml b/wrench/reftests/gradient/norm-conic-1-ref.yaml new file mode 100644 index 0000000000..a3bb761463 --- /dev/null +++ b/wrench/reftests/gradient/norm-conic-1-ref.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 200 200 + angle: 0.0 + center: 100 100 + stops: [0.0, green, 0.5, green, + 0.5, blue, 1.0, blue] diff --git a/wrench/reftests/gradient/norm-conic-1.yaml b/wrench/reftests/gradient/norm-conic-1.yaml new file mode 100644 index 0000000000..8bf6b734c2 --- /dev/null +++ b/wrench/reftests/gradient/norm-conic-1.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 200 200 + angle: 0.0 + center: 100 100 + stops: [0.25, green, 0.5, green, + 0.5, blue, 0.75, blue] diff --git a/wrench/reftests/gradient/norm-conic-2-ref.yaml b/wrench/reftests/gradient/norm-conic-2-ref.yaml new file mode 100644 index 0000000000..a3bb761463 --- /dev/null +++ b/wrench/reftests/gradient/norm-conic-2-ref.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 200 200 + angle: 0.0 + center: 100 100 + stops: [0.0, green, 0.5, green, + 0.5, blue, 1.0, blue] diff --git a/wrench/reftests/gradient/norm-conic-2.yaml b/wrench/reftests/gradient/norm-conic-2.yaml new file mode 100644 index 0000000000..ba9b174b51 --- /dev/null +++ b/wrench/reftests/gradient/norm-conic-2.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 200 200 + angle: 0.0 + center: 100 100 + stops: [0.5, green, + 0.5, blue] diff --git a/wrench/reftests/gradient/norm-conic-3-ref.yaml b/wrench/reftests/gradient/norm-conic-3-ref.yaml new file mode 100644 index 0000000000..d5403c498f --- /dev/null +++ b/wrench/reftests/gradient/norm-conic-3-ref.yaml @@ -0,0 +1,8 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 200 200 + angle: 0.0 + center: 100 100 + stops: [0.0, blue, 1.0, blue] diff --git a/wrench/reftests/gradient/norm-conic-3.yaml b/wrench/reftests/gradient/norm-conic-3.yaml new file mode 100644 index 0000000000..962ff4e7aa --- /dev/null +++ b/wrench/reftests/gradient/norm-conic-3.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 200 200 + angle: 0.0 + center: 100 100 + stops: [-0.5, green, + -0.5, blue] diff --git a/wrench/reftests/gradient/norm-conic-4-ref.yaml b/wrench/reftests/gradient/norm-conic-4-ref.yaml new file mode 100644 index 0000000000..6c0b6e508f --- /dev/null +++ b/wrench/reftests/gradient/norm-conic-4-ref.yaml @@ -0,0 +1,8 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 200 200 + angle: 0.0 + center: 100 100 + stops: [0.0, green, 1.0, green] diff --git a/wrench/reftests/gradient/norm-conic-4.yaml b/wrench/reftests/gradient/norm-conic-4.yaml new file mode 100644 index 0000000000..6564d84721 --- /dev/null +++ b/wrench/reftests/gradient/norm-conic-4.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 200 200 + angle: 0.0 + center: 100 100 + stops: [1.5, green, + 1.5, blue] diff --git a/wrench/reftests/gradient/norm-conic-degenerate-ref.yaml b/wrench/reftests/gradient/norm-conic-degenerate-ref.yaml new file mode 100644 index 0000000000..1ba6bd2f9e --- /dev/null +++ b/wrench/reftests/gradient/norm-conic-degenerate-ref.yaml @@ -0,0 +1,8 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 300 300 + angle: 0.0 + center: 150 150 + stops: [0.0, red, 1.0, red] diff --git a/wrench/reftests/gradient/norm-conic-degenerate.yaml b/wrench/reftests/gradient/norm-conic-degenerate.yaml new file mode 100644 index 0000000000..be96200722 --- /dev/null +++ b/wrench/reftests/gradient/norm-conic-degenerate.yaml @@ -0,0 +1,14 @@ +# see: https://www.w3.org/TR/2012/CR-css3-images-20120417/#repeating-gradients +# the spec says that repeating gradients with color stops in the same offset +# must render as a solid rect with color equal to the average color of the +# gradient. Gecko and Blink seem to draw it with color equal to the last stop +# so that is the behavior tested here +--- +root: + items: + - type: conic-gradient + bounds: 50 50 300 300 + angle: 0.0 + center: 150 150 + stops: [0.5, blue, 0.5, red] + repeat: true diff --git a/wrench/reftests/gradient/premultiplied-conic-2.png b/wrench/reftests/gradient/premultiplied-conic-2.png new file mode 100644 index 0000000000000000000000000000000000000000..e58916862169bcf3396e13482e83698968bdfbbc GIT binary patch literal 14475 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 j|Nn>oqYQrIyy>%UN6!bF*0j6^? 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 MiCZ0W*LofQAO3kA6#xJL literal 16414 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 diff --git a/wrench/reftests/gradient/repeat-border-radius.yaml b/wrench/reftests/gradient/repeat-border-radius.yaml index c2c32d6815..b578f80b5d 100644 --- a/wrench/reftests/gradient/repeat-border-radius.yaml +++ b/wrench/reftests/gradient/repeat-border-radius.yaml @@ -89,3 +89,49 @@ root: center: 50 50 radius: 25 25 stops: [0.0, red, 1.0, yellow] + + - type: clip + bounds: [20, 300, 100, 100] + complex: + - rect: [20, 300, 100, 100] + radius: 32 + items: + - type: conic-gradient + bounds: 20 300 100 100 + angle: 0.0 + center: 50 50 + stops: [0.0, red, 1.0, yellow] + repeat: true + + - type: rect + bounds: [130, 290, 120, 120] + color: blue + + - type: clip + bounds: [140, 300, 100, 100] + complex: + - rect: [140, 300, 100, 100] + radius: 32 + items: + - type: conic-gradient + bounds: 140 300 100 100 + angle: 0.0 + center: 50 50 + stops: [0.0, red, 1.0, yellow] + + - type: rect + bounds: [260, 290, 120, 120] + color: black + + - type: clip + bounds: [270, 300, 100, 100] + complex: + - rect: [270, 300, 100, 100] + radius: 32 + items: + - type: conic-gradient + bounds: 270 300 100 100 + angle: 0.0 + center: 50 50 + stops: [0.0, red, 1.0, yellow] + diff --git a/wrench/reftests/gradient/repeat-conic-negative.yaml b/wrench/reftests/gradient/repeat-conic-negative.yaml new file mode 100644 index 0000000000..e1043562da --- /dev/null +++ b/wrench/reftests/gradient/repeat-conic-negative.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 300 300 + angle: -0.62831853 + center: 150 150 + stops: [0.1, red, 0.2, red, 0.2, blue, 0.3, blue] + repeat: true diff --git a/wrench/reftests/gradient/repeat-conic-ref.yaml b/wrench/reftests/gradient/repeat-conic-ref.yaml new file mode 100644 index 0000000000..b98cc378a7 --- /dev/null +++ b/wrench/reftests/gradient/repeat-conic-ref.yaml @@ -0,0 +1,27 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 300 300 + angle: 0.0 + center: 150 150 + stops: [0.0, red, + 0.1, red, + 0.1, blue, + 0.2, blue, + 0.2, red, + 0.3, red, + 0.3, blue, + 0.4, blue, + 0.4, red, + 0.5, red, + 0.5, blue, + 0.6, blue, + 0.6, red, + 0.7, red, + 0.7, blue, + 0.8, blue, + 0.8, red, + 0.9, red, + 0.9, blue, + 1.0, blue] diff --git a/wrench/reftests/gradient/repeat-conic.yaml b/wrench/reftests/gradient/repeat-conic.yaml new file mode 100644 index 0000000000..bbc4202aec --- /dev/null +++ b/wrench/reftests/gradient/repeat-conic.yaml @@ -0,0 +1,9 @@ +--- +root: + items: + - type: conic-gradient + bounds: 50 50 300 300 + angle: 0.0 + center: 150 150 + stops: [0.1, blue, 0.2, blue, 0.2, red, 0.3, red] + repeat: true diff --git a/wrench/reftests/gradient/tiling-conic-1-ref.yaml b/wrench/reftests/gradient/tiling-conic-1-ref.yaml new file mode 100644 index 0000000000..6b93e28fa1 --- /dev/null +++ b/wrench/reftests/gradient/tiling-conic-1-ref.yaml @@ -0,0 +1,27 @@ +--- +root: + items: + # top left + - type: conic-gradient + bounds: 50 50 200 200 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + # top right + - type: conic-gradient + bounds: 350 50 200 200 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + # bottom left + - type: conic-gradient + bounds: 50 350 200 200 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + # bottom right + - type: conic-gradient + bounds: 350 350 200 200 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] diff --git a/wrench/reftests/gradient/tiling-conic-1.yaml b/wrench/reftests/gradient/tiling-conic-1.yaml new file mode 100644 index 0000000000..71ffe80b22 --- /dev/null +++ b/wrench/reftests/gradient/tiling-conic-1.yaml @@ -0,0 +1,11 @@ +--- +root: + items: + # basic - 4 tiles spaced out with no clipping + - type: conic-gradient + bounds: 50 50 500 500 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + tile-size: 200 200 + tile-spacing: 100 100 diff --git a/wrench/reftests/gradient/tiling-conic-2-ref.yaml b/wrench/reftests/gradient/tiling-conic-2-ref.yaml new file mode 100644 index 0000000000..4360aa204c --- /dev/null +++ b/wrench/reftests/gradient/tiling-conic-2-ref.yaml @@ -0,0 +1,27 @@ +--- +root: + items: + # top left + - type: conic-gradient + bounds: 50 50 200 200 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + # top right + - type: conic-gradient + bounds: 350 50 100 200 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + # bottom left + - type: conic-gradient + bounds: 50 350 200 100 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + # bottom right + - type: conic-gradient + bounds: 350 350 100 100 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] diff --git a/wrench/reftests/gradient/tiling-conic-2.yaml b/wrench/reftests/gradient/tiling-conic-2.yaml new file mode 100644 index 0000000000..ba9522a68c --- /dev/null +++ b/wrench/reftests/gradient/tiling-conic-2.yaml @@ -0,0 +1,11 @@ +--- +root: + items: + # slightly clip the last tile + - type: conic-gradient + bounds: 50 50 400 400 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + tile-size: 200 200 + tile-spacing: 100 100 diff --git a/wrench/reftests/gradient/tiling-conic-3-ref.yaml b/wrench/reftests/gradient/tiling-conic-3-ref.yaml new file mode 100644 index 0000000000..d7b9541ef4 --- /dev/null +++ b/wrench/reftests/gradient/tiling-conic-3-ref.yaml @@ -0,0 +1,27 @@ +--- +root: + items: + # top left + - type: conic-gradient + bounds: 50 50 200 200 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + # top right + - type: conic-gradient + bounds: 250 50 200 200 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + # bottom left + - type: conic-gradient + bounds: 50 250 200 100 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + # bottom right + - type: conic-gradient + bounds: 250 250 200 100 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] diff --git a/wrench/reftests/gradient/tiling-conic-3.yaml b/wrench/reftests/gradient/tiling-conic-3.yaml new file mode 100644 index 0000000000..77b28a9e22 --- /dev/null +++ b/wrench/reftests/gradient/tiling-conic-3.yaml @@ -0,0 +1,11 @@ +--- +root: + items: + # no spacing with a clip + - type: conic-gradient + bounds: 50 50 400 300 + angle: 0.0 + center: 100 100 + stops: [0, red, 1, blue] + tile-size: 200 200 + tile-spacing: 0 0