summaryrefslogtreecommitdiffstats
path: root/layout/reftests/svg/filters/feComposite-1.svg
blob: a1dfacc774edd3aa3356af279156d49574c359ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<svg xmlns="http://www.w3.org/2000/svg">

<filter id="f1" filterUnits="objectBoundingBox" primitiveUnits="objectBoundingBox" 
         x="0" y="0" width="1" height="1">
  <feFlood flood-color="#ff0000" flood-opacity="0.5" result="flood"/>
  <feComposite x="10%" y="10%" width="80%" height="80%" style="color-interpolation-filters:sRGB"
   in="flood" operator="over" in2="SourceGraphic"/>
</filter>
<g filter="url(#f1)">
  <rect x="0" y="0" width="50" height="100" fill="#00ff00"/>
  <rect x="50" y="0" width="50" height="100" fill="#00ff00" opacity="0"/>
</g>

<filter id="f2" filterUnits="objectBoundingBox" primitiveUnits="objectBoundingBox" 
         x="0" y="0" width="1" height="1">
  <feFlood flood-color="#ff0000" result="flood"/>
  <feComposite x="10%" y="10%" width="80%" height="80%" style="color-interpolation-filters:sRGB"
   in="flood" operator="in" in2="SourceGraphic"/>
</filter>
<g filter="url(#f2)">
  <rect x="100" y="0" width="50" height="100" fill="#00ff00"/>
  <rect x="150" y="0" width="50" height="100" fill="#00ff00" opacity="0"/>
</g>

<filter id="f3" filterUnits="objectBoundingBox" primitiveUnits="objectBoundingBox" 
         x="0" y="0" width="1" height="1">
  <feFlood flood-color="#ff0000" result="flood"/>
  <feComposite x="10%" y="10%" width="80%" height="80%" style="color-interpolation-filters:sRGB"
   in="flood" operator="out" in2="SourceGraphic"/>
</filter>
<g filter="url(#f3)">
  <rect x="200" y="0" width="50" height="100" fill="#00ff00"/>
  <rect x="250" y="0" width="50" height="100" fill="#00ff00" opacity="0"/>
</g>

<filter id="f4" filterUnits="objectBoundingBox" primitiveUnits="objectBoundingBox" 
         x="0" y="0" width="1" height="1">
  <feFlood flood-color="#ff0000" flood-opacity="0.5" result="flood"/>
  <feComposite x="10%" y="10%" width="80%" height="80%" style="color-interpolation-filters:sRGB"
   in="flood" operator="atop" in2="SourceGraphic"/>
</filter>
<g filter="url(#f4)">
  <rect x="300" y="0" width="50" height="100" fill="#00ff00"/>
  <rect x="350" y="0" width="50" height="100" fill="#00ff00" opacity="0"/>
</g>

<filter id="f5" filterUnits="objectBoundingBox" primitiveUnits="objectBoundingBox" 
         x="0" y="0" width="1" height="1">
  <feFlood flood-color="#ff0000" result="flood"/>
  <feComposite x="10%" y="10%" width="80%" height="80%" style="color-interpolation-filters:sRGB"
   in="flood" operator="xor" in2="SourceGraphic"/>
</filter>
<g filter="url(#f5)">
  <rect x="400" y="0" width="50" height="100" fill="#00ff00"/>
  <rect x="450" y="0" width="50" height="100" fill="#00ff00" opacity="0"/>
</g>

<filter id="f6" filterUnits="objectBoundingBox" primitiveUnits="objectBoundingBox" 
         x="0" y="0" width="1" height="1">
  <feFlood flood-color="#ff0000" result="flood"/>
  <feComposite x="10%" y="10%" width="80%" height="80%" style="color-interpolation-filters:sRGB"
   in="flood" operator="arithmetic" in2="SourceGraphic"
   k2="1" k3="1"/>
</filter>
<g filter="url(#f6)">
  <rect x="500" y="0" width="50" height="100" fill="#00ff00"/>
  <rect x="550" y="0" width="50" height="100" fill="#00ff00" opacity="0"/>
</g>

<!-- Test the tricky case where the arithmetic operator leads to drawing outside
     the bounding box of the source images -->
<filter id="f7" filterUnits="userSpaceOnUse" primitiveUnits="userSpaceOnUse" 
         x="0" y="100" width="100" height="100">
  <feComposite x="10" y="110" width="80" height="80" style="color-interpolation-filters:sRGB"
   in="SourceGraphic" operator="arithmetic" in2="SourceGraphic"
   k4="1"/>
</filter>
<rect x="0" y="100" width="100" height="100" fill="#000000"/>
<g filter="url(#f7)">
</g>

</svg>