summaryrefslogtreecommitdiff
path: root/rsvg/tests/fixtures/reftests/svg1.1/filters-background-01-f.svg
diff options
context:
space:
mode:
Diffstat (limited to 'rsvg/tests/fixtures/reftests/svg1.1/filters-background-01-f.svg')
-rw-r--r--rsvg/tests/fixtures/reftests/svg1.1/filters-background-01-f.svg159
1 files changed, 159 insertions, 0 deletions
diff --git a/rsvg/tests/fixtures/reftests/svg1.1/filters-background-01-f.svg b/rsvg/tests/fixtures/reftests/svg1.1/filters-background-01-f.svg
new file mode 100644
index 00000000..72510dd5
--- /dev/null
+++ b/rsvg/tests/fixtures/reftests/svg1.1/filters-background-01-f.svg
@@ -0,0 +1,159 @@
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
+ template-version="1.4" reviewer="[reviewer]" author="ED" status="created"
+ version="$Revision: 1.2 $" testname="$RCSfile: filters-background-01-f.svg,v $">
+ <d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/filters.html#AccessingBackgroundImage">
+ <p>
+ Test background image processing.
+ </p>
+ <p>
+ The first subtest enables background image processing and adds an empty ‘g’ element
+ which invokes the ShiftBGAndBlur filter. This filter takes the current accumulated
+ background image (i.e., the entire reference graphic) as input, shifts its offscreen
+ down, blurs it, and then writes the result to the canvas. Note that the offscreen for
+ the filter is initialized to transparent black, which allows the already rendered
+ rectangle, circle and triangle to show through after the filter renders its own
+ result to the canvas.
+ </p>
+ <p>
+ The second subtest enables background image processing and instead invokes the
+ ShiftBGAndBlur filter on the inner ‘g’ element. The accumulated background at the
+ time the filter is applied contains only the rectangle. Because the children
+ of the inner ‘g’ (i.e., the circle and triangle) are not part of the inner ‘g’ element's
+ background and because ShiftBGAndBlur ignores SourceGraphic, the children of the inner ‘g’
+ do not appear in the result.
+ </p>
+ <p>
+ The third subtest enables background image processing and invokes the ShiftBGAndBlur on the
+ ‘polygon’ element that draws the triangle. The accumulated background at the time the filter
+ is applied contains the rectangle plus the circle ignoring the effect of the ‘opacity’
+ property on the inner ‘g’ element. (Note that the blurred circle at the bottom does not
+ let the rectangle show through on its left side. This is due to ignoring the effect of
+ the ‘opacity’ property.) Because the triangle itself is not part of the accumulated background
+ and because ShiftBGAndBlur ignores SourceGraphic, the triangle does not appear in the result.
+ </p>
+ <p>
+ The fourth subtest is the same as the third except that filter ShiftBGAndBlur_WithSourceGraphic is
+ invoked instead of ShiftBGAndBlur. ShiftBGAndBlur_WithSourceGraphic performs the same effect as
+ ShiftBGAndBlur, but then renders the SourceGraphic on top of the shifted, blurred background
+ image. In this case, SourceGraphic is the blue triangle; thus, the result is the same as in
+ the fourth case except that the triangle now appears.
+ </p>
+ </d:testDescription>
+ <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Run the test. No interaction required.
+ </p>
+ </d:operatorScript>
+ <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ The test is passed if:
+ </p>
+ <ul>
+ <li>each blue rectangle has the same shapes twice inside, once without filters applied, once with (blurred)</li>
+ <li>from left to right, the blue rectangles contain the following shapes: [rectangle, circle, triangle], [rectangle], [rectangle, circle], [rectangle, circle, triangle]</li>
+ </ul>
+ </d:passCriteria>
+ </d:SVGTestCase>
+ <title id="test-title">$RCSfile: filters-background-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="ShiftBGAndBlur" filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
+ <desc>
+ This filter discards the SourceGraphic, if any, and just produces
+ a result consisting of the BackgroundImage shifted down 125 units
+ and then blurred.
+ </desc>
+ <feOffset in="BackgroundImage" dx="0" dy="125" />
+ <feGaussianBlur stdDeviation="8" />
+ </filter>
+ <filter id="ShiftBGAndBlur_WithSourceGraphic"
+ filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
+ <desc>
+ This filter takes the BackgroundImage, shifts it down 125 units, blurs it,
+ and then renders the SourceGraphic on top of the shifted/blurred background.
+ </desc>
+ <feOffset in="BackgroundImage" dx="0" dy="125" />
+ <feGaussianBlur stdDeviation="8" result="blur" />
+ <feMerge>
+ <feMergeNode in="blur"/>
+ <feMergeNode in="SourceGraphic"/>
+ </feMerge>
+ </filter>
+ </defs>
+
+ <g transform="scale(0.4) translate(-200 300)">
+ <g enable-background="new" transform="translate(270,0)">
+ <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc>
+ <rect x="25" y="25" width="100" height="100" fill="fuchsia"/>
+ <g opacity=".5">
+ <circle cx="125" cy="75" r="45" fill="#D3FF00"/>
+ <polygon points="160,25 160,125 240,75" fill="#7A16FF"/>
+ </g>
+ <g filter="url(#ShiftBGAndBlur)"/>
+ <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
+ </g>
+
+ <g enable-background="new" transform="translate(540,0)">
+ <desc>The third invokes ShiftBGAndBlur on the inner group.</desc>
+ <rect x="25" y="25" width="100" height="100" fill="fuchsia"/>
+ <g filter="url(#ShiftBGAndBlur)" opacity=".5">
+ <circle cx="125" cy="75" r="45" fill="#D3FF00"/>
+ <polygon points="160,25 160,125 240,75" fill="#7A16FF"/>
+ </g>
+ <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
+ </g>
+
+ <g enable-background="new" transform="translate(810,0)">
+ <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc>
+ <rect x="25" y="25" width="100" height="100" fill="fuchsia"/>
+ <g opacity=".5">
+ <circle cx="125" cy="75" r="45" fill="#D3FF00"/>
+ <polygon points="160,25 160,125 240,75" fill="#7A16FF"
+ filter="url(#ShiftBGAndBlur)"/>
+ </g>
+ <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
+ </g>
+
+ <g enable-background="new" transform="translate(1080,0)">
+ <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc>
+ <rect x="25" y="25" width="100" height="100" fill="fuchsia"/>
+ <g opacity=".5">
+ <circle cx="125" cy="75" r="45" fill="#D3FF00"/>
+ <polygon points="160,25 160,125 240,75" fill="#7A16FF"
+ filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/>
+ </g>
+ <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>