blob: 7db5f223a828f906a90c1fb8367702ab1552d1f5 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
<!--======================================================================-->
<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
<!--= Institute of Technology, Institut National de Recherche en =-->
<!--= Informatique et en Automatique, Keio University). All Rights =-->
<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
<!--======================================================================-->
<!-- ===================================================================== -->
<!-- rendering-orderGr-BE-01.svg -->
<!-- renamed for 1.1 suite to render-groups-01-b.svg -->
<!-- Author : Vincent Hardy, 29-Feb-2000 -->
<!-- further revisions CL -->
<!-- Revised for 1.1 : Phil Armstrong Feb/12/2002 -->
<!--======================================================================-->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" baseProfile="basic" width="100%" height="100%" viewBox="0 0 480 360">
<SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
<OperatorScript version="$Revision: 1.6 $" testname="render-groups-01-b.svg">
<Paragraph>
Verifies implicit rendering order (paragraph 3.3) and grouping mechanism (paragraphs 3.4).
It also validates basic Shape, Image and text rendering.
</Paragraph>
<Paragraph>
This test renders 3 elements: a text string "SVG", then
a shape, then an image. Because of their definition order and coordinates, the image
should be on top of the rectangle and the rectangle on top of the text. The
test validates that groups are conceptually rendered offscreen before being
rendered on the canvas. This is done by grouping the same overlapping objects and
rendering the group at half opacity. The background pattern (vertical stripes) should
show throw all the group elements. However, none of the "SVG" should show through the
rectangle and none of the rectangle should show through the image.
</Paragraph>
<Paragraph>
Prerequisites: the test assumes proper handling of the fill stroke, stroke-width,
opacity, font-size rendering properties. It uses the rect, line, text and image elements, as
well as all the elements required for the test template. To ensure that the text string is
overlapped by the other elements and to avoid a dependency on system fonts, an SVG font is used.
</Paragraph>
<Paragraph>
The rendered image should match the reference image exactly.
</Paragraph>
</OperatorScript>
</SVGTestCase>
<title id="test-title">render-groups-01-b</title>
<desc id="test-desc">This test validates the rendering order of graphic elements and the concept of grouping.</desc>
<!--======================================================================-->
<!--Content of Test Case follows... =====================-->
<!--======================================================================-->
<g id="test-body-content">
<defs>
<font horiz-adv-x="313">
<!-- Converted from Larabie Anglepoise by Batik ttf2svg -->
<font-face font-family="larabie-anglepoise" units-per-em="1000" panose-1="0 0 4 0 0 0 0 0 0 0" ascent="703" descent="-300" alphabetic="0"/>
<missing-glyph horiz-adv-x="500" d="M63 0V700H438V0H63ZM125 63H375V638H125V63Z"/>
<glyph unicode="S" glyph-name="S" horiz-adv-x="385" d="M371 1H29V144H264Q264 151 264 166Q265 180 265 188Q265 212 249 212H132Q83 212 55 247Q29 279 29 329V566H335V422H136V375Q136 360 144 356Q148 355 168 355H279Q327 355 352 309Q371 273 371 221V1Z"/>
<glyph unicode="V" glyph-name="V" horiz-adv-x="351" d="M365 563L183 -33L0 563H101L183 296L270 563H365Z"/>
<glyph unicode="G" glyph-name="G" horiz-adv-x="367" d="M355 1H18V564H355V420H125V144H248V211H156V355H355V1Z"/>
<hkern g1="V" g2="G" k="-40"/>
</font>
</defs>
<!-- ====================================================================== -->
<!-- 3 overlapping elements in a group with opacity -->
<!-- ====================================================================== -->
<g transform="scale(1.8, 1.8)">
<!-- Background pattern -->
<rect x="20" y="10" width="230" height="155" fill="rgb(192, 192, 192)"/>
<line x1="40" y1="10" x2="40" y2="175" stroke="white" stroke-width="15"/>
<line x1="70" y1="10" x2="70" y2="175" stroke="white" stroke-width="15"/>
<line x1="100" y1="10" x2="100" y2="175" stroke="white" stroke-width="15"/>
<line x1="130" y1="10" x2="130" y2="175" stroke="white" stroke-width="15"/>
<line x1="160" y1="10" x2="160" y2="175" stroke="white" stroke-width="15"/>
<line x1="190" y1="10" x2="190" y2="175" stroke="white" stroke-width="15"/>
<line x1="220" y1="10" x2="220" y2="175" stroke="white" stroke-width="15"/>
<line x1="250" y1="10" x2="250" y2="175" stroke="white" stroke-width="15"/>
<rect x="20" y="10" width="230" height="155" fill="none" stroke="black"/>
<!-- The following group, as a whole, should be rendered with a .5 opacity -->
<!-- Conceptually, this means that the object is contains are first -->
<!-- rendered offscreen. Then, the offscreen is painted on the canvas with -->
<!-- half opacity. -->
<g opacity="0.5">
<!-- The following text, rectangle and image are drawn, fully opaque, in -->
<!-- the order they are defined. Therefore, none of the 'A' under the -->
<!-- rectangle should show. Neither should any of the rectangle under -->
<!-- the image. -->
<text font-family="larabie-anglepoise" font-size="120" x="30" y="90">SVG</text>
<rect x="70" y="55" width="130" height="70" fill="rgb(130, 0, 50)"/>
<image x="162" y="75" width="80" height="80" xlink:href="resources/sign.png"/>
</g>
</g>
</g>
<text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.6 $</text>
<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
</svg>