Mon, 11 Apr 2011 10:08:48 +1000
Move CVS repository into Mercurial
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/filters/master/Makefile Mon Apr 11 10:08:48 2011 +1000 1.3 @@ -0,0 +1,13 @@ 1.4 +# Makefile for SVG Filters. 1.5 + 1.6 +TOOLS=../../../../SVG/tools 1.7 + 1.8 +# include $(TOOLS)/common.mk 1.9 + 1.10 +all : svgfilters.idlx SVGFilterReqs.html SVGFilterPrimer.html SVGFilter.html definitions.xml definitions-primer.xml publish-reqs.xml publish-primer.xml publish.xml $(TOOLS)/publish.xsl 1.11 + java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish-reqs.xml $(TOOLS)/publish.xsl 1.12 + java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish-primer.xml $(TOOLS)/publish.xsl 1.13 + java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish.xml $(TOOLS)/publish.xsl 1.14 + 1.15 +svgfilters.idlx : svgfilters.idl 1.16 + java -classpath $(TOOLS)/idlparser/idlparser.jar au.id.mcc.idlparser.IDLToXML svgfilters.idl > svgfilters.idlx
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/filters/master/SVGFilter.html Mon Apr 11 10:08:48 2011 +1000 2.3 @@ -0,0 +1,3774 @@ 2.4 +<?xml version="1.0" encoding="UTF-8"?> 2.5 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd"> 2.6 +<html xmlns="http://www.w3.org/1999/xhtml" 2.7 + xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en"> 2.8 +<head> 2.9 + <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 2.10 + <title>Filter Effects 1.0: Language</title> 2.11 + <link rel="stylesheet" type="text/css" href="style/svg-style.css" /> 2.12 + <link rel="stylesheet" type="text/css" href="style/svg-style-extra.css"/> 2.13 + <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" /> 2.14 +</head> 2.15 + 2.16 +<body> 2.17 + 2.18 +<div class="head"> 2.19 + <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 2.20 + <h1 id="pagetitle">Filter Effects 1.0: Language</h1> 2.21 + <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2> 2.22 + <dl> 2.23 + <dt>This version:</dt> 2.24 + <dd><edit:thisversion/></dd> 2.25 + <dt>Latest version:</dt> 2.26 + <dd><edit:latestversion/></dd> 2.27 + <dt>Previous version:</dt> 2.28 + <dd><edit:previousversion/></dd> 2.29 + <dt>Editors:</dt> 2.30 + <dd><a href="mailto:ed@opera.com">Erik Dahlström</a>, (<a href="http://www.opera.com/">Opera Software ASA</a>)</dd> 2.31 + <dd><a href="mailto:dino@apple.com">Dean Jackson</a> (<a href="http://www.apple.com/">Apple Inc</a>)</dd> 2.32 + <dt>Authors:</dt> 2.33 + <dd>The authors of this specification are the participants of the W3C SVG and CSS Working Groups.</dd> 2.34 + </dl> 2.35 + <edit:copyright/> 2.36 +</div> 2.37 + 2.38 +<hr/> 2.39 + 2.40 +<h2 id="abstract" edit:toc="no">Abstract</h2> 2.41 + 2.42 +<p> 2.43 +SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed. 2.44 +</p> 2.45 +<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO. 2.46 +</p> 2.47 +<p> 2.48 +This document defines the markup used by SVG filters. 2.49 +</p> 2.50 + 2.51 +<h2 id="status" edit:toc="no">Status of This Document</h2> 2.52 + 2.53 +<p><em>This section describes the status of this document at the time of its 2.54 +publication. Other documents may supersede this document. The latest status 2.55 +of this document series is maintained at the W3C. </em> </p> 2.56 + 2.57 +<p>This document is the first public working draft of this specification. 2.58 +There is an accompanying <a href="#SVG12FilterPrimer">Filter Effects 1.0, Part 2.59 +1: Primer</a> that lists the ways SVG filters may be used. </p> 2.60 + 2.61 +<p>This document has been produced by the <a 2.62 +href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of 2.63 +the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a> 2.64 +within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>. 2.65 +</p> 2.66 + 2.67 +<p>We explicitly invite comments on this specification. Please send them to 2.68 +<a href="mailto:public-fx@w3.org">public-fx@w3.org</a> (<a 2.69 +href="http://lists.w3.org/Archives/Public/public-fx/">archives</a>). 2.70 +Acceptance of the archiving policy is requested automatically upon first post to the 2.71 +list. To subscribe to the list send an email to <a href="mailto:public-fx-request@w3.org">public-fx-request@w3.org</a> with 2.72 +the word subscribe in the subject line. </p> 2.73 + 2.74 +<p>The latest information regarding <a 2.75 +href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 2.76 +related to this document is available on the Web. As of this publication, the 2.77 +SVG Working Group are not aware of any royalty-bearing patents they believe 2.78 +to be essential to SVG.</p> 2.79 + 2.80 +<p>Publication of this document does not imply endorsement by the W3C 2.81 +membership. A list of current W3C Recommendations and other technical 2.82 +documents can be found at <a 2.83 +href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may 2.84 +be updated, replaced, or obsoleted by other documents at any time. It is 2.85 +inappropriate to cite a W3C Working Draft as anything other than a <em>work 2.86 +in progress</em>." </p> 2.87 + 2.88 +<h2 id="howto" edit:toc="no">How to read this document and give feedback</h2> 2.89 + 2.90 +<p>This draft of Filter Effects 1.0 is essentially the filter chapter from <a 2.91 +href="#ref-svg11">SVG 1.1</a>. One of the goals is that this specification 2.92 +can be re-used more easily by other specifications that want to have filter 2.93 +effects. Some things that have been changed are: error handling is more 2.94 +similar to SVG Tiny 1.2, the addition of a <a>'feDropShadow'</a> filter primitive and the 2.95 +possibility to filter bitmap data with the DOM. </p> 2.96 + 2.97 +<p>The main purpose of this document is to encourage public feedback. The 2.98 +best way to give feedback is by sending an email to <a 2.99 +href="mailto:public-fx@w3.org">public-fx@w3.org</a>. Please 2.100 +include some kind of keyword that identifies the area of the specification 2.101 +the comment is referring to in the subject line of your message (e.g "Section 2.102 +X.Y - the 'filter' property" or "Filtering primitive handling"). If you have 2.103 +comments on multiple areas of this document, then it is probably best to 2.104 +split those comments into multiple messages. </p> 2.105 + 2.106 +<p>The public are welcome to comment on any aspect in this document, but 2.107 +there are a few areas in which the SVG Working Group are explicitly 2.108 +requesting feedback. These areas are noted in place within this document. 2.109 +There is also a specific area related to the specification that is listed 2.110 +here: </p> 2.111 + 2.112 +<edit:fulltoc/> 2.113 + 2.114 +<h2 id="introduction">Introduction</h2> 2.115 + 2.116 +<p>This chapter describes a declarative filter effects feature set, which 2.117 +when combined with the other web technologies, like SVG or HTML, can describe 2.118 +much of the common artwork on the Web in such a way that client-side 2.119 +generation and alteration can be performed easily. In addition, the ability 2.120 +to apply filter effects to SVG <a>graphics elements</a> and <a>container elements</a> helps to 2.121 +maintain the semantic structure of the document, instead of resorting to 2.122 +images which aside from generally being a fixed resolution tend to obscure 2.123 +the original semantics of the elements they replace. This is especially true 2.124 +for effects applied to text. 2.125 +</p> 2.126 + 2.127 +<p> 2.128 + 2.129 +</p> 2.130 + 2.131 +<p>Note that even though this specification references parts of <a 2.132 +href="#ref-svg11">SVG 1.1</a> it does not require a complete SVG 1.1 2.133 +implementation. <span class="note">Add link to conformance classes here.</span> 2.134 +</p> 2.135 + 2.136 +<p>This document is normative. </p> 2.137 + 2.138 +<p>This document contains explicit conformance criteria that overlap with 2.139 +some RNG definitions in requirements. If there is any conflict between the 2.140 +two, the explicit conformance criteria are the definitive reference. </p> 2.141 + 2.142 +<p>A filter effect consists of a series of graphics operations that are 2.143 +applied to a given <span id="TermSourceGraphic" class="SVG-Term">source graphic</span> to produce a modified graphical 2.144 +result. The result of the filter effect is rendered to the target device 2.145 +instead of the original source graphic. The following illustrates the 2.146 +process:</p> 2.147 + 2.148 +<p><object data="examples/filters00.svg" type="image/svg+xml" height="78" width="400"> 2.149 + <img alt="Image showing source graphic transformed by filter effect" 2.150 + src="examples/filters00.png" width="401" height="78" /> 2.151 +</object></p> 2.152 +<p class="view-as-svg"><a href="examples/filters00.svg">View this example as 2.153 +SVG (SVG-enabled browsers only)</a><br /> 2.154 + </p> 2.155 + 2.156 +<h2 id="FilterDefinitions">Definitions</h2> 2.157 + <p>When used in this specification, terms have the meanings assigned in this section.</p> 2.158 + <dl> 2.159 + <dt id="TermNullFilter"><span 2.160 + class="SVG-TermDefine">null filter</span></dt> 2.161 + <dd> 2.162 + <p> 2.163 + The null filter output is all transparent black pixels. If applied to an element it means 2.164 + that the element (and children if any) becomes invisible. Note that it does not affect event processing. 2.165 + </p> 2.166 + </dd> 2.167 + <dt id="TermTransferFunctionElements"><span 2.168 + class="SVG-TermDefine">transfer function elements</span></dt> 2.169 + <dd> 2.170 + <p> 2.171 + The set of elements, 2.172 + <a>'feFuncR'</a>, <a>'feFuncG'</a>, <a>'feFuncB'</a>, <a>'feFuncA'</a>, that define the transfer function for the <a>'feComponentTransfer'</a> filter primitive. 2.173 + </p> 2.174 + </dd> 2.175 + <dt id="TermClientBoundingRect"><span 2.176 + class="SVG-TermDefine">bounding client rect</span></dt> 2.177 + <dd> 2.178 + <p> 2.179 + The union of all CSS border-boxes for the element if formatted by CSS, as defined by the CSS OM method 2.180 + <a href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect">getBoundingClientRect</a> [<a href="#ref-CSSOM">CSSOM</a>]. 2.181 + </p> 2.182 + </dd> 2.183 + <dt id="TermCSSBoundingBox"><span 2.184 + class="SVG-TermDefine">CSS bounding box</span></dt> 2.185 + <dd> 2.186 + <p> 2.187 + The union of all CSS border-boxes for the element and all it's descendant elements, provided the element is formatted by CSS. [<a href="#ref-CSS21">CSS</a>]. 2.188 + </p> 2.189 + </dd> 2.190 + <dt id="TermCurrentUserCoordinateSystem"><span 2.191 + class="SVG-TermDefine">current user coordinate system</span></dt> 2.192 + <dd> 2.193 + <p> 2.194 + For elements formatted by CSS: the current user coordinate system has its origin at the top-left corner of the 2.195 + <a href="#TermClientBoundingRect">bounding client rect</a> and one unit equals on CSS px. The viewport for resolving percentage values is defined by the width and height of the 2.196 + <a href="#TermClientBoundingRect">bounding client rect</a>. 2.197 + </p> 2.198 + <p> 2.199 + For SVG elements see <a>user coordinate system</a>. 2.200 + </p> 2.201 + </dd> 2.202 + <dt id="TermObjectBoundingBoxUnits"><span 2.203 + class="SVG-TermDefine">object bounding box units</span></dt> 2.204 + <dd> 2.205 + For elements formatted by CSS: the bounding box is defined by <a href="#TermCSSBoundingBox">the CSS bounding box.</a> 2.206 + <p> 2.207 + For SVG elements the bounding box is defined by <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermBoundingBox">the SVG bounding box</a>. 2.208 + </p> 2.209 + <p> 2.210 + For both cases the bounding box defines the coordinate system in which to resolve values, as defined in <a>object bounding box units</a>. 2.211 + </p> 2.212 + </dd> 2.213 + <dt id="TermFilterPrimitiveReference"><span 2.214 + class="SVG-TermDefine"><filter-primitive-reference></span></dt> 2.215 + <dd> 2.216 + <p> 2.217 + A string that identifies a particular filter primitive's output. 2.218 + </p> 2.219 + </dd> 2.220 + <dt id="TermFilterPrimitiveElements"><span 2.221 + class="SVG-TermDefine">filter primitives, filter primitive elements</span></dt> 2.222 + <dd> 2.223 + <p> 2.224 + The set of elements that control the output of a <a>'filter element'</a> element, particularly: 2.225 + <a>'feDistantLight'</a>, 2.226 + <a>'fePointLight'</a>, 2.227 + <a>'feSpotLight'</a>, 2.228 + <a>'feBlend'</a>, 2.229 + <a>'feColorMatrix'</a>, 2.230 + <a>'feComponentTransfer'</a>, 2.231 + <a>'feComposite'</a>, 2.232 + <a>'feConvolveMatrix'</a>, 2.233 + <a>'feDiffuseLighting'</a>, 2.234 + <a>'feDisplacementMap'</a>, 2.235 + <a>'feFlood'</a>, 2.236 + <a>'feGaussianBlur'</a>, 2.237 + <a>'feImage'</a>, 2.238 + <a>'feMerge'</a>, 2.239 + <a>'feMorphology'</a>, 2.240 + <a>'feOffset'</a>, 2.241 + <a>'feSpecularLighting'</a>, 2.242 + <a>'feTile'</a>, 2.243 + <a>'feTurbulence'</a>, 2.244 + <a>'feDropShadow'</a>, 2.245 + <a>'feDiffuseSpecular'</a>, 2.246 + <a>'feUnsharpMask'</a>, 2.247 + <a>'feCustom'</a>. 2.248 + </p> 2.249 + </dd> 2.250 + </dl> 2.251 + <br/> 2.252 + 2.253 +<h2 id="FilterElement">The <span class="element-name">'filter'</span> 2.254 +element</h2> 2.255 + 2.256 +<edit:elementsummary name='filter'/> 2.257 + 2.258 +<edit:with element='filter'> 2.259 + 2.260 +<p>The description of the <a>'filter element'</a> element 2.261 +follows:</p> 2.262 + 2.263 +<div class="adef-list"> 2.264 +<p><em>Attribute definitions:</em></p> 2.265 +<dl> 2.266 + <dt id="FilterElementFilterUnitsAttribute"><span 2.267 + class="adef">filterUnits</span> = "<em>userSpaceOnUse</em> | 2.268 + <em>objectBoundingBox</em>"</dt> 2.269 + <dd>See <a>filter effects region</a>.</dd> 2.270 + <dt id="FilterElementPrimitiveUnitsAttribute"><span 2.271 + class="adef">primitiveUnits</span> = "<em>userSpaceOnUse</em> | 2.272 + <em>objectBoundingBox</em>"</dt> 2.273 + <dd>Specifies the coordinate system for the various length values within 2.274 + the <a>filter primitives</a> and for the attributes that define the <a>filter primitive subregion</a>.<br /> 2.275 + If <span class='attr-value'>primitiveUnits="userSpaceOnUse"</span>, any length values 2.276 + within the filter definitions represent values in the <a href="#TermCurrentUserCoordinateSystem">current user 2.277 + coordinate system</a> in place at the time when the <a>'filter element'</a> 2.278 + element is referenced (i.e., the user coordinate system for the element 2.279 + referencing the <a>'filter element'</a> element via a <a>'filter property'</a> 2.280 + property).<br /> 2.281 + If <span class='attr-value'>primitiveUnits="objectBoundingBox"</span>, then any length 2.282 + values within the filter definitions represent fractions or percentages 2.283 + of the bounding box on the referencing element (see <a href="#TermObjectBoundingBoxUnits">object bounding box 2.284 + units</a>). Note that if only one number was specified in a <a><number-optional-number></a> value 2.285 + this number is expanded out before the <a>'filter/primitiveUnits'</a> computation takes place. 2.286 + <br /> 2.287 + If attribute <a>'filter/primitiveUnits'</a> is not 2.288 + specified, then the effect is as if a value of <span 2.289 + class="attr-value">userSpaceOnUse</span> were specified.<br /> 2.290 + <span class="anim-target">Animatable: yes.</span></dd> 2.291 + 2.292 + <dt id="FilterElementFilterMarginUnitsAttribute"><span 2.293 + class="adef">filterMarginUnits</span> = "<em>userSpaceOnUse</em> | 2.294 + <em>objectBoundingBox</em>"</dt> 2.295 + <dd>See <a>filter effects region</a>.</dd> 2.296 + <dt id="FilterElementPrimitiveMarginUnitsAttribute"><span 2.297 + class="adef">primitiveMarginUnits</span> = "<em>userSpaceOnUse</em> | 2.298 + <em>objectBoundingBox</em>"</dt> 2.299 + <dd>Specifies the coordinate system for the margin attributes within the 2.300 + <a>filter primitives</a> which is used for determining the <a>filter primitive subregion</a>.<br /> 2.301 + If <span class='attr-value'>primitiveMarginUnits="userSpaceOnUse"</span>, any margin 2.302 + attribute values within the filter definitions represent values in the 2.303 + current user coordinate system in place at the time when the <a>'filter element'</a> 2.304 + element is referenced (i.e., the <a>user coordinate system</a> for the element 2.305 + referencing the <a>'filter element'</a> element via a <a>'filter property'</a> 2.306 + property).<br /> 2.307 + If <span class='attr-value'>primitiveMarginUnits="objectBoundingBox"</span>, then any 2.308 + margin attribute values within the filter definitions represent 2.309 + fractions or percentages of the bounding box on the referencing element 2.310 + (see <a>object bounding box units</a>).<br /> 2.311 + 2.312 + <span class="requirement" id="assert_LacunaValuePrimitiveMarginsUnits">The <a>lacuna value</a> for <a>'filter/primitiveMarginUnits'</a> is <span 2.313 + class="attr-value">userSpaceOnUse</span></span>.<br /> 2.314 + <span class="anim-target">Animatable: yes.</span></dd> 2.315 + 2.316 + <dt id="FilterElementXAttribute"> 2.317 + <span class="adef">x</span> = "<em><a><coordinate></a></em>"</dt> 2.318 + <dd>See <a>filter effects region</a>.</dd> 2.319 + <dt id="FilterElementYAttribute"> 2.320 + <span class="adef">y</span> = "<em><a><coordinate></a></em>"</dt> 2.321 + <dd>See <a>filter effects region</a>.</dd> 2.322 + <dt id="FilterElementWidthAttribute"><span class="adef">width</span> = 2.323 + "<em><a><length></a></em>"</dt> 2.324 + <dd>See <a>filter effects region</a>.</dd> 2.325 + <dt id="FilterElementHeightAttribute"><span class="adef">height</span> = 2.326 + "<em><a><length></a></em>"</dt> 2.327 + <dd>See <a>filter effects region</a>.</dd> 2.328 + 2.329 + <dt id="FilterPrimitiveMxAttribute"> 2.330 + <span class="adef">mx</span> = "<em><a><coordinate></a></em>"</dt> 2.331 + <dd>The margin delta for the x coordinate of the subregion which 2.332 + restricts calculation and rendering of the given filter primitive. If 2.333 + this attribute is not specified, the effect is as if a value of <span 2.334 + class="attr-value">0</span> were specified. See <a 2.335 + href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br /> 2.336 + <span class="anim-target">Animatable: yes.</span></dd> 2.337 + <dt id="FilterPrimitiveMyAttribute"> 2.338 + <span class="adef">my</span> = "<em><a><coordinate></a></em>"</dt> 2.339 + <dd>The margin delta for the y coordinate of the subregion which 2.340 + restricts calculation and rendering of the given filter primitive. If 2.341 + this attribute is not specified, the effect is as if a value of <span 2.342 + class="attr-value">0</span> were specified. See <a 2.343 + href="#FilterPrimitiveSubRegion">filter primitive subregion</a>. <br /> 2.344 + <span class="anim-target">Animatable: yes.</span></dd> 2.345 + <dt id="FilterPrimitiveMwAttribute"> 2.346 + <span class="adef">mw</span> = "<em><a><length></a></em>"</dt> 2.347 + <dd>The margin delta for the width of the subregion which restricts 2.348 + calculation and rendering of the given filter primitive. If this 2.349 + attribute is not specified, the effect is as if a value of <span 2.350 + class="attr-value">0</span> were specified. See <a 2.351 + href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br /> 2.352 + <span class="anim-target">Animatable: yes.</span></dd> 2.353 + <dt id="FilterPrimitiveMhAttribute"> 2.354 + <span class="adef">mh</span> = "<em><a><length></a></em>"</dt> 2.355 + <dd>The margin delta for the height of the subregion which restricts 2.356 + calculation and rendering of the given filter primitive. If this 2.357 + attribute is not specified, the effect is as if a value of <span 2.358 + class="attr-value">0</span> were specified. See <a 2.359 + href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br /> 2.360 + <span class="anim-target">Animatable: yes.</span></dd> 2.361 + 2.362 +<dt id="FilterElementFilterResAttribute"><span 2.363 + class="adef">filterRes</span> = "<em><a><number-optional-number></a></em>" 2.364 + </dt> 2.365 + <dd>See <a>filter effects region</a>.</dd> 2.366 + <dt id="FilterElementHrefAttribute"><span class="adef">xlink:href</span> 2.367 + = "<span class="attr-value"><IRI></span>"</dt> 2.368 + <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 2.369 + to another <a>'filter element'</a> element within 2.370 + the current <a>SVG document fragment</a>. Any attributes which are defined on 2.371 + the referenced <a>'filter element'</a> element which 2.372 + are not defined on this element are inherited by this element. If this 2.373 + element has no defined filter nodes, and the referenced element has 2.374 + defined filter nodes (possibly due to its own <span 2.375 + class="attr-name">href</span> attribute), then this element inherits 2.376 + the filter nodes defined from the referenced <a>'filter element'</a> element. Inheritance can be 2.377 + indirect to an arbitrary level; thus, if the referenced <a>'filter element'</a> element inherits attributes or its 2.378 + filter node specification due to its own <span 2.379 + class="attr-name">href</span> attribute, then the current element can 2.380 + inherit those attributes or filter node specifications. 2.381 + 2.382 + <div class="note"> 2.383 + This attribute is deprecated and should not be used, it's included for 2.384 + backwards compatibility reasons only.</div> 2.385 + <br /> 2.386 + <span class="anim-target">Animatable: yes.</span></dd> 2.387 +</dl> 2.388 +</div> 2.389 + 2.390 +<p>Properties inherit into the <a>'filter element'</a> 2.391 +element from its ancestors; properties do <em>not</em> inherit from the 2.392 +element referencing the <a>'filter element'</a> 2.393 +element.</p> 2.394 + 2.395 +<p><a>'filter element'</a> elements are never rendered 2.396 +directly; their only usage is as something that can be referenced using the 2.397 +<a>'filter property'</a> 2.398 +property. The <a>'display'</a> property does not 2.399 +apply to the <a>'filter element'</a> element; thus, <a>'filter element'</a> elements are not directly rendered even 2.400 +if the <a>'display'</a> property is set to a value 2.401 +other than <span class="prop-value">none</span>, and <a>'filter element'</a> elements are available for referencing 2.402 +even when the <a>'display'</a> property on the <a>'filter element'</a> element or any of its ancestors is set 2.403 +to <span class="prop-value">none</span>.</p> 2.404 +<br /> 2.405 + 2.406 +<h2 id="FilterProperty">The <span class="prop-name">'filter'</span> 2.407 +property</h2> 2.408 + 2.409 +<p>The description of the <span class="prop-name">'filter'</span> property is 2.410 +as follows:</p> 2.411 + 2.412 +<div class="propdef"> 2.413 +<dl> 2.414 + <dt id='propdef-filter'><span class='propdef-title prop-name'>'filter'</span></dt> 2.415 + <dd> 2.416 + <table summary="filter property" class="propinfo" cellspacing="0" 2.417 + cellpadding="0"> 2.418 + <tbody> 2.419 + <tr valign="baseline"> 2.420 + <td><em>Value:</em>  </td> 2.421 + <td><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI"><FuncIRI></a> | none | <a class="noxref" 2.422 + href="http://www.w3.org/TR/REC-CSS2/cascade.html#value-def-inherit"><span 2.423 + class="value-inst-inherit noxref">inherit</span></a></td> 2.424 + </tr> 2.425 + <tr valign="baseline"> 2.426 + <td><em>Initial:</em>  </td> 2.427 + <td>none</td> 2.428 + </tr> 2.429 + <tr valign="baseline"> 2.430 + <td><em>Applies to:</em>  </td> 2.431 + <td>All elements 2.432 +<!-- For svg: container elements 2.433 + and graphics elements--> 2.434 + .</td> 2.435 + </tr> 2.436 + <tr valign="baseline"> 2.437 + <td><em>Inherited:</em>  </td> 2.438 + <td>no</td> 2.439 + </tr> 2.440 + <tr valign="baseline"> 2.441 + <td><em>Percentages:</em>  </td> 2.442 + <td>N/A</td> 2.443 + </tr> 2.444 + <tr valign="baseline"> 2.445 + <td><em>Media:</em>  </td> 2.446 + <td>visual</td> 2.447 + </tr> 2.448 + <tr valign="baseline"> 2.449 + <td><em>Animatable:</em>  </td> 2.450 + <td>yes</td> 2.451 + </tr> 2.452 + </tbody> 2.453 + </table> 2.454 + </dd> 2.455 +</dl> 2.456 +</div> 2.457 + 2.458 +<dl> 2.459 + <dt><span class="prop-value"><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI"><FuncIRI></a></span></dt> 2.460 + <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 2.461 + to a <a>'filter element'</a> element which defines the 2.462 + filter effects that shall be applied to this element. 2.463 + </dd> 2.464 + <dt><span class="prop-value">none</span></dt> 2.465 + <dd>Do not apply any filter effects to this element.</dd> 2.466 +</dl> 2.467 + 2.468 +<p>If a <a>'filter property'</a> property references a non-existent object or the referenced 2.469 +object is not a <a>'filter element'</a> element, then the <a>null filter</a> will be applied instead. 2.470 +</p> 2.471 + 2.472 +<h3>How the 'filter' property applies to content formatted by CSS (e.g HTML)</h3> 2.473 +<p> 2.474 +The application of the <a>'filter property'</a> property to an element formatted by CSS establishes a pseudo-stacking-context the same way 2.475 +that CSS <a href="http://www.w3.org/TR/css3-color/#transparency">'opacity'</a> does, 2.476 +and all the element's boxes are rendered together as a group with the filter effect applied to the group as a whole. 2.477 +</p> 2.478 +<p> 2.479 +The <a>'filter property'</a> property has no effect on the geometry of the target element's CSS boxes, even though <a>'filter property'</a> can cause painting outside of an element's border-box. 2.480 +</p> 2.481 +<p> 2.482 +The compositing model follows the <a href="http://www.w3.org/TR/SVG11/render.html#Introduction">SVG compositing model</a>: 2.483 +first any filter effect is applied, then any clipping, masking and/or group opacity. 2.484 +These effects all apply after any other CSS effects such as 'clip'. As per SVG, the application of <a>'filter property'</a> has no effect on mouse event hit-testing. 2.485 +</p> 2.486 + 2.487 +<br /> 2.488 + 2.489 + 2.490 +<h2 id="FilterEffectsRegion">Filter effects region</h2> 2.491 + 2.492 +<p>A <a>'filter element'</a> 2.493 +element can define a region on the canvas to which a given filter effect 2.494 +applies and can provide a resolution for any intermediate continuous tone 2.495 +images used to process any raster-based <a>filter primitives</a>. 2.496 + 2.497 +<h3 id="filter-margins">Filter Region extensions</h3> 2.498 + 2.499 +<p>In <a href="#ref-svg11">SVG 1.1</a>, a <span class="element">filter</span> 2.500 +defines the area upon which it applies. This makes it difficult to develop a 2.501 +generic filter that can be applied to arbitrary graphics, since the filter 2.502 +must define a large enough area to cover any graphical object to which it is 2.503 +applied. An example of this is a generic "drop shadow" filter, which is 2.504 +commonly specified as a combination of a Gaussian blur <a>'feGaussianBlur'</a>) that is offset <a>'feOffset'</a>) and then composed <a>'feComposite'</a>) with the original source graphic. 2.505 +Since the shadow has to extend beyond the original graphic's boundaries, the 2.506 +filter must be defined to have a larger area than the original graphic. 2.507 +Overestimating this margin has a negative effect on performance, since the 2.508 +complex filter operation has to touch a larger amount of user space (ie. 2.509 +pixels). </p> 2.510 + 2.511 +<p>In order to solve this problem this spec allows additional control over 2.512 +the filter region. The outer filter region is expressed by delta to the 2.513 +<a>'x'</a>, 2.514 +<a>'y'</a>, 2.515 +<a>'width'</a>, 2.516 +<a>'height'</a> 2.517 + of the input filter region. </p> 2.518 + 2.519 +<p>In particular, the <a>'filter/filterMarginUnits'</a>, <a>'filter/primitiveMarginUnits'</a>, 2.520 +<a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and <a>'mh'</a> are 2.521 +added to the <a>'filter element'</a> element. The <a>'filter/filterMarginUnits'</a> specifies the coordinate space of 2.522 +the margin attributes, which are used to increase or decrease the <a>'filter element'</a> element's 2.523 +<a>'x'</a>, 2.524 +<a>'y'</a>, 2.525 +<a>'width'</a> and 2.526 +<a>'height'</a> 2.527 +attributes (once they have been calculated). The <a>'filter/primitiveMarginUnits'</a> specifies the units for the 2.528 +new margin attributes on the <a>filter primitives</a>, also named 2.529 +<a>'mx'</a>, 2.530 +<a>'my'</a>, 2.531 +<a>'mw'</a>, 2.532 +<a>'mh'</a>. 2.533 +These margins attribute override those set on the parent <a>'filter element'</a> element. 2.534 +Note that this doesn't mean that a <a>'filter primitive'</a> can expand the filter region itself, just that the 2.535 +coordinate system used for filter primitive's margin attributes can be 2.536 +different than the one used for the margin attributes on the 2.537 +<a>'filter element'</a> element. </p> 2.538 + 2.539 +<p>An example of the new attributes, which defines a generic drop shadow 2.540 +filter: </p> 2.541 +<pre class="examplesource"> <filter id="dropShadow" x="0" y="0" width="1" height="1" 2.542 + filterMarginUnits="userSpaceOnUse" 2.543 + mx="0" my="0" mw="5" mh="5" > 2.544 + <feGaussianBlur stdDeviation="2" in="SourceAlpha" /> 2.545 + <feOffset dx="2" /> 2.546 + <feMerge> 2.547 + <feMergeNode /> 2.548 + <feMergeNode in="SourceGraphic" /> 2.549 + </feMerge> 2.550 + </filter> </pre> 2.551 + 2.552 +<p>In the above example, the filter region by default covers the entire 2.553 +bounds of the object (which is not enough to show the shadow). Adding the new 2.554 +margins extends the width and height by 5 user units each, which is always 2.555 +enough to display the blur (which has a standard deviation of 2 user units) 2.556 +and offset (which is another 2 units). </p> 2.557 + 2.558 +The <a>'filter element'</a> 2.559 +element has the following attributes which work together to define the filter 2.560 +effects region:</p> 2.561 + 2.562 + <dl class='definitions unemphasized-names'> 2.563 + <dt id="FilterUnitsAttribute"><a>'filterUnits'</a></dt> 2.564 + <dd> 2.565 + <p>Defines the coordinate system for attributes <a>'x'</a>, <a>'y'</a>, 2.566 + <a>'width'</a>, <a>'height'</a>.</p> 2.567 + 2.568 + <p>If <span class="attr-value">filterUnits="userSpaceOnUse"</span>, <a>'x'</a>, <a>'y'</a>, 2.569 + <a>'width'</a>, <a>'height'</a> represent values in the current user coordinate 2.570 + system in place at the time when the <a>'filter element'</a> element is referenced (i.e., the 2.571 + user coordinate system for the element referencing the <a>'filter element'</a> 2.572 + element via a <a>'filter property'</a> property).</p> 2.573 + 2.574 + <p>If <span class="attr-value">filterUnits="objectBoundingBox"</span>, then <a>'x'</a>, <a>'y'</a>, 2.575 + <a>'width'</a>, <a>'height'</a> represent fractions or percentages of the 2.576 + bounding box on the referencing element (see <a>object bounding box units</a>).</p> 2.577 + 2.578 + <p>The <a>lacuna value</a> for <a>'filterUnits'</a> is <span 2.579 + class="attr-value">objectBoundingBox</span>.</p> 2.580 + 2.581 + <p><span class="anim-target">Animatable: yes.</span></p> 2.582 + </dd> 2.583 + <dt id="FilterRegionXYWidthHeightAttributes"><a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a></dt> 2.584 + <dd> 2.585 + <p>These attributes define a rectangular region on the canvas to which this filter applies.</p> 2.586 + <p>The amount of memory and processing time required to apply the filter are 2.587 + related to the size of this rectangle and the <a>'filterRes'</a> attribute of the filter.</p> 2.588 + <p>The coordinate system for these attributes depends on the value for attribute <a>'filterUnits'</a>.</p> 2.589 + <p>The bounds of this rectangle act as a hard clipping region for each <a>filter primitive</a> 2.590 + included with a given <a>'filter element'</a> element; thus, if the effect of 2.591 + a given filter primitive would extend beyond the bounds of the rectangle 2.592 + (this sometimes happens when using a <a>'feGaussianBlur'</a> filter primitive with a 2.593 + very large <a>'feGaussianBlur/stdDeviation'</a>), parts of the effect will get clipped.</p> 2.594 + 2.595 + <p>The <a>lacuna value</a> for <a>'x'</a> and <a>'y'</a> is <span class="attr-value">-10%</span>.</p> 2.596 + <p>The <a>lacuna value</a> for <a>'width'</a> and <a>'height'</a> is <span class="attr-value">120%</span>.</p> 2.597 + <p>Negative or zero values for <a>'width'</a> or <a>'height'</a> disable rendering of the element which 2.598 + referenced the filter. </p> 2.599 + 2.600 + <p><span class="anim-target">Animatable: yes.</span></p> 2.601 + </dd> 2.602 + <dt id="FilterMarginAttribute"><a>'filterMarginUnits'</a></dt> 2.603 + <dd> 2.604 + <p>Defines the coordinate system for attributes <a>'mx'</a>, <a>'my'</a>, 2.605 + <a>'mw'</a>, <a>'mh'</a>.</p> 2.606 + <p>If <span class="attr-value">filterMarginUnits="userSpaceOnUse"</span>, <a>'mx'</a>, <a>'my'</a>, 2.607 + <a>'mw'</a>, <a>'mh'</a> represent values in the current <a>user coordinate system</a> 2.608 + in place at the time when the <a>'filter element'</a> element is referenced (i.e., the 2.609 + <a>user coordinate system</a> for the element referencing the <a>'filter element'</a> 2.610 + element via a <a>'filter property'</a> property).</p> 2.611 + <p>If <span class="attr-value">filterMarginUnits="objectBoundingBox"</span>, then <a>'mx'</a>, <a>'my'</a>, 2.612 + <a>'mw'</a>, <a>'mh'</a> represent fractions or percentages of the <a>'bounding box'</a> 2.613 + on the referencing element (see <a>object bounding box units</a>).</p> 2.614 + <p>The <a>lacuna value</a> for <a>'filterMarginUnits'</a> is 2.615 + <span class="attr-value">userSpaceOnUse</span>.</p> 2.616 + <p><span class="anim-target">Animatable: yes.</span></p> 2.617 + </dd> 2.618 + <dt id="FilterRegionMyAttribute"><a>'mx'</a>, <a>'my'</a>, <a>'mw'</a>, <a>'mh'</a></dt> 2.619 + <dd> 2.620 + <p>Defines the deltas to the <a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a> of the filter region.</p> 2.621 + 2.622 + <p>After the <a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a> have been calculated for the 2.623 + <a>filter region</a> the <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a>, <a>'mh'</a> are calculated and added 2.624 + to the <a>filter region</a>. <span class="requirement" id="assert_OORFilterRegion">If the resulting 2.625 + <a>filter region</a> has a negative or zero width or height, the rendering of the element which 2.626 + referenced the filter is disabled.</span></p> 2.627 + 2.628 + <p>The coordinate system for these attributes depends on the value for 2.629 + attribute <a>'filterMarginUnits'</a>.</p> 2.630 + 2.631 + <p>The <a>lacuna value</a> for <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and <a>'mh'</a> is <span class="attr-value">0</span>.</p> 2.632 + <p><span class="anim-target">Animatable: yes.</span></p> 2.633 + </dd> 2.634 + 2.635 + <dt id="FilterRegionFilterRes"><a>'filterRes'</a></dt> 2.636 + <dd> 2.637 + <p>Defines the width and height of the intermediate 2.638 + images in pixels. If not provided, then a reasonable default resolution 2.639 + appropriate for the target device will be used. (For displays, an 2.640 + appropriate display resolution, preferably the current display's pixel 2.641 + resolution, is the default. For printing, an appropriate common printer 2.642 + resolution, such as 1200dpi, is the default.)</p> 2.643 + <p>Care should be taken when assigning a non-default value to this 2.644 + attribute. Too small of a value may result in unwanted pixelation in the 2.645 + result. Too large of a value may result in slow processing and large 2.646 + memory usage.</p> 2.647 + <p><span class="requirement" id="assert_OORFilterRegion">Negative or zero values disable rendering of the element which referenced the filter.</span></p> 2.648 + <p><span class="anim-target">Animatable: yes.</span></p> 2.649 + </dd> 2.650 +</dl> 2.651 + 2.652 +<p>Note that both of the two possible value for <a>'filterUnits'</a> (i.e., <span 2.653 +class="attr-value">objectBoundingBox</span> and <span 2.654 +class="attr-value">userSpaceOnUse</span>) result in a <a>filter region</a> whose 2.655 +coordinate system has its X-axis and Y-axis each parallel to the X-axis and 2.656 +Y-axis, respectively, of the <a>user coordinate system</a> for the element to which 2.657 +the filter will be applied.</p> 2.658 + 2.659 +<p class="note implementation">Sometimes implementers can achieve faster performance when the filter 2.660 +region can be mapped directly to device pixels; thus, for best performance on 2.661 +display devices, it is suggested that authors define their region such that 2.662 +the user agent can align the filter region pixel-for-pixel with the 2.663 +background. In particular, for best filter effects performance, avoid 2.664 +rotating or skewing the user coordinate system. Explicit values for attribute 2.665 +<a>'filterRes'</a> can either help or harm performance. 2.666 +If <a>'filterRes'</a> is smaller than the automatic 2.667 +(i.e., default) filter resolution, then filter effect might have faster 2.668 +performance (usually at the expense of quality). If <a>'filterRes'</a> is larger than the automatic (i.e., 2.669 +default) filter resolution, then filter effects performance will usually be 2.670 +slower.</p> 2.671 + 2.672 +<p class="note authoring">It is often necessary to provide padding space because the filter effect 2.673 +might impact bits slightly outside the tight-fitting <a>'bounding box'</a> on a given 2.674 +object. For these purposes, it is possible to provide negative percentage 2.675 +values for <a>'x'</a>, <a>'y'</a> and percentages values greater than <span class="attr-value">100%</span> for 2.676 +<a>'width'</a>, <a>'height'</a>. This, for example, is why the defaults for 2.677 +the filter effects region are <span class="attr-value">x="-10%" y="-10%" width="120%" 2.678 +height="120%"</span>.</p> 2.679 + 2.680 +<h2 id="AccessBackgroundImage">Accessing the background image</h2> 2.681 + 2.682 +<p id="AccessingBackgroundImage">Two possible pseudo input images for filter effects are <a>BackgroundImage</a> and <a>BackgroundAlpha</a>, which each represent an image 2.683 +snapshot of the canvas under the filter region at the time that the <a 2.684 +href="#FilterElement"><span class="element-name">'filter'</span></a> element 2.685 +is invoked. <a>BackgroundImage</a> represents both 2.686 +the color values and alpha channel of the canvas (i.e., RGBA pixel values), 2.687 +whereas <a>BackgroundAlpha</a> represents only the 2.688 +alpha channel.</p> 2.689 + 2.690 +<p>Implementations <!--of SVG user agents often--> 2.691 +will often need to maintain supplemental background image buffers in order to 2.692 +support the <a>BackgroundImage</a> and <a>BackgroundAlpha</a> pseudo input images. Sometimes, 2.693 +the background image buffers will contain an in-memory copy of the 2.694 +accumulated painting operations on the current canvas.</p> 2.695 + 2.696 +<p>Because in-memory image buffers can take up significant system resources, <!--SVG--> 2.697 +content must explicitly indicate to the <!--SVG--> 2.698 +user agent that the document needs access to the background image before <a>BackgroundImage</a> and <a>BackgroundAlpha</a> pseudo input images can be used. 2.699 +</p> 2.700 + 2.701 +A background image is what's been <i>rendered before</i> the current element. 2.702 +<edit:hostreq>The host language is responsible for defining what <i>rendered before</i> in 2.703 +this context means 2.704 +.</edit:hostreq> For SVG, that uses the painter's algorithm, <i>rendered before</i> means 2.705 +all of the prior elements in pre order traversal previous to the element to 2.706 +which the filter is applied. 2.707 + 2.708 +<p>The property which enables access to the background image is 2.709 +<a>'enable-background'</a>:</p> 2.710 + 2.711 + 2.712 +<div class="propdef"> 2.713 +<dl> 2.714 + <dt id="EnableBackgroundProperty"><span class='propdef-title prop-name'>'enable-background'</span></dt> 2.715 + <dd> 2.716 + <table summary="enable-background property" class="propinfo" 2.717 + cellspacing="0" cellpadding="0"> 2.718 + <tbody> 2.719 + <tr valign="baseline"> 2.720 + <td><em>Value:</em>  </td> 2.721 + <td>accumulate | new [ <x> <y> <width> 2.722 + <height> ] | <a class="noxref" 2.723 + href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span 2.724 + class="value-inst-inherit noxref">inherit</span></a></td> 2.725 + </tr> 2.726 + <tr valign="baseline"> 2.727 + <td><em>Initial:</em>  </td> 2.728 + <td>accumulate</td> 2.729 + </tr> 2.730 + <tr valign="baseline"> 2.731 + <td><em>Applies to:</em>  </td> 2.732 + <td>Typically elements that can contain renderable elements. 2.733 + language is responsible for defining the applicable set of 2.734 + elements. 2.735 + For SVG: <a>container elements</a></td> 2.736 + </tr> 2.737 + <tr valign="baseline"> 2.738 + <td><em>Inherited:</em>  </td> 2.739 + <td>no</td> 2.740 + </tr> 2.741 + <tr valign="baseline"> 2.742 + <td><em>Percentages:</em>  </td> 2.743 + <td>N/A</td> 2.744 + </tr> 2.745 + <tr valign="baseline"> 2.746 + <td><em>Media:</em>  </td> 2.747 + <td>visual</td> 2.748 + </tr> 2.749 + <tr valign="baseline"> 2.750 + <td><em>Animatable:</em>  </td> 2.751 + <td>no</td> 2.752 + </tr> 2.753 + </tbody> 2.754 + </table> 2.755 + </dd> 2.756 +</dl> 2.757 +</div> 2.758 +<p><a>'enable-background'</a> is only 2.759 + applicable to <a>container elements</a> 2.760 + and specifies how the <a>SVG user agent</a> manages the accumulation 2.761 + of the background image.</p> 2.762 + 2.763 +<p>A value of <strong>new</strong> indicates two things:</p> 2.764 +<ul> 2.765 + <li>It enables the ability of children of the current <a>container element</a> 2.766 + element to access the background image.</li> 2.767 + <li>It indicates that a new (i.e., initially transparent black) background 2.768 + image canvas is established and that (in effect) all children of the 2.769 + current <a>container element</a> 2.770 + element shall be rendered into the new background image canvas in 2.771 + addition to being rendered onto the target device.</li> 2.772 +</ul> 2.773 + 2.774 +<p>A meaning of <span class="attr-value">enable-background: accumulate</span> (the 2.775 +initial/default value) depends on context:</p> 2.776 +<ul> 2.777 + <li>If an ancestor <a>container element</a> 2.778 + element has a property value of <span class="attr-value">'enable-background:new'</span>, then all 2.779 + renderable child elements of the current <a>container element</a> 2.780 + element are rendered both onto the parent <a>container element</a> 2.781 + element's background image canvas and onto the target device.</li> 2.782 + <li>Otherwise, there is no current background image canvas, so it is only 2.783 + necessary to render <a>graphics elements</a> 2.784 + the renderable elements onto the target device. (No need to render to the 2.785 + background image canvas.)</li> 2.786 +</ul> 2.787 + 2.788 +<p>If a filter effect specifies either the <a>BackgroundImage</a> or the 2.789 + <a>BackgroundAlpha</a> pseudo input images and no 2.790 +ancestor <a>container element</a> 2.791 + element has a property value of <span class="attr-value">'enable-background:new'</span>, then the background 2.792 +image request is technically in error. Processing will proceed without 2.793 +interruption (i.e., no error message) and a transparent black image shall be 2.794 +provided in response to the request.</p> 2.795 + 2.796 +<p>The optional 2.797 +<strong><x>,<y>,<width>,<height></strong> 2.798 +<span class="specissue">ISSUE: define the type of each of these, probably <number></span> 2.799 + parameters 2.800 +on the <span class="attr-value">new</span> value indicate the subregion of the <a>container element</a> 2.801 + element to which <a>'enable-background'</a> applies' user space where access to the 2.802 +background image is allowed to happen. These parameters enable the user 2.803 +agent potentially to allocate smaller temporary image buffers than the 2.804 +default values, which might require the user agent to allocate buffers as 2.805 +large as the current viewport. Thus, the values 2.806 +<x>,<y>,<width>,<height> act as a clipping rectangle 2.807 +on the background image canvas. If more than zero but less than four of the 2.808 +values <x>,<y>,<width> and <height> are specified or 2.809 +if negative or zero values are specified for <width> or <height>, 2.810 +<a>BackgroundImage</a> and <a>BackgroundAlpha</a> are processed as if background 2.811 +image processing were not enabled. </p> 2.812 + 2.813 +<h3 id="AccessBackgroundImageSVG">Accessing the background image in SVG</h3> 2.814 +<p>This section only applies to the SVG definition of enable-background.</p> 2.815 + 2.816 +<p>Assume you have an element E in the document and that E has a series of 2.817 +ancestors A<sub>1</sub> (its immediate parent), A<sub>2</sub>, etc. (Note: 2.818 +A<sub>0</sub> is E.) Each ancestor A<sub>i</sub> will have a corresponding 2.819 +temporary background image offscreen buffer BUF<sub>i</sub>. The contents of 2.820 +the <em>background image</em> available to a <a href="#FilterElement"><span 2.821 +class="element-name">'filter'</span></a> referenced by E is defined as 2.822 +follows:</p> 2.823 +<ul> 2.824 + <li>Find the element A<sub>i</sub> with the smallest subscript i (including 2.825 + A<sub>0</sub>=E) for which the <a href="#EnableBackgroundProperty"><span 2.826 + class="prop-name">'enable-background'</span></a> property has the value 2.827 + <span class="prop-value">new</span>. (Note: if there is no such ancestor 2.828 + element, then there is no background image available to E, in which case 2.829 + a transparent black image will be used as E's background image.)</li> 2.830 + <li>For each A<sub>i</sub> (from i=n to 1), initialize BUF<sub>i</sub> to 2.831 + transparent black. Render all children of A<sub>i</sub> up to but not 2.832 + including A<sub>i-1</sub> into BUF<sub>i</sub>. The children are painted, 2.833 + then filtered, clipped, masked and composited using the various painting, 2.834 + filtering, clipping, masking and object opacity settings on the given 2.835 + child. Any filter effects, masking and group opacity that might be set on 2.836 + A<sub>i</sub> do <em>not</em> apply when rendering the children of 2.837 + A<sub>i</sub> into BUF<sub>i</sub>.<br /> 2.838 + (Note that for the case of A<sub>0</sub>=E, the graphical contents of E 2.839 + are not rendered into BUF<sub>1</sub> and thus are not part of the 2.840 + background image available to E. Instead, the graphical contents of E are 2.841 + available via the <a href="#SourceGraphic">SourceGraphic</a> and <a 2.842 + href="#SourceAlpha">SourceAlpha</a> pseudo input images.)</li> 2.843 + <li>Then, for each A<sub>i</sub> (from i=1 to n-1), composite 2.844 + BUF<sub>i</sub> into BUF<sub>i+1</sub>.</li> 2.845 + <li>The accumulated result (i.e., BUF<sub>n</sub>) represents the 2.846 + background image available to E.</li> 2.847 +</ul> 2.848 + 2.849 +<edit:example href="examples/enable-background-01.svg" image="yes" link="yes"/> 2.850 + 2.851 +<p>The example above contains five parts, described as follows:</p> 2.852 +<ol> 2.853 + <li>The first set is the reference graphic. The reference graphic consists 2.854 + of a red rectangle followed by a 50% transparent <span 2.855 + class="element-name">'g'</span> 2.856 + element. Inside the <span class="element-name">'g'</span> 2.857 + is a green circle that partially overlaps the rectangle and a a blue 2.858 + triangle that partially overlaps the circle. The three objects are then 2.859 + outlined by a rectangle stroked with a thin blue line. No filters are 2.860 + applied to the reference graphic.</li> 2.861 + <li>The second set enables background image processing and adds an empty 2.862 + <span class="element-name">'g'</span> 2.863 + element which invokes the ShiftBGAndBlur filter. This filter takes the 2.864 + current accumulated background image (i.e., the entire reference graphic) 2.865 + as input, shifts its offscreen down, blurs it, and then writes the result 2.866 + to the canvas. Note that the offscreen for the filter is initialized to 2.867 + transparent black, which allows the already rendered rectangle, circle 2.868 + and triangle to show through after the filter renders its own result to 2.869 + the canvas.</li> 2.870 + <li>The third set enables background image processing and instead invokes 2.871 + the ShiftBGAndBlur filter on the inner <span 2.872 + class="element-name">'g'</span> 2.873 + element. The accumulated background at the time the filter is applied 2.874 + contains only the red rectangle. Because the children of the inner <span 2.875 + class="element-name">'g'</span> 2.876 + (i.e., the circle and triangle) are not part of the inner <span 2.877 + class="element-name">'g'</span> 2.878 + element's background and because ShiftBGAndBlur ignores SourceGraphic, 2.879 + the children of the inner <span class="element-name">'g'</span> 2.880 + do not appear in the result.</li> 2.881 + <li>The fourth set enables background image processing and invokes the 2.882 + ShiftBGAndBlur on the <span class="element-name">'polygon'</span> 2.883 + element that draws the triangle. The accumulated background at the time 2.884 + the filter is applied contains the red rectangle plus the green circle 2.885 + ignoring the effect of the <span class="prop-name">'opacity'</span> 2.886 + property on the inner <span class="element-name">'g'</span> 2.887 + element. (Note that the blurred green circle at the bottom does not let 2.888 + the red rectangle show through on its left side. This is due to ignoring 2.889 + the effect of the <span class="prop-name">'opacity'</span> 2.890 + property.) Because the triangle itself is not part of the accumulated 2.891 + background and because ShiftBGAndBlur ignores SourceGraphic, the triangle 2.892 + does not appear in the result.</li> 2.893 + <li>The fifth set is the same as the fourth except that filter 2.894 + ShiftBGAndBlur_WithSourceGraphic is invoked instead of ShiftBGAndBlur. 2.895 + ShiftBGAndBlur_WithSourceGraphic performs the same effect as 2.896 + ShiftBGAndBlur, but then renders the SourceGraphic on top of the shifted, 2.897 + blurred background image. In this case, SourceGraphic is the blue 2.898 + triangle; thus, the result is the same as in the fourth case except that 2.899 + the blue triangle now appears.</li> 2.900 +</ol> 2.901 +</edit:with> 2.902 + 2.903 +<h2 id="FilterPrimitivesOverview">Filter primitives overview</h2> 2.904 + 2.905 +<h3 id="FilterPrimitivesOverviewIntro">Overview</h3> 2.906 + 2.907 +<p>This section describes the various filter primtives that can be assembled 2.908 +to achieve a particular filter effect.</p> 2.909 + 2.910 +<p>Unless otherwise stated, all image filters operate on premultiplied RGBA 2.911 +samples. Filters which work more naturally on non-premultiplied data 2.912 +(<a>'feColorMatrix'</a> and <a>'feComponentTransfer'</a>) will temporarily undo and redo 2.913 +premultiplication as specified. All raster effect filtering operations take 1 2.914 +to N input RGBA images, additional attributes as parameters, and produce a 2.915 +single output RGBA image.</p> 2.916 + 2.917 +<p>The RGBA result from each filter primitive will be clamped into the 2.918 +allowable ranges for colors and opacity values. Thus, for example, the result 2.919 +from a given <a>filter primitive</a> will have any negative color values or opacity 2.920 +values adjusted up to color/opacity of zero.</p> 2.921 + 2.922 +<p id="filtersColorSpace">The color space in which a particular <a>filter primitive</a> performs its 2.923 +operations is determined by the value of property <a>'color-interpolation-filters'</a> on the given <a>filter 2.924 +primitive</a>. A different property, <a>'color-interpolation'</a> determines the color space for 2.925 +other color operations. Because these two properties have different initial 2.926 +values (<a>'color-interpolation-filters'</a> has an 2.927 +initial value of <span class="prop-value">linearRGB</span> whereas <a>'color-interpolation'</a> has an initial value of <span class="prop-value">sRGB</span>), in some cases to achieve certain results 2.928 +(e.g., when coordinating gradient interpolation with a filtering operation) 2.929 +it will be necessary to explicitly set <a>'color-interpolation'</a> to <span 2.930 +class="prop-value">linearRGB</span> or <a>'color-interpolation-filters'</a> to <span 2.931 +class="prop-value">sRGB</span> on particular elements. Note that the examples 2.932 +below do not explicitly set either <a>'color-interpolation'</a> or <a>'color-interpolation-filters'</a>, so the initial values for these properties apply to the examples.</p> 2.933 + 2.934 +<p><span class="requirement" id="assert_undefinedPixels">Sometimes <a>filter primitives</a> result in undefined pixels. For example, 2.935 +filter primitive <a>'feOffset'</a> can shift an image down and to the 2.936 +right, leaving undefined pixels at the top and left. In these cases, the 2.937 +undefined pixels are set to transparent black.</span></p> 2.938 + 2.939 +<h3 id="CommonAttributes">Common attributes</h3> 2.940 + 2.941 +<p>The following attributes are available for most of the filter 2.942 +primitives:</p> 2.943 + 2.944 +<div class="adef-list"> 2.945 +<p><em>Attribute definitions:</em></p> 2.946 +<dl> 2.947 + <dt id="FilterPrimitiveXAttribute"> 2.948 + <span class="adef">x</span> = "<em><a><coordinate></a></em>"</dt> 2.949 + <dd><p>The minimum x coordinate for the subregion which restricts 2.950 + calculation and rendering of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p> 2.951 + <p>The <a>lacuna value</a> for <span class="attr-name">x</span> is <span class="attr-value">0%</span>.</p> 2.952 + <p><span class="anim-target">Animatable: yes.</span></p> 2.953 + </dd> 2.954 + <dt id="FilterPrimitiveYAttribute"> 2.955 + <span class="adef">y</span> = "<em><a><coordinate></a></em>"</dt> 2.956 + <dd><p>The minimum y coordinate for the subregion which restricts 2.957 + calculation and rendering of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>. </p> 2.958 + <p>The <a>lacuna value</a> for <span class="attr-name">y</span> is <span class="attr-value">0%</span>.</p> 2.959 + <p><span class="anim-target">Animatable: yes.</span></p> 2.960 + </dd> 2.961 + <dt id="FilterPrimitiveWidthAttribute"> 2.962 + <span class="adef">width</span> = "<em><a><length></a></em>"</dt> 2.963 + <dd><p>The width of the subregion which restricts calculation and rendering 2.964 + of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p> 2.965 + <p>A negative or zero value disables the effect of the given filter 2.966 + primitive (i.e., the result is a transparent black image).</p> 2.967 + <p>The <a>lacuna value</a> for <span class="attr-name">width</span> is <span class="attr-value">100%</span>.</p> 2.968 + <p><span class="anim-target">Animatable: yes.</span></p> 2.969 + </dd> 2.970 + <dt id="FilterPrimitiveHeightAttribute"> 2.971 + <span class="adef">height</span> = "<em><a><length></a></em>"</dt> 2.972 + <dd><p>The height of the subregion which restricts calculation and rendering 2.973 + of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p> 2.974 + <p>A negative or zero value disables the effect of the given filter 2.975 + primitive (i.e., the result is a transparent black image).</p> 2.976 + <p>The <a>lacuna value</a> for <span class="attr-name">height</span> is <span class="attr-value">100%</span>.</p> 2.977 + <p><span class="anim-target">Animatable: yes.</span></p> 2.978 + </dd> 2.979 + <dt id="FilterPrimitiveMxAttribute"> 2.980 + <span class="adef">mx</span> = "<em><a><coordinate></a></em>"</dt> 2.981 + <dd><p>The margin delta for the x coordinate of the subregion which 2.982 + restricts calculation and rendering of the given <a>filter primitive</a>, 2.983 + see <a>filter primitive subregion</a>.</p> 2.984 + <p>The <a>lacuna value</a> for <span class="attr-name">mx</span> is <span class="attr-value">0</span>.</p> 2.985 + <p><span class="anim-target">Animatable: yes.</span></p> 2.986 + </dd> 2.987 + <dt id="FilterPrimitiveMyAttribute"> 2.988 + <span class="adef">my</span> = "<em><a><coordinate></a></em>"</dt> 2.989 + <dd><p>The margin delta for the y coordinate of the subregion which 2.990 + restricts calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p> 2.991 + <p>The <a>lacuna value</a> for <span class="attr-name">my</span> is <span class="attr-value">0</span>.</p> 2.992 + <p><span class="anim-target">Animatable: yes.</span></p> 2.993 + </dd> 2.994 + <dt id="FilterPrimitiveMwAttribute"> 2.995 + <span class="adef">mw</span> = "<em><a><length></a></em>"</dt> 2.996 + <dd><p>The margin delta for the width of the subregion which restricts 2.997 + calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p> 2.998 + <p>The <a>lacuna value</a> for <span class="attr-name">mw</span> is <span class="attr-value">0</span>.</p> 2.999 + <p><span class="anim-target">Animatable: yes.</span></p> 2.1000 + </dd> 2.1001 + <dt id="FilterPrimitiveMhAttribute"> 2.1002 + <span class="adef">mh</span> = "<em><a><length></a></em>"</dt> 2.1003 + <dd><p>The margin delta for the height of the subregion which restricts 2.1004 + calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p> 2.1005 + <p>The <a>lacuna value</a> for <span class="attr-name">mh</span> is <span class="attr-value">0</span>.</p> 2.1006 + <p><span class="anim-target">Animatable: yes.</span></p> 2.1007 + </dd> 2.1008 + <dt id="FilterPrimitiveResultAttribute"> 2.1009 + <span class="adef">result</span> = 2.1010 + "<em><a><filter-primitive-reference></a></em>"</dt> 2.1011 + <dd><p>Assigned name for this <a>filter primitive</a>. If supplied, then graphics 2.1012 + that result from processing this <a>filter primitive</a> can be referenced by 2.1013 + an <a>'in'</a> attribute on a subsequent filter 2.1014 + primitive within the same <a>'filter element'</a> element. If no value is 2.1015 + provided, the output will only be available for re-use as the implicit 2.1016 + input into the next <a>filter primitive</a> if that <a>filter primitive</a> provides 2.1017 + no value for its <a>'in'</a> attribute.</p> 2.1018 + <p>Note that a <a><filter-primitive-reference></a> is not an XML 2.1019 + ID; instead, a <a><filter-primitive-reference></a> is only 2.1020 + meaningful within a given <a>'filter element'</a> element and thus have only 2.1021 + local scope. It is legal for the same 2.1022 + <a><filter-primitive-reference></a> to appear multiple times 2.1023 + within the same <a>'filter element'</a> element. When referenced, the 2.1024 + <a><filter-primitive-reference></a> will use the closest 2.1025 + preceding <a>filter primitive</a> with the given result.</p> 2.1026 + <p><span class="anim-target">Animatable: yes.</span></p> 2.1027 + </dd> 2.1028 + <dt id="FilterPrimitiveInAttribute"> 2.1029 + <span class="adef">in</span> = "<em><a>SourceGraphic</a> | <a>SourceAlpha</a> | <a>BackgroundImage</a> | <a>BackgroundAlpha</a> | <a>FillPaint</a> | <a>StrokePaint</a> | 2.1030 + <a><filter-primitive-reference></a></em>"</dt> 2.1031 + <dd><p>Identifies input for the given filter primitive. The value can be 2.1032 + either one of six keywords or can be a string which matches a previous 2.1033 + <a>'feBlend/result'</a> attribute value within the same <a>'filter element'</a> 2.1034 + element. If no value is provided and this is the first <a>filter primitive</a>, 2.1035 + then this <a>filter primitive</a> will use <a>SourceGraphic</a> 2.1036 + as its input. If no value is provided and this is a subsequent <a>filter primitive</a>, 2.1037 + then this <a>filter primitive</a> will use the result from the 2.1038 + previous <a>filter primitive</a> as its input.</p> 2.1039 + <p>If the value for <span class="attr-name">result</span> appears 2.1040 + multiple times within a given <a>'filter element'</a> element, then a reference to 2.1041 + that result will use the closest preceding <a>filter primitive</a> with the 2.1042 + given value for attribute <a>'feBlend/result'</a>. 2.1043 + Forward references to results are not allowed, and will be treated as 2.1044 + if no result was specified. </p> 2.1045 + <p>Definitions for the six keywords: </p> 2.1046 + <dl> 2.1047 + <dt id="SourceGraphic"><span class="attr-value">SourceGraphic</span></dt> 2.1048 + <dd><p>This keyword represents the graphics elements 2.1049 + that were the original input into the <a>'filter element'</a> element. For raster 2.1050 + effects <a>filter primitives</a>, the graphics elements 2.1051 + will be rasterized into an initially clear RGBA raster in image 2.1052 + space. Pixels left untouched by the original graphic will be left 2.1053 + clear. The image is specified to be rendered in linear RGBA 2.1054 + pixels. The alpha channel of this image captures any 2.1055 + anti-aliasing specified by SVG. (Since the raster is linear, the 2.1056 + alpha channel of this image will represent the exact percent 2.1057 + coverage of each pixel.)</p></dd> 2.1058 + <dt id="SourceAlpha"><span class="attr-value">SourceAlpha</span></dt> 2.1059 + <dd><p>This keyword represents the graphics elements 2.1060 + that were the original input into the <a>'filter element'</a> element. 2.1061 + <a>SourceAlpha</a> has all of the same rules 2.1062 + as <a>SourceGraphic</a> except that only the 2.1063 + alpha channel is used. The input image is an RGBA image 2.1064 + consisting of implicitly black color values for the RGB channels, 2.1065 + but whose alpha channel is the same as <a>SourceGraphic</a>.</p> 2.1066 + <p class="note implementation">If this option is 2.1067 + used, then some implementations might need to rasterize the 2.1068 + graphics elements 2.1069 + in order to extract the alpha channel.</p> 2.1070 + </dd> 2.1071 + <dt id="BackgroundImage"><span class="attr-value">BackgroundImage</span></dt> 2.1072 + <dd><p>This keyword represents an image snapshot of the canvas under 2.1073 + the filter region at the time that the <a>'filter element'</a> element was invoked. See 2.1074 + <a href="#AccessingBackgroundImage">accessing the background 2.1075 + image</a>.</p> 2.1076 + </dd> 2.1077 + <dt id="BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></dt> 2.1078 + <dd><p>Same as <a>BackgroundImage</a> except 2.1079 + only the alpha channel is used. See <a>SourceAlpha</a> and <a 2.1080 + href="#AccessingBackgroundImage">accessing the background 2.1081 + image</a>.</p> 2.1082 + </dd> 2.1083 + 2.1084 + <dt id="FillPaint"><span class="attr-value">FillPaint</span></dt> 2.1085 + <dd> 2.1086 + <p>This keyword represents the target element <i>rendered filled</i>.</p> 2.1087 + <p>For svg this keyword represents the value of the <a>'fill'</a> 2.1088 + property on the target element for the filter effect.</p> 2.1089 + <p>For non-SVG cases <a>FillPaint</a> generates a transparent black image. 2.1090 + <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the current color, or if it makes sense to use the 'fill' property for this case too.</span> 2.1091 + </p> 2.1092 + <p class="note authoring">Note that text is generally painted filled, not stroked.</p> 2.1093 + <p>The <a>FillPaint</a> image has conceptually infinite extent. 2.1094 + Frequently this image is opaque everywhere, but it might not be if the "paint" 2.1095 + itself has alpha, as in the case of a gradient or pattern which 2.1096 + itself includes transparent or semi-transparent parts.</p> 2.1097 + </dd> 2.1098 + <dt id="StrokePaint"><span class="attr-value">StrokePaint</span></dt> 2.1099 + <dd> 2.1100 + <p>This keyword represents the target element <i>rendered stroked</i>.</p> 2.1101 + <p>For svg this keyword represents the value of the <a>'stroke'</a> 2.1102 + on the target element for the filter effect.</p> 2.1103 + <p>For non-SVG cases <a>StrokePaint</a> generates a transparent black image. 2.1104 + <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the one of the border colors, or if it makes sense to use the 'stroke' property for this case too.</span> 2.1105 + </p> 2.1106 + <p class="note authoring">Note that text is generally painted filled, not stroked.</p> 2.1107 + <p>The <a>StrokePaint</a> image has conceptually infinite extent. 2.1108 + Frequently this image is opaque everywhere, but it 2.1109 + might not be if the "paint" 2.1110 + itself has alpha, as in the case of a gradient or pattern which 2.1111 + itself includes transparent or semi-transparent parts. 2.1112 + </p> 2.1113 + </dd> 2.1114 + </dl> 2.1115 + <p><span class="anim-target">Animatable: yes.</span></p> 2.1116 + </dd> 2.1117 + </dl> 2.1118 +</div> 2.1119 + 2.1120 +<h3 id="FilterPrimitiveSubRegion">Filter primitive subregion</h3> 2.1121 + 2.1122 +<edit:with element="feBlend"> 2.1123 +<p> 2.1124 +All <a>filter primitives</a> have attributes <a>'x'</a>, <a>'y'</a>, 2.1125 +<a>'width'</a> and <a>'height'</a>, and <a>'mx'</a>, 2.1126 +<a>'my'</a>, <a>'mw'</a> and <a>'mh'</a>, which 2.1127 +together identify a subregion which restricts calculation and rendering of 2.1128 +the given <a>filter primitive</a>. The <a>'x'</a>, <a>'y'</a>, 2.1129 +<a>'width'</a> and <a>'height'</a> attributes are defined 2.1130 +according to the same rules as other <a>filter primitives</a>' coordinate and length 2.1131 +attributes and thus represent values in the coordinate system established by 2.1132 +attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> element. 2.1133 +The <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and 2.1134 +<a>'mh'</a> attributes contain deltas to the corresponding 2.1135 +<a>'x'</a>, <a>'y'</a>, <a>'width'</a> and 2.1136 +<a>'height'</a> attributes and contain values in the coordinate 2.1137 +system established by attribute <a>'filter/primitiveMarginUnits'</a> on the <a>'filter element'</a> element. 2.1138 +</p> 2.1139 + 2.1140 +<p><a>'x'</a>, <a>'y'</a>, 2.1141 +<a>'width'</a> and <a>'height'</a> default to the union (i.e., tightest fitting bounding 2.1142 +box) of the subregions defined for all referenced nodes. If there are no 2.1143 +referenced nodes (e.g., for <a>'feImage'</a> or <a>'feTurbulence'</a>), or one or more of the 2.1144 +referenced nodes is a standard input (one of <a>SourceGraphic</a>, <a>SourceAlpha</a>, <a>BackgroundImage</a>, <a>BackgroundAlpha</a>, 2.1145 +<a href="#FillPaint"><span class="attr-value">FillPaint</span></a> or <a 2.1146 +href="#StrokePaint"><span class="attr-value">StrokePaint</span></a>), or for 2.1147 +<a href="#feTileElement"><span class="element-name">'feTile'</span></a> 2.1148 +(which is special because its principal function is to replicate the 2.1149 +referenced node in X and Y and thereby produce a usually larger result), the 2.1150 +default subregion is <span class="attr-value">0%, 0%, 100%, 100%</span>, where percentages are relative to the 2.1151 +dimensions of the <a>filter region</a>.</p> 2.1152 + 2.1153 +<p>After the <strong>x</strong>, <strong>y</strong>, <strong>width</strong>, 2.1154 +<strong>height</strong> have been calculated for the filter primitive 2.1155 +subregion the margin attributes <strong>mx</strong>, <strong>my</strong>, 2.1156 +<strong>mw</strong>, <strong>mh</strong> are calculated and added to the 2.1157 +former to make the <a>filter primitive subregion</a>. If the <a>filter primitive 2.1158 +subregion</a> has a negative or zero width or height, the effect of the filter 2.1159 +primitive is disabled. </p> 2.1160 + 2.1161 +<p>The <a>filter primitive subregion</a> act as a hard clip clipping rectangle for 2.1162 +the filter primitive.</p> 2.1163 + 2.1164 +<p>All intermediate offscreens are defined to not exceed the intersection of 2.1165 +the <a>filter primitive subregion</a> with the <a href="#FilterEffectsRegion">filter 2.1166 +region</a>. The filter region and any of the filter primitive subregions are 2.1167 +to be set up such that all offscreens are made big enough to accommodate any 2.1168 +pixels which even partly intersect with either the filter region or the 2.1169 +filter primitive subregions.</p> 2.1170 + 2.1171 +<p><a>'feTile'</a> references a previous filter primitive and then stitches the tiles together 2.1172 +based on the <a>filter primitive subregion</a> of the referenced filter primitive in 2.1173 +order to fill its own <a>filter primitive subregion</a>.</p> 2.1174 + 2.1175 +<edit:example href="examples/filtersubregion00.svg" image="yes" link="yes"/> 2.1176 + 2.1177 +<p> 2.1178 +In the example above there are three rects that each have a cross and a circle in them. The circle element in each one has a different filter applied, but with the same <a>filter primitive subregion</a>. The filter output should be limited to the <a>filter primitive subregion</a>, so you should never see the circles themselves, just the rects that make up the <a>filter primitive subregion</a>. 2.1179 +</p> 2.1180 +<ul> 2.1181 +<li> 2.1182 +The upper left rect shows an <a>'feFlood'</a> with <span class="attr-name">flood-opacity</span>="<span class="attr-value">75%</span>" so the cross should be visible through the green rect in the middle. 2.1183 +</li> 2.1184 +<li> 2.1185 +The lower left rect shows an <a>'feMerge'</a> that merges <a>SourceGraphic</a> with <a>FillPaint</a>. Since the circle has <span class="attr-name">fill-opacity</span>="<span class="attr-value">0.5</span>" it will also be transparent so that the cross is visible through the green rect in the middle. 2.1186 +</li> 2.1187 +<li>The upper right rect shows an <a>'feBlend'</a> that has <span class="attr-name">mode</span>="<span class="attr-value">multiply</span>". Since the circle in this case isn't transparent the result is totally opaque. The rect should be dark green and the cross should not be visible through it. 2.1188 +</li> 2.1189 +</ul> 2.1190 + 2.1191 +</edit:with> 2.1192 + 2.1193 +<h2 id="LightSourceDefinitions">Light source elements and properties</h2> 2.1194 + 2.1195 +<h3 id="LightSourceIntro">Introduction</h3> 2.1196 + 2.1197 +<p>The following sections define the elements that define a light source, <a>'feDistantLight'</a>, 2.1198 +<a>'fePointLight'</a> and <a>'feSpotLight'</a>, 2.1199 +and property <a>'lighting-color'</a>, which defines the color of the 2.1200 +light.</p> 2.1201 + 2.1202 +<h3 id="feDistantLightElement">Light source <span class="element-name">'feDistantLight'</span></h3> 2.1203 + 2.1204 +<edit:elementsummary name='feDistantLight'/> 2.1205 + 2.1206 +<div class="adef-list"> 2.1207 +<p><em>Attribute definitions:</em></p> 2.1208 +<dl> 2.1209 + <dt id="feDistantLightAzimuthAttribute"><span 2.1210 + class="adef">azimuth</span> = "<em><a><number></a></em>"</dt> 2.1211 + <dd>Direction angle for the light source on the XY plane (clockwise), in 2.1212 + degrees.<br /> 2.1213 + If the attribute is not specified, then the effect is as if a value of 2.1214 + <span class="attr-value">0</span> were specified.<br /> 2.1215 + <span class="anim-target">Animatable: yes.</span></dd> 2.1216 + <dt id="feDistantLightElevationAttribute"><span 2.1217 + class="adef">elevation</span> = "<em><a><number></a></em>"</dt> 2.1218 + <dd>Direction angle for the light source on the YZ plane, in degrees.<br 2.1219 + /> 2.1220 + If the attribute is not specified, then the effect is as if a value of 2.1221 + <span class="attr-value">0</span> were specified.<br /> 2.1222 + <span class="anim-target">Animatable: yes.</span></dd> 2.1223 +</dl> 2.1224 +</div> 2.1225 + 2.1226 +<h3 id="fePointLightElement">Light source <span class="element-name">'fePointLight'</span></h3> 2.1227 + 2.1228 +<edit:elementsummary name='fePointLight'/> 2.1229 + 2.1230 +<div class="adef-list"> 2.1231 +<p><em>Attribute definitions:</em></p> 2.1232 +<dl> 2.1233 + <dt id="fePointLightXAttribute"><span 2.1234 + class="adef">x</span> = "<em><a><number></a></em>"</dt> 2.1235 + <dd>X location for the light source in the coordinate system established 2.1236 + by attribute <a>'filter/primitiveUnits'</a> on the <a 2.1237 + href="#FilterElement"><span class="element-name">'filter'</span></a> 2.1238 + element.<br /> 2.1239 + If the attribute is not specified, then the effect is as if a value of 2.1240 + <span class="attr-value">0</span> were specified.<br /> 2.1241 + <span class="anim-target">Animatable: yes.</span></dd> 2.1242 + <dt id="fePointLightYAttribute"><span 2.1243 + class="adef">y</span> = "<em><a><number></a></em>"</dt> 2.1244 + <dd>Y location for the light source in the coordinate system established 2.1245 + by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 2.1246 + element.<br /> 2.1247 + If the attribute is not specified, then the effect is as if a value of 2.1248 + <span class="attr-value">0</span> were specified.<br /> 2.1249 + <span class="anim-target">Animatable: yes.</span></dd> 2.1250 + <dt id="fePointLightZAttribute"><span 2.1251 + class="adef">z</span> = "<em><a><number></a></em>"</dt> 2.1252 + <dd>Z location for the light source in the coordinate system established 2.1253 + by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 2.1254 + element, assuming that, in the <a>initial coordinate system</a> 2.1255 + , the positive Z-axis comes out towards the person viewing the content 2.1256 + and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br /> 2.1257 + If the attribute is not specified, then the effect is as if a value of 2.1258 + <span class="attr-value">0</span> were specified.<br /> 2.1259 + <span class="anim-target">Animatable: yes.</span></dd> 2.1260 +</dl> 2.1261 +</div> 2.1262 + 2.1263 +<h3 id="feSpotLightElement">Light source <span class="element-name">'feSpotLight'</span></h3> 2.1264 + 2.1265 +<edit:elementsummary name='feSpotLight'/> 2.1266 + 2.1267 +<div class="adef-list"> 2.1268 +<p><em>Attribute definitions:</em></p> 2.1269 +<dl> 2.1270 + <dt id="feSpotLightXAttribute"><span 2.1271 + class="adef">x</span> = "<em><a><number></a></em>"</dt> 2.1272 + <dd>X location for the light source in the coordinate system established 2.1273 + by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 2.1274 + element.<br /> 2.1275 + If the attribute is not specified, then the effect is as if a value of 2.1276 + <span class="attr-value">0</span> were specified.<br /> 2.1277 + <span class="anim-target">Animatable: yes.</span></dd> 2.1278 + <dt id="feSpotLightYAttribute"><span 2.1279 + class="adef">y</span> = "<em><a><number></a></em>"</dt> 2.1280 + <dd>Y location for the light source in the coordinate system established 2.1281 + by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 2.1282 + element.<br /> 2.1283 + If the attribute is not specified, then the effect is as if a value of 2.1284 + <span class="attr-value">0</span> were specified.<br /> 2.1285 + <span class="anim-target">Animatable: yes.</span></dd> 2.1286 + <dt id="feSpotLightZAttribute"><span 2.1287 + class="adef">z</span> = "<em><a><number></a></em>"</dt> 2.1288 + <dd>Z location for the light source in the coordinate system established 2.1289 + by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 2.1290 + element, assuming that, in the <a>initial coordinate system</a> 2.1291 + , the positive Z-axis comes out towards the person viewing the content 2.1292 + and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br /> 2.1293 + If the attribute is not specified, then the effect is as if a value of 2.1294 + <span class="attr-value">0</span> were specified.<br /> 2.1295 + <span class="anim-target">Animatable: yes.</span></dd> 2.1296 + <dt id="feSpotLightPointsAtXAttribute"><span 2.1297 + class="adef">pointsAtX</span> = "<em><a><number></a></em>"</dt> 2.1298 + <dd>X location in the coordinate system established by attribute <a>'filter/primitiveUnits'</a> 2.1299 + on the <a>'filter element'</a> 2.1300 + element of the point at which the light source is pointing.<br /> 2.1301 + If the attribute is not specified, then the effect is as if a value of 2.1302 + <span class="attr-value">0</span> were specified.<br /> 2.1303 + <span class="anim-target">Animatable: yes.</span></dd> 2.1304 + <dt id="feSpotLightPointsAtYAttribute"><span 2.1305 + class="adef">pointsAtY</span> = "<em><a><number></a></em>"</dt> 2.1306 + <dd>Y location in the coordinate system established by attribute <a>'filter/primitiveUnits'</a> 2.1307 + on the <a>'filter element'</a> element of the point at which the light source is pointing.<br /> 2.1308 + If the attribute is not specified, then the effect is as if a value of 2.1309 + <span class="attr-value">0</span> were specified.<br /> 2.1310 + <span class="anim-target">Animatable: yes.</span></dd> 2.1311 + <dt id="feSpotLightPointsAtZAttribute"><span 2.1312 + class="adef">pointsAtZ</span> = "<em><a><number></a></em>"</dt> 2.1313 + <dd>Z location in the coordinate system established by the 2.1314 + attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> element of 2.1315 + the point at which the light source is pointing, assuming that, in the 2.1316 + <a>initial coordinate system</a>, the positive Z-axis comes out 2.1317 + towards the person viewing the content and assuming that 2.1318 + one unit along the Z-axis equals 2.1319 + <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage"> 2.1320 + one unit in X and Y</a>.<br /> 2.1321 + If the attribute is not specified, then the effect is as if a value of 2.1322 + <span class="attr-value">0</span> were specified.<br /> 2.1323 + <span class="anim-target">Animatable: yes.</span></dd> 2.1324 + <dt id="feSpotLightSpecularExponentAttribute"><span 2.1325 + class="adef">specularExponent</span> = "<em><a><number></a></em>"</dt> 2.1326 + <dd>Exponent value controlling the focus for the light source.<br /> 2.1327 + If the attribute is not specified, then the effect is as if a value of 2.1328 + <span class="attr-value">1</span> were specified.<br /> 2.1329 + <span class="anim-target">Animatable: yes.</span></dd> 2.1330 + <dt id="feSpotLightLimitingConeAngleAttribute"><span 2.1331 + class="adef">limitingConeAngle</span> = "<em><a><number></a></em>"</dt> 2.1332 + <dd>A limiting cone which restricts the region where the light is 2.1333 + projected. No light is projected outside the cone. <span 2.1334 + class="attr-name">limitingConeAngle</span> represents the angle in degrees between 2.1335 + the spot light axis (i.e. the axis between the light source and the 2.1336 + point to which it is pointing at) and the spot light cone. <span class="requirement" id="assert_userAgentLightingConeSmoothing">User agents 2.1337 + should apply a smoothing technique such as anti-aliasing at the 2.1338 + boundary of the cone.</span><br /> 2.1339 + If no value is specified, then no limiting cone will be applied.<br /> 2.1340 + <span class="anim-target">Animatable: yes.</span></dd> 2.1341 +</dl> 2.1342 +</div> 2.1343 + 2.1344 +<h3 id="LightingColorProperty">The <span class="prop-name">'lighting-color'</span> property</h3> 2.1345 + 2.1346 +<p>The <a>'lighting-color'</a> property defines the 2.1347 +color of the light source for <a>filter primitives</a> <a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a>.</p> 2.1348 + 2.1349 +<div class="propdef"> 2.1350 +<dl> 2.1351 + <dt><span class="index-def" title="'margin-top'"><a 2.1352 + id="propdef-lighting-color" name="propdef-lighting-color" 2.1353 + class="propdef-title"><span 2.1354 + class="prop-name">'lighting-color'</span></a></span></dt> 2.1355 + <dd> 2.1356 + <table summary="lighting-color property" class="propinfo" 2.1357 + cellspacing="0" cellpadding="0"> 2.1358 + <tbody> 2.1359 + <tr valign="baseline"> 2.1360 + <td><em>Value:</em>  </td> 2.1361 + <td>currentColor |<br /> 2.1362 + <a><color></a> 2.1363 + [<a><icccolor></a>] |<br /> 2.1364 + <a class="noxref" 2.1365 + href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span 2.1366 + class="value-inst-inherit noxref">inherit</span></a></td> 2.1367 + </tr> 2.1368 + <tr valign="baseline"> 2.1369 + <td><em>Initial:</em>  </td> 2.1370 + <td>white</td> 2.1371 + </tr> 2.1372 + <tr valign="baseline"> 2.1373 + <td><em>Applies to:</em>  </td> 2.1374 + <td><a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a> 2.1375 + elements</td> 2.1376 + </tr> 2.1377 + <tr valign="baseline"> 2.1378 + <td><em>Inherited:</em>  </td> 2.1379 + <td>no</td> 2.1380 + </tr> 2.1381 + <tr valign="baseline"> 2.1382 + <td><em>Percentages:</em>  </td> 2.1383 + <td>N/A</td> 2.1384 + </tr> 2.1385 + <tr valign="baseline"> 2.1386 + <td><em>Media:</em>  </td> 2.1387 + <td>visual</td> 2.1388 + </tr> 2.1389 + <tr valign="baseline"> 2.1390 + <td><em>Animatable:</em>  </td> 2.1391 + <td>yes</td> 2.1392 + </tr> 2.1393 + </tbody> 2.1394 + </table> 2.1395 + </dd> 2.1396 +</dl> 2.1397 +</div> 2.1398 + 2.1399 +<h2 id="feBlendElement">Filter primitive <span class="element-name">'feBlend'</span></h2> 2.1400 + 2.1401 +<edit:elementsummary name='feBlend'/> 2.1402 + 2.1403 +<p>This filter composites two objects together using commonly used imaging 2.1404 +software blending modes. It performs a pixel-wise combination of two input 2.1405 +images.</p> 2.1406 + 2.1407 +<div class="adef-list"> 2.1408 +<p><em>Attribute definitions:</em></p> 2.1409 +<dl> 2.1410 + <dt id="feBlendModeAttribute"><span 2.1411 + class="adef">mode</span> = "<em>normal | multiply | screen | darken | 2.1412 + lighten</em>"</dt> 2.1413 + <dd>One of the image blending modes (see <a 2.1414 + href="#BlendingTable">table</a> below). Default is: normal.<br /> 2.1415 + <span class="anim-target">Animatable: yes.</span></dd> 2.1416 + <dt id="feBlendIn2Attribute"><span 2.1417 + class="adef">in2</span> = "<em>(see <a 2.1418 + href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> 2.1419 + attribute)</em>"</dt> 2.1420 + <dd>The second input image to the blending operation. This attribute can 2.1421 + take on the same values as the <a 2.1422 + href="#FilterPrimitiveInAttribute"><span 2.1423 + class="attr-name">in</span></a> attribute.<br /> 2.1424 + <span class="anim-target">Animatable: yes.</span></dd> 2.1425 +</dl> 2.1426 +</div> 2.1427 + 2.1428 +<p>For all feBlend modes, the result opacity is computed as follows:</p> 2.1429 +<pre>qr = 1 - (1-qa)*(1-qb)</pre> 2.1430 + 2.1431 +<p>For the compositing formulas below, the following definitions apply:</p> 2.1432 +<pre>image A = in 2.1433 +image B = in2 2.1434 +cr = Result color (RGB) - premultiplied 2.1435 +qa = Opacity value at a given pixel for image A 2.1436 +qb = Opacity value at a given pixel for image B 2.1437 +ca = Color (RGB) at a given pixel for image A - premultiplied 2.1438 +cb = Color (RGB) at a given pixel for image B - premultiplied </pre> 2.1439 + 2.1440 +<p id="BlendingTable">The following table 2.1441 +provides the list of available image blending modes:</p> 2.1442 + 2.1443 +<div class="note-editor"> 2.1444 +ED: make table look nicer</div> 2.1445 + 2.1446 +<table summary="blending modes" width="500" border="1"> 2.1447 + <tbody> 2.1448 + <tr> 2.1449 + <td>Image Blending Mode</td> 2.1450 + <td>Formula for computing result color</td> 2.1451 + </tr> 2.1452 + <tr> 2.1453 + <td>normal</td> 2.1454 + <td>cr = (1 - qa) * cb + ca</td> 2.1455 + </tr> 2.1456 + <tr> 2.1457 + <td>multiply</td> 2.1458 + <td>cr = (1-qa)*cb + (1-qb)*ca + ca*cb</td> 2.1459 + </tr> 2.1460 + <tr> 2.1461 + <td>screen</td> 2.1462 + <td>cr = cb + ca - ca * cb</td> 2.1463 + </tr> 2.1464 + <tr> 2.1465 + <td>darken</td> 2.1466 + <td>cr = Min ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td> 2.1467 + </tr> 2.1468 + <tr> 2.1469 + <td>lighten</td> 2.1470 + <td>cr = Max ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td> 2.1471 + </tr> 2.1472 + </tbody> 2.1473 +</table> 2.1474 + 2.1475 +<p><span class="attr-value">'normal'</span> blend mode is equivalent to <a 2.1476 +href="#feCompositeOperatorAttribute"><span 2.1477 +class="attr-value">operator="over"</span></a> on the <a>'feComposite'</a> 2.1478 +filter primitive, matches the blending method used by <a>'feMerge'</a> and matches 2.1479 +the <a>simple alpha compositing</a> technique used in SVG for all compositing outside of filter effects.</p> 2.1480 + 2.1481 +<edit:example href="examples/feBlend.svg" image="yes" link="yes"/> 2.1482 + 2.1483 +<h2 id="feColorMatrixElement">Filter primitive <span class="element-name">'feColorMatrix'</span></h2> 2.1484 + 2.1485 +<edit:elementsummary name='feColorMatrix'/> 2.1486 + 2.1487 +<p>This filter applies a matrix transformation:</p> 2.1488 +<object data="mathml/feColorMatrix00.mml" type="application/mathml+xml" width="100%" height="140"> 2.1489 +<pre>| R' | | a00 a01 a02 a03 a04 | | R | 2.1490 +| G' | | a10 a11 a12 a13 a14 | | G | 2.1491 +| B' | = | a20 a21 a22 a23 a24 | * | B | 2.1492 +| A' | | a30 a31 a32 a33 a34 | | A | 2.1493 +| 1 | | 0 0 0 0 1 | | 1 |</pre> 2.1494 +</object> 2.1495 + 2.1496 +<p>on the RGBA color and alpha values of every pixel on the input graphics to 2.1497 +produce a result with a new set of RGBA color and alpha values.</p> 2.1498 + 2.1499 +<p>The calculations are performed on non-premultiplied color values. If the 2.1500 +input graphics consists of premultiplied color values, those values are 2.1501 +automatically converted into non-premultiplied color values for this 2.1502 +operation.</p> 2.1503 + 2.1504 +<p>These matrices often perform an identity mapping in the alpha channel. If 2.1505 +that is the case, an implementation can avoid the costly undoing and redoing 2.1506 +of the premultiplication for all pixels with A = 1.</p> 2.1507 + 2.1508 +<div class="adef-list"> 2.1509 +<p><em>Attribute definitions:</em></p> 2.1510 +<dl> 2.1511 + <dt id="feColorMatrixTypeAttribute"><span class="adef">type</span> = 2.1512 + "<em>matrix | saturate | hueRotate | luminanceToAlpha</em>"</dt> 2.1513 + <dd>Indicates the type of matrix operation. The keyword <span 2.1514 + class="attr-name">matrix</span> indicates that a full 5x4 matrix of 2.1515 + values will be provided. The other keywords represent convenience 2.1516 + shortcuts to allow commonly used color operations to be performed 2.1517 + without specifying a complete matrix.<br /> 2.1518 + <span class="anim-target">Animatable: yes.</span></dd> 2.1519 + <dt id="feColorMatrixValuesAttribute"><span class="adef">values</span> = 2.1520 + "<em>list of <a><number></a>s</em>"</dt> 2.1521 + <dd>The contents of <span class="attr-name">values</span> depends on the 2.1522 + value of attribute <a href="#feColorMatrixTypeAttribute"><span 2.1523 + class="attr-name">type</span></a>: 2.1524 + <ul> 2.1525 + <li>For <span class="attr-value">type="matrix"</span>, <span 2.1526 + class="attr-name">values</span> is a list of 20 matrix values (a00 2.1527 + a01 a02 a03 a04 a10 a11 ... a34), separated by whitespace and/or a 2.1528 + comma. For example, the identity matrix could be expressed as: 2.1529 + <pre>type="matrix" 2.1530 +values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"</pre> 2.1531 + </li> 2.1532 + <li>For <span class="attr-value">type="saturate"</span>, <span 2.1533 + class="attr-name">values</span> is a single real number value (0 to 2.1534 + 1). A <span class="attr-value">saturate</span> operation is 2.1535 + equivalent to the following matrix operation: 2.1536 + <p> 2.1537 + <object data="mathml/feColorMatrix01.mml" type="application/mathml+xml" width="100%" height="130"> 2.1538 + <pre>| R' | |0.213+0.787s 0.715-0.715s 0.072-0.072s 0 0 | | R | 2.1539 +| G' | |0.213-0.213s 0.715+0.285s 0.072-0.072s 0 0 | | G | 2.1540 +| B' | = |0.213-0.213s 0.715-0.715s 0.072+0.928s 0 0 | * | B | 2.1541 +| A' | | 0 0 0 1 0 | | A | 2.1542 +| 1 | | 0 0 0 0 1 | | 1 |</pre> 2.1543 + </object> 2.1544 + </p> 2.1545 + </li> 2.1546 + <li>For <span class="attr-value">type="hueRotate"</span>, <span 2.1547 + class="attr-name">values</span> is a single one real number value 2.1548 + (degrees). A <span class="attr-value">hueRotate</span> operation is 2.1549 + equivalent to the following matrix operation: 2.1550 + <p> 2.1551 + <object data="mathml/feColorMatrix02.mml" type="application/mathml+xml" width="100%" height="130"> 2.1552 + <pre>| R' | | a00 a01 a02 0 0 | | R | 2.1553 +| G' | | a10 a11 a12 0 0 | | G | 2.1554 +| B' | = | a20 a21 a22 0 0 | * | B | 2.1555 +| A' | | 0 0 0 1 0 | | A | 2.1556 +| 1 | | 0 0 0 0 1 | | 1 |</pre> 2.1557 + </object> 2.1558 + </p> 2.1559 + 2.1560 + where the terms a00, a01, etc. are calculated as follows: 2.1561 + <p> 2.1562 + <object data="mathml/feColorMatrix03.mml" type="application/mathml+xml" width="100%" height="230"> 2.1563 + <pre>| a00 a01 a02 | [+0.213 +0.715 +0.072] 2.1564 +| a10 a11 a12 | = [+0.213 +0.715 +0.072] + 2.1565 +| a20 a21 a22 | [+0.213 +0.715 +0.072] 2.1566 + [+0.787 -0.715 -0.072] 2.1567 +cos(hueRotate value) * [-0.213 +0.285 -0.072] + 2.1568 + [-0.213 -0.715 +0.928] 2.1569 + [-0.213 -0.715+0.928] 2.1570 +sin(hueRotate value) * [+0.143 +0.140-0.283] 2.1571 + [-0.787 +0.715+0.072]</pre> 2.1572 + </object> 2.1573 + </p> 2.1574 + Thus, the upper left term of the hue matrix turns out to be: 2.1575 + <p> 2.1576 + <object data="mathml/feColorMatrix04.mml" type="application/mathml+xml" width="100%" height="30"> 2.1577 + <pre>.213 + cos(hueRotate value)*.787 - sin(hueRotate value)*.213</pre> 2.1578 + </object> 2.1579 + </p> 2.1580 + 2.1581 + </li> 2.1582 + <li>For <span class="attr-value">type="luminanceToAlpha"</span>, 2.1583 + <span class="attr-name">values</span> is not applicable. A <span 2.1584 + class="attr-value">luminanceToAlpha</span> operation is equivalent 2.1585 + to the following matrix operation: 2.1586 + <p> 2.1587 + <object data="mathml/feColorMatrix05.mml" type="application/mathml+xml" width="100%" height="130"> 2.1588 + <pre> | R' | | 0 0 0 0 0 | | R | 2.1589 + | G' | | 0 0 0 0 0 | | G | 2.1590 + | B' | = | 0 0 0 0 0 | * | B | 2.1591 + | A' | | 0.2125 0.7154 0.0721 0 0 | | A | 2.1592 + | 1 | | 0 0 0 0 1 | | 1 |</pre> 2.1593 + </object> 2.1594 + </p> 2.1595 + </li> 2.1596 + </ul> 2.1597 + If the attribute is not specified, then the default behavior depends on 2.1598 + the value of attribute <a>'feColorMatrix/type'</a>. If <span 2.1599 + class="attr-value">type="matrix"</span>, then this attribute defaults 2.1600 + to the identity matrix. If <span 2.1601 + class="attr-value">type="saturate"</span>, then this attribute defaults 2.1602 + to the value <span class="attr-value">1</span>, which results in the 2.1603 + identify matrix. If <span class="attr-value">type="hueRotate"</span>, 2.1604 + then this attribute defaults to the value <span 2.1605 + class="attr-value">0</span>, which results in the identify matrix.<br /> 2.1606 + <span class="anim-target">Animatable: yes.</span> </dd> 2.1607 +</dl> 2.1608 +</div> 2.1609 + 2.1610 +<edit:example href="examples/feColorMatrix.svg" image="yes" link="yes"/> 2.1611 + 2.1612 +<h2 id="feComponentTransferElement">Filter primitive <span class="element-name">'feComponentTransfer'</span></h2> 2.1613 + 2.1614 +<edit:elementsummary name='feComponentTransfer'/> 2.1615 + 2.1616 +<p>This filter primitive performs component-wise remapping of data as 2.1617 +follows:</p> 2.1618 +<pre>R' = <a href="#feFuncRElement">feFuncR</a>( R ) 2.1619 +G' = <a href="#feFuncGElement">feFuncG</a>( G ) 2.1620 +B' = <a href="#feFuncBElement">feFuncB</a>( B ) 2.1621 +A' = <a href="#feFuncAElement">feFuncA</a>( A )</pre> 2.1622 + 2.1623 +<p>for every pixel. It allows operations like brightness adjustment, contrast 2.1624 +adjustment, color balance or thresholding.</p> 2.1625 + 2.1626 +<p>The calculations are performed on non-premultiplied color values. If the 2.1627 +input graphics consists of premultiplied color values, those values are 2.1628 +automatically converted into non-premultiplied color values for this 2.1629 +operation. (Note that the undoing and redoing of the premultiplication can be 2.1630 +avoided if <a>'feFuncA'</a> is the identity transform 2.1631 +and all alpha values on the source graphic are set to 1.)</p> 2.1632 + 2.1633 +<p>The child elements of a <a>'feComponentTransfer'</a> element specify the 2.1634 +transfer functions for the four channels:</p> 2.1635 + 2.1636 +<ul id="transferFuncElements"> 2.1637 + <li><a>'feFuncR'</a> — transfer function for the red component of the input graphic</li> 2.1638 + <li><a>'feFuncG'</a> — transfer function for the green component of the input graphic</li> 2.1639 + <li><a>'feFuncB'</a> — transfer function for the blue component of the input graphic</li> 2.1640 + <li><a>'feFuncA'</a> — transfer function for the alpha component of the input graphic</li> 2.1641 +</ul> 2.1642 + 2.1643 +<p>The following rules apply to the processing of the <a>'feComponentTransfer'</a> element:</p> 2.1644 +<ul> 2.1645 + <li>If more than one <a>transfer function element</a> of the same kind is specified, the last occurrence is to be used.</li> 2.1646 + <li>If any of the <a>transfer function elements</a> are unspecified, the <a>'feComponentTransfer'</a> must be processed as if those <a>transfer function elements</a> were specified with their <a>'type'</a> attributes set to <span class="attr-value">'identity'</span>.</li> 2.1647 +</ul> 2.1648 + 2.1649 +<edit:with element='feFuncR'> 2.1650 + 2.1651 +<div id='feFuncRElement'> 2.1652 +<edit:elementsummary name='feFuncR'/> 2.1653 +</div> 2.1654 + 2.1655 +<div id='feFuncGElement'> 2.1656 +<edit:elementsummary name='feFuncG'/> 2.1657 +</div> 2.1658 + 2.1659 +<div id='feFuncBElement'> 2.1660 +<edit:elementsummary name='feFuncB'/> 2.1661 +</div> 2.1662 + 2.1663 +<div id='feFuncAElement'> 2.1664 +<edit:elementsummary name='feFuncA'/> 2.1665 +</div> 2.1666 + 2.1667 +<p id="TransferFunctionElementAttributes">The attributes below are the 2.1668 +<span class='SVG-TermDefine'>transfer function element attributes</span>, 2.1669 +which apply to the <a>transfer function elements</a>.</p> 2.1670 + 2.1671 +<div class="adef-list"> 2.1672 +<p><em>Attribute definitions:</em></p> 2.1673 +<dl> 2.1674 + <dt id="feComponentTransferTypeAttribute"><span class="adef">type</span> 2.1675 + = "<em>identity | table | discrete | linear | gamma</em>"</dt> 2.1676 + <dd><p>Indicates the type of component transfer function. The type of 2.1677 + function determines the applicability of the other attributes.</p> 2.1678 + <ul> 2.1679 + <li>For <span class="attr-value">identity</span>: 2.1680 + <pre>C' = C</pre> 2.1681 + </li> 2.1682 + <li>For <span class="attr-value">table</span>, the function is 2.1683 + defined by linear interpolation into a lookup table by attribute <a 2.1684 + href="#feComponentTransferTableValuesAttribute"><span 2.1685 + class="attr-name">tableValues</span></a>, which provides a list of 2.1686 + <em>n+1</em> values (i.e., v<sub>0</sub> to v<sub>n</sub>) in order 2.1687 + to identify <em>n</em> interpolation ranges. Interpolations use the 2.1688 + following formula. 2.1689 + <p>For a value <code>C</code> pick a <code>k</code> such that:</p> 2.1690 + <p class="filterformula">k/N <= C < (k+1)/N</p> 2.1691 + <p>The result <code>C'</code> is given by:</p> 2.1692 + <p class="filterformula">C' = v<sub>k</sub> + (C - k/N)*N * 2.1693 + (v<sub>k+1</sub> - v<sub>k</sub>)</p> 2.1694 + </li> 2.1695 + <li>For <span class="attr-value">discrete</span>, the function is 2.1696 + defined by the step function defined by attribute <a 2.1697 + href="#feComponentTransferTableValuesAttribute"><span 2.1698 + class="attr-name">tableValues</span></a>, which provides a list of 2.1699 + <em>n</em> values (i.e., v<sub>0</sub> to v<sub>n-1</sub>) in order 2.1700 + to identify a step function consisting of <em>n</em> steps. The 2.1701 + step function is defined by the following formula. 2.1702 + <p>For a value <code>C</code> pick a <code>k</code> such that:</p> 2.1703 + <p class="filterformula">k/N <= C < (k+1)/N</p> 2.1704 + <p>The result <code>C'</code> is given by:</p> 2.1705 + <p class="filterformula">C' = v<sub>k</sub></p> 2.1706 + </li> 2.1707 + <li>For <span class="attr-value">linear</span>, the function is 2.1708 + defined by the following linear equation: 2.1709 + <p class="filterformula">C' = <a 2.1710 + href="#feComponentTransferSlopeAttribute"><span 2.1711 + class="attr-name">slope</span></a> * C + <a 2.1712 + href="#feComponentTransferInterceptAttribute"><span 2.1713 + class="attr-name">intercept</span></a></p> 2.1714 + </li> 2.1715 + <li>For <span class="attr-value">gamma</span>, the function is 2.1716 + defined by the following exponential function: 2.1717 + <p class="filterformula">C' = <a 2.1718 + href="#feComponentTransferAmplitudeAttribute"><span 2.1719 + class="attr-name">amplitude</span></a> * pow(C, <a 2.1720 + href="#feComponentTransferExponentAttribute"><span 2.1721 + class="attr-name">exponent</span></a>) + <a 2.1722 + href="#feComponentTransferOffsetAttribute"><span 2.1723 + class="attr-name">offset</span></a></p> 2.1724 + </li> 2.1725 + </ul> 2.1726 + <span class="anim-target">Animatable: yes.</span> </dd> 2.1727 + <dt id="feComponentTransferTableValuesAttribute"><span 2.1728 + class="adef">tableValues</span> = "<em>(list of <a><number></a>s)</em>"</dt> 2.1729 + <dd>When <span class="attr-value">type="table"</span>, the list of 2.1730 + <a><number></a> 2.1731 + s <em>v0,v1,...vn</em>, separated by white space and/or a comma, which 2.1732 + define the lookup table. An empty list results in an identity transfer 2.1733 + function. If the attribute is not specified, then the effect is as if 2.1734 + an empty list were provided.<br /> 2.1735 + <span class="anim-target">Animatable: yes.</span></dd> 2.1736 + <dt id="feComponentTransferSlopeAttribute"><span 2.1737 + class="adef">slope</span> = "<em><a><number></a></em>"</dt> 2.1738 + <dd>When <span class="attr-value">type="linear"</span>, the slope of the 2.1739 + linear function.<br /> 2.1740 + If the attribute is not specified, then the effect is as if a value of 2.1741 + <span class="attr-value">1</span> were specified.<br /> 2.1742 + <span class="anim-target">Animatable: yes.</span></dd> 2.1743 + <dt id="feComponentTransferInterceptAttribute"><span 2.1744 + class="adef">intercept</span> = "<em><a><number></a></em>"</dt> 2.1745 + <dd>When <span class="attr-value">type="linear"</span>, the intercept of 2.1746 + the linear function.<br /> 2.1747 + If the attribute is not specified, then the effect is as if a value of 2.1748 + <span class="attr-value">0</span> were specified.<br /> 2.1749 + <span class="anim-target">Animatable: yes.</span></dd> 2.1750 + <dt id="feComponentTransferAmplitudeAttribute"><span 2.1751 + class="adef">amplitude</span> = "<em><a><number></a></em>"</dt> 2.1752 + <dd>When <span class="attr-value">type="gamma"</span>, the amplitude of 2.1753 + the gamma function.<br /> 2.1754 + If the attribute is not specified, then the effect is as if a value of 2.1755 + <span class="attr-value">1</span> were specified.<br /> 2.1756 + <span class="anim-target">Animatable: yes.</span></dd> 2.1757 + <dt id="feComponentTransferExponentAttribute"><span 2.1758 + class="adef">exponent</span> = "<em><a><number></a></em>"</dt> 2.1759 + <dd>When <span class="attr-value">type="gamma"</span>, the exponent of 2.1760 + the gamma function.<br /> 2.1761 + If the attribute is not specified, then the effect is as if a value of 2.1762 + <span class="attr-value">1</span> were specified.<br /> 2.1763 + <span class="anim-target">Animatable: yes.</span></dd> 2.1764 + <dt id="feComponentTransferOffsetAttribute"><span 2.1765 + class="adef">offset</span> = "<em><a><number></a></em>"</dt> 2.1766 + <dd>When <span class="attr-value">type="gamma"</span>, the offset of the 2.1767 + gamma function.<br /> 2.1768 + If the attribute is not specified, then the effect is as if a value of 2.1769 + <span class="attr-value">0</span> were specified.<br /> 2.1770 + <span class="anim-target">Animatable: yes.</span></dd> 2.1771 +</dl> 2.1772 +</div> 2.1773 +</edit:with> 2.1774 + 2.1775 +<edit:example href="examples/feComponentTransfer.svg" image="yes" link="yes"/> 2.1776 + 2.1777 +<h2 id="feCompositeElement">Filter primitive <span class="element-name">'feComposite'</span></h2> 2.1778 + 2.1779 +<edit:elementsummary name='feComposite'/> 2.1780 + 2.1781 +<p>This filter performs the combination of the two input images pixel-wise in 2.1782 +image space using one of the Porter-Duff [<a 2.1783 +href="#ref-PORTERDUFF">PORTERDUFF</a>] compositing operations: <em>over, in, 2.1784 +atop, out, xor</em>. Additionally, a component-wise <em>arithmetic</em> 2.1785 +operation (with the result clamped between [0..1]) can be applied.</p> 2.1786 + 2.1787 +<p>The <em>arithmetic</em> operation is useful for combining the output from 2.1788 +the <a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a> filters with texture 2.1789 +data. It is also useful for implementing <em>dissolve</em>. If the 2.1790 +<em>arithmetic</em> operation is chosen, each result pixel is computed using 2.1791 +the following formula:</p> 2.1792 +<pre>result = k1*i1*i2 + k2*i1 + k3*i2 + k4</pre> 2.1793 + 2.1794 +<p>For this filter primitive, the extent of the resulting image might grow as 2.1795 +described in the section that describes the <a 2.1796 +href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p> 2.1797 + 2.1798 +<div class="adef-list"> 2.1799 +<p><em>Attribute definitions:</em></p> 2.1800 +<dl> 2.1801 + <dt id="feCompositeOperatorAttribute"><span class="adef">operator</span> 2.1802 + = "<em>over | in | out | atop | xor | arithmetic</em>"</dt> 2.1803 + <dd>The compositing operation that is to be performed. All of the <span 2.1804 + class="attr-name">operator</span> types except <span 2.1805 + class="attr-value">arithmetic</span> match the correspond operation as 2.1806 + described in [<a href="#ref-PORTERDUFF">PORTERDUFF</a>]. The <span 2.1807 + class="attr-value">arithmetic</span> operator is described above.<br /> 2.1808 + <span class="anim-target">Animatable: yes.</span></dd> 2.1809 + <dt id="feCompositeK1Attribute"><span 2.1810 + class="adef">k1</span> = "<em><a><number></a></em>"</dt> 2.1811 + <dd>Only applicable if <span 2.1812 + class="attr-value">operator="arithmetic"</span>.<br /> 2.1813 + If the attribute is not specified, the effect is as if a value of "0" 2.1814 + were specified.<br /> 2.1815 + <span class="anim-target">Animatable: yes.</span></dd> 2.1816 + <dt id="feCompositeK2Attribute"><span 2.1817 + class="adef">k2</span> = "<em><a><number></a></em>"</dt> 2.1818 + <dd>Only applicable if <span 2.1819 + class="attr-value">operator="arithmetic"</span>.<br /> 2.1820 + If the attribute is not specified, the effect is as if a value of "0" 2.1821 + were specified.<br /> 2.1822 + <span class="anim-target">Animatable: yes.</span></dd> 2.1823 + <dt id="feCompositeK3Attribute"><span 2.1824 + class="adef">k3</span> = "<em><a><number></a></em>"</dt> 2.1825 + <dd>Only applicable if <span 2.1826 + class="attr-value">operator="arithmetic"</span>.<br /> 2.1827 + If the attribute is not specified, the effect is as if a value of "0" 2.1828 + were specified.<br /> 2.1829 + <span class="anim-target">Animatable: yes.</span></dd> 2.1830 + <dt id="feCompositeK4Attribute"><span 2.1831 + class="adef">k4</span> = "<em><a><number></a></em>"</dt> 2.1832 + <dd>Only applicable if <span 2.1833 + class="attr-value">operator="arithmetic"</span>.<br /> 2.1834 + If the attribute is not specified, the effect is as if a value of "0" 2.1835 + were specified.<br /> 2.1836 + <span class="anim-target">Animatable: yes.</span></dd> 2.1837 + <dt id="feCompositeIn2Attribute"> 2.1838 + <span class="adef">in2</span> = "<em>(see <a 2.1839 + href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> 2.1840 + attribute)</em>"</dt> 2.1841 + <dd>The second input image to the compositing operation. This attribute 2.1842 + can take on the same values as the <a 2.1843 + href="#FilterPrimitiveInAttribute"><span 2.1844 + class="attr-name">in</span></a> attribute.<br /> 2.1845 + <span class="anim-target">Animatable: yes.</span></dd> 2.1846 +</dl> 2.1847 +</div> 2.1848 + 2.1849 +<edit:example href="examples/feComposite.svg" image="yes" link="yes"/> 2.1850 + 2.1851 +<h2 id="feConvolveMatrixElement">Filter primitive <span class="element-name">'feConvolveMatrix'</span></h2> 2.1852 + 2.1853 +<edit:elementsummary name='feConvolveMatrix'/> 2.1854 +<edit:with element='feConvolveMatrix'> 2.1855 + 2.1856 +<p>feConvolveMatrix applies a matrix convolution filter effect. A convolution 2.1857 +combines pixels in the input image with neighboring pixels to produce a 2.1858 +resulting image. A wide variety of imaging operations can be achieved through 2.1859 +convolutions, including blurring, edge detection, sharpening, embossing and 2.1860 +beveling.</p> 2.1861 + 2.1862 +<p>A matrix convolution is based on an n-by-m matrix (the convolution kernel) 2.1863 +which describes how a given pixel value in the input image is combined with 2.1864 +its neighboring pixel values to produce a resulting pixel value. Each result 2.1865 +pixel is determined by applying the kernel matrix to the corresponding source 2.1866 +pixel and its neighboring pixels. The basic convolution formula which is 2.1867 +applied to each color value for a given pixel is:</p> 2.1868 + 2.1869 +<p class="filterformula">RESULT<sub>X,Y</sub> = ( <br /> 2.1870 +              SUM <sub>I=0 to [<a 2.1871 +href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-1]</sub> { <br /> 2.1872 +                SUM <sub>J=0 to [<a 2.1873 +href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-1]</sub> { <br /> 2.1874 +                  SOURCE <sub>X-<a>'targetX'</a>+J, Y-<a>'targetY'</a>+I</sub> * <a>'kernelMatrix'</a><sub><a 2.1875 +href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-J-1, <a 2.1876 +href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-I-1</sub> <br /> 2.1877 +                } <br /> 2.1878 +              } <br /> 2.1879 +            ) / <a>'divisor'</a> + <a>'bias'</a><br /> 2.1880 +</p> 2.1881 + 2.1882 +<div class="note-editor"> 2.1883 +ED: Consider making this into mathml</div> 2.1884 + 2.1885 +<p>where "orderX" and "orderY" represent the X and Y values for the <a>'order'</a> attribute, "targetX" represents the value 2.1886 +of the <a>'targetX'</a> attribute, "targetY" represents the 2.1887 +value of the <a>'targetY'</a> attribute, "kernelMatrix" represents the 2.1888 +value of the <a>'kernelMatrix'</a> attribute, "divisor" represents the 2.1889 +value of the <a>'divisor'</a> attribute, and "bias" represents the 2.1890 +value of the <a>'bias'</a> attribute.</p> 2.1891 + 2.1892 +<p>Note in the above formulas that the values in the kernel matrix are 2.1893 +applied such that the kernel matrix is rotated 180 degrees relative to the 2.1894 +source and destination images in order to match convolution theory as 2.1895 +described in many computer graphics textbooks.</p> 2.1896 + 2.1897 +<p>To illustrate, suppose you have a input image which is 5 pixels by 5 2.1898 +pixels, whose color values for one of the color channels are as follows:</p> 2.1899 +<pre> 0 20 40 235 235 2.1900 + 100 120 140 235 235 2.1901 + 200 220 240 235 235 2.1902 + 225 225 255 255 255 2.1903 + 225 225 255 255 255</pre> 2.1904 + 2.1905 +<div class="note-editor"> 2.1906 +ED: Consider making this into mathml</div> 2.1907 + 2.1908 +<p>and you define a 3-by-3 convolution kernel as follows:</p> 2.1909 +<pre> 1 2 3 2.1910 + 4 5 6 2.1911 + 7 8 9</pre> 2.1912 + 2.1913 +<div class="note-editor"> 2.1914 +ED: Consider making this into mathml</div> 2.1915 + 2.1916 +<p>Let's focus on the color value at the second row and second column of the 2.1917 +image (source pixel value is 120). Assuming the simplest case (where the 2.1918 +input image's pixel grid aligns perfectly with the kernel's pixel grid) and 2.1919 +assuming default values for attributes <a>'divisor'</a>, <a>'targetX'</a> and 2.1920 +<a>'targetY'</a>, then resulting color value will 2.1921 +be:</p> 2.1922 +<pre>(9* 0 + 8* 20 + 7* 40 + 2.1923 +6*100 + 5*120 + 4*140 + 2.1924 +3*200 + 2*220 + 1*240) / (9+8+7+6+5+4+3+2+1)</pre> 2.1925 + 2.1926 +<div class="note-editor"> 2.1927 +ED: Consider making this into mathml</div> 2.1928 + 2.1929 +<p>Because they operate on pixels, matrix convolutions are inherently 2.1930 +resolution-dependent. To make <a>'feConvolveMatrix'</a> produce resolution-independent 2.1931 +results, an explicit value should be provided for either the <a>'filter/filterRes'</a> attribute on the <a>'filter element'</a> element 2.1932 +and/or attribute <a>'kernelUnitLength'</a>.</p> 2.1933 + 2.1934 +<p><a>'kernelUnitLength'</a>, in combination with the other 2.1935 +attributes, defines an implicit pixel grid in the filter effects coordinate 2.1936 +system (i.e., the coordinate system established by the <a>'filter/primitiveUnits'</a> attribute). If the pixel grid 2.1937 +established by <a>'kernelUnitLength'</a> is not scaled to match the 2.1938 +pixel grid established by attribute <a>'filter/filterRes'</a> (implicitly or explicitly), then the 2.1939 +input image will be temporarily rescaled to match its pixels with <a>'kernelUnitLength'</a>. The convolution happens on the 2.1940 +resampled image. After applying the convolution, the image is resampled back 2.1941 +to the original resolution.</p> 2.1942 + 2.1943 +<p>When the image must be resampled to match the coordinate system defined by 2.1944 +<a>'kernelUnitLength'</a> prior to convolution, or 2.1945 +resampled to match the device coordinate system after convolution, it is 2.1946 +recommended that high quality viewers make use of appropriate interpolation 2.1947 +techniques, for example bilinear or bicubic. Depending on the speed of the 2.1948 +available interpolents, this choice may be affected by the <a>'image-rendering'</a> property setting. Note that 2.1949 +implementations might choose approaches that minimize or eliminate resampling 2.1950 +when not necessary to produce proper results, such as when the document is 2.1951 +zoomed out such that <a>'kernelUnitLength'</a> is 2.1952 +considerably smaller than a device pixel.</p> 2.1953 + 2.1954 +<div class="adef-list"> 2.1955 +<p><em>Attribute definitions:</em></p> 2.1956 +<dl> 2.1957 + <dt id="feConvolveMatrixElementOrderAttribute"><span 2.1958 + class="adef">order</span> = "<span 2.1959 + class="attr-value"><a><number-optional-number></a></span>"</dt> 2.1960 + <dd>Indicates the number of cells in each dimension for <a>'kernelMatrix'</a>. The values provided must be 2.1961 + <a><integer></a> 2.1962 + s greater than zero. The first number, <orderX>, indicates the 2.1963 + number of columns in the matrix. The second number, <orderY>, 2.1964 + indicates the number of rows in the matrix. If <orderY> is not 2.1965 + provided, it defaults to <orderX>.<br /> 2.1966 + A typical value is order="3". It is recommended that only small values 2.1967 + (e.g., 3) be used; higher values may result in very high CPU overhead 2.1968 + and usually do not produce results that justify the impact on 2.1969 + performance.<br /> 2.1970 + If the attribute is not specified, the effect is as if a value of "3" 2.1971 + were specified.<br /> 2.1972 + <span class="anim-target">Animatable: yes.</span></dd> 2.1973 + <dt id="feConvolveMatrixElementKernelMatrixAttribute"><span 2.1974 + class="adef">kernelMatrix</span> = "<span class="attr-value"><list of 2.1975 + numbers></span>"</dt> 2.1976 + <dd>The list of <a><number></a> 2.1977 + s that make up the kernel matrix for the convolution. Values are 2.1978 + separated by space characters and/or a comma. The number of entries in 2.1979 + the list must equal <orderX> times <orderY>.<br /> 2.1980 + <span class="anim-target">Animatable: yes.</span></dd> 2.1981 + <dt id="feConvolveMatrixElementDivisorAttribute"><span 2.1982 + class="adef">divisor</span> = "<span 2.1983 + class="attr-value"><a><number></a></span>"</dt> 2.1984 + <dd>After applying the <span class="attr-name">kernelMatrix</span> to the 2.1985 + input image to yield a number, that number is divided by <a>'divisor'</a> to yield the final destination color 2.1986 + value. A divisor that is the sum of all the matrix values tends to have 2.1987 + an evening effect on the overall color intensity of the result. If the 2.1988 + specified divisor is zero then the default value will be used instead. 2.1989 + The default value is the sum of all values in kernelMatrix, with the 2.1990 + exception that if the sum is zero, then the divisor is set to 1.<br /> 2.1991 + <span class="anim-target">Animatable: yes.</span></dd> 2.1992 + <dt id="feConvolveMatrixElementBiasAttribute"><span 2.1993 + class="adef">bias</span> = "<span 2.1994 + class="attr-value"><a><number></a></span>"</dt> 2.1995 + <dd>After applying the <span class="attr-name">kernelMatrix</span> to the 2.1996 + input image to yield a number and applying the <a>'divisor'</a>, the <a>'bias'</a> attribute is added to each component. One 2.1997 + application of <a>'bias'</a> is when it is 2.1998 + desirable to have <span class="attr-value">.5</span> gray value be the zero response of the filter. If 2.1999 + <a>'bias'</a> is not specified, then the effect 2.2000 + is as if a value of zero were specified.<br /> 2.2001 + <span class="anim-target">Animatable: yes.</span></dd> 2.2002 + <dt id="feConvolveMatrixElementTargetXAttribute"><span 2.2003 + class="adef">targetX</span> = "<span 2.2004 + class="attr-value"><a><integer></a></span>"</dt> 2.2005 + <dd>Determines the positioning in X of the convolution matrix relative to 2.2006 + a given target pixel in the input image. The leftmost column of the 2.2007 + matrix is column number zero. The value must be such that: 0 <= 2.2008 + targetX < orderX. By default, the convolution matrix is centered in 2.2009 + X over each pixel of the input image (i.e., targetX = floor ( orderX / 2.2010 + 2 )).<br /> 2.2011 + <span class="anim-target">Animatable: yes.</span></dd> 2.2012 + <dt id="feConvolveMatrixElementTargetYAttribute"><span 2.2013 + class="adef">targetY</span> = "<span 2.2014 + class="attr-value"><a><integer></a></span>"</dt> 2.2015 + <dd>Determines the positioning in Y of the convolution matrix relative to 2.2016 + a given target pixel in the input image. The topmost row of the matrix 2.2017 + is row number zero. The value must be such that: 0 <= targetY < 2.2018 + orderY. By default, the convolution matrix is centered in Y over each 2.2019 + pixel of the input image (i.e., targetY = floor ( orderY / 2 )).<br /> 2.2020 + <span class="anim-target">Animatable: yes.</span></dd> 2.2021 + <dt id="feConvolveMatrixElementEdgeModeAttribute"><span 2.2022 + class="adef">edgeMode</span> = "<span class="attr-value">duplicate | wrap | 2.2023 + none</span>"</dt> 2.2024 + <dd><p>Determines how to extend the input image as necessary with color 2.2025 + values so that the matrix operations can be applied when the kernel is 2.2026 + positioned at or near the edge of the input image.</p> 2.2027 + <p>"duplicate" indicates that the input image is extended along each of 2.2028 + its borders as necessary by duplicating the color values at the given 2.2029 + edge of the input image.</p> 2.2030 + <pre>Original N-by-M image, where m=M-1 and n=N-1: 2.2031 + 11 12 ... 1m 1M 2.2032 + 21 22 ... 2m 2M 2.2033 + .. .. ... .. .. 2.2034 + n1 n2 ... nm nM 2.2035 + N1 N2 ... Nm NM 2.2036 +Extended by two pixels using "duplicate": 2.2037 + 11 11 11 12 ... 1m 1M 1M 1M 2.2038 + 11 11 11 12 ... 1m 1M 1M 1M 2.2039 + 11 11 11 12 ... 1m 1M 1M 1M 2.2040 + 21 21 21 22 ... 2m 2M 2M 2M 2.2041 + .. .. .. .. ... .. .. .. .. 2.2042 + n1 n1 n1 n2 ... nm nM nM nM 2.2043 + N1 N1 N1 N2 ... Nm NM NM NM 2.2044 + N1 N1 N1 N2 ... Nm NM NM NM 2.2045 + N1 N1 N1 N2 ... Nm NM NM NM</pre> 2.2046 + 2.2047 + <div class="note-editor"> 2.2048 + ED: Consider making this into mathml</div> 2.2049 + <p>"wrap" indicates that the input image is extended by taking the 2.2050 + color values from the opposite edge of the image.</p> 2.2051 + <pre>Extended by two pixels using "wrap": 2.2052 + nm nM n1 n2 ... nm nM n1 n2 2.2053 + Nm NM N1 N2 ... Nm NM N1 N2 2.2054 + 1m 1M 11 12 ... 1m 1M 11 12 2.2055 + 2m 2M 21 22 ... 2m 2M 21 22 2.2056 + .. .. .. .. ... .. .. .. .. 2.2057 + nm nM n1 n2 ... nm nM n1 n2 2.2058 + Nm NM N1 N2 ... Nm NM N1 N2 2.2059 + 1m 1M 11 12 ... 1m 1M 11 12 2.2060 + 2m 2M 21 22 ... 2m 2M 21 22</pre> 2.2061 + 2.2062 + <div class="note-editor"> 2.2063 + ED: Consider making this into mathml</div> 2.2064 + <p>"none" indicates that the input image is extended with pixel values 2.2065 + of zero for R, G, B and A.</p> 2.2066 + <p><span class="anim-target">Animatable: yes.</span></p> 2.2067 + </dd> 2.2068 + <dt id="feConvolveMatrixElementKernelUnitLengthAttribute"><span 2.2069 + class="adef">kernelUnitLength</span> = "<span 2.2070 + class="attr-value"><a><number-optional-number></a></span>"</dt> 2.2071 + <dd>The first number is the <dx> value. The second number is the 2.2072 + <dy> value. If the <dy> value is not specified, it defaults 2.2073 + to the same value as <dx>. Indicates the intended distance in 2.2074 + current filter units (i.e., units as determined by the value of 2.2075 + attribute <a>'filter/primitiveUnits'</a>) between successive columns 2.2076 + and rows, respectively, in the <a>'kernelMatrix'</a>. By specifying value(s) for 2.2077 + <a>'kernelUnitLength'</a>, the kernel becomes defined 2.2078 + in a scalable, abstract coordinate system. If <a>'kernelUnitLength'</a> is not specified, the default 2.2079 + value is one pixel in the offscreen bitmap, which is a pixel-based 2.2080 + coordinate system, and thus potentially not scalable. For some level of 2.2081 + consistency across display media and user agents, it is necessary that 2.2082 + a value be provided for at least one of <a>'filter/filterRes'</a> and <a>'kernelUnitLength'</a>. 2.2083 + In some implementations, the most consistent results and the fastest performance will be achieved if 2.2084 + the pixel grid of the temporary offscreen images aligns with the pixel 2.2085 + grid of the kernel.<br /> 2.2086 + If a negative or zero value is specified the default value will be used 2.2087 + instead. <br /> 2.2088 + <span class="anim-target">Animatable: yes.</span></dd> 2.2089 + <dt id="feConvolveMatrixElementPreserveAlphaAttribute"><span 2.2090 + class="adef">preserveAlpha</span> = "<span class="attr-value">false | 2.2091 + true</span>"</dt> 2.2092 + <dd>A value of <span class="attr-value">false</span> indicates that the 2.2093 + convolution will apply to all channels, including the alpha channel.<br 2.2094 + /> 2.2095 + A value of <span class="attr-value">true</span> indicates that the 2.2096 + convolution will only apply to the color channels. In this case, the 2.2097 + filter will temporarily unpremultiply the color component values, apply 2.2098 + the kernel, and then re-premultiply at the end.<br /> 2.2099 + If <a>'preserveAlpha'</a> is not specified, then 2.2100 + the effect is as if a value of <span class="attr-value">false</span> 2.2101 + were specified.<br /> 2.2102 + <span class="anim-target">Animatable: yes.</span></dd> 2.2103 +</dl> 2.2104 +</div> 2.2105 + 2.2106 +</edit:with> 2.2107 + 2.2108 +<h2 id="feDiffuseLightingElement">Filter primitive <span 2.2109 +class="element-name">'feDiffuseLighting'</span></h2> 2.2110 + 2.2111 +<edit:elementsummary name='feDiffuseLighting'/> 2.2112 + 2.2113 +<p>This filter primitive lights an image using the alpha channel as a bump 2.2114 +map. The resulting image is an RGBA opaque image based on the light color 2.2115 +with alpha = 1.0 everywhere. The lighting calculation follows the standard 2.2116 +diffuse component of the Phong lighting model. The resulting image depends on 2.2117 +the light color, light position and surface geometry of the input bump 2.2118 +map.</p> 2.2119 + 2.2120 +<p>The light map produced by this filter primitive can be combined with a 2.2121 +texture image using the multiply term of the <em>arithmetic</em> <a>'feComposite'</a> compositing method. Multiple 2.2122 +light sources can be simulated by adding several of these light maps together 2.2123 +before applying it to the texture image.</p> 2.2124 + 2.2125 +<p>The formulas below make use of 3x3 filters. Because they operate on 2.2126 +pixels, such filters are inherently resolution-dependent. To make <a>'feDiffuseLighting'</a> produce 2.2127 +resolution-independent results, an explicit value should be provided for 2.2128 +either the <a>'filter/filterRes'</a> attribute on the <a>'filter element'</a> element 2.2129 +and/or attribute <a>'feDiffuseLighting/kernelUnitLength'</a>.</p> 2.2130 + 2.2131 +<p><a>'feDiffuseLighting/kernelUnitLength'</a>, in combination with the other 2.2132 +attributes, defines an implicit pixel grid in the filter effects coordinate 2.2133 +system (i.e., the coordinate system established by the <a>'filter/primitiveUnits'</a> attribute). If the pixel grid 2.2134 +established by <a>'feDiffuseLighting/kernelUnitLength'</a> is not scaled to match the 2.2135 +pixel grid established by attribute <a>'filter/filterRes'</a> (implicitly or explicitly), then the 2.2136 +input image will be temporarily rescaled to match its pixels with <a>'feDiffuseLighting/kernelUnitLength'</a>. The 3x3 filters are applied to the resampled image. After applying the filter, the image is resampled back 2.2137 +to its original resolution.</p> 2.2138 + 2.2139 +<p><span class="requirement" id="assert_diffuseLightingImageResampling">When the image must be resampled, it is recommended that high quality viewers make use of appropriate interpolation techniques, for example 2.2140 +bilinear or bicubic.</span> Depending on the speed of the available interpolents, 2.2141 +this choice may be affected by the <a>'image-rendering'</a> property setting. Note that 2.2142 +implementations might choose approaches that minimize or eliminate resampling 2.2143 +when not necessary to produce proper results, such as when the document is 2.2144 +zoomed out such that <a>'feDiffuseLighting/kernelUnitLength'</a> is 2.2145 +considerably smaller than a device pixel.</p> 2.2146 + 2.2147 +<p>For the formulas that follow, the 2.2148 +<code>Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>)</code> function is 2.2149 +defined as:</p> 2.2150 + 2.2151 +<div class="note-editor"> 2.2152 +ED: Consider making the following in mathml</div> 2.2153 + 2.2154 +<p class="filterformula">Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>) = 2.2155 +sqrt(A<sub>x</sub>^2+A<sub>y</sub>^2+A<sub>z</sub>^2)</p> 2.2156 + 2.2157 +<p>The resulting RGBA image is computed as follows:</p> 2.2158 + 2.2159 +<p class="filterformula">D<sub>r</sub> = k<sub>d</sub> * N.L * 2.2160 +L<sub>r</sub><br /> 2.2161 +D<sub>g</sub> = k<sub>d</sub> * N.L * L<sub>g</sub><br /> 2.2162 +D<sub>b</sub> = k<sub>d</sub> * N.L * L<sub>b</sub><br /> 2.2163 +D<sub>a</sub> = 1.0</p> 2.2164 + 2.2165 +<p>where</p> 2.2166 +<dl> 2.2167 + <dd>k<sub>d</sub> = diffuse lighting constant<br /> 2.2168 + N = surface normal unit vector, a function of x and y<br /> 2.2169 + L = unit vector pointing from surface to light, a function of x and y 2.2170 + in the point and spot light cases<br /> 2.2171 + L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light, a 2.2172 + function of x and y in the spot light case</dd> 2.2173 +</dl> 2.2174 + 2.2175 +<p>N is a function of x and y and depends on the surface gradient as 2.2176 +follows:</p> 2.2177 + 2.2178 +<p>The surface described by the input alpha image A<sub>in</sub>(x,y) is:</p> 2.2179 + 2.2180 +<p class="filterformula">Z (x,y) = surfaceScale * A<sub>in</sub>(x,y)</p> 2.2181 + 2.2182 +<p id="SurfaceNormalCalculations">Surface normal is calculated using the Sobel gradient 3x3 filter. 2.2183 +Different filter kernels are used depending on whether the given pixel is on 2.2184 +the interior or an edge. For each case, the formula is:</p> 2.2185 + 2.2186 +<p class="filterformula">N<sub>x</sub> (x,y)= - surfaceScale * 2.2187 +FACTOR<sub>x</sub> *<br /> 2.2188 +           (K <sub>x</sub>(0,0)*I(x-dx,y-dy) + 2.2189 +K<sub>x</sub>(1,0)*I(x,y-dy) + K<sub>x</sub>(2,0)*I(x+dx,y-dy) +<br /> 2.2190 +            K <sub>x</sub>(0,1)*I(x-dx,y)   + 2.2191 +K<sub>x</sub>(1,1)*I(x,y)   + K<sub>x</sub>(2,1)*I(x+dx,y)   +<br /> 2.2192 +            K <sub>x</sub>(0,2)*I(x-dx,y+dy) + 2.2193 +K<sub>x</sub>(1,2)*I(x,y+dy) + K<sub>x</sub>(2,2)*I(x+dx,y+dy))<br /> 2.2194 +N<sub>y</sub> (x,y)= - surfaceScale * FACTOR<sub>y</sub> *<br /> 2.2195 +           (K <sub>y</sub>(0,0)*I(x-dx,y-dy) + 2.2196 +K<sub>y</sub>(1,0)*I(x,y-dy) + K<sub>y</sub>(2,0)*I(x+dx,y-dy) +<br /> 2.2197 +            K <sub>y</sub>(0,1)*I(x-dx,y)   + 2.2198 +K<sub>y</sub>(1,1)*I(x,y)   + K<sub>y</sub>(2,1)*I(x+dx,y)   +<br /> 2.2199 +            K <sub>y</sub>(0,2)*I(x-dx,y+dy) + 2.2200 +K<sub>y</sub>(1,2)*I(x,y+dy) + K<sub>y</sub>(2,2)*I(x+dx,y+dy))<br /> 2.2201 +N<sub>z</sub> (x,y) = 1.0<br /> 2.2202 +<br /> 2.2203 +N = (N<sub>x</sub>, N<sub>y</sub>, N<sub>z</sub>) / 2.2204 +Norm((N<sub>x</sub>,N<sub>y</sub>,N<sub>z</sub>))</p> 2.2205 + 2.2206 +<p>In these formulas, the <code>dx</code> and <code>dy</code> values (e.g., 2.2207 +<code>I(x-dx,y-dy)</code>), represent deltas relative to a given 2.2208 +<code>(x,y)</code> position for the purpose of estimating the slope of the 2.2209 +surface at that point. These deltas are determined by the value (explicit or 2.2210 +implicit) of attribute <a>'feDiffuseLighting/kernelUnitLength'</a>.</p> 2.2211 + 2.2212 +<table summary="feDiffuseLighting formulas" border="1"> 2.2213 + <colgroup><col width="33.3%" /><col width="33.3%" /><col width="*" 2.2214 + /></colgroup> 2.2215 + <tbody> 2.2216 + <tr> 2.2217 + <td><p>Top/left corner:</p> 2.2218 + 2.2219 + <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br /> 2.2220 + K<sub>x</sub> =<br /> 2.2221 +     |  0  0  0 |<br /> 2.2222 +     |  0 -2  2 |<br /> 2.2223 +     |  0 -1  1 |<br /> 2.2224 + <br /> 2.2225 + FACTOR<sub>y</sub>=2/(3*dy)<br /> 2.2226 + K<sub>y</sub> =  <br /> 2.2227 +     |  0  0  0 |<br /> 2.2228 +     |  0 -2 -1 |<br /> 2.2229 +     |  0  2  1 |</p> 2.2230 + </td> 2.2231 + <td><p>Top row:</p> 2.2232 + 2.2233 + <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br /> 2.2234 + K<sub>x</sub> =<br /> 2.2235 +     |  0  0  0 |<br /> 2.2236 +     | -2  0  2 |<br /> 2.2237 +     | -1  0  1 |<br /> 2.2238 + <br /> 2.2239 + FACTOR<sub>y</sub>=1/(2*dy)<br /> 2.2240 + K<sub>y</sub> =  <br /> 2.2241 +     |  0  0  0 |<br /> 2.2242 +     | -1 -2 -1 |<br /> 2.2243 +     |  1  2  1 |</p> 2.2244 + </td> 2.2245 + <td><p>Top/right corner:</p> 2.2246 + 2.2247 + <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br /> 2.2248 + K<sub>x</sub> =<br /> 2.2249 +     |  0  0  0 |<br /> 2.2250 +     | -2  2  0 |<br /> 2.2251 +     | -1  1  0 |<br /> 2.2252 + <br /> 2.2253 + FACTOR<sub>y</sub>=2/(3*dy)<br /> 2.2254 + K<sub>y</sub> =  <br /> 2.2255 +     |  0  0  0 |<br /> 2.2256 +     | -1 -2  0 |<br /> 2.2257 +     |  1  2  0 |</p> 2.2258 + </td> 2.2259 + </tr> 2.2260 + <tr> 2.2261 + <td><p>Left column:</p> 2.2262 + 2.2263 + <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br /> 2.2264 + K<sub>x</sub> =<br /> 2.2265 +     | 0 -1  1 |<br /> 2.2266 +     | 0 -2  2 |<br /> 2.2267 +     | 0 -1  1 |<br /> 2.2268 + <br /> 2.2269 + FACTOR<sub>y</sub>=1/(3*dy)<br /> 2.2270 + K<sub>y</sub> =  <br /> 2.2271 +     |  0 -2 -1 |<br /> 2.2272 +     |  0  0  0 |<br /> 2.2273 +     |  0  2  1 |</p> 2.2274 + </td> 2.2275 + <td><p>Interior pixels:</p> 2.2276 + 2.2277 + <p class="filterformula">FACTOR<sub>x</sub>=1/(4*dx)<br /> 2.2278 + K<sub>x</sub> =<br /> 2.2279 +     | -1  0  1 |<br /> 2.2280 +     | -2  0  2 |<br /> 2.2281 +     | -1  0  1 |<br /> 2.2282 + <br /> 2.2283 + FACTOR<sub>y</sub>=1/(4*dy)<br /> 2.2284 + K<sub>y</sub> =  <br /> 2.2285 +     | -1 -2 -1 |<br /> 2.2286 +     |  0  0  0 |<br /> 2.2287 +     |  1  2  1 |</p> 2.2288 + </td> 2.2289 + <td><p>Right column:</p> 2.2290 + 2.2291 + <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br /> 2.2292 + K<sub>x</sub> =<br /> 2.2293 +     | -1  1  0|<br /> 2.2294 +     | -2  2  0|<br /> 2.2295 +     | -1  1  0|<br /> 2.2296 + <br /> 2.2297 + FACTOR<sub>y</sub>=1/(3*dy)<br /> 2.2298 + K<sub>y</sub> =  <br /> 2.2299 +     | -1 -2  0 |<br /> 2.2300 +     |  0  0  0 |<br /> 2.2301 +     |  1  2  0 |</p> 2.2302 + </td> 2.2303 + </tr> 2.2304 + <tr> 2.2305 + <td><p>Bottom/left corner:</p> 2.2306 + 2.2307 + <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br /> 2.2308 + K<sub>x</sub> =<br /> 2.2309 +     | 0 -1  1 |<br /> 2.2310 +     | 0 -2  2 |<br /> 2.2311 +     | 0  0  0 |<br /> 2.2312 + <br /> 2.2313 + FACTOR<sub>y</sub>=2/(3*dy)<br /> 2.2314 + K<sub>y</sub> =  <br /> 2.2315 +     |  0 -2 -1 |<br /> 2.2316 +     |  0  2  1 |<br /> 2.2317 +     |  0  0  0 |</p> 2.2318 + </td> 2.2319 + <td><p>Bottom row:</p> 2.2320 + 2.2321 + <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br /> 2.2322 + K<sub>x</sub> =<br /> 2.2323 +     | -1  0  1 |<br /> 2.2324 +     | -2  0  2 |<br /> 2.2325 +     |  0  0  0 |<br /> 2.2326 + <br /> 2.2327 + FACTOR<sub>y</sub>=1/(2*dy)<br /> 2.2328 + K<sub>y</sub> =  <br /> 2.2329 +     | -1 -2 -1 |<br /> 2.2330 +     |  1  2  1 |<br /> 2.2331 +     |  0  0  0 |</p> 2.2332 + </td> 2.2333 + <td><p>Bottom/right corner:</p> 2.2334 + 2.2335 + <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br /> 2.2336 + K<sub>x</sub> =<br /> 2.2337 +     | -1  1  0 |<br /> 2.2338 +     | -2  2  0 |<br /> 2.2339 +     |  0  0  0 |<br /> 2.2340 + <br /> 2.2341 + FACTOR<sub>y</sub>=2/(3*dy)<br /> 2.2342 + K<sub>y</sub> =  <br /> 2.2343 +     | -1 -2  0 |<br /> 2.2344 +     |  1  2  0 |<br /> 2.2345 +     |  0  0  0 |</p> 2.2346 + </td> 2.2347 + </tr> 2.2348 + </tbody> 2.2349 +</table> 2.2350 + 2.2351 +<p>L, the unit vector from the image sample to the light, is calculated as 2.2352 +follows:</p> 2.2353 + 2.2354 +<p>For Infinite light sources it is constant:</p> 2.2355 + 2.2356 +<p class="filterformula">L<sub>x</sub> = cos(azimuth)*cos(elevation)<br /> 2.2357 +L<sub>y</sub> = sin(azimuth)*cos(elevation)<br /> 2.2358 +L<sub>z</sub> = sin(elevation)</p> 2.2359 + 2.2360 +<p>For Point and spot lights it is a function of position:</p> 2.2361 + 2.2362 +<p class="filterformula">L<sub>x</sub> = Light<sub>x</sub> - x<br /> 2.2363 +L<sub>y</sub> = Light<sub>y</sub> - y<br /> 2.2364 +L<sub>z</sub> = Light<sub>z</sub> - Z(x,y)<br /> 2.2365 +<br /> 2.2366 +L = (L<sub>x</sub>, L<sub>y</sub>, L<sub>z</sub>) / Norm(L<sub>x</sub>, 2.2367 +L<sub>y</sub>, L<sub>z</sub>)</p> 2.2368 + 2.2369 +<p>where Light<sub>x</sub>, Light<sub>y</sub>, and Light<sub>z</sub> are the 2.2370 +input light position.</p> 2.2371 + 2.2372 +<p>L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub>, the light color vector, is a 2.2373 +function of position in the spot light case only:</p> 2.2374 + 2.2375 +<p class="filterformula">L<sub>r</sub> = 2.2376 +Light<sub>r</sub>*pow((-L.S),specularExponent)<br /> 2.2377 +L<sub>g</sub> = Light<sub>g</sub>*pow((-L.S),specularExponent)<br /> 2.2378 +L<sub>b</sub> = Light<sub>b</sub>*pow((-L.S),specularExponent)</p> 2.2379 + 2.2380 +<p>where S is the unit vector pointing from the light to the point 2.2381 +(pointsAtX, pointsAtY, pointsAtZ) in the x-y plane:</p> 2.2382 + 2.2383 +<p class="filterformula">S<sub>x</sub> = pointsAtX - Light<sub>x</sub><br /> 2.2384 +S<sub>y</sub> = pointsAtY - Light<sub>y</sub><br /> 2.2385 +S<sub>z</sub> = pointsAtZ - Light<sub>z</sub><br /> 2.2386 +<br /> 2.2387 +S = (S<sub>x</sub>, S<sub>y</sub>, S<sub>z</sub>) / Norm(S<sub>x</sub>, 2.2388 +S<sub>y</sub>, S<sub>z</sub>)</p> 2.2389 + 2.2390 +<p>If L.S is positive, no light is present. (L<sub>r</sub> = L<sub>g</sub> = 2.2391 +L<sub>b</sub> = 0). If <a>'feSpotLight/limitingConeAngle'</a> is specified, -L.S < cos(limitingConeAngle) also indicates that no light is present.</p> 2.2392 + 2.2393 +<div class="adef-list"> 2.2394 +<p><em>Attribute definitions:</em></p> 2.2395 +<dl> 2.2396 + <dt id="feDiffuseLightingSurfaceScaleAttribute"><span 2.2397 + class="adef">surfaceScale</span> = "<em><a><number></a></em>"</dt> 2.2398 + <dd>height of surface when A<sub>in</sub> = 1.<br /> 2.2399 + If the attribute is not specified, then the effect is as if a value of 2.2400 + <span class="attr-value">1</span> were specified.<br /> 2.2401 + <span class="anim-target">Animatable: yes.</span></dd> 2.2402 + <dt id="feDiffuseLightingDiffuseConstantAttribute"><span 2.2403 + class="adef">diffuseConstant</span> = "<em><a><number></a></em>"</dt> 2.2404 + <dd>kd in Phong lighting model. In SVG, this can be any non-negative 2.2405 + number.<br /> 2.2406 + If the attribute is not specified, then the effect is as if a value of 2.2407 + <span class="attr-value">1</span> were specified.<br /> 2.2408 + <span class="anim-target">Animatable: yes.</span></dd> 2.2409 + <dt id="feDiffuseLightingKernelUnitLengthAttribute"><span 2.2410 + class="adef">kernelUnitLength</span> = "<span 2.2411 + class="attr-value"><a><number-optional-number></a></span>"</dt> 2.2412 + <dd>The first number is the <dx> value. The second number is the 2.2413 + <dy> value. If the <dy> value is not specified, it defaults 2.2414 + to the same value as <dx>. Indicates the intended distance in 2.2415 + current filter units (i.e., units as determined by the value of 2.2416 + attribute <a>'filter/primitiveUnits'</a>) for <code>dx</code> and 2.2417 + <code>dy</code>, respectively, in the <a 2.2418 + href="#SurfaceNormalCalculations">surface normal calculation 2.2419 + formulas</a>. By specifying value(s) for <span 2.2420 + class="attr-name">kernelUnitLength</span>, the kernel becomes defined 2.2421 + in a scalable, abstract coordinate system. If <span 2.2422 + class="attr-name">kernelUnitLength</span> is not specified, the 2.2423 + <code>dx</code> and <code>dy</code> values should represent very small 2.2424 + deltas relative to a given <code>(x,y)</code> position, which might be 2.2425 + implemented in some cases as one pixel in the intermediate image 2.2426 + offscreen bitmap, which is a pixel-based coordinate system, and thus 2.2427 + potentially not scalable. For some level of consistency across display 2.2428 + media and user agents, it is necessary that a value be provided for at 2.2429 + least one of <a>'filter/filterRes'</a> and <span 2.2430 + class="attr-name">kernelUnitLength</span>. Discussion of intermediate 2.2431 + images are in the <a href="#Introduction">Introduction</a> and in the 2.2432 + description of attribute <a>'filter/filterRes'</a>.<br /> 2.2433 + If a negative or zero value is specified the default value will be used 2.2434 + instead. <br /> 2.2435 + <span class="anim-target">Animatable: yes.</span></dd> 2.2436 +</dl> 2.2437 +</div> 2.2438 + 2.2439 +<p>The light source is defined by one of the child elements <a>'feDistantLight'</a>, 2.2440 +<a>'fePointLight'</a> or <a>'feSpotLight'</a>. The light color is specified 2.2441 +by property <a>'lighting-color'</a>.</p> 2.2442 + 2.2443 +<h2 id="feDisplacementMapElement">Filter primitive <span class="element-name">'feDisplacementMap'</span></h2> 2.2444 + 2.2445 +<edit:elementsummary name='feDisplacementMap'/> 2.2446 + 2.2447 +<p>This filter primitive uses the pixels values from the image from <a>'feDisplacementMap/in2'</a> 2.2448 +to spatially displace the image from <a>'in'</a>. 2.2449 +This is the transformation to be performed:</p> 2.2450 + 2.2451 +<pre> P'(x,y) ↠P( x + scale * (XC(x,y) - .5), y + scale * (YC(x,y) - .5)) 2.2452 + </pre> 2.2453 + 2.2454 +<p>where P(x,y) is the input image, <a>'in'</a>, and 2.2455 +P'(x,y) is the destination. XC(x,y) and YC(x,y) are the component values of 2.2456 +the channel designated by the <a>'feDisplacementMap/xChannelSelector'</a> and 2.2457 +<a>'feDisplacementMap/yChannelSelector'</a>. For example, to use the R component of <a>'feDisplacementMap/in2'</a> 2.2458 +to control displacement in x and the G component of Image2 to control 2.2459 +displacement in y, set <a>'feDisplacementMap/xChannelSelector'</a> to <span class="attr-value">"R"</span> and 2.2460 +<a>'feDisplacementMap/yChannelSelector'</a> to <span class="attr-value">"G"</span>.</p> 2.2461 + 2.2462 +<p>The displacement map, <a>'feDisplacementMap/in2'</a>, defines the inverse of the mapping 2.2463 +performed.</p> 2.2464 + 2.2465 +<p>The input image in is to remain premultiplied for this filter primitive. The calculations using the pixel values from <a>'feDisplacementMap/in2'</a> are performed using non-premultiplied color values. If the image from <a>'feDisplacementMap/in2'</a> consists of premultiplied color values, those values are automatically converted into non-premultiplied color values before performing this operation.</p> 2.2466 + 2.2467 +<p>This filter can have arbitrary non-localized effect on the input which 2.2468 +might require substantial buffering in the processing pipeline. However with 2.2469 +this formulation, any intermediate buffering needs can be determined by 2.2470 +<a>'feDisplacementMap/scale'</a> which represents the maximum range of displacement in either x 2.2471 +or y.</p> 2.2472 + 2.2473 +<p>When applying this filter, the source pixel location will often lie 2.2474 +between several source pixels. In this case it is recommended that high 2.2475 +quality viewers apply an interpolent on the surrounding pixels, for example 2.2476 +bilinear or bicubic, rather than simply selecting the nearest source pixel. 2.2477 +Depending on the speed of the available interpolents, this choice may be 2.2478 +affected by the <a>'image-rendering'</a> property 2.2479 +setting.</p> 2.2480 + 2.2481 +<p>The <a>'color-interpolation-filters'</a> property only applies to the 2.2482 + <a>'feDisplacementMap/in2'</a> source image and does not apply to the <a>'in'</a> source image. 2.2483 + The <a>'in'</a> source image must remain in its current color space. 2.2484 +</p> 2.2485 + 2.2486 +<div class="adef-list"> 2.2487 +<p><em>Attribute definitions:</em></p> 2.2488 +<dl> 2.2489 + <dt id="feDisplacementMapScaleAttribute"><span class="adef">scale</span> 2.2490 + = "<em><a><number></a></em>"</dt> 2.2491 + <dd>Displacement scale factor. The amount is expressed in the coordinate 2.2492 + system established by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 2.2493 + element.<br /> 2.2494 + When the value of this attribute is <span class="attr-value">0</span>, 2.2495 + this operation has no effect on the source image.<br /> 2.2496 + <p>The <a>lacuna value</a> for <a>'feDisplacementMap/scale'</a> is <span class="attr-value">0</span>.</p> 2.2497 + <span class="anim-target">Animatable: yes.</span></dd> 2.2498 + <dt id="feDisplacementMapXChannelSelectorAttribute"><span 2.2499 + class="adef">xChannelSelector</span> = "<em>R | G | B | A</em>"</dt> 2.2500 + <dd>Indicates which channel from <a>'feDisplacementMap/in2'</a> to use to displace the pixels in <a>'in'</a> along the x-axis. 2.2501 + The <a>lacuna value</a> for <a>'xChannelSelector'</a> is <span class="attr-value">A</span>. 2.2502 + <br /> 2.2503 + <span class="anim-target">Animatable: yes.</span></dd> 2.2504 + <dt id="feDisplacementMapYChannelSelectorAttribute"><span 2.2505 + class="adef">yChannelSelector</span> = "<em>R | G | B | A</em>"</dt> 2.2506 + <dd>Indicates which channel from <a>'feDisplacementMap/in2'</a> to use to displace the pixels in <a>'in'</a> along the y-axis. 2.2507 + The <a>lacuna value</a> for <a>'yChannelSelector'</a> is <span class="attr-value">A</span>. 2.2508 + <br /> 2.2509 + <span class="anim-target">Animatable: yes.</span></dd> 2.2510 + <dt id="feDisplacementMapIn2Attribute"><span class="adef">in2</span> = 2.2511 + "<em>(see <a>'in'</a> attribute)</em>"</dt> 2.2512 + <dd>The second input image, which is used to displace the pixels in the 2.2513 + image from attribute <a>'in'</a>. This attribute can take on the same 2.2514 + values as the <a>'in'</a> attribute.<br /> 2.2515 + <span class="anim-target">Animatable: yes.</span></dd> 2.2516 +</dl> 2.2517 +</div> 2.2518 + 2.2519 +<h2 id="feFloodElement">Filter primitive <span 2.2520 +class="element-name">'feFlood'</span></h2> 2.2521 + 2.2522 +<edit:elementsummary name='feFlood'/> 2.2523 + 2.2524 +<p>This filter primitive creates a rectangle filled with the color and 2.2525 +opacity values from properties <span class="prop-name">'flood-color'</span> 2.2526 +and <span class="prop-name">'flood-opacity'</span>. The rectangle is as large 2.2527 +as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> 2.2528 +established by the <span class="element-name">'feFlood'</span> element.</p> 2.2529 + 2.2530 +<div class="adef-list"> 2.2531 + </div> 2.2532 + 2.2533 +<p>The <span class="prop-name">'flood-color'</span> property indicates what 2.2534 +color to use to flood the current <a href="#FilterPrimitiveSubRegion">filter 2.2535 +primitive subregion</a>. The keyword <span 2.2536 +class="attr-value">currentColor</span> and ICC colors can be specified in the 2.2537 +same manner as within a <paint> specification for the <span 2.2538 +class="prop-name">'fill'</span> and <span class="prop-name">'stroke'</span> 2.2539 +properties.</p> 2.2540 + 2.2541 +<div class="propdef"> 2.2542 +<dl> 2.2543 + <dt id="FloodColorProperty"><span class="propdef-title prop-name">'flood-color'</span></dt> 2.2544 + <dd> 2.2545 + <table summary="flood-color property" class="propinfo" cellspacing="0" 2.2546 + cellpadding="0"> 2.2547 + <tbody> 2.2548 + <tr valign="baseline"> 2.2549 + <td><em>Value:</em>  </td> 2.2550 + <td>currentColor |<br /> 2.2551 + <a><color></a> 2.2552 + [<a><icccolor></a>] |<br /> 2.2553 + <a class="noxref" 2.2554 + href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span 2.2555 + class="value-inst-inherit noxref">inherit</span></a></td> 2.2556 + </tr> 2.2557 + <tr valign="baseline"> 2.2558 + <td><em>Initial:</em>  </td> 2.2559 + <td>black</td> 2.2560 + </tr> 2.2561 + <tr valign="baseline"> 2.2562 + <td><em>Applies to:</em>  </td> 2.2563 + <td><a href="#feFloodElement"><span 2.2564 + class="element-name">'feFlood'</span></a> and <a 2.2565 + href="#feDropShadowElement"><span 2.2566 + class="element-name">'feDropShadow'</span></a> elements</td> 2.2567 + </tr> 2.2568 + <tr valign="baseline"> 2.2569 + <td><em>Inherited:</em>  </td> 2.2570 + <td>no</td> 2.2571 + </tr> 2.2572 + <tr valign="baseline"> 2.2573 + <td><em>Percentages:</em>  </td> 2.2574 + <td>N/A</td> 2.2575 + </tr> 2.2576 + <tr valign="baseline"> 2.2577 + <td><em>Media:</em>  </td> 2.2578 + <td>visual</td> 2.2579 + </tr> 2.2580 + <tr valign="baseline"> 2.2581 + <td><em>Animatable:</em>  </td> 2.2582 + <td>yes</td> 2.2583 + </tr> 2.2584 + </tbody> 2.2585 + </table> 2.2586 + </dd> 2.2587 +</dl> 2.2588 +</div> 2.2589 + 2.2590 +<p>The <span class="prop-name">'flood-opacity'</span> property defines the 2.2591 +opacity value to use across the entire <a 2.2592 +href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p> 2.2593 + 2.2594 +<div class="propdef"> 2.2595 +<dl> 2.2596 + <dt id="OpacityFloodOpacityProperty"><span class="propdef-title prop-name">'flood-opacity'</span></dt> 2.2597 + <dd> 2.2598 + <table summary="flood-opacity property" class="propinfo" 2.2599 + cellspacing="0" cellpadding="0"> 2.2600 + <tbody> 2.2601 + <tr valign="baseline"> 2.2602 + <td><em>Value:</em>  </td> 2.2603 + <td><opacity-value> | <a class="noxref" 2.2604 + href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span 2.2605 + class="value-inst-inherit noxref">inherit</span></a></td> 2.2606 + </tr> 2.2607 + <tr valign="baseline"> 2.2608 + <td><em>Initial:</em>  </td> 2.2609 + <td>1</td> 2.2610 + </tr> 2.2611 + <tr valign="baseline"> 2.2612 + <td><em>Applies to:</em>  </td> 2.2613 + <td><a href="#feFloodElement"><span 2.2614 + class="element-name">'feFlood'</span></a> and <a 2.2615 + href="#feDropShadowElement"><span 2.2616 + class="element-name">'feDropShadow'</span></a> elements</td> 2.2617 + </tr> 2.2618 + <tr valign="baseline"> 2.2619 + <td><em>Inherited:</em>  </td> 2.2620 + <td>no</td> 2.2621 + </tr> 2.2622 + <tr valign="baseline"> 2.2623 + <td><em>Percentages:</em>  </td> 2.2624 + <td>N/A</td> 2.2625 + </tr> 2.2626 + <tr valign="baseline"> 2.2627 + <td><em>Media:</em>  </td> 2.2628 + <td>visual</td> 2.2629 + </tr> 2.2630 + <tr valign="baseline"> 2.2631 + <td><em>Animatable:</em>  </td> 2.2632 + <td>yes</td> 2.2633 + </tr> 2.2634 + </tbody> 2.2635 + </table> 2.2636 + </dd> 2.2637 +</dl> 2.2638 +</div> 2.2639 + 2.2640 +<h2 id="feGaussianBlurElement">Filter primitive <span 2.2641 +class="element-name">'feGaussianBlur'</span></h2> 2.2642 + 2.2643 +<edit:elementsummary name='feGaussianBlur'/> 2.2644 + 2.2645 +<p>This filter primitive performs a Gaussian blur on the input image.</p> 2.2646 + 2.2647 +<p>The Gaussian blur kernel is an approximation of the normalized 2.2648 +convolution:</p> 2.2649 + 2.2650 +<p class="filterformula">G(x,y) = H(x)I(y)</p> 2.2651 +<p>where 2.2652 +<span >H(x) = exp(-x^2/ (2s^2)) / sqrt(2* pi*s^2)</span> 2.2653 +</p> 2.2654 +<p>and</p> 2.2655 +<p class="filterformula">I(y) = exp(-y^2/ (2t^2)) / sqrt(2* pi*t^2)</p> 2.2656 +<p>with 's' being the standard deviation in the x direction 2.2657 +and 't' being the standard deviation in the y direction, as specified by <a 2.2658 +href="#feGaussianBlurStdDeviationAttribute"><span 2.2659 +class="attr-name">stdDeviation</span></a>.</p> 2.2660 + 2.2661 +<p>The value of <a href="#feGaussianBlurStdDeviationAttribute"><span 2.2662 +class="attr-name">stdDeviation</span></a> can be either one or two numbers. 2.2663 +If two numbers are provided, the first number represents a standard deviation 2.2664 +value along the x-axis of the current coordinate system and the second value 2.2665 +represents a standard deviation in Y. If one number is provided, then that 2.2666 +value is used for both X and Y.</p> 2.2667 + 2.2668 +<p>Even if only one value is provided for <a 2.2669 +href="#feGaussianBlurStdDeviationAttribute"><span 2.2670 +class="attr-name">stdDeviation</span></a>, this can be implemented as a 2.2671 +separable convolution.</p> 2.2672 + 2.2673 +<p>For larger values of 's' (s >= 2.0), an approximation can be used: 2.2674 +Three successive box-blurs build a piece-wise quadratic convolution kernel, 2.2675 +which approximates the Gaussian kernel to within roughly 3%.</p> 2.2676 + 2.2677 +<p class="filterformula">let d = floor(s * 3*sqrt(2*pi)/4 + 0.5)</p> 2.2678 + 2.2679 +<p>... if d is odd, use three box-blurs of size 'd', centered on the output 2.2680 +pixel.</p> 2.2681 + 2.2682 +<p>... if d is even, two box-blurs of size 'd' (the first one centered on the 2.2683 +pixel boundary between the output pixel and the one to the left, the second 2.2684 +one centered on the pixel boundary between the output pixel and the one to 2.2685 +the right) and one box blur of size 'd+1' centered on the output pixel.</p> 2.2686 + 2.2687 +<p>Frequently this operation will take place on alpha-only images, such as 2.2688 +that produced by the built-in input, <a href="#SourceAlpha"><span 2.2689 +class="attr-value">SourceAlpha</span></a>. The implementation may notice this 2.2690 +and optimize the single channel case. If the input has infinite extent and is 2.2691 +constant, this operation has no effect. If the input has infinite extent and 2.2692 +is a tile, the filter is evaluated with periodic boundary conditions.</p> 2.2693 + 2.2694 +<div class="adef-list"> 2.2695 +<p><em>Attribute definitions:</em></p> 2.2696 +<dl> 2.2697 + <dt id="feGaussianBlurStdDeviationAttribute"><span 2.2698 + class="adef">stdDeviation</span> = 2.2699 + "<em><a><number-optional-number></a></em>"</dt> 2.2700 + <dd>The standard deviation for the blur operation. If two <a><number></a> 2.2701 + s are provided, the first number represents a standard deviation value 2.2702 + along the x-axis of the coordinate system established by attribute <a>'filter/primitiveUnits'</a> on the <a 2.2703 + href="#FilterElement"><span class="element-name">'filter'</span></a> 2.2704 + element. The second value represents a standard deviation in Y. If one 2.2705 + number is provided, then that value is used for both X and Y.<br /> 2.2706 + A value of zero disables the effect of the given filter primitive (i.e., the result is the filter input image).<br /> 2.2707 + If the attribute is not specified, then the effect is as if a value of 2.2708 + <span class="attr-value">0</span> were specified.<br /> 2.2709 + <span class="anim-target">Animatable: yes.</span></dd> 2.2710 +</dl> 2.2711 +</div> 2.2712 + 2.2713 +<p><a href="#AnExample">The example</a> at the start of this chapter makes 2.2714 +use of the <a>'feGaussianBlur'</a> filter primitive 2.2715 +to create a drop shadow effect.</p> 2.2716 + 2.2717 +<h2 id="feUnsharpMaskElement">Filter primitive <span 2.2718 +class="element-name">'feUnsharpMask'</span></h2> 2.2719 + 2.2720 +<edit:elementsummary name='feUnsharpMask'/> 2.2721 + 2.2722 +<p>This filter primitive performs an image sharpening operation on the input image. This is traditionally known as an unsharp mask operation.</p> 2.2723 + 2.2724 +<p>The filter first does a <a>'feGaussianBlur'</a> operation on the input image and then subtracts the difference between the input image and the blurred image.</p> 2.2725 + 2.2726 +<p> 2.2727 +For controlling the result there are three attributes that can be used: 2.2728 + <ul> 2.2729 + <li>the <a>'feUnsharpMask/stdDeviation'</a> attribute controls how much to blur the input image</li> 2.2730 + <li>the <a>'feUnsharpMask/threshold'</a> attribute can be used for controlling when the difference should not be subtracted</li> 2.2731 + <li>the <a>'feUnsharpMask/amount'</a> attribute specifies an optional multiplier for the difference to subtract</li> 2.2732 + </ul> 2.2733 +</p> 2.2734 + 2.2735 +<h2 id="feImageElement">Filter primitive <span 2.2736 +class="element-name">'feImage'</span></h2> 2.2737 + 2.2738 +<edit:elementsummary name='feImage'/> 2.2739 + 2.2740 +<p>This filter primitive refers to a graphic external to this filter element, 2.2741 +which is loaded or rendered into an RGBA raster and becomes the result of the 2.2742 +filter primitive.</p> 2.2743 + 2.2744 +<p>This filter primitive can refer to an external image or can be a reference 2.2745 +to another piece of SVG. It produces an image similar to the built-in image 2.2746 +source <a href="#SourceGraphic"><span 2.2747 +class="attr-value">SourceGraphic</span></a> except that the graphic comes 2.2748 +from an external source.</p> 2.2749 + 2.2750 +<p>If the <span class="attr-name">xlink:href</span> references a stand-alone 2.2751 +image resource such as a JPEG, PNG or SVG file, then the image resource is 2.2752 +rendered according to the behavior of the <span 2.2753 +class="element-name">'image'</span> element; otherwise, the referenced 2.2754 +resource is rendered according to the behavior of the <span 2.2755 +class="element-name">'use'</span> element. In either case, the current user 2.2756 +coordinate system depends on the value of attribute <a>'filter/primitiveUnits'</a> on the <a 2.2757 +href="#FilterElement"><span class="element-name">'filter'</span></a> element. 2.2758 +The processing of the <span class="attr-name">preserveAspectRatio</span> 2.2759 +attribute on the <span class="element-name">'feImage'</span> element is 2.2760 +identical to that of the <a href="struct.html#ImageElement"><span 2.2761 +class="element-name">'image'</span></a> element.</p> 2.2762 + 2.2763 +<p><span class="requirement" id="assert_hqImageResampling">When the referenced image must be resampled to match the device coordinate 2.2764 +system, it is recommended that high quality viewers make use of appropriate 2.2765 +interpolation techniques, for example bilinear or bicubic.</span> Depending on the 2.2766 +speed of the available interpolents, this choice may be affected by the <span 2.2767 +class="prop-name">'image-rendering'</span> property setting.</p> 2.2768 + 2.2769 +<div class="adef-list"> 2.2770 +<p><em>Attribute definitions:</em></p> 2.2771 +<dl> 2.2772 + <dt id="feImageHrefAttribute"><span 2.2773 + class="adef">xlink:href</span> = 2.2774 + "<span class="attr-value"><IRI></span>"</dt> 2.2775 + <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 2.2776 + to an image resource or to an element. 2.2777 + <br /> 2.2778 + <span class="anim-target">Animatable: yes.</span></dd> 2.2779 + </dl> 2.2780 +</div> 2.2781 + 2.2782 +<h2 id="feMergeElement">Filter primitive <span 2.2783 +class="element-name">'feMerge'</span></h2> 2.2784 + 2.2785 +<edit:elementsummary name='feMerge'/> 2.2786 +<edit:elementsummary name='feMergeNode'/> 2.2787 + 2.2788 +<p>This filter primitive composites input image layers on top of each other 2.2789 +using the <em>over</em> operator with <em>Input1</em> (corresponding to the 2.2790 +first <a href="#feMergeNodeElement"><span 2.2791 +class="element-name">'feMergeNode'</span></a> child element) on the bottom 2.2792 +and the last specified input, <em>InputN</em> (corresponding to the last <a 2.2793 +href="#feMergeNodeElement"><span 2.2794 +class="element-name">'feMergeNode'</span></a> child element), on top.</p> 2.2795 + 2.2796 +<p>Many effects produce a number of intermediate layers in order to create 2.2797 +the final output image. This filter allows us to collapse those into a single 2.2798 +image. Although this could be done by using n-1 Composite-filters, it is more 2.2799 +convenient to have this common operation available in this form, and offers 2.2800 +the implementation some additional flexibility.</p> 2.2801 + 2.2802 +<p>Each 'feMerge' element can have any number of 'feMergeNode' subelements, 2.2803 +each of which has an <a href="#CommonAttributes"><span 2.2804 +class="attr-name">in</span></a> attribute.</p> 2.2805 + 2.2806 +<p>The canonical implementation of feMerge is to render the entire effect 2.2807 +into one RGBA layer, and then render the resulting layer on the output 2.2808 +device. In certain cases (in particular if the output device itself is a 2.2809 +continuous tone device), and since merging is associative, it might be a 2.2810 +sufficient approximation to evaluate the effect one layer at a time and 2.2811 +render each layer individually onto the output device bottom to top.</p> 2.2812 + 2.2813 +<p>If the topmost image input is <a href="#SourceGraphic"><span 2.2814 +class="attr-value">SourceGraphic</span></a> and this <span 2.2815 +class="element-name">'feMerge'</span> is the last filter primitive in the 2.2816 +filter, the implementation is encouraged to render the layers up to that 2.2817 +point, and then render the <a href="#SourceGraphic"><span 2.2818 +class="attr-value">SourceGraphic</span></a> directly from its vector 2.2819 +description on top.</p> 2.2820 + 2.2821 +<p id="feMergeNode"><a href="#AnExample">The example</a> at the start of this chapter makes 2.2822 +use of the <span class="element-name">feMerge</span> filter primitive to 2.2823 +composite two intermediate filter results together.</p> 2.2824 + 2.2825 +<h2 id="feMorphologyElement">Filter primitive <span 2.2826 +class="element-name">'feMorphology'</span></h2> 2.2827 + 2.2828 +<edit:elementsummary name='feMorphology'/> 2.2829 + 2.2830 +<p>This filter primitive performs "fattening" or "thinning" of artwork. It is 2.2831 +particularly useful for fattening or thinning an alpha channel.</p> 2.2832 + 2.2833 +<p>The dilation (or erosion) kernel is a rectangle with a width of 2.2834 +2*<em>x-radius</em> and a height of 2*<em>y-radius</em>. In dilation, the 2.2835 +output pixel is the individual component-wise maximum of the corresponding 2.2836 +R,G,B,A values in the input image's kernel rectangle. In erosion, the output 2.2837 +pixel is the individual component-wise minimum of the corresponding R,G,B,A 2.2838 +values in the input image's kernel rectangle.</p> 2.2839 + 2.2840 +<p>Frequently this operation will take place on alpha-only images, such as 2.2841 +that produced by the built-in input, <a href="#SourceAlpha"><span 2.2842 +class="attr-value">SourceAlpha</span></a>. In that case, the implementation 2.2843 +might want to optimize the single channel case.</p> 2.2844 + 2.2845 +<p>If the input has infinite extent and is constant, this operation has no 2.2846 +effect. If the input has infinite extent and is a tile, the filter is 2.2847 +evaluated with periodic boundary conditions.</p> 2.2848 + 2.2849 +<p>Because <span class="element-name">'feMorphology'</span> operates on 2.2850 +premultipied color values, it will always result in color values less than or 2.2851 +equal to the alpha channel.</p> 2.2852 + 2.2853 +<div class="adef-list"> 2.2854 +<p><em>Attribute definitions:</em></p> 2.2855 +<dl> 2.2856 + <dt id="feMorphologyOperatorAttribute"><span 2.2857 + class="adef">operator</span> = "<em>erode | dilate</em>"</dt> 2.2858 + <dd>A keyword indicating whether to erode (i.e., thin) or dilate (fatten) 2.2859 + the source graphic.<br /> 2.2860 + <span class="anim-target">Animatable: yes.</span></dd> 2.2861 + <dt id="feMorphologyRadiusAttribute"><span class="adef">radius</span> = 2.2862 + "<em><a><number-optional-number></a></em>"</dt> 2.2863 + <dd>The radius (or radii) for the operation. If two <a><number></a> 2.2864 + s are provided, the first number represents a x-radius and the second 2.2865 + value represents a y-radius. If one number is provided, then that value 2.2866 + is used for both X and Y. The values are in the coordinate system 2.2867 + established by attribute <a>'filter/primitiveUnits'</a> on the <a 2.2868 + href="#FilterElement"><span class="element-name">'filter'</span></a> 2.2869 + element.<br /> 2.2870 + A negative or zero value disables the effect of the given filter 2.2871 + primitive (i.e., the result is a transparent black image).<br /> 2.2872 + If the attribute is not specified, then the effect is as if a value of 2.2873 + <span class="attr-value">0</span> were specified.<br /> 2.2874 + <span class="anim-target">Animatable: yes.</span></dd> 2.2875 +</dl> 2.2876 +</div> 2.2877 + 2.2878 +<edit:example href="examples/feMorphology.svg" image="yes" link="yes"/> 2.2879 + 2.2880 +<h2 id="feOffsetElement">Filter primitive <span 2.2881 +class="element-name">'feOffset'</span></h2> 2.2882 + 2.2883 +<edit:elementsummary name='feOffset'/> 2.2884 + 2.2885 +<p>This filter primitive offsets the input image relative to its current 2.2886 +position in the image space by the specified vector.</p> 2.2887 + 2.2888 +<p>This is important for effects like drop shadows.</p> 2.2889 + 2.2890 +<p>When applying this filter, the destination location may be offset by a 2.2891 +fraction of a pixel in device space. <span class="requirement" id="assert_hqFeOffsetInterpolation">In this case a high quality viewer 2.2892 +should make use of appropriate interpolation techniques, for example bilinear 2.2893 +or bicubic.</span> This is especially recommended for dynamic viewers where this 2.2894 +interpolation provides visually smoother movement of images. For static 2.2895 +viewers this is less of a concern. Close attention should be made to the 2.2896 +<span class="prop-name">'image-rendering'</span> property setting to 2.2897 +determine the authors intent.</p> 2.2898 + 2.2899 +<div class="adef-list"> 2.2900 +<p><em>Attribute definitions:</em></p> 2.2901 +<dl> 2.2902 + <dt id="feOffsetDxAttribute"><span 2.2903 + class="adef">dx</span> = "<em><a><number></a></em>"</dt> 2.2904 + <dd>The amount to offset the input graphic along the x-axis. The offset 2.2905 + amount is expressed in the coordinate system established by attribute 2.2906 + <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 2.2907 + element.<br /> 2.2908 + If the attribute is not specified, then the effect is as if a value of 2.2909 + <span class="attr-value">0</span> were specified.<br /> 2.2910 + <span class="anim-target">Animatable: yes.</span></dd> 2.2911 + <dt id="feOffsetDyAttribute"><span 2.2912 + class="adef">dy</span> = "<em><a><number></a></em>"</dt> 2.2913 + <dd>The amount to offset the input graphic along the y-axis. The offset 2.2914 + amount is expressed in the coordinate system established by attribute 2.2915 + <a>'filter/primitiveUnits'</a> on the <a 2.2916 + href="#FilterElement"><span class="element-name">'filter'</span></a> 2.2917 + element.<br /> 2.2918 + If the attribute is not specified, then the effect is as if a value of 2.2919 + <span class="attr-value">0</span> were specified.<br /> 2.2920 + <span class="anim-target">Animatable: yes.</span></dd> 2.2921 +</dl> 2.2922 +</div> 2.2923 + 2.2924 +<p><a href="#AnExample">The example</a> at the start of this chapter makes 2.2925 +use of the <span class="element-name">feOffset</span> filter primitive to 2.2926 +offset the drop shadow from the original source graphic.</p> 2.2927 + 2.2928 +<h2 id="feSpecularLightingElement">Filter primitive <span 2.2929 +class="element-name">'feSpecularLighting'</span></h2> 2.2930 + 2.2931 +<edit:elementsummary name='feSpecularLighting'/> 2.2932 + 2.2933 +<p>This filter primitive lights a source graphic using the alpha channel as a 2.2934 +bump map. The resulting image is an RGBA image based on the light color. The 2.2935 +lighting calculation follows the standard specular component of the Phong 2.2936 +lighting model. The resulting image depends on the light color, light 2.2937 +position and surface geometry of the input bump map. The result of the 2.2938 +lighting calculation is added. The filter primitive assumes that the viewer 2.2939 +is at infinity in the z direction (i.e., the unit vector in the eye direction 2.2940 +is (0,0,1) everywhere).</p> 2.2941 + 2.2942 +<p>This filter primitive produces an image which contains the specular 2.2943 +reflection part of the lighting calculation. Such a map is intended to be 2.2944 +combined with a texture using the <em>add</em> term of the 2.2945 +<em>arithmetic</em> <a href="#feCompositeElement"><span 2.2946 +class="element-name">'feComposite'</span></a> method. Multiple light sources 2.2947 +can be simulated by adding several of these light maps before applying it to 2.2948 +the texture image.</p> 2.2949 + 2.2950 +<p>The resulting RGBA image is computed as follows:</p> 2.2951 + 2.2952 +<p class="filterformula">S<sub>r</sub> = k<sub>s</sub> * pow(N.H, 2.2953 +specularExponent) * L<sub>r<br /> 2.2954 +</sub> S<sub>g</sub> = k<sub>s</sub> * pow(N.H, specularExponent) * 2.2955 +L<sub>g<br /> 2.2956 +</sub> S<sub>b</sub> = k<sub>s</sub> * pow(N.H, specularExponent) * 2.2957 +L<sub>b<br /> 2.2958 +</sub> S<sub>a</sub> = max(S<sub>r,</sub> S<sub>g,</sub> S<sub>b</sub>)</p> 2.2959 + 2.2960 +<p>where</p> 2.2961 +<dl> 2.2962 + <dd>k<sub>s</sub> = specular lighting constant<br /> 2.2963 + N = surface normal unit vector, a function of x and y<br /> 2.2964 + H = "halfway" unit vector between eye unit vector and light unit 2.2965 + vector<br /> 2.2966 + <br /> 2.2967 + L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light</dd> 2.2968 +</dl> 2.2969 + 2.2970 +<p>See <a href="#feDiffuseLighting"><span 2.2971 +class="element-name">'feDiffuseLighting'</span></a> for definition of N and 2.2972 +(L<sub>r</sub>, L<sub>g</sub>, L<sub>b</sub>).</p> 2.2973 + 2.2974 +<p>The definition of H reflects our assumption of the constant eye vector E = 2.2975 +(0,0,1):</p> 2.2976 + 2.2977 +<p class="filterformula">H = (L + E) / Norm(L+E)</p> 2.2978 + 2.2979 +<p>where L is the light unit vector.</p> 2.2980 + 2.2981 +<p>Unlike the <a href="#feDiffuseLighting"><span 2.2982 +class="element-name">'feDiffuseLighting'</span></a>, the <span 2.2983 +class="element-name">'feSpecularLighting'</span> filter produces a non-opaque 2.2984 +image. This is due to the fact that the specular result 2.2985 +(S<sub>r</sub>,S<sub>g</sub>,S<sub>b</sub>,S<sub>a</sub>) is meant to be 2.2986 +added to the textured image. The alpha channel of the result is the max of 2.2987 +the color components, so that where the specular light is zero, no additional 2.2988 +coverage is added to the image and a fully white highlight will add 2.2989 +opacity.</p> 2.2990 + 2.2991 +<p>The <a href="#feDiffuseLighting"><span 2.2992 +class="element-name">'feDiffuseLighting'</span></a> and <span 2.2993 +class="element-name">'feSpecularLighting'</span> filters will often be 2.2994 +applied together. An implementation may detect this and calculate both maps 2.2995 +in one pass, instead of two.</p> 2.2996 + 2.2997 +<div class="adef-list"> 2.2998 +<p><em>Attribute definitions:</em></p> 2.2999 +<dl> 2.3000 + <dt id="feSpecularLightingSurfaceScaleAttribute"><span 2.3001 + class="adef">surfaceScale</span> = "<em><a><number></a></em>"</dt> 2.3002 + <dd>height of surface when A<sub>in</sub> = 1.<br /> 2.3003 + If the attribute is not specified, then the effect is as if a value of 2.3004 + <span class="attr-value">1</span> were specified.<br /> 2.3005 + <span class="anim-target">Animatable: yes.</span></dd> 2.3006 + <dt id="feSpecularLightingSpecularConstantAttribute"><span 2.3007 + class="adef">specularConstant</span> = "<em><a><number></a></em>"</dt> 2.3008 + <dd>ks in Phong lighting model. In SVG, this can be any non-negative 2.3009 + number.<br /> 2.3010 + If the attribute is not specified, then the effect is as if a value of 2.3011 + <span class="attr-value">1</span> were specified.<br /> 2.3012 + <span class="anim-target">Animatable: yes.</span></dd> 2.3013 + <dt id="feSpecularLightingSpecularExponentAttribute"><span 2.3014 + class="adef">specularExponent</span> = "<em><a><number></a></em>"</dt> 2.3015 + <dd>Exponent for specular term, larger is more "shiny". Range 1.0 to 2.3016 + 128.0.<br /> 2.3017 + If the attribute is not specified, then the effect is as if a value of 2.3018 + <span class="attr-value">1</span> were specified.<br /> 2.3019 + <span class="anim-target">Animatable: yes.</span></dd> 2.3020 + <dt id="feSpecularLightingKernelUnitLengthAttribute"><span 2.3021 + class="adef">kernelUnitLength</span> = "<span 2.3022 + class="attr-value"><a><number-optional-number></a></span>"</dt> 2.3023 + <dd>The first number is the <dx> value. The second number is the 2.3024 + <dy> value. If the <dy> value is not specified, it defaults 2.3025 + to the same value as <dx>. Indicates the intended distance in 2.3026 + current filter units (i.e., units as determined by the value of 2.3027 + attribute <a>'filter/primitiveUnits'</a>) for <code>dx</code> and 2.3028 + <code>dy</code>, respectively, in the <a 2.3029 + href="#SurfaceNormalCalculations">surface normal calculation 2.3030 + formulas</a>. By specifying value(s) for <span 2.3031 + class="attr-name">kernelUnitLength</span>, the kernel becomes defined 2.3032 + in a scalable, abstract coordinate system. If <span 2.3033 + class="attr-name">kernelUnitLength</span> is not specified, the 2.3034 + <code>dx</code> and <code>dy</code> values should represent very small 2.3035 + deltas relative to a given <code>(x,y)</code> position, which might be 2.3036 + implemented in some cases as one pixel in the intermediate image 2.3037 + offscreen bitmap, which is a pixel-based coordinate system, and thus 2.3038 + potentially not scalable. For some level of consistency across display 2.3039 + media and user agents, it is necessary that a value be provided for at 2.3040 + least one of <span class="attr-name">filterRes</span> and <span 2.3041 + class="attr-name">kernelUnitLength</span>. Discussion of intermediate 2.3042 + images are in the <a href="#Introduction">Introduction</a> and in the 2.3043 + description of attribute <a 2.3044 + href="#FilterElementFilterResAttribute"><span 2.3045 + class="attr-name">filterRes</span></a>.<br /> 2.3046 + If a negative or zero value is specified the default value will be used 2.3047 + instead. <br /> 2.3048 + <span class="anim-target">Animatable: yes.</span></dd> 2.3049 +</dl> 2.3050 +</div> 2.3051 + 2.3052 +<p>The light source is defined by one of the child elements <a 2.3053 +href="#feDistantLightElement"><span 2.3054 +class="element-name">'feDistantLight'</span></a>, <a 2.3055 +href="#fePointLightElement"><span 2.3056 +class="element-name">'fePointLight'</span></a> or <a 2.3057 +href="#feDistantLightElement"><span 2.3058 +class="element-name">'feDistantLight'</span></a>. The light color is 2.3059 +specified by property <a href="#LightingColorProperty"><span 2.3060 +class="prop-name">'lighting-color'</span></a>.</p> 2.3061 + 2.3062 +<p><a href="#AnExample">The example</a> at the start of this chapter makes 2.3063 +use of the <span class="element-name">feSpecularLighting</span> filter 2.3064 +primitive to achieve a highly reflective, 3D glowing effect.</p> 2.3065 + 2.3066 +<h2 id="feTileElement">Filter primitive <span 2.3067 +class="element-name">'feTile'</span></h2> 2.3068 + 2.3069 +<edit:elementsummary name='feTile'/> 2.3070 + 2.3071 +<p>This filter primitive fills a target rectangle with a repeated, tiled 2.3072 +pattern of an input image. 2.3073 +The target rectangle is as large as the <a 2.3074 +href="#FilterPrimitiveSubRegion">filter primitive subregion</a> established 2.3075 +by the <span class="element-name">'feTile'</span> element. 2.3076 +</p> 2.3077 + 2.3078 +<p>Typically, the input image has been defined with its own <a 2.3079 +href="#FilterPrimitiveSubRegion">filter primitive subregion</a> in order to 2.3080 +define a reference tile. <span class="element-name">'feTile'</span> 2.3081 +replicates the reference tile in both X and Y to completely fill the target 2.3082 +rectangle. The top/left corner of each given tile is at location 2.3083 +<code>(x+i*width,y+j*height)</code>, where <code>(x,y)</code> represents the 2.3084 +top/left of the input image's filter primitive subregion, <code>width</code> 2.3085 +and <code>height</code> represent the width and height of the input image's 2.3086 +filter primitive subregion, and <code>i</code> and <code>j</code> can be any 2.3087 +integer value. In most cases, the input image will have a smaller filter 2.3088 +primitive subregion than the <span class="element-name">'feTile'</span> in 2.3089 +order to achieve a repeated pattern effect.</p> 2.3090 + 2.3091 +<p class="requirement" id="assertTileArtifacts">Implementers must take appropriate measures in constructing the tiled 2.3092 +image to avoid artifacts between tiles, particularly in situations where the 2.3093 +user to device transform includes shear and/or rotation. Unless care is 2.3094 +taken, interpolation can lead to edge pixels in the tile having opacity 2.3095 +values lower or higher than expected due to the interaction of painting 2.3096 +adjacent tiles which each have partial overlap with particular pixels.</p> 2.3097 + 2.3098 +<div class="adef-list"> 2.3099 + </div> 2.3100 + 2.3101 +<h2 id="feTurbulenceElement">Filter primitive <span 2.3102 +class="element-name">'feTurbulence'</span></h2> 2.3103 + 2.3104 +<edit:with element="feTurbulence"> 2.3105 + 2.3106 +<p class="specissue">ISSUE: Consider phasing out this C algorithm in favor of Simplex noise, which is more HW friendly.</p> 2.3107 + 2.3108 +<p>This filter primitive creates an image using the Perlin turbulence 2.3109 +function. It allows the synthesis of artificial textures like clouds or 2.3110 +marble. For a detailed description the of the Perlin turbulence function, see 2.3111 +"Texturing and Modeling", Ebert et al, AP Professional, 1994. The resulting 2.3112 +image will fill the entire <a>filter primitive subregion</a> for this filter primitive.</p> 2.3113 + 2.3114 +<p>It is possible to create bandwidth-limited noise by synthesizing only one 2.3115 +octave.</p> 2.3116 + 2.3117 +<p>The C code below shows the exact algorithm used for this filter effect.</p> 2.3118 + 2.3119 +<p>For fractalSum, you get a turbFunctionResult that is aimed at a range of 2.3120 +-1 to 1 (the actual result might exceed this range in some cases). To convert 2.3121 +to a color value, use the formula <code>colorValue = ((turbFunctionResult * 2.3122 +255) + 255) / 2</code>, then clamp to the range 0 to 255.</p> 2.3123 + 2.3124 +<p>For turbulence, you get a turbFunctionResult that is aimed at a range of 0 2.3125 +to 1 (the actual result might exceed this range in some cases). To convert to 2.3126 +a color value, use the formula <code>colorValue = (turbFunctionResult * 2.3127 +255)</code>, then clamp to the range 0 to 255.</p> 2.3128 + 2.3129 +<p>The following order is used for applying the pseudo random numbers. An 2.3130 +initial seed value is computed based on the <a>'seed'</a> attribute. 2.3131 +Then the implementation computes the lattice 2.3132 +points for R, then continues getting additional pseudo random numbers 2.3133 +relative to the last generated pseudo random number and computes the lattice 2.3134 +points for G, and so on for B and A.</p> 2.3135 + 2.3136 +<p>The generated color and alpha values are in the color space determined by 2.3137 +the <a>'color-interpolation-filters'</a> property:</p> 2.3138 +<pre class="svgsamplecompressed">/* Produces results in the range [1, 2**31 - 2]. 2.3139 +Algorithm is: r = (a * r) mod m 2.3140 +where a = 16807 and m = 2**31 - 1 = 2147483647 2.3141 +See [Park & Miller], CACM vol. 31 no. 10 p. 1195, Oct. 1988 2.3142 +To test: the algorithm should produce the result 1043618065 2.3143 +as the 10,000th generated number if the original seed is 1. 2.3144 +*/ 2.3145 +#define RAND_m 2147483647 /* 2**31 - 1 */ 2.3146 +#define RAND_a 16807 /* 7**5; primitive root of m */ 2.3147 +#define RAND_q 127773 /* m / a */ 2.3148 +#define RAND_r 2836 /* m % a */ 2.3149 +long setup_seed(long lSeed) 2.3150 +{ 2.3151 + if (lSeed <= 0) lSeed = -(lSeed % (RAND_m - 1)) + 1; 2.3152 + if (lSeed > RAND_m - 1) lSeed = RAND_m - 1; 2.3153 + return lSeed; 2.3154 +} 2.3155 +long random(long lSeed) 2.3156 +{ 2.3157 + long result; 2.3158 + result = RAND_a * (lSeed % RAND_q) - RAND_r * (lSeed / RAND_q); 2.3159 + if (result <= 0) result += RAND_m; 2.3160 + return result; 2.3161 +} 2.3162 +#define BSize 0x100 2.3163 +#define BM 0xff 2.3164 +#define PerlinN 0x1000 2.3165 +#define NP 12 /* 2^PerlinN */ 2.3166 +#define NM 0xfff 2.3167 +static uLatticeSelector[BSize + BSize + 2]; 2.3168 +static double fGradient[4][BSize + BSize + 2][2]; 2.3169 +struct StitchInfo 2.3170 +{ 2.3171 + int nWidth; // How much to subtract to wrap for stitching. 2.3172 + int nHeight; 2.3173 + int nWrapX; // Minimum value to wrap. 2.3174 + int nWrapY; 2.3175 +}; 2.3176 +static void init(long lSeed) 2.3177 +{ 2.3178 + double s; 2.3179 + int i, j, k; 2.3180 + lSeed = setup_seed(lSeed); 2.3181 + for(k = 0; k < 4; k++) 2.3182 + { 2.3183 + for(i = 0; i < BSize; i++) 2.3184 + { 2.3185 + uLatticeSelector[i] = i; 2.3186 + for (j = 0; j < 2; j++) 2.3187 + fGradient[k][i][j] = (double)(((lSeed = random(lSeed)) % (BSize + BSize)) - BSize) / BSize; 2.3188 + s = double(sqrt(fGradient[k][i][0] * fGradient[k][i][0] + fGradient[k][i][1] * fGradient[k][i][1])); 2.3189 + fGradient[k][i][0] /= s; 2.3190 + fGradient[k][i][1] /= s; 2.3191 + } 2.3192 + } 2.3193 + while(--i) 2.3194 + { 2.3195 + k = uLatticeSelector[i]; 2.3196 + uLatticeSelector[i] = uLatticeSelector[j = (lSeed = random(lSeed)) % BSize]; 2.3197 + uLatticeSelector[j] = k; 2.3198 + } 2.3199 + for(i = 0; i < BSize + 2; i++) 2.3200 + { 2.3201 + uLatticeSelector[BSize + i] = uLatticeSelector[i]; 2.3202 + for(k = 0; k < 4; k++) 2.3203 + for(j = 0; j < 2; j++) 2.3204 + fGradient[k][BSize + i][j] = fGradient[k][i][j]; 2.3205 + } 2.3206 +} 2.3207 +#define s_curve(t) ( t * t * (3. - 2. * t) ) 2.3208 +#define lerp(t, a, b) ( a + t * (b - a) ) 2.3209 +double noise2(int nColorChannel, double vec[2], StitchInfo *pStitchInfo) 2.3210 +{ 2.3211 + int bx0, bx1, by0, by1, b00, b10, b01, b11; 2.3212 + double rx0, rx1, ry0, ry1, *q, sx, sy, a, b, t, u, v; 2.3213 + register i, j; 2.3214 + t = vec[0] + PerlinN; 2.3215 + bx0 = (int)t; 2.3216 + bx1 = bx0+1; 2.3217 + rx0 = t - (int)t; 2.3218 + rx1 = rx0 - 1.0f; 2.3219 + t = vec[1] + PerlinN; 2.3220 + by0 = (int)t; 2.3221 + by1 = by0+1; 2.3222 + ry0 = t - (int)t; 2.3223 + ry1 = ry0 - 1.0f; 2.3224 + // If stitching, adjust lattice points accordingly. 2.3225 + if(pStitchInfo != NULL) 2.3226 + { 2.3227 + if(bx0 >= pStitchInfo->nWrapX) 2.3228 + bx0 -= pStitchInfo->nWidth; 2.3229 + if(bx1 >= pStitchInfo->nWrapX) 2.3230 + bx1 -= pStitchInfo->nWidth; 2.3231 + if(by0 >= pStitchInfo->nWrapY) 2.3232 + by0 -= pStitchInfo->nHeight; 2.3233 + if(by1 >= pStitchInfo->nWrapY) 2.3234 + by1 -= pStitchInfo->nHeight; 2.3235 + } 2.3236 + bx0 &= BM; 2.3237 + bx1 &= BM; 2.3238 + by0 &= BM; 2.3239 + by1 &= BM; 2.3240 + i = uLatticeSelector[bx0]; 2.3241 + j = uLatticeSelector[bx1]; 2.3242 + b00 = uLatticeSelector[i + by0]; 2.3243 + b10 = uLatticeSelector[j + by0]; 2.3244 + b01 = uLatticeSelector[i + by1]; 2.3245 + b11 = uLatticeSelector[j + by1]; 2.3246 + sx = double(s_curve(rx0)); 2.3247 + sy = double(s_curve(ry0)); 2.3248 + q = fGradient[nColorChannel][b00]; u = rx0 * q[0] + ry0 * q[1]; 2.3249 + q = fGradient[nColorChannel][b10]; v = rx1 * q[0] + ry0 * q[1]; 2.3250 + a = lerp(sx, u, v); 2.3251 + q = fGradient[nColorChannel][b01]; u = rx0 * q[0] + ry1 * q[1]; 2.3252 + q = fGradient[nColorChannel][b11]; v = rx1 * q[0] + ry1 * q[1]; 2.3253 + b = lerp(sx, u, v); 2.3254 + return lerp(sy, a, b); 2.3255 +} 2.3256 +double turbulence(int nColorChannel, double *point, double fBaseFreqX, double fBaseFreqY, 2.3257 + int nNumOctaves, bool bFractalSum, bool bDoStitching, 2.3258 + double fTileX, double fTileY, double fTileWidth, double fTileHeight) 2.3259 +{ 2.3260 + StitchInfo stitch; 2.3261 + StitchInfo *pStitchInfo = NULL; // Not stitching when NULL. 2.3262 + // Adjust the base frequencies if necessary for stitching. 2.3263 + if(bDoStitching) 2.3264 + { 2.3265 + // When stitching tiled turbulence, the frequencies must be adjusted 2.3266 + // so that the tile borders will be continuous. 2.3267 + if(fBaseFreqX != 0.0) 2.3268 + { 2.3269 + double fLoFreq = double(floor(fTileWidth * fBaseFreqX)) / fTileWidth; 2.3270 + double fHiFreq = double(ceil(fTileWidth * fBaseFreqX)) / fTileWidth; 2.3271 + if(fBaseFreqX / fLoFreq < fHiFreq / fBaseFreqX) 2.3272 + fBaseFreqX = fLoFreq; 2.3273 + else 2.3274 + fBaseFreqX = fHiFreq; 2.3275 + } 2.3276 + if(fBaseFreqY != 0.0) 2.3277 + { 2.3278 + double fLoFreq = double(floor(fTileHeight * fBaseFreqY)) / fTileHeight; 2.3279 + double fHiFreq = double(ceil(fTileHeight * fBaseFreqY)) / fTileHeight; 2.3280 + if(fBaseFreqY / fLoFreq < fHiFreq / fBaseFreqY) 2.3281 + fBaseFreqY = fLoFreq; 2.3282 + else 2.3283 + fBaseFreqY = fHiFreq; 2.3284 + } 2.3285 + // Set up initial stitch values. 2.3286 + pStitchInfo = &stitch; 2.3287 + stitch.nWidth = int(fTileWidth * fBaseFreqX + 0.5f); 2.3288 + stitch.nWrapX = fTileX * fBaseFreqX + PerlinN + stitch.nWidth; 2.3289 + stitch.nHeight = int(fTileHeight * fBaseFreqY + 0.5f); 2.3290 + stitch.nWrapY = fTileY * fBaseFreqY + PerlinN + stitch.nHeight; 2.3291 + } 2.3292 + double fSum = 0.0f; 2.3293 + double vec[2]; 2.3294 + vec[0] = point[0] * fBaseFreqX; 2.3295 + vec[1] = point[1] * fBaseFreqY; 2.3296 + double ratio = 1; 2.3297 + for(int nOctave = 0; nOctave < nNumOctaves; nOctave++) 2.3298 + { 2.3299 + if(bFractalSum) 2.3300 + fSum += double(noise2(nColorChannel, vec, pStitchInfo) / ratio); 2.3301 + else 2.3302 + fSum += double(fabs(noise2(nColorChannel, vec, pStitchInfo)) / ratio); 2.3303 + vec[0] *= 2; 2.3304 + vec[1] *= 2; 2.3305 + ratio *= 2; 2.3306 + if(pStitchInfo != NULL) 2.3307 + { 2.3308 + // Update stitch values. Subtracting PerlinN before the multiplication and 2.3309 + // adding it afterward simplifies to subtracting it once. 2.3310 + stitch.nWidth *= 2; 2.3311 + stitch.nWrapX = 2 * stitch.nWrapX - PerlinN; 2.3312 + stitch.nHeight *= 2; 2.3313 + stitch.nWrapY = 2 * stitch.nWrapY - PerlinN; 2.3314 + } 2.3315 + } 2.3316 + return fSum; 2.3317 +}</pre> 2.3318 + 2.3319 +<div class="adef-list"> 2.3320 +<p><em>Attribute definitions:</em></p> 2.3321 +<dl> 2.3322 + <dt id="feTurbulenceBaseFrequencyAttribute"><span 2.3323 + class="adef">baseFrequency</span> = 2.3324 + "<em><a><number-optional-number></a></em>"</dt> 2.3325 + <dd> 2.3326 + <p>The base frequency (frequencies) parameter(s) for the noise function. 2.3327 + If two <a><number></a>s are provided, the first number represents a base frequency in the X 2.3328 + direction and the second value represents a base frequency in the Y 2.3329 + direction. If one number is provided, then that value is used for both 2.3330 + X and Y.</p> 2.3331 + <p>The <a>lacuna value</a> for <a>'baseFrequency'</a> is <span class="attr-value">0</span>.</p> 2.3332 + <p>Negative values are <a>unsupported</a>.</p> 2.3333 + <p><span class="anim-target">Animatable: yes.</span></p> 2.3334 +</dd> 2.3335 + <dt id="feTurbulenceNumOctavesAttribute"><span 2.3336 + class="adef">numOctaves</span> = "<em><a><integer></a></em>"</dt> 2.3337 + <dd> 2.3338 + <p>The numOctaves parameter for the noise function.</p> 2.3339 + <p><span class="requirement" id="assert_turbulenceNumOctavesLacunaValue">The <a>lacuna value</a> for <a>'numOctaves'</a> is <span class="attr-value">1</span>.</span></p> 2.3340 + <p><span class="requirement" id="assert_turbulenceNumOctavesUnsupportedValue">Negative values are <a>unsupported</a>.</span></p> 2.3341 + <p><span class="requirement" id="assert_turbulenceNumOctavesAnimatable"><span class="anim-target">Animatable: yes.</span></span></p> 2.3342 + </dd> 2.3343 + <dt id="feTurbulenceSeedAttribute"> 2.3344 + <span class="adef">seed</span> = "<em><a><number></a></em>"</dt> 2.3345 + <dd> 2.3346 + <p>The starting number for the pseudo random number generator.</p> 2.3347 + <p><span class="requirement" id="assert_turbulenceSeedLacunaValue">The <a>lacuna value</a> for <a>'seed'</a> is <span class="attr-value">0</span>.</span></p> 2.3348 + <p><span class="requirement" id="assert_turbulenceSeedTruncation">When the seed number is handed over to the algorithm above it must first be 2.3349 + truncated, i.e. rounded to the closest integer value towards zero.</span></p> 2.3350 + <p><span class="anim-target">Animatable: yes.</span></p> 2.3351 + </dd> 2.3352 + <dt id="feTurbulenceStitchTilesAttribute"><span 2.3353 + class="adef">stitchTiles</span> = "<em>stitch | noStitch</em>"</dt> 2.3354 + <dd> 2.3355 + <p>If <span class="attr-value">stitchTiles="noStitch"</span>, no attempt 2.3356 + it made to achieve smooth transitions at the border of tiles which 2.3357 + contain a turbulence function. Sometimes the result will show clear 2.3358 + discontinuities at the tile borders.<br /> 2.3359 + If <span class="attr-value">stitchTiles="stitch"</span>, then the user 2.3360 + agent will automatically adjust baseFrequency-x and baseFrequency-y 2.3361 + values such that the <a>'feTurbulence'</a> node's width and height (i.e., the 2.3362 + width and height of the current subregion) contains an integral number 2.3363 + of the Perlin tile width and height for the first octave. The 2.3364 + baseFrequency will be adjusted up or down depending on which way has 2.3365 + the smallest relative (not absolute) change as follows: Given the 2.3366 + frequency, calculate <code>lowFreq=floor(width*frequency)/width</code> 2.3367 + and <code>hiFreq=ceil(width*frequency)/width</code>. If 2.3368 + frequency/lowFreq < hiFreq/frequency then use lowFreq, else use 2.3369 + hiFreq. While generating turbulence values, generate lattice vectors as 2.3370 + normal for Perlin Noise, except for those lattice points that lie on 2.3371 + the right or bottom edges of the active area (the size of the resulting 2.3372 + tile). In those cases, copy the lattice vector from the opposite edge 2.3373 + of the active area.</p> 2.3374 + <p><span class="requirement" id="assert_turbulenceStitchTilesLacunaValue">The <a>lacuna value</a> for <a>'stitchTiles'</a> attribute is <span class="attr-value">noStitch</span>.</span></p> 2.3375 + <p><span class="anim-target">Animatable: yes.</span></p> 2.3376 + </dd> 2.3377 + <dt id="feTurbulenceTypeAttribute"> 2.3378 + <span class="adef">type</span> = "<em>fractalNoise | turbulence</em>"</dt> 2.3379 + <dd> 2.3380 + <p>Indicates whether the filter primitive should perform a noise or 2.3381 + turbulence function.</p> 2.3382 + <p><span class="requirement" id="assert_turbulenceTypeLacunaValue">The <a>lacuna value</a> for <a>'type'</a> attribute is <span class="attr-value">turbulence</span>.</span></p> 2.3383 + <p><span class="anim-target">Animatable: yes.</span></p> 2.3384 + </dd> 2.3385 +</dl> 2.3386 +</div> 2.3387 + 2.3388 +<edit:example href="examples/feTurbulence.svg" image="yes" link="yes"/> 2.3389 +</edit:with> 2.3390 + 2.3391 +<h2 id="feDropShadowElement">Filter primitive <span 2.3392 +class="element-name">'feDropShadow'</span></h2> 2.3393 + 2.3394 +<edit:elementsummary name='feDropShadow'/> 2.3395 + 2.3396 +<p>This filter creates a drop shadow of the input image. It is a shorthand 2.3397 +filter, and is defined in terms of combinations of other <a>filter primitives</a>. 2.3398 +The expectation is that it can be optimized more easily by 2.3399 +implementations.</p> 2.3400 + 2.3401 +<p>The result of a <a>'feDropShadow'</a> filter 2.3402 +primitive is equivalent to the following: 2.3403 + 2.3404 +<pre class="examplesource"> 2.3405 + <feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/> 2.3406 + <feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/> 2.3407 + <feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/> 2.3408 + <feComposite in2="offsetblur" operator="in"/> 2.3409 + <feMerge> 2.3410 + <feMergeNode/> 2.3411 + <feMergeNode in="<b>in-of-feDropShadow</b>"/> 2.3412 + </feMerge> 2.3413 +</pre> 2.3414 +</p> 2.3415 + 2.3416 +<p> 2.3417 +The above divided into steps: 2.3418 +<ol> 2.3419 + <li>Take the alpha channel of the input to the <a>'feDropShadow'</a> filter primitive and the <a>'feDropShadow/stdDeviation'</a> on the <a>'feDropShadow'</a> and do processing as if the 2.3420 + following <a>'feGaussianBlur'</a> was applied: 2.3421 + <pre class="examplesource"> <feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/></pre> 2.3422 + <br /> 2.3423 + </li> 2.3424 + <li>Offset the result of step 1 by <a>'feDropShadow/dx'</a> and <a>'feDropShadow/dy'</a> as 2.3425 + specified on the <a>'feDropShadow'</a> 2.3426 + element, equivalent to applying an <a>'feOffset'</a> with these parameters: 2.3427 + <pre class="examplesource"> <feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/></pre> 2.3428 + <br /> 2.3429 + </li> 2.3430 + <li>Do processing as if an <a>'feFlood'</a> element with <a>'flood-color'</a> and 2.3431 + <a>'flood-opacity'</a> as specified on the <a>'feDropShadow'</a> was applied: 2.3432 + <pre class="examplesource"> <feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/></pre> 2.3433 + <br /> 2.3434 + </li> 2.3435 + <li>Composite the result of the <a href="#feFloodElement"><span 2.3436 + class="element-name">'feFlood'</span></a> in step 3 with the result of 2.3437 + the <a href="#feOffsetElement"><span 2.3438 + class="element-name">'feOffset'</span></a> in step 2 as if an <a>'feComposite'</a> filter primitive with <a 2.3439 + href="#feCompositeOperatorAttribute"><span 2.3440 + class="attr-name">operator</span></a>='in' was applied: 2.3441 + <pre class="examplesource"> <feComposite in2="offsetblur" operator="in"/></pre> 2.3442 + <br /> 2.3443 + </li> 2.3444 + <li>Finally merge the result of the previous step, doing processing as if 2.3445 + the following <a>'feMerge'</a> was performed: 2.3446 + <pre class="examplesource"> <feMerge> 2.3447 + <feMergeNode/> 2.3448 + <feMergeNode in="<b>in-of-feDropShadow</b>"/> 2.3449 + </feMerge></pre> 2.3450 + </li> 2.3451 +</ol> 2.3452 +</p> 2.3453 + 2.3454 +<p class="note implementation">Note that while the definition of the <span 2.3455 +class="element-name">'feDropShadow'</span> filter primitive says that it can 2.3456 +be expanded into an equivalent tree it is not required that it is implemented 2.3457 +like that. The expectation is that user agents can optimize the handling by not having to do all the steps separately. 2.3458 +</p> 2.3459 + 2.3460 +<p>Beyond the DOM interface <a 2.3461 +href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> there is no way 2.3462 +of accessing the internals of the <a>'feDropShadow'</a> filter primitive, meaning <span class="requirement" id="assert_dropShadowShadowTrees">if the 2.3463 +filter primitive is implemented as an equivalent tree then that tree must not 2.3464 +be exposed to the DOM.</span> </p> 2.3465 + 2.3466 +<div class="adef-list"> 2.3467 +<p><em>Attribute definitions:</em></p> 2.3468 +<dl> 2.3469 + <dt id="feDropShadowDxAttribute"> 2.3470 + <span class="adef">dx</span> = "<em><a><number></a></em>"</dt> 2.3471 + <dd> 2.3472 + <p>The x offset of the drop shadow.</p> 2.3473 + <p>The <a>lacuna value</a> for <a>'feDropShadow/dx'</a> is <span class="attr-value">2</span>.</p> 2.3474 + <p>This attribute is then forwarded to the <a>'feOffset/dx'</a> attribute of the internal <a>'feOffset'</a> element.</p> 2.3475 + <p><span class="anim-target">Animatable: yes.</span></p> 2.3476 + </dd> 2.3477 + <dt id="feDropShadowDyAttribute"> 2.3478 + <span class="adef">dy</span> = "<em><a><number></a></em>"</dt> 2.3479 + <dd> 2.3480 + <p>The y offset of the drop shadow.</p> 2.3481 + <p>The <a>lacuna value</a> for <a>'feDropShadow/dy'</a> is <span class="attr-value">2</span>. </p> 2.3482 + <p>This attribute is then forwarded to the <a>'feOffset/dy'</a> attribute of the internal <a>'feOffset'</a> element.</p> 2.3483 + <p><span class="anim-target">Animatable: yes.</span></p> 2.3484 + </dd> 2.3485 + <dt id="feDropShadowStdDeviationAttribute"><span 2.3486 + class="adef">stdDeviation</span> = 2.3487 + "<em><a><number-optional-number></a></em>"</dt> 2.3488 + <dd> 2.3489 + <p>The standard deviation for the blur operation in the drop shadow.</p> 2.3490 + <p>The <a>lacuna value</a> for <a>'feDropShadow/stdDeviation'</a> is <span class="attr-value">2</span>.</p> 2.3491 + <p>This attribute is then forwarded to the <a>'feGaussianBlur/stdDeviation'</a> attribute of the internal 2.3492 + <a>'feGaussianBlur'</a> element.</p> 2.3493 + <p><span class="anim-target">Animatable: yes.</span></p> 2.3494 + </dd> 2.3495 +</dl> 2.3496 +</div> 2.3497 + 2.3498 +<div class="note"> 2.3499 +<h2 id="feDiffuseSpecularElement">Filter primitive <span 2.3500 +class="element-name">'feDiffuseSpecular'</span></h2> 2.3501 +The SVG WG is looking at providing a shorthand for diffuse+specular. 2.3502 +</div> 2.3503 + 2.3504 +<div class="note"> 2.3505 +<h2 id="feCustomElement">Filter primitive <span 2.3506 +class="element-name">'feCustom'</span></h2> 2.3507 +The SVG WG is looking to add a filter primitive that allows programmatic access 2.3508 +to the pixel data for a filter, e.g via OpenCL. 2.3509 +</div> 2.3510 + 2.3511 +<h2 id="RelaxNG">RelaxNG Schema for Filter Effects 1.0</h2> 2.3512 + 2.3513 +<p>The schema for Filter Effects 1.0 is written in <a 2.3514 +href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">RelaxNG</a> 2.3515 +[<a href="#ref-RNG">RelaxNG</a>], a namespace-aware schema language that uses 2.3516 +the datatypes from <a 2.3517 +href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema Part 2.3518 +2</a> [<a href="#ref-Schema2">Schema2</a>]. This allows namespaces and 2.3519 +modularity to be much more naturally expressed than using DTD syntax. The 2.3520 +RelaxNG schema for Filter Effects 1.0 may be imported by other RelaxNG schemas, 2.3521 +or combined with other schemas in other languages into a multi-namespace, 2.3522 +multi-grammar schema using <a 2.3523 +href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">Namespace-based Validation 2.3524 +Dispatching Language</a> [<a href="#ref-NVDL">NVDL</a>].</p> 2.3525 + 2.3526 +<p>Unlike a DTD, the schema used for validation is not hardcoded into the 2.3527 +document instance. There is no equivalent to the DOCTYPE declaration. Simply 2.3528 +point your editor or other validation tool to the IRI of the schema (or your 2.3529 +local cached copy, as you prefer).</p> 2.3530 + 2.3531 +<p> 2.3532 +The RNG is under construction, and only the individual RNG snippets are available at this time. They have not yet been integrated into a functional schema. The individual RNG files are available <a href="rng">here</a>. 2.3533 +</p> 2.3534 + 2.3535 +<h2 id="DOMInterfaces">DOM interfaces</h2> 2.3536 +<div class="note"> 2.3537 +The interfaces below will be made available in a IDL file for an upcoming draft. 2.3538 +</div> 2.3539 + 2.3540 +<!-- AUTO-GENERATED DOM INTERFACES GO HERE --> 2.3541 + 2.3542 +<h2 id="DOMInterfaces">DOM interfaces</h2> 2.3543 + 2.3544 +<h3 id="InterfaceImageData">Interface ImageData</h3> 2.3545 + 2.3546 +<edit:interface name='::svg::ImageData'/> 2.3547 + 2.3548 +<h3 id="InterfaceSVGFilterElement">Interface SVGFilterElement</h3> 2.3549 + 2.3550 +<edit:with element='filter'> 2.3551 +<edit:interface name='::svg::SVGFilterElement'/> 2.3552 +</edit:with> 2.3553 + 2.3554 +<h3 id="InterfaceSVGFilterPrimitiveStandardAttributes">Interface SVGFilterPrimitiveStandardAttributes</h3> 2.3555 + 2.3556 +<edit:with element='feTile'> 2.3557 +<edit:interface name='::svg::SVGFilterPrimitiveStandardAttributes'/> 2.3558 +</edit:with> 2.3559 + 2.3560 +<h3 id="InterfaceSVGFEBlendElement">Interface SVGFEBlendElement</h3> 2.3561 + 2.3562 +<edit:with element='feBlend'> 2.3563 +<edit:interface name='::svg::SVGFEBlendElement'/> 2.3564 +</edit:with> 2.3565 + 2.3566 +<h3 id="InterfaceSVGFEColorMatrixElement">Interface SVGFEColorMatrixElement</h3> 2.3567 + 2.3568 +<edit:with element='feColorMatrix'> 2.3569 +<edit:interface name='::svg::SVGFEColorMatrixElement'/> 2.3570 +</edit:with> 2.3571 + 2.3572 +<h3 id="InterfaceSVGFEComponentTransferElement">Interface SVGFEComponentTransferElement</h3> 2.3573 + 2.3574 +<edit:with element='feComponentTransfer'> 2.3575 +<edit:interface name='::svg::SVGFEComponentTransferElement'/> 2.3576 +</edit:with> 2.3577 + 2.3578 +<h3 id="InterfaceSVGComponentTransferFunctionElement">Interface SVGComponentTransferFunctionElement</h3> 2.3579 + 2.3580 +<edit:with element='feFuncR'> 2.3581 +<edit:interface name='::svg::SVGComponentTransferFunctionElement'/> 2.3582 +</edit:with> 2.3583 + 2.3584 +<h3 id="InterfaceSVGFEFuncRElement">Interface SVGFEFuncRElement</h3> 2.3585 + 2.3586 +<edit:with element='feFuncR'> 2.3587 +<edit:interface name='::svg::SVGFEFuncRElement'/> 2.3588 +</edit:with> 2.3589 + 2.3590 +<h3 id="InterfaceSVGFEFuncGElement">Interface SVGFEFuncGElement</h3> 2.3591 + 2.3592 +<edit:with element='feFuncG'> 2.3593 +<edit:interface name='::svg::SVGFEFuncGElement'/> 2.3594 +</edit:with> 2.3595 + 2.3596 +<h3 id="InterfaceSVGFEFuncBElement">Interface SVGFEFuncBElement</h3> 2.3597 + 2.3598 +<edit:with element='feFuncB'> 2.3599 +<edit:interface name='::svg::SVGFEFuncBElement'/> 2.3600 +</edit:with> 2.3601 + 2.3602 +<h3 id="InterfaceSVGFEFuncAElement">Interface SVGFEFuncAElement</h3> 2.3603 + 2.3604 +<edit:with element='feFuncA'> 2.3605 +<edit:interface name='::svg::SVGFEFuncAElement'/> 2.3606 +</edit:with> 2.3607 + 2.3608 +<h3 id="InterfaceSVGFECompositeElement">Interface SVGFECompositeElement</h3> 2.3609 + 2.3610 +<edit:with element='feComposite'> 2.3611 +<edit:interface name='::svg::SVGFECompositeElement'/> 2.3612 +</edit:with> 2.3613 + 2.3614 +<h3 id="InterfaceSVGFEConvolveMatrixElement">Interface SVGFEConvolveMatrixElement</h3> 2.3615 + 2.3616 +<edit:with element='feConvolveMatrix'> 2.3617 +<edit:interface name='::svg::SVGFEConvolveMatrixElement'/> 2.3618 +</edit:with> 2.3619 + 2.3620 +<h3 id="InterfaceSVGFEDiffuseLightingElement">Interface SVGFEDiffuseLightingElement</h3> 2.3621 + 2.3622 +<edit:with element='feDiffuseLighting'> 2.3623 +<edit:interface name='::svg::SVGFEDiffuseLightingElement'/> 2.3624 +</edit:with> 2.3625 + 2.3626 +<h3 id="InterfaceSVGFEDistantLightElement">Interface SVGFEDistantLightElement</h3> 2.3627 + 2.3628 +<edit:with element='feDistantLight'> 2.3629 +<edit:interface name='::svg::SVGFEDistantLightElement'/> 2.3630 +</edit:with> 2.3631 + 2.3632 +<h3 id="InterfaceSVGFEPointLightElement">Interface SVGFEPointLightElement</h3> 2.3633 + 2.3634 +<edit:with element='fePointLight'> 2.3635 +<edit:interface name='::svg::SVGFEPointLightElement'/> 2.3636 +</edit:with> 2.3637 + 2.3638 +<h3 id="InterfaceSVGFESpotLightElement">Interface SVGFESpotLightElement</h3> 2.3639 + 2.3640 +<edit:with element='feSpotLight'> 2.3641 +<edit:interface name='::svg::SVGFESpotLightElement'/> 2.3642 +</edit:with> 2.3643 + 2.3644 +<h3 id="InterfaceSVGFEDisplacementMapElement">Interface SVGFEDisplacementMapElement</h3> 2.3645 + 2.3646 +<edit:with element='feDisplacementMap'> 2.3647 +<edit:interface name='::svg::SVGFEDisplacementMapElement'/> 2.3648 +</edit:with> 2.3649 + 2.3650 +<h3 id="InterfaceSVGFEFloodElement">Interface SVGFEFloodElement</h3> 2.3651 + 2.3652 +<edit:with element='feFlood'> 2.3653 +<edit:interface name='::svg::SVGFEFloodElement'/> 2.3654 +</edit:with> 2.3655 + 2.3656 +<h3 id="InterfaceSVGFEGaussianBlurElement">Interface SVGFEGaussianBlurElement</h3> 2.3657 + 2.3658 +<edit:with element='feGaussianBlur'> 2.3659 +<edit:interface name='::svg::SVGFEGaussianBlurElement'/> 2.3660 +</edit:with> 2.3661 + 2.3662 +<h3 id="InterfaceSVGFEImageElement">Interface SVGFEImageElement</h3> 2.3663 + 2.3664 +<edit:with element='feImage'> 2.3665 +<edit:interface name='::svg::SVGFEImageElement'/> 2.3666 +</edit:with> 2.3667 + 2.3668 +<h3 id="InterfaceSVGFEMergeElement">Interface SVGFEMergeElement</h3> 2.3669 + 2.3670 +<edit:with element='feMerge'> 2.3671 +<edit:interface name='::svg::SVGFEMergeElement'/> 2.3672 +</edit:with> 2.3673 + 2.3674 +<h3 id="InterfaceSVGFEMergeNodeElement">Interface SVGFEMergeNodeElement</h3> 2.3675 + 2.3676 +<edit:with element='feMergeNode'> 2.3677 +<edit:interface name='::svg::SVGFEMergeNodeElement'/> 2.3678 +</edit:with> 2.3679 + 2.3680 +<h3 id="InterfaceSVGFEMorphologyElement">Interface SVGFEMorphologyElement</h3> 2.3681 + 2.3682 +<edit:with element='feMorphology'> 2.3683 +<edit:interface name='::svg::SVGFEMorphologyElement'/> 2.3684 +</edit:with> 2.3685 + 2.3686 +<h3 id="InterfaceSVGFEOffsetElement">Interface SVGFEOffsetElement</h3> 2.3687 + 2.3688 +<edit:with element='feOffset'> 2.3689 +<edit:interface name='::svg::SVGFEOffsetElement'/> 2.3690 +</edit:with> 2.3691 + 2.3692 +<h3 id="InterfaceSVGFESpecularLightingElement">Interface SVGFESpecularLightingElement</h3> 2.3693 + 2.3694 +<edit:with element='feSpecularLighting'> 2.3695 +<edit:interface name='::svg::SVGFESpecularLightingElement'/> 2.3696 +</edit:with> 2.3697 + 2.3698 +<h3 id="InterfaceSVGFETileElement">Interface SVGFETileElement</h3> 2.3699 + 2.3700 +<edit:with element='feTile'> 2.3701 +<edit:interface name='::svg::SVGFETileElement'/> 2.3702 +</edit:with> 2.3703 + 2.3704 +<h3 id="InterfaceSVGFETurbulenceElement">Interface SVGFETurbulenceElement</h3> 2.3705 + 2.3706 +<edit:with element='feTurbulence'> 2.3707 +<edit:interface name='::svg::SVGFETurbulenceElement'/> 2.3708 +</edit:with> 2.3709 + 2.3710 +<h3 id="InterfaceSVGFEDropShadowElement">Interface SVGFEDropShadowElement</h3> 2.3711 + 2.3712 +<edit:with element='feDropShadow'> 2.3713 +<edit:interface name='::svg::SVGFEDropShadowElement'/> 2.3714 +</edit:with> 2.3715 + 2.3716 +<h2 id="references1">References</h2> 2.3717 +<h3 id="normref">Normative References</h3> 2.3718 +<dl> 2.3719 + <dt id="ref-CSS21"><strong class="normref">[CSS21]</strong></dt> 2.3720 + <dd><strong>Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</strong>, 2.3721 + Bert Bos, Tantek Çelik, Ian Hickson, HÃ¥kon Wium Lie, eds., 2.3722 + W3C, 23 April 2009, (Candidate Recommendation) </dd> 2.3723 + 2.3724 + <dt id="ref-NVDL"><strong class="normref">[NVDL]</strong></dt> 2.3725 + <dd><strong>Document Schema Definition Languages (DSDL) — Part 4: 2.3726 + Namespace-based Validation Dispatching Language — NVDL. ISO/IEC FCD 2.3727 + 19757-4</strong>, See <a 2.3728 + href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/</a> 2.3729 + </dd> 2.3730 + 2.3731 + <dt id="ref-PORTERDUFF"><strong class="normref">[PORTERDUFF]</strong></dt> 2.3732 + <dd><strong>Compositing Digital Images</strong>, T. Porter, T. Duff, 2.3733 + SIGGRAPH '84 Conference Proceedings, Association for Computing 2.3734 + Machinery, Volume 18, Number 3, July 1984. </dd> 2.3735 + <dt id="ref-RNG"><strong class="normref">[RelaxNG]</strong></dt> 2.3736 + <dd><strong>Document Schema Definition Languages (DSDL) — Part 2: 2.3737 + Regular grammar- based validation — RELAX NG. ISO/IEC FDIS 2.3738 + 19757-2:2002(E)</strong>, J. Clark, <span class="ruby"><span 2.3739 + xml:lang="ja" lang="ja" class="rb">æ‘ç”° 真</span> <span 2.3740 + class="rp">(</span><span class="rt"><span 2.3741 + class="familyname">Murata</span> M.</span><span 2.3742 + class="rp">)</span></span>, eds., 12 December 2002. See <a 2.3743 + href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf</a> 2.3744 + </dd> 2.3745 + <dt id="ref-Schema2"><strong class="normref">[Schema2]</strong></dt> 2.3746 + <dd><strong>XML Schema Part 2: Datatypes Second Edition</strong>, P. 2.3747 + Biron, A. Malhotra, eds. W3C, 28 October 2004 (Recommendation). Latest 2.3748 + version available at <a 2.3749 + href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>. 2.3750 + See also <a 2.3751 + href="http://www.w3.org/TR/2005/NOTE-xml11schema10-20050511/">Processing 2.3752 + XML 1.1 documents with XML Schema 1.0 processors</a>. </dd> 2.3753 + <dt id="ref-svg11"><strong class="normref">[SVG11]</strong></dt> 2.3754 + <dd><strong>Scalable Vector Graphics (SVG) 1.1 Specification</strong>, 2.3755 + Dean Jackson editor, W3C, 14 January 2003 (Recommendation). See <a 2.3756 + href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">http://www.w3.org/TR/2003/REC-SVG11-20030114/</a> 2.3757 + </dd> 2.3758 + <dt id="ref-svgt12"><strong class="normref">[SVGT12]</strong></dt> 2.3759 + <dd><strong>Scalable Vector Graphics (SVG) Tiny 1.2 Specification</strong>, 2.3760 + Dean Jackson editor, W3C, 22 December 2008 (Recommendation). See <a 2.3761 + href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/">http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/</a> 2.3762 + </dd> 2.3763 +</dl> 2.3764 + 2.3765 +<h3 id="informref">Informative References</h3> 2.3766 +<dl> 2.3767 + <dt id="ref-html5"><strong class="informref">[HTML5]</strong></dt> 2.3768 + <dd><strong>HTML5</strong>, Ian Hickson editor, Google, 2.3769 + 10 June 2008 (Working Draft). See <a 2.3770 + href="http://www.w3.org/TR/2008/WD-html5-20080610/">http://www.w3.org/TR/2008/WD-html5-20080610/</a> 2.3771 + </dd> 2.3772 +</dl> 2.3773 + 2.3774 + <h2 id="changes">Changes</h2> 2.3775 + <p>For changes since the last published draft, see the public <a href="http://dev.w3.org/cvsweb/SVG/modules/filters/publish/">cvs log</a>.</p> 2.3776 +</body> 2.3777 +</html>
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/filters/master/SVGFilterPrimer.html Mon Apr 11 10:08:48 2011 +1000 3.3 @@ -0,0 +1,320 @@ 3.4 +<?xml version="1.0" encoding="UTF-8"?> 3.5 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd"> 3.6 +<html xmlns="http://www.w3.org/1999/xhtml" 3.7 + xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en"> 3.8 +<head> 3.9 + <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 3.10 + <title>SVG Filters 1.2, Part 1: Primer</title> 3.11 + <link rel="stylesheet" type="text/css" href="style/svg-style.css" /> 3.12 + <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" /> 3.13 +</head> 3.14 + 3.15 +<body> 3.16 + 3.17 +<div class="head"> 3.18 + <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 3.19 + <h1 id="pagetitle">SVG Filters 1.2, Part 1: Primer</h1> 3.20 + <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2> 3.21 + <dl> 3.22 + <dt>This version:</dt> 3.23 + <dd><edit:thisversion/></dd> 3.24 + <dt>Latest version:</dt> 3.25 + <dd><edit:latestversion/></dd> 3.26 + <dt>Previous version:</dt> 3.27 + <dd><edit:previousversion/></dd> 3.28 + <dt>Editor:</dt> 3.29 + <dd>Erik Dahlström, Opera Software <<a href="mailto:ed@opera.com">ed@opera.com</a>></dd> 3.30 + <dt>Authors:</dt> 3.31 + <dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd> 3.32 + </dl> 3.33 + <edit:copyright/> 3.34 +</div> 3.35 + 3.36 +<hr/> 3.37 + 3.38 +<h2 id="abstract" edit:toc="no">Abstract </h2> 3.39 + 3.40 +<p> 3.41 +SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed. 3.42 +</p> 3.43 +<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO. 3.44 +</p> 3.45 +<p> 3.46 +This document introduces the features used by SVG filters. 3.47 +</p> 3.48 + 3.49 +<h2 id="status" edit:toc="no">Status of This Document </h2> 3.50 + 3.51 +<p><em>This section describes the status of this document at the time of its 3.52 +publication. Other documents may supersede this document. The latest status 3.53 +of this document series is maintained at the W3C. </em> </p> 3.54 + 3.55 +<p>This document is the first public working draft of this specification. </p> 3.56 + 3.57 +<p>This document has been produced by the <a 3.58 +href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of 3.59 +the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a> 3.60 +within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>. 3.61 +</p> 3.62 + 3.63 +<p>We explicitly invite comments on this specification. Please send them to 3.64 +<a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a> (<a 3.65 +href="http://lists.w3.org/Archives/Public/public-svg-filters/">archives</a>). 3.66 +For comments on the core SVG language, use <a 3.67 +href="mailto:www-svg@w3.org">www-svg@w3.org</a>: the public email list for 3.68 +issues related to vector graphics on the Web (<a 3.69 +href="http://lists.w3.org/Archives/Public/www-svg/">archives</a>). Acceptance 3.70 +of the archiving policy is requested automatically upon first post to either 3.71 +list. To subscribe to these lists send an email to <a 3.72 +href="mailto:public-svg-filters-request@w3.org">public-svg-filters-request@w3.org</a> 3.73 +or <a href="mailto:www-svg-request@w3.org">www-svg-request@w3.org</a> with 3.74 +the word subscribe in the subject line. </p> 3.75 + 3.76 +<p>The latest information regarding <a 3.77 +href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 3.78 +related to this document is available on the Web. As of this publication, the 3.79 +SVG Working Group are not aware of any royalty-bearing patents they believe 3.80 +to be essential to SVG. </p> 3.81 +<p>Publication of this document does not imply endorsement by the W3C 3.82 +membership. A list of current W3C Recommendations and other technical 3.83 +documents can be found at <a 3.84 +href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may 3.85 +be updated, replaced, or obsoleted by other documents at any time. It is 3.86 +inappropriate to cite a W3C Working Draft as anything other than a <em>work 3.87 +in progress</em>." </p> 3.88 + 3.89 +<h2 id="howto" edit:toc="no">How to read this document and give feedback </h2> 3.90 + 3.91 +<p>This is a primer for the SVG Filter specification. It gives guidelines on 3.92 +how to use the SVG Filter specification with SVG 1.2. In many cases the 3.93 +reader will have to be familiar with the <a 3.94 +href="http://www.w3.org/TR/SVG11/">SVG</a> language. </p> 3.95 + 3.96 +<p> 3.97 +This document is informative. 3.98 +</p> 3.99 + 3.100 +<h2 id="toc" edit:toc="no">Table of Contents</h2> 3.101 + 3.102 +<edit:fulltoc/> 3.103 + 3.104 +<h2 id="Introduction">Filters in SVG</h2> 3.105 + 3.106 +<p>Filter effects are defined by <a>'filter element'</a> elements. To apply a filter effect 3.107 +to a <a>graphics element</a> or a <a>container element</a>, you set the 3.108 +value of the <a>'filter property'</a> property on the given element such that 3.109 +it references the filter effect.</p> 3.110 + 3.111 +<p>Each <a>'filter element'</a> element contains a set of 3.112 +<span id="TermFilterPrimitive" class="SVG-Term">filter primitives</span> as its children. Each filter 3.113 +primitive performs a single fundamental graphical operation (e.g., a blur or 3.114 +a lighting effect) on one or more inputs, producing a graphical result. 3.115 +Because most of the filter primitives represent some form of image 3.116 +processing, in most cases the output from a filter primitive is a single RGBA 3.117 +image.</p> 3.118 + 3.119 +<p>The original source graphic or the result from a filter primitive can be 3.120 +used as input into one or more other filter primitives. A common application 3.121 +is to use the source graphic multiple times. For example, a simple filter 3.122 +could replace one graphic by two by adding a black copy of original source 3.123 +graphic offset to create a drop shadow. In effect, there are now two layers 3.124 +of graphics, both with the same original source graphics.</p> 3.125 + 3.126 +<p>When applied to <a>container elements</a> such as <a>'g'</a>, the <a>'filter property'</a> 3.127 +property applies to the contents of the 3.128 +group as a whole. The group's children do not render to the screen directly; 3.129 +instead, the graphics commands necessary to render the children are stored 3.130 +temporarily. Typically, the graphics commands are executed as part of the 3.131 +processing of the referenced <a>'filter element'</a> element via use of the keywords 3.132 +<a>SourceGraphic</a> or <a>SourceAlpha</a>. 3.133 +Filter effects can be applied to <a>container elements</a> with no 3.134 +content (e.g., an empty <a>'g'</a> element), in which case the 3.135 +<a>SourceGraphic</a> or <a>SourceAlpha</a> consist of a transparent black 3.136 +rectangle that is the size of the 3.137 +<a>filter effects region</a>.</p> 3.138 + 3.139 +<p>Sometimes filter primitives result in undefined pixels. For example, 3.140 +filter primitive <a>'feOffset'</a> can shift an image down and to the 3.141 +right, leaving undefined pixels at the top and left. In these cases, the 3.142 +undefined pixels are set to transparent black.</p> 3.143 + 3.144 +<h2 id="Example">An example</h2> 3.145 + 3.146 +<p>The following shows an example of a filter effect.</p> 3.147 + 3.148 +<p><span class="example-ref">Example filters01</span> - introducing filter 3.149 +effects.</p> 3.150 + 3.151 +<edit:example href="examples/filters01.svg" image="yes" link="yes"/> 3.152 + 3.153 +<p>The filter effect used in the example above is repeated here with 3.154 +reference numbers in the left column before each of the six filter 3.155 +primitives:</p> 3.156 + 3.157 +<table summary="filter example with reference numbers"> 3.158 + <tbody> 3.159 + <tr> 3.160 + <td valign="top"><pre style="color:black"> 3.161 + 3.162 +1 3.163 +2 3.164 +3 3.165 + 3.166 + 3.167 + 3.168 + 3.169 +4 3.170 +5 3.171 + 3.172 +6 3.173 + 3.174 + 3.175 + </pre> 3.176 + </td> 3.177 + <td valign="top"><pre><filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 3.178 + <desc>Produces a 3D lighting effect.</desc> 3.179 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 3.180 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 3.181 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 3.182 + specularExponent="20" lighting-color="#bbbbbb" 3.183 + result="specOut"> 3.184 + <fePointLight x="-5000" y="-10000" z="20000"/> 3.185 + </feSpecularLighting> 3.186 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 3.187 + <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 3.188 + k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 3.189 + <feMerge> 3.190 + <feMergeNode in="offsetBlur"/> 3.191 + <feMergeNode in="litPaint"/> 3.192 + </feMerge> 3.193 +</filter></pre> 3.194 + </td> 3.195 + </tr> 3.196 + </tbody> 3.197 +</table> 3.198 + 3.199 +<p>The following pictures show the intermediate image results from each of 3.200 +the six filter elements:</p> 3.201 + 3.202 +<table summary="filter example intermediate results"> 3.203 + <tbody> 3.204 + <tr> 3.205 + <td><p><img width="115" height="70" 3.206 + alt="filters01 - original source graphic" 3.207 + src="examples/filters01-0.png" /><br /> 3.208 + Source graphic</p> 3.209 + </td> 3.210 + <td> </td> 3.211 + <td><p><img width="115" height="70" 3.212 + alt="filters01 - after filter element 1" 3.213 + src="examples/filters01-1.png" /><br /> 3.214 + After filter primitive 1</p> 3.215 + </td> 3.216 + <td> </td> 3.217 + <td><p><img width="115" height="70" 3.218 + alt="filters01 - after filter element 2" 3.219 + src="examples/filters01-2.png" /><br /> 3.220 + After filter primitive 2</p> 3.221 + </td> 3.222 + <td> </td> 3.223 + <td><p><img width="115" height="70" 3.224 + alt="filters01 - after filter element 3" 3.225 + src="examples/filters01-3.png" /><br /> 3.226 + After filter primitive 3</p> 3.227 + </td> 3.228 + </tr> 3.229 + <tr> 3.230 + <td> </td> 3.231 + <td> </td> 3.232 + <td></td> 3.233 + <td></td> 3.234 + <td></td> 3.235 + <td></td> 3.236 + <td></td> 3.237 + </tr> 3.238 + <tr> 3.239 + <td> </td> 3.240 + <td> </td> 3.241 + <td><p><img width="115" height="70" 3.242 + alt="filters01 - after filter element 4" 3.243 + src="examples/filters01-4.png" /><br /> 3.244 + After filter primitive 4</p> 3.245 + </td> 3.246 + <td> </td> 3.247 + <td><p><img width="115" height="70" 3.248 + alt="filters01 - after filter element 5" 3.249 + src="examples/filters01-5.png" /><br /> 3.250 + After filter primitive 5</p> 3.251 + </td> 3.252 + <td> </td> 3.253 + <td><p><img width="115" height="70" 3.254 + alt="filters01 - after filter element 6" 3.255 + src="examples/filters01-6.png" /><br /> 3.256 + After filter primitive 6</p> 3.257 + </td> 3.258 + </tr> 3.259 + </tbody> 3.260 +</table> 3.261 +<ol> 3.262 + <li>Filter primitive <a>'feGaussianBlur'</a> takes input <a>SourceAlpha</a>, 3.263 + which is the alpha channel of 3.264 + the source graphic. The result is stored in a temporary buffer named 3.265 + "blur". Note that "blur" is used as input to both filter primitives 2 and 3.266 + 3.</li> 3.267 + <li>Filter primitive <a>'feOffset'</a> takes buffer "blur", shifts 3.268 + the result in a positive direction in both x and y, and creates a new 3.269 + buffer named "offsetBlur". The effect is that of a drop shadow.</li> 3.270 + <li>Filter primitive <a>'feSpecularLighting'</a>, uses buffer "blur" 3.271 + as a model of a surface elevation and generates a lighting effect from a 3.272 + single point source. The result is stored in buffer "specOut".</li> 3.273 + <li>Filter primitive <a>'feComposite'</a> masks out the result of 3.274 + filter primitive 3 by the original source graphics alpha channel so that 3.275 + the intermediate result is no bigger than the original source 3.276 + graphic.</li> 3.277 + <li>Filter primitive <a>'feComposite'</a> composites the result of 3.278 + the specular lighting with the original source graphic.</li> 3.279 + <li>Filter primitive <a>'feMerge'</a> composites two layers together. 3.280 + The lower layer consists of the drop shadow result from filter primitive 3.281 + 2. The upper layer consists of the specular lighting result from filter 3.282 + primitive 5.</li> 3.283 +</ol> 3.284 + 3.285 +<h2 id="feGaussianBlurElement">Filter primitive <span 3.286 +class="element-name">'feGaussianBlur'</span></h2> 3.287 + 3.288 +<p> 3.289 + The <a>'feGaussianBlur'</a> filter primitive can be used to create blur effects. 3.290 + Below is an example where the blur is applied only in one direction, which can 3.291 + give better performance in some <a>user agents</a>. 3.292 + <edit:example href="examples/feGaussianBlur-stdDeviation-00.svg" image="yes" link="yes"/> 3.293 +</p> 3.294 + 3.295 +<p>The blur filter can also be used for creating the impression of something being in motion, as in this example. 3.296 + <edit:example href="examples/feGaussianBlur-motion-00.svg" image="yes" link="yes"/> 3.297 +</p> 3.298 + 3.299 +<h2 id="references">References </h2> 3.300 +<dl> 3.301 + <dt id="SVG12Full">SVG12</dt> 3.302 + <dd><strong>Scalable Vector Graphics (SVG) 1.2 Specification</strong>, 3.303 + Dean Jackson editor, W3C, 27 October 2004 (Working Draft). See <a 3.304 + href="http://www.w3.org/TR/2004/WD-SVG12-20041027/">http://www.w3.org/TR/2004/WD-SVG12-20041027/</a> 3.305 + </dd> 3.306 + <dt id="SVG12Requirements">SVG12Reqs</dt> 3.307 + <dd><strong>SVG 1.1/1.2/2.0 Requirements</strong>, Dean Jackson editor, 3.308 + W3C, 22 April 2002 (Working Draft). See <a 3.309 + href="http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/">http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/</a> 3.310 + </dd> 3.311 + <dt id="SVGFilterRequirements">SVGFilterReqs</dt> 3.312 + <dd><strong>SVG Filter Requirements</strong>, Erik Dahlström, W3C, 3 May 2007 3.313 + (Working Draft). See <a 3.314 + href="http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/</a> 3.315 + </dd> 3.316 + <dt id="SVG12Filter">SVG12Filters</dt> 3.317 + <dd><strong>SVG Filters 1.2</strong>, Erik Dahlström editor, W3C, 3 May 2007 (Working Draft). See <a 3.318 + href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a> 3.319 + </dd> 3.320 +</dl> 3.321 + 3.322 +</body> 3.323 +</html>
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/filters/master/SVGFilterReqs.html Mon Apr 11 10:08:48 2011 +1000 4.3 @@ -0,0 +1,305 @@ 4.4 +<?xml version="1.0" encoding="UTF-8"?> 4.5 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd"> 4.6 +<html xmlns="http://www.w3.org/1999/xhtml" 4.7 + xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en"> 4.8 +<head> 4.9 + <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 4.10 + <title>SVG Filter Requirements</title> 4.11 + <style type="text/css"> 4.12 + 4.13 + .designgoals { 4.14 + list-style-type: decimal; 4.15 + } 4.16 + 4.17 + .req-level1 { 4.18 + list-style-type: decimal; 4.19 + font-weight: bold; 4.20 + } 4.21 + 4.22 + .req-level2 { 4.23 + list-style-type: decimal; 4.24 + font-weight: normal; 4.25 + } 4.26 + 4.27 + .req-level1 li { 4.28 + margin-top: 1em; 4.29 + } 4.30 + 4.31 + .req-level2 li { 4.32 + margin-top: 0em; 4.33 + } 4.34 + 4.35 + .label { 4.36 + margin-top: 1em; 4.37 + } 4.38 + 4.39 + .comment { 4.40 + background: #ffffaa; 4.41 + } 4.42 + 4.43 + .svgversion { 4.44 + color: #336633; 4.45 + font-weight: bold; 4.46 + } 4.47 + 4.48 + .term { 4.49 + font-weight: bold; 4.50 + color: #aa3333; 4.51 + } 4.52 + 4.53 + .issue { 4.54 + color: #ff0000; 4.55 + } 4.56 + 4.57 + </style> 4.58 + <link type="text/css" rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/base" /> 4.59 +</head> 4.60 + 4.61 +<body> 4.62 + 4.63 +<div class="head"> 4.64 + <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 4.65 + <h1 id="pagetitle">SVG Filter Requirements</h1> 4.66 + <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2> 4.67 + <dl> 4.68 + <dt>This version:</dt> 4.69 + <dd><edit:thisversion/></dd> 4.70 + <dt>Latest version:</dt> 4.71 + <dd><edit:latestversion/></dd> 4.72 + <dt>Previous version:</dt> 4.73 + <dd><edit:previousversion/></dd> 4.74 + <dt>Editor:</dt> 4.75 + <dd>Erik Dahlström, Opera Software <<a href="mailto:ed@opera.com">ed@opera.com</a>></dd> 4.76 + <dt>Authors:</dt> 4.77 + <dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd> 4.78 + </dl> 4.79 + <edit:copyright/> 4.80 +</div> 4.81 + 4.82 +<hr/> 4.83 + 4.84 +<h2 id="sec-abstract" edit:toc="no">Abstract</h2> 4.85 + 4.86 +<p>This document lists the design principles and requirements for the 4.87 +creation of a SVG specification related to filters. </p> 4.88 + 4.89 +<h2 id="sec-status" edit:toc="no">Status of this Document</h2> 4.90 + 4.91 +<p>This is a W3C Working Draft for review by W3C Members and other interested 4.92 +parties. It is a draft document and may be updated, replaced or made obsolete 4.93 +by other documents at any time. It is inappropriate to use W3C Working Drafts 4.94 +as reference material or to cite them as other than "work in progress". A 4.95 +list of current W3C Recommendations and other technical documents, including 4.96 +Working Drafts and Notes, can be found at <a 4.97 +href="http://www.w3.org/TR/">http://www.w3.org/TR/</a> </p> 4.98 + 4.99 +<p>This is the first release of the SVG Filter Requirements. It is expected 4.100 +that this document will progress through a number of working drafts, 4.101 +including "Last Call", before being published in final form. </p> 4.102 + 4.103 +<p>This document was developed by the <a 4.104 +href="http://www.w3.org/Graphics/SVG/">Scalable Vector Graphics</a> (SVG) 4.105 +working group as part of the W3C <a 4.106 +href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>. The authors 4.107 +of this document are the SVG Working Group members. </p> 4.108 + 4.109 +<p>Feedback on this document should be sent to the email list <a 4.110 +href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a>. This 4.111 +is an archived public list specific to the issues of SVG Filters. Public 4.112 +discussion of issues related to vector graphics on the Web and SVG in 4.113 +particular takes place on the <a href="mailto:www-svg@w3.org">the public 4.114 +mailing list of the SVG Working Group</a> (<a 4.115 +href="http://lists.w3.org/Archives/Public/www-svg/">list archives</a>). To 4.116 +subscribe send an email to <code>www-svg-request@w3.org</code> with the word 4.117 +<code>subscribe</code> in the subject line. </p> 4.118 + 4.119 +<p>The latest information regarding <a rel="disclosures" 4.120 +href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 4.121 +related to this document is available on the Web. As of this publication, the 4.122 +SVG Working Group are not aware of any royalty-bearing patents they believe 4.123 +to be essential to SVG. </p> 4.124 + 4.125 +<p><em>This section represents the status of this document at the time this 4.126 +version was published. It will become outdated if and when a new version is 4.127 +published. The latest status is maintained at the W3C. </em> </p> 4.128 + 4.129 +<h2 id="toc" edit:toc="no">Table of Contents</h2> 4.130 + 4.131 +<edit:fulltoc/> 4.132 + 4.133 +<div class="div1"> 4.134 +<h2 id="sec-introduction">Introduction </h2> 4.135 + 4.136 +<p>The 4.137 +<a href="http://www.w3.org/TR/SVG11">SVG specification</a> is a W3C 4.138 +recommendation that describes two-dimensional graphics in XML. </p> 4.139 +</div> 4.140 + 4.141 +<div class="div1"> 4.142 +<h2 id="sec-terminology">Terminology </h2> 4.143 + 4.144 +<p>The following key words and phrases used throughout this document are 4.145 +defined here for clarity. The terms Must, Should, and May are used to specify 4.146 +the extent to which an item is a requirement for the SVG working group in 4.147 +defining SVGP. These recommendations should not be mistaken as a guide to 4.148 +implementors. </p> 4.149 +<ol> 4.150 + <li><b>'Must'</b> means that the item is an absolute requirement. </li> 4.151 + <li><b>'Should'</b> means that there may exist valid reasons in particular 4.152 + circumstances to ignore the item, but the full implications must be 4.153 + understood and carefully weighed before choosing a different course. </li> 4.154 + <li><b>'May' </b> means that item will be considered, but further 4.155 + examination is needed to determine if the item should be treated as a 4.156 + requirement. </li> 4.157 + <li><b>'SVG' </b> refers to SVG in general without reference to any version 4.158 + or profile. </li> 4.159 + <li><b>'SVG 1.0' </b> refers to the original SVG specification. </li> 4.160 + <li><b>'SVG 1.1' </b> refers to the modularized version of SVG 1.0. </li> 4.161 + <li><b>'SVG 1.2' </b> refers to the next release of SVG and is planned to 4.162 + reference this specification. </li> 4.163 + <li><b>'SVGF' </b> refers to SVG Filter, an SVG specification for 4.164 + filtering. </li> 4.165 +</ol> 4.166 +</div> 4.167 + 4.168 +<div class="div1"> 4.169 +<h2 id="sec-usage">Usage Scenarios </h2> 4.170 + 4.171 +<p>The following usage scenarios illustrate some of the ways in which SVG 4.172 +Filters might be used for various applications. </p> 4.173 + 4.174 +<p><b>Making drop shadows</b> Filtering the input (e.g. text or bitmaps) to 4.175 +produce drop shadows. </p> 4.176 +<p><b>Changing color tone</b> Filtering the input to become e.g. sepia-toned or black and white.</p> 4.177 +</div> 4.178 + 4.179 +<div class="div1"> 4.180 +<h2 id="sec-features">Special Filter Considerations</h2> 4.181 + 4.182 +<p><b>Memory and processor requirements</b> A filter effect may require 4.183 +significant memory or processing resources. </p> 4.184 +</div> 4.185 + 4.186 +<div class="div1"> 4.187 +<h2 id="sec-requirements">Requirements</h2> 4.188 +<ol class="req-level1"> 4.189 + <li>General Requirements 4.190 + <ol class="req-level2"> 4.191 + <li>Any valid SVG 1.1 filter <span class="term">must</span> be a valid 4.192 + SVGF filter. </li> 4.193 + <li>Conformance criteria for SVGF <span class="term">must</span> be 4.194 + produced. The criteria <span class="term">should</span> be separated 4.195 + into sections relevant to particular application types (eg. SVG 4.196 + files/document fragments, SVG generators, SVG viewers, SVG printers, 4.197 + etc.) </li> 4.198 + <li>Software or documents <span class="term">must</span> pass the 4.199 + relevant criteria to be able to claim conformance to the particular 4.200 + application type. </li> 4.201 + <li>A conformance test suite <span class="term">must</span> be 4.202 + developed for SVGF. The test suite must be made publicly available. 4.203 + Conformance test suites for other uses of SVGF (e.g. prepress 4.204 + guidelines) <span class="term">may</span> be developed. </li> 4.205 + <li>A specification referencing SVGF <span class="term">may</span> 4.206 + declare that 'enableBackground' is not supported when used in 4.207 + conjunction with that specification. If so, then support for 4.208 + 'backgroundAlpha' and 'backgroundImage' <span 4.209 + class="term">must</span> be excluded as well. </li> 4.210 + <li>A specification referencing SVGF <span class="term">must</span> 4.211 + declare if animations applies when a 'filter' chain is in its scope. 4.212 + </li> 4.213 + </ol> 4.214 + </li> 4.215 + <li>Scripting 4.216 + <ol class="req-level2"> 4.217 + <li>A dynamic SVGF viewer <span class="term">must</span> support the 4.218 + SVGF scripting feature set. </li> 4.219 + </ol> 4.220 + </li> 4.221 + <li>Animation 4.222 + <ol class="req-level2"> 4.223 + <li>A dynamic SVGF viewer <span class="term">must</span> support animation of all 4.224 + properties listed as animatable. </li> 4.225 + </ol> 4.226 + </li> 4.227 +</ol> 4.228 +</div> 4.229 + 4.230 +<div class="div1"> 4.231 +<h2 id="sec-references">References</h2> 4.232 +<dl class="references"> 4.233 + <dt class="label" id="ref-svg">SVG 1.1</dt> 4.234 + <dd><em>Scalable Vector Graphics (SVG) 1.1 Specification</em>, Jon 4.235 + Ferraiolo, Jun Fujisawa, Dean Jackson, editors, W3C, 14 January 2003 4.236 + (Recommendation). See <a 4.237 + href="http://www.w3.org/TR/SVG11/">http://www.w3.org/TR/SVG11/</a> </dd> 4.238 + <dt class="label" id="ref-svgreqs">SVG 1.1/1.2/2.0 4.239 + Requirements</dt> 4.240 + <dd><em>SVG 1.1/1.2/2.0 Requirements Document</em>, Dean Jackson, editor, 4.241 + W3C, 22 April 2002. See <a 4.242 + href="http://www.w3.org/TR/SVG2Reqs/">http://www.w3.org/TR/SVG2Reqs/</a> 4.243 + </dd> 4.244 + <dt class="label" id="ref-svgmobilereqs">Mobile SVG Profiles</dt> 4.245 + <dd><em>Mobile SVG Profiles: SVG Tiny and SVG Basic</em>, Tolga Capin, 4.246 + editor, W3C, 14 January 2003 (Recommendation). See <a 4.247 + href="http://www.w3.org/TR/SVGMobile">http://www.w3.org/TR/SVGMobile</a> 4.248 + </dd> 4.249 +</dl> 4.250 +</div> 4.251 +<hr class="xhtml" /> 4.252 + 4.253 +<h2 id="sec-authorlist">Author List</h2> 4.254 + 4.255 +<p>The authors of this specification are the participants of the W3C SVG 4.256 +Working Group.</p> 4.257 +<dl> 4.258 + <dt>Authors:</dt> 4.259 + <dd><ul> 4.260 + <li>Ola Andersson, ZOOMON AB</li> 4.261 + <li>Henric Axelsson, Ericsson AB</li> 4.262 + <li>Phil Armstrong, Corel Corporation</li> 4.263 + <li>Robin Berjon, Expway</li> 4.264 + <li>Benoît Bézaire, Corel Corporation</li> 4.265 + <li>Craig Brown, Canon Information Systems Research Australia</li> 4.266 + <li>Mike Bultrowicz, Savage Software</li> 4.267 + <li>Tolga Capin, Nokia Inc.</li> 4.268 + <li>Mathias Larsson Carlander, Ericsson AB</li> 4.269 + <li>Jakob Cederquist, ZOOMON AB</li> 4.270 + <li>Charilaos Christopoulos, Ericsson AB</li> 4.271 + <li>Lee Cole, Quark</li> 4.272 + <li>Don Cone, America Online Inc.</li> 4.273 + <li>Alex Danilo, Canon Information Systems Research Australia</li> 4.274 + <li>Thomas DeWeese, Eastman Kodak</li> 4.275 + <li>Jon Ferraiolo, Adobe Systems Inc.</li> 4.276 + <li>Darryl Fuller, Schema Software</li> 4.277 + <li>藤沢 æ·³ (FUJISAWA Jun), Canon</li> 4.278 + <li>Rick Graham, BitFlash</li> 4.279 + <li>Vincent Hardy, Sun Microsystems Inc.</li> 4.280 + <li>端山 貴也 (HAYAMA Takanari), KDDI Research Labs</li> 4.281 + <li>Lofton Henderson, OASIS</li> 4.282 + <li>石å·é›…康 (ISHIKAWA Masayasu), W3C</li> 4.283 + <li>Dean Jackson, W3C/CSIRO (<i>W3C Team Contact</i>)</li> 4.284 + <li>Christophe Jolif, ILOG S.A.</li> 4.285 + <li>Lee Klosterman, Hewlett-Packard</li> 4.286 + <li>å°æž— 亜令 (KOBAYASHI Arei), KDDI Research Labs</li> 4.287 + <li>Thierry Kormann, ILOG S.A.</li> 4.288 + <li>Yuri Khramov, Schema Software</li> 4.289 + <li>Chris Lilley, W3C (<i>Working Group Chair</i>)</li> 4.290 + <li>Philip Mansfield, Schema Software</li> 4.291 + <li>Peter Mierau, Adobe Systems Inc.</li> 4.292 + <li>æ°´å£ å…… (MINAKUCHI Mitsuru), Sharp Corporation</li> 4.293 + <li>Luc Minnebo, Agfa-Gevaert N.V.</li> 4.294 + <li>å°é‡Ž 修一郎 (ONO Shuichiro), Sharp Corporation</li> 4.295 + <li>Antoine Quint, Fuchsia Design (formerly of ILOG)</li> 4.296 + <li>相良 毅 (SAGARA Takeshi), KDDI Research Labs</li> 4.297 + <li>Brad Sipes, ZOOMON AB</li> 4.298 + <li>Peter Sorotokin, Adobe Systems Inc.</li> 4.299 + <li>上田 å®é«˜ (UEDA Hirotaka), Sharp Corporation</li> 4.300 + <li>Rick Yardumian, Canon Development Americas</li> 4.301 + <li>Charles Ying, Openwave Systems, Inc.</li> 4.302 + </ul> 4.303 + </dd> 4.304 +</dl> 4.305 +</body> 4.306 +<!-- SVG Printing Requirements Document --> 4.307 +<!-- $Id$ --> 4.308 +</html>
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/filters/master/definitions-primer.xml Mon Apr 11 10:08:48 2011 +1000 5.3 @@ -0,0 +1,11 @@ 5.4 +<!-- Definitions file for SVG Filters 1.2 Primer --> 5.5 + 5.6 +<definitions xmlns='http://mcc.id.au/ns/local'> 5.7 + 5.8 + <import 5.9 + href='http://www.w3.org/TR/2009/WD-SVGFilter12-2009xxxx/' 5.10 + cvs-href='SVGFilter.html' 5.11 + definitions='definitions.xml' 5.12 + /> 5.13 + 5.14 +</definitions>
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/filters/master/definitions.xml Mon Apr 11 10:08:48 2011 +1000 6.3 @@ -0,0 +1,467 @@ 6.4 +<!-- Definitions file for SVG Filters 1.2 Language --> 6.5 + 6.6 +<definitions xmlns='http://mcc.id.au/ns/local'> 6.7 + 6.8 + <import 6.9 + href='http://www.w3.org/TR/2003/REC-SVG11-20030114/' 6.10 + definitions='../../../../SVG/profiles/1.1F2/master/definitions.xml' 6.11 + /> 6.12 + 6.13 + <import 6.14 + href='http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/' 6.15 + definitions='../../../../SVG/profiles/1.2T/master/definitions.xml' 6.16 + /> 6.17 + 6.18 + <!-- ... elements and element-specific attributes ....................... --> 6.19 + <element 6.20 + name='feBlend' 6.21 + href='#feBlendElement' 6.22 + contentmodel='anyof' 6.23 + elements='animate, set' 6.24 + attributecategories='core, style, presentation, filter primitive' 6.25 + attributes='in' 6.26 + interfaces='SVGFEBlendElement'> 6.27 + <attribute name='in2' href='#feBlendIn2Attribute'/> 6.28 + <attribute name='mode' href='#feBlendModeAttribute'/> 6.29 + </element> 6.30 + 6.31 + <element 6.32 + name='feColorMatrix' 6.33 + href='#feColorMatrixElement' 6.34 + contentmodel='anyof' 6.35 + elements='animate, set' 6.36 + attributecategories='core, style, presentation, filter primitive' 6.37 + attributes='in' 6.38 + interfaces='SVGFEColorMatrixElement'> 6.39 + <attribute name='type' href='#feColorMatrixTypeAttribute'/> 6.40 + <attribute name='values' href='#feColorMatrixValuesAttribute'/> 6.41 + </element> 6.42 + 6.43 + <element 6.44 + name='feComponentTransfer' 6.45 + href='#feComponentTransferElement' 6.46 + contentmodel='anyof' 6.47 + elements='feFuncR, feFuncG, feFuncB, feFuncA' 6.48 + attributecategories='core, style, presentation, filter primitive' 6.49 + attributes='in' 6.50 + interfaces='SVGFEComponentTransferElement'/> 6.51 + 6.52 + <element 6.53 + name='feComposite' 6.54 + href='#feCompositeElement' 6.55 + contentmodel='anyof' 6.56 + elements='animate, set' 6.57 + attributecategories='core, style, presentation, filter primitive' 6.58 + attributes='in' 6.59 + interfaces='SVGFECompositeElement'> 6.60 + <attribute name='in2' href='#feCompositeIn2Attribute'/> 6.61 + <attribute name='operator' href='#feCompositeOperatorAttribute'/> 6.62 + <attribute name='k1' href='#feCompositeK1Attribute'/> 6.63 + <attribute name='k2' href='#feCompositeK2Attribute'/> 6.64 + <attribute name='k3' href='#feCompositeK3Attribute'/> 6.65 + <attribute name='k4' href='#feCompositeK4Attribute'/> 6.66 + </element> 6.67 + 6.68 + <element 6.69 + name='feConvolveMatrix' 6.70 + href='#feConvolveMatrixElement' 6.71 + contentmodel='anyof' 6.72 + elements='animate, set' 6.73 + attributecategories='core, style, presentation, filter primitive' 6.74 + attributes='in' 6.75 + interfaces='SVGFEConvolveMatrixElement'> 6.76 + <attribute name='order' href='#feConvolveMatrixElementOrderAttribute'/> 6.77 + <attribute name='kernelMatrix' href='#feConvolveMatrixElementKernelMatrixAttribute'/> 6.78 + <attribute name='divisor' href='#feConvolveMatrixElementDivisorAttribute'/> 6.79 + <attribute name='bias' href='#feConvolveMatrixElementBiasAttribute'/> 6.80 + <attribute name='targetX' href='#feConvolveMatrixElementTargetXAttribute'/> 6.81 + <attribute name='targetY' href='#feConvolveMatrixElementTargetYAttribute'/> 6.82 + <attribute name='edgeMode' href='#feConvolveMatrixElementEdgeModeAttribute'/> 6.83 + <attribute name='kernelUnitLength' href='#feConvolveMatrixElementKernelUnitLengthAttribute'/> 6.84 + <attribute name='preserveAlpha' href='#feConvolveMatrixElementPreserveAlphaAttribute'/> 6.85 + </element> 6.86 + 6.87 + <element 6.88 + name='feDiffuseLighting' 6.89 + href='#feDiffuseLightingElement' 6.90 + contentmodel='anyof' 6.91 + elementcategories='light source' 6.92 + elements='animate, set, animateColor' 6.93 + attributecategories='core, style, presentation, filter primitive' 6.94 + attributes='in' 6.95 + interfaces='SVGFEDiffuseLightingElement'> 6.96 + <attribute name='surfaceScale' href='#feDiffuseLightingSurfaceScaleAttribute'/> 6.97 + <attribute name='diffuseConstant' href='#feDiffuseLightingDiffuseConstantAttribute'/> 6.98 + <attribute name='kernelUnitLength' href='#feDiffuseLightingKernelUnitLengthAttribute'/> 6.99 + </element> 6.100 + 6.101 + <element 6.102 + name='feDisplacementMap' 6.103 + href='#feDisplacementMapElement' 6.104 + contentmodel='anyof' 6.105 + elements='animate, set' 6.106 + attributecategories='core, style, presentation, filter primitive' 6.107 + attributes='in' 6.108 + interfaces='SVGFEDisplacementMapElement'> 6.109 + <attribute name='in2' href='#feDisplacementMapIn2Attribute'/> 6.110 + <attribute name='scale' href='#feDisplacementMapScaleAttribute'/> 6.111 + <attribute name='xChannelSelector' href='#feDisplacementMapXChannelSelectorAttribute'/> 6.112 + <attribute name='yChannelSelector' href='#feDisplacementMapYChannelSelectorAttribute'/> 6.113 + </element> 6.114 + 6.115 + <element 6.116 + name='feDistantLight' 6.117 + href='#feDistantLightElement' 6.118 + contentmodel='anyof' 6.119 + elements='animate, set' 6.120 + attributecategories='core' 6.121 + interfaces='SVGFEDistantLightElement'> 6.122 + <attribute name='azimuth' href='#feDistantLightAzimuthAttribute'/> 6.123 + <attribute name='elevation' href='#feDistantLightElevationAttribute'/> 6.124 + </element> 6.125 + 6.126 + <element 6.127 + name='feFlood' 6.128 + href='#feFloodElement' 6.129 + contentmodel='anyof' 6.130 + elements='animate, set, animateColor' 6.131 + attributecategories='core, style, presentation, filter primitive' 6.132 + interfaces='SVGFEFloodElement'/> 6.133 + 6.134 + <element 6.135 + name='feFuncR' 6.136 + contentmodel='anyof' 6.137 + elements='animate, set' 6.138 + attributecategories='core, transfer function element' 6.139 + interfaces='SVGFEFuncRElement'/> 6.140 + 6.141 + <element 6.142 + name='feFuncG' 6.143 + contentmodel='anyof' 6.144 + elements='animate, set' 6.145 + attributecategories='core, transfer function element' 6.146 + interfaces='SVGFEFuncGElement'/> 6.147 + 6.148 + <element 6.149 + name='feFuncB' 6.150 + contentmodel='anyof' 6.151 + elements='animate, set' 6.152 + attributecategories='core, transfer function element' 6.153 + interfaces='SVGFEFuncBElement'/> 6.154 + 6.155 + <element 6.156 + name='feFuncA' 6.157 + contentmodel='anyof' 6.158 + elements='animate, set' 6.159 + attributecategories='core, transfer function element' 6.160 + interfaces='SVGFEFuncAElement'/> 6.161 + 6.162 + <element 6.163 + name='feGaussianBlur' 6.164 + href='#feGaussianBlurElement' 6.165 + contentmodel='anyof' 6.166 + elements='animate, set' 6.167 + attributecategories='core, style, presentation, filter primitive' 6.168 + attributes='in' 6.169 + interfaces='SVGFEGaussianBlurElement'> 6.170 + <attribute name='stdDeviation' href='#feGaussianBlurStdDeviationAttribute'/> 6.171 + </element> 6.172 + 6.173 + <element 6.174 + name='feUnsharpMask' 6.175 + href='#feUnsharpMaskElement' 6.176 + contentmodel='anyof' 6.177 + elements='animate, set' 6.178 + attributecategories='core, style, presentation, filter primitive' 6.179 + attributes='in' 6.180 + interfaces='SVGFEUnsharpMaskElement'> 6.181 + <attribute name='amount' href='#feUnsharpMaskAmountAttribute'/> 6.182 + <attribute name='threshold' href='#feUnsharpMaskThresholdAttribute'/> 6.183 + <attribute name='stdDeviation' href='#feUnsharpMaskStdDeviationAttribute'/> 6.184 + </element> 6.185 + 6.186 + <element 6.187 + name='feImage' 6.188 + href='#feImageElement' 6.189 + contentmodel='anyof' 6.190 + elements='animate, set, animateTransform' 6.191 + attributecategories='core, style, presentation, filter primitive, xlink' 6.192 + attributes='externalResourcesRequired, preserveAspectRatio' 6.193 + interfaces='SVGFEImageElement'> 6.194 + <attribute name='xlink:href' href='#feImageElementHrefAttribute'/> 6.195 + </element> 6.196 + 6.197 + <element 6.198 + name='feMerge' 6.199 + href='#feMergeElement' 6.200 + contentmodel='anyof' 6.201 + elements='feMergeNode' 6.202 + attributecategories='core, style, presentation, filter primitive' 6.203 + interfaces='SVGFEMergeElement'/> 6.204 + 6.205 + <element 6.206 + name='feMergeNode' 6.207 + href='#feMergeNodeElement' 6.208 + contentmodel='anyof' 6.209 + elements='animate, set' 6.210 + attributecategories='core' 6.211 + attributes='in' 6.212 + interfaces='SVGFEMergeNodeElement'/> 6.213 + 6.214 + <element 6.215 + name='feMorphology' 6.216 + href='#feMorphologyElement' 6.217 + contentmodel='anyof' 6.218 + elements='animate, set' 6.219 + attributecategories='core, style, presentation, filter primitive' 6.220 + attributes='in' 6.221 + interfaces='SVGFEMorphologyElement'> 6.222 + <attribute name='operator' href='#feMorphologyOperatorAttribute'/> 6.223 + <attribute name='radius' href='#feMorphologyRadiusAttribute'/> 6.224 + </element> 6.225 + 6.226 + <element 6.227 + name='feOffset' 6.228 + href='#feOffsetElement' 6.229 + contentmodel='anyof' 6.230 + elements='animate, set' 6.231 + attributecategories='core, style, presentation, filter primitive' 6.232 + attributes='in' 6.233 + interfaces='SVGFEOffsetElement'> 6.234 + <attribute name='dx' href='#feOffsetDxAttribute'/> 6.235 + <attribute name='dy' href='#feOffsetDyAttribute'/> 6.236 + </element> 6.237 + 6.238 + <element 6.239 + name='fePointLight' 6.240 + href='#fePointLightElement' 6.241 + contentmodel='anyof' 6.242 + elements='animate, set' 6.243 + attributecategories='core' 6.244 + interfaces='SVGFEPointLightElement'> 6.245 + <attribute name='x' href='#fePointLightXAttribute'/> 6.246 + <attribute name='y' href='#fePointLightYAttribute'/> 6.247 + <attribute name='z' href='#fePointLightZAttribute'/> 6.248 + </element> 6.249 + 6.250 + <element 6.251 + name='feSpecularLighting' 6.252 + href='#feSpecularLightingElement' 6.253 + contentmodel='anyof' 6.254 + elementcategories='light source' 6.255 + elements='animate, set, animateColor' 6.256 + attributecategories='core, style, presentation, filter primitive' 6.257 + attributes='in' 6.258 + interfaces='SVGFESpecularLightingElement'> 6.259 + <attribute name='surfaceScale' href='#feSpecularLightingSurfaceScaleAttribute'/> 6.260 + <attribute name='specularConstant' href='#feSpecularLightingSpecularConstantAttribute'/> 6.261 + <attribute name='specularExponent' href='#feSpecularLightingSpecularExponentAttribute'/> 6.262 + <attribute name='kernelUnitLength' href='#feSpecularLightingKernelUnitLengthAttribute'/> 6.263 + </element> 6.264 + 6.265 + <element 6.266 + name='feSpotLight' 6.267 + href='#feSpotLightElement' 6.268 + contentmodel='anyof' 6.269 + elements='animate, set' 6.270 + attributecategories='core' 6.271 + interfaces='SVGFESpotLightElement'> 6.272 + <attribute name='x' href='#feSpotLightXAttribute'/> 6.273 + <attribute name='y' href='#feSpotLightYAttribute'/> 6.274 + <attribute name='z' href='#feSpotLightZAttribute'/> 6.275 + <attribute name='pointsAtX' href='#feSpotLightPointsAtXAttribute'/> 6.276 + <attribute name='pointsAtY' href='#feSpotLightPointsAtYAttribute'/> 6.277 + <attribute name='pointsAtZ' href='#feSpotLightPointsAtZAttribute'/> 6.278 + <attribute name='specularExponent' href='#feSpotLightSpecularExponentAttribute'/> 6.279 + <attribute name='limitingConeAngle' href='#feSpotLightLimitingConeAngleAttribute'/> 6.280 + </element> 6.281 + 6.282 + <element 6.283 + name='feTile' 6.284 + href='#feTileElement' 6.285 + contentmodel='anyof' 6.286 + elements='animate, set' 6.287 + attributecategories='core, style, presentation, filter primitive' 6.288 + attributes='in' 6.289 + interfaces='SVGFETileElement'/> 6.290 + 6.291 + <element 6.292 + name='feTurbulence' 6.293 + href='#feTurbulenceElement' 6.294 + contentmodel='anyof' 6.295 + elements='animate, set' 6.296 + attributecategories='core, style, presentation, filter primitive' 6.297 + interfaces='SVGFETurbulenceElement'> 6.298 + <attribute name='baseFrequency' href='#feTurbulenceBaseFrequencyAttribute'/> 6.299 + <attribute name='numOctaves' href='#feTurbulenceNumOctavesAttribute'/> 6.300 + <attribute name='seed' href='#feTurbulenceSeedAttribute'/> 6.301 + <attribute name='stitchTiles' href='#feTurbulenceStitchTilesAttribute'/> 6.302 + <attribute name='type' href='#feTurbulenceTypeAttribute'/> 6.303 + </element> 6.304 + 6.305 + <element 6.306 + name='filter' 6.307 + href='#FilterElement' 6.308 + contentmodel='anyof' 6.309 + elementcategories='descriptive, filter primitive' 6.310 + elements='animate, set' 6.311 + attributecategories='core, style, presentation, xlink' 6.312 + attributes='externalResourcesRequired' 6.313 + interfaces='SVGFilterElement'> 6.314 + <attribute name='x' href='#FilterElementXAttribute'/> 6.315 + <attribute name='y' href='#FilterElementYAttribute'/> 6.316 + <attribute name='width' href='#FilterElementWidthAttribute'/> 6.317 + <attribute name='height' href='#FilterElementHeightAttribute'/> 6.318 + <attribute name='filterRes' href='#FilterElementFilterResAttribute'/> 6.319 + <attribute name='filterUnits' href='#FilterElementFilterUnitsAttribute'/> 6.320 + <attribute name='primitiveUnits' href='#FilterElementPrimitiveUnitsAttribute'/> 6.321 + <attribute name='xlink:href' href='#FilterElementHrefAttribute'/> 6.322 + 6.323 + <!-- filter margin extensions --> 6.324 + <attribute name='mx' href='#FilterElementMxAttribute'/> 6.325 + <attribute name='my' href='#FilterElementMyAttribute'/> 6.326 + <attribute name='mw' href='#FilterElementMwAttribute'/> 6.327 + <attribute name='mh' href='#FilterElementMhAttribute'/> 6.328 + <attribute name='filterMarginUnits' href='#FilterElementFilterMarginUnitsAttribute'/> 6.329 + <attribute name='primitiveMarginUnits' href='#FilterElementPrimitiveMarginUnitsAttribute'/> 6.330 + </element> 6.331 + 6.332 + <element 6.333 + name='feDropShadow' 6.334 + href='#feDropShadowElement' 6.335 + contentmodel='anyof' 6.336 + elements='animate, set, animateColor' 6.337 + attributecategories='core, style, presentation, filter primitive' 6.338 + attributes='in' 6.339 + interfaces='SVGFEDropShadowElement'> 6.340 + <attribute name='stdDeviation' href='#feDropShadowStdDeviationAttribute'/> 6.341 + <attribute name='dx' href='#feDropShadowDxAttribute'/> 6.342 + <attribute name='dy' href='#feDropShadowDyAttribute'/> 6.343 + </element> 6.344 + 6.345 + <element 6.346 + name='feDiffuseSpecular' 6.347 + href='#feDiffuseSpecular' 6.348 + contentmodel='anyof' 6.349 + elements='animate, set, animateColor' 6.350 + attributecategories='core, style, presentation, filter primitive' 6.351 + attributes='in' 6.352 + interfaces='SVGFEDiffuseSpecular'> 6.353 + </element> 6.354 + 6.355 + <element 6.356 + name='feCustom' 6.357 + href='#feCustom' 6.358 + contentmodel='anyof' 6.359 + elements='animate, set, animateColor' 6.360 + attributecategories='core, style, presentation, filter primitive' 6.361 + attributes='in' 6.362 + interfaces='SVGFECustom'> 6.363 + </element> 6.364 + 6.365 + <!-- ... element categories ............................................ --> 6.366 + 6.367 + <elementcategory name='filter primitives' href='#TermFilterPrimitiveElements' elements='feBlend, feFlood, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feGaussianBlur, feUnsharpMask, feImage, feMerge, feMorphology, feOffset, feSpecularLighting, feTile, feTurbulence'/> 6.368 + <elementcategory name='transfer function element' href='#TermComponentTransferFunctionElement' elements='feFuncR, feFuncG, feFuncB, feFuncA'/> 6.369 + 6.370 + <!-- ... attributes common to multiple elements ........................ --> 6.371 + 6.372 + <!-- attribute common to most filter primitives (all except feFlood feImage feMerge feTurbulence --> 6.373 + <attribute name='in' elements='feBlend, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feGaussianBlur, feUnsharpMask, feMorphology, feOffset, feSpecularLighting, feTile' href='#FilterPrimitiveInAttribute'/> 6.374 + 6.375 + <!-- ... attribute categories .......................................... --> 6.376 + 6.377 + <attributecategory 6.378 + name='FilterPrimitiveAttributes' 6.379 + href='intro.html#TermFilterPrimitiveAttributes'> 6.380 + <attribute name='x' href='#FilterPrimitiveXAttribute'/> 6.381 + <attribute name='y' href='#FilterPrimitiveYAttribute'/> 6.382 + <attribute name='width' href='#FilterPrimitiveWidthAttribute'/> 6.383 + <attribute name='height' href='#FilterPrimitiveHeightAttribute'/> 6.384 + <attribute name='result' href='#FilterPrimitiveResultAttribute'/> 6.385 + 6.386 + <!-- filter margin extensions --> 6.387 + <attribute name='mx' href='#FilterPrimitiveMxAttribute'/> 6.388 + <attribute name='my' href='#FilterPrimitiveMyAttribute'/> 6.389 + <attribute name='mw' href='#FilterPrimitiveMwAttribute'/> 6.390 + <attribute name='mh' href='#FilterPrimitiveMhAttribute'/> 6.391 + </attributecategory> 6.392 + 6.393 + <attributecategory 6.394 + name='transfer function element' 6.395 + href='#TransferFunctionElementAttributes'> 6.396 + <attribute name='type' href='#feComponentTransferTypeAttribute'/> 6.397 + <attribute name='tableValues' href='#feComponentTransferTableValuesAttribute'/> 6.398 + <attribute name='slope' href='#feComponentTransferSlopeAttribute'/> 6.399 + <attribute name='intercept' href='#feComponentTransferInterceptAttribute'/> 6.400 + <attribute name='amplitude' href='#feComponentTransferAmplitudeAttribute'/> 6.401 + <attribute name='exponent' href='#feComponentTransferExponentAttribute'/> 6.402 + <attribute name='offset' href='#feComponentTransferOffsetAttribute'/> 6.403 + </attributecategory> 6.404 + 6.405 + 6.406 + <!-- ... properties ..................................................... --> 6.407 + 6.408 + <property name='enable-background' href='#EnableBackgroundProperty'/> 6.409 + <property name='filter' href='#FilterProperty'/> 6.410 + <property name='flood-color' href='#FloodColorProperty'/> 6.411 + <property name='flood-opacity' href='#FloodOpacityProperty'/> 6.412 + <property name='lighting-color' href='#LightingColorProperty'/> 6.413 + 6.414 + 6.415 + <!-- ... interfaces ..................................................... --> 6.416 + 6.417 + <interface name='SVGFilterElement' href='#InterfaceSVGFilterElement'/> 6.418 + <interface name='SVGFilterPrimitiveStandardAttributes' href='#InterfaceSVGFilterPrimitiveStandardAttributes'/> 6.419 + <interface name='SVGFEBlendElement' href='#InterfaceSVGFEBlendElement'/> 6.420 + <interface name='SVGFEColorMatrixElement' href='#InterfaceSVGFEColorMatrixElement'/> 6.421 + <interface name='SVGFEComponentTransferElement' href='#InterfaceSVGFEComponentTransferElement'/> 6.422 + <interface name='SVGComponentTransferFunctionElement' href='#InterfaceSVGComponentTransferFunctionElement'/> 6.423 + <interface name='SVGFEFuncRElement' href='#InterfaceSVGFEFuncRElement'/> 6.424 + <interface name='SVGFEFuncGElement' href='#InterfaceSVGFEFuncGElement'/> 6.425 + <interface name='SVGFEFuncBElement' href='#InterfaceSVGFEFuncBElement'/> 6.426 + <interface name='SVGFEFuncAElement' href='#InterfaceSVGFEFuncAElement'/> 6.427 + <interface name='SVGFECompositeElement' href='#InterfaceSVGFECompositeElement'/> 6.428 + <interface name='SVGFEConvolveMatrixElement' href='#InterfaceSVGFEConvolveMatrixElement'/> 6.429 + <interface name='SVGFEDiffuseLightingElement' href='#InterfaceSVGFEDiffuseLightingElement'/> 6.430 + <interface name='SVGFEDistantLightElement' href='#InterfaceSVGFEDistantLightElement'/> 6.431 + <interface name='SVGFEPointLightElement' href='#InterfaceSVGFEPointLightElement'/> 6.432 + <interface name='SVGFESpotLightElement' href='#InterfaceSVGFESpotLightElement'/> 6.433 + <interface name='SVGFEDisplacementMapElement' href='#InterfaceSVGFEDisplacementMapElement'/> 6.434 + <interface name='SVGFEFloodElement' href='#InterfaceSVGFEFloodElement'/> 6.435 + <interface name='SVGFEGaussianBlurElement' href='#InterfaceSVGFEGaussianBlurElement'/> 6.436 + <interface name='SVGFEUnsharpMaskElement' href='#InterfaceSVGFEUnsharpMaskElement'/> 6.437 + <interface name='SVGFEImageElement' href='#InterfaceSVGFEImageElement'/> 6.438 + <interface name='SVGFEMergeElement' href='#InterfaceSVGFEMergeElement'/> 6.439 + <interface name='SVGFEMergeNodeElement' href='#InterfaceSVGFEMergeNodeElement'/> 6.440 + <interface name='SVGFEMorphologyElement' href='#InterfaceSVGFEMorphologyElement'/> 6.441 + <interface name='SVGFEOffsetElement' href='#InterfaceSVGFEOffsetElement'/> 6.442 + <interface name='SVGFESpecularLightingElement' href='#InterfaceSVGFESpecularLightingElement'/> 6.443 + <interface name='SVGFETileElement' href='#InterfaceSVGFETileElement'/> 6.444 + <interface name='SVGFETurbulenceElement' href='#InterfaceSVGFETurbulenceElement'/> 6.445 + <interface name='SVGFEDropShadowElement' href='#InterfaceSVGFEDropShadowElement'/> 6.446 + <interface name='ImageData' href='#InterfaceImageData'/> 6.447 + 6.448 + 6.449 + <!-- ... terms (these will be generated later) .......................... --> 6.450 + <term name='SourceAlpha' href='#SourceAlpha' class='attr-value'/> 6.451 + <term name='SourceGraphic' href='#SourceGraphic' class='attr-value'/> 6.452 + <term name='BackgroundImage' href='#BackgroundImage' class='attr-value'/> 6.453 + <term name='BackgroundAlpha' href='#BackgroundAlpha' class='attr-value'/> 6.454 + <term name='FillPaint' href='#FillPaint' class='attr-value'/> 6.455 + <term name='StrokePaint' href='#StrokePaint' class='attr-value'/> 6.456 + <term name='source graphic' href='#TermSourceGraphic'/> 6.457 + <term name='filter effects region' href='#FilterEffectsRegion'/> 6.458 + <term name='filter region' href='#FilterEffectsRegion'/> 6.459 + <term name='filter primitive' href='#TermFilterPrimitiveElement'/> 6.460 + <term name='filter primitive subregion' href='#FilterPrimitiveSubRegion'/> 6.461 + <term name='null filter' href='#TermNullFilter'/> 6.462 + <term name='transfer function element' href='#TermTransferFunctionElements'/> 6.463 + <term name='transfer function elements' href='#TermTransferFunctionElements'/> 6.464 + <term name='filter primitives' href='#TermFilterPrimitiveElements'/> 6.465 + <term name='filter primitive elements' href='#TermFilterPrimitiveElements'/> 6.466 + <term name='filter-primitive-reference' href='#TermFilterPrimitiveReference'/> 6.467 + 6.468 + <!-- ... symbols (surrounded by < and >) .......................... --> 6.469 + <symbol name='filter-primitive-reference' href='#TermFilterPrimitiveReference'/> 6.470 +</definitions>
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/filters/master/examples/Forque.svg Mon Apr 11 10:08:48 2011 +1000 7.3 @@ -0,0 +1,109 @@ 7.4 +<?xml version="1.0" standalone="no"?> 7.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > 7.6 +<svg xmlns="http://www.w3.org/2000/svg"> 7.7 +<defs> 7.8 +<desc> 7.9 +Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. 7.10 +</desc> 7.11 +<font id="FORQUE" horiz-adv-x="815" > 7.12 +<font-face font-family="FORQUE" font-weight="400" font-stretch="normal" units-per-em="2048" panose-1="2 0 5 0 0 0 0 0 0 0" ascent="1638" descent="-410" x-height="1233" cap-height="1434" bbox="-80 -418 1521 1579" underline-thickness="150" underline-position="-142" unicode-range="U+0020-U+20AC"/> 7.13 +<missing-glyph horiz-adv-x="389" /> 7.14 +<glyph glyph-name=".notdef" horiz-adv-x="389" /> 7.15 +<glyph glyph-name=".null" horiz-adv-x="0" /> 7.16 +<glyph glyph-name="nonmarkingreturn" horiz-adv-x="682" /> 7.17 +<glyph glyph-name="space" unicode=" " horiz-adv-x="389" /> 7.18 +<glyph glyph-bame="tab" unicode="	" horiz-adv-x="389" /> 7.19 +<glyph glyph-bame="uni00A0" unicode=" " horiz-adv-x="389" /> 7.20 +<glyph glyph-name="exclam" unicode="!" horiz-adv-x="417" d="M298 392h-287v1042h287v-1042zM258 242q-42 42 -102 42q-59 0 -101 -42q-43 -42 -43 -101q0 -60 43 -102q42 -42 101 -42q60 0 102 42t42 102q0 59 -42 101z" /> 7.21 +<glyph glyph-name="quotedbl" unicode=""" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 7.22 +<glyph glyph-name="numbersign" unicode="#" horiz-adv-x="1336" d="M596 859l-85 -290h242l86 290h-243zM673 1434h93l-141 -477h242l142 477h92l-141 -477h259l-29 -97h-259l-83 -290h279l-30 -98h-280l-140 -472h-92l139 472h-240l-142 -472h-92l140 472h-273l30 98h271l86 290h-295l29 97h295z" /> 7.23 +<glyph glyph-name="dollar" unicode="$" horiz-adv-x="1014" d="M577 1552v-102q68 -8 141 -35q10 -6 19 -6q25 0 41 45h50l103 -282h-49q-60 134 -168 179q-74 30 -137 39v-540q241 -93 322.5 -183t81.5 -264q0 -197 -119.5 -300t-284.5 -120v-239h-73v237q-188 3 -266 38q-10 6 -19 6q-25 0 -41 -45h-50v331h49q50 -183 152.5 -226 t174.5 -43v635q-214 67 -299 153q-92 91 -92 249q0 166 125 271q105 88 266 102v100h73zM577 655v-610q125 17 211.5 96t86.5 219q0 116 -69 183q-62 59 -229 112zM504 873v520q-119 -5 -199 -72q-86 -73 -86 -182q0 -98 55 -153q52 -54 230 -113z" /> 7.24 +<glyph glyph-name="percent" unicode="%" horiz-adv-x="1610" d="M1026 230q-54 53 -54 128q0 76 54 129q53 53 129 53q75 0 128 -53q54 -53 54 -129q0 -75 -54 -128q-53 -54 -128 -54q-76 0 -129 54zM901 612q-106 -105 -106 -254q0 -148 106 -254q105 -105 254 -105q148 0 253 105q106 106 106 254q0 149 -106 254q-105 105 -253 105 q-149 0 -254 -105zM235 939q-53 53 -53 129q0 75 53 128q54 54 129 54q76 0 129 -54q53 -53 53 -128q0 -76 -53 -129t-129 -53q-75 0 -129 53zM110 1322q-105 -106 -105 -254q0 -149 105 -254t254 -105t254 105t105 254q0 148 -105 254q-105 105 -254 105t-254 -105zM320 0 h-304l1200 1434h305z" /> 7.25 +<glyph glyph-name="ampersand" unicode="&" horiz-adv-x="1138" d="M672 375h-1v-13q0 -30 -21 -51t-51 -21h-237q-30 0 -51 21t-21 51t21 51q21 22 51 22h310v-60zM1041 430v287h-90v214h-286v-214h-307q-29 0 -50 21t-21 51v286q0 30 21 51t50 21q26 0 46 -16l5 -5v0v0l5 -5q-2 2 0 -1q2 -2 4 -5q-1 2 0 0q2 -3 4 -5q-2 2 0 -1q1 -3 3 -6 q-1 0 1 -3l1 -3q0 -1 1 -4q1 -4 1 -3v-5q1 -3 1 -2v-8v-14v-16h287v32q-1 147 -105 252q-104 104 -252 105h-14v0q-145 -6 -245 -109q-101 -105 -101 -250v-288q1 -119 72 -213q-72 -96 -72 -216q0 -148 105 -253t253 -105h236q119 1 214 72q95 -71 214 -72h14v287h-13 q-30 0 -51 21t-21 50v72h90z" /> 7.26 +<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="1024" d="M498 1294q-4 71 -37 130q-37 66 -37 84q0 32 23.5 51.5t62.5 19.5q37 0 61.5 -18t24.5 -47q0 -21 -36 -89q-33 -61 -37 -130q66 25 113 75q51 55 69 61q11 3 21 3q18 0 35 -10q26 -17 38 -53q6 -19 6 -36q0 -15 -4 -28q-10 -30 -38 -38q-6 -2 -19 -2q-25 0 -76 9 q-28 5 -55 5q-41 0 -81 -11q44 -55 105 -83q68 -32 79 -47q13 -18 13 -38q0 -9 -2 -17q-8 -30 -39 -53q-29 -22 -59 -22q-1 0 -1 1q-31 0 -48 23q-12 17 -22 94q-10 67 -47 125q-38 -58 -46 -124q-9 -75 -20 -90q-19 -25 -49 -27h-5q-28 0 -57 21q-30 21 -39 51q-4 10 -4 20 q0 17 11 32q13 17 83 51q61 29 105 82q-41 11 -80 11q-27 0 -53 -5q-54 -11 -78 -11q-9 0 -14 2q-30 9 -41 38q-6 13 -6 29q0 17 6 36q11 35 36 53q17 12 34 12q9 0 18 -3q20 -6 74 -62q47 -49 112 -75z" /> 7.27 +<glyph glyph-name="plus" unicode="+" horiz-adv-x="836" d="M731 573h-215v213h-288v-213h-215v-287h215v-218h288v218h215v287z" /> 7.28 +<glyph glyph-name="comma" unicode="," horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 7.29 +<glyph glyph-name="uni00AD" unicode="-" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" /> 7.30 +<glyph glyph-name="uni00AD" unicode="­" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" /> 7.31 +<glyph glyph-name="period" unicode="." horiz-adv-x="414" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 7.32 +<glyph glyph-name="slash" unicode="/" horiz-adv-x="569" d="M93 -50h-80l541 1484h80z" /> 7.33 +<glyph glyph-name="zero" unicode="0" horiz-adv-x="821" d="M440 329q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 50v778q0 29 21 50t50 21q30 0 51 -21t21 -50v-777zM727 1107q-1 148 -106 253q-105 104 -253 104q-147 0 -252 -104t-106 -251v-784q1 -147 106 -251t252 -104q148 0 253 104q105 105 106 253v0v780v0z" /> 7.34 +<glyph glyph-name="one" unicode="1" horiz-adv-x="476" d="M385 1107q0 148 -105 252q-104 104 -252 105h-14v-287h13q30 0 51 -21t21 -50v-1106h286v1107z" /> 7.35 +<glyph glyph-name="two" unicode="2" horiz-adv-x="818" d="M108 1359q-105 -105 -105 -253v-146h287v146q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-13v0q-144 -5 -245 -109q-100 -104 -101 -248v-360h717v287h-430v72q0 29 21 50t50 21h13v1q144 5 245 108q100 104 101 248v319q0 148 -105 253t-254 105 q-148 0 -253 -105z" /> 7.36 +<glyph glyph-name="three" unicode="3" horiz-adv-x="818" d="M375 1464h-14q-148 -1 -252 -105t-105 -252v0v-8v-140h287v132v0v15v7q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 1 3q2 3 3 6q1 1 0 1q2 2 4 5q1 2 0 1q1 2 4 4q1 2 0 1q2 3 5 5v0q2 3 5 5v0q20 16 45 16h1q29 0 50 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-172v-287h172 q29 0 50 -21t21 -50q0 -30 -21 -51t-50 -21h-359v-287h359q148 0 253 105t105 254q0 119 -72 215q72 94 72 213v319q0 145 -101 249q-100 104 -245 109v0z" /> 7.37 +<glyph glyph-name="four" unicode="4" horiz-adv-x="877" d="M323 575l113 244v-244h-113zM836 575h-113v859h-287l-430 -859v0v-286h430v-289h287v289h113v286z" /> 7.38 +<glyph glyph-name="five" unicode="5" horiz-adv-x="818" d="M727 1147v287h-717v-717h358q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v151h-287v-151q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v143h430z" /> 7.39 +<glyph glyph-name="six" unicode="6" d="M369 717q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v388h71zM298 1076q0 29 21 50t50 21h359v287h-360q-148 -1 -252 -105t-105 -252v-748q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v72z" /> 7.40 +<glyph glyph-name="seven" unicode="7" horiz-adv-x="762" d="M23 1434v-287h335l-351 -1147h297l438 1434h-719z" /> 7.41 +<glyph glyph-name="eight" unicode="8" d="M298 1106q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-1q-29 0 -50 21t-21 51v317zM319 278q-21 21 -21 80q0 30 21 51t50 21h1q29 0 50 -21t21 -50q0 -60 -21 -81t-51 -21q-29 0 -50 21zM11 314q6 -144 110 -244t248 -100q145 0 249 100t110 244 v0v59v0q-5 112 -72 201q72 95 72 215v317q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-317q0 -120 72 -215q-67 -89 -72 -201v0v-59v0z" /> 7.42 +<glyph glyph-name="nine" unicode="9" d="M366 717q-30 0 -51 21t-21 51v317q0 29 21 50t50 21q30 0 51 -21t21 -50v-389h-71zM437 359q0 -30 -21 -51t-50 -21h-359v-287h360q148 1 252 105t105 252v749q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-319q1 -147 105 -252q104 -104 252 -105h73v-71z" /> 7.43 +<glyph glyph-name="colon" unicode=":" horiz-adv-x="407" d="M251 881q-42 42 -101 42q-60 0 -102 -42t-42 -102q0 -59 42 -101t102 -42q59 0 101 42t42 101q0 60 -42 102zM251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 7.44 +<glyph glyph-name="uni037E" unicode=";" horiz-adv-x="404" d="M257 242q42 -42 42 -101q0 -19 -5 -38q-20 -76 -73 -132q-55 -58 -132 -80q-37 -11 -76 -12q74 44 112 121q-49 11 -81 50q-32 40 -32 91q0 59 42 101t102 42q59 0 101 -42zM257 881q42 -42 42 -102q0 -59 -42 -101t-101 -42q-60 0 -102 42t-42 101q0 60 42 102t102 42 q59 0 101 -42z" /> 7.45 +<glyph glyph-name="equal" unicode="=" horiz-adv-x="833" d="M10 353h718v-287h-718v287zM10 763h718v-287h-718v287z" /> 7.46 +<glyph glyph-name="question" unicode="?" horiz-adv-x="748" d="M264 242q-42 -42 -42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101t-101 42q-60 0 -102 -42zM377 1464l-14 -1q-148 0 -253 -105q-104 -104 -105 -252v-148h287v146q0 4 1 8q0 -1 0 2q1 4 1 5q0 -1 0 3q1 3 1 4l2 3l1 3q1 3 3 6q1 2 0 1q1 2 3 5v0l1 1 q1 2 3 4q1 2 1 1q2 3 4 5v0l5 5q20 16 46 16v0q30 0 51 -21t21 -51v-221q0 -29 -21 -50t-51 -21h-144v-420h288v162q96 42 155 130q60 90 60 198v222q0 146 -101 250t-245 109v1z" /> 7.47 +<glyph glyph-name="A" unicode="A" d="M287 574v531q0 30 21 51t51 21q29 0 50 -21t21 -51v-531h-143zM105 1359q-105 -105 -105 -254v-1105h287v287h143v-287h287v1105q0 149 -105 254t-253 105q-149 0 -254 -105z" /> 7.48 +<glyph glyph-name="B" unicode="B" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 1147h71h2q29 0 50 -21q20 -21 20 -50v-287q0 -30 -21 -51t-50 -21h-72v430zM717 784v9v0v285q-1 148 -106 252t-252 104h-359v-1434h361q146 1 250 104q104 104 106 250v0v9v0 q-2 117 -72 211q70 93 72 210v0z" /> 7.49 +<glyph glyph-name="C" unicode="C" horiz-adv-x="796" d="M430 472v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v777q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-784v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" /> 7.50 +<glyph glyph-name="D" unicode="D" d="M430 359q0 -30 -21 -51t-50 -21h-72v860h72q29 0 50 -21t21 -50v-717zM717 1077q-1 148 -105 252t-252 105h-360v-1434h360q148 1 252 105t105 252v720z" /> 7.51 +<glyph glyph-name="E" unicode="E" horiz-adv-x="721" d="M632 1147v287h-631v-1435h631v287h-344v144h287v287h-287v430h344z" /> 7.52 +<glyph glyph-name="F" unicode="F" horiz-adv-x="712" d="M634 1147v287h-631v-1435h287v431h287v287h-287v430h344z" /> 7.53 +<glyph glyph-name="G" unicode="G" horiz-adv-x="818" d="M376 1464h-15q-148 -1 -252 -105q-104 -105 -105 -252v-770q1 -148 105 -253q104 -104 252 -105h15l345 16v702h-355v-287h68v-144h-71q-30 0 -51 21t-21 51v767v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" /> 7.54 +<glyph glyph-name="H" unicode="H" horiz-adv-x="818" d="M428 1434v-869h-143v869h-287v-1435h287v279h143v-279h287v1435h-287z" /> 7.55 +<glyph glyph-name="I" unicode="I" horiz-adv-x="389" d="M285 -1h-287v1435h287v-1435z" /> 7.56 +<glyph glyph-name="J" unicode="J" horiz-adv-x="398" d="M5 1434v-1440q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1442h-287z" /> 7.57 +<glyph glyph-name="K" unicode="K" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 647h-287l-91 -646q-4 -29 -28 -50t-54 -21h-41v717h-287v-1435h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" /> 7.58 +<glyph glyph-name="L" unicode="L" horiz-adv-x="700" d="M294 286v1148h-287v-1435h631v287h-344z" /> 7.59 +<glyph glyph-name="M" unicode="M" horiz-adv-x="1253" d="M1152 1105q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-1105h286v1104q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-1104 h286v1104q0 30 21 51t51 21q29 0 50 -21t21 -51v-1104h287v1104z" /> 7.60 +<glyph glyph-name="N" unicode="N" horiz-adv-x="818" d="M438 1433v-343l-144 336v7h-286v-1432h286v841l144 -336v-505h286v1432h-286z" /> 7.61 +<glyph glyph-name="O" unicode="O" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v776q0 30 21 51t51 21t51 -21q20 -21 21 -51v-776zM728 1107q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-783q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v780z" /> 7.62 +<glyph glyph-name="P" unicode="P" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v430h72q30 0 51 -21t21 -51v-286zM726 1076q-1 148 -105 252t-252 105h-359v-1432h286v430h73q148 0 252 104q104 105 105 252v289z" /> 7.63 +<glyph glyph-name="Q" unicode="Q" horiz-adv-x="812" d="M289 1105q0 30 21 51t51 21t51 -21t21 -51v-776q0 -30 -21 -51t-51 -21t-51 21t-21 51v776zM719 1107q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-783v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v780z" /> 7.64 +<glyph glyph-name="R" unicode="R" horiz-adv-x="812" d="M291 716v430h71q30 0 51 -21t21 -50v-287q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v289q0 148 -104 252q-105 104 -252 105h-360v-1433h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" /> 7.65 +<glyph glyph-name="S" unicode="S" horiz-adv-x="799" d="M379 1463h-14q-148 -1 -252 -105t-105 -252v-319q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v317v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" /> 7.66 +<glyph glyph-name="T" unicode="T" horiz-adv-x="724" d="M693 1433h-716v-287h213v-1146h286v1146h217v287z" /> 7.67 +<glyph glyph-name="U" unicode="U" horiz-adv-x="821" d="M436 1433v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v1105h-286z" /> 7.68 +<glyph glyph-name="V" unicode="V" horiz-adv-x="939" d="M575 1433l-125 -944l-164 944h-287l276 -1433h333l279 1433h-312z" /> 7.69 +<glyph glyph-name="W" unicode="W" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v1106h-286v-1105q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v1105h-286v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105z" /> 7.70 +<glyph glyph-name="X" unicode="X" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 646h-286l-91 -645q-8 -55 -63 -69q-56 14 -64 69l-90 645h-287l91 -646v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" /> 7.71 +<glyph glyph-name="Y" unicode="Y" horiz-adv-x="812" d="M443 1433v-645q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v645h-287v-645q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v645h-286z" /> 7.72 +<glyph glyph-name="Z" unicode="Z" horiz-adv-x="793" d="M735 1433h-728v-287h354l-350 -1146h716v287h-342z" /> 7.73 +<glyph glyph-name="a" unicode="a" d="M287 574v331q0 30 21 51t51 21q29 0 50 -21t21 -51v-331h-143zM105 1159q-105 -105 -105 -254v-905h287v287h143v-287h287v905q0 149 -105 254t-253 105q-149 0 -254 -105z" /> 7.74 +<glyph glyph-name="b" unicode="b" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 947h71h2q29 0 50 -21q20 -21 20 -50v-87q0 -30 -21 -51t-50 -21h-72v230zM717 784v9v0v85q-1 148 -106 252t-252 104h-359v-1234h361q146 1 250 104q104 104 106 250v0v9v0q-2 117 -72 211 q70 93 72 210v0z" /> 7.75 +<glyph glyph-name="c" unicode="c" horiz-adv-x="796" d="M430 462v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v597q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-604v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" /> 7.76 +<glyph glyph-name="d" unicode="d" d="M430 359q0 -30 -21 -51t-50 -21h-72v660h72q29 0 50 -21t21 -50v-517zM717 877q-1 148 -105 252t-252 105h-360v-1234h360q148 1 252 105t105 252v520z" /> 7.77 +<glyph glyph-name="e" unicode="e" horiz-adv-x="721" d="M632 947v287h-631v-1235h631v287h-344v144h287v287h-287v230h344z" /> 7.78 +<glyph glyph-name="f" unicode="f" horiz-adv-x="712" d="M634 947v287h-631v-1235h287v431h287v287h-287v230h344z" /> 7.79 +<glyph glyph-name="g" unicode="g" horiz-adv-x="818" d="M376 1264h-15q-148 -1 -252 -105q-104 -105 -105 -252v-580q1 -148 105 -253q104 -104 252 -105h15l345 16v672h-355v-287h68v-114h-71q-30 0 -51 21t-21 51v577v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" /> 7.80 +<glyph glyph-name="h" unicode="h" horiz-adv-x="818" d="M428 1234v-669h-143v669h-287v-1235h287v279h143v-279h287v1235h-287z" /> 7.81 +<glyph glyph-name="i" unicode="i" horiz-adv-x="389" d="M285 -1h-287v1235h287v-1235z" /> 7.82 +<glyph glyph-name="j" unicode="j" horiz-adv-x="398" d="M5 1234v-1240q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1242h-287z" /> 7.83 +<glyph glyph-name="k" unicode="k" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 447h-287l-91 -446q-4 -29 -28 -50t-54 -21h-41v517h-287v-1235h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" /> 7.84 +<glyph glyph-name="l" unicode="l" horiz-adv-x="700" d="M294 286v948h-287v-1235h631v287h-344z" /> 7.85 +<glyph glyph-name="m" unicode="m" horiz-adv-x="1253" d="M1152 905q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-905h286v904q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-904h286 v904q0 30 21 51t51 21q29 0 50 -21t21 -51v-904h287v904z" /> 7.86 +<glyph glyph-name="n" unicode="n" horiz-adv-x="818" d="M438 1233v-343l-144 336v7h-286v-1232h286v641l144 -336v-305h286v1232h-286z" /> 7.87 +<glyph glyph-name="o" unicode="o" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v576q0 30 21 51t51 21t51 -21q20 -21 21 -51v-576zM728 907q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-583q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v580z" /> 7.88 +<glyph glyph-name="p" unicode="p" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v230h72q30 0 51 -21t21 -51v-86zM726 876q-1 148 -105 252t-252 105h-359v-1232h286v430h73q148 0 252 104q104 105 105 252v89z" /> 7.89 +<glyph glyph-name="q" unicode="q" horiz-adv-x="812" d="M289 905q0 30 21 51t51 21t51 -21t21 -51v-576q0 -30 -21 -51t-51 -21t-51 21t-21 51v576zM719 907q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-583v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v580z" /> 7.90 +<glyph glyph-name="r" unicode="r" horiz-adv-x="812" d="M291 716v230h71q30 0 51 -21t21 -50v-87q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v89q0 148 -104 252q-105 104 -252 105h-360v-1233h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" /> 7.91 +<glyph glyph-name="s" unicode="s" horiz-adv-x="799" d="M379 1263h-14q-148 -1 -252 -105t-105 -252v-119q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v117v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" /> 7.92 +<glyph glyph-name="t" unicode="t" horiz-adv-x="724" d="M693 1233h-716v-287h213v-946h286v946h217v287z" /> 7.93 +<glyph glyph-name="u" unicode="u" horiz-adv-x="821" d="M436 1233v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v905h-286z" /> 7.94 +<glyph glyph-name="v" unicode="v" horiz-adv-x="939" d="M575 1233l-125 -744l-164 744h-287l276 -1233h333l279 1233h-312z" /> 7.95 +<glyph glyph-name="w" unicode="w" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v906h-286v-905q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v905h-286v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905z" /> 7.96 +<glyph glyph-name="x" unicode="x" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 446h-286l-91 -445q-8 -55 -63 -69q-56 14 -64 69l-90 445h-287l91 -446v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" /> 7.97 +<glyph glyph-name="y" unicode="y" horiz-adv-x="812" d="M443 1233v-445q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v445h-287v-445q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v445h-286z" /> 7.98 +<glyph glyph-name="z" unicode="z" horiz-adv-x="793" d="M735 1233h-728v-287h314l-310 -946h716v287h-302z" /> 7.99 +<glyph glyph-name="bar" unicode="|" horiz-adv-x="1014" d="M427 1577h160v-1995h-160v1995z" /> 7.100 +<glyph glyph-name="brokenbar" unicode="¦" horiz-adv-x="1014" d="M427 371h160v-789h-160v789zM427 1578h160v-789h-160v789z" /> 7.101 +<glyph glyph-name="multiply" unicode="×" horiz-adv-x="908" d="M810 324l-167 167l165 165l-222 222l-165 -165l-167 167l-222 -222l167 -167l-169 -169l222 -222l169 169l167 -167z" /> 7.102 +<glyph glyph-name="quoteleft" unicode="‘" horiz-adv-x="401" d="M52 1198q42 -42 102 -42q59 0 101 42t42 101q0 51 -32 91q-32 39 -81 50q39 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" /> 7.103 +<glyph glyph-name="quoteright" unicode="’" horiz-adv-x="404" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 7.104 +<glyph glyph-name="quotesinglbase" unicode="‚" horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 7.105 +<glyph glyph-name="quotedblleft" unicode="“" horiz-adv-x="734" d="M392 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101zM52 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121 q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" /> 7.106 +<glyph glyph-name="quotedblright" unicode="”" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 7.107 +<glyph glyph-name="quotedblbase" unicode="„" horiz-adv-x="737" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 7.108 +<glyph glyph-name="bullet" unicode="•" horiz-adv-x="1024" d="M216 718q0 123 87 209t210 86q122 0 208.5 -86.5t86.5 -208.5t-87.5 -209.5t-209.5 -87.5q-123 0 -209 87t-86 210z" /> 7.109 +<glyph glyph-name="ellipsis" unicode="…" horiz-adv-x="1213" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM651 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM1051 242q-42 42 -101 42q-60 0 -102 -42 t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 7.110 +<glyph glyph-name="Euro" unicode="€" horiz-adv-x="939" d="M833 574v287h-445v214q0 30 21 51t51 21q29 0 50 -21t21 -51v-143h287v145q-1 148 -106 252q-105 105 -252 105q-148 0 -253 -104q-104 -104 -106 -251v-218h-101v-287h101v-219q2 -147 106 -251q105 -104 253 -104q147 0 252 104q105 105 106 252v146h-287v-144 q0 -29 -21 -50t-50 -21q-30 0 -51 21t-21 50v216h445z" /> 7.111 +</font> 7.112 +</defs></svg>
8.1 Binary file filters/master/examples/enable-background-01.png has changed
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 9.2 +++ b/filters/master/examples/enable-background-01.svg Mon Apr 11 10:08:48 2011 +1000 9.3 @@ -0,0 +1,89 @@ 9.4 +<?xml version="1.0" standalone="no"?> 9.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 9.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 9.7 +<svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270" 9.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 9.9 + <title>Example enable-background01</title> 9.10 + <desc>This test case shows five pictures which illustrate the rules 9.11 + for background image processing.</desc> 9.12 + 9.13 + <defs> 9.14 + <filter id="ShiftBGAndBlur" 9.15 + filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 9.16 + <desc> 9.17 + This filter discards the SourceGraphic, if any, and just produces 9.18 + a result consisting of the BackgroundImage shifted down 125 units 9.19 + and then blurred. 9.20 + </desc> 9.21 + <feOffset in="BackgroundImage" dx="0" dy="125" /> 9.22 + <feGaussianBlur stdDeviation="8" /> 9.23 + </filter> 9.24 + <filter id="ShiftBGAndBlur_WithSourceGraphic" 9.25 + filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 9.26 + <desc> 9.27 + This filter takes the BackgroundImage, shifts it down 125 units, blurs it, 9.28 + and then renders the SourceGraphic on top of the shifted/blurred background. 9.29 + </desc> 9.30 + <feOffset in="BackgroundImage" dx="0" dy="125" /> 9.31 + <feGaussianBlur stdDeviation="8" result="blur" /> 9.32 + <feMerge> 9.33 + <feMergeNode in="blur"/> 9.34 + <feMergeNode in="SourceGraphic"/> 9.35 + </feMerge> 9.36 + </filter> 9.37 + </defs> 9.38 + 9.39 + <g transform="translate(0,0)"> 9.40 + <desc>The first picture is our reference graphic without filters.</desc> 9.41 + <rect x="25" y="25" width="100" height="100" fill="red"/> 9.42 + <g opacity=".5"> 9.43 + <circle cx="125" cy="75" r="45" fill="green"/> 9.44 + <polygon points="160,25 160,125 240,75" fill="blue"/> 9.45 + </g> 9.46 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 9.47 + </g> 9.48 + 9.49 + <g enable-background="new" transform="translate(270,0)"> 9.50 + <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc> 9.51 + <rect x="25" y="25" width="100" height="100" fill="red"/> 9.52 + <g opacity=".5"> 9.53 + <circle cx="125" cy="75" r="45" fill="green"/> 9.54 + <polygon points="160,25 160,125 240,75" fill="blue"/> 9.55 + </g> 9.56 + <g filter="url(#ShiftBGAndBlur)"/> 9.57 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 9.58 + </g> 9.59 + 9.60 + <g enable-background="new" transform="translate(540,0)"> 9.61 + <desc>The third invokes ShiftBGAndBlur on the inner group.</desc> 9.62 + <rect x="25" y="25" width="100" height="100" fill="red"/> 9.63 + <g filter="url(#ShiftBGAndBlur)" opacity=".5"> 9.64 + <circle cx="125" cy="75" r="45" fill="green"/> 9.65 + <polygon points="160,25 160,125 240,75" fill="blue"/> 9.66 + </g> 9.67 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 9.68 + </g> 9.69 + 9.70 + <g enable-background="new" transform="translate(810,0)"> 9.71 + <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc> 9.72 + <rect x="25" y="25" width="100" height="100" fill="red"/> 9.73 + <g opacity=".5"> 9.74 + <circle cx="125" cy="75" r="45" fill="green"/> 9.75 + <polygon points="160,25 160,125 240,75" fill="blue" 9.76 + filter="url(#ShiftBGAndBlur)"/> 9.77 + </g> 9.78 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 9.79 + </g> 9.80 + 9.81 + <g enable-background="new" transform="translate(1080,0)"> 9.82 + <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc> 9.83 + <rect x="25" y="25" width="100" height="100" fill="red"/> 9.84 + <g opacity=".5"> 9.85 + <circle cx="125" cy="75" r="45" fill="green"/> 9.86 + <polygon points="160,25 160,125 240,75" fill="blue" 9.87 + filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/> 9.88 + </g> 9.89 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 9.90 + </g> 9.91 +</svg> 9.92 +
10.1 Binary file filters/master/examples/feBlend.png has changed
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 11.2 +++ b/filters/master/examples/feBlend.svg Mon Apr 11 10:08:48 2011 +1000 11.3 @@ -0,0 +1,46 @@ 11.4 +<?xml version="1.0"?> 11.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 11.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 11.7 +<svg width="5cm" height="5cm" viewBox="0 0 500 500" 11.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 11.9 + <title>Example feBlend - Examples of feBlend modes</title> 11.10 + <desc>Five text strings blended into a gradient, 11.11 + with one text string for each of the five feBlend modes.</desc> 11.12 + <defs> 11.13 + <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 11.14 + x1="100" y1="0" x2="300" y2="0"> 11.15 + <stop offset="0" stop-color="#000000" /> 11.16 + <stop offset=".33" stop-color="#ffffff" /> 11.17 + <stop offset=".67" stop-color="#ff0000" /> 11.18 + <stop offset="1" stop-color="#808080" /> 11.19 + </linearGradient> 11.20 + <filter id="Normal"> 11.21 + <feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/> 11.22 + </filter> 11.23 + <filter id="Multiply"> 11.24 + <feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/> 11.25 + </filter> 11.26 + <filter id="Screen"> 11.27 + <feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/> 11.28 + </filter> 11.29 + <filter id="Darken"> 11.30 + <feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/> 11.31 + </filter> 11.32 + <filter id="Lighten"> 11.33 + <feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/> 11.34 + </filter> 11.35 + </defs> 11.36 + <rect fill="none" stroke="blue" 11.37 + x="1" y="1" width="498" height="498"/> 11.38 + <g enable-background="new" > 11.39 + <rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" /> 11.40 + <g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" > 11.41 + <text x="50" y="90" filter="url(#Normal)" >Normal</text> 11.42 + <text x="50" y="180" filter="url(#Multiply)" >Multiply</text> 11.43 + <text x="50" y="270" filter="url(#Screen)" >Screen</text> 11.44 + <text x="50" y="360" filter="url(#Darken)" >Darken</text> 11.45 + <text x="50" y="450" filter="url(#Lighten)" >Lighten</text> 11.46 + </g> 11.47 + </g> 11.48 +</svg> 11.49 +
12.1 Binary file filters/master/examples/feColorMatrix.png has changed
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 13.2 +++ b/filters/master/examples/feColorMatrix.svg Mon Apr 11 10:08:48 2011 +1000 13.3 @@ -0,0 +1,55 @@ 13.4 +<?xml version="1.0"?> 13.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 13.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 13.7 +<svg width="8cm" height="5cm" viewBox="0 0 800 500" 13.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 13.9 + <title>Example feColorMatrix - Examples of feColorMatrix operations</title> 13.10 + <desc>Five text strings showing the effects of feColorMatrix: 13.11 + an unfiltered text string acting as a reference, 13.12 + use of the feColorMatrix matrix option to convert to grayscale, 13.13 + use of the feColorMatrix saturate option, 13.14 + use of the feColorMatrix hueRotate option, 13.15 + and use of the feColorMatrix luminanceToAlpha option.</desc> 13.16 + <defs> 13.17 + <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 13.18 + x1="100" y1="0" x2="500" y2="0"> 13.19 + <stop offset="0" stop-color="#ff00ff" /> 13.20 + <stop offset=".33" stop-color="#88ff88" /> 13.21 + <stop offset=".67" stop-color="#2020ff" /> 13.22 + <stop offset="1" stop-color="#d00000" /> 13.23 + </linearGradient> 13.24 + <filter id="Matrix" filterUnits="objectBoundingBox" 13.25 + x="0%" y="0%" width="100%" height="100%"> 13.26 + <feColorMatrix type="matrix" in="SourceGraphic" 13.27 + values=".33 .33 .33 0 0 13.28 + .33 .33 .33 0 0 13.29 + .33 .33 .33 0 0 13.30 + .33 .33 .33 0 0"/> 13.31 + </filter> 13.32 + <filter id="Saturate40" filterUnits="objectBoundingBox" 13.33 + x="0%" y="0%" width="100%" height="100%"> 13.34 + <feColorMatrix type="saturate" in="SourceGraphic" values="0.4"/> 13.35 + </filter> 13.36 + <filter id="HueRotate90" filterUnits="objectBoundingBox" 13.37 + x="0%" y="0%" width="100%" height="100%"> 13.38 + <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/> 13.39 + </filter> 13.40 + <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 13.41 + x="0%" y="0%" width="100%" height="100%"> 13.42 + <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/> 13.43 + <feComposite in="SourceGraphic" in2="a" operator="in" /> 13.44 + </filter> 13.45 + </defs> 13.46 + <rect fill="none" stroke="blue" 13.47 + x="1" y="1" width="798" height="498"/> 13.48 + <g font-family="Verdana" font-size="75" 13.49 + font-weight="bold" fill="url(#MyGradient)" > 13.50 + <rect x="100" y="0" width="500" height="20" /> 13.51 + <text x="100" y="90">Unfiltered</text> 13.52 + <text x="100" y="190" filter="url(#Matrix)" >Matrix</text> 13.53 + <text x="100" y="290" filter="url(#Saturate40)" >Saturate</text> 13.54 + <text x="100" y="390" filter="url(#HueRotate90)" >HueRotate</text> 13.55 + <text x="100" y="490" filter="url(#LuminanceToAlpha)" >Luminance</text> 13.56 + </g> 13.57 +</svg> 13.58 +
14.1 Binary file filters/master/examples/feComponentTransfer.png has changed
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 15.2 +++ b/filters/master/examples/feComponentTransfer.svg Mon Apr 11 10:08:48 2011 +1000 15.3 @@ -0,0 +1,65 @@ 15.4 +<?xml version="1.0"?> 15.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 15.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 15.7 +<svg width="8cm" height="4cm" viewBox="0 0 800 400" 15.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 15.9 + <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title> 15.10 + <desc>Four text strings showing the effects of feComponentTransfer: 15.11 + an identity function acting as a reference, 15.12 + use of the feComponentTransfer table option, 15.13 + use of the feComponentTransfer linear option, 15.14 + and use of the feComponentTransfer gamma option.</desc> 15.15 + <defs> 15.16 + <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 15.17 + x1="100" y1="0" x2="600" y2="0"> 15.18 + <stop offset="0" stop-color="#ff0000" /> 15.19 + <stop offset=".33" stop-color="#00ff00" /> 15.20 + <stop offset=".67" stop-color="#0000ff" /> 15.21 + <stop offset="1" stop-color="#000000" /> 15.22 + </linearGradient> 15.23 + <filter id="Identity" filterUnits="objectBoundingBox" 15.24 + x="0%" y="0%" width="100%" height="100%"> 15.25 + <feComponentTransfer> 15.26 + <feFuncR type="identity"/> 15.27 + <feFuncG type="identity"/> 15.28 + <feFuncB type="identity"/> 15.29 + <feFuncA type="identity"/> 15.30 + </feComponentTransfer> 15.31 + </filter> 15.32 + <filter id="Table" filterUnits="objectBoundingBox" 15.33 + x="0%" y="0%" width="100%" height="100%"> 15.34 + <feComponentTransfer> 15.35 + <feFuncR type="table" tableValues="0 0 1 1"/> 15.36 + <feFuncG type="table" tableValues="1 1 0 0"/> 15.37 + <feFuncB type="table" tableValues="0 1 1 0"/> 15.38 + </feComponentTransfer> 15.39 + </filter> 15.40 + <filter id="Linear" filterUnits="objectBoundingBox" 15.41 + x="0%" y="0%" width="100%" height="100%"> 15.42 + <feComponentTransfer> 15.43 + <feFuncR type="linear" slope=".5" intercept=".25"/> 15.44 + <feFuncG type="linear" slope=".5" intercept="0"/> 15.45 + <feFuncB type="linear" slope=".5" intercept=".5"/> 15.46 + </feComponentTransfer> 15.47 + </filter> 15.48 + <filter id="Gamma" filterUnits="objectBoundingBox" 15.49 + x="0%" y="0%" width="100%" height="100%"> 15.50 + <feComponentTransfer> 15.51 + <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/> 15.52 + <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/> 15.53 + <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/> 15.54 + </feComponentTransfer> 15.55 + </filter> 15.56 + </defs> 15.57 + <rect fill="none" stroke="blue" 15.58 + x="1" y="1" width="798" height="398"/> 15.59 + <g font-family="Verdana" font-size="75" 15.60 + font-weight="bold" fill="url(#MyGradient)" > 15.61 + <rect x="100" y="0" width="600" height="20" /> 15.62 + <text x="100" y="90">Identity</text> 15.63 + <text x="100" y="190" filter="url(#Table)" >TableLookup</text> 15.64 + <text x="100" y="290" filter="url(#Linear)" >LinearFunc</text> 15.65 + <text x="100" y="390" filter="url(#Gamma)" >GammaFunc</text> 15.66 + </g> 15.67 +</svg> 15.68 +
16.1 Binary file filters/master/examples/feComposite.png has changed
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 17.2 +++ b/filters/master/examples/feComposite.svg Mon Apr 11 10:08:48 2011 +1000 17.3 @@ -0,0 +1,170 @@ 17.4 +<?xml version="1.0"?> 17.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 17.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 17.7 +<svg width="330" height="195" viewBox="0 0 1100 650" version="1.1" 17.8 + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 17.9 + <title>Example feComposite - Examples of feComposite operations</title> 17.10 + <desc>Four rows of six pairs of overlapping triangles depicting 17.11 + the six different feComposite operators under different 17.12 + opacity values and different clearing of the background.</desc> 17.13 + <defs> 17.14 + <desc>Define two sets of six filters for each of the six compositing operators. 17.15 + The first set wipes out the background image by flooding with opaque white. 17.16 + The second set does not wipe out the background, with the result 17.17 + that the background sometimes shines through and is other cases 17.18 + is blended into itself (i.e., "double-counting").</desc> 17.19 + <filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 17.20 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 17.21 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 17.22 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 17.23 + </filter> 17.24 + <filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 17.25 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 17.26 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 17.27 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 17.28 + </filter> 17.29 + <filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 17.30 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 17.31 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 17.32 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 17.33 + </filter> 17.34 + <filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 17.35 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 17.36 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 17.37 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 17.38 + </filter> 17.39 + <filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 17.40 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 17.41 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 17.42 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 17.43 + </filter> 17.44 + <filter id="arithmeticFlood" filterUnits="objectBoundingBox" 17.45 + x="-5%" y="-5%" width="110%" height="110%"> 17.46 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 17.47 + <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 17.48 + operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 17.49 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 17.50 + </filter> 17.51 + <filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 17.52 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 17.53 + </filter> 17.54 + <filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 17.55 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 17.56 + </filter> 17.57 + <filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 17.58 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 17.59 + </filter> 17.60 + <filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 17.61 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 17.62 + </filter> 17.63 + <filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 17.64 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 17.65 + </filter> 17.66 + <filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 17.67 + x="-5%" y="-5%" width="110%" height="110%"> 17.68 + <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 17.69 + operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 17.70 + </filter> 17.71 + <path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" /> 17.72 + <path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" /> 17.73 + <path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" /> 17.74 + <path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" /> 17.75 + <g id="TwoBlueTriangles"> 17.76 + <use xlink:href="#Blue100"/> 17.77 + <use xlink:href="#Blue50"/> 17.78 + </g> 17.79 + <g id="BlueTriangles"> 17.80 + <use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/> 17.81 + <use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/> 17.82 + <use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/> 17.83 + <use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/> 17.84 + <use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/> 17.85 + <use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/> 17.86 + </g> 17.87 + </defs> 17.88 + 17.89 + <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/> 17.90 + <g font-family="Verdana" font-size="40" shape-rendering="crispEdges"> 17.91 + <desc>Render the examples using the filters that draw on top of 17.92 + an opaque white surface, thus obliterating the background.</desc> 17.93 + <g enable-background="new"> 17.94 + <text x="15" y="75">opacity 1.0</text> 17.95 + <text x="15" y="115" font-size="27">(with feFlood)</text> 17.96 + <text x="15" y="200">opacity 0.5</text> 17.97 + <text x="15" y="240" font-size="27">(with feFlood)</text> 17.98 + <use xlink:href="#BlueTriangles"/> 17.99 + <g transform="translate(275,25)"> 17.100 + <use xlink:href="#Red100" filter="url(#overFlood)" /> 17.101 + <use xlink:href="#Red50" filter="url(#overFlood)" /> 17.102 + <text x="5" y="275">over</text> 17.103 + </g> 17.104 + <g transform="translate(400,25)"> 17.105 + <use xlink:href="#Red100" filter="url(#inFlood)" /> 17.106 + <use xlink:href="#Red50" filter="url(#inFlood)" /> 17.107 + <text x="35" y="275">in</text> 17.108 + </g> 17.109 + <g transform="translate(525,25)"> 17.110 + <use xlink:href="#Red100" filter="url(#outFlood)" /> 17.111 + <use xlink:href="#Red50" filter="url(#outFlood)" /> 17.112 + <text x="15" y="275">out</text> 17.113 + </g> 17.114 + <g transform="translate(650,25)"> 17.115 + <use xlink:href="#Red100" filter="url(#atopFlood)" /> 17.116 + <use xlink:href="#Red50" filter="url(#atopFlood)" /> 17.117 + <text x="10" y="275">atop</text> 17.118 + </g> 17.119 + <g transform="translate(775,25)"> 17.120 + <use xlink:href="#Red100" filter="url(#xorFlood)" /> 17.121 + <use xlink:href="#Red50" filter="url(#xorFlood)" /> 17.122 + <text x="15" y="275">xor</text> 17.123 + </g> 17.124 + <g transform="translate(900,25)"> 17.125 + <use xlink:href="#Red100" filter="url(#arithmeticFlood)" /> 17.126 + <use xlink:href="#Red50" filter="url(#arithmeticFlood)" /> 17.127 + <text x="-25" y="275">arithmetic</text> 17.128 + </g> 17.129 + </g> 17.130 + <g transform="translate(0,325)" enable-background="new"> 17.131 + <desc>Render the examples using the filters that do not obliterate 17.132 + the background, thus sometimes causing the background to continue 17.133 + to appear in some cases, and in other cases the background 17.134 + image blends into itself ("double-counting").</desc> 17.135 + <text x="15" y="75">opacity 1.0</text> 17.136 + <text x="15" y="115" font-size="27">(without feFlood)</text> 17.137 + <text x="15" y="200">opacity 0.5</text> 17.138 + <text x="15" y="240" font-size="27">(without feFlood)</text> 17.139 + <use xlink:href="#BlueTriangles"/> 17.140 + <g transform="translate(275,25)"> 17.141 + <use xlink:href="#Red100" filter="url(#overNoFlood)" /> 17.142 + <use xlink:href="#Red50" filter="url(#overNoFlood)" /> 17.143 + <text x="5" y="275">over</text> 17.144 + </g> 17.145 + <g transform="translate(400,25)"> 17.146 + <use xlink:href="#Red100" filter="url(#inNoFlood)" /> 17.147 + <use xlink:href="#Red50" filter="url(#inNoFlood)" /> 17.148 + <text x="35" y="275">in</text> 17.149 + </g> 17.150 + <g transform="translate(525,25)"> 17.151 + <use xlink:href="#Red100" filter="url(#outNoFlood)" /> 17.152 + <use xlink:href="#Red50" filter="url(#outNoFlood)" /> 17.153 + <text x="15" y="275">out</text> 17.154 + </g> 17.155 + <g transform="translate(650,25)"> 17.156 + <use xlink:href="#Red100" filter="url(#atopNoFlood)" /> 17.157 + <use xlink:href="#Red50" filter="url(#atopNoFlood)" /> 17.158 + <text x="10" y="275">atop</text> 17.159 + </g> 17.160 + <g transform="translate(775,25)"> 17.161 + <use xlink:href="#Red100" filter="url(#xorNoFlood)" /> 17.162 + <use xlink:href="#Red50" filter="url(#xorNoFlood)" /> 17.163 + <text x="15" y="275">xor</text> 17.164 + </g> 17.165 + <g transform="translate(900,25)"> 17.166 + <use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" /> 17.167 + <use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" /> 17.168 + <text x="-25" y="275">arithmetic</text> 17.169 + </g> 17.170 + </g> 17.171 + </g> 17.172 +</svg> 17.173 +
18.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 18.2 +++ b/filters/master/examples/feDropShadow.svg Mon Apr 11 10:08:48 2011 +1000 18.3 @@ -0,0 +1,55 @@ 18.4 +<?xml version="1.0"?> 18.5 +<svg viewBox="0 0 800 400" 18.6 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 18.7 + <title>Example feDropShadow - Examples of feDropShadow operations</title> 18.8 + <desc>Four text strings showing the effects of feComponentTransfer: 18.9 + an identity function acting as a reference, 18.10 + use of the feComponentTransfer table option, 18.11 + use of the feComponentTransfer linear option, 18.12 + and use of the feComponentTransfer gamma option.</desc> 18.13 + <defs> 18.14 + <filter id="feDropShadowEquiv1"> 18.15 + <feGaussianBlur stdDeviation="3"/> 18.16 + <feOffset dx="3" dy="3" result="offsetblur"/> 18.17 + <feFlood flood-color="#720"/> 18.18 + <feComposite in2="offsetblur" operator="in"/> 18.19 + <feMerge> 18.20 + <feMergeNode/> 18.21 + <feMergeNode in="SourceGraphic"/> 18.22 + </feMerge> 18.23 + </filter> 18.24 + <filter id="feDropShadowEquiv2"> 18.25 + <feGaussianBlur stdDeviation="2"/> 18.26 + <feOffset dx="2" dy="2" result="offsetblur"/> 18.27 + <feFlood/> 18.28 + <feComposite in2="offsetblur" operator="in"/> 18.29 + <feMerge> 18.30 + <feMergeNode/> 18.31 + <feMergeNode in="SourceGraphic"/> 18.32 + </feMerge> 18.33 + </filter> 18.34 + <filter id="feDropShadow1"> 18.35 + <feDropShadow stdDeviation="3" flood-color="#720"/> 18.36 + </filter> 18.37 + <filter id="feDropShadow2"> 18.38 + <feDropShadow/> 18.39 + </filter> 18.40 + </defs> 18.41 + <rect fill="none" stroke="blue" 18.42 + x="1" y="1" width="798" height="398"/> 18.43 + <g font-family="Verdana" font-size="30"> 18.44 + <g transform="translate(0,100)"> 18.45 + <text x="210" text-anchor="middle" y="0">Reference</text> 18.46 + <rect x="80" y="10" width="260" height="200" fill="none" stroke="black"/> 18.47 + <text x="100" y="90" filter="url(#feDropShadowEquiv1)" >feDropShadow</text> 18.48 + <text x="100" y="140" filter="url(#feDropShadowEquiv2)" >feDropShadow</text> 18.49 + </g> 18.50 + <g transform="translate(300,100)"> 18.51 + <text x="210" text-anchor="middle" y="0">Actual</text> 18.52 + <rect x="80" y="10" width="260" height="200" fill="none" stroke="black"/> 18.53 + <text x="100" y="90" filter="url(#feDropShadow1)">feDropShadow</text> 18.54 + <text x="100" y="140" filter="url(#feDropShadow2)">feDropShadow</text> 18.55 + </g> 18.56 + </g> 18.57 +</svg> 18.58 +
19.1 Binary file filters/master/examples/feGaussianBlur-motion-00.png has changed
20.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 20.2 +++ b/filters/master/examples/feGaussianBlur-motion-00.svg Mon Apr 11 10:08:48 2011 +1000 20.3 @@ -0,0 +1,15 @@ 20.4 +<?xml version="1.0" encoding="UTF-8"?> 20.5 +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"> 20.6 + <defs> 20.7 + <filter id="motionblur" filterUnits="userSpaceOnUse"> 20.8 + <feGaussianBlur stdDeviation="5 0"/> 20.9 + </filter> 20.10 + <symbol id="crow" viewBox="0 0 197 190"> 20.11 + <path d="M 72.566789,186.38448 C 71.202549,184.36785 66.167569,175.06788 61.377949,165.71788 C 56.588329,156.36788 52.650829,149.03965 52.627949,149.43293 C 52.605069,149.82621 53.231819,152.07621 54.020719,154.43293 C 56.134749,160.74826 59.591199,174.77158 59.554549,176.88449 C 59.524869,178.59503 59.416409,178.58387 57.935879,176.71788 C 55.201299,173.27137 45.853349,153.1995 41.635529,141.71788 C 37.663679,130.90581 37.605079,130.81611 38.205719,136.46788 C 38.959899,143.56439 37.583169,143.96813 34.795769,137.46788 C 30.104179,126.52701 28.892829,118.89987 27.609109,92.21788 C 26.579279,70.81278 27.181269,61.74079 30.007419,56.07564 C 31.906109,52.26963 32.139109,52.60152 20.824699,42.99574 C 13.205099,36.52681 11.734279,35.68694 7.1852392,35.20738 L 2.0863492,34.66985 L 7.5863492,32.82094 C 10.611349,31.80405 13.481709,30.60949 13.964929,30.16638 C 15.394959,28.85504 9.7899892,24.44625 4.4291292,22.66566 C 1.6943392,21.75731 -0.28374076,20.75464 0.033389242,20.43751 C 0.35051924,20.12038 7.2421692,19.78442 15.348169,19.69093 C 30.881569,19.51179 34.937409,20.13958 47.086349,24.60361 C 50.936349,26.01826 55.713159,27.18519 57.701489,27.19679 C 65.982349,27.2451 71.556499,17.90344 69.368439,7.6442896 C 67.940739,0.95023961 69.214399,0.010319613 79.726899,2.961339e-05 C 85.523249,-0.0056403866 91.246029,0.80265961 98.391539,2.6362896 C 104.0594,4.0907296 112.29453,5.9632196 116.69184,6.7973796 C 134.01279,10.0831 145.35739,15.11226 132.4653,13.78988 C 123.72653,12.89352 125.97985,14.08978 145.54774,20.73521 C 161.35384,26.10311 174.7538,32.06177 176.16916,34.35187 C 176.71697,35.23824 175.39586,35.37836 170.91088,34.90959 C 167.61644,34.56525 164.05819,34.00702 163.00367,33.66907 C 159.44558,32.52878 164.45052,35.98642 172.8528,40.47328 C 181.01437,44.83161 187.58635,49.6841 187.58635,51.35196 C 187.58635,51.95969 185.75677,52.07923 182.83635,51.6623 C 177.61881,50.91742 177.61253,50.9017 184.83635,56.66751 C 189.29595,60.22701 191.15689,64.23449 188.33635,64.20466 C 187.64885,64.19739 183.75408,62.28489 179.6813,59.95466 C 175.60852,57.62443 170.43352,54.66077 168.1813,53.36875 C 160.24766,48.81749 155.25808,48.53915 153.96805,52.57585 C 153.59155,53.75397 153.17397,57.05515 153.04009,59.91181 C 152.72526,66.62933 148.47286,73.16418 144.39537,73.19653 C 141.27521,73.22129 140.06261,74.55103 141.84736,75.99069 C 143.5779,77.38662 163.91595,85.24612 177.08635,89.60855 C 183.13635,91.61249 189.88635,94.27223 192.08634,95.51908 C 196.03044,97.75438 196.08764,97.86951 196.17774,103.75198 C 196.32804,113.55263 191.83044,119.99235 183.2058,122.3255 C 179.71567,123.26966 178.08026,123.11668 172.50059,121.32412 C 165.62068,119.11384 161.59126,116.76556 147.7546,106.9026 C 143.17214,103.63615 137.09714,100.07812 134.2546,98.99585 L 129.08635,97.0281 L 124.58635,102.12335 C 122.11135,104.92574 119.27183,107.21844 118.2763,107.21824 C 117.28078,107.21804 114.25803,108.66351 111.55908,110.4304 C 108.02382,112.74478 106.47184,114.49211 106.00784,116.6804 C 105.6536,118.35101 104.7976,120.39288 104.10563,121.21788 C 102.12794,123.57575 99.866059,134.66955 99.008439,146.21788 C 98.702099,150.34288 97.981489,154.68231 97.407089,155.86106 C 96.606229,157.50454 96.855109,159.32029 98.474539,163.64858 C 99.636029,166.75296 100.58635,170.19015 100.58635,171.28678 C 100.58635,174.34075 97.802589,174.76966 95.009829,172.14599 L 92.535069,169.82107 L 94.060709,174.1452 C 97.730759,184.54723 95.140999,185.2202 87.992199,175.72216 C 84.864209,171.56625 82.136779,168.33411 81.931259,168.53964 C 81.725729,168.74517 82.756989,171.5332 84.222939,174.73527 C 87.061249,180.93494 87.859979,187.23913 85.894459,187.92805 C 85.215209,188.16613 81.485349,182.83448 77.222469,175.53184 C 73.108409,168.48416 69.042179,161.81788 68.186409,160.71788 C 66.764029,158.88956 66.749579,159.06125 68.018079,162.71788 C 68.781269,164.91788 70.803819,170.06041 72.512649,174.14572 C 77.734689,186.63018 77.767619,194.07236 72.566789,186.38448 z"/> 20.12 + </symbol> 20.13 + </defs> 20.14 + 20.15 + <image xlink:href="forest-small.jpg" width="100%" height="100%" filter="url(#motionblur)"/> 20.16 + <use xlink:href="#crow" width="25%" height="25%" x="20%" y="40%" transform="rotate(-12)"/> 20.17 + 20.18 +</svg>
21.1 Binary file filters/master/examples/feGaussianBlur-stdDeviation-00.png has changed
22.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 22.2 +++ b/filters/master/examples/feGaussianBlur-stdDeviation-00.svg Mon Apr 11 10:08:48 2011 +1000 22.3 @@ -0,0 +1,38 @@ 22.4 +<?xml version="1.0" encoding="UTF-8"?> 22.5 +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"> 22.6 + <defs> 22.7 + <font-face font-family="FORQUE"> 22.8 + <font-face-src> 22.9 + <font-face-uri xlink:href="Forque.svg#FORQUE"/> 22.10 + </font-face-src> 22.11 + </font-face> 22.12 + <style> 22.13 + /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */ 22.14 + text { text-anchor: middle; font: 70px FORQUE, sans-serif; } 22.15 + #bx { filter: url(#blurX) } 22.16 + #by { filter: url(#blurY) } 22.17 + #header { filter: url(#ds); fill: white; text-decoration: underline } 22.18 + #attribution { font-size: 6px } 22.19 + :root { background: green; fill: white } 22.20 + </style> 22.21 + <filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse"> 22.22 + <feGaussianBlur stdDeviation="4 0"> 22.23 + <animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/> 22.24 + </feGaussianBlur> 22.25 + </filter> 22.26 + <filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse"> 22.27 + <feGaussianBlur stdDeviation="0 4"/> 22.28 + </filter> 22.29 + <filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2"> 22.30 + <feGaussianBlur stdDeviation="3"/> 22.31 + <feOffset dx="2" dy="2"/> 22.32 + <feComposite in2="SourceGraphic" operator="in"/> 22.33 + </filter> 22.34 + </defs> 22.35 + 22.36 + <text id="bx" x="40%" y="50%">BlurX</text> 22.37 + <text id="by" x="60%" y="70%">BlurY</text> 22.38 + 22.39 + <text id="header" y="1em" x="50%">Unidirectional blur</text> 22.40 + <text id="attribution" x="100%" y="355">Forque font by Tup Wanders</text> 22.41 +</svg>
23.1 Binary file filters/master/examples/feMorphology.png has changed
24.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 24.2 +++ b/filters/master/examples/feMorphology.svg Mon Apr 11 10:08:48 2011 +1000 24.3 @@ -0,0 +1,37 @@ 24.4 +<?xml version="1.0"?> 24.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 24.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 24.7 +<svg width="5cm" height="7cm" viewBox="0 0 700 500" 24.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 24.9 + <title>Example feMorphology - Examples of erode and dilate</title> 24.10 + <desc>Five text strings drawn as outlines. 24.11 + The first is unfiltered. The second and third use 'erode'. 24.12 + The fourth and fifth use 'dilate'.</desc> 24.13 + <defs> 24.14 + <filter id="Erode3"> 24.15 + <feMorphology operator="erode" in="SourceGraphic" radius="3" /> 24.16 + </filter> 24.17 + <filter id="Erode6"> 24.18 + <feMorphology operator="erode" in="SourceGraphic" radius="6" /> 24.19 + </filter> 24.20 + <filter id="Dilate3"> 24.21 + <feMorphology operator="dilate" in="SourceGraphic" radius="3" /> 24.22 + </filter> 24.23 + <filter id="Dilate6"> 24.24 + <feMorphology operator="dilate" in="SourceGraphic" radius="6" /> 24.25 + </filter> 24.26 + </defs> 24.27 + <rect fill="none" stroke="blue" stroke-width="2" 24.28 + x="1" y="1" width="698" height="498"/> 24.29 + <g enable-background="new" > 24.30 + <g font-family="Verdana" font-size="75" 24.31 + fill="none" stroke="black" stroke-width="6" > 24.32 + <text x="50" y="90">Unfiltered</text> 24.33 + <text x="50" y="180" filter="url(#Erode3)" >Erode radius 3</text> 24.34 + <text x="50" y="270" filter="url(#Erode6)" >Erode radius 6</text> 24.35 + <text x="50" y="360" filter="url(#Dilate3)" >Dilate radius 3</text> 24.36 + <text x="50" y="450" filter="url(#Dilate6)" >Dilate radius 6</text> 24.37 + </g> 24.38 + </g> 24.39 +</svg> 24.40 +
25.1 Binary file filters/master/examples/feTurbulence.png has changed
26.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 26.2 +++ b/filters/master/examples/feTurbulence.svg Mon Apr 11 10:08:48 2011 +1000 26.3 @@ -0,0 +1,71 @@ 26.4 +<?xml version="1.0"?> 26.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 26.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 26.7 +<svg width="450px" height="325px" viewBox="0 0 450 325" 26.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 26.9 + <title>Example feTurbulence - Examples of feTurbulence operations</title> 26.10 + <desc>Six rectangular areas showing the effects of 26.11 + various parameter settings for feTurbulence.</desc> 26.12 + <g font-family="Verdana" text-anchor="middle" font-size="10" > 26.13 + <defs> 26.14 + <filter id="Turb1" filterUnits="objectBoundingBox" 26.15 + x="0%" y="0%" width="100%" height="100%"> 26.16 + <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/> 26.17 + </filter> 26.18 + <filter id="Turb2" filterUnits="objectBoundingBox" 26.19 + x="0%" y="0%" width="100%" height="100%"> 26.20 + <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/> 26.21 + </filter> 26.22 + <filter id="Turb3" filterUnits="objectBoundingBox" 26.23 + x="0%" y="0%" width="100%" height="100%"> 26.24 + <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/> 26.25 + </filter> 26.26 + <filter id="Turb4" filterUnits="objectBoundingBox" 26.27 + x="0%" y="0%" width="100%" height="100%"> 26.28 + <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/> 26.29 + </filter> 26.30 + <filter id="Turb5" filterUnits="objectBoundingBox" 26.31 + x="0%" y="0%" width="100%" height="100%"> 26.32 + <feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/> 26.33 + </filter> 26.34 + <filter id="Turb6" filterUnits="objectBoundingBox" 26.35 + x="0%" y="0%" width="100%" height="100%"> 26.36 + <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/> 26.37 + </filter> 26.38 + </defs> 26.39 + 26.40 + <rect x="1" y="1" width="448" height="323" 26.41 + fill="none" stroke="blue" stroke-width="1" /> 26.42 + 26.43 + <rect x="25" y="25" width="100" height="75" filter="url(#Turb1)" /> 26.44 + <text x="75" y="117">type=turbulence</text> 26.45 + <text x="75" y="129">baseFrequency=0.05</text> 26.46 + <text x="75" y="141">numOctaves=2</text> 26.47 + 26.48 + <rect x="175" y="25" width="100" height="75" filter="url(#Turb2)" /> 26.49 + <text x="225" y="117">type=turbulence</text> 26.50 + <text x="225" y="129">baseFrequency=0.1</text> 26.51 + <text x="225" y="141">numOctaves=2</text> 26.52 + 26.53 + <rect x="325" y="25" width="100" height="75" filter="url(#Turb3)" /> 26.54 + <text x="375" y="117">type=turbulence</text> 26.55 + <text x="375" y="129">baseFrequency=0.05</text> 26.56 + <text x="375" y="141">numOctaves=8</text> 26.57 + 26.58 + <rect x="25" y="180" width="100" height="75" filter="url(#Turb4)" /> 26.59 + <text x="75" y="272">type=fractalNoise</text> 26.60 + <text x="75" y="284">baseFrequency=0.1</text> 26.61 + <text x="75" y="296">numOctaves=4</text> 26.62 + 26.63 + <rect x="175" y="180" width="100" height="75" filter="url(#Turb5)" /> 26.64 + <text x="225" y="272">type=fractalNoise</text> 26.65 + <text x="225" y="284">baseFrequency=0.4</text> 26.66 + <text x="225" y="296">numOctaves=4</text> 26.67 + 26.68 + <rect x="325" y="180" width="100" height="75" filter="url(#Turb6)" /> 26.69 + <text x="375" y="272">type=fractalNoise</text> 26.70 + <text x="375" y="284">baseFrequency=0.1</text> 26.71 + <text x="375" y="296">numOctaves=1</text> 26.72 + </g> 26.73 +</svg> 26.74 +
27.1 Binary file filters/master/examples/filters00.png has changed
28.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 28.2 +++ b/filters/master/examples/filters00.svg Mon Apr 11 10:08:48 2011 +1000 28.3 @@ -0,0 +1,53 @@ 28.4 +<?xml version="1.0"?> 28.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 28.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 28.7 +<svg width="11.3cm" height="2.2cm" viewBox="0 0 1130 220" version="1.1" 28.8 + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 28.9 + <title>Example filters00.svg - filter effects before and after</title> 28.10 + <desc>Picture of the before and after affects of filtering.</desc> 28.11 + <defs> 28.12 + <filter id="MyFilter"> 28.13 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 28.14 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 28.15 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant="1" 28.16 + specularExponent="10" lighting-color="white" 28.17 + result="specOut"> 28.18 + <fePointLight x="-5000" y="-10000" z="20000"/> 28.19 + </feSpecularLighting> 28.20 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 28.21 + <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 28.22 + k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 28.23 + <feMerge> 28.24 + <feMergeNode in="offsetBlur"/> 28.25 + <feMergeNode in="litPaint"/> 28.26 + </feMerge> 28.27 + </filter> 28.28 + <g id="CircleRectTriangle"> 28.29 + <g> 28.30 + <circle cx="85" cy="80" r="40" fill="yellow" /> 28.31 +<g> 28.32 + <rect x="145" y="45" width="90" height="70" fill="red" /> 28.33 +</g> 28.34 + <path d="M260,40 L335,80 L260,120 z" fill="#4444ff" /> 28.35 + </g> 28.36 + </g> 28.37 + <path id="LineWithArrow" 28.38 + d="M0,-15 h80 v-10 l40,25 l-40,25 v-10 h-80 z" /> 28.39 + </defs> 28.40 + <g font-family="Verdana" font-size="30" > 28.41 + <rect x="1" y="1" width="1128" height="218" 28.42 + fill="#cccccc" stroke="blue" /> 28.43 + <use x="0" y="0" xlink:href="#CircleRectTriangle"/> 28.44 + <text x="20" y="180">Original source graphic</text> 28.45 + <use x="380" y="80" xlink:href="#LineWithArrow"/> 28.46 + <text x="520" y="70">Filter</text> 28.47 + <text x="520" y="120">Effect</text> 28.48 + <use x="630" y="80" xlink:href="#LineWithArrow"/> 28.49 + <text x="790" y="180">Result of filter effect</text> 28.50 + </g> 28.51 + <g filter="url(#MyFilter)" > 28.52 + <use x="750" y="0" xlink:href="#CircleRectTriangle"/> 28.53 + </g> 28.54 +</svg> 28.55 + 28.56 +
29.1 Binary file filters/master/examples/filters01-0.png has changed
30.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 30.2 +++ b/filters/master/examples/filters01-0.svg Mon Apr 11 10:08:48 2011 +1000 30.3 @@ -0,0 +1,23 @@ 30.4 +<?xml version="1.0"?> 30.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 30.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 30.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" version="1.1" 30.8 + xmlns="http://www.w3.org/2000/svg"> 30.9 + <title>Example filters01-0.svg - source graphic with no filters</title> 30.10 + <desc>Shows what filters01.svg looks like without any 30.11 + filters.</desc> 30.12 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 30.13 + <g> 30.14 + <g> 30.15 + <path fill="none" stroke="#D90000" stroke-width="10" 30.16 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 30.17 + <path fill="#D90000" 30.18 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 30.19 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 30.20 + <text x="52" y="76">SVG</text> 30.21 + </g> 30.22 + </g> 30.23 + </g> 30.24 +</svg> 30.25 + 30.26 +
31.1 Binary file filters/master/examples/filters01-1.png has changed
32.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 32.2 +++ b/filters/master/examples/filters01-1.svg Mon Apr 11 10:08:48 2011 +1000 32.3 @@ -0,0 +1,28 @@ 32.4 +<?xml version="1.0"?> 32.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 32.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 32.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 32.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 32.9 + <title>Example filters01-1.svg - after first step</title> 32.10 + <desc>Shows intermediate result for filters01.svg after applying 32.11 + the first filter element, feGaussianBlur.</desc> 32.12 + <defs> 32.13 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 32.14 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 32.15 + </filter> 32.16 + </defs> 32.17 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 32.18 + <g filter="url(#MyFilter)" > 32.19 + <g> 32.20 + <path fill="none" stroke="#D90000" stroke-width="10" 32.21 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 32.22 + <path fill="#D90000" 32.23 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 32.24 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 32.25 + <text x="52" y="76">SVG</text> 32.26 + </g> 32.27 + </g> 32.28 + </g> 32.29 +</svg> 32.30 + 32.31 +
33.1 Binary file filters/master/examples/filters01-2.png has changed
34.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 34.2 +++ b/filters/master/examples/filters01-2.svg Mon Apr 11 10:08:48 2011 +1000 34.3 @@ -0,0 +1,29 @@ 34.4 +<?xml version="1.0"?> 34.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 34.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 34.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 34.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 34.9 + <title>Example filters01-2.svg - after second step</title> 34.10 + <desc>Shows intermediate result for filters01.svg after applying 34.11 + the second filter element, feOffset.</desc> 34.12 + <defs> 34.13 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 34.14 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 34.15 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 34.16 + </filter> 34.17 + </defs> 34.18 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 34.19 + <g filter="url(#MyFilter)" > 34.20 + <g> 34.21 + <path fill="none" stroke="#D90000" stroke-width="10" 34.22 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 34.23 + <path fill="#D90000" 34.24 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 34.25 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 34.26 + <text x="52" y="76">SVG</text> 34.27 + </g> 34.28 + </g> 34.29 + </g> 34.30 +</svg> 34.31 + 34.32 +
35.1 Binary file filters/master/examples/filters01-3.png has changed
36.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 36.2 +++ b/filters/master/examples/filters01-3.svg Mon Apr 11 10:08:48 2011 +1000 36.3 @@ -0,0 +1,34 @@ 36.4 +<?xml version="1.0"?> 36.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 36.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 36.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 36.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 36.9 + <title>Example filters01-3.svg - after third step</title> 36.10 + <desc>Shows intermediate result for filters01.svg after applying 36.11 + the third filter element, feSpecularLighting.</desc> 36.12 + <defs> 36.13 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 36.14 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 36.15 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 36.16 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 36.17 + specularExponent="20" lighting-color="#bbbbbb" 36.18 + result="specOut"> 36.19 + <fePointLight x="-5000" y="-10000" z="20000"/> 36.20 + </feSpecularLighting> 36.21 + </filter> 36.22 + </defs> 36.23 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 36.24 + <g filter="url(#MyFilter)" > 36.25 + <g> 36.26 + <path fill="none" stroke="#D90000" stroke-width="10" 36.27 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 36.28 + <path fill="#D90000" 36.29 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 36.30 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 36.31 + <text x="52" y="76">SVG</text> 36.32 + </g> 36.33 + </g> 36.34 + </g> 36.35 +</svg> 36.36 + 36.37 +
37.1 Binary file filters/master/examples/filters01-4.png has changed
38.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 38.2 +++ b/filters/master/examples/filters01-4.svg Mon Apr 11 10:08:48 2011 +1000 38.3 @@ -0,0 +1,35 @@ 38.4 +<?xml version="1.0"?> 38.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 38.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 38.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 38.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 38.9 + <title>Example filters01-4.svg - after fourth step</title> 38.10 + <desc>Shows intermediate result for filters01.svg after applying 38.11 + the fourth filter element, feComposite.</desc> 38.12 + <defs> 38.13 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 38.14 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 38.15 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 38.16 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 38.17 + specularExponent="20" lighting-color="#bbbbbb" 38.18 + result="specOut"> 38.19 + <fePointLight x="-5000" y="-10000" z="20000"/> 38.20 + </feSpecularLighting> 38.21 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 38.22 + </filter> 38.23 + </defs> 38.24 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 38.25 + <g filter="url(#MyFilter)" > 38.26 + <g> 38.27 + <path fill="none" stroke="#D90000" stroke-width="10" 38.28 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 38.29 + <path fill="#D90000" 38.30 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 38.31 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 38.32 + <text x="52" y="76">SVG</text> 38.33 + </g> 38.34 + </g> 38.35 + </g> 38.36 +</svg> 38.37 + 38.38 +
39.1 Binary file filters/master/examples/filters01-5.png has changed
40.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 40.2 +++ b/filters/master/examples/filters01-5.svg Mon Apr 11 10:08:48 2011 +1000 40.3 @@ -0,0 +1,37 @@ 40.4 +<?xml version="1.0"?> 40.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 40.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 40.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 40.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 40.9 + <title>Example filters01-5.svg - after fifth step</title> 40.10 + <desc>Shows intermediate result for filters01.svg after applying 40.11 + the fifth filter element, feComposite.</desc> 40.12 + <defs> 40.13 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 40.14 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 40.15 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 40.16 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 40.17 + specularExponent="20" lighting-color="#bbbbbb" 40.18 + result="specOut"> 40.19 + <fePointLight x="-5000" y="-10000" z="20000"/> 40.20 + </feSpecularLighting> 40.21 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 40.22 + <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 40.23 + k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 40.24 + </filter> 40.25 + </defs> 40.26 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 40.27 + <g filter="url(#MyFilter)" > 40.28 + <g> 40.29 + <path fill="none" stroke="#D90000" stroke-width="10" 40.30 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 40.31 + <path fill="#D90000" 40.32 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 40.33 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 40.34 + <text x="52" y="76">SVG</text> 40.35 + </g> 40.36 + </g> 40.37 + </g> 40.38 +</svg> 40.39 + 40.40 +
41.1 Binary file filters/master/examples/filters01-6.png has changed
42.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 42.2 +++ b/filters/master/examples/filters01-6.svg Mon Apr 11 10:08:48 2011 +1000 42.3 @@ -0,0 +1,43 @@ 42.4 +<?xml version="1.0"?> 42.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 42.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 42.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 42.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 42.9 + <title>Example filters01.svg - introducing filter effects</title> 42.10 + <desc>An example which combines multiple filter primitives 42.11 + to produce a 3D lighting effect on a graphic consisting 42.12 + of the string "SVG" sitting on top of oval filled in red 42.13 + and surrounded by an oval outlined in red.</desc> 42.14 + <defs> 42.15 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 42.16 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 42.17 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 42.18 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 42.19 + specularExponent="20" lighting-color="#bbbbbb" 42.20 + result="specOut"> 42.21 + <fePointLight x="-5000" y="-10000" z="20000"/> 42.22 + </feSpecularLighting> 42.23 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 42.24 + <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 42.25 + k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 42.26 + <feMerge> 42.27 + <feMergeNode in="offsetBlur"/> 42.28 + <feMergeNode in="litPaint"/> 42.29 + </feMerge> 42.30 + </filter> 42.31 + </defs> 42.32 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 42.33 + <g filter="url(#MyFilter)" > 42.34 + <g> 42.35 + <path fill="none" stroke="#D90000" stroke-width="10" 42.36 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 42.37 + <path fill="#D90000" 42.38 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 42.39 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 42.40 + <text x="52" y="76">SVG</text> 42.41 + </g> 42.42 + </g> 42.43 + </g> 42.44 +</svg> 42.45 + 42.46 +
43.1 Binary file filters/master/examples/filters01.png has changed
44.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 44.2 +++ b/filters/master/examples/filters01.svg Mon Apr 11 10:08:48 2011 +1000 44.3 @@ -0,0 +1,43 @@ 44.4 +<?xml version="1.0"?> 44.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 44.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 44.7 +<svg width="7.5cm" height="5cm" viewBox="0 0 200 120" 44.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 44.9 + <title>Example filters01.svg - introducing filter effects</title> 44.10 + <desc>An example which combines multiple filter primitives 44.11 + to produce a 3D lighting effect on a graphic consisting 44.12 + of the string "SVG" sitting on top of oval filled in red 44.13 + and surrounded by an oval outlined in red.</desc> 44.14 + <defs> 44.15 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 44.16 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 44.17 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 44.18 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 44.19 + specularExponent="20" lighting-color="#bbbbbb" 44.20 + result="specOut"> 44.21 + <fePointLight x="-5000" y="-10000" z="20000"/> 44.22 + </feSpecularLighting> 44.23 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 44.24 + <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 44.25 + k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 44.26 + <feMerge> 44.27 + <feMergeNode in="offsetBlur"/> 44.28 + <feMergeNode in="litPaint"/> 44.29 + </feMerge> 44.30 + </filter> 44.31 + </defs> 44.32 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 44.33 + <g filter="url(#MyFilter)" > 44.34 + <g> 44.35 + <path fill="none" stroke="#D90000" stroke-width="10" 44.36 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 44.37 + <path fill="#D90000" 44.38 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 44.39 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 44.40 + <text x="52" y="76">SVG</text> 44.41 + </g> 44.42 + </g> 44.43 + </g> 44.44 +</svg> 44.45 + 44.46 +
45.1 Binary file filters/master/examples/filtersubregion00.png has changed
46.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 46.2 +++ b/filters/master/examples/filtersubregion00.svg Mon Apr 11 10:08:48 2011 +1000 46.3 @@ -0,0 +1,43 @@ 46.4 +<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"> 46.5 + <defs> 46.6 + <filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox"> 46.7 + <feFlood x="25%" y="25%" width="50%" height="50%" 46.8 + flood-color="green" flood-opacity="0.75"/> 46.9 + </filter> 46.10 + <filter id="blend" primitiveUnits="objectBoundingBox"> 46.11 + <feBlend x="25%" y="25%" width="50%" height="50%" 46.12 + in2="SourceGraphic" mode="multiply"/> 46.13 + </filter> 46.14 + <filter id="merge" primitiveUnits="objectBoundingBox"> 46.15 + <feMerge x="25%" y="25%" width="50%" height="50%"> 46.16 + <feMergeNode in="SourceGraphic"/> 46.17 + <feMergeNode in="FillPaint"/> 46.18 + </feMerge> 46.19 + </filter> 46.20 + </defs> 46.21 + 46.22 + <g fill="none" stroke="blue" stroke-width="4"> 46.23 + <rect width="200" height="200"/> 46.24 + <line x2="200" y2="200"/> 46.25 + <line x1="200" y2="200"/> 46.26 + </g> 46.27 + <circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/> 46.28 + 46.29 + <g transform="translate(200 0)"> 46.30 + <g fill="none" stroke="blue" stroke-width="4"> 46.31 + <rect width="200" height="200"/> 46.32 + <line x2="200" y2="200"/> 46.33 + <line x1="200" y2="200"/> 46.34 + </g> 46.35 + <circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/> 46.36 + </g> 46.37 + 46.38 + <g transform="translate(0 200)"> 46.39 + <g fill="none" stroke="blue" stroke-width="4"> 46.40 + <rect width="200" height="200"/> 46.41 + <line x2="200" y2="200"/> 46.42 + <line x1="200" y2="200"/> 46.43 + </g> 46.44 + <circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/> 46.45 + </g> 46.46 +</svg> 46.47 \ No newline at end of file
47.1 Binary file filters/master/examples/forest-small.jpg has changed
48.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 48.2 +++ b/filters/master/mathml/feColorMatrix00.mml Mon Apr 11 10:08:48 2011 +1000 48.3 @@ -0,0 +1,209 @@ 48.4 +<?xml version="1.0" encoding="iso-8859-1"?> 48.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 48.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 48.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 48.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 48.9 + <mrow> 48.10 + <mfenced open="[" close="]"> 48.11 + <mrow> 48.12 + <mtable> 48.13 + <mtr> 48.14 + <msup> 48.15 + <mi>R</mi> 48.16 + <mo>'</mo> 48.17 + </msup> 48.18 + </mtr> 48.19 + <mtr> 48.20 + <msup> 48.21 + <mi>G</mi> 48.22 + <mo>'</mo> 48.23 + </msup> 48.24 + </mtr> 48.25 + <mtr> 48.26 + <msup> 48.27 + <mi>B</mi> 48.28 + <mo>'</mo> 48.29 + </msup> 48.30 + </mtr> 48.31 + <mtr> 48.32 + <msup> 48.33 + <mi>A</mi> 48.34 + <mo>'</mo> 48.35 + </msup> 48.36 + </mtr> 48.37 + </mtable> 48.38 + </mrow> 48.39 + </mfenced> 48.40 + <mo>=</mo> 48.41 + <mfenced open="[" close="]"> 48.42 + <mrow> 48.43 + <mtable> 48.44 + <mtr> 48.45 + <mtd> 48.46 + <msub> 48.47 + <mi>a</mi> 48.48 + <mn>00</mn> 48.49 + </msub> 48.50 + </mtd> 48.51 + <mtd> 48.52 + <msub> 48.53 + <mi>a</mi> 48.54 + <mn>01</mn> 48.55 + </msub> 48.56 + </mtd> 48.57 + <mtd> 48.58 + <msub> 48.59 + <mi>a</mi> 48.60 + <mn>02</mn> 48.61 + </msub> 48.62 + </mtd> 48.63 + <mtd> 48.64 + <msub> 48.65 + <mi>a</mi> 48.66 + <mn>03</mn> 48.67 + </msub> 48.68 + </mtd> 48.69 + <mtd> 48.70 + <msub> 48.71 + <mi>a</mi> 48.72 + <mn>04</mn> 48.73 + </msub> 48.74 + </mtd> 48.75 + </mtr> 48.76 + <mtr> 48.77 + <mtd> 48.78 + <msub> 48.79 + <mi>a</mi> 48.80 + <mn>10</mn> 48.81 + </msub> 48.82 + </mtd> 48.83 + <mtd> 48.84 + <msub> 48.85 + <mi>a</mi> 48.86 + <mn>11</mn> 48.87 + </msub> 48.88 + </mtd> 48.89 + <mtd> 48.90 + <msub> 48.91 + <mi>a</mi> 48.92 + <mn>12</mn> 48.93 + </msub> 48.94 + </mtd> 48.95 + <mtd> 48.96 + <msub> 48.97 + <mi>a</mi> 48.98 + <mn>13</mn> 48.99 + </msub> 48.100 + </mtd> 48.101 + <mtd> 48.102 + <msub> 48.103 + <mi>a</mi> 48.104 + <mn>14</mn> 48.105 + </msub> 48.106 + </mtd> 48.107 + </mtr> 48.108 + <mtr> 48.109 + <mtd> 48.110 + <msub> 48.111 + <mi>a</mi> 48.112 + <mn>20</mn> 48.113 + </msub> 48.114 + </mtd> 48.115 + <mtd> 48.116 + <msub> 48.117 + <mi>a</mi> 48.118 + <mn>21</mn> 48.119 + </msub> 48.120 + </mtd> 48.121 + <mtd> 48.122 + <msub> 48.123 + <mi>a</mi> 48.124 + <mn>22</mn> 48.125 + </msub> 48.126 + </mtd> 48.127 + <mtd> 48.128 + <msub> 48.129 + <mi>a</mi> 48.130 + <mn>23</mn> 48.131 + </msub> 48.132 + </mtd> 48.133 + <mtd> 48.134 + <msub> 48.135 + <mi>a</mi> 48.136 + <mn>24</mn> 48.137 + </msub> 48.138 + </mtd> 48.139 + </mtr> 48.140 + <mtr> 48.141 + <mtd> 48.142 + <msub> 48.143 + <mi>a</mi> 48.144 + <mn>30</mn> 48.145 + </msub> 48.146 + </mtd> 48.147 + <mtd> 48.148 + <msub> 48.149 + <mi>a</mi> 48.150 + <mn>31</mn> 48.151 + </msub> 48.152 + </mtd> 48.153 + <mtd> 48.154 + <msub> 48.155 + <mi>a</mi> 48.156 + <mn>32</mn> 48.157 + </msub> 48.158 + </mtd> 48.159 + <mtd> 48.160 + <msub> 48.161 + <mi>a</mi> 48.162 + <mn>33</mn> 48.163 + </msub> 48.164 + </mtd> 48.165 + <mtd> 48.166 + <msub> 48.167 + <mi>a</mi> 48.168 + <mn>34</mn> 48.169 + </msub> 48.170 + </mtd> 48.171 + </mtr> 48.172 + <mtr> 48.173 + <mtd> 48.174 + <mn>0</mn> 48.175 + </mtd> 48.176 + <mtd> 48.177 + <mn>0</mn> 48.178 + </mtd> 48.179 + <mtd> 48.180 + <mn>0</mn> 48.181 + </mtd> 48.182 + <mtd> 48.183 + <mn>0</mn> 48.184 + </mtd> 48.185 + <mtd> 48.186 + <mn>1</mn> 48.187 + </mtd> 48.188 + </mtr> 48.189 + </mtable> 48.190 + </mrow> 48.191 + </mfenced> 48.192 + <mo>.</mo> 48.193 + <mfenced open="[" close="]"> 48.194 + <mrow> 48.195 + <mtable> 48.196 + <mtr> 48.197 + <mi>R</mi> 48.198 + </mtr> 48.199 + <mtr> 48.200 + <mi>G</mi> 48.201 + </mtr> 48.202 + <mtr> 48.203 + <mi>B</mi> 48.204 + </mtr> 48.205 + <mtr> 48.206 + <mi>A</mi> 48.207 + </mtr> 48.208 + </mtable> 48.209 + </mrow> 48.210 + </mfenced> 48.211 +</mrow> 48.212 +</math>
49.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 49.2 +++ b/filters/master/mathml/feColorMatrix01.mml Mon Apr 11 10:08:48 2011 +1000 49.3 @@ -0,0 +1,198 @@ 49.4 +<?xml version="1.0" encoding="iso-8859-1"?> 49.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 49.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 49.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 49.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 49.9 + <mrow> 49.10 + <mfenced> 49.11 + <mtable> 49.12 + <mtr> 49.13 + <mtd> 49.14 + <msup> 49.15 + <mi>R</mi> 49.16 + <mo>'</mo> 49.17 + </msup> 49.18 + </mtd> 49.19 + </mtr> 49.20 + <mtr> 49.21 + <mtd> 49.22 + <msup> 49.23 + <mi>G</mi> 49.24 + <mo>'</mo> 49.25 + </msup> 49.26 + </mtd> 49.27 + </mtr> 49.28 + <mtr> 49.29 + <mtd> 49.30 + <msup> 49.31 + <mi>B</mi> 49.32 + <mo>'</mo> 49.33 + </msup> 49.34 + </mtd> 49.35 + </mtr> 49.36 + <mtr> 49.37 + <mtd> 49.38 + <msup> 49.39 + <mi>A</mi> 49.40 + <mo>'</mo> 49.41 + </msup> 49.42 + </mtd> 49.43 + </mtr> 49.44 + <mtr> 49.45 + <mtd> 49.46 + <mn>1</mn> 49.47 + </mtd> 49.48 + </mtr> 49.49 + </mtable> 49.50 + </mfenced> 49.51 + <mo>=</mo> 49.52 + <mrow> 49.53 + <mfenced> 49.54 + <mtable> 49.55 + <mtr> 49.56 + <mtd> 49.57 + <mn>0.213</mn> 49.58 + <mo>+</mo> 49.59 + <mn>0.787</mn> 49.60 + <mi>s</mi> 49.61 + </mtd> 49.62 + <mtd> 49.63 + <mn>0.715</mn> 49.64 + <mo>−</mo> 49.65 + <mo>0.715</mo> 49.66 + <mi>s</mi> 49.67 + </mtd> 49.68 + <mtd> 49.69 + <mn>0.072</mn> 49.70 + <mo>−</mo> 49.71 + <mn>0.072</mn> 49.72 + <mi>s</mi> 49.73 + </mtd> 49.74 + <mtd> 49.75 + <mn>0</mn> 49.76 + </mtd> 49.77 + <mtd> 49.78 + <mn>0</mn> 49.79 + </mtd> 49.80 + </mtr> 49.81 + <mtr> 49.82 + <mtd> 49.83 + <mn>0.213</mn> 49.84 + <mo>−</mo> 49.85 + <mn>0.213</mn> 49.86 + <mi>s</mi> 49.87 + </mtd> 49.88 + <mtd> 49.89 + <mn>0.715</mn> 49.90 + <mo>+</mo> 49.91 + <mn>0.285</mn> 49.92 + <mi>s</mi> 49.93 + </mtd> 49.94 + <mtd> 49.95 + <mn>0.072</mn> 49.96 + <mo>−</mo> 49.97 + <mn>0.072</mn> 49.98 + <mi>s</mi> 49.99 + </mtd> 49.100 + <mtd> 49.101 + <mn>0</mn> 49.102 + </mtd> 49.103 + <mtd> 49.104 + <mn>0</mn> 49.105 + </mtd> 49.106 + </mtr> 49.107 + <mtr> 49.108 + <mtd> 49.109 + <mn>0.213</mn> 49.110 + <mo>−</mo> 49.111 + <mn>0.213</mn> 49.112 + <mi>s</mi> 49.113 + </mtd> 49.114 + <mtd> 49.115 + <mn>0.715</mn> 49.116 + <mo>−</mo> 49.117 + <mn>0.715</mn> 49.118 + <mi>s</mi> 49.119 + </mtd> 49.120 + <mtd> 49.121 + <mn>0.072</mn> 49.122 + <mo>+</mo> 49.123 + <mn>0.928</mn> 49.124 + <mi>s</mi> 49.125 + </mtd> 49.126 + <mtd> 49.127 + <mn>0</mn> 49.128 + </mtd> 49.129 + <mtd> 49.130 + <mn>0</mn> 49.131 + </mtd> 49.132 + </mtr> 49.133 + <mtr> 49.134 + <mtd> 49.135 + <mn>0</mn> 49.136 + </mtd> 49.137 + <mtd> 49.138 + <mn>0</mn> 49.139 + </mtd> 49.140 + <mtd> 49.141 + <mn>0</mn> 49.142 + </mtd> 49.143 + <mtd> 49.144 + <mn>1</mn> 49.145 + </mtd> 49.146 + <mtd> 49.147 + <mn>0</mn> 49.148 + </mtd> 49.149 + </mtr> 49.150 + <mtr> 49.151 + <mtd> 49.152 + <mn>0</mn> 49.153 + </mtd> 49.154 + <mtd> 49.155 + <mn>0</mn> 49.156 + </mtd> 49.157 + <mtd> 49.158 + <mn>0</mn> 49.159 + </mtd> 49.160 + <mtd> 49.161 + <mn>0</mn> 49.162 + </mtd> 49.163 + <mtd> 49.164 + <mn>1</mn> 49.165 + </mtd> 49.166 + </mtr> 49.167 + </mtable> 49.168 + </mfenced> 49.169 + <mo>.</mo> 49.170 + <mfenced> 49.171 + <mtable> 49.172 + <mtr> 49.173 + <mtd> 49.174 + <mi>R</mi> 49.175 + </mtd> 49.176 + </mtr> 49.177 + <mtr> 49.178 + <mtd> 49.179 + <mi>G</mi> 49.180 + </mtd> 49.181 + </mtr> 49.182 + <mtr> 49.183 + <mtd> 49.184 + <mi>B</mi> 49.185 + </mtd> 49.186 + </mtr> 49.187 + <mtr> 49.188 + <mtd> 49.189 + <mi>A</mi> 49.190 + </mtd> 49.191 + </mtr> 49.192 + <mtr> 49.193 + <mtd> 49.194 + <mn>1</mn> 49.195 + </mtd> 49.196 + </mtr> 49.197 + </mtable> 49.198 + </mfenced> 49.199 + </mrow> 49.200 + </mrow> 49.201 +</math> 49.202 \ No newline at end of file
50.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 50.2 +++ b/filters/master/mathml/feColorMatrix02.mml Mon Apr 11 10:08:48 2011 +1000 50.3 @@ -0,0 +1,179 @@ 50.4 +<?xml version="1.0" encoding="iso-8859-1"?> 50.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 50.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 50.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 50.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 50.9 + <mfenced> 50.10 + <mtable> 50.11 + <mtr> 50.12 + <mtd> 50.13 + <msup> 50.14 + <mi>R</mi> 50.15 + <mo>'</mo> 50.16 + </msup> 50.17 + </mtd> 50.18 + </mtr> 50.19 + <mtr> 50.20 + <mtd> 50.21 + <msup> 50.22 + <mi>G</mi> 50.23 + <mo>'</mo> 50.24 + </msup> 50.25 + </mtd> 50.26 + </mtr> 50.27 + <mtr> 50.28 + <mtd> 50.29 + <msup> 50.30 + <mi>B</mi> 50.31 + <mo>'</mo> 50.32 + </msup> 50.33 + </mtd> 50.34 + </mtr> 50.35 + <mtr> 50.36 + <mtd> 50.37 + <msup> 50.38 + <mi>A</mi> 50.39 + <mo>'</mo> 50.40 + </msup> 50.41 + </mtd> 50.42 + </mtr> 50.43 + <mtr> 50.44 + <mtd> 50.45 + <mn>1</mn> 50.46 + </mtd> 50.47 + </mtr> 50.48 + </mtable> 50.49 + </mfenced> 50.50 + <mo>=</mo> 50.51 + <mrow> 50.52 + <mn><mfenced> 50.53 + <mtable> 50.54 + <mtr> 50.55 + <mtd> 50.56 + <mi>a</mi> 50.57 + <mn>00</mn> 50.58 + </mtd> 50.59 + <mtd> 50.60 + <mi>a</mi> 50.61 + <mn>01</mn> 50.62 + </mtd> 50.63 + <mtd> 50.64 + <mi>a</mi> 50.65 + <mn>02</mn> 50.66 + </mtd> 50.67 + <mtd> 50.68 + <mn>0</mn> 50.69 + </mtd> 50.70 + <mtd> 50.71 + <mn>0</mn> 50.72 + </mtd> 50.73 + </mtr> 50.74 + <mtr> 50.75 + <mtd> 50.76 + <mi>a</mi> 50.77 + <mn>10</mn> 50.78 + </mtd> 50.79 + <mtd> 50.80 + <mi>a</mi> 50.81 + <mn>11</mn> 50.82 + </mtd> 50.83 + <mtd> 50.84 + <mi>a</mi> 50.85 + <mn>12</mn> 50.86 + </mtd> 50.87 + <mtd> 50.88 + <mn>0</mn> 50.89 + </mtd> 50.90 + <mtd> 50.91 + <mn>0</mn> 50.92 + </mtd> 50.93 + </mtr> 50.94 + <mtr> 50.95 + <mtd> 50.96 + <mi>a</mi> 50.97 + <mn>20</mn> 50.98 + </mtd> 50.99 + <mtd> 50.100 + <mi>a</mi> 50.101 + <mn>21</mn> 50.102 + </mtd> 50.103 + <mtd> 50.104 + <mi>a</mi> 50.105 + <mn>22</mn> 50.106 + </mtd> 50.107 + <mtd> 50.108 + <mn>0</mn> 50.109 + </mtd> 50.110 + <mtd> 50.111 + <mn>0</mn> 50.112 + </mtd> 50.113 + </mtr> 50.114 + <mtr> 50.115 + <mtd> 50.116 + <mn>0</mn> 50.117 + </mtd> 50.118 + <mtd> 50.119 + <mn>0</mn> 50.120 + </mtd> 50.121 + <mtd> 50.122 + <mn>0</mn> 50.123 + </mtd> 50.124 + <mtd> 50.125 + <mn>1</mn> 50.126 + </mtd> 50.127 + <mtd> 50.128 + <mn>0</mn> 50.129 + </mtd> 50.130 + </mtr> 50.131 + <mtr> 50.132 + <mtd> 50.133 + <mn>0</mn> 50.134 + </mtd> 50.135 + <mtd> 50.136 + <mn>0</mn> 50.137 + </mtd> 50.138 + <mtd> 50.139 + <mn>0</mn> 50.140 + </mtd> 50.141 + <mtd> 50.142 + <mn>0</mn> 50.143 + </mtd> 50.144 + <mtd> 50.145 + <mn>1</mn> 50.146 + </mtd> 50.147 + </mtr> 50.148 + </mtable> 50.149 + </mfenced> 50.150 + </mn> 50.151 + <mo>.</mo> 50.152 + <mfenced> 50.153 + <mtable> 50.154 + <mtr> 50.155 + <mtd> 50.156 + <mi>R</mi> 50.157 + </mtd> 50.158 + </mtr> 50.159 + <mtr> 50.160 + <mtd> 50.161 + <mi>G</mi> 50.162 + </mtd> 50.163 + </mtr> 50.164 + <mtr> 50.165 + <mtd> 50.166 + <mi>B</mi> 50.167 + </mtd> 50.168 + </mtr> 50.169 + <mtr> 50.170 + <mtd> 50.171 + <mi>A</mi> 50.172 + </mtd> 50.173 + </mtr> 50.174 + <mtr> 50.175 + <mtd> 50.176 + <mn>1</mn> 50.177 + </mtd> 50.178 + </mtr> 50.179 + </mtable> 50.180 + </mfenced> 50.181 + </mrow> 50.182 +</math> 50.183 \ No newline at end of file
51.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 51.2 +++ b/filters/master/mathml/feColorMatrix03.mml Mon Apr 11 10:08:48 2011 +1000 51.3 @@ -0,0 +1,212 @@ 51.4 +<?xml version="1.0" encoding="iso-8859-1"?> 51.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 51.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 51.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 51.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 51.9 + <mrow> 51.10 + <mfenced> 51.11 + <mtable> 51.12 + <mtr> 51.13 + <mtd> 51.14 + <mi>a</mi> 51.15 + <mn>00</mn> 51.16 + </mtd> 51.17 + <mtd> 51.18 + <mi>a</mi> 51.19 + <mn>01</mn> 51.20 + </mtd> 51.21 + <mtd> 51.22 + <mi>a</mi> 51.23 + <mn>02</mn> 51.24 + </mtd> 51.25 + </mtr> 51.26 + <mtr> 51.27 + <mtd> 51.28 + <mi>a</mi> 51.29 + <mn>10</mn> 51.30 + </mtd> 51.31 + <mtd> 51.32 + <mi>a</mi> 51.33 + <mn>11</mn> 51.34 + </mtd> 51.35 + <mtd> 51.36 + <mi>a</mi> 51.37 + <mn>12</mn> 51.38 + </mtd> 51.39 + </mtr> 51.40 + <mtr> 51.41 + <mtd> 51.42 + <mi>a</mi> 51.43 + <mn>20</mn> 51.44 + </mtd> 51.45 + <mtd> 51.46 + <mi>a</mi> 51.47 + <mn>21</mn> 51.48 + </mtd> 51.49 + <mtd> 51.50 + <mi>a</mi> 51.51 + <mn>22</mn> 51.52 + </mtd> 51.53 + </mtr> 51.54 + </mtable> 51.55 + </mfenced> 51.56 + <mo>=</mo> 51.57 + <mfenced close="+"> 51.58 + <mtable> 51.59 + <mtr> 51.60 + <mtd> 51.61 + <mn>0.213</mn> 51.62 + </mtd> 51.63 + <mtd> 51.64 + <mn>0.715</mn> 51.65 + </mtd> 51.66 + <mtd> 51.67 + <mn>0.072</mn> 51.68 + </mtd> 51.69 + </mtr> 51.70 + <mtr> 51.71 + <mtd> 51.72 + <mn>0.213</mn> 51.73 + </mtd> 51.74 + <mtd> 51.75 + <mn>0.715</mn> 51.76 + </mtd> 51.77 + <mtd> 51.78 + <mn>0.072</mn> 51.79 + </mtd> 51.80 + </mtr> 51.81 + <mtr> 51.82 + <mtd> 51.83 + <mn>0.213</mn> 51.84 + </mtd> 51.85 + <mtd> 51.86 + <mn>0.715</mn> 51.87 + </mtd> 51.88 + <mtd> 51.89 + <mn>0.072</mn> 51.90 + </mtd> 51.91 + </mtr> 51.92 + </mtable> 51.93 + </mfenced> 51.94 + <mo>+</mo> 51.95 + <mrow> 51.96 + <mrow> 51.97 + <mi>cos</mi> 51.98 + <mo>⁡</mo> 51.99 + <mrow> 51.100 + <mo>(</mo> 51.101 + <mi>hueRotate</mi> 51.102 + <mi>value</mi> 51.103 + <mo>)</mo> 51.104 + </mrow> 51.105 + </mrow> 51.106 + <mo>.</mo> 51.107 + <mfenced> 51.108 + <mtable> 51.109 + <mtr> 51.110 + <mtd> 51.111 + <mn>0.787</mn> 51.112 + </mtd> 51.113 + <mtd> 51.114 + <mo>−</mo> 51.115 + <mn>0.715</mn> 51.116 + </mtd> 51.117 + <mtd> 51.118 + <mrow> 51.119 + <mo>−</mo> 51.120 + <mn>0.072</mn> 51.121 + </mrow> 51.122 + </mtd> 51.123 + </mtr> 51.124 + <mtr> 51.125 + <mtd> 51.126 + <mo>−</mo> 51.127 + <mn>0.213</mn> 51.128 + </mtd> 51.129 + <mtd> 51.130 + <mn>0.285</mn> 51.131 + </mtd> 51.132 + <mtd> 51.133 + <mo>−</mo> 51.134 + <mn>0.072</mn> 51.135 + </mtd> 51.136 + </mtr> 51.137 + <mtr> 51.138 + <mtd> 51.139 + <mo>−</mo> 51.140 + <mn>0.213</mn> 51.141 + </mtd> 51.142 + <mtd> 51.143 + <mo>−</mo> 51.144 + <mn>0.715</mn> 51.145 + </mtd> 51.146 + <mtd> 51.147 + <mn>0.928</mn> 51.148 + </mtd> 51.149 + </mtr> 51.150 + </mtable> 51.151 + </mfenced> 51.152 + </mrow> 51.153 + <mo>+</mo> 51.154 + <mrow> 51.155 + <mrow> 51.156 + <mi>sin</mi> 51.157 + <mo>⁡</mo> 51.158 + <mo>(</mo> 51.159 + <mi>hueRotate</mi> 51.160 + <mi>value</mi> 51.161 + <mo>)</mo> 51.162 + </mrow> 51.163 + <mo>.</mo> 51.164 + <mfenced> 51.165 + <mtable> 51.166 + <mtr> 51.167 + <mtd> 51.168 + <mrow> 51.169 + <mo>−</mo> 51.170 + <mn>0.213</mn> 51.171 + </mrow> 51.172 + </mtd> 51.173 + <mtd> 51.174 + <mrow> 51.175 + <mo>−</mo> 51.176 + <mn>0.715</mn> 51.177 + </mrow> 51.178 + </mtd> 51.179 + <mtd> 51.180 + <mn>0.928</mn> 51.181 + </mtd> 51.182 + </mtr> 51.183 + <mtr> 51.184 + <mtd> 51.185 + <mn>0.143</mn> 51.186 + </mtd> 51.187 + <mtd> 51.188 + <mn>0.140</mn> 51.189 + </mtd> 51.190 + <mtd> 51.191 + <mrow> 51.192 + <mo>−</mo> 51.193 + <mn>0.283</mn> 51.194 + </mrow> 51.195 + </mtd> 51.196 + </mtr> 51.197 + <mtr> 51.198 + <mtd> 51.199 + <mrow> 51.200 + <mo>−</mo> 51.201 + <mn>0.787</mn> 51.202 + </mrow> 51.203 + </mtd> 51.204 + <mtd> 51.205 + <mn>0.715</mn> 51.206 + </mtd> 51.207 + <mtd> 51.208 + <mn>0.072</mn> 51.209 + </mtd> 51.210 + </mtr> 51.211 + </mtable> 51.212 + </mfenced> 51.213 + </mrow> 51.214 + </mrow> 51.215 +</math> 51.216 \ No newline at end of file
52.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 52.2 +++ b/filters/master/mathml/feColorMatrix04.mml Mon Apr 11 10:08:48 2011 +1000 52.3 @@ -0,0 +1,36 @@ 52.4 +<?xml version="1.0" encoding="iso-8859-1"?> 52.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 52.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 52.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 52.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 52.9 + <mrow> 52.10 + <mi>a</mi> 52.11 + <mn>00</mn> 52.12 + <mo>=</mo> 52.13 + <mrow> 52.14 + <mn>0.213</mn> 52.15 + <mo>+</mo> 52.16 + <mrow> 52.17 + <mrow> 52.18 + <mrow> 52.19 + <mi>cos</mi> 52.20 + <mo>⁡</mo> 52.21 + <mtext>(hueRotate value)</mtext> 52.22 + </mrow> 52.23 + <mo>×</mo> 52.24 + <mn>0.787</mn> 52.25 + </mrow> 52.26 + <mo>−</mo> 52.27 + <mrow> 52.28 + <mrow> 52.29 + <mi>sin</mi> 52.30 + <mo>⁡</mo> 52.31 + <mtext>(hueRotate value)</mtext> 52.32 + </mrow> 52.33 + <mo>×</mo> 52.34 + <mn>0.213</mn> 52.35 + </mrow> 52.36 + </mrow> 52.37 + </mrow> 52.38 + </mrow> 52.39 +</math> 52.40 \ No newline at end of file
53.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 53.2 +++ b/filters/master/mathml/feColorMatrix05.mml Mon Apr 11 10:08:48 2011 +1000 53.3 @@ -0,0 +1,170 @@ 53.4 +<?xml version="1.0" encoding="iso-8859-1"?> 53.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 53.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 53.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 53.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 53.9 + <mfenced> 53.10 + <mtable> 53.11 + <mtr> 53.12 + <mtd> 53.13 + <msup> 53.14 + <mi>R</mi> 53.15 + <mo>'</mo> 53.16 + </msup> 53.17 + </mtd> 53.18 + </mtr> 53.19 + <mtr> 53.20 + <mtd> 53.21 + <msup> 53.22 + <mi>G</mi> 53.23 + <mo>'</mo> 53.24 + </msup> 53.25 + </mtd> 53.26 + </mtr> 53.27 + <mtr> 53.28 + <mtd> 53.29 + <msup> 53.30 + <mi>B</mi> 53.31 + <mo>'</mo> 53.32 + </msup> 53.33 + </mtd> 53.34 + </mtr> 53.35 + <mtr> 53.36 + <mtd> 53.37 + <msup> 53.38 + <mi>A</mi> 53.39 + <mo>'</mo> 53.40 + </msup> 53.41 + </mtd> 53.42 + </mtr> 53.43 + <mtr> 53.44 + <mtd> 53.45 + <mn>1</mn> 53.46 + </mtd> 53.47 + </mtr> 53.48 + </mtable> 53.49 + </mfenced> 53.50 + <mo>=</mo> 53.51 + <mrow> 53.52 + <mn><mfenced> 53.53 + <mtable> 53.54 + <mtr> 53.55 + <mtd> 53.56 + <mn>0</mn> 53.57 + </mtd> 53.58 + <mtd> 53.59 + <mn>0</mn> 53.60 + </mtd> 53.61 + <mtd> 53.62 + <mn>0</mn> 53.63 + </mtd> 53.64 + <mtd> 53.65 + <mn>0</mn> 53.66 + </mtd> 53.67 + <mtd> 53.68 + <mn>0</mn> 53.69 + </mtd> 53.70 + </mtr> 53.71 + <mtr> 53.72 + <mtd> 53.73 + <mn>0</mn> 53.74 + </mtd> 53.75 + <mtd> 53.76 + <mn>0</mn> 53.77 + </mtd> 53.78 + <mtd> 53.79 + <mn>0</mn> 53.80 + </mtd> 53.81 + <mtd> 53.82 + <mn>0</mn> 53.83 + </mtd> 53.84 + <mtd> 53.85 + <mn>0</mn> 53.86 + </mtd> 53.87 + </mtr> 53.88 + <mtr> 53.89 + <mtd> 53.90 + <mn>0</mn> 53.91 + </mtd> 53.92 + <mtd> 53.93 + <mn>0</mn> 53.94 + </mtd> 53.95 + <mtd> 53.96 + <mn>0</mn> 53.97 + </mtd> 53.98 + <mtd> 53.99 + <mn>0</mn> 53.100 + </mtd> 53.101 + <mtd> 53.102 + <mn>0</mn> 53.103 + </mtd> 53.104 + </mtr> 53.105 + <mtr> 53.106 + <mtd> 53.107 + <mn>0.2125</mn> 53.108 + </mtd> 53.109 + <mtd> 53.110 + <mn>0.7154</mn> 53.111 + </mtd> 53.112 + <mtd> 53.113 + <mn>0.0721</mn> 53.114 + </mtd> 53.115 + <mtd> 53.116 + <mn>0</mn> 53.117 + </mtd> 53.118 + <mtd> 53.119 + <mn>0</mn> 53.120 + </mtd> 53.121 + </mtr> 53.122 + <mtr> 53.123 + <mtd> 53.124 + <mn>0</mn> 53.125 + </mtd> 53.126 + <mtd> 53.127 + <mn>0</mn> 53.128 + </mtd> 53.129 + <mtd> 53.130 + <mn>0</mn> 53.131 + </mtd> 53.132 + <mtd> 53.133 + <mn>0</mn> 53.134 + </mtd> 53.135 + <mtd> 53.136 + <mn>1</mn> 53.137 + </mtd> 53.138 + </mtr> 53.139 + </mtable> 53.140 + </mfenced> 53.141 + </mn> 53.142 + <mo>.</mo> 53.143 + <mfenced> 53.144 + <mtable> 53.145 + <mtr> 53.146 + <mtd> 53.147 + <mi>R</mi> 53.148 + </mtd> 53.149 + </mtr> 53.150 + <mtr> 53.151 + <mtd> 53.152 + <mi>G</mi> 53.153 + </mtd> 53.154 + </mtr> 53.155 + <mtr> 53.156 + <mtd> 53.157 + <mi>B</mi> 53.158 + </mtd> 53.159 + </mtr> 53.160 + <mtr> 53.161 + <mtd> 53.162 + <mi>A</mi> 53.163 + </mtd> 53.164 + </mtr> 53.165 + <mtr> 53.166 + <mtd> 53.167 + <mn>1</mn> 53.168 + </mtd> 53.169 + </mtr> 53.170 + </mtable> 53.171 + </mfenced> 53.172 + </mrow> 53.173 +</math> 53.174 \ No newline at end of file
54.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 54.2 +++ b/filters/master/mathml/feComponentTransfer00.mml Mon Apr 11 10:08:48 2011 +1000 54.3 @@ -0,0 +1,85 @@ 54.4 +<?xml version="1.0" encoding="iso-8859-1"?> 54.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 54.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 54.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 54.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 54.9 + <mrow> 54.10 + <mtable> 54.11 + <mtr> 54.12 + <mtd> 54.13 + <msup> 54.14 + <mi>R</mi> 54.15 + <mo>'</mo> 54.16 + </msup> 54.17 + </mtd> 54.18 + </mtr> 54.19 + <mtr> 54.20 + <mtd> 54.21 + <msup> 54.22 + <mi>G</mi> 54.23 + <mo>'</mo> 54.24 + </msup> 54.25 + </mtd> 54.26 + </mtr> 54.27 + <mtr> 54.28 + <mtd> 54.29 + <msup> 54.30 + <mi>B</mi> 54.31 + <mo>'</mo> 54.32 + </msup> 54.33 + </mtd> 54.34 + </mtr> 54.35 + <mtr> 54.36 + <mtd> 54.37 + <msup> 54.38 + <mi>A</mi> 54.39 + <mo>'</mo> 54.40 + </msup> 54.41 + </mtd> 54.42 + </mtr> 54.43 + </mtable> 54.44 + <mo>=</mo> 54.45 + <mtable> 54.46 + <mtr> 54.47 + <mtd> 54.48 + <mi>FeFuncR</mi> 54.49 + <mrow> 54.50 + <mo>(</mo> 54.51 + <mi>R</mi> 54.52 + <mo>)</mo> 54.53 + </mrow> 54.54 + </mtd> 54.55 + </mtr> 54.56 + <mtr> 54.57 + <mtd> 54.58 + <mi>FeFuncG</mi> 54.59 + <mrow> 54.60 + <mo>(</mo> 54.61 + <mi>G</mi> 54.62 + <mo>)</mo> 54.63 + </mrow> 54.64 + </mtd> 54.65 + </mtr> 54.66 + <mtr> 54.67 + <mtd> 54.68 + <mi>FeFuncB</mi> 54.69 + <mrow> 54.70 + <mo>(</mo> 54.71 + <mi>B</mi> 54.72 + <mo>)</mo> 54.73 + </mrow> 54.74 + </mtd> 54.75 + </mtr> 54.76 + <mtr> 54.77 + <mtd> 54.78 + <mi>FeFuncA</mi> 54.79 + <mrow> 54.80 + <mo>(</mo> 54.81 + <mi>A</mi> 54.82 + <mo>)</mo> 54.83 + </mrow> 54.84 + </mtd> 54.85 + </mtr> 54.86 + </mtable> 54.87 + </mrow> 54.88 +</math> 54.89 \ No newline at end of file
55.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 55.2 +++ b/filters/master/mathml/feComponentTransfer01.mml Mon Apr 11 10:08:48 2011 +1000 55.3 @@ -0,0 +1,14 @@ 55.4 +<?xml version="1.0" encoding="iso-8859-1"?> 55.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 55.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 55.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 55.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 55.9 + <mrow> 55.10 + <msup> 55.11 + <mi>C</mi> 55.12 + <mo>'</mo> 55.13 + </msup> 55.14 + <mo>=</mo> 55.15 + <mi>C</mi> 55.16 + </mrow> 55.17 +</math> 55.18 \ No newline at end of file
56.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 56.2 +++ b/filters/master/mathml/feComponentTransfer02.mml Mon Apr 11 10:08:48 2011 +1000 56.3 @@ -0,0 +1,29 @@ 56.4 +<?xml version="1.0" encoding="iso-8859-1"?> 56.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 56.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 56.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 56.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 56.9 + <mrow> 56.10 + <mfrac> 56.11 + <mi>k</mi> 56.12 + <mi>N</mi> 56.13 + </mfrac> 56.14 + <mo>≤</mo> 56.15 + <mrow> 56.16 + <mi>C</mi> 56.17 + <mo><</mo> 56.18 + <mfrac> 56.19 + <mrow> 56.20 + <mo>(</mo> 56.21 + <mrow> 56.22 + <mi>k</mi> 56.23 + <mo>+</mo> 56.24 + <mn>1</mn> 56.25 + </mrow> 56.26 + <mo>)</mo> 56.27 + </mrow> 56.28 + <mi>N</mi> 56.29 + </mfrac> 56.30 + </mrow> 56.31 + </mrow> 56.32 +</math> 56.33 \ No newline at end of file
57.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 57.2 +++ b/filters/master/mathml/feComponentTransfer03.mml Mon Apr 11 10:08:48 2011 +1000 57.3 @@ -0,0 +1,56 @@ 57.4 +<?xml version="1.0" encoding="iso-8859-1"?> 57.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 57.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 57.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 57.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 57.9 + <mrow> 57.10 + <msup> 57.11 + <mi>C</mi> 57.12 + <mo>'</mo> 57.13 + </msup> 57.14 + <mo>=</mo> 57.15 + <mrow> 57.16 + <msub> 57.17 + <mi>v</mi> 57.18 + <mi>k</mi> 57.19 + </msub> 57.20 + <mo>+</mo> 57.21 + <mrow> 57.22 + <mrow> 57.23 + <mo>(</mo> 57.24 + <mrow> 57.25 + <mi>C</mi> 57.26 + <mo>−</mo> 57.27 + <mfrac> 57.28 + <mi>k</mi> 57.29 + <mi>N</mi> 57.30 + </mfrac> 57.31 + </mrow> 57.32 + <mo>)</mo> 57.33 + </mrow> 57.34 + <mo>×</mo> 57.35 + <mi>N</mi> 57.36 + <mo>×</mo> 57.37 + <mrow> 57.38 + <mo>(</mo> 57.39 + <mrow> 57.40 + <msub> 57.41 + <mi>v</mi> 57.42 + <mrow> 57.43 + <mi>k</mi> 57.44 + <mo>+</mo> 57.45 + <mn>1</mn> 57.46 + </mrow> 57.47 + </msub> 57.48 + <mo>−</mo> 57.49 + <msub> 57.50 + <mi>v</mi> 57.51 + <mi>k</mi> 57.52 + </msub> 57.53 + </mrow> 57.54 + <mo>)</mo> 57.55 + </mrow> 57.56 + </mrow> 57.57 + </mrow> 57.58 + </mrow> 57.59 +</math> 57.60 \ No newline at end of file
58.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 58.2 +++ b/filters/master/mathml/feComponentTransfer04.mml Mon Apr 11 10:08:48 2011 +1000 58.3 @@ -0,0 +1,17 @@ 58.4 +<?xml version="1.0" encoding="iso-8859-1"?> 58.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 58.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 58.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 58.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 58.9 + <mrow> 58.10 + <msup> 58.11 + <mi>C</mi> 58.12 + <mo>'</mo> 58.13 + </msup> 58.14 + <mo>=</mo> 58.15 + <msub> 58.16 + <mi>v</mi> 58.17 + <mi>k</mi> 58.18 + </msub> 58.19 + </mrow> 58.20 +</math> 58.21 \ No newline at end of file
59.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 59.2 +++ b/filters/master/mathml/feComponentTransfer05.mml Mon Apr 11 10:08:48 2011 +1000 59.3 @@ -0,0 +1,22 @@ 59.4 +<?xml version="1.0" encoding="iso-8859-1"?> 59.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 59.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 59.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 59.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 59.9 + <mrow> 59.10 + <msup> 59.11 + <mi>C</mi> 59.12 + <mo>'</mo> 59.13 + </msup> 59.14 + <mo>=</mo> 59.15 + <mrow> 59.16 + <mrow> 59.17 + <mi>slope</mi> 59.18 + <mo>×</mo> 59.19 + <mi>C</mi> 59.20 + </mrow> 59.21 + <mo>+</mo> 59.22 + <mi>intercept</mi> 59.23 + </mrow> 59.24 + </mrow> 59.25 +</math> 59.26 \ No newline at end of file
60.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 60.2 +++ b/filters/master/mathml/feComponentTransfer06.mml Mon Apr 11 10:08:48 2011 +1000 60.3 @@ -0,0 +1,31 @@ 60.4 +<?xml version="1.0" encoding="iso-8859-1"?> 60.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 60.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 60.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 60.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 60.9 + <mrow> 60.10 + <msup> 60.11 + <mi>C</mi> 60.12 + <mo>'</mo> 60.13 + </msup> 60.14 + <mo>=</mo> 60.15 + <mrow> 60.16 + <mrow> 60.17 + <mi>amplitude</mi> 60.18 + <mo>×</mo> 60.19 + <mi>pow</mi> 60.20 + <mfenced> 60.21 + <mrow> 60.22 + <mi>C</mi> 60.23 + </mrow> 60.24 + <mrow> 60.25 + <mi>exp</mi> 60.26 + <mi>onent</mi> 60.27 + </mrow> 60.28 + </mfenced> 60.29 + </mrow> 60.30 + <mo>+</mo> 60.31 + <mi>offset</mi> 60.32 + </mrow> 60.33 + </mrow> 60.34 +</math>
61.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 61.2 +++ b/filters/master/mathml/feComposite00.mml Mon Apr 11 10:08:48 2011 +1000 61.3 @@ -0,0 +1,55 @@ 61.4 +<?xml version="1.0" encoding="iso-8859-1"?> 61.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 61.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 61.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 61.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 61.9 + <mrow> 61.10 + <mi>result</mi> 61.11 + <mo>=</mo> 61.12 + <mrow> 61.13 + <mrow> 61.14 + <mi>k</mi> 61.15 + <mn>1</mn> 61.16 + <mo>×</mo> 61.17 + <mrow> 61.18 + <mi>i</mi> 61.19 + <mn>1</mn> 61.20 + </mrow> 61.21 + <mo>×</mo> 61.22 + <mrow> 61.23 + <mi>i</mi> 61.24 + <mn>2</mn> 61.25 + </mrow> 61.26 + </mrow> 61.27 + <mo>+</mo> 61.28 + <mrow> 61.29 + <mrow> 61.30 + <mi>k</mi> 61.31 + <mn>2</mn> 61.32 + </mrow> 61.33 + <mo>×</mo> 61.34 + <mrow> 61.35 + <mi>i</mi> 61.36 + <mn>1</mn> 61.37 + </mrow> 61.38 + </mrow> 61.39 + <mo>+</mo> 61.40 + <mrow> 61.41 + <mrow> 61.42 + <mi>k</mi> 61.43 + <mn>3</mn> 61.44 + </mrow> 61.45 + <mo>×</mo> 61.46 + <mrow> 61.47 + <mi>i</mi> 61.48 + <mn>2</mn> 61.49 + </mrow> 61.50 + </mrow> 61.51 + <mo>+</mo> 61.52 + <mrow> 61.53 + <mi>k</mi> 61.54 + <mn>4</mn> 61.55 + </mrow> 61.56 + </mrow> 61.57 + </mrow> 61.58 +</math> 61.59 \ No newline at end of file
62.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 62.2 +++ b/filters/master/mathml/feConvolveMatrix00.mml Mon Apr 11 10:08:48 2011 +1000 62.3 @@ -0,0 +1,80 @@ 62.4 +<?xml version="1.0" encoding="iso-8859-1"?> 62.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 62.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 62.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 62.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 62.9 + <mrow> 62.10 + <msub> 62.11 + <mi>result</mi> 62.12 + <mrow> 62.13 + <mi>X</mi> 62.14 + <mo>,</mo> 62.15 + <mi>Y</mi> 62.16 + </mrow> 62.17 + </msub> 62.18 + <mo>=</mo> 62.19 + <mrow> 62.20 + <mfrac> 62.21 + <mrow> 62.22 + <munderover> 62.23 + <mo>∑</mo> 62.24 + <mrow> 62.25 + <mi>I</mi> 62.26 + <mo>=</mo> 62.27 + <mn>0</mn> 62.28 + </mrow> 62.29 + <mrow> 62.30 + <mi>orderY</mi> 62.31 + <mo>−</mo> 62.32 + <mn>1</mn> 62.33 + </mrow> 62.34 + </munderover> 62.35 + <mrow> 62.36 + <munderover> 62.37 + <mo>∑</mo> 62.38 + <mrow> 62.39 + <mi>J</mi> 62.40 + <mo>=</mo> 62.41 + <mn>0</mn> 62.42 + </mrow> 62.43 + <mrow> 62.44 + <mi>orderX</mi> 62.45 + <mo>−</mo> 62.46 + <mn>1</mn> 62.47 + </mrow> 62.48 + </munderover> 62.49 + <mrow> 62.50 + <msub> 62.51 + <mi>source</mi> 62.52 + <mfenced open="t"> 62.53 + <mrow> 62.54 + <mi></mi> 62.55 + </mrow> 62.56 + </mfenced> 62.57 + </msub> 62.58 + <mo>×</mo> 62.59 + <msub> 62.60 + <mi>kernelMatrix</mi> 62.61 + <mfenced open="1"> 62.62 + <mrow> 62.63 + <mi>orderY</mi> 62.64 + <mo>−</mo> 62.65 + <mi>I</mi> 62.66 + <mo>−</mo> 62.67 + <mn>1</mn> 62.68 + </mrow> 62.69 + </mfenced> 62.70 + </msub> 62.71 + </mrow> 62.72 + </mrow> 62.73 + </mrow> 62.74 + <mrow> 62.75 + <mi>div</mi> 62.76 + <mi>isor</mi> 62.77 + </mrow> 62.78 + </mfrac> 62.79 + <mo>+</mo> 62.80 + <mi>bias</mi> 62.81 + </mrow> 62.82 + </mrow> 62.83 +</math> 62.84 \ No newline at end of file
63.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 63.2 +++ b/filters/master/mathml/feConvolveMatrix01.mml Mon Apr 11 10:08:48 2011 +1000 63.3 @@ -0,0 +1,95 @@ 63.4 +<?xml version="1.0" encoding="iso-8859-1"?> 63.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 63.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 63.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 63.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 63.9 + <mfenced> 63.10 + <mtable> 63.11 + <mtr> 63.12 + <mtd> 63.13 + <mn>0</mn> 63.14 + </mtd> 63.15 + <mtd> 63.16 + <mn>20</mn> 63.17 + </mtd> 63.18 + <mtd> 63.19 + <mn>40</mn> 63.20 + </mtd> 63.21 + <mtd> 63.22 + <mn>235</mn> 63.23 + </mtd> 63.24 + <mtd> 63.25 + <mn>235</mn> 63.26 + </mtd> 63.27 + </mtr> 63.28 + <mtr> 63.29 + <mtd> 63.30 + <mn>100</mn> 63.31 + </mtd> 63.32 + <mtd> 63.33 + <mn>120</mn> 63.34 + </mtd> 63.35 + <mtd> 63.36 + <mn>140</mn> 63.37 + </mtd> 63.38 + <mtd> 63.39 + <mn>235</mn> 63.40 + </mtd> 63.41 + <mtd> 63.42 + <mn>235</mn> 63.43 + </mtd> 63.44 + </mtr> 63.45 + <mtr> 63.46 + <mtd> 63.47 + <mn>200</mn> 63.48 + </mtd> 63.49 + <mtd> 63.50 + <mn>220</mn> 63.51 + </mtd> 63.52 + <mtd> 63.53 + <mn>240</mn> 63.54 + </mtd> 63.55 + <mtd> 63.56 + <mn>235</mn> 63.57 + </mtd> 63.58 + <mtd> 63.59 + <mn>235</mn> 63.60 + </mtd> 63.61 + </mtr> 63.62 + <mtr> 63.63 + <mtd> 63.64 + <mn>255</mn> 63.65 + </mtd> 63.66 + <mtd> 63.67 + <mn>255</mn> 63.68 + </mtd> 63.69 + <mtd> 63.70 + <mn>255</mn> 63.71 + </mtd> 63.72 + <mtd> 63.73 + <mn>255</mn> 63.74 + </mtd> 63.75 + <mtd> 63.76 + <mn>255</mn> 63.77 + </mtd> 63.78 + </mtr> 63.79 + <mtr> 63.80 + <mtd> 63.81 + <mn>255</mn> 63.82 + </mtd> 63.83 + <mtd> 63.84 + <mn>255</mn> 63.85 + </mtd> 63.86 + <mtd> 63.87 + <mn>255</mn> 63.88 + </mtd> 63.89 + <mtd> 63.90 + <mn>255</mn> 63.91 + </mtd> 63.92 + <mtd> 63.93 + <mn>255</mn> 63.94 + </mtd> 63.95 + </mtr> 63.96 + </mtable> 63.97 + </mfenced> 63.98 +</math> 63.99 \ No newline at end of file
64.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 64.2 +++ b/filters/master/mathml/feConvolveMatrix02.mml Mon Apr 11 10:08:48 2011 +1000 64.3 @@ -0,0 +1,43 @@ 64.4 +<?xml version="1.0" encoding="iso-8859-1"?> 64.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 64.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 64.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 64.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 64.9 + <mfenced> 64.10 + <mtable> 64.11 + <mtr> 64.12 + <mtd> 64.13 + <mn>1</mn> 64.14 + </mtd> 64.15 + <mtd> 64.16 + <mn>2</mn> 64.17 + </mtd> 64.18 + <mtd> 64.19 + <mn>3</mn> 64.20 + </mtd> 64.21 + </mtr> 64.22 + <mtr> 64.23 + <mtd> 64.24 + <mn>4</mn> 64.25 + </mtd> 64.26 + <mtd> 64.27 + <mn>5</mn> 64.28 + </mtd> 64.29 + <mtd> 64.30 + <mn>6</mn> 64.31 + </mtd> 64.32 + </mtr> 64.33 + <mtr> 64.34 + <mtd> 64.35 + <mn>7</mn> 64.36 + </mtd> 64.37 + <mtd> 64.38 + <mn>8</mn> 64.39 + </mtd> 64.40 + <mtd> 64.41 + <mn>9</mn> 64.42 + </mtd> 64.43 + </mtr> 64.44 + </mtable> 64.45 + </mfenced> 64.46 +</math> 64.47 \ No newline at end of file
65.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 65.2 +++ b/filters/master/mathml/feConvolveMatrix03.mml Mon Apr 11 10:08:48 2011 +1000 65.3 @@ -0,0 +1,93 @@ 65.4 +<?xml version="1.0" encoding="iso-8859-1"?> 65.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 65.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 65.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 65.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 65.9 + <mrow> 65.10 + <msub> 65.11 + <mi>resultChannel</mi> 65.12 + <mn>2,2</mn> 65.13 + </msub> 65.14 + <mo>=</mo> 65.15 + <mfrac> 65.16 + <mrow> 65.17 + <mo>(</mo> 65.18 + <mrow> 65.19 + <mrow> 65.20 + <mn>9</mn> 65.21 + <mo>×</mo> 65.22 + <mn>0</mn> 65.23 + </mrow> 65.24 + <mo>+</mo> 65.25 + <mrow> 65.26 + <mn>8</mn> 65.27 + <mo>×</mo> 65.28 + <mn>20</mn> 65.29 + </mrow> 65.30 + <mo>+</mo> 65.31 + <mrow> 65.32 + <mn>7</mn> 65.33 + <mo>×</mo> 65.34 + <mn>40</mn> 65.35 + </mrow> 65.36 + <mo>+</mo> 65.37 + <mrow> 65.38 + <mn>6</mn> 65.39 + <mo>×</mo> 65.40 + <mn>100</mn> 65.41 + </mrow> 65.42 + <mo>+</mo> 65.43 + <mrow> 65.44 + <mn>5</mn> 65.45 + <mo>×</mo> 65.46 + <mn>120</mn> 65.47 + </mrow> 65.48 + <mo>+</mo> 65.49 + <mrow> 65.50 + <mn>4</mn> 65.51 + <mo>×</mo> 65.52 + <mn>140</mn> 65.53 + </mrow> 65.54 + <mo>+</mo> 65.55 + <mrow> 65.56 + <mn>3</mn> 65.57 + <mo>×</mo> 65.58 + <mn>200</mn> 65.59 + </mrow> 65.60 + <mo>+</mo> 65.61 + <mrow> 65.62 + <mn>2</mn> 65.63 + <mo>×</mo> 65.64 + <mn>220</mn> 65.65 + </mrow> 65.66 + <mo>+</mo> 65.67 + <mrow> 65.68 + <mn>1</mn> 65.69 + <mo>×</mo> 65.70 + <mn>240</mn> 65.71 + </mrow> 65.72 + </mrow> 65.73 + <mo>)</mo> 65.74 + </mrow> 65.75 + <mrow> 65.76 + <mn>9</mn> 65.77 + <mo>+</mo> 65.78 + <mn>8</mn> 65.79 + <mo>+</mo> 65.80 + <mn>7</mn> 65.81 + <mo>+</mo> 65.82 + <mn>6</mn> 65.83 + <mo>+</mo> 65.84 + <mn>5</mn> 65.85 + <mo>+</mo> 65.86 + <mn>4</mn> 65.87 + <mo>+</mo> 65.88 + <mn>3</mn> 65.89 + <mo>+</mo> 65.90 + <mn>2</mn> 65.91 + <mo>+</mo> 65.92 + <mn>1</mn> 65.93 + </mrow> 65.94 + </mfrac> 65.95 + </mrow> 65.96 +</math> 65.97 \ No newline at end of file
66.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 66.2 +++ b/filters/master/mathml/feConvolveMatrix04.mml Mon Apr 11 10:08:48 2011 +1000 66.3 @@ -0,0 +1,119 @@ 66.4 +<?xml version="1.0" encoding="iso-8859-1"?> 66.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 66.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 66.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 66.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 66.9 + <mtable> 66.10 + <mtr> 66.11 + <mtd> 66.12 + <mn>11</mn> 66.13 + </mtd> 66.14 + <mtd> 66.15 + <mn>12</mn> 66.16 + </mtd> 66.17 + <mtd> 66.18 + <mo>.</mo> 66.19 + <mo>.</mo> 66.20 + <mo>.</mo> 66.21 + </mtd> 66.22 + <mtd> 66.23 + <mn>1</mn> 66.24 + <mi>m</mi> 66.25 + </mtd> 66.26 + <mtd> 66.27 + <mn>1</mn> 66.28 + <mi>M</mi> 66.29 + </mtd> 66.30 + </mtr> 66.31 + <mtr> 66.32 + <mtd> 66.33 + <mn>21</mn> 66.34 + </mtd> 66.35 + <mtd> 66.36 + <mn>22</mn> 66.37 + </mtd> 66.38 + <mtd> 66.39 + <mo>.</mo> 66.40 + <mo>.</mo> 66.41 + <mo>.</mo> 66.42 + </mtd> 66.43 + <mtd> 66.44 + <mn>2</mn> 66.45 + <mi>m</mi> 66.46 + </mtd> 66.47 + <mtd> 66.48 + <mn>2</mn> 66.49 + <mi>M</mi> 66.50 + </mtd> 66.51 + </mtr> 66.52 + <mtr> 66.53 + <mtd> 66.54 + <mo>.</mo> 66.55 + <mo>.</mo> 66.56 + <mo>.</mo> 66.57 + </mtd> 66.58 + <mtd> 66.59 + <mo>.</mo> 66.60 + <mo>.</mo> 66.61 + <mo>.</mo> 66.62 + </mtd> 66.63 + <mtd> 66.64 + <mo>.</mo> 66.65 + <mo>.</mo> 66.66 + <mo>.</mo> 66.67 + </mtd> 66.68 + <mtd> 66.69 + <mo>.</mo> 66.70 + <mo>.</mo> 66.71 + <mo>.</mo> 66.72 + </mtd> 66.73 + <mtd> 66.74 + <mo>.</mo> 66.75 + <mo>.</mo> 66.76 + <mo>.</mo> 66.77 + </mtd> 66.78 + </mtr> 66.79 + <mtr> 66.80 + <mtd> 66.81 + <mi>n</mi> 66.82 + <mn>1</mn> 66.83 + </mtd> 66.84 + <mtd> 66.85 + <mi>n</mi> 66.86 + <mn>2</mn> 66.87 + </mtd> 66.88 + <mtd> 66.89 + <mo>.</mo> 66.90 + <mo>.</mo> 66.91 + <mo>.</mo> 66.92 + </mtd> 66.93 + <mtd> 66.94 + <mi>nm</mi> 66.95 + </mtd> 66.96 + <mtd> 66.97 + <mi>nM</mi> 66.98 + </mtd> 66.99 + </mtr> 66.100 + <mtr> 66.101 + <mtd> 66.102 + <mi>N</mi> 66.103 + <mn>1</mn> 66.104 + </mtd> 66.105 + <mtd> 66.106 + <mi>N</mi> 66.107 + <mn>2</mn> 66.108 + </mtd> 66.109 + <mtd> 66.110 + <mo>.</mo> 66.111 + <mo>.</mo> 66.112 + <mo>.</mo> 66.113 + </mtd> 66.114 + <mtd> 66.115 + <mi>Nm</mi> 66.116 + </mtd> 66.117 + <mtd> 66.118 + <mi>NM</mi> 66.119 + </mtd> 66.120 + </mtr> 66.121 + </mtable> 66.122 +</math> 66.123 \ No newline at end of file
67.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 67.2 +++ b/filters/master/mathml/feConvolveMatrix05.mml Mon Apr 11 10:08:48 2011 +1000 67.3 @@ -0,0 +1,335 @@ 67.4 +<?xml version="1.0" encoding="iso-8859-1"?> 67.5 +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 67.6 + "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 67.7 +<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 67.8 +<math xmlns="http://www.w3.org/1998/Math/MathML"> 67.9 + <mtable> 67.10 + <mtr> 67.11 + <mtd> 67.12 + <mn>11</mn> 67.13 + </mtd> 67.14 + <mtd> 67.15 + <mn>11</mn> 67.16 + </mtd> 67.17 + <mtd> 67.18 + <mn>11</mn> 67.19 + </mtd> 67.20 + <mtd> 67.21 + <mn>12</mn> 67.22 + </mtd> 67.23 + <mtd> 67.24 + <mo>.</mo> 67.25 + <mo>.</mo> 67.26 + <mo>.</mo> 67.27 + </mtd> 67.28 + <mtd> 67.29 + <mn>1</mn> 67.30 + <mi>m</mi> 67.31 + </mtd> 67.32 + <mtd> 67.33 + <mn>1</mn> 67.34 + <mi>M</mi> 67.35 + </mtd> 67.36 + <mtd> 67.37 + <mn>1</mn> 67.38 + <mi>M</mi> 67.39 + </mtd> 67.40 + <mtd> 67.41 + <mn>1</mn> 67.42 + <mi>M</mi> 67.43 + </mtd> 67.44 + </mtr> 67.45 + <mtr> 67.46 + <mtd> 67.47 + <mn>11</mn> 67.48 + </mtd> 67.49 + <mtd> 67.50 + <mn>11</mn> 67.51 + </mtd> 67.52 + <mtd> 67.53 + <mn>11</mn> 67.54 + </mtd> 67.55 + <mtd> 67.56 + <mn>12</mn> 67.57 + </mtd> 67.58 + <mtd> 67.59 + <mo>.</mo> 67.60 + <mo>.</mo> 67.61 + <mo>.</mo> 67.62 + </mtd> 67.63 + <mtd> 67.64 + <mn>1</mn> 67.65 + <mi>m</mi> 67.66 + </mtd> 67.67 + <mtd> 67.68 + <mn>1</mn> 67.69 + <mi>M</mi> 67.70 + </mtd> 67.71 + <mtd> 67.72 + <mn>1</mn> 67.73 + <mi>M</mi> 67.74 + </mtd> 67.75 + <mtd> 67.76 + <mn>1</mn> 67.77 + <mi>M</mi> 67.78 + </mtd> 67.79 + </mtr> 67.80 + <mtr> 67.81 + <mtd> 67.82 + <mn>11</mn> 67.83 + </mtd> 67.84 + <mtd> 67.85 + <mn>11</mn> 67.86 + </mtd> 67.87 + <mtd> 67.88 + <mn>11</mn> 67.89 + </mtd> 67.90 + <mtd> 67.91 + <mn>12</mn> 67.92 + </mtd> 67.93 + <mtd> 67.94 + <mo>.</mo> 67.95 + <mo>.</mo> 67.96 + <mo>.</mo> 67.97 + </mtd> 67.98 + <mtd> 67.99 + <mn>1</mn> 67.100 + <mi>m</mi> 67.101 + </mtd> 67.102 + <mtd> 67.103 + <mn>1</mn> 67.104 + <mi>M</mi> 67.105 + </mtd> 67.106 + <mtd> 67.107 + <mn>1</mn> 67.108 + <mi>M</mi> 67.109 + </mtd> 67.110 + <mtd> 67.111 + <mn>1</mn> 67.112 + <mi>M</mi> 67.113 + </mtd> 67.114 + </mtr> 67.115 + <mtr> 67.116 + <mtd> 67.117 + <mn>21</mn> 67.118 + </mtd> 67.119 + <mtd> 67.120 + <mn>21</mn> 67.121 + </mtd> 67.122 + <mtd> 67.123 + <mn>21</mn> 67.124 + </mtd> 67.125 + <mtd> 67.126 + <mn>22</mn> 67.127 + </mtd> 67.128 + <mtd> 67.129 + <mo>.</mo> 67.130 + <mo>.</mo> 67.131 + <mo>.</mo> 67.132 + </mtd> 67.133 + <mtd> 67.134 + <mn>2</mn> 67.135 + <mi>m</mi> 67.136 + </mtd> 67.137 + <mtd> 67.138 + <mn>2</mn> 67.139 + <mi>M</mi> 67.140 + </mtd> 67.141 + <mtd> 67.142 + <mn>2</mn> 67.143 + <mi>M</mi> 67.144 + </mtd> 67.145 + <mtd> 67.146 + <mn>2</mn> 67.147 + <mi>M</mi> 67.148 + </mtd> 67.149 + </mtr> 67.150 + <mtr> 67.151 + <mtd> 67.152 + <mo>.</mo> 67.153 + <mo>.</mo> 67.154 + <mo>.</mo> 67.155 + </mtd> 67.156 + <mtd> 67.157 + <mo>.</mo> 67.158 + <mo>.</mo> 67.159 + <mo>.</mo> 67.160 + </mtd> 67.161 + <mtd> 67.162 + <mo>.</mo> 67.163 + <mo>.</mo> 67.164 + <mo>.</mo> 67.165 + </mtd> 67.166 + <mtd> 67.167 + <mo>.</mo> 67.168 + <mo>.</mo> 67.169 + <mo>.</mo> 67.170 + </mtd> 67.171 + <mtd> 67.172 + <mo>.</mo> 67.173 + <mo>.</mo> 67.174 + <mo>.</mo> 67.175 + </mtd> 67.176 + <mtd> 67.177 + <mo>.</mo> 67.178 + <mo>.</mo> 67.179 + <mo>.</mo> 67.180 + </mtd> 67.181 + <mtd> 67.182 + <mo>.</mo> 67.183 + <mo>.</mo> 67.184 + <mo>.</mo> 67.185 + </mtd> 67.186 + <mtd> 67.187 + <mo>.</mo> 67.188 + <mo>.</mo> 67.189 + <mo>.</mo> 67.190 + </mtd> 67.191 + <mtd> 67.192 + <mo>.</mo> 67.193 + <mo>.</mo> 67.194 + <mo>.</mo> 67.195 + </mtd> 67.196 + </mtr> 67.197 + <mtr> 67.198 + <mtd> 67.199 + <mi>n</mi> 67.200 + <mn>1</mn> 67.201 + </mtd> 67.202 + <mtd> 67.203 + <mi>n</mi> 67.204 + <mn>1</mn> 67.205 + </mtd> 67.206 + <mtd> 67.207 + <mi>n</mi> 67.208 + <mn>1</mn> 67.209 + </mtd> 67.210 + <mtd> 67.211 + <mi>n</mi> 67.212 + <mn>2</mn> 67.213 + </mtd> 67.214 + <mtd> 67.215 + <mo>.</mo> 67.216 + <mo>.</mo> 67.217 + <mo>.</mo> 67.218 + </mtd> 67.219 + <mtd> 67.220 + <mi>nm</mi> 67.221 + </mtd> 67.222 + <mtd> 67.223 + <mi>nM</mi> 67.224 + </mtd> 67.225 + <mtd> 67.226 + <mi>nM</mi> 67.227 + </mtd> 67.228 + <mtd> 67.229 + <mi>nM</mi> 67.230 + </mtd> 67.231 + </mtr> 67.232 + <mtr> 67.233 + <mtd> 67.234 + <mi>N</mi> 67.235 + <mn>1</mn> 67.236 + </mtd> 67.237 + <mtd> 67.238 + <mi>N</mi> 67.239 + <mn>1</mn> 67.240 + </mtd> 67.241 + <mtd> 67.242 + <mi>N</mi> 67.243 + <mn>1</mn> 67.244 + </mtd> 67.245 + <mtd> 67.246 + <mi>N</mi> 67.247 + <mn>2</mn> 67.248 + </mtd> 67.249 + <mtd> 67.250 + <mo>.</mo> 67.251 + <mo>.</mo> 67.252 + <mo>.</mo> 67.253 + </mtd> 67.254 + <mtd> 67.255 + <mi>Nm</mi> 67.256 + </mtd> 67.257 + <mtd> 67.258 + <mi>NM</mi> 67.259 + </mtd> 67.260 + <mtd> 67.261 + <mi>NM</mi> 67.262 + </mtd> 67.263 + <mtd> 67.264 + <mi>NM</mi> 67.265 + </mtd> 67.266 + </mtr> 67.267 + <mtr> 67.268 + <mtd> 67.269 + <mi>N</mi> 67.270 + <mn>1</mn> 67.271 + </mtd> 67.272 + <mtd> 67.273 + <mi>N</mi> 67.274 + <mn>1</mn> 67.275 + </mtd> 67.276 + <mtd> 67.277 + <mi>N</mi> 67.278 + <mn>1</mn> 67.279 + </mtd> 67.280 + <mtd> 67.281 + <mi>N</mi> 67.282 + <mn>2</mn> 67.283 + </mtd> 67.284 + <mtd> 67.285 + <mo>.</mo> 67.286 + <mo>.</mo> 67.287 + <mo>.</mo> 67.288 + </mtd> 67.289 + <mtd> 67.290 + <mi>Nm</mi> 67.291 + </mtd> 67.292 + <mtd> 67.293 + <mi>NM</mi> 67.294 + </mtd> 67.295 + <mtd> 67.296 + <mi>NM</mi> 67.297 + </mtd> 67.298 + <mtd> 67.299 + <mi>NM</mi> 67.300 + </mtd> 67.301 + </mtr> 67.302 + <mtr> 67.303 + <mtd> 67.304 + <mi>N</mi> 67.305 + <mn>1</mn> 67.306 + </mtd> 67.307 + <mtd> 67.308 + <mi>N</mi> 67.309 + <mn>1</mn> 67.310 + </mtd> 67.311 + <mtd> 67.312 + <mi>N</mi> 67.313 + <mn>1</mn> 67.314 + </mtd> 67.315 + <mtd> 67.316 + <mi>N</mi> 67.317 + <mn>2</mn> 67.318 + </mtd> 67.319 + <mtd> 67.320 + <mo>.</mo> 67.321 + <mo>.</mo> 67.322 + <mo>.</mo> 67.323 + </mtd> 67.324 + <mtd> 67.325 + <mi>Nm</mi> 67.326 + </mtd> 67.327 + <mtd> 67.328 + <mi>NM</mi> 67.329 + </mtd> 67.330 + <mtd> 67.331 + <mi>NM</mi> 67.332 + </mtd> 67.333 + <mtd> 67.334 + <mi>NM</mi> 67.335 + </mtd> 67.336 + </mtr> 67.337 + </mtable> 67.338 +</math> 67.339 \ No newline at end of file
68.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 68.2 +++ b/filters/master/publish-primer.xml Mon Apr 11 10:08:48 2011 +1000 68.3 @@ -0,0 +1,22 @@ 68.4 +<!-- Publication script configuration for SVG Filters 1.2 Primer. --> 68.5 + 68.6 +<publish-conf xmlns='http://mcc.id.au/ns/local'> 68.7 + <title>SVG Filters 1.2, Part 1: Primer</title> 68.8 + <short-title>SVG Filters 1.2 Primer</short-title> 68.9 + <maturity>ED</maturity> 68.10 + <output use-publish-directory='true'/> 68.11 + <!-- 68.12 + <publication-date>2009-12-01</publication-date> 68.13 + --> 68.14 + 68.15 + <versions> 68.16 + <cvs href='http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html'/> 68.17 + <this href='http://www.w3.org/TR/2009/WD-SVGFilterPrimer12-2009xxxx/'/> 68.18 + <previous href='http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/'/> 68.19 + <latest href='http://www.w3.org/TR/SVGFilterPrimer12/'/> 68.20 + </versions> 68.21 + 68.22 + <definitions href='definitions-primer.xml'/> 68.23 + 68.24 + <index name='SVGFilterPrimer'/> 68.25 +</publish-conf>
69.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 69.2 +++ b/filters/master/publish-reqs.xml Mon Apr 11 10:08:48 2011 +1000 69.3 @@ -0,0 +1,22 @@ 69.4 +<!-- Publication script configuration for SVG Filter Requirements. --> 69.5 + 69.6 +<publish-conf xmlns='http://mcc.id.au/ns/local'> 69.7 + <title>SVG Filter Requirements</title> 69.8 + <short-title>SVG Filter Requirements</short-title> 69.9 + <maturity>ED</maturity> 69.10 + <output use-publish-directory='true'/> 69.11 + <!-- 69.12 + <publication-date>2009-12-01</publication-date> 69.13 + --> 69.14 + 69.15 + <versions> 69.16 + <cvs href='http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html'/> 69.17 + <this href='http://www.w3.org/TR/2009/WD-SVGFilterReqs12-2009xxxx/'/> 69.18 + <previous href='http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/'/> 69.19 + <latest href='http://www.w3.org/TR/SVGFilterReqs12/'/> 69.20 + </versions> 69.21 + 69.22 + <definitions href='definitions-primer.xml'/> 69.23 + 69.24 + <index name='SVGFilterReqs'/> 69.25 +</publish-conf>
70.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 70.2 +++ b/filters/master/publish.xml Mon Apr 11 10:08:48 2011 +1000 70.3 @@ -0,0 +1,23 @@ 70.4 +<!-- Publication script configuration for SVG Filters 1.2. --> 70.5 + 70.6 +<publish-conf xmlns='http://mcc.id.au/ns/local'> 70.7 + <title>Filter Effects 1.0, Part 2: Language</title> 70.8 + <short-title>Filter Effects 1.0</short-title> 70.9 + <maturity>ED</maturity> 70.10 + <output use-publish-directory='true'/> 70.11 + <!-- 70.12 + <publication-date>2009-12-01</publication-date> 70.13 + --> 70.14 + 70.15 + <versions> 70.16 + <cvs href='http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html'/> 70.17 + <this href='http://www.w3.org/TR/2011/WD-FilterEffect10-2011xxxx/'/> 70.18 + <previous href='http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/'/> 70.19 + <latest href='http://www.w3.org/TR/FilterEffects10/'/> 70.20 + </versions> 70.21 + 70.22 + <definitions href='definitions.xml'/> 70.23 + <interfaces idl='svgfilters.idlx'/> 70.24 + 70.25 + <index name='SVGFilter'/> 70.26 +</publish-conf>
71.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 71.2 +++ b/filters/master/rng/feBlend Mon Apr 11 10:08:48 2011 +1000 71.3 @@ -0,0 +1,33 @@ 71.4 + <define name='svg.feBlend.content'> 71.5 + <zeroOrMore> 71.6 + <choice> 71.7 + <ref name='animate'/> 71.8 + <ref name='set'/> 71.9 + </choice> 71.10 + </zeroOrMore> 71.11 + </define> 71.12 + 71.13 + <define name='feBlend'> 71.14 + <element name='feBlend'> 71.15 + <ref name='feBlend.attr'/> 71.16 + <ref name='svg.feBlend.content'/> 71.17 + </element> 71.18 + </define> 71.19 + 71.20 + <define name='feBlend.attr' combine='interleave'> 71.21 + <ref name='svg.Core.attr'/> 71.22 + <ref name='svg.FilterColor.attr'/> 71.23 + <ref name='svg.FilterPrimitiveWithIn.attr'/> 71.24 + <attribute name='in2'/> 71.25 + <optional> 71.26 + <attribute name='mode' a:defaultValue='normal'> 71.27 + <choice> 71.28 + <value>normal</value> 71.29 + <value>multiply</value> 71.30 + <value>screen</value> 71.31 + <value>darken</value> 71.32 + <value>lighten</value> 71.33 + </choice> 71.34 + </attribute> 71.35 + </optional> 71.36 + </define>
72.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 72.2 +++ b/filters/master/rng/feColorMatrix Mon Apr 11 10:08:48 2011 +1000 72.3 @@ -0,0 +1,34 @@ 72.4 + <define name='svg.feColorMatrix.content'> 72.5 + <zeroOrMore> 72.6 + <choice> 72.7 + <ref name='animate'/> 72.8 + <ref name='set'/> 72.9 + </choice> 72.10 + </zeroOrMore> 72.11 + </define> 72.12 + 72.13 + <define name='feColorMatrix'> 72.14 + <element name='feColorMatrix'> 72.15 + <ref name='feColorMatrix.attr'/> 72.16 + <ref name='svg.feColorMatrix.content'/> 72.17 + </element> 72.18 + </define> 72.19 + 72.20 + <define name='feColorMatrix.attr' combine='interleave'> 72.21 + <ref name='svg.Core.attr'/> 72.22 + <ref name='svg.FilterColor.attr'/> 72.23 + <ref name='svg.FilterPrimitiveWithIn.attr'/> 72.24 + <optional> 72.25 + <attribute name='type' a:defaultValue='matrix'> 72.26 + <choice> 72.27 + <value>matrix</value> 72.28 + <value>saturate</value> 72.29 + <value>hueRotate</value> 72.30 + <value>luminanceToAlpha</value> 72.31 + </choice> 72.32 + </attribute> 72.33 + </optional> 72.34 + <optional> 72.35 + <attribute name='values'/> 72.36 + </optional> 72.37 + </define>
73.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 73.2 +++ b/filters/master/rng/feComponentTransfer Mon Apr 11 10:08:48 2011 +1000 73.3 @@ -0,0 +1,98 @@ 73.4 + <define name='svg.feComponentTransfer.content'> 73.5 + <optional><ref name='feFuncR'/></optional> 73.6 + <optional><ref name='feFuncG'/></optional> 73.7 + <optional><ref name='feFuncB'/></optional> 73.8 + <optional><ref name='feFuncA'/></optional> 73.9 + </define> 73.10 + 73.11 + <define name='feComponentTransfer'> 73.12 + <element name='feComponentTransfer'> 73.13 + <ref name='feComponentTransfer.attr'/> 73.14 + <ref name='svg.feComponentTransfer.content'/> 73.15 + </element> 73.16 + </define> 73.17 + 73.18 + <define name='feComponentTransfer.attr' combine='interleave'> 73.19 + <ref name='svg.Core.attr'/> 73.20 + <ref name='svg.FilterColor.attr'/> 73.21 + <ref name='svg.FilterPrimitiveWithIn.attr'/> 73.22 + </define> 73.23 + 73.24 + 73.25 + <define name='SVG.feFunc.content'> 73.26 + <zeroOrMore> 73.27 + <choice> 73.28 + <ref name='animate'/> 73.29 + <ref name='set'/> 73.30 + </choice> 73.31 + </zeroOrMore> 73.32 + </define> 73.33 + 73.34 + <define name='feFuncR'> 73.35 + <element name='feFuncR'> 73.36 + <ref name='feFunc.attr'/> 73.37 + <ref name='svg.feFunc.content'/> 73.38 + </element> 73.39 + </define> 73.40 + 73.41 + <define name='feFuncG'> 73.42 + <element name='feFuncG'> 73.43 + <ref name='feFunc.attr'/> 73.44 + <ref name='svg.feFunc.content'/> 73.45 + </element> 73.46 + </define> 73.47 + 73.48 + <define name='feFuncB'> 73.49 + <element name='feFuncB'> 73.50 + <ref name='feFunc.attr'/> 73.51 + <ref name='svg.feFunc.content'/> 73.52 + </element> 73.53 + </define> 73.54 + 73.55 + <define name='feFuncA'> 73.56 + <element name='feFuncA'> 73.57 + <ref name='feFunc.attr'/> 73.58 + <ref name='svg.feFunc.content'/> 73.59 + </element> 73.60 + </define> 73.61 + 73.62 + <define name='feFunc.attr' combine='interleave'> 73.63 + <ref name='svg.Core.attr'/> 73.64 + <attribute name='type'> 73.65 + <choice> 73.66 + <value>identity</value> 73.67 + <value>table</value> 73.68 + <value>discrete</value> 73.69 + <value>linear</value> 73.70 + <value>gamma</value> 73.71 + </choice> 73.72 + </attribute> 73.73 + <optional> 73.74 + <attribute name='tableValues'/> 73.75 + </optional> 73.76 + <optional> 73.77 + <attribute name='slope'> 73.78 + <ref name='Number.datatype'/> 73.79 + </attribute> 73.80 + </optional> 73.81 + <optional> 73.82 + <attribute name='intercept'> 73.83 + <ref name='Number.datatype'/> 73.84 + </attribute> 73.85 + </optional> 73.86 + <optional> 73.87 + <attribute name='amplitude'> 73.88 + <ref name='Number.datatype'/> 73.89 + </attribute> 73.90 + </optional> 73.91 + <optional> 73.92 + <attribute name='exponent'> 73.93 + <ref name='Number.datatype'/> 73.94 + </attribute> 73.95 + </optional> 73.96 + <optional> 73.97 + <attribute name='offset'> 73.98 + <ref name='Number.datatype'/> 73.99 + </attribute> 73.100 + </optional> 73.101 + </define> 73.102 \ No newline at end of file
74.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 74.2 +++ b/filters/master/rng/feComposite Mon Apr 11 10:08:48 2011 +1000 74.3 @@ -0,0 +1,54 @@ 74.4 + <define name='svg.feComposite.content'> 74.5 + <zeroOrMore> 74.6 + <choice> 74.7 + <ref name='animate'/> 74.8 + <ref name='set'/> 74.9 + </choice> 74.10 + </zeroOrMore> 74.11 + </define> 74.12 + 74.13 + <define name='feComposite'> 74.14 + <element name='feComposite'> 74.15 + <ref name='feComposite.attr'/> 74.16 + <ref name='svg.feComposite.content'/> 74.17 + </element> 74.18 + </define> 74.19 + 74.20 + <define name='feComposite.attr' combine='interleave'> 74.21 + <ref name='svg.Core.attr'/> 74.22 + <ref name='svg.FilterColor.attr'/> 74.23 + <ref name='svg.FilterPrimitiveWithIn.attr'/> 74.24 + <attribute name='in2'/> 74.25 + <optional> 74.26 + <attribute name='operator' a:defaultValue='over'> 74.27 + <choice> 74.28 + <value>over</value> 74.29 + <value>in</value> 74.30 + <value>out</value> 74.31 + <value>atop</value> 74.32 + <value>xor</value> 74.33 + <value>arithmetic</value> 74.34 + </choice> 74.35 + </attribute> 74.36 + </optional> 74.37 + <optional> 74.38 + <attribute name='k1'> 74.39 + <ref name='Number.datatype'/> 74.40 + </attribute> 74.41 + </optional> 74.42 + <optional> 74.43 + <attribute name='k2'> 74.44 + <ref name='Number.datatype'/> 74.45 + </attribute> 74.46 + </optional> 74.47 + <optional> 74.48 + <attribute name='k3'> 74.49 + <ref name='Number.datatype'/> 74.50 + </attribute> 74.51 + </optional> 74.52 + <optional> 74.53 + <attribute name='k4'> 74.54 + <ref name='Number.datatype'/> 74.55 + </attribute> 74.56 + </optional> 74.57 + </define>
75.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 75.2 +++ b/filters/master/rng/feConvolveMatrix Mon Apr 11 10:08:48 2011 +1000 75.3 @@ -0,0 +1,64 @@ 75.4 + <define name='svg.feConvolveMatrix.content'> 75.5 + <zeroOrMore> 75.6 + <choice> 75.7 + <ref name='animate'/> 75.8 + <ref name='set'/> 75.9 + </choice> 75.10 + </zeroOrMore> 75.11 + </define> 75.12 + 75.13 + <define name='feConvolveMatrix'> 75.14 + <element name='feConvolveMatrix'> 75.15 + <ref name='feConvolveMatrix.attr'/> 75.16 + <ref name='svg.feConvolveMatrix.content'/> 75.17 + </element> 75.18 + </define> 75.19 + 75.20 + <define name='feConvolveMatrix.attr' combine='interleave'> 75.21 + <ref name='svg.Core.attr'/> 75.22 + <ref name='svg.FilterColor.attr'/> 75.23 + <ref name='svg.FilterPrimitiveWithIn.attr'/> 75.24 + <attribute name='order'> 75.25 + <ref name='NumberOptionalNumber.datatype'/> 75.26 + </attribute> 75.27 + <attribute name='kernelMatrix'/> 75.28 + <optional> 75.29 + <attribute name='divisor'> 75.30 + <ref name='Number.datatype'/> 75.31 + </attribute> 75.32 + </optional> 75.33 + <optional> 75.34 + <attribute name='bias'> 75.35 + <ref name='Number.datatype'/> 75.36 + </attribute> 75.37 + </optional> 75.38 + <optional> 75.39 + <attribute name='targetX'> 75.40 + <ref name='Integer.datatype'/> 75.41 + </attribute> 75.42 + </optional> 75.43 + <optional> 75.44 + <attribute name='targetY'> 75.45 + <ref name='Integer.datatype'/> 75.46 + </attribute> 75.47 + </optional> 75.48 + <optional> 75.49 + <attribute name='edgeMode' a:defaultValue='duplicate'> 75.50 + <choice> 75.51 + <value>duplicate</value> 75.52 + <value>wrap</value> 75.53 + <value>none</value> 75.54 + </choice> 75.55 + </attribute> 75.56 + </optional> 75.57 + <optional> 75.58 + <attribute name='kernelUnitLength'> 75.59 + <ref name='NumberOptionalNumber.datatype'/> 75.60 + </attribute> 75.61 + </optional> 75.62 + <optional> 75.63 + <attribute name='preserveAlpha'> 75.64 + <ref name='Boolean.datatype'/> 75.65 + </attribute> 75.66 + </optional> 75.67 + </define>
76.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 76.2 +++ b/filters/master/rng/feDiffuseLighting Mon Apr 11 10:08:48 2011 +1000 76.3 @@ -0,0 +1,49 @@ 76.4 + <define name='svg.feDiffuseLighting.content'> 76.5 + <choice> 76.6 + <ref name='feDistantLight'/> 76.7 + <ref name='fePointLight'/> 76.8 + <ref name='feSpotLight'/> 76.9 + </choice> 76.10 + <zeroOrMore> 76.11 + <choice> 76.12 + <ref name='animate'/> 76.13 + <ref name='set'/> 76.14 + <ref name='animateColor'/> 76.15 + </choice> 76.16 + </zeroOrMore> 76.17 + </define> 76.18 + 76.19 + <define name='feDiffuseLighting'> 76.20 + <element name='feDiffuseLighting'> 76.21 + <ref name='attlist.feDiffuseLighting'/> 76.22 + <ref name='svg.feDiffuseLighting.content'/> 76.23 + </element> 76.24 + </define> 76.25 + 76.26 + <define name='attlist.feDiffuseLighting' combine='interleave'> 76.27 + <ref name='svg.Core.attrib'/> 76.28 + <ref name='svg.Style.attrib'/> 76.29 + <ref name='svg.Color.attrib'/> 76.30 + <ref name='svg.FilterColor.attrib'/> 76.31 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 76.32 + <optional> 76.33 + <attribute name='lighting-color'> 76.34 + <ref name='SVGColor.datatype'/> 76.35 + </attribute> 76.36 + </optional> 76.37 + <optional> 76.38 + <attribute name='surfaceScale'> 76.39 + <ref name='Number.datatype'/> 76.40 + </attribute> 76.41 + </optional> 76.42 + <optional> 76.43 + <attribute name='diffuseConstant'> 76.44 + <ref name='Number.datatype'/> 76.45 + </attribute> 76.46 + </optional> 76.47 + <optional> 76.48 + <attribute name='kernelUnitLength'> 76.49 + <ref name='NumberOptionalNumber.datatype'/> 76.50 + </attribute> 76.51 + </optional> 76.52 + </define>
77.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 77.2 +++ b/filters/master/rng/feDisplacementMap Mon Apr 11 10:08:48 2011 +1000 77.3 @@ -0,0 +1,47 @@ 77.4 + <define name='svg.feDisplacementMap.content'> 77.5 + <zeroOrMore> 77.6 + <choice> 77.7 + <ref name='animate'/> 77.8 + <ref name='set'/> 77.9 + </choice> 77.10 + </zeroOrMore> 77.11 + </define> 77.12 + 77.13 + <define name='feDisplacementMap'> 77.14 + <element name='feDisplacementMap'> 77.15 + <ref name='attlist.feDisplacementMap'/> 77.16 + <ref name='svg.feDisplacementMap.content'/> 77.17 + </element> 77.18 + </define> 77.19 + 77.20 + <define name='attlist.feDisplacementMap' combine='interleave'> 77.21 + <ref name='svg.Core.attrib'/> 77.22 + <ref name='svg.FilterColor.attrib'/> 77.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 77.24 + <attribute name='in2'/> 77.25 + <optional> 77.26 + <attribute name='scale'> 77.27 + <ref name='Number.datatype'/> 77.28 + </attribute> 77.29 + </optional> 77.30 + <optional> 77.31 + <attribute name='xChannelSelector' a:defaultValue='A'> 77.32 + <choice> 77.33 + <value>R</value> 77.34 + <value>G</value> 77.35 + <value>B</value> 77.36 + <value>A</value> 77.37 + </choice> 77.38 + </attribute> 77.39 + </optional> 77.40 + <optional> 77.41 + <attribute name='yChannelSelector' a:defaultValue='A'> 77.42 + <choice> 77.43 + <value>R</value> 77.44 + <value>G</value> 77.45 + <value>B</value> 77.46 + <value>A</value> 77.47 + </choice> 77.48 + </attribute> 77.49 + </optional> 77.50 + </define>
78.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 78.2 +++ b/filters/master/rng/feDistantLight Mon Apr 11 10:08:48 2011 +1000 78.3 @@ -0,0 +1,29 @@ 78.4 + <define name='svg.feDistantLight.content'> 78.5 + <zeroOrMore> 78.6 + <choice> 78.7 + <ref name='animate'/> 78.8 + <ref name='set'/> 78.9 + </choice> 78.10 + </zeroOrMore> 78.11 + </define> 78.12 + 78.13 + <define name='feDistantLight'> 78.14 + <element name='feDistantLight'> 78.15 + <ref name='feDistantLight.attr'/> 78.16 + <ref name='svg.feDistantLight.content'/> 78.17 + </element> 78.18 + </define> 78.19 + 78.20 + <define name='feDistantLight.attr' combine='interleave'> 78.21 + <ref name='svg.Core.attr'/> 78.22 + <optional> 78.23 + <attribute name='azimuth'> 78.24 + <ref name='Number.datatype'/> 78.25 + </attribute> 78.26 + </optional> 78.27 + <optional> 78.28 + <attribute name='elevation'> 78.29 + <ref name='Number.datatype'/> 78.30 + </attribute> 78.31 + </optional> 78.32 + </define>
79.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 79.2 +++ b/filters/master/rng/feDropShadow Mon Apr 11 10:08:48 2011 +1000 79.3 @@ -0,0 +1,37 @@ 79.4 + <define name='svg.feDropShadow.content'> 79.5 + <zeroOrMore> 79.6 + <choice> 79.7 + <ref name='animate'/> 79.8 + <ref name='set'/> 79.9 + </choice> 79.10 + </zeroOrMore> 79.11 + </define> 79.12 + 79.13 + <define name='feDropShadow'> 79.14 + <element name='feDropShadow'> 79.15 + <ref name='attlist.feDropShadow'/> 79.16 + <ref name='svg.feDropShadow.content'/> 79.17 + </element> 79.18 + </define> 79.19 + 79.20 + <define name='attlist.feDropShadow' combine='interleave'> 79.21 + <ref name='svg.Core.attrib'/> 79.22 + <ref name='svg.FilterColor.attrib'/> 79.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 79.24 + 79.25 + <optional> 79.26 + <attribute name='dx'> 79.27 + <ref name='Coordinate.datatype'/> 79.28 + </attribute> 79.29 + </optional> 79.30 + <optional> 79.31 + <attribute name='dy'> 79.32 + <ref name='Coordinate.datatype'/> 79.33 + </attribute> 79.34 + </optional> 79.35 + <optional> 79.36 + <attribute name='stdDeviation'> 79.37 + <ref name='NumberOptionalNumber.datatype'/> 79.38 + </attribute> 79.39 + </optional> 79.40 + </define>
80.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 80.2 +++ b/filters/master/rng/feFlood Mon Apr 11 10:08:48 2011 +1000 80.3 @@ -0,0 +1,34 @@ 80.4 + <define name='svg.feFlood.content'> 80.5 + <zeroOrMore> 80.6 + <choice> 80.7 + <ref name='animate'/> 80.8 + <ref name='set'/> 80.9 + <ref name='animateColor'/> 80.10 + </choice> 80.11 + </zeroOrMore> 80.12 + </define> 80.13 + 80.14 + <define name='feFlood'> 80.15 + <element name='feFlood'> 80.16 + <ref name='attlist.feFlood'/> 80.17 + <ref name='svg.feFlood.content'/> 80.18 + </element> 80.19 + </define> 80.20 + 80.21 + <define name='attlist.feFlood' combine='interleave'> 80.22 + <ref name='svg.Core.attrib'/> 80.23 + <ref name='svg.Style.attrib'/> 80.24 + <ref name='svg.Color.attrib'/> 80.25 + <ref name='svg.FilterColor.attrib'/> 80.26 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 80.27 + <optional> 80.28 + <attribute name='flood-color'> 80.29 + <ref name='SVGColor.datatype'/> 80.30 + </attribute> 80.31 + </optional> 80.32 + <optional> 80.33 + <attribute name='flood-opacity'> 80.34 + <ref name='OpacityValue.datatype'/> 80.35 + </attribute> 80.36 + </optional> 80.37 + </define>
81.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 81.2 +++ b/filters/master/rng/feGaussianBlur Mon Apr 11 10:08:48 2011 +1000 81.3 @@ -0,0 +1,27 @@ 81.4 + <define name='svg.feGaussianBlur.content'> 81.5 + <zeroOrMore> 81.6 + <choice> 81.7 + <ref name='animate'/> 81.8 + <ref name='set'/> 81.9 + </choice> 81.10 + </zeroOrMore> 81.11 + </define> 81.12 + 81.13 + <define name='feGaussianBlur'> 81.14 + <element name='feGaussianBlur'> 81.15 + <ref name='attlist.feGaussianBlur'/> 81.16 + <ref name='svg.feGaussianBlur.content'/> 81.17 + </element> 81.18 + </define> 81.19 + 81.20 + <define name='attlist.feGaussianBlur' combine='interleave'> 81.21 + <ref name='svg.Core.attrib'/> 81.22 + <ref name='svg.FilterColor.attrib'/> 81.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 81.24 + <optional> 81.25 + <attribute name='stdDeviation'> 81.26 + <ref name='NumberOptionalNumber.datatype'/> 81.27 + </attribute> 81.28 + </optional> 81.29 + </define> 81.30 + 81.31 \ No newline at end of file
82.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 82.2 +++ b/filters/master/rng/feImage Mon Apr 11 10:08:48 2011 +1000 82.3 @@ -0,0 +1,32 @@ 82.4 + <define name='SVG.feImage.content'> 82.5 + <zeroOrMore> 82.6 + <choice> 82.7 + <ref name='animate'/> 82.8 + <ref name='set'/> 82.9 + <ref name='animateTransform'/> 82.10 + </choice> 82.11 + </zeroOrMore> 82.12 + </define> 82.13 + 82.14 + <define name='feImage'> 82.15 + <element name='feImage'> 82.16 + <ref name='attlist.feImage'/> 82.17 + <ref name='svg.feImage.content'/> 82.18 + </element> 82.19 + </define> 82.20 + 82.21 + <define name='attlist.feImage' combine='interleave'> 82.22 + <ref name='svg.Core.attrib'/> 82.23 + <ref name='svg.Style.attrib'/> 82.24 + <ref name='svg.Presentation.attrib'/> 82.25 + <ref name='svg.FilterPrimitive.attrib'/> 82.26 + <ref name='svg.XLinkEmbed.attrib'/> 82.27 + <ref name='svg.External.attrib'/> 82.28 + <ref name='svg.Transition.attrib'/> 82.29 + <ref name='svg.ShadowInherit.attrib'/> 82.30 + <optional> 82.31 + <attribute name='preserveAspectRatio' a:defaultValue='xMidYMid meet'> 82.32 + <ref name='PreserveAspectRatioSpec.datatype'/> 82.33 + </attribute> 82.34 + </optional> 82.35 + </define>
83.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 83.2 +++ b/filters/master/rng/feMerge Mon Apr 11 10:08:48 2011 +1000 83.3 @@ -0,0 +1,41 @@ 83.4 + <define name='svg.feMerge.content'> 83.5 + <zeroOrMore> 83.6 + <ref name='feMergeNode'/> 83.7 + </zeroOrMore> 83.8 + </define> 83.9 + 83.10 + <define name='feMerge'> 83.11 + <element name='feMerge'> 83.12 + <ref name='attlist.feMerge'/> 83.13 + <ref name='svg.feMerge.content'/> 83.14 + </element> 83.15 + </define> 83.16 + 83.17 + <define name='attlist.feMerge' combine='interleave'> 83.18 + <ref name='svg.Core.attrib'/> 83.19 + <ref name='svg.FilterColor.attrib'/> 83.20 + <ref name='svg.FilterPrimitive.attrib'/> 83.21 + </define> 83.22 + 83.23 + <define name='svg.feMergeNode.content'> 83.24 + <zeroOrMore> 83.25 + <choice> 83.26 + <ref name='animate'/> 83.27 + <ref name='set'/> 83.28 + </choice> 83.29 + </zeroOrMore> 83.30 + </define> 83.31 + 83.32 + <define name='feMergeNode'> 83.33 + <element name='feMergeNode'> 83.34 + <ref name='attlist.feMergeNode'/> 83.35 + <ref name='svg.feMergeNode.content'/> 83.36 + </element> 83.37 + </define> 83.38 + 83.39 + <define name='attlist.feMergeNode' combine='interleave'> 83.40 + <ref name='svg.Core.attrib'/> 83.41 + <optional> 83.42 + <attribute name='in'/> 83.43 + </optional> 83.44 + </define>
84.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 84.2 +++ b/filters/master/rng/feMorphology Mon Apr 11 10:08:48 2011 +1000 84.3 @@ -0,0 +1,34 @@ 84.4 + <define name='svg.feMorphology.content'> 84.5 + <zeroOrMore> 84.6 + <choice> 84.7 + <ref name='animate'/> 84.8 + <ref name='set'/> 84.9 + </choice> 84.10 + </zeroOrMore> 84.11 + </define> 84.12 + 84.13 + <define name='feMorphology'> 84.14 + <element name='feMorphology'> 84.15 + <ref name='attlist.feMorphology'/> 84.16 + <ref name='svg.feMorphology.content'/> 84.17 + </element> 84.18 + </define> 84.19 + 84.20 + <define name='attlist.feMorphology' combine='interleave'> 84.21 + <ref name='svg.Core.attrib'/> 84.22 + <ref name='svg.FilterColor.attrib'/> 84.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 84.24 + <optional> 84.25 + <attribute name='operator' a:defaultValue='erode'> 84.26 + <choice> 84.27 + <value>erode</value> 84.28 + <value>dilate</value> 84.29 + </choice> 84.30 + </attribute> 84.31 + </optional> 84.32 + <optional> 84.33 + <attribute name='radius'> 84.34 + <ref name='NumberOptionalNumber.datatype'/> 84.35 + </attribute> 84.36 + </optional> 84.37 + </define>
85.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 85.2 +++ b/filters/master/rng/feOffset Mon Apr 11 10:08:48 2011 +1000 85.3 @@ -0,0 +1,21 @@ 85.4 + <define name='svg.feOffset.content'> 85.5 + <zeroOrMore> 85.6 + <choice> 85.7 + <ref name='animate'/> 85.8 + <ref name='set'/> 85.9 + </choice> 85.10 + </zeroOrMore> 85.11 + </define> 85.12 + 85.13 + <define name='feOffset'> 85.14 + <element name='feOffset'> 85.15 + <ref name='attlist.feOffset'/> 85.16 + <ref name='svg.feOffset.content'/> 85.17 + </element> 85.18 + </define> 85.19 + 85.20 + <define name='attlist.feOffset' combine='interleave'> 85.21 + <ref name='svg.Core.attrib'/> 85.22 + <ref name='svg.FilterColor.attrib'/> 85.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 85.24 + </define>
86.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 86.2 +++ b/filters/master/rng/fePointLight Mon Apr 11 10:08:48 2011 +1000 86.3 @@ -0,0 +1,34 @@ 86.4 + <define name='svg.fePointLight.content'> 86.5 + <zeroOrMore> 86.6 + <choice> 86.7 + <ref name='animate'/> 86.8 + <ref name='set'/> 86.9 + </choice> 86.10 + </zeroOrMore> 86.11 + </define> 86.12 + 86.13 + <define name='fePointLight'> 86.14 + <element name='fePointLight'> 86.15 + <ref name='fePointLight.attr'/> 86.16 + <ref name='svg.fePointLight.content'/> 86.17 + </element> 86.18 + </define> 86.19 + 86.20 + <define name='fePointLight.attr' combine='interleave'> 86.21 + <ref name='svg.Core.attr'/> 86.22 + <optional> 86.23 + <attribute name='x'> 86.24 + <ref name='Number.datatype'/> 86.25 + </attribute> 86.26 + </optional> 86.27 + <optional> 86.28 + <attribute name='y'> 86.29 + <ref name='Number.datatype'/> 86.30 + </attribute> 86.31 + </optional> 86.32 + <optional> 86.33 + <attribute name='z'> 86.34 + <ref name='Number.datatype'/> 86.35 + </attribute> 86.36 + </optional> 86.37 + </define>
87.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 87.2 +++ b/filters/master/rng/feSpecularLighting Mon Apr 11 10:08:48 2011 +1000 87.3 @@ -0,0 +1,54 @@ 87.4 + <define name='svg.feSpecularLighting.content'> 87.5 + <choice> 87.6 + <ref name='feDistantLight'/> 87.7 + <ref name='fePointLight'/> 87.8 + <ref name='feSpotLight'/> 87.9 + </choice> 87.10 + <zeroOrMore> 87.11 + <choice> 87.12 + <ref name='animate'/> 87.13 + <ref name='set'/> 87.14 + <ref name='animateColor'/> 87.15 + </choice> 87.16 + </zeroOrMore> 87.17 + </define> 87.18 + 87.19 + <define name='feSpecularLighting'> 87.20 + <element name='feSpecularLighting'> 87.21 + <ref name='attlist.feSpecularLighting'/> 87.22 + <ref name='svg.feSpecularLighting.content'/> 87.23 + </element> 87.24 + </define> 87.25 + 87.26 + <define name='attlist.feSpecularLighting' combine='interleave'> 87.27 + <ref name='svg.Core.attrib'/> 87.28 + <ref name='svg.Style.attrib'/> 87.29 + <ref name='svg.Color.attrib'/> 87.30 + <ref name='svg.FilterColor.attrib'/> 87.31 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 87.32 + <optional> 87.33 + <attribute name='lighting-color'> 87.34 + <ref name='SVGColor.datatype'/> 87.35 + </attribute> 87.36 + </optional> 87.37 + <optional> 87.38 + <attribute name='surfaceScale'> 87.39 + <ref name='Number.datatype'/> 87.40 + </attribute> 87.41 + </optional> 87.42 + <optional> 87.43 + <attribute name='specularConstant'> 87.44 + <ref name='Number.datatype'/> 87.45 + </attribute> 87.46 + </optional> 87.47 + <optional> 87.48 + <attribute name='specularExponent'> 87.49 + <ref name='Number.datatype'/> 87.50 + </attribute> 87.51 + </optional> 87.52 + <optional> 87.53 + <attribute name='kernelUnitLength'> 87.54 + <ref name='NumberOptionalNumber.datatype'/> 87.55 + </attribute> 87.56 + </optional> 87.57 + </define>
88.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 88.2 +++ b/filters/master/rng/feSpotLight Mon Apr 11 10:08:48 2011 +1000 88.3 @@ -0,0 +1,59 @@ 88.4 +<define name='svg.feSpotLight.content'> 88.5 + <zeroOrMore> 88.6 + <choice> 88.7 + <ref name='animate'/> 88.8 + <ref name='set'/> 88.9 + </choice> 88.10 + </zeroOrMore> 88.11 + </define> 88.12 + 88.13 + <define name='feSpotLight'> 88.14 + <element name='feSpotLight'> 88.15 + <ref name='feSpotLight.attr'/> 88.16 + <ref name='svg.feSpotLight.content'/> 88.17 + </element> 88.18 + </define> 88.19 + 88.20 + <define name='feSpotLight.attr' combine='interleave'> 88.21 + <ref name='svg.Core.attr'/> 88.22 + <optional> 88.23 + <attribute name='x'> 88.24 + <ref name='Number.datatype'/> 88.25 + </attribute> 88.26 + </optional> 88.27 + <optional> 88.28 + <attribute name='y'> 88.29 + <ref name='Number.datatype'/> 88.30 + </attribute> 88.31 + </optional> 88.32 + <optional> 88.33 + <attribute name='z'> 88.34 + <ref name='Number.datatype'/> 88.35 + </attribute> 88.36 + </optional> 88.37 + <optional> 88.38 + <attribute name='pointsAtX'> 88.39 + <ref name='Number.datatype'/> 88.40 + </attribute> 88.41 + </optional> 88.42 + <optional> 88.43 + <attribute name='pointsAtY'> 88.44 + <ref name='Number.datatype'/> 88.45 + </attribute> 88.46 + </optional> 88.47 + <optional> 88.48 + <attribute name='pointsAtZ'> 88.49 + <ref name='Number.datatype'/> 88.50 + </attribute> 88.51 + </optional> 88.52 + <optional> 88.53 + <attribute name='specularExponent'> 88.54 + <ref name='Number.datatype'/> 88.55 + </attribute> 88.56 + </optional> 88.57 + <optional> 88.58 + <attribute name='limitingConeAngle'> 88.59 + <ref name='Number.datatype'/> 88.60 + </attribute> 88.61 + </optional> 88.62 + </define>
89.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 89.2 +++ b/filters/master/rng/feTile Mon Apr 11 10:08:48 2011 +1000 89.3 @@ -0,0 +1,21 @@ 89.4 + <define name='svg.feTile.content'> 89.5 + <zeroOrMore> 89.6 + <choice> 89.7 + <ref name='animate'/> 89.8 + <ref name='set'/> 89.9 + </choice> 89.10 + </zeroOrMore> 89.11 + </define> 89.12 + 89.13 + <define name='feTile'> 89.14 + <element name='feTile'> 89.15 + <ref name='attlist.feTile'/> 89.16 + <ref name='svg.feTile.content'/> 89.17 + </element> 89.18 + </define> 89.19 + 89.20 + <define name='attlist.feTile' combine='interleave'> 89.21 + <ref name='svg.Core.attrib'/> 89.22 + <ref name='svg.FilterColor.attrib'/> 89.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 89.24 + </define>
90.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 90.2 +++ b/filters/master/rng/feTurbulence Mon Apr 11 10:08:48 2011 +1000 90.3 @@ -0,0 +1,52 @@ 90.4 + <define name='svg.feTurbulence.content'> 90.5 + <zeroOrMore> 90.6 + <choice> 90.7 + <ref name='animate'/> 90.8 + <ref name='set'/> 90.9 + </choice> 90.10 + </zeroOrMore> 90.11 + </define> 90.12 + 90.13 + <define name='feTurbulence'> 90.14 + <element name='feTurbulence'> 90.15 + <ref name='attlist.feTurbulence'/> 90.16 + <ref name='svg.feTurbulence.content'/> 90.17 + </element> 90.18 + </define> 90.19 + 90.20 + <define name='attlist.feTurbulence' combine='interleave'> 90.21 + <ref name='svg.Core.attrib'/> 90.22 + <ref name='svg.FilterColor.attrib'/> 90.23 + <ref name='svg.FilterPrimitive.attrib'/> 90.24 + <optional> 90.25 + <attribute name='baseFrequency'> 90.26 + <ref name='NumberOptionalNumber.datatype'/> 90.27 + </attribute> 90.28 + </optional> 90.29 + <optional> 90.30 + <attribute name='numOctaves'> 90.31 + <ref name='Integer.datatype'/> 90.32 + </attribute> 90.33 + </optional> 90.34 + <optional> 90.35 + <attribute name='seed'> 90.36 + <ref name='Number.datatype'/> 90.37 + </attribute> 90.38 + </optional> 90.39 + <optional> 90.40 + <attribute name='stitchTiles' a:defaultValue='noStitch'> 90.41 + <choice> 90.42 + <value>stitch</value> 90.43 + <value>noStitch</value> 90.44 + </choice> 90.45 + </attribute> 90.46 + </optional> 90.47 + <optional> 90.48 + <attribute name='type' a:defaultValue='turbulence'> 90.49 + <choice> 90.50 + <value>fractalNoise</value> 90.51 + <value>turbulence</value> 90.52 + </choice> 90.53 + </attribute> 90.54 + </optional> 90.55 + </define>
91.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 91.2 +++ b/filters/master/rng/feUnsharpMask Mon Apr 11 10:08:48 2011 +1000 91.3 @@ -0,0 +1,33 @@ 91.4 + <define name='svg.feUnsharpMask.content'> 91.5 + <zeroOrMore> 91.6 + <choice> 91.7 + <ref name='animate'/> 91.8 + <ref name='set'/> 91.9 + </choice> 91.10 + </zeroOrMore> 91.11 + </define> 91.12 + 91.13 + <define name='feUnsharpMask'> 91.14 + <element name='feUnsharpMask'> 91.15 + <ref name='attlist.feUnsharpMask'/> 91.16 + <ref name='svg.feUnsharpMask.content'/> 91.17 + </element> 91.18 + </define> 91.19 + 91.20 + <define name='attlist.feUnsharpMask' combine='interleave'> 91.21 + <ref name='svg.Core.attrib'/> 91.22 + <ref name='svg.FilterColor.attrib'/> 91.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 91.24 + <optional> 91.25 + <attribute name='amount'> 91.26 + <ref name='Number.datatype'/> 91.27 + </attribute> 91.28 + <attribute name='radius'> 91.29 + <ref name='NumberOptionalNumber.datatype'/> 91.30 + </attribute> 91.31 + <attribute name='threshold'> 91.32 + <ref name='Number.datatype'/> 91.33 + </attribute> 91.34 + </optional> 91.35 + </define> 91.36 +
92.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 92.2 +++ b/filters/master/rng/filter Mon Apr 11 10:08:48 2011 +1000 92.3 @@ -0,0 +1,91 @@ 92.4 + <define name='filter'> 92.5 + <element name='filter'> 92.6 + <ref name='filter.AT'/> 92.7 + <ref name='svg.filter.content'/> 92.8 + </element> 92.9 + </define> 92.10 + 92.11 + <define name='filter.AT' combine='interleave'> 92.12 + <ref name='svg.Core.attr'/> 92.13 + <ref name='svg.Style.attr'/> 92.14 + <ref name='svg.Presentation.attrib'/> 92.15 + <ref name='svg.XLink.attrib'/> 92.16 + <ref name='svg.External.attrib'/> 92.17 + <optional> 92.18 + <attribute name='x'> 92.19 + <ref name='Coordinate.datatype'/> 92.20 + </attribute> 92.21 + </optional> 92.22 + <optional> 92.23 + <attribute name='y'> 92.24 + <ref name='Coordinate.datatype'/> 92.25 + </attribute> 92.26 + </optional> 92.27 + <optional> 92.28 + <attribute name='width'> 92.29 + <ref name='Length.datatype'/> 92.30 + </attribute> 92.31 + </optional> 92.32 + <optional> 92.33 + <attribute name='height'> 92.34 + <ref name='Length.datatype'/> 92.35 + </attribute> 92.36 + </optional> 92.37 + <optional> 92.38 + <attribute name='mx'> 92.39 + <ref name='Coordinate.datatype'/> 92.40 + </attribute> 92.41 + </optional> 92.42 + <optional> 92.43 + <attribute name='my'> 92.44 + <ref name='Coordinate.datatype'/> 92.45 + </attribute> 92.46 + </optional> 92.47 + <optional> 92.48 + <attribute name='mw'> 92.49 + <ref name='Length.datatype'/> 92.50 + </attribute> 92.51 + </optional> 92.52 + <optional> 92.53 + <attribute name='mh'> 92.54 + <ref name='Length.datatype'/> 92.55 + </attribute> 92.56 + </optional> 92.57 + <optional> 92.58 + <attribute name='filterRes'> 92.59 + <ref name='NumberOptionalNumber.datatype'/> 92.60 + </attribute> 92.61 + </optional> 92.62 + <optional> 92.63 + <attribute name='filterUnits'> 92.64 + <choice> 92.65 + <value>userSpaceOnUse</value> 92.66 + <value>objectBoundingBox</value> 92.67 + </choice> 92.68 + </attribute> 92.69 + </optional> 92.70 + <optional> 92.71 + <attribute name='primitiveUnits'> 92.72 + <choice> 92.73 + <value>userSpaceOnUse</value> 92.74 + <value>objectBoundingBox</value> 92.75 + </choice> 92.76 + </attribute> 92.77 + </optional> 92.78 + <optional> 92.79 + <attribute name='filterMarginsUnits'> 92.80 + <choice> 92.81 + <value>userSpaceOnUse</value> 92.82 + <value>objectBoundingBox</value> 92.83 + </choice> 92.84 + </attribute> 92.85 + </optional> 92.86 + <optional> 92.87 + <attribute name='primitiveMarginsUnits'> 92.88 + <choice> 92.89 + <value>userSpaceOnUse</value> 92.90 + <value>objectBoundingBox</value> 92.91 + </choice> 92.92 + </attribute> 92.93 + </optional> 92.94 + </define>
93.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 93.2 +++ b/filters/master/rng/filter-primitive-attr Mon Apr 11 10:08:48 2011 +1000 93.3 @@ -0,0 +1,52 @@ 93.4 + <define name='svg.FilterPrimitive.attrib'> 93.5 + <optional> 93.6 + <attribute name='x'> 93.7 + <ref name='Coordinate.datatype'/> 93.8 + </attribute> 93.9 + </optional> 93.10 + <optional> 93.11 + <attribute name='y'> 93.12 + <ref name='Coordinate.datatype'/> 93.13 + </attribute> 93.14 + </optional> 93.15 + <optional> 93.16 + <attribute name='width'> 93.17 + <ref name='Length.datatype'/> 93.18 + </attribute> 93.19 + </optional> 93.20 + <optional> 93.21 + <attribute name='height'> 93.22 + <ref name='Length.datatype'/> 93.23 + </attribute> 93.24 + </optional> 93.25 + <optional> 93.26 + <attribute name='mx'> 93.27 + <ref name='Coordinate.datatype'/> 93.28 + </attribute> 93.29 + </optional> 93.30 + <optional> 93.31 + <attribute name='my'> 93.32 + <ref name='Coordinate.datatype'/> 93.33 + </attribute> 93.34 + </optional> 93.35 + <optional> 93.36 + <attribute name='mw'> 93.37 + <ref name='Length.datatype'/> 93.38 + </attribute> 93.39 + </optional> 93.40 + <optional> 93.41 + <attribute name='mh'> 93.42 + <ref name='Length.datatype'/> 93.43 + </attribute> 93.44 + </optional> 93.45 + <optional> 93.46 + <attribute name='result'/> 93.47 + </optional> 93.48 + </define> 93.49 + 93.50 + <define name='svg.FilterPrimitiveWithIn.attrib'> 93.51 + <ref name='svg.FilterPrimitive.attrib'/> 93.52 + <optional> 93.53 + <attribute name='in'/> 93.54 + </optional> 93.55 + </define>
94.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 94.2 +++ b/filters/master/style/W3C-WD.css Mon Apr 11 10:08:48 2011 +1000 94.3 @@ -0,0 +1,89 @@ 94.4 + 94.5 +/* Style for a public "Working Draft" */ 94.6 + 94.7 +/* 94.8 + Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 94.9 + The following software licensing rules apply: 94.10 + http://www.w3.org/Consortium/Legal/copyright-software */ 94.11 + 94.12 +/* $Id$ */ 94.13 + 94.14 + 94.15 +body { 94.16 + padding: 2em 1em 2em 70px; 94.17 + margin: 0; 94.18 + font-family: sans-serif; 94.19 + color: black; 94.20 + background: white; 94.21 + background-position: top left; 94.22 + background-attachment: fixed; 94.23 + background-repeat: no-repeat; 94.24 +} 94.25 +:link { color: #00C; background: transparent } 94.26 +:visited { color: #609; background: transparent } 94.27 +a:active { color: #C00; background: transparent } 94.28 + 94.29 +a:link img, a:visited img { border-style: none } /* no border on img links */ 94.30 + 94.31 +a img { color: white; } /* trick to hide the border in Netscape 4 */ 94.32 +@media all { /* hide the next rule from Netscape 4 */ 94.33 + a img { color: inherit; } /* undo the color change above */ 94.34 +} 94.35 + 94.36 +th, td { /* ns 4 */ 94.37 + font-family: sans-serif; 94.38 +} 94.39 + 94.40 +h1, h2, h3, h4, h5, h6 { text-align: left } 94.41 +/* background should be transparent, but WebTV has a bug */ 94.42 +h1, h2, h3 { color: #005A9C; background: white } 94.43 +h1 { font: 170% sans-serif } 94.44 +h2 { font: 140% sans-serif } 94.45 +h3 { font: 120% sans-serif } 94.46 +h4 { font: bold 100% sans-serif } 94.47 +h5 { font: italic 100% sans-serif } 94.48 +h6 { font: small-caps 100% sans-serif } 94.49 + 94.50 +.hide { display: none } 94.51 + 94.52 +div.head { margin-bottom: 1em } 94.53 +div.head h1 { margin-top: 2em; clear: both } 94.54 +div.head table { margin-left: 2em; margin-top: 2em } 94.55 + 94.56 +p.copyright { font-size: small } 94.57 +p.copyright small { font-size: small } 94.58 + 94.59 +@media screen { /* hide from IE3 */ 94.60 +a[href]:hover { background: #ffa } 94.61 +} 94.62 + 94.63 +pre { margin-left: 2em } 94.64 +/* 94.65 +p { 94.66 + margin-top: 0.6em; 94.67 + margin-bottom: 0.6em; 94.68 +} 94.69 +*/ 94.70 +dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */ 94.71 +dt { font-weight: bold } 94.72 + 94.73 +pre, code { font-family: monospace } /* navigator 4 requires this */ 94.74 + 94.75 +ul.toc { 94.76 + list-style: disc; /* Mac NS has problem with 'none' */ 94.77 + list-style: none; 94.78 +} 94.79 + 94.80 +@media aural { 94.81 + h1, h2, h3 { stress: 20; richness: 90 } 94.82 + .hide { speak: none } 94.83 + p.copyright { volume: x-soft; speech-rate: x-fast } 94.84 + dt { pause-before: 20% } 94.85 + pre { speak-punctuation: code } 94.86 +} 94.87 + 94.88 + 94.89 + 94.90 +body { 94.91 + background-image: url(http://www.w3.org/StyleSheets/TR/logo-WD); 94.92 +}
95.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 95.2 +++ b/filters/master/style/expanders.js Mon Apr 11 10:08:48 2011 +1000 95.3 @@ -0,0 +1,32 @@ 95.4 +function expand(e) { 95.5 + e = e.parentNode; 95.6 + e.parentNode.removeAttribute('class'); 95.7 + e.style.display = "none"; 95.8 + e.nextSibling.style.display = "inline"; 95.9 +} 95.10 + 95.11 +(function() { 95.12 + var i, a = [], e0, e1p, e1, e2, l = document.getElementsByTagName('span'); 95.13 + for (i = 0; i != l.length; i++) { 95.14 + e0 = l[i]; 95.15 + if (e0.getAttribute('class') == 'expanding') { 95.16 + a.push(e0); 95.17 + } 95.18 + } 95.19 + for (i = 0; i != a.length; i++) { 95.20 + e0 = a[i]; 95.21 + e1 = document.createElement('span'); 95.22 + e1.setAttribute('class', 'expander'); 95.23 + e1.setAttribute('onclick', 'expand(event.target)'); 95.24 + e1p = document.createElement('span'); 95.25 + e1p.textContent = ' '; 95.26 + e1p.appendChild(e1); 95.27 + e2 = document.createElement('span'); 95.28 + e2.style.display = 'none'; 95.29 + while (e0.firstChild) { 95.30 + e2.appendChild(e0.firstChild); 95.31 + } 95.32 + e0.appendChild(e1p); 95.33 + e0.appendChild(e2); 95.34 + } 95.35 +})();
96.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 96.2 +++ b/filters/master/style/svg-style-extra.css Mon Apr 11 10:08:48 2011 +1000 96.3 @@ -0,0 +1,179 @@ 96.4 +body { line-height: 1.3; } 96.5 + 96.6 +.element-summary { background: #d9e8ff; padding: 1em; margin-top: 1em } 96.7 +.element-summary-name { float: right; font-size: 110% } 96.8 +.element-summary dl, .element-summary dt { margin-top: 0; margin-bottom: 0; } 96.9 +.element-summary * + dt { margin-top: 0.5em; } 96.10 +.element-summary dd { margin-top: 0; } 96.11 +.element-summary ul.no-bullets { list-style: none; padding-left: 0em } 96.12 +.element-summary ul.no-bullets li { padding-left: 2em; text-indent: -2em; } 96.13 +.expander { color: #888; text-decoration: underline; cursor: pointer; font-size: 85% } 96.14 +.expander { } 96.15 +.expander:active { color: #C00 } 96.16 +.expander:hover { background: #ffa } 96.17 +.expander:after { content: 'show »' } 96.18 + 96.19 +.xgrammar { /*color: #005a9c;*/ color: #A52A2A; font-family: monospace; font-size: 90% } 96.20 + 96.21 +pre.idl { color: black; background: #d9e8ff; padding: 1em; margin-top: 1em; margin-left: 0; font-size: 1em; overflow: auto; /*white-space: pre-wrap*/ } 96.22 +pre.idl a:link, pre.idl a:visited { color: black; } 96.23 + 96.24 +dl.interface dt { 96.25 + margin-top: 1em; 96.26 +} 96.27 + 96.28 +dl.interface dl.attributes > dt, 96.29 +dl.interface dl.constants > dt, 96.30 +dl.interface dl.operations > dt { 96.31 + margin-top: 2em; 96.32 +} 96.33 + 96.34 +dl.interface dl.attributes > dt, 96.35 +dl.interface dl.constants > dt, 96.36 +dl.interface dl.operations > dt, 96.37 +dl.interface ol.parameters > li, 96.38 +dl.interface dl.exceptions > dt { 96.39 + font-weight: normal; 96.40 + display: list-item; 96.41 +} 96.42 + 96.43 +dl.interface dl.attributes > dt:first-child, 96.44 +dl.interface dl.constants > dt:first-child, 96.45 +dl.interface dl.operations > dt:first-child, 96.46 +dl.interface ol.parameters > li:first-child, 96.47 +dl.interface dl.exceptions > dt:first-child { 96.48 + margin-top: 0; 96.49 +} 96.50 + 96.51 +dl.interface dl.attributes > dd, 96.52 +dl.interface dl.constants > dd, 96.53 +dl.interface dl.operations > dd, 96.54 +dl.interface ol.parameters > li, 96.55 +dl.interface dl.exceptions > dd { 96.56 + margin-top: 0.5em; 96.57 + margin-left: 0; 96.58 +} 96.59 + 96.60 +dl.interface dl.attribute { 96.61 + /*margin-left: 2em;*/ 96.62 +} 96.63 + 96.64 +dl.interface dd > *:first-child, 96.65 +dl.interface ol.parameters > li, 96.66 +dl.interface ol.parameters > li > *:first-child + * { 96.67 + margin-top: 0; 96.68 +} 96.69 + 96.70 +ol.parameters > li > .parameter { 96.71 + float: left; 96.72 +} 96.73 + 96.74 +ol.parameters > li > .parameter::after { 96.75 + content: " — "; 96.76 +} 96.77 + 96.78 +.idl .keyword { 96.79 + /*font-weight: bold;*/ 96.80 +} 96.81 + 96.82 +.idlattr, .idlattr:link, .idlattr:visited { 96.83 + background: #d9e8ff; 96.84 + color: black; 96.85 +} 96.86 + 96.87 +ol.parameters { 96.88 + list-style-type: disc; 96.89 + padding-left: 0; 96.90 +} 96.91 + 96.92 +var { 96.93 + font-style: italic; 96.94 +} 96.95 + 96.96 +dl.definitions > dt, 96.97 +.adef-list dl > dt { margin-top: 1em; } 96.98 + 96.99 +dl.definitions > dt + dt, 96.100 +.adef-list dl > dt + dt { margin-top: 0; } 96.101 + 96.102 +dl.definitions > dd > :first-child, 96.103 +.adef-list dl > dd > :first-child { margin-top: 0; } 96.104 + 96.105 +table.vert { 96.106 + border-collapse: collapse; 96.107 + border-top: 2px solid #005a9c; 96.108 + border-bottom: 2px solid #005a9c; 96.109 + margin-top: 1em; 96.110 + margin-bottom: 1em; 96.111 + margin-left: auto; 96.112 + margin-right: auto; 96.113 +} 96.114 +table.vert td { 96.115 + background: #f0f6ff; 96.116 +} 96.117 +table.vert th { 96.118 + text-align: left; 96.119 + vertical-align: bottom; 96.120 + border-bottom: 2px solid #005a9c; 96.121 + white-space: nowrap; 96.122 + color: #d9e8ff; 96.123 + background: #005a9c; 96.124 +} 96.125 +table.vert th a:link, 96.126 +table.vert th a:visited { color: #d9e8ff; } 96.127 +table.vert th a:hover { color: black; } 96.128 +table.vert th, table.vert td { padding: 0.5em 0.75em; } 96.129 +table.vert th .attr-name { color: white } 96.130 +table.vert th a:hover .element-name { color: #2A2AA5 } 96.131 +table.vert th .prop-name { color: white } 96.132 +table.vert th a:hover .element-name { color: black } 96.133 +table.vert th .element-name { color: white } 96.134 +table.vert th a:hover .element-name { color: #A52A2A } 96.135 +table.vert td { vertical-align: top; } 96.136 +table.offset { margin-left: 2em; margin-right: 2em; } 96.137 +.indented { 96.138 + margin-left: 2em; 96.139 +} 96.140 +.math var, .math sub, .math sup { 96.141 + font-family: serif; 96.142 +} 96.143 +.separated { 96.144 + word-spacing: 1em; 96.145 +} 96.146 +.familyname { 96.147 + text-transform: uppercase; 96.148 +} 96.149 + 96.150 +dl.unemphasized-names > dt > a { font-weight: normal } 96.151 + 96.152 +.header { background: #eee; padding: 0.5em; font-size: 85%; text-align: right } 96.153 +.header.top { border-top: 1px solid #ccc } 96.154 +.header.bottom { border-bottom: 1px solid #ccc; margin-top: 1em } 96.155 +.header .namedate { display: block; float: left } 96.156 +.header ul { display: block; margin: 0 } 96.157 +.header ul li { display: inline; margin: 0 } 96.158 +.header ul li:first-child::before { content: none } 96.159 +.header ul li::before { content: ' ⋅ ' } 96.160 +.header .after { display: block; clear: both; height: 1px } 96.161 +.header .after::before { content: ' ' } 96.162 + 96.163 +table.property-table { font-size: 90%; border-collapse: collapse } 96.164 +table.vert td { border-top: 1px solid #005a9c; border-top-color: rgba(0, 90, 156, 0.5) } 96.165 +.tocline1 { font-weight: bold } 96.166 +/* .toc { margin-bottom: 0.5em } */ 96.167 + 96.168 +.idl-type-parenthetical { font-size: 90% } 96.169 +td > :first-child, 96.170 +th > :first-child { margin-top: 0 } 96.171 +td p { 96.172 + margin-top: 1em; 96.173 + margin-bottom: 0; 96.174 +} 96.175 + 96.176 +table.collection { border-collapse: collapse; background: #fff; font-size: 90%; margin-bottom: 1em; margin-left: 2em } 96.177 +table.collection th { background: #eee } 96.178 +table.collection td, table.collection th { border: 1px solid black; padding: 0.25em; vertical-align: baseline } 96.179 + 96.180 +ol.notes { list-style-type: none; padding-left: 0 } 96.181 + 96.182 +.colorpatch { width: 14px; height:14px; border: 1px solid black; }
97.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 97.2 +++ b/filters/master/style/svg-style.css Mon Apr 11 10:08:48 2011 +1000 97.3 @@ -0,0 +1,454 @@ 97.4 +/* 97.5 + * style sheet for svg specification 97.6 + */ 97.7 + 97.8 + 97.9 +body { 97.10 + color: black; 97.11 + /* text-align: justify; */ 97.12 + font-family: helvetica, sans-serif; 97.13 + background: white; 97.14 + margin: 2em; 97.15 + /* for the rec: background: #def url(recbg.jpg); */ 97.16 +} 97.17 +.navlinks { 97.18 + text-align: center; 97.19 +} 97.20 +h2, h3, h4, h5, h6 { 97.21 + text-align: left; 97.22 +} 97.23 + 97.24 +.header { 97.25 + text-align: right; 97.26 + border-bottom: 1px solid #aaa; 97.27 + padding-bottom: 0.5em; 97.28 + font-size: 80%; 97.29 +} 97.30 + 97.31 +.footer { 97.32 + text-align: right; 97.33 + margin-top: 1em; 97.34 + border-top: 1px solid #aaa; 97.35 + padding-top: 0.5em; 97.36 + font-size: 80%; 97.37 +} 97.38 + 97.39 +.header ul, .footer ul { 97.40 + display: inline; 97.41 + padding: 0; 97.42 +} 97.43 + 97.44 +.header li, .footer li { 97.45 + display: inline; 97.46 + border-left: 1px solid #aaa; 97.47 + padding-left: 0.2em; 97.48 +} 97.49 + 97.50 +h1 { 97.51 + clear: left; 97.52 + margin-top: 1em; 97.53 + text-align: center; 97.54 +} 97.55 + 97.56 +pre { margin-left: 2em } 97.57 +pre { 97.58 + color: #a52a2a; 97.59 + font-family: monospace; 97.60 + font-size: 90% 97.61 +} 97.62 +pre.svgsamplecompressed { 97.63 + font-size: 75%; 97.64 + letter-spacing: -.05em; 97.65 + line-height: 95% 97.66 +} 97.67 +pre strong { 97.68 + color: #004400; 97.69 + font-weight: bold 97.70 +} 97.71 +.filterformula { 97.72 + color: #a52a2a; 97.73 + font-family: monospace; 97.74 + font-size: 90%; 97.75 + margin-left: 2em 97.76 +} 97.77 + 97.78 +div.dtd-fragment { 97.79 + background-color: #dddddd; 97.80 + margin-left: 0; 97.81 +} 97.82 +.dtd-fragment { 97.83 + background-color: #dddddd; 97.84 + margin-left: 0; 97.85 +} 97.86 +.idl-code { 97.87 + margin: 0; 97.88 + font-family: monospace; 97.89 + border: 1px solid black; 97.90 + white-space: pre; 97.91 + color: black; 97.92 + background-color: #dfdfdf; 97.93 +} 97.94 + 97.95 +.adef { 97.96 + font-family: monospace; 97.97 + font-weight: bold; 97.98 +} 97.99 + 97.100 + 97.101 +address { 97.102 + text-align: right; 97.103 + font-style: italic; 97.104 +} 97.105 + 97.106 +var { 97.107 + font-style: normal; 97.108 +} 97.109 +img { 97.110 + border: 0; 97.111 +} 97.112 +.toc { 97.113 + text-indent: 0; 97.114 +} 97.115 +.toc2 { 97.116 + text-indent: 2em; 97.117 +} 97.118 +.toc3 { 97.119 + text-indent: 4em; 97.120 +} 97.121 +p.toc-line { 97.122 + margin-top: 1em; 97.123 + margin-bottom: 1em; 97.124 + text-indent: 0; 97.125 +} 97.126 + 97.127 +/* it should be 'inherit', but netscape inserts a random color :-( */ 97.128 +a.noxref:link, a.noxref:visited {color: black; /*color: inherit*/} 97.129 +div.example a:link, div.example a:visited {color: maroon; /*color: inherit*/} 97.130 +div.deprecated-html-example a:link, 97.131 +div.deprecated-html-example a:visited {color: red; /*color: inherit*/} 97.132 +.note a:link, .note a:visited {color: green; /*color: inherit*/} 97.133 + 97.134 +a.propdef-title { 97.135 + background: yellow; 97.136 +} 97.137 + 97.138 +a.descdef-title { 97.139 + color: yellow; 97.140 + background: green 97.141 +} 97.142 + 97.143 +/* table {margin-left: 1em} */ 97.144 +div.propdef {margin: 1.2em 0} 97.145 + 97.146 +.example { 97.147 + padding: 0; 97.148 + background: white; 97.149 +} 97.150 + 97.151 +.exampleheader { 97.152 + margin: 0; 97.153 + background: #dda; 97.154 + border-bottom: 1px solid #666; 97.155 + border-right: 1px solid #666; 97.156 + border-top: 1px solid #aaa; 97.157 + border-left: 1px solid #aaa; 97.158 + padding: 0.5em 1em; 97.159 +} 97.160 + 97.161 +.examplesource { 97.162 + padding: 0; 97.163 + margin: 0; 97.164 + background: #ffc; 97.165 + border-bottom: 1px solid #996; 97.166 + border-right: 1px solid #996; 97.167 + border-top: 1px solid #bb8; 97.168 + border-left: 1px solid #bb8; 97.169 +} 97.170 + 97.171 +.examplesource pre { 97.172 + background: none; 97.173 + color: #633; 97.174 + margin: 0 1em; 97.175 + padding: 0.5em 0 0 0; 97.176 +} 97.177 + 97.178 +.exampleimage { 97.179 + text-align: center; 97.180 + padding: 1em; 97.181 + border-bottom: 1px solid #996; 97.182 + border-right: 1px solid #996; 97.183 + border-top: 1px solid #bb8; 97.184 + border-left: 1px solid #bb8; 97.185 +} 97.186 + 97.187 +.schema { 97.188 + padding: 0; 97.189 + background: white; 97.190 + width: 100%; 97.191 +} 97.192 + 97.193 +.schemaheader { 97.194 + margin: 0; 97.195 + background: #ccc; 97.196 + border-bottom: 1px solid #666; 97.197 + border-right: 1px solid #666; 97.198 + border-top: 1px solid #aaa; 97.199 + border-left: 1px solid #aaa; 97.200 + padding: 0.5em 1em; 97.201 +} 97.202 + 97.203 +.schemasource { 97.204 + padding: 0; 97.205 + margin: 0; 97.206 + background: #ddd; 97.207 + border-bottom: 1px solid #666; 97.208 + border-right: 1px solid #666; 97.209 + border-top: 1px solid #aaa; 97.210 + border-left: 1px solid #aaa; 97.211 +} 97.212 + 97.213 +.schemasource pre { 97.214 + background: none; 97.215 + color: #030; 97.216 + margin: 0 1em; 97.217 + padding: 0.5em 0 0 0; 97.218 +} 97.219 + 97.220 +pre.example { color: maroon } 97.221 +pre.illegal-example { color: red } 97.222 +div.illegal-example { color: red } 97.223 +div.illegal-example p { color: black } 97.224 + 97.225 + 97.226 +div.html-example { color: maroon } 97.227 +pre.html-example { color: maroon } 97.228 +pre.illegal-html-example { color: red } 97.229 +div.illegal-html-example { color: red } 97.230 +div.illegal-html-example p { color: black } 97.231 +pre.deprecated-html-example { color: red } 97.232 +div.deprecated-html-example { color: red } 97.233 +div.deprecated-html-example p { color: black } 97.234 + 97.235 +div.xml-example { color: maroon } 97.236 +pre.xml-example { color: maroon } 97.237 +pre.illegal-xml-example { color: red } 97.238 +div.illegal-xml-example { color: red } 97.239 +div.illegal-xml-example p { color: black } 97.240 + 97.241 +div.dtd-example { color: maroon } 97.242 +pre.dtd-example { color: maroon } 97.243 +pre.illegal-dtd-example { color: red } 97.244 +div.illegal-dtd-example { color: red } 97.245 +div.illegal-dtd-example p { color: black } 97.246 + 97.247 +.note { 97.248 + font-weight: bold; 97.249 + margin-top: 1em; 97.250 + margin-bottom: 1em; 97.251 + margin-left: 1em; 97.252 + margin-right: 1em; 97.253 + background: #6f9 none repeat scroll 0%; 97.254 + color: black; 97.255 +} 97.256 + 97.257 +.requirement { 97.258 + margin-top: 1em; 97.259 + margin-bottom: 1em; 97.260 + margin-left: 1em; 97.261 + margin-right: 1em; 97.262 + background: #fad none repeat scroll 0%; 97.263 + color: black; 97.264 +} 97.265 + 97.266 +.normref { 97.267 + color: red; 97.268 +} 97.269 + 97.270 +.informref { 97.271 + color: green; 97.272 +} 97.273 + 97.274 +div.propdef th { 97.275 + text-align: right; 97.276 +} 97.277 + 97.278 +div.descdef th { 97.279 + text-align: right; 97.280 +} 97.281 + 97.282 +ul.toc, ol.toc {list-style: none} 97.283 +div.toc ul ul, div.toc ol ol {margin-left: 0} 97.284 +div.toc ul ul ul, div.toc ol ol ol {margin-left: 1em} 97.285 +div.toc ul ul ul ul, div.toc ol ol ol ol {margin-left: 0} 97.286 +li.tocline1 {font-weight: bold} 97.287 +li.tocline2 {font-weight: normal} 97.288 +li.tocline4 {font-style: italic} 97.289 +/* div.subtoc ul, div.subtoc ol {list-style: none} */ 97.290 +/* the border in the following rule crashes nn4 on fonts.html :-( 97.291 +div.subtoc {padding: 1em; border: solid black thin; margin: 1em 0; 97.292 + background: #ddd} 97.293 +*/ 97.294 +ul.index {list-style: none} 97.295 + 97.296 +s, del {text-decoration: line-through; color: red} 97.297 +u, ins {text-decoration: underline; background: #bfa} 97.298 + 97.299 +div.figure { 97.300 + text-align: center; 97.301 + /*border: solid thin; 97.302 + width: 100%;*/ 97.303 + margin: 2.5em 0 97.304 +} 97.305 +p.caption, caption { 97.306 + text-align: center; 97.307 + font-style: italic; 97.308 + font-weight: bold; 97.309 + font-size: 90%; 97.310 + color: #088; 97.311 + margin: 1.5em 25% 0 25%; 97.312 +} 97.313 +div.toc, ul.index, dt { 97.314 + text-align: left 97.315 +} 97.316 +sup { 97.317 + vertical-align: super; 97.318 + font-size: 80% 97.319 +} 97.320 +.code-fragment { 97.321 + color: #a52a2a; 97.322 + font-weight: bold; 97.323 + font-size: 90% 97.324 +} 97.325 +.element-name { 97.326 + color: #a52a2a; 97.327 + font-weight: bold; 97.328 + font-size: 90% 97.329 +} 97.330 +.attr-name { 97.331 + color: #2a2aa5; 97.332 + font-weight: bold; 97.333 + font-size: 90% 97.334 +} 97.335 +.prop-name { 97.336 + color: black; 97.337 + font-weight: bold; 97.338 + font-size: 90% 97.339 +} 97.340 +.attr-value, .prop-value { 97.341 + font-weight: bold; 97.342 + font-size: 90% 97.343 +} 97.344 +/* 97.345 +.svg-term { 97.346 + color: red; 97.347 + font-weight: bold 97.348 +} 97.349 +*/ 97.350 +.svg-termdefine { 97.351 + font-weight: bold 97.352 +} 97.353 +.example-ref { 97.354 + color: green; 97.355 +} 97.356 +.anim-target { 97.357 + font-style: italic 97.358 +} 97.359 +.dominterfacename { 97.360 + font-weight: bold 97.361 +} 97.362 +.dom-attr-name { 97.363 + color: black; 97.364 + background-color: #ffffd2; 97.365 +} 97.366 +.dom-attr-type, .dom-attr-value { 97.367 + color: black; 97.368 + font-weight: bold; 97.369 +} 97.370 +.dom-method-name { 97.371 + color: black; 97.372 + background-color: #d9e6f8; 97.373 +} 97.374 +.dom-parameter-name { 97.375 + margin-top: 1%; 97.376 + background-color: #fee6f8; 97.377 + color: black; 97.378 +} 97.379 +.math-variable { 97.380 + font-family:times,serif 97.381 +} 97.382 +.color-keyword-value { 97.383 + color: #a52a2a; 97.384 +} 97.385 +.view-as-svg { 97.386 + font-style:italic 97.387 +} 97.388 +.table-heading-1 { 97.389 + font-style:italic; 97.390 + text-align:center 97.391 +} 97.392 +.pathdatatable { 97.393 + background: #dddddd 97.394 +} 97.395 +.useruleapplied { 97.396 + font-style:normal; 97.397 + font-weight:bold; 97.398 + color:blue 97.399 +} 97.400 +.useruleignored { 97.401 + font-style:italic; 97.402 + font-weight:bold; 97.403 + color:#050; 97.404 +} 97.405 + 97.406 +.editor { text-decoration: underline; font-size: 85% } 97.407 +.editor-intro { color: red; font-weight: bold } 97.408 +.editor-rec { color: red; font-weight: bold } 97.409 +.designgoals { list-style-type: upper-alpha } 97.410 +.reqt-level0 { list-style-type: decimal; font-weight: bold } 97.411 +.reqt-level1 { list-style-type: lower-alpha; font-weight: normal } 97.412 +.reqt-level2 { list-style-type: lower-roman; font-weight: normal } 97.413 + 97.414 +.b4nomfix { color: #a52a2a; text-decoration: line-through } 97.415 +.afnomfix { color: red; } 97.416 + 97.417 +div.note,p.note { 97.418 + border: 2px dotted #3c6; 97.419 + padding: 0.5em; 97.420 +} 97.421 + 97.422 +.specissue { 97.423 + border-style: solid; 97.424 + border-color: black; 97.425 + border-width: 1px 1px 1px 4px; 97.426 + padding: 0.5em; background: rgb(220, 20, 60) none repeat scroll 0%; 97.427 +} 97.428 + 97.429 +.svgt12 { 97.430 + background: rgb(153, 223, 255) none repeat scroll 0%; 97.431 + color: black; 97.432 +} 97.433 + 97.434 +a[href="http://www.w3.org/TR/SVG10/"] { background: red; } 97.435 +a[href="http://www.w3.org/TR/SVG11/"] { background: yellow; } 97.436 +a[href="http://www.w3.org/SVGMobile12/"] { background: green; } 97.437 + 97.438 +.new { 97.439 + border-style: solid; 97.440 + border-color: green; 97.441 + border-width: 0px 0px 0px 4px; 97.442 + padding-left: 20px; 97.443 + margin-left: -20px; 97.444 +} 97.445 + 97.446 +.changed { 97.447 + border-style: solid; 97.448 + border-color: blue; 97.449 + border-width: 0px 0px 0px 4px; 97.450 + padding-left: 20px; 97.451 + margin-left: -20px; 97.452 +} 97.453 + 97.454 +div.note-editor 97.455 +{ 97.456 + display:none; 97.457 +}
98.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 98.2 +++ b/filters/master/style/svgspec.css Mon Apr 11 10:08:48 2011 +1000 98.3 @@ -0,0 +1,105 @@ 98.4 +.term { 98.5 + FONT-WEIGHT: bold; COLOR: #aa3333; BACKGROUND-COLOR: white 98.6 +} 98.7 +PRE { 98.8 + FONT-SIZE: 90%; MARGIN-LEFT: 2em; COLOR: #a52a2a; FONT-FAMILY: monospace; BACKGROUND-COLOR: white 98.9 +} 98.10 +PRE.schema { 98.11 + BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddddff; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: maroon; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace 98.12 +} 98.13 +PRE.example { 98.14 + BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddffdd; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: #a52a2a; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace 98.15 +} 98.16 +.dtd-fragment { 98.17 + BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN-LEFT: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #dddddd 98.18 +} 98.19 +.idl-code { 98.20 + BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace; WHITE-SPACE: pre; BACKGROUND-COLOR: #dfdfdf 98.21 +} 98.22 +.adef { 98.23 + FONT-WEIGHT: bold; FONT-FAMILY: monospace 98.24 +} 98.25 +IMG { 98.26 + BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px 98.27 +} 98.28 +.toc { 98.29 + TEXT-INDENT: 0px 98.30 +} 98.31 +.toc2 { 98.32 + TEXT-INDENT: 2em 98.33 +} 98.34 +.toc3 { 98.35 + TEXT-INDENT: 4em 98.36 +} 98.37 +P.toc-line { 98.38 + MARGIN-TOP: 1em; MARGIN-BOTTOM: 1em; TEXT-INDENT: 0px 98.39 +} 98.40 +.example { 98.41 + COLOR: maroon; BACKGROUND-COLOR: white 98.42 +} 98.43 +.pseudocode { 98.44 + BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; COLOR: #990000; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #ccccff 98.45 +} 98.46 +.algorithm OL { 98.47 + LIST-STYLE-TYPE: decimal 98.48 +} 98.49 +.algorithm OL LI { 98.50 + MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 98.51 +} 98.52 +.algorithm OL LI OL { 98.53 + LIST-STYLE-TYPE: lower-alpha 98.54 +} 98.55 +.algorithm OL LI OL LI { 98.56 + MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 98.57 +} 98.58 +.algorithm OL LI OL LI OL { 98.59 + LIST-STYLE-TYPE: lower-roman 98.60 +} 98.61 +.algorithm OL LI OL LI OL LI { 98.62 + MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 98.63 +} 98.64 +.note { 98.65 + BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.3em; FONT-WEIGHT: bold; BACKGROUND: #aaffaa; PADDING-BOTTOM: 0.3em; MARGIN: 1em; BORDER-LEFT: black 1px solid; COLOR: black; PADDING-TOP: 0.3em; BORDER-BOTTOM: black 1px solid 98.66 +} 98.67 +P.caption { 98.68 + FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center 98.69 +} 98.70 +CAPTION { 98.71 + FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center 98.72 +} 98.73 +.element { 98.74 + FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #a52a2a; BACKGROUND-COLOR: white 98.75 +} 98.76 +.type { 98.77 + FONT-WEIGHT: bold; FONT-SIZE: 90% 98.78 +} 98.79 +.attribute { 98.80 + FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #2a2aa5; BACKGROUND-COLOR: white 98.81 +} 98.82 +.property { 98.83 + FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: black; BACKGROUND-COLOR: white 98.84 +} 98.85 +.attribute-value { 98.86 + FONT-WEIGHT: bold; FONT-SIZE: 90% 98.87 +} 98.88 +.property-value { 98.89 + FONT-WEIGHT: bold; FONT-SIZE: 90% 98.90 +} 98.91 +.interface { 98.92 + FONT-WEIGHT: bold 98.93 +} 98.94 +.dom-attribute { 98.95 + COLOR: black; BACKGROUND-COLOR: #ffffd2 98.96 +} 98.97 +.dom-attribute-type { 98.98 + FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white 98.99 +} 98.100 +.dom-attribute-value { 98.101 + FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white 98.102 +} 98.103 +.dom-method { 98.104 + COLOR: black; BACKGROUND-COLOR: #d9e6f8 98.105 +} 98.106 +.dom-parameter { 98.107 + COLOR: black; BACKGROUND-COLOR: #fee6f8 98.108 +}
99.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 99.2 +++ b/filters/master/svgfilters.idd Mon Apr 11 10:08:48 2011 +1000 99.3 @@ -0,0 +1,30 @@ 99.4 +[svg] 99.5 +[svg::SVGSVGElement::createSVGRect] 99.6 +Creates a new <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a> object. This object can be used to modify the value of traits which are compatible with the <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a> 99.7 + type using the <a href="#svg__TraitAccess_setRectTrait"><code>setRectTrait</code></a> method. The initial values for <a href="#svg__SVGRect_x"><code>x</code></a>, <a href="#svg__SVGRect_y"><code>y</code></a>, <a href="#svg__SVGRect_width"><code>width</code></a>, <a href="#svg__SVGRect_height"><code>height</code></a> of this new <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a> are zero. 99.8 + 99.9 + <dl> 99.10 + <dt><span class="dom-parameters">No Parameters</span></dt> 99.11 + </dl> 99.12 + 99.13 + 99.14 + <dl> 99.15 + <dt><span class="dom-returnvalue">Return value</span></dt> 99.16 + <dd> 99.17 + <table summary="method return value" border="0"> 99.18 + 99.19 + <tbody><tr> 99.20 + <td valign="top"><span class="dom-returnvalue-type"><a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a></span></td> 99.21 + <td> 99.22 + </td> 99.23 + <td>The created <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a>.</td> 99.24 + </tr> 99.25 + </tbody></table> 99.26 + </dd> 99.27 + 99.28 + </dl> 99.29 + 99.30 + 99.31 + <dl> 99.32 + <dt><span class="dom-parameters">No Exceptions</span></dt> 99.33 + </dl>
100.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 100.2 +++ b/filters/master/svgfilters.idl Mon Apr 11 10:08:48 2011 +1000 100.3 @@ -0,0 +1,1262 @@ 100.4 +// // File: svg.idl 100.5 +// #ifndef _SVG_IDL_ 100.6 +// #define _SVG_IDL_ 100.7 +// 100.8 +// 100.9 +// // For access to DOM2 core 100.10 +// #include "dom.idl" 100.11 +// 100.12 +// // For access to DOM2 events 100.13 +// #include "events.idl" 100.14 +// 100.15 +// // For access to those parts from DOM2 CSS OM used by SVG DOM. 100.16 +// #include "css.idl" 100.17 +// 100.18 +// // For access to those parts from DOM2 Views OM used by SVG DOM. 100.19 +// #include "views.idl" 100.20 +// 100.21 +// // For access to the SMIL OM used by SVG DOM. 100.22 +// #include "smil.idl" 100.23 +// 100.24 +// #pragma prefix "dom.w3c.org" 100.25 +// #pragma javaPackage "org.w3c.dom" 100.26 + 100.27 +module dom { 100.28 + exception DOMException { }; 100.29 + interface Element { }; 100.30 + interface Document { }; 100.31 + interface NodeList { }; 100.32 +}; 100.33 + 100.34 +module svg 100.35 +{ 100.36 + typedef dom::DOMException DOMException; 100.37 + typedef dom::Element Element; 100.38 + typedef dom::Document Document; 100.39 + typedef dom::NodeList NodeList; 100.40 + 100.41 + /** 100.42 + * The ImageData interface corresponds to pixel data that can be used as input to the SVGFilterElement interface. 100.43 + */ 100.44 + interface ImageData { 100.45 + /** 100.46 + * The width of the bitmap that the ImageData represents. 100.47 + */ 100.48 + readonly attribute long width; 100.49 + 100.50 + /** 100.51 + * The height of the bitmap that the ImageData represents. 100.52 + */ 100.53 + readonly attribute long height; 100.54 + 100.55 + /** 100.56 + * An array of pixel values that is the bitmap. This array must 100.57 + * always be in the form of width×height×4 integer values. The 100.58 + * pixel data is in left-to-right order, starting from the top-left 100.59 + * corner, and going row by row downwards. Every pixel is 100.60 + * represented by four integer values, red, green, blue and alpha, 100.61 + * in that order. The range of each color component is 0..255. The 100.62 + * intent is that this is compatible with the HTML5 [<a href="#ref-html5">HTML5</a>] 100.63 + * canvas interfaces, in particular see 100.64 + * <a href="http://www.w3.org/TR/html5/the-canvas.html#imagedata">ImageData</a>. 100.65 + */ 100.66 + readonly attribute sequence<octet> data; 100.67 + }; 100.68 + 100.69 + /** 100.70 + * The <a>SVGFilterElement</a> interface corresponds to the <a>'filter element'</a> 100.71 + * element. 100.72 + */ 100.73 + interface SVGFilterElement : 100.74 + SVGElement, 100.75 + SVGURIReference, 100.76 + SVGLangSpace, 100.77 + SVGExternalResourcesRequired, 100.78 + SVGStylable, 100.79 + SVGUnitTypes { 100.80 + 100.81 + /** 100.82 + * Corresponds to attribute <a>'filterUnits'</a> on the given <a>'filter element'</a> 100.83 + * element. Takes one of the constants defined in <a>SVGUnitTypes</a>. 100.84 + */ 100.85 + readonly attribute SVGAnimatedEnumeration filterUnits; 100.86 + 100.87 + /** 100.88 + * Corresponds to attribute <a>'primitiveUnits'</a> on the given <a>'filter element'</a> 100.89 + * element. Takes one of the constants defined in <a>SVGUnitTypes</a>. 100.90 + */ 100.91 + readonly attribute SVGAnimatedEnumeration primitiveUnits; 100.92 + 100.93 + /** 100.94 + * Corresponds to attribute <a>'x'</a> on the given <a>'filter element'</a> element. 100.95 + */ 100.96 + readonly attribute SVGAnimatedLength x; 100.97 + 100.98 + /** 100.99 + * Corresponds to attribute <a>'y'</a> on the given <a>'filter element'</a> element. 100.100 + */ 100.101 + readonly attribute SVGAnimatedLength y; 100.102 + 100.103 + /** 100.104 + * Corresponds to attribute <a>'width'</a> on the given <a>'filter element'</a> element. 100.105 + */ 100.106 + readonly attribute SVGAnimatedLength width; 100.107 + 100.108 + /** 100.109 + * Corresponds to attribute <a>'height'</a> on the given <a>'filter element'</a> element. 100.110 + */ 100.111 + readonly attribute SVGAnimatedLength height; 100.112 + 100.113 + /** 100.114 + * Corresponds to attribute <a>'filterRes'</a> on the given <a>'filter element'</a> 100.115 + * element. Contains the X component of attribute <a>'filterRes'</a>. 100.116 + */ 100.117 + readonly attribute SVGAnimatedInteger filterResX; 100.118 + 100.119 + /** 100.120 + * Corresponds to attribute <a>'filterRes'</a> on the given <a>'filter element'</a> 100.121 + * element. Contains the Y component (possibly computed automatically) of 100.122 + * attribute <a>'filterRes'</a>. 100.123 + */ 100.124 + readonly attribute SVGAnimatedInteger filterResY; 100.125 + 100.126 + /** 100.127 + * Sets the values for attribute <a>'filterRes'</a>. 100.128 + * 100.129 + * @param filterResX The X component of attribute <a>'filterRes'</a>. 100.130 + * @param filterResY The Y component of attribute <a>'filterRes'</a>. 100.131 + * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt 100.132 + * to change the value of a readonly attribute. 100.133 + */ 100.134 + void setFilterRes(in unsigned long filterResX, in unsigned long filterResY) raises(DOMException); 100.135 + 100.136 + /** 100.137 + * Applies the filter to the given ImageData object and returns the result. 100.138 + * 100.139 + * @param source The image to apply the filter to. 100.140 + * @return The result of the filter, see <a>ImageData</a> for how to construct this. 100.141 + */ 100.142 + ImageData apply(in ImageData source); 100.143 + }; 100.144 + 100.145 + /** 100.146 + * This interface defines the set of DOM attributes that are common across 100.147 + * the filter primitive interfaces. 100.148 + */ 100.149 + interface SVGFilterPrimitiveStandardAttributes : SVGStylable { 100.150 + 100.151 + /** 100.152 + * Corresponds to attribute <a>'x'</a> on the given element. 100.153 + */ 100.154 + readonly attribute SVGAnimatedLength x; 100.155 + 100.156 + /** 100.157 + * Corresponds to attribute <a>'y'</a> on the given element. 100.158 + */ 100.159 + readonly attribute SVGAnimatedLength y; 100.160 + 100.161 + /** 100.162 + * Corresponds to attribute <a>'width'</a> on the given element. 100.163 + */ 100.164 + readonly attribute SVGAnimatedLength width; 100.165 + 100.166 + /** 100.167 + * Corresponds to attribute <a>'height'</a> on the given element. 100.168 + */ 100.169 + readonly attribute SVGAnimatedLength height; 100.170 + 100.171 + /** 100.172 + * Corresponds to attribute <a>'result'</a> on the given element. 100.173 + */ 100.174 + readonly attribute SVGAnimatedString result; 100.175 + }; 100.176 + 100.177 + /** 100.178 + * The <a>SVGFEBlendElement</a> interface corresponds to the <a>'feBlend'</a> 100.179 + * element. 100.180 + */ 100.181 + interface SVGFEBlendElement : 100.182 + SVGElement, 100.183 + SVGFilterPrimitiveStandardAttributes { 100.184 + 100.185 + /** 100.186 + * The type is not one of predefined types. It is invalid to attempt to 100.187 + * define a new value of this type or to attempt to switch an existing 100.188 + * value to this type. 100.189 + * 100.190 + * @defgroup Blend Mode Types 100.191 + */ 100.192 + const unsigned short SVG_FEBLEND_MODE_UNKNOWN = 0; 100.193 + 100.194 + /** 100.195 + * Corresponds to value <span class="attr-value">'normal'</span>. 100.196 + * 100.197 + * @defgroup Blend Mode Types 100.198 + */ 100.199 + const unsigned short SVG_FEBLEND_MODE_NORMAL = 1; 100.200 + 100.201 + /** 100.202 + * Corresponds to value <span class="attr-value">'multiply'</span>. 100.203 + * 100.204 + * @defgroup Blend Mode Types 100.205 + */ 100.206 + const unsigned short SVG_FEBLEND_MODE_MULTIPLY = 2; 100.207 + 100.208 + /** 100.209 + * Corresponds to value <span class="attr-value">'screen'</span>. 100.210 + * 100.211 + * @defgroup Blend Mode Types 100.212 + */ 100.213 + const unsigned short SVG_FEBLEND_MODE_SCREEN = 3; 100.214 + 100.215 + /** 100.216 + * Corresponds to value <span class="attr-value">'darken'</span>. 100.217 + * 100.218 + * @defgroup Blend Mode Types 100.219 + */ 100.220 + const unsigned short SVG_FEBLEND_MODE_DARKEN = 4; 100.221 + 100.222 + /** 100.223 + * Corresponds to value <span class="attr-value">'lighten'</span>. 100.224 + * 100.225 + * @defgroup Blend Mode Types 100.226 + */ 100.227 + const unsigned short SVG_FEBLEND_MODE_LIGHTEN = 5; 100.228 + 100.229 + /** 100.230 + * Corresponds to attribute <a>'in'</a> on the given <a>'feBlend'</a> 100.231 + * element. 100.232 + */ 100.233 + readonly attribute SVGAnimatedString in1; 100.234 + 100.235 + /** 100.236 + * Corresponds to attribute <a>'in2'</a> on the given <a>'feBlend'</a> 100.237 + * element. 100.238 + */ 100.239 + readonly attribute SVGAnimatedString in2; 100.240 + 100.241 + /** 100.242 + * Corresponds to attribute <a>'mode'</a> on the given <a>'feBlend'</a> 100.243 + * element. Takes one of the SVG_FEBLEND_MODE_* constants defined on 100.244 + * this interface. 100.245 + */ 100.246 + readonly attribute SVGAnimatedEnumeration mode; 100.247 + }; 100.248 + 100.249 + /** 100.250 + * The <a>SVGFEColorMatrixElement</a> interface corresponds to the 100.251 + * <a>'feColorMatrix'</a> element. 100.252 + */ 100.253 + interface SVGFEColorMatrixElement : 100.254 + SVGElement, 100.255 + SVGFilterPrimitiveStandardAttributes { 100.256 + 100.257 + /** 100.258 + * The type is not one of predefined types. It is invalid to attempt to 100.259 + * define a new value of this type or to attempt to switch an existing 100.260 + * value to this type. 100.261 + * 100.262 + * @defgroup Color Matrix Types 100.263 + */ 100.264 + const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0; 100.265 + 100.266 + /** 100.267 + * Corresponds to value <span class="attr-value">'matrix'</span>. 100.268 + * 100.269 + * @defgroup Color Matrix Types 100.270 + */ 100.271 + const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX = 1; 100.272 + 100.273 + /** 100.274 + * Corresponds to value <span class="attr-value">'saturate'</span>. 100.275 + * 100.276 + * @defgroup Color Matrix Types 100.277 + */ 100.278 + const unsigned short SVG_FECOLORMATRIX_TYPE_SATURATE = 2; 100.279 + 100.280 + /** 100.281 + * Corresponds to value <span class="attr-value">'hueRotate'</span>. 100.282 + * 100.283 + * @defgroup Color Matrix Types 100.284 + */ 100.285 + const unsigned short SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3; 100.286 + 100.287 + /** 100.288 + * Corresponds to value <span class="attr-value">'luminanceToAlpha'</span>. 100.289 + * 100.290 + * @defgroup Color Matrix Types 100.291 + */ 100.292 + const unsigned short SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4; 100.293 + 100.294 + /** 100.295 + * Corresponds to attribute <a>'in'</a> on the given <a>'feColorMatrix'</a> 100.296 + * element. 100.297 + */ 100.298 + readonly attribute SVGAnimatedString in1; 100.299 + 100.300 + /** 100.301 + * Corresponds to attribute <a>'type'</a> on the given <a>'feColorMatrix'</a> 100.302 + * element. Takes one of the SVG_FECOLORMATRIX_TYPE_* constants defined 100.303 + * on this interface. 100.304 + */ 100.305 + readonly attribute SVGAnimatedEnumeration type; 100.306 + 100.307 + /** 100.308 + * Corresponds to attribute <a>'values'</a> on the given <a>'feColorMatrix'</a> 100.309 + * element. 100.310 + */ 100.311 + readonly attribute SVGAnimatedNumberList values; 100.312 + }; 100.313 + 100.314 + /** 100.315 + * The <a>SVGFEComponentTransferElement</a> interface corresponds to the 100.316 + * <a>'feComponentTransfer'</a> element. 100.317 + */ 100.318 + interface SVGFEComponentTransferElement : 100.319 + SVGElement, 100.320 + SVGFilterPrimitiveStandardAttributes { 100.321 + 100.322 + /** 100.323 + * Corresponds to attribute <a>'in'</a> on the given <a>'feComponentTransfer'</a> 100.324 + * element. 100.325 + */ 100.326 + readonly attribute SVGAnimatedString in1; 100.327 + }; 100.328 + 100.329 + /** 100.330 + * This interface defines a base interface used by the component transfer 100.331 + * function interfaces. 100.332 + */ 100.333 + interface SVGComponentTransferFunctionElement : SVGElement { 100.334 + 100.335 + /** 100.336 + * The type is not one of predefined types. It is invalid to attempt to 100.337 + * define a new value of this type or to attempt to switch an existing 100.338 + * value to this type. 100.339 + * 100.340 + * @defgroup Component Transfer Types 100.341 + */ 100.342 + const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0; 100.343 + 100.344 + /** 100.345 + * Corresponds to value <span class="attr-value">'identity'</span>. 100.346 + * 100.347 + * @defgroup Component Transfer Types 100.348 + */ 100.349 + const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1; 100.350 + 100.351 + /** 100.352 + * Corresponds to value <span class="attr-value">'table'</span>. 100.353 + * 100.354 + * @defgroup Component Transfer Types 100.355 + */ 100.356 + const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2; 100.357 + 100.358 + /** 100.359 + * Corresponds to value <span class="attr-value">'discrete'</span>. 100.360 + * 100.361 + * @defgroup Component Transfer Types 100.362 + */ 100.363 + const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3; 100.364 + 100.365 + /** 100.366 + * Corresponds to value <span class="attr-value">'linear'</span>. 100.367 + * 100.368 + * @defgroup Component Transfer Types 100.369 + */ 100.370 + const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4; 100.371 + 100.372 + /** 100.373 + * Corresponds to value <span class="attr-value">'gamma'</span>. 100.374 + * 100.375 + * @defgroup Component Transfer Types 100.376 + */ 100.377 + const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5; 100.378 + 100.379 + /** 100.380 + * Corresponds to attribute <a>'type'</a> on the given 100.381 + * element. Takes one of the SVG_FECOMPONENTTRANSFER_TYPE_* constants defined 100.382 + * on this interface. 100.383 + */ 100.384 + readonly attribute SVGAnimatedEnumeration type; 100.385 + 100.386 + /** 100.387 + * Corresponds to attribute <a>'tableValues'</a> on the given element. 100.388 + */ 100.389 + readonly attribute SVGAnimatedNumberList tableValues; 100.390 + 100.391 + /** 100.392 + * Corresponds to attribute <a>'slope'</a> on the given element. 100.393 + */ 100.394 + readonly attribute SVGAnimatedNumber slope; 100.395 + 100.396 + /** 100.397 + * Corresponds to attribute <a>'intercept'</a> on the given element. 100.398 + */ 100.399 + readonly attribute SVGAnimatedNumber intercept; 100.400 + 100.401 + /** 100.402 + * Corresponds to attribute <a>'amplitude'</a> on the given element. 100.403 + */ 100.404 + readonly attribute SVGAnimatedNumber amplitude; 100.405 + 100.406 + /** 100.407 + * Corresponds to attribute <a>'exponent'</a> on the given element. 100.408 + */ 100.409 + readonly attribute SVGAnimatedNumber exponent; 100.410 + 100.411 + /** 100.412 + * Corresponds to attribute <a>'offset'</a> on the given element. 100.413 + */ 100.414 + readonly attribute SVGAnimatedNumber offset; 100.415 + }; 100.416 + 100.417 + /** 100.418 + * The <a>SVGFEFuncRElement</a> interface corresponds to the <a>'feFuncR'</a> 100.419 + * element. 100.420 + */ 100.421 + interface SVGFEFuncRElement : SVGComponentTransferFunctionElement {}; 100.422 + 100.423 + /** 100.424 + * The <a>SVGFEFuncRElement</a> interface corresponds to the <a>'feFuncG'</a> 100.425 + * element. 100.426 + */ 100.427 + interface SVGFEFuncGElement : SVGComponentTransferFunctionElement {}; 100.428 + 100.429 + /** 100.430 + * The <a>SVGFEFuncBElement</a> interface corresponds to the <a>'feFuncB'</a> 100.431 + * element. 100.432 + */ 100.433 + interface SVGFEFuncBElement : SVGComponentTransferFunctionElement {}; 100.434 + 100.435 + /** 100.436 + * The <a>SVGFEFuncAElement</a> interface corresponds to the <a>'feFuncA'</a> 100.437 + * element. 100.438 + */ 100.439 + interface SVGFEFuncAElement : SVGComponentTransferFunctionElement {}; 100.440 + 100.441 + /** 100.442 + * The <a>SVGFECompositeElement</a> interface corresponds to the 100.443 + * <a>'feComposite'</a> element. 100.444 + */ 100.445 + interface SVGFECompositeElement : 100.446 + SVGElement, 100.447 + SVGFilterPrimitiveStandardAttributes { 100.448 + 100.449 + /** 100.450 + * The type is not one of predefined types. It is invalid to attempt to 100.451 + * define a new value of this type or to attempt to switch an existing 100.452 + * value to this type. 100.453 + * 100.454 + * @defgroup Composite Operators 100.455 + */ 100.456 + const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0; 100.457 + 100.458 + /** 100.459 + * Corresponds to value <span class="attr-value">'over'</span>. 100.460 + * 100.461 + * @defgroup Composite Operators 100.462 + */ 100.463 + const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER = 1; 100.464 + 100.465 + /** 100.466 + * Corresponds to value <span class="attr-value">'in'</span>. 100.467 + * 100.468 + * @defgroup Composite Operators 100.469 + */ 100.470 + const unsigned short SVG_FECOMPOSITE_OPERATOR_IN = 2; 100.471 + 100.472 + /** 100.473 + * Corresponds to value <span class="attr-value">'out'</span>. 100.474 + * 100.475 + * @defgroup Composite Operators 100.476 + */ 100.477 + const unsigned short SVG_FECOMPOSITE_OPERATOR_OUT = 3; 100.478 + 100.479 + /** 100.480 + * Corresponds to value <span class="attr-value">'atop'</span>. 100.481 + * 100.482 + * @defgroup Composite Operators 100.483 + */ 100.484 + const unsigned short SVG_FECOMPOSITE_OPERATOR_ATOP = 4; 100.485 + 100.486 + /** 100.487 + * Corresponds to value <span class="attr-value">'xor'</span>. 100.488 + * 100.489 + * @defgroup Composite Operators 100.490 + */ 100.491 + const unsigned short SVG_FECOMPOSITE_OPERATOR_XOR = 5; 100.492 + 100.493 + /** 100.494 + * Corresponds to value <span class="attr-value">'arithmetic'</span>. 100.495 + * 100.496 + * @defgroup Composite Operators 100.497 + */ 100.498 + const unsigned short SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6; 100.499 + 100.500 + /** 100.501 + * Corresponds to attribute <a>'in'</a> on the given <a>'feComposite'</a> 100.502 + * element. 100.503 + */ 100.504 + readonly attribute SVGAnimatedString in1; 100.505 + 100.506 + /** 100.507 + * Corresponds to attribute <a>'in2'</a> on the given <a>'feComposite'</a> 100.508 + * element. 100.509 + */ 100.510 + readonly attribute SVGAnimatedString in2; 100.511 + 100.512 + /** 100.513 + * Corresponds to attribute <a>'operator'</a> on the given <a>'feComposite'</a> 100.514 + * element. Takes one of the SVG_FECOMPOSITE_OPERATOR_* constants defined 100.515 + * on this interface. 100.516 + */ 100.517 + readonly attribute SVGAnimatedEnumeration operator; 100.518 + 100.519 + /** 100.520 + * Corresponds to attribute <a>'k1'</a> on the given <a>'feComposite'</a> 100.521 + * element. 100.522 + */ 100.523 + readonly attribute SVGAnimatedNumber k1; 100.524 + 100.525 + /** 100.526 + * Corresponds to attribute <a>'k2'</a> on the given <a>'feComposite'</a> 100.527 + * element. 100.528 + */ 100.529 + readonly attribute SVGAnimatedNumber k2; 100.530 + 100.531 + /** 100.532 + * Corresponds to attribute <a>'k3'</a> on the given <a>'feComposite'</a> 100.533 + * element. 100.534 + */ 100.535 + readonly attribute SVGAnimatedNumber k3; 100.536 + 100.537 + /** 100.538 + * Corresponds to attribute <a>'k4'</a> on the given <a>'feComposite'</a> 100.539 + * element. 100.540 + */ 100.541 + readonly attribute SVGAnimatedNumber k4; 100.542 + }; 100.543 + 100.544 + /** 100.545 + * The <a>SVGFEConvolveMatrixElement</a> interface corresponds to the 100.546 + * <a>'feConvolveMatrix'</a> element. 100.547 + */ 100.548 + interface SVGFEConvolveMatrixElement : 100.549 + SVGElement, 100.550 + SVGFilterPrimitiveStandardAttributes { 100.551 + 100.552 + /** 100.553 + * The type is not one of predefined types. It is invalid to attempt to 100.554 + * define a new value of this type or to attempt to switch an existing 100.555 + * value to this type. 100.556 + * 100.557 + * @defgroup Edge Mode Values 100.558 + */ 100.559 + const unsigned short SVG_EDGEMODE_UNKNOWN = 0; 100.560 + 100.561 + /** 100.562 + * Corresponds to value <span class="attr-value">'duplicate'</span>. 100.563 + * 100.564 + * @defgroup Edge Mode Values 100.565 + */ 100.566 + const unsigned short SVG_EDGEMODE_DUPLICATE = 1; 100.567 + 100.568 + /** 100.569 + * Corresponds to value <span class="attr-value">'wrap'</span>. 100.570 + * 100.571 + * @defgroup Edge Mode Values 100.572 + */ 100.573 + const unsigned short SVG_EDGEMODE_WRAP = 2; 100.574 + 100.575 + /** 100.576 + * Corresponds to value <span class="attr-value">'none'</span>. 100.577 + * 100.578 + * @defgroup Edge Mode Values 100.579 + */ 100.580 + const unsigned short SVG_EDGEMODE_NONE = 3; 100.581 + 100.582 + /** 100.583 + * Corresponds to attribute <a>'in'</a> on the given 100.584 + * <a>'feConvolveMatrix'</a> element. 100.585 + */ 100.586 + readonly attribute SVGAnimatedString in1; 100.587 + 100.588 + /** 100.589 + * Corresponds to attribute <a>'order'</a> on the given 100.590 + * <a>'feConvolveMatrix'</a> element. 100.591 + */ 100.592 + readonly attribute SVGAnimatedInteger orderX; 100.593 + 100.594 + /** 100.595 + * Corresponds to attribute <a>'order'</a> on the given 100.596 + * <a>'feConvolveMatrix'</a> element. 100.597 + */ 100.598 + readonly attribute SVGAnimatedInteger orderY; 100.599 + 100.600 + /** 100.601 + * Corresponds to attribute <a>'kernelMatrix'</a> on the given 100.602 + * <a>'feConvolveMatrix'</a> element. 100.603 + */ 100.604 + readonly attribute SVGAnimatedNumberList kernelMatrix; 100.605 + 100.606 + /** 100.607 + * Corresponds to attribute <a>'divisor'</a> on the given 100.608 + * <a>'feConvolveMatrix'</a> element. 100.609 + */ 100.610 + readonly attribute SVGAnimatedNumber divisor; 100.611 + 100.612 + /** 100.613 + * Corresponds to attribute <a>'bias'</a> on the given 100.614 + * <a>'feConvolveMatrix'</a> element. 100.615 + */ 100.616 + readonly attribute SVGAnimatedNumber bias; 100.617 + 100.618 + /** 100.619 + * Corresponds to attribute <a>'targetX'</a> on the given 100.620 + * <a>'feConvolveMatrix'</a> element. 100.621 + */ 100.622 + readonly attribute SVGAnimatedInteger targetX; 100.623 + 100.624 + /** 100.625 + * Corresponds to attribute <a>'targetY'</a> on the given 100.626 + * <a>'feConvolveMatrix'</a> element. 100.627 + */ 100.628 + readonly attribute SVGAnimatedInteger targetY; 100.629 + 100.630 + /** 100.631 + * Corresponds to attribute <a>'edgeMode'</a> on the given 100.632 + * <a>'feConvolveMatrix'</a> element. Takes one of the SVG_EDGEMODE_* 100.633 + * constants defined on this interface. 100.634 + */ 100.635 + readonly attribute SVGAnimatedEnumeration edgeMode; 100.636 + 100.637 + /** 100.638 + * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 100.639 + * <a>'feConvolveMatrix'</a> element. 100.640 + */ 100.641 + readonly attribute SVGAnimatedNumber kernelUnitLengthX; 100.642 + 100.643 + /** 100.644 + * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 100.645 + * <a>'feConvolveMatrix'</a> element. 100.646 + */ 100.647 + readonly attribute SVGAnimatedNumber kernelUnitLengthY; 100.648 + 100.649 + /** 100.650 + * Corresponds to attribute <a>'preserveAlpha'</a> on the given 100.651 + * <a>'feConvolveMatrix'</a> element. 100.652 + */ 100.653 + readonly attribute SVGAnimatedBoolean preserveAlpha; 100.654 + }; 100.655 + 100.656 + /** 100.657 + * The <a>SVGFEDiffuseLightingElement</a> interface corresponds to the 100.658 + * <a>'feDiffuseLighting'</a> element. 100.659 + */ 100.660 + interface SVGFEDiffuseLightingElement : 100.661 + SVGElement, 100.662 + SVGFilterPrimitiveStandardAttributes { 100.663 + 100.664 + /** 100.665 + * Corresponds to attribute <a>'in'</a> on the given <a>'feDiffuseLighting'</a> 100.666 + * element. 100.667 + */ 100.668 + readonly attribute SVGAnimatedString in1; 100.669 + 100.670 + /** 100.671 + * Corresponds to attribute <a>'surfaceScale'</a> on the given 100.672 + * <a>'feDiffuseLighting'</a> element. 100.673 + */ 100.674 + readonly attribute SVGAnimatedNumber surfaceScale; 100.675 + 100.676 + /** 100.677 + * Corresponds to attribute <a>'diffuseConstant'</a> on the given 100.678 + * <a>'feDiffuseLighting'</a> element. 100.679 + */ 100.680 + readonly attribute SVGAnimatedNumber diffuseConstant; 100.681 + 100.682 + /** 100.683 + * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 100.684 + * <a>'feDiffuseLighting'</a> element. 100.685 + */ 100.686 + readonly attribute SVGAnimatedNumber kernelUnitLengthX; 100.687 + 100.688 + /** 100.689 + * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 100.690 + * <a>'feDiffuseLighting'</a> element. 100.691 + */ 100.692 + readonly attribute SVGAnimatedNumber kernelUnitLengthY; 100.693 + }; 100.694 + 100.695 + /** 100.696 + * The <a>SVGFEDistantLightElement</a> interface corresponds to the 100.697 + * <a>'feDistantLight'</a> element. 100.698 + */ 100.699 + interface SVGFEDistantLightElement : SVGElement { 100.700 + 100.701 + /** 100.702 + * Corresponds to attribute <a>'azimuth'</a> on the given 100.703 + * <a>'feDistantLight'</a> element. 100.704 + */ 100.705 + readonly attribute SVGAnimatedNumber azimuth; 100.706 + 100.707 + /** 100.708 + * Corresponds to attribute <a>'elevation'</a> on the given 100.709 + * <a>'feDistantLight'</a> element. 100.710 + */ 100.711 + readonly attribute SVGAnimatedNumber elevation; 100.712 + }; 100.713 + 100.714 + /** 100.715 + * The <a>SVGFEPointLightElement</a> interface corresponds to the 100.716 + * <a>'fePointLight'</a> element. 100.717 + */ 100.718 + interface SVGFEPointLightElement : SVGElement { 100.719 + 100.720 + /** 100.721 + * Corresponds to attribute <a>'x'</a> on the given 100.722 + * <a>'fePointLight'</a> element. 100.723 + */ 100.724 + readonly attribute SVGAnimatedNumber x; 100.725 + 100.726 + /** 100.727 + * Corresponds to attribute <a>'y'</a> on the given 100.728 + * <a>'fePointLight'</a> element. 100.729 + */ 100.730 + readonly attribute SVGAnimatedNumber y; 100.731 + 100.732 + /** 100.733 + * Corresponds to attribute <a>'z'</a> on the given 100.734 + * <a>'fePointLight'</a> element. 100.735 + */ 100.736 + readonly attribute SVGAnimatedNumber z; 100.737 + }; 100.738 + 100.739 + /** 100.740 + * The <a>SVGFESpotLightElement</a> interface corresponds to the 100.741 + * <a>'feSpotLight'</a> element. 100.742 + */ 100.743 + interface SVGFESpotLightElement : SVGElement { 100.744 + 100.745 + /** 100.746 + * Corresponds to attribute <a>'x'</a> on the given 100.747 + * <a>'feSpotLight'</a> element. 100.748 + */ 100.749 + readonly attribute SVGAnimatedNumber x; 100.750 + 100.751 + /** 100.752 + * Corresponds to attribute <a>'y'</a> on the given 100.753 + * <a>'feSpotLight'</a> element. 100.754 + */ 100.755 + readonly attribute SVGAnimatedNumber y; 100.756 + 100.757 + /** 100.758 + * Corresponds to attribute <a>'z'</a> on the given 100.759 + * <a>'feSpotLight'</a> element. 100.760 + */ 100.761 + readonly attribute SVGAnimatedNumber z; 100.762 + 100.763 + /** 100.764 + * Corresponds to attribute <a>'pointsAtX'</a> on the given 100.765 + * <a>'feSpotLight'</a> element. 100.766 + */ 100.767 + readonly attribute SVGAnimatedNumber pointsAtX; 100.768 + 100.769 + /** 100.770 + * Corresponds to attribute <a>'pointsAtY'</a> on the given 100.771 + * <a>'feSpotLight'</a> element. 100.772 + */ 100.773 + readonly attribute SVGAnimatedNumber pointsAtY; 100.774 + 100.775 + /** 100.776 + * Corresponds to attribute <a>'pointsAtZ'</a> on the given 100.777 + * <a>'feSpotLight'</a> element. 100.778 + */ 100.779 + readonly attribute SVGAnimatedNumber pointsAtZ; 100.780 + 100.781 + /** 100.782 + * Corresponds to attribute <a>'specularExponent'</a> on the given 100.783 + * <a>'feSpotLight'</a> element. 100.784 + */ 100.785 + readonly attribute SVGAnimatedNumber specularExponent; 100.786 + 100.787 + /** 100.788 + * Corresponds to attribute <a>'limitingConeAngle'</a> on the given 100.789 + * <a>'feSpotLight'</a> element. 100.790 + */ 100.791 + readonly attribute SVGAnimatedNumber limitingConeAngle; 100.792 + }; 100.793 + 100.794 + /** 100.795 + * The <a>SVGFEDisplacementMapElement</a> interface corresponds to the 100.796 + * <a>'feDisplacementMap'</a> element. 100.797 + */ 100.798 + interface SVGFEDisplacementMapElement : 100.799 + SVGElement, 100.800 + SVGFilterPrimitiveStandardAttributes { 100.801 + 100.802 + /** 100.803 + * The type is not one of predefined types. It is invalid to attempt to 100.804 + * define a new value of this type or to attempt to switch an existing 100.805 + * value to this type. 100.806 + * 100.807 + * @defgroup Channel Selectors 100.808 + */ 100.809 + const unsigned short SVG_CHANNEL_UNKNOWN = 0; 100.810 + 100.811 + /** 100.812 + * Corresponds to value <span class="attr-value">'R'</span>. 100.813 + * 100.814 + * @defgroup Channel Selectors 100.815 + */ 100.816 + const unsigned short SVG_CHANNEL_R = 1; 100.817 + 100.818 + /** 100.819 + * Corresponds to value <span class="attr-value">'G'</span>. 100.820 + * 100.821 + * @defgroup Channel Selectors 100.822 + */ 100.823 + const unsigned short SVG_CHANNEL_G = 2; 100.824 + 100.825 + /** 100.826 + * Corresponds to value <span class="attr-value">'B'</span>. 100.827 + * 100.828 + * @defgroup Channel Selectors 100.829 + */ 100.830 + const unsigned short SVG_CHANNEL_B = 3; 100.831 + 100.832 + /** 100.833 + * Corresponds to value <span class="attr-value">'A'</span>. 100.834 + * 100.835 + * @defgroup Channel Selectors 100.836 + */ 100.837 + const unsigned short SVG_CHANNEL_A = 4; 100.838 + 100.839 + /** 100.840 + * Corresponds to attribute <a>'in'</a> on the given <a>'feDisplacementMap'</a> 100.841 + * element. 100.842 + */ 100.843 + readonly attribute SVGAnimatedString in1; 100.844 + 100.845 + /** 100.846 + * Corresponds to attribute <a>'in2'</a> on the given <a>'feDisplacementMap'</a> 100.847 + * element. 100.848 + */ 100.849 + readonly attribute SVGAnimatedString in2; 100.850 + 100.851 + /** 100.852 + * Corresponds to attribute <a>'scale'</a> on the given <a>'feDisplacementMap'</a> 100.853 + * element. 100.854 + */ 100.855 + readonly attribute SVGAnimatedNumber scale; 100.856 + 100.857 + /** 100.858 + * Corresponds to attribute <a>'xChannelSelector'</a> on the given 100.859 + * <a>'feDisplacementMap'</a> element. Takes one of the SVG_CHANNEL_* 100.860 + * constants defined on this interface. 100.861 + */ 100.862 + readonly attribute SVGAnimatedEnumeration xChannelSelector; 100.863 + 100.864 + /** 100.865 + * Corresponds to attribute <a>'yChannelSelector'</a> on the given 100.866 + * <a>'feDisplacementMap'</a> element. Takes one of the SVG_CHANNEL_* 100.867 + * constants defined on this interface. 100.868 + */ 100.869 + readonly attribute SVGAnimatedEnumeration yChannelSelector; 100.870 + }; 100.871 + 100.872 + /** 100.873 + * The <a>SVGFEFloodElement</a> interface corresponds to the 100.874 + * <a>'feFlood'</a> element. 100.875 + */ 100.876 + interface SVGFEFloodElement : 100.877 + SVGElement, 100.878 + SVGFilterPrimitiveStandardAttributes { 100.879 + }; 100.880 + 100.881 + /** 100.882 + * The <a>SVGFEGaussianBlurElement</a> interface corresponds to the 100.883 + * <a>'feGaussianBlur'</a> element. 100.884 + */ 100.885 + interface SVGFEGaussianBlurElement : 100.886 + SVGElement, 100.887 + SVGFilterPrimitiveStandardAttributes { 100.888 + 100.889 + /** 100.890 + * Corresponds to attribute <a>'in'</a> on the given 100.891 + * <a>'feGaussianBlur'</a> element. 100.892 + */ 100.893 + readonly attribute SVGAnimatedString in1; 100.894 + 100.895 + /** 100.896 + * Corresponds to attribute <a>'stdDeviation'</a> on the given 100.897 + * <a>'feGaussianBlur'</a> element. Contains the X component 100.898 + * of attribute <a>'stdDeviation'</a>. 100.899 + */ 100.900 + readonly attribute SVGAnimatedNumber stdDeviationX; 100.901 + 100.902 + /** 100.903 + * Corresponds to attribute <a>'stdDeviation'</a> on the given 100.904 + * <a>'feGaussianBlur'</a> element. Contains the Y component 100.905 + * (possibly computed automatically) of attribute <a>'stdDeviation'</a>. 100.906 + */ 100.907 + readonly attribute SVGAnimatedNumber stdDeviationY; 100.908 + 100.909 + /** 100.910 + * Sets the values for attribute <a>'stdDeviation'</a>. 100.911 + * 100.912 + * @param stdDeviationX The X component of attribute <a>'stdDeviation'</a>. 100.913 + * @param stdDeviationY The Y component of attribute <a>'stdDeviation'</a>. 100.914 + * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt 100.915 + * to change the value of a readonly attribute. 100.916 + */ 100.917 + void setStdDeviation(in float stdDeviationX, in float stdDeviationY) raises(DOMException); 100.918 + }; 100.919 + 100.920 + /** 100.921 + * The <a>SVGFEUnsharpMaskElement</a> interface corresponds to the 100.922 + * <a>'feUnsharpMask'</a> element. 100.923 + */ 100.924 + interface SVGFEUnsharpMaskElement : 100.925 + SVGElement, 100.926 + SVGFilterPrimitiveStandardAttributes { 100.927 + 100.928 + /** 100.929 + * Corresponds to attribute <a>'in'</a> on the given 100.930 + * <a>'feUnsharpMask'</a> element. 100.931 + */ 100.932 + readonly attribute SVGAnimatedString in1; 100.933 + 100.934 + /** 100.935 + * Corresponds to attribute <a>'stdDeviation'</a> on the given 100.936 + * <a>'feUnsharpMask'</a> element. Contains the X component 100.937 + * of attribute <a>'feUnsharpMask'</a>. 100.938 + */ 100.939 + readonly attribute SVGAnimatedNumber stdDeviationX; 100.940 + 100.941 + /** 100.942 + * Corresponds to attribute <a>'stdDeviation'</a> on the given 100.943 + * <a>'feUnsharpMask'</a> element. Contains the Y component 100.944 + * (possibly computed automatically) of attribute <a>'stdDeviation'</a>. 100.945 + */ 100.946 + readonly attribute SVGAnimatedNumber stdDeviationY; 100.947 + 100.948 + /** 100.949 + * Corresponds to attribute <a>'amount'</a> on the given 100.950 + * <a>'feUnsharpMask'</a> element. 100.951 + */ 100.952 + readonly attribute SVGAnimatedNumber amount; 100.953 + 100.954 + /** 100.955 + * Corresponds to attribute <a>'threshold'</a> on the given 100.956 + * <a>'feUnsharpMask'</a> element. 100.957 + */ 100.958 + readonly attribute SVGAnimatedNumber threshold; 100.959 + 100.960 + /** 100.961 + * Sets the values for attribute <a>'stdDeviation'</a>. 100.962 + * 100.963 + * @param stdDeviationX The X component of attribute <a>'stdDeviation'</a>. 100.964 + * @param stdDeviationY The Y component of attribute <a>'stdDeviation'</a>. 100.965 + * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt 100.966 + * to change the value of a readonly attribute. 100.967 + */ 100.968 + void setStdDeviation(in float stdDeviationX, in float stdDeviationY) raises(DOMException); 100.969 + }; 100.970 + 100.971 + /** 100.972 + * The <a>SVGFEImageElement</a> interface corresponds to the 100.973 + * <a>'feImage'</a> element. 100.974 + */ 100.975 + interface SVGFEImageElement : 100.976 + SVGElement, 100.977 + SVGURIReference, 100.978 + SVGLangSpace, 100.979 + SVGExternalResourcesRequired, 100.980 + SVGFilterPrimitiveStandardAttributes { 100.981 + 100.982 + /** 100.983 + * Corresponds to attribute <a>'preserveAspectRatio'</a> on the given 100.984 + * <a>'feImage'</a> element. 100.985 + */ 100.986 + readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio; 100.987 + }; 100.988 + 100.989 + /** 100.990 + * The <a>SVGFEMergeElement</a> interface corresponds to the 100.991 + * <a>'feMerge'</a> element. 100.992 + */ 100.993 + interface SVGFEMergeElement : 100.994 + SVGElement, 100.995 + SVGFilterPrimitiveStandardAttributes {}; 100.996 + 100.997 + /** 100.998 + * The <a>SVGFEMergeNodeElement</a> interface corresponds to the 100.999 + * <a>'feMergeNode'</a> element. 100.1000 + */ 100.1001 + interface SVGFEMergeNodeElement : SVGElement { 100.1002 + 100.1003 + /** 100.1004 + * Corresponds to attribute <a>'in'</a> on the given <a>'feMergeNode'</a> 100.1005 + * element. 100.1006 + */ 100.1007 + readonly attribute SVGAnimatedString in1; 100.1008 + }; 100.1009 + 100.1010 + /** 100.1011 + * The <a>SVGFEMorphologyElement</a> interface corresponds to the 100.1012 + * <a>'feMorphology'</a> element. 100.1013 + */ 100.1014 + interface SVGFEMorphologyElement : 100.1015 + SVGElement, 100.1016 + SVGFilterPrimitiveStandardAttributes { 100.1017 + 100.1018 + /** 100.1019 + * The type is not one of predefined types. It is invalid to attempt to 100.1020 + * define a new value of this type or to attempt to switch an existing 100.1021 + * value to this type. 100.1022 + * 100.1023 + * @defgroup Morphology Operators 100.1024 + */ 100.1025 + const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0; 100.1026 + 100.1027 + /** 100.1028 + * Corresponds to value <span class="attr-value">'erode'</span>. 100.1029 + * 100.1030 + * @defgroup Morphology Operators 100.1031 + */ 100.1032 + const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE = 1; 100.1033 + 100.1034 + /** 100.1035 + * Corresponds to value <span class="attr-value">'dilate'</span>. 100.1036 + * 100.1037 + * @defgroup Morphology Operators 100.1038 + */ 100.1039 + const unsigned short SVG_MORPHOLOGY_OPERATOR_DILATE = 2; 100.1040 + 100.1041 + /** 100.1042 + * Corresponds to attribute <a>'in'</a> on the given <a>'feMorphology'</a> 100.1043 + * element. 100.1044 + */ 100.1045 + readonly attribute SVGAnimatedString in1; 100.1046 + 100.1047 + /** 100.1048 + * Corresponds to attribute <a>'operator'</a> on the given <a>'feMorphology'</a> 100.1049 + * element. Takes one of the SVG_MORPHOLOGY_OPERATOR_* constants 100.1050 + * defined on this interface. 100.1051 + */ 100.1052 + readonly attribute SVGAnimatedEnumeration operator; 100.1053 + 100.1054 + /** 100.1055 + * Corresponds to attribute <a>'radius'</a> on the given <a>'feMorphology'</a> 100.1056 + * element. 100.1057 + */ 100.1058 + readonly attribute SVGAnimatedNumber radiusX; 100.1059 + 100.1060 + /** 100.1061 + * Corresponds to attribute <a>'radius'</a> on the given <a>'feMorphology'</a> 100.1062 + * element. 100.1063 + */ 100.1064 + readonly attribute SVGAnimatedNumber radiusY; 100.1065 + }; 100.1066 + 100.1067 + /** 100.1068 + * The <a>SVGFEOffsetElement</a> interface corresponds to the 100.1069 + * <a>'feOffset'</a> element. 100.1070 + */ 100.1071 + interface SVGFEOffsetElement : 100.1072 + SVGElement, 100.1073 + SVGFilterPrimitiveStandardAttributes { 100.1074 + 100.1075 + /** 100.1076 + * Corresponds to attribute <a>'in'</a> on the given <a>'feOffset'</a> 100.1077 + * element. 100.1078 + */ 100.1079 + readonly attribute SVGAnimatedString in1; 100.1080 + 100.1081 + /** 100.1082 + * Corresponds to attribute <a>'dx'</a> on the given <a>'feOffset'</a> 100.1083 + * element. 100.1084 + */ 100.1085 + readonly attribute SVGAnimatedNumber dx; 100.1086 + 100.1087 + /** 100.1088 + * Corresponds to attribute <a>'dy'</a> on the given <a>'feOffset'</a> 100.1089 + * element. 100.1090 + */ 100.1091 + readonly attribute SVGAnimatedNumber dy; 100.1092 + }; 100.1093 + 100.1094 + /** 100.1095 + * The <a>SVGFESpecularLightingElement</a> interface corresponds to the 100.1096 + * <a>'feSpecularLighting'</a> element. 100.1097 + */ 100.1098 + interface SVGFESpecularLightingElement : 100.1099 + SVGElement, 100.1100 + SVGFilterPrimitiveStandardAttributes { 100.1101 + 100.1102 + /** 100.1103 + * Corresponds to attribute <a>'in'</a> on the given <a>'feSpecularLighting'</a> 100.1104 + * element. 100.1105 + */ 100.1106 + readonly attribute SVGAnimatedString in1; 100.1107 + 100.1108 + /** 100.1109 + * Corresponds to attribute <a>'surfaceScale'</a> on the given 100.1110 + * <a>'feSpecularLighting'</a> element. 100.1111 + */ 100.1112 + readonly attribute SVGAnimatedNumber surfaceScale; 100.1113 + 100.1114 + /** 100.1115 + * Corresponds to attribute <a>'specularConstant'</a> on the given 100.1116 + * <a>'feSpecularLighting'</a> element. 100.1117 + */ 100.1118 + readonly attribute SVGAnimatedNumber specularConstant; 100.1119 + 100.1120 + /** 100.1121 + * Corresponds to attribute <a>'specularExponent'</a> on the given 100.1122 + * <a>'feSpecularLighting'</a> element. 100.1123 + */ 100.1124 + readonly attribute SVGAnimatedNumber specularExponent; 100.1125 + 100.1126 + /** 100.1127 + * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 100.1128 + * <a>'feSpecularLighting'</a> element. 100.1129 + */ 100.1130 + readonly attribute SVGAnimatedNumber kernelUnitLengthX; 100.1131 + 100.1132 + /** 100.1133 + * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 100.1134 + * <a>'feSpecularLighting'</a> element. 100.1135 + */ 100.1136 + readonly attribute SVGAnimatedNumber kernelUnitLengthY; 100.1137 + }; 100.1138 + 100.1139 + /** 100.1140 + * The <a>SVGFETileElement</a> interface corresponds to the 100.1141 + * <a>'feTile'</a> element. 100.1142 + */ 100.1143 + interface SVGFETileElement : 100.1144 + SVGElement, 100.1145 + SVGFilterPrimitiveStandardAttributes { 100.1146 + 100.1147 + /** 100.1148 + * Corresponds to attribute <a>'in'</a> on the given <a>'feTile'</a> 100.1149 + * element. 100.1150 + */ 100.1151 + readonly attribute SVGAnimatedString in1; 100.1152 + }; 100.1153 + 100.1154 + /** 100.1155 + * The <a>SVGFETurbulenceElement</a> interface corresponds to the 100.1156 + * <a>'feTurbulence'</a> element. 100.1157 + */ 100.1158 + interface SVGFETurbulenceElement : 100.1159 + SVGElement, 100.1160 + SVGFilterPrimitiveStandardAttributes { 100.1161 + 100.1162 + /** 100.1163 + * The type is not one of predefined types. It is invalid to attempt to 100.1164 + * define a new value of this type or to attempt to switch an existing 100.1165 + * value to this type. 100.1166 + * 100.1167 + * @defgroup Turbulence Types 100.1168 + */ 100.1169 + const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN = 0; 100.1170 + 100.1171 + /** 100.1172 + * Corresponds to value <span class="attr-value">'fractalNoise'</span>. 100.1173 + * 100.1174 + * @defgroup Turbulence Types 100.1175 + */ 100.1176 + const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1; 100.1177 + 100.1178 + /** 100.1179 + * Corresponds to value <span class="attr-value">'turbulence'</span>. 100.1180 + * 100.1181 + * @defgroup Turbulence Types 100.1182 + */ 100.1183 + const unsigned short SVG_TURBULENCE_TYPE_TURBULENCE = 2; 100.1184 + 100.1185 + /** 100.1186 + * The type is not one of predefined types. It is invalid to attempt to 100.1187 + * define a new value of this type or to attempt to switch an existing 100.1188 + * value to this type. 100.1189 + * 100.1190 + * @defgroup Stitch Options 100.1191 + */ 100.1192 + const unsigned short SVG_STITCHTYPE_UNKNOWN = 0; 100.1193 + 100.1194 + /** 100.1195 + * Corresponds to value <span class="attr-value">'stitch'</span>. 100.1196 + * 100.1197 + * @defgroup Stitch Options 100.1198 + */ 100.1199 + const unsigned short SVG_STITCHTYPE_STITCH = 1; 100.1200 + 100.1201 + /** 100.1202 + * Corresponds to value <span class="attr-value">'noStitch'</span>. 100.1203 + * 100.1204 + * @defgroup Stitch Options 100.1205 + */ 100.1206 + const unsigned short SVG_STITCHTYPE_NOSTITCH = 2; 100.1207 + 100.1208 + /** 100.1209 + * Corresponds to attribute <a>'baseFrequency'</a> on the given 100.1210 + * <a>'feTurbulence'</a> element. Contains the X component of the 100.1211 + * <a>'baseFrequency'</a> attribute. 100.1212 + */ 100.1213 + readonly attribute SVGAnimatedNumber baseFrequencyX; 100.1214 + 100.1215 + /** 100.1216 + * Corresponds to attribute <a>'baseFrequency'</a> on the given 100.1217 + * <a>'feTurbulence'</a> element. Contains the Y component of the 100.1218 + * (possibly computed automatically) <a>'baseFrequency'</a> attribute. 100.1219 + */ 100.1220 + readonly attribute SVGAnimatedNumber baseFrequencyY; 100.1221 + 100.1222 + /** 100.1223 + * Corresponds to attribute <a>'numOctaves'</a> on the given 100.1224 + * <a>'feTurbulence'</a> element. 100.1225 + */ 100.1226 + readonly attribute SVGAnimatedInteger numOctaves; 100.1227 + 100.1228 + /** 100.1229 + * Corresponds to attribute <a>'seed'</a> on the given 100.1230 + * <a>'feTurbulence'</a> element. 100.1231 + */ 100.1232 + readonly attribute SVGAnimatedNumber seed; 100.1233 + 100.1234 + /** 100.1235 + * Corresponds to attribute <a>'stitchTiles'</a> on the given 100.1236 + * <a>'feTurbulence'</a> element. Takes one of the SVG_STITCHTYPE_* 100.1237 + * constants defined on this interface. 100.1238 + */ 100.1239 + readonly attribute SVGAnimatedEnumeration stitchTiles; 100.1240 + 100.1241 + /** 100.1242 + * Corresponds to attribute <a>'type'</a> on the given 100.1243 + * <a>'feTurbulence'</a> element. Takes one of the SVG_TURBULENCE_TYPE_* 100.1244 + * constants defined on this interface. 100.1245 + */ 100.1246 + readonly attribute SVGAnimatedEnumeration type; 100.1247 + }; 100.1248 + 100.1249 + /** 100.1250 + * The <a>SVGFEDropShadowElement</a> interface corresponds to the 100.1251 + * <a>'feDropShadow'</a> element. 100.1252 + */ 100.1253 + interface SVGFEDropShadowElement : 100.1254 + SVGElement, 100.1255 + SVGFilterPrimitiveStandardAttributes { 100.1256 + 100.1257 + readonly attribute SVGAnimatedString in1; 100.1258 + readonly attribute SVGAnimatedNumber dx; 100.1259 + readonly attribute SVGAnimatedNumber dy; 100.1260 + readonly attribute SVGAnimatedNumber stdDeviationX; 100.1261 + readonly attribute SVGAnimatedNumber stdDeviationY; 100.1262 + }; 100.1263 +}; 100.1264 + 100.1265 +// #endif // _SVG_FILTERS_IDL_
101.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 101.2 +++ b/filters/master/xhtml1-transitional+edit.dtd Mon Apr 11 10:08:48 2011 +1000 101.3 @@ -0,0 +1,1400 @@ 101.4 +<!-- 101.5 + Extensible HTML version 1.0 Transitional plus edit DTD 101.6 + 101.7 + This is the same as HTML 4 Transitional except for 101.8 + changes due to the differences between XML and SGML. 101.9 + 101.10 + ** and except for adding funky xmlns:edit stuff ** 101.11 + ** and the inclusion of the entities from xhtml-lat1.ent ** 101.12 + 101.13 + Namespace = http://www.w3.org/1999/xhtml 101.14 + 101.15 + For further information, see: http://www.w3.org/TR/xhtml1 101.16 + 101.17 + Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio), 101.18 + All Rights Reserved. 101.19 + 101.20 + This DTD module is identified by the PUBLIC and SYSTEM identifiers: 101.21 + 101.22 + PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" 101.23 + SYSTEM "xhtml1-transitional+edit.dtd" 101.24 + 101.25 + $Revision$ 101.26 + $Date$ 101.27 + 101.28 +--> 101.29 + 101.30 +<!--================ Character mnemonic entities =========================--> 101.31 + 101.32 +<!ENTITY nbsp " "> <!-- no-break space = non-breaking space, 101.33 + U+00A0 ISOnum --> 101.34 +<!ENTITY iexcl "¡"> <!-- inverted exclamation mark, U+00A1 ISOnum --> 101.35 +<!ENTITY cent "¢"> <!-- cent sign, U+00A2 ISOnum --> 101.36 +<!ENTITY pound "£"> <!-- pound sign, U+00A3 ISOnum --> 101.37 +<!ENTITY curren "¤"> <!-- currency sign, U+00A4 ISOnum --> 101.38 +<!ENTITY yen "¥"> <!-- yen sign = yuan sign, U+00A5 ISOnum --> 101.39 +<!ENTITY brvbar "¦"> <!-- broken bar = broken vertical bar, 101.40 + U+00A6 ISOnum --> 101.41 +<!ENTITY sect "§"> <!-- section sign, U+00A7 ISOnum --> 101.42 +<!ENTITY uml "¨"> <!-- diaeresis = spacing diaeresis, 101.43 + U+00A8 ISOdia --> 101.44 +<!ENTITY copy "©"> <!-- copyright sign, U+00A9 ISOnum --> 101.45 +<!ENTITY ordf "ª"> <!-- feminine ordinal indicator, U+00AA ISOnum --> 101.46 +<!ENTITY laquo "«"> <!-- left-pointing double angle quotation mark 101.47 + = left pointing guillemet, U+00AB ISOnum --> 101.48 +<!ENTITY not "¬"> <!-- not sign = angled dash, 101.49 + U+00AC ISOnum --> 101.50 +<!ENTITY shy "­"> <!-- soft hyphen = discretionary hyphen, 101.51 + U+00AD ISOnum --> 101.52 +<!ENTITY reg "®"> <!-- registered sign = registered trade mark sign, 101.53 + U+00AE ISOnum --> 101.54 +<!ENTITY macr "¯"> <!-- macron = spacing macron = overline 101.55 + = APL overbar, U+00AF ISOdia --> 101.56 +<!ENTITY deg "°"> <!-- degree sign, U+00B0 ISOnum --> 101.57 +<!ENTITY plusmn "±"> <!-- plus-minus sign = plus-or-minus sign, 101.58 + U+00B1 ISOnum --> 101.59 +<!ENTITY sup2 "²"> <!-- superscript two = superscript digit two 101.60 + = squared, U+00B2 ISOnum --> 101.61 +<!ENTITY sup3 "³"> <!-- superscript three = superscript digit three 101.62 + = cubed, U+00B3 ISOnum --> 101.63 +<!ENTITY acute "´"> <!-- acute accent = spacing acute, 101.64 + U+00B4 ISOdia --> 101.65 +<!ENTITY micro "µ"> <!-- micro sign, U+00B5 ISOnum --> 101.66 +<!ENTITY para "¶"> <!-- pilcrow sign = paragraph sign, 101.67 + U+00B6 ISOnum --> 101.68 +<!ENTITY middot "·"> <!-- middle dot = Georgian comma 101.69 + = Greek middle dot, U+00B7 ISOnum --> 101.70 +<!ENTITY cedil "¸"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia --> 101.71 +<!ENTITY sup1 "¹"> <!-- superscript one = superscript digit one, 101.72 + U+00B9 ISOnum --> 101.73 +<!ENTITY ordm "º"> <!-- masculine ordinal indicator, 101.74 + U+00BA ISOnum --> 101.75 +<!ENTITY raquo "»"> <!-- right-pointing double angle quotation mark 101.76 + = right pointing guillemet, U+00BB ISOnum --> 101.77 +<!ENTITY frac14 "¼"> <!-- vulgar fraction one quarter 101.78 + = fraction one quarter, U+00BC ISOnum --> 101.79 +<!ENTITY frac12 "½"> <!-- vulgar fraction one half 101.80 + = fraction one half, U+00BD ISOnum --> 101.81 +<!ENTITY frac34 "¾"> <!-- vulgar fraction three quarters 101.82 + = fraction three quarters, U+00BE ISOnum --> 101.83 +<!ENTITY iquest "¿"> <!-- inverted question mark 101.84 + = turned question mark, U+00BF ISOnum --> 101.85 +<!ENTITY Agrave "À"> <!-- latin capital letter A with grave 101.86 + = latin capital letter A grave, 101.87 + U+00C0 ISOlat1 --> 101.88 +<!ENTITY Aacute "Á"> <!-- latin capital letter A with acute, 101.89 + U+00C1 ISOlat1 --> 101.90 +<!ENTITY Acirc "Â"> <!-- latin capital letter A with circumflex, 101.91 + U+00C2 ISOlat1 --> 101.92 +<!ENTITY Atilde "Ã"> <!-- latin capital letter A with tilde, 101.93 + U+00C3 ISOlat1 --> 101.94 +<!ENTITY Auml "Ä"> <!-- latin capital letter A with diaeresis, 101.95 + U+00C4 ISOlat1 --> 101.96 +<!ENTITY Aring "Å"> <!-- latin capital letter A with ring above 101.97 + = latin capital letter A ring, 101.98 + U+00C5 ISOlat1 --> 101.99 +<!ENTITY AElig "Æ"> <!-- latin capital letter AE 101.100 + = latin capital ligature AE, 101.101 + U+00C6 ISOlat1 --> 101.102 +<!ENTITY Ccedil "Ç"> <!-- latin capital letter C with cedilla, 101.103 + U+00C7 ISOlat1 --> 101.104 +<!ENTITY Egrave "È"> <!-- latin capital letter E with grave, 101.105 + U+00C8 ISOlat1 --> 101.106 +<!ENTITY Eacute "É"> <!-- latin capital letter E with acute, 101.107 + U+00C9 ISOlat1 --> 101.108 +<!ENTITY Ecirc "Ê"> <!-- latin capital letter E with circumflex, 101.109 + U+00CA ISOlat1 --> 101.110 +<!ENTITY Euml "Ë"> <!-- latin capital letter E with diaeresis, 101.111 + U+00CB ISOlat1 --> 101.112 +<!ENTITY Igrave "Ì"> <!-- latin capital letter I with grave, 101.113 + U+00CC ISOlat1 --> 101.114 +<!ENTITY Iacute "Í"> <!-- latin capital letter I with acute, 101.115 + U+00CD ISOlat1 --> 101.116 +<!ENTITY Icirc "Î"> <!-- latin capital letter I with circumflex, 101.117 + U+00CE ISOlat1 --> 101.118 +<!ENTITY Iuml "Ï"> <!-- latin capital letter I with diaeresis, 101.119 + U+00CF ISOlat1 --> 101.120 +<!ENTITY ETH "Ð"> <!-- latin capital letter ETH, U+00D0 ISOlat1 --> 101.121 +<!ENTITY Ntilde "Ñ"> <!-- latin capital letter N with tilde, 101.122 + U+00D1 ISOlat1 --> 101.123 +<!ENTITY Ograve "Ò"> <!-- latin capital letter O with grave, 101.124 + U+00D2 ISOlat1 --> 101.125 +<!ENTITY Oacute "Ó"> <!-- latin capital letter O with acute, 101.126 + U+00D3 ISOlat1 --> 101.127 +<!ENTITY Ocirc "Ô"> <!-- latin capital letter O with circumflex, 101.128 + U+00D4 ISOlat1 --> 101.129 +<!ENTITY Otilde "Õ"> <!-- latin capital letter O with tilde, 101.130 + U+00D5 ISOlat1 --> 101.131 +<!ENTITY Ouml "Ö"> <!-- latin capital letter O with diaeresis, 101.132 + U+00D6 ISOlat1 --> 101.133 +<!ENTITY times "×"> <!-- multiplication sign, U+00D7 ISOnum --> 101.134 +<!ENTITY Oslash "Ø"> <!-- latin capital letter O with stroke 101.135 + = latin capital letter O slash, 101.136 + U+00D8 ISOlat1 --> 101.137 +<!ENTITY Ugrave "Ù"> <!-- latin capital letter U with grave, 101.138 + U+00D9 ISOlat1 --> 101.139 +<!ENTITY Uacute "Ú"> <!-- latin capital letter U with acute, 101.140 + U+00DA ISOlat1 --> 101.141 +<!ENTITY Ucirc "Û"> <!-- latin capital letter U with circumflex, 101.142 + U+00DB ISOlat1 --> 101.143 +<!ENTITY Uuml "Ü"> <!-- latin capital letter U with diaeresis, 101.144 + U+00DC ISOlat1 --> 101.145 +<!ENTITY Yacute "Ý"> <!-- latin capital letter Y with acute, 101.146 + U+00DD ISOlat1 --> 101.147 +<!ENTITY THORN "Þ"> <!-- latin capital letter THORN, 101.148 + U+00DE ISOlat1 --> 101.149 +<!ENTITY szlig "ß"> <!-- latin small letter sharp s = ess-zed, 101.150 + U+00DF ISOlat1 --> 101.151 +<!ENTITY agrave "à"> <!-- latin small letter a with grave 101.152 + = latin small letter a grave, 101.153 + U+00E0 ISOlat1 --> 101.154 +<!ENTITY aacute "á"> <!-- latin small letter a with acute, 101.155 + U+00E1 ISOlat1 --> 101.156 +<!ENTITY acirc "â"> <!-- latin small letter a with circumflex, 101.157 + U+00E2 ISOlat1 --> 101.158 +<!ENTITY atilde "ã"> <!-- latin small letter a with tilde, 101.159 + U+00E3 ISOlat1 --> 101.160 +<!ENTITY auml "ä"> <!-- latin small letter a with diaeresis, 101.161 + U+00E4 ISOlat1 --> 101.162 +<!ENTITY aring "å"> <!-- latin small letter a with ring above 101.163 + = latin small letter a ring, 101.164 + U+00E5 ISOlat1 --> 101.165 +<!ENTITY aelig "æ"> <!-- latin small letter ae 101.166 + = latin small ligature ae, U+00E6 ISOlat1 --> 101.167 +<!ENTITY ccedil "ç"> <!-- latin small letter c with cedilla, 101.168 + U+00E7 ISOlat1 --> 101.169 +<!ENTITY egrave "è"> <!-- latin small letter e with grave, 101.170 + U+00E8 ISOlat1 --> 101.171 +<!ENTITY eacute "é"> <!-- latin small letter e with acute, 101.172 + U+00E9 ISOlat1 --> 101.173 +<!ENTITY ecirc "ê"> <!-- latin small letter e with circumflex, 101.174 + U+00EA ISOlat1 --> 101.175 +<!ENTITY euml "ë"> <!-- latin small letter e with diaeresis, 101.176 + U+00EB ISOlat1 --> 101.177 +<!ENTITY igrave "ì"> <!-- latin small letter i with grave, 101.178 + U+00EC ISOlat1 --> 101.179 +<!ENTITY iacute "í"> <!-- latin small letter i with acute, 101.180 + U+00ED ISOlat1 --> 101.181 +<!ENTITY icirc "î"> <!-- latin small letter i with circumflex, 101.182 + U+00EE ISOlat1 --> 101.183 +<!ENTITY iuml "ï"> <!-- latin small letter i with diaeresis, 101.184 + U+00EF ISOlat1 --> 101.185 +<!ENTITY eth "ð"> <!-- latin small letter eth, U+00F0 ISOlat1 --> 101.186 +<!ENTITY ntilde "ñ"> <!-- latin small letter n with tilde, 101.187 + U+00F1 ISOlat1 --> 101.188 +<!ENTITY ograve "ò"> <!-- latin small letter o with grave, 101.189 + U+00F2 ISOlat1 --> 101.190 +<!ENTITY oacute "ó"> <!-- latin small letter o with acute, 101.191 + U+00F3 ISOlat1 --> 101.192 +<!ENTITY ocirc "ô"> <!-- latin small letter o with circumflex, 101.193 + U+00F4 ISOlat1 --> 101.194 +<!ENTITY otilde "õ"> <!-- latin small letter o with tilde, 101.195 + U+00F5 ISOlat1 --> 101.196 +<!ENTITY ouml "ö"> <!-- latin small letter o with diaeresis, 101.197 + U+00F6 ISOlat1 --> 101.198 +<!ENTITY divide "÷"> <!-- division sign, U+00F7 ISOnum --> 101.199 +<!ENTITY oslash "ø"> <!-- latin small letter o with stroke, 101.200 + = latin small letter o slash, 101.201 + U+00F8 ISOlat1 --> 101.202 +<!ENTITY ugrave "ù"> <!-- latin small letter u with grave, 101.203 + U+00F9 ISOlat1 --> 101.204 +<!ENTITY uacute "ú"> <!-- latin small letter u with acute, 101.205 + U+00FA ISOlat1 --> 101.206 +<!ENTITY ucirc "û"> <!-- latin small letter u with circumflex, 101.207 + U+00FB ISOlat1 --> 101.208 +<!ENTITY uuml "ü"> <!-- latin small letter u with diaeresis, 101.209 + U+00FC ISOlat1 --> 101.210 +<!ENTITY yacute "ý"> <!-- latin small letter y with acute, 101.211 + U+00FD ISOlat1 --> 101.212 +<!ENTITY thorn "þ"> <!-- latin small letter thorn, 101.213 + U+00FE ISOlat1 --> 101.214 +<!ENTITY yuml "ÿ"> <!-- latin small letter y with diaeresis, 101.215 + U+00FF ISOlat1 --> 101.216 + 101.217 +<!--================== Imported Names ====================================--> 101.218 + 101.219 +<!ENTITY % ContentType "CDATA"> 101.220 + <!-- media type, as per [RFC2045] --> 101.221 + 101.222 +<!ENTITY % ContentTypes "CDATA"> 101.223 + <!-- comma-separated list of media types, as per [RFC2045] --> 101.224 + 101.225 +<!ENTITY % Charset "CDATA"> 101.226 + <!-- a character encoding, as per [RFC2045] --> 101.227 + 101.228 +<!ENTITY % Charsets "CDATA"> 101.229 + <!-- a space separated list of character encodings, as per [RFC2045] --> 101.230 + 101.231 +<!ENTITY % LanguageCode "NMTOKEN"> 101.232 + <!-- a language code, as per [RFC3066] --> 101.233 + 101.234 +<!ENTITY % Character "CDATA"> 101.235 + <!-- a single character, as per section 2.2 of [XML] --> 101.236 + 101.237 +<!ENTITY % Number "CDATA"> 101.238 + <!-- one or more digits --> 101.239 + 101.240 +<!ENTITY % LinkTypes "CDATA"> 101.241 + <!-- space-separated list of link types --> 101.242 + 101.243 +<!ENTITY % MediaDesc "CDATA"> 101.244 + <!-- single or comma-separated list of media descriptors --> 101.245 + 101.246 +<!ENTITY % URI "CDATA"> 101.247 + <!-- a Uniform Resource Identifier, see [RFC2396] --> 101.248 + 101.249 +<!ENTITY % UriList "CDATA"> 101.250 + <!-- a space separated list of Uniform Resource Identifiers --> 101.251 + 101.252 +<!ENTITY % Datetime "CDATA"> 101.253 + <!-- date and time information. ISO date format --> 101.254 + 101.255 +<!ENTITY % Script "CDATA"> 101.256 + <!-- script expression --> 101.257 + 101.258 +<!ENTITY % StyleSheet "CDATA"> 101.259 + <!-- style sheet data --> 101.260 + 101.261 +<!ENTITY % Text "CDATA"> 101.262 + <!-- used for titles etc. --> 101.263 + 101.264 +<!ENTITY % FrameTarget "NMTOKEN"> 101.265 + <!-- render in this frame --> 101.266 + 101.267 +<!ENTITY % Length "CDATA"> 101.268 + <!-- nn for pixels or nn% for percentage length --> 101.269 + 101.270 +<!ENTITY % MultiLength "CDATA"> 101.271 + <!-- pixel, percentage, or relative --> 101.272 + 101.273 +<!ENTITY % Pixels "CDATA"> 101.274 + <!-- integer representing length in pixels --> 101.275 + 101.276 +<!-- these are used for image maps --> 101.277 + 101.278 +<!ENTITY % Shape "(rect|circle|poly|default)"> 101.279 + 101.280 +<!ENTITY % Coords "CDATA"> 101.281 + <!-- comma separated list of lengths --> 101.282 + 101.283 +<!-- used for object, applet, img, input and iframe --> 101.284 +<!ENTITY % ImgAlign "(top|middle|bottom|left|right)"> 101.285 + 101.286 +<!-- a color using sRGB: #RRGGBB as Hex values --> 101.287 +<!ENTITY % Color "CDATA"> 101.288 + 101.289 +<!-- There are also 16 widely known color names with their sRGB values: 101.290 + 101.291 + Black = #000000 Green = #008000 101.292 + Silver = #C0C0C0 Lime = #00FF00 101.293 + Gray = #808080 Olive = #808000 101.294 + White = #FFFFFF Yellow = #FFFF00 101.295 + Maroon = #800000 Navy = #000080 101.296 + Red = #FF0000 Blue = #0000FF 101.297 + Purple = #800080 Teal = #008080 101.298 + Fuchsia= #FF00FF Aqua = #00FFFF 101.299 +--> 101.300 + 101.301 +<!--=================== Generic Attributes ===============================--> 101.302 + 101.303 +<!-- core attributes common to most elements 101.304 + id document-wide unique id 101.305 + class space separated list of classes 101.306 + style associated style info 101.307 + title advisory title/amplification 101.308 +--> 101.309 +<!ENTITY % coreattrs 101.310 + "id ID #IMPLIED 101.311 + class CDATA #IMPLIED 101.312 + style %StyleSheet; #IMPLIED 101.313 + title %Text; #IMPLIED" 101.314 + > 101.315 + 101.316 +<!-- internationalization attributes 101.317 + lang language code (backwards compatible) 101.318 + xml:lang language code (as per XML 1.0 spec) 101.319 + dir direction for weak/neutral text 101.320 +--> 101.321 +<!ENTITY % i18n 101.322 + "lang %LanguageCode; #IMPLIED 101.323 + xml:lang %LanguageCode; #IMPLIED 101.324 + dir (ltr|rtl) #IMPLIED" 101.325 + > 101.326 + 101.327 +<!-- attributes for common UI events 101.328 + onclick a pointer button was clicked 101.329 + ondblclick a pointer button was double clicked 101.330 + onmousedown a pointer button was pressed down 101.331 + onmouseup a pointer button was released 101.332 + onmousemove a pointer was moved onto the element 101.333 + onmouseout a pointer was moved away from the element 101.334 + onkeypress a key was pressed and released 101.335 + onkeydown a key was pressed down 101.336 + onkeyup a key was released 101.337 +--> 101.338 +<!ENTITY % events 101.339 + "onclick %Script; #IMPLIED 101.340 + ondblclick %Script; #IMPLIED 101.341 + onmousedown %Script; #IMPLIED 101.342 + onmouseup %Script; #IMPLIED 101.343 + onmouseover %Script; #IMPLIED 101.344 + onmousemove %Script; #IMPLIED 101.345 + onmouseout %Script; #IMPLIED 101.346 + onkeypress %Script; #IMPLIED 101.347 + onkeydown %Script; #IMPLIED 101.348 + onkeyup %Script; #IMPLIED" 101.349 + > 101.350 + 101.351 +<!-- attributes for elements that can get the focus 101.352 + accesskey accessibility key character 101.353 + tabindex position in tabbing order 101.354 + onfocus the element got the focus 101.355 + onblur the element lost the focus 101.356 +--> 101.357 +<!ENTITY % focus 101.358 + "accesskey %Character; #IMPLIED 101.359 + tabindex %Number; #IMPLIED 101.360 + onfocus %Script; #IMPLIED 101.361 + onblur %Script; #IMPLIED" 101.362 + > 101.363 + 101.364 +<!ENTITY % attrs "%coreattrs; %i18n; %events;"> 101.365 + 101.366 +<!-- text alignment for p, div, h1-h6. The default is 101.367 + align="left" for ltr headings, "right" for rtl --> 101.368 + 101.369 +<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED"> 101.370 + 101.371 +<!--=================== Text Elements ====================================--> 101.372 + 101.373 +<!ENTITY % editstuff 101.374 + "edit:example | edit:schema | edit:thisversion | edit:date | 101.375 + edit:previousversion | edit:latestversion | edit:toc | edit:copyright"> 101.376 + 101.377 +<!ENTITY % special.extra 101.378 + "object | applet | img | map | iframe"> 101.379 + 101.380 +<!ENTITY % special.basic 101.381 + "br | span | bdo"> 101.382 + 101.383 +<!ENTITY % special 101.384 + "%special.basic; | %special.extra;"> 101.385 + 101.386 +<!ENTITY % fontstyle.extra "big | small | font | basefont"> 101.387 + 101.388 +<!ENTITY % fontstyle.basic "tt | i | b | u 101.389 + | s | strike "> 101.390 + 101.391 +<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;"> 101.392 + 101.393 +<!ENTITY % phrase.extra "sub | sup"> 101.394 +<!ENTITY % phrase.basic "em | strong | dfn | code | q | 101.395 + samp | kbd | var | cite | abbr | acronym"> 101.396 + 101.397 +<!ENTITY % phrase "%phrase.basic; | %phrase.extra;"> 101.398 + 101.399 +<!ENTITY % inline.forms "input | select | textarea | label | button"> 101.400 + 101.401 +<!-- these can occur at block or inline level --> 101.402 +<!ENTITY % misc.inline "ins | del | script"> 101.403 + 101.404 +<!-- these can only occur at block level --> 101.405 +<!ENTITY % misc "noscript | %misc.inline;"> 101.406 + 101.407 +<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;"> 101.408 + 101.409 +<!-- %Inline; covers inline or "text-level" elements --> 101.410 +<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;| %editstuff;)*"> 101.411 + 101.412 +<!--================== Block level elements ==============================--> 101.413 + 101.414 +<!ENTITY % heading "h1|h2|h3|h4|h5|h6"> 101.415 +<!ENTITY % lists "ul | ol | dl | menu | dir"> 101.416 +<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes | %editstuff;"> 101.417 + 101.418 +<!ENTITY % block 101.419 + "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table"> 101.420 + 101.421 +<!-- %Flow; mixes block and inline and is used for list items etc. --> 101.422 +<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc; )*"> 101.423 + 101.424 +<!--================== Content models for exclusions =====================--> 101.425 + 101.426 +<!-- a elements use %Inline; excluding a --> 101.427 + 101.428 +<!ENTITY % a.content 101.429 + "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*"> 101.430 + 101.431 +<!-- pre uses %Inline excluding img, object, applet, big, small, 101.432 + font, or basefont --> 101.433 + 101.434 +<!ENTITY % pre.content 101.435 + "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; | 101.436 + %inline.forms; | %misc.inline;)*"> 101.437 + 101.438 +<!-- form uses %Flow; excluding form --> 101.439 + 101.440 +<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*"> 101.441 + 101.442 +<!-- button uses %Flow; but excludes a, form, form controls, iframe --> 101.443 + 101.444 +<!ENTITY % button.content 101.445 + "(#PCDATA | p | %heading; | div | %lists; | %blocktext; | 101.446 + table | br | span | bdo | object | applet | img | map | 101.447 + %fontstyle; | %phrase; | %misc;)*"> 101.448 + 101.449 +<!--================ Document Structure ==================================--> 101.450 + 101.451 +<!-- the namespace URI designates the document profile --> 101.452 + 101.453 +<!ELEMENT html (head, body)> 101.454 +<!ATTLIST html 101.455 + %i18n; 101.456 + id ID #IMPLIED 101.457 + xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml' 101.458 + xmlns:edit %URI; #FIXED 'http://xmlns.grorg.org/SVGT12NG/' 101.459 + > 101.460 + 101.461 +<!--================ Document Head =======================================--> 101.462 + 101.463 +<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*"> 101.464 + 101.465 +<!-- content model is %head.misc; combined with a single 101.466 + title and an optional base element in any order --> 101.467 + 101.468 +<!ELEMENT head (%head.misc;, 101.469 + ((title, %head.misc;, (base, %head.misc;)?) | 101.470 + (base, %head.misc;, (title, %head.misc;))))> 101.471 + 101.472 +<!ATTLIST head 101.473 + %i18n; 101.474 + id ID #IMPLIED 101.475 + profile %URI; #IMPLIED 101.476 + > 101.477 + 101.478 +<!-- The title element is not considered part of the flow of text. 101.479 + It should be displayed, for example as the page header or 101.480 + window title. Exactly one title is required per document. 101.481 + --> 101.482 +<!ELEMENT title (#PCDATA)> 101.483 +<!ATTLIST title 101.484 + %i18n; 101.485 + id ID #IMPLIED 101.486 + > 101.487 + 101.488 +<!-- document base URI --> 101.489 + 101.490 +<!ELEMENT base EMPTY> 101.491 +<!ATTLIST base 101.492 + id ID #IMPLIED 101.493 + href %URI; #IMPLIED 101.494 + target %FrameTarget; #IMPLIED 101.495 + > 101.496 + 101.497 +<!-- generic metainformation --> 101.498 +<!ELEMENT meta EMPTY> 101.499 +<!ATTLIST meta 101.500 + %i18n; 101.501 + id ID #IMPLIED 101.502 + http-equiv CDATA #IMPLIED 101.503 + name CDATA #IMPLIED 101.504 + content CDATA #REQUIRED 101.505 + scheme CDATA #IMPLIED 101.506 + > 101.507 + 101.508 +<!-- 101.509 + Relationship values can be used in principle: 101.510 + 101.511 + a) for document specific toolbars/menus when used 101.512 + with the link element in document head e.g. 101.513 + start, contents, previous, next, index, end, help 101.514 + b) to link to a separate style sheet (rel="stylesheet") 101.515 + c) to make a link to a script (rel="script") 101.516 + d) by stylesheets to control how collections of 101.517 + html nodes are rendered into printed documents 101.518 + e) to make a link to a printable version of this document 101.519 + e.g. a PostScript or PDF version (rel="alternate" media="print") 101.520 +--> 101.521 + 101.522 +<!ELEMENT link EMPTY> 101.523 +<!ATTLIST link 101.524 + %attrs; 101.525 + charset %Charset; #IMPLIED 101.526 + href %URI; #IMPLIED 101.527 + hreflang %LanguageCode; #IMPLIED 101.528 + type %ContentType; #IMPLIED 101.529 + rel %LinkTypes; #IMPLIED 101.530 + rev %LinkTypes; #IMPLIED 101.531 + media %MediaDesc; #IMPLIED 101.532 + target %FrameTarget; #IMPLIED 101.533 + > 101.534 + 101.535 +<!-- style info, which may include CDATA sections --> 101.536 +<!ELEMENT style (#PCDATA)> 101.537 +<!ATTLIST style 101.538 + %i18n; 101.539 + id ID #IMPLIED 101.540 + type %ContentType; #REQUIRED 101.541 + media %MediaDesc; #IMPLIED 101.542 + title %Text; #IMPLIED 101.543 + xml:space (preserve) #FIXED 'preserve' 101.544 + > 101.545 + 101.546 +<!-- script statements, which may include CDATA sections --> 101.547 +<!ELEMENT script (#PCDATA)> 101.548 +<!ATTLIST script 101.549 + id ID #IMPLIED 101.550 + charset %Charset; #IMPLIED 101.551 + type %ContentType; #REQUIRED 101.552 + language CDATA #IMPLIED 101.553 + src %URI; #IMPLIED 101.554 + defer (defer) #IMPLIED 101.555 + xml:space (preserve) #FIXED 'preserve' 101.556 + > 101.557 + 101.558 +<!-- alternate content container for non script-based rendering --> 101.559 + 101.560 +<!ELEMENT noscript %Flow;> 101.561 +<!ATTLIST noscript 101.562 + %attrs; 101.563 + > 101.564 + 101.565 +<!--======================= Frames =======================================--> 101.566 + 101.567 +<!-- inline subwindow --> 101.568 + 101.569 +<!ELEMENT iframe %Flow;> 101.570 +<!ATTLIST iframe 101.571 + %coreattrs; 101.572 + longdesc %URI; #IMPLIED 101.573 + name NMTOKEN #IMPLIED 101.574 + src %URI; #IMPLIED 101.575 + frameborder (1|0) "1" 101.576 + marginwidth %Pixels; #IMPLIED 101.577 + marginheight %Pixels; #IMPLIED 101.578 + scrolling (yes|no|auto) "auto" 101.579 + align %ImgAlign; #IMPLIED 101.580 + height %Length; #IMPLIED 101.581 + width %Length; #IMPLIED 101.582 + > 101.583 + 101.584 +<!-- alternate content container for non frame-based rendering --> 101.585 + 101.586 +<!ELEMENT noframes %Flow;> 101.587 +<!ATTLIST noframes 101.588 + %attrs; 101.589 + > 101.590 + 101.591 +<!--=================== Document Body ====================================--> 101.592 + 101.593 +<!ELEMENT body %Flow;> 101.594 +<!ATTLIST body 101.595 + %attrs; 101.596 + onload %Script; #IMPLIED 101.597 + onunload %Script; #IMPLIED 101.598 + background %URI; #IMPLIED 101.599 + bgcolor %Color; #IMPLIED 101.600 + text %Color; #IMPLIED 101.601 + link %Color; #IMPLIED 101.602 + vlink %Color; #IMPLIED 101.603 + alink %Color; #IMPLIED 101.604 + > 101.605 + 101.606 +<!ELEMENT div %Flow;> <!-- generic language/style container --> 101.607 +<!ATTLIST div 101.608 + %attrs; 101.609 + %TextAlign; 101.610 + > 101.611 + 101.612 + <!--================Special edit inclusions =========================--> 101.613 + 101.614 + <!ELEMENT edit:example %Flow;> 101.615 + <!ATTLIST edit:example 101.616 + href CDATA #IMPLIED 101.617 + link CDATA #IMPLIED 101.618 + image CDATA #IMPLIED 101.619 + > 101.620 + 101.621 + <!ELEMENT edit:schema %Flow;> 101.622 + <!ATTLIST edit:schema 101.623 + element CDATA #IMPLIED 101.624 + > 101.625 + 101.626 + <!ELEMENT edit:date EMPTY> 101.627 + <!ELEMENT edit:thisversion EMPTY> 101.628 + <!ELEMENT edit:previousversion EMPTY> 101.629 + <!ELEMENT edit:latestversion EMPTY> 101.630 + <!ELEMENT edit:toc EMPTY> 101.631 + <!ELEMENT edit:copyright EMPTY> 101.632 + 101.633 +<!--=================== Paragraphs =======================================--> 101.634 + 101.635 +<!ELEMENT p %Inline;> 101.636 +<!ATTLIST p 101.637 + %attrs; 101.638 + %TextAlign; 101.639 + > 101.640 + 101.641 +<!--=================== Headings =========================================--> 101.642 + 101.643 +<!-- 101.644 + There are six levels of headings from h1 (the most important) 101.645 + to h6 (the least important). 101.646 +--> 101.647 + 101.648 +<!ELEMENT h1 %Inline;> 101.649 +<!ATTLIST h1 101.650 + %attrs; 101.651 + %TextAlign; 101.652 + > 101.653 + 101.654 +<!ELEMENT h2 %Inline;> 101.655 +<!ATTLIST h2 101.656 + %attrs; 101.657 + %TextAlign; 101.658 + > 101.659 + 101.660 +<!ELEMENT h3 %Inline;> 101.661 +<!ATTLIST h3 101.662 + %attrs; 101.663 + %TextAlign; 101.664 + > 101.665 + 101.666 +<!ELEMENT h4 %Inline;> 101.667 +<!ATTLIST h4 101.668 + %attrs; 101.669 + %TextAlign; 101.670 + > 101.671 + 101.672 +<!ELEMENT h5 %Inline;> 101.673 +<!ATTLIST h5 101.674 + %attrs; 101.675 + %TextAlign; 101.676 + > 101.677 + 101.678 +<!ELEMENT h6 %Inline;> 101.679 +<!ATTLIST h6 101.680 + %attrs; 101.681 + %TextAlign; 101.682 + > 101.683 + 101.684 +<!--=================== Lists ============================================--> 101.685 + 101.686 +<!-- Unordered list bullet styles --> 101.687 + 101.688 +<!ENTITY % ULStyle "(disc|square|circle)"> 101.689 + 101.690 +<!-- Unordered list --> 101.691 + 101.692 +<!ELEMENT ul (li)+> 101.693 +<!ATTLIST ul 101.694 + %attrs; 101.695 + type %ULStyle; #IMPLIED 101.696 + compact (compact) #IMPLIED 101.697 + > 101.698 + 101.699 +<!-- Ordered list numbering style 101.700 + 101.701 + 1 arabic numbers 1, 2, 3, ... 101.702 + a lower alpha a, b, c, ... 101.703 + A upper alpha A, B, C, ... 101.704 + i lower roman i, ii, iii, ... 101.705 + I upper roman I, II, III, ... 101.706 + 101.707 + The style is applied to the sequence number which by default 101.708 + is reset to 1 for the first list item in an ordered list. 101.709 +--> 101.710 +<!ENTITY % OLStyle "CDATA"> 101.711 + 101.712 +<!-- Ordered (numbered) list --> 101.713 + 101.714 +<!ELEMENT ol (li)+> 101.715 +<!ATTLIST ol 101.716 + %attrs; 101.717 + type %OLStyle; #IMPLIED 101.718 + compact (compact) #IMPLIED 101.719 + start %Number; #IMPLIED 101.720 + > 101.721 + 101.722 +<!-- single column list (DEPRECATED) --> 101.723 +<!ELEMENT menu (li)+> 101.724 +<!ATTLIST menu 101.725 + %attrs; 101.726 + compact (compact) #IMPLIED 101.727 + > 101.728 + 101.729 +<!-- multiple column list (DEPRECATED) --> 101.730 +<!ELEMENT dir (li)+> 101.731 +<!ATTLIST dir 101.732 + %attrs; 101.733 + compact (compact) #IMPLIED 101.734 + > 101.735 + 101.736 +<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" --> 101.737 +<!ENTITY % LIStyle "CDATA"> 101.738 + 101.739 +<!-- list item --> 101.740 + 101.741 +<!ELEMENT li %Flow;> 101.742 +<!ATTLIST li 101.743 + %attrs; 101.744 + type %LIStyle; #IMPLIED 101.745 + value %Number; #IMPLIED 101.746 + > 101.747 + 101.748 +<!-- definition lists - dt for term, dd for its definition --> 101.749 + 101.750 +<!ELEMENT dl (dt|dd)+> 101.751 +<!ATTLIST dl 101.752 + %attrs; 101.753 + compact (compact) #IMPLIED 101.754 + > 101.755 + 101.756 +<!ELEMENT dt %Inline;> 101.757 +<!ATTLIST dt 101.758 + %attrs; 101.759 + > 101.760 + 101.761 +<!ELEMENT dd %Flow;> 101.762 +<!ATTLIST dd 101.763 + %attrs; 101.764 + > 101.765 + 101.766 +<!--=================== Address ==========================================--> 101.767 + 101.768 +<!-- information on author --> 101.769 + 101.770 +<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*> 101.771 +<!ATTLIST address 101.772 + %attrs; 101.773 + > 101.774 + 101.775 +<!--=================== Horizontal Rule ==================================--> 101.776 + 101.777 +<!ELEMENT hr EMPTY> 101.778 +<!ATTLIST hr 101.779 + %attrs; 101.780 + align (left|center|right) #IMPLIED 101.781 + noshade (noshade) #IMPLIED 101.782 + size %Pixels; #IMPLIED 101.783 + width %Length; #IMPLIED 101.784 + > 101.785 + 101.786 +<!--=================== Preformatted Text ================================--> 101.787 + 101.788 +<!-- content is %Inline; excluding 101.789 + "img|object|applet|big|small|sub|sup|font|basefont" --> 101.790 + 101.791 +<!ELEMENT pre %pre.content;> 101.792 +<!ATTLIST pre 101.793 + %attrs; 101.794 + width %Number; #IMPLIED 101.795 + xml:space (preserve) #FIXED 'preserve' 101.796 + > 101.797 + 101.798 +<!--=================== Block-like Quotes ================================--> 101.799 + 101.800 +<!ELEMENT blockquote %Flow;> 101.801 +<!ATTLIST blockquote 101.802 + %attrs; 101.803 + cite %URI; #IMPLIED 101.804 + > 101.805 + 101.806 +<!--=================== Text alignment ===================================--> 101.807 + 101.808 +<!-- center content --> 101.809 +<!ELEMENT center %Flow;> 101.810 +<!ATTLIST center 101.811 + %attrs; 101.812 + > 101.813 + 101.814 +<!--=================== Inserted/Deleted Text ============================--> 101.815 + 101.816 +<!-- 101.817 + ins/del are allowed in block and inline content, but its 101.818 + inappropriate to include block content within an ins element 101.819 + occurring in inline content. 101.820 +--> 101.821 +<!ELEMENT ins %Flow;> 101.822 +<!ATTLIST ins 101.823 + %attrs; 101.824 + cite %URI; #IMPLIED 101.825 + datetime %Datetime; #IMPLIED 101.826 + > 101.827 + 101.828 +<!ELEMENT del %Flow;> 101.829 +<!ATTLIST del 101.830 + %attrs; 101.831 + cite %URI; #IMPLIED 101.832 + datetime %Datetime; #IMPLIED 101.833 + > 101.834 + 101.835 +<!--================== The Anchor Element ================================--> 101.836 + 101.837 +<!-- content is %Inline; except that anchors shouldn't be nested --> 101.838 + 101.839 +<!ELEMENT a %a.content;> 101.840 +<!ATTLIST a 101.841 + %attrs; 101.842 + %focus; 101.843 + charset %Charset; #IMPLIED 101.844 + type %ContentType; #IMPLIED 101.845 + name NMTOKEN #IMPLIED 101.846 + href %URI; #IMPLIED 101.847 + hreflang %LanguageCode; #IMPLIED 101.848 + rel %LinkTypes; #IMPLIED 101.849 + rev %LinkTypes; #IMPLIED 101.850 + shape %Shape; "rect" 101.851 + coords %Coords; #IMPLIED 101.852 + target %FrameTarget; #IMPLIED 101.853 + > 101.854 + 101.855 +<!--===================== Inline Elements ================================--> 101.856 + 101.857 +<!ELEMENT span %Inline;> <!-- generic language/style container --> 101.858 +<!ATTLIST span 101.859 + %attrs; 101.860 + > 101.861 + 101.862 +<!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride --> 101.863 +<!ATTLIST bdo 101.864 + %coreattrs; 101.865 + %events; 101.866 + lang %LanguageCode; #IMPLIED 101.867 + xml:lang %LanguageCode; #IMPLIED 101.868 + dir (ltr|rtl) #REQUIRED 101.869 + > 101.870 + 101.871 +<!ELEMENT br EMPTY> <!-- forced line break --> 101.872 +<!ATTLIST br 101.873 + %coreattrs; 101.874 + clear (left|all|right|none) "none" 101.875 + > 101.876 + 101.877 +<!ELEMENT em %Inline;> <!-- emphasis --> 101.878 +<!ATTLIST em %attrs;> 101.879 + 101.880 +<!ELEMENT strong %Inline;> <!-- strong emphasis --> 101.881 +<!ATTLIST strong %attrs;> 101.882 + 101.883 +<!ELEMENT dfn %Inline;> <!-- definitional --> 101.884 +<!ATTLIST dfn %attrs;> 101.885 + 101.886 +<!ELEMENT code %Inline;> <!-- program code --> 101.887 +<!ATTLIST code %attrs;> 101.888 + 101.889 +<!ELEMENT samp %Inline;> <!-- sample --> 101.890 +<!ATTLIST samp %attrs;> 101.891 + 101.892 +<!ELEMENT kbd %Inline;> <!-- something user would type --> 101.893 +<!ATTLIST kbd %attrs;> 101.894 + 101.895 +<!ELEMENT var %Inline;> <!-- variable --> 101.896 +<!ATTLIST var %attrs;> 101.897 + 101.898 +<!ELEMENT cite %Inline;> <!-- citation --> 101.899 +<!ATTLIST cite %attrs;> 101.900 + 101.901 +<!ELEMENT abbr %Inline;> <!-- abbreviation --> 101.902 +<!ATTLIST abbr %attrs;> 101.903 + 101.904 +<!ELEMENT acronym %Inline;> <!-- acronym --> 101.905 +<!ATTLIST acronym %attrs;> 101.906 + 101.907 +<!ELEMENT q %Inline;> <!-- inlined quote --> 101.908 +<!ATTLIST q 101.909 + %attrs; 101.910 + cite %URI; #IMPLIED 101.911 + > 101.912 + 101.913 +<!ELEMENT sub %Inline;> <!-- subscript --> 101.914 +<!ATTLIST sub %attrs;> 101.915 + 101.916 +<!ELEMENT sup %Inline;> <!-- superscript --> 101.917 +<!ATTLIST sup %attrs;> 101.918 + 101.919 +<!ELEMENT tt %Inline;> <!-- fixed pitch font --> 101.920 +<!ATTLIST tt %attrs;> 101.921 + 101.922 +<!ELEMENT i %Inline;> <!-- italic font --> 101.923 +<!ATTLIST i %attrs;> 101.924 + 101.925 +<!ELEMENT b %Inline;> <!-- bold font --> 101.926 +<!ATTLIST b %attrs;> 101.927 + 101.928 +<!ELEMENT big %Inline;> <!-- bigger font --> 101.929 +<!ATTLIST big %attrs;> 101.930 + 101.931 +<!ELEMENT small %Inline;> <!-- smaller font --> 101.932 +<!ATTLIST small %attrs;> 101.933 + 101.934 +<!ELEMENT u %Inline;> <!-- underline --> 101.935 +<!ATTLIST u %attrs;> 101.936 + 101.937 +<!ELEMENT s %Inline;> <!-- strike-through --> 101.938 +<!ATTLIST s %attrs;> 101.939 + 101.940 +<!ELEMENT strike %Inline;> <!-- strike-through --> 101.941 +<!ATTLIST strike %attrs;> 101.942 + 101.943 +<!ELEMENT basefont EMPTY> <!-- base font size --> 101.944 +<!ATTLIST basefont 101.945 + id ID #IMPLIED 101.946 + size CDATA #REQUIRED 101.947 + color %Color; #IMPLIED 101.948 + face CDATA #IMPLIED 101.949 + > 101.950 + 101.951 +<!ELEMENT font %Inline;> <!-- local change to font --> 101.952 +<!ATTLIST font 101.953 + %coreattrs; 101.954 + %i18n; 101.955 + size CDATA #IMPLIED 101.956 + color %Color; #IMPLIED 101.957 + face CDATA #IMPLIED 101.958 + > 101.959 + 101.960 +<!--==================== Object ======================================--> 101.961 +<!-- 101.962 + object is used to embed objects as part of HTML pages. 101.963 + param elements should precede other content. Parameters 101.964 + can also be expressed as attribute/value pairs on the 101.965 + object element itself when brevity is desired. 101.966 +--> 101.967 + 101.968 +<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*> 101.969 +<!ATTLIST object 101.970 + %attrs; 101.971 + declare (declare) #IMPLIED 101.972 + classid %URI; #IMPLIED 101.973 + codebase %URI; #IMPLIED 101.974 + data %URI; #IMPLIED 101.975 + type %ContentType; #IMPLIED 101.976 + codetype %ContentType; #IMPLIED 101.977 + archive %UriList; #IMPLIED 101.978 + standby %Text; #IMPLIED 101.979 + height %Length; #IMPLIED 101.980 + width %Length; #IMPLIED 101.981 + usemap %URI; #IMPLIED 101.982 + name NMTOKEN #IMPLIED 101.983 + tabindex %Number; #IMPLIED 101.984 + align %ImgAlign; #IMPLIED 101.985 + border %Pixels; #IMPLIED 101.986 + hspace %Pixels; #IMPLIED 101.987 + vspace %Pixels; #IMPLIED 101.988 + > 101.989 + 101.990 +<!-- 101.991 + param is used to supply a named property value. 101.992 + In XML it would seem natural to follow RDF and support an 101.993 + abbreviated syntax where the param elements are replaced 101.994 + by attribute value pairs on the object start tag. 101.995 +--> 101.996 +<!ELEMENT param EMPTY> 101.997 +<!ATTLIST param 101.998 + id ID #IMPLIED 101.999 + name CDATA #REQUIRED 101.1000 + value CDATA #IMPLIED 101.1001 + valuetype (data|ref|object) "data" 101.1002 + type %ContentType; #IMPLIED 101.1003 + > 101.1004 + 101.1005 +<!--=================== Java applet ==================================--> 101.1006 +<!-- 101.1007 + One of code or object attributes must be present. 101.1008 + Place param elements before other content. 101.1009 +--> 101.1010 +<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*> 101.1011 +<!ATTLIST applet 101.1012 + %coreattrs; 101.1013 + codebase %URI; #IMPLIED 101.1014 + archive CDATA #IMPLIED 101.1015 + code CDATA #IMPLIED 101.1016 + object CDATA #IMPLIED 101.1017 + alt %Text; #IMPLIED 101.1018 + name NMTOKEN #IMPLIED 101.1019 + width %Length; #REQUIRED 101.1020 + height %Length; #REQUIRED 101.1021 + align %ImgAlign; #IMPLIED 101.1022 + hspace %Pixels; #IMPLIED 101.1023 + vspace %Pixels; #IMPLIED 101.1024 + > 101.1025 + 101.1026 +<!--=================== Images ===========================================--> 101.1027 + 101.1028 +<!-- 101.1029 + To avoid accessibility problems for people who aren't 101.1030 + able to see the image, you should provide a text 101.1031 + description using the alt and longdesc attributes. 101.1032 + In addition, avoid the use of server-side image maps. 101.1033 +--> 101.1034 + 101.1035 +<!ELEMENT img EMPTY> 101.1036 +<!ATTLIST img 101.1037 + %attrs; 101.1038 + src %URI; #REQUIRED 101.1039 + alt %Text; #REQUIRED 101.1040 + name NMTOKEN #IMPLIED 101.1041 + longdesc %URI; #IMPLIED 101.1042 + height %Length; #IMPLIED 101.1043 + width %Length; #IMPLIED 101.1044 + usemap %URI; #IMPLIED 101.1045 + ismap (ismap) #IMPLIED 101.1046 + align %ImgAlign; #IMPLIED 101.1047 + border %Length; #IMPLIED 101.1048 + hspace %Pixels; #IMPLIED 101.1049 + vspace %Pixels; #IMPLIED 101.1050 + > 101.1051 + 101.1052 +<!-- usemap points to a map element which may be in this document 101.1053 + or an external document, although the latter is not widely supported --> 101.1054 + 101.1055 +<!--================== Client-side image maps ============================--> 101.1056 + 101.1057 +<!-- These can be placed in the same document or grouped in a 101.1058 + separate document although this isn't yet widely supported --> 101.1059 + 101.1060 +<!ELEMENT map ((%block; | form | %misc;)+ | area+)> 101.1061 +<!ATTLIST map 101.1062 + %i18n; 101.1063 + %events; 101.1064 + id ID #REQUIRED 101.1065 + class CDATA #IMPLIED 101.1066 + style %StyleSheet; #IMPLIED 101.1067 + title %Text; #IMPLIED 101.1068 + name CDATA #IMPLIED 101.1069 + > 101.1070 + 101.1071 +<!ELEMENT area EMPTY> 101.1072 +<!ATTLIST area 101.1073 + %attrs; 101.1074 + %focus; 101.1075 + shape %Shape; "rect" 101.1076 + coords %Coords; #IMPLIED 101.1077 + href %URI; #IMPLIED 101.1078 + nohref (nohref) #IMPLIED 101.1079 + alt %Text; #REQUIRED 101.1080 + target %FrameTarget; #IMPLIED 101.1081 + > 101.1082 + 101.1083 +<!--================ Forms ===============================================--> 101.1084 + 101.1085 +<!ELEMENT form %form.content;> <!-- forms shouldn't be nested --> 101.1086 + 101.1087 +<!ATTLIST form 101.1088 + %attrs; 101.1089 + action %URI; #REQUIRED 101.1090 + method (get|post) "get" 101.1091 + name NMTOKEN #IMPLIED 101.1092 + enctype %ContentType; "application/x-www-form-urlencoded" 101.1093 + onsubmit %Script; #IMPLIED 101.1094 + onreset %Script; #IMPLIED 101.1095 + accept %ContentTypes; #IMPLIED 101.1096 + accept-charset %Charsets; #IMPLIED 101.1097 + target %FrameTarget; #IMPLIED 101.1098 + > 101.1099 + 101.1100 +<!-- 101.1101 + Each label must not contain more than ONE field 101.1102 + Label elements shouldn't be nested. 101.1103 +--> 101.1104 +<!ELEMENT label %Inline;> 101.1105 +<!ATTLIST label 101.1106 + %attrs; 101.1107 + for IDREF #IMPLIED 101.1108 + accesskey %Character; #IMPLIED 101.1109 + onfocus %Script; #IMPLIED 101.1110 + onblur %Script; #IMPLIED 101.1111 + > 101.1112 + 101.1113 +<!ENTITY % InputType 101.1114 + "(text | password | checkbox | 101.1115 + radio | submit | reset | 101.1116 + file | hidden | image | button)" 101.1117 + > 101.1118 + 101.1119 +<!-- the name attribute is required for all but submit & reset --> 101.1120 + 101.1121 +<!ELEMENT input EMPTY> <!-- form control --> 101.1122 +<!ATTLIST input 101.1123 + %attrs; 101.1124 + %focus; 101.1125 + type %InputType; "text" 101.1126 + name CDATA #IMPLIED 101.1127 + value CDATA #IMPLIED 101.1128 + checked (checked) #IMPLIED 101.1129 + disabled (disabled) #IMPLIED 101.1130 + readonly (readonly) #IMPLIED 101.1131 + size CDATA #IMPLIED 101.1132 + maxlength %Number; #IMPLIED 101.1133 + src %URI; #IMPLIED 101.1134 + alt CDATA #IMPLIED 101.1135 + usemap %URI; #IMPLIED 101.1136 + onselect %Script; #IMPLIED 101.1137 + onchange %Script; #IMPLIED 101.1138 + accept %ContentTypes; #IMPLIED 101.1139 + align %ImgAlign; #IMPLIED 101.1140 + > 101.1141 + 101.1142 +<!ELEMENT select (optgroup|option)+> <!-- option selector --> 101.1143 +<!ATTLIST select 101.1144 + %attrs; 101.1145 + name CDATA #IMPLIED 101.1146 + size %Number; #IMPLIED 101.1147 + multiple (multiple) #IMPLIED 101.1148 + disabled (disabled) #IMPLIED 101.1149 + tabindex %Number; #IMPLIED 101.1150 + onfocus %Script; #IMPLIED 101.1151 + onblur %Script; #IMPLIED 101.1152 + onchange %Script; #IMPLIED 101.1153 + > 101.1154 + 101.1155 +<!ELEMENT optgroup (option)+> <!-- option group --> 101.1156 +<!ATTLIST optgroup 101.1157 + %attrs; 101.1158 + disabled (disabled) #IMPLIED 101.1159 + label %Text; #REQUIRED 101.1160 + > 101.1161 + 101.1162 +<!ELEMENT option (#PCDATA)> <!-- selectable choice --> 101.1163 +<!ATTLIST option 101.1164 + %attrs; 101.1165 + selected (selected) #IMPLIED 101.1166 + disabled (disabled) #IMPLIED 101.1167 + label %Text; #IMPLIED 101.1168 + value CDATA #IMPLIED 101.1169 + > 101.1170 + 101.1171 +<!ELEMENT textarea (#PCDATA)> <!-- multi-line text field --> 101.1172 +<!ATTLIST textarea 101.1173 + %attrs; 101.1174 + %focus; 101.1175 + name CDATA #IMPLIED 101.1176 + rows %Number; #REQUIRED 101.1177 + cols %Number; #REQUIRED 101.1178 + disabled (disabled) #IMPLIED 101.1179 + readonly (readonly) #IMPLIED 101.1180 + onselect %Script; #IMPLIED 101.1181 + onchange %Script; #IMPLIED 101.1182 + > 101.1183 + 101.1184 +<!-- 101.1185 + The fieldset element is used to group form fields. 101.1186 + Only one legend element should occur in the content 101.1187 + and if present should only be preceded by whitespace. 101.1188 +--> 101.1189 +<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*> 101.1190 +<!ATTLIST fieldset 101.1191 + %attrs; 101.1192 + > 101.1193 + 101.1194 +<!ENTITY % LAlign "(top|bottom|left|right)"> 101.1195 + 101.1196 +<!ELEMENT legend %Inline;> <!-- fieldset label --> 101.1197 +<!ATTLIST legend 101.1198 + %attrs; 101.1199 + accesskey %Character; #IMPLIED 101.1200 + align %LAlign; #IMPLIED 101.1201 + > 101.1202 + 101.1203 +<!-- 101.1204 + Content is %Flow; excluding a, form, form controls, iframe 101.1205 +--> 101.1206 +<!ELEMENT button %button.content;> <!-- push button --> 101.1207 +<!ATTLIST button 101.1208 + %attrs; 101.1209 + %focus; 101.1210 + name CDATA #IMPLIED 101.1211 + value CDATA #IMPLIED 101.1212 + type (button|submit|reset) "submit" 101.1213 + disabled (disabled) #IMPLIED 101.1214 + > 101.1215 + 101.1216 +<!-- single-line text input control (DEPRECATED) --> 101.1217 +<!ELEMENT isindex EMPTY> 101.1218 +<!ATTLIST isindex 101.1219 + %coreattrs; 101.1220 + %i18n; 101.1221 + prompt %Text; #IMPLIED 101.1222 + > 101.1223 + 101.1224 +<!--======================= Tables =======================================--> 101.1225 + 101.1226 +<!-- Derived from IETF HTML table standard, see [RFC1942] --> 101.1227 + 101.1228 +<!-- 101.1229 + The border attribute sets the thickness of the frame around the 101.1230 + table. The default units are screen pixels. 101.1231 + 101.1232 + The frame attribute specifies which parts of the frame around 101.1233 + the table should be rendered. The values are not the same as 101.1234 + CALS to avoid a name clash with the valign attribute. 101.1235 +--> 101.1236 +<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)"> 101.1237 + 101.1238 +<!-- 101.1239 + The rules attribute defines which rules to draw between cells: 101.1240 + 101.1241 + If rules is absent then assume: 101.1242 + "none" if border is absent or border="0" otherwise "all" 101.1243 +--> 101.1244 + 101.1245 +<!ENTITY % TRules "(none | groups | rows | cols | all)"> 101.1246 + 101.1247 +<!-- horizontal placement of table relative to document --> 101.1248 +<!ENTITY % TAlign "(left|center|right)"> 101.1249 + 101.1250 +<!-- horizontal alignment attributes for cell contents 101.1251 + 101.1252 + char alignment char, e.g. char=':' 101.1253 + charoff offset for alignment char 101.1254 +--> 101.1255 +<!ENTITY % cellhalign 101.1256 + "align (left|center|right|justify|char) #IMPLIED 101.1257 + char %Character; #IMPLIED 101.1258 + charoff %Length; #IMPLIED" 101.1259 + > 101.1260 + 101.1261 +<!-- vertical alignment attributes for cell contents --> 101.1262 +<!ENTITY % cellvalign 101.1263 + "valign (top|middle|bottom|baseline) #IMPLIED" 101.1264 + > 101.1265 + 101.1266 +<!ELEMENT table 101.1267 + (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))> 101.1268 +<!ELEMENT caption %Inline;> 101.1269 +<!ELEMENT thead (tr)+> 101.1270 +<!ELEMENT tfoot (tr)+> 101.1271 +<!ELEMENT tbody (tr)+> 101.1272 +<!ELEMENT colgroup (col)*> 101.1273 +<!ELEMENT col EMPTY> 101.1274 +<!ELEMENT tr (th|td)+> 101.1275 +<!ELEMENT th %Flow;> 101.1276 +<!ELEMENT td %Flow;> 101.1277 + 101.1278 +<!ATTLIST table 101.1279 + %attrs; 101.1280 + summary %Text; #IMPLIED 101.1281 + width %Length; #IMPLIED 101.1282 + border %Pixels; #IMPLIED 101.1283 + frame %TFrame; #IMPLIED 101.1284 + rules %TRules; #IMPLIED 101.1285 + cellspacing %Length; #IMPLIED 101.1286 + cellpadding %Length; #IMPLIED 101.1287 + align %TAlign; #IMPLIED 101.1288 + bgcolor %Color; #IMPLIED 101.1289 + > 101.1290 + 101.1291 +<!ENTITY % CAlign "(top|bottom|left|right)"> 101.1292 + 101.1293 +<!ATTLIST caption 101.1294 + %attrs; 101.1295 + align %CAlign; #IMPLIED 101.1296 + > 101.1297 + 101.1298 +<!-- 101.1299 +colgroup groups a set of col elements. It allows you to group 101.1300 +several semantically related columns together. 101.1301 +--> 101.1302 +<!ATTLIST colgroup 101.1303 + %attrs; 101.1304 + span %Number; "1" 101.1305 + width %MultiLength; #IMPLIED 101.1306 + %cellhalign; 101.1307 + %cellvalign; 101.1308 + > 101.1309 + 101.1310 +<!-- 101.1311 + col elements define the alignment properties for cells in 101.1312 + one or more columns. 101.1313 + 101.1314 + The width attribute specifies the width of the columns, e.g. 101.1315 + 101.1316 + width=64 width in screen pixels 101.1317 + width=0.5* relative width of 0.5 101.1318 + 101.1319 + The span attribute causes the attributes of one 101.1320 + col element to apply to more than one column. 101.1321 +--> 101.1322 +<!ATTLIST col 101.1323 + %attrs; 101.1324 + span %Number; "1" 101.1325 + width %MultiLength; #IMPLIED 101.1326 + %cellhalign; 101.1327 + %cellvalign; 101.1328 + > 101.1329 + 101.1330 +<!-- 101.1331 + Use thead to duplicate headers when breaking table 101.1332 + across page boundaries, or for static headers when 101.1333 + tbody sections are rendered in scrolling panel. 101.1334 + 101.1335 + Use tfoot to duplicate footers when breaking table 101.1336 + across page boundaries, or for static footers when 101.1337 + tbody sections are rendered in scrolling panel. 101.1338 + 101.1339 + Use multiple tbody sections when rules are needed 101.1340 + between groups of table rows. 101.1341 +--> 101.1342 +<!ATTLIST thead 101.1343 + %attrs; 101.1344 + %cellhalign; 101.1345 + %cellvalign; 101.1346 + > 101.1347 + 101.1348 +<!ATTLIST tfoot 101.1349 + %attrs; 101.1350 + %cellhalign; 101.1351 + %cellvalign; 101.1352 + > 101.1353 + 101.1354 +<!ATTLIST tbody 101.1355 + %attrs; 101.1356 + %cellhalign; 101.1357 + %cellvalign; 101.1358 + > 101.1359 + 101.1360 +<!ATTLIST tr 101.1361 + %attrs; 101.1362 + %cellhalign; 101.1363 + %cellvalign; 101.1364 + bgcolor %Color; #IMPLIED 101.1365 + > 101.1366 + 101.1367 +<!-- Scope is simpler than headers attribute for common tables --> 101.1368 +<!ENTITY % Scope "(row|col|rowgroup|colgroup)"> 101.1369 + 101.1370 +<!-- th is for headers, td for data and for cells acting as both --> 101.1371 + 101.1372 +<!ATTLIST th 101.1373 + %attrs; 101.1374 + abbr %Text; #IMPLIED 101.1375 + axis CDATA #IMPLIED 101.1376 + headers IDREFS #IMPLIED 101.1377 + scope %Scope; #IMPLIED 101.1378 + rowspan %Number; "1" 101.1379 + colspan %Number; "1" 101.1380 + %cellhalign; 101.1381 + %cellvalign; 101.1382 + nowrap (nowrap) #IMPLIED 101.1383 + bgcolor %Color; #IMPLIED 101.1384 + width %Length; #IMPLIED 101.1385 + height %Length; #IMPLIED 101.1386 + > 101.1387 + 101.1388 +<!ATTLIST td 101.1389 + %attrs; 101.1390 + abbr %Text; #IMPLIED 101.1391 + axis CDATA #IMPLIED 101.1392 + headers IDREFS #IMPLIED 101.1393 + scope %Scope; #IMPLIED 101.1394 + rowspan %Number; "1" 101.1395 + colspan %Number; "1" 101.1396 + %cellhalign; 101.1397 + %cellvalign; 101.1398 + nowrap (nowrap) #IMPLIED 101.1399 + bgcolor %Color; #IMPLIED 101.1400 + width %Length; #IMPLIED 101.1401 + height %Length; #IMPLIED 101.1402 + > 101.1403 +
102.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 102.2 +++ b/filters/publish/SVGFilter.html Mon Apr 11 10:08:48 2011 +1000 102.3 @@ -0,0 +1,4540 @@ 102.4 +<!-- 102.5 + Filter Effects 1.0, Part 2: Language 102.6 + 102.7 + $Id$ 102.8 + 102.9 + Note: This document is generated from ../master/SVGFilter.html. 102.10 + Run "make" from ../master/ to regenerate it. 102.11 + --> 102.12 + 102.13 +<!DOCTYPE html 102.14 + PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 102.15 +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>Filter Effects 1.0, Part 2: Language</title><link rel="stylesheet" type="text/css" href="style/svg-style.css"/><link rel="stylesheet" type="text/css" href="style/svg-style-extra.css"/><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body> 102.16 + 102.17 +<div class="head"> 102.18 + <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 102.19 + <h1 id="pagetitle">Filter Effects 1.0: Language</h1> 102.20 + <h2 id="pagesubtitle">W3C Editor’s Draft <em>24 February 2011</em></h2> 102.21 + <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html">http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/FilterEffects10/">http://www.w3.org/TR/FilterEffects10/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a></dd><dt>Editors:</dt><dd><a href="mailto:ed@opera.com">Erik Dahlström</a>, (<a href="http://www.opera.com/">Opera Software ASA</a>)</dd><dd><a href="mailto:dino@apple.com">Dean Jackson</a> (<a href="http://www.apple.com/">Apple Inc</a>)</dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG and CSS Working Groups.</dd></dl> 102.22 + <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p> 102.23 +</div> 102.24 + 102.25 +<hr/> 102.26 + 102.27 +<h2 id="abstract">Abstract</h2> 102.28 + 102.29 +<p> 102.30 +SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed. 102.31 +</p> 102.32 +<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO. 102.33 +</p> 102.34 +<p> 102.35 +This document defines the markup used by SVG filters. 102.36 +</p> 102.37 + 102.38 +<h2 id="status">Status of This Document</h2> 102.39 + 102.40 +<p><em>This section describes the status of this document at the time of its 102.41 +publication. Other documents may supersede this document. The latest status 102.42 +of this document series is maintained at the W3C. </em> </p> 102.43 + 102.44 +<p>This document is the first public working draft of this specification. 102.45 +There is an accompanying <a href="#SVG12FilterPrimer">Filter Effects 1.0, Part 102.46 +1: Primer</a> that lists the ways SVG filters may be used. </p> 102.47 + 102.48 +<p>This document has been produced by the <a href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of 102.49 +the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a> 102.50 +within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>. 102.51 +</p> 102.52 + 102.53 +<p>We explicitly invite comments on this specification. Please send them to 102.54 +<a href="mailto:public-fx@w3.org">public-fx@w3.org</a> (<a href="http://lists.w3.org/Archives/Public/public-fx/">archives</a>). 102.55 +Acceptance of the archiving policy is requested automatically upon first post to the 102.56 +list. To subscribe to the list send an email to <a href="mailto:public-fx-request@w3.org">public-fx-request@w3.org</a> with 102.57 +the word subscribe in the subject line. </p> 102.58 + 102.59 +<p>The latest information regarding <a href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 102.60 +related to this document is available on the Web. As of this publication, the 102.61 +SVG Working Group are not aware of any royalty-bearing patents they believe 102.62 +to be essential to SVG.</p> 102.63 + 102.64 +<p>Publication of this document does not imply endorsement by the W3C 102.65 +membership. A list of current W3C Recommendations and other technical 102.66 +documents can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may 102.67 +be updated, replaced, or obsoleted by other documents at any time. It is 102.68 +inappropriate to cite a W3C Working Draft as anything other than a <em>work 102.69 +in progress</em>." </p> 102.70 + 102.71 +<h2 id="howto">How to read this document and give feedback</h2> 102.72 + 102.73 +<p>This draft of Filter Effects 1.0 is essentially the filter chapter from <a href="#ref-svg11">SVG 1.1</a>. One of the goals is that this specification 102.74 +can be re-used more easily by other specifications that want to have filter 102.75 +effects. Some things that have been changed are: error handling is more 102.76 +similar to SVG Tiny 1.2, the addition of a <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive and the 102.77 +possibility to filter bitmap data with the DOM. </p> 102.78 + 102.79 +<p>The main purpose of this document is to encourage public feedback. The 102.80 +best way to give feedback is by sending an email to <a href="mailto:public-fx@w3.org">public-fx@w3.org</a>. Please 102.81 +include some kind of keyword that identifies the area of the specification 102.82 +the comment is referring to in the subject line of your message (e.g "Section 102.83 +X.Y - the 'filter' property" or "Filtering primitive handling"). If you have 102.84 +comments on multiple areas of this document, then it is probably best to 102.85 +split those comments into multiple messages. </p> 102.86 + 102.87 +<p>The public are welcome to comment on any aspect in this document, but 102.88 +there are a few areas in which the SVG Working Group are explicitly 102.89 +requesting feedback. These areas are noted in place within this document. 102.90 +There is also a specific area related to the specification that is listed 102.91 +here: </p> 102.92 + 102.93 +<ul class="toc"> 102.94 +<li><a href="#introduction">1 Introduction</a></li> 102.95 +<li><a href="#FilterDefinitions">2 Definitions</a></li> 102.96 +<li><a href="#FilterElement">3 The <span class="element-name">‘filter’</span> 102.97 +element</a></li> 102.98 +<li><a href="#FilterProperty">4 The <span class="prop-name">‘filter’</span> 102.99 +property</a><ul class="toc"> 102.100 +<li><a href="#">4.1 How the 'filter' property applies to content formatted by CSS (e.g HTML)</a></li></ul></li> 102.101 +<li><a href="#FilterEffectsRegion">5 Filter effects region</a><ul class="toc"> 102.102 +<li><a href="#filter-margins">5.1 Filter Region extensions</a></li></ul></li> 102.103 +<li><a href="#AccessBackgroundImage">6 Accessing the background image</a><ul class="toc"> 102.104 +<li><a href="#AccessBackgroundImageSVG">6.1 Accessing the background image in SVG</a></li></ul></li> 102.105 +<li><a href="#FilterPrimitivesOverview">7 Filter primitives overview</a><ul class="toc"> 102.106 +<li><a href="#FilterPrimitivesOverviewIntro">7.1 Overview</a></li> 102.107 +<li><a href="#CommonAttributes">7.2 Common attributes</a></li> 102.108 +<li><a href="#FilterPrimitiveSubRegion">7.3 Filter primitive subregion</a></li></ul></li> 102.109 +<li><a href="#LightSourceDefinitions">8 Light source elements and properties</a><ul class="toc"> 102.110 +<li><a href="#LightSourceIntro">8.1 Introduction</a></li> 102.111 +<li><a href="#feDistantLightElement">8.2 Light source <span class="element-name">‘feDistantLight’</span></a></li> 102.112 +<li><a href="#fePointLightElement">8.3 Light source <span class="element-name">‘fePointLight’</span></a></li> 102.113 +<li><a href="#feSpotLightElement">8.4 Light source <span class="element-name">‘feSpotLight’</span></a></li> 102.114 +<li><a href="#LightingColorProperty">8.5 The <span class="prop-name">‘lighting-color’</span> property</a></li></ul></li> 102.115 +<li><a href="#feBlendElement">9 Filter primitive <span class="element-name">‘feBlend’</span></a></li> 102.116 +<li><a href="#feColorMatrixElement">10 Filter primitive <span class="element-name">‘feColorMatrix’</span></a></li> 102.117 +<li><a href="#feComponentTransferElement">11 Filter primitive <span class="element-name">‘feComponentTransfer’</span></a></li> 102.118 +<li><a href="#feCompositeElement">12 Filter primitive <span class="element-name">‘feComposite’</span></a></li> 102.119 +<li><a href="#feConvolveMatrixElement">13 Filter primitive <span class="element-name">‘feConvolveMatrix’</span></a></li> 102.120 +<li><a href="#feDiffuseLightingElement">14 Filter primitive <span class="element-name">‘feDiffuseLighting’</span></a></li> 102.121 +<li><a href="#feDisplacementMapElement">15 Filter primitive <span class="element-name">‘feDisplacementMap’</span></a></li> 102.122 +<li><a href="#feFloodElement">16 Filter primitive <span class="element-name">‘feFlood’</span></a></li> 102.123 +<li><a href="#feGaussianBlurElement">17 Filter primitive <span class="element-name">‘feGaussianBlur’</span></a></li> 102.124 +<li><a href="#feUnsharpMaskElement">18 Filter primitive <span class="element-name">‘feUnsharpMask’</span></a></li> 102.125 +<li><a href="#feImageElement">19 Filter primitive <span class="element-name">‘feImage’</span></a></li> 102.126 +<li><a href="#feMergeElement">20 Filter primitive <span class="element-name">‘feMerge’</span></a></li> 102.127 +<li><a href="#feMorphologyElement">21 Filter primitive <span class="element-name">‘feMorphology’</span></a></li> 102.128 +<li><a href="#feOffsetElement">22 Filter primitive <span class="element-name">‘feOffset’</span></a></li> 102.129 +<li><a href="#feSpecularLightingElement">23 Filter primitive <span class="element-name">‘feSpecularLighting’</span></a></li> 102.130 +<li><a href="#feTileElement">24 Filter primitive <span class="element-name">‘feTile’</span></a></li> 102.131 +<li><a href="#feTurbulenceElement">25 Filter primitive <span class="element-name">‘feTurbulence’</span></a></li> 102.132 +<li><a href="#feDropShadowElement">26 Filter primitive <span class="element-name">‘feDropShadow’</span></a></li> 102.133 +<li><a href="#feDiffuseSpecularElement">27 Filter primitive <span class="element-name">‘feDiffuseSpecular’</span></a></li> 102.134 +<li><a href="#feCustomElement">28 Filter primitive <span class="element-name">‘feCustom’</span></a></li> 102.135 +<li><a href="#RelaxNG">29 RelaxNG Schema for Filter Effects 1.0</a></li> 102.136 +<li><a href="#DOMInterfaces">30 DOM interfaces</a></li> 102.137 +<li><a href="#DOMInterfaces">31 DOM interfaces</a><ul class="toc"> 102.138 +<li><a href="#InterfaceImageData">31.1 Interface ImageData</a></li> 102.139 +<li><a href="#InterfaceSVGFilterElement">31.2 Interface SVGFilterElement</a></li> 102.140 +<li><a href="#InterfaceSVGFilterPrimitiveStandardAttributes">31.3 Interface SVGFilterPrimitiveStandardAttributes</a></li> 102.141 +<li><a href="#InterfaceSVGFEBlendElement">31.4 Interface SVGFEBlendElement</a></li> 102.142 +<li><a href="#InterfaceSVGFEColorMatrixElement">31.5 Interface SVGFEColorMatrixElement</a></li> 102.143 +<li><a href="#InterfaceSVGFEComponentTransferElement">31.6 Interface SVGFEComponentTransferElement</a></li> 102.144 +<li><a href="#InterfaceSVGComponentTransferFunctionElement">31.7 Interface SVGComponentTransferFunctionElement</a></li> 102.145 +<li><a href="#InterfaceSVGFEFuncRElement">31.8 Interface SVGFEFuncRElement</a></li> 102.146 +<li><a href="#InterfaceSVGFEFuncGElement">31.9 Interface SVGFEFuncGElement</a></li> 102.147 +<li><a href="#InterfaceSVGFEFuncBElement">31.10 Interface SVGFEFuncBElement</a></li> 102.148 +<li><a href="#InterfaceSVGFEFuncAElement">31.11 Interface SVGFEFuncAElement</a></li> 102.149 +<li><a href="#InterfaceSVGFECompositeElement">31.12 Interface SVGFECompositeElement</a></li> 102.150 +<li><a href="#InterfaceSVGFEConvolveMatrixElement">31.13 Interface SVGFEConvolveMatrixElement</a></li> 102.151 +<li><a href="#InterfaceSVGFEDiffuseLightingElement">31.14 Interface SVGFEDiffuseLightingElement</a></li> 102.152 +<li><a href="#InterfaceSVGFEDistantLightElement">31.15 Interface SVGFEDistantLightElement</a></li> 102.153 +<li><a href="#InterfaceSVGFEPointLightElement">31.16 Interface SVGFEPointLightElement</a></li> 102.154 +<li><a href="#InterfaceSVGFESpotLightElement">31.17 Interface SVGFESpotLightElement</a></li> 102.155 +<li><a href="#InterfaceSVGFEDisplacementMapElement">31.18 Interface SVGFEDisplacementMapElement</a></li> 102.156 +<li><a href="#InterfaceSVGFEFloodElement">31.19 Interface SVGFEFloodElement</a></li> 102.157 +<li><a href="#InterfaceSVGFEGaussianBlurElement">31.20 Interface SVGFEGaussianBlurElement</a></li> 102.158 +<li><a href="#InterfaceSVGFEImageElement">31.21 Interface SVGFEImageElement</a></li> 102.159 +<li><a href="#InterfaceSVGFEMergeElement">31.22 Interface SVGFEMergeElement</a></li> 102.160 +<li><a href="#InterfaceSVGFEMergeNodeElement">31.23 Interface SVGFEMergeNodeElement</a></li> 102.161 +<li><a href="#InterfaceSVGFEMorphologyElement">31.24 Interface SVGFEMorphologyElement</a></li> 102.162 +<li><a href="#InterfaceSVGFEOffsetElement">31.25 Interface SVGFEOffsetElement</a></li> 102.163 +<li><a href="#InterfaceSVGFESpecularLightingElement">31.26 Interface SVGFESpecularLightingElement</a></li> 102.164 +<li><a href="#InterfaceSVGFETileElement">31.27 Interface SVGFETileElement</a></li> 102.165 +<li><a href="#InterfaceSVGFETurbulenceElement">31.28 Interface SVGFETurbulenceElement</a></li> 102.166 +<li><a href="#InterfaceSVGFEDropShadowElement">31.29 Interface SVGFEDropShadowElement</a></li></ul></li> 102.167 +<li><a href="#references1">32 References</a><ul class="toc"> 102.168 +<li><a href="#normref">32.1 Normative References</a></li> 102.169 +<li><a href="#informref">32.2 Informative References</a></li></ul></li> 102.170 +<li><a href="#changes">33 Changes</a></li></ul> 102.171 + 102.172 +<h2 id="introduction">1 Introduction</h2> 102.173 + 102.174 +<p>This chapter describes a declarative filter effects feature set, which 102.175 +when combined with the other web technologies, like SVG or HTML, can describe 102.176 +much of the common artwork on the Web in such a way that client-side 102.177 +generation and alteration can be performed easily. In addition, the ability 102.178 +to apply filter effects to SVG <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics elements</span></a> and <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> helps to 102.179 +maintain the semantic structure of the document, instead of resorting to 102.180 +images which aside from generally being a fixed resolution tend to obscure 102.181 +the original semantics of the elements they replace. This is especially true 102.182 +for effects applied to text. 102.183 +</p> 102.184 + 102.185 +<p> 102.186 + 102.187 +</p> 102.188 + 102.189 +<p>Note that even though this specification references parts of <a href="#ref-svg11">SVG 1.1</a> it does not require a complete SVG 1.1 102.190 +implementation. <span class="note">Add link to conformance classes here.</span> 102.191 +</p> 102.192 + 102.193 +<p>This document is normative. </p> 102.194 + 102.195 +<p>This document contains explicit conformance criteria that overlap with 102.196 +some RNG definitions in requirements. If there is any conflict between the 102.197 +two, the explicit conformance criteria are the definitive reference. </p> 102.198 + 102.199 +<p>A filter effect consists of a series of graphics operations that are 102.200 +applied to a given <span id="TermSourceGraphic" class="SVG-Term">source graphic</span> to produce a modified graphical 102.201 +result. The result of the filter effect is rendered to the target device 102.202 +instead of the original source graphic. The following illustrates the 102.203 +process:</p> 102.204 + 102.205 +<p><object data="examples/filters00.svg" type="image/svg+xml" height="78" width="400"> 102.206 + <img alt="Image showing source graphic transformed by filter effect" src="examples/filters00.png" width="401" height="78"/> 102.207 +</object></p> 102.208 +<p class="view-as-svg"><a href="examples/filters00.svg">View this example as 102.209 +SVG (SVG-enabled browsers only)</a><br/> 102.210 + </p> 102.211 + 102.212 +<h2 id="FilterDefinitions">2 Definitions</h2> 102.213 + <p>When used in this specification, terms have the meanings assigned in this section.</p> 102.214 + <dl><dt id="TermNullFilter"><span class="SVG-TermDefine">null filter</span></dt><dd> 102.215 + <p> 102.216 + The null filter output is all transparent black pixels. If applied to an element it means 102.217 + that the element (and children if any) becomes invisible. Note that it does not affect event processing. 102.218 + </p> 102.219 + </dd><dt id="TermTransferFunctionElements"><span class="SVG-TermDefine">transfer function elements</span></dt><dd> 102.220 + <p> 102.221 + The set of elements, 102.222 + <a href=""><span class="element-name">‘feFuncR’</span></a>, <a href=""><span class="element-name">‘feFuncG’</span></a>, <a href=""><span class="element-name">‘feFuncB’</span></a>, <a href=""><span class="element-name">‘feFuncA’</span></a>, that define the transfer function for the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> filter primitive. 102.223 + </p> 102.224 + </dd><dt id="TermClientBoundingRect"><span class="SVG-TermDefine">bounding client rect</span></dt><dd> 102.225 + <p> 102.226 + The union of all CSS border-boxes for the element if formatted by CSS, as defined by the CSS OM method 102.227 + <a href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect">getBoundingClientRect</a> [<a href="#ref-CSSOM">CSSOM</a>]. 102.228 + </p> 102.229 + </dd><dt id="TermCSSBoundingBox"><span class="SVG-TermDefine">CSS bounding box</span></dt><dd> 102.230 + <p> 102.231 + The union of all CSS border-boxes for the element and all it's descendant elements, provided the element is formatted by CSS. [<a href="#ref-CSS21">CSS</a>]. 102.232 + </p> 102.233 + </dd><dt id="TermCurrentUserCoordinateSystem"><span class="SVG-TermDefine">current user coordinate system</span></dt><dd> 102.234 + <p> 102.235 + For elements formatted by CSS: the current user coordinate system has its origin at the top-left corner of the 102.236 + <a href="#TermClientBoundingRect">bounding client rect</a> and one unit equals on CSS px. The viewport for resolving percentage values is defined by the width and height of the 102.237 + <a href="#TermClientBoundingRect">bounding client rect</a>. 102.238 + </p> 102.239 + <p> 102.240 + For SVG elements see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a>. 102.241 + </p> 102.242 + </dd><dt id="TermObjectBoundingBoxUnits"><span class="SVG-TermDefine">object bounding box units</span></dt><dd> 102.243 + For elements formatted by CSS: the bounding box is defined by <a href="#TermCSSBoundingBox">the CSS bounding box.</a> 102.244 + <p> 102.245 + For SVG elements the bounding box is defined by <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermBoundingBox">the SVG bounding box</a>. 102.246 + </p> 102.247 + <p> 102.248 + For both cases the bounding box defines the coordinate system in which to resolve values, as defined in <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>. 102.249 + </p> 102.250 + </dd><dt id="TermFilterPrimitiveReference"><span class="SVG-TermDefine"><filter-primitive-reference></span></dt><dd> 102.251 + <p> 102.252 + A string that identifies a particular filter primitive's output. 102.253 + </p> 102.254 + </dd><dt id="TermFilterPrimitiveElements"><span class="SVG-TermDefine">filter primitives, filter primitive elements</span></dt><dd> 102.255 + <p> 102.256 + The set of elements that control the output of a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, particularly: 102.257 + <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 102.258 + <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, 102.259 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>, 102.260 + <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>, 102.261 + <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>, 102.262 + <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>, 102.263 + <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>, 102.264 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a>, 102.265 + <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a>, 102.266 + <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>, 102.267 + <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a>, 102.268 + <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>, 102.269 + <a href="#feImageElement"><span class="element-name">‘feImage’</span></a>, 102.270 + <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a>, 102.271 + <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>, 102.272 + <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>, 102.273 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>, 102.274 + <a href="#feTileElement"><span class="element-name">‘feTile’</span></a>, 102.275 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a>, 102.276 + <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a>, 102.277 + <a href="#feDiffuseSpecular"><span class="element-name">‘feDiffuseSpecular’</span></a>, 102.278 + <a href="#feUnsharpMaskElement"><span class="element-name">‘feUnsharpMask’</span></a>, 102.279 + <a href="#feCustom"><span class="element-name">‘feCustom’</span></a>. 102.280 + </p> 102.281 + </dd></dl> 102.282 + <br/> 102.283 + 102.284 +<h2 id="FilterElement">3 The <span class="element-name">‘filter’</span> 102.285 +element</h2> 102.286 + 102.287 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘filter’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.288 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermDescriptiveElement">descriptive elements</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#DescElement"><span class="element-name">‘desc’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/metadata.html#MetadataElement"><span class="element-name">‘metadata’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#TitleElement"><span class="element-name">‘title’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive elements</a><span class="expanding"> — <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>, <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>, <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>, <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>, <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a>, <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a>, <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>, <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a>, <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>, <a href="#feImageElement"><span class="element-name">‘feImage’</span></a>, <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a>, <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>, <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>, <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>, <a href="#feTileElement"><span class="element-name">‘feTile’</span></a>, <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermXLinkAttributes">xlink attributes</a><span class="expanding"> — <a href="#FilterElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkShowAttribute"><span class="attr-name">‘xlink:show’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkActuateAttribute"><span class="attr-name">‘xlink:actuate’</span></a>, <a href="struct.html#XLinkTypeAttribute"><span class="attr-name">‘xlink:type’</span></a>, <a href="struct.html#XLinkRoleAttribute"><span class="attr-name">‘xlink:role’</span></a>, <a href="struct.html#XLinkArcRoleAttribute"><span class="attr-name">‘xlink:arcrole’</span></a>, <a href="struct.html#XLinkTitleAttribute"><span class="attr-name">‘xlink:title’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#ExternalResourcesRequiredAttribute"><span class="attr-name">‘externalResourcesRequired’</span></a></li><li><a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a></li><li><a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a></li><li><a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a></li><li><a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a></li><li><a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a></li><li><a href="#FilterElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a></li><li><a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a></li><li><a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a></li><li><a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a></li><li><a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a></li><li><a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a></li><li><a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFilterElement">SVGFilterElement</a></li></ul></dd></dl></div> 102.289 + 102.290 + 102.291 + 102.292 +<p>The description of the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element 102.293 +follows:</p> 102.294 + 102.295 +<div class="adef-list"> 102.296 +<p><em>Attribute definitions:</em></p> 102.297 +<dl><dt id="FilterElementFilterUnitsAttribute"><span class="adef">filterUnits</span> = "<em>userSpaceOnUse</em> | 102.298 + <em>objectBoundingBox</em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementPrimitiveUnitsAttribute"><span class="adef">primitiveUnits</span> = "<em>userSpaceOnUse</em> | 102.299 + <em>objectBoundingBox</em>"</dt><dd>Specifies the coordinate system for the various length values within 102.300 + the <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> and for the attributes that define the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.<br/> 102.301 + If <span class="attr-value">primitiveUnits="userSpaceOnUse"</span>, any length values 102.302 + within the filter definitions represent values in the <a href="#TermCurrentUserCoordinateSystem">current user 102.303 + coordinate system</a> in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.304 + element is referenced (i.e., the user coordinate system for the element 102.305 + referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> 102.306 + property).<br/> 102.307 + If <span class="attr-value">primitiveUnits="objectBoundingBox"</span>, then any length 102.308 + values within the filter definitions represent fractions or percentages 102.309 + of the bounding box on the referencing element (see <a href="#TermObjectBoundingBoxUnits">object bounding box 102.310 + units</a>). Note that if only one number was specified in a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a> value 102.311 + this number is expanded out before the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> computation takes place. 102.312 + <br/> 102.313 + If attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> is not 102.314 + specified, then the effect is as if a value of <span class="attr-value">userSpaceOnUse</span> were specified.<br/> 102.315 + <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementFilterMarginUnitsAttribute"><span class="adef">filterMarginUnits</span> = "<em>userSpaceOnUse</em> | 102.316 + <em>objectBoundingBox</em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementPrimitiveMarginUnitsAttribute"><span class="adef">primitiveMarginUnits</span> = "<em>userSpaceOnUse</em> | 102.317 + <em>objectBoundingBox</em>"</dt><dd>Specifies the coordinate system for the margin attributes within the 102.318 + <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> which is used for determining the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.<br/> 102.319 + If <span class="attr-value">primitiveMarginUnits="userSpaceOnUse"</span>, any margin 102.320 + attribute values within the filter definitions represent values in the 102.321 + current user coordinate system in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.322 + element is referenced (i.e., the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element 102.323 + referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> 102.324 + property).<br/> 102.325 + If <span class="attr-value">primitiveMarginUnits="objectBoundingBox"</span>, then any 102.326 + margin attribute values within the filter definitions represent 102.327 + fractions or percentages of the bounding box on the referencing element 102.328 + (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).<br/> 102.329 + 102.330 + <span class="requirement" id="assert_LacunaValuePrimitiveMarginsUnits">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> is <span class="attr-value">userSpaceOnUse</span></span>.<br/> 102.331 + <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementXAttribute"> 102.332 + <span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementYAttribute"> 102.333 + <span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementWidthAttribute"><span class="adef">width</span> = 102.334 + "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementHeightAttribute"><span class="adef">height</span> = 102.335 + "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterPrimitiveMxAttribute"> 102.336 + <span class="adef">mx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd>The margin delta for the x coordinate of the subregion which 102.337 + restricts calculation and rendering of the given filter primitive. If 102.338 + this attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/> 102.339 + <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMyAttribute"> 102.340 + <span class="adef">my</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd>The margin delta for the y coordinate of the subregion which 102.341 + restricts calculation and rendering of the given filter primitive. If 102.342 + this attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>. <br/> 102.343 + <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMwAttribute"> 102.344 + <span class="adef">mw</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd>The margin delta for the width of the subregion which restricts 102.345 + calculation and rendering of the given filter primitive. If this 102.346 + attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/> 102.347 + <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMhAttribute"> 102.348 + <span class="adef">mh</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd>The margin delta for the height of the subregion which restricts 102.349 + calculation and rendering of the given filter primitive. If this 102.350 + attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/> 102.351 + <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementFilterResAttribute"><span class="adef">filterRes</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></em>" 102.352 + </dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementHrefAttribute"><span class="adef">xlink:href</span> 102.353 + = "<span class="attr-value"><IRI></span>"</dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 102.354 + to another <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element within 102.355 + the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermSVGDocumentFragment"><span class="svg-term">SVG document fragment</span></a>. Any attributes which are defined on 102.356 + the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element which 102.357 + are not defined on this element are inherited by this element. If this 102.358 + element has no defined filter nodes, and the referenced element has 102.359 + defined filter nodes (possibly due to its own <span class="attr-name">href</span> attribute), then this element inherits 102.360 + the filter nodes defined from the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. Inheritance can be 102.361 + indirect to an arbitrary level; thus, if the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element inherits attributes or its 102.362 + filter node specification due to its own <span class="attr-name">href</span> attribute, then the current element can 102.363 + inherit those attributes or filter node specifications. 102.364 + 102.365 + <div class="note"> 102.366 + This attribute is deprecated and should not be used, it's included for 102.367 + backwards compatibility reasons only.</div> 102.368 + <br/> 102.369 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.370 +</div> 102.371 + 102.372 +<p>Properties inherit into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.373 +element from its ancestors; properties do <em>not</em> inherit from the 102.374 +element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.375 +element.</p> 102.376 + 102.377 +<p><a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are never rendered 102.378 +directly; their only usage is as something that can be referenced using the 102.379 +<a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> 102.380 +property. The <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property does not 102.381 +apply to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element; thus, <a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are not directly rendered even 102.382 +if the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property is set to a value 102.383 +other than <span class="prop-value">none</span>, and <a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are available for referencing 102.384 +even when the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element or any of its ancestors is set 102.385 +to <span class="prop-value">none</span>.</p> 102.386 +<br/> 102.387 + 102.388 +<h2 id="FilterProperty">4 The <span class="prop-name">‘filter’</span> 102.389 +property</h2> 102.390 + 102.391 +<p>The description of the <span class="prop-name">‘filter’</span> property is 102.392 +as follows:</p> 102.393 + 102.394 +<div class="propdef"> 102.395 +<dl><dt id="propdef-filter"><span class="propdef-title prop-name">‘filter’</span></dt><dd> 102.396 + <table summary="filter property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI"><FuncIRI></a> | none | <a class="noxref" href="http://www.w3.org/TR/REC-CSS2/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>none</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td>All elements 102.397 + 102.398 + .</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table> 102.399 + </dd></dl> 102.400 +</div> 102.401 + 102.402 +<dl><dt><span class="prop-value"><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI"><FuncIRI></a></span></dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 102.403 + to a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element which defines the 102.404 + filter effects that shall be applied to this element. 102.405 + </dd><dt><span class="prop-value">none</span></dt><dd>Do not apply any filter effects to this element.</dd></dl> 102.406 + 102.407 +<p>If a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property references a non-existent object or the referenced 102.408 +object is not a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, then the <a href="#TermNullFilter"><span class="svg-term">null filter</span></a> will be applied instead. 102.409 +</p> 102.410 + 102.411 +<h3>How the 'filter' property applies to content formatted by CSS (e.g HTML)</h3> 102.412 +<p> 102.413 +The application of the <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property to an element formatted by CSS establishes a pseudo-stacking-context the same way 102.414 +that CSS <a href="http://www.w3.org/TR/css3-color/#transparency">'opacity'</a> does, 102.415 +and all the element's boxes are rendered together as a group with the filter effect applied to the group as a whole. 102.416 +</p> 102.417 +<p> 102.418 +The <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property has no effect on the geometry of the target element's CSS boxes, even though <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> can cause painting outside of an element's border-box. 102.419 +</p> 102.420 +<p> 102.421 +The compositing model follows the <a href="http://www.w3.org/TR/SVG11/render.html#Introduction">SVG compositing model</a>: 102.422 +first any filter effect is applied, then any clipping, masking and/or group opacity. 102.423 +These effects all apply after any other CSS effects such as 'clip'. As per SVG, the application of <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> has no effect on mouse event hit-testing. 102.424 +</p> 102.425 + 102.426 +<br/> 102.427 + 102.428 + 102.429 +<h2 id="FilterEffectsRegion">5 Filter effects region</h2> 102.430 + 102.431 +<p>A <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.432 +element can define a region on the canvas to which a given filter effect 102.433 +applies and can provide a resolution for any intermediate continuous tone 102.434 +images used to process any raster-based <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>. 102.435 + 102.436 +<h3 id="filter-margins">5.1 Filter Region extensions</h3> 102.437 + 102.438 +<p>In <a href="#ref-svg11">SVG 1.1</a>, a <span class="element">filter</span> 102.439 +defines the area upon which it applies. This makes it difficult to develop a 102.440 +generic filter that can be applied to arbitrary graphics, since the filter 102.441 +must define a large enough area to cover any graphical object to which it is 102.442 +applied. An example of this is a generic "drop shadow" filter, which is 102.443 +commonly specified as a combination of a Gaussian blur <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>) that is offset <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>) and then composed <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>) with the original source graphic. 102.444 +Since the shadow has to extend beyond the original graphic's boundaries, the 102.445 +filter must be defined to have a larger area than the original graphic. 102.446 +Overestimating this margin has a negative effect on performance, since the 102.447 +complex filter operation has to touch a larger amount of user space (ie. 102.448 +pixels). </p> 102.449 + 102.450 +<p>In order to solve this problem this spec allows additional control over 102.451 +the filter region. The outer filter region is expressed by delta to the 102.452 +<a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, 102.453 +<a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 102.454 +<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, 102.455 +<a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> 102.456 + of the input filter region. </p> 102.457 + 102.458 +<p>In particular, the <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a>, <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a>, 102.459 +<a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> are 102.460 +added to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. The <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a> specifies the coordinate space of 102.461 +the margin attributes, which are used to increase or decrease the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element's 102.462 +<a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, 102.463 +<a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 102.464 +<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> and 102.465 +<a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> 102.466 +attributes (once they have been calculated). The <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> specifies the units for the 102.467 +new margin attributes on the <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>, also named 102.468 +<a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, 102.469 +<a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, 102.470 +<a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, 102.471 +<a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a>. 102.472 +These margins attribute override those set on the parent <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 102.473 +Note that this doesn't mean that a can expand the filter region itself, just that the 102.474 +coordinate system used for filter primitive's margin attributes can be 102.475 +different than the one used for the margin attributes on the 102.476 +<a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. </p> 102.477 + 102.478 +<p>An example of the new attributes, which defines a generic drop shadow 102.479 +filter: </p> 102.480 +<pre class="examplesource"> <filter id="dropShadow" x="0" y="0" width="1" height="1" 102.481 + filterMarginUnits="userSpaceOnUse" 102.482 + mx="0" my="0" mw="5" mh="5" > 102.483 + <feGaussianBlur stdDeviation="2" in="SourceAlpha" /> 102.484 + <feOffset dx="2" /> 102.485 + <feMerge> 102.486 + <feMergeNode /> 102.487 + <feMergeNode in="SourceGraphic" /> 102.488 + </feMerge> 102.489 + </filter> </pre> 102.490 + 102.491 +<p>In the above example, the filter region by default covers the entire 102.492 +bounds of the object (which is not enough to show the shadow). Adding the new 102.493 +margins extends the width and height by 5 user units each, which is always 102.494 +enough to display the blur (which has a standard deviation of 2 user units) 102.495 +and offset (which is another 2 units). </p> 102.496 + 102.497 +The <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.498 +element has the following attributes which work together to define the filter 102.499 +effects region:</p> 102.500 + 102.501 + <dl class="definitions unemphasized-names"><dt id="FilterUnitsAttribute"><a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a></dt><dd> 102.502 + <p>Defines the coordinate system for attributes <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 102.503 + <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>.</p> 102.504 + 102.505 + <p>If <span class="attr-value">filterUnits="userSpaceOnUse"</span>, <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 102.506 + <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> represent values in the current user coordinate 102.507 + system in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element is referenced (i.e., the 102.508 + user coordinate system for the element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.509 + element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property).</p> 102.510 + 102.511 + <p>If <span class="attr-value">filterUnits="objectBoundingBox"</span>, then <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 102.512 + <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> represent fractions or percentages of the 102.513 + bounding box on the referencing element (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).</p> 102.514 + 102.515 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> is <span class="attr-value">objectBoundingBox</span>.</p> 102.516 + 102.517 + <p><span class="anim-target">Animatable: yes.</span></p> 102.518 + </dd><dt id="FilterRegionXYWidthHeightAttributes"><a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a></dt><dd> 102.519 + <p>These attributes define a rectangular region on the canvas to which this filter applies.</p> 102.520 + <p>The amount of memory and processing time required to apply the filter are 102.521 + related to the size of this rectangle and the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute of the filter.</p> 102.522 + <p>The coordinate system for these attributes depends on the value for attribute <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a>.</p> 102.523 + <p>The bounds of this rectangle act as a hard clipping region for each <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> 102.524 + included with a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element; thus, if the effect of 102.525 + a given filter primitive would extend beyond the bounds of the rectangle 102.526 + (this sometimes happens when using a <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive with a 102.527 + very large <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>), parts of the effect will get clipped.</p> 102.528 + 102.529 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a> and <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> is <span class="attr-value">-10%</span>.</p> 102.530 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> is <span class="attr-value">120%</span>.</p> 102.531 + <p>Negative or zero values for <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> or <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> disable rendering of the element which 102.532 + referenced the filter. </p> 102.533 + 102.534 + <p><span class="anim-target">Animatable: yes.</span></p> 102.535 + </dd><dt id="FilterMarginAttribute"><a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a></dt><dd> 102.536 + <p>Defines the coordinate system for attributes <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, 102.537 + <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a>.</p> 102.538 + <p>If <span class="attr-value">filterMarginUnits="userSpaceOnUse"</span>, <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, 102.539 + <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> represent values in the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> 102.540 + in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element is referenced (i.e., the 102.541 + <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.542 + element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property).</p> 102.543 + <p>If <span class="attr-value">filterMarginUnits="objectBoundingBox"</span>, then <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, 102.544 + <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> represent fractions or percentages of the 102.545 + on the referencing element (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).</p> 102.546 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a> is 102.547 + <span class="attr-value">userSpaceOnUse</span>.</p> 102.548 + <p><span class="anim-target">Animatable: yes.</span></p> 102.549 + </dd><dt id="FilterRegionMyAttribute"><a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a></dt><dd> 102.550 + <p>Defines the deltas to the <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> of the filter region.</p> 102.551 + 102.552 + <p>After the <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> have been calculated for the 102.553 + <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> the <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> are calculated and added 102.554 + to the <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a>. <span class="requirement" id="assert_OORFilterRegion">If the resulting 102.555 + <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> has a negative or zero width or height, the rendering of the element which 102.556 + referenced the filter is disabled.</span></p> 102.557 + 102.558 + <p>The coordinate system for these attributes depends on the value for 102.559 + attribute <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a>.</p> 102.560 + 102.561 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> is <span class="attr-value">0</span>.</p> 102.562 + <p><span class="anim-target">Animatable: yes.</span></p> 102.563 + </dd><dt id="FilterRegionFilterRes"><a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a></dt><dd> 102.564 + <p>Defines the width and height of the intermediate 102.565 + images in pixels. If not provided, then a reasonable default resolution 102.566 + appropriate for the target device will be used. (For displays, an 102.567 + appropriate display resolution, preferably the current display's pixel 102.568 + resolution, is the default. For printing, an appropriate common printer 102.569 + resolution, such as 1200dpi, is the default.)</p> 102.570 + <p>Care should be taken when assigning a non-default value to this 102.571 + attribute. Too small of a value may result in unwanted pixelation in the 102.572 + result. Too large of a value may result in slow processing and large 102.573 + memory usage.</p> 102.574 + <p><span class="requirement" id="assert_OORFilterRegion">Negative or zero values disable rendering of the element which referenced the filter.</span></p> 102.575 + <p><span class="anim-target">Animatable: yes.</span></p> 102.576 + </dd></dl> 102.577 + 102.578 +<p>Note that both of the two possible value for <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> (i.e., <span class="attr-value">objectBoundingBox</span> and <span class="attr-value">userSpaceOnUse</span>) result in a <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> whose 102.579 +coordinate system has its X-axis and Y-axis each parallel to the X-axis and 102.580 +Y-axis, respectively, of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element to which 102.581 +the filter will be applied.</p> 102.582 + 102.583 +<p class="note implementation">Sometimes implementers can achieve faster performance when the filter 102.584 +region can be mapped directly to device pixels; thus, for best performance on 102.585 +display devices, it is suggested that authors define their region such that 102.586 +the user agent can align the filter region pixel-for-pixel with the 102.587 +background. In particular, for best filter effects performance, avoid 102.588 +rotating or skewing the user coordinate system. Explicit values for attribute 102.589 +<a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> can either help or harm performance. 102.590 +If <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> is smaller than the automatic 102.591 +(i.e., default) filter resolution, then filter effect might have faster 102.592 +performance (usually at the expense of quality). If <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> is larger than the automatic (i.e., 102.593 +default) filter resolution, then filter effects performance will usually be 102.594 +slower.</p> 102.595 + 102.596 +<p class="note authoring">It is often necessary to provide padding space because the filter effect 102.597 +might impact bits slightly outside the tight-fitting on a given 102.598 +object. For these purposes, it is possible to provide negative percentage 102.599 +values for <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> and percentages values greater than <span class="attr-value">100%</span> for 102.600 +<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>. This, for example, is why the defaults for 102.601 +the filter effects region are <span class="attr-value">x="-10%" y="-10%" width="120%" 102.602 +height="120%"</span>.</p> 102.603 + 102.604 +<h2 id="AccessBackgroundImage">6 Accessing the background image</h2> 102.605 + 102.606 +<p id="AccessingBackgroundImage">Two possible pseudo input images for filter effects are <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a>, which each represent an image 102.607 +snapshot of the canvas under the filter region at the time that the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element 102.608 +is invoked. <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> represents both 102.609 +the color values and alpha channel of the canvas (i.e., RGBA pixel values), 102.610 +whereas <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> represents only the 102.611 +alpha channel.</p> 102.612 + 102.613 +<p>Implementations 102.614 +will often need to maintain supplemental background image buffers in order to 102.615 +support the <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images. Sometimes, 102.616 +the background image buffers will contain an in-memory copy of the 102.617 +accumulated painting operations on the current canvas.</p> 102.618 + 102.619 +<p>Because in-memory image buffers can take up significant system resources, 102.620 +content must explicitly indicate to the 102.621 +user agent that the document needs access to the background image before <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images can be used. 102.622 +</p> 102.623 + 102.624 +A background image is what's been <i>rendered before</i> the current element. 102.625 + For SVG, that uses the painter's algorithm, <i>rendered before</i> means 102.626 +all of the prior elements in pre order traversal previous to the element to 102.627 +which the filter is applied. 102.628 + 102.629 +<p>The property which enables access to the background image is 102.630 +<a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a>:</p> 102.631 + 102.632 + 102.633 +<div class="propdef"> 102.634 +<dl><dt id="EnableBackgroundProperty"><span class="propdef-title prop-name">‘enable-background’</span></dt><dd> 102.635 + <table summary="enable-background property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>accumulate | new [ <x> <y> <width> 102.636 + <height> ] | <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>accumulate</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td>Typically elements that can contain renderable elements. 102.637 + language is responsible for defining the applicable set of 102.638 + elements. 102.639 + For SVG: <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a></td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>no</td></tr></tbody></table> 102.640 + </dd></dl> 102.641 +</div> 102.642 +<p><a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> is only 102.643 + applicable to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> 102.644 + and specifies how the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserAgent"><span class="svg-term">SVG user agent</span></a> manages the accumulation 102.645 + of the background image.</p> 102.646 + 102.647 +<p>A value of <strong>new</strong> indicates two things:</p> 102.648 +<ul><li>It enables the ability of children of the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 102.649 + element to access the background image.</li><li>It indicates that a new (i.e., initially transparent black) background 102.650 + image canvas is established and that (in effect) all children of the 102.651 + current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 102.652 + element shall be rendered into the new background image canvas in 102.653 + addition to being rendered onto the target device.</li></ul> 102.654 + 102.655 +<p>A meaning of <span class="attr-value">enable-background: accumulate</span> (the 102.656 +initial/default value) depends on context:</p> 102.657 +<ul><li>If an ancestor <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 102.658 + element has a property value of <span class="attr-value">'enable-background:new'</span>, then all 102.659 + renderable child elements of the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 102.660 + element are rendered both onto the parent <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 102.661 + element's background image canvas and onto the target device.</li><li>Otherwise, there is no current background image canvas, so it is only 102.662 + necessary to render <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics elements</span></a> 102.663 + the renderable elements onto the target device. (No need to render to the 102.664 + background image canvas.)</li></ul> 102.665 + 102.666 +<p>If a filter effect specifies either the <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> or the 102.667 + <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images and no 102.668 +ancestor <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 102.669 + element has a property value of <span class="attr-value">'enable-background:new'</span>, then the background 102.670 +image request is technically in error. Processing will proceed without 102.671 +interruption (i.e., no error message) and a transparent black image shall be 102.672 +provided in response to the request.</p> 102.673 + 102.674 +<p>The optional 102.675 +<strong><x>,<y>,<width>,<height></strong> 102.676 +<span class="specissue">ISSUE: define the type of each of these, probably <number></span> 102.677 + parameters 102.678 +on the <span class="attr-value">new</span> value indicate the subregion of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 102.679 + element to which <a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> applies' user space where access to the 102.680 +background image is allowed to happen. These parameters enable the user 102.681 +agent potentially to allocate smaller temporary image buffers than the 102.682 +default values, which might require the user agent to allocate buffers as 102.683 +large as the current viewport. Thus, the values 102.684 +<x>,<y>,<width>,<height> act as a clipping rectangle 102.685 +on the background image canvas. If more than zero but less than four of the 102.686 +values <x>,<y>,<width> and <height> are specified or 102.687 +if negative or zero values are specified for <width> or <height>, 102.688 +<a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> are processed as if background 102.689 +image processing were not enabled. </p> 102.690 + 102.691 +<h3 id="AccessBackgroundImageSVG">6.1 Accessing the background image in SVG</h3> 102.692 +<p>This section only applies to the SVG definition of enable-background.</p> 102.693 + 102.694 +<p>Assume you have an element E in the document and that E has a series of 102.695 +ancestors A<sub>1</sub> (its immediate parent), A<sub>2</sub>, etc. (Note: 102.696 +A<sub>0</sub> is E.) Each ancestor A<sub>i</sub> will have a corresponding 102.697 +temporary background image offscreen buffer BUF<sub>i</sub>. The contents of 102.698 +the <em>background image</em> available to a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> referenced by E is defined as 102.699 +follows:</p> 102.700 +<ul><li>Find the element A<sub>i</sub> with the smallest subscript i (including 102.701 + A<sub>0</sub>=E) for which the <a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> property has the value 102.702 + <span class="prop-value">new</span>. (Note: if there is no such ancestor 102.703 + element, then there is no background image available to E, in which case 102.704 + a transparent black image will be used as E's background image.)</li><li>For each A<sub>i</sub> (from i=n to 1), initialize BUF<sub>i</sub> to 102.705 + transparent black. Render all children of A<sub>i</sub> up to but not 102.706 + including A<sub>i-1</sub> into BUF<sub>i</sub>. The children are painted, 102.707 + then filtered, clipped, masked and composited using the various painting, 102.708 + filtering, clipping, masking and object opacity settings on the given 102.709 + child. Any filter effects, masking and group opacity that might be set on 102.710 + A<sub>i</sub> do <em>not</em> apply when rendering the children of 102.711 + A<sub>i</sub> into BUF<sub>i</sub>.<br/> 102.712 + (Note that for the case of A<sub>0</sub>=E, the graphical contents of E 102.713 + are not rendered into BUF<sub>1</sub> and thus are not part of the 102.714 + background image available to E. Instead, the graphical contents of E are 102.715 + available via the <a href="#SourceGraphic">SourceGraphic</a> and <a href="#SourceAlpha">SourceAlpha</a> pseudo input images.)</li><li>Then, for each A<sub>i</sub> (from i=1 to n-1), composite 102.716 + BUF<sub>i</sub> into BUF<sub>i+1</sub>.</li><li>The accumulated result (i.e., BUF<sub>n</sub>) represents the 102.717 + background image available to E.</li></ul> 102.718 + 102.719 +<pre class="xml"><?xml version="1.0" standalone="no"?> 102.720 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 102.721 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 102.722 +<svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270" 102.723 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 102.724 + <title>Example enable-background01</title> 102.725 + <desc>This test case shows five pictures which illustrate the rules 102.726 + for background image processing.</desc> 102.727 + 102.728 + <defs> 102.729 + <filter id="ShiftBGAndBlur" 102.730 + filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 102.731 + <desc> 102.732 + This filter discards the SourceGraphic, if any, and just produces 102.733 + a result consisting of the BackgroundImage shifted down 125 units 102.734 + and then blurred. 102.735 + </desc> 102.736 + <feOffset in="BackgroundImage" dx="0" dy="125" /> 102.737 + <feGaussianBlur stdDeviation="8" /> 102.738 + </filter> 102.739 + <filter id="ShiftBGAndBlur_WithSourceGraphic" 102.740 + filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 102.741 + <desc> 102.742 + This filter takes the BackgroundImage, shifts it down 125 units, blurs it, 102.743 + and then renders the SourceGraphic on top of the shifted/blurred background. 102.744 + </desc> 102.745 + <feOffset in="BackgroundImage" dx="0" dy="125" /> 102.746 + <feGaussianBlur stdDeviation="8" result="blur" /> 102.747 + <feMerge> 102.748 + <feMergeNode in="blur"/> 102.749 + <feMergeNode in="SourceGraphic"/> 102.750 + </feMerge> 102.751 + </filter> 102.752 + </defs> 102.753 + 102.754 + <g transform="translate(0,0)"> 102.755 + <desc>The first picture is our reference graphic without filters.</desc> 102.756 + <rect x="25" y="25" width="100" height="100" fill="red"/> 102.757 + <g opacity=".5"> 102.758 + <circle cx="125" cy="75" r="45" fill="green"/> 102.759 + <polygon points="160,25 160,125 240,75" fill="blue"/> 102.760 + </g> 102.761 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 102.762 + </g> 102.763 + 102.764 + <g enable-background="new" transform="translate(270,0)"> 102.765 + <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc> 102.766 + <rect x="25" y="25" width="100" height="100" fill="red"/> 102.767 + <g opacity=".5"> 102.768 + <circle cx="125" cy="75" r="45" fill="green"/> 102.769 + <polygon points="160,25 160,125 240,75" fill="blue"/> 102.770 + </g> 102.771 + <g filter="url(#ShiftBGAndBlur)"/> 102.772 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 102.773 + </g> 102.774 + 102.775 + <g enable-background="new" transform="translate(540,0)"> 102.776 + <desc>The third invokes ShiftBGAndBlur on the inner group.</desc> 102.777 + <rect x="25" y="25" width="100" height="100" fill="red"/> 102.778 + <g filter="url(#ShiftBGAndBlur)" opacity=".5"> 102.779 + <circle cx="125" cy="75" r="45" fill="green"/> 102.780 + <polygon points="160,25 160,125 240,75" fill="blue"/> 102.781 + </g> 102.782 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 102.783 + </g> 102.784 + 102.785 + <g enable-background="new" transform="translate(810,0)"> 102.786 + <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc> 102.787 + <rect x="25" y="25" width="100" height="100" fill="red"/> 102.788 + <g opacity=".5"> 102.789 + <circle cx="125" cy="75" r="45" fill="green"/> 102.790 + <polygon points="160,25 160,125 240,75" fill="blue" 102.791 + filter="url(#ShiftBGAndBlur)"/> 102.792 + </g> 102.793 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 102.794 + </g> 102.795 + 102.796 + <g enable-background="new" transform="translate(1080,0)"> 102.797 + <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc> 102.798 + <rect x="25" y="25" width="100" height="100" fill="red"/> 102.799 + <g opacity=".5"> 102.800 + <circle cx="125" cy="75" r="45" fill="green"/> 102.801 + <polygon points="160,25 160,125 240,75" fill="blue" 102.802 + filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/> 102.803 + </g> 102.804 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 102.805 + </g> 102.806 +</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/enable-background-01.png"/></td></tr></table><p class="view-as-svg"><a href="examples/enable-background-01.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 102.807 + 102.808 +<p>The example above contains five parts, described as follows:</p> 102.809 +<ol><li>The first set is the reference graphic. The reference graphic consists 102.810 + of a red rectangle followed by a 50% transparent <span class="element-name">‘g’</span> 102.811 + element. Inside the <span class="element-name">‘g’</span> 102.812 + is a green circle that partially overlaps the rectangle and a a blue 102.813 + triangle that partially overlaps the circle. The three objects are then 102.814 + outlined by a rectangle stroked with a thin blue line. No filters are 102.815 + applied to the reference graphic.</li><li>The second set enables background image processing and adds an empty 102.816 + <span class="element-name">‘g’</span> 102.817 + element which invokes the ShiftBGAndBlur filter. This filter takes the 102.818 + current accumulated background image (i.e., the entire reference graphic) 102.819 + as input, shifts its offscreen down, blurs it, and then writes the result 102.820 + to the canvas. Note that the offscreen for the filter is initialized to 102.821 + transparent black, which allows the already rendered rectangle, circle 102.822 + and triangle to show through after the filter renders its own result to 102.823 + the canvas.</li><li>The third set enables background image processing and instead invokes 102.824 + the ShiftBGAndBlur filter on the inner <span class="element-name">‘g’</span> 102.825 + element. The accumulated background at the time the filter is applied 102.826 + contains only the red rectangle. Because the children of the inner <span class="element-name">‘g’</span> 102.827 + (i.e., the circle and triangle) are not part of the inner <span class="element-name">‘g’</span> 102.828 + element's background and because ShiftBGAndBlur ignores SourceGraphic, 102.829 + the children of the inner <span class="element-name">‘g’</span> 102.830 + do not appear in the result.</li><li>The fourth set enables background image processing and invokes the 102.831 + ShiftBGAndBlur on the <span class="element-name">‘polygon’</span> 102.832 + element that draws the triangle. The accumulated background at the time 102.833 + the filter is applied contains the red rectangle plus the green circle 102.834 + ignoring the effect of the <span class="prop-name">‘opacity’</span> 102.835 + property on the inner <span class="element-name">‘g’</span> 102.836 + element. (Note that the blurred green circle at the bottom does not let 102.837 + the red rectangle show through on its left side. This is due to ignoring 102.838 + the effect of the <span class="prop-name">‘opacity’</span> 102.839 + property.) Because the triangle itself is not part of the accumulated 102.840 + background and because ShiftBGAndBlur ignores SourceGraphic, the triangle 102.841 + does not appear in the result.</li><li>The fifth set is the same as the fourth except that filter 102.842 + ShiftBGAndBlur_WithSourceGraphic is invoked instead of ShiftBGAndBlur. 102.843 + ShiftBGAndBlur_WithSourceGraphic performs the same effect as 102.844 + ShiftBGAndBlur, but then renders the SourceGraphic on top of the shifted, 102.845 + blurred background image. In this case, SourceGraphic is the blue 102.846 + triangle; thus, the result is the same as in the fourth case except that 102.847 + the blue triangle now appears.</li></ol> 102.848 + 102.849 + 102.850 +<h2 id="FilterPrimitivesOverview">7 Filter primitives overview</h2> 102.851 + 102.852 +<h3 id="FilterPrimitivesOverviewIntro">7.1 Overview</h3> 102.853 + 102.854 +<p>This section describes the various filter primtives that can be assembled 102.855 +to achieve a particular filter effect.</p> 102.856 + 102.857 +<p>Unless otherwise stated, all image filters operate on premultiplied RGBA 102.858 +samples. Filters which work more naturally on non-premultiplied data 102.859 +(<a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> and <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>) will temporarily undo and redo 102.860 +premultiplication as specified. All raster effect filtering operations take 1 102.861 +to N input RGBA images, additional attributes as parameters, and produce a 102.862 +single output RGBA image.</p> 102.863 + 102.864 +<p>The RGBA result from each filter primitive will be clamped into the 102.865 +allowable ranges for colors and opacity values. Thus, for example, the result 102.866 +from a given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will have any negative color values or opacity 102.867 +values adjusted up to color/opacity of zero.</p> 102.868 + 102.869 +<p id="filtersColorSpace">The color space in which a particular <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> performs its 102.870 +operations is determined by the value of property <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> on the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter 102.871 +primitive</span></a>. A different property, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> determines the color space for 102.872 +other color operations. Because these two properties have different initial 102.873 +values (<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> has an 102.874 +initial value of <span class="prop-value">linearRGB</span> whereas <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> has an initial value of <span class="prop-value">sRGB</span>), in some cases to achieve certain results 102.875 +(e.g., when coordinating gradient interpolation with a filtering operation) 102.876 +it will be necessary to explicitly set <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> to <span class="prop-value">linearRGB</span> or <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> to <span class="prop-value">sRGB</span> on particular elements. Note that the examples 102.877 +below do not explicitly set either <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> or <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a>, so the initial values for these properties apply to the examples.</p> 102.878 + 102.879 +<p><span class="requirement" id="assert_undefinedPixels">Sometimes <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> result in undefined pixels. For example, 102.880 +filter primitive <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> can shift an image down and to the 102.881 +right, leaving undefined pixels at the top and left. In these cases, the 102.882 +undefined pixels are set to transparent black.</span></p> 102.883 + 102.884 +<h3 id="CommonAttributes">7.2 Common attributes</h3> 102.885 + 102.886 +<p>The following attributes are available for most of the filter 102.887 +primitives:</p> 102.888 + 102.889 +<div class="adef-list"> 102.890 +<p><em>Attribute definitions:</em></p> 102.891 +<dl><dt id="FilterPrimitiveXAttribute"> 102.892 + <span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd><p>The minimum x coordinate for the subregion which restricts 102.893 + calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 102.894 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">x</span> is <span class="attr-value">0%</span>.</p> 102.895 + <p><span class="anim-target">Animatable: yes.</span></p> 102.896 + </dd><dt id="FilterPrimitiveYAttribute"> 102.897 + <span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd><p>The minimum y coordinate for the subregion which restricts 102.898 + calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. </p> 102.899 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">y</span> is <span class="attr-value">0%</span>.</p> 102.900 + <p><span class="anim-target">Animatable: yes.</span></p> 102.901 + </dd><dt id="FilterPrimitiveWidthAttribute"> 102.902 + <span class="adef">width</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd><p>The width of the subregion which restricts calculation and rendering 102.903 + of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 102.904 + <p>A negative or zero value disables the effect of the given filter 102.905 + primitive (i.e., the result is a transparent black image).</p> 102.906 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">width</span> is <span class="attr-value">100%</span>.</p> 102.907 + <p><span class="anim-target">Animatable: yes.</span></p> 102.908 + </dd><dt id="FilterPrimitiveHeightAttribute"> 102.909 + <span class="adef">height</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd><p>The height of the subregion which restricts calculation and rendering 102.910 + of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 102.911 + <p>A negative or zero value disables the effect of the given filter 102.912 + primitive (i.e., the result is a transparent black image).</p> 102.913 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">height</span> is <span class="attr-value">100%</span>.</p> 102.914 + <p><span class="anim-target">Animatable: yes.</span></p> 102.915 + </dd><dt id="FilterPrimitiveMxAttribute"> 102.916 + <span class="adef">mx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd><p>The margin delta for the x coordinate of the subregion which 102.917 + restricts calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 102.918 + see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 102.919 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mx</span> is <span class="attr-value">0</span>.</p> 102.920 + <p><span class="anim-target">Animatable: yes.</span></p> 102.921 + </dd><dt id="FilterPrimitiveMyAttribute"> 102.922 + <span class="adef">my</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd><p>The margin delta for the y coordinate of the subregion which 102.923 + restricts calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 102.924 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">my</span> is <span class="attr-value">0</span>.</p> 102.925 + <p><span class="anim-target">Animatable: yes.</span></p> 102.926 + </dd><dt id="FilterPrimitiveMwAttribute"> 102.927 + <span class="adef">mw</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd><p>The margin delta for the width of the subregion which restricts 102.928 + calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 102.929 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mw</span> is <span class="attr-value">0</span>.</p> 102.930 + <p><span class="anim-target">Animatable: yes.</span></p> 102.931 + </dd><dt id="FilterPrimitiveMhAttribute"> 102.932 + <span class="adef">mh</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd><p>The margin delta for the height of the subregion which restricts 102.933 + calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 102.934 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mh</span> is <span class="attr-value">0</span>.</p> 102.935 + <p><span class="anim-target">Animatable: yes.</span></p> 102.936 + </dd><dt id="FilterPrimitiveResultAttribute"> 102.937 + <span class="adef">result</span> = 102.938 + "<em><a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a></em>"</dt><dd><p>Assigned name for this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. If supplied, then graphics 102.939 + that result from processing this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> can be referenced by 102.940 + an <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute on a subsequent filter 102.941 + primitive within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. If no value is 102.942 + provided, the output will only be available for re-use as the implicit 102.943 + input into the next <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> if that <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> provides 102.944 + no value for its <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute.</p> 102.945 + <p>Note that a <a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a> is not an XML 102.946 + ID; instead, a <a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a> is only 102.947 + meaningful within a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element and thus have only 102.948 + local scope. It is legal for the same 102.949 + <a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a> to appear multiple times 102.950 + within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. When referenced, the 102.951 + <a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a> will use the closest 102.952 + preceding <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> with the given result.</p> 102.953 + <p><span class="anim-target">Animatable: yes.</span></p> 102.954 + </dd><dt id="FilterPrimitiveInAttribute"> 102.955 + <span class="adef">in</span> = "<em><a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> | <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> | <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> | <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> | <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> | <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> | 102.956 + <a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a></em>"</dt><dd><p>Identifies input for the given filter primitive. The value can be 102.957 + either one of six keywords or can be a string which matches a previous 102.958 + <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a> attribute value within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.959 + element. If no value is provided and this is the first <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 102.960 + then this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will use <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> 102.961 + as its input. If no value is provided and this is a subsequent <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 102.962 + then this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will use the result from the 102.963 + previous <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> as its input.</p> 102.964 + <p>If the value for <span class="attr-name">result</span> appears 102.965 + multiple times within a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, then a reference to 102.966 + that result will use the closest preceding <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> with the 102.967 + given value for attribute <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a>. 102.968 + Forward references to results are not allowed, and will be treated as 102.969 + if no result was specified. </p> 102.970 + <p>Definitions for the six keywords: </p> 102.971 + <dl><dt id="SourceGraphic"><span class="attr-value">SourceGraphic</span></dt><dd><p>This keyword represents the graphics elements 102.972 + that were the original input into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. For raster 102.973 + effects <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>, the graphics elements 102.974 + will be rasterized into an initially clear RGBA raster in image 102.975 + space. Pixels left untouched by the original graphic will be left 102.976 + clear. The image is specified to be rendered in linear RGBA 102.977 + pixels. The alpha channel of this image captures any 102.978 + anti-aliasing specified by SVG. (Since the raster is linear, the 102.979 + alpha channel of this image will represent the exact percent 102.980 + coverage of each pixel.)</p></dd><dt id="SourceAlpha"><span class="attr-value">SourceAlpha</span></dt><dd><p>This keyword represents the graphics elements 102.981 + that were the original input into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 102.982 + <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> has all of the same rules 102.983 + as <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> except that only the 102.984 + alpha channel is used. The input image is an RGBA image 102.985 + consisting of implicitly black color values for the RGB channels, 102.986 + but whose alpha channel is the same as <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a>.</p> 102.987 + <p class="note implementation">If this option is 102.988 + used, then some implementations might need to rasterize the 102.989 + graphics elements 102.990 + in order to extract the alpha channel.</p> 102.991 + </dd><dt id="BackgroundImage"><span class="attr-value">BackgroundImage</span></dt><dd><p>This keyword represents an image snapshot of the canvas under 102.992 + the filter region at the time that the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element was invoked. See 102.993 + <a href="#AccessingBackgroundImage">accessing the background 102.994 + image</a>.</p> 102.995 + </dd><dt id="BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></dt><dd><p>Same as <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> except 102.996 + only the alpha channel is used. See <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> and <a href="#AccessingBackgroundImage">accessing the background 102.997 + image</a>.</p> 102.998 + </dd><dt id="FillPaint"><span class="attr-value">FillPaint</span></dt><dd> 102.999 + <p>This keyword represents the target element <i>rendered filled</i>.</p> 102.1000 + <p>For svg this keyword represents the value of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="prop-name">‘fill’</span></a> 102.1001 + property on the target element for the filter effect.</p> 102.1002 + <p>For non-SVG cases <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> generates a transparent black image. 102.1003 + <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the current color, or if it makes sense to use the 'fill' property for this case too.</span> 102.1004 + </p> 102.1005 + <p class="note authoring">Note that text is generally painted filled, not stroked.</p> 102.1006 + <p>The <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> image has conceptually infinite extent. 102.1007 + Frequently this image is opaque everywhere, but it might not be if the "paint" 102.1008 + itself has alpha, as in the case of a gradient or pattern which 102.1009 + itself includes transparent or semi-transparent parts.</p> 102.1010 + </dd><dt id="StrokePaint"><span class="attr-value">StrokePaint</span></dt><dd> 102.1011 + <p>This keyword represents the target element <i>rendered stroked</i>.</p> 102.1012 + <p>For svg this keyword represents the value of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="prop-name">‘stroke’</span></a> 102.1013 + on the target element for the filter effect.</p> 102.1014 + <p>For non-SVG cases <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> generates a transparent black image. 102.1015 + <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the one of the border colors, or if it makes sense to use the 'stroke' property for this case too.</span> 102.1016 + </p> 102.1017 + <p class="note authoring">Note that text is generally painted filled, not stroked.</p> 102.1018 + <p>The <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> image has conceptually infinite extent. 102.1019 + Frequently this image is opaque everywhere, but it 102.1020 + might not be if the "paint" 102.1021 + itself has alpha, as in the case of a gradient or pattern which 102.1022 + itself includes transparent or semi-transparent parts. 102.1023 + </p> 102.1024 + </dd></dl> 102.1025 + <p><span class="anim-target">Animatable: yes.</span></p> 102.1026 + </dd></dl> 102.1027 +</div> 102.1028 + 102.1029 +<h3 id="FilterPrimitiveSubRegion">7.3 Filter primitive subregion</h3> 102.1030 + 102.1031 + 102.1032 +<p> 102.1033 +All <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> have attributes <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, 102.1034 +<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, and <a href="#FilterPrimitiveMxAttribute"><span class="attr-name">‘mx’</span></a>, 102.1035 +<a href="#FilterPrimitiveMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterPrimitiveMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterPrimitiveMhAttribute"><span class="attr-name">‘mh’</span></a>, which 102.1036 +together identify a subregion which restricts calculation and rendering of 102.1037 +the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. The <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, 102.1038 +<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> attributes are defined 102.1039 +according to the same rules as other <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>' coordinate and length 102.1040 +attributes and thus represent values in the coordinate system established by 102.1041 +attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 102.1042 +The <a href="#FilterPrimitiveMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterPrimitiveMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterPrimitiveMwAttribute"><span class="attr-name">‘mw’</span></a> and 102.1043 +<a href="#FilterPrimitiveMhAttribute"><span class="attr-name">‘mh’</span></a> attributes contain deltas to the corresponding 102.1044 +<a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and 102.1045 +<a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> attributes and contain values in the coordinate 102.1046 +system established by attribute <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 102.1047 +</p> 102.1048 + 102.1049 +<p><a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, 102.1050 +<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> default to the union (i.e., tightest fitting bounding 102.1051 +box) of the subregions defined for all referenced nodes. If there are no 102.1052 +referenced nodes (e.g., for <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> or <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a>), or one or more of the 102.1053 +referenced nodes is a standard input (one of <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a>, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>, <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a>, <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a>, 102.1054 +<a href="#FillPaint"><span class="attr-value">FillPaint</span></a> or <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a>), or for 102.1055 +<a href="#feTileElement"><span class="element-name">‘feTile’</span></a> 102.1056 +(which is special because its principal function is to replicate the 102.1057 +referenced node in X and Y and thereby produce a usually larger result), the 102.1058 +default subregion is <span class="attr-value">0%, 0%, 100%, 100%</span>, where percentages are relative to the 102.1059 +dimensions of the <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a>.</p> 102.1060 + 102.1061 +<p>After the <strong>x</strong>, <strong>y</strong>, <strong>width</strong>, 102.1062 +<strong>height</strong> have been calculated for the filter primitive 102.1063 +subregion the margin attributes <strong>mx</strong>, <strong>my</strong>, 102.1064 +<strong>mw</strong>, <strong>mh</strong> are calculated and added to the 102.1065 +former to make the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. If the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive 102.1066 +subregion</span></a> has a negative or zero width or height, the effect of the filter 102.1067 +primitive is disabled. </p> 102.1068 + 102.1069 +<p>The <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> act as a hard clip clipping rectangle for 102.1070 +the filter primitive.</p> 102.1071 + 102.1072 +<p>All intermediate offscreens are defined to not exceed the intersection of 102.1073 +the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> with the <a href="#FilterEffectsRegion">filter 102.1074 +region</a>. The filter region and any of the filter primitive subregions are 102.1075 +to be set up such that all offscreens are made big enough to accommodate any 102.1076 +pixels which even partly intersect with either the filter region or the 102.1077 +filter primitive subregions.</p> 102.1078 + 102.1079 +<p><a href="#feTileElement"><span class="element-name">‘feTile’</span></a> references a previous filter primitive and then stitches the tiles together 102.1080 +based on the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> of the referenced filter primitive in 102.1081 +order to fill its own <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 102.1082 + 102.1083 +<pre class="xml"><svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"> 102.1084 + <defs> 102.1085 + <filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox"> 102.1086 + <feFlood x="25%" y="25%" width="50%" height="50%" 102.1087 + flood-color="green" flood-opacity="0.75"/> 102.1088 + </filter> 102.1089 + <filter id="blend" primitiveUnits="objectBoundingBox"> 102.1090 + <feBlend x="25%" y="25%" width="50%" height="50%" 102.1091 + in2="SourceGraphic" mode="multiply"/> 102.1092 + </filter> 102.1093 + <filter id="merge" primitiveUnits="objectBoundingBox"> 102.1094 + <feMerge x="25%" y="25%" width="50%" height="50%"> 102.1095 + <feMergeNode in="SourceGraphic"/> 102.1096 + <feMergeNode in="FillPaint"/> 102.1097 + </feMerge> 102.1098 + </filter> 102.1099 + </defs> 102.1100 + 102.1101 + <g fill="none" stroke="blue" stroke-width="4"> 102.1102 + <rect width="200" height="200"/> 102.1103 + <line x2="200" y2="200"/> 102.1104 + <line x1="200" y2="200"/> 102.1105 + </g> 102.1106 + <circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/> 102.1107 + 102.1108 + <g transform="translate(200 0)"> 102.1109 + <g fill="none" stroke="blue" stroke-width="4"> 102.1110 + <rect width="200" height="200"/> 102.1111 + <line x2="200" y2="200"/> 102.1112 + <line x1="200" y2="200"/> 102.1113 + </g> 102.1114 + <circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/> 102.1115 + </g> 102.1116 + 102.1117 + <g transform="translate(0 200)"> 102.1118 + <g fill="none" stroke="blue" stroke-width="4"> 102.1119 + <rect width="200" height="200"/> 102.1120 + <line x2="200" y2="200"/> 102.1121 + <line x1="200" y2="200"/> 102.1122 + </g> 102.1123 + <circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/> 102.1124 + </g> 102.1125 +</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/filtersubregion00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/filtersubregion00.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 102.1126 + 102.1127 +<p> 102.1128 +In the example above there are three rects that each have a cross and a circle in them. The circle element in each one has a different filter applied, but with the same <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. The filter output should be limited to the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>, so you should never see the circles themselves, just the rects that make up the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. 102.1129 +</p> 102.1130 +<ul><li> 102.1131 +The upper left rect shows an <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> with <span class="attr-name">flood-opacity</span>="<span class="attr-value">75%</span>" so the cross should be visible through the green rect in the middle. 102.1132 +</li><li> 102.1133 +The lower left rect shows an <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> that merges <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> with <a href="#FillPaint"><span class="attr-value">FillPaint</span></a>. Since the circle has <span class="attr-name">fill-opacity</span>="<span class="attr-value">0.5</span>" it will also be transparent so that the cross is visible through the green rect in the middle. 102.1134 +</li><li>The upper right rect shows an <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> that has <span class="attr-name">mode</span>="<span class="attr-value">multiply</span>". Since the circle in this case isn't transparent the result is totally opaque. The rect should be dark green and the cross should not be visible through it. 102.1135 +</li></ul> 102.1136 + 102.1137 + 102.1138 + 102.1139 +<h2 id="LightSourceDefinitions">8 Light source elements and properties</h2> 102.1140 + 102.1141 +<h3 id="LightSourceIntro">8.1 Introduction</h3> 102.1142 + 102.1143 +<p>The following sections define the elements that define a light source, <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 102.1144 +<a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> and <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>, 102.1145 +and property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>, which defines the color of the 102.1146 +light.</p> 102.1147 + 102.1148 +<h3 id="feDistantLightElement">8.2 Light source <span class="element-name">‘feDistantLight’</span></h3> 102.1149 + 102.1150 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDistantLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1151 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#feDistantLightAzimuthAttribute"><span class="attr-name">‘azimuth’</span></a></li><li><a href="#feDistantLightElevationAttribute"><span class="attr-name">‘elevation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDistantLightElement">SVGFEDistantLightElement</a></li></ul></dd></dl></div> 102.1152 + 102.1153 +<div class="adef-list"> 102.1154 +<p><em>Attribute definitions:</em></p> 102.1155 +<dl><dt id="feDistantLightAzimuthAttribute"><span class="adef">azimuth</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Direction angle for the light source on the XY plane (clockwise), in 102.1156 + degrees.<br/> 102.1157 + If the attribute is not specified, then the effect is as if a value of 102.1158 + <span class="attr-value">0</span> were specified.<br/> 102.1159 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feDistantLightElevationAttribute"><span class="adef">elevation</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Direction angle for the light source on the YZ plane, in degrees.<br/> 102.1160 + If the attribute is not specified, then the effect is as if a value of 102.1161 + <span class="attr-value">0</span> were specified.<br/> 102.1162 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.1163 +</div> 102.1164 + 102.1165 +<h3 id="fePointLightElement">8.3 Light source <span class="element-name">‘fePointLight’</span></h3> 102.1166 + 102.1167 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘fePointLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1168 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#fePointLightXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#fePointLightYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#fePointLightZAttribute"><span class="attr-name">‘z’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEPointLightElement">SVGFEPointLightElement</a></li></ul></dd></dl></div> 102.1169 + 102.1170 +<div class="adef-list"> 102.1171 +<p><em>Attribute definitions:</em></p> 102.1172 +<dl><dt id="fePointLightXAttribute"><span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>X location for the light source in the coordinate system established 102.1173 + by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.1174 + element.<br/> 102.1175 + If the attribute is not specified, then the effect is as if a value of 102.1176 + <span class="attr-value">0</span> were specified.<br/> 102.1177 + <span class="anim-target">Animatable: yes.</span></dd><dt id="fePointLightYAttribute"><span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Y location for the light source in the coordinate system established 102.1178 + by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.1179 + element.<br/> 102.1180 + If the attribute is not specified, then the effect is as if a value of 102.1181 + <span class="attr-value">0</span> were specified.<br/> 102.1182 + <span class="anim-target">Animatable: yes.</span></dd><dt id="fePointLightZAttribute"><span class="adef">z</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Z location for the light source in the coordinate system established 102.1183 + by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.1184 + element, assuming that, in the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a> 102.1185 + , the positive Z-axis comes out towards the person viewing the content 102.1186 + and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br/> 102.1187 + If the attribute is not specified, then the effect is as if a value of 102.1188 + <span class="attr-value">0</span> were specified.<br/> 102.1189 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.1190 +</div> 102.1191 + 102.1192 +<h3 id="feSpotLightElement">8.4 Light source <span class="element-name">‘feSpotLight’</span></h3> 102.1193 + 102.1194 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feSpotLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1195 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#feSpotLightXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#feSpotLightYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#feSpotLightZAttribute"><span class="attr-name">‘z’</span></a></li><li><a href="#feSpotLightPointsAtXAttribute"><span class="attr-name">‘pointsAtX’</span></a></li><li><a href="#feSpotLightPointsAtYAttribute"><span class="attr-name">‘pointsAtY’</span></a></li><li><a href="#feSpotLightPointsAtZAttribute"><span class="attr-name">‘pointsAtZ’</span></a></li><li><a href="#feSpotLightSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a></li><li><a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFESpotLightElement">SVGFESpotLightElement</a></li></ul></dd></dl></div> 102.1196 + 102.1197 +<div class="adef-list"> 102.1198 +<p><em>Attribute definitions:</em></p> 102.1199 +<dl><dt id="feSpotLightXAttribute"><span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>X location for the light source in the coordinate system established 102.1200 + by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.1201 + element.<br/> 102.1202 + If the attribute is not specified, then the effect is as if a value of 102.1203 + <span class="attr-value">0</span> were specified.<br/> 102.1204 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightYAttribute"><span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Y location for the light source in the coordinate system established 102.1205 + by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.1206 + element.<br/> 102.1207 + If the attribute is not specified, then the effect is as if a value of 102.1208 + <span class="attr-value">0</span> were specified.<br/> 102.1209 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightZAttribute"><span class="adef">z</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Z location for the light source in the coordinate system established 102.1210 + by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.1211 + element, assuming that, in the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a> 102.1212 + , the positive Z-axis comes out towards the person viewing the content 102.1213 + and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br/> 102.1214 + If the attribute is not specified, then the effect is as if a value of 102.1215 + <span class="attr-value">0</span> were specified.<br/> 102.1216 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtXAttribute"><span class="adef">pointsAtX</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>X location in the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> 102.1217 + on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.1218 + element of the point at which the light source is pointing.<br/> 102.1219 + If the attribute is not specified, then the effect is as if a value of 102.1220 + <span class="attr-value">0</span> were specified.<br/> 102.1221 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtYAttribute"><span class="adef">pointsAtY</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Y location in the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> 102.1222 + on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element of the point at which the light source is pointing.<br/> 102.1223 + If the attribute is not specified, then the effect is as if a value of 102.1224 + <span class="attr-value">0</span> were specified.<br/> 102.1225 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtZAttribute"><span class="adef">pointsAtZ</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Z location in the coordinate system established by the 102.1226 + attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element of 102.1227 + the point at which the light source is pointing, assuming that, in the 102.1228 + <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a>, the positive Z-axis comes out 102.1229 + towards the person viewing the content and assuming that 102.1230 + one unit along the Z-axis equals 102.1231 + <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage"> 102.1232 + one unit in X and Y</a>.<br/> 102.1233 + If the attribute is not specified, then the effect is as if a value of 102.1234 + <span class="attr-value">0</span> were specified.<br/> 102.1235 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightSpecularExponentAttribute"><span class="adef">specularExponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Exponent value controlling the focus for the light source.<br/> 102.1236 + If the attribute is not specified, then the effect is as if a value of 102.1237 + <span class="attr-value">1</span> were specified.<br/> 102.1238 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightLimitingConeAngleAttribute"><span class="adef">limitingConeAngle</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>A limiting cone which restricts the region where the light is 102.1239 + projected. No light is projected outside the cone. <span class="attr-name">limitingConeAngle</span> represents the angle in degrees between 102.1240 + the spot light axis (i.e. the axis between the light source and the 102.1241 + point to which it is pointing at) and the spot light cone. <span class="requirement" id="assert_userAgentLightingConeSmoothing">User agents 102.1242 + should apply a smoothing technique such as anti-aliasing at the 102.1243 + boundary of the cone.</span><br/> 102.1244 + If no value is specified, then no limiting cone will be applied.<br/> 102.1245 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.1246 +</div> 102.1247 + 102.1248 +<h3 id="LightingColorProperty">8.5 The <span class="prop-name">‘lighting-color’</span> property</h3> 102.1249 + 102.1250 +<p>The <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a> property defines the 102.1251 +color of the light source for <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>.</p> 102.1252 + 102.1253 +<div class="propdef"> 102.1254 +<dl><dt><span class="index-def" title="'margin-top'"><a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a></span></dt><dd> 102.1255 + <table summary="lighting-color property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>currentColor |<br/> 102.1256 + <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeColor"><color></a> 102.1257 + [<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeICCColor"><icccolor></a>] |<br/> 102.1258 + <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>white</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> 102.1259 + elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table> 102.1260 + </dd></dl> 102.1261 +</div> 102.1262 + 102.1263 +<h2 id="feBlendElement">9 Filter primitive <span class="element-name">‘feBlend’</span></h2> 102.1264 + 102.1265 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feBlend’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1266 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feBlendIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feBlendModeAttribute"><span class="attr-name">‘mode’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEBlendElement">SVGFEBlendElement</a></li></ul></dd></dl></div> 102.1267 + 102.1268 +<p>This filter composites two objects together using commonly used imaging 102.1269 +software blending modes. It performs a pixel-wise combination of two input 102.1270 +images.</p> 102.1271 + 102.1272 +<div class="adef-list"> 102.1273 +<p><em>Attribute definitions:</em></p> 102.1274 +<dl><dt id="feBlendModeAttribute"><span class="adef">mode</span> = "<em>normal | multiply | screen | darken | 102.1275 + lighten</em>"</dt><dd>One of the image blending modes (see <a href="#BlendingTable">table</a> below). Default is: normal.<br/> 102.1276 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feBlendIn2Attribute"><span class="adef">in2</span> = "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> 102.1277 + attribute)</em>"</dt><dd>The second input image to the blending operation. This attribute can 102.1278 + take on the same values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> attribute.<br/> 102.1279 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.1280 +</div> 102.1281 + 102.1282 +<p>For all feBlend modes, the result opacity is computed as follows:</p> 102.1283 +<pre>qr = 1 - (1-qa)*(1-qb)</pre> 102.1284 + 102.1285 +<p>For the compositing formulas below, the following definitions apply:</p> 102.1286 +<pre>image A = in 102.1287 +image B = in2 102.1288 +cr = Result color (RGB) - premultiplied 102.1289 +qa = Opacity value at a given pixel for image A 102.1290 +qb = Opacity value at a given pixel for image B 102.1291 +ca = Color (RGB) at a given pixel for image A - premultiplied 102.1292 +cb = Color (RGB) at a given pixel for image B - premultiplied </pre> 102.1293 + 102.1294 +<p id="BlendingTable">The following table 102.1295 +provides the list of available image blending modes:</p> 102.1296 + 102.1297 +<div class="note-editor"> 102.1298 +ED: make table look nicer</div> 102.1299 + 102.1300 +<table summary="blending modes" width="500" border="1"><tbody><tr><td>Image Blending Mode</td><td>Formula for computing result color</td></tr><tr><td>normal</td><td>cr = (1 - qa) * cb + ca</td></tr><tr><td>multiply</td><td>cr = (1-qa)*cb + (1-qb)*ca + ca*cb</td></tr><tr><td>screen</td><td>cr = cb + ca - ca * cb</td></tr><tr><td>darken</td><td>cr = Min ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td></tr><tr><td>lighten</td><td>cr = Max ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td></tr></tbody></table> 102.1301 + 102.1302 +<p><span class="attr-value">'normal'</span> blend mode is equivalent to <a href="#feCompositeOperatorAttribute"><span class="attr-value">operator="over"</span></a> on the <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 102.1303 +filter primitive, matches the blending method used by <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> and matches 102.1304 +the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#SimpleAlphaBlending"><span class="svg-term">simple alpha compositing</span></a> technique used in SVG for all compositing outside of filter effects.</p> 102.1305 + 102.1306 +<pre class="xml"><?xml version="1.0"?> 102.1307 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 102.1308 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 102.1309 +<svg width="5cm" height="5cm" viewBox="0 0 500 500" 102.1310 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 102.1311 + <title>Example feBlend - Examples of feBlend modes</title> 102.1312 + <desc>Five text strings blended into a gradient, 102.1313 + with one text string for each of the five feBlend modes.</desc> 102.1314 + <defs> 102.1315 + <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 102.1316 + x1="100" y1="0" x2="300" y2="0"> 102.1317 + <stop offset="0" stop-color="#000000" /> 102.1318 + <stop offset=".33" stop-color="#ffffff" /> 102.1319 + <stop offset=".67" stop-color="#ff0000" /> 102.1320 + <stop offset="1" stop-color="#808080" /> 102.1321 + </linearGradient> 102.1322 + <filter id="Normal"> 102.1323 + <feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/> 102.1324 + </filter> 102.1325 + <filter id="Multiply"> 102.1326 + <feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/> 102.1327 + </filter> 102.1328 + <filter id="Screen"> 102.1329 + <feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/> 102.1330 + </filter> 102.1331 + <filter id="Darken"> 102.1332 + <feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/> 102.1333 + </filter> 102.1334 + <filter id="Lighten"> 102.1335 + <feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/> 102.1336 + </filter> 102.1337 + </defs> 102.1338 + <rect fill="none" stroke="blue" 102.1339 + x="1" y="1" width="498" height="498"/> 102.1340 + <g enable-background="new" > 102.1341 + <rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" /> 102.1342 + <g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" > 102.1343 + <text x="50" y="90" filter="url(#Normal)" >Normal</text> 102.1344 + <text x="50" y="180" filter="url(#Multiply)" >Multiply</text> 102.1345 + <text x="50" y="270" filter="url(#Screen)" >Screen</text> 102.1346 + <text x="50" y="360" filter="url(#Darken)" >Darken</text> 102.1347 + <text x="50" y="450" filter="url(#Lighten)" >Lighten</text> 102.1348 + </g> 102.1349 + </g> 102.1350 +</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feBlend.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feBlend.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 102.1351 + 102.1352 +<h2 id="feColorMatrixElement">10 Filter primitive <span class="element-name">‘feColorMatrix’</span></h2> 102.1353 + 102.1354 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feColorMatrix’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1355 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a></li><li><a href="#feColorMatrixValuesAttribute"><span class="attr-name">‘values’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEColorMatrixElement">SVGFEColorMatrixElement</a></li></ul></dd></dl></div> 102.1356 + 102.1357 +<p>This filter applies a matrix transformation:</p> 102.1358 +<object data="mathml/feColorMatrix00.mml" type="application/mathml+xml" width="100%" height="140"> 102.1359 +<pre>| R' | | a00 a01 a02 a03 a04 | | R | 102.1360 +| G' | | a10 a11 a12 a13 a14 | | G | 102.1361 +| B' | = | a20 a21 a22 a23 a24 | * | B | 102.1362 +| A' | | a30 a31 a32 a33 a34 | | A | 102.1363 +| 1 | | 0 0 0 0 1 | | 1 |</pre> 102.1364 +</object> 102.1365 + 102.1366 +<p>on the RGBA color and alpha values of every pixel on the input graphics to 102.1367 +produce a result with a new set of RGBA color and alpha values.</p> 102.1368 + 102.1369 +<p>The calculations are performed on non-premultiplied color values. If the 102.1370 +input graphics consists of premultiplied color values, those values are 102.1371 +automatically converted into non-premultiplied color values for this 102.1372 +operation.</p> 102.1373 + 102.1374 +<p>These matrices often perform an identity mapping in the alpha channel. If 102.1375 +that is the case, an implementation can avoid the costly undoing and redoing 102.1376 +of the premultiplication for all pixels with A = 1.</p> 102.1377 + 102.1378 +<div class="adef-list"> 102.1379 +<p><em>Attribute definitions:</em></p> 102.1380 +<dl><dt id="feColorMatrixTypeAttribute"><span class="adef">type</span> = 102.1381 + "<em>matrix | saturate | hueRotate | luminanceToAlpha</em>"</dt><dd>Indicates the type of matrix operation. The keyword <span class="attr-name">matrix</span> indicates that a full 5x4 matrix of 102.1382 + values will be provided. The other keywords represent convenience 102.1383 + shortcuts to allow commonly used color operations to be performed 102.1384 + without specifying a complete matrix.<br/> 102.1385 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feColorMatrixValuesAttribute"><span class="adef">values</span> = 102.1386 + "<em>list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a>s</em>"</dt><dd>The contents of <span class="attr-name">values</span> depends on the 102.1387 + value of attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">type</span></a>: 102.1388 + <ul><li>For <span class="attr-value">type="matrix"</span>, <span class="attr-name">values</span> is a list of 20 matrix values (a00 102.1389 + a01 a02 a03 a04 a10 a11 ... a34), separated by whitespace and/or a 102.1390 + comma. For example, the identity matrix could be expressed as: 102.1391 + <pre>type="matrix" 102.1392 +values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"</pre> 102.1393 + </li><li>For <span class="attr-value">type="saturate"</span>, <span class="attr-name">values</span> is a single real number value (0 to 102.1394 + 1). A <span class="attr-value">saturate</span> operation is 102.1395 + equivalent to the following matrix operation: 102.1396 + <p> 102.1397 + <object data="mathml/feColorMatrix01.mml" type="application/mathml+xml" width="100%" height="130"> 102.1398 + <pre>| R' | |0.213+0.787s 0.715-0.715s 0.072-0.072s 0 0 | | R | 102.1399 +| G' | |0.213-0.213s 0.715+0.285s 0.072-0.072s 0 0 | | G | 102.1400 +| B' | = |0.213-0.213s 0.715-0.715s 0.072+0.928s 0 0 | * | B | 102.1401 +| A' | | 0 0 0 1 0 | | A | 102.1402 +| 1 | | 0 0 0 0 1 | | 1 |</pre> 102.1403 + </object> 102.1404 + </p> 102.1405 + </li><li>For <span class="attr-value">type="hueRotate"</span>, <span class="attr-name">values</span> is a single one real number value 102.1406 + (degrees). A <span class="attr-value">hueRotate</span> operation is 102.1407 + equivalent to the following matrix operation: 102.1408 + <p> 102.1409 + <object data="mathml/feColorMatrix02.mml" type="application/mathml+xml" width="100%" height="130"> 102.1410 + <pre>| R' | | a00 a01 a02 0 0 | | R | 102.1411 +| G' | | a10 a11 a12 0 0 | | G | 102.1412 +| B' | = | a20 a21 a22 0 0 | * | B | 102.1413 +| A' | | 0 0 0 1 0 | | A | 102.1414 +| 1 | | 0 0 0 0 1 | | 1 |</pre> 102.1415 + </object> 102.1416 + </p> 102.1417 + 102.1418 + where the terms a00, a01, etc. are calculated as follows: 102.1419 + <p> 102.1420 + <object data="mathml/feColorMatrix03.mml" type="application/mathml+xml" width="100%" height="230"> 102.1421 + <pre>| a00 a01 a02 | [+0.213 +0.715 +0.072] 102.1422 +| a10 a11 a12 | = [+0.213 +0.715 +0.072] + 102.1423 +| a20 a21 a22 | [+0.213 +0.715 +0.072] 102.1424 + [+0.787 -0.715 -0.072] 102.1425 +cos(hueRotate value) * [-0.213 +0.285 -0.072] + 102.1426 + [-0.213 -0.715 +0.928] 102.1427 + [-0.213 -0.715+0.928] 102.1428 +sin(hueRotate value) * [+0.143 +0.140-0.283] 102.1429 + [-0.787 +0.715+0.072]</pre> 102.1430 + </object> 102.1431 + </p> 102.1432 + Thus, the upper left term of the hue matrix turns out to be: 102.1433 + <p> 102.1434 + <object data="mathml/feColorMatrix04.mml" type="application/mathml+xml" width="100%" height="30"> 102.1435 + <pre>.213 + cos(hueRotate value)*.787 - sin(hueRotate value)*.213</pre> 102.1436 + </object> 102.1437 + </p> 102.1438 + 102.1439 + </li><li>For <span class="attr-value">type="luminanceToAlpha"</span>, 102.1440 + <span class="attr-name">values</span> is not applicable. A <span class="attr-value">luminanceToAlpha</span> operation is equivalent 102.1441 + to the following matrix operation: 102.1442 + <p> 102.1443 + <object data="mathml/feColorMatrix05.mml" type="application/mathml+xml" width="100%" height="130"> 102.1444 + <pre> | R' | | 0 0 0 0 0 | | R | 102.1445 + | G' | | 0 0 0 0 0 | | G | 102.1446 + | B' | = | 0 0 0 0 0 | * | B | 102.1447 + | A' | | 0.2125 0.7154 0.0721 0 0 | | A | 102.1448 + | 1 | | 0 0 0 0 1 | | 1 |</pre> 102.1449 + </object> 102.1450 + </p> 102.1451 + </li></ul> 102.1452 + If the attribute is not specified, then the default behavior depends on 102.1453 + the value of attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a>. If <span class="attr-value">type="matrix"</span>, then this attribute defaults 102.1454 + to the identity matrix. If <span class="attr-value">type="saturate"</span>, then this attribute defaults 102.1455 + to the value <span class="attr-value">1</span>, which results in the 102.1456 + identify matrix. If <span class="attr-value">type="hueRotate"</span>, 102.1457 + then this attribute defaults to the value <span class="attr-value">0</span>, which results in the identify matrix.<br/> 102.1458 + <span class="anim-target">Animatable: yes.</span> </dd></dl> 102.1459 +</div> 102.1460 + 102.1461 +<pre class="xml"><?xml version="1.0"?> 102.1462 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 102.1463 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 102.1464 +<svg width="8cm" height="5cm" viewBox="0 0 800 500" 102.1465 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 102.1466 + <title>Example feColorMatrix - Examples of feColorMatrix operations</title> 102.1467 + <desc>Five text strings showing the effects of feColorMatrix: 102.1468 + an unfiltered text string acting as a reference, 102.1469 + use of the feColorMatrix matrix option to convert to grayscale, 102.1470 + use of the feColorMatrix saturate option, 102.1471 + use of the feColorMatrix hueRotate option, 102.1472 + and use of the feColorMatrix luminanceToAlpha option.</desc> 102.1473 + <defs> 102.1474 + <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 102.1475 + x1="100" y1="0" x2="500" y2="0"> 102.1476 + <stop offset="0" stop-color="#ff00ff" /> 102.1477 + <stop offset=".33" stop-color="#88ff88" /> 102.1478 + <stop offset=".67" stop-color="#2020ff" /> 102.1479 + <stop offset="1" stop-color="#d00000" /> 102.1480 + </linearGradient> 102.1481 + <filter id="Matrix" filterUnits="objectBoundingBox" 102.1482 + x="0%" y="0%" width="100%" height="100%"> 102.1483 + <feColorMatrix type="matrix" in="SourceGraphic" 102.1484 + values=".33 .33 .33 0 0 102.1485 + .33 .33 .33 0 0 102.1486 + .33 .33 .33 0 0 102.1487 + .33 .33 .33 0 0"/> 102.1488 + </filter> 102.1489 + <filter id="Saturate40" filterUnits="objectBoundingBox" 102.1490 + x="0%" y="0%" width="100%" height="100%"> 102.1491 + <feColorMatrix type="saturate" in="SourceGraphic" values="0.4"/> 102.1492 + </filter> 102.1493 + <filter id="HueRotate90" filterUnits="objectBoundingBox" 102.1494 + x="0%" y="0%" width="100%" height="100%"> 102.1495 + <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/> 102.1496 + </filter> 102.1497 + <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 102.1498 + x="0%" y="0%" width="100%" height="100%"> 102.1499 + <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/> 102.1500 + <feComposite in="SourceGraphic" in2="a" operator="in" /> 102.1501 + </filter> 102.1502 + </defs> 102.1503 + <rect fill="none" stroke="blue" 102.1504 + x="1" y="1" width="798" height="498"/> 102.1505 + <g font-family="Verdana" font-size="75" 102.1506 + font-weight="bold" fill="url(#MyGradient)" > 102.1507 + <rect x="100" y="0" width="500" height="20" /> 102.1508 + <text x="100" y="90">Unfiltered</text> 102.1509 + <text x="100" y="190" filter="url(#Matrix)" >Matrix</text> 102.1510 + <text x="100" y="290" filter="url(#Saturate40)" >Saturate</text> 102.1511 + <text x="100" y="390" filter="url(#HueRotate90)" >HueRotate</text> 102.1512 + <text x="100" y="490" filter="url(#LuminanceToAlpha)" >Luminance</text> 102.1513 + </g> 102.1514 +</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feColorMatrix.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feColorMatrix.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 102.1515 + 102.1516 +<h2 id="feComponentTransferElement">11 Filter primitive <span class="element-name">‘feComponentTransfer’</span></h2> 102.1517 + 102.1518 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feComponentTransfer’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1519 + <ul class="no-bullets"><li><a href=""><span class="element-name">‘feFuncA’</span></a></li><li><a href=""><span class="element-name">‘feFuncB’</span></a></li><li><a href=""><span class="element-name">‘feFuncG’</span></a></li><li><a href=""><span class="element-name">‘feFuncR’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEComponentTransferElement">SVGFEComponentTransferElement</a></li></ul></dd></dl></div> 102.1520 + 102.1521 +<p>This filter primitive performs component-wise remapping of data as 102.1522 +follows:</p> 102.1523 +<pre>R' = <a href="#feFuncRElement">feFuncR</a>( R ) 102.1524 +G' = <a href="#feFuncGElement">feFuncG</a>( G ) 102.1525 +B' = <a href="#feFuncBElement">feFuncB</a>( B ) 102.1526 +A' = <a href="#feFuncAElement">feFuncA</a>( A )</pre> 102.1527 + 102.1528 +<p>for every pixel. It allows operations like brightness adjustment, contrast 102.1529 +adjustment, color balance or thresholding.</p> 102.1530 + 102.1531 +<p>The calculations are performed on non-premultiplied color values. If the 102.1532 +input graphics consists of premultiplied color values, those values are 102.1533 +automatically converted into non-premultiplied color values for this 102.1534 +operation. (Note that the undoing and redoing of the premultiplication can be 102.1535 +avoided if <a href=""><span class="element-name">‘feFuncA’</span></a> is the identity transform 102.1536 +and all alpha values on the source graphic are set to 1.)</p> 102.1537 + 102.1538 +<p>The child elements of a <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element specify the 102.1539 +transfer functions for the four channels:</p> 102.1540 + 102.1541 +<ul id="transferFuncElements"><li><a href=""><span class="element-name">‘feFuncR’</span></a> — transfer function for the red component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncG’</span></a> — transfer function for the green component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncB’</span></a> — transfer function for the blue component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncA’</span></a> — transfer function for the alpha component of the input graphic</li></ul> 102.1542 + 102.1543 +<p>The following rules apply to the processing of the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element:</p> 102.1544 +<ul><li>If more than one <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function element</span></a> of the same kind is specified, the last occurrence is to be used.</li><li>If any of the <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a> are unspecified, the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> must be processed as if those <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a> were specified with their <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a> attributes set to <span class="attr-value">'identity'</span>.</li></ul> 102.1545 + 102.1546 + 102.1547 + 102.1548 +<div id="feFuncRElement"> 102.1549 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncR’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1550 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a></li></ul></dd></dl></div> 102.1551 +</div> 102.1552 + 102.1553 +<div id="feFuncGElement"> 102.1554 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncG’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1555 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncGElement">SVGFEFuncGElement</a></li></ul></dd></dl></div> 102.1556 +</div> 102.1557 + 102.1558 +<div id="feFuncBElement"> 102.1559 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncB’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1560 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncBElement">SVGFEFuncBElement</a></li></ul></dd></dl></div> 102.1561 +</div> 102.1562 + 102.1563 +<div id="feFuncAElement"> 102.1564 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncA’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1565 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncAElement">SVGFEFuncAElement</a></li></ul></dd></dl></div> 102.1566 +</div> 102.1567 + 102.1568 +<p id="TransferFunctionElementAttributes">The attributes below are the 102.1569 +<span class="SVG-TermDefine">transfer function element attributes</span>, 102.1570 +which apply to the <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a>.</p> 102.1571 + 102.1572 +<div class="adef-list"> 102.1573 +<p><em>Attribute definitions:</em></p> 102.1574 +<dl><dt id="feComponentTransferTypeAttribute"><span class="adef">type</span> 102.1575 + = "<em>identity | table | discrete | linear | gamma</em>"</dt><dd><p>Indicates the type of component transfer function. The type of 102.1576 + function determines the applicability of the other attributes.</p> 102.1577 + <ul><li>For <span class="attr-value">identity</span>: 102.1578 + <pre>C' = C</pre> 102.1579 + </li><li>For <span class="attr-value">table</span>, the function is 102.1580 + defined by linear interpolation into a lookup table by attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">tableValues</span></a>, which provides a list of 102.1581 + <em>n+1</em> values (i.e., v<sub>0</sub> to v<sub>n</sub>) in order 102.1582 + to identify <em>n</em> interpolation ranges. Interpolations use the 102.1583 + following formula. 102.1584 + <p>For a value <code>C</code> pick a <code>k</code> such that:</p> 102.1585 + <p class="filterformula">k/N <= C < (k+1)/N</p> 102.1586 + <p>The result <code>C'</code> is given by:</p> 102.1587 + <p class="filterformula">C' = v<sub>k</sub> + (C - k/N)*N * 102.1588 + (v<sub>k+1</sub> - v<sub>k</sub>)</p> 102.1589 + </li><li>For <span class="attr-value">discrete</span>, the function is 102.1590 + defined by the step function defined by attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">tableValues</span></a>, which provides a list of 102.1591 + <em>n</em> values (i.e., v<sub>0</sub> to v<sub>n-1</sub>) in order 102.1592 + to identify a step function consisting of <em>n</em> steps. The 102.1593 + step function is defined by the following formula. 102.1594 + <p>For a value <code>C</code> pick a <code>k</code> such that:</p> 102.1595 + <p class="filterformula">k/N <= C < (k+1)/N</p> 102.1596 + <p>The result <code>C'</code> is given by:</p> 102.1597 + <p class="filterformula">C' = v<sub>k</sub></p> 102.1598 + </li><li>For <span class="attr-value">linear</span>, the function is 102.1599 + defined by the following linear equation: 102.1600 + <p class="filterformula">C' = <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">slope</span></a> * C + <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">intercept</span></a></p> 102.1601 + </li><li>For <span class="attr-value">gamma</span>, the function is 102.1602 + defined by the following exponential function: 102.1603 + <p class="filterformula">C' = <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">amplitude</span></a> * pow(C, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">exponent</span></a>) + <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">offset</span></a></p> 102.1604 + </li></ul> 102.1605 + <span class="anim-target">Animatable: yes.</span> </dd><dt id="feComponentTransferTableValuesAttribute"><span class="adef">tableValues</span> = "<em>(list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a>s)</em>"</dt><dd>When <span class="attr-value">type="table"</span>, the list of 102.1606 + <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a> 102.1607 + s <em>v0,v1,...vn</em>, separated by white space and/or a comma, which 102.1608 + define the lookup table. An empty list results in an identity transfer 102.1609 + function. If the attribute is not specified, then the effect is as if 102.1610 + an empty list were provided.<br/> 102.1611 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferSlopeAttribute"><span class="adef">slope</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>When <span class="attr-value">type="linear"</span>, the slope of the 102.1612 + linear function.<br/> 102.1613 + If the attribute is not specified, then the effect is as if a value of 102.1614 + <span class="attr-value">1</span> were specified.<br/> 102.1615 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferInterceptAttribute"><span class="adef">intercept</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>When <span class="attr-value">type="linear"</span>, the intercept of 102.1616 + the linear function.<br/> 102.1617 + If the attribute is not specified, then the effect is as if a value of 102.1618 + <span class="attr-value">0</span> were specified.<br/> 102.1619 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferAmplitudeAttribute"><span class="adef">amplitude</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the amplitude of 102.1620 + the gamma function.<br/> 102.1621 + If the attribute is not specified, then the effect is as if a value of 102.1622 + <span class="attr-value">1</span> were specified.<br/> 102.1623 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferExponentAttribute"><span class="adef">exponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the exponent of 102.1624 + the gamma function.<br/> 102.1625 + If the attribute is not specified, then the effect is as if a value of 102.1626 + <span class="attr-value">1</span> were specified.<br/> 102.1627 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferOffsetAttribute"><span class="adef">offset</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the offset of the 102.1628 + gamma function.<br/> 102.1629 + If the attribute is not specified, then the effect is as if a value of 102.1630 + <span class="attr-value">0</span> were specified.<br/> 102.1631 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.1632 +</div> 102.1633 + 102.1634 + 102.1635 +<pre class="xml"><?xml version="1.0"?> 102.1636 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 102.1637 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 102.1638 +<svg width="8cm" height="4cm" viewBox="0 0 800 400" 102.1639 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 102.1640 + <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title> 102.1641 + <desc>Four text strings showing the effects of feComponentTransfer: 102.1642 + an identity function acting as a reference, 102.1643 + use of the feComponentTransfer table option, 102.1644 + use of the feComponentTransfer linear option, 102.1645 + and use of the feComponentTransfer gamma option.</desc> 102.1646 + <defs> 102.1647 + <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 102.1648 + x1="100" y1="0" x2="600" y2="0"> 102.1649 + <stop offset="0" stop-color="#ff0000" /> 102.1650 + <stop offset=".33" stop-color="#00ff00" /> 102.1651 + <stop offset=".67" stop-color="#0000ff" /> 102.1652 + <stop offset="1" stop-color="#000000" /> 102.1653 + </linearGradient> 102.1654 + <filter id="Identity" filterUnits="objectBoundingBox" 102.1655 + x="0%" y="0%" width="100%" height="100%"> 102.1656 + <feComponentTransfer> 102.1657 + <feFuncR type="identity"/> 102.1658 + <feFuncG type="identity"/> 102.1659 + <feFuncB type="identity"/> 102.1660 + <feFuncA type="identity"/> 102.1661 + </feComponentTransfer> 102.1662 + </filter> 102.1663 + <filter id="Table" filterUnits="objectBoundingBox" 102.1664 + x="0%" y="0%" width="100%" height="100%"> 102.1665 + <feComponentTransfer> 102.1666 + <feFuncR type="table" tableValues="0 0 1 1"/> 102.1667 + <feFuncG type="table" tableValues="1 1 0 0"/> 102.1668 + <feFuncB type="table" tableValues="0 1 1 0"/> 102.1669 + </feComponentTransfer> 102.1670 + </filter> 102.1671 + <filter id="Linear" filterUnits="objectBoundingBox" 102.1672 + x="0%" y="0%" width="100%" height="100%"> 102.1673 + <feComponentTransfer> 102.1674 + <feFuncR type="linear" slope=".5" intercept=".25"/> 102.1675 + <feFuncG type="linear" slope=".5" intercept="0"/> 102.1676 + <feFuncB type="linear" slope=".5" intercept=".5"/> 102.1677 + </feComponentTransfer> 102.1678 + </filter> 102.1679 + <filter id="Gamma" filterUnits="objectBoundingBox" 102.1680 + x="0%" y="0%" width="100%" height="100%"> 102.1681 + <feComponentTransfer> 102.1682 + <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/> 102.1683 + <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/> 102.1684 + <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/> 102.1685 + </feComponentTransfer> 102.1686 + </filter> 102.1687 + </defs> 102.1688 + <rect fill="none" stroke="blue" 102.1689 + x="1" y="1" width="798" height="398"/> 102.1690 + <g font-family="Verdana" font-size="75" 102.1691 + font-weight="bold" fill="url(#MyGradient)" > 102.1692 + <rect x="100" y="0" width="600" height="20" /> 102.1693 + <text x="100" y="90">Identity</text> 102.1694 + <text x="100" y="190" filter="url(#Table)" >TableLookup</text> 102.1695 + <text x="100" y="290" filter="url(#Linear)" >LinearFunc</text> 102.1696 + <text x="100" y="390" filter="url(#Gamma)" >GammaFunc</text> 102.1697 + </g> 102.1698 +</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feComponentTransfer.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feComponentTransfer.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 102.1699 + 102.1700 +<h2 id="feCompositeElement">12 Filter primitive <span class="element-name">‘feComposite’</span></h2> 102.1701 + 102.1702 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feComposite’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1703 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feCompositeIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feCompositeOperatorAttribute"><span class="attr-name">‘operator’</span></a></li><li><a href="#feCompositeK1Attribute"><span class="attr-name">‘k1’</span></a></li><li><a href="#feCompositeK2Attribute"><span class="attr-name">‘k2’</span></a></li><li><a href="#feCompositeK3Attribute"><span class="attr-name">‘k3’</span></a></li><li><a href="#feCompositeK4Attribute"><span class="attr-name">‘k4’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFECompositeElement">SVGFECompositeElement</a></li></ul></dd></dl></div> 102.1704 + 102.1705 +<p>This filter performs the combination of the two input images pixel-wise in 102.1706 +image space using one of the Porter-Duff [<a href="#ref-PORTERDUFF">PORTERDUFF</a>] compositing operations: <em>over, in, 102.1707 +atop, out, xor</em>. Additionally, a component-wise <em>arithmetic</em> 102.1708 +operation (with the result clamped between [0..1]) can be applied.</p> 102.1709 + 102.1710 +<p>The <em>arithmetic</em> operation is useful for combining the output from 102.1711 +the <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> filters with texture 102.1712 +data. It is also useful for implementing <em>dissolve</em>. If the 102.1713 +<em>arithmetic</em> operation is chosen, each result pixel is computed using 102.1714 +the following formula:</p> 102.1715 +<pre>result = k1*i1*i2 + k2*i1 + k3*i2 + k4</pre> 102.1716 + 102.1717 +<p>For this filter primitive, the extent of the resulting image might grow as 102.1718 +described in the section that describes the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p> 102.1719 + 102.1720 +<div class="adef-list"> 102.1721 +<p><em>Attribute definitions:</em></p> 102.1722 +<dl><dt id="feCompositeOperatorAttribute"><span class="adef">operator</span> 102.1723 + = "<em>over | in | out | atop | xor | arithmetic</em>"</dt><dd>The compositing operation that is to be performed. All of the <span class="attr-name">operator</span> types except <span class="attr-value">arithmetic</span> match the correspond operation as 102.1724 + described in [<a href="#ref-PORTERDUFF">PORTERDUFF</a>]. The <span class="attr-value">arithmetic</span> operator is described above.<br/> 102.1725 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK1Attribute"><span class="adef">k1</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/> 102.1726 + If the attribute is not specified, the effect is as if a value of "0" 102.1727 + were specified.<br/> 102.1728 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK2Attribute"><span class="adef">k2</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/> 102.1729 + If the attribute is not specified, the effect is as if a value of "0" 102.1730 + were specified.<br/> 102.1731 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK3Attribute"><span class="adef">k3</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/> 102.1732 + If the attribute is not specified, the effect is as if a value of "0" 102.1733 + were specified.<br/> 102.1734 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK4Attribute"><span class="adef">k4</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/> 102.1735 + If the attribute is not specified, the effect is as if a value of "0" 102.1736 + were specified.<br/> 102.1737 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeIn2Attribute"> 102.1738 + <span class="adef">in2</span> = "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> 102.1739 + attribute)</em>"</dt><dd>The second input image to the compositing operation. This attribute 102.1740 + can take on the same values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> attribute.<br/> 102.1741 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.1742 +</div> 102.1743 + 102.1744 +<pre class="xml"><?xml version="1.0"?> 102.1745 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 102.1746 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 102.1747 +<svg width="330" height="195" viewBox="0 0 1100 650" version="1.1" 102.1748 + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 102.1749 + <title>Example feComposite - Examples of feComposite operations</title> 102.1750 + <desc>Four rows of six pairs of overlapping triangles depicting 102.1751 + the six different feComposite operators under different 102.1752 + opacity values and different clearing of the background.</desc> 102.1753 + <defs> 102.1754 + <desc>Define two sets of six filters for each of the six compositing operators. 102.1755 + The first set wipes out the background image by flooding with opaque white. 102.1756 + The second set does not wipe out the background, with the result 102.1757 + that the background sometimes shines through and is other cases 102.1758 + is blended into itself (i.e., "double-counting").</desc> 102.1759 + <filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 102.1760 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 102.1761 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 102.1762 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 102.1763 + </filter> 102.1764 + <filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 102.1765 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 102.1766 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 102.1767 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 102.1768 + </filter> 102.1769 + <filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 102.1770 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 102.1771 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 102.1772 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 102.1773 + </filter> 102.1774 + <filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 102.1775 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 102.1776 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 102.1777 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 102.1778 + </filter> 102.1779 + <filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 102.1780 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 102.1781 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 102.1782 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 102.1783 + </filter> 102.1784 + <filter id="arithmeticFlood" filterUnits="objectBoundingBox" 102.1785 + x="-5%" y="-5%" width="110%" height="110%"> 102.1786 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 102.1787 + <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 102.1788 + operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 102.1789 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 102.1790 + </filter> 102.1791 + <filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 102.1792 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 102.1793 + </filter> 102.1794 + <filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 102.1795 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 102.1796 + </filter> 102.1797 + <filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 102.1798 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 102.1799 + </filter> 102.1800 + <filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 102.1801 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 102.1802 + </filter> 102.1803 + <filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 102.1804 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 102.1805 + </filter> 102.1806 + <filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 102.1807 + x="-5%" y="-5%" width="110%" height="110%"> 102.1808 + <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 102.1809 + operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 102.1810 + </filter> 102.1811 + <path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" /> 102.1812 + <path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" /> 102.1813 + <path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" /> 102.1814 + <path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" /> 102.1815 + <g id="TwoBlueTriangles"> 102.1816 + <use xlink:href="#Blue100"/> 102.1817 + <use xlink:href="#Blue50"/> 102.1818 + </g> 102.1819 + <g id="BlueTriangles"> 102.1820 + <use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/> 102.1821 + <use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/> 102.1822 + <use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/> 102.1823 + <use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/> 102.1824 + <use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/> 102.1825 + <use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/> 102.1826 + </g> 102.1827 + </defs> 102.1828 + 102.1829 + <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/> 102.1830 + <g font-family="Verdana" font-size="40" shape-rendering="crispEdges"> 102.1831 + <desc>Render the examples using the filters that draw on top of 102.1832 + an opaque white surface, thus obliterating the background.</desc> 102.1833 + <g enable-background="new"> 102.1834 + <text x="15" y="75">opacity 1.0</text> 102.1835 + <text x="15" y="115" font-size="27">(with feFlood)</text> 102.1836 + <text x="15" y="200">opacity 0.5</text> 102.1837 + <text x="15" y="240" font-size="27">(with feFlood)</text> 102.1838 + <use xlink:href="#BlueTriangles"/> 102.1839 + <g transform="translate(275,25)"> 102.1840 + <use xlink:href="#Red100" filter="url(#overFlood)" /> 102.1841 + <use xlink:href="#Red50" filter="url(#overFlood)" /> 102.1842 + <text x="5" y="275">over</text> 102.1843 + </g> 102.1844 + <g transform="translate(400,25)"> 102.1845 + <use xlink:href="#Red100" filter="url(#inFlood)" /> 102.1846 + <use xlink:href="#Red50" filter="url(#inFlood)" /> 102.1847 + <text x="35" y="275">in</text> 102.1848 + </g> 102.1849 + <g transform="translate(525,25)"> 102.1850 + <use xlink:href="#Red100" filter="url(#outFlood)" /> 102.1851 + <use xlink:href="#Red50" filter="url(#outFlood)" /> 102.1852 + <text x="15" y="275">out</text> 102.1853 + </g> 102.1854 + <g transform="translate(650,25)"> 102.1855 + <use xlink:href="#Red100" filter="url(#atopFlood)" /> 102.1856 + <use xlink:href="#Red50" filter="url(#atopFlood)" /> 102.1857 + <text x="10" y="275">atop</text> 102.1858 + </g> 102.1859 + <g transform="translate(775,25)"> 102.1860 + <use xlink:href="#Red100" filter="url(#xorFlood)" /> 102.1861 + <use xlink:href="#Red50" filter="url(#xorFlood)" /> 102.1862 + <text x="15" y="275">xor</text> 102.1863 + </g> 102.1864 + <g transform="translate(900,25)"> 102.1865 + <use xlink:href="#Red100" filter="url(#arithmeticFlood)" /> 102.1866 + <use xlink:href="#Red50" filter="url(#arithmeticFlood)" /> 102.1867 + <text x="-25" y="275">arithmetic</text> 102.1868 + </g> 102.1869 + </g> 102.1870 + <g transform="translate(0,325)" enable-background="new"> 102.1871 + <desc>Render the examples using the filters that do not obliterate 102.1872 + the background, thus sometimes causing the background to continue 102.1873 + to appear in some cases, and in other cases the background 102.1874 + image blends into itself ("double-counting").</desc> 102.1875 + <text x="15" y="75">opacity 1.0</text> 102.1876 + <text x="15" y="115" font-size="27">(without feFlood)</text> 102.1877 + <text x="15" y="200">opacity 0.5</text> 102.1878 + <text x="15" y="240" font-size="27">(without feFlood)</text> 102.1879 + <use xlink:href="#BlueTriangles"/> 102.1880 + <g transform="translate(275,25)"> 102.1881 + <use xlink:href="#Red100" filter="url(#overNoFlood)" /> 102.1882 + <use xlink:href="#Red50" filter="url(#overNoFlood)" /> 102.1883 + <text x="5" y="275">over</text> 102.1884 + </g> 102.1885 + <g transform="translate(400,25)"> 102.1886 + <use xlink:href="#Red100" filter="url(#inNoFlood)" /> 102.1887 + <use xlink:href="#Red50" filter="url(#inNoFlood)" /> 102.1888 + <text x="35" y="275">in</text> 102.1889 + </g> 102.1890 + <g transform="translate(525,25)"> 102.1891 + <use xlink:href="#Red100" filter="url(#outNoFlood)" /> 102.1892 + <use xlink:href="#Red50" filter="url(#outNoFlood)" /> 102.1893 + <text x="15" y="275">out</text> 102.1894 + </g> 102.1895 + <g transform="translate(650,25)"> 102.1896 + <use xlink:href="#Red100" filter="url(#atopNoFlood)" /> 102.1897 + <use xlink:href="#Red50" filter="url(#atopNoFlood)" /> 102.1898 + <text x="10" y="275">atop</text> 102.1899 + </g> 102.1900 + <g transform="translate(775,25)"> 102.1901 + <use xlink:href="#Red100" filter="url(#xorNoFlood)" /> 102.1902 + <use xlink:href="#Red50" filter="url(#xorNoFlood)" /> 102.1903 + <text x="15" y="275">xor</text> 102.1904 + </g> 102.1905 + <g transform="translate(900,25)"> 102.1906 + <use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" /> 102.1907 + <use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" /> 102.1908 + <text x="-25" y="275">arithmetic</text> 102.1909 + </g> 102.1910 + </g> 102.1911 + </g> 102.1912 +</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feComposite.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feComposite.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 102.1913 + 102.1914 +<h2 id="feConvolveMatrixElement">13 Filter primitive <span class="element-name">‘feConvolveMatrix’</span></h2> 102.1915 + 102.1916 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feConvolveMatrix’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.1917 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a></li><li><a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a></li><li><a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a></li><li><a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a></li><li><a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a></li><li><a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a></li><li><a href="#feConvolveMatrixElementEdgeModeAttribute"><span class="attr-name">‘edgeMode’</span></a></li><li><a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li><li><a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEConvolveMatrixElement">SVGFEConvolveMatrixElement</a></li></ul></dd></dl></div> 102.1918 + 102.1919 + 102.1920 +<p>feConvolveMatrix applies a matrix convolution filter effect. A convolution 102.1921 +combines pixels in the input image with neighboring pixels to produce a 102.1922 +resulting image. A wide variety of imaging operations can be achieved through 102.1923 +convolutions, including blurring, edge detection, sharpening, embossing and 102.1924 +beveling.</p> 102.1925 + 102.1926 +<p>A matrix convolution is based on an n-by-m matrix (the convolution kernel) 102.1927 +which describes how a given pixel value in the input image is combined with 102.1928 +its neighboring pixel values to produce a resulting pixel value. Each result 102.1929 +pixel is determined by applying the kernel matrix to the corresponding source 102.1930 +pixel and its neighboring pixels. The basic convolution formula which is 102.1931 +applied to each color value for a given pixel is:</p> 102.1932 + 102.1933 +<p class="filterformula">RESULT<sub>X,Y</sub> = ( <br/> 102.1934 +              SUM <sub>I=0 to [<a href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-1]</sub> { <br/> 102.1935 +                SUM <sub>J=0 to [<a href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-1]</sub> { <br/> 102.1936 +                  SOURCE <sub>X-<a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a>+J, Y-<a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a>+I</sub> * <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a><sub><a href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-J-1, <a href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-I-1</sub> <br/> 102.1937 +                } <br/> 102.1938 +              } <br/> 102.1939 +            ) / <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> + <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a><br/> 102.1940 +</p> 102.1941 + 102.1942 +<div class="note-editor"> 102.1943 +ED: Consider making this into mathml</div> 102.1944 + 102.1945 +<p>where "orderX" and "orderY" represent the X and Y values for the <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> attribute, "targetX" represents the value 102.1946 +of the <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> attribute, "targetY" represents the 102.1947 +value of the <a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a> attribute, "kernelMatrix" represents the 102.1948 +value of the <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a> attribute, "divisor" represents the 102.1949 +value of the <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> attribute, and "bias" represents the 102.1950 +value of the <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> attribute.</p> 102.1951 + 102.1952 +<p>Note in the above formulas that the values in the kernel matrix are 102.1953 +applied such that the kernel matrix is rotated 180 degrees relative to the 102.1954 +source and destination images in order to match convolution theory as 102.1955 +described in many computer graphics textbooks.</p> 102.1956 + 102.1957 +<p>To illustrate, suppose you have a input image which is 5 pixels by 5 102.1958 +pixels, whose color values for one of the color channels are as follows:</p> 102.1959 +<pre> 0 20 40 235 235 102.1960 + 100 120 140 235 235 102.1961 + 200 220 240 235 235 102.1962 + 225 225 255 255 255 102.1963 + 225 225 255 255 255</pre> 102.1964 + 102.1965 +<div class="note-editor"> 102.1966 +ED: Consider making this into mathml</div> 102.1967 + 102.1968 +<p>and you define a 3-by-3 convolution kernel as follows:</p> 102.1969 +<pre> 1 2 3 102.1970 + 4 5 6 102.1971 + 7 8 9</pre> 102.1972 + 102.1973 +<div class="note-editor"> 102.1974 +ED: Consider making this into mathml</div> 102.1975 + 102.1976 +<p>Let's focus on the color value at the second row and second column of the 102.1977 +image (source pixel value is 120). Assuming the simplest case (where the 102.1978 +input image's pixel grid aligns perfectly with the kernel's pixel grid) and 102.1979 +assuming default values for attributes <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a>, <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> and 102.1980 +<a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a>, then resulting color value will 102.1981 +be:</p> 102.1982 +<pre>(9* 0 + 8* 20 + 7* 40 + 102.1983 +6*100 + 5*120 + 4*140 + 102.1984 +3*200 + 2*220 + 1*240) / (9+8+7+6+5+4+3+2+1)</pre> 102.1985 + 102.1986 +<div class="note-editor"> 102.1987 +ED: Consider making this into mathml</div> 102.1988 + 102.1989 +<p>Because they operate on pixels, matrix convolutions are inherently 102.1990 +resolution-dependent. To make <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> produce resolution-independent 102.1991 +results, an explicit value should be provided for either the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element 102.1992 +and/or attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p> 102.1993 + 102.1994 +<p><a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, in combination with the other 102.1995 +attributes, defines an implicit pixel grid in the filter effects coordinate 102.1996 +system (i.e., the coordinate system established by the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> attribute). If the pixel grid 102.1997 +established by <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not scaled to match the 102.1998 +pixel grid established by attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> (implicitly or explicitly), then the 102.1999 +input image will be temporarily rescaled to match its pixels with <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. The convolution happens on the 102.2000 +resampled image. After applying the convolution, the image is resampled back 102.2001 +to the original resolution.</p> 102.2002 + 102.2003 +<p>When the image must be resampled to match the coordinate system defined by 102.2004 +<a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> prior to convolution, or 102.2005 +resampled to match the device coordinate system after convolution, it is 102.2006 +recommended that high quality viewers make use of appropriate interpolation 102.2007 +techniques, for example bilinear or bicubic. Depending on the speed of the 102.2008 +available interpolents, this choice may be affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property setting. Note that 102.2009 +implementations might choose approaches that minimize or eliminate resampling 102.2010 +when not necessary to produce proper results, such as when the document is 102.2011 +zoomed out such that <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is 102.2012 +considerably smaller than a device pixel.</p> 102.2013 + 102.2014 +<div class="adef-list"> 102.2015 +<p><em>Attribute definitions:</em></p> 102.2016 +<dl><dt id="feConvolveMatrixElementOrderAttribute"><span class="adef">order</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></span>"</dt><dd>Indicates the number of cells in each dimension for <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a>. The values provided must be 102.2017 + <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger"><integer></a> 102.2018 + s greater than zero. The first number, <orderX>, indicates the 102.2019 + number of columns in the matrix. The second number, <orderY>, 102.2020 + indicates the number of rows in the matrix. If <orderY> is not 102.2021 + provided, it defaults to <orderX>.<br/> 102.2022 + A typical value is order="3". It is recommended that only small values 102.2023 + (e.g., 3) be used; higher values may result in very high CPU overhead 102.2024 + and usually do not produce results that justify the impact on 102.2025 + performance.<br/> 102.2026 + If the attribute is not specified, the effect is as if a value of "3" 102.2027 + were specified.<br/> 102.2028 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementKernelMatrixAttribute"><span class="adef">kernelMatrix</span> = "<span class="attr-value"><list of 102.2029 + numbers></span>"</dt><dd>The list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a> 102.2030 + s that make up the kernel matrix for the convolution. Values are 102.2031 + separated by space characters and/or a comma. The number of entries in 102.2032 + the list must equal <orderX> times <orderY>.<br/> 102.2033 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementDivisorAttribute"><span class="adef">divisor</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></span>"</dt><dd>After applying the <span class="attr-name">kernelMatrix</span> to the 102.2034 + input image to yield a number, that number is divided by <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> to yield the final destination color 102.2035 + value. A divisor that is the sum of all the matrix values tends to have 102.2036 + an evening effect on the overall color intensity of the result. If the 102.2037 + specified divisor is zero then the default value will be used instead. 102.2038 + The default value is the sum of all values in kernelMatrix, with the 102.2039 + exception that if the sum is zero, then the divisor is set to 1.<br/> 102.2040 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementBiasAttribute"><span class="adef">bias</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></span>"</dt><dd>After applying the <span class="attr-name">kernelMatrix</span> to the 102.2041 + input image to yield a number and applying the <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a>, the <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> attribute is added to each component. One 102.2042 + application of <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> is when it is 102.2043 + desirable to have <span class="attr-value">.5</span> gray value be the zero response of the filter. If 102.2044 + <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> is not specified, then the effect 102.2045 + is as if a value of zero were specified.<br/> 102.2046 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementTargetXAttribute"><span class="adef">targetX</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger"><integer></a></span>"</dt><dd>Determines the positioning in X of the convolution matrix relative to 102.2047 + a given target pixel in the input image. The leftmost column of the 102.2048 + matrix is column number zero. The value must be such that: 0 <= 102.2049 + targetX < orderX. By default, the convolution matrix is centered in 102.2050 + X over each pixel of the input image (i.e., targetX = floor ( orderX / 102.2051 + 2 )).<br/> 102.2052 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementTargetYAttribute"><span class="adef">targetY</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger"><integer></a></span>"</dt><dd>Determines the positioning in Y of the convolution matrix relative to 102.2053 + a given target pixel in the input image. The topmost row of the matrix 102.2054 + is row number zero. The value must be such that: 0 <= targetY < 102.2055 + orderY. By default, the convolution matrix is centered in Y over each 102.2056 + pixel of the input image (i.e., targetY = floor ( orderY / 2 )).<br/> 102.2057 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementEdgeModeAttribute"><span class="adef">edgeMode</span> = "<span class="attr-value">duplicate | wrap | 102.2058 + none</span>"</dt><dd><p>Determines how to extend the input image as necessary with color 102.2059 + values so that the matrix operations can be applied when the kernel is 102.2060 + positioned at or near the edge of the input image.</p> 102.2061 + <p>"duplicate" indicates that the input image is extended along each of 102.2062 + its borders as necessary by duplicating the color values at the given 102.2063 + edge of the input image.</p> 102.2064 + <pre>Original N-by-M image, where m=M-1 and n=N-1: 102.2065 + 11 12 ... 1m 1M 102.2066 + 21 22 ... 2m 2M 102.2067 + .. .. ... .. .. 102.2068 + n1 n2 ... nm nM 102.2069 + N1 N2 ... Nm NM 102.2070 +Extended by two pixels using "duplicate": 102.2071 + 11 11 11 12 ... 1m 1M 1M 1M 102.2072 + 11 11 11 12 ... 1m 1M 1M 1M 102.2073 + 11 11 11 12 ... 1m 1M 1M 1M 102.2074 + 21 21 21 22 ... 2m 2M 2M 2M 102.2075 + .. .. .. .. ... .. .. .. .. 102.2076 + n1 n1 n1 n2 ... nm nM nM nM 102.2077 + N1 N1 N1 N2 ... Nm NM NM NM 102.2078 + N1 N1 N1 N2 ... Nm NM NM NM 102.2079 + N1 N1 N1 N2 ... Nm NM NM NM</pre> 102.2080 + 102.2081 + <div class="note-editor"> 102.2082 + ED: Consider making this into mathml</div> 102.2083 + <p>"wrap" indicates that the input image is extended by taking the 102.2084 + color values from the opposite edge of the image.</p> 102.2085 + <pre>Extended by two pixels using "wrap": 102.2086 + nm nM n1 n2 ... nm nM n1 n2 102.2087 + Nm NM N1 N2 ... Nm NM N1 N2 102.2088 + 1m 1M 11 12 ... 1m 1M 11 12 102.2089 + 2m 2M 21 22 ... 2m 2M 21 22 102.2090 + .. .. .. .. ... .. .. .. .. 102.2091 + nm nM n1 n2 ... nm nM n1 n2 102.2092 + Nm NM N1 N2 ... Nm NM N1 N2 102.2093 + 1m 1M 11 12 ... 1m 1M 11 12 102.2094 + 2m 2M 21 22 ... 2m 2M 21 22</pre> 102.2095 + 102.2096 + <div class="note-editor"> 102.2097 + ED: Consider making this into mathml</div> 102.2098 + <p>"none" indicates that the input image is extended with pixel values 102.2099 + of zero for R, G, B and A.</p> 102.2100 + <p><span class="anim-target">Animatable: yes.</span></p> 102.2101 + </dd><dt id="feConvolveMatrixElementKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></span>"</dt><dd>The first number is the <dx> value. The second number is the 102.2102 + <dy> value. If the <dy> value is not specified, it defaults 102.2103 + to the same value as <dx>. Indicates the intended distance in 102.2104 + current filter units (i.e., units as determined by the value of 102.2105 + attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) between successive columns 102.2106 + and rows, respectively, in the <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a>. By specifying value(s) for 102.2107 + <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, the kernel becomes defined 102.2108 + in a scalable, abstract coordinate system. If <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not specified, the default 102.2109 + value is one pixel in the offscreen bitmap, which is a pixel-based 102.2110 + coordinate system, and thus potentially not scalable. For some level of 102.2111 + consistency across display media and user agents, it is necessary that 102.2112 + a value be provided for at least one of <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> and <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. 102.2113 + In some implementations, the most consistent results and the fastest performance will be achieved if 102.2114 + the pixel grid of the temporary offscreen images aligns with the pixel 102.2115 + grid of the kernel.<br/> 102.2116 + If a negative or zero value is specified the default value will be used 102.2117 + instead. <br/> 102.2118 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementPreserveAlphaAttribute"><span class="adef">preserveAlpha</span> = "<span class="attr-value">false | 102.2119 + true</span>"</dt><dd>A value of <span class="attr-value">false</span> indicates that the 102.2120 + convolution will apply to all channels, including the alpha channel.<br/> 102.2121 + A value of <span class="attr-value">true</span> indicates that the 102.2122 + convolution will only apply to the color channels. In this case, the 102.2123 + filter will temporarily unpremultiply the color component values, apply 102.2124 + the kernel, and then re-premultiply at the end.<br/> 102.2125 + If <a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a> is not specified, then 102.2126 + the effect is as if a value of <span class="attr-value">false</span> 102.2127 + were specified.<br/> 102.2128 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.2129 +</div> 102.2130 + 102.2131 + 102.2132 + 102.2133 +<h2 id="feDiffuseLightingElement">14 Filter primitive <span class="element-name">‘feDiffuseLighting’</span></h2> 102.2134 + 102.2135 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDiffuseLighting’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2136 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">light source elements</a><span class="expanding"> — <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDiffuseLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a></li><li><a href="#feDiffuseLightingDiffuseConstantAttribute"><span class="attr-name">‘diffuseConstant’</span></a></li><li><a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDiffuseLightingElement">SVGFEDiffuseLightingElement</a></li></ul></dd></dl></div> 102.2137 + 102.2138 +<p>This filter primitive lights an image using the alpha channel as a bump 102.2139 +map. The resulting image is an RGBA opaque image based on the light color 102.2140 +with alpha = 1.0 everywhere. The lighting calculation follows the standard 102.2141 +diffuse component of the Phong lighting model. The resulting image depends on 102.2142 +the light color, light position and surface geometry of the input bump 102.2143 +map.</p> 102.2144 + 102.2145 +<p>The light map produced by this filter primitive can be combined with a 102.2146 +texture image using the multiply term of the <em>arithmetic</em> <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> compositing method. Multiple 102.2147 +light sources can be simulated by adding several of these light maps together 102.2148 +before applying it to the texture image.</p> 102.2149 + 102.2150 +<p>The formulas below make use of 3x3 filters. Because they operate on 102.2151 +pixels, such filters are inherently resolution-dependent. To make <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> produce 102.2152 +resolution-independent results, an explicit value should be provided for 102.2153 +either the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element 102.2154 +and/or attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p> 102.2155 + 102.2156 +<p><a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, in combination with the other 102.2157 +attributes, defines an implicit pixel grid in the filter effects coordinate 102.2158 +system (i.e., the coordinate system established by the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> attribute). If the pixel grid 102.2159 +established by <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not scaled to match the 102.2160 +pixel grid established by attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> (implicitly or explicitly), then the 102.2161 +input image will be temporarily rescaled to match its pixels with <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. The 3x3 filters are applied to the resampled image. After applying the filter, the image is resampled back 102.2162 +to its original resolution.</p> 102.2163 + 102.2164 +<p><span class="requirement" id="assert_diffuseLightingImageResampling">When the image must be resampled, it is recommended that high quality viewers make use of appropriate interpolation techniques, for example 102.2165 +bilinear or bicubic.</span> Depending on the speed of the available interpolents, 102.2166 +this choice may be affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property setting. Note that 102.2167 +implementations might choose approaches that minimize or eliminate resampling 102.2168 +when not necessary to produce proper results, such as when the document is 102.2169 +zoomed out such that <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is 102.2170 +considerably smaller than a device pixel.</p> 102.2171 + 102.2172 +<p>For the formulas that follow, the 102.2173 +<code>Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>)</code> function is 102.2174 +defined as:</p> 102.2175 + 102.2176 +<div class="note-editor"> 102.2177 +ED: Consider making the following in mathml</div> 102.2178 + 102.2179 +<p class="filterformula">Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>) = 102.2180 +sqrt(A<sub>x</sub>^2+A<sub>y</sub>^2+A<sub>z</sub>^2)</p> 102.2181 + 102.2182 +<p>The resulting RGBA image is computed as follows:</p> 102.2183 + 102.2184 +<p class="filterformula">D<sub>r</sub> = k<sub>d</sub> * N.L * 102.2185 +L<sub>r</sub><br/> 102.2186 +D<sub>g</sub> = k<sub>d</sub> * N.L * L<sub>g</sub><br/> 102.2187 +D<sub>b</sub> = k<sub>d</sub> * N.L * L<sub>b</sub><br/> 102.2188 +D<sub>a</sub> = 1.0</p> 102.2189 + 102.2190 +<p>where</p> 102.2191 +<dl><dd>k<sub>d</sub> = diffuse lighting constant<br/> 102.2192 + N = surface normal unit vector, a function of x and y<br/> 102.2193 + L = unit vector pointing from surface to light, a function of x and y 102.2194 + in the point and spot light cases<br/> 102.2195 + L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light, a 102.2196 + function of x and y in the spot light case</dd></dl> 102.2197 + 102.2198 +<p>N is a function of x and y and depends on the surface gradient as 102.2199 +follows:</p> 102.2200 + 102.2201 +<p>The surface described by the input alpha image A<sub>in</sub>(x,y) is:</p> 102.2202 + 102.2203 +<p class="filterformula">Z (x,y) = surfaceScale * A<sub>in</sub>(x,y)</p> 102.2204 + 102.2205 +<p id="SurfaceNormalCalculations">Surface normal is calculated using the Sobel gradient 3x3 filter. 102.2206 +Different filter kernels are used depending on whether the given pixel is on 102.2207 +the interior or an edge. For each case, the formula is:</p> 102.2208 + 102.2209 +<p class="filterformula">N<sub>x</sub> (x,y)= - surfaceScale * 102.2210 +FACTOR<sub>x</sub> *<br/> 102.2211 +           (K <sub>x</sub>(0,0)*I(x-dx,y-dy) + 102.2212 +K<sub>x</sub>(1,0)*I(x,y-dy) + K<sub>x</sub>(2,0)*I(x+dx,y-dy) +<br/> 102.2213 +            K <sub>x</sub>(0,1)*I(x-dx,y)   + 102.2214 +K<sub>x</sub>(1,1)*I(x,y)   + K<sub>x</sub>(2,1)*I(x+dx,y)   +<br/> 102.2215 +            K <sub>x</sub>(0,2)*I(x-dx,y+dy) + 102.2216 +K<sub>x</sub>(1,2)*I(x,y+dy) + K<sub>x</sub>(2,2)*I(x+dx,y+dy))<br/> 102.2217 +N<sub>y</sub> (x,y)= - surfaceScale * FACTOR<sub>y</sub> *<br/> 102.2218 +           (K <sub>y</sub>(0,0)*I(x-dx,y-dy) + 102.2219 +K<sub>y</sub>(1,0)*I(x,y-dy) + K<sub>y</sub>(2,0)*I(x+dx,y-dy) +<br/> 102.2220 +            K <sub>y</sub>(0,1)*I(x-dx,y)   + 102.2221 +K<sub>y</sub>(1,1)*I(x,y)   + K<sub>y</sub>(2,1)*I(x+dx,y)   +<br/> 102.2222 +            K <sub>y</sub>(0,2)*I(x-dx,y+dy) + 102.2223 +K<sub>y</sub>(1,2)*I(x,y+dy) + K<sub>y</sub>(2,2)*I(x+dx,y+dy))<br/> 102.2224 +N<sub>z</sub> (x,y) = 1.0<br/> 102.2225 +<br/> 102.2226 +N = (N<sub>x</sub>, N<sub>y</sub>, N<sub>z</sub>) / 102.2227 +Norm((N<sub>x</sub>,N<sub>y</sub>,N<sub>z</sub>))</p> 102.2228 + 102.2229 +<p>In these formulas, the <code>dx</code> and <code>dy</code> values (e.g., 102.2230 +<code>I(x-dx,y-dy)</code>), represent deltas relative to a given 102.2231 +<code>(x,y)</code> position for the purpose of estimating the slope of the 102.2232 +surface at that point. These deltas are determined by the value (explicit or 102.2233 +implicit) of attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p> 102.2234 + 102.2235 +<table summary="feDiffuseLighting formulas" border="1"><colgroup><col width="33.3%"/><col width="33.3%"/><col width="*"/></colgroup><tbody><tr><td><p>Top/left corner:</p> 102.2236 + 102.2237 + <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/> 102.2238 + K<sub>x</sub> =<br/> 102.2239 +     |  0  0  0 |<br/> 102.2240 +     |  0 -2  2 |<br/> 102.2241 +     |  0 -1  1 |<br/> 102.2242 + <br/> 102.2243 + FACTOR<sub>y</sub>=2/(3*dy)<br/> 102.2244 + K<sub>y</sub> =  <br/> 102.2245 +     |  0  0  0 |<br/> 102.2246 +     |  0 -2 -1 |<br/> 102.2247 +     |  0  2  1 |</p> 102.2248 + </td><td><p>Top row:</p> 102.2249 + 102.2250 + <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br/> 102.2251 + K<sub>x</sub> =<br/> 102.2252 +     |  0  0  0 |<br/> 102.2253 +     | -2  0  2 |<br/> 102.2254 +     | -1  0  1 |<br/> 102.2255 + <br/> 102.2256 + FACTOR<sub>y</sub>=1/(2*dy)<br/> 102.2257 + K<sub>y</sub> =  <br/> 102.2258 +     |  0  0  0 |<br/> 102.2259 +     | -1 -2 -1 |<br/> 102.2260 +     |  1  2  1 |</p> 102.2261 + </td><td><p>Top/right corner:</p> 102.2262 + 102.2263 + <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/> 102.2264 + K<sub>x</sub> =<br/> 102.2265 +     |  0  0  0 |<br/> 102.2266 +     | -2  2  0 |<br/> 102.2267 +     | -1  1  0 |<br/> 102.2268 + <br/> 102.2269 + FACTOR<sub>y</sub>=2/(3*dy)<br/> 102.2270 + K<sub>y</sub> =  <br/> 102.2271 +     |  0  0  0 |<br/> 102.2272 +     | -1 -2  0 |<br/> 102.2273 +     |  1  2  0 |</p> 102.2274 + </td></tr><tr><td><p>Left column:</p> 102.2275 + 102.2276 + <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br/> 102.2277 + K<sub>x</sub> =<br/> 102.2278 +     | 0 -1  1 |<br/> 102.2279 +     | 0 -2  2 |<br/> 102.2280 +     | 0 -1  1 |<br/> 102.2281 + <br/> 102.2282 + FACTOR<sub>y</sub>=1/(3*dy)<br/> 102.2283 + K<sub>y</sub> =  <br/> 102.2284 +     |  0 -2 -1 |<br/> 102.2285 +     |  0  0  0 |<br/> 102.2286 +     |  0  2  1 |</p> 102.2287 + </td><td><p>Interior pixels:</p> 102.2288 + 102.2289 + <p class="filterformula">FACTOR<sub>x</sub>=1/(4*dx)<br/> 102.2290 + K<sub>x</sub> =<br/> 102.2291 +     | -1  0  1 |<br/> 102.2292 +     | -2  0  2 |<br/> 102.2293 +     | -1  0  1 |<br/> 102.2294 + <br/> 102.2295 + FACTOR<sub>y</sub>=1/(4*dy)<br/> 102.2296 + K<sub>y</sub> =  <br/> 102.2297 +     | -1 -2 -1 |<br/> 102.2298 +     |  0  0  0 |<br/> 102.2299 +     |  1  2  1 |</p> 102.2300 + </td><td><p>Right column:</p> 102.2301 + 102.2302 + <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br/> 102.2303 + K<sub>x</sub> =<br/> 102.2304 +     | -1  1  0|<br/> 102.2305 +     | -2  2  0|<br/> 102.2306 +     | -1  1  0|<br/> 102.2307 + <br/> 102.2308 + FACTOR<sub>y</sub>=1/(3*dy)<br/> 102.2309 + K<sub>y</sub> =  <br/> 102.2310 +     | -1 -2  0 |<br/> 102.2311 +     |  0  0  0 |<br/> 102.2312 +     |  1  2  0 |</p> 102.2313 + </td></tr><tr><td><p>Bottom/left corner:</p> 102.2314 + 102.2315 + <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/> 102.2316 + K<sub>x</sub> =<br/> 102.2317 +     | 0 -1  1 |<br/> 102.2318 +     | 0 -2  2 |<br/> 102.2319 +     | 0  0  0 |<br/> 102.2320 + <br/> 102.2321 + FACTOR<sub>y</sub>=2/(3*dy)<br/> 102.2322 + K<sub>y</sub> =  <br/> 102.2323 +     |  0 -2 -1 |<br/> 102.2324 +     |  0  2  1 |<br/> 102.2325 +     |  0  0  0 |</p> 102.2326 + </td><td><p>Bottom row:</p> 102.2327 + 102.2328 + <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br/> 102.2329 + K<sub>x</sub> =<br/> 102.2330 +     | -1  0  1 |<br/> 102.2331 +     | -2  0  2 |<br/> 102.2332 +     |  0  0  0 |<br/> 102.2333 + <br/> 102.2334 + FACTOR<sub>y</sub>=1/(2*dy)<br/> 102.2335 + K<sub>y</sub> =  <br/> 102.2336 +     | -1 -2 -1 |<br/> 102.2337 +     |  1  2  1 |<br/> 102.2338 +     |  0  0  0 |</p> 102.2339 + </td><td><p>Bottom/right corner:</p> 102.2340 + 102.2341 + <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/> 102.2342 + K<sub>x</sub> =<br/> 102.2343 +     | -1  1  0 |<br/> 102.2344 +     | -2  2  0 |<br/> 102.2345 +     |  0  0  0 |<br/> 102.2346 + <br/> 102.2347 + FACTOR<sub>y</sub>=2/(3*dy)<br/> 102.2348 + K<sub>y</sub> =  <br/> 102.2349 +     | -1 -2  0 |<br/> 102.2350 +     |  1  2  0 |<br/> 102.2351 +     |  0  0  0 |</p> 102.2352 + </td></tr></tbody></table> 102.2353 + 102.2354 +<p>L, the unit vector from the image sample to the light, is calculated as 102.2355 +follows:</p> 102.2356 + 102.2357 +<p>For Infinite light sources it is constant:</p> 102.2358 + 102.2359 +<p class="filterformula">L<sub>x</sub> = cos(azimuth)*cos(elevation)<br/> 102.2360 +L<sub>y</sub> = sin(azimuth)*cos(elevation)<br/> 102.2361 +L<sub>z</sub> = sin(elevation)</p> 102.2362 + 102.2363 +<p>For Point and spot lights it is a function of position:</p> 102.2364 + 102.2365 +<p class="filterformula">L<sub>x</sub> = Light<sub>x</sub> - x<br/> 102.2366 +L<sub>y</sub> = Light<sub>y</sub> - y<br/> 102.2367 +L<sub>z</sub> = Light<sub>z</sub> - Z(x,y)<br/> 102.2368 +<br/> 102.2369 +L = (L<sub>x</sub>, L<sub>y</sub>, L<sub>z</sub>) / Norm(L<sub>x</sub>, 102.2370 +L<sub>y</sub>, L<sub>z</sub>)</p> 102.2371 + 102.2372 +<p>where Light<sub>x</sub>, Light<sub>y</sub>, and Light<sub>z</sub> are the 102.2373 +input light position.</p> 102.2374 + 102.2375 +<p>L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub>, the light color vector, is a 102.2376 +function of position in the spot light case only:</p> 102.2377 + 102.2378 +<p class="filterformula">L<sub>r</sub> = 102.2379 +Light<sub>r</sub>*pow((-L.S),specularExponent)<br/> 102.2380 +L<sub>g</sub> = Light<sub>g</sub>*pow((-L.S),specularExponent)<br/> 102.2381 +L<sub>b</sub> = Light<sub>b</sub>*pow((-L.S),specularExponent)</p> 102.2382 + 102.2383 +<p>where S is the unit vector pointing from the light to the point 102.2384 +(pointsAtX, pointsAtY, pointsAtZ) in the x-y plane:</p> 102.2385 + 102.2386 +<p class="filterformula">S<sub>x</sub> = pointsAtX - Light<sub>x</sub><br/> 102.2387 +S<sub>y</sub> = pointsAtY - Light<sub>y</sub><br/> 102.2388 +S<sub>z</sub> = pointsAtZ - Light<sub>z</sub><br/> 102.2389 +<br/> 102.2390 +S = (S<sub>x</sub>, S<sub>y</sub>, S<sub>z</sub>) / Norm(S<sub>x</sub>, 102.2391 +S<sub>y</sub>, S<sub>z</sub>)</p> 102.2392 + 102.2393 +<p>If L.S is positive, no light is present. (L<sub>r</sub> = L<sub>g</sub> = 102.2394 +L<sub>b</sub> = 0). If <a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a> is specified, -L.S < cos(limitingConeAngle) also indicates that no light is present.</p> 102.2395 + 102.2396 +<div class="adef-list"> 102.2397 +<p><em>Attribute definitions:</em></p> 102.2398 +<dl><dt id="feDiffuseLightingSurfaceScaleAttribute"><span class="adef">surfaceScale</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>height of surface when A<sub>in</sub> = 1.<br/> 102.2399 + If the attribute is not specified, then the effect is as if a value of 102.2400 + <span class="attr-value">1</span> were specified.<br/> 102.2401 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feDiffuseLightingDiffuseConstantAttribute"><span class="adef">diffuseConstant</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>kd in Phong lighting model. In SVG, this can be any non-negative 102.2402 + number.<br/> 102.2403 + If the attribute is not specified, then the effect is as if a value of 102.2404 + <span class="attr-value">1</span> were specified.<br/> 102.2405 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feDiffuseLightingKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></span>"</dt><dd>The first number is the <dx> value. The second number is the 102.2406 + <dy> value. If the <dy> value is not specified, it defaults 102.2407 + to the same value as <dx>. Indicates the intended distance in 102.2408 + current filter units (i.e., units as determined by the value of 102.2409 + attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) for <code>dx</code> and 102.2410 + <code>dy</code>, respectively, in the <a href="#SurfaceNormalCalculations">surface normal calculation 102.2411 + formulas</a>. By specifying value(s) for <span class="attr-name">kernelUnitLength</span>, the kernel becomes defined 102.2412 + in a scalable, abstract coordinate system. If <span class="attr-name">kernelUnitLength</span> is not specified, the 102.2413 + <code>dx</code> and <code>dy</code> values should represent very small 102.2414 + deltas relative to a given <code>(x,y)</code> position, which might be 102.2415 + implemented in some cases as one pixel in the intermediate image 102.2416 + offscreen bitmap, which is a pixel-based coordinate system, and thus 102.2417 + potentially not scalable. For some level of consistency across display 102.2418 + media and user agents, it is necessary that a value be provided for at 102.2419 + least one of <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> and <span class="attr-name">kernelUnitLength</span>. Discussion of intermediate 102.2420 + images are in the <a href="#Introduction">Introduction</a> and in the 102.2421 + description of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.<br/> 102.2422 + If a negative or zero value is specified the default value will be used 102.2423 + instead. <br/> 102.2424 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.2425 +</div> 102.2426 + 102.2427 +<p>The light source is defined by one of the child elements <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 102.2428 +<a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> or <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>. The light color is specified 102.2429 +by property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>.</p> 102.2430 + 102.2431 +<h2 id="feDisplacementMapElement">15 Filter primitive <span class="element-name">‘feDisplacementMap’</span></h2> 102.2432 + 102.2433 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDisplacementMap’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2434 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a></li><li><a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a></li><li><a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDisplacementMapElement">SVGFEDisplacementMapElement</a></li></ul></dd></dl></div> 102.2435 + 102.2436 +<p>This filter primitive uses the pixels values from the image from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> 102.2437 +to spatially displace the image from <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>. 102.2438 +This is the transformation to be performed:</p> 102.2439 + 102.2440 +<pre> P'(x,y) ↠P( x + scale * (XC(x,y) - .5), y + scale * (YC(x,y) - .5)) 102.2441 + </pre> 102.2442 + 102.2443 +<p>where P(x,y) is the input image, <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>, and 102.2444 +P'(x,y) is the destination. XC(x,y) and YC(x,y) are the component values of 102.2445 +the channel designated by the <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> and 102.2446 +<a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a>. For example, to use the R component of <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> 102.2447 +to control displacement in x and the G component of Image2 to control 102.2448 +displacement in y, set <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> to <span class="attr-value">"R"</span> and 102.2449 +<a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a> to <span class="attr-value">"G"</span>.</p> 102.2450 + 102.2451 +<p>The displacement map, <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a>, defines the inverse of the mapping 102.2452 +performed.</p> 102.2453 + 102.2454 +<p>The input image in is to remain premultiplied for this filter primitive. The calculations using the pixel values from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> are performed using non-premultiplied color values. If the image from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> consists of premultiplied color values, those values are automatically converted into non-premultiplied color values before performing this operation.</p> 102.2455 + 102.2456 +<p>This filter can have arbitrary non-localized effect on the input which 102.2457 +might require substantial buffering in the processing pipeline. However with 102.2458 +this formulation, any intermediate buffering needs can be determined by 102.2459 +<a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> which represents the maximum range of displacement in either x 102.2460 +or y.</p> 102.2461 + 102.2462 +<p>When applying this filter, the source pixel location will often lie 102.2463 +between several source pixels. In this case it is recommended that high 102.2464 +quality viewers apply an interpolent on the surrounding pixels, for example 102.2465 +bilinear or bicubic, rather than simply selecting the nearest source pixel. 102.2466 +Depending on the speed of the available interpolents, this choice may be 102.2467 +affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property 102.2468 +setting.</p> 102.2469 + 102.2470 +<p>The <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> property only applies to the 102.2471 + <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> source image and does not apply to the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> source image. 102.2472 + The <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> source image must remain in its current color space. 102.2473 +</p> 102.2474 + 102.2475 +<div class="adef-list"> 102.2476 +<p><em>Attribute definitions:</em></p> 102.2477 +<dl><dt id="feDisplacementMapScaleAttribute"><span class="adef">scale</span> 102.2478 + = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Displacement scale factor. The amount is expressed in the coordinate 102.2479 + system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.2480 + element.<br/> 102.2481 + When the value of this attribute is <span class="attr-value">0</span>, 102.2482 + this operation has no effect on the source image.<br/> 102.2483 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> is <span class="attr-value">0</span>.</p> 102.2484 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapXChannelSelectorAttribute"><span class="adef">xChannelSelector</span> = "<em>R | G | B | A</em>"</dt><dd>Indicates which channel from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> to use to displace the pixels in <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> along the x-axis. 102.2485 + The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="data:," style="background: red; color: white">@@ unknown name 'xChannelSelector'</a> is <span class="attr-value">A</span>. 102.2486 + <br/> 102.2487 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapYChannelSelectorAttribute"><span class="adef">yChannelSelector</span> = "<em>R | G | B | A</em>"</dt><dd>Indicates which channel from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> to use to displace the pixels in <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> along the y-axis. 102.2488 + The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="data:," style="background: red; color: white">@@ unknown name 'yChannelSelector'</a> is <span class="attr-value">A</span>. 102.2489 + <br/> 102.2490 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapIn2Attribute"><span class="adef">in2</span> = 102.2491 + "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute)</em>"</dt><dd>The second input image, which is used to displace the pixels in the 102.2492 + image from attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>. This attribute can take on the same 102.2493 + values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute.<br/> 102.2494 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.2495 +</div> 102.2496 + 102.2497 +<h2 id="feFloodElement">16 Filter primitive <span class="element-name">‘feFlood’</span></h2> 102.2498 + 102.2499 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFlood’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2500 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFloodElement">SVGFEFloodElement</a></li></ul></dd></dl></div> 102.2501 + 102.2502 +<p>This filter primitive creates a rectangle filled with the color and 102.2503 +opacity values from properties <span class="prop-name">‘flood-color’</span> 102.2504 +and <span class="prop-name">‘flood-opacity’</span>. The rectangle is as large 102.2505 +as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> 102.2506 +established by the <span class="element-name">‘feFlood’</span> element.</p> 102.2507 + 102.2508 +<div class="adef-list"> 102.2509 + </div> 102.2510 + 102.2511 +<p>The <span class="prop-name">‘flood-color’</span> property indicates what 102.2512 +color to use to flood the current <a href="#FilterPrimitiveSubRegion">filter 102.2513 +primitive subregion</a>. The keyword <span class="attr-value">currentColor</span> and ICC colors can be specified in the 102.2514 +same manner as within a <paint> specification for the <span class="prop-name">‘fill’</span> and <span class="prop-name">‘stroke’</span> 102.2515 +properties.</p> 102.2516 + 102.2517 +<div class="propdef"> 102.2518 +<dl><dt id="FloodColorProperty"><span class="propdef-title prop-name">‘flood-color’</span></dt><dd> 102.2519 + <table summary="flood-color property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>currentColor |<br/> 102.2520 + <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeColor"><color></a> 102.2521 + [<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeICCColor"><icccolor></a>] |<br/> 102.2522 + <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>black</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> and <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table> 102.2523 + </dd></dl> 102.2524 +</div> 102.2525 + 102.2526 +<p>The <span class="prop-name">‘flood-opacity’</span> property defines the 102.2527 +opacity value to use across the entire <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p> 102.2528 + 102.2529 +<div class="propdef"> 102.2530 +<dl><dt id="OpacityFloodOpacityProperty"><span class="propdef-title prop-name">‘flood-opacity’</span></dt><dd> 102.2531 + <table summary="flood-opacity property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td><opacity-value> | <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>1</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> and <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table> 102.2532 + </dd></dl> 102.2533 +</div> 102.2534 + 102.2535 +<h2 id="feGaussianBlurElement">17 Filter primitive <span class="element-name">‘feGaussianBlur’</span></h2> 102.2536 + 102.2537 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feGaussianBlur’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2538 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEGaussianBlurElement">SVGFEGaussianBlurElement</a></li></ul></dd></dl></div> 102.2539 + 102.2540 +<p>This filter primitive performs a Gaussian blur on the input image.</p> 102.2541 + 102.2542 +<p>The Gaussian blur kernel is an approximation of the normalized 102.2543 +convolution:</p> 102.2544 + 102.2545 +<p class="filterformula">G(x,y) = H(x)I(y)</p> 102.2546 +<p>where 102.2547 +<span>H(x) = exp(-x^2/ (2s^2)) / sqrt(2* pi*s^2)</span> 102.2548 +</p> 102.2549 +<p>and</p> 102.2550 +<p class="filterformula">I(y) = exp(-y^2/ (2t^2)) / sqrt(2* pi*t^2)</p> 102.2551 +<p>with 's' being the standard deviation in the x direction 102.2552 +and 't' being the standard deviation in the y direction, as specified by <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a>.</p> 102.2553 + 102.2554 +<p>The value of <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a> can be either one or two numbers. 102.2555 +If two numbers are provided, the first number represents a standard deviation 102.2556 +value along the x-axis of the current coordinate system and the second value 102.2557 +represents a standard deviation in Y. If one number is provided, then that 102.2558 +value is used for both X and Y.</p> 102.2559 + 102.2560 +<p>Even if only one value is provided for <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a>, this can be implemented as a 102.2561 +separable convolution.</p> 102.2562 + 102.2563 +<p>For larger values of 's' (s >= 2.0), an approximation can be used: 102.2564 +Three successive box-blurs build a piece-wise quadratic convolution kernel, 102.2565 +which approximates the Gaussian kernel to within roughly 3%.</p> 102.2566 + 102.2567 +<p class="filterformula">let d = floor(s * 3*sqrt(2*pi)/4 + 0.5)</p> 102.2568 + 102.2569 +<p>... if d is odd, use three box-blurs of size 'd', centered on the output 102.2570 +pixel.</p> 102.2571 + 102.2572 +<p>... if d is even, two box-blurs of size 'd' (the first one centered on the 102.2573 +pixel boundary between the output pixel and the one to the left, the second 102.2574 +one centered on the pixel boundary between the output pixel and the one to 102.2575 +the right) and one box blur of size 'd+1' centered on the output pixel.</p> 102.2576 + 102.2577 +<p>Frequently this operation will take place on alpha-only images, such as 102.2578 +that produced by the built-in input, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>. The implementation may notice this 102.2579 +and optimize the single channel case. If the input has infinite extent and is 102.2580 +constant, this operation has no effect. If the input has infinite extent and 102.2581 +is a tile, the filter is evaluated with periodic boundary conditions.</p> 102.2582 + 102.2583 +<div class="adef-list"> 102.2584 +<p><em>Attribute definitions:</em></p> 102.2585 +<dl><dt id="feGaussianBlurStdDeviationAttribute"><span class="adef">stdDeviation</span> = 102.2586 + "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></em>"</dt><dd>The standard deviation for the blur operation. If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a> 102.2587 + s are provided, the first number represents a standard deviation value 102.2588 + along the x-axis of the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.2589 + element. The second value represents a standard deviation in Y. If one 102.2590 + number is provided, then that value is used for both X and Y.<br/> 102.2591 + A value of zero disables the effect of the given filter primitive (i.e., the result is the filter input image).<br/> 102.2592 + If the attribute is not specified, then the effect is as if a value of 102.2593 + <span class="attr-value">0</span> were specified.<br/> 102.2594 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.2595 +</div> 102.2596 + 102.2597 +<p><a href="#AnExample">The example</a> at the start of this chapter makes 102.2598 +use of the <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive 102.2599 +to create a drop shadow effect.</p> 102.2600 + 102.2601 +<h2 id="feUnsharpMaskElement">18 Filter primitive <span class="element-name">‘feUnsharpMask’</span></h2> 102.2602 + 102.2603 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feUnsharpMask’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2604 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feUnsharpMaskAmountAttribute"><span class="attr-name">‘amount’</span></a></li><li><a href="#feUnsharpMaskThresholdAttribute"><span class="attr-name">‘threshold’</span></a></li><li><a href="#feUnsharpMaskStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEUnsharpMaskElement">SVGFEUnsharpMaskElement</a></li></ul></dd></dl></div> 102.2605 + 102.2606 +<p>This filter primitive performs an image sharpening operation on the input image. This is traditionally known as an unsharp mask operation.</p> 102.2607 + 102.2608 +<p>The filter first does a <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> operation on the input image and then subtracts the difference between the input image and the blurred image.</p> 102.2609 + 102.2610 +<p> 102.2611 +For controlling the result there are three attributes that can be used: 102.2612 + <ul><li>the <a href="#feUnsharpMaskStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> attribute controls how much to blur the input image</li><li>the <a href="#feUnsharpMaskThresholdAttribute"><span class="attr-name">‘threshold’</span></a> attribute can be used for controlling when the difference should not be subtracted</li><li>the <a href="#feUnsharpMaskAmountAttribute"><span class="attr-name">‘amount’</span></a> attribute specifies an optional multiplier for the difference to subtract</li></ul> 102.2613 +</p> 102.2614 + 102.2615 +<h2 id="feImageElement">19 Filter primitive <span class="element-name">‘feImage’</span></h2> 102.2616 + 102.2617 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feImage’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2618 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateTransformElement"><span class="element-name">‘animateTransform’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermXLinkAttributes">xlink attributes</a><span class="expanding"> — <a href="#feImageElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkShowAttribute"><span class="attr-name">‘xlink:show’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkActuateAttribute"><span class="attr-name">‘xlink:actuate’</span></a>, <a href="struct.html#XLinkTypeAttribute"><span class="attr-name">‘xlink:type’</span></a>, <a href="struct.html#XLinkRoleAttribute"><span class="attr-name">‘xlink:role’</span></a>, <a href="struct.html#XLinkArcRoleAttribute"><span class="attr-name">‘xlink:arcrole’</span></a>, <a href="struct.html#XLinkTitleAttribute"><span class="attr-name">‘xlink:title’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#ExternalResourcesRequiredAttribute"><span class="attr-name">‘externalResourcesRequired’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#PreserveAspectRatioAttribute"><span class="attr-name">‘preserveAspectRatio’</span></a></li><li><a href="#feImageElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEImageElement">SVGFEImageElement</a></li></ul></dd></dl></div> 102.2619 + 102.2620 +<p>This filter primitive refers to a graphic external to this filter element, 102.2621 +which is loaded or rendered into an RGBA raster and becomes the result of the 102.2622 +filter primitive.</p> 102.2623 + 102.2624 +<p>This filter primitive can refer to an external image or can be a reference 102.2625 +to another piece of SVG. It produces an image similar to the built-in image 102.2626 +source <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> except that the graphic comes 102.2627 +from an external source.</p> 102.2628 + 102.2629 +<p>If the <span class="attr-name">xlink:href</span> references a stand-alone 102.2630 +image resource such as a JPEG, PNG or SVG file, then the image resource is 102.2631 +rendered according to the behavior of the <span class="element-name">‘image’</span> element; otherwise, the referenced 102.2632 +resource is rendered according to the behavior of the <span class="element-name">‘use’</span> element. In either case, the current user 102.2633 +coordinate system depends on the value of attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 102.2634 +The processing of the <span class="attr-name">preserveAspectRatio</span> 102.2635 +attribute on the <span class="element-name">‘feImage’</span> element is 102.2636 +identical to that of the <a href="struct.html#ImageElement"><span class="element-name">‘image’</span></a> element.</p> 102.2637 + 102.2638 +<p><span class="requirement" id="assert_hqImageResampling">When the referenced image must be resampled to match the device coordinate 102.2639 +system, it is recommended that high quality viewers make use of appropriate 102.2640 +interpolation techniques, for example bilinear or bicubic.</span> Depending on the 102.2641 +speed of the available interpolents, this choice may be affected by the <span class="prop-name">‘image-rendering’</span> property setting.</p> 102.2642 + 102.2643 +<div class="adef-list"> 102.2644 +<p><em>Attribute definitions:</em></p> 102.2645 +<dl><dt id="feImageHrefAttribute"><span class="adef">xlink:href</span> = 102.2646 + "<span class="attr-value"><IRI></span>"</dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 102.2647 + to an image resource or to an element. 102.2648 + <br/> 102.2649 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.2650 +</div> 102.2651 + 102.2652 +<h2 id="feMergeElement">20 Filter primitive <span class="element-name">‘feMerge’</span></h2> 102.2653 + 102.2654 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMerge’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2655 + <ul class="no-bullets"><li><a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMergeElement">SVGFEMergeElement</a></li></ul></dd></dl></div> 102.2656 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMergeNode’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2657 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMergeNodeElement">SVGFEMergeNodeElement</a></li></ul></dd></dl></div> 102.2658 + 102.2659 +<p>This filter primitive composites input image layers on top of each other 102.2660 +using the <em>over</em> operator with <em>Input1</em> (corresponding to the 102.2661 +first <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> child element) on the bottom 102.2662 +and the last specified input, <em>InputN</em> (corresponding to the last <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> child element), on top.</p> 102.2663 + 102.2664 +<p>Many effects produce a number of intermediate layers in order to create 102.2665 +the final output image. This filter allows us to collapse those into a single 102.2666 +image. Although this could be done by using n-1 Composite-filters, it is more 102.2667 +convenient to have this common operation available in this form, and offers 102.2668 +the implementation some additional flexibility.</p> 102.2669 + 102.2670 +<p>Each 'feMerge' element can have any number of 'feMergeNode' subelements, 102.2671 +each of which has an <a href="#CommonAttributes"><span class="attr-name">in</span></a> attribute.</p> 102.2672 + 102.2673 +<p>The canonical implementation of feMerge is to render the entire effect 102.2674 +into one RGBA layer, and then render the resulting layer on the output 102.2675 +device. In certain cases (in particular if the output device itself is a 102.2676 +continuous tone device), and since merging is associative, it might be a 102.2677 +sufficient approximation to evaluate the effect one layer at a time and 102.2678 +render each layer individually onto the output device bottom to top.</p> 102.2679 + 102.2680 +<p>If the topmost image input is <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> and this <span class="element-name">‘feMerge’</span> is the last filter primitive in the 102.2681 +filter, the implementation is encouraged to render the layers up to that 102.2682 +point, and then render the <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> directly from its vector 102.2683 +description on top.</p> 102.2684 + 102.2685 +<p id="feMergeNode"><a href="#AnExample">The example</a> at the start of this chapter makes 102.2686 +use of the <span class="element-name">feMerge</span> filter primitive to 102.2687 +composite two intermediate filter results together.</p> 102.2688 + 102.2689 +<h2 id="feMorphologyElement">21 Filter primitive <span class="element-name">‘feMorphology’</span></h2> 102.2690 + 102.2691 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMorphology’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2692 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feMorphologyOperatorAttribute"><span class="attr-name">‘operator’</span></a></li><li><a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMorphologyElement">SVGFEMorphologyElement</a></li></ul></dd></dl></div> 102.2693 + 102.2694 +<p>This filter primitive performs "fattening" or "thinning" of artwork. It is 102.2695 +particularly useful for fattening or thinning an alpha channel.</p> 102.2696 + 102.2697 +<p>The dilation (or erosion) kernel is a rectangle with a width of 102.2698 +2*<em>x-radius</em> and a height of 2*<em>y-radius</em>. In dilation, the 102.2699 +output pixel is the individual component-wise maximum of the corresponding 102.2700 +R,G,B,A values in the input image's kernel rectangle. In erosion, the output 102.2701 +pixel is the individual component-wise minimum of the corresponding R,G,B,A 102.2702 +values in the input image's kernel rectangle.</p> 102.2703 + 102.2704 +<p>Frequently this operation will take place on alpha-only images, such as 102.2705 +that produced by the built-in input, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>. In that case, the implementation 102.2706 +might want to optimize the single channel case.</p> 102.2707 + 102.2708 +<p>If the input has infinite extent and is constant, this operation has no 102.2709 +effect. If the input has infinite extent and is a tile, the filter is 102.2710 +evaluated with periodic boundary conditions.</p> 102.2711 + 102.2712 +<p>Because <span class="element-name">‘feMorphology’</span> operates on 102.2713 +premultipied color values, it will always result in color values less than or 102.2714 +equal to the alpha channel.</p> 102.2715 + 102.2716 +<div class="adef-list"> 102.2717 +<p><em>Attribute definitions:</em></p> 102.2718 +<dl><dt id="feMorphologyOperatorAttribute"><span class="adef">operator</span> = "<em>erode | dilate</em>"</dt><dd>A keyword indicating whether to erode (i.e., thin) or dilate (fatten) 102.2719 + the source graphic.<br/> 102.2720 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feMorphologyRadiusAttribute"><span class="adef">radius</span> = 102.2721 + "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></em>"</dt><dd>The radius (or radii) for the operation. If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a> 102.2722 + s are provided, the first number represents a x-radius and the second 102.2723 + value represents a y-radius. If one number is provided, then that value 102.2724 + is used for both X and Y. The values are in the coordinate system 102.2725 + established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.2726 + element.<br/> 102.2727 + A negative or zero value disables the effect of the given filter 102.2728 + primitive (i.e., the result is a transparent black image).<br/> 102.2729 + If the attribute is not specified, then the effect is as if a value of 102.2730 + <span class="attr-value">0</span> were specified.<br/> 102.2731 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.2732 +</div> 102.2733 + 102.2734 +<pre class="xml"><?xml version="1.0"?> 102.2735 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 102.2736 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 102.2737 +<svg width="5cm" height="7cm" viewBox="0 0 700 500" 102.2738 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 102.2739 + <title>Example feMorphology - Examples of erode and dilate</title> 102.2740 + <desc>Five text strings drawn as outlines. 102.2741 + The first is unfiltered. The second and third use 'erode'. 102.2742 + The fourth and fifth use 'dilate'.</desc> 102.2743 + <defs> 102.2744 + <filter id="Erode3"> 102.2745 + <feMorphology operator="erode" in="SourceGraphic" radius="3" /> 102.2746 + </filter> 102.2747 + <filter id="Erode6"> 102.2748 + <feMorphology operator="erode" in="SourceGraphic" radius="6" /> 102.2749 + </filter> 102.2750 + <filter id="Dilate3"> 102.2751 + <feMorphology operator="dilate" in="SourceGraphic" radius="3" /> 102.2752 + </filter> 102.2753 + <filter id="Dilate6"> 102.2754 + <feMorphology operator="dilate" in="SourceGraphic" radius="6" /> 102.2755 + </filter> 102.2756 + </defs> 102.2757 + <rect fill="none" stroke="blue" stroke-width="2" 102.2758 + x="1" y="1" width="698" height="498"/> 102.2759 + <g enable-background="new" > 102.2760 + <g font-family="Verdana" font-size="75" 102.2761 + fill="none" stroke="black" stroke-width="6" > 102.2762 + <text x="50" y="90">Unfiltered</text> 102.2763 + <text x="50" y="180" filter="url(#Erode3)" >Erode radius 3</text> 102.2764 + <text x="50" y="270" filter="url(#Erode6)" >Erode radius 6</text> 102.2765 + <text x="50" y="360" filter="url(#Dilate3)" >Dilate radius 3</text> 102.2766 + <text x="50" y="450" filter="url(#Dilate6)" >Dilate radius 6</text> 102.2767 + </g> 102.2768 + </g> 102.2769 +</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feMorphology.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feMorphology.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 102.2770 + 102.2771 +<h2 id="feOffsetElement">22 Filter primitive <span class="element-name">‘feOffset’</span></h2> 102.2772 + 102.2773 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feOffset’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2774 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a></li><li><a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEOffsetElement">SVGFEOffsetElement</a></li></ul></dd></dl></div> 102.2775 + 102.2776 +<p>This filter primitive offsets the input image relative to its current 102.2777 +position in the image space by the specified vector.</p> 102.2778 + 102.2779 +<p>This is important for effects like drop shadows.</p> 102.2780 + 102.2781 +<p>When applying this filter, the destination location may be offset by a 102.2782 +fraction of a pixel in device space. <span class="requirement" id="assert_hqFeOffsetInterpolation">In this case a high quality viewer 102.2783 +should make use of appropriate interpolation techniques, for example bilinear 102.2784 +or bicubic.</span> This is especially recommended for dynamic viewers where this 102.2785 +interpolation provides visually smoother movement of images. For static 102.2786 +viewers this is less of a concern. Close attention should be made to the 102.2787 +<span class="prop-name">‘image-rendering’</span> property setting to 102.2788 +determine the authors intent.</p> 102.2789 + 102.2790 +<div class="adef-list"> 102.2791 +<p><em>Attribute definitions:</em></p> 102.2792 +<dl><dt id="feOffsetDxAttribute"><span class="adef">dx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>The amount to offset the input graphic along the x-axis. The offset 102.2793 + amount is expressed in the coordinate system established by attribute 102.2794 + <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.2795 + element.<br/> 102.2796 + If the attribute is not specified, then the effect is as if a value of 102.2797 + <span class="attr-value">0</span> were specified.<br/> 102.2798 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feOffsetDyAttribute"><span class="adef">dy</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>The amount to offset the input graphic along the y-axis. The offset 102.2799 + amount is expressed in the coordinate system established by attribute 102.2800 + <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.2801 + element.<br/> 102.2802 + If the attribute is not specified, then the effect is as if a value of 102.2803 + <span class="attr-value">0</span> were specified.<br/> 102.2804 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.2805 +</div> 102.2806 + 102.2807 +<p><a href="#AnExample">The example</a> at the start of this chapter makes 102.2808 +use of the <span class="element-name">feOffset</span> filter primitive to 102.2809 +offset the drop shadow from the original source graphic.</p> 102.2810 + 102.2811 +<h2 id="feSpecularLightingElement">23 Filter primitive <span class="element-name">‘feSpecularLighting’</span></h2> 102.2812 + 102.2813 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feSpecularLighting’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2814 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">light source elements</a><span class="expanding"> — <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feSpecularLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a></li><li><a href="#feSpecularLightingSpecularConstantAttribute"><span class="attr-name">‘specularConstant’</span></a></li><li><a href="#feSpecularLightingSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a></li><li><a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFESpecularLightingElement">SVGFESpecularLightingElement</a></li></ul></dd></dl></div> 102.2815 + 102.2816 +<p>This filter primitive lights a source graphic using the alpha channel as a 102.2817 +bump map. The resulting image is an RGBA image based on the light color. The 102.2818 +lighting calculation follows the standard specular component of the Phong 102.2819 +lighting model. The resulting image depends on the light color, light 102.2820 +position and surface geometry of the input bump map. The result of the 102.2821 +lighting calculation is added. The filter primitive assumes that the viewer 102.2822 +is at infinity in the z direction (i.e., the unit vector in the eye direction 102.2823 +is (0,0,1) everywhere).</p> 102.2824 + 102.2825 +<p>This filter primitive produces an image which contains the specular 102.2826 +reflection part of the lighting calculation. Such a map is intended to be 102.2827 +combined with a texture using the <em>add</em> term of the 102.2828 +<em>arithmetic</em> <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> method. Multiple light sources 102.2829 +can be simulated by adding several of these light maps before applying it to 102.2830 +the texture image.</p> 102.2831 + 102.2832 +<p>The resulting RGBA image is computed as follows:</p> 102.2833 + 102.2834 +<p class="filterformula">S<sub>r</sub> = k<sub>s</sub> * pow(N.H, 102.2835 +specularExponent) * L<sub>r<br/> 102.2836 +</sub> S<sub>g</sub> = k<sub>s</sub> * pow(N.H, specularExponent) * 102.2837 +L<sub>g<br/> 102.2838 +</sub> S<sub>b</sub> = k<sub>s</sub> * pow(N.H, specularExponent) * 102.2839 +L<sub>b<br/> 102.2840 +</sub> S<sub>a</sub> = max(S<sub>r,</sub> S<sub>g,</sub> S<sub>b</sub>)</p> 102.2841 + 102.2842 +<p>where</p> 102.2843 +<dl><dd>k<sub>s</sub> = specular lighting constant<br/> 102.2844 + N = surface normal unit vector, a function of x and y<br/> 102.2845 + H = "halfway" unit vector between eye unit vector and light unit 102.2846 + vector<br/> 102.2847 + <br/> 102.2848 + L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light</dd></dl> 102.2849 + 102.2850 +<p>See <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a> for definition of N and 102.2851 +(L<sub>r</sub>, L<sub>g</sub>, L<sub>b</sub>).</p> 102.2852 + 102.2853 +<p>The definition of H reflects our assumption of the constant eye vector E = 102.2854 +(0,0,1):</p> 102.2855 + 102.2856 +<p class="filterformula">H = (L + E) / Norm(L+E)</p> 102.2857 + 102.2858 +<p>where L is the light unit vector.</p> 102.2859 + 102.2860 +<p>Unlike the <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a>, the <span class="element-name">‘feSpecularLighting’</span> filter produces a non-opaque 102.2861 +image. This is due to the fact that the specular result 102.2862 +(S<sub>r</sub>,S<sub>g</sub>,S<sub>b</sub>,S<sub>a</sub>) is meant to be 102.2863 +added to the textured image. The alpha channel of the result is the max of 102.2864 +the color components, so that where the specular light is zero, no additional 102.2865 +coverage is added to the image and a fully white highlight will add 102.2866 +opacity.</p> 102.2867 + 102.2868 +<p>The <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a> and <span class="element-name">‘feSpecularLighting’</span> filters will often be 102.2869 +applied together. An implementation may detect this and calculate both maps 102.2870 +in one pass, instead of two.</p> 102.2871 + 102.2872 +<div class="adef-list"> 102.2873 +<p><em>Attribute definitions:</em></p> 102.2874 +<dl><dt id="feSpecularLightingSurfaceScaleAttribute"><span class="adef">surfaceScale</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>height of surface when A<sub>in</sub> = 1.<br/> 102.2875 + If the attribute is not specified, then the effect is as if a value of 102.2876 + <span class="attr-value">1</span> were specified.<br/> 102.2877 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingSpecularConstantAttribute"><span class="adef">specularConstant</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>ks in Phong lighting model. In SVG, this can be any non-negative 102.2878 + number.<br/> 102.2879 + If the attribute is not specified, then the effect is as if a value of 102.2880 + <span class="attr-value">1</span> were specified.<br/> 102.2881 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingSpecularExponentAttribute"><span class="adef">specularExponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Exponent for specular term, larger is more "shiny". Range 1.0 to 102.2882 + 128.0.<br/> 102.2883 + If the attribute is not specified, then the effect is as if a value of 102.2884 + <span class="attr-value">1</span> were specified.<br/> 102.2885 + <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></span>"</dt><dd>The first number is the <dx> value. The second number is the 102.2886 + <dy> value. If the <dy> value is not specified, it defaults 102.2887 + to the same value as <dx>. Indicates the intended distance in 102.2888 + current filter units (i.e., units as determined by the value of 102.2889 + attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) for <code>dx</code> and 102.2890 + <code>dy</code>, respectively, in the <a href="#SurfaceNormalCalculations">surface normal calculation 102.2891 + formulas</a>. By specifying value(s) for <span class="attr-name">kernelUnitLength</span>, the kernel becomes defined 102.2892 + in a scalable, abstract coordinate system. If <span class="attr-name">kernelUnitLength</span> is not specified, the 102.2893 + <code>dx</code> and <code>dy</code> values should represent very small 102.2894 + deltas relative to a given <code>(x,y)</code> position, which might be 102.2895 + implemented in some cases as one pixel in the intermediate image 102.2896 + offscreen bitmap, which is a pixel-based coordinate system, and thus 102.2897 + potentially not scalable. For some level of consistency across display 102.2898 + media and user agents, it is necessary that a value be provided for at 102.2899 + least one of <span class="attr-name">filterRes</span> and <span class="attr-name">kernelUnitLength</span>. Discussion of intermediate 102.2900 + images are in the <a href="#Introduction">Introduction</a> and in the 102.2901 + description of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">filterRes</span></a>.<br/> 102.2902 + If a negative or zero value is specified the default value will be used 102.2903 + instead. <br/> 102.2904 + <span class="anim-target">Animatable: yes.</span></dd></dl> 102.2905 +</div> 102.2906 + 102.2907 +<p>The light source is defined by one of the child elements <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> or <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>. The light color is 102.2908 +specified by property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>.</p> 102.2909 + 102.2910 +<p><a href="#AnExample">The example</a> at the start of this chapter makes 102.2911 +use of the <span class="element-name">feSpecularLighting</span> filter 102.2912 +primitive to achieve a highly reflective, 3D glowing effect.</p> 102.2913 + 102.2914 +<h2 id="feTileElement">24 Filter primitive <span class="element-name">‘feTile’</span></h2> 102.2915 + 102.2916 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feTile’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.2917 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFETileElement">SVGFETileElement</a></li></ul></dd></dl></div> 102.2918 + 102.2919 +<p>This filter primitive fills a target rectangle with a repeated, tiled 102.2920 +pattern of an input image. 102.2921 +The target rectangle is as large as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> established 102.2922 +by the <span class="element-name">‘feTile’</span> element. 102.2923 +</p> 102.2924 + 102.2925 +<p>Typically, the input image has been defined with its own <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> in order to 102.2926 +define a reference tile. <span class="element-name">‘feTile’</span> 102.2927 +replicates the reference tile in both X and Y to completely fill the target 102.2928 +rectangle. The top/left corner of each given tile is at location 102.2929 +<code>(x+i*width,y+j*height)</code>, where <code>(x,y)</code> represents the 102.2930 +top/left of the input image's filter primitive subregion, <code>width</code> 102.2931 +and <code>height</code> represent the width and height of the input image's 102.2932 +filter primitive subregion, and <code>i</code> and <code>j</code> can be any 102.2933 +integer value. In most cases, the input image will have a smaller filter 102.2934 +primitive subregion than the <span class="element-name">‘feTile’</span> in 102.2935 +order to achieve a repeated pattern effect.</p> 102.2936 + 102.2937 +<p class="requirement" id="assertTileArtifacts">Implementers must take appropriate measures in constructing the tiled 102.2938 +image to avoid artifacts between tiles, particularly in situations where the 102.2939 +user to device transform includes shear and/or rotation. Unless care is 102.2940 +taken, interpolation can lead to edge pixels in the tile having opacity 102.2941 +values lower or higher than expected due to the interaction of painting 102.2942 +adjacent tiles which each have partial overlap with particular pixels.</p> 102.2943 + 102.2944 +<div class="adef-list"> 102.2945 + </div> 102.2946 + 102.2947 +<h2 id="feTurbulenceElement">25 Filter primitive <span class="element-name">‘feTurbulence’</span></h2> 102.2948 + 102.2949 + 102.2950 + 102.2951 +<p class="specissue">ISSUE: Consider phasing out this C algorithm in favor of Simplex noise, which is more HW friendly.</p> 102.2952 + 102.2953 +<p>This filter primitive creates an image using the Perlin turbulence 102.2954 +function. It allows the synthesis of artificial textures like clouds or 102.2955 +marble. For a detailed description the of the Perlin turbulence function, see 102.2956 +"Texturing and Modeling", Ebert et al, AP Professional, 1994. The resulting 102.2957 +image will fill the entire <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> for this filter primitive.</p> 102.2958 + 102.2959 +<p>It is possible to create bandwidth-limited noise by synthesizing only one 102.2960 +octave.</p> 102.2961 + 102.2962 +<p>The C code below shows the exact algorithm used for this filter effect.</p> 102.2963 + 102.2964 +<p>For fractalSum, you get a turbFunctionResult that is aimed at a range of 102.2965 +-1 to 1 (the actual result might exceed this range in some cases). To convert 102.2966 +to a color value, use the formula <code>colorValue = ((turbFunctionResult * 102.2967 +255) + 255) / 2</code>, then clamp to the range 0 to 255.</p> 102.2968 + 102.2969 +<p>For turbulence, you get a turbFunctionResult that is aimed at a range of 0 102.2970 +to 1 (the actual result might exceed this range in some cases). To convert to 102.2971 +a color value, use the formula <code>colorValue = (turbFunctionResult * 102.2972 +255)</code>, then clamp to the range 0 to 255.</p> 102.2973 + 102.2974 +<p>The following order is used for applying the pseudo random numbers. An 102.2975 +initial seed value is computed based on the <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> attribute. 102.2976 +Then the implementation computes the lattice 102.2977 +points for R, then continues getting additional pseudo random numbers 102.2978 +relative to the last generated pseudo random number and computes the lattice 102.2979 +points for G, and so on for B and A.</p> 102.2980 + 102.2981 +<p>The generated color and alpha values are in the color space determined by 102.2982 +the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> property:</p> 102.2983 +<pre class="svgsamplecompressed">/* Produces results in the range [1, 2**31 - 2]. 102.2984 +Algorithm is: r = (a * r) mod m 102.2985 +where a = 16807 and m = 2**31 - 1 = 2147483647 102.2986 +See [Park & Miller], CACM vol. 31 no. 10 p. 1195, Oct. 1988 102.2987 +To test: the algorithm should produce the result 1043618065 102.2988 +as the 10,000th generated number if the original seed is 1. 102.2989 +*/ 102.2990 +#define RAND_m 2147483647 /* 2**31 - 1 */ 102.2991 +#define RAND_a 16807 /* 7**5; primitive root of m */ 102.2992 +#define RAND_q 127773 /* m / a */ 102.2993 +#define RAND_r 2836 /* m % a */ 102.2994 +long setup_seed(long lSeed) 102.2995 +{ 102.2996 + if (lSeed <= 0) lSeed = -(lSeed % (RAND_m - 1)) + 1; 102.2997 + if (lSeed > RAND_m - 1) lSeed = RAND_m - 1; 102.2998 + return lSeed; 102.2999 +} 102.3000 +long random(long lSeed) 102.3001 +{ 102.3002 + long result; 102.3003 + result = RAND_a * (lSeed % RAND_q) - RAND_r * (lSeed / RAND_q); 102.3004 + if (result <= 0) result += RAND_m; 102.3005 + return result; 102.3006 +} 102.3007 +#define BSize 0x100 102.3008 +#define BM 0xff 102.3009 +#define PerlinN 0x1000 102.3010 +#define NP 12 /* 2^PerlinN */ 102.3011 +#define NM 0xfff 102.3012 +static uLatticeSelector[BSize + BSize + 2]; 102.3013 +static double fGradient[4][BSize + BSize + 2][2]; 102.3014 +struct StitchInfo 102.3015 +{ 102.3016 + int nWidth; // How much to subtract to wrap for stitching. 102.3017 + int nHeight; 102.3018 + int nWrapX; // Minimum value to wrap. 102.3019 + int nWrapY; 102.3020 +}; 102.3021 +static void init(long lSeed) 102.3022 +{ 102.3023 + double s; 102.3024 + int i, j, k; 102.3025 + lSeed = setup_seed(lSeed); 102.3026 + for(k = 0; k < 4; k++) 102.3027 + { 102.3028 + for(i = 0; i < BSize; i++) 102.3029 + { 102.3030 + uLatticeSelector[i] = i; 102.3031 + for (j = 0; j < 2; j++) 102.3032 + fGradient[k][i][j] = (double)(((lSeed = random(lSeed)) % (BSize + BSize)) - BSize) / BSize; 102.3033 + s = double(sqrt(fGradient[k][i][0] * fGradient[k][i][0] + fGradient[k][i][1] * fGradient[k][i][1])); 102.3034 + fGradient[k][i][0] /= s; 102.3035 + fGradient[k][i][1] /= s; 102.3036 + } 102.3037 + } 102.3038 + while(--i) 102.3039 + { 102.3040 + k = uLatticeSelector[i]; 102.3041 + uLatticeSelector[i] = uLatticeSelector[j = (lSeed = random(lSeed)) % BSize]; 102.3042 + uLatticeSelector[j] = k; 102.3043 + } 102.3044 + for(i = 0; i < BSize + 2; i++) 102.3045 + { 102.3046 + uLatticeSelector[BSize + i] = uLatticeSelector[i]; 102.3047 + for(k = 0; k < 4; k++) 102.3048 + for(j = 0; j < 2; j++) 102.3049 + fGradient[k][BSize + i][j] = fGradient[k][i][j]; 102.3050 + } 102.3051 +} 102.3052 +#define s_curve(t) ( t * t * (3. - 2. * t) ) 102.3053 +#define lerp(t, a, b) ( a + t * (b - a) ) 102.3054 +double noise2(int nColorChannel, double vec[2], StitchInfo *pStitchInfo) 102.3055 +{ 102.3056 + int bx0, bx1, by0, by1, b00, b10, b01, b11; 102.3057 + double rx0, rx1, ry0, ry1, *q, sx, sy, a, b, t, u, v; 102.3058 + register i, j; 102.3059 + t = vec[0] + PerlinN; 102.3060 + bx0 = (int)t; 102.3061 + bx1 = bx0+1; 102.3062 + rx0 = t - (int)t; 102.3063 + rx1 = rx0 - 1.0f; 102.3064 + t = vec[1] + PerlinN; 102.3065 + by0 = (int)t; 102.3066 + by1 = by0+1; 102.3067 + ry0 = t - (int)t; 102.3068 + ry1 = ry0 - 1.0f; 102.3069 + // If stitching, adjust lattice points accordingly. 102.3070 + if(pStitchInfo != NULL) 102.3071 + { 102.3072 + if(bx0 >= pStitchInfo->nWrapX) 102.3073 + bx0 -= pStitchInfo->nWidth; 102.3074 + if(bx1 >= pStitchInfo->nWrapX) 102.3075 + bx1 -= pStitchInfo->nWidth; 102.3076 + if(by0 >= pStitchInfo->nWrapY) 102.3077 + by0 -= pStitchInfo->nHeight; 102.3078 + if(by1 >= pStitchInfo->nWrapY) 102.3079 + by1 -= pStitchInfo->nHeight; 102.3080 + } 102.3081 + bx0 &= BM; 102.3082 + bx1 &= BM; 102.3083 + by0 &= BM; 102.3084 + by1 &= BM; 102.3085 + i = uLatticeSelector[bx0]; 102.3086 + j = uLatticeSelector[bx1]; 102.3087 + b00 = uLatticeSelector[i + by0]; 102.3088 + b10 = uLatticeSelector[j + by0]; 102.3089 + b01 = uLatticeSelector[i + by1]; 102.3090 + b11 = uLatticeSelector[j + by1]; 102.3091 + sx = double(s_curve(rx0)); 102.3092 + sy = double(s_curve(ry0)); 102.3093 + q = fGradient[nColorChannel][b00]; u = rx0 * q[0] + ry0 * q[1]; 102.3094 + q = fGradient[nColorChannel][b10]; v = rx1 * q[0] + ry0 * q[1]; 102.3095 + a = lerp(sx, u, v); 102.3096 + q = fGradient[nColorChannel][b01]; u = rx0 * q[0] + ry1 * q[1]; 102.3097 + q = fGradient[nColorChannel][b11]; v = rx1 * q[0] + ry1 * q[1]; 102.3098 + b = lerp(sx, u, v); 102.3099 + return lerp(sy, a, b); 102.3100 +} 102.3101 +double turbulence(int nColorChannel, double *point, double fBaseFreqX, double fBaseFreqY, 102.3102 + int nNumOctaves, bool bFractalSum, bool bDoStitching, 102.3103 + double fTileX, double fTileY, double fTileWidth, double fTileHeight) 102.3104 +{ 102.3105 + StitchInfo stitch; 102.3106 + StitchInfo *pStitchInfo = NULL; // Not stitching when NULL. 102.3107 + // Adjust the base frequencies if necessary for stitching. 102.3108 + if(bDoStitching) 102.3109 + { 102.3110 + // When stitching tiled turbulence, the frequencies must be adjusted 102.3111 + // so that the tile borders will be continuous. 102.3112 + if(fBaseFreqX != 0.0) 102.3113 + { 102.3114 + double fLoFreq = double(floor(fTileWidth * fBaseFreqX)) / fTileWidth; 102.3115 + double fHiFreq = double(ceil(fTileWidth * fBaseFreqX)) / fTileWidth; 102.3116 + if(fBaseFreqX / fLoFreq < fHiFreq / fBaseFreqX) 102.3117 + fBaseFreqX = fLoFreq; 102.3118 + else 102.3119 + fBaseFreqX = fHiFreq; 102.3120 + } 102.3121 + if(fBaseFreqY != 0.0) 102.3122 + { 102.3123 + double fLoFreq = double(floor(fTileHeight * fBaseFreqY)) / fTileHeight; 102.3124 + double fHiFreq = double(ceil(fTileHeight * fBaseFreqY)) / fTileHeight; 102.3125 + if(fBaseFreqY / fLoFreq < fHiFreq / fBaseFreqY) 102.3126 + fBaseFreqY = fLoFreq; 102.3127 + else 102.3128 + fBaseFreqY = fHiFreq; 102.3129 + } 102.3130 + // Set up initial stitch values. 102.3131 + pStitchInfo = &stitch; 102.3132 + stitch.nWidth = int(fTileWidth * fBaseFreqX + 0.5f); 102.3133 + stitch.nWrapX = fTileX * fBaseFreqX + PerlinN + stitch.nWidth; 102.3134 + stitch.nHeight = int(fTileHeight * fBaseFreqY + 0.5f); 102.3135 + stitch.nWrapY = fTileY * fBaseFreqY + PerlinN + stitch.nHeight; 102.3136 + } 102.3137 + double fSum = 0.0f; 102.3138 + double vec[2]; 102.3139 + vec[0] = point[0] * fBaseFreqX; 102.3140 + vec[1] = point[1] * fBaseFreqY; 102.3141 + double ratio = 1; 102.3142 + for(int nOctave = 0; nOctave < nNumOctaves; nOctave++) 102.3143 + { 102.3144 + if(bFractalSum) 102.3145 + fSum += double(noise2(nColorChannel, vec, pStitchInfo) / ratio); 102.3146 + else 102.3147 + fSum += double(fabs(noise2(nColorChannel, vec, pStitchInfo)) / ratio); 102.3148 + vec[0] *= 2; 102.3149 + vec[1] *= 2; 102.3150 + ratio *= 2; 102.3151 + if(pStitchInfo != NULL) 102.3152 + { 102.3153 + // Update stitch values. Subtracting PerlinN before the multiplication and 102.3154 + // adding it afterward simplifies to subtracting it once. 102.3155 + stitch.nWidth *= 2; 102.3156 + stitch.nWrapX = 2 * stitch.nWrapX - PerlinN; 102.3157 + stitch.nHeight *= 2; 102.3158 + stitch.nWrapY = 2 * stitch.nWrapY - PerlinN; 102.3159 + } 102.3160 + } 102.3161 + return fSum; 102.3162 +}</pre> 102.3163 + 102.3164 +<div class="adef-list"> 102.3165 +<p><em>Attribute definitions:</em></p> 102.3166 +<dl><dt id="feTurbulenceBaseFrequencyAttribute"><span class="adef">baseFrequency</span> = 102.3167 + "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></em>"</dt><dd> 102.3168 + <p>The base frequency (frequencies) parameter(s) for the noise function. 102.3169 + If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a>s are provided, the first number represents a base frequency in the X 102.3170 + direction and the second value represents a base frequency in the Y 102.3171 + direction. If one number is provided, then that value is used for both 102.3172 + X and Y.</p> 102.3173 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> is <span class="attr-value">0</span>.</p> 102.3174 + <p>Negative values are <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermUnsupportedValue"><span class="svg-term">unsupported</span></a>.</p> 102.3175 + <p><span class="anim-target">Animatable: yes.</span></p> 102.3176 +</dd><dt id="feTurbulenceNumOctavesAttribute"><span class="adef">numOctaves</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger"><integer></a></em>"</dt><dd> 102.3177 + <p>The numOctaves parameter for the noise function.</p> 102.3178 + <p><span class="requirement" id="assert_turbulenceNumOctavesLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceNumOctavesAttribute"><span class="attr-name">‘numOctaves’</span></a> is <span class="attr-value">1</span>.</span></p> 102.3179 + <p><span class="requirement" id="assert_turbulenceNumOctavesUnsupportedValue">Negative values are <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermUnsupportedValue"><span class="svg-term">unsupported</span></a>.</span></p> 102.3180 + <p><span class="requirement" id="assert_turbulenceNumOctavesAnimatable"><span class="anim-target">Animatable: yes.</span></span></p> 102.3181 + </dd><dt id="feTurbulenceSeedAttribute"> 102.3182 + <span class="adef">seed</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd> 102.3183 + <p>The starting number for the pseudo random number generator.</p> 102.3184 + <p><span class="requirement" id="assert_turbulenceSeedLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> is <span class="attr-value">0</span>.</span></p> 102.3185 + <p><span class="requirement" id="assert_turbulenceSeedTruncation">When the seed number is handed over to the algorithm above it must first be 102.3186 + truncated, i.e. rounded to the closest integer value towards zero.</span></p> 102.3187 + <p><span class="anim-target">Animatable: yes.</span></p> 102.3188 + </dd><dt id="feTurbulenceStitchTilesAttribute"><span class="adef">stitchTiles</span> = "<em>stitch | noStitch</em>"</dt><dd> 102.3189 + <p>If <span class="attr-value">stitchTiles="noStitch"</span>, no attempt 102.3190 + it made to achieve smooth transitions at the border of tiles which 102.3191 + contain a turbulence function. Sometimes the result will show clear 102.3192 + discontinuities at the tile borders.<br/> 102.3193 + If <span class="attr-value">stitchTiles="stitch"</span>, then the user 102.3194 + agent will automatically adjust baseFrequency-x and baseFrequency-y 102.3195 + values such that the <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> node's width and height (i.e., the 102.3196 + width and height of the current subregion) contains an integral number 102.3197 + of the Perlin tile width and height for the first octave. The 102.3198 + baseFrequency will be adjusted up or down depending on which way has 102.3199 + the smallest relative (not absolute) change as follows: Given the 102.3200 + frequency, calculate <code>lowFreq=floor(width*frequency)/width</code> 102.3201 + and <code>hiFreq=ceil(width*frequency)/width</code>. If 102.3202 + frequency/lowFreq < hiFreq/frequency then use lowFreq, else use 102.3203 + hiFreq. While generating turbulence values, generate lattice vectors as 102.3204 + normal for Perlin Noise, except for those lattice points that lie on 102.3205 + the right or bottom edges of the active area (the size of the resulting 102.3206 + tile). In those cases, copy the lattice vector from the opposite edge 102.3207 + of the active area.</p> 102.3208 + <p><span class="requirement" id="assert_turbulenceStitchTilesLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceStitchTilesAttribute"><span class="attr-name">‘stitchTiles’</span></a> attribute is <span class="attr-value">noStitch</span>.</span></p> 102.3209 + <p><span class="anim-target">Animatable: yes.</span></p> 102.3210 + </dd><dt id="feTurbulenceTypeAttribute"> 102.3211 + <span class="adef">type</span> = "<em>fractalNoise | turbulence</em>"</dt><dd> 102.3212 + <p>Indicates whether the filter primitive should perform a noise or 102.3213 + turbulence function.</p> 102.3214 + <p><span class="requirement" id="assert_turbulenceTypeLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceTypeAttribute"><span class="attr-name">‘type’</span></a> attribute is <span class="attr-value">turbulence</span>.</span></p> 102.3215 + <p><span class="anim-target">Animatable: yes.</span></p> 102.3216 + </dd></dl> 102.3217 +</div> 102.3218 + 102.3219 +<pre class="xml"><?xml version="1.0"?> 102.3220 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 102.3221 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 102.3222 +<svg width="450px" height="325px" viewBox="0 0 450 325" 102.3223 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 102.3224 + <title>Example feTurbulence - Examples of feTurbulence operations</title> 102.3225 + <desc>Six rectangular areas showing the effects of 102.3226 + various parameter settings for feTurbulence.</desc> 102.3227 + <g font-family="Verdana" text-anchor="middle" font-size="10" > 102.3228 + <defs> 102.3229 + <filter id="Turb1" filterUnits="objectBoundingBox" 102.3230 + x="0%" y="0%" width="100%" height="100%"> 102.3231 + <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/> 102.3232 + </filter> 102.3233 + <filter id="Turb2" filterUnits="objectBoundingBox" 102.3234 + x="0%" y="0%" width="100%" height="100%"> 102.3235 + <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/> 102.3236 + </filter> 102.3237 + <filter id="Turb3" filterUnits="objectBoundingBox" 102.3238 + x="0%" y="0%" width="100%" height="100%"> 102.3239 + <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/> 102.3240 + </filter> 102.3241 + <filter id="Turb4" filterUnits="objectBoundingBox" 102.3242 + x="0%" y="0%" width="100%" height="100%"> 102.3243 + <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/> 102.3244 + </filter> 102.3245 + <filter id="Turb5" filterUnits="objectBoundingBox" 102.3246 + x="0%" y="0%" width="100%" height="100%"> 102.3247 + <feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/> 102.3248 + </filter> 102.3249 + <filter id="Turb6" filterUnits="objectBoundingBox" 102.3250 + x="0%" y="0%" width="100%" height="100%"> 102.3251 + <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/> 102.3252 + </filter> 102.3253 + </defs> 102.3254 + 102.3255 + <rect x="1" y="1" width="448" height="323" 102.3256 + fill="none" stroke="blue" stroke-width="1" /> 102.3257 + 102.3258 + <rect x="25" y="25" width="100" height="75" filter="url(#Turb1)" /> 102.3259 + <text x="75" y="117">type=turbulence</text> 102.3260 + <text x="75" y="129">baseFrequency=0.05</text> 102.3261 + <text x="75" y="141">numOctaves=2</text> 102.3262 + 102.3263 + <rect x="175" y="25" width="100" height="75" filter="url(#Turb2)" /> 102.3264 + <text x="225" y="117">type=turbulence</text> 102.3265 + <text x="225" y="129">baseFrequency=0.1</text> 102.3266 + <text x="225" y="141">numOctaves=2</text> 102.3267 + 102.3268 + <rect x="325" y="25" width="100" height="75" filter="url(#Turb3)" /> 102.3269 + <text x="375" y="117">type=turbulence</text> 102.3270 + <text x="375" y="129">baseFrequency=0.05</text> 102.3271 + <text x="375" y="141">numOctaves=8</text> 102.3272 + 102.3273 + <rect x="25" y="180" width="100" height="75" filter="url(#Turb4)" /> 102.3274 + <text x="75" y="272">type=fractalNoise</text> 102.3275 + <text x="75" y="284">baseFrequency=0.1</text> 102.3276 + <text x="75" y="296">numOctaves=4</text> 102.3277 + 102.3278 + <rect x="175" y="180" width="100" height="75" filter="url(#Turb5)" /> 102.3279 + <text x="225" y="272">type=fractalNoise</text> 102.3280 + <text x="225" y="284">baseFrequency=0.4</text> 102.3281 + <text x="225" y="296">numOctaves=4</text> 102.3282 + 102.3283 + <rect x="325" y="180" width="100" height="75" filter="url(#Turb6)" /> 102.3284 + <text x="375" y="272">type=fractalNoise</text> 102.3285 + <text x="375" y="284">baseFrequency=0.1</text> 102.3286 + <text x="375" y="296">numOctaves=1</text> 102.3287 + </g> 102.3288 +</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feTurbulence.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feTurbulence.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 102.3289 + 102.3290 + 102.3291 +<h2 id="feDropShadowElement">26 Filter primitive <span class="element-name">‘feDropShadow’</span></h2> 102.3292 + 102.3293 +<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDropShadow’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 102.3294 + <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li><li><a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a></li><li><a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a></li></ul></dd></dl></div> 102.3295 + 102.3296 +<p>This filter creates a drop shadow of the input image. It is a shorthand 102.3297 +filter, and is defined in terms of combinations of other <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>. 102.3298 +The expectation is that it can be optimized more easily by 102.3299 +implementations.</p> 102.3300 + 102.3301 +<p>The result of a <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter 102.3302 +primitive is equivalent to the following: 102.3303 + 102.3304 +<pre class="examplesource"> 102.3305 + <feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/> 102.3306 + <feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/> 102.3307 + <feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/> 102.3308 + <feComposite in2="offsetblur" operator="in"/> 102.3309 + <feMerge> 102.3310 + <feMergeNode/> 102.3311 + <feMergeNode in="<b>in-of-feDropShadow</b>"/> 102.3312 + </feMerge> 102.3313 +</pre> 102.3314 +</p> 102.3315 + 102.3316 +<p> 102.3317 +The above divided into steps: 102.3318 +<ol><li>Take the alpha channel of the input to the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive and the <a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> and do processing as if the 102.3319 + following <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> was applied: 102.3320 + <pre class="examplesource"> <feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/></pre> 102.3321 + <br/> 102.3322 + </li><li>Offset the result of step 1 by <a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a> and <a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a> as 102.3323 + specified on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> 102.3324 + element, equivalent to applying an <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> with these parameters: 102.3325 + <pre class="examplesource"> <feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/></pre> 102.3326 + <br/> 102.3327 + </li><li>Do processing as if an <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> element with <a href="#FloodColorProperty"><span class="prop-name">‘flood-color’</span></a> and 102.3328 + <a href="#FloodOpacityProperty"><span class="prop-name">‘flood-opacity’</span></a> as specified on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> was applied: 102.3329 + <pre class="examplesource"> <feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/></pre> 102.3330 + <br/> 102.3331 + </li><li>Composite the result of the <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> in step 3 with the result of 102.3332 + the <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> in step 2 as if an <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> filter primitive with <a href="#feCompositeOperatorAttribute"><span class="attr-name">operator</span></a>='in' was applied: 102.3333 + <pre class="examplesource"> <feComposite in2="offsetblur" operator="in"/></pre> 102.3334 + <br/> 102.3335 + </li><li>Finally merge the result of the previous step, doing processing as if 102.3336 + the following <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> was performed: 102.3337 + <pre class="examplesource"> <feMerge> 102.3338 + <feMergeNode/> 102.3339 + <feMergeNode in="<b>in-of-feDropShadow</b>"/> 102.3340 + </feMerge></pre> 102.3341 + </li></ol> 102.3342 +</p> 102.3343 + 102.3344 +<p class="note implementation">Note that while the definition of the <span class="element-name">‘feDropShadow’</span> filter primitive says that it can 102.3345 +be expanded into an equivalent tree it is not required that it is implemented 102.3346 +like that. The expectation is that user agents can optimize the handling by not having to do all the steps separately. 102.3347 +</p> 102.3348 + 102.3349 +<p>Beyond the DOM interface <a href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> there is no way 102.3350 +of accessing the internals of the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive, meaning <span class="requirement" id="assert_dropShadowShadowTrees">if the 102.3351 +filter primitive is implemented as an equivalent tree then that tree must not 102.3352 +be exposed to the DOM.</span> </p> 102.3353 + 102.3354 +<div class="adef-list"> 102.3355 +<p><em>Attribute definitions:</em></p> 102.3356 +<dl><dt id="feDropShadowDxAttribute"> 102.3357 + <span class="adef">dx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd> 102.3358 + <p>The x offset of the drop shadow.</p> 102.3359 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a> is <span class="attr-value">2</span>.</p> 102.3360 + <p>This attribute is then forwarded to the <a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a> attribute of the internal <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element.</p> 102.3361 + <p><span class="anim-target">Animatable: yes.</span></p> 102.3362 + </dd><dt id="feDropShadowDyAttribute"> 102.3363 + <span class="adef">dy</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd> 102.3364 + <p>The y offset of the drop shadow.</p> 102.3365 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a> is <span class="attr-value">2</span>. </p> 102.3366 + <p>This attribute is then forwarded to the <a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a> attribute of the internal <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element.</p> 102.3367 + <p><span class="anim-target">Animatable: yes.</span></p> 102.3368 + </dd><dt id="feDropShadowStdDeviationAttribute"><span class="adef">stdDeviation</span> = 102.3369 + "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></em>"</dt><dd> 102.3370 + <p>The standard deviation for the blur operation in the drop shadow.</p> 102.3371 + <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> is <span class="attr-value">2</span>.</p> 102.3372 + <p>This attribute is then forwarded to the <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> attribute of the internal 102.3373 + <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.</p> 102.3374 + <p><span class="anim-target">Animatable: yes.</span></p> 102.3375 + </dd></dl> 102.3376 +</div> 102.3377 + 102.3378 +<div class="note"> 102.3379 +<h2 id="feDiffuseSpecularElement">27 Filter primitive <span class="element-name">‘feDiffuseSpecular’</span></h2> 102.3380 +The SVG WG is looking at providing a shorthand for diffuse+specular. 102.3381 +</div> 102.3382 + 102.3383 +<div class="note"> 102.3384 +<h2 id="feCustomElement">28 Filter primitive <span class="element-name">‘feCustom’</span></h2> 102.3385 +The SVG WG is looking to add a filter primitive that allows programmatic access 102.3386 +to the pixel data for a filter, e.g via OpenCL. 102.3387 +</div> 102.3388 + 102.3389 +<h2 id="RelaxNG">29 RelaxNG Schema for Filter Effects 1.0</h2> 102.3390 + 102.3391 +<p>The schema for Filter Effects 1.0 is written in <a href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">RelaxNG</a> 102.3392 +[<a href="#ref-RNG">RelaxNG</a>], a namespace-aware schema language that uses 102.3393 +the datatypes from <a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema Part 102.3394 +2</a> [<a href="#ref-Schema2">Schema2</a>]. This allows namespaces and 102.3395 +modularity to be much more naturally expressed than using DTD syntax. The 102.3396 +RelaxNG schema for Filter Effects 1.0 may be imported by other RelaxNG schemas, 102.3397 +or combined with other schemas in other languages into a multi-namespace, 102.3398 +multi-grammar schema using <a href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">Namespace-based Validation 102.3399 +Dispatching Language</a> [<a href="#ref-NVDL">NVDL</a>].</p> 102.3400 + 102.3401 +<p>Unlike a DTD, the schema used for validation is not hardcoded into the 102.3402 +document instance. There is no equivalent to the DOCTYPE declaration. Simply 102.3403 +point your editor or other validation tool to the IRI of the schema (or your 102.3404 +local cached copy, as you prefer).</p> 102.3405 + 102.3406 +<p> 102.3407 +The RNG is under construction, and only the individual RNG snippets are available at this time. They have not yet been integrated into a functional schema. The individual RNG files are available <a href="rng">here</a>. 102.3408 +</p> 102.3409 + 102.3410 +<h2 id="DOMInterfaces">30 DOM interfaces</h2> 102.3411 +<div class="note"> 102.3412 +The interfaces below will be made available in a IDL file for an upcoming draft. 102.3413 +</div> 102.3414 + 102.3415 + 102.3416 + 102.3417 +<h2 id="DOMInterfaces">30 DOM interfaces</h2> 102.3418 + 102.3419 +<h3 id="InterfaceImageData">31.1 Interface ImageData</h3> 102.3420 + 102.3421 + 102.3422 + The ImageData interface corresponds to pixel data that can be used as input to the SVGFilterElement interface. 102.3423 +<pre class="idl">interface <b>ImageData</b> { 102.3424 + readonly attribute long <a href="#__svg__ImageData__width">width</a>; 102.3425 + readonly attribute long <a href="#__svg__ImageData__height">height</a>; 102.3426 + readonly attribute <a href="#__svg__ImageData__data">data</a>; 102.3427 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.3428 +<dt id="__svg__ImageData__width"><b>width</b><span class="idl-type-parenthetical"> (readonly long)</span></dt><dd><div> 102.3429 + The width of the bitmap that the ImageData represents. 102.3430 +</div></dd> 102.3431 +<dt id="__svg__ImageData__height"><b>height</b><span class="idl-type-parenthetical"> (readonly long)</span></dt><dd><div> 102.3432 + The height of the bitmap that the ImageData represents. 102.3433 +</div></dd> 102.3434 +<dt id="__svg__ImageData__data"><b>data</b><span class="idl-type-parenthetical"> (readonly )</span></dt><dd><div> 102.3435 + An array of pixel values that is the bitmap. This array must 102.3436 + always be in the form of width×height×4 integer values. The 102.3437 + pixel data is in left-to-right order, starting from the top-left 102.3438 + corner, and going row by row downwards. Every pixel is 102.3439 + represented by four integer values, red, green, blue and alpha, 102.3440 + in that order. The range of each color component is 0..255. The 102.3441 + intent is that this is compatible with the HTML5 [<a href="#ref-html5">HTML5</a>] 102.3442 + canvas interfaces, in particular see 102.3443 + <a href="http://www.w3.org/TR/html5/the-canvas.html#imagedata">ImageData</a>. 102.3444 +</div></dd></dl></dd></dl> 102.3445 + 102.3446 +<h3 id="InterfaceSVGFilterElement">31.2 Interface SVGFilterElement</h3> 102.3447 + 102.3448 + 102.3449 + 102.3450 + The <a class="idlinterface" href="#InterfaceSVGFilterElement">SVGFilterElement</a> interface corresponds to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.3451 + element. 102.3452 +<pre class="idl">interface <b>SVGFilterElement</b> : ::svg::SVGElement, 102.3453 + ::svg::SVGURIReference, 102.3454 + ::svg::SVGLangSpace, 102.3455 + ::svg::SVGExternalResourcesRequired, 102.3456 + ::svg::SVGStylable, 102.3457 + ::svg::SVGUnitTypes { 102.3458 + 102.3459 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFilterElement__filterUnits">filterUnits</a>; 102.3460 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFilterElement__primitiveUnits">primitiveUnits</a>; 102.3461 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__x">x</a>; 102.3462 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__y">y</a>; 102.3463 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__width">width</a>; 102.3464 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__height">height</a>; 102.3465 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFilterElement__filterResX">filterResX</a>; 102.3466 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFilterElement__filterResY">filterResY</a>; 102.3467 + 102.3468 + void <a href="#__svg__SVGFilterElement__setFilterRes">setFilterRes</a>(in unsigned long filterResX, in unsigned long filterResY) raises(<a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>); 102.3469 + <a class="idlinterface" href="#InterfaceImageData">ImageData</a> <a href="#__svg__SVGFilterElement__apply">apply</a>(in <a class="idlinterface" href="#InterfaceImageData">ImageData</a> source); 102.3470 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.3471 +<dt id="__svg__SVGFilterElement__filterUnits"><b>filterUnits</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.3472 + Corresponds to attribute <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.3473 + element. Takes one of the constants defined in <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGUnitTypes">SVGUnitTypes</a>. 102.3474 +</div></dd> 102.3475 +<dt id="__svg__SVGFilterElement__primitiveUnits"><b>primitiveUnits</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.3476 + Corresponds to attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.3477 + element. Takes one of the constants defined in <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGUnitTypes">SVGUnitTypes</a>. 102.3478 +</div></dd> 102.3479 +<dt id="__svg__SVGFilterElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 102.3480 + Corresponds to attribute <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 102.3481 +</div></dd> 102.3482 +<dt id="__svg__SVGFilterElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 102.3483 + Corresponds to attribute <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 102.3484 +</div></dd> 102.3485 +<dt id="__svg__SVGFilterElement__width"><b>width</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 102.3486 + Corresponds to attribute <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 102.3487 +</div></dd> 102.3488 +<dt id="__svg__SVGFilterElement__height"><b>height</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 102.3489 + Corresponds to attribute <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 102.3490 +</div></dd> 102.3491 +<dt id="__svg__SVGFilterElement__filterResX"><b>filterResX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 102.3492 + Corresponds to attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.3493 + element. Contains the X component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>. 102.3494 +</div></dd> 102.3495 +<dt id="__svg__SVGFilterElement__filterResY"><b>filterResY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 102.3496 + Corresponds to attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 102.3497 + element. Contains the Y component (possibly computed automatically) of 102.3498 + attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>. 102.3499 +</div></dd></dl></dd><dt>Operations:</dt><dd><dl class="attributes"> 102.3500 +<dt id="__svg__SVGFilterElement__setFilterRes">void <b>setFilterRes</b>(in unsigned long <var>filterResX</var>, in unsigned long <var>filterResY</var>)</dt><dd><div> 102.3501 + Sets the values for attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>. 102.3502 + 102.3503 +</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter">unsigned long <var>filterResX</var></div> <div> The X component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>. 102.3504 +</div></li><li><div class="parameter">unsigned long <var>filterResY</var></div> <div> The Y component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>. 102.3505 +</div></li></ol></dd><dt>Exceptions</dt><dd><dl class="exceptions"><dt><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt><dd> Raised on an attempt 102.3506 + to change the value of a readonly attribute. 102.3507 +</dd></dl></dd></dl></dd> 102.3508 +<dt id="__svg__SVGFilterElement__apply"><a class="idlinterface" href="#InterfaceImageData">ImageData</a> <b>apply</b>(in <a class="idlinterface" href="#InterfaceImageData">ImageData</a> <var>source</var>)</dt><dd><div> 102.3509 + Applies the filter to the given ImageData object and returns the result. 102.3510 + 102.3511 +</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter"><a class="idlinterface" href="#InterfaceImageData">ImageData</a> <var>source</var></div> <div> The image to apply the filter to. 102.3512 +</div></li></ol></dd><dt>Returns</dt><dd><div> The result of the filter, see <a class="idlinterface" href="#InterfaceImageData">ImageData</a> for how to construct this. 102.3513 +</div></dd></dl></dd></dl></dd></dl> 102.3514 + 102.3515 + 102.3516 +<h3 id="InterfaceSVGFilterPrimitiveStandardAttributes">31.3 Interface SVGFilterPrimitiveStandardAttributes</h3> 102.3517 + 102.3518 + 102.3519 + 102.3520 + This interface defines the set of DOM attributes that are common across 102.3521 + the filter primitive interfaces. 102.3522 +<pre class="idl">interface <b>SVGFilterPrimitiveStandardAttributes</b> : ::svg::SVGStylable { 102.3523 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__x">x</a>; 102.3524 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__y">y</a>; 102.3525 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__width">width</a>; 102.3526 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__height">height</a>; 102.3527 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__result">result</a>; 102.3528 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.3529 +<dt id="__svg__SVGFilterPrimitiveStandardAttributes__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 102.3530 + Corresponds to attribute <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a> on the given element. 102.3531 +</div></dd> 102.3532 +<dt id="__svg__SVGFilterPrimitiveStandardAttributes__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 102.3533 + Corresponds to attribute <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a> on the given element. 102.3534 +</div></dd> 102.3535 +<dt id="__svg__SVGFilterPrimitiveStandardAttributes__width"><b>width</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 102.3536 + Corresponds to attribute <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> on the given element. 102.3537 +</div></dd> 102.3538 +<dt id="__svg__SVGFilterPrimitiveStandardAttributes__height"><b>height</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 102.3539 + Corresponds to attribute <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> on the given element. 102.3540 +</div></dd> 102.3541 +<dt id="__svg__SVGFilterPrimitiveStandardAttributes__result"><b>result</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.3542 + Corresponds to attribute <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a> on the given element. 102.3543 +</div></dd></dl></dd></dl> 102.3544 + 102.3545 + 102.3546 +<h3 id="InterfaceSVGFEBlendElement">31.4 Interface SVGFEBlendElement</h3> 102.3547 + 102.3548 + 102.3549 + 102.3550 + The <a class="idlinterface" href="#InterfaceSVGFEBlendElement">SVGFEBlendElement</a> interface corresponds to the <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> 102.3551 + element. 102.3552 +<pre class="idl">interface <b>SVGFEBlendElement</b> : ::svg::SVGElement, 102.3553 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.3554 + 102.3555 + // Blend Mode Types 102.3556 + const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_UNKNOWN">SVG_FEBLEND_MODE_UNKNOWN</a> = 0; 102.3557 + const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_NORMAL">SVG_FEBLEND_MODE_NORMAL</a> = 1; 102.3558 + const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_MULTIPLY">SVG_FEBLEND_MODE_MULTIPLY</a> = 2; 102.3559 + const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_SCREEN">SVG_FEBLEND_MODE_SCREEN</a> = 3; 102.3560 + const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_DARKEN">SVG_FEBLEND_MODE_DARKEN</a> = 4; 102.3561 + const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_LIGHTEN">SVG_FEBLEND_MODE_LIGHTEN</a> = 5; 102.3562 + 102.3563 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEBlendElement__in1">in1</a>; 102.3564 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEBlendElement__in2">in2</a>; 102.3565 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEBlendElement__mode">mode</a>; 102.3566 +};</pre><dl class="interface"><dt>Constants in group “Blend Mode Typesâ€:</dt><dd><dl class="constants"> 102.3567 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_UNKNOWN"><b>SVG_FEBLEND_MODE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3568 + The type is not one of predefined types. It is invalid to attempt to 102.3569 + define a new value of this type or to attempt to switch an existing 102.3570 + value to this type. 102.3571 + 102.3572 +</div></dd> 102.3573 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_NORMAL"><b>SVG_FEBLEND_MODE_NORMAL</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3574 + Corresponds to value <span class="attr-value">'normal'</span>. 102.3575 + 102.3576 +</div></dd> 102.3577 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_MULTIPLY"><b>SVG_FEBLEND_MODE_MULTIPLY</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3578 + Corresponds to value <span class="attr-value">'multiply'</span>. 102.3579 + 102.3580 +</div></dd> 102.3581 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_SCREEN"><b>SVG_FEBLEND_MODE_SCREEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3582 + Corresponds to value <span class="attr-value">'screen'</span>. 102.3583 + 102.3584 +</div></dd> 102.3585 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_DARKEN"><b>SVG_FEBLEND_MODE_DARKEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3586 + Corresponds to value <span class="attr-value">'darken'</span>. 102.3587 + 102.3588 +</div></dd> 102.3589 +<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_LIGHTEN"><b>SVG_FEBLEND_MODE_LIGHTEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3590 + Corresponds to value <span class="attr-value">'lighten'</span>. 102.3591 + 102.3592 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 102.3593 +<dt id="__svg__SVGFEBlendElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.3594 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> 102.3595 + element. 102.3596 +</div></dd> 102.3597 +<dt id="__svg__SVGFEBlendElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.3598 + Corresponds to attribute <a href="#feBlendIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> 102.3599 + element. 102.3600 +</div></dd> 102.3601 +<dt id="__svg__SVGFEBlendElement__mode"><b>mode</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.3602 + Corresponds to attribute <a href="#feBlendModeAttribute"><span class="attr-name">‘mode’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> 102.3603 + element. Takes one of the SVG_FEBLEND_MODE_* constants defined on 102.3604 + this interface. 102.3605 +</div></dd></dl></dd></dl> 102.3606 + 102.3607 + 102.3608 +<h3 id="InterfaceSVGFEColorMatrixElement">31.5 Interface SVGFEColorMatrixElement</h3> 102.3609 + 102.3610 + 102.3611 + 102.3612 + The <a class="idlinterface" href="#InterfaceSVGFEColorMatrixElement">SVGFEColorMatrixElement</a> interface corresponds to the 102.3613 + <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> element. 102.3614 +<pre class="idl">interface <b>SVGFEColorMatrixElement</b> : ::svg::SVGElement, 102.3615 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.3616 + 102.3617 + // Color Matrix Types 102.3618 + const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_UNKNOWN">SVG_FECOLORMATRIX_TYPE_UNKNOWN</a> = 0; 102.3619 + const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_MATRIX">SVG_FECOLORMATRIX_TYPE_MATRIX</a> = 1; 102.3620 + const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_SATURATE">SVG_FECOLORMATRIX_TYPE_SATURATE</a> = 2; 102.3621 + const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_HUEROTATE">SVG_FECOLORMATRIX_TYPE_HUEROTATE</a> = 3; 102.3622 + const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA">SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA</a> = 4; 102.3623 + 102.3624 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEColorMatrixElement__in1">in1</a>; 102.3625 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEColorMatrixElement__type">type</a>; 102.3626 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGFEColorMatrixElement__values">values</a>; 102.3627 +};</pre><dl class="interface"><dt>Constants in group “Color Matrix Typesâ€:</dt><dd><dl class="constants"> 102.3628 +<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_UNKNOWN"><b>SVG_FECOLORMATRIX_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3629 + The type is not one of predefined types. It is invalid to attempt to 102.3630 + define a new value of this type or to attempt to switch an existing 102.3631 + value to this type. 102.3632 + 102.3633 +</div></dd> 102.3634 +<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_MATRIX"><b>SVG_FECOLORMATRIX_TYPE_MATRIX</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3635 + Corresponds to value <span class="attr-value">'matrix'</span>. 102.3636 + 102.3637 +</div></dd> 102.3638 +<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_SATURATE"><b>SVG_FECOLORMATRIX_TYPE_SATURATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3639 + Corresponds to value <span class="attr-value">'saturate'</span>. 102.3640 + 102.3641 +</div></dd> 102.3642 +<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_HUEROTATE"><b>SVG_FECOLORMATRIX_TYPE_HUEROTATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3643 + Corresponds to value <span class="attr-value">'hueRotate'</span>. 102.3644 + 102.3645 +</div></dd> 102.3646 +<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA"><b>SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3647 + Corresponds to value <span class="attr-value">'luminanceToAlpha'</span>. 102.3648 + 102.3649 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 102.3650 +<dt id="__svg__SVGFEColorMatrixElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.3651 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> 102.3652 + element. 102.3653 +</div></dd> 102.3654 +<dt id="__svg__SVGFEColorMatrixElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.3655 + Corresponds to attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> 102.3656 + element. Takes one of the SVG_FECOLORMATRIX_TYPE_* constants defined 102.3657 + on this interface. 102.3658 +</div></dd> 102.3659 +<dt id="__svg__SVGFEColorMatrixElement__values"><b>values</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div> 102.3660 + Corresponds to attribute <a href="#feColorMatrixValuesAttribute"><span class="attr-name">‘values’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> 102.3661 + element. 102.3662 +</div></dd></dl></dd></dl> 102.3663 + 102.3664 + 102.3665 +<h3 id="InterfaceSVGFEComponentTransferElement">31.6 Interface SVGFEComponentTransferElement</h3> 102.3666 + 102.3667 + 102.3668 + 102.3669 + The <a class="idlinterface" href="#InterfaceSVGFEComponentTransferElement">SVGFEComponentTransferElement</a> interface corresponds to the 102.3670 + <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element. 102.3671 +<pre class="idl">interface <b>SVGFEComponentTransferElement</b> : ::svg::SVGElement, 102.3672 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.3673 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEComponentTransferElement__in1">in1</a>; 102.3674 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.3675 +<dt id="__svg__SVGFEComponentTransferElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.3676 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> 102.3677 + element. 102.3678 +</div></dd></dl></dd></dl> 102.3679 + 102.3680 + 102.3681 +<h3 id="InterfaceSVGComponentTransferFunctionElement">31.7 Interface SVGComponentTransferFunctionElement</h3> 102.3682 + 102.3683 + 102.3684 + 102.3685 + This interface defines a base interface used by the component transfer 102.3686 + function interfaces. 102.3687 +<pre class="idl">interface <b>SVGComponentTransferFunctionElement</b> : ::svg::SVGElement { 102.3688 + 102.3689 + // Component Transfer Types 102.3690 + const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN">SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN</a> = 0; 102.3691 + const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY">SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY</a> = 1; 102.3692 + const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_TABLE">SVG_FECOMPONENTTRANSFER_TYPE_TABLE</a> = 2; 102.3693 + const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE">SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE</a> = 3; 102.3694 + const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_LINEAR">SVG_FECOMPONENTTRANSFER_TYPE_LINEAR</a> = 4; 102.3695 + const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_GAMMA">SVG_FECOMPONENTTRANSFER_TYPE_GAMMA</a> = 5; 102.3696 + 102.3697 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGComponentTransferFunctionElement__type">type</a>; 102.3698 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGComponentTransferFunctionElement__tableValues">tableValues</a>; 102.3699 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__slope">slope</a>; 102.3700 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__intercept">intercept</a>; 102.3701 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__amplitude">amplitude</a>; 102.3702 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__exponent">exponent</a>; 102.3703 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__offset">offset</a>; 102.3704 +};</pre><dl class="interface"><dt>Constants in group “Component Transfer Typesâ€:</dt><dd><dl class="constants"> 102.3705 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN"><b>SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3706 + The type is not one of predefined types. It is invalid to attempt to 102.3707 + define a new value of this type or to attempt to switch an existing 102.3708 + value to this type. 102.3709 + 102.3710 +</div></dd> 102.3711 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY"><b>SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3712 + Corresponds to value <span class="attr-value">'identity'</span>. 102.3713 + 102.3714 +</div></dd> 102.3715 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_TABLE"><b>SVG_FECOMPONENTTRANSFER_TYPE_TABLE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3716 + Corresponds to value <span class="attr-value">'table'</span>. 102.3717 + 102.3718 +</div></dd> 102.3719 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE"><b>SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3720 + Corresponds to value <span class="attr-value">'discrete'</span>. 102.3721 + 102.3722 +</div></dd> 102.3723 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_LINEAR"><b>SVG_FECOMPONENTTRANSFER_TYPE_LINEAR</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3724 + Corresponds to value <span class="attr-value">'linear'</span>. 102.3725 + 102.3726 +</div></dd> 102.3727 +<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_GAMMA"><b>SVG_FECOMPONENTTRANSFER_TYPE_GAMMA</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3728 + Corresponds to value <span class="attr-value">'gamma'</span>. 102.3729 + 102.3730 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 102.3731 +<dt id="__svg__SVGComponentTransferFunctionElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.3732 + Corresponds to attribute <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a> on the given 102.3733 + element. Takes one of the SVG_FECOMPONENTTRANSFER_TYPE_* constants defined 102.3734 + on this interface. 102.3735 +</div></dd> 102.3736 +<dt id="__svg__SVGComponentTransferFunctionElement__tableValues"><b>tableValues</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div> 102.3737 + Corresponds to attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a> on the given element. 102.3738 +</div></dd> 102.3739 +<dt id="__svg__SVGComponentTransferFunctionElement__slope"><b>slope</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3740 + Corresponds to attribute <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a> on the given element. 102.3741 +</div></dd> 102.3742 +<dt id="__svg__SVGComponentTransferFunctionElement__intercept"><b>intercept</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3743 + Corresponds to attribute <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a> on the given element. 102.3744 +</div></dd> 102.3745 +<dt id="__svg__SVGComponentTransferFunctionElement__amplitude"><b>amplitude</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3746 + Corresponds to attribute <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a> on the given element. 102.3747 +</div></dd> 102.3748 +<dt id="__svg__SVGComponentTransferFunctionElement__exponent"><b>exponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3749 + Corresponds to attribute <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a> on the given element. 102.3750 +</div></dd> 102.3751 +<dt id="__svg__SVGComponentTransferFunctionElement__offset"><b>offset</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3752 + Corresponds to attribute <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a> on the given element. 102.3753 +</div></dd></dl></dd></dl> 102.3754 + 102.3755 + 102.3756 +<h3 id="InterfaceSVGFEFuncRElement">31.8 Interface SVGFEFuncRElement</h3> 102.3757 + 102.3758 + 102.3759 + 102.3760 + The <a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncR’</span></a> 102.3761 + element. 102.3762 +<pre class="idl">interface <b>SVGFEFuncRElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> { 102.3763 +};</pre> 102.3764 + 102.3765 + 102.3766 +<h3 id="InterfaceSVGFEFuncGElement">31.9 Interface SVGFEFuncGElement</h3> 102.3767 + 102.3768 + 102.3769 + 102.3770 + The <a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncG’</span></a> 102.3771 + element. 102.3772 +<pre class="idl">interface <b>SVGFEFuncGElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> { 102.3773 +};</pre> 102.3774 + 102.3775 + 102.3776 +<h3 id="InterfaceSVGFEFuncBElement">31.10 Interface SVGFEFuncBElement</h3> 102.3777 + 102.3778 + 102.3779 + 102.3780 + The <a class="idlinterface" href="#InterfaceSVGFEFuncBElement">SVGFEFuncBElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncB’</span></a> 102.3781 + element. 102.3782 +<pre class="idl">interface <b>SVGFEFuncBElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> { 102.3783 +};</pre> 102.3784 + 102.3785 + 102.3786 +<h3 id="InterfaceSVGFEFuncAElement">31.11 Interface SVGFEFuncAElement</h3> 102.3787 + 102.3788 + 102.3789 + 102.3790 + The <a class="idlinterface" href="#InterfaceSVGFEFuncAElement">SVGFEFuncAElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncA’</span></a> 102.3791 + element. 102.3792 +<pre class="idl">interface <b>SVGFEFuncAElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> { 102.3793 +};</pre> 102.3794 + 102.3795 + 102.3796 +<h3 id="InterfaceSVGFECompositeElement">31.12 Interface SVGFECompositeElement</h3> 102.3797 + 102.3798 + 102.3799 + 102.3800 + The <a class="idlinterface" href="#InterfaceSVGFECompositeElement">SVGFECompositeElement</a> interface corresponds to the 102.3801 + <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> element. 102.3802 +<pre class="idl">interface <b>SVGFECompositeElement</b> : ::svg::SVGElement, 102.3803 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.3804 + 102.3805 + // Composite Operators 102.3806 + const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_UNKNOWN">SVG_FECOMPOSITE_OPERATOR_UNKNOWN</a> = 0; 102.3807 + const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OVER">SVG_FECOMPOSITE_OPERATOR_OVER</a> = 1; 102.3808 + const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_IN">SVG_FECOMPOSITE_OPERATOR_IN</a> = 2; 102.3809 + const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OUT">SVG_FECOMPOSITE_OPERATOR_OUT</a> = 3; 102.3810 + const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ATOP">SVG_FECOMPOSITE_OPERATOR_ATOP</a> = 4; 102.3811 + const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_XOR">SVG_FECOMPOSITE_OPERATOR_XOR</a> = 5; 102.3812 + const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ARITHMETIC">SVG_FECOMPOSITE_OPERATOR_ARITHMETIC</a> = 6; 102.3813 + 102.3814 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFECompositeElement__in1">in1</a>; 102.3815 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFECompositeElement__in2">in2</a>; 102.3816 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFECompositeElement__operator">operator</a>; 102.3817 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k1">k1</a>; 102.3818 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k2">k2</a>; 102.3819 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k3">k3</a>; 102.3820 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k4">k4</a>; 102.3821 +};</pre><dl class="interface"><dt>Constants in group “Composite Operatorsâ€:</dt><dd><dl class="constants"> 102.3822 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_UNKNOWN"><b>SVG_FECOMPOSITE_OPERATOR_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3823 + The type is not one of predefined types. It is invalid to attempt to 102.3824 + define a new value of this type or to attempt to switch an existing 102.3825 + value to this type. 102.3826 + 102.3827 +</div></dd> 102.3828 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OVER"><b>SVG_FECOMPOSITE_OPERATOR_OVER</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3829 + Corresponds to value <span class="attr-value">'over'</span>. 102.3830 + 102.3831 +</div></dd> 102.3832 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_IN"><b>SVG_FECOMPOSITE_OPERATOR_IN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3833 + Corresponds to value <span class="attr-value">'in'</span>. 102.3834 + 102.3835 +</div></dd> 102.3836 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OUT"><b>SVG_FECOMPOSITE_OPERATOR_OUT</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3837 + Corresponds to value <span class="attr-value">'out'</span>. 102.3838 + 102.3839 +</div></dd> 102.3840 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ATOP"><b>SVG_FECOMPOSITE_OPERATOR_ATOP</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3841 + Corresponds to value <span class="attr-value">'atop'</span>. 102.3842 + 102.3843 +</div></dd> 102.3844 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_XOR"><b>SVG_FECOMPOSITE_OPERATOR_XOR</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3845 + Corresponds to value <span class="attr-value">'xor'</span>. 102.3846 + 102.3847 +</div></dd> 102.3848 +<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ARITHMETIC"><b>SVG_FECOMPOSITE_OPERATOR_ARITHMETIC</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3849 + Corresponds to value <span class="attr-value">'arithmetic'</span>. 102.3850 + 102.3851 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 102.3852 +<dt id="__svg__SVGFECompositeElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.3853 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 102.3854 + element. 102.3855 +</div></dd> 102.3856 +<dt id="__svg__SVGFECompositeElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.3857 + Corresponds to attribute <a href="#feCompositeIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 102.3858 + element. 102.3859 +</div></dd> 102.3860 +<dt id="__svg__SVGFECompositeElement__operator"><b>operator</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.3861 + Corresponds to attribute <a href="#feCompositeOperatorAttribute"><span class="attr-name">‘operator’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 102.3862 + element. Takes one of the SVG_FECOMPOSITE_OPERATOR_* constants defined 102.3863 + on this interface. 102.3864 +</div></dd> 102.3865 +<dt id="__svg__SVGFECompositeElement__k1"><b>k1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3866 + Corresponds to attribute <a href="#feCompositeK1Attribute"><span class="attr-name">‘k1’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 102.3867 + element. 102.3868 +</div></dd> 102.3869 +<dt id="__svg__SVGFECompositeElement__k2"><b>k2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3870 + Corresponds to attribute <a href="#feCompositeK2Attribute"><span class="attr-name">‘k2’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 102.3871 + element. 102.3872 +</div></dd> 102.3873 +<dt id="__svg__SVGFECompositeElement__k3"><b>k3</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3874 + Corresponds to attribute <a href="#feCompositeK3Attribute"><span class="attr-name">‘k3’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 102.3875 + element. 102.3876 +</div></dd> 102.3877 +<dt id="__svg__SVGFECompositeElement__k4"><b>k4</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3878 + Corresponds to attribute <a href="#feCompositeK4Attribute"><span class="attr-name">‘k4’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 102.3879 + element. 102.3880 +</div></dd></dl></dd></dl> 102.3881 + 102.3882 + 102.3883 +<h3 id="InterfaceSVGFEConvolveMatrixElement">31.13 Interface SVGFEConvolveMatrixElement</h3> 102.3884 + 102.3885 + 102.3886 + 102.3887 + The <a class="idlinterface" href="#InterfaceSVGFEConvolveMatrixElement">SVGFEConvolveMatrixElement</a> interface corresponds to the 102.3888 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3889 +<pre class="idl">interface <b>SVGFEConvolveMatrixElement</b> : ::svg::SVGElement, 102.3890 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.3891 + 102.3892 + // Edge Mode Values 102.3893 + const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_UNKNOWN">SVG_EDGEMODE_UNKNOWN</a> = 0; 102.3894 + const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_DUPLICATE">SVG_EDGEMODE_DUPLICATE</a> = 1; 102.3895 + const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_WRAP">SVG_EDGEMODE_WRAP</a> = 2; 102.3896 + const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_NONE">SVG_EDGEMODE_NONE</a> = 3; 102.3897 + 102.3898 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEConvolveMatrixElement__in1">in1</a>; 102.3899 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__orderX">orderX</a>; 102.3900 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__orderY">orderY</a>; 102.3901 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelMatrix">kernelMatrix</a>; 102.3902 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__divisor">divisor</a>; 102.3903 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__bias">bias</a>; 102.3904 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__targetX">targetX</a>; 102.3905 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__targetY">targetY</a>; 102.3906 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEConvolveMatrixElement__edgeMode">edgeMode</a>; 102.3907 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelUnitLengthX">kernelUnitLengthX</a>; 102.3908 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelUnitLengthY">kernelUnitLengthY</a>; 102.3909 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedBoolean">SVGAnimatedBoolean</a> <a href="#__svg__SVGFEConvolveMatrixElement__preserveAlpha">preserveAlpha</a>; 102.3910 +};</pre><dl class="interface"><dt>Constants in group “Edge Mode Valuesâ€:</dt><dd><dl class="constants"> 102.3911 +<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_UNKNOWN"><b>SVG_EDGEMODE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3912 + The type is not one of predefined types. It is invalid to attempt to 102.3913 + define a new value of this type or to attempt to switch an existing 102.3914 + value to this type. 102.3915 + 102.3916 +</div></dd> 102.3917 +<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_DUPLICATE"><b>SVG_EDGEMODE_DUPLICATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3918 + Corresponds to value <span class="attr-value">'duplicate'</span>. 102.3919 + 102.3920 +</div></dd> 102.3921 +<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_WRAP"><b>SVG_EDGEMODE_WRAP</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3922 + Corresponds to value <span class="attr-value">'wrap'</span>. 102.3923 + 102.3924 +</div></dd> 102.3925 +<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_NONE"><b>SVG_EDGEMODE_NONE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.3926 + Corresponds to value <span class="attr-value">'none'</span>. 102.3927 + 102.3928 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 102.3929 +<dt id="__svg__SVGFEConvolveMatrixElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.3930 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given 102.3931 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3932 +</div></dd> 102.3933 +<dt id="__svg__SVGFEConvolveMatrixElement__orderX"><b>orderX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 102.3934 + Corresponds to attribute <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> on the given 102.3935 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3936 +</div></dd> 102.3937 +<dt id="__svg__SVGFEConvolveMatrixElement__orderY"><b>orderY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 102.3938 + Corresponds to attribute <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> on the given 102.3939 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3940 +</div></dd> 102.3941 +<dt id="__svg__SVGFEConvolveMatrixElement__kernelMatrix"><b>kernelMatrix</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div> 102.3942 + Corresponds to attribute <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a> on the given 102.3943 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3944 +</div></dd> 102.3945 +<dt id="__svg__SVGFEConvolveMatrixElement__divisor"><b>divisor</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3946 + Corresponds to attribute <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> on the given 102.3947 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3948 +</div></dd> 102.3949 +<dt id="__svg__SVGFEConvolveMatrixElement__bias"><b>bias</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3950 + Corresponds to attribute <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> on the given 102.3951 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3952 +</div></dd> 102.3953 +<dt id="__svg__SVGFEConvolveMatrixElement__targetX"><b>targetX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 102.3954 + Corresponds to attribute <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> on the given 102.3955 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3956 +</div></dd> 102.3957 +<dt id="__svg__SVGFEConvolveMatrixElement__targetY"><b>targetY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 102.3958 + Corresponds to attribute <a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a> on the given 102.3959 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3960 +</div></dd> 102.3961 +<dt id="__svg__SVGFEConvolveMatrixElement__edgeMode"><b>edgeMode</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.3962 + Corresponds to attribute <a href="#feConvolveMatrixElementEdgeModeAttribute"><span class="attr-name">‘edgeMode’</span></a> on the given 102.3963 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. Takes one of the SVG_EDGEMODE_* 102.3964 + constants defined on this interface. 102.3965 +</div></dd> 102.3966 +<dt id="__svg__SVGFEConvolveMatrixElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3967 + Corresponds to attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 102.3968 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3969 +</div></dd> 102.3970 +<dt id="__svg__SVGFEConvolveMatrixElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3971 + Corresponds to attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 102.3972 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3973 +</div></dd> 102.3974 +<dt id="__svg__SVGFEConvolveMatrixElement__preserveAlpha"><b>preserveAlpha</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedBoolean">SVGAnimatedBoolean</a>)</span></dt><dd><div> 102.3975 + Corresponds to attribute <a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a> on the given 102.3976 + <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 102.3977 +</div></dd></dl></dd></dl> 102.3978 + 102.3979 + 102.3980 +<h3 id="InterfaceSVGFEDiffuseLightingElement">31.14 Interface SVGFEDiffuseLightingElement</h3> 102.3981 + 102.3982 + 102.3983 + 102.3984 + The <a class="idlinterface" href="#InterfaceSVGFEDiffuseLightingElement">SVGFEDiffuseLightingElement</a> interface corresponds to the 102.3985 + <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element. 102.3986 +<pre class="idl">interface <b>SVGFEDiffuseLightingElement</b> : ::svg::SVGElement, 102.3987 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.3988 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDiffuseLightingElement__in1">in1</a>; 102.3989 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__surfaceScale">surfaceScale</a>; 102.3990 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__diffuseConstant">diffuseConstant</a>; 102.3991 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__kernelUnitLengthX">kernelUnitLengthX</a>; 102.3992 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__kernelUnitLengthY">kernelUnitLengthY</a>; 102.3993 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.3994 +<dt id="__svg__SVGFEDiffuseLightingElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.3995 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> 102.3996 + element. 102.3997 +</div></dd> 102.3998 +<dt id="__svg__SVGFEDiffuseLightingElement__surfaceScale"><b>surfaceScale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.3999 + Corresponds to attribute <a href="#feDiffuseLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a> on the given 102.4000 + <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element. 102.4001 +</div></dd> 102.4002 +<dt id="__svg__SVGFEDiffuseLightingElement__diffuseConstant"><b>diffuseConstant</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4003 + Corresponds to attribute <a href="#feDiffuseLightingDiffuseConstantAttribute"><span class="attr-name">‘diffuseConstant’</span></a> on the given 102.4004 + <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element. 102.4005 +</div></dd> 102.4006 +<dt id="__svg__SVGFEDiffuseLightingElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4007 + Corresponds to attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 102.4008 + <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element. 102.4009 +</div></dd> 102.4010 +<dt id="__svg__SVGFEDiffuseLightingElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4011 + Corresponds to attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 102.4012 + <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element. 102.4013 +</div></dd></dl></dd></dl> 102.4014 + 102.4015 + 102.4016 +<h3 id="InterfaceSVGFEDistantLightElement">31.15 Interface SVGFEDistantLightElement</h3> 102.4017 + 102.4018 + 102.4019 + 102.4020 + The <a class="idlinterface" href="#InterfaceSVGFEDistantLightElement">SVGFEDistantLightElement</a> interface corresponds to the 102.4021 + <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element. 102.4022 +<pre class="idl">interface <b>SVGFEDistantLightElement</b> : ::svg::SVGElement { 102.4023 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDistantLightElement__azimuth">azimuth</a>; 102.4024 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDistantLightElement__elevation">elevation</a>; 102.4025 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.4026 +<dt id="__svg__SVGFEDistantLightElement__azimuth"><b>azimuth</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4027 + Corresponds to attribute <a href="#feDistantLightAzimuthAttribute"><span class="attr-name">‘azimuth’</span></a> on the given 102.4028 + <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element. 102.4029 +</div></dd> 102.4030 +<dt id="__svg__SVGFEDistantLightElement__elevation"><b>elevation</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4031 + Corresponds to attribute <a href="#feDistantLightElevationAttribute"><span class="attr-name">‘elevation’</span></a> on the given 102.4032 + <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element. 102.4033 +</div></dd></dl></dd></dl> 102.4034 + 102.4035 + 102.4036 +<h3 id="InterfaceSVGFEPointLightElement">31.16 Interface SVGFEPointLightElement</h3> 102.4037 + 102.4038 + 102.4039 + 102.4040 + The <a class="idlinterface" href="#InterfaceSVGFEPointLightElement">SVGFEPointLightElement</a> interface corresponds to the 102.4041 + <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element. 102.4042 +<pre class="idl">interface <b>SVGFEPointLightElement</b> : ::svg::SVGElement { 102.4043 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__x">x</a>; 102.4044 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__y">y</a>; 102.4045 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__z">z</a>; 102.4046 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.4047 +<dt id="__svg__SVGFEPointLightElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4048 + Corresponds to attribute <a href="#fePointLightXAttribute"><span class="attr-name">‘x’</span></a> on the given 102.4049 + <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element. 102.4050 +</div></dd> 102.4051 +<dt id="__svg__SVGFEPointLightElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4052 + Corresponds to attribute <a href="#fePointLightYAttribute"><span class="attr-name">‘y’</span></a> on the given 102.4053 + <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element. 102.4054 +</div></dd> 102.4055 +<dt id="__svg__SVGFEPointLightElement__z"><b>z</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4056 + Corresponds to attribute <a href="#fePointLightZAttribute"><span class="attr-name">‘z’</span></a> on the given 102.4057 + <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element. 102.4058 +</div></dd></dl></dd></dl> 102.4059 + 102.4060 + 102.4061 +<h3 id="InterfaceSVGFESpotLightElement">31.17 Interface SVGFESpotLightElement</h3> 102.4062 + 102.4063 + 102.4064 + 102.4065 + The <a class="idlinterface" href="#InterfaceSVGFESpotLightElement">SVGFESpotLightElement</a> interface corresponds to the 102.4066 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 102.4067 +<pre class="idl">interface <b>SVGFESpotLightElement</b> : ::svg::SVGElement { 102.4068 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__x">x</a>; 102.4069 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__y">y</a>; 102.4070 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__z">z</a>; 102.4071 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtX">pointsAtX</a>; 102.4072 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtY">pointsAtY</a>; 102.4073 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtZ">pointsAtZ</a>; 102.4074 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__specularExponent">specularExponent</a>; 102.4075 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__limitingConeAngle">limitingConeAngle</a>; 102.4076 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.4077 +<dt id="__svg__SVGFESpotLightElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4078 + Corresponds to attribute <a href="#feSpotLightXAttribute"><span class="attr-name">‘x’</span></a> on the given 102.4079 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 102.4080 +</div></dd> 102.4081 +<dt id="__svg__SVGFESpotLightElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4082 + Corresponds to attribute <a href="#feSpotLightYAttribute"><span class="attr-name">‘y’</span></a> on the given 102.4083 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 102.4084 +</div></dd> 102.4085 +<dt id="__svg__SVGFESpotLightElement__z"><b>z</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4086 + Corresponds to attribute <a href="#feSpotLightZAttribute"><span class="attr-name">‘z’</span></a> on the given 102.4087 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 102.4088 +</div></dd> 102.4089 +<dt id="__svg__SVGFESpotLightElement__pointsAtX"><b>pointsAtX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4090 + Corresponds to attribute <a href="#feSpotLightPointsAtXAttribute"><span class="attr-name">‘pointsAtX’</span></a> on the given 102.4091 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 102.4092 +</div></dd> 102.4093 +<dt id="__svg__SVGFESpotLightElement__pointsAtY"><b>pointsAtY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4094 + Corresponds to attribute <a href="#feSpotLightPointsAtYAttribute"><span class="attr-name">‘pointsAtY’</span></a> on the given 102.4095 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 102.4096 +</div></dd> 102.4097 +<dt id="__svg__SVGFESpotLightElement__pointsAtZ"><b>pointsAtZ</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4098 + Corresponds to attribute <a href="#feSpotLightPointsAtZAttribute"><span class="attr-name">‘pointsAtZ’</span></a> on the given 102.4099 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 102.4100 +</div></dd> 102.4101 +<dt id="__svg__SVGFESpotLightElement__specularExponent"><b>specularExponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4102 + Corresponds to attribute <a href="#feSpotLightSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a> on the given 102.4103 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 102.4104 +</div></dd> 102.4105 +<dt id="__svg__SVGFESpotLightElement__limitingConeAngle"><b>limitingConeAngle</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4106 + Corresponds to attribute <a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a> on the given 102.4107 + <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 102.4108 +</div></dd></dl></dd></dl> 102.4109 + 102.4110 + 102.4111 +<h3 id="InterfaceSVGFEDisplacementMapElement">31.18 Interface SVGFEDisplacementMapElement</h3> 102.4112 + 102.4113 + 102.4114 + 102.4115 + The <a class="idlinterface" href="#InterfaceSVGFEDisplacementMapElement">SVGFEDisplacementMapElement</a> interface corresponds to the 102.4116 + <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element. 102.4117 +<pre class="idl">interface <b>SVGFEDisplacementMapElement</b> : ::svg::SVGElement, 102.4118 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.4119 + 102.4120 + // Channel Selectors 102.4121 + const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_UNKNOWN">SVG_CHANNEL_UNKNOWN</a> = 0; 102.4122 + const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_R">SVG_CHANNEL_R</a> = 1; 102.4123 + const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_G">SVG_CHANNEL_G</a> = 2; 102.4124 + const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_B">SVG_CHANNEL_B</a> = 3; 102.4125 + const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_A">SVG_CHANNEL_A</a> = 4; 102.4126 + 102.4127 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDisplacementMapElement__in1">in1</a>; 102.4128 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDisplacementMapElement__in2">in2</a>; 102.4129 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDisplacementMapElement__scale">scale</a>; 102.4130 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEDisplacementMapElement__xChannelSelector">xChannelSelector</a>; 102.4131 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEDisplacementMapElement__yChannelSelector">yChannelSelector</a>; 102.4132 +};</pre><dl class="interface"><dt>Constants in group “Channel Selectorsâ€:</dt><dd><dl class="constants"> 102.4133 +<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_UNKNOWN"><b>SVG_CHANNEL_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4134 + The type is not one of predefined types. It is invalid to attempt to 102.4135 + define a new value of this type or to attempt to switch an existing 102.4136 + value to this type. 102.4137 + 102.4138 +</div></dd> 102.4139 +<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_R"><b>SVG_CHANNEL_R</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4140 + Corresponds to value <span class="attr-value">'R'</span>. 102.4141 + 102.4142 +</div></dd> 102.4143 +<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_G"><b>SVG_CHANNEL_G</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4144 + Corresponds to value <span class="attr-value">'G'</span>. 102.4145 + 102.4146 +</div></dd> 102.4147 +<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_B"><b>SVG_CHANNEL_B</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4148 + Corresponds to value <span class="attr-value">'B'</span>. 102.4149 + 102.4150 +</div></dd> 102.4151 +<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_A"><b>SVG_CHANNEL_A</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4152 + Corresponds to value <span class="attr-value">'A'</span>. 102.4153 + 102.4154 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 102.4155 +<dt id="__svg__SVGFEDisplacementMapElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.4156 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> 102.4157 + element. 102.4158 +</div></dd> 102.4159 +<dt id="__svg__SVGFEDisplacementMapElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.4160 + Corresponds to attribute <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> 102.4161 + element. 102.4162 +</div></dd> 102.4163 +<dt id="__svg__SVGFEDisplacementMapElement__scale"><b>scale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4164 + Corresponds to attribute <a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> 102.4165 + element. 102.4166 +</div></dd> 102.4167 +<dt id="__svg__SVGFEDisplacementMapElement__xChannelSelector"><b>xChannelSelector</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.4168 + Corresponds to attribute <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> on the given 102.4169 + <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element. Takes one of the SVG_CHANNEL_* 102.4170 + constants defined on this interface. 102.4171 +</div></dd> 102.4172 +<dt id="__svg__SVGFEDisplacementMapElement__yChannelSelector"><b>yChannelSelector</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.4173 + Corresponds to attribute <a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a> on the given 102.4174 + <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element. Takes one of the SVG_CHANNEL_* 102.4175 + constants defined on this interface. 102.4176 +</div></dd></dl></dd></dl> 102.4177 + 102.4178 + 102.4179 +<h3 id="InterfaceSVGFEFloodElement">31.19 Interface SVGFEFloodElement</h3> 102.4180 + 102.4181 + 102.4182 + 102.4183 + The <a class="idlinterface" href="#InterfaceSVGFEFloodElement">SVGFEFloodElement</a> interface corresponds to the 102.4184 + <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> element. 102.4185 +<pre class="idl">interface <b>SVGFEFloodElement</b> : ::svg::SVGElement, 102.4186 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.4187 +};</pre> 102.4188 + 102.4189 + 102.4190 +<h3 id="InterfaceSVGFEGaussianBlurElement">31.20 Interface SVGFEGaussianBlurElement</h3> 102.4191 + 102.4192 + 102.4193 + 102.4194 + The <a class="idlinterface" href="#InterfaceSVGFEGaussianBlurElement">SVGFEGaussianBlurElement</a> interface corresponds to the 102.4195 + <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element. 102.4196 +<pre class="idl">interface <b>SVGFEGaussianBlurElement</b> : ::svg::SVGElement, 102.4197 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.4198 + 102.4199 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEGaussianBlurElement__in1">in1</a>; 102.4200 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEGaussianBlurElement__stdDeviationX">stdDeviationX</a>; 102.4201 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEGaussianBlurElement__stdDeviationY">stdDeviationY</a>; 102.4202 + 102.4203 + void <a href="#__svg__SVGFEGaussianBlurElement__setStdDeviation">setStdDeviation</a>(in float stdDeviationX, in float stdDeviationY) raises(<a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>); 102.4204 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.4205 +<dt id="__svg__SVGFEGaussianBlurElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.4206 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given 102.4207 + <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element. 102.4208 +</div></dd> 102.4209 +<dt id="__svg__SVGFEGaussianBlurElement__stdDeviationX"><b>stdDeviationX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4210 + Corresponds to attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the given 102.4211 + <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element. Contains the X component 102.4212 + of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>. 102.4213 +</div></dd> 102.4214 +<dt id="__svg__SVGFEGaussianBlurElement__stdDeviationY"><b>stdDeviationY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4215 + Corresponds to attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the given 102.4216 + <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element. Contains the Y component 102.4217 + (possibly computed automatically) of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>. 102.4218 +</div></dd></dl></dd><dt>Operations:</dt><dd><dl class="attributes"> 102.4219 +<dt id="__svg__SVGFEGaussianBlurElement__setStdDeviation">void <b>setStdDeviation</b>(in float <var>stdDeviationX</var>, in float <var>stdDeviationY</var>)</dt><dd><div> 102.4220 + Sets the values for attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>. 102.4221 + 102.4222 +</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter">float <var>stdDeviationX</var></div> <div> The X component of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>. 102.4223 +</div></li><li><div class="parameter">float <var>stdDeviationY</var></div> <div> The Y component of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>. 102.4224 +</div></li></ol></dd><dt>Exceptions</dt><dd><dl class="exceptions"><dt><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt><dd> Raised on an attempt 102.4225 + to change the value of a readonly attribute. 102.4226 +</dd></dl></dd></dl></dd></dl></dd></dl> 102.4227 + 102.4228 + 102.4229 +<h3 id="InterfaceSVGFEImageElement">31.21 Interface SVGFEImageElement</h3> 102.4230 + 102.4231 + 102.4232 + 102.4233 + The <a class="idlinterface" href="#InterfaceSVGFEImageElement">SVGFEImageElement</a> interface corresponds to the 102.4234 + <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> element. 102.4235 +<pre class="idl">interface <b>SVGFEImageElement</b> : ::svg::SVGElement, 102.4236 + ::svg::SVGURIReference, 102.4237 + ::svg::SVGLangSpace, 102.4238 + ::svg::SVGExternalResourcesRequired, 102.4239 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.4240 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InterfaceSVGAnimatedPreserveAspectRatio">SVGAnimatedPreserveAspectRatio</a> <a href="#__svg__SVGFEImageElement__preserveAspectRatio">preserveAspectRatio</a>; 102.4241 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.4242 +<dt id="__svg__SVGFEImageElement__preserveAspectRatio"><b>preserveAspectRatio</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InterfaceSVGAnimatedPreserveAspectRatio">SVGAnimatedPreserveAspectRatio</a>)</span></dt><dd><div> 102.4243 + Corresponds to attribute <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#PreserveAspectRatioAttribute"><span class="attr-name">‘preserveAspectRatio’</span></a> on the given 102.4244 + <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> element. 102.4245 +</div></dd></dl></dd></dl> 102.4246 + 102.4247 + 102.4248 +<h3 id="InterfaceSVGFEMergeElement">31.22 Interface SVGFEMergeElement</h3> 102.4249 + 102.4250 + 102.4251 + 102.4252 + The <a class="idlinterface" href="#InterfaceSVGFEMergeElement">SVGFEMergeElement</a> interface corresponds to the 102.4253 + <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> element. 102.4254 +<pre class="idl">interface <b>SVGFEMergeElement</b> : ::svg::SVGElement, 102.4255 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.4256 +};</pre> 102.4257 + 102.4258 + 102.4259 +<h3 id="InterfaceSVGFEMergeNodeElement">31.23 Interface SVGFEMergeNodeElement</h3> 102.4260 + 102.4261 + 102.4262 + 102.4263 + The <a class="idlinterface" href="#InterfaceSVGFEMergeNodeElement">SVGFEMergeNodeElement</a> interface corresponds to the 102.4264 + <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> element. 102.4265 +<pre class="idl">interface <b>SVGFEMergeNodeElement</b> : ::svg::SVGElement { 102.4266 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEMergeNodeElement__in1">in1</a>; 102.4267 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.4268 +<dt id="__svg__SVGFEMergeNodeElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.4269 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> 102.4270 + element. 102.4271 +</div></dd></dl></dd></dl> 102.4272 + 102.4273 + 102.4274 +<h3 id="InterfaceSVGFEMorphologyElement">31.24 Interface SVGFEMorphologyElement</h3> 102.4275 + 102.4276 + 102.4277 + 102.4278 + The <a class="idlinterface" href="#InterfaceSVGFEMorphologyElement">SVGFEMorphologyElement</a> interface corresponds to the 102.4279 + <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> element. 102.4280 +<pre class="idl">interface <b>SVGFEMorphologyElement</b> : ::svg::SVGElement, 102.4281 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.4282 + 102.4283 + // Morphology Operators 102.4284 + const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_UNKNOWN">SVG_MORPHOLOGY_OPERATOR_UNKNOWN</a> = 0; 102.4285 + const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_ERODE">SVG_MORPHOLOGY_OPERATOR_ERODE</a> = 1; 102.4286 + const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_DILATE">SVG_MORPHOLOGY_OPERATOR_DILATE</a> = 2; 102.4287 + 102.4288 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEMorphologyElement__in1">in1</a>; 102.4289 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEMorphologyElement__operator">operator</a>; 102.4290 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEMorphologyElement__radiusX">radiusX</a>; 102.4291 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEMorphologyElement__radiusY">radiusY</a>; 102.4292 +};</pre><dl class="interface"><dt>Constants in group “Morphology Operatorsâ€:</dt><dd><dl class="constants"> 102.4293 +<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_UNKNOWN"><b>SVG_MORPHOLOGY_OPERATOR_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4294 + The type is not one of predefined types. It is invalid to attempt to 102.4295 + define a new value of this type or to attempt to switch an existing 102.4296 + value to this type. 102.4297 + 102.4298 +</div></dd> 102.4299 +<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_ERODE"><b>SVG_MORPHOLOGY_OPERATOR_ERODE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4300 + Corresponds to value <span class="attr-value">'erode'</span>. 102.4301 + 102.4302 +</div></dd> 102.4303 +<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_DILATE"><b>SVG_MORPHOLOGY_OPERATOR_DILATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4304 + Corresponds to value <span class="attr-value">'dilate'</span>. 102.4305 + 102.4306 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 102.4307 +<dt id="__svg__SVGFEMorphologyElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.4308 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> 102.4309 + element. 102.4310 +</div></dd> 102.4311 +<dt id="__svg__SVGFEMorphologyElement__operator"><b>operator</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.4312 + Corresponds to attribute <a href="#feMorphologyOperatorAttribute"><span class="attr-name">‘operator’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> 102.4313 + element. Takes one of the SVG_MORPHOLOGY_OPERATOR_* constants 102.4314 + defined on this interface. 102.4315 +</div></dd> 102.4316 +<dt id="__svg__SVGFEMorphologyElement__radiusX"><b>radiusX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4317 + Corresponds to attribute <a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> 102.4318 + element. 102.4319 +</div></dd> 102.4320 +<dt id="__svg__SVGFEMorphologyElement__radiusY"><b>radiusY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4321 + Corresponds to attribute <a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> 102.4322 + element. 102.4323 +</div></dd></dl></dd></dl> 102.4324 + 102.4325 + 102.4326 +<h3 id="InterfaceSVGFEOffsetElement">31.25 Interface SVGFEOffsetElement</h3> 102.4327 + 102.4328 + 102.4329 + 102.4330 + The <a class="idlinterface" href="#InterfaceSVGFEOffsetElement">SVGFEOffsetElement</a> interface corresponds to the 102.4331 + <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element. 102.4332 +<pre class="idl">interface <b>SVGFEOffsetElement</b> : ::svg::SVGElement, 102.4333 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.4334 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEOffsetElement__in1">in1</a>; 102.4335 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEOffsetElement__dx">dx</a>; 102.4336 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEOffsetElement__dy">dy</a>; 102.4337 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.4338 +<dt id="__svg__SVGFEOffsetElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.4339 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> 102.4340 + element. 102.4341 +</div></dd> 102.4342 +<dt id="__svg__SVGFEOffsetElement__dx"><b>dx</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4343 + Corresponds to attribute <a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> 102.4344 + element. 102.4345 +</div></dd> 102.4346 +<dt id="__svg__SVGFEOffsetElement__dy"><b>dy</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4347 + Corresponds to attribute <a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> 102.4348 + element. 102.4349 +</div></dd></dl></dd></dl> 102.4350 + 102.4351 + 102.4352 +<h3 id="InterfaceSVGFESpecularLightingElement">31.26 Interface SVGFESpecularLightingElement</h3> 102.4353 + 102.4354 + 102.4355 + 102.4356 + The <a class="idlinterface" href="#InterfaceSVGFESpecularLightingElement">SVGFESpecularLightingElement</a> interface corresponds to the 102.4357 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 102.4358 +<pre class="idl">interface <b>SVGFESpecularLightingElement</b> : ::svg::SVGElement, 102.4359 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.4360 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFESpecularLightingElement__in1">in1</a>; 102.4361 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__surfaceScale">surfaceScale</a>; 102.4362 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__specularConstant">specularConstant</a>; 102.4363 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__specularExponent">specularExponent</a>; 102.4364 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__kernelUnitLengthX">kernelUnitLengthX</a>; 102.4365 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__kernelUnitLengthY">kernelUnitLengthY</a>; 102.4366 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.4367 +<dt id="__svg__SVGFESpecularLightingElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.4368 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> 102.4369 + element. 102.4370 +</div></dd> 102.4371 +<dt id="__svg__SVGFESpecularLightingElement__surfaceScale"><b>surfaceScale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4372 + Corresponds to attribute <a href="#feSpecularLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a> on the given 102.4373 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 102.4374 +</div></dd> 102.4375 +<dt id="__svg__SVGFESpecularLightingElement__specularConstant"><b>specularConstant</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4376 + Corresponds to attribute <a href="#feSpecularLightingSpecularConstantAttribute"><span class="attr-name">‘specularConstant’</span></a> on the given 102.4377 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 102.4378 +</div></dd> 102.4379 +<dt id="__svg__SVGFESpecularLightingElement__specularExponent"><b>specularExponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4380 + Corresponds to attribute <a href="#feSpecularLightingSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a> on the given 102.4381 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 102.4382 +</div></dd> 102.4383 +<dt id="__svg__SVGFESpecularLightingElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4384 + Corresponds to attribute <a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 102.4385 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 102.4386 +</div></dd> 102.4387 +<dt id="__svg__SVGFESpecularLightingElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4388 + Corresponds to attribute <a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 102.4389 + <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 102.4390 +</div></dd></dl></dd></dl> 102.4391 + 102.4392 + 102.4393 +<h3 id="InterfaceSVGFETileElement">31.27 Interface SVGFETileElement</h3> 102.4394 + 102.4395 + 102.4396 + 102.4397 + The <a class="idlinterface" href="#InterfaceSVGFETileElement">SVGFETileElement</a> interface corresponds to the 102.4398 + <a href="#feTileElement"><span class="element-name">‘feTile’</span></a> element. 102.4399 +<pre class="idl">interface <b>SVGFETileElement</b> : ::svg::SVGElement, 102.4400 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.4401 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFETileElement__in1">in1</a>; 102.4402 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.4403 +<dt id="__svg__SVGFETileElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 102.4404 + Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feTileElement"><span class="element-name">‘feTile’</span></a> 102.4405 + element. 102.4406 +</div></dd></dl></dd></dl> 102.4407 + 102.4408 + 102.4409 +<h3 id="InterfaceSVGFETurbulenceElement">31.28 Interface SVGFETurbulenceElement</h3> 102.4410 + 102.4411 + 102.4412 + 102.4413 + The <a class="idlinterface" href="#InterfaceSVGFETurbulenceElement">SVGFETurbulenceElement</a> interface corresponds to the 102.4414 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. 102.4415 +<pre class="idl">interface <b>SVGFETurbulenceElement</b> : ::svg::SVGElement, 102.4416 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.4417 + 102.4418 + // Turbulence Types 102.4419 + const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_UNKNOWN">SVG_TURBULENCE_TYPE_UNKNOWN</a> = 0; 102.4420 + const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_FRACTALNOISE">SVG_TURBULENCE_TYPE_FRACTALNOISE</a> = 1; 102.4421 + const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_TURBULENCE">SVG_TURBULENCE_TYPE_TURBULENCE</a> = 2; 102.4422 + 102.4423 + // Stitch Options 102.4424 + const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_UNKNOWN">SVG_STITCHTYPE_UNKNOWN</a> = 0; 102.4425 + const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_STITCH">SVG_STITCHTYPE_STITCH</a> = 1; 102.4426 + const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_NOSTITCH">SVG_STITCHTYPE_NOSTITCH</a> = 2; 102.4427 + 102.4428 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__baseFrequencyX">baseFrequencyX</a>; 102.4429 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__baseFrequencyY">baseFrequencyY</a>; 102.4430 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFETurbulenceElement__numOctaves">numOctaves</a>; 102.4431 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__seed">seed</a>; 102.4432 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFETurbulenceElement__stitchTiles">stitchTiles</a>; 102.4433 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFETurbulenceElement__type">type</a>; 102.4434 +};</pre><dl class="interface"><dt>Constants in group “Turbulence Typesâ€:</dt><dd><dl class="constants"> 102.4435 +<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_UNKNOWN"><b>SVG_TURBULENCE_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4436 + The type is not one of predefined types. It is invalid to attempt to 102.4437 + define a new value of this type or to attempt to switch an existing 102.4438 + value to this type. 102.4439 + 102.4440 +</div></dd> 102.4441 +<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_FRACTALNOISE"><b>SVG_TURBULENCE_TYPE_FRACTALNOISE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4442 + Corresponds to value <span class="attr-value">'fractalNoise'</span>. 102.4443 + 102.4444 +</div></dd> 102.4445 +<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_TURBULENCE"><b>SVG_TURBULENCE_TYPE_TURBULENCE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4446 + Corresponds to value <span class="attr-value">'turbulence'</span>. 102.4447 + 102.4448 +</div></dd></dl></dd><dt>Constants in group “Stitch Optionsâ€:</dt><dd><dl class="constants"> 102.4449 +<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_UNKNOWN"><b>SVG_STITCHTYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4450 + The type is not one of predefined types. It is invalid to attempt to 102.4451 + define a new value of this type or to attempt to switch an existing 102.4452 + value to this type. 102.4453 + 102.4454 +</div></dd> 102.4455 +<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_STITCH"><b>SVG_STITCHTYPE_STITCH</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4456 + Corresponds to value <span class="attr-value">'stitch'</span>. 102.4457 + 102.4458 +</div></dd> 102.4459 +<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_NOSTITCH"><b>SVG_STITCHTYPE_NOSTITCH</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 102.4460 + Corresponds to value <span class="attr-value">'noStitch'</span>. 102.4461 + 102.4462 +</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 102.4463 +<dt id="__svg__SVGFETurbulenceElement__baseFrequencyX"><b>baseFrequencyX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4464 + Corresponds to attribute <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> on the given 102.4465 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. Contains the X component of the 102.4466 + <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> attribute. 102.4467 +</div></dd> 102.4468 +<dt id="__svg__SVGFETurbulenceElement__baseFrequencyY"><b>baseFrequencyY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4469 + Corresponds to attribute <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> on the given 102.4470 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. Contains the Y component of the 102.4471 + (possibly computed automatically) <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> attribute. 102.4472 +</div></dd> 102.4473 +<dt id="__svg__SVGFETurbulenceElement__numOctaves"><b>numOctaves</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 102.4474 + Corresponds to attribute <a href="#feTurbulenceNumOctavesAttribute"><span class="attr-name">‘numOctaves’</span></a> on the given 102.4475 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. 102.4476 +</div></dd> 102.4477 +<dt id="__svg__SVGFETurbulenceElement__seed"><b>seed</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 102.4478 + Corresponds to attribute <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> on the given 102.4479 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. 102.4480 +</div></dd> 102.4481 +<dt id="__svg__SVGFETurbulenceElement__stitchTiles"><b>stitchTiles</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.4482 + Corresponds to attribute <a href="#feTurbulenceStitchTilesAttribute"><span class="attr-name">‘stitchTiles’</span></a> on the given 102.4483 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. Takes one of the SVG_STITCHTYPE_* 102.4484 + constants defined on this interface. 102.4485 +</div></dd> 102.4486 +<dt id="__svg__SVGFETurbulenceElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 102.4487 + Corresponds to attribute <a href="#feTurbulenceTypeAttribute"><span class="attr-name">‘type’</span></a> on the given 102.4488 + <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. Takes one of the SVG_TURBULENCE_TYPE_* 102.4489 + constants defined on this interface. 102.4490 +</div></dd></dl></dd></dl> 102.4491 + 102.4492 + 102.4493 +<h3 id="InterfaceSVGFEDropShadowElement">31.29 Interface SVGFEDropShadowElement</h3> 102.4494 + 102.4495 + 102.4496 + 102.4497 + The <a class="idlinterface" href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> interface corresponds to the 102.4498 + <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> element. 102.4499 +<pre class="idl">interface <b>SVGFEDropShadowElement</b> : ::svg::SVGElement, 102.4500 + <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 102.4501 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDropShadowElement__in1">in1</a>; 102.4502 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__dx">dx</a>; 102.4503 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__dy">dy</a>; 102.4504 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__stdDeviationX">stdDeviationX</a>; 102.4505 + readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__stdDeviationY">stdDeviationY</a>; 102.4506 +};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 102.4507 +<dt id="__svg__SVGFEDropShadowElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd> </dd> 102.4508 +<dt id="__svg__SVGFEDropShadowElement__dx"><b>dx</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd> 102.4509 +<dt id="__svg__SVGFEDropShadowElement__dy"><b>dy</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd> 102.4510 +<dt id="__svg__SVGFEDropShadowElement__stdDeviationX"><b>stdDeviationX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd> 102.4511 +<dt id="__svg__SVGFEDropShadowElement__stdDeviationY"><b>stdDeviationY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd></dl></dd></dl> 102.4512 + 102.4513 + 102.4514 +<h2 id="references1">32 References</h2> 102.4515 +<h3 id="normref">32.1 Normative References</h3> 102.4516 +<dl><dt id="ref-CSS21"><strong class="normref">[CSS21]</strong></dt><dd><strong>Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</strong>, 102.4517 + Bert Bos, Tantek Çelik, Ian Hickson, HÃ¥kon Wium Lie, eds., 102.4518 + W3C, 23 April 2009, (Candidate Recommendation) </dd><dt id="ref-NVDL"><strong class="normref">[NVDL]</strong></dt><dd><strong>Document Schema Definition Languages (DSDL) — Part 4: 102.4519 + Namespace-based Validation Dispatching Language — NVDL. ISO/IEC FCD 102.4520 + 19757-4</strong>, See <a href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/</a> 102.4521 + </dd><dt id="ref-PORTERDUFF"><strong class="normref">[PORTERDUFF]</strong></dt><dd><strong>Compositing Digital Images</strong>, T. Porter, T. Duff, 102.4522 + SIGGRAPH '84 Conference Proceedings, Association for Computing 102.4523 + Machinery, Volume 18, Number 3, July 1984. </dd><dt id="ref-RNG"><strong class="normref">[RelaxNG]</strong></dt><dd><strong>Document Schema Definition Languages (DSDL) — Part 2: 102.4524 + Regular grammar- based validation — RELAX NG. ISO/IEC FDIS 102.4525 + 19757-2:2002(E)</strong>, J. Clark, <span class="ruby"><span lang="ja" class="rb">æ‘ç”° 真</span> <span class="rp">(</span><span class="rt"><span class="familyname">Murata</span> M.</span><span class="rp">)</span></span>, eds., 12 December 2002. See <a href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf</a> 102.4526 + </dd><dt id="ref-Schema2"><strong class="normref">[Schema2]</strong></dt><dd><strong>XML Schema Part 2: Datatypes Second Edition</strong>, P. 102.4527 + Biron, A. Malhotra, eds. W3C, 28 October 2004 (Recommendation). Latest 102.4528 + version available at <a href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>. 102.4529 + See also <a href="http://www.w3.org/TR/2005/NOTE-xml11schema10-20050511/">Processing 102.4530 + XML 1.1 documents with XML Schema 1.0 processors</a>. </dd><dt id="ref-svg11"><strong class="normref">[SVG11]</strong></dt><dd><strong>Scalable Vector Graphics (SVG) 1.1 Specification</strong>, 102.4531 + Dean Jackson editor, W3C, 14 January 2003 (Recommendation). See <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">http://www.w3.org/TR/2003/REC-SVG11-20030114/</a> 102.4532 + </dd><dt id="ref-svgt12"><strong class="normref">[SVGT12]</strong></dt><dd><strong>Scalable Vector Graphics (SVG) Tiny 1.2 Specification</strong>, 102.4533 + Dean Jackson editor, W3C, 22 December 2008 (Recommendation). See <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/">http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/</a> 102.4534 + </dd></dl> 102.4535 + 102.4536 +<h3 id="informref">32.2 Informative References</h3> 102.4537 +<dl><dt id="ref-html5"><strong class="informref">[HTML5]</strong></dt><dd><strong>HTML5</strong>, Ian Hickson editor, Google, 102.4538 + 10 June 2008 (Working Draft). See <a href="http://www.w3.org/TR/2008/WD-html5-20080610/">http://www.w3.org/TR/2008/WD-html5-20080610/</a> 102.4539 + </dd></dl> 102.4540 + 102.4541 + <h2 id="changes">33 Changes</h2> 102.4542 + <p>For changes since the last published draft, see the public <a href="http://dev.w3.org/cvsweb/SVG/modules/filters/publish/">cvs log</a>.</p> 102.4543 +<script src="style/expanders.js" type="text/javascript"> </script></body></html> 102.4544 \ No newline at end of file
103.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 103.2 +++ b/filters/publish/SVGFilterPrimer.html Mon Apr 11 10:08:48 2011 +1000 103.3 @@ -0,0 +1,323 @@ 103.4 +<!-- 103.5 + SVG Filters 1.2, Part 1: Primer 103.6 + 103.7 + $Id$ 103.8 + 103.9 + Note: This document is generated from ../master/SVGFilterPrimer.html. 103.10 + Run "make" from ../master/ to regenerate it. 103.11 + --> 103.12 + 103.13 +<!DOCTYPE html 103.14 + PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 103.15 +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>SVG Filters 1.2, Part 1: Primer</title><link rel="stylesheet" type="text/css" href="style/svg-style.css"/><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body> 103.16 + 103.17 +<div class="head"> 103.18 + <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 103.19 + <h1 id="pagetitle">SVG Filters 1.2, Part 1: Primer</h1> 103.20 + <h2 id="pagesubtitle">W3C Editor’s Draft <em>07 January 2011</em></h2> 103.21 + <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html">http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/SVGFilterPrimer12/">http://www.w3.org/TR/SVGFilterPrimer12/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/</a></dd><dt>Editor:</dt><dd>Erik Dahlström, Opera Software <<a href="mailto:ed@opera.com">ed@opera.com</a>></dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd></dl> 103.22 + <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p> 103.23 +</div> 103.24 + 103.25 +<hr/> 103.26 + 103.27 +<h2 id="abstract">Abstract </h2> 103.28 + 103.29 +<p> 103.30 +SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed. 103.31 +</p> 103.32 +<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO. 103.33 +</p> 103.34 +<p> 103.35 +This document introduces the features used by SVG filters. 103.36 +</p> 103.37 + 103.38 +<h2 id="status">Status of This Document </h2> 103.39 + 103.40 +<p><em>This section describes the status of this document at the time of its 103.41 +publication. Other documents may supersede this document. The latest status 103.42 +of this document series is maintained at the W3C. </em> </p> 103.43 + 103.44 +<p>This document is the first public working draft of this specification. </p> 103.45 + 103.46 +<p>This document has been produced by the <a href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of 103.47 +the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a> 103.48 +within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>. 103.49 +</p> 103.50 + 103.51 +<p>We explicitly invite comments on this specification. Please send them to 103.52 +<a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a> (<a href="http://lists.w3.org/Archives/Public/public-svg-filters/">archives</a>). 103.53 +For comments on the core SVG language, use <a href="mailto:www-svg@w3.org">www-svg@w3.org</a>: the public email list for 103.54 +issues related to vector graphics on the Web (<a href="http://lists.w3.org/Archives/Public/www-svg/">archives</a>). Acceptance 103.55 +of the archiving policy is requested automatically upon first post to either 103.56 +list. To subscribe to these lists send an email to <a href="mailto:public-svg-filters-request@w3.org">public-svg-filters-request@w3.org</a> 103.57 +or <a href="mailto:www-svg-request@w3.org">www-svg-request@w3.org</a> with 103.58 +the word subscribe in the subject line. </p> 103.59 + 103.60 +<p>The latest information regarding <a href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 103.61 +related to this document is available on the Web. As of this publication, the 103.62 +SVG Working Group are not aware of any royalty-bearing patents they believe 103.63 +to be essential to SVG. </p> 103.64 +<p>Publication of this document does not imply endorsement by the W3C 103.65 +membership. A list of current W3C Recommendations and other technical 103.66 +documents can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may 103.67 +be updated, replaced, or obsoleted by other documents at any time. It is 103.68 +inappropriate to cite a W3C Working Draft as anything other than a <em>work 103.69 +in progress</em>." </p> 103.70 + 103.71 +<h2 id="howto">How to read this document and give feedback </h2> 103.72 + 103.73 +<p>This is a primer for the SVG Filter specification. It gives guidelines on 103.74 +how to use the SVG Filter specification with SVG 1.2. In many cases the 103.75 +reader will have to be familiar with the <a href="http://www.w3.org/TR/SVG11/">SVG</a> language. </p> 103.76 + 103.77 +<p> 103.78 +This document is informative. 103.79 +</p> 103.80 + 103.81 +<h2 id="toc">Table of Contents</h2> 103.82 + 103.83 +<ul class="toc"> 103.84 +<li><a href="#Introduction">1 Filters in SVG</a></li> 103.85 +<li><a href="#Example">2 An example</a></li> 103.86 +<li><a href="#feGaussianBlurElement">3 Filter primitive <span class="element-name">‘feGaussianBlur’</span></a></li> 103.87 +<li><a href="#references">4 References </a></li></ul> 103.88 + 103.89 +<h2 id="Introduction">1 Filters in SVG</h2> 103.90 + 103.91 +<p>Filter effects are defined by <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> elements. To apply a filter effect 103.92 +to a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics element</span></a> or a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>, you set the 103.93 +value of the <a href="SVGFilter.html#FilterProperty"><span class="prop-name">‘filter’</span></a> property on the given element such that 103.94 +it references the filter effect.</p> 103.95 + 103.96 +<p>Each <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> element contains a set of 103.97 +<span id="TermFilterPrimitive" class="SVG-Term">filter primitives</span> as its children. Each filter 103.98 +primitive performs a single fundamental graphical operation (e.g., a blur or 103.99 +a lighting effect) on one or more inputs, producing a graphical result. 103.100 +Because most of the filter primitives represent some form of image 103.101 +processing, in most cases the output from a filter primitive is a single RGBA 103.102 +image.</p> 103.103 + 103.104 +<p>The original source graphic or the result from a filter primitive can be 103.105 +used as input into one or more other filter primitives. A common application 103.106 +is to use the source graphic multiple times. For example, a simple filter 103.107 +could replace one graphic by two by adding a black copy of original source 103.108 +graphic offset to create a drop shadow. In effect, there are now two layers 103.109 +of graphics, both with the same original source graphics.</p> 103.110 + 103.111 +<p>When applied to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> such as <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#GElement"><span class="element-name">‘g’</span></a>, the <a href="SVGFilter.html#FilterProperty"><span class="prop-name">‘filter’</span></a> 103.112 +property applies to the contents of the 103.113 +group as a whole. The group's children do not render to the screen directly; 103.114 +instead, the graphics commands necessary to render the children are stored 103.115 +temporarily. Typically, the graphics commands are executed as part of the 103.116 +processing of the referenced <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> element via use of the keywords 103.117 +<a href="SVGFilter.html#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> or <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>. 103.118 +Filter effects can be applied to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> with no 103.119 +content (e.g., an empty <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#GElement"><span class="element-name">‘g’</span></a> element), in which case the 103.120 +<a href="SVGFilter.html#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> or <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> consist of a transparent black 103.121 +rectangle that is the size of the 103.122 +<a href="SVGFilter.html#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</p> 103.123 + 103.124 +<p>Sometimes filter primitives result in undefined pixels. For example, 103.125 +filter primitive <a href="SVGFilter.html#feOffsetElement"><span class="element-name">‘feOffset’</span></a> can shift an image down and to the 103.126 +right, leaving undefined pixels at the top and left. In these cases, the 103.127 +undefined pixels are set to transparent black.</p> 103.128 + 103.129 +<h2 id="Example">2 An example</h2> 103.130 + 103.131 +<p>The following shows an example of a filter effect.</p> 103.132 + 103.133 +<p><span class="example-ref">Example filters01</span> - introducing filter 103.134 +effects.</p> 103.135 + 103.136 +<pre class="xml"><?xml version="1.0"?> 103.137 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 103.138 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 103.139 +<svg width="7.5cm" height="5cm" viewBox="0 0 200 120" 103.140 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 103.141 + <title>Example filters01.svg - introducing filter effects</title> 103.142 + <desc>An example which combines multiple filter primitives 103.143 + to produce a 3D lighting effect on a graphic consisting 103.144 + of the string "SVG" sitting on top of oval filled in red 103.145 + and surrounded by an oval outlined in red.</desc> 103.146 + <defs> 103.147 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 103.148 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 103.149 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 103.150 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 103.151 + specularExponent="20" lighting-color="#bbbbbb" 103.152 + result="specOut"> 103.153 + <fePointLight x="-5000" y="-10000" z="20000"/> 103.154 + </feSpecularLighting> 103.155 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 103.156 + <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 103.157 + k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 103.158 + <feMerge> 103.159 + <feMergeNode in="offsetBlur"/> 103.160 + <feMergeNode in="litPaint"/> 103.161 + </feMerge> 103.162 + </filter> 103.163 + </defs> 103.164 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 103.165 + <g filter="url(#MyFilter)" > 103.166 + <g> 103.167 + <path fill="none" stroke="#D90000" stroke-width="10" 103.168 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 103.169 + <path fill="#D90000" 103.170 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 103.171 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 103.172 + <text x="52" y="76">SVG</text> 103.173 + </g> 103.174 + </g> 103.175 + </g> 103.176 +</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/filters01.png"/></td></tr></table><p class="view-as-svg"><a href="examples/filters01.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 103.177 + 103.178 +<p>The filter effect used in the example above is repeated here with 103.179 +reference numbers in the left column before each of the six filter 103.180 +primitives:</p> 103.181 + 103.182 +<table summary="filter example with reference numbers"><tbody><tr><td valign="top"><pre style="color:black"> 103.183 + 103.184 +1 103.185 +2 103.186 +3 103.187 + 103.188 + 103.189 + 103.190 + 103.191 +4 103.192 +5 103.193 + 103.194 +6 103.195 + 103.196 + 103.197 + </pre> 103.198 + </td><td valign="top"><pre><filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 103.199 + <desc>Produces a 3D lighting effect.</desc> 103.200 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 103.201 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 103.202 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 103.203 + specularExponent="20" lighting-color="#bbbbbb" 103.204 + result="specOut"> 103.205 + <fePointLight x="-5000" y="-10000" z="20000"/> 103.206 + </feSpecularLighting> 103.207 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 103.208 + <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 103.209 + k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 103.210 + <feMerge> 103.211 + <feMergeNode in="offsetBlur"/> 103.212 + <feMergeNode in="litPaint"/> 103.213 + </feMerge> 103.214 +</filter></pre> 103.215 + </td></tr></tbody></table> 103.216 + 103.217 +<p>The following pictures show the intermediate image results from each of 103.218 +the six filter elements:</p> 103.219 + 103.220 +<table summary="filter example intermediate results"><tbody><tr><td><p><img width="115" height="70" alt="filters01 - original source graphic" src="examples/filters01-0.png"/><br/> 103.221 + Source graphic</p> 103.222 + </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 1" src="examples/filters01-1.png"/><br/> 103.223 + After filter primitive 1</p> 103.224 + </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 2" src="examples/filters01-2.png"/><br/> 103.225 + After filter primitive 2</p> 103.226 + </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 3" src="examples/filters01-3.png"/><br/> 103.227 + After filter primitive 3</p> 103.228 + </td></tr><tr><td> </td><td> </td><td/><td/><td/><td/><td/></tr><tr><td> </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 4" src="examples/filters01-4.png"/><br/> 103.229 + After filter primitive 4</p> 103.230 + </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 5" src="examples/filters01-5.png"/><br/> 103.231 + After filter primitive 5</p> 103.232 + </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 6" src="examples/filters01-6.png"/><br/> 103.233 + After filter primitive 6</p> 103.234 + </td></tr></tbody></table> 103.235 +<ol><li>Filter primitive <a href="SVGFilter.html#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> takes input <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>, 103.236 + which is the alpha channel of 103.237 + the source graphic. The result is stored in a temporary buffer named 103.238 + "blur". Note that "blur" is used as input to both filter primitives 2 and 103.239 + 3.</li><li>Filter primitive <a href="SVGFilter.html#feOffsetElement"><span class="element-name">‘feOffset’</span></a> takes buffer "blur", shifts 103.240 + the result in a positive direction in both x and y, and creates a new 103.241 + buffer named "offsetBlur". The effect is that of a drop shadow.</li><li>Filter primitive <a href="SVGFilter.html#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>, uses buffer "blur" 103.242 + as a model of a surface elevation and generates a lighting effect from a 103.243 + single point source. The result is stored in buffer "specOut".</li><li>Filter primitive <a href="SVGFilter.html#feCompositeElement"><span class="element-name">‘feComposite’</span></a> masks out the result of 103.244 + filter primitive 3 by the original source graphics alpha channel so that 103.245 + the intermediate result is no bigger than the original source 103.246 + graphic.</li><li>Filter primitive <a href="SVGFilter.html#feCompositeElement"><span class="element-name">‘feComposite’</span></a> composites the result of 103.247 + the specular lighting with the original source graphic.</li><li>Filter primitive <a href="SVGFilter.html#feMergeElement"><span class="element-name">‘feMerge’</span></a> composites two layers together. 103.248 + The lower layer consists of the drop shadow result from filter primitive 103.249 + 2. The upper layer consists of the specular lighting result from filter 103.250 + primitive 5.</li></ol> 103.251 + 103.252 +<h2 id="feGaussianBlurElement">3 Filter primitive <span class="element-name">‘feGaussianBlur’</span></h2> 103.253 + 103.254 +<p> 103.255 + The <a href="SVGFilter.html#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive can be used to create blur effects. 103.256 + Below is an example where the blur is applied only in one direction, which can 103.257 + give better performance in some <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserAgent"><span class="svg-term">user agents</span></a>. 103.258 + <pre class="xml"><?xml version="1.0" encoding="UTF-8"?> 103.259 +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"> 103.260 + <defs> 103.261 + <font-face font-family="FORQUE"> 103.262 + <font-face-src> 103.263 + <font-face-uri xlink:href="Forque.svg#FORQUE"/> 103.264 + </font-face-src> 103.265 + </font-face> 103.266 + <style> 103.267 + /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */ 103.268 + text { text-anchor: middle; font: 70px FORQUE, sans-serif; } 103.269 + #bx { filter: url(#blurX) } 103.270 + #by { filter: url(#blurY) } 103.271 + #header { filter: url(#ds); fill: white; text-decoration: underline } 103.272 + #attribution { font-size: 6px } 103.273 + :root { background: green; fill: white } 103.274 + </style> 103.275 + <filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse"> 103.276 + <feGaussianBlur stdDeviation="4 0"> 103.277 + <animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/> 103.278 + </feGaussianBlur> 103.279 + </filter> 103.280 + <filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse"> 103.281 + <feGaussianBlur stdDeviation="0 4"/> 103.282 + </filter> 103.283 + <filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2"> 103.284 + <feGaussianBlur stdDeviation="3"/> 103.285 + <feOffset dx="2" dy="2"/> 103.286 + <feComposite in2="SourceGraphic" operator="in"/> 103.287 + </filter> 103.288 + </defs> 103.289 + 103.290 + <text id="bx" x="40%" y="50%">BlurX</text> 103.291 + <text id="by" x="60%" y="70%">BlurY</text> 103.292 + 103.293 + <text id="header" y="1em" x="50%">Unidirectional blur</text> 103.294 + <text id="attribution" x="100%" y="355">Forque font by Tup Wanders</text> 103.295 +</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feGaussianBlur-stdDeviation-00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feGaussianBlur-stdDeviation-00.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 103.296 +</p> 103.297 + 103.298 +<p>The blur filter can also be used for creating the impression of something being in motion, as in this example. 103.299 + <pre class="xml"><?xml version="1.0" encoding="UTF-8"?> 103.300 +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"> 103.301 + <defs> 103.302 + <filter id="motionblur" filterUnits="userSpaceOnUse"> 103.303 + <feGaussianBlur stdDeviation="5 0"/> 103.304 + </filter> 103.305 + <symbol id="crow" viewBox="0 0 197 190"> 103.306 + <path d="M 72.566789,186.38448 C 71.202549,184.36785 66.167569,175.06788 61.377949,165.71788 C 56.588329,156.36788 52.650829,149.03965 52.627949,149.43293 C 52.605069,149.82621 53.231819,152.07621 54.020719,154.43293 C 56.134749,160.74826 59.591199,174.77158 59.554549,176.88449 C 59.524869,178.59503 59.416409,178.58387 57.935879,176.71788 C 55.201299,173.27137 45.853349,153.1995 41.635529,141.71788 C 37.663679,130.90581 37.605079,130.81611 38.205719,136.46788 C 38.959899,143.56439 37.583169,143.96813 34.795769,137.46788 C 30.104179,126.52701 28.892829,118.89987 27.609109,92.21788 C 26.579279,70.81278 27.181269,61.74079 30.007419,56.07564 C 31.906109,52.26963 32.139109,52.60152 20.824699,42.99574 C 13.205099,36.52681 11.734279,35.68694 7.1852392,35.20738 L 2.0863492,34.66985 L 7.5863492,32.82094 C 10.611349,31.80405 13.481709,30.60949 13.964929,30.16638 C 15.394959,28.85504 9.7899892,24.44625 4.4291292,22.66566 C 1.6943392,21.75731 -0.28374076,20.75464 0.033389242,20.43751 C 0.35051924,20.12038 7.2421692,19.78442 15.348169,19.69093 C 30.881569,19.51179 34.937409,20.13958 47.086349,24.60361 C 50.936349,26.01826 55.713159,27.18519 57.701489,27.19679 C 65.982349,27.2451 71.556499,17.90344 69.368439,7.6442896 C 67.940739,0.95023961 69.214399,0.010319613 79.726899,2.961339e-05 C 85.523249,-0.0056403866 91.246029,0.80265961 98.391539,2.6362896 C 104.0594,4.0907296 112.29453,5.9632196 116.69184,6.7973796 C 134.01279,10.0831 145.35739,15.11226 132.4653,13.78988 C 123.72653,12.89352 125.97985,14.08978 145.54774,20.73521 C 161.35384,26.10311 174.7538,32.06177 176.16916,34.35187 C 176.71697,35.23824 175.39586,35.37836 170.91088,34.90959 C 167.61644,34.56525 164.05819,34.00702 163.00367,33.66907 C 159.44558,32.52878 164.45052,35.98642 172.8528,40.47328 C 181.01437,44.83161 187.58635,49.6841 187.58635,51.35196 C 187.58635,51.95969 185.75677,52.07923 182.83635,51.6623 C 177.61881,50.91742 177.61253,50.9017 184.83635,56.66751 C 189.29595,60.22701 191.15689,64.23449 188.33635,64.20466 C 187.64885,64.19739 183.75408,62.28489 179.6813,59.95466 C 175.60852,57.62443 170.43352,54.66077 168.1813,53.36875 C 160.24766,48.81749 155.25808,48.53915 153.96805,52.57585 C 153.59155,53.75397 153.17397,57.05515 153.04009,59.91181 C 152.72526,66.62933 148.47286,73.16418 144.39537,73.19653 C 141.27521,73.22129 140.06261,74.55103 141.84736,75.99069 C 143.5779,77.38662 163.91595,85.24612 177.08635,89.60855 C 183.13635,91.61249 189.88635,94.27223 192.08634,95.51908 C 196.03044,97.75438 196.08764,97.86951 196.17774,103.75198 C 196.32804,113.55263 191.83044,119.99235 183.2058,122.3255 C 179.71567,123.26966 178.08026,123.11668 172.50059,121.32412 C 165.62068,119.11384 161.59126,116.76556 147.7546,106.9026 C 143.17214,103.63615 137.09714,100.07812 134.2546,98.99585 L 129.08635,97.0281 L 124.58635,102.12335 C 122.11135,104.92574 119.27183,107.21844 118.2763,107.21824 C 117.28078,107.21804 114.25803,108.66351 111.55908,110.4304 C 108.02382,112.74478 106.47184,114.49211 106.00784,116.6804 C 105.6536,118.35101 104.7976,120.39288 104.10563,121.21788 C 102.12794,123.57575 99.866059,134.66955 99.008439,146.21788 C 98.702099,150.34288 97.981489,154.68231 97.407089,155.86106 C 96.606229,157.50454 96.855109,159.32029 98.474539,163.64858 C 99.636029,166.75296 100.58635,170.19015 100.58635,171.28678 C 100.58635,174.34075 97.802589,174.76966 95.009829,172.14599 L 92.535069,169.82107 L 94.060709,174.1452 C 97.730759,184.54723 95.140999,185.2202 87.992199,175.72216 C 84.864209,171.56625 82.136779,168.33411 81.931259,168.53964 C 81.725729,168.74517 82.756989,171.5332 84.222939,174.73527 C 87.061249,180.93494 87.859979,187.23913 85.894459,187.92805 C 85.215209,188.16613 81.485349,182.83448 77.222469,175.53184 C 73.108409,168.48416 69.042179,161.81788 68.186409,160.71788 C 66.764029,158.88956 66.749579,159.06125 68.018079,162.71788 C 68.781269,164.91788 70.803819,170.06041 72.512649,174.14572 C 77.734689,186.63018 77.767619,194.07236 72.566789,186.38448 z"/> 103.307 + </symbol> 103.308 + </defs> 103.309 + 103.310 + <image xlink:href="forest-small.jpg" width="100%" height="100%" filter="url(#motionblur)"/> 103.311 + <use xlink:href="#crow" width="25%" height="25%" x="20%" y="40%" transform="rotate(-12)"/> 103.312 + 103.313 +</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feGaussianBlur-motion-00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feGaussianBlur-motion-00.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 103.314 +</p> 103.315 + 103.316 +<h2 id="references">4 References </h2> 103.317 +<dl><dt id="SVG12Full">SVG12</dt><dd><strong>Scalable Vector Graphics (SVG) 1.2 Specification</strong>, 103.318 + Dean Jackson editor, W3C, 27 October 2004 (Working Draft). See <a href="http://www.w3.org/TR/2004/WD-SVG12-20041027/">http://www.w3.org/TR/2004/WD-SVG12-20041027/</a> 103.319 + </dd><dt id="SVG12Requirements">SVG12Reqs</dt><dd><strong>SVG 1.1/1.2/2.0 Requirements</strong>, Dean Jackson editor, 103.320 + W3C, 22 April 2002 (Working Draft). See <a href="http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/">http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/</a> 103.321 + </dd><dt id="SVGFilterRequirements">SVGFilterReqs</dt><dd><strong>SVG Filter Requirements</strong>, Erik Dahlström, W3C, 3 May 2007 103.322 + (Working Draft). See <a href="http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/</a> 103.323 + </dd><dt id="SVG12Filter">SVG12Filters</dt><dd><strong>SVG Filters 1.2</strong>, Erik Dahlström editor, W3C, 3 May 2007 (Working Draft). See <a href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a> 103.324 + </dd></dl> 103.325 + 103.326 +<script src="style/expanders.js" type="text/javascript"> </script></body></html> 103.327 \ No newline at end of file
104.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 104.2 +++ b/filters/publish/SVGFilterReqs.html Mon Apr 11 10:08:48 2011 +1000 104.3 @@ -0,0 +1,211 @@ 104.4 +<!-- 104.5 + SVG Filter Requirements 104.6 + 104.7 + $Id$ 104.8 + 104.9 + Note: This document is generated from ../master/SVGFilterReqs.html. 104.10 + Run "make" from ../master/ to regenerate it. 104.11 + --> 104.12 + 104.13 +<!DOCTYPE html 104.14 + PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 104.15 +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>SVG Filter Requirements</title><style type="text/css"> 104.16 + 104.17 + .designgoals { 104.18 + list-style-type: decimal; 104.19 + } 104.20 + 104.21 + .req-level1 { 104.22 + list-style-type: decimal; 104.23 + font-weight: bold; 104.24 + } 104.25 + 104.26 + .req-level2 { 104.27 + list-style-type: decimal; 104.28 + font-weight: normal; 104.29 + } 104.30 + 104.31 + .req-level1 li { 104.32 + margin-top: 1em; 104.33 + } 104.34 + 104.35 + .req-level2 li { 104.36 + margin-top: 0em; 104.37 + } 104.38 + 104.39 + .label { 104.40 + margin-top: 1em; 104.41 + } 104.42 + 104.43 + .comment { 104.44 + background: #ffffaa; 104.45 + } 104.46 + 104.47 + .svgversion { 104.48 + color: #336633; 104.49 + font-weight: bold; 104.50 + } 104.51 + 104.52 + .term { 104.53 + font-weight: bold; 104.54 + color: #aa3333; 104.55 + } 104.56 + 104.57 + .issue { 104.58 + color: #ff0000; 104.59 + } 104.60 + 104.61 + </style><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body> 104.62 + 104.63 +<div class="head"> 104.64 + <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 104.65 + <h1 id="pagetitle">SVG Filter Requirements</h1> 104.66 + <h2 id="pagesubtitle">W3C Editor’s Draft <em>07 January 2011</em></h2> 104.67 + <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html">http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/SVGFilterReqs12/">http://www.w3.org/TR/SVGFilterReqs12/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/</a></dd><dt>Editor:</dt><dd>Erik Dahlström, Opera Software <<a href="mailto:ed@opera.com">ed@opera.com</a>></dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd></dl> 104.68 + <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p> 104.69 +</div> 104.70 + 104.71 +<hr/> 104.72 + 104.73 +<h2 id="sec-abstract">Abstract</h2> 104.74 + 104.75 +<p>This document lists the design principles and requirements for the 104.76 +creation of a SVG specification related to filters. </p> 104.77 + 104.78 +<h2 id="sec-status">Status of this Document</h2> 104.79 + 104.80 +<p>This is a W3C Working Draft for review by W3C Members and other interested 104.81 +parties. It is a draft document and may be updated, replaced or made obsolete 104.82 +by other documents at any time. It is inappropriate to use W3C Working Drafts 104.83 +as reference material or to cite them as other than "work in progress". A 104.84 +list of current W3C Recommendations and other technical documents, including 104.85 +Working Drafts and Notes, can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a> </p> 104.86 + 104.87 +<p>This is the first release of the SVG Filter Requirements. It is expected 104.88 +that this document will progress through a number of working drafts, 104.89 +including "Last Call", before being published in final form. </p> 104.90 + 104.91 +<p>This document was developed by the <a href="http://www.w3.org/Graphics/SVG/">Scalable Vector Graphics</a> (SVG) 104.92 +working group as part of the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>. The authors 104.93 +of this document are the SVG Working Group members. </p> 104.94 + 104.95 +<p>Feedback on this document should be sent to the email list <a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a>. This 104.96 +is an archived public list specific to the issues of SVG Filters. Public 104.97 +discussion of issues related to vector graphics on the Web and SVG in 104.98 +particular takes place on the <a href="mailto:www-svg@w3.org">the public 104.99 +mailing list of the SVG Working Group</a> (<a href="http://lists.w3.org/Archives/Public/www-svg/">list archives</a>). To 104.100 +subscribe send an email to <code>www-svg-request@w3.org</code> with the word 104.101 +<code>subscribe</code> in the subject line. </p> 104.102 + 104.103 +<p>The latest information regarding <a rel="disclosures" href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 104.104 +related to this document is available on the Web. As of this publication, the 104.105 +SVG Working Group are not aware of any royalty-bearing patents they believe 104.106 +to be essential to SVG. </p> 104.107 + 104.108 +<p><em>This section represents the status of this document at the time this 104.109 +version was published. It will become outdated if and when a new version is 104.110 +published. The latest status is maintained at the W3C. </em> </p> 104.111 + 104.112 +<h2 id="toc">Table of Contents</h2> 104.113 + 104.114 +<ul class="toc"> 104.115 +<li><a href="#sec-introduction">1 Introduction </a></li> 104.116 +<li><a href="#sec-terminology">2 Terminology </a></li> 104.117 +<li><a href="#sec-usage">3 Usage Scenarios </a></li> 104.118 +<li><a href="#sec-features">4 Special Filter Considerations</a></li> 104.119 +<li><a href="#sec-requirements">5 Requirements</a></li> 104.120 +<li><a href="#sec-references">6 References</a></li> 104.121 +<li><a href="#sec-authorlist">7 Author List</a></li></ul> 104.122 + 104.123 +<div class="div1"> 104.124 +<h2 id="sec-introduction">1 Introduction </h2> 104.125 + 104.126 +<p>The 104.127 +<a href="http://www.w3.org/TR/SVG11">SVG specification</a> is a W3C 104.128 +recommendation that describes two-dimensional graphics in XML. </p> 104.129 +</div> 104.130 + 104.131 +<div class="div1"> 104.132 +<h2 id="sec-terminology">2 Terminology </h2> 104.133 + 104.134 +<p>The following key words and phrases used throughout this document are 104.135 +defined here for clarity. The terms Must, Should, and May are used to specify 104.136 +the extent to which an item is a requirement for the SVG working group in 104.137 +defining SVGP. These recommendations should not be mistaken as a guide to 104.138 +implementors. </p> 104.139 +<ol><li><b>'Must'</b> means that the item is an absolute requirement. </li><li><b>'Should'</b> means that there may exist valid reasons in particular 104.140 + circumstances to ignore the item, but the full implications must be 104.141 + understood and carefully weighed before choosing a different course. </li><li><b>'May' </b> means that item will be considered, but further 104.142 + examination is needed to determine if the item should be treated as a 104.143 + requirement. </li><li><b>'SVG' </b> refers to SVG in general without reference to any version 104.144 + or profile. </li><li><b>'SVG 1.0' </b> refers to the original SVG specification. </li><li><b>'SVG 1.1' </b> refers to the modularized version of SVG 1.0. </li><li><b>'SVG 1.2' </b> refers to the next release of SVG and is planned to 104.145 + reference this specification. </li><li><b>'SVGF' </b> refers to SVG Filter, an SVG specification for 104.146 + filtering. </li></ol> 104.147 +</div> 104.148 + 104.149 +<div class="div1"> 104.150 +<h2 id="sec-usage">3 Usage Scenarios </h2> 104.151 + 104.152 +<p>The following usage scenarios illustrate some of the ways in which SVG 104.153 +Filters might be used for various applications. </p> 104.154 + 104.155 +<p><b>Making drop shadows</b> Filtering the input (e.g. text or bitmaps) to 104.156 +produce drop shadows. </p> 104.157 +<p><b>Changing color tone</b> Filtering the input to become e.g. sepia-toned or black and white.</p> 104.158 +</div> 104.159 + 104.160 +<div class="div1"> 104.161 +<h2 id="sec-features">4 Special Filter Considerations</h2> 104.162 + 104.163 +<p><b>Memory and processor requirements</b> A filter effect may require 104.164 +significant memory or processing resources. </p> 104.165 +</div> 104.166 + 104.167 +<div class="div1"> 104.168 +<h2 id="sec-requirements">5 Requirements</h2> 104.169 +<ol class="req-level1"><li>General Requirements 104.170 + <ol class="req-level2"><li>Any valid SVG 1.1 filter <span class="term">must</span> be a valid 104.171 + SVGF filter. </li><li>Conformance criteria for SVGF <span class="term">must</span> be 104.172 + produced. The criteria <span class="term">should</span> be separated 104.173 + into sections relevant to particular application types (eg. SVG 104.174 + files/document fragments, SVG generators, SVG viewers, SVG printers, 104.175 + etc.) </li><li>Software or documents <span class="term">must</span> pass the 104.176 + relevant criteria to be able to claim conformance to the particular 104.177 + application type. </li><li>A conformance test suite <span class="term">must</span> be 104.178 + developed for SVGF. The test suite must be made publicly available. 104.179 + Conformance test suites for other uses of SVGF (e.g. prepress 104.180 + guidelines) <span class="term">may</span> be developed. </li><li>A specification referencing SVGF <span class="term">may</span> 104.181 + declare that 'enableBackground' is not supported when used in 104.182 + conjunction with that specification. If so, then support for 104.183 + 'backgroundAlpha' and 'backgroundImage' <span class="term">must</span> be excluded as well. </li><li>A specification referencing SVGF <span class="term">must</span> 104.184 + declare if animations applies when a 'filter' chain is in its scope. 104.185 + </li></ol> 104.186 + </li><li>Scripting 104.187 + <ol class="req-level2"><li>A dynamic SVGF viewer <span class="term">must</span> support the 104.188 + SVGF scripting feature set. </li></ol> 104.189 + </li><li>Animation 104.190 + <ol class="req-level2"><li>A dynamic SVGF viewer <span class="term">must</span> support animation of all 104.191 + properties listed as animatable. </li></ol> 104.192 + </li></ol> 104.193 +</div> 104.194 + 104.195 +<div class="div1"> 104.196 +<h2 id="sec-references">6 References</h2> 104.197 +<dl class="references"><dt class="label" id="ref-svg">SVG 1.1</dt><dd><em>Scalable Vector Graphics (SVG) 1.1 Specification</em>, Jon 104.198 + Ferraiolo, Jun Fujisawa, Dean Jackson, editors, W3C, 14 January 2003 104.199 + (Recommendation). See <a href="http://www.w3.org/TR/SVG11/">http://www.w3.org/TR/SVG11/</a> </dd><dt class="label" id="ref-svgreqs">SVG 1.1/1.2/2.0 104.200 + Requirements</dt><dd><em>SVG 1.1/1.2/2.0 Requirements Document</em>, Dean Jackson, editor, 104.201 + W3C, 22 April 2002. See <a href="http://www.w3.org/TR/SVG2Reqs/">http://www.w3.org/TR/SVG2Reqs/</a> 104.202 + </dd><dt class="label" id="ref-svgmobilereqs">Mobile SVG Profiles</dt><dd><em>Mobile SVG Profiles: SVG Tiny and SVG Basic</em>, Tolga Capin, 104.203 + editor, W3C, 14 January 2003 (Recommendation). See <a href="http://www.w3.org/TR/SVGMobile">http://www.w3.org/TR/SVGMobile</a> 104.204 + </dd></dl> 104.205 +</div> 104.206 +<hr class="xhtml"/> 104.207 + 104.208 +<h2 id="sec-authorlist">7 Author List</h2> 104.209 + 104.210 +<p>The authors of this specification are the participants of the W3C SVG 104.211 +Working Group.</p> 104.212 +<dl><dt>Authors:</dt><dd><ul><li>Ola Andersson, ZOOMON AB</li><li>Henric Axelsson, Ericsson AB</li><li>Phil Armstrong, Corel Corporation</li><li>Robin Berjon, Expway</li><li>Benoît Bézaire, Corel Corporation</li><li>Craig Brown, Canon Information Systems Research Australia</li><li>Mike Bultrowicz, Savage Software</li><li>Tolga Capin, Nokia Inc.</li><li>Mathias Larsson Carlander, Ericsson AB</li><li>Jakob Cederquist, ZOOMON AB</li><li>Charilaos Christopoulos, Ericsson AB</li><li>Lee Cole, Quark</li><li>Don Cone, America Online Inc.</li><li>Alex Danilo, Canon Information Systems Research Australia</li><li>Thomas DeWeese, Eastman Kodak</li><li>Jon Ferraiolo, Adobe Systems Inc.</li><li>Darryl Fuller, Schema Software</li><li>藤沢 æ·³ (FUJISAWA Jun), Canon</li><li>Rick Graham, BitFlash</li><li>Vincent Hardy, Sun Microsystems Inc.</li><li>端山 貴也 (HAYAMA Takanari), KDDI Research Labs</li><li>Lofton Henderson, OASIS</li><li>石å·é›…康 (ISHIKAWA Masayasu), W3C</li><li>Dean Jackson, W3C/CSIRO (<i>W3C Team Contact</i>)</li><li>Christophe Jolif, ILOG S.A.</li><li>Lee Klosterman, Hewlett-Packard</li><li>å°æž— 亜令 (KOBAYASHI Arei), KDDI Research Labs</li><li>Thierry Kormann, ILOG S.A.</li><li>Yuri Khramov, Schema Software</li><li>Chris Lilley, W3C (<i>Working Group Chair</i>)</li><li>Philip Mansfield, Schema Software</li><li>Peter Mierau, Adobe Systems Inc.</li><li>æ°´å£ å…… (MINAKUCHI Mitsuru), Sharp Corporation</li><li>Luc Minnebo, Agfa-Gevaert N.V.</li><li>å°é‡Ž 修一郎 (ONO Shuichiro), Sharp Corporation</li><li>Antoine Quint, Fuchsia Design (formerly of ILOG)</li><li>相良 毅 (SAGARA Takeshi), KDDI Research Labs</li><li>Brad Sipes, ZOOMON AB</li><li>Peter Sorotokin, Adobe Systems Inc.</li><li>上田 å®é«˜ (UEDA Hirotaka), Sharp Corporation</li><li>Rick Yardumian, Canon Development Americas</li><li>Charles Ying, Openwave Systems, Inc.</li></ul> 104.213 + </dd></dl> 104.214 +<script src="style/expanders.js" type="text/javascript"> </script></body></html> 104.215 \ No newline at end of file
105.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 105.2 +++ b/filters/publish/examples/Forque.svg Mon Apr 11 10:08:48 2011 +1000 105.3 @@ -0,0 +1,109 @@ 105.4 +<?xml version="1.0" standalone="no"?> 105.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > 105.6 +<svg xmlns="http://www.w3.org/2000/svg"> 105.7 +<defs> 105.8 +<desc> 105.9 +Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. 105.10 +</desc> 105.11 +<font id="FORQUE" horiz-adv-x="815" > 105.12 +<font-face font-family="FORQUE" font-weight="400" font-stretch="normal" units-per-em="2048" panose-1="2 0 5 0 0 0 0 0 0 0" ascent="1638" descent="-410" x-height="1233" cap-height="1434" bbox="-80 -418 1521 1579" underline-thickness="150" underline-position="-142" unicode-range="U+0020-U+20AC"/> 105.13 +<missing-glyph horiz-adv-x="389" /> 105.14 +<glyph glyph-name=".notdef" horiz-adv-x="389" /> 105.15 +<glyph glyph-name=".null" horiz-adv-x="0" /> 105.16 +<glyph glyph-name="nonmarkingreturn" horiz-adv-x="682" /> 105.17 +<glyph glyph-name="space" unicode=" " horiz-adv-x="389" /> 105.18 +<glyph glyph-bame="tab" unicode="	" horiz-adv-x="389" /> 105.19 +<glyph glyph-bame="uni00A0" unicode=" " horiz-adv-x="389" /> 105.20 +<glyph glyph-name="exclam" unicode="!" horiz-adv-x="417" d="M298 392h-287v1042h287v-1042zM258 242q-42 42 -102 42q-59 0 -101 -42q-43 -42 -43 -101q0 -60 43 -102q42 -42 101 -42q60 0 102 42t42 102q0 59 -42 101z" /> 105.21 +<glyph glyph-name="quotedbl" unicode=""" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 105.22 +<glyph glyph-name="numbersign" unicode="#" horiz-adv-x="1336" d="M596 859l-85 -290h242l86 290h-243zM673 1434h93l-141 -477h242l142 477h92l-141 -477h259l-29 -97h-259l-83 -290h279l-30 -98h-280l-140 -472h-92l139 472h-240l-142 -472h-92l140 472h-273l30 98h271l86 290h-295l29 97h295z" /> 105.23 +<glyph glyph-name="dollar" unicode="$" horiz-adv-x="1014" d="M577 1552v-102q68 -8 141 -35q10 -6 19 -6q25 0 41 45h50l103 -282h-49q-60 134 -168 179q-74 30 -137 39v-540q241 -93 322.5 -183t81.5 -264q0 -197 -119.5 -300t-284.5 -120v-239h-73v237q-188 3 -266 38q-10 6 -19 6q-25 0 -41 -45h-50v331h49q50 -183 152.5 -226 t174.5 -43v635q-214 67 -299 153q-92 91 -92 249q0 166 125 271q105 88 266 102v100h73zM577 655v-610q125 17 211.5 96t86.5 219q0 116 -69 183q-62 59 -229 112zM504 873v520q-119 -5 -199 -72q-86 -73 -86 -182q0 -98 55 -153q52 -54 230 -113z" /> 105.24 +<glyph glyph-name="percent" unicode="%" horiz-adv-x="1610" d="M1026 230q-54 53 -54 128q0 76 54 129q53 53 129 53q75 0 128 -53q54 -53 54 -129q0 -75 -54 -128q-53 -54 -128 -54q-76 0 -129 54zM901 612q-106 -105 -106 -254q0 -148 106 -254q105 -105 254 -105q148 0 253 105q106 106 106 254q0 149 -106 254q-105 105 -253 105 q-149 0 -254 -105zM235 939q-53 53 -53 129q0 75 53 128q54 54 129 54q76 0 129 -54q53 -53 53 -128q0 -76 -53 -129t-129 -53q-75 0 -129 53zM110 1322q-105 -106 -105 -254q0 -149 105 -254t254 -105t254 105t105 254q0 148 -105 254q-105 105 -254 105t-254 -105zM320 0 h-304l1200 1434h305z" /> 105.25 +<glyph glyph-name="ampersand" unicode="&" horiz-adv-x="1138" d="M672 375h-1v-13q0 -30 -21 -51t-51 -21h-237q-30 0 -51 21t-21 51t21 51q21 22 51 22h310v-60zM1041 430v287h-90v214h-286v-214h-307q-29 0 -50 21t-21 51v286q0 30 21 51t50 21q26 0 46 -16l5 -5v0v0l5 -5q-2 2 0 -1q2 -2 4 -5q-1 2 0 0q2 -3 4 -5q-2 2 0 -1q1 -3 3 -6 q-1 0 1 -3l1 -3q0 -1 1 -4q1 -4 1 -3v-5q1 -3 1 -2v-8v-14v-16h287v32q-1 147 -105 252q-104 104 -252 105h-14v0q-145 -6 -245 -109q-101 -105 -101 -250v-288q1 -119 72 -213q-72 -96 -72 -216q0 -148 105 -253t253 -105h236q119 1 214 72q95 -71 214 -72h14v287h-13 q-30 0 -51 21t-21 50v72h90z" /> 105.26 +<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="1024" d="M498 1294q-4 71 -37 130q-37 66 -37 84q0 32 23.5 51.5t62.5 19.5q37 0 61.5 -18t24.5 -47q0 -21 -36 -89q-33 -61 -37 -130q66 25 113 75q51 55 69 61q11 3 21 3q18 0 35 -10q26 -17 38 -53q6 -19 6 -36q0 -15 -4 -28q-10 -30 -38 -38q-6 -2 -19 -2q-25 0 -76 9 q-28 5 -55 5q-41 0 -81 -11q44 -55 105 -83q68 -32 79 -47q13 -18 13 -38q0 -9 -2 -17q-8 -30 -39 -53q-29 -22 -59 -22q-1 0 -1 1q-31 0 -48 23q-12 17 -22 94q-10 67 -47 125q-38 -58 -46 -124q-9 -75 -20 -90q-19 -25 -49 -27h-5q-28 0 -57 21q-30 21 -39 51q-4 10 -4 20 q0 17 11 32q13 17 83 51q61 29 105 82q-41 11 -80 11q-27 0 -53 -5q-54 -11 -78 -11q-9 0 -14 2q-30 9 -41 38q-6 13 -6 29q0 17 6 36q11 35 36 53q17 12 34 12q9 0 18 -3q20 -6 74 -62q47 -49 112 -75z" /> 105.27 +<glyph glyph-name="plus" unicode="+" horiz-adv-x="836" d="M731 573h-215v213h-288v-213h-215v-287h215v-218h288v218h215v287z" /> 105.28 +<glyph glyph-name="comma" unicode="," horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 105.29 +<glyph glyph-name="uni00AD" unicode="-" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" /> 105.30 +<glyph glyph-name="uni00AD" unicode="­" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" /> 105.31 +<glyph glyph-name="period" unicode="." horiz-adv-x="414" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 105.32 +<glyph glyph-name="slash" unicode="/" horiz-adv-x="569" d="M93 -50h-80l541 1484h80z" /> 105.33 +<glyph glyph-name="zero" unicode="0" horiz-adv-x="821" d="M440 329q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 50v778q0 29 21 50t50 21q30 0 51 -21t21 -50v-777zM727 1107q-1 148 -106 253q-105 104 -253 104q-147 0 -252 -104t-106 -251v-784q1 -147 106 -251t252 -104q148 0 253 104q105 105 106 253v0v780v0z" /> 105.34 +<glyph glyph-name="one" unicode="1" horiz-adv-x="476" d="M385 1107q0 148 -105 252q-104 104 -252 105h-14v-287h13q30 0 51 -21t21 -50v-1106h286v1107z" /> 105.35 +<glyph glyph-name="two" unicode="2" horiz-adv-x="818" d="M108 1359q-105 -105 -105 -253v-146h287v146q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-13v0q-144 -5 -245 -109q-100 -104 -101 -248v-360h717v287h-430v72q0 29 21 50t50 21h13v1q144 5 245 108q100 104 101 248v319q0 148 -105 253t-254 105 q-148 0 -253 -105z" /> 105.36 +<glyph glyph-name="three" unicode="3" horiz-adv-x="818" d="M375 1464h-14q-148 -1 -252 -105t-105 -252v0v-8v-140h287v132v0v15v7q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 1 3q2 3 3 6q1 1 0 1q2 2 4 5q1 2 0 1q1 2 4 4q1 2 0 1q2 3 5 5v0q2 3 5 5v0q20 16 45 16h1q29 0 50 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-172v-287h172 q29 0 50 -21t21 -50q0 -30 -21 -51t-50 -21h-359v-287h359q148 0 253 105t105 254q0 119 -72 215q72 94 72 213v319q0 145 -101 249q-100 104 -245 109v0z" /> 105.37 +<glyph glyph-name="four" unicode="4" horiz-adv-x="877" d="M323 575l113 244v-244h-113zM836 575h-113v859h-287l-430 -859v0v-286h430v-289h287v289h113v286z" /> 105.38 +<glyph glyph-name="five" unicode="5" horiz-adv-x="818" d="M727 1147v287h-717v-717h358q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v151h-287v-151q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v143h430z" /> 105.39 +<glyph glyph-name="six" unicode="6" d="M369 717q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v388h71zM298 1076q0 29 21 50t50 21h359v287h-360q-148 -1 -252 -105t-105 -252v-748q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v72z" /> 105.40 +<glyph glyph-name="seven" unicode="7" horiz-adv-x="762" d="M23 1434v-287h335l-351 -1147h297l438 1434h-719z" /> 105.41 +<glyph glyph-name="eight" unicode="8" d="M298 1106q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-1q-29 0 -50 21t-21 51v317zM319 278q-21 21 -21 80q0 30 21 51t50 21h1q29 0 50 -21t21 -50q0 -60 -21 -81t-51 -21q-29 0 -50 21zM11 314q6 -144 110 -244t248 -100q145 0 249 100t110 244 v0v59v0q-5 112 -72 201q72 95 72 215v317q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-317q0 -120 72 -215q-67 -89 -72 -201v0v-59v0z" /> 105.42 +<glyph glyph-name="nine" unicode="9" d="M366 717q-30 0 -51 21t-21 51v317q0 29 21 50t50 21q30 0 51 -21t21 -50v-389h-71zM437 359q0 -30 -21 -51t-50 -21h-359v-287h360q148 1 252 105t105 252v749q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-319q1 -147 105 -252q104 -104 252 -105h73v-71z" /> 105.43 +<glyph glyph-name="colon" unicode=":" horiz-adv-x="407" d="M251 881q-42 42 -101 42q-60 0 -102 -42t-42 -102q0 -59 42 -101t102 -42q59 0 101 42t42 101q0 60 -42 102zM251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 105.44 +<glyph glyph-name="uni037E" unicode=";" horiz-adv-x="404" d="M257 242q42 -42 42 -101q0 -19 -5 -38q-20 -76 -73 -132q-55 -58 -132 -80q-37 -11 -76 -12q74 44 112 121q-49 11 -81 50q-32 40 -32 91q0 59 42 101t102 42q59 0 101 -42zM257 881q42 -42 42 -102q0 -59 -42 -101t-101 -42q-60 0 -102 42t-42 101q0 60 42 102t102 42 q59 0 101 -42z" /> 105.45 +<glyph glyph-name="equal" unicode="=" horiz-adv-x="833" d="M10 353h718v-287h-718v287zM10 763h718v-287h-718v287z" /> 105.46 +<glyph glyph-name="question" unicode="?" horiz-adv-x="748" d="M264 242q-42 -42 -42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101t-101 42q-60 0 -102 -42zM377 1464l-14 -1q-148 0 -253 -105q-104 -104 -105 -252v-148h287v146q0 4 1 8q0 -1 0 2q1 4 1 5q0 -1 0 3q1 3 1 4l2 3l1 3q1 3 3 6q1 2 0 1q1 2 3 5v0l1 1 q1 2 3 4q1 2 1 1q2 3 4 5v0l5 5q20 16 46 16v0q30 0 51 -21t21 -51v-221q0 -29 -21 -50t-51 -21h-144v-420h288v162q96 42 155 130q60 90 60 198v222q0 146 -101 250t-245 109v1z" /> 105.47 +<glyph glyph-name="A" unicode="A" d="M287 574v531q0 30 21 51t51 21q29 0 50 -21t21 -51v-531h-143zM105 1359q-105 -105 -105 -254v-1105h287v287h143v-287h287v1105q0 149 -105 254t-253 105q-149 0 -254 -105z" /> 105.48 +<glyph glyph-name="B" unicode="B" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 1147h71h2q29 0 50 -21q20 -21 20 -50v-287q0 -30 -21 -51t-50 -21h-72v430zM717 784v9v0v285q-1 148 -106 252t-252 104h-359v-1434h361q146 1 250 104q104 104 106 250v0v9v0 q-2 117 -72 211q70 93 72 210v0z" /> 105.49 +<glyph glyph-name="C" unicode="C" horiz-adv-x="796" d="M430 472v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v777q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-784v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" /> 105.50 +<glyph glyph-name="D" unicode="D" d="M430 359q0 -30 -21 -51t-50 -21h-72v860h72q29 0 50 -21t21 -50v-717zM717 1077q-1 148 -105 252t-252 105h-360v-1434h360q148 1 252 105t105 252v720z" /> 105.51 +<glyph glyph-name="E" unicode="E" horiz-adv-x="721" d="M632 1147v287h-631v-1435h631v287h-344v144h287v287h-287v430h344z" /> 105.52 +<glyph glyph-name="F" unicode="F" horiz-adv-x="712" d="M634 1147v287h-631v-1435h287v431h287v287h-287v430h344z" /> 105.53 +<glyph glyph-name="G" unicode="G" horiz-adv-x="818" d="M376 1464h-15q-148 -1 -252 -105q-104 -105 -105 -252v-770q1 -148 105 -253q104 -104 252 -105h15l345 16v702h-355v-287h68v-144h-71q-30 0 -51 21t-21 51v767v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" /> 105.54 +<glyph glyph-name="H" unicode="H" horiz-adv-x="818" d="M428 1434v-869h-143v869h-287v-1435h287v279h143v-279h287v1435h-287z" /> 105.55 +<glyph glyph-name="I" unicode="I" horiz-adv-x="389" d="M285 -1h-287v1435h287v-1435z" /> 105.56 +<glyph glyph-name="J" unicode="J" horiz-adv-x="398" d="M5 1434v-1440q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1442h-287z" /> 105.57 +<glyph glyph-name="K" unicode="K" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 647h-287l-91 -646q-4 -29 -28 -50t-54 -21h-41v717h-287v-1435h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" /> 105.58 +<glyph glyph-name="L" unicode="L" horiz-adv-x="700" d="M294 286v1148h-287v-1435h631v287h-344z" /> 105.59 +<glyph glyph-name="M" unicode="M" horiz-adv-x="1253" d="M1152 1105q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-1105h286v1104q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-1104 h286v1104q0 30 21 51t51 21q29 0 50 -21t21 -51v-1104h287v1104z" /> 105.60 +<glyph glyph-name="N" unicode="N" horiz-adv-x="818" d="M438 1433v-343l-144 336v7h-286v-1432h286v841l144 -336v-505h286v1432h-286z" /> 105.61 +<glyph glyph-name="O" unicode="O" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v776q0 30 21 51t51 21t51 -21q20 -21 21 -51v-776zM728 1107q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-783q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v780z" /> 105.62 +<glyph glyph-name="P" unicode="P" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v430h72q30 0 51 -21t21 -51v-286zM726 1076q-1 148 -105 252t-252 105h-359v-1432h286v430h73q148 0 252 104q104 105 105 252v289z" /> 105.63 +<glyph glyph-name="Q" unicode="Q" horiz-adv-x="812" d="M289 1105q0 30 21 51t51 21t51 -21t21 -51v-776q0 -30 -21 -51t-51 -21t-51 21t-21 51v776zM719 1107q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-783v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v780z" /> 105.64 +<glyph glyph-name="R" unicode="R" horiz-adv-x="812" d="M291 716v430h71q30 0 51 -21t21 -50v-287q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v289q0 148 -104 252q-105 104 -252 105h-360v-1433h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" /> 105.65 +<glyph glyph-name="S" unicode="S" horiz-adv-x="799" d="M379 1463h-14q-148 -1 -252 -105t-105 -252v-319q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v317v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" /> 105.66 +<glyph glyph-name="T" unicode="T" horiz-adv-x="724" d="M693 1433h-716v-287h213v-1146h286v1146h217v287z" /> 105.67 +<glyph glyph-name="U" unicode="U" horiz-adv-x="821" d="M436 1433v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v1105h-286z" /> 105.68 +<glyph glyph-name="V" unicode="V" horiz-adv-x="939" d="M575 1433l-125 -944l-164 944h-287l276 -1433h333l279 1433h-312z" /> 105.69 +<glyph glyph-name="W" unicode="W" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v1106h-286v-1105q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v1105h-286v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105z" /> 105.70 +<glyph glyph-name="X" unicode="X" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 646h-286l-91 -645q-8 -55 -63 -69q-56 14 -64 69l-90 645h-287l91 -646v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" /> 105.71 +<glyph glyph-name="Y" unicode="Y" horiz-adv-x="812" d="M443 1433v-645q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v645h-287v-645q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v645h-286z" /> 105.72 +<glyph glyph-name="Z" unicode="Z" horiz-adv-x="793" d="M735 1433h-728v-287h354l-350 -1146h716v287h-342z" /> 105.73 +<glyph glyph-name="a" unicode="a" d="M287 574v331q0 30 21 51t51 21q29 0 50 -21t21 -51v-331h-143zM105 1159q-105 -105 -105 -254v-905h287v287h143v-287h287v905q0 149 -105 254t-253 105q-149 0 -254 -105z" /> 105.74 +<glyph glyph-name="b" unicode="b" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 947h71h2q29 0 50 -21q20 -21 20 -50v-87q0 -30 -21 -51t-50 -21h-72v230zM717 784v9v0v85q-1 148 -106 252t-252 104h-359v-1234h361q146 1 250 104q104 104 106 250v0v9v0q-2 117 -72 211 q70 93 72 210v0z" /> 105.75 +<glyph glyph-name="c" unicode="c" horiz-adv-x="796" d="M430 462v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v597q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-604v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" /> 105.76 +<glyph glyph-name="d" unicode="d" d="M430 359q0 -30 -21 -51t-50 -21h-72v660h72q29 0 50 -21t21 -50v-517zM717 877q-1 148 -105 252t-252 105h-360v-1234h360q148 1 252 105t105 252v520z" /> 105.77 +<glyph glyph-name="e" unicode="e" horiz-adv-x="721" d="M632 947v287h-631v-1235h631v287h-344v144h287v287h-287v230h344z" /> 105.78 +<glyph glyph-name="f" unicode="f" horiz-adv-x="712" d="M634 947v287h-631v-1235h287v431h287v287h-287v230h344z" /> 105.79 +<glyph glyph-name="g" unicode="g" horiz-adv-x="818" d="M376 1264h-15q-148 -1 -252 -105q-104 -105 -105 -252v-580q1 -148 105 -253q104 -104 252 -105h15l345 16v672h-355v-287h68v-114h-71q-30 0 -51 21t-21 51v577v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" /> 105.80 +<glyph glyph-name="h" unicode="h" horiz-adv-x="818" d="M428 1234v-669h-143v669h-287v-1235h287v279h143v-279h287v1235h-287z" /> 105.81 +<glyph glyph-name="i" unicode="i" horiz-adv-x="389" d="M285 -1h-287v1235h287v-1235z" /> 105.82 +<glyph glyph-name="j" unicode="j" horiz-adv-x="398" d="M5 1234v-1240q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1242h-287z" /> 105.83 +<glyph glyph-name="k" unicode="k" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 447h-287l-91 -446q-4 -29 -28 -50t-54 -21h-41v517h-287v-1235h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" /> 105.84 +<glyph glyph-name="l" unicode="l" horiz-adv-x="700" d="M294 286v948h-287v-1235h631v287h-344z" /> 105.85 +<glyph glyph-name="m" unicode="m" horiz-adv-x="1253" d="M1152 905q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-905h286v904q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-904h286 v904q0 30 21 51t51 21q29 0 50 -21t21 -51v-904h287v904z" /> 105.86 +<glyph glyph-name="n" unicode="n" horiz-adv-x="818" d="M438 1233v-343l-144 336v7h-286v-1232h286v641l144 -336v-305h286v1232h-286z" /> 105.87 +<glyph glyph-name="o" unicode="o" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v576q0 30 21 51t51 21t51 -21q20 -21 21 -51v-576zM728 907q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-583q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v580z" /> 105.88 +<glyph glyph-name="p" unicode="p" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v230h72q30 0 51 -21t21 -51v-86zM726 876q-1 148 -105 252t-252 105h-359v-1232h286v430h73q148 0 252 104q104 105 105 252v89z" /> 105.89 +<glyph glyph-name="q" unicode="q" horiz-adv-x="812" d="M289 905q0 30 21 51t51 21t51 -21t21 -51v-576q0 -30 -21 -51t-51 -21t-51 21t-21 51v576zM719 907q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-583v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v580z" /> 105.90 +<glyph glyph-name="r" unicode="r" horiz-adv-x="812" d="M291 716v230h71q30 0 51 -21t21 -50v-87q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v89q0 148 -104 252q-105 104 -252 105h-360v-1233h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" /> 105.91 +<glyph glyph-name="s" unicode="s" horiz-adv-x="799" d="M379 1263h-14q-148 -1 -252 -105t-105 -252v-119q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v117v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" /> 105.92 +<glyph glyph-name="t" unicode="t" horiz-adv-x="724" d="M693 1233h-716v-287h213v-946h286v946h217v287z" /> 105.93 +<glyph glyph-name="u" unicode="u" horiz-adv-x="821" d="M436 1233v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v905h-286z" /> 105.94 +<glyph glyph-name="v" unicode="v" horiz-adv-x="939" d="M575 1233l-125 -744l-164 744h-287l276 -1233h333l279 1233h-312z" /> 105.95 +<glyph glyph-name="w" unicode="w" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v906h-286v-905q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v905h-286v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905z" /> 105.96 +<glyph glyph-name="x" unicode="x" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 446h-286l-91 -445q-8 -55 -63 -69q-56 14 -64 69l-90 445h-287l91 -446v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" /> 105.97 +<glyph glyph-name="y" unicode="y" horiz-adv-x="812" d="M443 1233v-445q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v445h-287v-445q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v445h-286z" /> 105.98 +<glyph glyph-name="z" unicode="z" horiz-adv-x="793" d="M735 1233h-728v-287h314l-310 -946h716v287h-302z" /> 105.99 +<glyph glyph-name="bar" unicode="|" horiz-adv-x="1014" d="M427 1577h160v-1995h-160v1995z" /> 105.100 +<glyph glyph-name="brokenbar" unicode="¦" horiz-adv-x="1014" d="M427 371h160v-789h-160v789zM427 1578h160v-789h-160v789z" /> 105.101 +<glyph glyph-name="multiply" unicode="×" horiz-adv-x="908" d="M810 324l-167 167l165 165l-222 222l-165 -165l-167 167l-222 -222l167 -167l-169 -169l222 -222l169 169l167 -167z" /> 105.102 +<glyph glyph-name="quoteleft" unicode="‘" horiz-adv-x="401" d="M52 1198q42 -42 102 -42q59 0 101 42t42 101q0 51 -32 91q-32 39 -81 50q39 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" /> 105.103 +<glyph glyph-name="quoteright" unicode="’" horiz-adv-x="404" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 105.104 +<glyph glyph-name="quotesinglbase" unicode="‚" horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 105.105 +<glyph glyph-name="quotedblleft" unicode="“" horiz-adv-x="734" d="M392 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101zM52 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121 q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" /> 105.106 +<glyph glyph-name="quotedblright" unicode="”" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 105.107 +<glyph glyph-name="quotedblbase" unicode="„" horiz-adv-x="737" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 105.108 +<glyph glyph-name="bullet" unicode="•" horiz-adv-x="1024" d="M216 718q0 123 87 209t210 86q122 0 208.5 -86.5t86.5 -208.5t-87.5 -209.5t-209.5 -87.5q-123 0 -209 87t-86 210z" /> 105.109 +<glyph glyph-name="ellipsis" unicode="…" horiz-adv-x="1213" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM651 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM1051 242q-42 42 -101 42q-60 0 -102 -42 t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 105.110 +<glyph glyph-name="Euro" unicode="€" horiz-adv-x="939" d="M833 574v287h-445v214q0 30 21 51t51 21q29 0 50 -21t21 -51v-143h287v145q-1 148 -106 252q-105 105 -252 105q-148 0 -253 -104q-104 -104 -106 -251v-218h-101v-287h101v-219q2 -147 106 -251q105 -104 253 -104q147 0 252 104q105 105 106 252v146h-287v-144 q0 -29 -21 -50t-50 -21q-30 0 -51 21t-21 50v216h445z" /> 105.111 +</font> 105.112 +</defs></svg>
106.1 Binary file filters/publish/examples/enable-background-01.png has changed
107.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 107.2 +++ b/filters/publish/examples/enable-background-01.svg Mon Apr 11 10:08:48 2011 +1000 107.3 @@ -0,0 +1,89 @@ 107.4 +<?xml version="1.0" standalone="no"?> 107.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 107.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 107.7 +<svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270" 107.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 107.9 + <title>Example enable-background01</title> 107.10 + <desc>This test case shows five pictures which illustrate the rules 107.11 + for background image processing.</desc> 107.12 + 107.13 + <defs> 107.14 + <filter id="ShiftBGAndBlur" 107.15 + filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 107.16 + <desc> 107.17 + This filter discards the SourceGraphic, if any, and just produces 107.18 + a result consisting of the BackgroundImage shifted down 125 units 107.19 + and then blurred. 107.20 + </desc> 107.21 + <feOffset in="BackgroundImage" dx="0" dy="125" /> 107.22 + <feGaussianBlur stdDeviation="8" /> 107.23 + </filter> 107.24 + <filter id="ShiftBGAndBlur_WithSourceGraphic" 107.25 + filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 107.26 + <desc> 107.27 + This filter takes the BackgroundImage, shifts it down 125 units, blurs it, 107.28 + and then renders the SourceGraphic on top of the shifted/blurred background. 107.29 + </desc> 107.30 + <feOffset in="BackgroundImage" dx="0" dy="125" /> 107.31 + <feGaussianBlur stdDeviation="8" result="blur" /> 107.32 + <feMerge> 107.33 + <feMergeNode in="blur"/> 107.34 + <feMergeNode in="SourceGraphic"/> 107.35 + </feMerge> 107.36 + </filter> 107.37 + </defs> 107.38 + 107.39 + <g transform="translate(0,0)"> 107.40 + <desc>The first picture is our reference graphic without filters.</desc> 107.41 + <rect x="25" y="25" width="100" height="100" fill="red"/> 107.42 + <g opacity=".5"> 107.43 + <circle cx="125" cy="75" r="45" fill="green"/> 107.44 + <polygon points="160,25 160,125 240,75" fill="blue"/> 107.45 + </g> 107.46 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 107.47 + </g> 107.48 + 107.49 + <g enable-background="new" transform="translate(270,0)"> 107.50 + <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc> 107.51 + <rect x="25" y="25" width="100" height="100" fill="red"/> 107.52 + <g opacity=".5"> 107.53 + <circle cx="125" cy="75" r="45" fill="green"/> 107.54 + <polygon points="160,25 160,125 240,75" fill="blue"/> 107.55 + </g> 107.56 + <g filter="url(#ShiftBGAndBlur)"/> 107.57 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 107.58 + </g> 107.59 + 107.60 + <g enable-background="new" transform="translate(540,0)"> 107.61 + <desc>The third invokes ShiftBGAndBlur on the inner group.</desc> 107.62 + <rect x="25" y="25" width="100" height="100" fill="red"/> 107.63 + <g filter="url(#ShiftBGAndBlur)" opacity=".5"> 107.64 + <circle cx="125" cy="75" r="45" fill="green"/> 107.65 + <polygon points="160,25 160,125 240,75" fill="blue"/> 107.66 + </g> 107.67 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 107.68 + </g> 107.69 + 107.70 + <g enable-background="new" transform="translate(810,0)"> 107.71 + <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc> 107.72 + <rect x="25" y="25" width="100" height="100" fill="red"/> 107.73 + <g opacity=".5"> 107.74 + <circle cx="125" cy="75" r="45" fill="green"/> 107.75 + <polygon points="160,25 160,125 240,75" fill="blue" 107.76 + filter="url(#ShiftBGAndBlur)"/> 107.77 + </g> 107.78 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 107.79 + </g> 107.80 + 107.81 + <g enable-background="new" transform="translate(1080,0)"> 107.82 + <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc> 107.83 + <rect x="25" y="25" width="100" height="100" fill="red"/> 107.84 + <g opacity=".5"> 107.85 + <circle cx="125" cy="75" r="45" fill="green"/> 107.86 + <polygon points="160,25 160,125 240,75" fill="blue" 107.87 + filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/> 107.88 + </g> 107.89 + <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 107.90 + </g> 107.91 +</svg> 107.92 +
108.1 Binary file filters/publish/examples/feBlend.png has changed
109.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 109.2 +++ b/filters/publish/examples/feBlend.svg Mon Apr 11 10:08:48 2011 +1000 109.3 @@ -0,0 +1,46 @@ 109.4 +<?xml version="1.0"?> 109.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 109.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 109.7 +<svg width="5cm" height="5cm" viewBox="0 0 500 500" 109.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 109.9 + <title>Example feBlend - Examples of feBlend modes</title> 109.10 + <desc>Five text strings blended into a gradient, 109.11 + with one text string for each of the five feBlend modes.</desc> 109.12 + <defs> 109.13 + <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 109.14 + x1="100" y1="0" x2="300" y2="0"> 109.15 + <stop offset="0" stop-color="#000000" /> 109.16 + <stop offset=".33" stop-color="#ffffff" /> 109.17 + <stop offset=".67" stop-color="#ff0000" /> 109.18 + <stop offset="1" stop-color="#808080" /> 109.19 + </linearGradient> 109.20 + <filter id="Normal"> 109.21 + <feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/> 109.22 + </filter> 109.23 + <filter id="Multiply"> 109.24 + <feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/> 109.25 + </filter> 109.26 + <filter id="Screen"> 109.27 + <feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/> 109.28 + </filter> 109.29 + <filter id="Darken"> 109.30 + <feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/> 109.31 + </filter> 109.32 + <filter id="Lighten"> 109.33 + <feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/> 109.34 + </filter> 109.35 + </defs> 109.36 + <rect fill="none" stroke="blue" 109.37 + x="1" y="1" width="498" height="498"/> 109.38 + <g enable-background="new" > 109.39 + <rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" /> 109.40 + <g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" > 109.41 + <text x="50" y="90" filter="url(#Normal)" >Normal</text> 109.42 + <text x="50" y="180" filter="url(#Multiply)" >Multiply</text> 109.43 + <text x="50" y="270" filter="url(#Screen)" >Screen</text> 109.44 + <text x="50" y="360" filter="url(#Darken)" >Darken</text> 109.45 + <text x="50" y="450" filter="url(#Lighten)" >Lighten</text> 109.46 + </g> 109.47 + </g> 109.48 +</svg> 109.49 +
110.1 Binary file filters/publish/examples/feColorMatrix.png has changed
111.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 111.2 +++ b/filters/publish/examples/feColorMatrix.svg Mon Apr 11 10:08:48 2011 +1000 111.3 @@ -0,0 +1,55 @@ 111.4 +<?xml version="1.0"?> 111.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 111.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 111.7 +<svg width="8cm" height="5cm" viewBox="0 0 800 500" 111.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 111.9 + <title>Example feColorMatrix - Examples of feColorMatrix operations</title> 111.10 + <desc>Five text strings showing the effects of feColorMatrix: 111.11 + an unfiltered text string acting as a reference, 111.12 + use of the feColorMatrix matrix option to convert to grayscale, 111.13 + use of the feColorMatrix saturate option, 111.14 + use of the feColorMatrix hueRotate option, 111.15 + and use of the feColorMatrix luminanceToAlpha option.</desc> 111.16 + <defs> 111.17 + <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 111.18 + x1="100" y1="0" x2="500" y2="0"> 111.19 + <stop offset="0" stop-color="#ff00ff" /> 111.20 + <stop offset=".33" stop-color="#88ff88" /> 111.21 + <stop offset=".67" stop-color="#2020ff" /> 111.22 + <stop offset="1" stop-color="#d00000" /> 111.23 + </linearGradient> 111.24 + <filter id="Matrix" filterUnits="objectBoundingBox" 111.25 + x="0%" y="0%" width="100%" height="100%"> 111.26 + <feColorMatrix type="matrix" in="SourceGraphic" 111.27 + values=".33 .33 .33 0 0 111.28 + .33 .33 .33 0 0 111.29 + .33 .33 .33 0 0 111.30 + .33 .33 .33 0 0"/> 111.31 + </filter> 111.32 + <filter id="Saturate40" filterUnits="objectBoundingBox" 111.33 + x="0%" y="0%" width="100%" height="100%"> 111.34 + <feColorMatrix type="saturate" in="SourceGraphic" values="40%"/> 111.35 + </filter> 111.36 + <filter id="HueRotate90" filterUnits="objectBoundingBox" 111.37 + x="0%" y="0%" width="100%" height="100%"> 111.38 + <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/> 111.39 + </filter> 111.40 + <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 111.41 + x="0%" y="0%" width="100%" height="100%"> 111.42 + <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/> 111.43 + <feComposite in="SourceGraphic" in2="a" operator="in" /> 111.44 + </filter> 111.45 + </defs> 111.46 + <rect fill="none" stroke="blue" 111.47 + x="1" y="1" width="798" height="498"/> 111.48 + <g font-family="Verdana" font-size="75" 111.49 + font-weight="bold" fill="url(#MyGradient)" > 111.50 + <rect x="100" y="0" width="500" height="20" /> 111.51 + <text x="100" y="90">Unfiltered</text> 111.52 + <text x="100" y="190" filter="url(#Matrix)" >Matrix</text> 111.53 + <text x="100" y="290" filter="url(#Saturate40)" >Saturate</text> 111.54 + <text x="100" y="390" filter="url(#HueRotate90)" >HueRotate</text> 111.55 + <text x="100" y="490" filter="url(#LuminanceToAlpha)" >Luminance</text> 111.56 + </g> 111.57 +</svg> 111.58 +
112.1 Binary file filters/publish/examples/feComponentTransfer.png has changed
113.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 113.2 +++ b/filters/publish/examples/feComponentTransfer.svg Mon Apr 11 10:08:48 2011 +1000 113.3 @@ -0,0 +1,65 @@ 113.4 +<?xml version="1.0"?> 113.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 113.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 113.7 +<svg width="8cm" height="4cm" viewBox="0 0 800 400" 113.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 113.9 + <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title> 113.10 + <desc>Four text strings showing the effects of feComponentTransfer: 113.11 + an identity function acting as a reference, 113.12 + use of the feComponentTransfer table option, 113.13 + use of the feComponentTransfer linear option, 113.14 + and use of the feComponentTransfer gamma option.</desc> 113.15 + <defs> 113.16 + <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 113.17 + x1="100" y1="0" x2="600" y2="0"> 113.18 + <stop offset="0" stop-color="#ff0000" /> 113.19 + <stop offset=".33" stop-color="#00ff00" /> 113.20 + <stop offset=".67" stop-color="#0000ff" /> 113.21 + <stop offset="1" stop-color="#000000" /> 113.22 + </linearGradient> 113.23 + <filter id="Identity" filterUnits="objectBoundingBox" 113.24 + x="0%" y="0%" width="100%" height="100%"> 113.25 + <feComponentTransfer> 113.26 + <feFuncR type="identity"/> 113.27 + <feFuncG type="identity"/> 113.28 + <feFuncB type="identity"/> 113.29 + <feFuncA type="identity"/> 113.30 + </feComponentTransfer> 113.31 + </filter> 113.32 + <filter id="Table" filterUnits="objectBoundingBox" 113.33 + x="0%" y="0%" width="100%" height="100%"> 113.34 + <feComponentTransfer> 113.35 + <feFuncR type="table" tableValues="0 0 1 1"/> 113.36 + <feFuncG type="table" tableValues="1 1 0 0"/> 113.37 + <feFuncB type="table" tableValues="0 1 1 0"/> 113.38 + </feComponentTransfer> 113.39 + </filter> 113.40 + <filter id="Linear" filterUnits="objectBoundingBox" 113.41 + x="0%" y="0%" width="100%" height="100%"> 113.42 + <feComponentTransfer> 113.43 + <feFuncR type="linear" slope=".5" intercept=".25"/> 113.44 + <feFuncG type="linear" slope=".5" intercept="0"/> 113.45 + <feFuncB type="linear" slope=".5" intercept=".5"/> 113.46 + </feComponentTransfer> 113.47 + </filter> 113.48 + <filter id="Gamma" filterUnits="objectBoundingBox" 113.49 + x="0%" y="0%" width="100%" height="100%"> 113.50 + <feComponentTransfer> 113.51 + <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/> 113.52 + <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/> 113.53 + <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/> 113.54 + </feComponentTransfer> 113.55 + </filter> 113.56 + </defs> 113.57 + <rect fill="none" stroke="blue" 113.58 + x="1" y="1" width="798" height="398"/> 113.59 + <g font-family="Verdana" font-size="75" 113.60 + font-weight="bold" fill="url(#MyGradient)" > 113.61 + <rect x="100" y="0" width="600" height="20" /> 113.62 + <text x="100" y="90">Identity</text> 113.63 + <text x="100" y="190" filter="url(#Table)" >TableLookup</text> 113.64 + <text x="100" y="290" filter="url(#Linear)" >LinearFunc</text> 113.65 + <text x="100" y="390" filter="url(#Gamma)" >GammaFunc</text> 113.66 + </g> 113.67 +</svg> 113.68 +
114.1 Binary file filters/publish/examples/feComposite.png has changed
115.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 115.2 +++ b/filters/publish/examples/feComposite.svg Mon Apr 11 10:08:48 2011 +1000 115.3 @@ -0,0 +1,170 @@ 115.4 +<?xml version="1.0"?> 115.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 115.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 115.7 +<svg width="330" height="195" viewBox="0 0 1100 650" version="1.1" 115.8 + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 115.9 + <title>Example feComposite - Examples of feComposite operations</title> 115.10 + <desc>Four rows of six pairs of overlapping triangles depicting 115.11 + the six different feComposite operators under different 115.12 + opacity values and different clearing of the background.</desc> 115.13 + <defs> 115.14 + <desc>Define two sets of six filters for each of the six compositing operators. 115.15 + The first set wipes out the background image by flooding with opaque white. 115.16 + The second set does not wipe out the background, with the result 115.17 + that the background sometimes shines through and is other cases 115.18 + is blended into itself (i.e., "double-counting").</desc> 115.19 + <filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 115.20 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 115.21 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 115.22 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 115.23 + </filter> 115.24 + <filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 115.25 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 115.26 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 115.27 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 115.28 + </filter> 115.29 + <filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 115.30 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 115.31 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 115.32 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 115.33 + </filter> 115.34 + <filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 115.35 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 115.36 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 115.37 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 115.38 + </filter> 115.39 + <filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 115.40 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 115.41 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 115.42 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 115.43 + </filter> 115.44 + <filter id="arithmeticFlood" filterUnits="objectBoundingBox" 115.45 + x="-5%" y="-5%" width="110%" height="110%"> 115.46 + <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 115.47 + <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 115.48 + operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 115.49 + <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 115.50 + </filter> 115.51 + <filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 115.52 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 115.53 + </filter> 115.54 + <filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 115.55 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 115.56 + </filter> 115.57 + <filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 115.58 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 115.59 + </filter> 115.60 + <filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 115.61 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 115.62 + </filter> 115.63 + <filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 115.64 + <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 115.65 + </filter> 115.66 + <filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 115.67 + x="-5%" y="-5%" width="110%" height="110%"> 115.68 + <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 115.69 + operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 115.70 + </filter> 115.71 + <path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" /> 115.72 + <path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" /> 115.73 + <path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" /> 115.74 + <path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" /> 115.75 + <g id="TwoBlueTriangles"> 115.76 + <use xlink:href="#Blue100"/> 115.77 + <use xlink:href="#Blue50"/> 115.78 + </g> 115.79 + <g id="BlueTriangles"> 115.80 + <use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/> 115.81 + <use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/> 115.82 + <use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/> 115.83 + <use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/> 115.84 + <use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/> 115.85 + <use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/> 115.86 + </g> 115.87 + </defs> 115.88 + 115.89 + <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/> 115.90 + <g font-family="Verdana" font-size="40" shape-rendering="crispEdges"> 115.91 + <desc>Render the examples using the filters that draw on top of 115.92 + an opaque white surface, thus obliterating the background.</desc> 115.93 + <g enable-background="new"> 115.94 + <text x="15" y="75">opacity 1.0</text> 115.95 + <text x="15" y="115" font-size="27">(with feFlood)</text> 115.96 + <text x="15" y="200">opacity 0.5</text> 115.97 + <text x="15" y="240" font-size="27">(with feFlood)</text> 115.98 + <use xlink:href="#BlueTriangles"/> 115.99 + <g transform="translate(275,25)"> 115.100 + <use xlink:href="#Red100" filter="url(#overFlood)" /> 115.101 + <use xlink:href="#Red50" filter="url(#overFlood)" /> 115.102 + <text x="5" y="275">over</text> 115.103 + </g> 115.104 + <g transform="translate(400,25)"> 115.105 + <use xlink:href="#Red100" filter="url(#inFlood)" /> 115.106 + <use xlink:href="#Red50" filter="url(#inFlood)" /> 115.107 + <text x="35" y="275">in</text> 115.108 + </g> 115.109 + <g transform="translate(525,25)"> 115.110 + <use xlink:href="#Red100" filter="url(#outFlood)" /> 115.111 + <use xlink:href="#Red50" filter="url(#outFlood)" /> 115.112 + <text x="15" y="275">out</text> 115.113 + </g> 115.114 + <g transform="translate(650,25)"> 115.115 + <use xlink:href="#Red100" filter="url(#atopFlood)" /> 115.116 + <use xlink:href="#Red50" filter="url(#atopFlood)" /> 115.117 + <text x="10" y="275">atop</text> 115.118 + </g> 115.119 + <g transform="translate(775,25)"> 115.120 + <use xlink:href="#Red100" filter="url(#xorFlood)" /> 115.121 + <use xlink:href="#Red50" filter="url(#xorFlood)" /> 115.122 + <text x="15" y="275">xor</text> 115.123 + </g> 115.124 + <g transform="translate(900,25)"> 115.125 + <use xlink:href="#Red100" filter="url(#arithmeticFlood)" /> 115.126 + <use xlink:href="#Red50" filter="url(#arithmeticFlood)" /> 115.127 + <text x="-25" y="275">arithmetic</text> 115.128 + </g> 115.129 + </g> 115.130 + <g transform="translate(0,325)" enable-background="new"> 115.131 + <desc>Render the examples using the filters that do not obliterate 115.132 + the background, thus sometimes causing the background to continue 115.133 + to appear in some cases, and in other cases the background 115.134 + image blends into itself ("double-counting").</desc> 115.135 + <text x="15" y="75">opacity 1.0</text> 115.136 + <text x="15" y="115" font-size="27">(without feFlood)</text> 115.137 + <text x="15" y="200">opacity 0.5</text> 115.138 + <text x="15" y="240" font-size="27">(without feFlood)</text> 115.139 + <use xlink:href="#BlueTriangles"/> 115.140 + <g transform="translate(275,25)"> 115.141 + <use xlink:href="#Red100" filter="url(#overNoFlood)" /> 115.142 + <use xlink:href="#Red50" filter="url(#overNoFlood)" /> 115.143 + <text x="5" y="275">over</text> 115.144 + </g> 115.145 + <g transform="translate(400,25)"> 115.146 + <use xlink:href="#Red100" filter="url(#inNoFlood)" /> 115.147 + <use xlink:href="#Red50" filter="url(#inNoFlood)" /> 115.148 + <text x="35" y="275">in</text> 115.149 + </g> 115.150 + <g transform="translate(525,25)"> 115.151 + <use xlink:href="#Red100" filter="url(#outNoFlood)" /> 115.152 + <use xlink:href="#Red50" filter="url(#outNoFlood)" /> 115.153 + <text x="15" y="275">out</text> 115.154 + </g> 115.155 + <g transform="translate(650,25)"> 115.156 + <use xlink:href="#Red100" filter="url(#atopNoFlood)" /> 115.157 + <use xlink:href="#Red50" filter="url(#atopNoFlood)" /> 115.158 + <text x="10" y="275">atop</text> 115.159 + </g> 115.160 + <g transform="translate(775,25)"> 115.161 + <use xlink:href="#Red100" filter="url(#xorNoFlood)" /> 115.162 + <use xlink:href="#Red50" filter="url(#xorNoFlood)" /> 115.163 + <text x="15" y="275">xor</text> 115.164 + </g> 115.165 + <g transform="translate(900,25)"> 115.166 + <use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" /> 115.167 + <use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" /> 115.168 + <text x="-25" y="275">arithmetic</text> 115.169 + </g> 115.170 + </g> 115.171 + </g> 115.172 +</svg> 115.173 +
116.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 116.2 +++ b/filters/publish/examples/feDropShadow.svg Mon Apr 11 10:08:48 2011 +1000 116.3 @@ -0,0 +1,47 @@ 116.4 +<?xml version="1.0"?> 116.5 +<svg viewBox="0 0 800 400" 116.6 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 116.7 + <title>Example feDropShadow - Examples of feDropShadow operations</title> 116.8 + <desc>Four text strings showing the effects of feComponentTransfer: 116.9 + an identity function acting as a reference, 116.10 + use of the feComponentTransfer table option, 116.11 + use of the feComponentTransfer linear option, 116.12 + and use of the feComponentTransfer gamma option.</desc> 116.13 + <defs> 116.14 + <filter id="feDropShadowEquiv1"> 116.15 + <feGaussianBlur stdDeviation="3"/> 116.16 + <feOffset dx="3" dy="3" result="offsetblur"/> 116.17 + <feFlood flood-color="#720"/> 116.18 + <feComposite in2="offsetblur" operator="in"/> 116.19 + <feMerge> 116.20 + <feMergeNode/> 116.21 + <feMergeNode in="SourceGraphic"/> 116.22 + </feMerge> 116.23 + </filter> 116.24 + <filter id="feDropShadowEquiv2"> 116.25 + <feGaussianBlur stdDeviation="2"/> 116.26 + <feOffset dx="2" dy="2" result="offsetblur"/> 116.27 + <feFlood/> 116.28 + <feComposite in2="offsetblur" operator="in"/> 116.29 + <feMerge> 116.30 + <feMergeNode/> 116.31 + <feMergeNode in="SourceGraphic"/> 116.32 + </feMerge> 116.33 + </filter> 116.34 + <filter id="feDropShadow1"> 116.35 + <feDropShadow stdDeviation="3" flood-color="#720"/> 116.36 + </filter> 116.37 + <filter id="feDropShadow2"> 116.38 + <feDropShadow/> 116.39 + </filter> 116.40 + </defs> 116.41 + <rect fill="none" stroke="blue" 116.42 + x="1" y="1" width="798" height="398"/> 116.43 + <g font-family="Verdana" font-size="30"> 116.44 + <text x="100" y="90" filter="url(#feDropShadow1)">feDropShadow</text> 116.45 + <text x="100" y="140" filter="url(#feDropShadowEquiv1)" >feDropShadow</text> 116.46 + <text x="100" y="190" filter="url(#feDropShadow2)">feDropShadow</text> 116.47 + <text x="100" y="240" filter="url(#feDropShadowEquiv2)" >feDropShadow</text> 116.48 + </g> 116.49 +</svg> 116.50 +
117.1 Binary file filters/publish/examples/feGaussianBlur-stdDeviation-00.png has changed
118.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 118.2 +++ b/filters/publish/examples/feGaussianBlur-stdDeviation-00.svg Mon Apr 11 10:08:48 2011 +1000 118.3 @@ -0,0 +1,38 @@ 118.4 +<?xml version="1.0" encoding="UTF-8"?> 118.5 +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"> 118.6 + <defs> 118.7 + <font-face font-family="FORQUE"> 118.8 + <font-face-src> 118.9 + <font-face-uri xlink:href="Forque.svg#FORQUE"/> 118.10 + </font-face-src> 118.11 + </font-face> 118.12 + <style> 118.13 + /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */ 118.14 + text { text-anchor: middle; font: 70px FORQUE, sans-serif; } 118.15 + #bx { filter: url(#blurX) } 118.16 + #by { filter: url(#blurY) } 118.17 + #header { filter: url(#ds); fill: white; text-decoration: underline } 118.18 + #attribution { font-size: 6px } 118.19 + :root { background: green; fill: white } 118.20 + </style> 118.21 + <filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse"> 118.22 + <feGaussianBlur stdDeviation="4 0"> 118.23 + <animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/> 118.24 + </feGaussianBlur> 118.25 + </filter> 118.26 + <filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse"> 118.27 + <feGaussianBlur stdDeviation="0 4"/> 118.28 + </filter> 118.29 + <filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2"> 118.30 + <feGaussianBlur stdDeviation="3"/> 118.31 + <feOffset dx="2" dy="2"/> 118.32 + <feComposite in2="SourceGraphic" operator="in"/> 118.33 + </filter> 118.34 + </defs> 118.35 + 118.36 + <text id="bx" x="40%" y="50%">BlurX</text> 118.37 + <text id="by" x="60%" y="70%">BlurY</text> 118.38 + 118.39 + <text id="header" y="1em" x="50%">Unidirectional blur</text> 118.40 + <text id="attribution" x="100%" y="355">Forque font by Tup Wanders</text> 118.41 +</svg>
119.1 Binary file filters/publish/examples/feMorphology.png has changed
120.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 120.2 +++ b/filters/publish/examples/feMorphology.svg Mon Apr 11 10:08:48 2011 +1000 120.3 @@ -0,0 +1,37 @@ 120.4 +<?xml version="1.0"?> 120.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 120.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 120.7 +<svg width="5cm" height="7cm" viewBox="0 0 700 500" 120.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 120.9 + <title>Example feMorphology - Examples of erode and dilate</title> 120.10 + <desc>Five text strings drawn as outlines. 120.11 + The first is unfiltered. The second and third use 'erode'. 120.12 + The fourth and fifth use 'dilate'.</desc> 120.13 + <defs> 120.14 + <filter id="Erode3"> 120.15 + <feMorphology operator="erode" in="SourceGraphic" radius="3" /> 120.16 + </filter> 120.17 + <filter id="Erode6"> 120.18 + <feMorphology operator="erode" in="SourceGraphic" radius="6" /> 120.19 + </filter> 120.20 + <filter id="Dilate3"> 120.21 + <feMorphology operator="dilate" in="SourceGraphic" radius="3" /> 120.22 + </filter> 120.23 + <filter id="Dilate6"> 120.24 + <feMorphology operator="dilate" in="SourceGraphic" radius="6" /> 120.25 + </filter> 120.26 + </defs> 120.27 + <rect fill="none" stroke="blue" stroke-width="2" 120.28 + x="1" y="1" width="698" height="498"/> 120.29 + <g enable-background="new" > 120.30 + <g font-family="Verdana" font-size="75" 120.31 + fill="none" stroke="black" stroke-width="6" > 120.32 + <text x="50" y="90">Unfiltered</text> 120.33 + <text x="50" y="180" filter="url(#Erode3)" >Erode radius 3</text> 120.34 + <text x="50" y="270" filter="url(#Erode6)" >Erode radius 6</text> 120.35 + <text x="50" y="360" filter="url(#Dilate3)" >Dilate radius 3</text> 120.36 + <text x="50" y="450" filter="url(#Dilate6)" >Dilate radius 6</text> 120.37 + </g> 120.38 + </g> 120.39 +</svg> 120.40 +
121.1 Binary file filters/publish/examples/feTurbulence.png has changed
122.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 122.2 +++ b/filters/publish/examples/feTurbulence.svg Mon Apr 11 10:08:48 2011 +1000 122.3 @@ -0,0 +1,71 @@ 122.4 +<?xml version="1.0"?> 122.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 122.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 122.7 +<svg width="450px" height="325px" viewBox="0 0 450 325" 122.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 122.9 + <title>Example feTurbulence - Examples of feTurbulence operations</title> 122.10 + <desc>Six rectangular areas showing the effects of 122.11 + various parameter settings for feTurbulence.</desc> 122.12 + <g font-family="Verdana" text-anchor="middle" font-size="10" > 122.13 + <defs> 122.14 + <filter id="Turb1" filterUnits="objectBoundingBox" 122.15 + x="0%" y="0%" width="100%" height="100%"> 122.16 + <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/> 122.17 + </filter> 122.18 + <filter id="Turb2" filterUnits="objectBoundingBox" 122.19 + x="0%" y="0%" width="100%" height="100%"> 122.20 + <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/> 122.21 + </filter> 122.22 + <filter id="Turb3" filterUnits="objectBoundingBox" 122.23 + x="0%" y="0%" width="100%" height="100%"> 122.24 + <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/> 122.25 + </filter> 122.26 + <filter id="Turb4" filterUnits="objectBoundingBox" 122.27 + x="0%" y="0%" width="100%" height="100%"> 122.28 + <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/> 122.29 + </filter> 122.30 + <filter id="Turb5" filterUnits="objectBoundingBox" 122.31 + x="0%" y="0%" width="100%" height="100%"> 122.32 + <feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/> 122.33 + </filter> 122.34 + <filter id="Turb6" filterUnits="objectBoundingBox" 122.35 + x="0%" y="0%" width="100%" height="100%"> 122.36 + <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/> 122.37 + </filter> 122.38 + </defs> 122.39 + 122.40 + <rect x="1" y="1" width="448" height="323" 122.41 + fill="none" stroke="blue" stroke-width="1" /> 122.42 + 122.43 + <rect x="25" y="25" width="100" height="75" filter="url(#Turb1)" /> 122.44 + <text x="75" y="117">type=turbulence</text> 122.45 + <text x="75" y="129">baseFrequency=0.05</text> 122.46 + <text x="75" y="141">numOctaves=2</text> 122.47 + 122.48 + <rect x="175" y="25" width="100" height="75" filter="url(#Turb2)" /> 122.49 + <text x="225" y="117">type=turbulence</text> 122.50 + <text x="225" y="129">baseFrequency=0.1</text> 122.51 + <text x="225" y="141">numOctaves=2</text> 122.52 + 122.53 + <rect x="325" y="25" width="100" height="75" filter="url(#Turb3)" /> 122.54 + <text x="375" y="117">type=turbulence</text> 122.55 + <text x="375" y="129">baseFrequency=0.05</text> 122.56 + <text x="375" y="141">numOctaves=8</text> 122.57 + 122.58 + <rect x="25" y="180" width="100" height="75" filter="url(#Turb4)" /> 122.59 + <text x="75" y="272">type=fractalNoise</text> 122.60 + <text x="75" y="284">baseFrequency=0.1</text> 122.61 + <text x="75" y="296">numOctaves=4</text> 122.62 + 122.63 + <rect x="175" y="180" width="100" height="75" filter="url(#Turb5)" /> 122.64 + <text x="225" y="272">type=fractalNoise</text> 122.65 + <text x="225" y="284">baseFrequency=0.4</text> 122.66 + <text x="225" y="296">numOctaves=4</text> 122.67 + 122.68 + <rect x="325" y="180" width="100" height="75" filter="url(#Turb6)" /> 122.69 + <text x="375" y="272">type=fractalNoise</text> 122.70 + <text x="375" y="284">baseFrequency=0.1</text> 122.71 + <text x="375" y="296">numOctaves=1</text> 122.72 + </g> 122.73 +</svg> 122.74 +
123.1 Binary file filters/publish/examples/filters00.png has changed
124.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 124.2 +++ b/filters/publish/examples/filters00.svg Mon Apr 11 10:08:48 2011 +1000 124.3 @@ -0,0 +1,53 @@ 124.4 +<?xml version="1.0"?> 124.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 124.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 124.7 +<svg width="11.3cm" height="2.2cm" viewBox="0 0 1130 220" version="1.1" 124.8 + xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 124.9 + <title>Example filters00.svg - filter effects before and after</title> 124.10 + <desc>Picture of the before and after affects of filtering.</desc> 124.11 + <defs> 124.12 + <filter id="MyFilter"> 124.13 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 124.14 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 124.15 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant="1" 124.16 + specularExponent="10" lighting-color="white" 124.17 + result="specOut"> 124.18 + <fePointLight x="-5000" y="-10000" z="20000"/> 124.19 + </feSpecularLighting> 124.20 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 124.21 + <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 124.22 + k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 124.23 + <feMerge> 124.24 + <feMergeNode in="offsetBlur"/> 124.25 + <feMergeNode in="litPaint"/> 124.26 + </feMerge> 124.27 + </filter> 124.28 + <g id="CircleRectTriangle"> 124.29 + <g> 124.30 + <circle cx="85" cy="80" r="40" fill="yellow" /> 124.31 +<g> 124.32 + <rect x="145" y="45" width="90" height="70" fill="red" /> 124.33 +</g> 124.34 + <path d="M260,40 L335,80 L260,120 z" fill="#4444ff" /> 124.35 + </g> 124.36 + </g> 124.37 + <path id="LineWithArrow" 124.38 + d="M0,-15 h80 v-10 l40,25 l-40,25 v-10 h-80 z" /> 124.39 + </defs> 124.40 + <g font-family="Verdana" font-size="30" > 124.41 + <rect x="1" y="1" width="1128" height="218" 124.42 + fill="#cccccc" stroke="blue" /> 124.43 + <use x="0" y="0" xlink:href="#CircleRectTriangle"/> 124.44 + <text x="20" y="180">Original source graphic</text> 124.45 + <use x="380" y="80" xlink:href="#LineWithArrow"/> 124.46 + <text x="520" y="70">Filter</text> 124.47 + <text x="520" y="120">Effect</text> 124.48 + <use x="630" y="80" xlink:href="#LineWithArrow"/> 124.49 + <text x="790" y="180">Result of filter effect</text> 124.50 + </g> 124.51 + <g filter="url(#MyFilter)" > 124.52 + <use x="750" y="0" xlink:href="#CircleRectTriangle"/> 124.53 + </g> 124.54 +</svg> 124.55 + 124.56 +
125.1 Binary file filters/publish/examples/filters01-0.png has changed
126.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 126.2 +++ b/filters/publish/examples/filters01-0.svg Mon Apr 11 10:08:48 2011 +1000 126.3 @@ -0,0 +1,23 @@ 126.4 +<?xml version="1.0"?> 126.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 126.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 126.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" version="1.1" 126.8 + xmlns="http://www.w3.org/2000/svg"> 126.9 + <title>Example filters01-0.svg - source graphic with no filters</title> 126.10 + <desc>Shows what filters01.svg looks like without any 126.11 + filters.</desc> 126.12 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 126.13 + <g> 126.14 + <g> 126.15 + <path fill="none" stroke="#D90000" stroke-width="10" 126.16 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 126.17 + <path fill="#D90000" 126.18 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 126.19 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 126.20 + <text x="52" y="76">SVG</text> 126.21 + </g> 126.22 + </g> 126.23 + </g> 126.24 +</svg> 126.25 + 126.26 +
127.1 Binary file filters/publish/examples/filters01-1.png has changed
128.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 128.2 +++ b/filters/publish/examples/filters01-1.svg Mon Apr 11 10:08:48 2011 +1000 128.3 @@ -0,0 +1,28 @@ 128.4 +<?xml version="1.0"?> 128.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 128.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 128.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 128.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 128.9 + <title>Example filters01-1.svg - after first step</title> 128.10 + <desc>Shows intermediate result for filters01.svg after applying 128.11 + the first filter element, feGaussianBlur.</desc> 128.12 + <defs> 128.13 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 128.14 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 128.15 + </filter> 128.16 + </defs> 128.17 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 128.18 + <g filter="url(#MyFilter)" > 128.19 + <g> 128.20 + <path fill="none" stroke="#D90000" stroke-width="10" 128.21 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 128.22 + <path fill="#D90000" 128.23 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 128.24 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 128.25 + <text x="52" y="76">SVG</text> 128.26 + </g> 128.27 + </g> 128.28 + </g> 128.29 +</svg> 128.30 + 128.31 +
129.1 Binary file filters/publish/examples/filters01-2.png has changed
130.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 130.2 +++ b/filters/publish/examples/filters01-2.svg Mon Apr 11 10:08:48 2011 +1000 130.3 @@ -0,0 +1,29 @@ 130.4 +<?xml version="1.0"?> 130.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 130.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 130.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 130.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 130.9 + <title>Example filters01-2.svg - after second step</title> 130.10 + <desc>Shows intermediate result for filters01.svg after applying 130.11 + the second filter element, feOffset.</desc> 130.12 + <defs> 130.13 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 130.14 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 130.15 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 130.16 + </filter> 130.17 + </defs> 130.18 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 130.19 + <g filter="url(#MyFilter)" > 130.20 + <g> 130.21 + <path fill="none" stroke="#D90000" stroke-width="10" 130.22 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 130.23 + <path fill="#D90000" 130.24 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 130.25 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 130.26 + <text x="52" y="76">SVG</text> 130.27 + </g> 130.28 + </g> 130.29 + </g> 130.30 +</svg> 130.31 + 130.32 +
131.1 Binary file filters/publish/examples/filters01-3.png has changed
132.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 132.2 +++ b/filters/publish/examples/filters01-3.svg Mon Apr 11 10:08:48 2011 +1000 132.3 @@ -0,0 +1,34 @@ 132.4 +<?xml version="1.0"?> 132.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 132.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 132.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 132.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 132.9 + <title>Example filters01-3.svg - after third step</title> 132.10 + <desc>Shows intermediate result for filters01.svg after applying 132.11 + the third filter element, feSpecularLighting.</desc> 132.12 + <defs> 132.13 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 132.14 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 132.15 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 132.16 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 132.17 + specularExponent="20" lighting-color="#bbbbbb" 132.18 + result="specOut"> 132.19 + <fePointLight x="-5000" y="-10000" z="20000"/> 132.20 + </feSpecularLighting> 132.21 + </filter> 132.22 + </defs> 132.23 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 132.24 + <g filter="url(#MyFilter)" > 132.25 + <g> 132.26 + <path fill="none" stroke="#D90000" stroke-width="10" 132.27 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 132.28 + <path fill="#D90000" 132.29 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 132.30 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 132.31 + <text x="52" y="76">SVG</text> 132.32 + </g> 132.33 + </g> 132.34 + </g> 132.35 +</svg> 132.36 + 132.37 +
133.1 Binary file filters/publish/examples/filters01-4.png has changed
134.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 134.2 +++ b/filters/publish/examples/filters01-4.svg Mon Apr 11 10:08:48 2011 +1000 134.3 @@ -0,0 +1,35 @@ 134.4 +<?xml version="1.0"?> 134.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 134.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 134.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 134.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 134.9 + <title>Example filters01-4.svg - after fourth step</title> 134.10 + <desc>Shows intermediate result for filters01.svg after applying 134.11 + the fourth filter element, feComposite.</desc> 134.12 + <defs> 134.13 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 134.14 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 134.15 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 134.16 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 134.17 + specularExponent="20" lighting-color="#bbbbbb" 134.18 + result="specOut"> 134.19 + <fePointLight x="-5000" y="-10000" z="20000"/> 134.20 + </feSpecularLighting> 134.21 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 134.22 + </filter> 134.23 + </defs> 134.24 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 134.25 + <g filter="url(#MyFilter)" > 134.26 + <g> 134.27 + <path fill="none" stroke="#D90000" stroke-width="10" 134.28 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 134.29 + <path fill="#D90000" 134.30 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 134.31 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 134.32 + <text x="52" y="76">SVG</text> 134.33 + </g> 134.34 + </g> 134.35 + </g> 134.36 +</svg> 134.37 + 134.38 +
135.1 Binary file filters/publish/examples/filters01-5.png has changed
136.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 136.2 +++ b/filters/publish/examples/filters01-5.svg Mon Apr 11 10:08:48 2011 +1000 136.3 @@ -0,0 +1,37 @@ 136.4 +<?xml version="1.0"?> 136.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 136.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 136.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 136.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 136.9 + <title>Example filters01-5.svg - after fifth step</title> 136.10 + <desc>Shows intermediate result for filters01.svg after applying 136.11 + the fifth filter element, feComposite.</desc> 136.12 + <defs> 136.13 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 136.14 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 136.15 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 136.16 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 136.17 + specularExponent="20" lighting-color="#bbbbbb" 136.18 + result="specOut"> 136.19 + <fePointLight x="-5000" y="-10000" z="20000"/> 136.20 + </feSpecularLighting> 136.21 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 136.22 + <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 136.23 + k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 136.24 + </filter> 136.25 + </defs> 136.26 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 136.27 + <g filter="url(#MyFilter)" > 136.28 + <g> 136.29 + <path fill="none" stroke="#D90000" stroke-width="10" 136.30 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 136.31 + <path fill="#D90000" 136.32 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 136.33 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 136.34 + <text x="52" y="76">SVG</text> 136.35 + </g> 136.36 + </g> 136.37 + </g> 136.38 +</svg> 136.39 + 136.40 +
137.1 Binary file filters/publish/examples/filters01-6.png has changed
138.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 138.2 +++ b/filters/publish/examples/filters01-6.svg Mon Apr 11 10:08:48 2011 +1000 138.3 @@ -0,0 +1,43 @@ 138.4 +<?xml version="1.0"?> 138.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 138.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 138.7 +<svg width="115px" height="70px" viewBox="0 0 200 120" 138.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 138.9 + <title>Example filters01.svg - introducing filter effects</title> 138.10 + <desc>An example which combines multiple filter primitives 138.11 + to produce a 3D lighting effect on a graphic consisting 138.12 + of the string "SVG" sitting on top of oval filled in red 138.13 + and surrounded by an oval outlined in red.</desc> 138.14 + <defs> 138.15 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 138.16 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 138.17 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 138.18 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 138.19 + specularExponent="20" lighting-color="#bbbbbb" 138.20 + result="specOut"> 138.21 + <fePointLight x="-5000" y="-10000" z="20000"/> 138.22 + </feSpecularLighting> 138.23 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 138.24 + <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 138.25 + k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 138.26 + <feMerge> 138.27 + <feMergeNode in="offsetBlur"/> 138.28 + <feMergeNode in="litPaint"/> 138.29 + </feMerge> 138.30 + </filter> 138.31 + </defs> 138.32 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 138.33 + <g filter="url(#MyFilter)" > 138.34 + <g> 138.35 + <path fill="none" stroke="#D90000" stroke-width="10" 138.36 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 138.37 + <path fill="#D90000" 138.38 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 138.39 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 138.40 + <text x="52" y="76">SVG</text> 138.41 + </g> 138.42 + </g> 138.43 + </g> 138.44 +</svg> 138.45 + 138.46 +
139.1 Binary file filters/publish/examples/filters01.png has changed
140.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 140.2 +++ b/filters/publish/examples/filters01.svg Mon Apr 11 10:08:48 2011 +1000 140.3 @@ -0,0 +1,43 @@ 140.4 +<?xml version="1.0"?> 140.5 +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 140.6 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 140.7 +<svg width="7.5cm" height="5cm" viewBox="0 0 200 120" 140.8 + xmlns="http://www.w3.org/2000/svg" version="1.1"> 140.9 + <title>Example filters01.svg - introducing filter effects</title> 140.10 + <desc>An example which combines multiple filter primitives 140.11 + to produce a 3D lighting effect on a graphic consisting 140.12 + of the string "SVG" sitting on top of oval filled in red 140.13 + and surrounded by an oval outlined in red.</desc> 140.14 + <defs> 140.15 + <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 140.16 + <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 140.17 + <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 140.18 + <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 140.19 + specularExponent="20" lighting-color="#bbbbbb" 140.20 + result="specOut"> 140.21 + <fePointLight x="-5000" y="-10000" z="20000"/> 140.22 + </feSpecularLighting> 140.23 + <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 140.24 + <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 140.25 + k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 140.26 + <feMerge> 140.27 + <feMergeNode in="offsetBlur"/> 140.28 + <feMergeNode in="litPaint"/> 140.29 + </feMerge> 140.30 + </filter> 140.31 + </defs> 140.32 + <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 140.33 + <g filter="url(#MyFilter)" > 140.34 + <g> 140.35 + <path fill="none" stroke="#D90000" stroke-width="10" 140.36 + d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 140.37 + <path fill="#D90000" 140.38 + d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 140.39 + <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 140.40 + <text x="52" y="76">SVG</text> 140.41 + </g> 140.42 + </g> 140.43 + </g> 140.44 +</svg> 140.45 + 140.46 +
141.1 Binary file filters/publish/examples/filtersubregion00.png has changed
142.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 142.2 +++ b/filters/publish/examples/filtersubregion00.svg Mon Apr 11 10:08:48 2011 +1000 142.3 @@ -0,0 +1,43 @@ 142.4 +<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"> 142.5 + <defs> 142.6 + <filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox"> 142.7 + <feFlood x="25%" y="25%" width="50%" height="50%" 142.8 + flood-color="green" flood-opacity="0.75"/> 142.9 + </filter> 142.10 + <filter id="blend" primitiveUnits="objectBoundingBox"> 142.11 + <feBlend x="25%" y="25%" width="50%" height="50%" 142.12 + in2="SourceGraphic" mode="multiply"/> 142.13 + </filter> 142.14 + <filter id="merge" primitiveUnits="objectBoundingBox"> 142.15 + <feMerge x="25%" y="25%" width="50%" height="50%"> 142.16 + <feMergeNode in="SourceGraphic"/> 142.17 + <feMergeNode in="FillPaint"/> 142.18 + </feMerge> 142.19 + </filter> 142.20 + </defs> 142.21 + 142.22 + <g fill="none" stroke="blue" stroke-width="4"> 142.23 + <rect width="200" height="200"/> 142.24 + <line x2="200" y2="200"/> 142.25 + <line x1="200" y2="200"/> 142.26 + </g> 142.27 + <circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/> 142.28 + 142.29 + <g transform="translate(200 0)"> 142.30 + <g fill="none" stroke="blue" stroke-width="4"> 142.31 + <rect width="200" height="200"/> 142.32 + <line x2="200" y2="200"/> 142.33 + <line x1="200" y2="200"/> 142.34 + </g> 142.35 + <circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/> 142.36 + </g> 142.37 + 142.38 + <g transform="translate(0 200)"> 142.39 + <g fill="none" stroke="blue" stroke-width="4"> 142.40 + <rect width="200" height="200"/> 142.41 + <line x2="200" y2="200"/> 142.42 + <line x1="200" y2="200"/> 142.43 + </g> 142.44 + <circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/> 142.45 + </g> 142.46 +</svg> 142.47 \ No newline at end of file
143.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 143.2 +++ b/filters/publish/rng/feBlend Mon Apr 11 10:08:48 2011 +1000 143.3 @@ -0,0 +1,33 @@ 143.4 + <define name='svg.feBlend.content'> 143.5 + <zeroOrMore> 143.6 + <choice> 143.7 + <ref name='animate'/> 143.8 + <ref name='set'/> 143.9 + </choice> 143.10 + </zeroOrMore> 143.11 + </define> 143.12 + 143.13 + <define name='feBlend'> 143.14 + <element name='feBlend'> 143.15 + <ref name='feBlend.attr'/> 143.16 + <ref name='svg.feBlend.content'/> 143.17 + </element> 143.18 + </define> 143.19 + 143.20 + <define name='feBlend.attr' combine='interleave'> 143.21 + <ref name='svg.Core.attr'/> 143.22 + <ref name='svg.FilterColor.attr'/> 143.23 + <ref name='svg.FilterPrimitiveWithIn.attr'/> 143.24 + <attribute name='in2'/> 143.25 + <optional> 143.26 + <attribute name='mode' a:defaultValue='normal'> 143.27 + <choice> 143.28 + <value>normal</value> 143.29 + <value>multiply</value> 143.30 + <value>screen</value> 143.31 + <value>darken</value> 143.32 + <value>lighten</value> 143.33 + </choice> 143.34 + </attribute> 143.35 + </optional> 143.36 + </define>
144.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 144.2 +++ b/filters/publish/rng/feColorMatrix Mon Apr 11 10:08:48 2011 +1000 144.3 @@ -0,0 +1,34 @@ 144.4 + <define name='svg.feColorMatrix.content'> 144.5 + <zeroOrMore> 144.6 + <choice> 144.7 + <ref name='animate'/> 144.8 + <ref name='set'/> 144.9 + </choice> 144.10 + </zeroOrMore> 144.11 + </define> 144.12 + 144.13 + <define name='feColorMatrix'> 144.14 + <element name='feColorMatrix'> 144.15 + <ref name='feColorMatrix.attr'/> 144.16 + <ref name='svg.feColorMatrix.content'/> 144.17 + </element> 144.18 + </define> 144.19 + 144.20 + <define name='feColorMatrix.attr' combine='interleave'> 144.21 + <ref name='svg.Core.attr'/> 144.22 + <ref name='svg.FilterColor.attr'/> 144.23 + <ref name='svg.FilterPrimitiveWithIn.attr'/> 144.24 + <optional> 144.25 + <attribute name='type' a:defaultValue='matrix'> 144.26 + <choice> 144.27 + <value>matrix</value> 144.28 + <value>saturate</value> 144.29 + <value>hueRotate</value> 144.30 + <value>luminanceToAlpha</value> 144.31 + </choice> 144.32 + </attribute> 144.33 + </optional> 144.34 + <optional> 144.35 + <attribute name='values'/> 144.36 + </optional> 144.37 + </define>
145.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 145.2 +++ b/filters/publish/rng/feComponentTransfer Mon Apr 11 10:08:48 2011 +1000 145.3 @@ -0,0 +1,98 @@ 145.4 + <define name='svg.feComponentTransfer.content'> 145.5 + <optional><ref name='feFuncR'/></optional> 145.6 + <optional><ref name='feFuncG'/></optional> 145.7 + <optional><ref name='feFuncB'/></optional> 145.8 + <optional><ref name='feFuncA'/></optional> 145.9 + </define> 145.10 + 145.11 + <define name='feComponentTransfer'> 145.12 + <element name='feComponentTransfer'> 145.13 + <ref name='feComponentTransfer.attr'/> 145.14 + <ref name='svg.feComponentTransfer.content'/> 145.15 + </element> 145.16 + </define> 145.17 + 145.18 + <define name='feComponentTransfer.attr' combine='interleave'> 145.19 + <ref name='svg.Core.attr'/> 145.20 + <ref name='svg.FilterColor.attr'/> 145.21 + <ref name='svg.FilterPrimitiveWithIn.attr'/> 145.22 + </define> 145.23 + 145.24 + 145.25 + <define name='SVG.feFunc.content'> 145.26 + <zeroOrMore> 145.27 + <choice> 145.28 + <ref name='animate'/> 145.29 + <ref name='set'/> 145.30 + </choice> 145.31 + </zeroOrMore> 145.32 + </define> 145.33 + 145.34 + <define name='feFuncR'> 145.35 + <element name='feFuncR'> 145.36 + <ref name='feFunc.attr'/> 145.37 + <ref name='svg.feFunc.content'/> 145.38 + </element> 145.39 + </define> 145.40 + 145.41 + <define name='feFuncG'> 145.42 + <element name='feFuncG'> 145.43 + <ref name='feFunc.attr'/> 145.44 + <ref name='svg.feFunc.content'/> 145.45 + </element> 145.46 + </define> 145.47 + 145.48 + <define name='feFuncB'> 145.49 + <element name='feFuncB'> 145.50 + <ref name='feFunc.attr'/> 145.51 + <ref name='svg.feFunc.content'/> 145.52 + </element> 145.53 + </define> 145.54 + 145.55 + <define name='feFuncA'> 145.56 + <element name='feFuncA'> 145.57 + <ref name='feFunc.attr'/> 145.58 + <ref name='svg.feFunc.content'/> 145.59 + </element> 145.60 + </define> 145.61 + 145.62 + <define name='feFunc.attr' combine='interleave'> 145.63 + <ref name='svg.Core.attr'/> 145.64 + <attribute name='type'> 145.65 + <choice> 145.66 + <value>identity</value> 145.67 + <value>table</value> 145.68 + <value>discrete</value> 145.69 + <value>linear</value> 145.70 + <value>gamma</value> 145.71 + </choice> 145.72 + </attribute> 145.73 + <optional> 145.74 + <attribute name='tableValues'/> 145.75 + </optional> 145.76 + <optional> 145.77 + <attribute name='slope'> 145.78 + <ref name='Number.datatype'/> 145.79 + </attribute> 145.80 + </optional> 145.81 + <optional> 145.82 + <attribute name='intercept'> 145.83 + <ref name='Number.datatype'/> 145.84 + </attribute> 145.85 + </optional> 145.86 + <optional> 145.87 + <attribute name='amplitude'> 145.88 + <ref name='Number.datatype'/> 145.89 + </attribute> 145.90 + </optional> 145.91 + <optional> 145.92 + <attribute name='exponent'> 145.93 + <ref name='Number.datatype'/> 145.94 + </attribute> 145.95 + </optional> 145.96 + <optional> 145.97 + <attribute name='offset'> 145.98 + <ref name='Number.datatype'/> 145.99 + </attribute> 145.100 + </optional> 145.101 + </define> 145.102 \ No newline at end of file
146.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 146.2 +++ b/filters/publish/rng/feComposite Mon Apr 11 10:08:48 2011 +1000 146.3 @@ -0,0 +1,54 @@ 146.4 + <define name='svg.feComposite.content'> 146.5 + <zeroOrMore> 146.6 + <choice> 146.7 + <ref name='animate'/> 146.8 + <ref name='set'/> 146.9 + </choice> 146.10 + </zeroOrMore> 146.11 + </define> 146.12 + 146.13 + <define name='feComposite'> 146.14 + <element name='feComposite'> 146.15 + <ref name='feComposite.attr'/> 146.16 + <ref name='svg.feComposite.content'/> 146.17 + </element> 146.18 + </define> 146.19 + 146.20 + <define name='feComposite.attr' combine='interleave'> 146.21 + <ref name='svg.Core.attr'/> 146.22 + <ref name='svg.FilterColor.attr'/> 146.23 + <ref name='svg.FilterPrimitiveWithIn.attr'/> 146.24 + <attribute name='in2'/> 146.25 + <optional> 146.26 + <attribute name='operator' a:defaultValue='over'> 146.27 + <choice> 146.28 + <value>over</value> 146.29 + <value>in</value> 146.30 + <value>out</value> 146.31 + <value>atop</value> 146.32 + <value>xor</value> 146.33 + <value>arithmetic</value> 146.34 + </choice> 146.35 + </attribute> 146.36 + </optional> 146.37 + <optional> 146.38 + <attribute name='k1'> 146.39 + <ref name='Number.datatype'/> 146.40 + </attribute> 146.41 + </optional> 146.42 + <optional> 146.43 + <attribute name='k2'> 146.44 + <ref name='Number.datatype'/> 146.45 + </attribute> 146.46 + </optional> 146.47 + <optional> 146.48 + <attribute name='k3'> 146.49 + <ref name='Number.datatype'/> 146.50 + </attribute> 146.51 + </optional> 146.52 + <optional> 146.53 + <attribute name='k4'> 146.54 + <ref name='Number.datatype'/> 146.55 + </attribute> 146.56 + </optional> 146.57 + </define>
147.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 147.2 +++ b/filters/publish/rng/feConvolveMatrix Mon Apr 11 10:08:48 2011 +1000 147.3 @@ -0,0 +1,64 @@ 147.4 + <define name='svg.feConvolveMatrix.content'> 147.5 + <zeroOrMore> 147.6 + <choice> 147.7 + <ref name='animate'/> 147.8 + <ref name='set'/> 147.9 + </choice> 147.10 + </zeroOrMore> 147.11 + </define> 147.12 + 147.13 + <define name='feConvolveMatrix'> 147.14 + <element name='feConvolveMatrix'> 147.15 + <ref name='feConvolveMatrix.attr'/> 147.16 + <ref name='svg.feConvolveMatrix.content'/> 147.17 + </element> 147.18 + </define> 147.19 + 147.20 + <define name='feConvolveMatrix.attr' combine='interleave'> 147.21 + <ref name='svg.Core.attr'/> 147.22 + <ref name='svg.FilterColor.attr'/> 147.23 + <ref name='svg.FilterPrimitiveWithIn.attr'/> 147.24 + <attribute name='order'> 147.25 + <ref name='NumberOptionalNumber.datatype'/> 147.26 + </attribute> 147.27 + <attribute name='kernelMatrix'/> 147.28 + <optional> 147.29 + <attribute name='divisor'> 147.30 + <ref name='Number.datatype'/> 147.31 + </attribute> 147.32 + </optional> 147.33 + <optional> 147.34 + <attribute name='bias'> 147.35 + <ref name='Number.datatype'/> 147.36 + </attribute> 147.37 + </optional> 147.38 + <optional> 147.39 + <attribute name='targetX'> 147.40 + <ref name='Integer.datatype'/> 147.41 + </attribute> 147.42 + </optional> 147.43 + <optional> 147.44 + <attribute name='targetY'> 147.45 + <ref name='Integer.datatype'/> 147.46 + </attribute> 147.47 + </optional> 147.48 + <optional> 147.49 + <attribute name='edgeMode' a:defaultValue='duplicate'> 147.50 + <choice> 147.51 + <value>duplicate</value> 147.52 + <value>wrap</value> 147.53 + <value>none</value> 147.54 + </choice> 147.55 + </attribute> 147.56 + </optional> 147.57 + <optional> 147.58 + <attribute name='kernelUnitLength'> 147.59 + <ref name='NumberOptionalNumber.datatype'/> 147.60 + </attribute> 147.61 + </optional> 147.62 + <optional> 147.63 + <attribute name='preserveAlpha'> 147.64 + <ref name='Boolean.datatype'/> 147.65 + </attribute> 147.66 + </optional> 147.67 + </define>
148.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 148.2 +++ b/filters/publish/rng/feDiffuseLighting Mon Apr 11 10:08:48 2011 +1000 148.3 @@ -0,0 +1,49 @@ 148.4 + <define name='svg.feDiffuseLighting.content'> 148.5 + <choice> 148.6 + <ref name='feDistantLight'/> 148.7 + <ref name='fePointLight'/> 148.8 + <ref name='feSpotLight'/> 148.9 + </choice> 148.10 + <zeroOrMore> 148.11 + <choice> 148.12 + <ref name='animate'/> 148.13 + <ref name='set'/> 148.14 + <ref name='animateColor'/> 148.15 + </choice> 148.16 + </zeroOrMore> 148.17 + </define> 148.18 + 148.19 + <define name='feDiffuseLighting'> 148.20 + <element name='feDiffuseLighting'> 148.21 + <ref name='attlist.feDiffuseLighting'/> 148.22 + <ref name='svg.feDiffuseLighting.content'/> 148.23 + </element> 148.24 + </define> 148.25 + 148.26 + <define name='attlist.feDiffuseLighting' combine='interleave'> 148.27 + <ref name='svg.Core.attrib'/> 148.28 + <ref name='svg.Style.attrib'/> 148.29 + <ref name='svg.Color.attrib'/> 148.30 + <ref name='svg.FilterColor.attrib'/> 148.31 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 148.32 + <optional> 148.33 + <attribute name='lighting-color'> 148.34 + <ref name='SVGColor.datatype'/> 148.35 + </attribute> 148.36 + </optional> 148.37 + <optional> 148.38 + <attribute name='surfaceScale'> 148.39 + <ref name='Number.datatype'/> 148.40 + </attribute> 148.41 + </optional> 148.42 + <optional> 148.43 + <attribute name='diffuseConstant'> 148.44 + <ref name='Number.datatype'/> 148.45 + </attribute> 148.46 + </optional> 148.47 + <optional> 148.48 + <attribute name='kernelUnitLength'> 148.49 + <ref name='NumberOptionalNumber.datatype'/> 148.50 + </attribute> 148.51 + </optional> 148.52 + </define>
149.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 149.2 +++ b/filters/publish/rng/feDisplacementMap Mon Apr 11 10:08:48 2011 +1000 149.3 @@ -0,0 +1,47 @@ 149.4 + <define name='svg.feDisplacementMap.content'> 149.5 + <zeroOrMore> 149.6 + <choice> 149.7 + <ref name='animate'/> 149.8 + <ref name='set'/> 149.9 + </choice> 149.10 + </zeroOrMore> 149.11 + </define> 149.12 + 149.13 + <define name='feDisplacementMap'> 149.14 + <element name='feDisplacementMap'> 149.15 + <ref name='attlist.feDisplacementMap'/> 149.16 + <ref name='svg.feDisplacementMap.content'/> 149.17 + </element> 149.18 + </define> 149.19 + 149.20 + <define name='attlist.feDisplacementMap' combine='interleave'> 149.21 + <ref name='svg.Core.attrib'/> 149.22 + <ref name='svg.FilterColor.attrib'/> 149.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 149.24 + <attribute name='in2'/> 149.25 + <optional> 149.26 + <attribute name='scale'> 149.27 + <ref name='Number.datatype'/> 149.28 + </attribute> 149.29 + </optional> 149.30 + <optional> 149.31 + <attribute name='xChannelSelector' a:defaultValue='A'> 149.32 + <choice> 149.33 + <value>R</value> 149.34 + <value>G</value> 149.35 + <value>B</value> 149.36 + <value>A</value> 149.37 + </choice> 149.38 + </attribute> 149.39 + </optional> 149.40 + <optional> 149.41 + <attribute name='yChannelSelector' a:defaultValue='A'> 149.42 + <choice> 149.43 + <value>R</value> 149.44 + <value>G</value> 149.45 + <value>B</value> 149.46 + <value>A</value> 149.47 + </choice> 149.48 + </attribute> 149.49 + </optional> 149.50 + </define>
150.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 150.2 +++ b/filters/publish/rng/feDistantLight Mon Apr 11 10:08:48 2011 +1000 150.3 @@ -0,0 +1,29 @@ 150.4 + <define name='svg.feDistantLight.content'> 150.5 + <zeroOrMore> 150.6 + <choice> 150.7 + <ref name='animate'/> 150.8 + <ref name='set'/> 150.9 + </choice> 150.10 + </zeroOrMore> 150.11 + </define> 150.12 + 150.13 + <define name='feDistantLight'> 150.14 + <element name='feDistantLight'> 150.15 + <ref name='feDistantLight.attr'/> 150.16 + <ref name='svg.feDistantLight.content'/> 150.17 + </element> 150.18 + </define> 150.19 + 150.20 + <define name='feDistantLight.attr' combine='interleave'> 150.21 + <ref name='svg.Core.attr'/> 150.22 + <optional> 150.23 + <attribute name='azimuth'> 150.24 + <ref name='Number.datatype'/> 150.25 + </attribute> 150.26 + </optional> 150.27 + <optional> 150.28 + <attribute name='elevation'> 150.29 + <ref name='Number.datatype'/> 150.30 + </attribute> 150.31 + </optional> 150.32 + </define>
151.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 151.2 +++ b/filters/publish/rng/feDropShadow Mon Apr 11 10:08:48 2011 +1000 151.3 @@ -0,0 +1,37 @@ 151.4 + <define name='svg.feDropShadow.content'> 151.5 + <zeroOrMore> 151.6 + <choice> 151.7 + <ref name='animate'/> 151.8 + <ref name='set'/> 151.9 + </choice> 151.10 + </zeroOrMore> 151.11 + </define> 151.12 + 151.13 + <define name='feDropShadow'> 151.14 + <element name='feDropShadow'> 151.15 + <ref name='attlist.feDropShadow'/> 151.16 + <ref name='svg.feDropShadow.content'/> 151.17 + </element> 151.18 + </define> 151.19 + 151.20 + <define name='attlist.feDropShadow' combine='interleave'> 151.21 + <ref name='svg.Core.attrib'/> 151.22 + <ref name='svg.FilterColor.attrib'/> 151.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 151.24 + 151.25 + <optional> 151.26 + <attribute name='dx'> 151.27 + <ref name='Coordinate.datatype'/> 151.28 + </attribute> 151.29 + </optional> 151.30 + <optional> 151.31 + <attribute name='dy'> 151.32 + <ref name='Coordinate.datatype'/> 151.33 + </attribute> 151.34 + </optional> 151.35 + <optional> 151.36 + <attribute name='stdDeviation'> 151.37 + <ref name='NumberOptionalNumber.datatype'/> 151.38 + </attribute> 151.39 + </optional> 151.40 + </define>
152.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 152.2 +++ b/filters/publish/rng/feFlood Mon Apr 11 10:08:48 2011 +1000 152.3 @@ -0,0 +1,34 @@ 152.4 + <define name='svg.feFlood.content'> 152.5 + <zeroOrMore> 152.6 + <choice> 152.7 + <ref name='animate'/> 152.8 + <ref name='set'/> 152.9 + <ref name='animateColor'/> 152.10 + </choice> 152.11 + </zeroOrMore> 152.12 + </define> 152.13 + 152.14 + <define name='feFlood'> 152.15 + <element name='feFlood'> 152.16 + <ref name='attlist.feFlood'/> 152.17 + <ref name='svg.feFlood.content'/> 152.18 + </element> 152.19 + </define> 152.20 + 152.21 + <define name='attlist.feFlood' combine='interleave'> 152.22 + <ref name='svg.Core.attrib'/> 152.23 + <ref name='svg.Style.attrib'/> 152.24 + <ref name='svg.Color.attrib'/> 152.25 + <ref name='svg.FilterColor.attrib'/> 152.26 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 152.27 + <optional> 152.28 + <attribute name='flood-color'> 152.29 + <ref name='SVGColor.datatype'/> 152.30 + </attribute> 152.31 + </optional> 152.32 + <optional> 152.33 + <attribute name='flood-opacity'> 152.34 + <ref name='OpacityValue.datatype'/> 152.35 + </attribute> 152.36 + </optional> 152.37 + </define>
153.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 153.2 +++ b/filters/publish/rng/feGaussianBlur Mon Apr 11 10:08:48 2011 +1000 153.3 @@ -0,0 +1,27 @@ 153.4 + <define name='svg.feGaussianBlur.content'> 153.5 + <zeroOrMore> 153.6 + <choice> 153.7 + <ref name='animate'/> 153.8 + <ref name='set'/> 153.9 + </choice> 153.10 + </zeroOrMore> 153.11 + </define> 153.12 + 153.13 + <define name='feGaussianBlur'> 153.14 + <element name='feGaussianBlur'> 153.15 + <ref name='attlist.feGaussianBlur'/> 153.16 + <ref name='svg.feGaussianBlur.content'/> 153.17 + </element> 153.18 + </define> 153.19 + 153.20 + <define name='attlist.feGaussianBlur' combine='interleave'> 153.21 + <ref name='svg.Core.attrib'/> 153.22 + <ref name='svg.FilterColor.attrib'/> 153.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 153.24 + <optional> 153.25 + <attribute name='stdDeviation'> 153.26 + <ref name='NumberOptionalNumber.datatype'/> 153.27 + </attribute> 153.28 + </optional> 153.29 + </define> 153.30 + 153.31 \ No newline at end of file
154.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 154.2 +++ b/filters/publish/rng/feImage Mon Apr 11 10:08:48 2011 +1000 154.3 @@ -0,0 +1,32 @@ 154.4 + <define name='SVG.feImage.content'> 154.5 + <zeroOrMore> 154.6 + <choice> 154.7 + <ref name='animate'/> 154.8 + <ref name='set'/> 154.9 + <ref name='animateTransform'/> 154.10 + </choice> 154.11 + </zeroOrMore> 154.12 + </define> 154.13 + 154.14 + <define name='feImage'> 154.15 + <element name='feImage'> 154.16 + <ref name='attlist.feImage'/> 154.17 + <ref name='svg.feImage.content'/> 154.18 + </element> 154.19 + </define> 154.20 + 154.21 + <define name='attlist.feImage' combine='interleave'> 154.22 + <ref name='svg.Core.attrib'/> 154.23 + <ref name='svg.Style.attrib'/> 154.24 + <ref name='svg.Presentation.attrib'/> 154.25 + <ref name='svg.FilterPrimitive.attrib'/> 154.26 + <ref name='svg.XLinkEmbed.attrib'/> 154.27 + <ref name='svg.External.attrib'/> 154.28 + <ref name='svg.Transition.attrib'/> 154.29 + <ref name='svg.ShadowInherit.attrib'/> 154.30 + <optional> 154.31 + <attribute name='preserveAspectRatio' a:defaultValue='xMidYMid meet'> 154.32 + <ref name='PreserveAspectRatioSpec.datatype'/> 154.33 + </attribute> 154.34 + </optional> 154.35 + </define>
155.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 155.2 +++ b/filters/publish/rng/feMerge Mon Apr 11 10:08:48 2011 +1000 155.3 @@ -0,0 +1,41 @@ 155.4 + <define name='svg.feMerge.content'> 155.5 + <zeroOrMore> 155.6 + <ref name='feMergeNode'/> 155.7 + </zeroOrMore> 155.8 + </define> 155.9 + 155.10 + <define name='feMerge'> 155.11 + <element name='feMerge'> 155.12 + <ref name='attlist.feMerge'/> 155.13 + <ref name='svg.feMerge.content'/> 155.14 + </element> 155.15 + </define> 155.16 + 155.17 + <define name='attlist.feMerge' combine='interleave'> 155.18 + <ref name='svg.Core.attrib'/> 155.19 + <ref name='svg.FilterColor.attrib'/> 155.20 + <ref name='svg.FilterPrimitive.attrib'/> 155.21 + </define> 155.22 + 155.23 + <define name='svg.feMergeNode.content'> 155.24 + <zeroOrMore> 155.25 + <choice> 155.26 + <ref name='animate'/> 155.27 + <ref name='set'/> 155.28 + </choice> 155.29 + </zeroOrMore> 155.30 + </define> 155.31 + 155.32 + <define name='feMergeNode'> 155.33 + <element name='feMergeNode'> 155.34 + <ref name='attlist.feMergeNode'/> 155.35 + <ref name='svg.feMergeNode.content'/> 155.36 + </element> 155.37 + </define> 155.38 + 155.39 + <define name='attlist.feMergeNode' combine='interleave'> 155.40 + <ref name='svg.Core.attrib'/> 155.41 + <optional> 155.42 + <attribute name='in'/> 155.43 + </optional> 155.44 + </define>
156.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 156.2 +++ b/filters/publish/rng/feMorphology Mon Apr 11 10:08:48 2011 +1000 156.3 @@ -0,0 +1,34 @@ 156.4 + <define name='svg.feMorphology.content'> 156.5 + <zeroOrMore> 156.6 + <choice> 156.7 + <ref name='animate'/> 156.8 + <ref name='set'/> 156.9 + </choice> 156.10 + </zeroOrMore> 156.11 + </define> 156.12 + 156.13 + <define name='feMorphology'> 156.14 + <element name='feMorphology'> 156.15 + <ref name='attlist.feMorphology'/> 156.16 + <ref name='svg.feMorphology.content'/> 156.17 + </element> 156.18 + </define> 156.19 + 156.20 + <define name='attlist.feMorphology' combine='interleave'> 156.21 + <ref name='svg.Core.attrib'/> 156.22 + <ref name='svg.FilterColor.attrib'/> 156.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 156.24 + <optional> 156.25 + <attribute name='operator' a:defaultValue='erode'> 156.26 + <choice> 156.27 + <value>erode</value> 156.28 + <value>dilate</value> 156.29 + </choice> 156.30 + </attribute> 156.31 + </optional> 156.32 + <optional> 156.33 + <attribute name='radius'> 156.34 + <ref name='NumberOptionalNumber.datatype'/> 156.35 + </attribute> 156.36 + </optional> 156.37 + </define>
157.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 157.2 +++ b/filters/publish/rng/feOffset Mon Apr 11 10:08:48 2011 +1000 157.3 @@ -0,0 +1,21 @@ 157.4 + <define name='svg.feOffset.content'> 157.5 + <zeroOrMore> 157.6 + <choice> 157.7 + <ref name='animate'/> 157.8 + <ref name='set'/> 157.9 + </choice> 157.10 + </zeroOrMore> 157.11 + </define> 157.12 + 157.13 + <define name='feOffset'> 157.14 + <element name='feOffset'> 157.15 + <ref name='attlist.feOffset'/> 157.16 + <ref name='svg.feOffset.content'/> 157.17 + </element> 157.18 + </define> 157.19 + 157.20 + <define name='attlist.feOffset' combine='interleave'> 157.21 + <ref name='svg.Core.attrib'/> 157.22 + <ref name='svg.FilterColor.attrib'/> 157.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 157.24 + </define>
158.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 158.2 +++ b/filters/publish/rng/fePointLight Mon Apr 11 10:08:48 2011 +1000 158.3 @@ -0,0 +1,34 @@ 158.4 + <define name='svg.fePointLight.content'> 158.5 + <zeroOrMore> 158.6 + <choice> 158.7 + <ref name='animate'/> 158.8 + <ref name='set'/> 158.9 + </choice> 158.10 + </zeroOrMore> 158.11 + </define> 158.12 + 158.13 + <define name='fePointLight'> 158.14 + <element name='fePointLight'> 158.15 + <ref name='fePointLight.attr'/> 158.16 + <ref name='svg.fePointLight.content'/> 158.17 + </element> 158.18 + </define> 158.19 + 158.20 + <define name='fePointLight.attr' combine='interleave'> 158.21 + <ref name='svg.Core.attr'/> 158.22 + <optional> 158.23 + <attribute name='x'> 158.24 + <ref name='Number.datatype'/> 158.25 + </attribute> 158.26 + </optional> 158.27 + <optional> 158.28 + <attribute name='y'> 158.29 + <ref name='Number.datatype'/> 158.30 + </attribute> 158.31 + </optional> 158.32 + <optional> 158.33 + <attribute name='z'> 158.34 + <ref name='Number.datatype'/> 158.35 + </attribute> 158.36 + </optional> 158.37 + </define>
159.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 159.2 +++ b/filters/publish/rng/feSpecularLighting Mon Apr 11 10:08:48 2011 +1000 159.3 @@ -0,0 +1,54 @@ 159.4 + <define name='svg.feSpecularLighting.content'> 159.5 + <choice> 159.6 + <ref name='feDistantLight'/> 159.7 + <ref name='fePointLight'/> 159.8 + <ref name='feSpotLight'/> 159.9 + </choice> 159.10 + <zeroOrMore> 159.11 + <choice> 159.12 + <ref name='animate'/> 159.13 + <ref name='set'/> 159.14 + <ref name='animateColor'/> 159.15 + </choice> 159.16 + </zeroOrMore> 159.17 + </define> 159.18 + 159.19 + <define name='feSpecularLighting'> 159.20 + <element name='feSpecularLighting'> 159.21 + <ref name='attlist.feSpecularLighting'/> 159.22 + <ref name='svg.feSpecularLighting.content'/> 159.23 + </element> 159.24 + </define> 159.25 + 159.26 + <define name='attlist.feSpecularLighting' combine='interleave'> 159.27 + <ref name='svg.Core.attrib'/> 159.28 + <ref name='svg.Style.attrib'/> 159.29 + <ref name='svg.Color.attrib'/> 159.30 + <ref name='svg.FilterColor.attrib'/> 159.31 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 159.32 + <optional> 159.33 + <attribute name='lighting-color'> 159.34 + <ref name='SVGColor.datatype'/> 159.35 + </attribute> 159.36 + </optional> 159.37 + <optional> 159.38 + <attribute name='surfaceScale'> 159.39 + <ref name='Number.datatype'/> 159.40 + </attribute> 159.41 + </optional> 159.42 + <optional> 159.43 + <attribute name='specularConstant'> 159.44 + <ref name='Number.datatype'/> 159.45 + </attribute> 159.46 + </optional> 159.47 + <optional> 159.48 + <attribute name='specularExponent'> 159.49 + <ref name='Number.datatype'/> 159.50 + </attribute> 159.51 + </optional> 159.52 + <optional> 159.53 + <attribute name='kernelUnitLength'> 159.54 + <ref name='NumberOptionalNumber.datatype'/> 159.55 + </attribute> 159.56 + </optional> 159.57 + </define>
160.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 160.2 +++ b/filters/publish/rng/feSpotLight Mon Apr 11 10:08:48 2011 +1000 160.3 @@ -0,0 +1,59 @@ 160.4 +<define name='svg.feSpotLight.content'> 160.5 + <zeroOrMore> 160.6 + <choice> 160.7 + <ref name='animate'/> 160.8 + <ref name='set'/> 160.9 + </choice> 160.10 + </zeroOrMore> 160.11 + </define> 160.12 + 160.13 + <define name='feSpotLight'> 160.14 + <element name='feSpotLight'> 160.15 + <ref name='feSpotLight.attr'/> 160.16 + <ref name='svg.feSpotLight.content'/> 160.17 + </element> 160.18 + </define> 160.19 + 160.20 + <define name='feSpotLight.attr' combine='interleave'> 160.21 + <ref name='svg.Core.attr'/> 160.22 + <optional> 160.23 + <attribute name='x'> 160.24 + <ref name='Number.datatype'/> 160.25 + </attribute> 160.26 + </optional> 160.27 + <optional> 160.28 + <attribute name='y'> 160.29 + <ref name='Number.datatype'/> 160.30 + </attribute> 160.31 + </optional> 160.32 + <optional> 160.33 + <attribute name='z'> 160.34 + <ref name='Number.datatype'/> 160.35 + </attribute> 160.36 + </optional> 160.37 + <optional> 160.38 + <attribute name='pointsAtX'> 160.39 + <ref name='Number.datatype'/> 160.40 + </attribute> 160.41 + </optional> 160.42 + <optional> 160.43 + <attribute name='pointsAtY'> 160.44 + <ref name='Number.datatype'/> 160.45 + </attribute> 160.46 + </optional> 160.47 + <optional> 160.48 + <attribute name='pointsAtZ'> 160.49 + <ref name='Number.datatype'/> 160.50 + </attribute> 160.51 + </optional> 160.52 + <optional> 160.53 + <attribute name='specularExponent'> 160.54 + <ref name='Number.datatype'/> 160.55 + </attribute> 160.56 + </optional> 160.57 + <optional> 160.58 + <attribute name='limitingConeAngle'> 160.59 + <ref name='Number.datatype'/> 160.60 + </attribute> 160.61 + </optional> 160.62 + </define>
161.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 161.2 +++ b/filters/publish/rng/feTile Mon Apr 11 10:08:48 2011 +1000 161.3 @@ -0,0 +1,21 @@ 161.4 + <define name='svg.feTile.content'> 161.5 + <zeroOrMore> 161.6 + <choice> 161.7 + <ref name='animate'/> 161.8 + <ref name='set'/> 161.9 + </choice> 161.10 + </zeroOrMore> 161.11 + </define> 161.12 + 161.13 + <define name='feTile'> 161.14 + <element name='feTile'> 161.15 + <ref name='attlist.feTile'/> 161.16 + <ref name='svg.feTile.content'/> 161.17 + </element> 161.18 + </define> 161.19 + 161.20 + <define name='attlist.feTile' combine='interleave'> 161.21 + <ref name='svg.Core.attrib'/> 161.22 + <ref name='svg.FilterColor.attrib'/> 161.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 161.24 + </define>
162.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 162.2 +++ b/filters/publish/rng/feTurbulence Mon Apr 11 10:08:48 2011 +1000 162.3 @@ -0,0 +1,52 @@ 162.4 + <define name='svg.feTurbulence.content'> 162.5 + <zeroOrMore> 162.6 + <choice> 162.7 + <ref name='animate'/> 162.8 + <ref name='set'/> 162.9 + </choice> 162.10 + </zeroOrMore> 162.11 + </define> 162.12 + 162.13 + <define name='feTurbulence'> 162.14 + <element name='feTurbulence'> 162.15 + <ref name='attlist.feTurbulence'/> 162.16 + <ref name='svg.feTurbulence.content'/> 162.17 + </element> 162.18 + </define> 162.19 + 162.20 + <define name='attlist.feTurbulence' combine='interleave'> 162.21 + <ref name='svg.Core.attrib'/> 162.22 + <ref name='svg.FilterColor.attrib'/> 162.23 + <ref name='svg.FilterPrimitive.attrib'/> 162.24 + <optional> 162.25 + <attribute name='baseFrequency'> 162.26 + <ref name='NumberOptionalNumber.datatype'/> 162.27 + </attribute> 162.28 + </optional> 162.29 + <optional> 162.30 + <attribute name='numOctaves'> 162.31 + <ref name='Integer.datatype'/> 162.32 + </attribute> 162.33 + </optional> 162.34 + <optional> 162.35 + <attribute name='seed'> 162.36 + <ref name='Number.datatype'/> 162.37 + </attribute> 162.38 + </optional> 162.39 + <optional> 162.40 + <attribute name='stitchTiles' a:defaultValue='noStitch'> 162.41 + <choice> 162.42 + <value>stitch</value> 162.43 + <value>noStitch</value> 162.44 + </choice> 162.45 + </attribute> 162.46 + </optional> 162.47 + <optional> 162.48 + <attribute name='type' a:defaultValue='turbulence'> 162.49 + <choice> 162.50 + <value>fractalNoise</value> 162.51 + <value>turbulence</value> 162.52 + </choice> 162.53 + </attribute> 162.54 + </optional> 162.55 + </define>
163.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 163.2 +++ b/filters/publish/rng/feUnsharpMask Mon Apr 11 10:08:48 2011 +1000 163.3 @@ -0,0 +1,33 @@ 163.4 + <define name='svg.feUnsharpMask.content'> 163.5 + <zeroOrMore> 163.6 + <choice> 163.7 + <ref name='animate'/> 163.8 + <ref name='set'/> 163.9 + </choice> 163.10 + </zeroOrMore> 163.11 + </define> 163.12 + 163.13 + <define name='feUnsharpMask'> 163.14 + <element name='feUnsharpMask'> 163.15 + <ref name='attlist.feUnsharpMask'/> 163.16 + <ref name='svg.feUnsharpMask.content'/> 163.17 + </element> 163.18 + </define> 163.19 + 163.20 + <define name='attlist.feUnsharpMask' combine='interleave'> 163.21 + <ref name='svg.Core.attrib'/> 163.22 + <ref name='svg.FilterColor.attrib'/> 163.23 + <ref name='svg.FilterPrimitiveWithIn.attrib'/> 163.24 + <optional> 163.25 + <attribute name='amount'> 163.26 + <ref name='Number.datatype'/> 163.27 + </attribute> 163.28 + <attribute name='radius'> 163.29 + <ref name='NumberOptionalNumber.datatype'/> 163.30 + </attribute> 163.31 + <attribute name='threshold'> 163.32 + <ref name='Number.datatype'/> 163.33 + </attribute> 163.34 + </optional> 163.35 + </define> 163.36 +
164.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 164.2 +++ b/filters/publish/rng/filter Mon Apr 11 10:08:48 2011 +1000 164.3 @@ -0,0 +1,91 @@ 164.4 + <define name='filter'> 164.5 + <element name='filter'> 164.6 + <ref name='filter.AT'/> 164.7 + <ref name='svg.filter.content'/> 164.8 + </element> 164.9 + </define> 164.10 + 164.11 + <define name='filter.AT' combine='interleave'> 164.12 + <ref name='svg.Core.attr'/> 164.13 + <ref name='svg.Style.attr'/> 164.14 + <ref name='svg.Presentation.attrib'/> 164.15 + <ref name='svg.XLink.attrib'/> 164.16 + <ref name='svg.External.attrib'/> 164.17 + <optional> 164.18 + <attribute name='x'> 164.19 + <ref name='Coordinate.datatype'/> 164.20 + </attribute> 164.21 + </optional> 164.22 + <optional> 164.23 + <attribute name='y'> 164.24 + <ref name='Coordinate.datatype'/> 164.25 + </attribute> 164.26 + </optional> 164.27 + <optional> 164.28 + <attribute name='width'> 164.29 + <ref name='Length.datatype'/> 164.30 + </attribute> 164.31 + </optional> 164.32 + <optional> 164.33 + <attribute name='height'> 164.34 + <ref name='Length.datatype'/> 164.35 + </attribute> 164.36 + </optional> 164.37 + <optional> 164.38 + <attribute name='mx'> 164.39 + <ref name='Coordinate.datatype'/> 164.40 + </attribute> 164.41 + </optional> 164.42 + <optional> 164.43 + <attribute name='my'> 164.44 + <ref name='Coordinate.datatype'/> 164.45 + </attribute> 164.46 + </optional> 164.47 + <optional> 164.48 + <attribute name='mw'> 164.49 + <ref name='Length.datatype'/> 164.50 + </attribute> 164.51 + </optional> 164.52 + <optional> 164.53 + <attribute name='mh'> 164.54 + <ref name='Length.datatype'/> 164.55 + </attribute> 164.56 + </optional> 164.57 + <optional> 164.58 + <attribute name='filterRes'> 164.59 + <ref name='NumberOptionalNumber.datatype'/> 164.60 + </attribute> 164.61 + </optional> 164.62 + <optional> 164.63 + <attribute name='filterUnits'> 164.64 + <choice> 164.65 + <value>userSpaceOnUse</value> 164.66 + <value>objectBoundingBox</value> 164.67 + </choice> 164.68 + </attribute> 164.69 + </optional> 164.70 + <optional> 164.71 + <attribute name='primitiveUnits'> 164.72 + <choice> 164.73 + <value>userSpaceOnUse</value> 164.74 + <value>objectBoundingBox</value> 164.75 + </choice> 164.76 + </attribute> 164.77 + </optional> 164.78 + <optional> 164.79 + <attribute name='filterMarginsUnits'> 164.80 + <choice> 164.81 + <value>userSpaceOnUse</value> 164.82 + <value>objectBoundingBox</value> 164.83 + </choice> 164.84 + </attribute> 164.85 + </optional> 164.86 + <optional> 164.87 + <attribute name='primitiveMarginsUnits'> 164.88 + <choice> 164.89 + <value>userSpaceOnUse</value> 164.90 + <value>objectBoundingBox</value> 164.91 + </choice> 164.92 + </attribute> 164.93 + </optional> 164.94 + </define>
165.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 165.2 +++ b/filters/publish/rng/filter-primitive-attr Mon Apr 11 10:08:48 2011 +1000 165.3 @@ -0,0 +1,52 @@ 165.4 + <define name='svg.FilterPrimitive.attrib'> 165.5 + <optional> 165.6 + <attribute name='x'> 165.7 + <ref name='Coordinate.datatype'/> 165.8 + </attribute> 165.9 + </optional> 165.10 + <optional> 165.11 + <attribute name='y'> 165.12 + <ref name='Coordinate.datatype'/> 165.13 + </attribute> 165.14 + </optional> 165.15 + <optional> 165.16 + <attribute name='width'> 165.17 + <ref name='Length.datatype'/> 165.18 + </attribute> 165.19 + </optional> 165.20 + <optional> 165.21 + <attribute name='height'> 165.22 + <ref name='Length.datatype'/> 165.23 + </attribute> 165.24 + </optional> 165.25 + <optional> 165.26 + <attribute name='mx'> 165.27 + <ref name='Coordinate.datatype'/> 165.28 + </attribute> 165.29 + </optional> 165.30 + <optional> 165.31 + <attribute name='my'> 165.32 + <ref name='Coordinate.datatype'/> 165.33 + </attribute> 165.34 + </optional> 165.35 + <optional> 165.36 + <attribute name='mw'> 165.37 + <ref name='Length.datatype'/> 165.38 + </attribute> 165.39 + </optional> 165.40 + <optional> 165.41 + <attribute name='mh'> 165.42 + <ref name='Length.datatype'/> 165.43 + </attribute> 165.44 + </optional> 165.45 + <optional> 165.46 + <attribute name='result'/> 165.47 + </optional> 165.48 + </define> 165.49 + 165.50 + <define name='svg.FilterPrimitiveWithIn.attrib'> 165.51 + <ref name='svg.FilterPrimitive.attrib'/> 165.52 + <optional> 165.53 + <attribute name='in'/> 165.54 + </optional> 165.55 + </define>
166.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 166.2 +++ b/filters/publish/style/W3C-WD.css Mon Apr 11 10:08:48 2011 +1000 166.3 @@ -0,0 +1,89 @@ 166.4 + 166.5 +/* Style for a public "Working Draft" */ 166.6 + 166.7 +/* 166.8 + Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 166.9 + The following software licensing rules apply: 166.10 + http://www.w3.org/Consortium/Legal/copyright-software */ 166.11 + 166.12 +/* $Id$ */ 166.13 + 166.14 + 166.15 +body { 166.16 + padding: 2em 1em 2em 70px; 166.17 + margin: 0; 166.18 + font-family: sans-serif; 166.19 + color: black; 166.20 + background: white; 166.21 + background-position: top left; 166.22 + background-attachment: fixed; 166.23 + background-repeat: no-repeat; 166.24 +} 166.25 +:link { color: #00C; background: transparent } 166.26 +:visited { color: #609; background: transparent } 166.27 +a:active { color: #C00; background: transparent } 166.28 + 166.29 +a:link img, a:visited img { border-style: none } /* no border on img links */ 166.30 + 166.31 +a img { color: white; } /* trick to hide the border in Netscape 4 */ 166.32 +@media all { /* hide the next rule from Netscape 4 */ 166.33 + a img { color: inherit; } /* undo the color change above */ 166.34 +} 166.35 + 166.36 +th, td { /* ns 4 */ 166.37 + font-family: sans-serif; 166.38 +} 166.39 + 166.40 +h1, h2, h3, h4, h5, h6 { text-align: left } 166.41 +/* background should be transparent, but WebTV has a bug */ 166.42 +h1, h2, h3 { color: #005A9C; background: white } 166.43 +h1 { font: 170% sans-serif } 166.44 +h2 { font: 140% sans-serif } 166.45 +h3 { font: 120% sans-serif } 166.46 +h4 { font: bold 100% sans-serif } 166.47 +h5 { font: italic 100% sans-serif } 166.48 +h6 { font: small-caps 100% sans-serif } 166.49 + 166.50 +.hide { display: none } 166.51 + 166.52 +div.head { margin-bottom: 1em } 166.53 +div.head h1 { margin-top: 2em; clear: both } 166.54 +div.head table { margin-left: 2em; margin-top: 2em } 166.55 + 166.56 +p.copyright { font-size: small } 166.57 +p.copyright small { font-size: small } 166.58 + 166.59 +@media screen { /* hide from IE3 */ 166.60 +a[href]:hover { background: #ffa } 166.61 +} 166.62 + 166.63 +pre { margin-left: 2em } 166.64 +/* 166.65 +p { 166.66 + margin-top: 0.6em; 166.67 + margin-bottom: 0.6em; 166.68 +} 166.69 +*/ 166.70 +dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */ 166.71 +dt { font-weight: bold } 166.72 + 166.73 +pre, code { font-family: monospace } /* navigator 4 requires this */ 166.74 + 166.75 +ul.toc { 166.76 + list-style: disc; /* Mac NS has problem with 'none' */ 166.77 + list-style: none; 166.78 +} 166.79 + 166.80 +@media aural { 166.81 + h1, h2, h3 { stress: 20; richness: 90 } 166.82 + .hide { speak: none } 166.83 + p.copyright { volume: x-soft; speech-rate: x-fast } 166.84 + dt { pause-before: 20% } 166.85 + pre { speak-punctuation: code } 166.86 +} 166.87 + 166.88 + 166.89 + 166.90 +body { 166.91 + background-image: url(http://www.w3.org/StyleSheets/TR/logo-WD); 166.92 +}
167.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 167.2 +++ b/filters/publish/style/expanders.js Mon Apr 11 10:08:48 2011 +1000 167.3 @@ -0,0 +1,32 @@ 167.4 +function expand(e) { 167.5 + e = e.parentNode; 167.6 + e.parentNode.removeAttribute('class'); 167.7 + e.style.display = "none"; 167.8 + e.nextSibling.style.display = "inline"; 167.9 +} 167.10 + 167.11 +(function() { 167.12 + var i, a = [], e0, e1p, e1, e2, l = document.getElementsByTagName('span'); 167.13 + for (i = 0; i != l.length; i++) { 167.14 + e0 = l[i]; 167.15 + if (e0.getAttribute('class') == 'expanding') { 167.16 + a.push(e0); 167.17 + } 167.18 + } 167.19 + for (i = 0; i != a.length; i++) { 167.20 + e0 = a[i]; 167.21 + e1 = document.createElement('span'); 167.22 + e1.setAttribute('class', 'expander'); 167.23 + e1.setAttribute('onclick', 'expand(event.target)'); 167.24 + e1p = document.createElement('span'); 167.25 + e1p.textContent = ' '; 167.26 + e1p.appendChild(e1); 167.27 + e2 = document.createElement('span'); 167.28 + e2.style.display = 'none'; 167.29 + while (e0.firstChild) { 167.30 + e2.appendChild(e0.firstChild); 167.31 + } 167.32 + e0.appendChild(e1p); 167.33 + e0.appendChild(e2); 167.34 + } 167.35 +})();
168.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 168.2 +++ b/filters/publish/style/svg-style-extra.css Mon Apr 11 10:08:48 2011 +1000 168.3 @@ -0,0 +1,179 @@ 168.4 +body { line-height: 1.3; } 168.5 + 168.6 +.element-summary { background: #d9e8ff; padding: 1em; margin-top: 1em } 168.7 +.element-summary-name { float: right; font-size: 110% } 168.8 +.element-summary dl, .element-summary dt { margin-top: 0; margin-bottom: 0; } 168.9 +.element-summary * + dt { margin-top: 0.5em; } 168.10 +.element-summary dd { margin-top: 0; } 168.11 +.element-summary ul.no-bullets { list-style: none; padding-left: 0em } 168.12 +.element-summary ul.no-bullets li { padding-left: 2em; text-indent: -2em; } 168.13 +.expander { color: #888; text-decoration: underline; cursor: pointer; font-size: 85% } 168.14 +.expander { } 168.15 +.expander:active { color: #C00 } 168.16 +.expander:hover { background: #ffa } 168.17 +.expander:after { content: 'show »' } 168.18 + 168.19 +.xgrammar { /*color: #005a9c;*/ color: #A52A2A; font-family: monospace; font-size: 90% } 168.20 + 168.21 +pre.idl { color: black; background: #d9e8ff; padding: 1em; margin-top: 1em; margin-left: 0; font-size: 1em; overflow: auto; /*white-space: pre-wrap*/ } 168.22 +pre.idl a:link, pre.idl a:visited { color: black; } 168.23 + 168.24 +dl.interface dt { 168.25 + margin-top: 1em; 168.26 +} 168.27 + 168.28 +dl.interface dl.attributes > dt, 168.29 +dl.interface dl.constants > dt, 168.30 +dl.interface dl.operations > dt { 168.31 + margin-top: 2em; 168.32 +} 168.33 + 168.34 +dl.interface dl.attributes > dt, 168.35 +dl.interface dl.constants > dt, 168.36 +dl.interface dl.operations > dt, 168.37 +dl.interface ol.parameters > li, 168.38 +dl.interface dl.exceptions > dt { 168.39 + font-weight: normal; 168.40 + display: list-item; 168.41 +} 168.42 + 168.43 +dl.interface dl.attributes > dt:first-child, 168.44 +dl.interface dl.constants > dt:first-child, 168.45 +dl.interface dl.operations > dt:first-child, 168.46 +dl.interface ol.parameters > li:first-child, 168.47 +dl.interface dl.exceptions > dt:first-child { 168.48 + margin-top: 0; 168.49 +} 168.50 + 168.51 +dl.interface dl.attributes > dd, 168.52 +dl.interface dl.constants > dd, 168.53 +dl.interface dl.operations > dd, 168.54 +dl.interface ol.parameters > li, 168.55 +dl.interface dl.exceptions > dd { 168.56 + margin-top: 0.5em; 168.57 + margin-left: 0; 168.58 +} 168.59 + 168.60 +dl.interface dl.attribute { 168.61 + /*margin-left: 2em;*/ 168.62 +} 168.63 + 168.64 +dl.interface dd > *:first-child, 168.65 +dl.interface ol.parameters > li, 168.66 +dl.interface ol.parameters > li > *:first-child + * { 168.67 + margin-top: 0; 168.68 +} 168.69 + 168.70 +ol.parameters > li > .parameter { 168.71 + float: left; 168.72 +} 168.73 + 168.74 +ol.parameters > li > .parameter::after { 168.75 + content: " — "; 168.76 +} 168.77 + 168.78 +.idl .keyword { 168.79 + /*font-weight: bold;*/ 168.80 +} 168.81 + 168.82 +.idlattr, .idlattr:link, .idlattr:visited { 168.83 + background: #d9e8ff; 168.84 + color: black; 168.85 +} 168.86 + 168.87 +ol.parameters { 168.88 + list-style-type: disc; 168.89 + padding-left: 0; 168.90 +} 168.91 + 168.92 +var { 168.93 + font-style: italic; 168.94 +} 168.95 + 168.96 +dl.definitions > dt, 168.97 +.adef-list dl > dt { margin-top: 1em; } 168.98 + 168.99 +dl.definitions > dt + dt, 168.100 +.adef-list dl > dt + dt { margin-top: 0; } 168.101 + 168.102 +dl.definitions > dd > :first-child, 168.103 +.adef-list dl > dd > :first-child { margin-top: 0; } 168.104 + 168.105 +table.vert { 168.106 + border-collapse: collapse; 168.107 + border-top: 2px solid #005a9c; 168.108 + border-bottom: 2px solid #005a9c; 168.109 + margin-top: 1em; 168.110 + margin-bottom: 1em; 168.111 + margin-left: auto; 168.112 + margin-right: auto; 168.113 +} 168.114 +table.vert td { 168.115 + background: #f0f6ff; 168.116 +} 168.117 +table.vert th { 168.118 + text-align: left; 168.119 + vertical-align: bottom; 168.120 + border-bottom: 2px solid #005a9c; 168.121 + white-space: nowrap; 168.122 + color: #d9e8ff; 168.123 + background: #005a9c; 168.124 +} 168.125 +table.vert th a:link, 168.126 +table.vert th a:visited { color: #d9e8ff; } 168.127 +table.vert th a:hover { color: black; } 168.128 +table.vert th, table.vert td { padding: 0.5em 0.75em; } 168.129 +table.vert th .attr-name { color: white } 168.130 +table.vert th a:hover .element-name { color: #2A2AA5 } 168.131 +table.vert th .prop-name { color: white } 168.132 +table.vert th a:hover .element-name { color: black } 168.133 +table.vert th .element-name { color: white } 168.134 +table.vert th a:hover .element-name { color: #A52A2A } 168.135 +table.vert td { vertical-align: top; } 168.136 +table.offset { margin-left: 2em; margin-right: 2em; } 168.137 +.indented { 168.138 + margin-left: 2em; 168.139 +} 168.140 +.math var, .math sub, .math sup { 168.141 + font-family: serif; 168.142 +} 168.143 +.separated { 168.144 + word-spacing: 1em; 168.145 +} 168.146 +.familyname { 168.147 + text-transform: uppercase; 168.148 +} 168.149 + 168.150 +dl.unemphasized-names > dt > a { font-weight: normal } 168.151 + 168.152 +.header { background: #eee; padding: 0.5em; font-size: 85%; text-align: right } 168.153 +.header.top { border-top: 1px solid #ccc } 168.154 +.header.bottom { border-bottom: 1px solid #ccc; margin-top: 1em } 168.155 +.header .namedate { display: block; float: left } 168.156 +.header ul { display: block; margin: 0 } 168.157 +.header ul li { display: inline; margin: 0 } 168.158 +.header ul li:first-child::before { content: none } 168.159 +.header ul li::before { content: ' ⋅ ' } 168.160 +.header .after { display: block; clear: both; height: 1px } 168.161 +.header .after::before { content: ' ' } 168.162 + 168.163 +table.property-table { font-size: 90%; border-collapse: collapse } 168.164 +table.vert td { border-top: 1px solid #005a9c; border-top-color: rgba(0, 90, 156, 0.5) } 168.165 +.tocline1 { font-weight: bold } 168.166 +/* .toc { margin-bottom: 0.5em } */ 168.167 + 168.168 +.idl-type-parenthetical { font-size: 90% } 168.169 +td > :first-child, 168.170 +th > :first-child { margin-top: 0 } 168.171 +td p { 168.172 + margin-top: 1em; 168.173 + margin-bottom: 0; 168.174 +} 168.175 + 168.176 +table.collection { border-collapse: collapse; background: #fff; font-size: 90%; margin-bottom: 1em; margin-left: 2em } 168.177 +table.collection th { background: #eee } 168.178 +table.collection td, table.collection th { border: 1px solid black; padding: 0.25em; vertical-align: baseline } 168.179 + 168.180 +ol.notes { list-style-type: none; padding-left: 0 } 168.181 + 168.182 +.colorpatch { width: 14px; height:14px; border: 1px solid black; }
169.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 169.2 +++ b/filters/publish/style/svg-style.css Mon Apr 11 10:08:48 2011 +1000 169.3 @@ -0,0 +1,454 @@ 169.4 +/* 169.5 + * style sheet for svg specification 169.6 + */ 169.7 + 169.8 + 169.9 +body { 169.10 + color: black; 169.11 + /* text-align: justify; */ 169.12 + font-family: helvetica, sans-serif; 169.13 + background: white; 169.14 + margin: 2em; 169.15 + /* for the rec: background: #def url(recbg.jpg); */ 169.16 +} 169.17 +.navlinks { 169.18 + text-align: center; 169.19 +} 169.20 +h2, h3, h4, h5, h6 { 169.21 + text-align: left; 169.22 +} 169.23 + 169.24 +.header { 169.25 + text-align: right; 169.26 + border-bottom: 1px solid #aaa; 169.27 + padding-bottom: 0.5em; 169.28 + font-size: 80%; 169.29 +} 169.30 + 169.31 +.footer { 169.32 + text-align: right; 169.33 + margin-top: 1em; 169.34 + border-top: 1px solid #aaa; 169.35 + padding-top: 0.5em; 169.36 + font-size: 80%; 169.37 +} 169.38 + 169.39 +.header ul, .footer ul { 169.40 + display: inline; 169.41 + padding: 0; 169.42 +} 169.43 + 169.44 +.header li, .footer li { 169.45 + display: inline; 169.46 + border-left: 1px solid #aaa; 169.47 + padding-left: 0.2em; 169.48 +} 169.49 + 169.50 +h1 { 169.51 + clear: left; 169.52 + margin-top: 1em; 169.53 + text-align: center; 169.54 +} 169.55 + 169.56 +pre { margin-left: 2em } 169.57 +pre { 169.58 + color: #a52a2a; 169.59 + font-family: monospace; 169.60 + font-size: 90% 169.61 +} 169.62 +pre.svgsamplecompressed { 169.63 + font-size: 75%; 169.64 + letter-spacing: -.05em; 169.65 + line-height: 95% 169.66 +} 169.67 +pre strong { 169.68 + color: #004400; 169.69 + font-weight: bold 169.70 +} 169.71 +.filterformula { 169.72 + color: #a52a2a; 169.73 + font-family: monospace; 169.74 + font-size: 90%; 169.75 + margin-left: 2em 169.76 +} 169.77 + 169.78 +div.dtd-fragment { 169.79 + background-color: #dddddd; 169.80 + margin-left: 0; 169.81 +} 169.82 +.dtd-fragment { 169.83 + background-color: #dddddd; 169.84 + margin-left: 0; 169.85 +} 169.86 +.idl-code { 169.87 + margin: 0; 169.88 + font-family: monospace; 169.89 + border: 1px solid black; 169.90 + white-space: pre; 169.91 + color: black; 169.92 + background-color: #dfdfdf; 169.93 +} 169.94 + 169.95 +.adef { 169.96 + font-family: monospace; 169.97 + font-weight: bold; 169.98 +} 169.99 + 169.100 + 169.101 +address { 169.102 + text-align: right; 169.103 + font-style: italic; 169.104 +} 169.105 + 169.106 +var { 169.107 + font-style: normal; 169.108 +} 169.109 +img { 169.110 + border: 0; 169.111 +} 169.112 +.toc { 169.113 + text-indent: 0; 169.114 +} 169.115 +.toc2 { 169.116 + text-indent: 2em; 169.117 +} 169.118 +.toc3 { 169.119 + text-indent: 4em; 169.120 +} 169.121 +p.toc-line { 169.122 + margin-top: 1em; 169.123 + margin-bottom: 1em; 169.124 + text-indent: 0; 169.125 +} 169.126 + 169.127 +/* it should be 'inherit', but netscape inserts a random color :-( */ 169.128 +a.noxref:link, a.noxref:visited {color: black; /*color: inherit*/} 169.129 +div.example a:link, div.example a:visited {color: maroon; /*color: inherit*/} 169.130 +div.deprecated-html-example a:link, 169.131 +div.deprecated-html-example a:visited {color: red; /*color: inherit*/} 169.132 +.note a:link, .note a:visited {color: green; /*color: inherit*/} 169.133 + 169.134 +a.propdef-title { 169.135 + background: yellow; 169.136 +} 169.137 + 169.138 +a.descdef-title { 169.139 + color: yellow; 169.140 + background: green 169.141 +} 169.142 + 169.143 +/* table {margin-left: 1em} */ 169.144 +div.propdef {margin: 1.2em 0} 169.145 + 169.146 +.example { 169.147 + padding: 0; 169.148 + background: white; 169.149 +} 169.150 + 169.151 +.exampleheader { 169.152 + margin: 0; 169.153 + background: #dda; 169.154 + border-bottom: 1px solid #666; 169.155 + border-right: 1px solid #666; 169.156 + border-top: 1px solid #aaa; 169.157 + border-left: 1px solid #aaa; 169.158 + padding: 0.5em 1em; 169.159 +} 169.160 + 169.161 +.examplesource { 169.162 + padding: 0; 169.163 + margin: 0; 169.164 + background: #ffc; 169.165 + border-bottom: 1px solid #996; 169.166 + border-right: 1px solid #996; 169.167 + border-top: 1px solid #bb8; 169.168 + border-left: 1px solid #bb8; 169.169 +} 169.170 + 169.171 +.examplesource pre { 169.172 + background: none; 169.173 + color: #633; 169.174 + margin: 0 1em; 169.175 + padding: 0.5em 0 0 0; 169.176 +} 169.177 + 169.178 +.exampleimage { 169.179 + text-align: center; 169.180 + padding: 1em; 169.181 + border-bottom: 1px solid #996; 169.182 + border-right: 1px solid #996; 169.183 + border-top: 1px solid #bb8; 169.184 + border-left: 1px solid #bb8; 169.185 +} 169.186 + 169.187 +.schema { 169.188 + padding: 0; 169.189 + background: white; 169.190 + width: 100%; 169.191 +} 169.192 + 169.193 +.schemaheader { 169.194 + margin: 0; 169.195 + background: #ccc; 169.196 + border-bottom: 1px solid #666; 169.197 + border-right: 1px solid #666; 169.198 + border-top: 1px solid #aaa; 169.199 + border-left: 1px solid #aaa; 169.200 + padding: 0.5em 1em; 169.201 +} 169.202 + 169.203 +.schemasource { 169.204 + padding: 0; 169.205 + margin: 0; 169.206 + background: #ddd; 169.207 + border-bottom: 1px solid #666; 169.208 + border-right: 1px solid #666; 169.209 + border-top: 1px solid #aaa; 169.210 + border-left: 1px solid #aaa; 169.211 +} 169.212 + 169.213 +.schemasource pre { 169.214 + background: none; 169.215 + color: #030; 169.216 + margin: 0 1em; 169.217 + padding: 0.5em 0 0 0; 169.218 +} 169.219 + 169.220 +pre.example { color: maroon } 169.221 +pre.illegal-example { color: red } 169.222 +div.illegal-example { color: red } 169.223 +div.illegal-example p { color: black } 169.224 + 169.225 + 169.226 +div.html-example { color: maroon } 169.227 +pre.html-example { color: maroon } 169.228 +pre.illegal-html-example { color: red } 169.229 +div.illegal-html-example { color: red } 169.230 +div.illegal-html-example p { color: black } 169.231 +pre.deprecated-html-example { color: red } 169.232 +div.deprecated-html-example { color: red } 169.233 +div.deprecated-html-example p { color: black } 169.234 + 169.235 +div.xml-example { color: maroon } 169.236 +pre.xml-example { color: maroon } 169.237 +pre.illegal-xml-example { color: red } 169.238 +div.illegal-xml-example { color: red } 169.239 +div.illegal-xml-example p { color: black } 169.240 + 169.241 +div.dtd-example { color: maroon } 169.242 +pre.dtd-example { color: maroon } 169.243 +pre.illegal-dtd-example { color: red } 169.244 +div.illegal-dtd-example { color: red } 169.245 +div.illegal-dtd-example p { color: black } 169.246 + 169.247 +.note { 169.248 + font-weight: bold; 169.249 + margin-top: 1em; 169.250 + margin-bottom: 1em; 169.251 + margin-left: 1em; 169.252 + margin-right: 1em; 169.253 + background: #6f9 none repeat scroll 0%; 169.254 + color: black; 169.255 +} 169.256 + 169.257 +.requirement { 169.258 + margin-top: 1em; 169.259 + margin-bottom: 1em; 169.260 + margin-left: 1em; 169.261 + margin-right: 1em; 169.262 + background: #fad none repeat scroll 0%; 169.263 + color: black; 169.264 +} 169.265 + 169.266 +.normref { 169.267 + color: red; 169.268 +} 169.269 + 169.270 +.informref { 169.271 + color: green; 169.272 +} 169.273 + 169.274 +div.propdef th { 169.275 + text-align: right; 169.276 +} 169.277 + 169.278 +div.descdef th { 169.279 + text-align: right; 169.280 +} 169.281 + 169.282 +ul.toc, ol.toc {list-style: none} 169.283 +div.toc ul ul, div.toc ol ol {margin-left: 0} 169.284 +div.toc ul ul ul, div.toc ol ol ol {margin-left: 1em} 169.285 +div.toc ul ul ul ul, div.toc ol ol ol ol {margin-left: 0} 169.286 +li.tocline1 {font-weight: bold} 169.287 +li.tocline2 {font-weight: normal} 169.288 +li.tocline4 {font-style: italic} 169.289 +/* div.subtoc ul, div.subtoc ol {list-style: none} */ 169.290 +/* the border in the following rule crashes nn4 on fonts.html :-( 169.291 +div.subtoc {padding: 1em; border: solid black thin; margin: 1em 0; 169.292 + background: #ddd} 169.293 +*/ 169.294 +ul.index {list-style: none} 169.295 + 169.296 +s, del {text-decoration: line-through; color: red} 169.297 +u, ins {text-decoration: underline; background: #bfa} 169.298 + 169.299 +div.figure { 169.300 + text-align: center; 169.301 + /*border: solid thin; 169.302 + width: 100%;*/ 169.303 + margin: 2.5em 0 169.304 +} 169.305 +p.caption, caption { 169.306 + text-align: center; 169.307 + font-style: italic; 169.308 + font-weight: bold; 169.309 + font-size: 90%; 169.310 + color: #088; 169.311 + margin: 1.5em 25% 0 25%; 169.312 +} 169.313 +div.toc, ul.index, dt { 169.314 + text-align: left 169.315 +} 169.316 +sup { 169.317 + vertical-align: super; 169.318 + font-size: 80% 169.319 +} 169.320 +.code-fragment { 169.321 + color: #a52a2a; 169.322 + font-weight: bold; 169.323 + font-size: 90% 169.324 +} 169.325 +.element-name { 169.326 + color: #a52a2a; 169.327 + font-weight: bold; 169.328 + font-size: 90% 169.329 +} 169.330 +.attr-name { 169.331 + color: #2a2aa5; 169.332 + font-weight: bold; 169.333 + font-size: 90% 169.334 +} 169.335 +.prop-name { 169.336 + color: black; 169.337 + font-weight: bold; 169.338 + font-size: 90% 169.339 +} 169.340 +.attr-value, .prop-value { 169.341 + font-weight: bold; 169.342 + font-size: 90% 169.343 +} 169.344 +/* 169.345 +.svg-term { 169.346 + color: red; 169.347 + font-weight: bold 169.348 +} 169.349 +*/ 169.350 +.svg-termdefine { 169.351 + font-weight: bold 169.352 +} 169.353 +.example-ref { 169.354 + color: green; 169.355 +} 169.356 +.anim-target { 169.357 + font-style: italic 169.358 +} 169.359 +.dominterfacename { 169.360 + font-weight: bold 169.361 +} 169.362 +.dom-attr-name { 169.363 + color: black; 169.364 + background-color: #ffffd2; 169.365 +} 169.366 +.dom-attr-type, .dom-attr-value { 169.367 + color: black; 169.368 + font-weight: bold; 169.369 +} 169.370 +.dom-method-name { 169.371 + color: black; 169.372 + background-color: #d9e6f8; 169.373 +} 169.374 +.dom-parameter-name { 169.375 + margin-top: 1%; 169.376 + background-color: #fee6f8; 169.377 + color: black; 169.378 +} 169.379 +.math-variable { 169.380 + font-family:times,serif 169.381 +} 169.382 +.color-keyword-value { 169.383 + color: #a52a2a; 169.384 +} 169.385 +.view-as-svg { 169.386 + font-style:italic 169.387 +} 169.388 +.table-heading-1 { 169.389 + font-style:italic; 169.390 + text-align:center 169.391 +} 169.392 +.pathdatatable { 169.393 + background: #dddddd 169.394 +} 169.395 +.useruleapplied { 169.396 + font-style:normal; 169.397 + font-weight:bold; 169.398 + color:blue 169.399 +} 169.400 +.useruleignored { 169.401 + font-style:italic; 169.402 + font-weight:bold; 169.403 + color:#050; 169.404 +} 169.405 + 169.406 +.editor { text-decoration: underline; font-size: 85% } 169.407 +.editor-intro { color: red; font-weight: bold } 169.408 +.editor-rec { color: red; font-weight: bold } 169.409 +.designgoals { list-style-type: upper-alpha } 169.410 +.reqt-level0 { list-style-type: decimal; font-weight: bold } 169.411 +.reqt-level1 { list-style-type: lower-alpha; font-weight: normal } 169.412 +.reqt-level2 { list-style-type: lower-roman; font-weight: normal } 169.413 + 169.414 +.b4nomfix { color: #a52a2a; text-decoration: line-through } 169.415 +.afnomfix { color: red; } 169.416 + 169.417 +div.note,p.note { 169.418 + border: 2px dotted #3c6; 169.419 + padding: 0.5em; 169.420 +} 169.421 + 169.422 +.specissue { 169.423 + border-style: solid; 169.424 + border-color: black; 169.425 + border-width: 1px 1px 1px 4px; 169.426 + padding: 0.5em; background: rgb(220, 20, 60) none repeat scroll 0%; 169.427 +} 169.428 + 169.429 +.svgt12 { 169.430 + background: rgb(153, 223, 255) none repeat scroll 0%; 169.431 + color: black; 169.432 +} 169.433 + 169.434 +a[href="http://www.w3.org/TR/SVG10/"] { background: red; } 169.435 +a[href="http://www.w3.org/TR/SVG11/"] { background: yellow; } 169.436 +a[href="http://www.w3.org/SVGMobile12/"] { background: green; } 169.437 + 169.438 +.new { 169.439 + border-style: solid; 169.440 + border-color: green; 169.441 + border-width: 0px 0px 0px 4px; 169.442 + padding-left: 20px; 169.443 + margin-left: -20px; 169.444 +} 169.445 + 169.446 +.changed { 169.447 + border-style: solid; 169.448 + border-color: blue; 169.449 + border-width: 0px 0px 0px 4px; 169.450 + padding-left: 20px; 169.451 + margin-left: -20px; 169.452 +} 169.453 + 169.454 +div.note-editor 169.455 +{ 169.456 + display:none; 169.457 +}
170.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 170.2 +++ b/filters/publish/style/svgspec.css Mon Apr 11 10:08:48 2011 +1000 170.3 @@ -0,0 +1,105 @@ 170.4 +.term { 170.5 + FONT-WEIGHT: bold; COLOR: #aa3333; BACKGROUND-COLOR: white 170.6 +} 170.7 +PRE { 170.8 + FONT-SIZE: 90%; MARGIN-LEFT: 2em; COLOR: #a52a2a; FONT-FAMILY: monospace; BACKGROUND-COLOR: white 170.9 +} 170.10 +PRE.schema { 170.11 + BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddddff; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: maroon; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace 170.12 +} 170.13 +PRE.example { 170.14 + BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddffdd; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: #a52a2a; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace 170.15 +} 170.16 +.dtd-fragment { 170.17 + BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN-LEFT: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #dddddd 170.18 +} 170.19 +.idl-code { 170.20 + BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace; WHITE-SPACE: pre; BACKGROUND-COLOR: #dfdfdf 170.21 +} 170.22 +.adef { 170.23 + FONT-WEIGHT: bold; FONT-FAMILY: monospace 170.24 +} 170.25 +IMG { 170.26 + BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px 170.27 +} 170.28 +.toc { 170.29 + TEXT-INDENT: 0px 170.30 +} 170.31 +.toc2 { 170.32 + TEXT-INDENT: 2em 170.33 +} 170.34 +.toc3 { 170.35 + TEXT-INDENT: 4em 170.36 +} 170.37 +P.toc-line { 170.38 + MARGIN-TOP: 1em; MARGIN-BOTTOM: 1em; TEXT-INDENT: 0px 170.39 +} 170.40 +.example { 170.41 + COLOR: maroon; BACKGROUND-COLOR: white 170.42 +} 170.43 +.pseudocode { 170.44 + BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; COLOR: #990000; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #ccccff 170.45 +} 170.46 +.algorithm OL { 170.47 + LIST-STYLE-TYPE: decimal 170.48 +} 170.49 +.algorithm OL LI { 170.50 + MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 170.51 +} 170.52 +.algorithm OL LI OL { 170.53 + LIST-STYLE-TYPE: lower-alpha 170.54 +} 170.55 +.algorithm OL LI OL LI { 170.56 + MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 170.57 +} 170.58 +.algorithm OL LI OL LI OL { 170.59 + LIST-STYLE-TYPE: lower-roman 170.60 +} 170.61 +.algorithm OL LI OL LI OL LI { 170.62 + MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 170.63 +} 170.64 +.note { 170.65 + BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.3em; FONT-WEIGHT: bold; BACKGROUND: #aaffaa; PADDING-BOTTOM: 0.3em; MARGIN: 1em; BORDER-LEFT: black 1px solid; COLOR: black; PADDING-TOP: 0.3em; BORDER-BOTTOM: black 1px solid 170.66 +} 170.67 +P.caption { 170.68 + FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center 170.69 +} 170.70 +CAPTION { 170.71 + FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center 170.72 +} 170.73 +.element { 170.74 + FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #a52a2a; BACKGROUND-COLOR: white 170.75 +} 170.76 +.type { 170.77 + FONT-WEIGHT: bold; FONT-SIZE: 90% 170.78 +} 170.79 +.attribute { 170.80 + FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #2a2aa5; BACKGROUND-COLOR: white 170.81 +} 170.82 +.property { 170.83 + FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: black; BACKGROUND-COLOR: white 170.84 +} 170.85 +.attribute-value { 170.86 + FONT-WEIGHT: bold; FONT-SIZE: 90% 170.87 +} 170.88 +.property-value { 170.89 + FONT-WEIGHT: bold; FONT-SIZE: 90% 170.90 +} 170.91 +.interface { 170.92 + FONT-WEIGHT: bold 170.93 +} 170.94 +.dom-attribute { 170.95 + COLOR: black; BACKGROUND-COLOR: #ffffd2 170.96 +} 170.97 +.dom-attribute-type { 170.98 + FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white 170.99 +} 170.100 +.dom-attribute-value { 170.101 + FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white 170.102 +} 170.103 +.dom-method { 170.104 + COLOR: black; BACKGROUND-COLOR: #d9e6f8 170.105 +} 170.106 +.dom-parameter { 170.107 + COLOR: black; BACKGROUND-COLOR: #fee6f8 170.108 +}
171.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 171.2 +++ b/filters/test/resources/SVGFreeSans.svg Mon Apr 11 10:08:48 2011 +1000 171.3 @@ -0,0 +1,569 @@ 171.4 +<?xml version="1.0" standalone="no"?> 171.5 +<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" > 171.6 +<defs > 171.7 +<font horiz-adv-x="481" id="ascii"> 171.8 + <font-face 171.9 + font-family="SVGFreeSansASCII" 171.10 + units-per-em="1000" 171.11 + panose-1="2 11 5 4 2 2 2 2 2 4" 171.12 + ascent="800" 171.13 + descent="-200" 171.14 + alphabetic="0" /> 171.15 +<missing-glyph horiz-adv-x="432" d="M33 0V666H366V0H33ZM66 33H333V633H66V33Z" /> 171.16 +<glyph unicode=" " glyph-name="space" horiz-adv-x="278" /> 171.17 +<glyph unicode=" " glyph-name="nbsp" horiz-adv-x="278" /> 171.18 +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="278" d="M208 729V391L186 168H147L125 391V729H208ZM208 104V0H124V104H208Z" /> 171.19 +<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="355" d="M52 709H145V598L118 464H79L52 598V709ZM212 709H305V598L278 464H239L212 598V709Z" /> 171.20 +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="556" d="M485 697L449 501H542V433H436L405 259H510V191H393L354 -20H278L316 191H192L153 -20H77L115 191H14V259H128L159 433H51V501H172L208 697H284L248 501H373L408 697H485ZM360 433H236L204 259H329L360 171.21 +433Z" /> 171.22 +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="556" d="M243 770H302V716Q427 707 474 615Q496 574 496 520V519H417Q416 596 359 630Q339 641 315 645L302 646V397Q402 366 431 350L433 349Q517 301 518 196V195Q518 91 450 30L426 12Q377 -17 302 -23V-126H243V-23Q89 171.23 +-13 46 104Q30 150 33 208H112Q119 134 133 110L137 103Q172 55 243 46V318Q150 346 117 370Q46 421 46 515V516Q46 662 186 704Q212 712 243 716V770ZM243 405V645Q147 632 130 556L127 526Q127 436 243 405ZM302 309V46Q363 53 394 83Q436 123 436 182V183Q436 171.24 +244 389 274Q360 292 302 309Z" /> 171.25 +<glyph unicode="%" glyph-name="percent" horiz-adv-x="889" d="M199 685Q283 685 334 619H335Q370 573 370 513V512Q370 433 307 382Q260 343 200 343Q119 343 67 406Q29 453 29 513V514Q29 595 92 647Q139 685 199 685ZM199 615Q145 615 115 569H114Q98 544 171.26 +98 515V514Q98 461 143 430Q169 413 200 413Q254 413 284 458Q301 483 301 512V513Q301 570 253 600Q229 615 199 615ZM609 709H675L280 -20H214L609 709ZM688 322Q773 322 824 256Q859 210 859 151V150Q859 71 796 20Q749 -19 689 -19Q608 -19 556 44Q518 91 518 171.27 +151V152Q518 233 582 284Q629 322 688 322ZM688 252Q634 252 604 207Q587 182 587 153V152Q587 97 634 67H635V66Q636 66 636 66Q636 65 637 65Q661 51 689 51Q743 51 773 96Q790 120 790 149V150Q790 207 742 237V237L741 238Q724 248 704 251Q700 251 695 252Q693 171.28 +252 690 252H688Z" /> 171.29 +<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="667" d="M493 334H573Q573 240 515 151L637 0H528L466 78Q417 30 389 13Q333 -23 257 -23Q141 -23 85 59Q52 108 52 175V176Q52 257 104 310Q140 346 214 389Q144 477 135 525V525Q135 527 135 530Q134 171.30 +532 134 535L133 552Q133 628 197 675Q244 709 304 709Q394 709 440 643V642Q467 604 467 553V552Q467 483 412 434Q383 409 330 379L329 378L462 215Q495 272 493 334ZM285 431Q366 482 381 519Q388 534 388 553V554Q388 606 343 629Q324 639 301 639Q241 639 171.31 +221 589Q215 573 215 554V553Q215 520 240 485L241 484V484L242 483L243 482V482L285 431ZM418 137L258 337Q164 277 144 227Q136 207 136 184V183Q136 118 190 80Q225 55 267 55Q334 55 402 120Q409 127 416 135Q417 135 417 136L418 137Z" /> 171.32 +<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="191" d="M48 709H142V598L115 464H75L48 598V709Z" /> 171.33 +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="333" d="M236 729H291Q167 529 155 300L154 259Q154 26 276 -187Q283 -200 291 -212H236Q123 -64 86 128Q73 196 73 258V259Q73 438 166 617Q197 678 236 729Z" /> 171.34 +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="333" d="M93 -212H38Q162 -12 174 217Q175 258 175 258Q175 491 53 704L38 729H93Q206 581 243 389Q256 321 256 259V258Q256 79 163 -100Q132 -161 93 -212Z" /> 171.35 +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="389" d="M160 729H223L218 617L324 655L343 596L235 566L305 477L254 441L192 534L129 441L79 477L148 566L40 596L59 655L165 617L160 729Z" /> 171.36 +<glyph unicode="+" glyph-name="plus" horiz-adv-x="584" d="M534 267V197H327V-10H257V197H50V267H257V474H327V267H534Z" /> 171.37 +<glyph unicode="," glyph-name="comma" horiz-adv-x="278" d="M87 104H192V-16Q192 -147 87 -147V-109Q130 -107 140 -76Q147 -58 147 -19V-18V0H87V104Z" /> 171.38 +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="333" d="M284 312V240H46V312H284Z" /> 171.39 +<glyph unicode="." glyph-name="period" horiz-adv-x="278" d="M191 104V0H87V104H191Z" /> 171.40 +<glyph unicode="/" glyph-name="slash" horiz-adv-x="278" d="M229 729H284L47 -20H-8L229 729Z" /> 171.41 +<glyph unicode="0" glyph-name="zero" horiz-adv-x="556" d="M275 709Q378 709 436 634Q437 632 438 631Q507 537 507 338V337Q507 66 369 -3Q327 -23 275 -23Q99 -23 56 193Q43 258 43 342V343Q43 538 112 631Q166 702 261 709Q268 709 275 709ZM275 631Q133 171.42 +631 133 344Q133 344 133 344V342Q133 50 273 50Q391 50 412 242Q417 287 417 344V345Q417 631 275 631Z" /> 171.43 +<glyph unicode="1" glyph-name="one" horiz-adv-x="556" d="M259 505H102V568Q204 581 234 604H235Q245 611 252 621Q271 645 289 709H347V0H259V505Z" /> 171.44 +<glyph unicode="2" glyph-name="two" horiz-adv-x="556" d="M506 87V0H34Q41 128 91 195Q133 250 233 307L325 359Q420 413 421 498V499Q421 571 361 610Q326 632 282 632H281Q206 632 166 575Q163 571 161 566L159 563Q142 531 138 463H50Q53 563 88 617Q148 171.45 +709 284 709Q383 709 445 653Q511 594 511 502V501Q511 369 361 287L261 233Q170 180 146 131Q137 111 133 87H506Z" /> 171.46 +<glyph unicode="3" glyph-name="three" horiz-adv-x="556" d="M221 325V400Q305 401 338 415Q394 438 395 509V511Q395 596 325 623Q301 632 270 632Q192 632 157 579L156 578L151 569Q136 540 135 480H47Q51 690 237 708L269 709Q408 709 460 616Q485 573 485 171.47 +515V514Q485 406 386 367Q479 335 499 259Q506 233 506 199V198Q506 75 412 15Q352 -23 266 -23Q118 -23 64 79L63 80Q37 128 32 206H120Q128 74 233 58Q250 55 269 55Q373 55 405 134Q416 161 416 196V197Q416 326 269 326L232 325H221Z" /> 171.48 +<glyph unicode="4" glyph-name="four" horiz-adv-x="556" d="M327 170H28V263L350 709H415V249H520V170H415V0H327V170ZM327 249V559L105 249H327Z" /> 171.49 +<glyph unicode="5" glyph-name="five" horiz-adv-x="556" d="M476 709V622H181L153 424Q212 467 284 467Q404 467 468 380Q513 319 513 232V231Q513 102 426 30Q362 -23 270 -23Q159 -23 94 44L78 62Q51 95 35 172V174H123Q154 55 268 55Q369 55 407 136Q423 171 171.50 +423 218V219Q423 328 347 370Q313 389 268 389Q204 389 159 346L138 323H57L110 709H476Z" /> 171.51 +<glyph unicode="6" glyph-name="six" horiz-adv-x="556" d="M498 524H410Q392 611 321 628Q307 631 291 631Q180 631 146 487Q133 433 133 362Q191 441 296 441Q407 441 469 358Q513 299 513 217V216Q513 97 431 29Q369 -23 281 -23Q162 -23 103 65Q45 153 43 171.52 +312Q43 317 43 322V323Q43 508 107 608Q163 692 263 707Q280 709 297 709Q412 709 467 616Q490 577 498 525V524ZM285 363Q200 363 160 297Q138 262 138 215V214Q138 128 199 82Q235 55 282 55Q358 55 398 118Q423 157 423 208V209Q423 311 352 348Q323 363 285 171.53 +363Z" /> 171.54 +<glyph unicode="7" glyph-name="seven" horiz-adv-x="556" d="M520 709V635Q318 367 252 96Q240 49 232 0H138Q188 218 281 389Q336 490 429 622H46V709H520Z" /> 171.55 +<glyph unicode="8" glyph-name="eight" horiz-adv-x="556" d="M391 373Q512 315 513 197V196Q513 84 427 23Q364 -23 275 -23Q151 -23 84 59Q37 116 37 196V197Q37 315 158 373Q86 418 70 466Q62 488 62 519V520Q62 619 143 672Q198 709 275 709Q391 709 450 633Q488 171.56 +586 488 521V520Q488 452 443 411Q443 410 442 410Q423 392 391 373ZM275 631Q195 631 165 573L164 572V572Q152 549 152 520V519Q152 449 213 421Q240 408 274 408H275Q355 408 385 465Q386 465 386 466Q398 488 398 516V517V518Q398 593 333 620Q308 631 275 171.57 +631ZM275 334Q186 334 147 270Q127 238 127 196V195Q127 113 193 75Q227 55 273 55Q364 55 403 120Q423 152 423 194V195Q423 277 356 315Q321 334 275 334Z" /> 171.58 +<glyph unicode="9" glyph-name="nine" horiz-adv-x="556" d="M53 162H141Q159 75 230 58Q244 55 260 55Q371 55 405 199Q418 253 418 324Q354 247 262 245H256Q144 245 82 328Q38 387 38 469V470Q38 589 120 657Q182 709 270 709Q389 709 449 621Q507 533 509 171.59 +374Q509 369 509 364V363Q509 178 444 78Q391 -3 294 -20L254 -23Q139 -23 84 70Q61 110 53 162ZM269 632Q193 632 153 568L152 567Q128 529 128 478V477Q128 375 199 338Q228 323 266 323Q349 323 390 388Q413 424 413 471V472Q413 559 352 605Q315 632 269 632Z" 171.60 +/> 171.61 +<glyph unicode=":" glyph-name="colon" horiz-adv-x="278" d="M214 104V0H110V104H214ZM214 524V420H110V524H214Z" /> 171.62 +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="278" d="M215 524V420H111V524H215ZM110 104H215V-16Q215 -147 110 -147V-109Q153 -107 163 -76Q170 -58 170 -19V-18V0H110V104Z" /> 171.63 +<glyph unicode="<" glyph-name="less" horiz-adv-x="584" d="M45 198V267L534 474V395L140 234L534 70V-9L45 198Z" /> 171.64 +<glyph unicode="=" glyph-name="equal" horiz-adv-x="584" d="M534 353V283H50V353H534ZM534 181V111H50V181H534Z" /> 171.65 +<glyph unicode=">" glyph-name="greater" horiz-adv-x="584" d="M539 267V198L50 -9V70L444 231L50 395V474L539 267Z" /> 171.66 +<glyph unicode="?" glyph-name="question" horiz-adv-x="556" d="M330 199H240V254Q240 304 268 341Q285 363 320 396L322 397L344 417Q418 483 419 547Q419 547 419 547Q419 547 419 548V549Q419 619 358 649H357Q328 663 291 663Q209 663 179 605Q162 571 162 171.67 +508V507H77Q77 718 257 739L296 741Q422 741 478 658L479 657V657V656Q509 611 509 550V549Q509 479 458 420Q439 397 409 370Q346 312 336 285Q330 270 330 247V246V199ZM330 104V0H240V104H330Z" /> 171.68 +<glyph unicode="@" glyph-name="at" horiz-adv-x="1015" d="M665 501H748L658 221Q646 187 646 172V171Q646 144 675 131H676Q685 127 696 127Q760 127 813 199Q864 270 864 356V357Q864 477 767 566Q668 658 528 664H512Q365 664 252 562L221 531Q119 418 119 171.69 +274V273Q119 132 224 35Q332 -65 493 -65H494Q573 -65 687 -33L715 -100Q603 -142 489 -142Q309 -142 178 -35Q56 65 37 212Q34 258 34 258Q34 412 129 542Q141 558 154 573Q155 574 156 575Q157 576 158 577Q172 593 188 608L192 612Q300 710 451 735Q488 741 171.70 +525 741Q691 741 814 640Q930 546 948 411Q951 390 951 370V369Q951 248 867 149Q866 147 865 146Q789 57 679 57Q583 57 569 134Q503 62 428 62H427Q345 62 298 131Q264 179 264 244V245Q264 354 343 438Q420 521 519 522H521Q604 522 642 436L643 435L665 501ZM515 171.71 +458Q449 458 399 387Q354 324 354 245V244Q354 177 401 143H402Q425 126 452 126H453Q511 126 555 191Q588 239 604 323L609 362Q612 417 566 444Q543 458 515 458Z" /> 171.72 +<glyph unicode="A" glyph-name="A" horiz-adv-x="667" d="M474 219H193L116 0H17L277 729H397L653 0H549L474 219ZM448 297L336 629L216 297H448Z" /> 171.73 +<glyph unicode="B" glyph-name="B" horiz-adv-x="667" d="M79 0V729H375Q478 729 533 678Q591 627 591 545V544Q591 432 490 385Q595 344 616 264Q622 244 623 221Q623 215 623 209V208Q623 120 567 61Q511 0 409 0H408H79ZM172 415H352Q424 415 458 441Q498 471 171.74 +498 530V531Q498 590 458 621Q424 647 352 647H172V415ZM172 82H399Q463 82 495 116L496 117Q530 152 530 206V207Q530 262 496 298Q464 333 399 333H172V82Z" /> 171.75 +<glyph unicode="C" glyph-name="C" horiz-adv-x="722" d="M662 503H567Q552 578 514 613Q467 657 377 659H370Q242 659 181 544Q141 469 141 358V357Q141 187 236 108Q295 59 378 59Q487 59 538 136Q544 144 548 153Q570 195 581 266H677Q644 -23 377 -23Q236 171.76 +-23 154 62Q48 171 48 355V356Q48 539 150 650Q232 741 380 741H381Q619 741 662 503Z" /> 171.77 +<glyph unicode="D" glyph-name="D" horiz-adv-x="722" d="M89 0V729H370Q533 729 612 597Q613 596 613 595Q667 504 667 366V365Q667 156 551 61Q478 0 370 0H89ZM182 82H354Q528 82 565 263Q574 308 574 363V364Q574 610 406 642Q381 647 354 647H182V82Z" /> 171.78 +<glyph unicode="E" glyph-name="E" horiz-adv-x="667" d="M183 332V82H613V0H90V729H595V647H183V414H580V332H183Z" /> 171.79 +<glyph unicode="F" glyph-name="F" horiz-adv-x="611" d="M183 332V0H90V729H579V647H183V414H531V332H183Z" /> 171.80 +<glyph unicode="G" glyph-name="G" horiz-adv-x="778" d="M709 385V-4H650L627 93Q523 -23 379 -23H378Q225 -23 131 91Q44 195 44 356V357Q44 533 146 643Q160 658 176 671Q261 741 393 741H394Q573 741 654 623Q687 574 699 508H604Q583 606 488 642Q446 659 171.81 +393 659Q261 659 190 555Q137 477 137 363V362Q137 236 198 152L214 133Q280 61 392 59Q395 59 398 59Q512 59 578 139Q627 199 627 282V283V303H405V385H709Z" /> 171.82 +<glyph unicode="H" glyph-name="H" horiz-adv-x="722" d="M551 332H177V0H83V729H176V414H551V729H644V0H551V332Z" /> 171.83 +<glyph unicode="I" glyph-name="I" horiz-adv-x="278" d="M194 729V0H100V729H194Z" /> 171.84 +<glyph unicode="J" glyph-name="J" horiz-adv-x="500" d="M333 729H426V182Q426 58 336 5Q287 -23 220 -23Q96 -23 44 63Q17 108 17 169V170V234H112V187Q112 76 193 58L221 55Q279 55 309 98L310 100Q333 134 333 215V216V729Z" /> 171.85 +<glyph unicode="K" glyph-name="K" horiz-adv-x="667" d="M172 255V0H79V729H172V360L535 729H655L358 432L658 0H548L291 374L172 255Z" /> 171.86 +<glyph unicode="L" glyph-name="L" horiz-adv-x="556" d="M173 729V82H533V0H80V729H173Z" /> 171.87 +<glyph unicode="M" glyph-name="M" horiz-adv-x="833" d="M468 0H370L163 611V0H75V729H204L420 94L632 729H761V0H673V611L468 0Z" /> 171.88 +<glyph unicode="N" glyph-name="N" horiz-adv-x="722" d="M646 729V0H541L164 591V0H76V729H177L558 133V729H646Z" /> 171.89 +<glyph unicode="O" glyph-name="O" horiz-adv-x="778" d="M389 741Q563 741 660 618L661 617Q662 616 663 615Q723 536 738 422Q742 389 742 354V353Q742 205 660 100Q640 74 616 54Q525 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q244 741 171.90 +389 741ZM389 659Q259 659 187 557Q131 478 131 360V359Q131 201 226 118Q293 59 390 59Q519 59 591 159Q649 237 649 354V355Q649 520 551 603Q485 659 389 659Z" /> 171.91 +<glyph unicode="P" glyph-name="P" horiz-adv-x="667" d="M184 309V0H91V729H392Q553 729 600 611Q617 570 617 516V515Q617 418 554 361Q496 309 414 309H413H184ZM184 391H378Q480 391 510 465Q520 488 520 518V519Q520 609 441 637Q441 637 440 637Q413 647 171.92 +378 647H184V391Z" /> 171.93 +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="778" d="M733 -1L686 -59L581 28Q495 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q245 741 390 741Q556 741 654 625Q742 522 742 362V361Q742 189 639 76L733 -1ZM481 205L570 132Q649 221 171.94 +649 359V360Q649 517 555 600Q487 659 390 659Q259 659 187 557Q131 478 131 360V359Q131 200 226 117Q293 59 389 59Q449 59 509 87L435 149L481 205Z" /> 171.95 +<glyph unicode="R" glyph-name="R" horiz-adv-x="722" d="M186 314V0H93V729H429Q599 729 640 609Q651 576 651 535V534Q651 436 579 385Q560 372 536 360Q598 333 617 293Q634 256 635 170Q637 74 654 47Q663 34 679 23V0H566Q545 48 545 118V119L546 184Q546 171.96 +293 466 310Q448 314 426 314H186ZM186 396H411Q532 396 550 482Q554 499 554 520V521Q554 587 516 619Q484 647 411 647H186V396Z" /> 171.97 +<glyph unicode="S" glyph-name="S" horiz-adv-x="667" d="M596 515H508Q507 626 398 655Q366 663 326 663Q222 663 181 601V601Q163 574 163 541V540Q163 484 217 456Q242 443 283 432L466 383Q586 350 614 253Q621 228 621 201V200Q621 116 563 53L541 33Q468 171.98 +-23 336 -23Q167 -23 91 81Q49 138 48 232H136Q135 167 174 120Q225 59 342 59Q431 59 476 90Q520 121 527 176L528 191Q528 267 418 302Q407 306 395 309H394L213 357Q71 394 70 525V527Q70 651 174 707Q238 741 329 741Q505 741 568 630Q596 581 596 515Z" /> 171.99 +<glyph unicode="T" glyph-name="T" horiz-adv-x="611" d="M354 647V0H261V647H21V729H593V647H354Z" /> 171.100 +<glyph unicode="U" glyph-name="U" horiz-adv-x="722" d="M552 729H645V217Q645 87 541 22Q469 -23 364 -23Q199 -23 126 78Q86 135 85 215Q85 217 85 217V729H178V217Q178 138 231 97Q284 59 364 59Q487 59 532 138Q551 171 552 215Q552 215 552 216V217V729Z" /> 171.101 +<glyph unicode="V" glyph-name="V" horiz-adv-x="667" d="M392 0H292L30 729H130L344 112L546 729H645L392 0Z" /> 171.102 +<glyph unicode="W" glyph-name="W" horiz-adv-x="944" d="M744 0H642L474 599L311 0H209L22 729H126L263 137L425 729H525L691 137L825 729H929L744 0Z" /> 171.103 +<glyph unicode="X" glyph-name="X" horiz-adv-x="667" d="M391 374L649 0H534L335 304L135 0H22L280 374L38 729H151L338 443L526 729H637L391 374Z" /> 171.104 +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="667" d="M387 286V0H294V286L13 729H128L342 374L550 729H661L387 286Z" /> 171.105 +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="611" d="M581 729V645L145 82H583V0H28V82L466 647H56V729H581Z" /> 171.106 +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="278" d="M250 729V657H147V-140H250V-212H64V729H250Z" /> 171.107 +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="278" d="M47 729L284 -20H229L-8 729H47Z" /> 171.108 +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="278" d="M23 -212V-140H126V657H23V729H209V-212H23Z" /> 171.109 +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="469" d="M197 709H270L425 329H356L234 629L113 329H44L197 709Z" /> 171.110 +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="556" d="M578 -126V-176H-22V-126H578Z" /> 171.111 +<glyph unicode="`" glyph-name="grave" horiz-adv-x="333" d="M135 740L231 592H171L22 740H135Z" /> 171.112 +<glyph unicode="a" glyph-name="a" horiz-adv-x="556" d="M535 49V-14Q500 -23 478 -23Q407 -23 394 40Q393 47 392 54Q309 -22 218 -23H214Q104 -23 61 52Q42 86 42 131V132Q42 234 134 272Q170 287 264 299L302 304Q375 313 386 342V343V344L389 362V384Q389 171.113 +448 308 460Q291 462 272 462Q169 462 152 387Q150 378 149 369H65Q68 441 101 478Q156 539 275 539Q451 539 470 423Q472 411 472 397V396V88Q472 47 517 47L535 49ZM389 165V259Q357 244 275 233Q266 232 255 230Q149 215 133 161L129 135V134Q129 69 196 54Q212 171.114 +50 232 50Q304 50 356 97Q388 126 389 161Q389 162 389 162V162V163V163V165Z" /> 171.115 +<glyph unicode="b" glyph-name="b" horiz-adv-x="556" d="M54 729H137V453Q194 539 299 539Q427 539 486 431Q523 363 523 265V264Q523 103 432 26Q375 -23 295 -23Q188 -23 129 67V0H54V729ZM283 461Q200 461 161 377Q137 328 137 259V258Q137 133 206 81Q239 171.116 +55 283 55Q367 55 409 134Q436 185 436 254V255Q436 382 364 435Q331 460 288 461Q285 461 283 461Z" /> 171.117 +<glyph unicode="c" glyph-name="c" horiz-adv-x="500" d="M471 348H387Q374 445 290 460Q282 461 272 462H263Q169 462 134 362Q118 316 118 254V253Q118 116 197 71Q226 54 265 54Q372 54 393 180H477Q466 43 362 -3Q319 -23 263 -23Q134 -23 72 82Q31 151 31 171.118 +252V253Q31 413 123 490Q182 539 264 539Q370 539 428 471L436 461Q465 418 471 348Z" /> 171.119 +<glyph unicode="d" glyph-name="d" horiz-adv-x="556" d="M495 729V0H421V69Q363 -14 277 -22Q266 -23 254 -23Q124 -23 64 89Q26 159 26 261Q26 261 26 262V263Q26 417 115 492Q172 539 251 539Q359 539 412 458V729H495ZM265 461Q180 461 139 379Q119 341 114 171.120 +290Q113 275 113 259V258Q113 136 183 82Q219 55 266 55Q348 55 387 136Q412 186 412 255V256Q412 387 340 438Q307 461 265 461Z" /> 171.121 +<glyph unicode="e" glyph-name="e" horiz-adv-x="556" d="M513 234H127Q128 162 155 122Q198 54 281 54Q383 54 418 159H502Q480 38 376 -5Q332 -23 278 -23Q142 -23 79 87Q40 155 40 253V255Q40 413 134 490Q194 539 280 539Q395 539 460 457Q480 432 492 401Q513 171.122 +347 513 235V234ZM129 302H423L424 308Q424 388 365 433Q327 462 279 462Q194 462 153 387Q133 351 129 302Z" /> 171.123 +<glyph unicode="f" glyph-name="f" horiz-adv-x="278" d="M258 524V456H171V0H88V456H18V524H88V613Q88 701 162 725Q184 732 211 732Q234 732 258 727V658L229 659Q172 659 171 608V606V524H258Z" /> 171.124 +<glyph unicode="g" glyph-name="g" horiz-adv-x="556" d="M412 524H489V86Q489 -68 448 -132Q441 -142 434 -151Q386 -211 277 -217Q266 -218 255 -218Q117 -218 67 -130Q50 -99 46 -60H131Q137 -99 162 -119L163 -120Q199 -148 258 -148Q339 -148 374 -99Q404 171.125 +-58 404 43V44V71Q345 -11 272 -21Q261 -23 248 -23Q247 -23 245 -23Q162 -23 101 41Q98 44 95 47Q29 123 29 252V253Q29 404 112 483Q170 539 252 539Q350 539 412 448V524ZM261 462Q173 462 136 372Q116 325 116 259V258Q116 119 194 72Q223 54 262 54Q351 54 171.126 +386 146Q404 192 404 254V255Q404 405 322 448Q295 462 261 462Z" /> 171.127 +<glyph unicode="h" glyph-name="h" horiz-adv-x="556" d="M70 729H153V452Q207 522 273 535Q294 539 321 539Q431 539 470 465Q486 435 486 397V396V0H403V363Q403 418 369 442Q337 466 295 466Q211 466 174 389Q153 347 153 290V289V0H70V729Z" /> 171.128 +<glyph unicode="i" glyph-name="i" horiz-adv-x="222" d="M150 524V0H67V524H150ZM150 729V624H66V729H150Z" /> 171.129 +<glyph unicode="j" glyph-name="j" horiz-adv-x="222" d="M70 524H153V-109Q153 -212 25 -218H10L-18 -215V-144L2 -145Q54 -145 65 -113Q70 -99 70 -77V-76V524ZM153 729V624H70V729H153Z" /> 171.130 +<glyph unicode="k" glyph-name="k" horiz-adv-x="500" d="M141 729V302L363 524H470L288 343L502 0H399L222 284L141 204V0H58V729H141Z" /> 171.131 +<glyph unicode="l" glyph-name="l" horiz-adv-x="222" d="M152 729V0H68V729H152Z" /> 171.132 +<glyph unicode="m" glyph-name="m" horiz-adv-x="833" d="M70 524H147V450Q201 526 275 537Q284 538 295 539H308Q397 539 440 474Q445 467 449 459Q503 524 566 535Q574 537 583 538H584Q596 539 610 539Q732 539 757 441Q762 419 762 394V393V0H678V361Q678 171.133 +442 615 461Q599 466 581 466Q520 466 483 412Q458 376 458 330V329V0H374V361Q374 448 303 463L277 466Q215 466 178 410Q154 375 154 330V329V0H70V524Z" /> 171.134 +<glyph unicode="n" glyph-name="n" horiz-adv-x="556" d="M70 524H147V436Q201 521 277 535Q297 539 321 539Q425 539 467 470Q486 439 487 398V396V0H404V363Q404 432 346 457Q324 466 296 466Q212 466 175 389Q154 347 154 290V289V0H70V524Z" /> 171.135 +<glyph unicode="o" glyph-name="o" horiz-adv-x="556" d="M272 539Q424 539 481 410Q510 345 510 255V254Q510 87 408 16Q352 -23 273 -23Q129 -23 69 96Q36 162 36 257V258Q36 432 141 502Q196 539 272 539ZM273 462Q180 462 142 370Q123 323 123 259V258Q123 171.136 +121 201 73Q232 54 273 54Q363 54 402 142Q423 189 423 254V255Q423 400 341 446Q311 462 273 462Z" /> 171.137 +<glyph unicode="p" glyph-name="p" horiz-adv-x="556" d="M54 -218V524H131V445Q190 539 298 539Q425 539 485 428Q523 357 523 254V253Q523 99 434 24Q395 -9 343 -19Q322 -23 299 -23Q202 -23 139 54L138 55V-218H54ZM284 461Q201 461 162 377Q138 328 138 259V258Q138 171.138 +133 207 81Q240 55 284 55Q368 55 409 134Q436 185 436 254V255Q436 382 365 435Q330 461 284 461Z" /> 171.139 +<glyph unicode="q" glyph-name="q" horiz-adv-x="556" d="M495 -218H412V60Q355 -23 250 -23Q122 -23 63 85Q26 153 26 251V252Q26 413 117 490Q174 539 254 539Q361 539 421 454V524H495V-218ZM266 461Q182 461 140 380Q113 330 113 259V258Q113 136 183 82Q219 171.140 +55 266 55Q348 55 388 136Q412 186 412 254V255Q412 386 341 437Q308 461 266 461Z" /> 171.141 +<glyph unicode="r" glyph-name="r" horiz-adv-x="333" d="M69 524H146V429Q204 522 262 536Q275 539 289 539L321 536V451Q249 450 218 429Q215 427 212 425Q153 382 153 273V272V0H69V524Z" /> 171.142 +<glyph unicode="s" glyph-name="s" horiz-adv-x="500" d="M438 378H350Q347 462 245 462Q163 462 140 413Q134 400 134 384V383Q134 338 200 316L231 308L311 289Q429 261 452 191Q459 170 459 144V143Q459 47 369 3Q317 -23 243 -23Q49 -23 35 139L34 156H122Q128 171.143 +109 146 89Q179 54 250 54Q334 54 362 101Q372 116 372 135V136Q372 182 318 201Q309 204 299 207H298L291 209L213 228Q94 257 63 308Q54 324 50 345L47 379Q47 472 131 514Q180 539 248 539Q393 539 428 438Q438 411 438 378Z" /> 171.144 +<glyph unicode="t" glyph-name="t" horiz-adv-x="278" d="M254 524V456H168V97Q168 59 190 53L214 50Q239 50 254 54V-16Q215 -23 186 -23Q97 -23 86 44Q85 60 85 60V456H14V524H85V668H168V524H254Z" /> 171.145 +<glyph unicode="u" glyph-name="u" horiz-adv-x="556" d="M482 0H407V73Q351 -6 277 -19Q257 -23 232 -23Q125 -23 84 47Q65 78 65 119V120V524H148V153Q148 83 207 59Q228 50 255 50H256Q341 50 379 128Q399 170 399 226V227V524H482V0Z" /> 171.146 +<glyph unicode="v" glyph-name="v" horiz-adv-x="500" d="M285 0H194L10 524H104L244 99L392 524H486L285 0Z" /> 171.147 +<glyph unicode="w" glyph-name="w" horiz-adv-x="722" d="M554 0H459L353 411L252 0H158L6 524H98L205 116L305 524H407L510 116L614 524H708L554 0Z" /> 171.148 +<glyph unicode="x" glyph-name="x" horiz-adv-x="500" d="M292 271L473 0H376L245 201L112 0H17L202 267L27 524H122L248 334L374 524H468L292 271Z" /> 171.149 +<glyph unicode="y" glyph-name="y" horiz-adv-x="500" d="M388 524H478L245 -110Q223 -167 188 -193Q154 -218 110 -218Q79 -218 54 -205V-130Q81 -136 98 -136Q143 -136 161 -96Q163 -91 165 -85L197 -2L20 524H109L243 116L388 524Z" /> 171.150 +<glyph unicode="z" glyph-name="z" horiz-adv-x="500" d="M443 524V450L132 73H457V0H31V75L344 451H52V524H443Z" /> 171.151 +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="334" d="M276 729V664H261Q214 664 203 637V637Q198 623 198 598V597V416Q198 318 157 283L156 282Q146 273 133 267Q125 263 116 259Q198 221 198 103V101V-80Q198 -130 223 -141Q236 -147 261 -147H276V-212H230Q148 171.152 +-212 127 -132Q121 -110 121 -82V-81V86Q121 179 86 206Q70 218 43 224V293Q97 304 111 348Q121 376 121 430V431V598Q121 700 192 723Q210 729 230 729H276Z" /> 171.153 +<glyph unicode="|" glyph-name="bar" horiz-adv-x="260" d="M100 729H160V-212H100V729Z" /> 171.154 +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="334" d="M29 -212V-147H45Q93 -147 104 -120Q108 -109 109 -90V-80V101Q109 221 191 258Q109 296 109 414V416V597Q109 647 83 658Q70 664 45 664H29V729H76Q159 729 180 648Q186 626 186 599V598V431Q186 171.155 +337 222 310Q237 298 262 293V224Q210 213 195 167Q186 139 186 87V86V-81Q186 -184 113 -207Q96 -212 76 -212H29Z" /> 171.156 +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="584" d="M455 411H508V395Q508 310 451 280Q430 268 403 268Q364 268 322 294L224 357Q201 371 181 371Q152 371 136 336Q131 323 128 295V293H75Q82 424 166 437L183 438Q210 438 237 422L354 353Q382 171.157 +336 404 336Q448 336 454 385L455 411Z" /> 171.158 + 171.159 +<hkern g1="comma" g2="one" k="100" /> 171.160 +<hkern g1="hyphen" g2="A" k="7" /> 171.161 +<hkern g1="hyphen" g2="T" k="80" /> 171.162 +<hkern g1="hyphen" g2="V" k="46" /> 171.163 +<hkern g1="hyphen" g2="W" k="19" /> 171.164 +<hkern g1="hyphen" g2="Y" k="92" /> 171.165 +<hkern g1="period" g2="one" k="101" /> 171.166 +<hkern g1="zero" g2="one" k="46" /> 171.167 +<hkern g1="zero" g2="four" k="2" /> 171.168 +<hkern g1="zero" g2="seven" k="39" /> 171.169 +<hkern g1="one" g2="comma" k="74" /> 171.170 +<hkern g1="one" g2="period" k="74" /> 171.171 +<hkern g1="one" g2="zero" k="62" /> 171.172 +<hkern g1="one" g2="one" k="118" /> 171.173 +<hkern g1="one" g2="two" k="69" /> 171.174 +<hkern g1="one" g2="three" k="67" /> 171.175 +<hkern g1="one" g2="four" k="81" /> 171.176 +<hkern g1="one" g2="five" k="67" /> 171.177 +<hkern g1="one" g2="six" k="62" /> 171.178 +<hkern g1="one" g2="seven" k="90" /> 171.179 +<hkern g1="one" g2="eight" k="65" /> 171.180 +<hkern g1="one" g2="nine" k="65" /> 171.181 +<hkern g1="two" g2="one" k="36" /> 171.182 +<hkern g1="two" g2="four" k="37" /> 171.183 +<hkern g1="two" g2="seven" k="25" /> 171.184 +<hkern g1="three" g2="one" k="49" /> 171.185 +<hkern g1="three" g2="four" k="2" /> 171.186 +<hkern g1="three" g2="seven" k="33" /> 171.187 +<hkern g1="four" g2="one" k="84" /> 171.188 +<hkern g1="four" g2="four" k="-5" /> 171.189 +<hkern g1="four" g2="seven" k="56" /> 171.190 +<hkern g1="five" g2="one" k="76" /> 171.191 +<hkern g1="five" g2="four" k="-1" /> 171.192 +<hkern g1="five" g2="seven" k="26" /> 171.193 +<hkern g1="six" g2="one" k="43" /> 171.194 +<hkern g1="six" g2="four" k="-1" /> 171.195 +<hkern g1="six" g2="seven" k="30" /> 171.196 +<hkern g1="seven" g2="comma" k="119" /> 171.197 +<hkern g1="seven" g2="period" k="119" /> 171.198 +<hkern g1="seven" g2="one" k="53" /> 171.199 +<hkern g1="seven" g2="two" k="28" /> 171.200 +<hkern g1="seven" g2="three" k="23" /> 171.201 +<hkern g1="seven" g2="four" k="93" /> 171.202 +<hkern g1="seven" g2="five" k="30" /> 171.203 +<hkern g1="seven" g2="six" k="40" /> 171.204 +<hkern g1="seven" g2="seven" k="4" /> 171.205 +<hkern g1="seven" g2="eight" k="28" /> 171.206 +<hkern g1="seven" g2="colon" k="77" /> 171.207 +<hkern g1="eight" g2="one" k="48" /> 171.208 +<hkern g1="eight" g2="four" k="-1" /> 171.209 +<hkern g1="eight" g2="seven" k="33" /> 171.210 +<hkern g1="nine" g2="one" k="43" /> 171.211 +<hkern g1="nine" g2="four" k="3" /> 171.212 +<hkern g1="nine" g2="seven" k="37" /> 171.213 +<hkern g1="A" g2="comma" k="-5" /> 171.214 +<hkern g1="A" g2="hyphen" k="3" /> 171.215 +<hkern g1="A" g2="period" k="-5" /> 171.216 +<hkern g1="A" g2="C" k="36" /> 171.217 +<hkern g1="A" g2="G" k="35" /> 171.218 +<hkern g1="A" g2="O" k="33" /> 171.219 +<hkern g1="A" g2="Q" k="32" /> 171.220 +<hkern g1="A" g2="T" k="93" /> 171.221 +<hkern g1="A" g2="U" k="37" /> 171.222 +<hkern g1="A" g2="V" k="75" /> 171.223 +<hkern g1="A" g2="W" k="51" /> 171.224 +<hkern g1="A" g2="Y" k="99" /> 171.225 +<hkern g1="A" g2="a" k="4" /> 171.226 +<hkern g1="A" g2="b" k="-4" /> 171.227 +<hkern g1="A" g2="c" k="11" /> 171.228 +<hkern g1="A" g2="d" k="8" /> 171.229 +<hkern g1="A" g2="e" k="16" /> 171.230 +<hkern g1="A" g2="g" k="10" /> 171.231 +<hkern g1="A" g2="o" k="13" /> 171.232 +<hkern g1="A" g2="q" k="8" /> 171.233 +<hkern g1="A" g2="t" k="16" /> 171.234 +<hkern g1="A" g2="u" k="12" /> 171.235 +<hkern g1="A" g2="v" k="31" /> 171.236 +<hkern g1="A" g2="w" k="21" /> 171.237 +<hkern g1="A" g2="y" k="34" /> 171.238 +<hkern g1="B" g2="A" k="21" /> 171.239 +<hkern g1="B" g2="O" k="7" /> 171.240 +<hkern g1="B" g2="V" k="41" /> 171.241 +<hkern g1="B" g2="W" k="25" /> 171.242 +<hkern g1="B" g2="Y" k="44" /> 171.243 +<hkern g1="C" g2="A" k="32" /> 171.244 +<hkern g1="C" g2="H" k="12" /> 171.245 +<hkern g1="C" g2="K" k="10" /> 171.246 +<hkern g1="C" g2="O" k="8" /> 171.247 +<hkern g1="D" g2="A" k="42" /> 171.248 +<hkern g1="D" g2="J" k="5" /> 171.249 +<hkern g1="D" g2="T" k="45" /> 171.250 +<hkern g1="D" g2="V" k="51" /> 171.251 +<hkern g1="D" g2="W" k="29" /> 171.252 +<hkern g1="D" g2="X" k="53" /> 171.253 +<hkern g1="D" g2="Y" k="63" /> 171.254 +<hkern g1="F" g2="comma" k="108" /> 171.255 +<hkern g1="F" g2="hyphen" k="14" /> 171.256 +<hkern g1="F" g2="period" k="108" /> 171.257 +<hkern g1="F" g2="A" k="69" /> 171.258 +<hkern g1="F" g2="J" k="51" /> 171.259 +<hkern g1="F" g2="O" k="22" /> 171.260 +<hkern g1="F" g2="a" k="33" /> 171.261 +<hkern g1="F" g2="e" k="24" /> 171.262 +<hkern g1="F" g2="i" k="10" /> 171.263 +<hkern g1="F" g2="j" k="12" /> 171.264 +<hkern g1="F" g2="o" k="21" /> 171.265 +<hkern g1="F" g2="r" k="35" /> 171.266 +<hkern g1="F" g2="u" k="33" /> 171.267 +<hkern g1="G" g2="A" k="6" /> 171.268 +<hkern g1="G" g2="T" k="44" /> 171.269 +<hkern g1="G" g2="V" k="50" /> 171.270 +<hkern g1="G" g2="W" k="28" /> 171.271 +<hkern g1="G" g2="Y" k="62" /> 171.272 +<hkern g1="J" g2="A" k="32" /> 171.273 +<hkern g1="K" g2="hyphen" k="47" /> 171.274 +<hkern g1="K" g2="C" k="51" /> 171.275 +<hkern g1="K" g2="G" k="51" /> 171.276 +<hkern g1="K" g2="O" k="48" /> 171.277 +<hkern g1="K" g2="S" k="38" /> 171.278 +<hkern g1="K" g2="T" k="-20" /> 171.279 +<hkern g1="K" g2="a" k="11" /> 171.280 +<hkern g1="K" g2="e" k="32" /> 171.281 +<hkern g1="K" g2="o" k="29" /> 171.282 +<hkern g1="K" g2="u" k="19" /> 171.283 +<hkern g1="K" g2="y" k="62" /> 171.284 +<hkern g1="L" g2="hyphen" k="125" /> 171.285 +<hkern g1="L" g2="A" k="-17" /> 171.286 +<hkern g1="L" g2="C" k="41" /> 171.287 +<hkern g1="L" g2="G" k="42" /> 171.288 +<hkern g1="L" g2="O" k="41" /> 171.289 +<hkern g1="L" g2="S" k="19" /> 171.290 +<hkern g1="L" g2="T" k="105" /> 171.291 +<hkern g1="L" g2="U" k="35" /> 171.292 +<hkern g1="L" g2="V" k="105" /> 171.293 +<hkern g1="L" g2="W" k="68" /> 171.294 +<hkern g1="L" g2="Y" k="121" /> 171.295 +<hkern g1="L" g2="u" k="7" /> 171.296 +<hkern g1="L" g2="y" k="56" /> 171.297 +<hkern g1="N" g2="comma" k="7" /> 171.298 +<hkern g1="N" g2="period" k="7" /> 171.299 +<hkern g1="N" g2="A" k="9" /> 171.300 +<hkern g1="N" g2="C" k="3" /> 171.301 +<hkern g1="N" g2="G" k="2" /> 171.302 +<hkern g1="N" g2="a" k="5" /> 171.303 +<hkern g1="N" g2="o" k="-2" /> 171.304 +<hkern g1="O" g2="A" k="35" /> 171.305 +<hkern g1="O" g2="T" k="42" /> 171.306 +<hkern g1="O" g2="V" k="45" /> 171.307 +<hkern g1="O" g2="W" k="23" /> 171.308 +<hkern g1="O" g2="X" k="46" /> 171.309 +<hkern g1="O" g2="Y" k="59" /> 171.310 +<hkern g1="P" g2="comma" k="135" /> 171.311 +<hkern g1="P" g2="hyphen" k="40" /> 171.312 +<hkern g1="P" g2="period" k="135" /> 171.313 +<hkern g1="P" g2="A" k="78" /> 171.314 +<hkern g1="P" g2="J" k="78" /> 171.315 +<hkern g1="P" g2="a" k="28" /> 171.316 +<hkern g1="P" g2="e" k="31" /> 171.317 +<hkern g1="P" g2="o" k="27" /> 171.318 +<hkern g1="R" g2="hyphen" k="2" /> 171.319 +<hkern g1="R" g2="C" k="16" /> 171.320 +<hkern g1="R" g2="G" k="15" /> 171.321 +<hkern g1="R" g2="O" k="13" /> 171.322 +<hkern g1="R" g2="T" k="23" /> 171.323 +<hkern g1="R" g2="U" k="17" /> 171.324 +<hkern g1="R" g2="V" k="39" /> 171.325 +<hkern g1="R" g2="W" k="27" /> 171.326 +<hkern g1="R" g2="Y" k="43" /> 171.327 +<hkern g1="R" g2="a" k="15" /> 171.328 +<hkern g1="R" g2="e" k="12" /> 171.329 +<hkern g1="R" g2="o" k="9" /> 171.330 +<hkern g1="R" g2="u" k="9" /> 171.331 +<hkern g1="R" g2="y" k="8" /> 171.332 +<hkern g1="S" g2="A" k="22" /> 171.333 +<hkern g1="S" g2="T" k="28" /> 171.334 +<hkern g1="S" g2="V" k="42" /> 171.335 +<hkern g1="S" g2="W" k="28" /> 171.336 +<hkern g1="S" g2="Y" k="48" /> 171.337 +<hkern g1="S" g2="t" k="3" /> 171.338 +<hkern g1="T" g2="comma" k="100" /> 171.339 +<hkern g1="T" g2="hyphen" k="77" /> 171.340 +<hkern g1="T" g2="period" k="100" /> 171.341 +<hkern g1="T" g2="colon" k="133" /> 171.342 +<hkern g1="T" g2="semicolon" k="129" /> 171.343 +<hkern g1="T" g2="A" k="95" /> 171.344 +<hkern g1="T" g2="C" k="44" /> 171.345 +<hkern g1="T" g2="G" k="45" /> 171.346 +<hkern g1="T" g2="J" k="100" /> 171.347 +<hkern g1="T" g2="O" k="42" /> 171.348 +<hkern g1="T" g2="S" k="24" /> 171.349 +<hkern g1="T" g2="V" k="-12" /> 171.350 +<hkern g1="T" g2="W" k="-16" /> 171.351 +<hkern g1="T" g2="Y" k="-20" /> 171.352 +<hkern g1="T" g2="a" k="100" /> 171.353 +<hkern g1="T" g2="c" k="90" /> 171.354 +<hkern g1="T" g2="e" k="95" /> 171.355 +<hkern g1="T" g2="g" k="89" /> 171.356 +<hkern g1="T" g2="i" k="3" /> 171.357 +<hkern g1="T" g2="j" k="5" /> 171.358 +<hkern g1="T" g2="o" k="92" /> 171.359 +<hkern g1="T" g2="r" k="92" /> 171.360 +<hkern g1="T" g2="s" k="92" /> 171.361 +<hkern g1="T" g2="u" k="91" /> 171.362 +<hkern g1="T" g2="v" k="95" /> 171.363 +<hkern g1="T" g2="w" k="93" /> 171.364 +<hkern g1="T" g2="y" k="100" /> 171.365 +<hkern g1="U" g2="comma" k="27" /> 171.366 +<hkern g1="U" g2="period" k="25" /> 171.367 +<hkern g1="U" g2="A" k="36" /> 171.368 +<hkern g1="U" g2="m" k="4" /> 171.369 +<hkern g1="U" g2="n" k="4" /> 171.370 +<hkern g1="U" g2="p" k="-3" /> 171.371 +<hkern g1="U" g2="r" k="4" /> 171.372 +<hkern g1="V" g2="comma" k="89" /> 171.373 +<hkern g1="V" g2="hyphen" k="38" /> 171.374 +<hkern g1="V" g2="period" k="89" /> 171.375 +<hkern g1="V" g2="colon" k="66" /> 171.376 +<hkern g1="V" g2="semicolon" k="66" /> 171.377 +<hkern g1="V" g2="A" k="71" /> 171.378 +<hkern g1="V" g2="C" k="43" /> 171.379 +<hkern g1="V" g2="G" k="42" /> 171.380 +<hkern g1="V" g2="O" k="40" /> 171.381 +<hkern g1="V" g2="S" k="35" /> 171.382 +<hkern g1="V" g2="T" k="-15" /> 171.383 +<hkern g1="V" g2="a" k="59" /> 171.384 +<hkern g1="V" g2="e" k="57" /> 171.385 +<hkern g1="V" g2="g" k="50" /> 171.386 +<hkern g1="V" g2="i" k="5" /> 171.387 +<hkern g1="V" g2="o" k="54" /> 171.388 +<hkern g1="V" g2="r" k="42" /> 171.389 +<hkern g1="V" g2="u" k="41" /> 171.390 +<hkern g1="V" g2="y" k="20" /> 171.391 +<hkern g1="W" g2="comma" k="56" /> 171.392 +<hkern g1="W" g2="hyphen" k="13" /> 171.393 +<hkern g1="W" g2="period" k="56" /> 171.394 +<hkern g1="W" g2="colon" k="52" /> 171.395 +<hkern g1="W" g2="semicolon" k="53" /> 171.396 +<hkern g1="W" g2="A" k="50" /> 171.397 +<hkern g1="W" g2="C" k="23" /> 171.398 +<hkern g1="W" g2="G" k="22" /> 171.399 +<hkern g1="W" g2="O" k="20" /> 171.400 +<hkern g1="W" g2="S" k="24" /> 171.401 +<hkern g1="W" g2="T" k="-19" /> 171.402 +<hkern g1="W" g2="a" k="38" /> 171.403 +<hkern g1="W" g2="e" k="32" /> 171.404 +<hkern g1="W" g2="g" k="25" /> 171.405 +<hkern g1="W" g2="i" k="1" /> 171.406 +<hkern g1="W" g2="o" k="29" /> 171.407 +<hkern g1="W" g2="r" k="28" /> 171.408 +<hkern g1="W" g2="u" k="28" /> 171.409 +<hkern g1="W" g2="y" k="6" /> 171.410 +<hkern g1="X" g2="hyphen" k="51" /> 171.411 +<hkern g1="X" g2="C" k="48" /> 171.412 +<hkern g1="X" g2="O" k="45" /> 171.413 +<hkern g1="X" g2="Q" k="44" /> 171.414 +<hkern g1="X" g2="a" k="15" /> 171.415 +<hkern g1="X" g2="e" k="36" /> 171.416 +<hkern g1="X" g2="o" k="33" /> 171.417 +<hkern g1="X" g2="u" k="24" /> 171.418 +<hkern g1="X" g2="y" k="61" /> 171.419 +<hkern g1="Y" g2="comma" k="111" /> 171.420 +<hkern g1="Y" g2="hyphen" k="84" /> 171.421 +<hkern g1="Y" g2="period" k="111" /> 171.422 +<hkern g1="Y" g2="colon" k="87" /> 171.423 +<hkern g1="Y" g2="semicolon" k="88" /> 171.424 +<hkern g1="Y" g2="A" k="96" /> 171.425 +<hkern g1="Y" g2="C" k="58" /> 171.426 +<hkern g1="Y" g2="G" k="58" /> 171.427 +<hkern g1="Y" g2="O" k="56" /> 171.428 +<hkern g1="Y" g2="S" k="41" /> 171.429 +<hkern g1="Y" g2="T" k="-23" /> 171.430 +<hkern g1="Y" g2="a" k="88" /> 171.431 +<hkern g1="Y" g2="e" k="89" /> 171.432 +<hkern g1="Y" g2="g" k="83" /> 171.433 +<hkern g1="Y" g2="i" k="-3" /> 171.434 +<hkern g1="Y" g2="o" k="86" /> 171.435 +<hkern g1="Y" g2="p" k="54" /> 171.436 +<hkern g1="Y" g2="u" k="63" /> 171.437 +<hkern g1="Y" g2="v" k="36" /> 171.438 +<hkern g1="Z" g2="v" k="33" /> 171.439 +<hkern g1="Z" g2="y" k="38" /> 171.440 +<hkern g1="a" g2="j" k="4" /> 171.441 +<hkern g1="a" g2="v" k="21" /> 171.442 +<hkern g1="a" g2="w" k="13" /> 171.443 +<hkern g1="a" g2="y" k="26" /> 171.444 +<hkern g1="b" g2="v" k="11" /> 171.445 +<hkern g1="b" g2="w" k="3" /> 171.446 +<hkern g1="b" g2="y" k="15" /> 171.447 +<hkern g1="c" g2="h" k="-1" /> 171.448 +<hkern g1="c" g2="k" k="-7" /> 171.449 +<hkern g1="e" g2="t" k="10" /> 171.450 +<hkern g1="e" g2="v" k="15" /> 171.451 +<hkern g1="e" g2="w" k="9" /> 171.452 +<hkern g1="e" g2="x" k="27" /> 171.453 +<hkern g1="e" g2="y" k="19" /> 171.454 +<hkern g1="f" g2="a" k="9" /> 171.455 +<hkern g1="f" g2="e" k="15" /> 171.456 +<hkern g1="f" g2="f" k="-22" /> 171.457 +<hkern g1="f" g2="i" k="2" /> 171.458 +<hkern g1="f" g2="j" k="4" /> 171.459 +<hkern g1="f" g2="l" k="3" /> 171.460 +<hkern g1="f" g2="o" k="10" /> 171.461 +<hkern g1="f" g2="t" k="-24" /> 171.462 +<hkern g1="g" g2="a" k="5" /> 171.463 +<hkern g1="h" g2="y" k="18" /> 171.464 +<hkern g1="i" g2="T" k="7" /> 171.465 +<hkern g1="i" g2="j" k="3" /> 171.466 +<hkern g1="k" g2="hyphen" k="41" /> 171.467 +<hkern g1="k" g2="a" k="2" /> 171.468 +<hkern g1="k" g2="e" k="21" /> 171.469 +<hkern g1="k" g2="g" k="16" /> 171.470 +<hkern g1="k" g2="o" k="19" /> 171.471 +<hkern g1="k" g2="s" k="3" /> 171.472 +<hkern g1="k" g2="u" k="11" /> 171.473 +<hkern g1="l" g2="y" k="5" /> 171.474 +<hkern g1="m" g2="p" k="-5" /> 171.475 +<hkern g1="m" g2="v" k="13" /> 171.476 +<hkern g1="m" g2="w" k="7" /> 171.477 +<hkern g1="m" g2="y" k="18" /> 171.478 +<hkern g1="n" g2="T" k="96" /> 171.479 +<hkern g1="n" g2="p" k="-5" /> 171.480 +<hkern g1="n" g2="v" k="13" /> 171.481 +<hkern g1="n" g2="w" k="7" /> 171.482 +<hkern g1="n" g2="y" k="18" /> 171.483 +<hkern g1="o" g2="T" k="99" /> 171.484 +<hkern g1="o" g2="t" k="10" /> 171.485 +<hkern g1="o" g2="v" k="18" /> 171.486 +<hkern g1="o" g2="w" k="10" /> 171.487 +<hkern g1="o" g2="x" k="27" /> 171.488 +<hkern g1="o" g2="y" k="22" /> 171.489 +<hkern g1="p" g2="t" k="4" /> 171.490 +<hkern g1="p" g2="y" k="16" /> 171.491 +<hkern g1="q" g2="c" k="-8" /> 171.492 +<hkern g1="q" g2="u" k="-4" /> 171.493 +<hkern g1="r" g2="comma" k="69" /> 171.494 +<hkern g1="r" g2="hyphen" k="47" /> 171.495 +<hkern g1="r" g2="period" k="69" /> 171.496 +<hkern g1="r" g2="colon" k="22" /> 171.497 +<hkern g1="r" g2="semicolon" k="22" /> 171.498 +<hkern g1="r" g2="a" k="5" /> 171.499 +<hkern g1="r" g2="c" k="6" /> 171.500 +<hkern g1="r" g2="d" k="1" /> 171.501 +<hkern g1="r" g2="e" k="11" /> 171.502 +<hkern g1="r" g2="f" k="-26" /> 171.503 +<hkern g1="r" g2="g" k="4" /> 171.504 +<hkern g1="r" g2="i" k="-1" /> 171.505 +<hkern g1="r" g2="k" k="-6" /> 171.506 +<hkern g1="r" g2="l" k="-1" /> 171.507 +<hkern g1="r" g2="o" k="6" /> 171.508 +<hkern g1="r" g2="p" k="-8" /> 171.509 +<hkern g1="r" g2="q" k="3" /> 171.510 +<hkern g1="r" g2="s" k="-4" /> 171.511 +<hkern g1="r" g2="t" k="-28" /> 171.512 +<hkern g1="r" g2="u" k="-2" /> 171.513 +<hkern g1="r" g2="v" k="-29" /> 171.514 +<hkern g1="r" g2="w" k="-31" /> 171.515 +<hkern g1="r" g2="x" k="-20" /> 171.516 +<hkern g1="r" g2="y" k="-24" /> 171.517 +<hkern g1="r" g2="z" k="-9" /> 171.518 +<hkern g1="s" g2="t" k="3" /> 171.519 +<hkern g1="t" g2="colon" k="28" /> 171.520 +<hkern g1="t" g2="semicolon" k="28" /> 171.521 +<hkern g1="t" g2="S" k="8" /> 171.522 +<hkern g1="t" g2="a" k="1" /> 171.523 +<hkern g1="t" g2="e" k="14" /> 171.524 +<hkern g1="t" g2="h" k="3" /> 171.525 +<hkern g1="t" g2="o" k="12" /> 171.526 +<hkern g1="v" g2="comma" k="69" /> 171.527 +<hkern g1="v" g2="hyphen" k="12" /> 171.528 +<hkern g1="v" g2="period" k="69" /> 171.529 +<hkern g1="v" g2="colon" k="23" /> 171.530 +<hkern g1="v" g2="semicolon" k="23" /> 171.531 +<hkern g1="v" g2="a" k="18" /> 171.532 +<hkern g1="v" g2="c" k="16" /> 171.533 +<hkern g1="v" g2="e" k="21" /> 171.534 +<hkern g1="v" g2="g" k="14" /> 171.535 +<hkern g1="v" g2="o" k="17" /> 171.536 +<hkern g1="v" g2="s" k="9" /> 171.537 +<hkern g1="w" g2="comma" k="50" /> 171.538 +<hkern g1="w" g2="hyphen" k="1" /> 171.539 +<hkern g1="w" g2="period" k="50" /> 171.540 +<hkern g1="w" g2="colon" k="23" /> 171.541 +<hkern g1="w" g2="semicolon" k="23" /> 171.542 +<hkern g1="w" g2="a" k="15" /> 171.543 +<hkern g1="w" g2="c" k="7" /> 171.544 +<hkern g1="w" g2="e" k="12" /> 171.545 +<hkern g1="w" g2="g" k="6" /> 171.546 +<hkern g1="w" g2="o" k="9" /> 171.547 +<hkern g1="w" g2="s" k="5" /> 171.548 +<hkern g1="x" g2="a" k="17" /> 171.549 +<hkern g1="x" g2="c" k="23" /> 171.550 +<hkern g1="x" g2="e" k="28" /> 171.551 +<hkern g1="x" g2="o" k="25" /> 171.552 +<hkern g1="x" g2="q" k="20" /> 171.553 +<hkern g1="y" g2="comma" k="70" /> 171.554 +<hkern g1="y" g2="hyphen" k="14" /> 171.555 +<hkern g1="y" g2="period" k="70" /> 171.556 +<hkern g1="y" g2="colon" k="27" /> 171.557 +<hkern g1="y" g2="semicolon" k="27" /> 171.558 +<hkern g1="y" g2="a" k="22" /> 171.559 +<hkern g1="y" g2="c" k="19" /> 171.560 +<hkern g1="y" g2="e" k="24" /> 171.561 +<hkern g1="y" g2="g" k="17" /> 171.562 +<hkern g1="y" g2="l" k="4" /> 171.563 +<hkern g1="y" g2="o" k="20" /> 171.564 +<hkern g1="y" g2="s" k="12" /> 171.565 +</font> 171.566 +</defs> 171.567 +<g font-family="SVGFreeSansASCII" font-size="18"> 171.568 +<text x="20" y="60">  !"#$%&'()*+,-./0123456789:;<>?</text> 171.569 +<text x="20" y="120">@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_</text> 171.570 +<text x="20" y="180">`abcdefghijklmnopqrstuvwxyz|{}~</text> 171.571 +</g> 171.572 +</svg>
172.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 172.2 +++ b/filters/test/svg/filters-gauss-201.svg Mon Apr 11 10:08:48 2011 +1000 172.3 @@ -0,0 +1,81 @@ 172.4 +<svg id="svg-root" width="100%" height="100%" 172.5 + viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 172.6 + xmlns:xlink="http://www.w3.org/1999/xlink"> 172.7 + <!--======================================================================--> 172.8 + <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 172.9 + <!--= Institute of Technology, European Research Consortium for =--> 172.10 + <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 172.11 + <!--= All Rights Reserved. =--> 172.12 + <!--= See http://www.w3.org/Consortium/Legal/. =--> 172.13 + <!--======================================================================--> 172.14 + <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 172.15 + reviewer="[reviewer]" owner="ED" desc="Negative stdDeviation attribute values" status="created" 172.16 + version="$Revision$" testname="$RCSfile$"> 172.17 + <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"> 172.18 + <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#feGaussianBlur"> 172.19 + <p> 172.20 + This test tests negative values for 'stdDeviation' on 'feGaussianBlur'. 172.21 + </p> 172.22 + </d:Reference> 172.23 + </d:TestDescription> 172.24 + <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 172.25 + <p> 172.26 + Run the test. No interaction required. 172.27 + </p> 172.28 + </d:OperatorScript> 172.29 + <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 172.30 + <p> 172.31 + The test has passed if there are two blurred images and they both look exactly the same. 172.32 + </p> 172.33 + </d:PassCriteria> 172.34 + </SVGTestCase> 172.35 + <title id="test-title">$RCSfile$</title> 172.36 + <defs> 172.37 + <font-face 172.38 + font-family="SVGFreeSansASCII" 172.39 + unicode-range="U+0-7F"> 172.40 + <font-face-src> 172.41 + <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 172.42 + </font-face-src> 172.43 + </font-face> 172.44 + </defs> 172.45 + <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18"> 172.46 + 172.47 + <defs> 172.48 + <filter id="filter1"> 172.49 + <feGaussianBlur stdDeviation="6"/> 172.50 + </filter> 172.51 + <filter id="filter2"> 172.52 + <feGaussianBlur stdDeviation="-6"/> 172.53 + </filter> 172.54 + <filter id="filter3"> 172.55 + <feGaussianBlur stdDeviation="-6 6"/> 172.56 + </filter> 172.57 + <filter id="filter4"> 172.58 + <feGaussianBlur stdDeviation="6 -6"/> 172.59 + </filter> 172.60 + </defs> 172.61 + 172.62 + <circle cx="180" cy="100" r="30" fill="red"/> 172.63 + <circle cx="300" cy="100" r="30" fill="red"/> 172.64 + <circle cx="180" cy="220" r="30" fill="red"/> 172.65 + <circle cx="300" cy="220" r="30" fill="red"/> 172.66 + 172.67 + <circle cx="180" cy="100" r="50" filter="url(#filter1)" fill="lime"/> 172.68 + <circle cx="300" cy="100" r="50" filter="url(#filter2)" fill="lime"/> 172.69 + <circle cx="180" cy="220" r="50" filter="url(#filter3)" fill="lime"/> 172.70 + <circle cx="300" cy="220" r="50" filter="url(#filter4)" fill="lime"/> 172.71 + 172.72 + </g> 172.73 + <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 172.74 + <text id="revision" x="10" y="340" stroke="none" 172.75 + fill="black">$Revision$</text> 172.76 + </g> 172.77 + <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 172.78 + <!-- comment out this watermark once the test is approved --> 172.79 + <g id="draft-watermark"> 172.80 + <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 172.81 + <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 172.82 + text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 172.83 + </g> 172.84 +</svg>
173.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 173.2 +++ b/filters/test/svg/filters-morph-201.svg Mon Apr 11 10:08:48 2011 +1000 173.3 @@ -0,0 +1,84 @@ 173.4 +<svg id="svg-root" width="100%" height="100%" 173.5 + viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 173.6 + xmlns:xlink="http://www.w3.org/1999/xlink"> 173.7 + <!--======================================================================--> 173.8 + <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 173.9 + <!--= Institute of Technology, European Research Consortium for =--> 173.10 + <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 173.11 + <!--= All Rights Reserved. =--> 173.12 + <!--= See http://www.w3.org/Consortium/Legal/. =--> 173.13 + <!--======================================================================--> 173.14 + <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" 173.15 + template-version="1.3" reviewer="[reviewer]" author="ED" status="created" 173.16 + version="$Revision$" testname="$RCSfile$"> 173.17 + <d:testDescription> 173.18 + <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#feMorphologyElement"> 173.19 + <p> 173.20 + Tests various values for the <a>'radius'</a> attribute on <a>'feMorphology'</a>. 173.21 + </p> 173.22 + </d:testComponent> 173.23 + </d:testDescription> 173.24 + <d:operatorScript xmlns="http://www.w3.org/1999/xhtml"> 173.25 + <p> 173.26 + Run the test. No interaction required. 173.27 + </p> 173.28 + </d:operatorScript> 173.29 + <d:passCriteria xmlns="http://www.w3.org/1999/xhtml"> 173.30 + <p> 173.31 + The test has passed if there are six lines of gradually thinning text, with the boldest line of text at the top, and no red visible. 173.32 + </p> 173.33 + </d:passCriteria> 173.34 + </d:SVGTestCase> 173.35 + <title id="test-title">$RCSfile$</title> 173.36 + <defs> 173.37 + <font-face 173.38 + font-family="SVGFreeSansASCII" 173.39 + unicode-range="U+0-7F"> 173.40 + <font-face-src> 173.41 + <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 173.42 + </font-face-src> 173.43 + </font-face> 173.44 + </defs> 173.45 + <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12"> 173.46 + 173.47 + <defs> 173.48 + <filter id="morph0"> 173.49 + <feMorphology type="erode" radius="0"/> 173.50 + </filter> 173.51 + <filter id="morph1"> 173.52 + <feMorphology type="erode" radius="0.5"/> 173.53 + </filter> 173.54 + <filter id="morph2"> 173.55 + <feMorphology type="erode" radius="1"/> 173.56 + </filter> 173.57 + <filter id="morph3"> 173.58 + <feMorphology type="erode" radius="1.5"/> 173.59 + </filter> 173.60 + <filter id="morph4"> 173.61 + <feMorphology type="erode" radius="2"/> 173.62 + </filter> 173.63 + <filter id="morph5"> 173.64 + <feMorphology type="erode" radius="3"/> 173.65 + </filter> 173.66 + </defs> 173.67 + 173.68 + <text x="240" y="80" font-size="48" text-anchor="middle" stroke="red" fill="red">Erode radius=0.0</text> 173.69 + <text x="240" y="80" font-size="48" text-anchor="middle" filter="url(#morph0)" stroke="black">Erode radius=0.0</text> 173.70 + <text x="240" y="120" font-size="48" text-anchor="middle" filter="url(#morph1)" stroke="black">Erode radius=0.5</text> 173.71 + <text x="240" y="160" font-size="48" text-anchor="middle" filter="url(#morph2)" stroke="black">Erode radius=1.0</text> 173.72 + <text x="240" y="200" font-size="48" text-anchor="middle" filter="url(#morph3)" stroke="black">Erode radius=1.5</text> 173.73 + <text x="240" y="240" font-size="48" text-anchor="middle" filter="url(#morph4)" stroke="black">Erode radius=2.0</text> 173.74 + <text x="240" y="280" font-size="48" text-anchor="middle" filter="url(#morph5)" stroke="black">Erode radius=3.0</text> 173.75 + </g> 173.76 + <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 173.77 + <text id="revision" x="10" y="340" stroke="none" 173.78 + fill="black">$Revision$</text> 173.79 + </g> 173.80 + <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 173.81 + <!-- comment out this watermark once the test is approved --> 173.82 + <g id="draft-watermark"> 173.83 + <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 173.84 + <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 173.85 + text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 173.86 + </g> 173.87 +</svg>
174.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 174.2 +++ b/filters/test/svg/filters-region-201.svg Mon Apr 11 10:08:48 2011 +1000 174.3 @@ -0,0 +1,91 @@ 174.4 +<svg id="svg-root" width="100%" height="100%" 174.5 + viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 174.6 + xmlns:xlink="http://www.w3.org/1999/xlink"> 174.7 + <!--======================================================================--> 174.8 + <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 174.9 + <!--= Institute of Technology, European Research Consortium for =--> 174.10 + <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 174.11 + <!--= All Rights Reserved. =--> 174.12 + <!--= See http://www.w3.org/Consortium/Legal/. =--> 174.13 + <!--======================================================================--> 174.14 + <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 174.15 + reviewer="[reviewer]" owner="ED" desc="Test filter effects region" status="created" 174.16 + version="$Revision$" testname="$RCSfile$"> 174.17 + <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"> 174.18 + <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion"> 174.19 + <p> 174.20 + This test tests the x, y, width and height attributes on the 'filter' element. These attributes define the filter effects region. 174.21 + </p> 174.22 + </d:Reference> 174.23 + </d:TestDescription> 174.24 + <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 174.25 + <p> 174.26 + Load the test, and inspect the image for any traces of red, or misalignments. 174.27 + </p> 174.28 + </d:OperatorScript> 174.29 + <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 174.30 + <p> 174.31 + The test has passed if: 174.32 + <ul> 174.33 + <li>The test shows one green rectangle split into four subrectangles that have equal size</li> 174.34 + <li>There is no red visible</li> 174.35 + </ul> 174.36 + </p> 174.37 + </d:PassCriteria> 174.38 + </SVGTestCase> 174.39 + <title id="test-title">$RCSfile$</title> 174.40 + <defs> 174.41 + <font-face 174.42 + font-family="SVGFreeSansASCII" 174.43 + unicode-range="U+0-7F"> 174.44 + <font-face-src> 174.45 + <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 174.46 + </font-face-src> 174.47 + </font-face> 174.48 + </defs> 174.49 + <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18"> 174.50 + 174.51 + <defs> 174.52 + <!-- test small region --> 174.53 + <filter id="filter11" x="0" y="0" width="50%" height="50%"> 174.54 + <feFlood flood-color="lime"/> 174.55 + </filter> 174.56 + 174.57 + <!-- test large region --> 174.58 + <filter id="filter12" x="-20%" y="-20%" width="200%" height="200%"> 174.59 + <feFlood flood-color="lime"/> 174.60 + </filter> 174.61 + 174.62 + <!-- test lacuna values --> 174.63 + <filter id="filter21"> 174.64 + <feFlood flood-color="lime"/> 174.65 + </filter> 174.66 + 174.67 + <!-- test negative width/height values --> 174.68 + <filter id="filter22" width="-1" height="-20%"> 174.69 + <feFlood flood-color="red"/> 174.70 + </filter> 174.71 + </defs> 174.72 + 174.73 + <rect x="50" y="40" width="380" height="240" fill="red"/> 174.74 + <rect x="50" y="40" width="380" height="240" fill="red" filter="url(#filter11)"/> 174.75 + <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/> 174.76 + <rect x="66" y="170" width="158" height="100" fill="red" filter="url(#filter21)"/> 174.77 + <rect x="240" y="160" width="190" height="120" fill="lime"/> 174.78 + <rect x="240" y="160" width="170" height="120" fill="red" filter="url(#filter22)"/> 174.79 + <line x1="240" y1="40" x2="240" y2="280" stroke="black"/> 174.80 + <line x1="50" y1="160" x2="430" y2="160" stroke="black"/> 174.81 + 174.82 + </g> 174.83 + <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 174.84 + <text id="revision" x="10" y="340" stroke="none" 174.85 + fill="black">$Revision$</text> 174.86 + </g> 174.87 + <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 174.88 + <!-- comment out this watermark once the test is approved --> 174.89 + <g id="draft-watermark"> 174.90 + <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 174.91 + <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 174.92 + text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 174.93 + </g> 174.94 +</svg>
175.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 175.2 +++ b/filters/test/svg/filters-region-202.svg Mon Apr 11 10:08:48 2011 +1000 175.3 @@ -0,0 +1,82 @@ 175.4 +<svg id="svg-root" width="100%" height="100%" 175.5 + viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 175.6 + xmlns:xlink="http://www.w3.org/1999/xlink"> 175.7 + <!--======================================================================--> 175.8 + <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 175.9 + <!--= Institute of Technology, European Research Consortium for =--> 175.10 + <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 175.11 + <!--= All Rights Reserved. =--> 175.12 + <!--= See http://www.w3.org/Consortium/Legal/. =--> 175.13 + <!--======================================================================--> 175.14 + <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 175.15 + reviewer="[reviewer]" owner="ED" desc="Test filterUnits" status="created" 175.16 + version="$Revision$" testname="$RCSfile$"> 175.17 + <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"> 175.18 + <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion"> 175.19 + <p> 175.20 + This test tests the 'filterUnits' attribute with the value 'userSpaceOnUse'. 175.21 + </p> 175.22 + </d:Reference> 175.23 + </d:TestDescription> 175.24 + <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 175.25 + <p> 175.26 + Load the test, and inspect the image for any traces of red. 175.27 + </p> 175.28 + </d:OperatorScript> 175.29 + <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 175.30 + <p> 175.31 + The test has passed if: 175.32 + <ul> 175.33 + <li>The test shows one green rectangle split into two subrectangles that have equal size</li> 175.34 + <li>There is no red visible</li> 175.35 + <li>There is no green visible outside the two stroked subrectangles</li> 175.36 + </ul> 175.37 + </p> 175.38 + </d:PassCriteria> 175.39 + </SVGTestCase> 175.40 + <title id="test-title">$RCSfile$</title> 175.41 + <defs> 175.42 + <font-face 175.43 + font-family="SVGFreeSansASCII" 175.44 + unicode-range="U+0-7F"> 175.45 + <font-face-src> 175.46 + <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 175.47 + </font-face-src> 175.48 + </font-face> 175.49 + </defs> 175.50 + <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18"> 175.51 + 175.52 + <defs> 175.53 + <!-- test percentage resolving --> 175.54 + <filter id="filter11" x="50" y="40" width="79.16%" height="33.33%" filterUnits="userSpaceOnUse"> 175.55 + <feFlood flood-color="lime"/> 175.56 + </filter> 175.57 + 175.58 + <!-- test lacuna values --> 175.59 + <filter id="filter12" filterUnits="userSpaceOnUse"> 175.60 + <feFlood flood-color="lime"/> 175.61 + </filter> 175.62 + </defs> 175.63 + 175.64 + <rect x="50" y="40" width="380" height="240" fill="red"/> 175.65 + <rect x="50" y="40" width="10" height="10" fill="red" filter="url(#filter11)"/> 175.66 + 175.67 + <svg x="82" y="170" width="316" height="100" overflow="visible"> 175.68 + <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/> 175.69 + </svg> 175.70 + 175.71 + <line x1="50" y1="160" x2="430" y2="160" stroke="black"/> 175.72 + <rect x="50" y="40" width="380" height="240" fill="none" stroke="black"/> 175.73 + </g> 175.74 + <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 175.75 + <text id="revision" x="10" y="340" stroke="none" 175.76 + fill="black">$Revision$</text> 175.77 + </g> 175.78 + <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 175.79 + <!-- comment out this watermark once the test is approved --> 175.80 + <g id="draft-watermark"> 175.81 + <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 175.82 + <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 175.83 + text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 175.84 + </g> 175.85 +</svg>
176.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 176.2 +++ b/filters/test/svg/filters-region-203.svg Mon Apr 11 10:08:48 2011 +1000 176.3 @@ -0,0 +1,82 @@ 176.4 +<svg id="svg-root" width="100%" height="100%" 176.5 + viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 176.6 + xmlns:xlink="http://www.w3.org/1999/xlink"> 176.7 + <!--======================================================================--> 176.8 + <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 176.9 + <!--= Institute of Technology, European Research Consortium for =--> 176.10 + <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 176.11 + <!--= All Rights Reserved. =--> 176.12 + <!--= See http://www.w3.org/Consortium/Legal/. =--> 176.13 + <!--======================================================================--> 176.14 + <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 176.15 + reviewer="[reviewer]" owner="ED" desc="Test filterUnits" status="created" 176.16 + version="$Revision$" testname="$RCSfile$"> 176.17 + <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"> 176.18 + <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion"> 176.19 + <p> 176.20 + This test tests the 'filterUnits' attribute with the value 'userSpaceOnUse'. 176.21 + </p> 176.22 + </d:Reference> 176.23 + </d:TestDescription> 176.24 + <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 176.25 + <p> 176.26 + Load the test, and inspect the image for any traces of red. 176.27 + </p> 176.28 + </d:OperatorScript> 176.29 + <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 176.30 + <p> 176.31 + The test has passed if: 176.32 + <ul> 176.33 + <li>The test shows one green rectangle split into two subrectangles that have equal size</li> 176.34 + <li>There is no red visible</li> 176.35 + <li>There is no green visible outside the two stroked subrectangles</li> 176.36 + </ul> 176.37 + </p> 176.38 + </d:PassCriteria> 176.39 + </SVGTestCase> 176.40 + <title id="test-title">$RCSfile$</title> 176.41 + <defs> 176.42 + <font-face 176.43 + font-family="SVGFreeSansASCII" 176.44 + unicode-range="U+0-7F"> 176.45 + <font-face-src> 176.46 + <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 176.47 + </font-face-src> 176.48 + </font-face> 176.49 + </defs> 176.50 + <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18"> 176.51 + 176.52 + <defs> 176.53 + <!-- test percentage resolving --> 176.54 + <filter id="filter11" x="0%" y="0%" width="100%" height="100%" primitiveUnits="objectBoundingBox"> 176.55 + <feFlood flood-color="lime" x="10%" y="10%" width="80%" height="80%"/> 176.56 + </filter> 176.57 + 176.58 + <!-- test lacuna values --> 176.59 + <filter id="filter12" filterUnits="userSpaceOnUse"> 176.60 + <feFlood flood-color="lime"/> 176.61 + </filter> 176.62 + </defs> 176.63 + 176.64 + <rect x="50" y="40" width="380" height="240" fill="red"/> 176.65 + <rect x="50" y="40" width="10" height="10" fill="red" filter="url(#filter11)"/> 176.66 + 176.67 + <svg x="82" y="170" width="316" height="100" overflow="visible"> 176.68 + <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/> 176.69 + </svg> 176.70 + 176.71 + <line x1="50" y1="160" x2="430" y2="160" stroke="black"/> 176.72 + <rect x="50" y="40" width="380" height="240" fill="none" stroke="black"/> 176.73 + </g> 176.74 + <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 176.75 + <text id="revision" x="10" y="340" stroke="none" 176.76 + fill="black">$Revision$</text> 176.77 + </g> 176.78 + <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 176.79 + <!-- comment out this watermark once the test is approved --> 176.80 + <g id="draft-watermark"> 176.81 + <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 176.82 + <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 176.83 + text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 176.84 + </g> 176.85 +</svg>
177.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 177.2 +++ b/filters/test/svg/filters-turb-201.svg Mon Apr 11 10:08:48 2011 +1000 177.3 @@ -0,0 +1,85 @@ 177.4 +<svg id="svg-root" width="100%" height="100%" 177.5 + viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 177.6 + xmlns:xlink="http://www.w3.org/1999/xlink"> 177.7 + <!--======================================================================--> 177.8 + <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 177.9 + <!--= Institute of Technology, European Research Consortium for =--> 177.10 + <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 177.11 + <!--= All Rights Reserved. =--> 177.12 + <!--= See http://www.w3.org/Consortium/Legal/. =--> 177.13 + <!--======================================================================--> 177.14 + <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" 177.15 + template-version="1.3" reviewer="[reviewer]" author="ED" status="created" 177.16 + version="$Revision$" testname="$RCSfile$"> 177.17 + <d:testDescription> 177.18 + <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="http://www.w3.org/TR/SVG11/[chapter]"> 177.19 + <p> 177.20 + Tests the <a>'feTurbulence/type'</a> attribute on <a>'feTurbulence'</a>. 177.21 + </p> 177.22 + </d:testComponent> 177.23 + </d:testDescription> 177.24 + <d:operatorScript xmlns="http://www.w3.org/1999/xhtml"> 177.25 + <p> 177.26 + There should be three rectangular filtered areas, showing some turbulence noise. 177.27 + </p> 177.28 + </d:operatorScript> 177.29 + <d:passCriteria xmlns="http://www.w3.org/1999/xhtml"> 177.30 + <p> 177.31 + The test has passed if the rightmost and the leftmost rects are exactly the same, and the middle one is different. 177.32 + <!-- FIXME: Add better pass criteria. --> 177.33 + </p> 177.34 + </d:passCriteria> 177.35 + </d:SVGTestCase> 177.36 + <title id="test-title">$RCSfile$</title> 177.37 + <defs> 177.38 + <font-face 177.39 + font-family="SVGFreeSansASCII" 177.40 + unicode-range="U+0-7F"> 177.41 + <font-face-src> 177.42 + <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 177.43 + </font-face-src> 177.44 + </font-face> 177.45 + </defs> 177.46 + <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12"> 177.47 + 177.48 + <defs> 177.49 + <filter id="t1" x="0" y="0" width="1" height="1"> 177.50 + <feTurbulence baseFrequency="0.15" /> 177.51 + </filter> 177.52 + <filter id="t2" x="0" y="0" width="1" height="1"> 177.53 + <feTurbulence baseFrequency="0.15" type="fractalNoise"/> 177.54 + </filter> 177.55 + <filter id="t3" x="0" y="0" width="1" height="1"> 177.56 + <feTurbulence baseFrequency="0.15" type="turbulence"/> 177.57 + </filter> 177.58 + </defs> 177.59 + 177.60 + <text x="240" y="70" font-size="24" text-anchor="middle">feTurbulence type attribute</text> 177.61 + 177.62 + <g transform="translate(80 120)"> 177.63 + <g transform="translate(0 0)"> 177.64 + <rect width="100" height="100" filter="url(#t1)"/> 177.65 + <text x="50" y="120" text-anchor="middle">lacuna value</text> 177.66 + </g> 177.67 + <g transform="translate(100 0)"> 177.68 + <rect width="100" height="100" filter="url(#t2)"/> 177.69 + <text x="50" y="120" text-anchor="middle">fractalNoise</text> 177.70 + </g> 177.71 + <g transform="translate(200 0)"> 177.72 + <rect width="100" height="100" filter="url(#t3)"/> 177.73 + <text x="50" y="120" text-anchor="middle">turbulence</text> 177.74 + </g> 177.75 + </g> 177.76 + </g> 177.77 + <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 177.78 + <text id="revision" x="10" y="340" stroke="none" 177.79 + fill="black">$Revision$</text> 177.80 + </g> 177.81 + <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 177.82 + <!-- comment out this watermark once the test is approved --> 177.83 + <g id="draft-watermark"> 177.84 + <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 177.85 + <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 177.86 + text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 177.87 + </g> 177.88 +</svg>
178.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 178.2 +++ b/filters/test/svg/filters-turb-202.svg Mon Apr 11 10:08:48 2011 +1000 178.3 @@ -0,0 +1,88 @@ 178.4 +<svg id="svg-root" width="100%" height="100%" 178.5 + viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 178.6 + xmlns:xlink="http://www.w3.org/1999/xlink"> 178.7 + <!--======================================================================--> 178.8 + <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 178.9 + <!--= Institute of Technology, European Research Consortium for =--> 178.10 + <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 178.11 + <!--= All Rights Reserved. =--> 178.12 + <!--= See http://www.w3.org/Consortium/Legal/. =--> 178.13 + <!--======================================================================--> 178.14 + <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" 178.15 + template-version="1.3" reviewer="[reviewer]" author="ED" status="created" 178.16 + version="$Revision$" testname="$RCSfile$"> 178.17 + <d:testDescription> 178.18 + <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="#assert_turbulenceStitchTilesLacunaValue"> 178.19 + <p> 178.20 + Tests the <a>'feTurbulence/stitchTiles'</a> attribute on <a>'feTurbulence'</a>. 178.21 + </p> 178.22 + </d:testComponent> 178.23 + </d:testDescription> 178.24 + <d:operatorScript xmlns="http://www.w3.org/1999/xhtml"> 178.25 + <p> 178.26 + There should be three rectangular filtered areas, showing some turbulence noise. 178.27 + </p> 178.28 + </d:operatorScript> 178.29 + <d:passCriteria xmlns="http://www.w3.org/1999/xhtml"> 178.30 + <p> 178.31 + The test has passed if the rightmost and the leftmost rects are exactly the same, and the middle one is different. 178.32 + <!-- FIXME: Add better pass criteria. --> 178.33 + </p> 178.34 + </d:passCriteria> 178.35 + </d:SVGTestCase> 178.36 + <title id="test-title">$RCSfile$</title> 178.37 + <defs> 178.38 + <font-face 178.39 + font-family="SVGFreeSansASCII" 178.40 + unicode-range="U+0-7F"> 178.41 + <font-face-src> 178.42 + <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 178.43 + </font-face-src> 178.44 + </font-face> 178.45 + </defs> 178.46 + <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12"> 178.47 + 178.48 + <defs> 178.49 + <filter id="t1" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox"> 178.50 + <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" /> 178.51 + <feTile/> 178.52 + </filter> 178.53 + <filter id="t2" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox"> 178.54 + <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" stitchTiles="stitch"/> 178.55 + <feTile/> 178.56 + </filter> 178.57 + <filter id="t3" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox"> 178.58 + <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" stitchTiles="noStitch"/> 178.59 + <feTile/> 178.60 + </filter> 178.61 + </defs> 178.62 + 178.63 + <text x="240" y="70" font-size="24" text-anchor="middle">feTurbulence stitchTiles attribute</text> 178.64 + 178.65 + <g transform="translate(80 120)"> 178.66 + <g transform="translate(-10 0)"> 178.67 + <rect width="100" height="100" filter="url(#t1)"/> 178.68 + <text x="50" y="120" text-anchor="middle">lacuna value</text> 178.69 + </g> 178.70 + <g transform="translate(110 0)"> 178.71 + <rect width="100" height="100" filter="url(#t2)"/> 178.72 + <text x="50" y="120" text-anchor="middle">stitch</text> 178.73 + </g> 178.74 + <g transform="translate(230 0)"> 178.75 + <rect width="100" height="100" filter="url(#t3)"/> 178.76 + <text x="50" y="120" text-anchor="middle">noStitch</text> 178.77 + </g> 178.78 + </g> 178.79 + </g> 178.80 + <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 178.81 + <text id="revision" x="10" y="340" stroke="none" 178.82 + fill="black">$Revision$</text> 178.83 + </g> 178.84 + <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 178.85 + <!-- comment out this watermark once the test is approved --> 178.86 + <g id="draft-watermark"> 178.87 + <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 178.88 + <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 178.89 + text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 178.90 + </g> 178.91 +</svg>
179.1 --- a/master/Makefile Thu Feb 24 10:19:12 2011 +0000 179.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 179.3 @@ -1,13 +0,0 @@ 179.4 -# Makefile for SVG Filters. 179.5 - 179.6 -TOOLS=../../../../SVG/tools 179.7 - 179.8 -# include $(TOOLS)/common.mk 179.9 - 179.10 -all : svgfilters.idlx SVGFilterReqs.html SVGFilterPrimer.html SVGFilter.html definitions.xml definitions-primer.xml publish-reqs.xml publish-primer.xml publish.xml $(TOOLS)/publish.xsl 179.11 - java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish-reqs.xml $(TOOLS)/publish.xsl 179.12 - java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish-primer.xml $(TOOLS)/publish.xsl 179.13 - java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish.xml $(TOOLS)/publish.xsl 179.14 - 179.15 -svgfilters.idlx : svgfilters.idl 179.16 - java -classpath $(TOOLS)/idlparser/idlparser.jar au.id.mcc.idlparser.IDLToXML svgfilters.idl > svgfilters.idlx
180.1 --- a/master/SVGFilter.html Thu Feb 24 10:19:12 2011 +0000 180.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 180.3 @@ -1,3774 +0,0 @@ 180.4 -<?xml version="1.0" encoding="UTF-8"?> 180.5 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd"> 180.6 -<html xmlns="http://www.w3.org/1999/xhtml" 180.7 - xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en"> 180.8 -<head> 180.9 - <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 180.10 - <title>Filter Effects 1.0: Language</title> 180.11 - <link rel="stylesheet" type="text/css" href="style/svg-style.css" /> 180.12 - <link rel="stylesheet" type="text/css" href="style/svg-style-extra.css"/> 180.13 - <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" /> 180.14 -</head> 180.15 - 180.16 -<body> 180.17 - 180.18 -<div class="head"> 180.19 - <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 180.20 - <h1 id="pagetitle">Filter Effects 1.0: Language</h1> 180.21 - <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2> 180.22 - <dl> 180.23 - <dt>This version:</dt> 180.24 - <dd><edit:thisversion/></dd> 180.25 - <dt>Latest version:</dt> 180.26 - <dd><edit:latestversion/></dd> 180.27 - <dt>Previous version:</dt> 180.28 - <dd><edit:previousversion/></dd> 180.29 - <dt>Editors:</dt> 180.30 - <dd><a href="mailto:ed@opera.com">Erik Dahlström</a>, (<a href="http://www.opera.com/">Opera Software ASA</a>)</dd> 180.31 - <dd><a href="mailto:dino@apple.com">Dean Jackson</a> (<a href="http://www.apple.com/">Apple Inc</a>)</dd> 180.32 - <dt>Authors:</dt> 180.33 - <dd>The authors of this specification are the participants of the W3C SVG and CSS Working Groups.</dd> 180.34 - </dl> 180.35 - <edit:copyright/> 180.36 -</div> 180.37 - 180.38 -<hr/> 180.39 - 180.40 -<h2 id="abstract" edit:toc="no">Abstract</h2> 180.41 - 180.42 -<p> 180.43 -SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed. 180.44 -</p> 180.45 -<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO. 180.46 -</p> 180.47 -<p> 180.48 -This document defines the markup used by SVG filters. 180.49 -</p> 180.50 - 180.51 -<h2 id="status" edit:toc="no">Status of This Document</h2> 180.52 - 180.53 -<p><em>This section describes the status of this document at the time of its 180.54 -publication. Other documents may supersede this document. The latest status 180.55 -of this document series is maintained at the W3C. </em> </p> 180.56 - 180.57 -<p>This document is the first public working draft of this specification. 180.58 -There is an accompanying <a href="#SVG12FilterPrimer">Filter Effects 1.0, Part 180.59 -1: Primer</a> that lists the ways SVG filters may be used. </p> 180.60 - 180.61 -<p>This document has been produced by the <a 180.62 -href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of 180.63 -the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a> 180.64 -within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>. 180.65 -</p> 180.66 - 180.67 -<p>We explicitly invite comments on this specification. Please send them to 180.68 -<a href="mailto:public-fx@w3.org">public-fx@w3.org</a> (<a 180.69 -href="http://lists.w3.org/Archives/Public/public-fx/">archives</a>). 180.70 -Acceptance of the archiving policy is requested automatically upon first post to the 180.71 -list. To subscribe to the list send an email to <a href="mailto:public-fx-request@w3.org">public-fx-request@w3.org</a> with 180.72 -the word subscribe in the subject line. </p> 180.73 - 180.74 -<p>The latest information regarding <a 180.75 -href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 180.76 -related to this document is available on the Web. As of this publication, the 180.77 -SVG Working Group are not aware of any royalty-bearing patents they believe 180.78 -to be essential to SVG.</p> 180.79 - 180.80 -<p>Publication of this document does not imply endorsement by the W3C 180.81 -membership. A list of current W3C Recommendations and other technical 180.82 -documents can be found at <a 180.83 -href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may 180.84 -be updated, replaced, or obsoleted by other documents at any time. It is 180.85 -inappropriate to cite a W3C Working Draft as anything other than a <em>work 180.86 -in progress</em>." </p> 180.87 - 180.88 -<h2 id="howto" edit:toc="no">How to read this document and give feedback</h2> 180.89 - 180.90 -<p>This draft of Filter Effects 1.0 is essentially the filter chapter from <a 180.91 -href="#ref-svg11">SVG 1.1</a>. One of the goals is that this specification 180.92 -can be re-used more easily by other specifications that want to have filter 180.93 -effects. Some things that have been changed are: error handling is more 180.94 -similar to SVG Tiny 1.2, the addition of a <a>'feDropShadow'</a> filter primitive and the 180.95 -possibility to filter bitmap data with the DOM. </p> 180.96 - 180.97 -<p>The main purpose of this document is to encourage public feedback. The 180.98 -best way to give feedback is by sending an email to <a 180.99 -href="mailto:public-fx@w3.org">public-fx@w3.org</a>. Please 180.100 -include some kind of keyword that identifies the area of the specification 180.101 -the comment is referring to in the subject line of your message (e.g "Section 180.102 -X.Y - the 'filter' property" or "Filtering primitive handling"). If you have 180.103 -comments on multiple areas of this document, then it is probably best to 180.104 -split those comments into multiple messages. </p> 180.105 - 180.106 -<p>The public are welcome to comment on any aspect in this document, but 180.107 -there are a few areas in which the SVG Working Group are explicitly 180.108 -requesting feedback. These areas are noted in place within this document. 180.109 -There is also a specific area related to the specification that is listed 180.110 -here: </p> 180.111 - 180.112 -<edit:fulltoc/> 180.113 - 180.114 -<h2 id="introduction">Introduction</h2> 180.115 - 180.116 -<p>This chapter describes a declarative filter effects feature set, which 180.117 -when combined with the other web technologies, like SVG or HTML, can describe 180.118 -much of the common artwork on the Web in such a way that client-side 180.119 -generation and alteration can be performed easily. In addition, the ability 180.120 -to apply filter effects to SVG <a>graphics elements</a> and <a>container elements</a> helps to 180.121 -maintain the semantic structure of the document, instead of resorting to 180.122 -images which aside from generally being a fixed resolution tend to obscure 180.123 -the original semantics of the elements they replace. This is especially true 180.124 -for effects applied to text. 180.125 -</p> 180.126 - 180.127 -<p> 180.128 - 180.129 -</p> 180.130 - 180.131 -<p>Note that even though this specification references parts of <a 180.132 -href="#ref-svg11">SVG 1.1</a> it does not require a complete SVG 1.1 180.133 -implementation. <span class="note">Add link to conformance classes here.</span> 180.134 -</p> 180.135 - 180.136 -<p>This document is normative. </p> 180.137 - 180.138 -<p>This document contains explicit conformance criteria that overlap with 180.139 -some RNG definitions in requirements. If there is any conflict between the 180.140 -two, the explicit conformance criteria are the definitive reference. </p> 180.141 - 180.142 -<p>A filter effect consists of a series of graphics operations that are 180.143 -applied to a given <span id="TermSourceGraphic" class="SVG-Term">source graphic</span> to produce a modified graphical 180.144 -result. The result of the filter effect is rendered to the target device 180.145 -instead of the original source graphic. The following illustrates the 180.146 -process:</p> 180.147 - 180.148 -<p><object data="examples/filters00.svg" type="image/svg+xml" height="78" width="400"> 180.149 - <img alt="Image showing source graphic transformed by filter effect" 180.150 - src="examples/filters00.png" width="401" height="78" /> 180.151 -</object></p> 180.152 -<p class="view-as-svg"><a href="examples/filters00.svg">View this example as 180.153 -SVG (SVG-enabled browsers only)</a><br /> 180.154 - </p> 180.155 - 180.156 -<h2 id="FilterDefinitions">Definitions</h2> 180.157 - <p>When used in this specification, terms have the meanings assigned in this section.</p> 180.158 - <dl> 180.159 - <dt id="TermNullFilter"><span 180.160 - class="SVG-TermDefine">null filter</span></dt> 180.161 - <dd> 180.162 - <p> 180.163 - The null filter output is all transparent black pixels. If applied to an element it means 180.164 - that the element (and children if any) becomes invisible. Note that it does not affect event processing. 180.165 - </p> 180.166 - </dd> 180.167 - <dt id="TermTransferFunctionElements"><span 180.168 - class="SVG-TermDefine">transfer function elements</span></dt> 180.169 - <dd> 180.170 - <p> 180.171 - The set of elements, 180.172 - <a>'feFuncR'</a>, <a>'feFuncG'</a>, <a>'feFuncB'</a>, <a>'feFuncA'</a>, that define the transfer function for the <a>'feComponentTransfer'</a> filter primitive. 180.173 - </p> 180.174 - </dd> 180.175 - <dt id="TermClientBoundingRect"><span 180.176 - class="SVG-TermDefine">bounding client rect</span></dt> 180.177 - <dd> 180.178 - <p> 180.179 - The union of all CSS border-boxes for the element if formatted by CSS, as defined by the CSS OM method 180.180 - <a href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect">getBoundingClientRect</a> [<a href="#ref-CSSOM">CSSOM</a>]. 180.181 - </p> 180.182 - </dd> 180.183 - <dt id="TermCSSBoundingBox"><span 180.184 - class="SVG-TermDefine">CSS bounding box</span></dt> 180.185 - <dd> 180.186 - <p> 180.187 - The union of all CSS border-boxes for the element and all it's descendant elements, provided the element is formatted by CSS. [<a href="#ref-CSS21">CSS</a>]. 180.188 - </p> 180.189 - </dd> 180.190 - <dt id="TermCurrentUserCoordinateSystem"><span 180.191 - class="SVG-TermDefine">current user coordinate system</span></dt> 180.192 - <dd> 180.193 - <p> 180.194 - For elements formatted by CSS: the current user coordinate system has its origin at the top-left corner of the 180.195 - <a href="#TermClientBoundingRect">bounding client rect</a> and one unit equals on CSS px. The viewport for resolving percentage values is defined by the width and height of the 180.196 - <a href="#TermClientBoundingRect">bounding client rect</a>. 180.197 - </p> 180.198 - <p> 180.199 - For SVG elements see <a>user coordinate system</a>. 180.200 - </p> 180.201 - </dd> 180.202 - <dt id="TermObjectBoundingBoxUnits"><span 180.203 - class="SVG-TermDefine">object bounding box units</span></dt> 180.204 - <dd> 180.205 - For elements formatted by CSS: the bounding box is defined by <a href="#TermCSSBoundingBox">the CSS bounding box.</a> 180.206 - <p> 180.207 - For SVG elements the bounding box is defined by <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermBoundingBox">the SVG bounding box</a>. 180.208 - </p> 180.209 - <p> 180.210 - For both cases the bounding box defines the coordinate system in which to resolve values, as defined in <a>object bounding box units</a>. 180.211 - </p> 180.212 - </dd> 180.213 - <dt id="TermFilterPrimitiveReference"><span 180.214 - class="SVG-TermDefine"><filter-primitive-reference></span></dt> 180.215 - <dd> 180.216 - <p> 180.217 - A string that identifies a particular filter primitive's output. 180.218 - </p> 180.219 - </dd> 180.220 - <dt id="TermFilterPrimitiveElements"><span 180.221 - class="SVG-TermDefine">filter primitives, filter primitive elements</span></dt> 180.222 - <dd> 180.223 - <p> 180.224 - The set of elements that control the output of a <a>'filter element'</a> element, particularly: 180.225 - <a>'feDistantLight'</a>, 180.226 - <a>'fePointLight'</a>, 180.227 - <a>'feSpotLight'</a>, 180.228 - <a>'feBlend'</a>, 180.229 - <a>'feColorMatrix'</a>, 180.230 - <a>'feComponentTransfer'</a>, 180.231 - <a>'feComposite'</a>, 180.232 - <a>'feConvolveMatrix'</a>, 180.233 - <a>'feDiffuseLighting'</a>, 180.234 - <a>'feDisplacementMap'</a>, 180.235 - <a>'feFlood'</a>, 180.236 - <a>'feGaussianBlur'</a>, 180.237 - <a>'feImage'</a>, 180.238 - <a>'feMerge'</a>, 180.239 - <a>'feMorphology'</a>, 180.240 - <a>'feOffset'</a>, 180.241 - <a>'feSpecularLighting'</a>, 180.242 - <a>'feTile'</a>, 180.243 - <a>'feTurbulence'</a>, 180.244 - <a>'feDropShadow'</a>, 180.245 - <a>'feDiffuseSpecular'</a>, 180.246 - <a>'feUnsharpMask'</a>, 180.247 - <a>'feCustom'</a>. 180.248 - </p> 180.249 - </dd> 180.250 - </dl> 180.251 - <br/> 180.252 - 180.253 -<h2 id="FilterElement">The <span class="element-name">'filter'</span> 180.254 -element</h2> 180.255 - 180.256 -<edit:elementsummary name='filter'/> 180.257 - 180.258 -<edit:with element='filter'> 180.259 - 180.260 -<p>The description of the <a>'filter element'</a> element 180.261 -follows:</p> 180.262 - 180.263 -<div class="adef-list"> 180.264 -<p><em>Attribute definitions:</em></p> 180.265 -<dl> 180.266 - <dt id="FilterElementFilterUnitsAttribute"><span 180.267 - class="adef">filterUnits</span> = "<em>userSpaceOnUse</em> | 180.268 - <em>objectBoundingBox</em>"</dt> 180.269 - <dd>See <a>filter effects region</a>.</dd> 180.270 - <dt id="FilterElementPrimitiveUnitsAttribute"><span 180.271 - class="adef">primitiveUnits</span> = "<em>userSpaceOnUse</em> | 180.272 - <em>objectBoundingBox</em>"</dt> 180.273 - <dd>Specifies the coordinate system for the various length values within 180.274 - the <a>filter primitives</a> and for the attributes that define the <a>filter primitive subregion</a>.<br /> 180.275 - If <span class='attr-value'>primitiveUnits="userSpaceOnUse"</span>, any length values 180.276 - within the filter definitions represent values in the <a href="#TermCurrentUserCoordinateSystem">current user 180.277 - coordinate system</a> in place at the time when the <a>'filter element'</a> 180.278 - element is referenced (i.e., the user coordinate system for the element 180.279 - referencing the <a>'filter element'</a> element via a <a>'filter property'</a> 180.280 - property).<br /> 180.281 - If <span class='attr-value'>primitiveUnits="objectBoundingBox"</span>, then any length 180.282 - values within the filter definitions represent fractions or percentages 180.283 - of the bounding box on the referencing element (see <a href="#TermObjectBoundingBoxUnits">object bounding box 180.284 - units</a>). Note that if only one number was specified in a <a><number-optional-number></a> value 180.285 - this number is expanded out before the <a>'filter/primitiveUnits'</a> computation takes place. 180.286 - <br /> 180.287 - If attribute <a>'filter/primitiveUnits'</a> is not 180.288 - specified, then the effect is as if a value of <span 180.289 - class="attr-value">userSpaceOnUse</span> were specified.<br /> 180.290 - <span class="anim-target">Animatable: yes.</span></dd> 180.291 - 180.292 - <dt id="FilterElementFilterMarginUnitsAttribute"><span 180.293 - class="adef">filterMarginUnits</span> = "<em>userSpaceOnUse</em> | 180.294 - <em>objectBoundingBox</em>"</dt> 180.295 - <dd>See <a>filter effects region</a>.</dd> 180.296 - <dt id="FilterElementPrimitiveMarginUnitsAttribute"><span 180.297 - class="adef">primitiveMarginUnits</span> = "<em>userSpaceOnUse</em> | 180.298 - <em>objectBoundingBox</em>"</dt> 180.299 - <dd>Specifies the coordinate system for the margin attributes within the 180.300 - <a>filter primitives</a> which is used for determining the <a>filter primitive subregion</a>.<br /> 180.301 - If <span class='attr-value'>primitiveMarginUnits="userSpaceOnUse"</span>, any margin 180.302 - attribute values within the filter definitions represent values in the 180.303 - current user coordinate system in place at the time when the <a>'filter element'</a> 180.304 - element is referenced (i.e., the <a>user coordinate system</a> for the element 180.305 - referencing the <a>'filter element'</a> element via a <a>'filter property'</a> 180.306 - property).<br /> 180.307 - If <span class='attr-value'>primitiveMarginUnits="objectBoundingBox"</span>, then any 180.308 - margin attribute values within the filter definitions represent 180.309 - fractions or percentages of the bounding box on the referencing element 180.310 - (see <a>object bounding box units</a>).<br /> 180.311 - 180.312 - <span class="requirement" id="assert_LacunaValuePrimitiveMarginsUnits">The <a>lacuna value</a> for <a>'filter/primitiveMarginUnits'</a> is <span 180.313 - class="attr-value">userSpaceOnUse</span></span>.<br /> 180.314 - <span class="anim-target">Animatable: yes.</span></dd> 180.315 - 180.316 - <dt id="FilterElementXAttribute"> 180.317 - <span class="adef">x</span> = "<em><a><coordinate></a></em>"</dt> 180.318 - <dd>See <a>filter effects region</a>.</dd> 180.319 - <dt id="FilterElementYAttribute"> 180.320 - <span class="adef">y</span> = "<em><a><coordinate></a></em>"</dt> 180.321 - <dd>See <a>filter effects region</a>.</dd> 180.322 - <dt id="FilterElementWidthAttribute"><span class="adef">width</span> = 180.323 - "<em><a><length></a></em>"</dt> 180.324 - <dd>See <a>filter effects region</a>.</dd> 180.325 - <dt id="FilterElementHeightAttribute"><span class="adef">height</span> = 180.326 - "<em><a><length></a></em>"</dt> 180.327 - <dd>See <a>filter effects region</a>.</dd> 180.328 - 180.329 - <dt id="FilterPrimitiveMxAttribute"> 180.330 - <span class="adef">mx</span> = "<em><a><coordinate></a></em>"</dt> 180.331 - <dd>The margin delta for the x coordinate of the subregion which 180.332 - restricts calculation and rendering of the given filter primitive. If 180.333 - this attribute is not specified, the effect is as if a value of <span 180.334 - class="attr-value">0</span> were specified. See <a 180.335 - href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br /> 180.336 - <span class="anim-target">Animatable: yes.</span></dd> 180.337 - <dt id="FilterPrimitiveMyAttribute"> 180.338 - <span class="adef">my</span> = "<em><a><coordinate></a></em>"</dt> 180.339 - <dd>The margin delta for the y coordinate of the subregion which 180.340 - restricts calculation and rendering of the given filter primitive. If 180.341 - this attribute is not specified, the effect is as if a value of <span 180.342 - class="attr-value">0</span> were specified. See <a 180.343 - href="#FilterPrimitiveSubRegion">filter primitive subregion</a>. <br /> 180.344 - <span class="anim-target">Animatable: yes.</span></dd> 180.345 - <dt id="FilterPrimitiveMwAttribute"> 180.346 - <span class="adef">mw</span> = "<em><a><length></a></em>"</dt> 180.347 - <dd>The margin delta for the width of the subregion which restricts 180.348 - calculation and rendering of the given filter primitive. If this 180.349 - attribute is not specified, the effect is as if a value of <span 180.350 - class="attr-value">0</span> were specified. See <a 180.351 - href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br /> 180.352 - <span class="anim-target">Animatable: yes.</span></dd> 180.353 - <dt id="FilterPrimitiveMhAttribute"> 180.354 - <span class="adef">mh</span> = "<em><a><length></a></em>"</dt> 180.355 - <dd>The margin delta for the height of the subregion which restricts 180.356 - calculation and rendering of the given filter primitive. If this 180.357 - attribute is not specified, the effect is as if a value of <span 180.358 - class="attr-value">0</span> were specified. See <a 180.359 - href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br /> 180.360 - <span class="anim-target">Animatable: yes.</span></dd> 180.361 - 180.362 -<dt id="FilterElementFilterResAttribute"><span 180.363 - class="adef">filterRes</span> = "<em><a><number-optional-number></a></em>" 180.364 - </dt> 180.365 - <dd>See <a>filter effects region</a>.</dd> 180.366 - <dt id="FilterElementHrefAttribute"><span class="adef">xlink:href</span> 180.367 - = "<span class="attr-value"><IRI></span>"</dt> 180.368 - <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 180.369 - to another <a>'filter element'</a> element within 180.370 - the current <a>SVG document fragment</a>. Any attributes which are defined on 180.371 - the referenced <a>'filter element'</a> element which 180.372 - are not defined on this element are inherited by this element. If this 180.373 - element has no defined filter nodes, and the referenced element has 180.374 - defined filter nodes (possibly due to its own <span 180.375 - class="attr-name">href</span> attribute), then this element inherits 180.376 - the filter nodes defined from the referenced <a>'filter element'</a> element. Inheritance can be 180.377 - indirect to an arbitrary level; thus, if the referenced <a>'filter element'</a> element inherits attributes or its 180.378 - filter node specification due to its own <span 180.379 - class="attr-name">href</span> attribute, then the current element can 180.380 - inherit those attributes or filter node specifications. 180.381 - 180.382 - <div class="note"> 180.383 - This attribute is deprecated and should not be used, it's included for 180.384 - backwards compatibility reasons only.</div> 180.385 - <br /> 180.386 - <span class="anim-target">Animatable: yes.</span></dd> 180.387 -</dl> 180.388 -</div> 180.389 - 180.390 -<p>Properties inherit into the <a>'filter element'</a> 180.391 -element from its ancestors; properties do <em>not</em> inherit from the 180.392 -element referencing the <a>'filter element'</a> 180.393 -element.</p> 180.394 - 180.395 -<p><a>'filter element'</a> elements are never rendered 180.396 -directly; their only usage is as something that can be referenced using the 180.397 -<a>'filter property'</a> 180.398 -property. The <a>'display'</a> property does not 180.399 -apply to the <a>'filter element'</a> element; thus, <a>'filter element'</a> elements are not directly rendered even 180.400 -if the <a>'display'</a> property is set to a value 180.401 -other than <span class="prop-value">none</span>, and <a>'filter element'</a> elements are available for referencing 180.402 -even when the <a>'display'</a> property on the <a>'filter element'</a> element or any of its ancestors is set 180.403 -to <span class="prop-value">none</span>.</p> 180.404 -<br /> 180.405 - 180.406 -<h2 id="FilterProperty">The <span class="prop-name">'filter'</span> 180.407 -property</h2> 180.408 - 180.409 -<p>The description of the <span class="prop-name">'filter'</span> property is 180.410 -as follows:</p> 180.411 - 180.412 -<div class="propdef"> 180.413 -<dl> 180.414 - <dt id='propdef-filter'><span class='propdef-title prop-name'>'filter'</span></dt> 180.415 - <dd> 180.416 - <table summary="filter property" class="propinfo" cellspacing="0" 180.417 - cellpadding="0"> 180.418 - <tbody> 180.419 - <tr valign="baseline"> 180.420 - <td><em>Value:</em>  </td> 180.421 - <td><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI"><FuncIRI></a> | none | <a class="noxref" 180.422 - href="http://www.w3.org/TR/REC-CSS2/cascade.html#value-def-inherit"><span 180.423 - class="value-inst-inherit noxref">inherit</span></a></td> 180.424 - </tr> 180.425 - <tr valign="baseline"> 180.426 - <td><em>Initial:</em>  </td> 180.427 - <td>none</td> 180.428 - </tr> 180.429 - <tr valign="baseline"> 180.430 - <td><em>Applies to:</em>  </td> 180.431 - <td>All elements 180.432 -<!-- For svg: container elements 180.433 - and graphics elements--> 180.434 - .</td> 180.435 - </tr> 180.436 - <tr valign="baseline"> 180.437 - <td><em>Inherited:</em>  </td> 180.438 - <td>no</td> 180.439 - </tr> 180.440 - <tr valign="baseline"> 180.441 - <td><em>Percentages:</em>  </td> 180.442 - <td>N/A</td> 180.443 - </tr> 180.444 - <tr valign="baseline"> 180.445 - <td><em>Media:</em>  </td> 180.446 - <td>visual</td> 180.447 - </tr> 180.448 - <tr valign="baseline"> 180.449 - <td><em>Animatable:</em>  </td> 180.450 - <td>yes</td> 180.451 - </tr> 180.452 - </tbody> 180.453 - </table> 180.454 - </dd> 180.455 -</dl> 180.456 -</div> 180.457 - 180.458 -<dl> 180.459 - <dt><span class="prop-value"><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI"><FuncIRI></a></span></dt> 180.460 - <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 180.461 - to a <a>'filter element'</a> element which defines the 180.462 - filter effects that shall be applied to this element. 180.463 - </dd> 180.464 - <dt><span class="prop-value">none</span></dt> 180.465 - <dd>Do not apply any filter effects to this element.</dd> 180.466 -</dl> 180.467 - 180.468 -<p>If a <a>'filter property'</a> property references a non-existent object or the referenced 180.469 -object is not a <a>'filter element'</a> element, then the <a>null filter</a> will be applied instead. 180.470 -</p> 180.471 - 180.472 -<h3>How the 'filter' property applies to content formatted by CSS (e.g HTML)</h3> 180.473 -<p> 180.474 -The application of the <a>'filter property'</a> property to an element formatted by CSS establishes a pseudo-stacking-context the same way 180.475 -that CSS <a href="http://www.w3.org/TR/css3-color/#transparency">'opacity'</a> does, 180.476 -and all the element's boxes are rendered together as a group with the filter effect applied to the group as a whole. 180.477 -</p> 180.478 -<p> 180.479 -The <a>'filter property'</a> property has no effect on the geometry of the target element's CSS boxes, even though <a>'filter property'</a> can cause painting outside of an element's border-box. 180.480 -</p> 180.481 -<p> 180.482 -The compositing model follows the <a href="http://www.w3.org/TR/SVG11/render.html#Introduction">SVG compositing model</a>: 180.483 -first any filter effect is applied, then any clipping, masking and/or group opacity. 180.484 -These effects all apply after any other CSS effects such as 'clip'. As per SVG, the application of <a>'filter property'</a> has no effect on mouse event hit-testing. 180.485 -</p> 180.486 - 180.487 -<br /> 180.488 - 180.489 - 180.490 -<h2 id="FilterEffectsRegion">Filter effects region</h2> 180.491 - 180.492 -<p>A <a>'filter element'</a> 180.493 -element can define a region on the canvas to which a given filter effect 180.494 -applies and can provide a resolution for any intermediate continuous tone 180.495 -images used to process any raster-based <a>filter primitives</a>. 180.496 - 180.497 -<h3 id="filter-margins">Filter Region extensions</h3> 180.498 - 180.499 -<p>In <a href="#ref-svg11">SVG 1.1</a>, a <span class="element">filter</span> 180.500 -defines the area upon which it applies. This makes it difficult to develop a 180.501 -generic filter that can be applied to arbitrary graphics, since the filter 180.502 -must define a large enough area to cover any graphical object to which it is 180.503 -applied. An example of this is a generic "drop shadow" filter, which is 180.504 -commonly specified as a combination of a Gaussian blur <a>'feGaussianBlur'</a>) that is offset <a>'feOffset'</a>) and then composed <a>'feComposite'</a>) with the original source graphic. 180.505 -Since the shadow has to extend beyond the original graphic's boundaries, the 180.506 -filter must be defined to have a larger area than the original graphic. 180.507 -Overestimating this margin has a negative effect on performance, since the 180.508 -complex filter operation has to touch a larger amount of user space (ie. 180.509 -pixels). </p> 180.510 - 180.511 -<p>In order to solve this problem this spec allows additional control over 180.512 -the filter region. The outer filter region is expressed by delta to the 180.513 -<a>'x'</a>, 180.514 -<a>'y'</a>, 180.515 -<a>'width'</a>, 180.516 -<a>'height'</a> 180.517 - of the input filter region. </p> 180.518 - 180.519 -<p>In particular, the <a>'filter/filterMarginUnits'</a>, <a>'filter/primitiveMarginUnits'</a>, 180.520 -<a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and <a>'mh'</a> are 180.521 -added to the <a>'filter element'</a> element. The <a>'filter/filterMarginUnits'</a> specifies the coordinate space of 180.522 -the margin attributes, which are used to increase or decrease the <a>'filter element'</a> element's 180.523 -<a>'x'</a>, 180.524 -<a>'y'</a>, 180.525 -<a>'width'</a> and 180.526 -<a>'height'</a> 180.527 -attributes (once they have been calculated). The <a>'filter/primitiveMarginUnits'</a> specifies the units for the 180.528 -new margin attributes on the <a>filter primitives</a>, also named 180.529 -<a>'mx'</a>, 180.530 -<a>'my'</a>, 180.531 -<a>'mw'</a>, 180.532 -<a>'mh'</a>. 180.533 -These margins attribute override those set on the parent <a>'filter element'</a> element. 180.534 -Note that this doesn't mean that a <a>'filter primitive'</a> can expand the filter region itself, just that the 180.535 -coordinate system used for filter primitive's margin attributes can be 180.536 -different than the one used for the margin attributes on the 180.537 -<a>'filter element'</a> element. </p> 180.538 - 180.539 -<p>An example of the new attributes, which defines a generic drop shadow 180.540 -filter: </p> 180.541 -<pre class="examplesource"> <filter id="dropShadow" x="0" y="0" width="1" height="1" 180.542 - filterMarginUnits="userSpaceOnUse" 180.543 - mx="0" my="0" mw="5" mh="5" > 180.544 - <feGaussianBlur stdDeviation="2" in="SourceAlpha" /> 180.545 - <feOffset dx="2" /> 180.546 - <feMerge> 180.547 - <feMergeNode /> 180.548 - <feMergeNode in="SourceGraphic" /> 180.549 - </feMerge> 180.550 - </filter> </pre> 180.551 - 180.552 -<p>In the above example, the filter region by default covers the entire 180.553 -bounds of the object (which is not enough to show the shadow). Adding the new 180.554 -margins extends the width and height by 5 user units each, which is always 180.555 -enough to display the blur (which has a standard deviation of 2 user units) 180.556 -and offset (which is another 2 units). </p> 180.557 - 180.558 -The <a>'filter element'</a> 180.559 -element has the following attributes which work together to define the filter 180.560 -effects region:</p> 180.561 - 180.562 - <dl class='definitions unemphasized-names'> 180.563 - <dt id="FilterUnitsAttribute"><a>'filterUnits'</a></dt> 180.564 - <dd> 180.565 - <p>Defines the coordinate system for attributes <a>'x'</a>, <a>'y'</a>, 180.566 - <a>'width'</a>, <a>'height'</a>.</p> 180.567 - 180.568 - <p>If <span class="attr-value">filterUnits="userSpaceOnUse"</span>, <a>'x'</a>, <a>'y'</a>, 180.569 - <a>'width'</a>, <a>'height'</a> represent values in the current user coordinate 180.570 - system in place at the time when the <a>'filter element'</a> element is referenced (i.e., the 180.571 - user coordinate system for the element referencing the <a>'filter element'</a> 180.572 - element via a <a>'filter property'</a> property).</p> 180.573 - 180.574 - <p>If <span class="attr-value">filterUnits="objectBoundingBox"</span>, then <a>'x'</a>, <a>'y'</a>, 180.575 - <a>'width'</a>, <a>'height'</a> represent fractions or percentages of the 180.576 - bounding box on the referencing element (see <a>object bounding box units</a>).</p> 180.577 - 180.578 - <p>The <a>lacuna value</a> for <a>'filterUnits'</a> is <span 180.579 - class="attr-value">objectBoundingBox</span>.</p> 180.580 - 180.581 - <p><span class="anim-target">Animatable: yes.</span></p> 180.582 - </dd> 180.583 - <dt id="FilterRegionXYWidthHeightAttributes"><a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a></dt> 180.584 - <dd> 180.585 - <p>These attributes define a rectangular region on the canvas to which this filter applies.</p> 180.586 - <p>The amount of memory and processing time required to apply the filter are 180.587 - related to the size of this rectangle and the <a>'filterRes'</a> attribute of the filter.</p> 180.588 - <p>The coordinate system for these attributes depends on the value for attribute <a>'filterUnits'</a>.</p> 180.589 - <p>The bounds of this rectangle act as a hard clipping region for each <a>filter primitive</a> 180.590 - included with a given <a>'filter element'</a> element; thus, if the effect of 180.591 - a given filter primitive would extend beyond the bounds of the rectangle 180.592 - (this sometimes happens when using a <a>'feGaussianBlur'</a> filter primitive with a 180.593 - very large <a>'feGaussianBlur/stdDeviation'</a>), parts of the effect will get clipped.</p> 180.594 - 180.595 - <p>The <a>lacuna value</a> for <a>'x'</a> and <a>'y'</a> is <span class="attr-value">-10%</span>.</p> 180.596 - <p>The <a>lacuna value</a> for <a>'width'</a> and <a>'height'</a> is <span class="attr-value">120%</span>.</p> 180.597 - <p>Negative or zero values for <a>'width'</a> or <a>'height'</a> disable rendering of the element which 180.598 - referenced the filter. </p> 180.599 - 180.600 - <p><span class="anim-target">Animatable: yes.</span></p> 180.601 - </dd> 180.602 - <dt id="FilterMarginAttribute"><a>'filterMarginUnits'</a></dt> 180.603 - <dd> 180.604 - <p>Defines the coordinate system for attributes <a>'mx'</a>, <a>'my'</a>, 180.605 - <a>'mw'</a>, <a>'mh'</a>.</p> 180.606 - <p>If <span class="attr-value">filterMarginUnits="userSpaceOnUse"</span>, <a>'mx'</a>, <a>'my'</a>, 180.607 - <a>'mw'</a>, <a>'mh'</a> represent values in the current <a>user coordinate system</a> 180.608 - in place at the time when the <a>'filter element'</a> element is referenced (i.e., the 180.609 - <a>user coordinate system</a> for the element referencing the <a>'filter element'</a> 180.610 - element via a <a>'filter property'</a> property).</p> 180.611 - <p>If <span class="attr-value">filterMarginUnits="objectBoundingBox"</span>, then <a>'mx'</a>, <a>'my'</a>, 180.612 - <a>'mw'</a>, <a>'mh'</a> represent fractions or percentages of the <a>'bounding box'</a> 180.613 - on the referencing element (see <a>object bounding box units</a>).</p> 180.614 - <p>The <a>lacuna value</a> for <a>'filterMarginUnits'</a> is 180.615 - <span class="attr-value">userSpaceOnUse</span>.</p> 180.616 - <p><span class="anim-target">Animatable: yes.</span></p> 180.617 - </dd> 180.618 - <dt id="FilterRegionMyAttribute"><a>'mx'</a>, <a>'my'</a>, <a>'mw'</a>, <a>'mh'</a></dt> 180.619 - <dd> 180.620 - <p>Defines the deltas to the <a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a> of the filter region.</p> 180.621 - 180.622 - <p>After the <a>'x'</a>, <a>'y'</a>, <a>'width'</a>, <a>'height'</a> have been calculated for the 180.623 - <a>filter region</a> the <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a>, <a>'mh'</a> are calculated and added 180.624 - to the <a>filter region</a>. <span class="requirement" id="assert_OORFilterRegion">If the resulting 180.625 - <a>filter region</a> has a negative or zero width or height, the rendering of the element which 180.626 - referenced the filter is disabled.</span></p> 180.627 - 180.628 - <p>The coordinate system for these attributes depends on the value for 180.629 - attribute <a>'filterMarginUnits'</a>.</p> 180.630 - 180.631 - <p>The <a>lacuna value</a> for <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and <a>'mh'</a> is <span class="attr-value">0</span>.</p> 180.632 - <p><span class="anim-target">Animatable: yes.</span></p> 180.633 - </dd> 180.634 - 180.635 - <dt id="FilterRegionFilterRes"><a>'filterRes'</a></dt> 180.636 - <dd> 180.637 - <p>Defines the width and height of the intermediate 180.638 - images in pixels. If not provided, then a reasonable default resolution 180.639 - appropriate for the target device will be used. (For displays, an 180.640 - appropriate display resolution, preferably the current display's pixel 180.641 - resolution, is the default. For printing, an appropriate common printer 180.642 - resolution, such as 1200dpi, is the default.)</p> 180.643 - <p>Care should be taken when assigning a non-default value to this 180.644 - attribute. Too small of a value may result in unwanted pixelation in the 180.645 - result. Too large of a value may result in slow processing and large 180.646 - memory usage.</p> 180.647 - <p><span class="requirement" id="assert_OORFilterRegion">Negative or zero values disable rendering of the element which referenced the filter.</span></p> 180.648 - <p><span class="anim-target">Animatable: yes.</span></p> 180.649 - </dd> 180.650 -</dl> 180.651 - 180.652 -<p>Note that both of the two possible value for <a>'filterUnits'</a> (i.e., <span 180.653 -class="attr-value">objectBoundingBox</span> and <span 180.654 -class="attr-value">userSpaceOnUse</span>) result in a <a>filter region</a> whose 180.655 -coordinate system has its X-axis and Y-axis each parallel to the X-axis and 180.656 -Y-axis, respectively, of the <a>user coordinate system</a> for the element to which 180.657 -the filter will be applied.</p> 180.658 - 180.659 -<p class="note implementation">Sometimes implementers can achieve faster performance when the filter 180.660 -region can be mapped directly to device pixels; thus, for best performance on 180.661 -display devices, it is suggested that authors define their region such that 180.662 -the user agent can align the filter region pixel-for-pixel with the 180.663 -background. In particular, for best filter effects performance, avoid 180.664 -rotating or skewing the user coordinate system. Explicit values for attribute 180.665 -<a>'filterRes'</a> can either help or harm performance. 180.666 -If <a>'filterRes'</a> is smaller than the automatic 180.667 -(i.e., default) filter resolution, then filter effect might have faster 180.668 -performance (usually at the expense of quality). If <a>'filterRes'</a> is larger than the automatic (i.e., 180.669 -default) filter resolution, then filter effects performance will usually be 180.670 -slower.</p> 180.671 - 180.672 -<p class="note authoring">It is often necessary to provide padding space because the filter effect 180.673 -might impact bits slightly outside the tight-fitting <a>'bounding box'</a> on a given 180.674 -object. For these purposes, it is possible to provide negative percentage 180.675 -values for <a>'x'</a>, <a>'y'</a> and percentages values greater than <span class="attr-value">100%</span> for 180.676 -<a>'width'</a>, <a>'height'</a>. This, for example, is why the defaults for 180.677 -the filter effects region are <span class="attr-value">x="-10%" y="-10%" width="120%" 180.678 -height="120%"</span>.</p> 180.679 - 180.680 -<h2 id="AccessBackgroundImage">Accessing the background image</h2> 180.681 - 180.682 -<p id="AccessingBackgroundImage">Two possible pseudo input images for filter effects are <a>BackgroundImage</a> and <a>BackgroundAlpha</a>, which each represent an image 180.683 -snapshot of the canvas under the filter region at the time that the <a 180.684 -href="#FilterElement"><span class="element-name">'filter'</span></a> element 180.685 -is invoked. <a>BackgroundImage</a> represents both 180.686 -the color values and alpha channel of the canvas (i.e., RGBA pixel values), 180.687 -whereas <a>BackgroundAlpha</a> represents only the 180.688 -alpha channel.</p> 180.689 - 180.690 -<p>Implementations <!--of SVG user agents often--> 180.691 -will often need to maintain supplemental background image buffers in order to 180.692 -support the <a>BackgroundImage</a> and <a>BackgroundAlpha</a> pseudo input images. Sometimes, 180.693 -the background image buffers will contain an in-memory copy of the 180.694 -accumulated painting operations on the current canvas.</p> 180.695 - 180.696 -<p>Because in-memory image buffers can take up significant system resources, <!--SVG--> 180.697 -content must explicitly indicate to the <!--SVG--> 180.698 -user agent that the document needs access to the background image before <a>BackgroundImage</a> and <a>BackgroundAlpha</a> pseudo input images can be used. 180.699 -</p> 180.700 - 180.701 -A background image is what's been <i>rendered before</i> the current element. 180.702 -<edit:hostreq>The host language is responsible for defining what <i>rendered before</i> in 180.703 -this context means 180.704 -.</edit:hostreq> For SVG, that uses the painter's algorithm, <i>rendered before</i> means 180.705 -all of the prior elements in pre order traversal previous to the element to 180.706 -which the filter is applied. 180.707 - 180.708 -<p>The property which enables access to the background image is 180.709 -<a>'enable-background'</a>:</p> 180.710 - 180.711 - 180.712 -<div class="propdef"> 180.713 -<dl> 180.714 - <dt id="EnableBackgroundProperty"><span class='propdef-title prop-name'>'enable-background'</span></dt> 180.715 - <dd> 180.716 - <table summary="enable-background property" class="propinfo" 180.717 - cellspacing="0" cellpadding="0"> 180.718 - <tbody> 180.719 - <tr valign="baseline"> 180.720 - <td><em>Value:</em>  </td> 180.721 - <td>accumulate | new [ <x> <y> <width> 180.722 - <height> ] | <a class="noxref" 180.723 - href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span 180.724 - class="value-inst-inherit noxref">inherit</span></a></td> 180.725 - </tr> 180.726 - <tr valign="baseline"> 180.727 - <td><em>Initial:</em>  </td> 180.728 - <td>accumulate</td> 180.729 - </tr> 180.730 - <tr valign="baseline"> 180.731 - <td><em>Applies to:</em>  </td> 180.732 - <td>Typically elements that can contain renderable elements. 180.733 - language is responsible for defining the applicable set of 180.734 - elements. 180.735 - For SVG: <a>container elements</a></td> 180.736 - </tr> 180.737 - <tr valign="baseline"> 180.738 - <td><em>Inherited:</em>  </td> 180.739 - <td>no</td> 180.740 - </tr> 180.741 - <tr valign="baseline"> 180.742 - <td><em>Percentages:</em>  </td> 180.743 - <td>N/A</td> 180.744 - </tr> 180.745 - <tr valign="baseline"> 180.746 - <td><em>Media:</em>  </td> 180.747 - <td>visual</td> 180.748 - </tr> 180.749 - <tr valign="baseline"> 180.750 - <td><em>Animatable:</em>  </td> 180.751 - <td>no</td> 180.752 - </tr> 180.753 - </tbody> 180.754 - </table> 180.755 - </dd> 180.756 -</dl> 180.757 -</div> 180.758 -<p><a>'enable-background'</a> is only 180.759 - applicable to <a>container elements</a> 180.760 - and specifies how the <a>SVG user agent</a> manages the accumulation 180.761 - of the background image.</p> 180.762 - 180.763 -<p>A value of <strong>new</strong> indicates two things:</p> 180.764 -<ul> 180.765 - <li>It enables the ability of children of the current <a>container element</a> 180.766 - element to access the background image.</li> 180.767 - <li>It indicates that a new (i.e., initially transparent black) background 180.768 - image canvas is established and that (in effect) all children of the 180.769 - current <a>container element</a> 180.770 - element shall be rendered into the new background image canvas in 180.771 - addition to being rendered onto the target device.</li> 180.772 -</ul> 180.773 - 180.774 -<p>A meaning of <span class="attr-value">enable-background: accumulate</span> (the 180.775 -initial/default value) depends on context:</p> 180.776 -<ul> 180.777 - <li>If an ancestor <a>container element</a> 180.778 - element has a property value of <span class="attr-value">'enable-background:new'</span>, then all 180.779 - renderable child elements of the current <a>container element</a> 180.780 - element are rendered both onto the parent <a>container element</a> 180.781 - element's background image canvas and onto the target device.</li> 180.782 - <li>Otherwise, there is no current background image canvas, so it is only 180.783 - necessary to render <a>graphics elements</a> 180.784 - the renderable elements onto the target device. (No need to render to the 180.785 - background image canvas.)</li> 180.786 -</ul> 180.787 - 180.788 -<p>If a filter effect specifies either the <a>BackgroundImage</a> or the 180.789 - <a>BackgroundAlpha</a> pseudo input images and no 180.790 -ancestor <a>container element</a> 180.791 - element has a property value of <span class="attr-value">'enable-background:new'</span>, then the background 180.792 -image request is technically in error. Processing will proceed without 180.793 -interruption (i.e., no error message) and a transparent black image shall be 180.794 -provided in response to the request.</p> 180.795 - 180.796 -<p>The optional 180.797 -<strong><x>,<y>,<width>,<height></strong> 180.798 -<span class="specissue">ISSUE: define the type of each of these, probably <number></span> 180.799 - parameters 180.800 -on the <span class="attr-value">new</span> value indicate the subregion of the <a>container element</a> 180.801 - element to which <a>'enable-background'</a> applies' user space where access to the 180.802 -background image is allowed to happen. These parameters enable the user 180.803 -agent potentially to allocate smaller temporary image buffers than the 180.804 -default values, which might require the user agent to allocate buffers as 180.805 -large as the current viewport. Thus, the values 180.806 -<x>,<y>,<width>,<height> act as a clipping rectangle 180.807 -on the background image canvas. If more than zero but less than four of the 180.808 -values <x>,<y>,<width> and <height> are specified or 180.809 -if negative or zero values are specified for <width> or <height>, 180.810 -<a>BackgroundImage</a> and <a>BackgroundAlpha</a> are processed as if background 180.811 -image processing were not enabled. </p> 180.812 - 180.813 -<h3 id="AccessBackgroundImageSVG">Accessing the background image in SVG</h3> 180.814 -<p>This section only applies to the SVG definition of enable-background.</p> 180.815 - 180.816 -<p>Assume you have an element E in the document and that E has a series of 180.817 -ancestors A<sub>1</sub> (its immediate parent), A<sub>2</sub>, etc. (Note: 180.818 -A<sub>0</sub> is E.) Each ancestor A<sub>i</sub> will have a corresponding 180.819 -temporary background image offscreen buffer BUF<sub>i</sub>. The contents of 180.820 -the <em>background image</em> available to a <a href="#FilterElement"><span 180.821 -class="element-name">'filter'</span></a> referenced by E is defined as 180.822 -follows:</p> 180.823 -<ul> 180.824 - <li>Find the element A<sub>i</sub> with the smallest subscript i (including 180.825 - A<sub>0</sub>=E) for which the <a href="#EnableBackgroundProperty"><span 180.826 - class="prop-name">'enable-background'</span></a> property has the value 180.827 - <span class="prop-value">new</span>. (Note: if there is no such ancestor 180.828 - element, then there is no background image available to E, in which case 180.829 - a transparent black image will be used as E's background image.)</li> 180.830 - <li>For each A<sub>i</sub> (from i=n to 1), initialize BUF<sub>i</sub> to 180.831 - transparent black. Render all children of A<sub>i</sub> up to but not 180.832 - including A<sub>i-1</sub> into BUF<sub>i</sub>. The children are painted, 180.833 - then filtered, clipped, masked and composited using the various painting, 180.834 - filtering, clipping, masking and object opacity settings on the given 180.835 - child. Any filter effects, masking and group opacity that might be set on 180.836 - A<sub>i</sub> do <em>not</em> apply when rendering the children of 180.837 - A<sub>i</sub> into BUF<sub>i</sub>.<br /> 180.838 - (Note that for the case of A<sub>0</sub>=E, the graphical contents of E 180.839 - are not rendered into BUF<sub>1</sub> and thus are not part of the 180.840 - background image available to E. Instead, the graphical contents of E are 180.841 - available via the <a href="#SourceGraphic">SourceGraphic</a> and <a 180.842 - href="#SourceAlpha">SourceAlpha</a> pseudo input images.)</li> 180.843 - <li>Then, for each A<sub>i</sub> (from i=1 to n-1), composite 180.844 - BUF<sub>i</sub> into BUF<sub>i+1</sub>.</li> 180.845 - <li>The accumulated result (i.e., BUF<sub>n</sub>) represents the 180.846 - background image available to E.</li> 180.847 -</ul> 180.848 - 180.849 -<edit:example href="examples/enable-background-01.svg" image="yes" link="yes"/> 180.850 - 180.851 -<p>The example above contains five parts, described as follows:</p> 180.852 -<ol> 180.853 - <li>The first set is the reference graphic. The reference graphic consists 180.854 - of a red rectangle followed by a 50% transparent <span 180.855 - class="element-name">'g'</span> 180.856 - element. Inside the <span class="element-name">'g'</span> 180.857 - is a green circle that partially overlaps the rectangle and a a blue 180.858 - triangle that partially overlaps the circle. The three objects are then 180.859 - outlined by a rectangle stroked with a thin blue line. No filters are 180.860 - applied to the reference graphic.</li> 180.861 - <li>The second set enables background image processing and adds an empty 180.862 - <span class="element-name">'g'</span> 180.863 - element which invokes the ShiftBGAndBlur filter. This filter takes the 180.864 - current accumulated background image (i.e., the entire reference graphic) 180.865 - as input, shifts its offscreen down, blurs it, and then writes the result 180.866 - to the canvas. Note that the offscreen for the filter is initialized to 180.867 - transparent black, which allows the already rendered rectangle, circle 180.868 - and triangle to show through after the filter renders its own result to 180.869 - the canvas.</li> 180.870 - <li>The third set enables background image processing and instead invokes 180.871 - the ShiftBGAndBlur filter on the inner <span 180.872 - class="element-name">'g'</span> 180.873 - element. The accumulated background at the time the filter is applied 180.874 - contains only the red rectangle. Because the children of the inner <span 180.875 - class="element-name">'g'</span> 180.876 - (i.e., the circle and triangle) are not part of the inner <span 180.877 - class="element-name">'g'</span> 180.878 - element's background and because ShiftBGAndBlur ignores SourceGraphic, 180.879 - the children of the inner <span class="element-name">'g'</span> 180.880 - do not appear in the result.</li> 180.881 - <li>The fourth set enables background image processing and invokes the 180.882 - ShiftBGAndBlur on the <span class="element-name">'polygon'</span> 180.883 - element that draws the triangle. The accumulated background at the time 180.884 - the filter is applied contains the red rectangle plus the green circle 180.885 - ignoring the effect of the <span class="prop-name">'opacity'</span> 180.886 - property on the inner <span class="element-name">'g'</span> 180.887 - element. (Note that the blurred green circle at the bottom does not let 180.888 - the red rectangle show through on its left side. This is due to ignoring 180.889 - the effect of the <span class="prop-name">'opacity'</span> 180.890 - property.) Because the triangle itself is not part of the accumulated 180.891 - background and because ShiftBGAndBlur ignores SourceGraphic, the triangle 180.892 - does not appear in the result.</li> 180.893 - <li>The fifth set is the same as the fourth except that filter 180.894 - ShiftBGAndBlur_WithSourceGraphic is invoked instead of ShiftBGAndBlur. 180.895 - ShiftBGAndBlur_WithSourceGraphic performs the same effect as 180.896 - ShiftBGAndBlur, but then renders the SourceGraphic on top of the shifted, 180.897 - blurred background image. In this case, SourceGraphic is the blue 180.898 - triangle; thus, the result is the same as in the fourth case except that 180.899 - the blue triangle now appears.</li> 180.900 -</ol> 180.901 -</edit:with> 180.902 - 180.903 -<h2 id="FilterPrimitivesOverview">Filter primitives overview</h2> 180.904 - 180.905 -<h3 id="FilterPrimitivesOverviewIntro">Overview</h3> 180.906 - 180.907 -<p>This section describes the various filter primtives that can be assembled 180.908 -to achieve a particular filter effect.</p> 180.909 - 180.910 -<p>Unless otherwise stated, all image filters operate on premultiplied RGBA 180.911 -samples. Filters which work more naturally on non-premultiplied data 180.912 -(<a>'feColorMatrix'</a> and <a>'feComponentTransfer'</a>) will temporarily undo and redo 180.913 -premultiplication as specified. All raster effect filtering operations take 1 180.914 -to N input RGBA images, additional attributes as parameters, and produce a 180.915 -single output RGBA image.</p> 180.916 - 180.917 -<p>The RGBA result from each filter primitive will be clamped into the 180.918 -allowable ranges for colors and opacity values. Thus, for example, the result 180.919 -from a given <a>filter primitive</a> will have any negative color values or opacity 180.920 -values adjusted up to color/opacity of zero.</p> 180.921 - 180.922 -<p id="filtersColorSpace">The color space in which a particular <a>filter primitive</a> performs its 180.923 -operations is determined by the value of property <a>'color-interpolation-filters'</a> on the given <a>filter 180.924 -primitive</a>. A different property, <a>'color-interpolation'</a> determines the color space for 180.925 -other color operations. Because these two properties have different initial 180.926 -values (<a>'color-interpolation-filters'</a> has an 180.927 -initial value of <span class="prop-value">linearRGB</span> whereas <a>'color-interpolation'</a> has an initial value of <span class="prop-value">sRGB</span>), in some cases to achieve certain results 180.928 -(e.g., when coordinating gradient interpolation with a filtering operation) 180.929 -it will be necessary to explicitly set <a>'color-interpolation'</a> to <span 180.930 -class="prop-value">linearRGB</span> or <a>'color-interpolation-filters'</a> to <span 180.931 -class="prop-value">sRGB</span> on particular elements. Note that the examples 180.932 -below do not explicitly set either <a>'color-interpolation'</a> or <a>'color-interpolation-filters'</a>, so the initial values for these properties apply to the examples.</p> 180.933 - 180.934 -<p><span class="requirement" id="assert_undefinedPixels">Sometimes <a>filter primitives</a> result in undefined pixels. For example, 180.935 -filter primitive <a>'feOffset'</a> can shift an image down and to the 180.936 -right, leaving undefined pixels at the top and left. In these cases, the 180.937 -undefined pixels are set to transparent black.</span></p> 180.938 - 180.939 -<h3 id="CommonAttributes">Common attributes</h3> 180.940 - 180.941 -<p>The following attributes are available for most of the filter 180.942 -primitives:</p> 180.943 - 180.944 -<div class="adef-list"> 180.945 -<p><em>Attribute definitions:</em></p> 180.946 -<dl> 180.947 - <dt id="FilterPrimitiveXAttribute"> 180.948 - <span class="adef">x</span> = "<em><a><coordinate></a></em>"</dt> 180.949 - <dd><p>The minimum x coordinate for the subregion which restricts 180.950 - calculation and rendering of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p> 180.951 - <p>The <a>lacuna value</a> for <span class="attr-name">x</span> is <span class="attr-value">0%</span>.</p> 180.952 - <p><span class="anim-target">Animatable: yes.</span></p> 180.953 - </dd> 180.954 - <dt id="FilterPrimitiveYAttribute"> 180.955 - <span class="adef">y</span> = "<em><a><coordinate></a></em>"</dt> 180.956 - <dd><p>The minimum y coordinate for the subregion which restricts 180.957 - calculation and rendering of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>. </p> 180.958 - <p>The <a>lacuna value</a> for <span class="attr-name">y</span> is <span class="attr-value">0%</span>.</p> 180.959 - <p><span class="anim-target">Animatable: yes.</span></p> 180.960 - </dd> 180.961 - <dt id="FilterPrimitiveWidthAttribute"> 180.962 - <span class="adef">width</span> = "<em><a><length></a></em>"</dt> 180.963 - <dd><p>The width of the subregion which restricts calculation and rendering 180.964 - of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p> 180.965 - <p>A negative or zero value disables the effect of the given filter 180.966 - primitive (i.e., the result is a transparent black image).</p> 180.967 - <p>The <a>lacuna value</a> for <span class="attr-name">width</span> is <span class="attr-value">100%</span>.</p> 180.968 - <p><span class="anim-target">Animatable: yes.</span></p> 180.969 - </dd> 180.970 - <dt id="FilterPrimitiveHeightAttribute"> 180.971 - <span class="adef">height</span> = "<em><a><length></a></em>"</dt> 180.972 - <dd><p>The height of the subregion which restricts calculation and rendering 180.973 - of the given <a>filter primitive</a>. See <a>filter primitive subregion</a>.</p> 180.974 - <p>A negative or zero value disables the effect of the given filter 180.975 - primitive (i.e., the result is a transparent black image).</p> 180.976 - <p>The <a>lacuna value</a> for <span class="attr-name">height</span> is <span class="attr-value">100%</span>.</p> 180.977 - <p><span class="anim-target">Animatable: yes.</span></p> 180.978 - </dd> 180.979 - <dt id="FilterPrimitiveMxAttribute"> 180.980 - <span class="adef">mx</span> = "<em><a><coordinate></a></em>"</dt> 180.981 - <dd><p>The margin delta for the x coordinate of the subregion which 180.982 - restricts calculation and rendering of the given <a>filter primitive</a>, 180.983 - see <a>filter primitive subregion</a>.</p> 180.984 - <p>The <a>lacuna value</a> for <span class="attr-name">mx</span> is <span class="attr-value">0</span>.</p> 180.985 - <p><span class="anim-target">Animatable: yes.</span></p> 180.986 - </dd> 180.987 - <dt id="FilterPrimitiveMyAttribute"> 180.988 - <span class="adef">my</span> = "<em><a><coordinate></a></em>"</dt> 180.989 - <dd><p>The margin delta for the y coordinate of the subregion which 180.990 - restricts calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p> 180.991 - <p>The <a>lacuna value</a> for <span class="attr-name">my</span> is <span class="attr-value">0</span>.</p> 180.992 - <p><span class="anim-target">Animatable: yes.</span></p> 180.993 - </dd> 180.994 - <dt id="FilterPrimitiveMwAttribute"> 180.995 - <span class="adef">mw</span> = "<em><a><length></a></em>"</dt> 180.996 - <dd><p>The margin delta for the width of the subregion which restricts 180.997 - calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p> 180.998 - <p>The <a>lacuna value</a> for <span class="attr-name">mw</span> is <span class="attr-value">0</span>.</p> 180.999 - <p><span class="anim-target">Animatable: yes.</span></p> 180.1000 - </dd> 180.1001 - <dt id="FilterPrimitiveMhAttribute"> 180.1002 - <span class="adef">mh</span> = "<em><a><length></a></em>"</dt> 180.1003 - <dd><p>The margin delta for the height of the subregion which restricts 180.1004 - calculation and rendering of the given <a>filter primitive</a>, see <a>filter primitive subregion</a>.</p> 180.1005 - <p>The <a>lacuna value</a> for <span class="attr-name">mh</span> is <span class="attr-value">0</span>.</p> 180.1006 - <p><span class="anim-target">Animatable: yes.</span></p> 180.1007 - </dd> 180.1008 - <dt id="FilterPrimitiveResultAttribute"> 180.1009 - <span class="adef">result</span> = 180.1010 - "<em><a><filter-primitive-reference></a></em>"</dt> 180.1011 - <dd><p>Assigned name for this <a>filter primitive</a>. If supplied, then graphics 180.1012 - that result from processing this <a>filter primitive</a> can be referenced by 180.1013 - an <a>'in'</a> attribute on a subsequent filter 180.1014 - primitive within the same <a>'filter element'</a> element. If no value is 180.1015 - provided, the output will only be available for re-use as the implicit 180.1016 - input into the next <a>filter primitive</a> if that <a>filter primitive</a> provides 180.1017 - no value for its <a>'in'</a> attribute.</p> 180.1018 - <p>Note that a <a><filter-primitive-reference></a> is not an XML 180.1019 - ID; instead, a <a><filter-primitive-reference></a> is only 180.1020 - meaningful within a given <a>'filter element'</a> element and thus have only 180.1021 - local scope. It is legal for the same 180.1022 - <a><filter-primitive-reference></a> to appear multiple times 180.1023 - within the same <a>'filter element'</a> element. When referenced, the 180.1024 - <a><filter-primitive-reference></a> will use the closest 180.1025 - preceding <a>filter primitive</a> with the given result.</p> 180.1026 - <p><span class="anim-target">Animatable: yes.</span></p> 180.1027 - </dd> 180.1028 - <dt id="FilterPrimitiveInAttribute"> 180.1029 - <span class="adef">in</span> = "<em><a>SourceGraphic</a> | <a>SourceAlpha</a> | <a>BackgroundImage</a> | <a>BackgroundAlpha</a> | <a>FillPaint</a> | <a>StrokePaint</a> | 180.1030 - <a><filter-primitive-reference></a></em>"</dt> 180.1031 - <dd><p>Identifies input for the given filter primitive. The value can be 180.1032 - either one of six keywords or can be a string which matches a previous 180.1033 - <a>'feBlend/result'</a> attribute value within the same <a>'filter element'</a> 180.1034 - element. If no value is provided and this is the first <a>filter primitive</a>, 180.1035 - then this <a>filter primitive</a> will use <a>SourceGraphic</a> 180.1036 - as its input. If no value is provided and this is a subsequent <a>filter primitive</a>, 180.1037 - then this <a>filter primitive</a> will use the result from the 180.1038 - previous <a>filter primitive</a> as its input.</p> 180.1039 - <p>If the value for <span class="attr-name">result</span> appears 180.1040 - multiple times within a given <a>'filter element'</a> element, then a reference to 180.1041 - that result will use the closest preceding <a>filter primitive</a> with the 180.1042 - given value for attribute <a>'feBlend/result'</a>. 180.1043 - Forward references to results are not allowed, and will be treated as 180.1044 - if no result was specified. </p> 180.1045 - <p>Definitions for the six keywords: </p> 180.1046 - <dl> 180.1047 - <dt id="SourceGraphic"><span class="attr-value">SourceGraphic</span></dt> 180.1048 - <dd><p>This keyword represents the graphics elements 180.1049 - that were the original input into the <a>'filter element'</a> element. For raster 180.1050 - effects <a>filter primitives</a>, the graphics elements 180.1051 - will be rasterized into an initially clear RGBA raster in image 180.1052 - space. Pixels left untouched by the original graphic will be left 180.1053 - clear. The image is specified to be rendered in linear RGBA 180.1054 - pixels. The alpha channel of this image captures any 180.1055 - anti-aliasing specified by SVG. (Since the raster is linear, the 180.1056 - alpha channel of this image will represent the exact percent 180.1057 - coverage of each pixel.)</p></dd> 180.1058 - <dt id="SourceAlpha"><span class="attr-value">SourceAlpha</span></dt> 180.1059 - <dd><p>This keyword represents the graphics elements 180.1060 - that were the original input into the <a>'filter element'</a> element. 180.1061 - <a>SourceAlpha</a> has all of the same rules 180.1062 - as <a>SourceGraphic</a> except that only the 180.1063 - alpha channel is used. The input image is an RGBA image 180.1064 - consisting of implicitly black color values for the RGB channels, 180.1065 - but whose alpha channel is the same as <a>SourceGraphic</a>.</p> 180.1066 - <p class="note implementation">If this option is 180.1067 - used, then some implementations might need to rasterize the 180.1068 - graphics elements 180.1069 - in order to extract the alpha channel.</p> 180.1070 - </dd> 180.1071 - <dt id="BackgroundImage"><span class="attr-value">BackgroundImage</span></dt> 180.1072 - <dd><p>This keyword represents an image snapshot of the canvas under 180.1073 - the filter region at the time that the <a>'filter element'</a> element was invoked. See 180.1074 - <a href="#AccessingBackgroundImage">accessing the background 180.1075 - image</a>.</p> 180.1076 - </dd> 180.1077 - <dt id="BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></dt> 180.1078 - <dd><p>Same as <a>BackgroundImage</a> except 180.1079 - only the alpha channel is used. See <a>SourceAlpha</a> and <a 180.1080 - href="#AccessingBackgroundImage">accessing the background 180.1081 - image</a>.</p> 180.1082 - </dd> 180.1083 - 180.1084 - <dt id="FillPaint"><span class="attr-value">FillPaint</span></dt> 180.1085 - <dd> 180.1086 - <p>This keyword represents the target element <i>rendered filled</i>.</p> 180.1087 - <p>For svg this keyword represents the value of the <a>'fill'</a> 180.1088 - property on the target element for the filter effect.</p> 180.1089 - <p>For non-SVG cases <a>FillPaint</a> generates a transparent black image. 180.1090 - <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the current color, or if it makes sense to use the 'fill' property for this case too.</span> 180.1091 - </p> 180.1092 - <p class="note authoring">Note that text is generally painted filled, not stroked.</p> 180.1093 - <p>The <a>FillPaint</a> image has conceptually infinite extent. 180.1094 - Frequently this image is opaque everywhere, but it might not be if the "paint" 180.1095 - itself has alpha, as in the case of a gradient or pattern which 180.1096 - itself includes transparent or semi-transparent parts.</p> 180.1097 - </dd> 180.1098 - <dt id="StrokePaint"><span class="attr-value">StrokePaint</span></dt> 180.1099 - <dd> 180.1100 - <p>This keyword represents the target element <i>rendered stroked</i>.</p> 180.1101 - <p>For svg this keyword represents the value of the <a>'stroke'</a> 180.1102 - on the target element for the filter effect.</p> 180.1103 - <p>For non-SVG cases <a>StrokePaint</a> generates a transparent black image. 180.1104 - <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the one of the border colors, or if it makes sense to use the 'stroke' property for this case too.</span> 180.1105 - </p> 180.1106 - <p class="note authoring">Note that text is generally painted filled, not stroked.</p> 180.1107 - <p>The <a>StrokePaint</a> image has conceptually infinite extent. 180.1108 - Frequently this image is opaque everywhere, but it 180.1109 - might not be if the "paint" 180.1110 - itself has alpha, as in the case of a gradient or pattern which 180.1111 - itself includes transparent or semi-transparent parts. 180.1112 - </p> 180.1113 - </dd> 180.1114 - </dl> 180.1115 - <p><span class="anim-target">Animatable: yes.</span></p> 180.1116 - </dd> 180.1117 - </dl> 180.1118 -</div> 180.1119 - 180.1120 -<h3 id="FilterPrimitiveSubRegion">Filter primitive subregion</h3> 180.1121 - 180.1122 -<edit:with element="feBlend"> 180.1123 -<p> 180.1124 -All <a>filter primitives</a> have attributes <a>'x'</a>, <a>'y'</a>, 180.1125 -<a>'width'</a> and <a>'height'</a>, and <a>'mx'</a>, 180.1126 -<a>'my'</a>, <a>'mw'</a> and <a>'mh'</a>, which 180.1127 -together identify a subregion which restricts calculation and rendering of 180.1128 -the given <a>filter primitive</a>. The <a>'x'</a>, <a>'y'</a>, 180.1129 -<a>'width'</a> and <a>'height'</a> attributes are defined 180.1130 -according to the same rules as other <a>filter primitives</a>' coordinate and length 180.1131 -attributes and thus represent values in the coordinate system established by 180.1132 -attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> element. 180.1133 -The <a>'mx'</a>, <a>'my'</a>, <a>'mw'</a> and 180.1134 -<a>'mh'</a> attributes contain deltas to the corresponding 180.1135 -<a>'x'</a>, <a>'y'</a>, <a>'width'</a> and 180.1136 -<a>'height'</a> attributes and contain values in the coordinate 180.1137 -system established by attribute <a>'filter/primitiveMarginUnits'</a> on the <a>'filter element'</a> element. 180.1138 -</p> 180.1139 - 180.1140 -<p><a>'x'</a>, <a>'y'</a>, 180.1141 -<a>'width'</a> and <a>'height'</a> default to the union (i.e., tightest fitting bounding 180.1142 -box) of the subregions defined for all referenced nodes. If there are no 180.1143 -referenced nodes (e.g., for <a>'feImage'</a> or <a>'feTurbulence'</a>), or one or more of the 180.1144 -referenced nodes is a standard input (one of <a>SourceGraphic</a>, <a>SourceAlpha</a>, <a>BackgroundImage</a>, <a>BackgroundAlpha</a>, 180.1145 -<a href="#FillPaint"><span class="attr-value">FillPaint</span></a> or <a 180.1146 -href="#StrokePaint"><span class="attr-value">StrokePaint</span></a>), or for 180.1147 -<a href="#feTileElement"><span class="element-name">'feTile'</span></a> 180.1148 -(which is special because its principal function is to replicate the 180.1149 -referenced node in X and Y and thereby produce a usually larger result), the 180.1150 -default subregion is <span class="attr-value">0%, 0%, 100%, 100%</span>, where percentages are relative to the 180.1151 -dimensions of the <a>filter region</a>.</p> 180.1152 - 180.1153 -<p>After the <strong>x</strong>, <strong>y</strong>, <strong>width</strong>, 180.1154 -<strong>height</strong> have been calculated for the filter primitive 180.1155 -subregion the margin attributes <strong>mx</strong>, <strong>my</strong>, 180.1156 -<strong>mw</strong>, <strong>mh</strong> are calculated and added to the 180.1157 -former to make the <a>filter primitive subregion</a>. If the <a>filter primitive 180.1158 -subregion</a> has a negative or zero width or height, the effect of the filter 180.1159 -primitive is disabled. </p> 180.1160 - 180.1161 -<p>The <a>filter primitive subregion</a> act as a hard clip clipping rectangle for 180.1162 -the filter primitive.</p> 180.1163 - 180.1164 -<p>All intermediate offscreens are defined to not exceed the intersection of 180.1165 -the <a>filter primitive subregion</a> with the <a href="#FilterEffectsRegion">filter 180.1166 -region</a>. The filter region and any of the filter primitive subregions are 180.1167 -to be set up such that all offscreens are made big enough to accommodate any 180.1168 -pixels which even partly intersect with either the filter region or the 180.1169 -filter primitive subregions.</p> 180.1170 - 180.1171 -<p><a>'feTile'</a> references a previous filter primitive and then stitches the tiles together 180.1172 -based on the <a>filter primitive subregion</a> of the referenced filter primitive in 180.1173 -order to fill its own <a>filter primitive subregion</a>.</p> 180.1174 - 180.1175 -<edit:example href="examples/filtersubregion00.svg" image="yes" link="yes"/> 180.1176 - 180.1177 -<p> 180.1178 -In the example above there are three rects that each have a cross and a circle in them. The circle element in each one has a different filter applied, but with the same <a>filter primitive subregion</a>. The filter output should be limited to the <a>filter primitive subregion</a>, so you should never see the circles themselves, just the rects that make up the <a>filter primitive subregion</a>. 180.1179 -</p> 180.1180 -<ul> 180.1181 -<li> 180.1182 -The upper left rect shows an <a>'feFlood'</a> with <span class="attr-name">flood-opacity</span>="<span class="attr-value">75%</span>" so the cross should be visible through the green rect in the middle. 180.1183 -</li> 180.1184 -<li> 180.1185 -The lower left rect shows an <a>'feMerge'</a> that merges <a>SourceGraphic</a> with <a>FillPaint</a>. Since the circle has <span class="attr-name">fill-opacity</span>="<span class="attr-value">0.5</span>" it will also be transparent so that the cross is visible through the green rect in the middle. 180.1186 -</li> 180.1187 -<li>The upper right rect shows an <a>'feBlend'</a> that has <span class="attr-name">mode</span>="<span class="attr-value">multiply</span>". Since the circle in this case isn't transparent the result is totally opaque. The rect should be dark green and the cross should not be visible through it. 180.1188 -</li> 180.1189 -</ul> 180.1190 - 180.1191 -</edit:with> 180.1192 - 180.1193 -<h2 id="LightSourceDefinitions">Light source elements and properties</h2> 180.1194 - 180.1195 -<h3 id="LightSourceIntro">Introduction</h3> 180.1196 - 180.1197 -<p>The following sections define the elements that define a light source, <a>'feDistantLight'</a>, 180.1198 -<a>'fePointLight'</a> and <a>'feSpotLight'</a>, 180.1199 -and property <a>'lighting-color'</a>, which defines the color of the 180.1200 -light.</p> 180.1201 - 180.1202 -<h3 id="feDistantLightElement">Light source <span class="element-name">'feDistantLight'</span></h3> 180.1203 - 180.1204 -<edit:elementsummary name='feDistantLight'/> 180.1205 - 180.1206 -<div class="adef-list"> 180.1207 -<p><em>Attribute definitions:</em></p> 180.1208 -<dl> 180.1209 - <dt id="feDistantLightAzimuthAttribute"><span 180.1210 - class="adef">azimuth</span> = "<em><a><number></a></em>"</dt> 180.1211 - <dd>Direction angle for the light source on the XY plane (clockwise), in 180.1212 - degrees.<br /> 180.1213 - If the attribute is not specified, then the effect is as if a value of 180.1214 - <span class="attr-value">0</span> were specified.<br /> 180.1215 - <span class="anim-target">Animatable: yes.</span></dd> 180.1216 - <dt id="feDistantLightElevationAttribute"><span 180.1217 - class="adef">elevation</span> = "<em><a><number></a></em>"</dt> 180.1218 - <dd>Direction angle for the light source on the YZ plane, in degrees.<br 180.1219 - /> 180.1220 - If the attribute is not specified, then the effect is as if a value of 180.1221 - <span class="attr-value">0</span> were specified.<br /> 180.1222 - <span class="anim-target">Animatable: yes.</span></dd> 180.1223 -</dl> 180.1224 -</div> 180.1225 - 180.1226 -<h3 id="fePointLightElement">Light source <span class="element-name">'fePointLight'</span></h3> 180.1227 - 180.1228 -<edit:elementsummary name='fePointLight'/> 180.1229 - 180.1230 -<div class="adef-list"> 180.1231 -<p><em>Attribute definitions:</em></p> 180.1232 -<dl> 180.1233 - <dt id="fePointLightXAttribute"><span 180.1234 - class="adef">x</span> = "<em><a><number></a></em>"</dt> 180.1235 - <dd>X location for the light source in the coordinate system established 180.1236 - by attribute <a>'filter/primitiveUnits'</a> on the <a 180.1237 - href="#FilterElement"><span class="element-name">'filter'</span></a> 180.1238 - element.<br /> 180.1239 - If the attribute is not specified, then the effect is as if a value of 180.1240 - <span class="attr-value">0</span> were specified.<br /> 180.1241 - <span class="anim-target">Animatable: yes.</span></dd> 180.1242 - <dt id="fePointLightYAttribute"><span 180.1243 - class="adef">y</span> = "<em><a><number></a></em>"</dt> 180.1244 - <dd>Y location for the light source in the coordinate system established 180.1245 - by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 180.1246 - element.<br /> 180.1247 - If the attribute is not specified, then the effect is as if a value of 180.1248 - <span class="attr-value">0</span> were specified.<br /> 180.1249 - <span class="anim-target">Animatable: yes.</span></dd> 180.1250 - <dt id="fePointLightZAttribute"><span 180.1251 - class="adef">z</span> = "<em><a><number></a></em>"</dt> 180.1252 - <dd>Z location for the light source in the coordinate system established 180.1253 - by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 180.1254 - element, assuming that, in the <a>initial coordinate system</a> 180.1255 - , the positive Z-axis comes out towards the person viewing the content 180.1256 - and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br /> 180.1257 - If the attribute is not specified, then the effect is as if a value of 180.1258 - <span class="attr-value">0</span> were specified.<br /> 180.1259 - <span class="anim-target">Animatable: yes.</span></dd> 180.1260 -</dl> 180.1261 -</div> 180.1262 - 180.1263 -<h3 id="feSpotLightElement">Light source <span class="element-name">'feSpotLight'</span></h3> 180.1264 - 180.1265 -<edit:elementsummary name='feSpotLight'/> 180.1266 - 180.1267 -<div class="adef-list"> 180.1268 -<p><em>Attribute definitions:</em></p> 180.1269 -<dl> 180.1270 - <dt id="feSpotLightXAttribute"><span 180.1271 - class="adef">x</span> = "<em><a><number></a></em>"</dt> 180.1272 - <dd>X location for the light source in the coordinate system established 180.1273 - by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 180.1274 - element.<br /> 180.1275 - If the attribute is not specified, then the effect is as if a value of 180.1276 - <span class="attr-value">0</span> were specified.<br /> 180.1277 - <span class="anim-target">Animatable: yes.</span></dd> 180.1278 - <dt id="feSpotLightYAttribute"><span 180.1279 - class="adef">y</span> = "<em><a><number></a></em>"</dt> 180.1280 - <dd>Y location for the light source in the coordinate system established 180.1281 - by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 180.1282 - element.<br /> 180.1283 - If the attribute is not specified, then the effect is as if a value of 180.1284 - <span class="attr-value">0</span> were specified.<br /> 180.1285 - <span class="anim-target">Animatable: yes.</span></dd> 180.1286 - <dt id="feSpotLightZAttribute"><span 180.1287 - class="adef">z</span> = "<em><a><number></a></em>"</dt> 180.1288 - <dd>Z location for the light source in the coordinate system established 180.1289 - by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 180.1290 - element, assuming that, in the <a>initial coordinate system</a> 180.1291 - , the positive Z-axis comes out towards the person viewing the content 180.1292 - and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br /> 180.1293 - If the attribute is not specified, then the effect is as if a value of 180.1294 - <span class="attr-value">0</span> were specified.<br /> 180.1295 - <span class="anim-target">Animatable: yes.</span></dd> 180.1296 - <dt id="feSpotLightPointsAtXAttribute"><span 180.1297 - class="adef">pointsAtX</span> = "<em><a><number></a></em>"</dt> 180.1298 - <dd>X location in the coordinate system established by attribute <a>'filter/primitiveUnits'</a> 180.1299 - on the <a>'filter element'</a> 180.1300 - element of the point at which the light source is pointing.<br /> 180.1301 - If the attribute is not specified, then the effect is as if a value of 180.1302 - <span class="attr-value">0</span> were specified.<br /> 180.1303 - <span class="anim-target">Animatable: yes.</span></dd> 180.1304 - <dt id="feSpotLightPointsAtYAttribute"><span 180.1305 - class="adef">pointsAtY</span> = "<em><a><number></a></em>"</dt> 180.1306 - <dd>Y location in the coordinate system established by attribute <a>'filter/primitiveUnits'</a> 180.1307 - on the <a>'filter element'</a> element of the point at which the light source is pointing.<br /> 180.1308 - If the attribute is not specified, then the effect is as if a value of 180.1309 - <span class="attr-value">0</span> were specified.<br /> 180.1310 - <span class="anim-target">Animatable: yes.</span></dd> 180.1311 - <dt id="feSpotLightPointsAtZAttribute"><span 180.1312 - class="adef">pointsAtZ</span> = "<em><a><number></a></em>"</dt> 180.1313 - <dd>Z location in the coordinate system established by the 180.1314 - attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> element of 180.1315 - the point at which the light source is pointing, assuming that, in the 180.1316 - <a>initial coordinate system</a>, the positive Z-axis comes out 180.1317 - towards the person viewing the content and assuming that 180.1318 - one unit along the Z-axis equals 180.1319 - <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage"> 180.1320 - one unit in X and Y</a>.<br /> 180.1321 - If the attribute is not specified, then the effect is as if a value of 180.1322 - <span class="attr-value">0</span> were specified.<br /> 180.1323 - <span class="anim-target">Animatable: yes.</span></dd> 180.1324 - <dt id="feSpotLightSpecularExponentAttribute"><span 180.1325 - class="adef">specularExponent</span> = "<em><a><number></a></em>"</dt> 180.1326 - <dd>Exponent value controlling the focus for the light source.<br /> 180.1327 - If the attribute is not specified, then the effect is as if a value of 180.1328 - <span class="attr-value">1</span> were specified.<br /> 180.1329 - <span class="anim-target">Animatable: yes.</span></dd> 180.1330 - <dt id="feSpotLightLimitingConeAngleAttribute"><span 180.1331 - class="adef">limitingConeAngle</span> = "<em><a><number></a></em>"</dt> 180.1332 - <dd>A limiting cone which restricts the region where the light is 180.1333 - projected. No light is projected outside the cone. <span 180.1334 - class="attr-name">limitingConeAngle</span> represents the angle in degrees between 180.1335 - the spot light axis (i.e. the axis between the light source and the 180.1336 - point to which it is pointing at) and the spot light cone. <span class="requirement" id="assert_userAgentLightingConeSmoothing">User agents 180.1337 - should apply a smoothing technique such as anti-aliasing at the 180.1338 - boundary of the cone.</span><br /> 180.1339 - If no value is specified, then no limiting cone will be applied.<br /> 180.1340 - <span class="anim-target">Animatable: yes.</span></dd> 180.1341 -</dl> 180.1342 -</div> 180.1343 - 180.1344 -<h3 id="LightingColorProperty">The <span class="prop-name">'lighting-color'</span> property</h3> 180.1345 - 180.1346 -<p>The <a>'lighting-color'</a> property defines the 180.1347 -color of the light source for <a>filter primitives</a> <a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a>.</p> 180.1348 - 180.1349 -<div class="propdef"> 180.1350 -<dl> 180.1351 - <dt><span class="index-def" title="'margin-top'"><a 180.1352 - id="propdef-lighting-color" name="propdef-lighting-color" 180.1353 - class="propdef-title"><span 180.1354 - class="prop-name">'lighting-color'</span></a></span></dt> 180.1355 - <dd> 180.1356 - <table summary="lighting-color property" class="propinfo" 180.1357 - cellspacing="0" cellpadding="0"> 180.1358 - <tbody> 180.1359 - <tr valign="baseline"> 180.1360 - <td><em>Value:</em>  </td> 180.1361 - <td>currentColor |<br /> 180.1362 - <a><color></a> 180.1363 - [<a><icccolor></a>] |<br /> 180.1364 - <a class="noxref" 180.1365 - href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span 180.1366 - class="value-inst-inherit noxref">inherit</span></a></td> 180.1367 - </tr> 180.1368 - <tr valign="baseline"> 180.1369 - <td><em>Initial:</em>  </td> 180.1370 - <td>white</td> 180.1371 - </tr> 180.1372 - <tr valign="baseline"> 180.1373 - <td><em>Applies to:</em>  </td> 180.1374 - <td><a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a> 180.1375 - elements</td> 180.1376 - </tr> 180.1377 - <tr valign="baseline"> 180.1378 - <td><em>Inherited:</em>  </td> 180.1379 - <td>no</td> 180.1380 - </tr> 180.1381 - <tr valign="baseline"> 180.1382 - <td><em>Percentages:</em>  </td> 180.1383 - <td>N/A</td> 180.1384 - </tr> 180.1385 - <tr valign="baseline"> 180.1386 - <td><em>Media:</em>  </td> 180.1387 - <td>visual</td> 180.1388 - </tr> 180.1389 - <tr valign="baseline"> 180.1390 - <td><em>Animatable:</em>  </td> 180.1391 - <td>yes</td> 180.1392 - </tr> 180.1393 - </tbody> 180.1394 - </table> 180.1395 - </dd> 180.1396 -</dl> 180.1397 -</div> 180.1398 - 180.1399 -<h2 id="feBlendElement">Filter primitive <span class="element-name">'feBlend'</span></h2> 180.1400 - 180.1401 -<edit:elementsummary name='feBlend'/> 180.1402 - 180.1403 -<p>This filter composites two objects together using commonly used imaging 180.1404 -software blending modes. It performs a pixel-wise combination of two input 180.1405 -images.</p> 180.1406 - 180.1407 -<div class="adef-list"> 180.1408 -<p><em>Attribute definitions:</em></p> 180.1409 -<dl> 180.1410 - <dt id="feBlendModeAttribute"><span 180.1411 - class="adef">mode</span> = "<em>normal | multiply | screen | darken | 180.1412 - lighten</em>"</dt> 180.1413 - <dd>One of the image blending modes (see <a 180.1414 - href="#BlendingTable">table</a> below). Default is: normal.<br /> 180.1415 - <span class="anim-target">Animatable: yes.</span></dd> 180.1416 - <dt id="feBlendIn2Attribute"><span 180.1417 - class="adef">in2</span> = "<em>(see <a 180.1418 - href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> 180.1419 - attribute)</em>"</dt> 180.1420 - <dd>The second input image to the blending operation. This attribute can 180.1421 - take on the same values as the <a 180.1422 - href="#FilterPrimitiveInAttribute"><span 180.1423 - class="attr-name">in</span></a> attribute.<br /> 180.1424 - <span class="anim-target">Animatable: yes.</span></dd> 180.1425 -</dl> 180.1426 -</div> 180.1427 - 180.1428 -<p>For all feBlend modes, the result opacity is computed as follows:</p> 180.1429 -<pre>qr = 1 - (1-qa)*(1-qb)</pre> 180.1430 - 180.1431 -<p>For the compositing formulas below, the following definitions apply:</p> 180.1432 -<pre>image A = in 180.1433 -image B = in2 180.1434 -cr = Result color (RGB) - premultiplied 180.1435 -qa = Opacity value at a given pixel for image A 180.1436 -qb = Opacity value at a given pixel for image B 180.1437 -ca = Color (RGB) at a given pixel for image A - premultiplied 180.1438 -cb = Color (RGB) at a given pixel for image B - premultiplied </pre> 180.1439 - 180.1440 -<p id="BlendingTable">The following table 180.1441 -provides the list of available image blending modes:</p> 180.1442 - 180.1443 -<div class="note-editor"> 180.1444 -ED: make table look nicer</div> 180.1445 - 180.1446 -<table summary="blending modes" width="500" border="1"> 180.1447 - <tbody> 180.1448 - <tr> 180.1449 - <td>Image Blending Mode</td> 180.1450 - <td>Formula for computing result color</td> 180.1451 - </tr> 180.1452 - <tr> 180.1453 - <td>normal</td> 180.1454 - <td>cr = (1 - qa) * cb + ca</td> 180.1455 - </tr> 180.1456 - <tr> 180.1457 - <td>multiply</td> 180.1458 - <td>cr = (1-qa)*cb + (1-qb)*ca + ca*cb</td> 180.1459 - </tr> 180.1460 - <tr> 180.1461 - <td>screen</td> 180.1462 - <td>cr = cb + ca - ca * cb</td> 180.1463 - </tr> 180.1464 - <tr> 180.1465 - <td>darken</td> 180.1466 - <td>cr = Min ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td> 180.1467 - </tr> 180.1468 - <tr> 180.1469 - <td>lighten</td> 180.1470 - <td>cr = Max ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td> 180.1471 - </tr> 180.1472 - </tbody> 180.1473 -</table> 180.1474 - 180.1475 -<p><span class="attr-value">'normal'</span> blend mode is equivalent to <a 180.1476 -href="#feCompositeOperatorAttribute"><span 180.1477 -class="attr-value">operator="over"</span></a> on the <a>'feComposite'</a> 180.1478 -filter primitive, matches the blending method used by <a>'feMerge'</a> and matches 180.1479 -the <a>simple alpha compositing</a> technique used in SVG for all compositing outside of filter effects.</p> 180.1480 - 180.1481 -<edit:example href="examples/feBlend.svg" image="yes" link="yes"/> 180.1482 - 180.1483 -<h2 id="feColorMatrixElement">Filter primitive <span class="element-name">'feColorMatrix'</span></h2> 180.1484 - 180.1485 -<edit:elementsummary name='feColorMatrix'/> 180.1486 - 180.1487 -<p>This filter applies a matrix transformation:</p> 180.1488 -<object data="mathml/feColorMatrix00.mml" type="application/mathml+xml" width="100%" height="140"> 180.1489 -<pre>| R' | | a00 a01 a02 a03 a04 | | R | 180.1490 -| G' | | a10 a11 a12 a13 a14 | | G | 180.1491 -| B' | = | a20 a21 a22 a23 a24 | * | B | 180.1492 -| A' | | a30 a31 a32 a33 a34 | | A | 180.1493 -| 1 | | 0 0 0 0 1 | | 1 |</pre> 180.1494 -</object> 180.1495 - 180.1496 -<p>on the RGBA color and alpha values of every pixel on the input graphics to 180.1497 -produce a result with a new set of RGBA color and alpha values.</p> 180.1498 - 180.1499 -<p>The calculations are performed on non-premultiplied color values. If the 180.1500 -input graphics consists of premultiplied color values, those values are 180.1501 -automatically converted into non-premultiplied color values for this 180.1502 -operation.</p> 180.1503 - 180.1504 -<p>These matrices often perform an identity mapping in the alpha channel. If 180.1505 -that is the case, an implementation can avoid the costly undoing and redoing 180.1506 -of the premultiplication for all pixels with A = 1.</p> 180.1507 - 180.1508 -<div class="adef-list"> 180.1509 -<p><em>Attribute definitions:</em></p> 180.1510 -<dl> 180.1511 - <dt id="feColorMatrixTypeAttribute"><span class="adef">type</span> = 180.1512 - "<em>matrix | saturate | hueRotate | luminanceToAlpha</em>"</dt> 180.1513 - <dd>Indicates the type of matrix operation. The keyword <span 180.1514 - class="attr-name">matrix</span> indicates that a full 5x4 matrix of 180.1515 - values will be provided. The other keywords represent convenience 180.1516 - shortcuts to allow commonly used color operations to be performed 180.1517 - without specifying a complete matrix.<br /> 180.1518 - <span class="anim-target">Animatable: yes.</span></dd> 180.1519 - <dt id="feColorMatrixValuesAttribute"><span class="adef">values</span> = 180.1520 - "<em>list of <a><number></a>s</em>"</dt> 180.1521 - <dd>The contents of <span class="attr-name">values</span> depends on the 180.1522 - value of attribute <a href="#feColorMatrixTypeAttribute"><span 180.1523 - class="attr-name">type</span></a>: 180.1524 - <ul> 180.1525 - <li>For <span class="attr-value">type="matrix"</span>, <span 180.1526 - class="attr-name">values</span> is a list of 20 matrix values (a00 180.1527 - a01 a02 a03 a04 a10 a11 ... a34), separated by whitespace and/or a 180.1528 - comma. For example, the identity matrix could be expressed as: 180.1529 - <pre>type="matrix" 180.1530 -values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"</pre> 180.1531 - </li> 180.1532 - <li>For <span class="attr-value">type="saturate"</span>, <span 180.1533 - class="attr-name">values</span> is a single real number value (0 to 180.1534 - 1). A <span class="attr-value">saturate</span> operation is 180.1535 - equivalent to the following matrix operation: 180.1536 - <p> 180.1537 - <object data="mathml/feColorMatrix01.mml" type="application/mathml+xml" width="100%" height="130"> 180.1538 - <pre>| R' | |0.213+0.787s 0.715-0.715s 0.072-0.072s 0 0 | | R | 180.1539 -| G' | |0.213-0.213s 0.715+0.285s 0.072-0.072s 0 0 | | G | 180.1540 -| B' | = |0.213-0.213s 0.715-0.715s 0.072+0.928s 0 0 | * | B | 180.1541 -| A' | | 0 0 0 1 0 | | A | 180.1542 -| 1 | | 0 0 0 0 1 | | 1 |</pre> 180.1543 - </object> 180.1544 - </p> 180.1545 - </li> 180.1546 - <li>For <span class="attr-value">type="hueRotate"</span>, <span 180.1547 - class="attr-name">values</span> is a single one real number value 180.1548 - (degrees). A <span class="attr-value">hueRotate</span> operation is 180.1549 - equivalent to the following matrix operation: 180.1550 - <p> 180.1551 - <object data="mathml/feColorMatrix02.mml" type="application/mathml+xml" width="100%" height="130"> 180.1552 - <pre>| R' | | a00 a01 a02 0 0 | | R | 180.1553 -| G' | | a10 a11 a12 0 0 | | G | 180.1554 -| B' | = | a20 a21 a22 0 0 | * | B | 180.1555 -| A' | | 0 0 0 1 0 | | A | 180.1556 -| 1 | | 0 0 0 0 1 | | 1 |</pre> 180.1557 - </object> 180.1558 - </p> 180.1559 - 180.1560 - where the terms a00, a01, etc. are calculated as follows: 180.1561 - <p> 180.1562 - <object data="mathml/feColorMatrix03.mml" type="application/mathml+xml" width="100%" height="230"> 180.1563 - <pre>| a00 a01 a02 | [+0.213 +0.715 +0.072] 180.1564 -| a10 a11 a12 | = [+0.213 +0.715 +0.072] + 180.1565 -| a20 a21 a22 | [+0.213 +0.715 +0.072] 180.1566 - [+0.787 -0.715 -0.072] 180.1567 -cos(hueRotate value) * [-0.213 +0.285 -0.072] + 180.1568 - [-0.213 -0.715 +0.928] 180.1569 - [-0.213 -0.715+0.928] 180.1570 -sin(hueRotate value) * [+0.143 +0.140-0.283] 180.1571 - [-0.787 +0.715+0.072]</pre> 180.1572 - </object> 180.1573 - </p> 180.1574 - Thus, the upper left term of the hue matrix turns out to be: 180.1575 - <p> 180.1576 - <object data="mathml/feColorMatrix04.mml" type="application/mathml+xml" width="100%" height="30"> 180.1577 - <pre>.213 + cos(hueRotate value)*.787 - sin(hueRotate value)*.213</pre> 180.1578 - </object> 180.1579 - </p> 180.1580 - 180.1581 - </li> 180.1582 - <li>For <span class="attr-value">type="luminanceToAlpha"</span>, 180.1583 - <span class="attr-name">values</span> is not applicable. A <span 180.1584 - class="attr-value">luminanceToAlpha</span> operation is equivalent 180.1585 - to the following matrix operation: 180.1586 - <p> 180.1587 - <object data="mathml/feColorMatrix05.mml" type="application/mathml+xml" width="100%" height="130"> 180.1588 - <pre> | R' | | 0 0 0 0 0 | | R | 180.1589 - | G' | | 0 0 0 0 0 | | G | 180.1590 - | B' | = | 0 0 0 0 0 | * | B | 180.1591 - | A' | | 0.2125 0.7154 0.0721 0 0 | | A | 180.1592 - | 1 | | 0 0 0 0 1 | | 1 |</pre> 180.1593 - </object> 180.1594 - </p> 180.1595 - </li> 180.1596 - </ul> 180.1597 - If the attribute is not specified, then the default behavior depends on 180.1598 - the value of attribute <a>'feColorMatrix/type'</a>. If <span 180.1599 - class="attr-value">type="matrix"</span>, then this attribute defaults 180.1600 - to the identity matrix. If <span 180.1601 - class="attr-value">type="saturate"</span>, then this attribute defaults 180.1602 - to the value <span class="attr-value">1</span>, which results in the 180.1603 - identify matrix. If <span class="attr-value">type="hueRotate"</span>, 180.1604 - then this attribute defaults to the value <span 180.1605 - class="attr-value">0</span>, which results in the identify matrix.<br /> 180.1606 - <span class="anim-target">Animatable: yes.</span> </dd> 180.1607 -</dl> 180.1608 -</div> 180.1609 - 180.1610 -<edit:example href="examples/feColorMatrix.svg" image="yes" link="yes"/> 180.1611 - 180.1612 -<h2 id="feComponentTransferElement">Filter primitive <span class="element-name">'feComponentTransfer'</span></h2> 180.1613 - 180.1614 -<edit:elementsummary name='feComponentTransfer'/> 180.1615 - 180.1616 -<p>This filter primitive performs component-wise remapping of data as 180.1617 -follows:</p> 180.1618 -<pre>R' = <a href="#feFuncRElement">feFuncR</a>( R ) 180.1619 -G' = <a href="#feFuncGElement">feFuncG</a>( G ) 180.1620 -B' = <a href="#feFuncBElement">feFuncB</a>( B ) 180.1621 -A' = <a href="#feFuncAElement">feFuncA</a>( A )</pre> 180.1622 - 180.1623 -<p>for every pixel. It allows operations like brightness adjustment, contrast 180.1624 -adjustment, color balance or thresholding.</p> 180.1625 - 180.1626 -<p>The calculations are performed on non-premultiplied color values. If the 180.1627 -input graphics consists of premultiplied color values, those values are 180.1628 -automatically converted into non-premultiplied color values for this 180.1629 -operation. (Note that the undoing and redoing of the premultiplication can be 180.1630 -avoided if <a>'feFuncA'</a> is the identity transform 180.1631 -and all alpha values on the source graphic are set to 1.)</p> 180.1632 - 180.1633 -<p>The child elements of a <a>'feComponentTransfer'</a> element specify the 180.1634 -transfer functions for the four channels:</p> 180.1635 - 180.1636 -<ul id="transferFuncElements"> 180.1637 - <li><a>'feFuncR'</a> — transfer function for the red component of the input graphic</li> 180.1638 - <li><a>'feFuncG'</a> — transfer function for the green component of the input graphic</li> 180.1639 - <li><a>'feFuncB'</a> — transfer function for the blue component of the input graphic</li> 180.1640 - <li><a>'feFuncA'</a> — transfer function for the alpha component of the input graphic</li> 180.1641 -</ul> 180.1642 - 180.1643 -<p>The following rules apply to the processing of the <a>'feComponentTransfer'</a> element:</p> 180.1644 -<ul> 180.1645 - <li>If more than one <a>transfer function element</a> of the same kind is specified, the last occurrence is to be used.</li> 180.1646 - <li>If any of the <a>transfer function elements</a> are unspecified, the <a>'feComponentTransfer'</a> must be processed as if those <a>transfer function elements</a> were specified with their <a>'type'</a> attributes set to <span class="attr-value">'identity'</span>.</li> 180.1647 -</ul> 180.1648 - 180.1649 -<edit:with element='feFuncR'> 180.1650 - 180.1651 -<div id='feFuncRElement'> 180.1652 -<edit:elementsummary name='feFuncR'/> 180.1653 -</div> 180.1654 - 180.1655 -<div id='feFuncGElement'> 180.1656 -<edit:elementsummary name='feFuncG'/> 180.1657 -</div> 180.1658 - 180.1659 -<div id='feFuncBElement'> 180.1660 -<edit:elementsummary name='feFuncB'/> 180.1661 -</div> 180.1662 - 180.1663 -<div id='feFuncAElement'> 180.1664 -<edit:elementsummary name='feFuncA'/> 180.1665 -</div> 180.1666 - 180.1667 -<p id="TransferFunctionElementAttributes">The attributes below are the 180.1668 -<span class='SVG-TermDefine'>transfer function element attributes</span>, 180.1669 -which apply to the <a>transfer function elements</a>.</p> 180.1670 - 180.1671 -<div class="adef-list"> 180.1672 -<p><em>Attribute definitions:</em></p> 180.1673 -<dl> 180.1674 - <dt id="feComponentTransferTypeAttribute"><span class="adef">type</span> 180.1675 - = "<em>identity | table | discrete | linear | gamma</em>"</dt> 180.1676 - <dd><p>Indicates the type of component transfer function. The type of 180.1677 - function determines the applicability of the other attributes.</p> 180.1678 - <ul> 180.1679 - <li>For <span class="attr-value">identity</span>: 180.1680 - <pre>C' = C</pre> 180.1681 - </li> 180.1682 - <li>For <span class="attr-value">table</span>, the function is 180.1683 - defined by linear interpolation into a lookup table by attribute <a 180.1684 - href="#feComponentTransferTableValuesAttribute"><span 180.1685 - class="attr-name">tableValues</span></a>, which provides a list of 180.1686 - <em>n+1</em> values (i.e., v<sub>0</sub> to v<sub>n</sub>) in order 180.1687 - to identify <em>n</em> interpolation ranges. Interpolations use the 180.1688 - following formula. 180.1689 - <p>For a value <code>C</code> pick a <code>k</code> such that:</p> 180.1690 - <p class="filterformula">k/N <= C < (k+1)/N</p> 180.1691 - <p>The result <code>C'</code> is given by:</p> 180.1692 - <p class="filterformula">C' = v<sub>k</sub> + (C - k/N)*N * 180.1693 - (v<sub>k+1</sub> - v<sub>k</sub>)</p> 180.1694 - </li> 180.1695 - <li>For <span class="attr-value">discrete</span>, the function is 180.1696 - defined by the step function defined by attribute <a 180.1697 - href="#feComponentTransferTableValuesAttribute"><span 180.1698 - class="attr-name">tableValues</span></a>, which provides a list of 180.1699 - <em>n</em> values (i.e., v<sub>0</sub> to v<sub>n-1</sub>) in order 180.1700 - to identify a step function consisting of <em>n</em> steps. The 180.1701 - step function is defined by the following formula. 180.1702 - <p>For a value <code>C</code> pick a <code>k</code> such that:</p> 180.1703 - <p class="filterformula">k/N <= C < (k+1)/N</p> 180.1704 - <p>The result <code>C'</code> is given by:</p> 180.1705 - <p class="filterformula">C' = v<sub>k</sub></p> 180.1706 - </li> 180.1707 - <li>For <span class="attr-value">linear</span>, the function is 180.1708 - defined by the following linear equation: 180.1709 - <p class="filterformula">C' = <a 180.1710 - href="#feComponentTransferSlopeAttribute"><span 180.1711 - class="attr-name">slope</span></a> * C + <a 180.1712 - href="#feComponentTransferInterceptAttribute"><span 180.1713 - class="attr-name">intercept</span></a></p> 180.1714 - </li> 180.1715 - <li>For <span class="attr-value">gamma</span>, the function is 180.1716 - defined by the following exponential function: 180.1717 - <p class="filterformula">C' = <a 180.1718 - href="#feComponentTransferAmplitudeAttribute"><span 180.1719 - class="attr-name">amplitude</span></a> * pow(C, <a 180.1720 - href="#feComponentTransferExponentAttribute"><span 180.1721 - class="attr-name">exponent</span></a>) + <a 180.1722 - href="#feComponentTransferOffsetAttribute"><span 180.1723 - class="attr-name">offset</span></a></p> 180.1724 - </li> 180.1725 - </ul> 180.1726 - <span class="anim-target">Animatable: yes.</span> </dd> 180.1727 - <dt id="feComponentTransferTableValuesAttribute"><span 180.1728 - class="adef">tableValues</span> = "<em>(list of <a><number></a>s)</em>"</dt> 180.1729 - <dd>When <span class="attr-value">type="table"</span>, the list of 180.1730 - <a><number></a> 180.1731 - s <em>v0,v1,...vn</em>, separated by white space and/or a comma, which 180.1732 - define the lookup table. An empty list results in an identity transfer 180.1733 - function. If the attribute is not specified, then the effect is as if 180.1734 - an empty list were provided.<br /> 180.1735 - <span class="anim-target">Animatable: yes.</span></dd> 180.1736 - <dt id="feComponentTransferSlopeAttribute"><span 180.1737 - class="adef">slope</span> = "<em><a><number></a></em>"</dt> 180.1738 - <dd>When <span class="attr-value">type="linear"</span>, the slope of the 180.1739 - linear function.<br /> 180.1740 - If the attribute is not specified, then the effect is as if a value of 180.1741 - <span class="attr-value">1</span> were specified.<br /> 180.1742 - <span class="anim-target">Animatable: yes.</span></dd> 180.1743 - <dt id="feComponentTransferInterceptAttribute"><span 180.1744 - class="adef">intercept</span> = "<em><a><number></a></em>"</dt> 180.1745 - <dd>When <span class="attr-value">type="linear"</span>, the intercept of 180.1746 - the linear function.<br /> 180.1747 - If the attribute is not specified, then the effect is as if a value of 180.1748 - <span class="attr-value">0</span> were specified.<br /> 180.1749 - <span class="anim-target">Animatable: yes.</span></dd> 180.1750 - <dt id="feComponentTransferAmplitudeAttribute"><span 180.1751 - class="adef">amplitude</span> = "<em><a><number></a></em>"</dt> 180.1752 - <dd>When <span class="attr-value">type="gamma"</span>, the amplitude of 180.1753 - the gamma function.<br /> 180.1754 - If the attribute is not specified, then the effect is as if a value of 180.1755 - <span class="attr-value">1</span> were specified.<br /> 180.1756 - <span class="anim-target">Animatable: yes.</span></dd> 180.1757 - <dt id="feComponentTransferExponentAttribute"><span 180.1758 - class="adef">exponent</span> = "<em><a><number></a></em>"</dt> 180.1759 - <dd>When <span class="attr-value">type="gamma"</span>, the exponent of 180.1760 - the gamma function.<br /> 180.1761 - If the attribute is not specified, then the effect is as if a value of 180.1762 - <span class="attr-value">1</span> were specified.<br /> 180.1763 - <span class="anim-target">Animatable: yes.</span></dd> 180.1764 - <dt id="feComponentTransferOffsetAttribute"><span 180.1765 - class="adef">offset</span> = "<em><a><number></a></em>"</dt> 180.1766 - <dd>When <span class="attr-value">type="gamma"</span>, the offset of the 180.1767 - gamma function.<br /> 180.1768 - If the attribute is not specified, then the effect is as if a value of 180.1769 - <span class="attr-value">0</span> were specified.<br /> 180.1770 - <span class="anim-target">Animatable: yes.</span></dd> 180.1771 -</dl> 180.1772 -</div> 180.1773 -</edit:with> 180.1774 - 180.1775 -<edit:example href="examples/feComponentTransfer.svg" image="yes" link="yes"/> 180.1776 - 180.1777 -<h2 id="feCompositeElement">Filter primitive <span class="element-name">'feComposite'</span></h2> 180.1778 - 180.1779 -<edit:elementsummary name='feComposite'/> 180.1780 - 180.1781 -<p>This filter performs the combination of the two input images pixel-wise in 180.1782 -image space using one of the Porter-Duff [<a 180.1783 -href="#ref-PORTERDUFF">PORTERDUFF</a>] compositing operations: <em>over, in, 180.1784 -atop, out, xor</em>. Additionally, a component-wise <em>arithmetic</em> 180.1785 -operation (with the result clamped between [0..1]) can be applied.</p> 180.1786 - 180.1787 -<p>The <em>arithmetic</em> operation is useful for combining the output from 180.1788 -the <a>'feDiffuseLighting'</a> and <a>'feSpecularLighting'</a> filters with texture 180.1789 -data. It is also useful for implementing <em>dissolve</em>. If the 180.1790 -<em>arithmetic</em> operation is chosen, each result pixel is computed using 180.1791 -the following formula:</p> 180.1792 -<pre>result = k1*i1*i2 + k2*i1 + k3*i2 + k4</pre> 180.1793 - 180.1794 -<p>For this filter primitive, the extent of the resulting image might grow as 180.1795 -described in the section that describes the <a 180.1796 -href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p> 180.1797 - 180.1798 -<div class="adef-list"> 180.1799 -<p><em>Attribute definitions:</em></p> 180.1800 -<dl> 180.1801 - <dt id="feCompositeOperatorAttribute"><span class="adef">operator</span> 180.1802 - = "<em>over | in | out | atop | xor | arithmetic</em>"</dt> 180.1803 - <dd>The compositing operation that is to be performed. All of the <span 180.1804 - class="attr-name">operator</span> types except <span 180.1805 - class="attr-value">arithmetic</span> match the correspond operation as 180.1806 - described in [<a href="#ref-PORTERDUFF">PORTERDUFF</a>]. The <span 180.1807 - class="attr-value">arithmetic</span> operator is described above.<br /> 180.1808 - <span class="anim-target">Animatable: yes.</span></dd> 180.1809 - <dt id="feCompositeK1Attribute"><span 180.1810 - class="adef">k1</span> = "<em><a><number></a></em>"</dt> 180.1811 - <dd>Only applicable if <span 180.1812 - class="attr-value">operator="arithmetic"</span>.<br /> 180.1813 - If the attribute is not specified, the effect is as if a value of "0" 180.1814 - were specified.<br /> 180.1815 - <span class="anim-target">Animatable: yes.</span></dd> 180.1816 - <dt id="feCompositeK2Attribute"><span 180.1817 - class="adef">k2</span> = "<em><a><number></a></em>"</dt> 180.1818 - <dd>Only applicable if <span 180.1819 - class="attr-value">operator="arithmetic"</span>.<br /> 180.1820 - If the attribute is not specified, the effect is as if a value of "0" 180.1821 - were specified.<br /> 180.1822 - <span class="anim-target">Animatable: yes.</span></dd> 180.1823 - <dt id="feCompositeK3Attribute"><span 180.1824 - class="adef">k3</span> = "<em><a><number></a></em>"</dt> 180.1825 - <dd>Only applicable if <span 180.1826 - class="attr-value">operator="arithmetic"</span>.<br /> 180.1827 - If the attribute is not specified, the effect is as if a value of "0" 180.1828 - were specified.<br /> 180.1829 - <span class="anim-target">Animatable: yes.</span></dd> 180.1830 - <dt id="feCompositeK4Attribute"><span 180.1831 - class="adef">k4</span> = "<em><a><number></a></em>"</dt> 180.1832 - <dd>Only applicable if <span 180.1833 - class="attr-value">operator="arithmetic"</span>.<br /> 180.1834 - If the attribute is not specified, the effect is as if a value of "0" 180.1835 - were specified.<br /> 180.1836 - <span class="anim-target">Animatable: yes.</span></dd> 180.1837 - <dt id="feCompositeIn2Attribute"> 180.1838 - <span class="adef">in2</span> = "<em>(see <a 180.1839 - href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> 180.1840 - attribute)</em>"</dt> 180.1841 - <dd>The second input image to the compositing operation. This attribute 180.1842 - can take on the same values as the <a 180.1843 - href="#FilterPrimitiveInAttribute"><span 180.1844 - class="attr-name">in</span></a> attribute.<br /> 180.1845 - <span class="anim-target">Animatable: yes.</span></dd> 180.1846 -</dl> 180.1847 -</div> 180.1848 - 180.1849 -<edit:example href="examples/feComposite.svg" image="yes" link="yes"/> 180.1850 - 180.1851 -<h2 id="feConvolveMatrixElement">Filter primitive <span class="element-name">'feConvolveMatrix'</span></h2> 180.1852 - 180.1853 -<edit:elementsummary name='feConvolveMatrix'/> 180.1854 -<edit:with element='feConvolveMatrix'> 180.1855 - 180.1856 -<p>feConvolveMatrix applies a matrix convolution filter effect. A convolution 180.1857 -combines pixels in the input image with neighboring pixels to produce a 180.1858 -resulting image. A wide variety of imaging operations can be achieved through 180.1859 -convolutions, including blurring, edge detection, sharpening, embossing and 180.1860 -beveling.</p> 180.1861 - 180.1862 -<p>A matrix convolution is based on an n-by-m matrix (the convolution kernel) 180.1863 -which describes how a given pixel value in the input image is combined with 180.1864 -its neighboring pixel values to produce a resulting pixel value. Each result 180.1865 -pixel is determined by applying the kernel matrix to the corresponding source 180.1866 -pixel and its neighboring pixels. The basic convolution formula which is 180.1867 -applied to each color value for a given pixel is:</p> 180.1868 - 180.1869 -<p class="filterformula">RESULT<sub>X,Y</sub> = ( <br /> 180.1870 -              SUM <sub>I=0 to [<a 180.1871 -href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-1]</sub> { <br /> 180.1872 -                SUM <sub>J=0 to [<a 180.1873 -href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-1]</sub> { <br /> 180.1874 -                  SOURCE <sub>X-<a>'targetX'</a>+J, Y-<a>'targetY'</a>+I</sub> * <a>'kernelMatrix'</a><sub><a 180.1875 -href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-J-1, <a 180.1876 -href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-I-1</sub> <br /> 180.1877 -                } <br /> 180.1878 -              } <br /> 180.1879 -            ) / <a>'divisor'</a> + <a>'bias'</a><br /> 180.1880 -</p> 180.1881 - 180.1882 -<div class="note-editor"> 180.1883 -ED: Consider making this into mathml</div> 180.1884 - 180.1885 -<p>where "orderX" and "orderY" represent the X and Y values for the <a>'order'</a> attribute, "targetX" represents the value 180.1886 -of the <a>'targetX'</a> attribute, "targetY" represents the 180.1887 -value of the <a>'targetY'</a> attribute, "kernelMatrix" represents the 180.1888 -value of the <a>'kernelMatrix'</a> attribute, "divisor" represents the 180.1889 -value of the <a>'divisor'</a> attribute, and "bias" represents the 180.1890 -value of the <a>'bias'</a> attribute.</p> 180.1891 - 180.1892 -<p>Note in the above formulas that the values in the kernel matrix are 180.1893 -applied such that the kernel matrix is rotated 180 degrees relative to the 180.1894 -source and destination images in order to match convolution theory as 180.1895 -described in many computer graphics textbooks.</p> 180.1896 - 180.1897 -<p>To illustrate, suppose you have a input image which is 5 pixels by 5 180.1898 -pixels, whose color values for one of the color channels are as follows:</p> 180.1899 -<pre> 0 20 40 235 235 180.1900 - 100 120 140 235 235 180.1901 - 200 220 240 235 235 180.1902 - 225 225 255 255 255 180.1903 - 225 225 255 255 255</pre> 180.1904 - 180.1905 -<div class="note-editor"> 180.1906 -ED: Consider making this into mathml</div> 180.1907 - 180.1908 -<p>and you define a 3-by-3 convolution kernel as follows:</p> 180.1909 -<pre> 1 2 3 180.1910 - 4 5 6 180.1911 - 7 8 9</pre> 180.1912 - 180.1913 -<div class="note-editor"> 180.1914 -ED: Consider making this into mathml</div> 180.1915 - 180.1916 -<p>Let's focus on the color value at the second row and second column of the 180.1917 -image (source pixel value is 120). Assuming the simplest case (where the 180.1918 -input image's pixel grid aligns perfectly with the kernel's pixel grid) and 180.1919 -assuming default values for attributes <a>'divisor'</a>, <a>'targetX'</a> and 180.1920 -<a>'targetY'</a>, then resulting color value will 180.1921 -be:</p> 180.1922 -<pre>(9* 0 + 8* 20 + 7* 40 + 180.1923 -6*100 + 5*120 + 4*140 + 180.1924 -3*200 + 2*220 + 1*240) / (9+8+7+6+5+4+3+2+1)</pre> 180.1925 - 180.1926 -<div class="note-editor"> 180.1927 -ED: Consider making this into mathml</div> 180.1928 - 180.1929 -<p>Because they operate on pixels, matrix convolutions are inherently 180.1930 -resolution-dependent. To make <a>'feConvolveMatrix'</a> produce resolution-independent 180.1931 -results, an explicit value should be provided for either the <a>'filter/filterRes'</a> attribute on the <a>'filter element'</a> element 180.1932 -and/or attribute <a>'kernelUnitLength'</a>.</p> 180.1933 - 180.1934 -<p><a>'kernelUnitLength'</a>, in combination with the other 180.1935 -attributes, defines an implicit pixel grid in the filter effects coordinate 180.1936 -system (i.e., the coordinate system established by the <a>'filter/primitiveUnits'</a> attribute). If the pixel grid 180.1937 -established by <a>'kernelUnitLength'</a> is not scaled to match the 180.1938 -pixel grid established by attribute <a>'filter/filterRes'</a> (implicitly or explicitly), then the 180.1939 -input image will be temporarily rescaled to match its pixels with <a>'kernelUnitLength'</a>. The convolution happens on the 180.1940 -resampled image. After applying the convolution, the image is resampled back 180.1941 -to the original resolution.</p> 180.1942 - 180.1943 -<p>When the image must be resampled to match the coordinate system defined by 180.1944 -<a>'kernelUnitLength'</a> prior to convolution, or 180.1945 -resampled to match the device coordinate system after convolution, it is 180.1946 -recommended that high quality viewers make use of appropriate interpolation 180.1947 -techniques, for example bilinear or bicubic. Depending on the speed of the 180.1948 -available interpolents, this choice may be affected by the <a>'image-rendering'</a> property setting. Note that 180.1949 -implementations might choose approaches that minimize or eliminate resampling 180.1950 -when not necessary to produce proper results, such as when the document is 180.1951 -zoomed out such that <a>'kernelUnitLength'</a> is 180.1952 -considerably smaller than a device pixel.</p> 180.1953 - 180.1954 -<div class="adef-list"> 180.1955 -<p><em>Attribute definitions:</em></p> 180.1956 -<dl> 180.1957 - <dt id="feConvolveMatrixElementOrderAttribute"><span 180.1958 - class="adef">order</span> = "<span 180.1959 - class="attr-value"><a><number-optional-number></a></span>"</dt> 180.1960 - <dd>Indicates the number of cells in each dimension for <a>'kernelMatrix'</a>. The values provided must be 180.1961 - <a><integer></a> 180.1962 - s greater than zero. The first number, <orderX>, indicates the 180.1963 - number of columns in the matrix. The second number, <orderY>, 180.1964 - indicates the number of rows in the matrix. If <orderY> is not 180.1965 - provided, it defaults to <orderX>.<br /> 180.1966 - A typical value is order="3". It is recommended that only small values 180.1967 - (e.g., 3) be used; higher values may result in very high CPU overhead 180.1968 - and usually do not produce results that justify the impact on 180.1969 - performance.<br /> 180.1970 - If the attribute is not specified, the effect is as if a value of "3" 180.1971 - were specified.<br /> 180.1972 - <span class="anim-target">Animatable: yes.</span></dd> 180.1973 - <dt id="feConvolveMatrixElementKernelMatrixAttribute"><span 180.1974 - class="adef">kernelMatrix</span> = "<span class="attr-value"><list of 180.1975 - numbers></span>"</dt> 180.1976 - <dd>The list of <a><number></a> 180.1977 - s that make up the kernel matrix for the convolution. Values are 180.1978 - separated by space characters and/or a comma. The number of entries in 180.1979 - the list must equal <orderX> times <orderY>.<br /> 180.1980 - <span class="anim-target">Animatable: yes.</span></dd> 180.1981 - <dt id="feConvolveMatrixElementDivisorAttribute"><span 180.1982 - class="adef">divisor</span> = "<span 180.1983 - class="attr-value"><a><number></a></span>"</dt> 180.1984 - <dd>After applying the <span class="attr-name">kernelMatrix</span> to the 180.1985 - input image to yield a number, that number is divided by <a>'divisor'</a> to yield the final destination color 180.1986 - value. A divisor that is the sum of all the matrix values tends to have 180.1987 - an evening effect on the overall color intensity of the result. If the 180.1988 - specified divisor is zero then the default value will be used instead. 180.1989 - The default value is the sum of all values in kernelMatrix, with the 180.1990 - exception that if the sum is zero, then the divisor is set to 1.<br /> 180.1991 - <span class="anim-target">Animatable: yes.</span></dd> 180.1992 - <dt id="feConvolveMatrixElementBiasAttribute"><span 180.1993 - class="adef">bias</span> = "<span 180.1994 - class="attr-value"><a><number></a></span>"</dt> 180.1995 - <dd>After applying the <span class="attr-name">kernelMatrix</span> to the 180.1996 - input image to yield a number and applying the <a>'divisor'</a>, the <a>'bias'</a> attribute is added to each component. One 180.1997 - application of <a>'bias'</a> is when it is 180.1998 - desirable to have <span class="attr-value">.5</span> gray value be the zero response of the filter. If 180.1999 - <a>'bias'</a> is not specified, then the effect 180.2000 - is as if a value of zero were specified.<br /> 180.2001 - <span class="anim-target">Animatable: yes.</span></dd> 180.2002 - <dt id="feConvolveMatrixElementTargetXAttribute"><span 180.2003 - class="adef">targetX</span> = "<span 180.2004 - class="attr-value"><a><integer></a></span>"</dt> 180.2005 - <dd>Determines the positioning in X of the convolution matrix relative to 180.2006 - a given target pixel in the input image. The leftmost column of the 180.2007 - matrix is column number zero. The value must be such that: 0 <= 180.2008 - targetX < orderX. By default, the convolution matrix is centered in 180.2009 - X over each pixel of the input image (i.e., targetX = floor ( orderX / 180.2010 - 2 )).<br /> 180.2011 - <span class="anim-target">Animatable: yes.</span></dd> 180.2012 - <dt id="feConvolveMatrixElementTargetYAttribute"><span 180.2013 - class="adef">targetY</span> = "<span 180.2014 - class="attr-value"><a><integer></a></span>"</dt> 180.2015 - <dd>Determines the positioning in Y of the convolution matrix relative to 180.2016 - a given target pixel in the input image. The topmost row of the matrix 180.2017 - is row number zero. The value must be such that: 0 <= targetY < 180.2018 - orderY. By default, the convolution matrix is centered in Y over each 180.2019 - pixel of the input image (i.e., targetY = floor ( orderY / 2 )).<br /> 180.2020 - <span class="anim-target">Animatable: yes.</span></dd> 180.2021 - <dt id="feConvolveMatrixElementEdgeModeAttribute"><span 180.2022 - class="adef">edgeMode</span> = "<span class="attr-value">duplicate | wrap | 180.2023 - none</span>"</dt> 180.2024 - <dd><p>Determines how to extend the input image as necessary with color 180.2025 - values so that the matrix operations can be applied when the kernel is 180.2026 - positioned at or near the edge of the input image.</p> 180.2027 - <p>"duplicate" indicates that the input image is extended along each of 180.2028 - its borders as necessary by duplicating the color values at the given 180.2029 - edge of the input image.</p> 180.2030 - <pre>Original N-by-M image, where m=M-1 and n=N-1: 180.2031 - 11 12 ... 1m 1M 180.2032 - 21 22 ... 2m 2M 180.2033 - .. .. ... .. .. 180.2034 - n1 n2 ... nm nM 180.2035 - N1 N2 ... Nm NM 180.2036 -Extended by two pixels using "duplicate": 180.2037 - 11 11 11 12 ... 1m 1M 1M 1M 180.2038 - 11 11 11 12 ... 1m 1M 1M 1M 180.2039 - 11 11 11 12 ... 1m 1M 1M 1M 180.2040 - 21 21 21 22 ... 2m 2M 2M 2M 180.2041 - .. .. .. .. ... .. .. .. .. 180.2042 - n1 n1 n1 n2 ... nm nM nM nM 180.2043 - N1 N1 N1 N2 ... Nm NM NM NM 180.2044 - N1 N1 N1 N2 ... Nm NM NM NM 180.2045 - N1 N1 N1 N2 ... Nm NM NM NM</pre> 180.2046 - 180.2047 - <div class="note-editor"> 180.2048 - ED: Consider making this into mathml</div> 180.2049 - <p>"wrap" indicates that the input image is extended by taking the 180.2050 - color values from the opposite edge of the image.</p> 180.2051 - <pre>Extended by two pixels using "wrap": 180.2052 - nm nM n1 n2 ... nm nM n1 n2 180.2053 - Nm NM N1 N2 ... Nm NM N1 N2 180.2054 - 1m 1M 11 12 ... 1m 1M 11 12 180.2055 - 2m 2M 21 22 ... 2m 2M 21 22 180.2056 - .. .. .. .. ... .. .. .. .. 180.2057 - nm nM n1 n2 ... nm nM n1 n2 180.2058 - Nm NM N1 N2 ... Nm NM N1 N2 180.2059 - 1m 1M 11 12 ... 1m 1M 11 12 180.2060 - 2m 2M 21 22 ... 2m 2M 21 22</pre> 180.2061 - 180.2062 - <div class="note-editor"> 180.2063 - ED: Consider making this into mathml</div> 180.2064 - <p>"none" indicates that the input image is extended with pixel values 180.2065 - of zero for R, G, B and A.</p> 180.2066 - <p><span class="anim-target">Animatable: yes.</span></p> 180.2067 - </dd> 180.2068 - <dt id="feConvolveMatrixElementKernelUnitLengthAttribute"><span 180.2069 - class="adef">kernelUnitLength</span> = "<span 180.2070 - class="attr-value"><a><number-optional-number></a></span>"</dt> 180.2071 - <dd>The first number is the <dx> value. The second number is the 180.2072 - <dy> value. If the <dy> value is not specified, it defaults 180.2073 - to the same value as <dx>. Indicates the intended distance in 180.2074 - current filter units (i.e., units as determined by the value of 180.2075 - attribute <a>'filter/primitiveUnits'</a>) between successive columns 180.2076 - and rows, respectively, in the <a>'kernelMatrix'</a>. By specifying value(s) for 180.2077 - <a>'kernelUnitLength'</a>, the kernel becomes defined 180.2078 - in a scalable, abstract coordinate system. If <a>'kernelUnitLength'</a> is not specified, the default 180.2079 - value is one pixel in the offscreen bitmap, which is a pixel-based 180.2080 - coordinate system, and thus potentially not scalable. For some level of 180.2081 - consistency across display media and user agents, it is necessary that 180.2082 - a value be provided for at least one of <a>'filter/filterRes'</a> and <a>'kernelUnitLength'</a>. 180.2083 - In some implementations, the most consistent results and the fastest performance will be achieved if 180.2084 - the pixel grid of the temporary offscreen images aligns with the pixel 180.2085 - grid of the kernel.<br /> 180.2086 - If a negative or zero value is specified the default value will be used 180.2087 - instead. <br /> 180.2088 - <span class="anim-target">Animatable: yes.</span></dd> 180.2089 - <dt id="feConvolveMatrixElementPreserveAlphaAttribute"><span 180.2090 - class="adef">preserveAlpha</span> = "<span class="attr-value">false | 180.2091 - true</span>"</dt> 180.2092 - <dd>A value of <span class="attr-value">false</span> indicates that the 180.2093 - convolution will apply to all channels, including the alpha channel.<br 180.2094 - /> 180.2095 - A value of <span class="attr-value">true</span> indicates that the 180.2096 - convolution will only apply to the color channels. In this case, the 180.2097 - filter will temporarily unpremultiply the color component values, apply 180.2098 - the kernel, and then re-premultiply at the end.<br /> 180.2099 - If <a>'preserveAlpha'</a> is not specified, then 180.2100 - the effect is as if a value of <span class="attr-value">false</span> 180.2101 - were specified.<br /> 180.2102 - <span class="anim-target">Animatable: yes.</span></dd> 180.2103 -</dl> 180.2104 -</div> 180.2105 - 180.2106 -</edit:with> 180.2107 - 180.2108 -<h2 id="feDiffuseLightingElement">Filter primitive <span 180.2109 -class="element-name">'feDiffuseLighting'</span></h2> 180.2110 - 180.2111 -<edit:elementsummary name='feDiffuseLighting'/> 180.2112 - 180.2113 -<p>This filter primitive lights an image using the alpha channel as a bump 180.2114 -map. The resulting image is an RGBA opaque image based on the light color 180.2115 -with alpha = 1.0 everywhere. The lighting calculation follows the standard 180.2116 -diffuse component of the Phong lighting model. The resulting image depends on 180.2117 -the light color, light position and surface geometry of the input bump 180.2118 -map.</p> 180.2119 - 180.2120 -<p>The light map produced by this filter primitive can be combined with a 180.2121 -texture image using the multiply term of the <em>arithmetic</em> <a>'feComposite'</a> compositing method. Multiple 180.2122 -light sources can be simulated by adding several of these light maps together 180.2123 -before applying it to the texture image.</p> 180.2124 - 180.2125 -<p>The formulas below make use of 3x3 filters. Because they operate on 180.2126 -pixels, such filters are inherently resolution-dependent. To make <a>'feDiffuseLighting'</a> produce 180.2127 -resolution-independent results, an explicit value should be provided for 180.2128 -either the <a>'filter/filterRes'</a> attribute on the <a>'filter element'</a> element 180.2129 -and/or attribute <a>'feDiffuseLighting/kernelUnitLength'</a>.</p> 180.2130 - 180.2131 -<p><a>'feDiffuseLighting/kernelUnitLength'</a>, in combination with the other 180.2132 -attributes, defines an implicit pixel grid in the filter effects coordinate 180.2133 -system (i.e., the coordinate system established by the <a>'filter/primitiveUnits'</a> attribute). If the pixel grid 180.2134 -established by <a>'feDiffuseLighting/kernelUnitLength'</a> is not scaled to match the 180.2135 -pixel grid established by attribute <a>'filter/filterRes'</a> (implicitly or explicitly), then the 180.2136 -input image will be temporarily rescaled to match its pixels with <a>'feDiffuseLighting/kernelUnitLength'</a>. The 3x3 filters are applied to the resampled image. After applying the filter, the image is resampled back 180.2137 -to its original resolution.</p> 180.2138 - 180.2139 -<p><span class="requirement" id="assert_diffuseLightingImageResampling">When the image must be resampled, it is recommended that high quality viewers make use of appropriate interpolation techniques, for example 180.2140 -bilinear or bicubic.</span> Depending on the speed of the available interpolents, 180.2141 -this choice may be affected by the <a>'image-rendering'</a> property setting. Note that 180.2142 -implementations might choose approaches that minimize or eliminate resampling 180.2143 -when not necessary to produce proper results, such as when the document is 180.2144 -zoomed out such that <a>'feDiffuseLighting/kernelUnitLength'</a> is 180.2145 -considerably smaller than a device pixel.</p> 180.2146 - 180.2147 -<p>For the formulas that follow, the 180.2148 -<code>Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>)</code> function is 180.2149 -defined as:</p> 180.2150 - 180.2151 -<div class="note-editor"> 180.2152 -ED: Consider making the following in mathml</div> 180.2153 - 180.2154 -<p class="filterformula">Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>) = 180.2155 -sqrt(A<sub>x</sub>^2+A<sub>y</sub>^2+A<sub>z</sub>^2)</p> 180.2156 - 180.2157 -<p>The resulting RGBA image is computed as follows:</p> 180.2158 - 180.2159 -<p class="filterformula">D<sub>r</sub> = k<sub>d</sub> * N.L * 180.2160 -L<sub>r</sub><br /> 180.2161 -D<sub>g</sub> = k<sub>d</sub> * N.L * L<sub>g</sub><br /> 180.2162 -D<sub>b</sub> = k<sub>d</sub> * N.L * L<sub>b</sub><br /> 180.2163 -D<sub>a</sub> = 1.0</p> 180.2164 - 180.2165 -<p>where</p> 180.2166 -<dl> 180.2167 - <dd>k<sub>d</sub> = diffuse lighting constant<br /> 180.2168 - N = surface normal unit vector, a function of x and y<br /> 180.2169 - L = unit vector pointing from surface to light, a function of x and y 180.2170 - in the point and spot light cases<br /> 180.2171 - L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light, a 180.2172 - function of x and y in the spot light case</dd> 180.2173 -</dl> 180.2174 - 180.2175 -<p>N is a function of x and y and depends on the surface gradient as 180.2176 -follows:</p> 180.2177 - 180.2178 -<p>The surface described by the input alpha image A<sub>in</sub>(x,y) is:</p> 180.2179 - 180.2180 -<p class="filterformula">Z (x,y) = surfaceScale * A<sub>in</sub>(x,y)</p> 180.2181 - 180.2182 -<p id="SurfaceNormalCalculations">Surface normal is calculated using the Sobel gradient 3x3 filter. 180.2183 -Different filter kernels are used depending on whether the given pixel is on 180.2184 -the interior or an edge. For each case, the formula is:</p> 180.2185 - 180.2186 -<p class="filterformula">N<sub>x</sub> (x,y)= - surfaceScale * 180.2187 -FACTOR<sub>x</sub> *<br /> 180.2188 -           (K <sub>x</sub>(0,0)*I(x-dx,y-dy) + 180.2189 -K<sub>x</sub>(1,0)*I(x,y-dy) + K<sub>x</sub>(2,0)*I(x+dx,y-dy) +<br /> 180.2190 -            K <sub>x</sub>(0,1)*I(x-dx,y)   + 180.2191 -K<sub>x</sub>(1,1)*I(x,y)   + K<sub>x</sub>(2,1)*I(x+dx,y)   +<br /> 180.2192 -            K <sub>x</sub>(0,2)*I(x-dx,y+dy) + 180.2193 -K<sub>x</sub>(1,2)*I(x,y+dy) + K<sub>x</sub>(2,2)*I(x+dx,y+dy))<br /> 180.2194 -N<sub>y</sub> (x,y)= - surfaceScale * FACTOR<sub>y</sub> *<br /> 180.2195 -           (K <sub>y</sub>(0,0)*I(x-dx,y-dy) + 180.2196 -K<sub>y</sub>(1,0)*I(x,y-dy) + K<sub>y</sub>(2,0)*I(x+dx,y-dy) +<br /> 180.2197 -            K <sub>y</sub>(0,1)*I(x-dx,y)   + 180.2198 -K<sub>y</sub>(1,1)*I(x,y)   + K<sub>y</sub>(2,1)*I(x+dx,y)   +<br /> 180.2199 -            K <sub>y</sub>(0,2)*I(x-dx,y+dy) + 180.2200 -K<sub>y</sub>(1,2)*I(x,y+dy) + K<sub>y</sub>(2,2)*I(x+dx,y+dy))<br /> 180.2201 -N<sub>z</sub> (x,y) = 1.0<br /> 180.2202 -<br /> 180.2203 -N = (N<sub>x</sub>, N<sub>y</sub>, N<sub>z</sub>) / 180.2204 -Norm((N<sub>x</sub>,N<sub>y</sub>,N<sub>z</sub>))</p> 180.2205 - 180.2206 -<p>In these formulas, the <code>dx</code> and <code>dy</code> values (e.g., 180.2207 -<code>I(x-dx,y-dy)</code>), represent deltas relative to a given 180.2208 -<code>(x,y)</code> position for the purpose of estimating the slope of the 180.2209 -surface at that point. These deltas are determined by the value (explicit or 180.2210 -implicit) of attribute <a>'feDiffuseLighting/kernelUnitLength'</a>.</p> 180.2211 - 180.2212 -<table summary="feDiffuseLighting formulas" border="1"> 180.2213 - <colgroup><col width="33.3%" /><col width="33.3%" /><col width="*" 180.2214 - /></colgroup> 180.2215 - <tbody> 180.2216 - <tr> 180.2217 - <td><p>Top/left corner:</p> 180.2218 - 180.2219 - <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br /> 180.2220 - K<sub>x</sub> =<br /> 180.2221 -     |  0  0  0 |<br /> 180.2222 -     |  0 -2  2 |<br /> 180.2223 -     |  0 -1  1 |<br /> 180.2224 - <br /> 180.2225 - FACTOR<sub>y</sub>=2/(3*dy)<br /> 180.2226 - K<sub>y</sub> =  <br /> 180.2227 -     |  0  0  0 |<br /> 180.2228 -     |  0 -2 -1 |<br /> 180.2229 -     |  0  2  1 |</p> 180.2230 - </td> 180.2231 - <td><p>Top row:</p> 180.2232 - 180.2233 - <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br /> 180.2234 - K<sub>x</sub> =<br /> 180.2235 -     |  0  0  0 |<br /> 180.2236 -     | -2  0  2 |<br /> 180.2237 -     | -1  0  1 |<br /> 180.2238 - <br /> 180.2239 - FACTOR<sub>y</sub>=1/(2*dy)<br /> 180.2240 - K<sub>y</sub> =  <br /> 180.2241 -     |  0  0  0 |<br /> 180.2242 -     | -1 -2 -1 |<br /> 180.2243 -     |  1  2  1 |</p> 180.2244 - </td> 180.2245 - <td><p>Top/right corner:</p> 180.2246 - 180.2247 - <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br /> 180.2248 - K<sub>x</sub> =<br /> 180.2249 -     |  0  0  0 |<br /> 180.2250 -     | -2  2  0 |<br /> 180.2251 -     | -1  1  0 |<br /> 180.2252 - <br /> 180.2253 - FACTOR<sub>y</sub>=2/(3*dy)<br /> 180.2254 - K<sub>y</sub> =  <br /> 180.2255 -     |  0  0  0 |<br /> 180.2256 -     | -1 -2  0 |<br /> 180.2257 -     |  1  2  0 |</p> 180.2258 - </td> 180.2259 - </tr> 180.2260 - <tr> 180.2261 - <td><p>Left column:</p> 180.2262 - 180.2263 - <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br /> 180.2264 - K<sub>x</sub> =<br /> 180.2265 -     | 0 -1  1 |<br /> 180.2266 -     | 0 -2  2 |<br /> 180.2267 -     | 0 -1  1 |<br /> 180.2268 - <br /> 180.2269 - FACTOR<sub>y</sub>=1/(3*dy)<br /> 180.2270 - K<sub>y</sub> =  <br /> 180.2271 -     |  0 -2 -1 |<br /> 180.2272 -     |  0  0  0 |<br /> 180.2273 -     |  0  2  1 |</p> 180.2274 - </td> 180.2275 - <td><p>Interior pixels:</p> 180.2276 - 180.2277 - <p class="filterformula">FACTOR<sub>x</sub>=1/(4*dx)<br /> 180.2278 - K<sub>x</sub> =<br /> 180.2279 -     | -1  0  1 |<br /> 180.2280 -     | -2  0  2 |<br /> 180.2281 -     | -1  0  1 |<br /> 180.2282 - <br /> 180.2283 - FACTOR<sub>y</sub>=1/(4*dy)<br /> 180.2284 - K<sub>y</sub> =  <br /> 180.2285 -     | -1 -2 -1 |<br /> 180.2286 -     |  0  0  0 |<br /> 180.2287 -     |  1  2  1 |</p> 180.2288 - </td> 180.2289 - <td><p>Right column:</p> 180.2290 - 180.2291 - <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br /> 180.2292 - K<sub>x</sub> =<br /> 180.2293 -     | -1  1  0|<br /> 180.2294 -     | -2  2  0|<br /> 180.2295 -     | -1  1  0|<br /> 180.2296 - <br /> 180.2297 - FACTOR<sub>y</sub>=1/(3*dy)<br /> 180.2298 - K<sub>y</sub> =  <br /> 180.2299 -     | -1 -2  0 |<br /> 180.2300 -     |  0  0  0 |<br /> 180.2301 -     |  1  2  0 |</p> 180.2302 - </td> 180.2303 - </tr> 180.2304 - <tr> 180.2305 - <td><p>Bottom/left corner:</p> 180.2306 - 180.2307 - <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br /> 180.2308 - K<sub>x</sub> =<br /> 180.2309 -     | 0 -1  1 |<br /> 180.2310 -     | 0 -2  2 |<br /> 180.2311 -     | 0  0  0 |<br /> 180.2312 - <br /> 180.2313 - FACTOR<sub>y</sub>=2/(3*dy)<br /> 180.2314 - K<sub>y</sub> =  <br /> 180.2315 -     |  0 -2 -1 |<br /> 180.2316 -     |  0  2  1 |<br /> 180.2317 -     |  0  0  0 |</p> 180.2318 - </td> 180.2319 - <td><p>Bottom row:</p> 180.2320 - 180.2321 - <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br /> 180.2322 - K<sub>x</sub> =<br /> 180.2323 -     | -1  0  1 |<br /> 180.2324 -     | -2  0  2 |<br /> 180.2325 -     |  0  0  0 |<br /> 180.2326 - <br /> 180.2327 - FACTOR<sub>y</sub>=1/(2*dy)<br /> 180.2328 - K<sub>y</sub> =  <br /> 180.2329 -     | -1 -2 -1 |<br /> 180.2330 -     |  1  2  1 |<br /> 180.2331 -     |  0  0  0 |</p> 180.2332 - </td> 180.2333 - <td><p>Bottom/right corner:</p> 180.2334 - 180.2335 - <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br /> 180.2336 - K<sub>x</sub> =<br /> 180.2337 -     | -1  1  0 |<br /> 180.2338 -     | -2  2  0 |<br /> 180.2339 -     |  0  0  0 |<br /> 180.2340 - <br /> 180.2341 - FACTOR<sub>y</sub>=2/(3*dy)<br /> 180.2342 - K<sub>y</sub> =  <br /> 180.2343 -     | -1 -2  0 |<br /> 180.2344 -     |  1  2  0 |<br /> 180.2345 -     |  0  0  0 |</p> 180.2346 - </td> 180.2347 - </tr> 180.2348 - </tbody> 180.2349 -</table> 180.2350 - 180.2351 -<p>L, the unit vector from the image sample to the light, is calculated as 180.2352 -follows:</p> 180.2353 - 180.2354 -<p>For Infinite light sources it is constant:</p> 180.2355 - 180.2356 -<p class="filterformula">L<sub>x</sub> = cos(azimuth)*cos(elevation)<br /> 180.2357 -L<sub>y</sub> = sin(azimuth)*cos(elevation)<br /> 180.2358 -L<sub>z</sub> = sin(elevation)</p> 180.2359 - 180.2360 -<p>For Point and spot lights it is a function of position:</p> 180.2361 - 180.2362 -<p class="filterformula">L<sub>x</sub> = Light<sub>x</sub> - x<br /> 180.2363 -L<sub>y</sub> = Light<sub>y</sub> - y<br /> 180.2364 -L<sub>z</sub> = Light<sub>z</sub> - Z(x,y)<br /> 180.2365 -<br /> 180.2366 -L = (L<sub>x</sub>, L<sub>y</sub>, L<sub>z</sub>) / Norm(L<sub>x</sub>, 180.2367 -L<sub>y</sub>, L<sub>z</sub>)</p> 180.2368 - 180.2369 -<p>where Light<sub>x</sub>, Light<sub>y</sub>, and Light<sub>z</sub> are the 180.2370 -input light position.</p> 180.2371 - 180.2372 -<p>L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub>, the light color vector, is a 180.2373 -function of position in the spot light case only:</p> 180.2374 - 180.2375 -<p class="filterformula">L<sub>r</sub> = 180.2376 -Light<sub>r</sub>*pow((-L.S),specularExponent)<br /> 180.2377 -L<sub>g</sub> = Light<sub>g</sub>*pow((-L.S),specularExponent)<br /> 180.2378 -L<sub>b</sub> = Light<sub>b</sub>*pow((-L.S),specularExponent)</p> 180.2379 - 180.2380 -<p>where S is the unit vector pointing from the light to the point 180.2381 -(pointsAtX, pointsAtY, pointsAtZ) in the x-y plane:</p> 180.2382 - 180.2383 -<p class="filterformula">S<sub>x</sub> = pointsAtX - Light<sub>x</sub><br /> 180.2384 -S<sub>y</sub> = pointsAtY - Light<sub>y</sub><br /> 180.2385 -S<sub>z</sub> = pointsAtZ - Light<sub>z</sub><br /> 180.2386 -<br /> 180.2387 -S = (S<sub>x</sub>, S<sub>y</sub>, S<sub>z</sub>) / Norm(S<sub>x</sub>, 180.2388 -S<sub>y</sub>, S<sub>z</sub>)</p> 180.2389 - 180.2390 -<p>If L.S is positive, no light is present. (L<sub>r</sub> = L<sub>g</sub> = 180.2391 -L<sub>b</sub> = 0). If <a>'feSpotLight/limitingConeAngle'</a> is specified, -L.S < cos(limitingConeAngle) also indicates that no light is present.</p> 180.2392 - 180.2393 -<div class="adef-list"> 180.2394 -<p><em>Attribute definitions:</em></p> 180.2395 -<dl> 180.2396 - <dt id="feDiffuseLightingSurfaceScaleAttribute"><span 180.2397 - class="adef">surfaceScale</span> = "<em><a><number></a></em>"</dt> 180.2398 - <dd>height of surface when A<sub>in</sub> = 1.<br /> 180.2399 - If the attribute is not specified, then the effect is as if a value of 180.2400 - <span class="attr-value">1</span> were specified.<br /> 180.2401 - <span class="anim-target">Animatable: yes.</span></dd> 180.2402 - <dt id="feDiffuseLightingDiffuseConstantAttribute"><span 180.2403 - class="adef">diffuseConstant</span> = "<em><a><number></a></em>"</dt> 180.2404 - <dd>kd in Phong lighting model. In SVG, this can be any non-negative 180.2405 - number.<br /> 180.2406 - If the attribute is not specified, then the effect is as if a value of 180.2407 - <span class="attr-value">1</span> were specified.<br /> 180.2408 - <span class="anim-target">Animatable: yes.</span></dd> 180.2409 - <dt id="feDiffuseLightingKernelUnitLengthAttribute"><span 180.2410 - class="adef">kernelUnitLength</span> = "<span 180.2411 - class="attr-value"><a><number-optional-number></a></span>"</dt> 180.2412 - <dd>The first number is the <dx> value. The second number is the 180.2413 - <dy> value. If the <dy> value is not specified, it defaults 180.2414 - to the same value as <dx>. Indicates the intended distance in 180.2415 - current filter units (i.e., units as determined by the value of 180.2416 - attribute <a>'filter/primitiveUnits'</a>) for <code>dx</code> and 180.2417 - <code>dy</code>, respectively, in the <a 180.2418 - href="#SurfaceNormalCalculations">surface normal calculation 180.2419 - formulas</a>. By specifying value(s) for <span 180.2420 - class="attr-name">kernelUnitLength</span>, the kernel becomes defined 180.2421 - in a scalable, abstract coordinate system. If <span 180.2422 - class="attr-name">kernelUnitLength</span> is not specified, the 180.2423 - <code>dx</code> and <code>dy</code> values should represent very small 180.2424 - deltas relative to a given <code>(x,y)</code> position, which might be 180.2425 - implemented in some cases as one pixel in the intermediate image 180.2426 - offscreen bitmap, which is a pixel-based coordinate system, and thus 180.2427 - potentially not scalable. For some level of consistency across display 180.2428 - media and user agents, it is necessary that a value be provided for at 180.2429 - least one of <a>'filter/filterRes'</a> and <span 180.2430 - class="attr-name">kernelUnitLength</span>. Discussion of intermediate 180.2431 - images are in the <a href="#Introduction">Introduction</a> and in the 180.2432 - description of attribute <a>'filter/filterRes'</a>.<br /> 180.2433 - If a negative or zero value is specified the default value will be used 180.2434 - instead. <br /> 180.2435 - <span class="anim-target">Animatable: yes.</span></dd> 180.2436 -</dl> 180.2437 -</div> 180.2438 - 180.2439 -<p>The light source is defined by one of the child elements <a>'feDistantLight'</a>, 180.2440 -<a>'fePointLight'</a> or <a>'feSpotLight'</a>. The light color is specified 180.2441 -by property <a>'lighting-color'</a>.</p> 180.2442 - 180.2443 -<h2 id="feDisplacementMapElement">Filter primitive <span class="element-name">'feDisplacementMap'</span></h2> 180.2444 - 180.2445 -<edit:elementsummary name='feDisplacementMap'/> 180.2446 - 180.2447 -<p>This filter primitive uses the pixels values from the image from <a>'feDisplacementMap/in2'</a> 180.2448 -to spatially displace the image from <a>'in'</a>. 180.2449 -This is the transformation to be performed:</p> 180.2450 - 180.2451 -<pre> P'(x,y) ↠P( x + scale * (XC(x,y) - .5), y + scale * (YC(x,y) - .5)) 180.2452 - </pre> 180.2453 - 180.2454 -<p>where P(x,y) is the input image, <a>'in'</a>, and 180.2455 -P'(x,y) is the destination. XC(x,y) and YC(x,y) are the component values of 180.2456 -the channel designated by the <a>'feDisplacementMap/xChannelSelector'</a> and 180.2457 -<a>'feDisplacementMap/yChannelSelector'</a>. For example, to use the R component of <a>'feDisplacementMap/in2'</a> 180.2458 -to control displacement in x and the G component of Image2 to control 180.2459 -displacement in y, set <a>'feDisplacementMap/xChannelSelector'</a> to <span class="attr-value">"R"</span> and 180.2460 -<a>'feDisplacementMap/yChannelSelector'</a> to <span class="attr-value">"G"</span>.</p> 180.2461 - 180.2462 -<p>The displacement map, <a>'feDisplacementMap/in2'</a>, defines the inverse of the mapping 180.2463 -performed.</p> 180.2464 - 180.2465 -<p>The input image in is to remain premultiplied for this filter primitive. The calculations using the pixel values from <a>'feDisplacementMap/in2'</a> are performed using non-premultiplied color values. If the image from <a>'feDisplacementMap/in2'</a> consists of premultiplied color values, those values are automatically converted into non-premultiplied color values before performing this operation.</p> 180.2466 - 180.2467 -<p>This filter can have arbitrary non-localized effect on the input which 180.2468 -might require substantial buffering in the processing pipeline. However with 180.2469 -this formulation, any intermediate buffering needs can be determined by 180.2470 -<a>'feDisplacementMap/scale'</a> which represents the maximum range of displacement in either x 180.2471 -or y.</p> 180.2472 - 180.2473 -<p>When applying this filter, the source pixel location will often lie 180.2474 -between several source pixels. In this case it is recommended that high 180.2475 -quality viewers apply an interpolent on the surrounding pixels, for example 180.2476 -bilinear or bicubic, rather than simply selecting the nearest source pixel. 180.2477 -Depending on the speed of the available interpolents, this choice may be 180.2478 -affected by the <a>'image-rendering'</a> property 180.2479 -setting.</p> 180.2480 - 180.2481 -<p>The <a>'color-interpolation-filters'</a> property only applies to the 180.2482 - <a>'feDisplacementMap/in2'</a> source image and does not apply to the <a>'in'</a> source image. 180.2483 - The <a>'in'</a> source image must remain in its current color space. 180.2484 -</p> 180.2485 - 180.2486 -<div class="adef-list"> 180.2487 -<p><em>Attribute definitions:</em></p> 180.2488 -<dl> 180.2489 - <dt id="feDisplacementMapScaleAttribute"><span class="adef">scale</span> 180.2490 - = "<em><a><number></a></em>"</dt> 180.2491 - <dd>Displacement scale factor. The amount is expressed in the coordinate 180.2492 - system established by attribute <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 180.2493 - element.<br /> 180.2494 - When the value of this attribute is <span class="attr-value">0</span>, 180.2495 - this operation has no effect on the source image.<br /> 180.2496 - <p>The <a>lacuna value</a> for <a>'feDisplacementMap/scale'</a> is <span class="attr-value">0</span>.</p> 180.2497 - <span class="anim-target">Animatable: yes.</span></dd> 180.2498 - <dt id="feDisplacementMapXChannelSelectorAttribute"><span 180.2499 - class="adef">xChannelSelector</span> = "<em>R | G | B | A</em>"</dt> 180.2500 - <dd>Indicates which channel from <a>'feDisplacementMap/in2'</a> to use to displace the pixels in <a>'in'</a> along the x-axis. 180.2501 - The <a>lacuna value</a> for <a>'xChannelSelector'</a> is <span class="attr-value">A</span>. 180.2502 - <br /> 180.2503 - <span class="anim-target">Animatable: yes.</span></dd> 180.2504 - <dt id="feDisplacementMapYChannelSelectorAttribute"><span 180.2505 - class="adef">yChannelSelector</span> = "<em>R | G | B | A</em>"</dt> 180.2506 - <dd>Indicates which channel from <a>'feDisplacementMap/in2'</a> to use to displace the pixels in <a>'in'</a> along the y-axis. 180.2507 - The <a>lacuna value</a> for <a>'yChannelSelector'</a> is <span class="attr-value">A</span>. 180.2508 - <br /> 180.2509 - <span class="anim-target">Animatable: yes.</span></dd> 180.2510 - <dt id="feDisplacementMapIn2Attribute"><span class="adef">in2</span> = 180.2511 - "<em>(see <a>'in'</a> attribute)</em>"</dt> 180.2512 - <dd>The second input image, which is used to displace the pixels in the 180.2513 - image from attribute <a>'in'</a>. This attribute can take on the same 180.2514 - values as the <a>'in'</a> attribute.<br /> 180.2515 - <span class="anim-target">Animatable: yes.</span></dd> 180.2516 -</dl> 180.2517 -</div> 180.2518 - 180.2519 -<h2 id="feFloodElement">Filter primitive <span 180.2520 -class="element-name">'feFlood'</span></h2> 180.2521 - 180.2522 -<edit:elementsummary name='feFlood'/> 180.2523 - 180.2524 -<p>This filter primitive creates a rectangle filled with the color and 180.2525 -opacity values from properties <span class="prop-name">'flood-color'</span> 180.2526 -and <span class="prop-name">'flood-opacity'</span>. The rectangle is as large 180.2527 -as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> 180.2528 -established by the <span class="element-name">'feFlood'</span> element.</p> 180.2529 - 180.2530 -<div class="adef-list"> 180.2531 - </div> 180.2532 - 180.2533 -<p>The <span class="prop-name">'flood-color'</span> property indicates what 180.2534 -color to use to flood the current <a href="#FilterPrimitiveSubRegion">filter 180.2535 -primitive subregion</a>. The keyword <span 180.2536 -class="attr-value">currentColor</span> and ICC colors can be specified in the 180.2537 -same manner as within a <paint> specification for the <span 180.2538 -class="prop-name">'fill'</span> and <span class="prop-name">'stroke'</span> 180.2539 -properties.</p> 180.2540 - 180.2541 -<div class="propdef"> 180.2542 -<dl> 180.2543 - <dt id="FloodColorProperty"><span class="propdef-title prop-name">'flood-color'</span></dt> 180.2544 - <dd> 180.2545 - <table summary="flood-color property" class="propinfo" cellspacing="0" 180.2546 - cellpadding="0"> 180.2547 - <tbody> 180.2548 - <tr valign="baseline"> 180.2549 - <td><em>Value:</em>  </td> 180.2550 - <td>currentColor |<br /> 180.2551 - <a><color></a> 180.2552 - [<a><icccolor></a>] |<br /> 180.2553 - <a class="noxref" 180.2554 - href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span 180.2555 - class="value-inst-inherit noxref">inherit</span></a></td> 180.2556 - </tr> 180.2557 - <tr valign="baseline"> 180.2558 - <td><em>Initial:</em>  </td> 180.2559 - <td>black</td> 180.2560 - </tr> 180.2561 - <tr valign="baseline"> 180.2562 - <td><em>Applies to:</em>  </td> 180.2563 - <td><a href="#feFloodElement"><span 180.2564 - class="element-name">'feFlood'</span></a> and <a 180.2565 - href="#feDropShadowElement"><span 180.2566 - class="element-name">'feDropShadow'</span></a> elements</td> 180.2567 - </tr> 180.2568 - <tr valign="baseline"> 180.2569 - <td><em>Inherited:</em>  </td> 180.2570 - <td>no</td> 180.2571 - </tr> 180.2572 - <tr valign="baseline"> 180.2573 - <td><em>Percentages:</em>  </td> 180.2574 - <td>N/A</td> 180.2575 - </tr> 180.2576 - <tr valign="baseline"> 180.2577 - <td><em>Media:</em>  </td> 180.2578 - <td>visual</td> 180.2579 - </tr> 180.2580 - <tr valign="baseline"> 180.2581 - <td><em>Animatable:</em>  </td> 180.2582 - <td>yes</td> 180.2583 - </tr> 180.2584 - </tbody> 180.2585 - </table> 180.2586 - </dd> 180.2587 -</dl> 180.2588 -</div> 180.2589 - 180.2590 -<p>The <span class="prop-name">'flood-opacity'</span> property defines the 180.2591 -opacity value to use across the entire <a 180.2592 -href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p> 180.2593 - 180.2594 -<div class="propdef"> 180.2595 -<dl> 180.2596 - <dt id="OpacityFloodOpacityProperty"><span class="propdef-title prop-name">'flood-opacity'</span></dt> 180.2597 - <dd> 180.2598 - <table summary="flood-opacity property" class="propinfo" 180.2599 - cellspacing="0" cellpadding="0"> 180.2600 - <tbody> 180.2601 - <tr valign="baseline"> 180.2602 - <td><em>Value:</em>  </td> 180.2603 - <td><opacity-value> | <a class="noxref" 180.2604 - href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span 180.2605 - class="value-inst-inherit noxref">inherit</span></a></td> 180.2606 - </tr> 180.2607 - <tr valign="baseline"> 180.2608 - <td><em>Initial:</em>  </td> 180.2609 - <td>1</td> 180.2610 - </tr> 180.2611 - <tr valign="baseline"> 180.2612 - <td><em>Applies to:</em>  </td> 180.2613 - <td><a href="#feFloodElement"><span 180.2614 - class="element-name">'feFlood'</span></a> and <a 180.2615 - href="#feDropShadowElement"><span 180.2616 - class="element-name">'feDropShadow'</span></a> elements</td> 180.2617 - </tr> 180.2618 - <tr valign="baseline"> 180.2619 - <td><em>Inherited:</em>  </td> 180.2620 - <td>no</td> 180.2621 - </tr> 180.2622 - <tr valign="baseline"> 180.2623 - <td><em>Percentages:</em>  </td> 180.2624 - <td>N/A</td> 180.2625 - </tr> 180.2626 - <tr valign="baseline"> 180.2627 - <td><em>Media:</em>  </td> 180.2628 - <td>visual</td> 180.2629 - </tr> 180.2630 - <tr valign="baseline"> 180.2631 - <td><em>Animatable:</em>  </td> 180.2632 - <td>yes</td> 180.2633 - </tr> 180.2634 - </tbody> 180.2635 - </table> 180.2636 - </dd> 180.2637 -</dl> 180.2638 -</div> 180.2639 - 180.2640 -<h2 id="feGaussianBlurElement">Filter primitive <span 180.2641 -class="element-name">'feGaussianBlur'</span></h2> 180.2642 - 180.2643 -<edit:elementsummary name='feGaussianBlur'/> 180.2644 - 180.2645 -<p>This filter primitive performs a Gaussian blur on the input image.</p> 180.2646 - 180.2647 -<p>The Gaussian blur kernel is an approximation of the normalized 180.2648 -convolution:</p> 180.2649 - 180.2650 -<p class="filterformula">G(x,y) = H(x)I(y)</p> 180.2651 -<p>where 180.2652 -<span >H(x) = exp(-x^2/ (2s^2)) / sqrt(2* pi*s^2)</span> 180.2653 -</p> 180.2654 -<p>and</p> 180.2655 -<p class="filterformula">I(y) = exp(-y^2/ (2t^2)) / sqrt(2* pi*t^2)</p> 180.2656 -<p>with 's' being the standard deviation in the x direction 180.2657 -and 't' being the standard deviation in the y direction, as specified by <a 180.2658 -href="#feGaussianBlurStdDeviationAttribute"><span 180.2659 -class="attr-name">stdDeviation</span></a>.</p> 180.2660 - 180.2661 -<p>The value of <a href="#feGaussianBlurStdDeviationAttribute"><span 180.2662 -class="attr-name">stdDeviation</span></a> can be either one or two numbers. 180.2663 -If two numbers are provided, the first number represents a standard deviation 180.2664 -value along the x-axis of the current coordinate system and the second value 180.2665 -represents a standard deviation in Y. If one number is provided, then that 180.2666 -value is used for both X and Y.</p> 180.2667 - 180.2668 -<p>Even if only one value is provided for <a 180.2669 -href="#feGaussianBlurStdDeviationAttribute"><span 180.2670 -class="attr-name">stdDeviation</span></a>, this can be implemented as a 180.2671 -separable convolution.</p> 180.2672 - 180.2673 -<p>For larger values of 's' (s >= 2.0), an approximation can be used: 180.2674 -Three successive box-blurs build a piece-wise quadratic convolution kernel, 180.2675 -which approximates the Gaussian kernel to within roughly 3%.</p> 180.2676 - 180.2677 -<p class="filterformula">let d = floor(s * 3*sqrt(2*pi)/4 + 0.5)</p> 180.2678 - 180.2679 -<p>... if d is odd, use three box-blurs of size 'd', centered on the output 180.2680 -pixel.</p> 180.2681 - 180.2682 -<p>... if d is even, two box-blurs of size 'd' (the first one centered on the 180.2683 -pixel boundary between the output pixel and the one to the left, the second 180.2684 -one centered on the pixel boundary between the output pixel and the one to 180.2685 -the right) and one box blur of size 'd+1' centered on the output pixel.</p> 180.2686 - 180.2687 -<p>Frequently this operation will take place on alpha-only images, such as 180.2688 -that produced by the built-in input, <a href="#SourceAlpha"><span 180.2689 -class="attr-value">SourceAlpha</span></a>. The implementation may notice this 180.2690 -and optimize the single channel case. If the input has infinite extent and is 180.2691 -constant, this operation has no effect. If the input has infinite extent and 180.2692 -is a tile, the filter is evaluated with periodic boundary conditions.</p> 180.2693 - 180.2694 -<div class="adef-list"> 180.2695 -<p><em>Attribute definitions:</em></p> 180.2696 -<dl> 180.2697 - <dt id="feGaussianBlurStdDeviationAttribute"><span 180.2698 - class="adef">stdDeviation</span> = 180.2699 - "<em><a><number-optional-number></a></em>"</dt> 180.2700 - <dd>The standard deviation for the blur operation. If two <a><number></a> 180.2701 - s are provided, the first number represents a standard deviation value 180.2702 - along the x-axis of the coordinate system established by attribute <a>'filter/primitiveUnits'</a> on the <a 180.2703 - href="#FilterElement"><span class="element-name">'filter'</span></a> 180.2704 - element. The second value represents a standard deviation in Y. If one 180.2705 - number is provided, then that value is used for both X and Y.<br /> 180.2706 - A value of zero disables the effect of the given filter primitive (i.e., the result is the filter input image).<br /> 180.2707 - If the attribute is not specified, then the effect is as if a value of 180.2708 - <span class="attr-value">0</span> were specified.<br /> 180.2709 - <span class="anim-target">Animatable: yes.</span></dd> 180.2710 -</dl> 180.2711 -</div> 180.2712 - 180.2713 -<p><a href="#AnExample">The example</a> at the start of this chapter makes 180.2714 -use of the <a>'feGaussianBlur'</a> filter primitive 180.2715 -to create a drop shadow effect.</p> 180.2716 - 180.2717 -<h2 id="feUnsharpMaskElement">Filter primitive <span 180.2718 -class="element-name">'feUnsharpMask'</span></h2> 180.2719 - 180.2720 -<edit:elementsummary name='feUnsharpMask'/> 180.2721 - 180.2722 -<p>This filter primitive performs an image sharpening operation on the input image. This is traditionally known as an unsharp mask operation.</p> 180.2723 - 180.2724 -<p>The filter first does a <a>'feGaussianBlur'</a> operation on the input image and then subtracts the difference between the input image and the blurred image.</p> 180.2725 - 180.2726 -<p> 180.2727 -For controlling the result there are three attributes that can be used: 180.2728 - <ul> 180.2729 - <li>the <a>'feUnsharpMask/stdDeviation'</a> attribute controls how much to blur the input image</li> 180.2730 - <li>the <a>'feUnsharpMask/threshold'</a> attribute can be used for controlling when the difference should not be subtracted</li> 180.2731 - <li>the <a>'feUnsharpMask/amount'</a> attribute specifies an optional multiplier for the difference to subtract</li> 180.2732 - </ul> 180.2733 -</p> 180.2734 - 180.2735 -<h2 id="feImageElement">Filter primitive <span 180.2736 -class="element-name">'feImage'</span></h2> 180.2737 - 180.2738 -<edit:elementsummary name='feImage'/> 180.2739 - 180.2740 -<p>This filter primitive refers to a graphic external to this filter element, 180.2741 -which is loaded or rendered into an RGBA raster and becomes the result of the 180.2742 -filter primitive.</p> 180.2743 - 180.2744 -<p>This filter primitive can refer to an external image or can be a reference 180.2745 -to another piece of SVG. It produces an image similar to the built-in image 180.2746 -source <a href="#SourceGraphic"><span 180.2747 -class="attr-value">SourceGraphic</span></a> except that the graphic comes 180.2748 -from an external source.</p> 180.2749 - 180.2750 -<p>If the <span class="attr-name">xlink:href</span> references a stand-alone 180.2751 -image resource such as a JPEG, PNG or SVG file, then the image resource is 180.2752 -rendered according to the behavior of the <span 180.2753 -class="element-name">'image'</span> element; otherwise, the referenced 180.2754 -resource is rendered according to the behavior of the <span 180.2755 -class="element-name">'use'</span> element. In either case, the current user 180.2756 -coordinate system depends on the value of attribute <a>'filter/primitiveUnits'</a> on the <a 180.2757 -href="#FilterElement"><span class="element-name">'filter'</span></a> element. 180.2758 -The processing of the <span class="attr-name">preserveAspectRatio</span> 180.2759 -attribute on the <span class="element-name">'feImage'</span> element is 180.2760 -identical to that of the <a href="struct.html#ImageElement"><span 180.2761 -class="element-name">'image'</span></a> element.</p> 180.2762 - 180.2763 -<p><span class="requirement" id="assert_hqImageResampling">When the referenced image must be resampled to match the device coordinate 180.2764 -system, it is recommended that high quality viewers make use of appropriate 180.2765 -interpolation techniques, for example bilinear or bicubic.</span> Depending on the 180.2766 -speed of the available interpolents, this choice may be affected by the <span 180.2767 -class="prop-name">'image-rendering'</span> property setting.</p> 180.2768 - 180.2769 -<div class="adef-list"> 180.2770 -<p><em>Attribute definitions:</em></p> 180.2771 -<dl> 180.2772 - <dt id="feImageHrefAttribute"><span 180.2773 - class="adef">xlink:href</span> = 180.2774 - "<span class="attr-value"><IRI></span>"</dt> 180.2775 - <dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 180.2776 - to an image resource or to an element. 180.2777 - <br /> 180.2778 - <span class="anim-target">Animatable: yes.</span></dd> 180.2779 - </dl> 180.2780 -</div> 180.2781 - 180.2782 -<h2 id="feMergeElement">Filter primitive <span 180.2783 -class="element-name">'feMerge'</span></h2> 180.2784 - 180.2785 -<edit:elementsummary name='feMerge'/> 180.2786 -<edit:elementsummary name='feMergeNode'/> 180.2787 - 180.2788 -<p>This filter primitive composites input image layers on top of each other 180.2789 -using the <em>over</em> operator with <em>Input1</em> (corresponding to the 180.2790 -first <a href="#feMergeNodeElement"><span 180.2791 -class="element-name">'feMergeNode'</span></a> child element) on the bottom 180.2792 -and the last specified input, <em>InputN</em> (corresponding to the last <a 180.2793 -href="#feMergeNodeElement"><span 180.2794 -class="element-name">'feMergeNode'</span></a> child element), on top.</p> 180.2795 - 180.2796 -<p>Many effects produce a number of intermediate layers in order to create 180.2797 -the final output image. This filter allows us to collapse those into a single 180.2798 -image. Although this could be done by using n-1 Composite-filters, it is more 180.2799 -convenient to have this common operation available in this form, and offers 180.2800 -the implementation some additional flexibility.</p> 180.2801 - 180.2802 -<p>Each 'feMerge' element can have any number of 'feMergeNode' subelements, 180.2803 -each of which has an <a href="#CommonAttributes"><span 180.2804 -class="attr-name">in</span></a> attribute.</p> 180.2805 - 180.2806 -<p>The canonical implementation of feMerge is to render the entire effect 180.2807 -into one RGBA layer, and then render the resulting layer on the output 180.2808 -device. In certain cases (in particular if the output device itself is a 180.2809 -continuous tone device), and since merging is associative, it might be a 180.2810 -sufficient approximation to evaluate the effect one layer at a time and 180.2811 -render each layer individually onto the output device bottom to top.</p> 180.2812 - 180.2813 -<p>If the topmost image input is <a href="#SourceGraphic"><span 180.2814 -class="attr-value">SourceGraphic</span></a> and this <span 180.2815 -class="element-name">'feMerge'</span> is the last filter primitive in the 180.2816 -filter, the implementation is encouraged to render the layers up to that 180.2817 -point, and then render the <a href="#SourceGraphic"><span 180.2818 -class="attr-value">SourceGraphic</span></a> directly from its vector 180.2819 -description on top.</p> 180.2820 - 180.2821 -<p id="feMergeNode"><a href="#AnExample">The example</a> at the start of this chapter makes 180.2822 -use of the <span class="element-name">feMerge</span> filter primitive to 180.2823 -composite two intermediate filter results together.</p> 180.2824 - 180.2825 -<h2 id="feMorphologyElement">Filter primitive <span 180.2826 -class="element-name">'feMorphology'</span></h2> 180.2827 - 180.2828 -<edit:elementsummary name='feMorphology'/> 180.2829 - 180.2830 -<p>This filter primitive performs "fattening" or "thinning" of artwork. It is 180.2831 -particularly useful for fattening or thinning an alpha channel.</p> 180.2832 - 180.2833 -<p>The dilation (or erosion) kernel is a rectangle with a width of 180.2834 -2*<em>x-radius</em> and a height of 2*<em>y-radius</em>. In dilation, the 180.2835 -output pixel is the individual component-wise maximum of the corresponding 180.2836 -R,G,B,A values in the input image's kernel rectangle. In erosion, the output 180.2837 -pixel is the individual component-wise minimum of the corresponding R,G,B,A 180.2838 -values in the input image's kernel rectangle.</p> 180.2839 - 180.2840 -<p>Frequently this operation will take place on alpha-only images, such as 180.2841 -that produced by the built-in input, <a href="#SourceAlpha"><span 180.2842 -class="attr-value">SourceAlpha</span></a>. In that case, the implementation 180.2843 -might want to optimize the single channel case.</p> 180.2844 - 180.2845 -<p>If the input has infinite extent and is constant, this operation has no 180.2846 -effect. If the input has infinite extent and is a tile, the filter is 180.2847 -evaluated with periodic boundary conditions.</p> 180.2848 - 180.2849 -<p>Because <span class="element-name">'feMorphology'</span> operates on 180.2850 -premultipied color values, it will always result in color values less than or 180.2851 -equal to the alpha channel.</p> 180.2852 - 180.2853 -<div class="adef-list"> 180.2854 -<p><em>Attribute definitions:</em></p> 180.2855 -<dl> 180.2856 - <dt id="feMorphologyOperatorAttribute"><span 180.2857 - class="adef">operator</span> = "<em>erode | dilate</em>"</dt> 180.2858 - <dd>A keyword indicating whether to erode (i.e., thin) or dilate (fatten) 180.2859 - the source graphic.<br /> 180.2860 - <span class="anim-target">Animatable: yes.</span></dd> 180.2861 - <dt id="feMorphologyRadiusAttribute"><span class="adef">radius</span> = 180.2862 - "<em><a><number-optional-number></a></em>"</dt> 180.2863 - <dd>The radius (or radii) for the operation. If two <a><number></a> 180.2864 - s are provided, the first number represents a x-radius and the second 180.2865 - value represents a y-radius. If one number is provided, then that value 180.2866 - is used for both X and Y. The values are in the coordinate system 180.2867 - established by attribute <a>'filter/primitiveUnits'</a> on the <a 180.2868 - href="#FilterElement"><span class="element-name">'filter'</span></a> 180.2869 - element.<br /> 180.2870 - A negative or zero value disables the effect of the given filter 180.2871 - primitive (i.e., the result is a transparent black image).<br /> 180.2872 - If the attribute is not specified, then the effect is as if a value of 180.2873 - <span class="attr-value">0</span> were specified.<br /> 180.2874 - <span class="anim-target">Animatable: yes.</span></dd> 180.2875 -</dl> 180.2876 -</div> 180.2877 - 180.2878 -<edit:example href="examples/feMorphology.svg" image="yes" link="yes"/> 180.2879 - 180.2880 -<h2 id="feOffsetElement">Filter primitive <span 180.2881 -class="element-name">'feOffset'</span></h2> 180.2882 - 180.2883 -<edit:elementsummary name='feOffset'/> 180.2884 - 180.2885 -<p>This filter primitive offsets the input image relative to its current 180.2886 -position in the image space by the specified vector.</p> 180.2887 - 180.2888 -<p>This is important for effects like drop shadows.</p> 180.2889 - 180.2890 -<p>When applying this filter, the destination location may be offset by a 180.2891 -fraction of a pixel in device space. <span class="requirement" id="assert_hqFeOffsetInterpolation">In this case a high quality viewer 180.2892 -should make use of appropriate interpolation techniques, for example bilinear 180.2893 -or bicubic.</span> This is especially recommended for dynamic viewers where this 180.2894 -interpolation provides visually smoother movement of images. For static 180.2895 -viewers this is less of a concern. Close attention should be made to the 180.2896 -<span class="prop-name">'image-rendering'</span> property setting to 180.2897 -determine the authors intent.</p> 180.2898 - 180.2899 -<div class="adef-list"> 180.2900 -<p><em>Attribute definitions:</em></p> 180.2901 -<dl> 180.2902 - <dt id="feOffsetDxAttribute"><span 180.2903 - class="adef">dx</span> = "<em><a><number></a></em>"</dt> 180.2904 - <dd>The amount to offset the input graphic along the x-axis. The offset 180.2905 - amount is expressed in the coordinate system established by attribute 180.2906 - <a>'filter/primitiveUnits'</a> on the <a>'filter element'</a> 180.2907 - element.<br /> 180.2908 - If the attribute is not specified, then the effect is as if a value of 180.2909 - <span class="attr-value">0</span> were specified.<br /> 180.2910 - <span class="anim-target">Animatable: yes.</span></dd> 180.2911 - <dt id="feOffsetDyAttribute"><span 180.2912 - class="adef">dy</span> = "<em><a><number></a></em>"</dt> 180.2913 - <dd>The amount to offset the input graphic along the y-axis. The offset 180.2914 - amount is expressed in the coordinate system established by attribute 180.2915 - <a>'filter/primitiveUnits'</a> on the <a 180.2916 - href="#FilterElement"><span class="element-name">'filter'</span></a> 180.2917 - element.<br /> 180.2918 - If the attribute is not specified, then the effect is as if a value of 180.2919 - <span class="attr-value">0</span> were specified.<br /> 180.2920 - <span class="anim-target">Animatable: yes.</span></dd> 180.2921 -</dl> 180.2922 -</div> 180.2923 - 180.2924 -<p><a href="#AnExample">The example</a> at the start of this chapter makes 180.2925 -use of the <span class="element-name">feOffset</span> filter primitive to 180.2926 -offset the drop shadow from the original source graphic.</p> 180.2927 - 180.2928 -<h2 id="feSpecularLightingElement">Filter primitive <span 180.2929 -class="element-name">'feSpecularLighting'</span></h2> 180.2930 - 180.2931 -<edit:elementsummary name='feSpecularLighting'/> 180.2932 - 180.2933 -<p>This filter primitive lights a source graphic using the alpha channel as a 180.2934 -bump map. The resulting image is an RGBA image based on the light color. The 180.2935 -lighting calculation follows the standard specular component of the Phong 180.2936 -lighting model. The resulting image depends on the light color, light 180.2937 -position and surface geometry of the input bump map. The result of the 180.2938 -lighting calculation is added. The filter primitive assumes that the viewer 180.2939 -is at infinity in the z direction (i.e., the unit vector in the eye direction 180.2940 -is (0,0,1) everywhere).</p> 180.2941 - 180.2942 -<p>This filter primitive produces an image which contains the specular 180.2943 -reflection part of the lighting calculation. Such a map is intended to be 180.2944 -combined with a texture using the <em>add</em> term of the 180.2945 -<em>arithmetic</em> <a href="#feCompositeElement"><span 180.2946 -class="element-name">'feComposite'</span></a> method. Multiple light sources 180.2947 -can be simulated by adding several of these light maps before applying it to 180.2948 -the texture image.</p> 180.2949 - 180.2950 -<p>The resulting RGBA image is computed as follows:</p> 180.2951 - 180.2952 -<p class="filterformula">S<sub>r</sub> = k<sub>s</sub> * pow(N.H, 180.2953 -specularExponent) * L<sub>r<br /> 180.2954 -</sub> S<sub>g</sub> = k<sub>s</sub> * pow(N.H, specularExponent) * 180.2955 -L<sub>g<br /> 180.2956 -</sub> S<sub>b</sub> = k<sub>s</sub> * pow(N.H, specularExponent) * 180.2957 -L<sub>b<br /> 180.2958 -</sub> S<sub>a</sub> = max(S<sub>r,</sub> S<sub>g,</sub> S<sub>b</sub>)</p> 180.2959 - 180.2960 -<p>where</p> 180.2961 -<dl> 180.2962 - <dd>k<sub>s</sub> = specular lighting constant<br /> 180.2963 - N = surface normal unit vector, a function of x and y<br /> 180.2964 - H = "halfway" unit vector between eye unit vector and light unit 180.2965 - vector<br /> 180.2966 - <br /> 180.2967 - L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light</dd> 180.2968 -</dl> 180.2969 - 180.2970 -<p>See <a href="#feDiffuseLighting"><span 180.2971 -class="element-name">'feDiffuseLighting'</span></a> for definition of N and 180.2972 -(L<sub>r</sub>, L<sub>g</sub>, L<sub>b</sub>).</p> 180.2973 - 180.2974 -<p>The definition of H reflects our assumption of the constant eye vector E = 180.2975 -(0,0,1):</p> 180.2976 - 180.2977 -<p class="filterformula">H = (L + E) / Norm(L+E)</p> 180.2978 - 180.2979 -<p>where L is the light unit vector.</p> 180.2980 - 180.2981 -<p>Unlike the <a href="#feDiffuseLighting"><span 180.2982 -class="element-name">'feDiffuseLighting'</span></a>, the <span 180.2983 -class="element-name">'feSpecularLighting'</span> filter produces a non-opaque 180.2984 -image. This is due to the fact that the specular result 180.2985 -(S<sub>r</sub>,S<sub>g</sub>,S<sub>b</sub>,S<sub>a</sub>) is meant to be 180.2986 -added to the textured image. The alpha channel of the result is the max of 180.2987 -the color components, so that where the specular light is zero, no additional 180.2988 -coverage is added to the image and a fully white highlight will add 180.2989 -opacity.</p> 180.2990 - 180.2991 -<p>The <a href="#feDiffuseLighting"><span 180.2992 -class="element-name">'feDiffuseLighting'</span></a> and <span 180.2993 -class="element-name">'feSpecularLighting'</span> filters will often be 180.2994 -applied together. An implementation may detect this and calculate both maps 180.2995 -in one pass, instead of two.</p> 180.2996 - 180.2997 -<div class="adef-list"> 180.2998 -<p><em>Attribute definitions:</em></p> 180.2999 -<dl> 180.3000 - <dt id="feSpecularLightingSurfaceScaleAttribute"><span 180.3001 - class="adef">surfaceScale</span> = "<em><a><number></a></em>"</dt> 180.3002 - <dd>height of surface when A<sub>in</sub> = 1.<br /> 180.3003 - If the attribute is not specified, then the effect is as if a value of 180.3004 - <span class="attr-value">1</span> were specified.<br /> 180.3005 - <span class="anim-target">Animatable: yes.</span></dd> 180.3006 - <dt id="feSpecularLightingSpecularConstantAttribute"><span 180.3007 - class="adef">specularConstant</span> = "<em><a><number></a></em>"</dt> 180.3008 - <dd>ks in Phong lighting model. In SVG, this can be any non-negative 180.3009 - number.<br /> 180.3010 - If the attribute is not specified, then the effect is as if a value of 180.3011 - <span class="attr-value">1</span> were specified.<br /> 180.3012 - <span class="anim-target">Animatable: yes.</span></dd> 180.3013 - <dt id="feSpecularLightingSpecularExponentAttribute"><span 180.3014 - class="adef">specularExponent</span> = "<em><a><number></a></em>"</dt> 180.3015 - <dd>Exponent for specular term, larger is more "shiny". Range 1.0 to 180.3016 - 128.0.<br /> 180.3017 - If the attribute is not specified, then the effect is as if a value of 180.3018 - <span class="attr-value">1</span> were specified.<br /> 180.3019 - <span class="anim-target">Animatable: yes.</span></dd> 180.3020 - <dt id="feSpecularLightingKernelUnitLengthAttribute"><span 180.3021 - class="adef">kernelUnitLength</span> = "<span 180.3022 - class="attr-value"><a><number-optional-number></a></span>"</dt> 180.3023 - <dd>The first number is the <dx> value. The second number is the 180.3024 - <dy> value. If the <dy> value is not specified, it defaults 180.3025 - to the same value as <dx>. Indicates the intended distance in 180.3026 - current filter units (i.e., units as determined by the value of 180.3027 - attribute <a>'filter/primitiveUnits'</a>) for <code>dx</code> and 180.3028 - <code>dy</code>, respectively, in the <a 180.3029 - href="#SurfaceNormalCalculations">surface normal calculation 180.3030 - formulas</a>. By specifying value(s) for <span 180.3031 - class="attr-name">kernelUnitLength</span>, the kernel becomes defined 180.3032 - in a scalable, abstract coordinate system. If <span 180.3033 - class="attr-name">kernelUnitLength</span> is not specified, the 180.3034 - <code>dx</code> and <code>dy</code> values should represent very small 180.3035 - deltas relative to a given <code>(x,y)</code> position, which might be 180.3036 - implemented in some cases as one pixel in the intermediate image 180.3037 - offscreen bitmap, which is a pixel-based coordinate system, and thus 180.3038 - potentially not scalable. For some level of consistency across display 180.3039 - media and user agents, it is necessary that a value be provided for at 180.3040 - least one of <span class="attr-name">filterRes</span> and <span 180.3041 - class="attr-name">kernelUnitLength</span>. Discussion of intermediate 180.3042 - images are in the <a href="#Introduction">Introduction</a> and in the 180.3043 - description of attribute <a 180.3044 - href="#FilterElementFilterResAttribute"><span 180.3045 - class="attr-name">filterRes</span></a>.<br /> 180.3046 - If a negative or zero value is specified the default value will be used 180.3047 - instead. <br /> 180.3048 - <span class="anim-target">Animatable: yes.</span></dd> 180.3049 -</dl> 180.3050 -</div> 180.3051 - 180.3052 -<p>The light source is defined by one of the child elements <a 180.3053 -href="#feDistantLightElement"><span 180.3054 -class="element-name">'feDistantLight'</span></a>, <a 180.3055 -href="#fePointLightElement"><span 180.3056 -class="element-name">'fePointLight'</span></a> or <a 180.3057 -href="#feDistantLightElement"><span 180.3058 -class="element-name">'feDistantLight'</span></a>. The light color is 180.3059 -specified by property <a href="#LightingColorProperty"><span 180.3060 -class="prop-name">'lighting-color'</span></a>.</p> 180.3061 - 180.3062 -<p><a href="#AnExample">The example</a> at the start of this chapter makes 180.3063 -use of the <span class="element-name">feSpecularLighting</span> filter 180.3064 -primitive to achieve a highly reflective, 3D glowing effect.</p> 180.3065 - 180.3066 -<h2 id="feTileElement">Filter primitive <span 180.3067 -class="element-name">'feTile'</span></h2> 180.3068 - 180.3069 -<edit:elementsummary name='feTile'/> 180.3070 - 180.3071 -<p>This filter primitive fills a target rectangle with a repeated, tiled 180.3072 -pattern of an input image. 180.3073 -The target rectangle is as large as the <a 180.3074 -href="#FilterPrimitiveSubRegion">filter primitive subregion</a> established 180.3075 -by the <span class="element-name">'feTile'</span> element. 180.3076 -</p> 180.3077 - 180.3078 -<p>Typically, the input image has been defined with its own <a 180.3079 -href="#FilterPrimitiveSubRegion">filter primitive subregion</a> in order to 180.3080 -define a reference tile. <span class="element-name">'feTile'</span> 180.3081 -replicates the reference tile in both X and Y to completely fill the target 180.3082 -rectangle. The top/left corner of each given tile is at location 180.3083 -<code>(x+i*width,y+j*height)</code>, where <code>(x,y)</code> represents the 180.3084 -top/left of the input image's filter primitive subregion, <code>width</code> 180.3085 -and <code>height</code> represent the width and height of the input image's 180.3086 -filter primitive subregion, and <code>i</code> and <code>j</code> can be any 180.3087 -integer value. In most cases, the input image will have a smaller filter 180.3088 -primitive subregion than the <span class="element-name">'feTile'</span> in 180.3089 -order to achieve a repeated pattern effect.</p> 180.3090 - 180.3091 -<p class="requirement" id="assertTileArtifacts">Implementers must take appropriate measures in constructing the tiled 180.3092 -image to avoid artifacts between tiles, particularly in situations where the 180.3093 -user to device transform includes shear and/or rotation. Unless care is 180.3094 -taken, interpolation can lead to edge pixels in the tile having opacity 180.3095 -values lower or higher than expected due to the interaction of painting 180.3096 -adjacent tiles which each have partial overlap with particular pixels.</p> 180.3097 - 180.3098 -<div class="adef-list"> 180.3099 - </div> 180.3100 - 180.3101 -<h2 id="feTurbulenceElement">Filter primitive <span 180.3102 -class="element-name">'feTurbulence'</span></h2> 180.3103 - 180.3104 -<edit:with element="feTurbulence"> 180.3105 - 180.3106 -<p class="specissue">ISSUE: Consider phasing out this C algorithm in favor of Simplex noise, which is more HW friendly.</p> 180.3107 - 180.3108 -<p>This filter primitive creates an image using the Perlin turbulence 180.3109 -function. It allows the synthesis of artificial textures like clouds or 180.3110 -marble. For a detailed description the of the Perlin turbulence function, see 180.3111 -"Texturing and Modeling", Ebert et al, AP Professional, 1994. The resulting 180.3112 -image will fill the entire <a>filter primitive subregion</a> for this filter primitive.</p> 180.3113 - 180.3114 -<p>It is possible to create bandwidth-limited noise by synthesizing only one 180.3115 -octave.</p> 180.3116 - 180.3117 -<p>The C code below shows the exact algorithm used for this filter effect.</p> 180.3118 - 180.3119 -<p>For fractalSum, you get a turbFunctionResult that is aimed at a range of 180.3120 --1 to 1 (the actual result might exceed this range in some cases). To convert 180.3121 -to a color value, use the formula <code>colorValue = ((turbFunctionResult * 180.3122 -255) + 255) / 2</code>, then clamp to the range 0 to 255.</p> 180.3123 - 180.3124 -<p>For turbulence, you get a turbFunctionResult that is aimed at a range of 0 180.3125 -to 1 (the actual result might exceed this range in some cases). To convert to 180.3126 -a color value, use the formula <code>colorValue = (turbFunctionResult * 180.3127 -255)</code>, then clamp to the range 0 to 255.</p> 180.3128 - 180.3129 -<p>The following order is used for applying the pseudo random numbers. An 180.3130 -initial seed value is computed based on the <a>'seed'</a> attribute. 180.3131 -Then the implementation computes the lattice 180.3132 -points for R, then continues getting additional pseudo random numbers 180.3133 -relative to the last generated pseudo random number and computes the lattice 180.3134 -points for G, and so on for B and A.</p> 180.3135 - 180.3136 -<p>The generated color and alpha values are in the color space determined by 180.3137 -the <a>'color-interpolation-filters'</a> property:</p> 180.3138 -<pre class="svgsamplecompressed">/* Produces results in the range [1, 2**31 - 2]. 180.3139 -Algorithm is: r = (a * r) mod m 180.3140 -where a = 16807 and m = 2**31 - 1 = 2147483647 180.3141 -See [Park & Miller], CACM vol. 31 no. 10 p. 1195, Oct. 1988 180.3142 -To test: the algorithm should produce the result 1043618065 180.3143 -as the 10,000th generated number if the original seed is 1. 180.3144 -*/ 180.3145 -#define RAND_m 2147483647 /* 2**31 - 1 */ 180.3146 -#define RAND_a 16807 /* 7**5; primitive root of m */ 180.3147 -#define RAND_q 127773 /* m / a */ 180.3148 -#define RAND_r 2836 /* m % a */ 180.3149 -long setup_seed(long lSeed) 180.3150 -{ 180.3151 - if (lSeed <= 0) lSeed = -(lSeed % (RAND_m - 1)) + 1; 180.3152 - if (lSeed > RAND_m - 1) lSeed = RAND_m - 1; 180.3153 - return lSeed; 180.3154 -} 180.3155 -long random(long lSeed) 180.3156 -{ 180.3157 - long result; 180.3158 - result = RAND_a * (lSeed % RAND_q) - RAND_r * (lSeed / RAND_q); 180.3159 - if (result <= 0) result += RAND_m; 180.3160 - return result; 180.3161 -} 180.3162 -#define BSize 0x100 180.3163 -#define BM 0xff 180.3164 -#define PerlinN 0x1000 180.3165 -#define NP 12 /* 2^PerlinN */ 180.3166 -#define NM 0xfff 180.3167 -static uLatticeSelector[BSize + BSize + 2]; 180.3168 -static double fGradient[4][BSize + BSize + 2][2]; 180.3169 -struct StitchInfo 180.3170 -{ 180.3171 - int nWidth; // How much to subtract to wrap for stitching. 180.3172 - int nHeight; 180.3173 - int nWrapX; // Minimum value to wrap. 180.3174 - int nWrapY; 180.3175 -}; 180.3176 -static void init(long lSeed) 180.3177 -{ 180.3178 - double s; 180.3179 - int i, j, k; 180.3180 - lSeed = setup_seed(lSeed); 180.3181 - for(k = 0; k < 4; k++) 180.3182 - { 180.3183 - for(i = 0; i < BSize; i++) 180.3184 - { 180.3185 - uLatticeSelector[i] = i; 180.3186 - for (j = 0; j < 2; j++) 180.3187 - fGradient[k][i][j] = (double)(((lSeed = random(lSeed)) % (BSize + BSize)) - BSize) / BSize; 180.3188 - s = double(sqrt(fGradient[k][i][0] * fGradient[k][i][0] + fGradient[k][i][1] * fGradient[k][i][1])); 180.3189 - fGradient[k][i][0] /= s; 180.3190 - fGradient[k][i][1] /= s; 180.3191 - } 180.3192 - } 180.3193 - while(--i) 180.3194 - { 180.3195 - k = uLatticeSelector[i]; 180.3196 - uLatticeSelector[i] = uLatticeSelector[j = (lSeed = random(lSeed)) % BSize]; 180.3197 - uLatticeSelector[j] = k; 180.3198 - } 180.3199 - for(i = 0; i < BSize + 2; i++) 180.3200 - { 180.3201 - uLatticeSelector[BSize + i] = uLatticeSelector[i]; 180.3202 - for(k = 0; k < 4; k++) 180.3203 - for(j = 0; j < 2; j++) 180.3204 - fGradient[k][BSize + i][j] = fGradient[k][i][j]; 180.3205 - } 180.3206 -} 180.3207 -#define s_curve(t) ( t * t * (3. - 2. * t) ) 180.3208 -#define lerp(t, a, b) ( a + t * (b - a) ) 180.3209 -double noise2(int nColorChannel, double vec[2], StitchInfo *pStitchInfo) 180.3210 -{ 180.3211 - int bx0, bx1, by0, by1, b00, b10, b01, b11; 180.3212 - double rx0, rx1, ry0, ry1, *q, sx, sy, a, b, t, u, v; 180.3213 - register i, j; 180.3214 - t = vec[0] + PerlinN; 180.3215 - bx0 = (int)t; 180.3216 - bx1 = bx0+1; 180.3217 - rx0 = t - (int)t; 180.3218 - rx1 = rx0 - 1.0f; 180.3219 - t = vec[1] + PerlinN; 180.3220 - by0 = (int)t; 180.3221 - by1 = by0+1; 180.3222 - ry0 = t - (int)t; 180.3223 - ry1 = ry0 - 1.0f; 180.3224 - // If stitching, adjust lattice points accordingly. 180.3225 - if(pStitchInfo != NULL) 180.3226 - { 180.3227 - if(bx0 >= pStitchInfo->nWrapX) 180.3228 - bx0 -= pStitchInfo->nWidth; 180.3229 - if(bx1 >= pStitchInfo->nWrapX) 180.3230 - bx1 -= pStitchInfo->nWidth; 180.3231 - if(by0 >= pStitchInfo->nWrapY) 180.3232 - by0 -= pStitchInfo->nHeight; 180.3233 - if(by1 >= pStitchInfo->nWrapY) 180.3234 - by1 -= pStitchInfo->nHeight; 180.3235 - } 180.3236 - bx0 &= BM; 180.3237 - bx1 &= BM; 180.3238 - by0 &= BM; 180.3239 - by1 &= BM; 180.3240 - i = uLatticeSelector[bx0]; 180.3241 - j = uLatticeSelector[bx1]; 180.3242 - b00 = uLatticeSelector[i + by0]; 180.3243 - b10 = uLatticeSelector[j + by0]; 180.3244 - b01 = uLatticeSelector[i + by1]; 180.3245 - b11 = uLatticeSelector[j + by1]; 180.3246 - sx = double(s_curve(rx0)); 180.3247 - sy = double(s_curve(ry0)); 180.3248 - q = fGradient[nColorChannel][b00]; u = rx0 * q[0] + ry0 * q[1]; 180.3249 - q = fGradient[nColorChannel][b10]; v = rx1 * q[0] + ry0 * q[1]; 180.3250 - a = lerp(sx, u, v); 180.3251 - q = fGradient[nColorChannel][b01]; u = rx0 * q[0] + ry1 * q[1]; 180.3252 - q = fGradient[nColorChannel][b11]; v = rx1 * q[0] + ry1 * q[1]; 180.3253 - b = lerp(sx, u, v); 180.3254 - return lerp(sy, a, b); 180.3255 -} 180.3256 -double turbulence(int nColorChannel, double *point, double fBaseFreqX, double fBaseFreqY, 180.3257 - int nNumOctaves, bool bFractalSum, bool bDoStitching, 180.3258 - double fTileX, double fTileY, double fTileWidth, double fTileHeight) 180.3259 -{ 180.3260 - StitchInfo stitch; 180.3261 - StitchInfo *pStitchInfo = NULL; // Not stitching when NULL. 180.3262 - // Adjust the base frequencies if necessary for stitching. 180.3263 - if(bDoStitching) 180.3264 - { 180.3265 - // When stitching tiled turbulence, the frequencies must be adjusted 180.3266 - // so that the tile borders will be continuous. 180.3267 - if(fBaseFreqX != 0.0) 180.3268 - { 180.3269 - double fLoFreq = double(floor(fTileWidth * fBaseFreqX)) / fTileWidth; 180.3270 - double fHiFreq = double(ceil(fTileWidth * fBaseFreqX)) / fTileWidth; 180.3271 - if(fBaseFreqX / fLoFreq < fHiFreq / fBaseFreqX) 180.3272 - fBaseFreqX = fLoFreq; 180.3273 - else 180.3274 - fBaseFreqX = fHiFreq; 180.3275 - } 180.3276 - if(fBaseFreqY != 0.0) 180.3277 - { 180.3278 - double fLoFreq = double(floor(fTileHeight * fBaseFreqY)) / fTileHeight; 180.3279 - double fHiFreq = double(ceil(fTileHeight * fBaseFreqY)) / fTileHeight; 180.3280 - if(fBaseFreqY / fLoFreq < fHiFreq / fBaseFreqY) 180.3281 - fBaseFreqY = fLoFreq; 180.3282 - else 180.3283 - fBaseFreqY = fHiFreq; 180.3284 - } 180.3285 - // Set up initial stitch values. 180.3286 - pStitchInfo = &stitch; 180.3287 - stitch.nWidth = int(fTileWidth * fBaseFreqX + 0.5f); 180.3288 - stitch.nWrapX = fTileX * fBaseFreqX + PerlinN + stitch.nWidth; 180.3289 - stitch.nHeight = int(fTileHeight * fBaseFreqY + 0.5f); 180.3290 - stitch.nWrapY = fTileY * fBaseFreqY + PerlinN + stitch.nHeight; 180.3291 - } 180.3292 - double fSum = 0.0f; 180.3293 - double vec[2]; 180.3294 - vec[0] = point[0] * fBaseFreqX; 180.3295 - vec[1] = point[1] * fBaseFreqY; 180.3296 - double ratio = 1; 180.3297 - for(int nOctave = 0; nOctave < nNumOctaves; nOctave++) 180.3298 - { 180.3299 - if(bFractalSum) 180.3300 - fSum += double(noise2(nColorChannel, vec, pStitchInfo) / ratio); 180.3301 - else 180.3302 - fSum += double(fabs(noise2(nColorChannel, vec, pStitchInfo)) / ratio); 180.3303 - vec[0] *= 2; 180.3304 - vec[1] *= 2; 180.3305 - ratio *= 2; 180.3306 - if(pStitchInfo != NULL) 180.3307 - { 180.3308 - // Update stitch values. Subtracting PerlinN before the multiplication and 180.3309 - // adding it afterward simplifies to subtracting it once. 180.3310 - stitch.nWidth *= 2; 180.3311 - stitch.nWrapX = 2 * stitch.nWrapX - PerlinN; 180.3312 - stitch.nHeight *= 2; 180.3313 - stitch.nWrapY = 2 * stitch.nWrapY - PerlinN; 180.3314 - } 180.3315 - } 180.3316 - return fSum; 180.3317 -}</pre> 180.3318 - 180.3319 -<div class="adef-list"> 180.3320 -<p><em>Attribute definitions:</em></p> 180.3321 -<dl> 180.3322 - <dt id="feTurbulenceBaseFrequencyAttribute"><span 180.3323 - class="adef">baseFrequency</span> = 180.3324 - "<em><a><number-optional-number></a></em>"</dt> 180.3325 - <dd> 180.3326 - <p>The base frequency (frequencies) parameter(s) for the noise function. 180.3327 - If two <a><number></a>s are provided, the first number represents a base frequency in the X 180.3328 - direction and the second value represents a base frequency in the Y 180.3329 - direction. If one number is provided, then that value is used for both 180.3330 - X and Y.</p> 180.3331 - <p>The <a>lacuna value</a> for <a>'baseFrequency'</a> is <span class="attr-value">0</span>.</p> 180.3332 - <p>Negative values are <a>unsupported</a>.</p> 180.3333 - <p><span class="anim-target">Animatable: yes.</span></p> 180.3334 -</dd> 180.3335 - <dt id="feTurbulenceNumOctavesAttribute"><span 180.3336 - class="adef">numOctaves</span> = "<em><a><integer></a></em>"</dt> 180.3337 - <dd> 180.3338 - <p>The numOctaves parameter for the noise function.</p> 180.3339 - <p><span class="requirement" id="assert_turbulenceNumOctavesLacunaValue">The <a>lacuna value</a> for <a>'numOctaves'</a> is <span class="attr-value">1</span>.</span></p> 180.3340 - <p><span class="requirement" id="assert_turbulenceNumOctavesUnsupportedValue">Negative values are <a>unsupported</a>.</span></p> 180.3341 - <p><span class="requirement" id="assert_turbulenceNumOctavesAnimatable"><span class="anim-target">Animatable: yes.</span></span></p> 180.3342 - </dd> 180.3343 - <dt id="feTurbulenceSeedAttribute"> 180.3344 - <span class="adef">seed</span> = "<em><a><number></a></em>"</dt> 180.3345 - <dd> 180.3346 - <p>The starting number for the pseudo random number generator.</p> 180.3347 - <p><span class="requirement" id="assert_turbulenceSeedLacunaValue">The <a>lacuna value</a> for <a>'seed'</a> is <span class="attr-value">0</span>.</span></p> 180.3348 - <p><span class="requirement" id="assert_turbulenceSeedTruncation">When the seed number is handed over to the algorithm above it must first be 180.3349 - truncated, i.e. rounded to the closest integer value towards zero.</span></p> 180.3350 - <p><span class="anim-target">Animatable: yes.</span></p> 180.3351 - </dd> 180.3352 - <dt id="feTurbulenceStitchTilesAttribute"><span 180.3353 - class="adef">stitchTiles</span> = "<em>stitch | noStitch</em>"</dt> 180.3354 - <dd> 180.3355 - <p>If <span class="attr-value">stitchTiles="noStitch"</span>, no attempt 180.3356 - it made to achieve smooth transitions at the border of tiles which 180.3357 - contain a turbulence function. Sometimes the result will show clear 180.3358 - discontinuities at the tile borders.<br /> 180.3359 - If <span class="attr-value">stitchTiles="stitch"</span>, then the user 180.3360 - agent will automatically adjust baseFrequency-x and baseFrequency-y 180.3361 - values such that the <a>'feTurbulence'</a> node's width and height (i.e., the 180.3362 - width and height of the current subregion) contains an integral number 180.3363 - of the Perlin tile width and height for the first octave. The 180.3364 - baseFrequency will be adjusted up or down depending on which way has 180.3365 - the smallest relative (not absolute) change as follows: Given the 180.3366 - frequency, calculate <code>lowFreq=floor(width*frequency)/width</code> 180.3367 - and <code>hiFreq=ceil(width*frequency)/width</code>. If 180.3368 - frequency/lowFreq < hiFreq/frequency then use lowFreq, else use 180.3369 - hiFreq. While generating turbulence values, generate lattice vectors as 180.3370 - normal for Perlin Noise, except for those lattice points that lie on 180.3371 - the right or bottom edges of the active area (the size of the resulting 180.3372 - tile). In those cases, copy the lattice vector from the opposite edge 180.3373 - of the active area.</p> 180.3374 - <p><span class="requirement" id="assert_turbulenceStitchTilesLacunaValue">The <a>lacuna value</a> for <a>'stitchTiles'</a> attribute is <span class="attr-value">noStitch</span>.</span></p> 180.3375 - <p><span class="anim-target">Animatable: yes.</span></p> 180.3376 - </dd> 180.3377 - <dt id="feTurbulenceTypeAttribute"> 180.3378 - <span class="adef">type</span> = "<em>fractalNoise | turbulence</em>"</dt> 180.3379 - <dd> 180.3380 - <p>Indicates whether the filter primitive should perform a noise or 180.3381 - turbulence function.</p> 180.3382 - <p><span class="requirement" id="assert_turbulenceTypeLacunaValue">The <a>lacuna value</a> for <a>'type'</a> attribute is <span class="attr-value">turbulence</span>.</span></p> 180.3383 - <p><span class="anim-target">Animatable: yes.</span></p> 180.3384 - </dd> 180.3385 -</dl> 180.3386 -</div> 180.3387 - 180.3388 -<edit:example href="examples/feTurbulence.svg" image="yes" link="yes"/> 180.3389 -</edit:with> 180.3390 - 180.3391 -<h2 id="feDropShadowElement">Filter primitive <span 180.3392 -class="element-name">'feDropShadow'</span></h2> 180.3393 - 180.3394 -<edit:elementsummary name='feDropShadow'/> 180.3395 - 180.3396 -<p>This filter creates a drop shadow of the input image. It is a shorthand 180.3397 -filter, and is defined in terms of combinations of other <a>filter primitives</a>. 180.3398 -The expectation is that it can be optimized more easily by 180.3399 -implementations.</p> 180.3400 - 180.3401 -<p>The result of a <a>'feDropShadow'</a> filter 180.3402 -primitive is equivalent to the following: 180.3403 - 180.3404 -<pre class="examplesource"> 180.3405 - <feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/> 180.3406 - <feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/> 180.3407 - <feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/> 180.3408 - <feComposite in2="offsetblur" operator="in"/> 180.3409 - <feMerge> 180.3410 - <feMergeNode/> 180.3411 - <feMergeNode in="<b>in-of-feDropShadow</b>"/> 180.3412 - </feMerge> 180.3413 -</pre> 180.3414 -</p> 180.3415 - 180.3416 -<p> 180.3417 -The above divided into steps: 180.3418 -<ol> 180.3419 - <li>Take the alpha channel of the input to the <a>'feDropShadow'</a> filter primitive and the <a>'feDropShadow/stdDeviation'</a> on the <a>'feDropShadow'</a> and do processing as if the 180.3420 - following <a>'feGaussianBlur'</a> was applied: 180.3421 - <pre class="examplesource"> <feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/></pre> 180.3422 - <br /> 180.3423 - </li> 180.3424 - <li>Offset the result of step 1 by <a>'feDropShadow/dx'</a> and <a>'feDropShadow/dy'</a> as 180.3425 - specified on the <a>'feDropShadow'</a> 180.3426 - element, equivalent to applying an <a>'feOffset'</a> with these parameters: 180.3427 - <pre class="examplesource"> <feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/></pre> 180.3428 - <br /> 180.3429 - </li> 180.3430 - <li>Do processing as if an <a>'feFlood'</a> element with <a>'flood-color'</a> and 180.3431 - <a>'flood-opacity'</a> as specified on the <a>'feDropShadow'</a> was applied: 180.3432 - <pre class="examplesource"> <feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/></pre> 180.3433 - <br /> 180.3434 - </li> 180.3435 - <li>Composite the result of the <a href="#feFloodElement"><span 180.3436 - class="element-name">'feFlood'</span></a> in step 3 with the result of 180.3437 - the <a href="#feOffsetElement"><span 180.3438 - class="element-name">'feOffset'</span></a> in step 2 as if an <a>'feComposite'</a> filter primitive with <a 180.3439 - href="#feCompositeOperatorAttribute"><span 180.3440 - class="attr-name">operator</span></a>='in' was applied: 180.3441 - <pre class="examplesource"> <feComposite in2="offsetblur" operator="in"/></pre> 180.3442 - <br /> 180.3443 - </li> 180.3444 - <li>Finally merge the result of the previous step, doing processing as if 180.3445 - the following <a>'feMerge'</a> was performed: 180.3446 - <pre class="examplesource"> <feMerge> 180.3447 - <feMergeNode/> 180.3448 - <feMergeNode in="<b>in-of-feDropShadow</b>"/> 180.3449 - </feMerge></pre> 180.3450 - </li> 180.3451 -</ol> 180.3452 -</p> 180.3453 - 180.3454 -<p class="note implementation">Note that while the definition of the <span 180.3455 -class="element-name">'feDropShadow'</span> filter primitive says that it can 180.3456 -be expanded into an equivalent tree it is not required that it is implemented 180.3457 -like that. The expectation is that user agents can optimize the handling by not having to do all the steps separately. 180.3458 -</p> 180.3459 - 180.3460 -<p>Beyond the DOM interface <a 180.3461 -href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> there is no way 180.3462 -of accessing the internals of the <a>'feDropShadow'</a> filter primitive, meaning <span class="requirement" id="assert_dropShadowShadowTrees">if the 180.3463 -filter primitive is implemented as an equivalent tree then that tree must not 180.3464 -be exposed to the DOM.</span> </p> 180.3465 - 180.3466 -<div class="adef-list"> 180.3467 -<p><em>Attribute definitions:</em></p> 180.3468 -<dl> 180.3469 - <dt id="feDropShadowDxAttribute"> 180.3470 - <span class="adef">dx</span> = "<em><a><number></a></em>"</dt> 180.3471 - <dd> 180.3472 - <p>The x offset of the drop shadow.</p> 180.3473 - <p>The <a>lacuna value</a> for <a>'feDropShadow/dx'</a> is <span class="attr-value">2</span>.</p> 180.3474 - <p>This attribute is then forwarded to the <a>'feOffset/dx'</a> attribute of the internal <a>'feOffset'</a> element.</p> 180.3475 - <p><span class="anim-target">Animatable: yes.</span></p> 180.3476 - </dd> 180.3477 - <dt id="feDropShadowDyAttribute"> 180.3478 - <span class="adef">dy</span> = "<em><a><number></a></em>"</dt> 180.3479 - <dd> 180.3480 - <p>The y offset of the drop shadow.</p> 180.3481 - <p>The <a>lacuna value</a> for <a>'feDropShadow/dy'</a> is <span class="attr-value">2</span>. </p> 180.3482 - <p>This attribute is then forwarded to the <a>'feOffset/dy'</a> attribute of the internal <a>'feOffset'</a> element.</p> 180.3483 - <p><span class="anim-target">Animatable: yes.</span></p> 180.3484 - </dd> 180.3485 - <dt id="feDropShadowStdDeviationAttribute"><span 180.3486 - class="adef">stdDeviation</span> = 180.3487 - "<em><a><number-optional-number></a></em>"</dt> 180.3488 - <dd> 180.3489 - <p>The standard deviation for the blur operation in the drop shadow.</p> 180.3490 - <p>The <a>lacuna value</a> for <a>'feDropShadow/stdDeviation'</a> is <span class="attr-value">2</span>.</p> 180.3491 - <p>This attribute is then forwarded to the <a>'feGaussianBlur/stdDeviation'</a> attribute of the internal 180.3492 - <a>'feGaussianBlur'</a> element.</p> 180.3493 - <p><span class="anim-target">Animatable: yes.</span></p> 180.3494 - </dd> 180.3495 -</dl> 180.3496 -</div> 180.3497 - 180.3498 -<div class="note"> 180.3499 -<h2 id="feDiffuseSpecularElement">Filter primitive <span 180.3500 -class="element-name">'feDiffuseSpecular'</span></h2> 180.3501 -The SVG WG is looking at providing a shorthand for diffuse+specular. 180.3502 -</div> 180.3503 - 180.3504 -<div class="note"> 180.3505 -<h2 id="feCustomElement">Filter primitive <span 180.3506 -class="element-name">'feCustom'</span></h2> 180.3507 -The SVG WG is looking to add a filter primitive that allows programmatic access 180.3508 -to the pixel data for a filter, e.g via OpenCL. 180.3509 -</div> 180.3510 - 180.3511 -<h2 id="RelaxNG">RelaxNG Schema for Filter Effects 1.0</h2> 180.3512 - 180.3513 -<p>The schema for Filter Effects 1.0 is written in <a 180.3514 -href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">RelaxNG</a> 180.3515 -[<a href="#ref-RNG">RelaxNG</a>], a namespace-aware schema language that uses 180.3516 -the datatypes from <a 180.3517 -href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema Part 180.3518 -2</a> [<a href="#ref-Schema2">Schema2</a>]. This allows namespaces and 180.3519 -modularity to be much more naturally expressed than using DTD syntax. The 180.3520 -RelaxNG schema for Filter Effects 1.0 may be imported by other RelaxNG schemas, 180.3521 -or combined with other schemas in other languages into a multi-namespace, 180.3522 -multi-grammar schema using <a 180.3523 -href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">Namespace-based Validation 180.3524 -Dispatching Language</a> [<a href="#ref-NVDL">NVDL</a>].</p> 180.3525 - 180.3526 -<p>Unlike a DTD, the schema used for validation is not hardcoded into the 180.3527 -document instance. There is no equivalent to the DOCTYPE declaration. Simply 180.3528 -point your editor or other validation tool to the IRI of the schema (or your 180.3529 -local cached copy, as you prefer).</p> 180.3530 - 180.3531 -<p> 180.3532 -The RNG is under construction, and only the individual RNG snippets are available at this time. They have not yet been integrated into a functional schema. The individual RNG files are available <a href="rng">here</a>. 180.3533 -</p> 180.3534 - 180.3535 -<h2 id="DOMInterfaces">DOM interfaces</h2> 180.3536 -<div class="note"> 180.3537 -The interfaces below will be made available in a IDL file for an upcoming draft. 180.3538 -</div> 180.3539 - 180.3540 -<!-- AUTO-GENERATED DOM INTERFACES GO HERE --> 180.3541 - 180.3542 -<h2 id="DOMInterfaces">DOM interfaces</h2> 180.3543 - 180.3544 -<h3 id="InterfaceImageData">Interface ImageData</h3> 180.3545 - 180.3546 -<edit:interface name='::svg::ImageData'/> 180.3547 - 180.3548 -<h3 id="InterfaceSVGFilterElement">Interface SVGFilterElement</h3> 180.3549 - 180.3550 -<edit:with element='filter'> 180.3551 -<edit:interface name='::svg::SVGFilterElement'/> 180.3552 -</edit:with> 180.3553 - 180.3554 -<h3 id="InterfaceSVGFilterPrimitiveStandardAttributes">Interface SVGFilterPrimitiveStandardAttributes</h3> 180.3555 - 180.3556 -<edit:with element='feTile'> 180.3557 -<edit:interface name='::svg::SVGFilterPrimitiveStandardAttributes'/> 180.3558 -</edit:with> 180.3559 - 180.3560 -<h3 id="InterfaceSVGFEBlendElement">Interface SVGFEBlendElement</h3> 180.3561 - 180.3562 -<edit:with element='feBlend'> 180.3563 -<edit:interface name='::svg::SVGFEBlendElement'/> 180.3564 -</edit:with> 180.3565 - 180.3566 -<h3 id="InterfaceSVGFEColorMatrixElement">Interface SVGFEColorMatrixElement</h3> 180.3567 - 180.3568 -<edit:with element='feColorMatrix'> 180.3569 -<edit:interface name='::svg::SVGFEColorMatrixElement'/> 180.3570 -</edit:with> 180.3571 - 180.3572 -<h3 id="InterfaceSVGFEComponentTransferElement">Interface SVGFEComponentTransferElement</h3> 180.3573 - 180.3574 -<edit:with element='feComponentTransfer'> 180.3575 -<edit:interface name='::svg::SVGFEComponentTransferElement'/> 180.3576 -</edit:with> 180.3577 - 180.3578 -<h3 id="InterfaceSVGComponentTransferFunctionElement">Interface SVGComponentTransferFunctionElement</h3> 180.3579 - 180.3580 -<edit:with element='feFuncR'> 180.3581 -<edit:interface name='::svg::SVGComponentTransferFunctionElement'/> 180.3582 -</edit:with> 180.3583 - 180.3584 -<h3 id="InterfaceSVGFEFuncRElement">Interface SVGFEFuncRElement</h3> 180.3585 - 180.3586 -<edit:with element='feFuncR'> 180.3587 -<edit:interface name='::svg::SVGFEFuncRElement'/> 180.3588 -</edit:with> 180.3589 - 180.3590 -<h3 id="InterfaceSVGFEFuncGElement">Interface SVGFEFuncGElement</h3> 180.3591 - 180.3592 -<edit:with element='feFuncG'> 180.3593 -<edit:interface name='::svg::SVGFEFuncGElement'/> 180.3594 -</edit:with> 180.3595 - 180.3596 -<h3 id="InterfaceSVGFEFuncBElement">Interface SVGFEFuncBElement</h3> 180.3597 - 180.3598 -<edit:with element='feFuncB'> 180.3599 -<edit:interface name='::svg::SVGFEFuncBElement'/> 180.3600 -</edit:with> 180.3601 - 180.3602 -<h3 id="InterfaceSVGFEFuncAElement">Interface SVGFEFuncAElement</h3> 180.3603 - 180.3604 -<edit:with element='feFuncA'> 180.3605 -<edit:interface name='::svg::SVGFEFuncAElement'/> 180.3606 -</edit:with> 180.3607 - 180.3608 -<h3 id="InterfaceSVGFECompositeElement">Interface SVGFECompositeElement</h3> 180.3609 - 180.3610 -<edit:with element='feComposite'> 180.3611 -<edit:interface name='::svg::SVGFECompositeElement'/> 180.3612 -</edit:with> 180.3613 - 180.3614 -<h3 id="InterfaceSVGFEConvolveMatrixElement">Interface SVGFEConvolveMatrixElement</h3> 180.3615 - 180.3616 -<edit:with element='feConvolveMatrix'> 180.3617 -<edit:interface name='::svg::SVGFEConvolveMatrixElement'/> 180.3618 -</edit:with> 180.3619 - 180.3620 -<h3 id="InterfaceSVGFEDiffuseLightingElement">Interface SVGFEDiffuseLightingElement</h3> 180.3621 - 180.3622 -<edit:with element='feDiffuseLighting'> 180.3623 -<edit:interface name='::svg::SVGFEDiffuseLightingElement'/> 180.3624 -</edit:with> 180.3625 - 180.3626 -<h3 id="InterfaceSVGFEDistantLightElement">Interface SVGFEDistantLightElement</h3> 180.3627 - 180.3628 -<edit:with element='feDistantLight'> 180.3629 -<edit:interface name='::svg::SVGFEDistantLightElement'/> 180.3630 -</edit:with> 180.3631 - 180.3632 -<h3 id="InterfaceSVGFEPointLightElement">Interface SVGFEPointLightElement</h3> 180.3633 - 180.3634 -<edit:with element='fePointLight'> 180.3635 -<edit:interface name='::svg::SVGFEPointLightElement'/> 180.3636 -</edit:with> 180.3637 - 180.3638 -<h3 id="InterfaceSVGFESpotLightElement">Interface SVGFESpotLightElement</h3> 180.3639 - 180.3640 -<edit:with element='feSpotLight'> 180.3641 -<edit:interface name='::svg::SVGFESpotLightElement'/> 180.3642 -</edit:with> 180.3643 - 180.3644 -<h3 id="InterfaceSVGFEDisplacementMapElement">Interface SVGFEDisplacementMapElement</h3> 180.3645 - 180.3646 -<edit:with element='feDisplacementMap'> 180.3647 -<edit:interface name='::svg::SVGFEDisplacementMapElement'/> 180.3648 -</edit:with> 180.3649 - 180.3650 -<h3 id="InterfaceSVGFEFloodElement">Interface SVGFEFloodElement</h3> 180.3651 - 180.3652 -<edit:with element='feFlood'> 180.3653 -<edit:interface name='::svg::SVGFEFloodElement'/> 180.3654 -</edit:with> 180.3655 - 180.3656 -<h3 id="InterfaceSVGFEGaussianBlurElement">Interface SVGFEGaussianBlurElement</h3> 180.3657 - 180.3658 -<edit:with element='feGaussianBlur'> 180.3659 -<edit:interface name='::svg::SVGFEGaussianBlurElement'/> 180.3660 -</edit:with> 180.3661 - 180.3662 -<h3 id="InterfaceSVGFEImageElement">Interface SVGFEImageElement</h3> 180.3663 - 180.3664 -<edit:with element='feImage'> 180.3665 -<edit:interface name='::svg::SVGFEImageElement'/> 180.3666 -</edit:with> 180.3667 - 180.3668 -<h3 id="InterfaceSVGFEMergeElement">Interface SVGFEMergeElement</h3> 180.3669 - 180.3670 -<edit:with element='feMerge'> 180.3671 -<edit:interface name='::svg::SVGFEMergeElement'/> 180.3672 -</edit:with> 180.3673 - 180.3674 -<h3 id="InterfaceSVGFEMergeNodeElement">Interface SVGFEMergeNodeElement</h3> 180.3675 - 180.3676 -<edit:with element='feMergeNode'> 180.3677 -<edit:interface name='::svg::SVGFEMergeNodeElement'/> 180.3678 -</edit:with> 180.3679 - 180.3680 -<h3 id="InterfaceSVGFEMorphologyElement">Interface SVGFEMorphologyElement</h3> 180.3681 - 180.3682 -<edit:with element='feMorphology'> 180.3683 -<edit:interface name='::svg::SVGFEMorphologyElement'/> 180.3684 -</edit:with> 180.3685 - 180.3686 -<h3 id="InterfaceSVGFEOffsetElement">Interface SVGFEOffsetElement</h3> 180.3687 - 180.3688 -<edit:with element='feOffset'> 180.3689 -<edit:interface name='::svg::SVGFEOffsetElement'/> 180.3690 -</edit:with> 180.3691 - 180.3692 -<h3 id="InterfaceSVGFESpecularLightingElement">Interface SVGFESpecularLightingElement</h3> 180.3693 - 180.3694 -<edit:with element='feSpecularLighting'> 180.3695 -<edit:interface name='::svg::SVGFESpecularLightingElement'/> 180.3696 -</edit:with> 180.3697 - 180.3698 -<h3 id="InterfaceSVGFETileElement">Interface SVGFETileElement</h3> 180.3699 - 180.3700 -<edit:with element='feTile'> 180.3701 -<edit:interface name='::svg::SVGFETileElement'/> 180.3702 -</edit:with> 180.3703 - 180.3704 -<h3 id="InterfaceSVGFETurbulenceElement">Interface SVGFETurbulenceElement</h3> 180.3705 - 180.3706 -<edit:with element='feTurbulence'> 180.3707 -<edit:interface name='::svg::SVGFETurbulenceElement'/> 180.3708 -</edit:with> 180.3709 - 180.3710 -<h3 id="InterfaceSVGFEDropShadowElement">Interface SVGFEDropShadowElement</h3> 180.3711 - 180.3712 -<edit:with element='feDropShadow'> 180.3713 -<edit:interface name='::svg::SVGFEDropShadowElement'/> 180.3714 -</edit:with> 180.3715 - 180.3716 -<h2 id="references1">References</h2> 180.3717 -<h3 id="normref">Normative References</h3> 180.3718 -<dl> 180.3719 - <dt id="ref-CSS21"><strong class="normref">[CSS21]</strong></dt> 180.3720 - <dd><strong>Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</strong>, 180.3721 - Bert Bos, Tantek Çelik, Ian Hickson, HÃ¥kon Wium Lie, eds., 180.3722 - W3C, 23 April 2009, (Candidate Recommendation) </dd> 180.3723 - 180.3724 - <dt id="ref-NVDL"><strong class="normref">[NVDL]</strong></dt> 180.3725 - <dd><strong>Document Schema Definition Languages (DSDL) — Part 4: 180.3726 - Namespace-based Validation Dispatching Language — NVDL. ISO/IEC FCD 180.3727 - 19757-4</strong>, See <a 180.3728 - href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/</a> 180.3729 - </dd> 180.3730 - 180.3731 - <dt id="ref-PORTERDUFF"><strong class="normref">[PORTERDUFF]</strong></dt> 180.3732 - <dd><strong>Compositing Digital Images</strong>, T. Porter, T. Duff, 180.3733 - SIGGRAPH '84 Conference Proceedings, Association for Computing 180.3734 - Machinery, Volume 18, Number 3, July 1984. </dd> 180.3735 - <dt id="ref-RNG"><strong class="normref">[RelaxNG]</strong></dt> 180.3736 - <dd><strong>Document Schema Definition Languages (DSDL) — Part 2: 180.3737 - Regular grammar- based validation — RELAX NG. ISO/IEC FDIS 180.3738 - 19757-2:2002(E)</strong>, J. Clark, <span class="ruby"><span 180.3739 - xml:lang="ja" lang="ja" class="rb">æ‘ç”° 真</span> <span 180.3740 - class="rp">(</span><span class="rt"><span 180.3741 - class="familyname">Murata</span> M.</span><span 180.3742 - class="rp">)</span></span>, eds., 12 December 2002. See <a 180.3743 - href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf</a> 180.3744 - </dd> 180.3745 - <dt id="ref-Schema2"><strong class="normref">[Schema2]</strong></dt> 180.3746 - <dd><strong>XML Schema Part 2: Datatypes Second Edition</strong>, P. 180.3747 - Biron, A. Malhotra, eds. W3C, 28 October 2004 (Recommendation). Latest 180.3748 - version available at <a 180.3749 - href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>. 180.3750 - See also <a 180.3751 - href="http://www.w3.org/TR/2005/NOTE-xml11schema10-20050511/">Processing 180.3752 - XML 1.1 documents with XML Schema 1.0 processors</a>. </dd> 180.3753 - <dt id="ref-svg11"><strong class="normref">[SVG11]</strong></dt> 180.3754 - <dd><strong>Scalable Vector Graphics (SVG) 1.1 Specification</strong>, 180.3755 - Dean Jackson editor, W3C, 14 January 2003 (Recommendation). See <a 180.3756 - href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">http://www.w3.org/TR/2003/REC-SVG11-20030114/</a> 180.3757 - </dd> 180.3758 - <dt id="ref-svgt12"><strong class="normref">[SVGT12]</strong></dt> 180.3759 - <dd><strong>Scalable Vector Graphics (SVG) Tiny 1.2 Specification</strong>, 180.3760 - Dean Jackson editor, W3C, 22 December 2008 (Recommendation). See <a 180.3761 - href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/">http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/</a> 180.3762 - </dd> 180.3763 -</dl> 180.3764 - 180.3765 -<h3 id="informref">Informative References</h3> 180.3766 -<dl> 180.3767 - <dt id="ref-html5"><strong class="informref">[HTML5]</strong></dt> 180.3768 - <dd><strong>HTML5</strong>, Ian Hickson editor, Google, 180.3769 - 10 June 2008 (Working Draft). See <a 180.3770 - href="http://www.w3.org/TR/2008/WD-html5-20080610/">http://www.w3.org/TR/2008/WD-html5-20080610/</a> 180.3771 - </dd> 180.3772 -</dl> 180.3773 - 180.3774 - <h2 id="changes">Changes</h2> 180.3775 - <p>For changes since the last published draft, see the public <a href="http://dev.w3.org/cvsweb/SVG/modules/filters/publish/">cvs log</a>.</p> 180.3776 -</body> 180.3777 -</html>
181.1 --- a/master/SVGFilterPrimer.html Thu Feb 24 10:19:12 2011 +0000 181.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 181.3 @@ -1,320 +0,0 @@ 181.4 -<?xml version="1.0" encoding="UTF-8"?> 181.5 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd"> 181.6 -<html xmlns="http://www.w3.org/1999/xhtml" 181.7 - xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en"> 181.8 -<head> 181.9 - <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 181.10 - <title>SVG Filters 1.2, Part 1: Primer</title> 181.11 - <link rel="stylesheet" type="text/css" href="style/svg-style.css" /> 181.12 - <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" /> 181.13 -</head> 181.14 - 181.15 -<body> 181.16 - 181.17 -<div class="head"> 181.18 - <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 181.19 - <h1 id="pagetitle">SVG Filters 1.2, Part 1: Primer</h1> 181.20 - <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2> 181.21 - <dl> 181.22 - <dt>This version:</dt> 181.23 - <dd><edit:thisversion/></dd> 181.24 - <dt>Latest version:</dt> 181.25 - <dd><edit:latestversion/></dd> 181.26 - <dt>Previous version:</dt> 181.27 - <dd><edit:previousversion/></dd> 181.28 - <dt>Editor:</dt> 181.29 - <dd>Erik Dahlström, Opera Software <<a href="mailto:ed@opera.com">ed@opera.com</a>></dd> 181.30 - <dt>Authors:</dt> 181.31 - <dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd> 181.32 - </dl> 181.33 - <edit:copyright/> 181.34 -</div> 181.35 - 181.36 -<hr/> 181.37 - 181.38 -<h2 id="abstract" edit:toc="no">Abstract </h2> 181.39 - 181.40 -<p> 181.41 -SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed. 181.42 -</p> 181.43 -<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO. 181.44 -</p> 181.45 -<p> 181.46 -This document introduces the features used by SVG filters. 181.47 -</p> 181.48 - 181.49 -<h2 id="status" edit:toc="no">Status of This Document </h2> 181.50 - 181.51 -<p><em>This section describes the status of this document at the time of its 181.52 -publication. Other documents may supersede this document. The latest status 181.53 -of this document series is maintained at the W3C. </em> </p> 181.54 - 181.55 -<p>This document is the first public working draft of this specification. </p> 181.56 - 181.57 -<p>This document has been produced by the <a 181.58 -href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of 181.59 -the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a> 181.60 -within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>. 181.61 -</p> 181.62 - 181.63 -<p>We explicitly invite comments on this specification. Please send them to 181.64 -<a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a> (<a 181.65 -href="http://lists.w3.org/Archives/Public/public-svg-filters/">archives</a>). 181.66 -For comments on the core SVG language, use <a 181.67 -href="mailto:www-svg@w3.org">www-svg@w3.org</a>: the public email list for 181.68 -issues related to vector graphics on the Web (<a 181.69 -href="http://lists.w3.org/Archives/Public/www-svg/">archives</a>). Acceptance 181.70 -of the archiving policy is requested automatically upon first post to either 181.71 -list. To subscribe to these lists send an email to <a 181.72 -href="mailto:public-svg-filters-request@w3.org">public-svg-filters-request@w3.org</a> 181.73 -or <a href="mailto:www-svg-request@w3.org">www-svg-request@w3.org</a> with 181.74 -the word subscribe in the subject line. </p> 181.75 - 181.76 -<p>The latest information regarding <a 181.77 -href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 181.78 -related to this document is available on the Web. As of this publication, the 181.79 -SVG Working Group are not aware of any royalty-bearing patents they believe 181.80 -to be essential to SVG. </p> 181.81 -<p>Publication of this document does not imply endorsement by the W3C 181.82 -membership. A list of current W3C Recommendations and other technical 181.83 -documents can be found at <a 181.84 -href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may 181.85 -be updated, replaced, or obsoleted by other documents at any time. It is 181.86 -inappropriate to cite a W3C Working Draft as anything other than a <em>work 181.87 -in progress</em>." </p> 181.88 - 181.89 -<h2 id="howto" edit:toc="no">How to read this document and give feedback </h2> 181.90 - 181.91 -<p>This is a primer for the SVG Filter specification. It gives guidelines on 181.92 -how to use the SVG Filter specification with SVG 1.2. In many cases the 181.93 -reader will have to be familiar with the <a 181.94 -href="http://www.w3.org/TR/SVG11/">SVG</a> language. </p> 181.95 - 181.96 -<p> 181.97 -This document is informative. 181.98 -</p> 181.99 - 181.100 -<h2 id="toc" edit:toc="no">Table of Contents</h2> 181.101 - 181.102 -<edit:fulltoc/> 181.103 - 181.104 -<h2 id="Introduction">Filters in SVG</h2> 181.105 - 181.106 -<p>Filter effects are defined by <a>'filter element'</a> elements. To apply a filter effect 181.107 -to a <a>graphics element</a> or a <a>container element</a>, you set the 181.108 -value of the <a>'filter property'</a> property on the given element such that 181.109 -it references the filter effect.</p> 181.110 - 181.111 -<p>Each <a>'filter element'</a> element contains a set of 181.112 -<span id="TermFilterPrimitive" class="SVG-Term">filter primitives</span> as its children. Each filter 181.113 -primitive performs a single fundamental graphical operation (e.g., a blur or 181.114 -a lighting effect) on one or more inputs, producing a graphical result. 181.115 -Because most of the filter primitives represent some form of image 181.116 -processing, in most cases the output from a filter primitive is a single RGBA 181.117 -image.</p> 181.118 - 181.119 -<p>The original source graphic or the result from a filter primitive can be 181.120 -used as input into one or more other filter primitives. A common application 181.121 -is to use the source graphic multiple times. For example, a simple filter 181.122 -could replace one graphic by two by adding a black copy of original source 181.123 -graphic offset to create a drop shadow. In effect, there are now two layers 181.124 -of graphics, both with the same original source graphics.</p> 181.125 - 181.126 -<p>When applied to <a>container elements</a> such as <a>'g'</a>, the <a>'filter property'</a> 181.127 -property applies to the contents of the 181.128 -group as a whole. The group's children do not render to the screen directly; 181.129 -instead, the graphics commands necessary to render the children are stored 181.130 -temporarily. Typically, the graphics commands are executed as part of the 181.131 -processing of the referenced <a>'filter element'</a> element via use of the keywords 181.132 -<a>SourceGraphic</a> or <a>SourceAlpha</a>. 181.133 -Filter effects can be applied to <a>container elements</a> with no 181.134 -content (e.g., an empty <a>'g'</a> element), in which case the 181.135 -<a>SourceGraphic</a> or <a>SourceAlpha</a> consist of a transparent black 181.136 -rectangle that is the size of the 181.137 -<a>filter effects region</a>.</p> 181.138 - 181.139 -<p>Sometimes filter primitives result in undefined pixels. For example, 181.140 -filter primitive <a>'feOffset'</a> can shift an image down and to the 181.141 -right, leaving undefined pixels at the top and left. In these cases, the 181.142 -undefined pixels are set to transparent black.</p> 181.143 - 181.144 -<h2 id="Example">An example</h2> 181.145 - 181.146 -<p>The following shows an example of a filter effect.</p> 181.147 - 181.148 -<p><span class="example-ref">Example filters01</span> - introducing filter 181.149 -effects.</p> 181.150 - 181.151 -<edit:example href="examples/filters01.svg" image="yes" link="yes"/> 181.152 - 181.153 -<p>The filter effect used in the example above is repeated here with 181.154 -reference numbers in the left column before each of the six filter 181.155 -primitives:</p> 181.156 - 181.157 -<table summary="filter example with reference numbers"> 181.158 - <tbody> 181.159 - <tr> 181.160 - <td valign="top"><pre style="color:black"> 181.161 - 181.162 -1 181.163 -2 181.164 -3 181.165 - 181.166 - 181.167 - 181.168 - 181.169 -4 181.170 -5 181.171 - 181.172 -6 181.173 - 181.174 - 181.175 - </pre> 181.176 - </td> 181.177 - <td valign="top"><pre><filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 181.178 - <desc>Produces a 3D lighting effect.</desc> 181.179 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 181.180 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 181.181 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 181.182 - specularExponent="20" lighting-color="#bbbbbb" 181.183 - result="specOut"> 181.184 - <fePointLight x="-5000" y="-10000" z="20000"/> 181.185 - </feSpecularLighting> 181.186 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 181.187 - <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 181.188 - k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 181.189 - <feMerge> 181.190 - <feMergeNode in="offsetBlur"/> 181.191 - <feMergeNode in="litPaint"/> 181.192 - </feMerge> 181.193 -</filter></pre> 181.194 - </td> 181.195 - </tr> 181.196 - </tbody> 181.197 -</table> 181.198 - 181.199 -<p>The following pictures show the intermediate image results from each of 181.200 -the six filter elements:</p> 181.201 - 181.202 -<table summary="filter example intermediate results"> 181.203 - <tbody> 181.204 - <tr> 181.205 - <td><p><img width="115" height="70" 181.206 - alt="filters01 - original source graphic" 181.207 - src="examples/filters01-0.png" /><br /> 181.208 - Source graphic</p> 181.209 - </td> 181.210 - <td> </td> 181.211 - <td><p><img width="115" height="70" 181.212 - alt="filters01 - after filter element 1" 181.213 - src="examples/filters01-1.png" /><br /> 181.214 - After filter primitive 1</p> 181.215 - </td> 181.216 - <td> </td> 181.217 - <td><p><img width="115" height="70" 181.218 - alt="filters01 - after filter element 2" 181.219 - src="examples/filters01-2.png" /><br /> 181.220 - After filter primitive 2</p> 181.221 - </td> 181.222 - <td> </td> 181.223 - <td><p><img width="115" height="70" 181.224 - alt="filters01 - after filter element 3" 181.225 - src="examples/filters01-3.png" /><br /> 181.226 - After filter primitive 3</p> 181.227 - </td> 181.228 - </tr> 181.229 - <tr> 181.230 - <td> </td> 181.231 - <td> </td> 181.232 - <td></td> 181.233 - <td></td> 181.234 - <td></td> 181.235 - <td></td> 181.236 - <td></td> 181.237 - </tr> 181.238 - <tr> 181.239 - <td> </td> 181.240 - <td> </td> 181.241 - <td><p><img width="115" height="70" 181.242 - alt="filters01 - after filter element 4" 181.243 - src="examples/filters01-4.png" /><br /> 181.244 - After filter primitive 4</p> 181.245 - </td> 181.246 - <td> </td> 181.247 - <td><p><img width="115" height="70" 181.248 - alt="filters01 - after filter element 5" 181.249 - src="examples/filters01-5.png" /><br /> 181.250 - After filter primitive 5</p> 181.251 - </td> 181.252 - <td> </td> 181.253 - <td><p><img width="115" height="70" 181.254 - alt="filters01 - after filter element 6" 181.255 - src="examples/filters01-6.png" /><br /> 181.256 - After filter primitive 6</p> 181.257 - </td> 181.258 - </tr> 181.259 - </tbody> 181.260 -</table> 181.261 -<ol> 181.262 - <li>Filter primitive <a>'feGaussianBlur'</a> takes input <a>SourceAlpha</a>, 181.263 - which is the alpha channel of 181.264 - the source graphic. The result is stored in a temporary buffer named 181.265 - "blur". Note that "blur" is used as input to both filter primitives 2 and 181.266 - 3.</li> 181.267 - <li>Filter primitive <a>'feOffset'</a> takes buffer "blur", shifts 181.268 - the result in a positive direction in both x and y, and creates a new 181.269 - buffer named "offsetBlur". The effect is that of a drop shadow.</li> 181.270 - <li>Filter primitive <a>'feSpecularLighting'</a>, uses buffer "blur" 181.271 - as a model of a surface elevation and generates a lighting effect from a 181.272 - single point source. The result is stored in buffer "specOut".</li> 181.273 - <li>Filter primitive <a>'feComposite'</a> masks out the result of 181.274 - filter primitive 3 by the original source graphics alpha channel so that 181.275 - the intermediate result is no bigger than the original source 181.276 - graphic.</li> 181.277 - <li>Filter primitive <a>'feComposite'</a> composites the result of 181.278 - the specular lighting with the original source graphic.</li> 181.279 - <li>Filter primitive <a>'feMerge'</a> composites two layers together. 181.280 - The lower layer consists of the drop shadow result from filter primitive 181.281 - 2. The upper layer consists of the specular lighting result from filter 181.282 - primitive 5.</li> 181.283 -</ol> 181.284 - 181.285 -<h2 id="feGaussianBlurElement">Filter primitive <span 181.286 -class="element-name">'feGaussianBlur'</span></h2> 181.287 - 181.288 -<p> 181.289 - The <a>'feGaussianBlur'</a> filter primitive can be used to create blur effects. 181.290 - Below is an example where the blur is applied only in one direction, which can 181.291 - give better performance in some <a>user agents</a>. 181.292 - <edit:example href="examples/feGaussianBlur-stdDeviation-00.svg" image="yes" link="yes"/> 181.293 -</p> 181.294 - 181.295 -<p>The blur filter can also be used for creating the impression of something being in motion, as in this example. 181.296 - <edit:example href="examples/feGaussianBlur-motion-00.svg" image="yes" link="yes"/> 181.297 -</p> 181.298 - 181.299 -<h2 id="references">References </h2> 181.300 -<dl> 181.301 - <dt id="SVG12Full">SVG12</dt> 181.302 - <dd><strong>Scalable Vector Graphics (SVG) 1.2 Specification</strong>, 181.303 - Dean Jackson editor, W3C, 27 October 2004 (Working Draft). See <a 181.304 - href="http://www.w3.org/TR/2004/WD-SVG12-20041027/">http://www.w3.org/TR/2004/WD-SVG12-20041027/</a> 181.305 - </dd> 181.306 - <dt id="SVG12Requirements">SVG12Reqs</dt> 181.307 - <dd><strong>SVG 1.1/1.2/2.0 Requirements</strong>, Dean Jackson editor, 181.308 - W3C, 22 April 2002 (Working Draft). See <a 181.309 - href="http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/">http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/</a> 181.310 - </dd> 181.311 - <dt id="SVGFilterRequirements">SVGFilterReqs</dt> 181.312 - <dd><strong>SVG Filter Requirements</strong>, Erik Dahlström, W3C, 3 May 2007 181.313 - (Working Draft). See <a 181.314 - href="http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/</a> 181.315 - </dd> 181.316 - <dt id="SVG12Filter">SVG12Filters</dt> 181.317 - <dd><strong>SVG Filters 1.2</strong>, Erik Dahlström editor, W3C, 3 May 2007 (Working Draft). See <a 181.318 - href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a> 181.319 - </dd> 181.320 -</dl> 181.321 - 181.322 -</body> 181.323 -</html>
182.1 --- a/master/SVGFilterReqs.html Thu Feb 24 10:19:12 2011 +0000 182.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 182.3 @@ -1,305 +0,0 @@ 182.4 -<?xml version="1.0" encoding="UTF-8"?> 182.5 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd"> 182.6 -<html xmlns="http://www.w3.org/1999/xhtml" 182.7 - xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en"> 182.8 -<head> 182.9 - <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 182.10 - <title>SVG Filter Requirements</title> 182.11 - <style type="text/css"> 182.12 - 182.13 - .designgoals { 182.14 - list-style-type: decimal; 182.15 - } 182.16 - 182.17 - .req-level1 { 182.18 - list-style-type: decimal; 182.19 - font-weight: bold; 182.20 - } 182.21 - 182.22 - .req-level2 { 182.23 - list-style-type: decimal; 182.24 - font-weight: normal; 182.25 - } 182.26 - 182.27 - .req-level1 li { 182.28 - margin-top: 1em; 182.29 - } 182.30 - 182.31 - .req-level2 li { 182.32 - margin-top: 0em; 182.33 - } 182.34 - 182.35 - .label { 182.36 - margin-top: 1em; 182.37 - } 182.38 - 182.39 - .comment { 182.40 - background: #ffffaa; 182.41 - } 182.42 - 182.43 - .svgversion { 182.44 - color: #336633; 182.45 - font-weight: bold; 182.46 - } 182.47 - 182.48 - .term { 182.49 - font-weight: bold; 182.50 - color: #aa3333; 182.51 - } 182.52 - 182.53 - .issue { 182.54 - color: #ff0000; 182.55 - } 182.56 - 182.57 - </style> 182.58 - <link type="text/css" rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/base" /> 182.59 -</head> 182.60 - 182.61 -<body> 182.62 - 182.63 -<div class="head"> 182.64 - <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 182.65 - <h1 id="pagetitle">SVG Filter Requirements</h1> 182.66 - <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2> 182.67 - <dl> 182.68 - <dt>This version:</dt> 182.69 - <dd><edit:thisversion/></dd> 182.70 - <dt>Latest version:</dt> 182.71 - <dd><edit:latestversion/></dd> 182.72 - <dt>Previous version:</dt> 182.73 - <dd><edit:previousversion/></dd> 182.74 - <dt>Editor:</dt> 182.75 - <dd>Erik Dahlström, Opera Software <<a href="mailto:ed@opera.com">ed@opera.com</a>></dd> 182.76 - <dt>Authors:</dt> 182.77 - <dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd> 182.78 - </dl> 182.79 - <edit:copyright/> 182.80 -</div> 182.81 - 182.82 -<hr/> 182.83 - 182.84 -<h2 id="sec-abstract" edit:toc="no">Abstract</h2> 182.85 - 182.86 -<p>This document lists the design principles and requirements for the 182.87 -creation of a SVG specification related to filters. </p> 182.88 - 182.89 -<h2 id="sec-status" edit:toc="no">Status of this Document</h2> 182.90 - 182.91 -<p>This is a W3C Working Draft for review by W3C Members and other interested 182.92 -parties. It is a draft document and may be updated, replaced or made obsolete 182.93 -by other documents at any time. It is inappropriate to use W3C Working Drafts 182.94 -as reference material or to cite them as other than "work in progress". A 182.95 -list of current W3C Recommendations and other technical documents, including 182.96 -Working Drafts and Notes, can be found at <a 182.97 -href="http://www.w3.org/TR/">http://www.w3.org/TR/</a> </p> 182.98 - 182.99 -<p>This is the first release of the SVG Filter Requirements. It is expected 182.100 -that this document will progress through a number of working drafts, 182.101 -including "Last Call", before being published in final form. </p> 182.102 - 182.103 -<p>This document was developed by the <a 182.104 -href="http://www.w3.org/Graphics/SVG/">Scalable Vector Graphics</a> (SVG) 182.105 -working group as part of the W3C <a 182.106 -href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>. The authors 182.107 -of this document are the SVG Working Group members. </p> 182.108 - 182.109 -<p>Feedback on this document should be sent to the email list <a 182.110 -href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a>. This 182.111 -is an archived public list specific to the issues of SVG Filters. Public 182.112 -discussion of issues related to vector graphics on the Web and SVG in 182.113 -particular takes place on the <a href="mailto:www-svg@w3.org">the public 182.114 -mailing list of the SVG Working Group</a> (<a 182.115 -href="http://lists.w3.org/Archives/Public/www-svg/">list archives</a>). To 182.116 -subscribe send an email to <code>www-svg-request@w3.org</code> with the word 182.117 -<code>subscribe</code> in the subject line. </p> 182.118 - 182.119 -<p>The latest information regarding <a rel="disclosures" 182.120 -href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 182.121 -related to this document is available on the Web. As of this publication, the 182.122 -SVG Working Group are not aware of any royalty-bearing patents they believe 182.123 -to be essential to SVG. </p> 182.124 - 182.125 -<p><em>This section represents the status of this document at the time this 182.126 -version was published. It will become outdated if and when a new version is 182.127 -published. The latest status is maintained at the W3C. </em> </p> 182.128 - 182.129 -<h2 id="toc" edit:toc="no">Table of Contents</h2> 182.130 - 182.131 -<edit:fulltoc/> 182.132 - 182.133 -<div class="div1"> 182.134 -<h2 id="sec-introduction">Introduction </h2> 182.135 - 182.136 -<p>The 182.137 -<a href="http://www.w3.org/TR/SVG11">SVG specification</a> is a W3C 182.138 -recommendation that describes two-dimensional graphics in XML. </p> 182.139 -</div> 182.140 - 182.141 -<div class="div1"> 182.142 -<h2 id="sec-terminology">Terminology </h2> 182.143 - 182.144 -<p>The following key words and phrases used throughout this document are 182.145 -defined here for clarity. The terms Must, Should, and May are used to specify 182.146 -the extent to which an item is a requirement for the SVG working group in 182.147 -defining SVGP. These recommendations should not be mistaken as a guide to 182.148 -implementors. </p> 182.149 -<ol> 182.150 - <li><b>'Must'</b> means that the item is an absolute requirement. </li> 182.151 - <li><b>'Should'</b> means that there may exist valid reasons in particular 182.152 - circumstances to ignore the item, but the full implications must be 182.153 - understood and carefully weighed before choosing a different course. </li> 182.154 - <li><b>'May' </b> means that item will be considered, but further 182.155 - examination is needed to determine if the item should be treated as a 182.156 - requirement. </li> 182.157 - <li><b>'SVG' </b> refers to SVG in general without reference to any version 182.158 - or profile. </li> 182.159 - <li><b>'SVG 1.0' </b> refers to the original SVG specification. </li> 182.160 - <li><b>'SVG 1.1' </b> refers to the modularized version of SVG 1.0. </li> 182.161 - <li><b>'SVG 1.2' </b> refers to the next release of SVG and is planned to 182.162 - reference this specification. </li> 182.163 - <li><b>'SVGF' </b> refers to SVG Filter, an SVG specification for 182.164 - filtering. </li> 182.165 -</ol> 182.166 -</div> 182.167 - 182.168 -<div class="div1"> 182.169 -<h2 id="sec-usage">Usage Scenarios </h2> 182.170 - 182.171 -<p>The following usage scenarios illustrate some of the ways in which SVG 182.172 -Filters might be used for various applications. </p> 182.173 - 182.174 -<p><b>Making drop shadows</b> Filtering the input (e.g. text or bitmaps) to 182.175 -produce drop shadows. </p> 182.176 -<p><b>Changing color tone</b> Filtering the input to become e.g. sepia-toned or black and white.</p> 182.177 -</div> 182.178 - 182.179 -<div class="div1"> 182.180 -<h2 id="sec-features">Special Filter Considerations</h2> 182.181 - 182.182 -<p><b>Memory and processor requirements</b> A filter effect may require 182.183 -significant memory or processing resources. </p> 182.184 -</div> 182.185 - 182.186 -<div class="div1"> 182.187 -<h2 id="sec-requirements">Requirements</h2> 182.188 -<ol class="req-level1"> 182.189 - <li>General Requirements 182.190 - <ol class="req-level2"> 182.191 - <li>Any valid SVG 1.1 filter <span class="term">must</span> be a valid 182.192 - SVGF filter. </li> 182.193 - <li>Conformance criteria for SVGF <span class="term">must</span> be 182.194 - produced. The criteria <span class="term">should</span> be separated 182.195 - into sections relevant to particular application types (eg. SVG 182.196 - files/document fragments, SVG generators, SVG viewers, SVG printers, 182.197 - etc.) </li> 182.198 - <li>Software or documents <span class="term">must</span> pass the 182.199 - relevant criteria to be able to claim conformance to the particular 182.200 - application type. </li> 182.201 - <li>A conformance test suite <span class="term">must</span> be 182.202 - developed for SVGF. The test suite must be made publicly available. 182.203 - Conformance test suites for other uses of SVGF (e.g. prepress 182.204 - guidelines) <span class="term">may</span> be developed. </li> 182.205 - <li>A specification referencing SVGF <span class="term">may</span> 182.206 - declare that 'enableBackground' is not supported when used in 182.207 - conjunction with that specification. If so, then support for 182.208 - 'backgroundAlpha' and 'backgroundImage' <span 182.209 - class="term">must</span> be excluded as well. </li> 182.210 - <li>A specification referencing SVGF <span class="term">must</span> 182.211 - declare if animations applies when a 'filter' chain is in its scope. 182.212 - </li> 182.213 - </ol> 182.214 - </li> 182.215 - <li>Scripting 182.216 - <ol class="req-level2"> 182.217 - <li>A dynamic SVGF viewer <span class="term">must</span> support the 182.218 - SVGF scripting feature set. </li> 182.219 - </ol> 182.220 - </li> 182.221 - <li>Animation 182.222 - <ol class="req-level2"> 182.223 - <li>A dynamic SVGF viewer <span class="term">must</span> support animation of all 182.224 - properties listed as animatable. </li> 182.225 - </ol> 182.226 - </li> 182.227 -</ol> 182.228 -</div> 182.229 - 182.230 -<div class="div1"> 182.231 -<h2 id="sec-references">References</h2> 182.232 -<dl class="references"> 182.233 - <dt class="label" id="ref-svg">SVG 1.1</dt> 182.234 - <dd><em>Scalable Vector Graphics (SVG) 1.1 Specification</em>, Jon 182.235 - Ferraiolo, Jun Fujisawa, Dean Jackson, editors, W3C, 14 January 2003 182.236 - (Recommendation). See <a 182.237 - href="http://www.w3.org/TR/SVG11/">http://www.w3.org/TR/SVG11/</a> </dd> 182.238 - <dt class="label" id="ref-svgreqs">SVG 1.1/1.2/2.0 182.239 - Requirements</dt> 182.240 - <dd><em>SVG 1.1/1.2/2.0 Requirements Document</em>, Dean Jackson, editor, 182.241 - W3C, 22 April 2002. See <a 182.242 - href="http://www.w3.org/TR/SVG2Reqs/">http://www.w3.org/TR/SVG2Reqs/</a> 182.243 - </dd> 182.244 - <dt class="label" id="ref-svgmobilereqs">Mobile SVG Profiles</dt> 182.245 - <dd><em>Mobile SVG Profiles: SVG Tiny and SVG Basic</em>, Tolga Capin, 182.246 - editor, W3C, 14 January 2003 (Recommendation). See <a 182.247 - href="http://www.w3.org/TR/SVGMobile">http://www.w3.org/TR/SVGMobile</a> 182.248 - </dd> 182.249 -</dl> 182.250 -</div> 182.251 -<hr class="xhtml" /> 182.252 - 182.253 -<h2 id="sec-authorlist">Author List</h2> 182.254 - 182.255 -<p>The authors of this specification are the participants of the W3C SVG 182.256 -Working Group.</p> 182.257 -<dl> 182.258 - <dt>Authors:</dt> 182.259 - <dd><ul> 182.260 - <li>Ola Andersson, ZOOMON AB</li> 182.261 - <li>Henric Axelsson, Ericsson AB</li> 182.262 - <li>Phil Armstrong, Corel Corporation</li> 182.263 - <li>Robin Berjon, Expway</li> 182.264 - <li>Benoît Bézaire, Corel Corporation</li> 182.265 - <li>Craig Brown, Canon Information Systems Research Australia</li> 182.266 - <li>Mike Bultrowicz, Savage Software</li> 182.267 - <li>Tolga Capin, Nokia Inc.</li> 182.268 - <li>Mathias Larsson Carlander, Ericsson AB</li> 182.269 - <li>Jakob Cederquist, ZOOMON AB</li> 182.270 - <li>Charilaos Christopoulos, Ericsson AB</li> 182.271 - <li>Lee Cole, Quark</li> 182.272 - <li>Don Cone, America Online Inc.</li> 182.273 - <li>Alex Danilo, Canon Information Systems Research Australia</li> 182.274 - <li>Thomas DeWeese, Eastman Kodak</li> 182.275 - <li>Jon Ferraiolo, Adobe Systems Inc.</li> 182.276 - <li>Darryl Fuller, Schema Software</li> 182.277 - <li>藤沢 æ·³ (FUJISAWA Jun), Canon</li> 182.278 - <li>Rick Graham, BitFlash</li> 182.279 - <li>Vincent Hardy, Sun Microsystems Inc.</li> 182.280 - <li>端山 貴也 (HAYAMA Takanari), KDDI Research Labs</li> 182.281 - <li>Lofton Henderson, OASIS</li> 182.282 - <li>石å·é›…康 (ISHIKAWA Masayasu), W3C</li> 182.283 - <li>Dean Jackson, W3C/CSIRO (<i>W3C Team Contact</i>)</li> 182.284 - <li>Christophe Jolif, ILOG S.A.</li> 182.285 - <li>Lee Klosterman, Hewlett-Packard</li> 182.286 - <li>å°æž— 亜令 (KOBAYASHI Arei), KDDI Research Labs</li> 182.287 - <li>Thierry Kormann, ILOG S.A.</li> 182.288 - <li>Yuri Khramov, Schema Software</li> 182.289 - <li>Chris Lilley, W3C (<i>Working Group Chair</i>)</li> 182.290 - <li>Philip Mansfield, Schema Software</li> 182.291 - <li>Peter Mierau, Adobe Systems Inc.</li> 182.292 - <li>æ°´å£ å…… (MINAKUCHI Mitsuru), Sharp Corporation</li> 182.293 - <li>Luc Minnebo, Agfa-Gevaert N.V.</li> 182.294 - <li>å°é‡Ž 修一郎 (ONO Shuichiro), Sharp Corporation</li> 182.295 - <li>Antoine Quint, Fuchsia Design (formerly of ILOG)</li> 182.296 - <li>相良 毅 (SAGARA Takeshi), KDDI Research Labs</li> 182.297 - <li>Brad Sipes, ZOOMON AB</li> 182.298 - <li>Peter Sorotokin, Adobe Systems Inc.</li> 182.299 - <li>上田 å®é«˜ (UEDA Hirotaka), Sharp Corporation</li> 182.300 - <li>Rick Yardumian, Canon Development Americas</li> 182.301 - <li>Charles Ying, Openwave Systems, Inc.</li> 182.302 - </ul> 182.303 - </dd> 182.304 -</dl> 182.305 -</body> 182.306 -<!-- SVG Printing Requirements Document --> 182.307 -<!-- $Id$ --> 182.308 -</html>
183.1 --- a/master/definitions-primer.xml Thu Feb 24 10:19:12 2011 +0000 183.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 183.3 @@ -1,11 +0,0 @@ 183.4 -<!-- Definitions file for SVG Filters 1.2 Primer --> 183.5 - 183.6 -<definitions xmlns='http://mcc.id.au/ns/local'> 183.7 - 183.8 - <import 183.9 - href='http://www.w3.org/TR/2009/WD-SVGFilter12-2009xxxx/' 183.10 - cvs-href='SVGFilter.html' 183.11 - definitions='definitions.xml' 183.12 - /> 183.13 - 183.14 -</definitions>
184.1 --- a/master/definitions.xml Thu Feb 24 10:19:12 2011 +0000 184.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 184.3 @@ -1,467 +0,0 @@ 184.4 -<!-- Definitions file for SVG Filters 1.2 Language --> 184.5 - 184.6 -<definitions xmlns='http://mcc.id.au/ns/local'> 184.7 - 184.8 - <import 184.9 - href='http://www.w3.org/TR/2003/REC-SVG11-20030114/' 184.10 - definitions='../../../../SVG/profiles/1.1F2/master/definitions.xml' 184.11 - /> 184.12 - 184.13 - <import 184.14 - href='http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/' 184.15 - definitions='../../../../SVG/profiles/1.2T/master/definitions.xml' 184.16 - /> 184.17 - 184.18 - <!-- ... elements and element-specific attributes ....................... --> 184.19 - <element 184.20 - name='feBlend' 184.21 - href='#feBlendElement' 184.22 - contentmodel='anyof' 184.23 - elements='animate, set' 184.24 - attributecategories='core, style, presentation, filter primitive' 184.25 - attributes='in' 184.26 - interfaces='SVGFEBlendElement'> 184.27 - <attribute name='in2' href='#feBlendIn2Attribute'/> 184.28 - <attribute name='mode' href='#feBlendModeAttribute'/> 184.29 - </element> 184.30 - 184.31 - <element 184.32 - name='feColorMatrix' 184.33 - href='#feColorMatrixElement' 184.34 - contentmodel='anyof' 184.35 - elements='animate, set' 184.36 - attributecategories='core, style, presentation, filter primitive' 184.37 - attributes='in' 184.38 - interfaces='SVGFEColorMatrixElement'> 184.39 - <attribute name='type' href='#feColorMatrixTypeAttribute'/> 184.40 - <attribute name='values' href='#feColorMatrixValuesAttribute'/> 184.41 - </element> 184.42 - 184.43 - <element 184.44 - name='feComponentTransfer' 184.45 - href='#feComponentTransferElement' 184.46 - contentmodel='anyof' 184.47 - elements='feFuncR, feFuncG, feFuncB, feFuncA' 184.48 - attributecategories='core, style, presentation, filter primitive' 184.49 - attributes='in' 184.50 - interfaces='SVGFEComponentTransferElement'/> 184.51 - 184.52 - <element 184.53 - name='feComposite' 184.54 - href='#feCompositeElement' 184.55 - contentmodel='anyof' 184.56 - elements='animate, set' 184.57 - attributecategories='core, style, presentation, filter primitive' 184.58 - attributes='in' 184.59 - interfaces='SVGFECompositeElement'> 184.60 - <attribute name='in2' href='#feCompositeIn2Attribute'/> 184.61 - <attribute name='operator' href='#feCompositeOperatorAttribute'/> 184.62 - <attribute name='k1' href='#feCompositeK1Attribute'/> 184.63 - <attribute name='k2' href='#feCompositeK2Attribute'/> 184.64 - <attribute name='k3' href='#feCompositeK3Attribute'/> 184.65 - <attribute name='k4' href='#feCompositeK4Attribute'/> 184.66 - </element> 184.67 - 184.68 - <element 184.69 - name='feConvolveMatrix' 184.70 - href='#feConvolveMatrixElement' 184.71 - contentmodel='anyof' 184.72 - elements='animate, set' 184.73 - attributecategories='core, style, presentation, filter primitive' 184.74 - attributes='in' 184.75 - interfaces='SVGFEConvolveMatrixElement'> 184.76 - <attribute name='order' href='#feConvolveMatrixElementOrderAttribute'/> 184.77 - <attribute name='kernelMatrix' href='#feConvolveMatrixElementKernelMatrixAttribute'/> 184.78 - <attribute name='divisor' href='#feConvolveMatrixElementDivisorAttribute'/> 184.79 - <attribute name='bias' href='#feConvolveMatrixElementBiasAttribute'/> 184.80 - <attribute name='targetX' href='#feConvolveMatrixElementTargetXAttribute'/> 184.81 - <attribute name='targetY' href='#feConvolveMatrixElementTargetYAttribute'/> 184.82 - <attribute name='edgeMode' href='#feConvolveMatrixElementEdgeModeAttribute'/> 184.83 - <attribute name='kernelUnitLength' href='#feConvolveMatrixElementKernelUnitLengthAttribute'/> 184.84 - <attribute name='preserveAlpha' href='#feConvolveMatrixElementPreserveAlphaAttribute'/> 184.85 - </element> 184.86 - 184.87 - <element 184.88 - name='feDiffuseLighting' 184.89 - href='#feDiffuseLightingElement' 184.90 - contentmodel='anyof' 184.91 - elementcategories='light source' 184.92 - elements='animate, set, animateColor' 184.93 - attributecategories='core, style, presentation, filter primitive' 184.94 - attributes='in' 184.95 - interfaces='SVGFEDiffuseLightingElement'> 184.96 - <attribute name='surfaceScale' href='#feDiffuseLightingSurfaceScaleAttribute'/> 184.97 - <attribute name='diffuseConstant' href='#feDiffuseLightingDiffuseConstantAttribute'/> 184.98 - <attribute name='kernelUnitLength' href='#feDiffuseLightingKernelUnitLengthAttribute'/> 184.99 - </element> 184.100 - 184.101 - <element 184.102 - name='feDisplacementMap' 184.103 - href='#feDisplacementMapElement' 184.104 - contentmodel='anyof' 184.105 - elements='animate, set' 184.106 - attributecategories='core, style, presentation, filter primitive' 184.107 - attributes='in' 184.108 - interfaces='SVGFEDisplacementMapElement'> 184.109 - <attribute name='in2' href='#feDisplacementMapIn2Attribute'/> 184.110 - <attribute name='scale' href='#feDisplacementMapScaleAttribute'/> 184.111 - <attribute name='xChannelSelector' href='#feDisplacementMapXChannelSelectorAttribute'/> 184.112 - <attribute name='yChannelSelector' href='#feDisplacementMapYChannelSelectorAttribute'/> 184.113 - </element> 184.114 - 184.115 - <element 184.116 - name='feDistantLight' 184.117 - href='#feDistantLightElement' 184.118 - contentmodel='anyof' 184.119 - elements='animate, set' 184.120 - attributecategories='core' 184.121 - interfaces='SVGFEDistantLightElement'> 184.122 - <attribute name='azimuth' href='#feDistantLightAzimuthAttribute'/> 184.123 - <attribute name='elevation' href='#feDistantLightElevationAttribute'/> 184.124 - </element> 184.125 - 184.126 - <element 184.127 - name='feFlood' 184.128 - href='#feFloodElement' 184.129 - contentmodel='anyof' 184.130 - elements='animate, set, animateColor' 184.131 - attributecategories='core, style, presentation, filter primitive' 184.132 - interfaces='SVGFEFloodElement'/> 184.133 - 184.134 - <element 184.135 - name='feFuncR' 184.136 - contentmodel='anyof' 184.137 - elements='animate, set' 184.138 - attributecategories='core, transfer function element' 184.139 - interfaces='SVGFEFuncRElement'/> 184.140 - 184.141 - <element 184.142 - name='feFuncG' 184.143 - contentmodel='anyof' 184.144 - elements='animate, set' 184.145 - attributecategories='core, transfer function element' 184.146 - interfaces='SVGFEFuncGElement'/> 184.147 - 184.148 - <element 184.149 - name='feFuncB' 184.150 - contentmodel='anyof' 184.151 - elements='animate, set' 184.152 - attributecategories='core, transfer function element' 184.153 - interfaces='SVGFEFuncBElement'/> 184.154 - 184.155 - <element 184.156 - name='feFuncA' 184.157 - contentmodel='anyof' 184.158 - elements='animate, set' 184.159 - attributecategories='core, transfer function element' 184.160 - interfaces='SVGFEFuncAElement'/> 184.161 - 184.162 - <element 184.163 - name='feGaussianBlur' 184.164 - href='#feGaussianBlurElement' 184.165 - contentmodel='anyof' 184.166 - elements='animate, set' 184.167 - attributecategories='core, style, presentation, filter primitive' 184.168 - attributes='in' 184.169 - interfaces='SVGFEGaussianBlurElement'> 184.170 - <attribute name='stdDeviation' href='#feGaussianBlurStdDeviationAttribute'/> 184.171 - </element> 184.172 - 184.173 - <element 184.174 - name='feUnsharpMask' 184.175 - href='#feUnsharpMaskElement' 184.176 - contentmodel='anyof' 184.177 - elements='animate, set' 184.178 - attributecategories='core, style, presentation, filter primitive' 184.179 - attributes='in' 184.180 - interfaces='SVGFEUnsharpMaskElement'> 184.181 - <attribute name='amount' href='#feUnsharpMaskAmountAttribute'/> 184.182 - <attribute name='threshold' href='#feUnsharpMaskThresholdAttribute'/> 184.183 - <attribute name='stdDeviation' href='#feUnsharpMaskStdDeviationAttribute'/> 184.184 - </element> 184.185 - 184.186 - <element 184.187 - name='feImage' 184.188 - href='#feImageElement' 184.189 - contentmodel='anyof' 184.190 - elements='animate, set, animateTransform' 184.191 - attributecategories='core, style, presentation, filter primitive, xlink' 184.192 - attributes='externalResourcesRequired, preserveAspectRatio' 184.193 - interfaces='SVGFEImageElement'> 184.194 - <attribute name='xlink:href' href='#feImageElementHrefAttribute'/> 184.195 - </element> 184.196 - 184.197 - <element 184.198 - name='feMerge' 184.199 - href='#feMergeElement' 184.200 - contentmodel='anyof' 184.201 - elements='feMergeNode' 184.202 - attributecategories='core, style, presentation, filter primitive' 184.203 - interfaces='SVGFEMergeElement'/> 184.204 - 184.205 - <element 184.206 - name='feMergeNode' 184.207 - href='#feMergeNodeElement' 184.208 - contentmodel='anyof' 184.209 - elements='animate, set' 184.210 - attributecategories='core' 184.211 - attributes='in' 184.212 - interfaces='SVGFEMergeNodeElement'/> 184.213 - 184.214 - <element 184.215 - name='feMorphology' 184.216 - href='#feMorphologyElement' 184.217 - contentmodel='anyof' 184.218 - elements='animate, set' 184.219 - attributecategories='core, style, presentation, filter primitive' 184.220 - attributes='in' 184.221 - interfaces='SVGFEMorphologyElement'> 184.222 - <attribute name='operator' href='#feMorphologyOperatorAttribute'/> 184.223 - <attribute name='radius' href='#feMorphologyRadiusAttribute'/> 184.224 - </element> 184.225 - 184.226 - <element 184.227 - name='feOffset' 184.228 - href='#feOffsetElement' 184.229 - contentmodel='anyof' 184.230 - elements='animate, set' 184.231 - attributecategories='core, style, presentation, filter primitive' 184.232 - attributes='in' 184.233 - interfaces='SVGFEOffsetElement'> 184.234 - <attribute name='dx' href='#feOffsetDxAttribute'/> 184.235 - <attribute name='dy' href='#feOffsetDyAttribute'/> 184.236 - </element> 184.237 - 184.238 - <element 184.239 - name='fePointLight' 184.240 - href='#fePointLightElement' 184.241 - contentmodel='anyof' 184.242 - elements='animate, set' 184.243 - attributecategories='core' 184.244 - interfaces='SVGFEPointLightElement'> 184.245 - <attribute name='x' href='#fePointLightXAttribute'/> 184.246 - <attribute name='y' href='#fePointLightYAttribute'/> 184.247 - <attribute name='z' href='#fePointLightZAttribute'/> 184.248 - </element> 184.249 - 184.250 - <element 184.251 - name='feSpecularLighting' 184.252 - href='#feSpecularLightingElement' 184.253 - contentmodel='anyof' 184.254 - elementcategories='light source' 184.255 - elements='animate, set, animateColor' 184.256 - attributecategories='core, style, presentation, filter primitive' 184.257 - attributes='in' 184.258 - interfaces='SVGFESpecularLightingElement'> 184.259 - <attribute name='surfaceScale' href='#feSpecularLightingSurfaceScaleAttribute'/> 184.260 - <attribute name='specularConstant' href='#feSpecularLightingSpecularConstantAttribute'/> 184.261 - <attribute name='specularExponent' href='#feSpecularLightingSpecularExponentAttribute'/> 184.262 - <attribute name='kernelUnitLength' href='#feSpecularLightingKernelUnitLengthAttribute'/> 184.263 - </element> 184.264 - 184.265 - <element 184.266 - name='feSpotLight' 184.267 - href='#feSpotLightElement' 184.268 - contentmodel='anyof' 184.269 - elements='animate, set' 184.270 - attributecategories='core' 184.271 - interfaces='SVGFESpotLightElement'> 184.272 - <attribute name='x' href='#feSpotLightXAttribute'/> 184.273 - <attribute name='y' href='#feSpotLightYAttribute'/> 184.274 - <attribute name='z' href='#feSpotLightZAttribute'/> 184.275 - <attribute name='pointsAtX' href='#feSpotLightPointsAtXAttribute'/> 184.276 - <attribute name='pointsAtY' href='#feSpotLightPointsAtYAttribute'/> 184.277 - <attribute name='pointsAtZ' href='#feSpotLightPointsAtZAttribute'/> 184.278 - <attribute name='specularExponent' href='#feSpotLightSpecularExponentAttribute'/> 184.279 - <attribute name='limitingConeAngle' href='#feSpotLightLimitingConeAngleAttribute'/> 184.280 - </element> 184.281 - 184.282 - <element 184.283 - name='feTile' 184.284 - href='#feTileElement' 184.285 - contentmodel='anyof' 184.286 - elements='animate, set' 184.287 - attributecategories='core, style, presentation, filter primitive' 184.288 - attributes='in' 184.289 - interfaces='SVGFETileElement'/> 184.290 - 184.291 - <element 184.292 - name='feTurbulence' 184.293 - href='#feTurbulenceElement' 184.294 - contentmodel='anyof' 184.295 - elements='animate, set' 184.296 - attributecategories='core, style, presentation, filter primitive' 184.297 - interfaces='SVGFETurbulenceElement'> 184.298 - <attribute name='baseFrequency' href='#feTurbulenceBaseFrequencyAttribute'/> 184.299 - <attribute name='numOctaves' href='#feTurbulenceNumOctavesAttribute'/> 184.300 - <attribute name='seed' href='#feTurbulenceSeedAttribute'/> 184.301 - <attribute name='stitchTiles' href='#feTurbulenceStitchTilesAttribute'/> 184.302 - <attribute name='type' href='#feTurbulenceTypeAttribute'/> 184.303 - </element> 184.304 - 184.305 - <element 184.306 - name='filter' 184.307 - href='#FilterElement' 184.308 - contentmodel='anyof' 184.309 - elementcategories='descriptive, filter primitive' 184.310 - elements='animate, set' 184.311 - attributecategories='core, style, presentation, xlink' 184.312 - attributes='externalResourcesRequired' 184.313 - interfaces='SVGFilterElement'> 184.314 - <attribute name='x' href='#FilterElementXAttribute'/> 184.315 - <attribute name='y' href='#FilterElementYAttribute'/> 184.316 - <attribute name='width' href='#FilterElementWidthAttribute'/> 184.317 - <attribute name='height' href='#FilterElementHeightAttribute'/> 184.318 - <attribute name='filterRes' href='#FilterElementFilterResAttribute'/> 184.319 - <attribute name='filterUnits' href='#FilterElementFilterUnitsAttribute'/> 184.320 - <attribute name='primitiveUnits' href='#FilterElementPrimitiveUnitsAttribute'/> 184.321 - <attribute name='xlink:href' href='#FilterElementHrefAttribute'/> 184.322 - 184.323 - <!-- filter margin extensions --> 184.324 - <attribute name='mx' href='#FilterElementMxAttribute'/> 184.325 - <attribute name='my' href='#FilterElementMyAttribute'/> 184.326 - <attribute name='mw' href='#FilterElementMwAttribute'/> 184.327 - <attribute name='mh' href='#FilterElementMhAttribute'/> 184.328 - <attribute name='filterMarginUnits' href='#FilterElementFilterMarginUnitsAttribute'/> 184.329 - <attribute name='primitiveMarginUnits' href='#FilterElementPrimitiveMarginUnitsAttribute'/> 184.330 - </element> 184.331 - 184.332 - <element 184.333 - name='feDropShadow' 184.334 - href='#feDropShadowElement' 184.335 - contentmodel='anyof' 184.336 - elements='animate, set, animateColor' 184.337 - attributecategories='core, style, presentation, filter primitive' 184.338 - attributes='in' 184.339 - interfaces='SVGFEDropShadowElement'> 184.340 - <attribute name='stdDeviation' href='#feDropShadowStdDeviationAttribute'/> 184.341 - <attribute name='dx' href='#feDropShadowDxAttribute'/> 184.342 - <attribute name='dy' href='#feDropShadowDyAttribute'/> 184.343 - </element> 184.344 - 184.345 - <element 184.346 - name='feDiffuseSpecular' 184.347 - href='#feDiffuseSpecular' 184.348 - contentmodel='anyof' 184.349 - elements='animate, set, animateColor' 184.350 - attributecategories='core, style, presentation, filter primitive' 184.351 - attributes='in' 184.352 - interfaces='SVGFEDiffuseSpecular'> 184.353 - </element> 184.354 - 184.355 - <element 184.356 - name='feCustom' 184.357 - href='#feCustom' 184.358 - contentmodel='anyof' 184.359 - elements='animate, set, animateColor' 184.360 - attributecategories='core, style, presentation, filter primitive' 184.361 - attributes='in' 184.362 - interfaces='SVGFECustom'> 184.363 - </element> 184.364 - 184.365 - <!-- ... element categories ............................................ --> 184.366 - 184.367 - <elementcategory name='filter primitives' href='#TermFilterPrimitiveElements' elements='feBlend, feFlood, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feGaussianBlur, feUnsharpMask, feImage, feMerge, feMorphology, feOffset, feSpecularLighting, feTile, feTurbulence'/> 184.368 - <elementcategory name='transfer function element' href='#TermComponentTransferFunctionElement' elements='feFuncR, feFuncG, feFuncB, feFuncA'/> 184.369 - 184.370 - <!-- ... attributes common to multiple elements ........................ --> 184.371 - 184.372 - <!-- attribute common to most filter primitives (all except feFlood feImage feMerge feTurbulence --> 184.373 - <attribute name='in' elements='feBlend, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feGaussianBlur, feUnsharpMask, feMorphology, feOffset, feSpecularLighting, feTile' href='#FilterPrimitiveInAttribute'/> 184.374 - 184.375 - <!-- ... attribute categories .......................................... --> 184.376 - 184.377 - <attributecategory 184.378 - name='FilterPrimitiveAttributes' 184.379 - href='intro.html#TermFilterPrimitiveAttributes'> 184.380 - <attribute name='x' href='#FilterPrimitiveXAttribute'/> 184.381 - <attribute name='y' href='#FilterPrimitiveYAttribute'/> 184.382 - <attribute name='width' href='#FilterPrimitiveWidthAttribute'/> 184.383 - <attribute name='height' href='#FilterPrimitiveHeightAttribute'/> 184.384 - <attribute name='result' href='#FilterPrimitiveResultAttribute'/> 184.385 - 184.386 - <!-- filter margin extensions --> 184.387 - <attribute name='mx' href='#FilterPrimitiveMxAttribute'/> 184.388 - <attribute name='my' href='#FilterPrimitiveMyAttribute'/> 184.389 - <attribute name='mw' href='#FilterPrimitiveMwAttribute'/> 184.390 - <attribute name='mh' href='#FilterPrimitiveMhAttribute'/> 184.391 - </attributecategory> 184.392 - 184.393 - <attributecategory 184.394 - name='transfer function element' 184.395 - href='#TransferFunctionElementAttributes'> 184.396 - <attribute name='type' href='#feComponentTransferTypeAttribute'/> 184.397 - <attribute name='tableValues' href='#feComponentTransferTableValuesAttribute'/> 184.398 - <attribute name='slope' href='#feComponentTransferSlopeAttribute'/> 184.399 - <attribute name='intercept' href='#feComponentTransferInterceptAttribute'/> 184.400 - <attribute name='amplitude' href='#feComponentTransferAmplitudeAttribute'/> 184.401 - <attribute name='exponent' href='#feComponentTransferExponentAttribute'/> 184.402 - <attribute name='offset' href='#feComponentTransferOffsetAttribute'/> 184.403 - </attributecategory> 184.404 - 184.405 - 184.406 - <!-- ... properties ..................................................... --> 184.407 - 184.408 - <property name='enable-background' href='#EnableBackgroundProperty'/> 184.409 - <property name='filter' href='#FilterProperty'/> 184.410 - <property name='flood-color' href='#FloodColorProperty'/> 184.411 - <property name='flood-opacity' href='#FloodOpacityProperty'/> 184.412 - <property name='lighting-color' href='#LightingColorProperty'/> 184.413 - 184.414 - 184.415 - <!-- ... interfaces ..................................................... --> 184.416 - 184.417 - <interface name='SVGFilterElement' href='#InterfaceSVGFilterElement'/> 184.418 - <interface name='SVGFilterPrimitiveStandardAttributes' href='#InterfaceSVGFilterPrimitiveStandardAttributes'/> 184.419 - <interface name='SVGFEBlendElement' href='#InterfaceSVGFEBlendElement'/> 184.420 - <interface name='SVGFEColorMatrixElement' href='#InterfaceSVGFEColorMatrixElement'/> 184.421 - <interface name='SVGFEComponentTransferElement' href='#InterfaceSVGFEComponentTransferElement'/> 184.422 - <interface name='SVGComponentTransferFunctionElement' href='#InterfaceSVGComponentTransferFunctionElement'/> 184.423 - <interface name='SVGFEFuncRElement' href='#InterfaceSVGFEFuncRElement'/> 184.424 - <interface name='SVGFEFuncGElement' href='#InterfaceSVGFEFuncGElement'/> 184.425 - <interface name='SVGFEFuncBElement' href='#InterfaceSVGFEFuncBElement'/> 184.426 - <interface name='SVGFEFuncAElement' href='#InterfaceSVGFEFuncAElement'/> 184.427 - <interface name='SVGFECompositeElement' href='#InterfaceSVGFECompositeElement'/> 184.428 - <interface name='SVGFEConvolveMatrixElement' href='#InterfaceSVGFEConvolveMatrixElement'/> 184.429 - <interface name='SVGFEDiffuseLightingElement' href='#InterfaceSVGFEDiffuseLightingElement'/> 184.430 - <interface name='SVGFEDistantLightElement' href='#InterfaceSVGFEDistantLightElement'/> 184.431 - <interface name='SVGFEPointLightElement' href='#InterfaceSVGFEPointLightElement'/> 184.432 - <interface name='SVGFESpotLightElement' href='#InterfaceSVGFESpotLightElement'/> 184.433 - <interface name='SVGFEDisplacementMapElement' href='#InterfaceSVGFEDisplacementMapElement'/> 184.434 - <interface name='SVGFEFloodElement' href='#InterfaceSVGFEFloodElement'/> 184.435 - <interface name='SVGFEGaussianBlurElement' href='#InterfaceSVGFEGaussianBlurElement'/> 184.436 - <interface name='SVGFEUnsharpMaskElement' href='#InterfaceSVGFEUnsharpMaskElement'/> 184.437 - <interface name='SVGFEImageElement' href='#InterfaceSVGFEImageElement'/> 184.438 - <interface name='SVGFEMergeElement' href='#InterfaceSVGFEMergeElement'/> 184.439 - <interface name='SVGFEMergeNodeElement' href='#InterfaceSVGFEMergeNodeElement'/> 184.440 - <interface name='SVGFEMorphologyElement' href='#InterfaceSVGFEMorphologyElement'/> 184.441 - <interface name='SVGFEOffsetElement' href='#InterfaceSVGFEOffsetElement'/> 184.442 - <interface name='SVGFESpecularLightingElement' href='#InterfaceSVGFESpecularLightingElement'/> 184.443 - <interface name='SVGFETileElement' href='#InterfaceSVGFETileElement'/> 184.444 - <interface name='SVGFETurbulenceElement' href='#InterfaceSVGFETurbulenceElement'/> 184.445 - <interface name='SVGFEDropShadowElement' href='#InterfaceSVGFEDropShadowElement'/> 184.446 - <interface name='ImageData' href='#InterfaceImageData'/> 184.447 - 184.448 - 184.449 - <!-- ... terms (these will be generated later) .......................... --> 184.450 - <term name='SourceAlpha' href='#SourceAlpha' class='attr-value'/> 184.451 - <term name='SourceGraphic' href='#SourceGraphic' class='attr-value'/> 184.452 - <term name='BackgroundImage' href='#BackgroundImage' class='attr-value'/> 184.453 - <term name='BackgroundAlpha' href='#BackgroundAlpha' class='attr-value'/> 184.454 - <term name='FillPaint' href='#FillPaint' class='attr-value'/> 184.455 - <term name='StrokePaint' href='#StrokePaint' class='attr-value'/> 184.456 - <term name='source graphic' href='#TermSourceGraphic'/> 184.457 - <term name='filter effects region' href='#FilterEffectsRegion'/> 184.458 - <term name='filter region' href='#FilterEffectsRegion'/> 184.459 - <term name='filter primitive' href='#TermFilterPrimitiveElement'/> 184.460 - <term name='filter primitive subregion' href='#FilterPrimitiveSubRegion'/> 184.461 - <term name='null filter' href='#TermNullFilter'/> 184.462 - <term name='transfer function element' href='#TermTransferFunctionElements'/> 184.463 - <term name='transfer function elements' href='#TermTransferFunctionElements'/> 184.464 - <term name='filter primitives' href='#TermFilterPrimitiveElements'/> 184.465 - <term name='filter primitive elements' href='#TermFilterPrimitiveElements'/> 184.466 - <term name='filter-primitive-reference' href='#TermFilterPrimitiveReference'/> 184.467 - 184.468 - <!-- ... symbols (surrounded by < and >) .......................... --> 184.469 - <symbol name='filter-primitive-reference' href='#TermFilterPrimitiveReference'/> 184.470 -</definitions>
185.1 --- a/master/examples/Forque.svg Thu Feb 24 10:19:12 2011 +0000 185.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 185.3 @@ -1,109 +0,0 @@ 185.4 -<?xml version="1.0" standalone="no"?> 185.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > 185.6 -<svg xmlns="http://www.w3.org/2000/svg"> 185.7 -<defs> 185.8 -<desc> 185.9 -Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. 185.10 -</desc> 185.11 -<font id="FORQUE" horiz-adv-x="815" > 185.12 -<font-face font-family="FORQUE" font-weight="400" font-stretch="normal" units-per-em="2048" panose-1="2 0 5 0 0 0 0 0 0 0" ascent="1638" descent="-410" x-height="1233" cap-height="1434" bbox="-80 -418 1521 1579" underline-thickness="150" underline-position="-142" unicode-range="U+0020-U+20AC"/> 185.13 -<missing-glyph horiz-adv-x="389" /> 185.14 -<glyph glyph-name=".notdef" horiz-adv-x="389" /> 185.15 -<glyph glyph-name=".null" horiz-adv-x="0" /> 185.16 -<glyph glyph-name="nonmarkingreturn" horiz-adv-x="682" /> 185.17 -<glyph glyph-name="space" unicode=" " horiz-adv-x="389" /> 185.18 -<glyph glyph-bame="tab" unicode="	" horiz-adv-x="389" /> 185.19 -<glyph glyph-bame="uni00A0" unicode=" " horiz-adv-x="389" /> 185.20 -<glyph glyph-name="exclam" unicode="!" horiz-adv-x="417" d="M298 392h-287v1042h287v-1042zM258 242q-42 42 -102 42q-59 0 -101 -42q-43 -42 -43 -101q0 -60 43 -102q42 -42 101 -42q60 0 102 42t42 102q0 59 -42 101z" /> 185.21 -<glyph glyph-name="quotedbl" unicode=""" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 185.22 -<glyph glyph-name="numbersign" unicode="#" horiz-adv-x="1336" d="M596 859l-85 -290h242l86 290h-243zM673 1434h93l-141 -477h242l142 477h92l-141 -477h259l-29 -97h-259l-83 -290h279l-30 -98h-280l-140 -472h-92l139 472h-240l-142 -472h-92l140 472h-273l30 98h271l86 290h-295l29 97h295z" /> 185.23 -<glyph glyph-name="dollar" unicode="$" horiz-adv-x="1014" d="M577 1552v-102q68 -8 141 -35q10 -6 19 -6q25 0 41 45h50l103 -282h-49q-60 134 -168 179q-74 30 -137 39v-540q241 -93 322.5 -183t81.5 -264q0 -197 -119.5 -300t-284.5 -120v-239h-73v237q-188 3 -266 38q-10 6 -19 6q-25 0 -41 -45h-50v331h49q50 -183 152.5 -226 t174.5 -43v635q-214 67 -299 153q-92 91 -92 249q0 166 125 271q105 88 266 102v100h73zM577 655v-610q125 17 211.5 96t86.5 219q0 116 -69 183q-62 59 -229 112zM504 873v520q-119 -5 -199 -72q-86 -73 -86 -182q0 -98 55 -153q52 -54 230 -113z" /> 185.24 -<glyph glyph-name="percent" unicode="%" horiz-adv-x="1610" d="M1026 230q-54 53 -54 128q0 76 54 129q53 53 129 53q75 0 128 -53q54 -53 54 -129q0 -75 -54 -128q-53 -54 -128 -54q-76 0 -129 54zM901 612q-106 -105 -106 -254q0 -148 106 -254q105 -105 254 -105q148 0 253 105q106 106 106 254q0 149 -106 254q-105 105 -253 105 q-149 0 -254 -105zM235 939q-53 53 -53 129q0 75 53 128q54 54 129 54q76 0 129 -54q53 -53 53 -128q0 -76 -53 -129t-129 -53q-75 0 -129 53zM110 1322q-105 -106 -105 -254q0 -149 105 -254t254 -105t254 105t105 254q0 148 -105 254q-105 105 -254 105t-254 -105zM320 0 h-304l1200 1434h305z" /> 185.25 -<glyph glyph-name="ampersand" unicode="&" horiz-adv-x="1138" d="M672 375h-1v-13q0 -30 -21 -51t-51 -21h-237q-30 0 -51 21t-21 51t21 51q21 22 51 22h310v-60zM1041 430v287h-90v214h-286v-214h-307q-29 0 -50 21t-21 51v286q0 30 21 51t50 21q26 0 46 -16l5 -5v0v0l5 -5q-2 2 0 -1q2 -2 4 -5q-1 2 0 0q2 -3 4 -5q-2 2 0 -1q1 -3 3 -6 q-1 0 1 -3l1 -3q0 -1 1 -4q1 -4 1 -3v-5q1 -3 1 -2v-8v-14v-16h287v32q-1 147 -105 252q-104 104 -252 105h-14v0q-145 -6 -245 -109q-101 -105 -101 -250v-288q1 -119 72 -213q-72 -96 -72 -216q0 -148 105 -253t253 -105h236q119 1 214 72q95 -71 214 -72h14v287h-13 q-30 0 -51 21t-21 50v72h90z" /> 185.26 -<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="1024" d="M498 1294q-4 71 -37 130q-37 66 -37 84q0 32 23.5 51.5t62.5 19.5q37 0 61.5 -18t24.5 -47q0 -21 -36 -89q-33 -61 -37 -130q66 25 113 75q51 55 69 61q11 3 21 3q18 0 35 -10q26 -17 38 -53q6 -19 6 -36q0 -15 -4 -28q-10 -30 -38 -38q-6 -2 -19 -2q-25 0 -76 9 q-28 5 -55 5q-41 0 -81 -11q44 -55 105 -83q68 -32 79 -47q13 -18 13 -38q0 -9 -2 -17q-8 -30 -39 -53q-29 -22 -59 -22q-1 0 -1 1q-31 0 -48 23q-12 17 -22 94q-10 67 -47 125q-38 -58 -46 -124q-9 -75 -20 -90q-19 -25 -49 -27h-5q-28 0 -57 21q-30 21 -39 51q-4 10 -4 20 q0 17 11 32q13 17 83 51q61 29 105 82q-41 11 -80 11q-27 0 -53 -5q-54 -11 -78 -11q-9 0 -14 2q-30 9 -41 38q-6 13 -6 29q0 17 6 36q11 35 36 53q17 12 34 12q9 0 18 -3q20 -6 74 -62q47 -49 112 -75z" /> 185.27 -<glyph glyph-name="plus" unicode="+" horiz-adv-x="836" d="M731 573h-215v213h-288v-213h-215v-287h215v-218h288v218h215v287z" /> 185.28 -<glyph glyph-name="comma" unicode="," horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 185.29 -<glyph glyph-name="uni00AD" unicode="-" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" /> 185.30 -<glyph glyph-name="uni00AD" unicode="­" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" /> 185.31 -<glyph glyph-name="period" unicode="." horiz-adv-x="414" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 185.32 -<glyph glyph-name="slash" unicode="/" horiz-adv-x="569" d="M93 -50h-80l541 1484h80z" /> 185.33 -<glyph glyph-name="zero" unicode="0" horiz-adv-x="821" d="M440 329q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 50v778q0 29 21 50t50 21q30 0 51 -21t21 -50v-777zM727 1107q-1 148 -106 253q-105 104 -253 104q-147 0 -252 -104t-106 -251v-784q1 -147 106 -251t252 -104q148 0 253 104q105 105 106 253v0v780v0z" /> 185.34 -<glyph glyph-name="one" unicode="1" horiz-adv-x="476" d="M385 1107q0 148 -105 252q-104 104 -252 105h-14v-287h13q30 0 51 -21t21 -50v-1106h286v1107z" /> 185.35 -<glyph glyph-name="two" unicode="2" horiz-adv-x="818" d="M108 1359q-105 -105 -105 -253v-146h287v146q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-13v0q-144 -5 -245 -109q-100 -104 -101 -248v-360h717v287h-430v72q0 29 21 50t50 21h13v1q144 5 245 108q100 104 101 248v319q0 148 -105 253t-254 105 q-148 0 -253 -105z" /> 185.36 -<glyph glyph-name="three" unicode="3" horiz-adv-x="818" d="M375 1464h-14q-148 -1 -252 -105t-105 -252v0v-8v-140h287v132v0v15v7q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 1 3q2 3 3 6q1 1 0 1q2 2 4 5q1 2 0 1q1 2 4 4q1 2 0 1q2 3 5 5v0q2 3 5 5v0q20 16 45 16h1q29 0 50 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-172v-287h172 q29 0 50 -21t21 -50q0 -30 -21 -51t-50 -21h-359v-287h359q148 0 253 105t105 254q0 119 -72 215q72 94 72 213v319q0 145 -101 249q-100 104 -245 109v0z" /> 185.37 -<glyph glyph-name="four" unicode="4" horiz-adv-x="877" d="M323 575l113 244v-244h-113zM836 575h-113v859h-287l-430 -859v0v-286h430v-289h287v289h113v286z" /> 185.38 -<glyph glyph-name="five" unicode="5" horiz-adv-x="818" d="M727 1147v287h-717v-717h358q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v151h-287v-151q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v143h430z" /> 185.39 -<glyph glyph-name="six" unicode="6" d="M369 717q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v388h71zM298 1076q0 29 21 50t50 21h359v287h-360q-148 -1 -252 -105t-105 -252v-748q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v72z" /> 185.40 -<glyph glyph-name="seven" unicode="7" horiz-adv-x="762" d="M23 1434v-287h335l-351 -1147h297l438 1434h-719z" /> 185.41 -<glyph glyph-name="eight" unicode="8" d="M298 1106q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-1q-29 0 -50 21t-21 51v317zM319 278q-21 21 -21 80q0 30 21 51t50 21h1q29 0 50 -21t21 -50q0 -60 -21 -81t-51 -21q-29 0 -50 21zM11 314q6 -144 110 -244t248 -100q145 0 249 100t110 244 v0v59v0q-5 112 -72 201q72 95 72 215v317q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-317q0 -120 72 -215q-67 -89 -72 -201v0v-59v0z" /> 185.42 -<glyph glyph-name="nine" unicode="9" d="M366 717q-30 0 -51 21t-21 51v317q0 29 21 50t50 21q30 0 51 -21t21 -50v-389h-71zM437 359q0 -30 -21 -51t-50 -21h-359v-287h360q148 1 252 105t105 252v749q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-319q1 -147 105 -252q104 -104 252 -105h73v-71z" /> 185.43 -<glyph glyph-name="colon" unicode=":" horiz-adv-x="407" d="M251 881q-42 42 -101 42q-60 0 -102 -42t-42 -102q0 -59 42 -101t102 -42q59 0 101 42t42 101q0 60 -42 102zM251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 185.44 -<glyph glyph-name="uni037E" unicode=";" horiz-adv-x="404" d="M257 242q42 -42 42 -101q0 -19 -5 -38q-20 -76 -73 -132q-55 -58 -132 -80q-37 -11 -76 -12q74 44 112 121q-49 11 -81 50q-32 40 -32 91q0 59 42 101t102 42q59 0 101 -42zM257 881q42 -42 42 -102q0 -59 -42 -101t-101 -42q-60 0 -102 42t-42 101q0 60 42 102t102 42 q59 0 101 -42z" /> 185.45 -<glyph glyph-name="equal" unicode="=" horiz-adv-x="833" d="M10 353h718v-287h-718v287zM10 763h718v-287h-718v287z" /> 185.46 -<glyph glyph-name="question" unicode="?" horiz-adv-x="748" d="M264 242q-42 -42 -42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101t-101 42q-60 0 -102 -42zM377 1464l-14 -1q-148 0 -253 -105q-104 -104 -105 -252v-148h287v146q0 4 1 8q0 -1 0 2q1 4 1 5q0 -1 0 3q1 3 1 4l2 3l1 3q1 3 3 6q1 2 0 1q1 2 3 5v0l1 1 q1 2 3 4q1 2 1 1q2 3 4 5v0l5 5q20 16 46 16v0q30 0 51 -21t21 -51v-221q0 -29 -21 -50t-51 -21h-144v-420h288v162q96 42 155 130q60 90 60 198v222q0 146 -101 250t-245 109v1z" /> 185.47 -<glyph glyph-name="A" unicode="A" d="M287 574v531q0 30 21 51t51 21q29 0 50 -21t21 -51v-531h-143zM105 1359q-105 -105 -105 -254v-1105h287v287h143v-287h287v1105q0 149 -105 254t-253 105q-149 0 -254 -105z" /> 185.48 -<glyph glyph-name="B" unicode="B" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 1147h71h2q29 0 50 -21q20 -21 20 -50v-287q0 -30 -21 -51t-50 -21h-72v430zM717 784v9v0v285q-1 148 -106 252t-252 104h-359v-1434h361q146 1 250 104q104 104 106 250v0v9v0 q-2 117 -72 211q70 93 72 210v0z" /> 185.49 -<glyph glyph-name="C" unicode="C" horiz-adv-x="796" d="M430 472v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v777q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-784v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" /> 185.50 -<glyph glyph-name="D" unicode="D" d="M430 359q0 -30 -21 -51t-50 -21h-72v860h72q29 0 50 -21t21 -50v-717zM717 1077q-1 148 -105 252t-252 105h-360v-1434h360q148 1 252 105t105 252v720z" /> 185.51 -<glyph glyph-name="E" unicode="E" horiz-adv-x="721" d="M632 1147v287h-631v-1435h631v287h-344v144h287v287h-287v430h344z" /> 185.52 -<glyph glyph-name="F" unicode="F" horiz-adv-x="712" d="M634 1147v287h-631v-1435h287v431h287v287h-287v430h344z" /> 185.53 -<glyph glyph-name="G" unicode="G" horiz-adv-x="818" d="M376 1464h-15q-148 -1 -252 -105q-104 -105 -105 -252v-770q1 -148 105 -253q104 -104 252 -105h15l345 16v702h-355v-287h68v-144h-71q-30 0 -51 21t-21 51v767v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" /> 185.54 -<glyph glyph-name="H" unicode="H" horiz-adv-x="818" d="M428 1434v-869h-143v869h-287v-1435h287v279h143v-279h287v1435h-287z" /> 185.55 -<glyph glyph-name="I" unicode="I" horiz-adv-x="389" d="M285 -1h-287v1435h287v-1435z" /> 185.56 -<glyph glyph-name="J" unicode="J" horiz-adv-x="398" d="M5 1434v-1440q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1442h-287z" /> 185.57 -<glyph glyph-name="K" unicode="K" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 647h-287l-91 -646q-4 -29 -28 -50t-54 -21h-41v717h-287v-1435h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" /> 185.58 -<glyph glyph-name="L" unicode="L" horiz-adv-x="700" d="M294 286v1148h-287v-1435h631v287h-344z" /> 185.59 -<glyph glyph-name="M" unicode="M" horiz-adv-x="1253" d="M1152 1105q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-1105h286v1104q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-1104 h286v1104q0 30 21 51t51 21q29 0 50 -21t21 -51v-1104h287v1104z" /> 185.60 -<glyph glyph-name="N" unicode="N" horiz-adv-x="818" d="M438 1433v-343l-144 336v7h-286v-1432h286v841l144 -336v-505h286v1432h-286z" /> 185.61 -<glyph glyph-name="O" unicode="O" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v776q0 30 21 51t51 21t51 -21q20 -21 21 -51v-776zM728 1107q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-783q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v780z" /> 185.62 -<glyph glyph-name="P" unicode="P" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v430h72q30 0 51 -21t21 -51v-286zM726 1076q-1 148 -105 252t-252 105h-359v-1432h286v430h73q148 0 252 104q104 105 105 252v289z" /> 185.63 -<glyph glyph-name="Q" unicode="Q" horiz-adv-x="812" d="M289 1105q0 30 21 51t51 21t51 -21t21 -51v-776q0 -30 -21 -51t-51 -21t-51 21t-21 51v776zM719 1107q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-783v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v780z" /> 185.64 -<glyph glyph-name="R" unicode="R" horiz-adv-x="812" d="M291 716v430h71q30 0 51 -21t21 -50v-287q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v289q0 148 -104 252q-105 104 -252 105h-360v-1433h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" /> 185.65 -<glyph glyph-name="S" unicode="S" horiz-adv-x="799" d="M379 1463h-14q-148 -1 -252 -105t-105 -252v-319q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v317v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" /> 185.66 -<glyph glyph-name="T" unicode="T" horiz-adv-x="724" d="M693 1433h-716v-287h213v-1146h286v1146h217v287z" /> 185.67 -<glyph glyph-name="U" unicode="U" horiz-adv-x="821" d="M436 1433v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v1105h-286z" /> 185.68 -<glyph glyph-name="V" unicode="V" horiz-adv-x="939" d="M575 1433l-125 -944l-164 944h-287l276 -1433h333l279 1433h-312z" /> 185.69 -<glyph glyph-name="W" unicode="W" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v1106h-286v-1105q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v1105h-286v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105z" /> 185.70 -<glyph glyph-name="X" unicode="X" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 646h-286l-91 -645q-8 -55 -63 -69q-56 14 -64 69l-90 645h-287l91 -646v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" /> 185.71 -<glyph glyph-name="Y" unicode="Y" horiz-adv-x="812" d="M443 1433v-645q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v645h-287v-645q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v645h-286z" /> 185.72 -<glyph glyph-name="Z" unicode="Z" horiz-adv-x="793" d="M735 1433h-728v-287h354l-350 -1146h716v287h-342z" /> 185.73 -<glyph glyph-name="a" unicode="a" d="M287 574v331q0 30 21 51t51 21q29 0 50 -21t21 -51v-331h-143zM105 1159q-105 -105 -105 -254v-905h287v287h143v-287h287v905q0 149 -105 254t-253 105q-149 0 -254 -105z" /> 185.74 -<glyph glyph-name="b" unicode="b" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 947h71h2q29 0 50 -21q20 -21 20 -50v-87q0 -30 -21 -51t-50 -21h-72v230zM717 784v9v0v85q-1 148 -106 252t-252 104h-359v-1234h361q146 1 250 104q104 104 106 250v0v9v0q-2 117 -72 211 q70 93 72 210v0z" /> 185.75 -<glyph glyph-name="c" unicode="c" horiz-adv-x="796" d="M430 462v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v597q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-604v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" /> 185.76 -<glyph glyph-name="d" unicode="d" d="M430 359q0 -30 -21 -51t-50 -21h-72v660h72q29 0 50 -21t21 -50v-517zM717 877q-1 148 -105 252t-252 105h-360v-1234h360q148 1 252 105t105 252v520z" /> 185.77 -<glyph glyph-name="e" unicode="e" horiz-adv-x="721" d="M632 947v287h-631v-1235h631v287h-344v144h287v287h-287v230h344z" /> 185.78 -<glyph glyph-name="f" unicode="f" horiz-adv-x="712" d="M634 947v287h-631v-1235h287v431h287v287h-287v230h344z" /> 185.79 -<glyph glyph-name="g" unicode="g" horiz-adv-x="818" d="M376 1264h-15q-148 -1 -252 -105q-104 -105 -105 -252v-580q1 -148 105 -253q104 -104 252 -105h15l345 16v672h-355v-287h68v-114h-71q-30 0 -51 21t-21 51v577v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" /> 185.80 -<glyph glyph-name="h" unicode="h" horiz-adv-x="818" d="M428 1234v-669h-143v669h-287v-1235h287v279h143v-279h287v1235h-287z" /> 185.81 -<glyph glyph-name="i" unicode="i" horiz-adv-x="389" d="M285 -1h-287v1235h287v-1235z" /> 185.82 -<glyph glyph-name="j" unicode="j" horiz-adv-x="398" d="M5 1234v-1240q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1242h-287z" /> 185.83 -<glyph glyph-name="k" unicode="k" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 447h-287l-91 -446q-4 -29 -28 -50t-54 -21h-41v517h-287v-1235h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" /> 185.84 -<glyph glyph-name="l" unicode="l" horiz-adv-x="700" d="M294 286v948h-287v-1235h631v287h-344z" /> 185.85 -<glyph glyph-name="m" unicode="m" horiz-adv-x="1253" d="M1152 905q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-905h286v904q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-904h286 v904q0 30 21 51t51 21q29 0 50 -21t21 -51v-904h287v904z" /> 185.86 -<glyph glyph-name="n" unicode="n" horiz-adv-x="818" d="M438 1233v-343l-144 336v7h-286v-1232h286v641l144 -336v-305h286v1232h-286z" /> 185.87 -<glyph glyph-name="o" unicode="o" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v576q0 30 21 51t51 21t51 -21q20 -21 21 -51v-576zM728 907q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-583q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v580z" /> 185.88 -<glyph glyph-name="p" unicode="p" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v230h72q30 0 51 -21t21 -51v-86zM726 876q-1 148 -105 252t-252 105h-359v-1232h286v430h73q148 0 252 104q104 105 105 252v89z" /> 185.89 -<glyph glyph-name="q" unicode="q" horiz-adv-x="812" d="M289 905q0 30 21 51t51 21t51 -21t21 -51v-576q0 -30 -21 -51t-51 -21t-51 21t-21 51v576zM719 907q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-583v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v580z" /> 185.90 -<glyph glyph-name="r" unicode="r" horiz-adv-x="812" d="M291 716v230h71q30 0 51 -21t21 -50v-87q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v89q0 148 -104 252q-105 104 -252 105h-360v-1233h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" /> 185.91 -<glyph glyph-name="s" unicode="s" horiz-adv-x="799" d="M379 1263h-14q-148 -1 -252 -105t-105 -252v-119q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v117v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" /> 185.92 -<glyph glyph-name="t" unicode="t" horiz-adv-x="724" d="M693 1233h-716v-287h213v-946h286v946h217v287z" /> 185.93 -<glyph glyph-name="u" unicode="u" horiz-adv-x="821" d="M436 1233v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v905h-286z" /> 185.94 -<glyph glyph-name="v" unicode="v" horiz-adv-x="939" d="M575 1233l-125 -744l-164 744h-287l276 -1233h333l279 1233h-312z" /> 185.95 -<glyph glyph-name="w" unicode="w" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v906h-286v-905q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v905h-286v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905z" /> 185.96 -<glyph glyph-name="x" unicode="x" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 446h-286l-91 -445q-8 -55 -63 -69q-56 14 -64 69l-90 445h-287l91 -446v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" /> 185.97 -<glyph glyph-name="y" unicode="y" horiz-adv-x="812" d="M443 1233v-445q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v445h-287v-445q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v445h-286z" /> 185.98 -<glyph glyph-name="z" unicode="z" horiz-adv-x="793" d="M735 1233h-728v-287h314l-310 -946h716v287h-302z" /> 185.99 -<glyph glyph-name="bar" unicode="|" horiz-adv-x="1014" d="M427 1577h160v-1995h-160v1995z" /> 185.100 -<glyph glyph-name="brokenbar" unicode="¦" horiz-adv-x="1014" d="M427 371h160v-789h-160v789zM427 1578h160v-789h-160v789z" /> 185.101 -<glyph glyph-name="multiply" unicode="×" horiz-adv-x="908" d="M810 324l-167 167l165 165l-222 222l-165 -165l-167 167l-222 -222l167 -167l-169 -169l222 -222l169 169l167 -167z" /> 185.102 -<glyph glyph-name="quoteleft" unicode="‘" horiz-adv-x="401" d="M52 1198q42 -42 102 -42q59 0 101 42t42 101q0 51 -32 91q-32 39 -81 50q39 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" /> 185.103 -<glyph glyph-name="quoteright" unicode="’" horiz-adv-x="404" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 185.104 -<glyph glyph-name="quotesinglbase" unicode="‚" horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 185.105 -<glyph glyph-name="quotedblleft" unicode="“" horiz-adv-x="734" d="M392 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101zM52 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121 q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" /> 185.106 -<glyph glyph-name="quotedblright" unicode="”" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 185.107 -<glyph glyph-name="quotedblbase" unicode="„" horiz-adv-x="737" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 185.108 -<glyph glyph-name="bullet" unicode="•" horiz-adv-x="1024" d="M216 718q0 123 87 209t210 86q122 0 208.5 -86.5t86.5 -208.5t-87.5 -209.5t-209.5 -87.5q-123 0 -209 87t-86 210z" /> 185.109 -<glyph glyph-name="ellipsis" unicode="…" horiz-adv-x="1213" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM651 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM1051 242q-42 42 -101 42q-60 0 -102 -42 t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 185.110 -<glyph glyph-name="Euro" unicode="€" horiz-adv-x="939" d="M833 574v287h-445v214q0 30 21 51t51 21q29 0 50 -21t21 -51v-143h287v145q-1 148 -106 252q-105 105 -252 105q-148 0 -253 -104q-104 -104 -106 -251v-218h-101v-287h101v-219q2 -147 106 -251q105 -104 253 -104q147 0 252 104q105 105 106 252v146h-287v-144 q0 -29 -21 -50t-50 -21q-30 0 -51 21t-21 50v216h445z" /> 185.111 -</font> 185.112 -</defs></svg>
186.1 Binary file master/examples/enable-background-01.png has changed
187.1 --- a/master/examples/enable-background-01.svg Thu Feb 24 10:19:12 2011 +0000 187.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 187.3 @@ -1,89 +0,0 @@ 187.4 -<?xml version="1.0" standalone="no"?> 187.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 187.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 187.7 -<svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270" 187.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 187.9 - <title>Example enable-background01</title> 187.10 - <desc>This test case shows five pictures which illustrate the rules 187.11 - for background image processing.</desc> 187.12 - 187.13 - <defs> 187.14 - <filter id="ShiftBGAndBlur" 187.15 - filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 187.16 - <desc> 187.17 - This filter discards the SourceGraphic, if any, and just produces 187.18 - a result consisting of the BackgroundImage shifted down 125 units 187.19 - and then blurred. 187.20 - </desc> 187.21 - <feOffset in="BackgroundImage" dx="0" dy="125" /> 187.22 - <feGaussianBlur stdDeviation="8" /> 187.23 - </filter> 187.24 - <filter id="ShiftBGAndBlur_WithSourceGraphic" 187.25 - filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 187.26 - <desc> 187.27 - This filter takes the BackgroundImage, shifts it down 125 units, blurs it, 187.28 - and then renders the SourceGraphic on top of the shifted/blurred background. 187.29 - </desc> 187.30 - <feOffset in="BackgroundImage" dx="0" dy="125" /> 187.31 - <feGaussianBlur stdDeviation="8" result="blur" /> 187.32 - <feMerge> 187.33 - <feMergeNode in="blur"/> 187.34 - <feMergeNode in="SourceGraphic"/> 187.35 - </feMerge> 187.36 - </filter> 187.37 - </defs> 187.38 - 187.39 - <g transform="translate(0,0)"> 187.40 - <desc>The first picture is our reference graphic without filters.</desc> 187.41 - <rect x="25" y="25" width="100" height="100" fill="red"/> 187.42 - <g opacity=".5"> 187.43 - <circle cx="125" cy="75" r="45" fill="green"/> 187.44 - <polygon points="160,25 160,125 240,75" fill="blue"/> 187.45 - </g> 187.46 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 187.47 - </g> 187.48 - 187.49 - <g enable-background="new" transform="translate(270,0)"> 187.50 - <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc> 187.51 - <rect x="25" y="25" width="100" height="100" fill="red"/> 187.52 - <g opacity=".5"> 187.53 - <circle cx="125" cy="75" r="45" fill="green"/> 187.54 - <polygon points="160,25 160,125 240,75" fill="blue"/> 187.55 - </g> 187.56 - <g filter="url(#ShiftBGAndBlur)"/> 187.57 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 187.58 - </g> 187.59 - 187.60 - <g enable-background="new" transform="translate(540,0)"> 187.61 - <desc>The third invokes ShiftBGAndBlur on the inner group.</desc> 187.62 - <rect x="25" y="25" width="100" height="100" fill="red"/> 187.63 - <g filter="url(#ShiftBGAndBlur)" opacity=".5"> 187.64 - <circle cx="125" cy="75" r="45" fill="green"/> 187.65 - <polygon points="160,25 160,125 240,75" fill="blue"/> 187.66 - </g> 187.67 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 187.68 - </g> 187.69 - 187.70 - <g enable-background="new" transform="translate(810,0)"> 187.71 - <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc> 187.72 - <rect x="25" y="25" width="100" height="100" fill="red"/> 187.73 - <g opacity=".5"> 187.74 - <circle cx="125" cy="75" r="45" fill="green"/> 187.75 - <polygon points="160,25 160,125 240,75" fill="blue" 187.76 - filter="url(#ShiftBGAndBlur)"/> 187.77 - </g> 187.78 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 187.79 - </g> 187.80 - 187.81 - <g enable-background="new" transform="translate(1080,0)"> 187.82 - <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc> 187.83 - <rect x="25" y="25" width="100" height="100" fill="red"/> 187.84 - <g opacity=".5"> 187.85 - <circle cx="125" cy="75" r="45" fill="green"/> 187.86 - <polygon points="160,25 160,125 240,75" fill="blue" 187.87 - filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/> 187.88 - </g> 187.89 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 187.90 - </g> 187.91 -</svg> 187.92 -
188.1 Binary file master/examples/feBlend.png has changed
189.1 --- a/master/examples/feBlend.svg Thu Feb 24 10:19:12 2011 +0000 189.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 189.3 @@ -1,46 +0,0 @@ 189.4 -<?xml version="1.0"?> 189.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 189.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 189.7 -<svg width="5cm" height="5cm" viewBox="0 0 500 500" 189.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 189.9 - <title>Example feBlend - Examples of feBlend modes</title> 189.10 - <desc>Five text strings blended into a gradient, 189.11 - with one text string for each of the five feBlend modes.</desc> 189.12 - <defs> 189.13 - <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 189.14 - x1="100" y1="0" x2="300" y2="0"> 189.15 - <stop offset="0" stop-color="#000000" /> 189.16 - <stop offset=".33" stop-color="#ffffff" /> 189.17 - <stop offset=".67" stop-color="#ff0000" /> 189.18 - <stop offset="1" stop-color="#808080" /> 189.19 - </linearGradient> 189.20 - <filter id="Normal"> 189.21 - <feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/> 189.22 - </filter> 189.23 - <filter id="Multiply"> 189.24 - <feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/> 189.25 - </filter> 189.26 - <filter id="Screen"> 189.27 - <feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/> 189.28 - </filter> 189.29 - <filter id="Darken"> 189.30 - <feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/> 189.31 - </filter> 189.32 - <filter id="Lighten"> 189.33 - <feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/> 189.34 - </filter> 189.35 - </defs> 189.36 - <rect fill="none" stroke="blue" 189.37 - x="1" y="1" width="498" height="498"/> 189.38 - <g enable-background="new" > 189.39 - <rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" /> 189.40 - <g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" > 189.41 - <text x="50" y="90" filter="url(#Normal)" >Normal</text> 189.42 - <text x="50" y="180" filter="url(#Multiply)" >Multiply</text> 189.43 - <text x="50" y="270" filter="url(#Screen)" >Screen</text> 189.44 - <text x="50" y="360" filter="url(#Darken)" >Darken</text> 189.45 - <text x="50" y="450" filter="url(#Lighten)" >Lighten</text> 189.46 - </g> 189.47 - </g> 189.48 -</svg> 189.49 -
190.1 Binary file master/examples/feColorMatrix.png has changed
191.1 --- a/master/examples/feColorMatrix.svg Thu Feb 24 10:19:12 2011 +0000 191.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 191.3 @@ -1,55 +0,0 @@ 191.4 -<?xml version="1.0"?> 191.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 191.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 191.7 -<svg width="8cm" height="5cm" viewBox="0 0 800 500" 191.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 191.9 - <title>Example feColorMatrix - Examples of feColorMatrix operations</title> 191.10 - <desc>Five text strings showing the effects of feColorMatrix: 191.11 - an unfiltered text string acting as a reference, 191.12 - use of the feColorMatrix matrix option to convert to grayscale, 191.13 - use of the feColorMatrix saturate option, 191.14 - use of the feColorMatrix hueRotate option, 191.15 - and use of the feColorMatrix luminanceToAlpha option.</desc> 191.16 - <defs> 191.17 - <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 191.18 - x1="100" y1="0" x2="500" y2="0"> 191.19 - <stop offset="0" stop-color="#ff00ff" /> 191.20 - <stop offset=".33" stop-color="#88ff88" /> 191.21 - <stop offset=".67" stop-color="#2020ff" /> 191.22 - <stop offset="1" stop-color="#d00000" /> 191.23 - </linearGradient> 191.24 - <filter id="Matrix" filterUnits="objectBoundingBox" 191.25 - x="0%" y="0%" width="100%" height="100%"> 191.26 - <feColorMatrix type="matrix" in="SourceGraphic" 191.27 - values=".33 .33 .33 0 0 191.28 - .33 .33 .33 0 0 191.29 - .33 .33 .33 0 0 191.30 - .33 .33 .33 0 0"/> 191.31 - </filter> 191.32 - <filter id="Saturate40" filterUnits="objectBoundingBox" 191.33 - x="0%" y="0%" width="100%" height="100%"> 191.34 - <feColorMatrix type="saturate" in="SourceGraphic" values="0.4"/> 191.35 - </filter> 191.36 - <filter id="HueRotate90" filterUnits="objectBoundingBox" 191.37 - x="0%" y="0%" width="100%" height="100%"> 191.38 - <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/> 191.39 - </filter> 191.40 - <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 191.41 - x="0%" y="0%" width="100%" height="100%"> 191.42 - <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/> 191.43 - <feComposite in="SourceGraphic" in2="a" operator="in" /> 191.44 - </filter> 191.45 - </defs> 191.46 - <rect fill="none" stroke="blue" 191.47 - x="1" y="1" width="798" height="498"/> 191.48 - <g font-family="Verdana" font-size="75" 191.49 - font-weight="bold" fill="url(#MyGradient)" > 191.50 - <rect x="100" y="0" width="500" height="20" /> 191.51 - <text x="100" y="90">Unfiltered</text> 191.52 - <text x="100" y="190" filter="url(#Matrix)" >Matrix</text> 191.53 - <text x="100" y="290" filter="url(#Saturate40)" >Saturate</text> 191.54 - <text x="100" y="390" filter="url(#HueRotate90)" >HueRotate</text> 191.55 - <text x="100" y="490" filter="url(#LuminanceToAlpha)" >Luminance</text> 191.56 - </g> 191.57 -</svg> 191.58 -
192.1 Binary file master/examples/feComponentTransfer.png has changed
193.1 --- a/master/examples/feComponentTransfer.svg Thu Feb 24 10:19:12 2011 +0000 193.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 193.3 @@ -1,65 +0,0 @@ 193.4 -<?xml version="1.0"?> 193.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 193.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 193.7 -<svg width="8cm" height="4cm" viewBox="0 0 800 400" 193.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 193.9 - <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title> 193.10 - <desc>Four text strings showing the effects of feComponentTransfer: 193.11 - an identity function acting as a reference, 193.12 - use of the feComponentTransfer table option, 193.13 - use of the feComponentTransfer linear option, 193.14 - and use of the feComponentTransfer gamma option.</desc> 193.15 - <defs> 193.16 - <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 193.17 - x1="100" y1="0" x2="600" y2="0"> 193.18 - <stop offset="0" stop-color="#ff0000" /> 193.19 - <stop offset=".33" stop-color="#00ff00" /> 193.20 - <stop offset=".67" stop-color="#0000ff" /> 193.21 - <stop offset="1" stop-color="#000000" /> 193.22 - </linearGradient> 193.23 - <filter id="Identity" filterUnits="objectBoundingBox" 193.24 - x="0%" y="0%" width="100%" height="100%"> 193.25 - <feComponentTransfer> 193.26 - <feFuncR type="identity"/> 193.27 - <feFuncG type="identity"/> 193.28 - <feFuncB type="identity"/> 193.29 - <feFuncA type="identity"/> 193.30 - </feComponentTransfer> 193.31 - </filter> 193.32 - <filter id="Table" filterUnits="objectBoundingBox" 193.33 - x="0%" y="0%" width="100%" height="100%"> 193.34 - <feComponentTransfer> 193.35 - <feFuncR type="table" tableValues="0 0 1 1"/> 193.36 - <feFuncG type="table" tableValues="1 1 0 0"/> 193.37 - <feFuncB type="table" tableValues="0 1 1 0"/> 193.38 - </feComponentTransfer> 193.39 - </filter> 193.40 - <filter id="Linear" filterUnits="objectBoundingBox" 193.41 - x="0%" y="0%" width="100%" height="100%"> 193.42 - <feComponentTransfer> 193.43 - <feFuncR type="linear" slope=".5" intercept=".25"/> 193.44 - <feFuncG type="linear" slope=".5" intercept="0"/> 193.45 - <feFuncB type="linear" slope=".5" intercept=".5"/> 193.46 - </feComponentTransfer> 193.47 - </filter> 193.48 - <filter id="Gamma" filterUnits="objectBoundingBox" 193.49 - x="0%" y="0%" width="100%" height="100%"> 193.50 - <feComponentTransfer> 193.51 - <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/> 193.52 - <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/> 193.53 - <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/> 193.54 - </feComponentTransfer> 193.55 - </filter> 193.56 - </defs> 193.57 - <rect fill="none" stroke="blue" 193.58 - x="1" y="1" width="798" height="398"/> 193.59 - <g font-family="Verdana" font-size="75" 193.60 - font-weight="bold" fill="url(#MyGradient)" > 193.61 - <rect x="100" y="0" width="600" height="20" /> 193.62 - <text x="100" y="90">Identity</text> 193.63 - <text x="100" y="190" filter="url(#Table)" >TableLookup</text> 193.64 - <text x="100" y="290" filter="url(#Linear)" >LinearFunc</text> 193.65 - <text x="100" y="390" filter="url(#Gamma)" >GammaFunc</text> 193.66 - </g> 193.67 -</svg> 193.68 -
194.1 Binary file master/examples/feComposite.png has changed
195.1 --- a/master/examples/feComposite.svg Thu Feb 24 10:19:12 2011 +0000 195.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 195.3 @@ -1,170 +0,0 @@ 195.4 -<?xml version="1.0"?> 195.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 195.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 195.7 -<svg width="330" height="195" viewBox="0 0 1100 650" version="1.1" 195.8 - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 195.9 - <title>Example feComposite - Examples of feComposite operations</title> 195.10 - <desc>Four rows of six pairs of overlapping triangles depicting 195.11 - the six different feComposite operators under different 195.12 - opacity values and different clearing of the background.</desc> 195.13 - <defs> 195.14 - <desc>Define two sets of six filters for each of the six compositing operators. 195.15 - The first set wipes out the background image by flooding with opaque white. 195.16 - The second set does not wipe out the background, with the result 195.17 - that the background sometimes shines through and is other cases 195.18 - is blended into itself (i.e., "double-counting").</desc> 195.19 - <filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 195.20 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 195.21 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 195.22 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 195.23 - </filter> 195.24 - <filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 195.25 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 195.26 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 195.27 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 195.28 - </filter> 195.29 - <filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 195.30 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 195.31 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 195.32 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 195.33 - </filter> 195.34 - <filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 195.35 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 195.36 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 195.37 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 195.38 - </filter> 195.39 - <filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 195.40 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 195.41 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 195.42 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 195.43 - </filter> 195.44 - <filter id="arithmeticFlood" filterUnits="objectBoundingBox" 195.45 - x="-5%" y="-5%" width="110%" height="110%"> 195.46 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 195.47 - <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 195.48 - operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 195.49 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 195.50 - </filter> 195.51 - <filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 195.52 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 195.53 - </filter> 195.54 - <filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 195.55 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 195.56 - </filter> 195.57 - <filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 195.58 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 195.59 - </filter> 195.60 - <filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 195.61 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 195.62 - </filter> 195.63 - <filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 195.64 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 195.65 - </filter> 195.66 - <filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 195.67 - x="-5%" y="-5%" width="110%" height="110%"> 195.68 - <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 195.69 - operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 195.70 - </filter> 195.71 - <path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" /> 195.72 - <path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" /> 195.73 - <path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" /> 195.74 - <path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" /> 195.75 - <g id="TwoBlueTriangles"> 195.76 - <use xlink:href="#Blue100"/> 195.77 - <use xlink:href="#Blue50"/> 195.78 - </g> 195.79 - <g id="BlueTriangles"> 195.80 - <use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/> 195.81 - <use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/> 195.82 - <use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/> 195.83 - <use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/> 195.84 - <use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/> 195.85 - <use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/> 195.86 - </g> 195.87 - </defs> 195.88 - 195.89 - <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/> 195.90 - <g font-family="Verdana" font-size="40" shape-rendering="crispEdges"> 195.91 - <desc>Render the examples using the filters that draw on top of 195.92 - an opaque white surface, thus obliterating the background.</desc> 195.93 - <g enable-background="new"> 195.94 - <text x="15" y="75">opacity 1.0</text> 195.95 - <text x="15" y="115" font-size="27">(with feFlood)</text> 195.96 - <text x="15" y="200">opacity 0.5</text> 195.97 - <text x="15" y="240" font-size="27">(with feFlood)</text> 195.98 - <use xlink:href="#BlueTriangles"/> 195.99 - <g transform="translate(275,25)"> 195.100 - <use xlink:href="#Red100" filter="url(#overFlood)" /> 195.101 - <use xlink:href="#Red50" filter="url(#overFlood)" /> 195.102 - <text x="5" y="275">over</text> 195.103 - </g> 195.104 - <g transform="translate(400,25)"> 195.105 - <use xlink:href="#Red100" filter="url(#inFlood)" /> 195.106 - <use xlink:href="#Red50" filter="url(#inFlood)" /> 195.107 - <text x="35" y="275">in</text> 195.108 - </g> 195.109 - <g transform="translate(525,25)"> 195.110 - <use xlink:href="#Red100" filter="url(#outFlood)" /> 195.111 - <use xlink:href="#Red50" filter="url(#outFlood)" /> 195.112 - <text x="15" y="275">out</text> 195.113 - </g> 195.114 - <g transform="translate(650,25)"> 195.115 - <use xlink:href="#Red100" filter="url(#atopFlood)" /> 195.116 - <use xlink:href="#Red50" filter="url(#atopFlood)" /> 195.117 - <text x="10" y="275">atop</text> 195.118 - </g> 195.119 - <g transform="translate(775,25)"> 195.120 - <use xlink:href="#Red100" filter="url(#xorFlood)" /> 195.121 - <use xlink:href="#Red50" filter="url(#xorFlood)" /> 195.122 - <text x="15" y="275">xor</text> 195.123 - </g> 195.124 - <g transform="translate(900,25)"> 195.125 - <use xlink:href="#Red100" filter="url(#arithmeticFlood)" /> 195.126 - <use xlink:href="#Red50" filter="url(#arithmeticFlood)" /> 195.127 - <text x="-25" y="275">arithmetic</text> 195.128 - </g> 195.129 - </g> 195.130 - <g transform="translate(0,325)" enable-background="new"> 195.131 - <desc>Render the examples using the filters that do not obliterate 195.132 - the background, thus sometimes causing the background to continue 195.133 - to appear in some cases, and in other cases the background 195.134 - image blends into itself ("double-counting").</desc> 195.135 - <text x="15" y="75">opacity 1.0</text> 195.136 - <text x="15" y="115" font-size="27">(without feFlood)</text> 195.137 - <text x="15" y="200">opacity 0.5</text> 195.138 - <text x="15" y="240" font-size="27">(without feFlood)</text> 195.139 - <use xlink:href="#BlueTriangles"/> 195.140 - <g transform="translate(275,25)"> 195.141 - <use xlink:href="#Red100" filter="url(#overNoFlood)" /> 195.142 - <use xlink:href="#Red50" filter="url(#overNoFlood)" /> 195.143 - <text x="5" y="275">over</text> 195.144 - </g> 195.145 - <g transform="translate(400,25)"> 195.146 - <use xlink:href="#Red100" filter="url(#inNoFlood)" /> 195.147 - <use xlink:href="#Red50" filter="url(#inNoFlood)" /> 195.148 - <text x="35" y="275">in</text> 195.149 - </g> 195.150 - <g transform="translate(525,25)"> 195.151 - <use xlink:href="#Red100" filter="url(#outNoFlood)" /> 195.152 - <use xlink:href="#Red50" filter="url(#outNoFlood)" /> 195.153 - <text x="15" y="275">out</text> 195.154 - </g> 195.155 - <g transform="translate(650,25)"> 195.156 - <use xlink:href="#Red100" filter="url(#atopNoFlood)" /> 195.157 - <use xlink:href="#Red50" filter="url(#atopNoFlood)" /> 195.158 - <text x="10" y="275">atop</text> 195.159 - </g> 195.160 - <g transform="translate(775,25)"> 195.161 - <use xlink:href="#Red100" filter="url(#xorNoFlood)" /> 195.162 - <use xlink:href="#Red50" filter="url(#xorNoFlood)" /> 195.163 - <text x="15" y="275">xor</text> 195.164 - </g> 195.165 - <g transform="translate(900,25)"> 195.166 - <use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" /> 195.167 - <use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" /> 195.168 - <text x="-25" y="275">arithmetic</text> 195.169 - </g> 195.170 - </g> 195.171 - </g> 195.172 -</svg> 195.173 -
196.1 --- a/master/examples/feDropShadow.svg Thu Feb 24 10:19:12 2011 +0000 196.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 196.3 @@ -1,55 +0,0 @@ 196.4 -<?xml version="1.0"?> 196.5 -<svg viewBox="0 0 800 400" 196.6 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 196.7 - <title>Example feDropShadow - Examples of feDropShadow operations</title> 196.8 - <desc>Four text strings showing the effects of feComponentTransfer: 196.9 - an identity function acting as a reference, 196.10 - use of the feComponentTransfer table option, 196.11 - use of the feComponentTransfer linear option, 196.12 - and use of the feComponentTransfer gamma option.</desc> 196.13 - <defs> 196.14 - <filter id="feDropShadowEquiv1"> 196.15 - <feGaussianBlur stdDeviation="3"/> 196.16 - <feOffset dx="3" dy="3" result="offsetblur"/> 196.17 - <feFlood flood-color="#720"/> 196.18 - <feComposite in2="offsetblur" operator="in"/> 196.19 - <feMerge> 196.20 - <feMergeNode/> 196.21 - <feMergeNode in="SourceGraphic"/> 196.22 - </feMerge> 196.23 - </filter> 196.24 - <filter id="feDropShadowEquiv2"> 196.25 - <feGaussianBlur stdDeviation="2"/> 196.26 - <feOffset dx="2" dy="2" result="offsetblur"/> 196.27 - <feFlood/> 196.28 - <feComposite in2="offsetblur" operator="in"/> 196.29 - <feMerge> 196.30 - <feMergeNode/> 196.31 - <feMergeNode in="SourceGraphic"/> 196.32 - </feMerge> 196.33 - </filter> 196.34 - <filter id="feDropShadow1"> 196.35 - <feDropShadow stdDeviation="3" flood-color="#720"/> 196.36 - </filter> 196.37 - <filter id="feDropShadow2"> 196.38 - <feDropShadow/> 196.39 - </filter> 196.40 - </defs> 196.41 - <rect fill="none" stroke="blue" 196.42 - x="1" y="1" width="798" height="398"/> 196.43 - <g font-family="Verdana" font-size="30"> 196.44 - <g transform="translate(0,100)"> 196.45 - <text x="210" text-anchor="middle" y="0">Reference</text> 196.46 - <rect x="80" y="10" width="260" height="200" fill="none" stroke="black"/> 196.47 - <text x="100" y="90" filter="url(#feDropShadowEquiv1)" >feDropShadow</text> 196.48 - <text x="100" y="140" filter="url(#feDropShadowEquiv2)" >feDropShadow</text> 196.49 - </g> 196.50 - <g transform="translate(300,100)"> 196.51 - <text x="210" text-anchor="middle" y="0">Actual</text> 196.52 - <rect x="80" y="10" width="260" height="200" fill="none" stroke="black"/> 196.53 - <text x="100" y="90" filter="url(#feDropShadow1)">feDropShadow</text> 196.54 - <text x="100" y="140" filter="url(#feDropShadow2)">feDropShadow</text> 196.55 - </g> 196.56 - </g> 196.57 -</svg> 196.58 -
197.1 Binary file master/examples/feGaussianBlur-motion-00.png has changed
198.1 --- a/master/examples/feGaussianBlur-motion-00.svg Thu Feb 24 10:19:12 2011 +0000 198.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 198.3 @@ -1,15 +0,0 @@ 198.4 -<?xml version="1.0" encoding="UTF-8"?> 198.5 -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"> 198.6 - <defs> 198.7 - <filter id="motionblur" filterUnits="userSpaceOnUse"> 198.8 - <feGaussianBlur stdDeviation="5 0"/> 198.9 - </filter> 198.10 - <symbol id="crow" viewBox="0 0 197 190"> 198.11 - <path d="M 72.566789,186.38448 C 71.202549,184.36785 66.167569,175.06788 61.377949,165.71788 C 56.588329,156.36788 52.650829,149.03965 52.627949,149.43293 C 52.605069,149.82621 53.231819,152.07621 54.020719,154.43293 C 56.134749,160.74826 59.591199,174.77158 59.554549,176.88449 C 59.524869,178.59503 59.416409,178.58387 57.935879,176.71788 C 55.201299,173.27137 45.853349,153.1995 41.635529,141.71788 C 37.663679,130.90581 37.605079,130.81611 38.205719,136.46788 C 38.959899,143.56439 37.583169,143.96813 34.795769,137.46788 C 30.104179,126.52701 28.892829,118.89987 27.609109,92.21788 C 26.579279,70.81278 27.181269,61.74079 30.007419,56.07564 C 31.906109,52.26963 32.139109,52.60152 20.824699,42.99574 C 13.205099,36.52681 11.734279,35.68694 7.1852392,35.20738 L 2.0863492,34.66985 L 7.5863492,32.82094 C 10.611349,31.80405 13.481709,30.60949 13.964929,30.16638 C 15.394959,28.85504 9.7899892,24.44625 4.4291292,22.66566 C 1.6943392,21.75731 -0.28374076,20.75464 0.033389242,20.43751 C 0.35051924,20.12038 7.2421692,19.78442 15.348169,19.69093 C 30.881569,19.51179 34.937409,20.13958 47.086349,24.60361 C 50.936349,26.01826 55.713159,27.18519 57.701489,27.19679 C 65.982349,27.2451 71.556499,17.90344 69.368439,7.6442896 C 67.940739,0.95023961 69.214399,0.010319613 79.726899,2.961339e-05 C 85.523249,-0.0056403866 91.246029,0.80265961 98.391539,2.6362896 C 104.0594,4.0907296 112.29453,5.9632196 116.69184,6.7973796 C 134.01279,10.0831 145.35739,15.11226 132.4653,13.78988 C 123.72653,12.89352 125.97985,14.08978 145.54774,20.73521 C 161.35384,26.10311 174.7538,32.06177 176.16916,34.35187 C 176.71697,35.23824 175.39586,35.37836 170.91088,34.90959 C 167.61644,34.56525 164.05819,34.00702 163.00367,33.66907 C 159.44558,32.52878 164.45052,35.98642 172.8528,40.47328 C 181.01437,44.83161 187.58635,49.6841 187.58635,51.35196 C 187.58635,51.95969 185.75677,52.07923 182.83635,51.6623 C 177.61881,50.91742 177.61253,50.9017 184.83635,56.66751 C 189.29595,60.22701 191.15689,64.23449 188.33635,64.20466 C 187.64885,64.19739 183.75408,62.28489 179.6813,59.95466 C 175.60852,57.62443 170.43352,54.66077 168.1813,53.36875 C 160.24766,48.81749 155.25808,48.53915 153.96805,52.57585 C 153.59155,53.75397 153.17397,57.05515 153.04009,59.91181 C 152.72526,66.62933 148.47286,73.16418 144.39537,73.19653 C 141.27521,73.22129 140.06261,74.55103 141.84736,75.99069 C 143.5779,77.38662 163.91595,85.24612 177.08635,89.60855 C 183.13635,91.61249 189.88635,94.27223 192.08634,95.51908 C 196.03044,97.75438 196.08764,97.86951 196.17774,103.75198 C 196.32804,113.55263 191.83044,119.99235 183.2058,122.3255 C 179.71567,123.26966 178.08026,123.11668 172.50059,121.32412 C 165.62068,119.11384 161.59126,116.76556 147.7546,106.9026 C 143.17214,103.63615 137.09714,100.07812 134.2546,98.99585 L 129.08635,97.0281 L 124.58635,102.12335 C 122.11135,104.92574 119.27183,107.21844 118.2763,107.21824 C 117.28078,107.21804 114.25803,108.66351 111.55908,110.4304 C 108.02382,112.74478 106.47184,114.49211 106.00784,116.6804 C 105.6536,118.35101 104.7976,120.39288 104.10563,121.21788 C 102.12794,123.57575 99.866059,134.66955 99.008439,146.21788 C 98.702099,150.34288 97.981489,154.68231 97.407089,155.86106 C 96.606229,157.50454 96.855109,159.32029 98.474539,163.64858 C 99.636029,166.75296 100.58635,170.19015 100.58635,171.28678 C 100.58635,174.34075 97.802589,174.76966 95.009829,172.14599 L 92.535069,169.82107 L 94.060709,174.1452 C 97.730759,184.54723 95.140999,185.2202 87.992199,175.72216 C 84.864209,171.56625 82.136779,168.33411 81.931259,168.53964 C 81.725729,168.74517 82.756989,171.5332 84.222939,174.73527 C 87.061249,180.93494 87.859979,187.23913 85.894459,187.92805 C 85.215209,188.16613 81.485349,182.83448 77.222469,175.53184 C 73.108409,168.48416 69.042179,161.81788 68.186409,160.71788 C 66.764029,158.88956 66.749579,159.06125 68.018079,162.71788 C 68.781269,164.91788 70.803819,170.06041 72.512649,174.14572 C 77.734689,186.63018 77.767619,194.07236 72.566789,186.38448 z"/> 198.12 - </symbol> 198.13 - </defs> 198.14 - 198.15 - <image xlink:href="forest-small.jpg" width="100%" height="100%" filter="url(#motionblur)"/> 198.16 - <use xlink:href="#crow" width="25%" height="25%" x="20%" y="40%" transform="rotate(-12)"/> 198.17 - 198.18 -</svg>
199.1 Binary file master/examples/feGaussianBlur-stdDeviation-00.png has changed
200.1 --- a/master/examples/feGaussianBlur-stdDeviation-00.svg Thu Feb 24 10:19:12 2011 +0000 200.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 200.3 @@ -1,38 +0,0 @@ 200.4 -<?xml version="1.0" encoding="UTF-8"?> 200.5 -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"> 200.6 - <defs> 200.7 - <font-face font-family="FORQUE"> 200.8 - <font-face-src> 200.9 - <font-face-uri xlink:href="Forque.svg#FORQUE"/> 200.10 - </font-face-src> 200.11 - </font-face> 200.12 - <style> 200.13 - /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */ 200.14 - text { text-anchor: middle; font: 70px FORQUE, sans-serif; } 200.15 - #bx { filter: url(#blurX) } 200.16 - #by { filter: url(#blurY) } 200.17 - #header { filter: url(#ds); fill: white; text-decoration: underline } 200.18 - #attribution { font-size: 6px } 200.19 - :root { background: green; fill: white } 200.20 - </style> 200.21 - <filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse"> 200.22 - <feGaussianBlur stdDeviation="4 0"> 200.23 - <animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/> 200.24 - </feGaussianBlur> 200.25 - </filter> 200.26 - <filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse"> 200.27 - <feGaussianBlur stdDeviation="0 4"/> 200.28 - </filter> 200.29 - <filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2"> 200.30 - <feGaussianBlur stdDeviation="3"/> 200.31 - <feOffset dx="2" dy="2"/> 200.32 - <feComposite in2="SourceGraphic" operator="in"/> 200.33 - </filter> 200.34 - </defs> 200.35 - 200.36 - <text id="bx" x="40%" y="50%">BlurX</text> 200.37 - <text id="by" x="60%" y="70%">BlurY</text> 200.38 - 200.39 - <text id="header" y="1em" x="50%">Unidirectional blur</text> 200.40 - <text id="attribution" x="100%" y="355">Forque font by Tup Wanders</text> 200.41 -</svg>
201.1 Binary file master/examples/feMorphology.png has changed
202.1 --- a/master/examples/feMorphology.svg Thu Feb 24 10:19:12 2011 +0000 202.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 202.3 @@ -1,37 +0,0 @@ 202.4 -<?xml version="1.0"?> 202.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 202.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 202.7 -<svg width="5cm" height="7cm" viewBox="0 0 700 500" 202.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 202.9 - <title>Example feMorphology - Examples of erode and dilate</title> 202.10 - <desc>Five text strings drawn as outlines. 202.11 - The first is unfiltered. The second and third use 'erode'. 202.12 - The fourth and fifth use 'dilate'.</desc> 202.13 - <defs> 202.14 - <filter id="Erode3"> 202.15 - <feMorphology operator="erode" in="SourceGraphic" radius="3" /> 202.16 - </filter> 202.17 - <filter id="Erode6"> 202.18 - <feMorphology operator="erode" in="SourceGraphic" radius="6" /> 202.19 - </filter> 202.20 - <filter id="Dilate3"> 202.21 - <feMorphology operator="dilate" in="SourceGraphic" radius="3" /> 202.22 - </filter> 202.23 - <filter id="Dilate6"> 202.24 - <feMorphology operator="dilate" in="SourceGraphic" radius="6" /> 202.25 - </filter> 202.26 - </defs> 202.27 - <rect fill="none" stroke="blue" stroke-width="2" 202.28 - x="1" y="1" width="698" height="498"/> 202.29 - <g enable-background="new" > 202.30 - <g font-family="Verdana" font-size="75" 202.31 - fill="none" stroke="black" stroke-width="6" > 202.32 - <text x="50" y="90">Unfiltered</text> 202.33 - <text x="50" y="180" filter="url(#Erode3)" >Erode radius 3</text> 202.34 - <text x="50" y="270" filter="url(#Erode6)" >Erode radius 6</text> 202.35 - <text x="50" y="360" filter="url(#Dilate3)" >Dilate radius 3</text> 202.36 - <text x="50" y="450" filter="url(#Dilate6)" >Dilate radius 6</text> 202.37 - </g> 202.38 - </g> 202.39 -</svg> 202.40 -
203.1 Binary file master/examples/feTurbulence.png has changed
204.1 --- a/master/examples/feTurbulence.svg Thu Feb 24 10:19:12 2011 +0000 204.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 204.3 @@ -1,71 +0,0 @@ 204.4 -<?xml version="1.0"?> 204.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 204.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 204.7 -<svg width="450px" height="325px" viewBox="0 0 450 325" 204.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 204.9 - <title>Example feTurbulence - Examples of feTurbulence operations</title> 204.10 - <desc>Six rectangular areas showing the effects of 204.11 - various parameter settings for feTurbulence.</desc> 204.12 - <g font-family="Verdana" text-anchor="middle" font-size="10" > 204.13 - <defs> 204.14 - <filter id="Turb1" filterUnits="objectBoundingBox" 204.15 - x="0%" y="0%" width="100%" height="100%"> 204.16 - <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/> 204.17 - </filter> 204.18 - <filter id="Turb2" filterUnits="objectBoundingBox" 204.19 - x="0%" y="0%" width="100%" height="100%"> 204.20 - <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/> 204.21 - </filter> 204.22 - <filter id="Turb3" filterUnits="objectBoundingBox" 204.23 - x="0%" y="0%" width="100%" height="100%"> 204.24 - <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/> 204.25 - </filter> 204.26 - <filter id="Turb4" filterUnits="objectBoundingBox" 204.27 - x="0%" y="0%" width="100%" height="100%"> 204.28 - <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/> 204.29 - </filter> 204.30 - <filter id="Turb5" filterUnits="objectBoundingBox" 204.31 - x="0%" y="0%" width="100%" height="100%"> 204.32 - <feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/> 204.33 - </filter> 204.34 - <filter id="Turb6" filterUnits="objectBoundingBox" 204.35 - x="0%" y="0%" width="100%" height="100%"> 204.36 - <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/> 204.37 - </filter> 204.38 - </defs> 204.39 - 204.40 - <rect x="1" y="1" width="448" height="323" 204.41 - fill="none" stroke="blue" stroke-width="1" /> 204.42 - 204.43 - <rect x="25" y="25" width="100" height="75" filter="url(#Turb1)" /> 204.44 - <text x="75" y="117">type=turbulence</text> 204.45 - <text x="75" y="129">baseFrequency=0.05</text> 204.46 - <text x="75" y="141">numOctaves=2</text> 204.47 - 204.48 - <rect x="175" y="25" width="100" height="75" filter="url(#Turb2)" /> 204.49 - <text x="225" y="117">type=turbulence</text> 204.50 - <text x="225" y="129">baseFrequency=0.1</text> 204.51 - <text x="225" y="141">numOctaves=2</text> 204.52 - 204.53 - <rect x="325" y="25" width="100" height="75" filter="url(#Turb3)" /> 204.54 - <text x="375" y="117">type=turbulence</text> 204.55 - <text x="375" y="129">baseFrequency=0.05</text> 204.56 - <text x="375" y="141">numOctaves=8</text> 204.57 - 204.58 - <rect x="25" y="180" width="100" height="75" filter="url(#Turb4)" /> 204.59 - <text x="75" y="272">type=fractalNoise</text> 204.60 - <text x="75" y="284">baseFrequency=0.1</text> 204.61 - <text x="75" y="296">numOctaves=4</text> 204.62 - 204.63 - <rect x="175" y="180" width="100" height="75" filter="url(#Turb5)" /> 204.64 - <text x="225" y="272">type=fractalNoise</text> 204.65 - <text x="225" y="284">baseFrequency=0.4</text> 204.66 - <text x="225" y="296">numOctaves=4</text> 204.67 - 204.68 - <rect x="325" y="180" width="100" height="75" filter="url(#Turb6)" /> 204.69 - <text x="375" y="272">type=fractalNoise</text> 204.70 - <text x="375" y="284">baseFrequency=0.1</text> 204.71 - <text x="375" y="296">numOctaves=1</text> 204.72 - </g> 204.73 -</svg> 204.74 -
205.1 Binary file master/examples/filters00.png has changed
206.1 --- a/master/examples/filters00.svg Thu Feb 24 10:19:12 2011 +0000 206.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 206.3 @@ -1,53 +0,0 @@ 206.4 -<?xml version="1.0"?> 206.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 206.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 206.7 -<svg width="11.3cm" height="2.2cm" viewBox="0 0 1130 220" version="1.1" 206.8 - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 206.9 - <title>Example filters00.svg - filter effects before and after</title> 206.10 - <desc>Picture of the before and after affects of filtering.</desc> 206.11 - <defs> 206.12 - <filter id="MyFilter"> 206.13 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 206.14 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 206.15 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant="1" 206.16 - specularExponent="10" lighting-color="white" 206.17 - result="specOut"> 206.18 - <fePointLight x="-5000" y="-10000" z="20000"/> 206.19 - </feSpecularLighting> 206.20 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 206.21 - <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 206.22 - k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 206.23 - <feMerge> 206.24 - <feMergeNode in="offsetBlur"/> 206.25 - <feMergeNode in="litPaint"/> 206.26 - </feMerge> 206.27 - </filter> 206.28 - <g id="CircleRectTriangle"> 206.29 - <g> 206.30 - <circle cx="85" cy="80" r="40" fill="yellow" /> 206.31 -<g> 206.32 - <rect x="145" y="45" width="90" height="70" fill="red" /> 206.33 -</g> 206.34 - <path d="M260,40 L335,80 L260,120 z" fill="#4444ff" /> 206.35 - </g> 206.36 - </g> 206.37 - <path id="LineWithArrow" 206.38 - d="M0,-15 h80 v-10 l40,25 l-40,25 v-10 h-80 z" /> 206.39 - </defs> 206.40 - <g font-family="Verdana" font-size="30" > 206.41 - <rect x="1" y="1" width="1128" height="218" 206.42 - fill="#cccccc" stroke="blue" /> 206.43 - <use x="0" y="0" xlink:href="#CircleRectTriangle"/> 206.44 - <text x="20" y="180">Original source graphic</text> 206.45 - <use x="380" y="80" xlink:href="#LineWithArrow"/> 206.46 - <text x="520" y="70">Filter</text> 206.47 - <text x="520" y="120">Effect</text> 206.48 - <use x="630" y="80" xlink:href="#LineWithArrow"/> 206.49 - <text x="790" y="180">Result of filter effect</text> 206.50 - </g> 206.51 - <g filter="url(#MyFilter)" > 206.52 - <use x="750" y="0" xlink:href="#CircleRectTriangle"/> 206.53 - </g> 206.54 -</svg> 206.55 - 206.56 -
207.1 Binary file master/examples/filters01-0.png has changed
208.1 --- a/master/examples/filters01-0.svg Thu Feb 24 10:19:12 2011 +0000 208.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 208.3 @@ -1,23 +0,0 @@ 208.4 -<?xml version="1.0"?> 208.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 208.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 208.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" version="1.1" 208.8 - xmlns="http://www.w3.org/2000/svg"> 208.9 - <title>Example filters01-0.svg - source graphic with no filters</title> 208.10 - <desc>Shows what filters01.svg looks like without any 208.11 - filters.</desc> 208.12 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 208.13 - <g> 208.14 - <g> 208.15 - <path fill="none" stroke="#D90000" stroke-width="10" 208.16 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 208.17 - <path fill="#D90000" 208.18 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 208.19 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 208.20 - <text x="52" y="76">SVG</text> 208.21 - </g> 208.22 - </g> 208.23 - </g> 208.24 -</svg> 208.25 - 208.26 -
209.1 Binary file master/examples/filters01-1.png has changed
210.1 --- a/master/examples/filters01-1.svg Thu Feb 24 10:19:12 2011 +0000 210.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 210.3 @@ -1,28 +0,0 @@ 210.4 -<?xml version="1.0"?> 210.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 210.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 210.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 210.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 210.9 - <title>Example filters01-1.svg - after first step</title> 210.10 - <desc>Shows intermediate result for filters01.svg after applying 210.11 - the first filter element, feGaussianBlur.</desc> 210.12 - <defs> 210.13 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 210.14 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 210.15 - </filter> 210.16 - </defs> 210.17 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 210.18 - <g filter="url(#MyFilter)" > 210.19 - <g> 210.20 - <path fill="none" stroke="#D90000" stroke-width="10" 210.21 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 210.22 - <path fill="#D90000" 210.23 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 210.24 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 210.25 - <text x="52" y="76">SVG</text> 210.26 - </g> 210.27 - </g> 210.28 - </g> 210.29 -</svg> 210.30 - 210.31 -
211.1 Binary file master/examples/filters01-2.png has changed
212.1 --- a/master/examples/filters01-2.svg Thu Feb 24 10:19:12 2011 +0000 212.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 212.3 @@ -1,29 +0,0 @@ 212.4 -<?xml version="1.0"?> 212.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 212.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 212.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 212.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 212.9 - <title>Example filters01-2.svg - after second step</title> 212.10 - <desc>Shows intermediate result for filters01.svg after applying 212.11 - the second filter element, feOffset.</desc> 212.12 - <defs> 212.13 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 212.14 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 212.15 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 212.16 - </filter> 212.17 - </defs> 212.18 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 212.19 - <g filter="url(#MyFilter)" > 212.20 - <g> 212.21 - <path fill="none" stroke="#D90000" stroke-width="10" 212.22 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 212.23 - <path fill="#D90000" 212.24 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 212.25 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 212.26 - <text x="52" y="76">SVG</text> 212.27 - </g> 212.28 - </g> 212.29 - </g> 212.30 -</svg> 212.31 - 212.32 -
213.1 Binary file master/examples/filters01-3.png has changed
214.1 --- a/master/examples/filters01-3.svg Thu Feb 24 10:19:12 2011 +0000 214.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 214.3 @@ -1,34 +0,0 @@ 214.4 -<?xml version="1.0"?> 214.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 214.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 214.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 214.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 214.9 - <title>Example filters01-3.svg - after third step</title> 214.10 - <desc>Shows intermediate result for filters01.svg after applying 214.11 - the third filter element, feSpecularLighting.</desc> 214.12 - <defs> 214.13 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 214.14 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 214.15 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 214.16 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 214.17 - specularExponent="20" lighting-color="#bbbbbb" 214.18 - result="specOut"> 214.19 - <fePointLight x="-5000" y="-10000" z="20000"/> 214.20 - </feSpecularLighting> 214.21 - </filter> 214.22 - </defs> 214.23 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 214.24 - <g filter="url(#MyFilter)" > 214.25 - <g> 214.26 - <path fill="none" stroke="#D90000" stroke-width="10" 214.27 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 214.28 - <path fill="#D90000" 214.29 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 214.30 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 214.31 - <text x="52" y="76">SVG</text> 214.32 - </g> 214.33 - </g> 214.34 - </g> 214.35 -</svg> 214.36 - 214.37 -
215.1 Binary file master/examples/filters01-4.png has changed
216.1 --- a/master/examples/filters01-4.svg Thu Feb 24 10:19:12 2011 +0000 216.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 216.3 @@ -1,35 +0,0 @@ 216.4 -<?xml version="1.0"?> 216.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 216.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 216.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 216.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 216.9 - <title>Example filters01-4.svg - after fourth step</title> 216.10 - <desc>Shows intermediate result for filters01.svg after applying 216.11 - the fourth filter element, feComposite.</desc> 216.12 - <defs> 216.13 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 216.14 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 216.15 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 216.16 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 216.17 - specularExponent="20" lighting-color="#bbbbbb" 216.18 - result="specOut"> 216.19 - <fePointLight x="-5000" y="-10000" z="20000"/> 216.20 - </feSpecularLighting> 216.21 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 216.22 - </filter> 216.23 - </defs> 216.24 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 216.25 - <g filter="url(#MyFilter)" > 216.26 - <g> 216.27 - <path fill="none" stroke="#D90000" stroke-width="10" 216.28 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 216.29 - <path fill="#D90000" 216.30 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 216.31 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 216.32 - <text x="52" y="76">SVG</text> 216.33 - </g> 216.34 - </g> 216.35 - </g> 216.36 -</svg> 216.37 - 216.38 -
217.1 Binary file master/examples/filters01-5.png has changed
218.1 --- a/master/examples/filters01-5.svg Thu Feb 24 10:19:12 2011 +0000 218.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 218.3 @@ -1,37 +0,0 @@ 218.4 -<?xml version="1.0"?> 218.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 218.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 218.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 218.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 218.9 - <title>Example filters01-5.svg - after fifth step</title> 218.10 - <desc>Shows intermediate result for filters01.svg after applying 218.11 - the fifth filter element, feComposite.</desc> 218.12 - <defs> 218.13 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 218.14 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 218.15 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 218.16 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 218.17 - specularExponent="20" lighting-color="#bbbbbb" 218.18 - result="specOut"> 218.19 - <fePointLight x="-5000" y="-10000" z="20000"/> 218.20 - </feSpecularLighting> 218.21 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 218.22 - <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 218.23 - k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 218.24 - </filter> 218.25 - </defs> 218.26 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 218.27 - <g filter="url(#MyFilter)" > 218.28 - <g> 218.29 - <path fill="none" stroke="#D90000" stroke-width="10" 218.30 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 218.31 - <path fill="#D90000" 218.32 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 218.33 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 218.34 - <text x="52" y="76">SVG</text> 218.35 - </g> 218.36 - </g> 218.37 - </g> 218.38 -</svg> 218.39 - 218.40 -
219.1 Binary file master/examples/filters01-6.png has changed
220.1 --- a/master/examples/filters01-6.svg Thu Feb 24 10:19:12 2011 +0000 220.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 220.3 @@ -1,43 +0,0 @@ 220.4 -<?xml version="1.0"?> 220.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 220.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 220.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 220.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 220.9 - <title>Example filters01.svg - introducing filter effects</title> 220.10 - <desc>An example which combines multiple filter primitives 220.11 - to produce a 3D lighting effect on a graphic consisting 220.12 - of the string "SVG" sitting on top of oval filled in red 220.13 - and surrounded by an oval outlined in red.</desc> 220.14 - <defs> 220.15 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 220.16 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 220.17 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 220.18 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 220.19 - specularExponent="20" lighting-color="#bbbbbb" 220.20 - result="specOut"> 220.21 - <fePointLight x="-5000" y="-10000" z="20000"/> 220.22 - </feSpecularLighting> 220.23 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 220.24 - <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 220.25 - k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 220.26 - <feMerge> 220.27 - <feMergeNode in="offsetBlur"/> 220.28 - <feMergeNode in="litPaint"/> 220.29 - </feMerge> 220.30 - </filter> 220.31 - </defs> 220.32 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 220.33 - <g filter="url(#MyFilter)" > 220.34 - <g> 220.35 - <path fill="none" stroke="#D90000" stroke-width="10" 220.36 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 220.37 - <path fill="#D90000" 220.38 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 220.39 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 220.40 - <text x="52" y="76">SVG</text> 220.41 - </g> 220.42 - </g> 220.43 - </g> 220.44 -</svg> 220.45 - 220.46 -
221.1 Binary file master/examples/filters01.png has changed
222.1 --- a/master/examples/filters01.svg Thu Feb 24 10:19:12 2011 +0000 222.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 222.3 @@ -1,43 +0,0 @@ 222.4 -<?xml version="1.0"?> 222.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 222.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 222.7 -<svg width="7.5cm" height="5cm" viewBox="0 0 200 120" 222.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 222.9 - <title>Example filters01.svg - introducing filter effects</title> 222.10 - <desc>An example which combines multiple filter primitives 222.11 - to produce a 3D lighting effect on a graphic consisting 222.12 - of the string "SVG" sitting on top of oval filled in red 222.13 - and surrounded by an oval outlined in red.</desc> 222.14 - <defs> 222.15 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 222.16 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 222.17 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 222.18 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 222.19 - specularExponent="20" lighting-color="#bbbbbb" 222.20 - result="specOut"> 222.21 - <fePointLight x="-5000" y="-10000" z="20000"/> 222.22 - </feSpecularLighting> 222.23 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 222.24 - <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 222.25 - k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 222.26 - <feMerge> 222.27 - <feMergeNode in="offsetBlur"/> 222.28 - <feMergeNode in="litPaint"/> 222.29 - </feMerge> 222.30 - </filter> 222.31 - </defs> 222.32 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 222.33 - <g filter="url(#MyFilter)" > 222.34 - <g> 222.35 - <path fill="none" stroke="#D90000" stroke-width="10" 222.36 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 222.37 - <path fill="#D90000" 222.38 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 222.39 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 222.40 - <text x="52" y="76">SVG</text> 222.41 - </g> 222.42 - </g> 222.43 - </g> 222.44 -</svg> 222.45 - 222.46 -
223.1 Binary file master/examples/filtersubregion00.png has changed
224.1 --- a/master/examples/filtersubregion00.svg Thu Feb 24 10:19:12 2011 +0000 224.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 224.3 @@ -1,43 +0,0 @@ 224.4 -<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"> 224.5 - <defs> 224.6 - <filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox"> 224.7 - <feFlood x="25%" y="25%" width="50%" height="50%" 224.8 - flood-color="green" flood-opacity="0.75"/> 224.9 - </filter> 224.10 - <filter id="blend" primitiveUnits="objectBoundingBox"> 224.11 - <feBlend x="25%" y="25%" width="50%" height="50%" 224.12 - in2="SourceGraphic" mode="multiply"/> 224.13 - </filter> 224.14 - <filter id="merge" primitiveUnits="objectBoundingBox"> 224.15 - <feMerge x="25%" y="25%" width="50%" height="50%"> 224.16 - <feMergeNode in="SourceGraphic"/> 224.17 - <feMergeNode in="FillPaint"/> 224.18 - </feMerge> 224.19 - </filter> 224.20 - </defs> 224.21 - 224.22 - <g fill="none" stroke="blue" stroke-width="4"> 224.23 - <rect width="200" height="200"/> 224.24 - <line x2="200" y2="200"/> 224.25 - <line x1="200" y2="200"/> 224.26 - </g> 224.27 - <circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/> 224.28 - 224.29 - <g transform="translate(200 0)"> 224.30 - <g fill="none" stroke="blue" stroke-width="4"> 224.31 - <rect width="200" height="200"/> 224.32 - <line x2="200" y2="200"/> 224.33 - <line x1="200" y2="200"/> 224.34 - </g> 224.35 - <circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/> 224.36 - </g> 224.37 - 224.38 - <g transform="translate(0 200)"> 224.39 - <g fill="none" stroke="blue" stroke-width="4"> 224.40 - <rect width="200" height="200"/> 224.41 - <line x2="200" y2="200"/> 224.42 - <line x1="200" y2="200"/> 224.43 - </g> 224.44 - <circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/> 224.45 - </g> 224.46 -</svg> 224.47 \ No newline at end of file
225.1 Binary file master/examples/forest-small.jpg has changed
226.1 --- a/master/mathml/feColorMatrix00.mml Thu Feb 24 10:19:12 2011 +0000 226.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 226.3 @@ -1,209 +0,0 @@ 226.4 -<?xml version="1.0" encoding="iso-8859-1"?> 226.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 226.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 226.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 226.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 226.9 - <mrow> 226.10 - <mfenced open="[" close="]"> 226.11 - <mrow> 226.12 - <mtable> 226.13 - <mtr> 226.14 - <msup> 226.15 - <mi>R</mi> 226.16 - <mo>'</mo> 226.17 - </msup> 226.18 - </mtr> 226.19 - <mtr> 226.20 - <msup> 226.21 - <mi>G</mi> 226.22 - <mo>'</mo> 226.23 - </msup> 226.24 - </mtr> 226.25 - <mtr> 226.26 - <msup> 226.27 - <mi>B</mi> 226.28 - <mo>'</mo> 226.29 - </msup> 226.30 - </mtr> 226.31 - <mtr> 226.32 - <msup> 226.33 - <mi>A</mi> 226.34 - <mo>'</mo> 226.35 - </msup> 226.36 - </mtr> 226.37 - </mtable> 226.38 - </mrow> 226.39 - </mfenced> 226.40 - <mo>=</mo> 226.41 - <mfenced open="[" close="]"> 226.42 - <mrow> 226.43 - <mtable> 226.44 - <mtr> 226.45 - <mtd> 226.46 - <msub> 226.47 - <mi>a</mi> 226.48 - <mn>00</mn> 226.49 - </msub> 226.50 - </mtd> 226.51 - <mtd> 226.52 - <msub> 226.53 - <mi>a</mi> 226.54 - <mn>01</mn> 226.55 - </msub> 226.56 - </mtd> 226.57 - <mtd> 226.58 - <msub> 226.59 - <mi>a</mi> 226.60 - <mn>02</mn> 226.61 - </msub> 226.62 - </mtd> 226.63 - <mtd> 226.64 - <msub> 226.65 - <mi>a</mi> 226.66 - <mn>03</mn> 226.67 - </msub> 226.68 - </mtd> 226.69 - <mtd> 226.70 - <msub> 226.71 - <mi>a</mi> 226.72 - <mn>04</mn> 226.73 - </msub> 226.74 - </mtd> 226.75 - </mtr> 226.76 - <mtr> 226.77 - <mtd> 226.78 - <msub> 226.79 - <mi>a</mi> 226.80 - <mn>10</mn> 226.81 - </msub> 226.82 - </mtd> 226.83 - <mtd> 226.84 - <msub> 226.85 - <mi>a</mi> 226.86 - <mn>11</mn> 226.87 - </msub> 226.88 - </mtd> 226.89 - <mtd> 226.90 - <msub> 226.91 - <mi>a</mi> 226.92 - <mn>12</mn> 226.93 - </msub> 226.94 - </mtd> 226.95 - <mtd> 226.96 - <msub> 226.97 - <mi>a</mi> 226.98 - <mn>13</mn> 226.99 - </msub> 226.100 - </mtd> 226.101 - <mtd> 226.102 - <msub> 226.103 - <mi>a</mi> 226.104 - <mn>14</mn> 226.105 - </msub> 226.106 - </mtd> 226.107 - </mtr> 226.108 - <mtr> 226.109 - <mtd> 226.110 - <msub> 226.111 - <mi>a</mi> 226.112 - <mn>20</mn> 226.113 - </msub> 226.114 - </mtd> 226.115 - <mtd> 226.116 - <msub> 226.117 - <mi>a</mi> 226.118 - <mn>21</mn> 226.119 - </msub> 226.120 - </mtd> 226.121 - <mtd> 226.122 - <msub> 226.123 - <mi>a</mi> 226.124 - <mn>22</mn> 226.125 - </msub> 226.126 - </mtd> 226.127 - <mtd> 226.128 - <msub> 226.129 - <mi>a</mi> 226.130 - <mn>23</mn> 226.131 - </msub> 226.132 - </mtd> 226.133 - <mtd> 226.134 - <msub> 226.135 - <mi>a</mi> 226.136 - <mn>24</mn> 226.137 - </msub> 226.138 - </mtd> 226.139 - </mtr> 226.140 - <mtr> 226.141 - <mtd> 226.142 - <msub> 226.143 - <mi>a</mi> 226.144 - <mn>30</mn> 226.145 - </msub> 226.146 - </mtd> 226.147 - <mtd> 226.148 - <msub> 226.149 - <mi>a</mi> 226.150 - <mn>31</mn> 226.151 - </msub> 226.152 - </mtd> 226.153 - <mtd> 226.154 - <msub> 226.155 - <mi>a</mi> 226.156 - <mn>32</mn> 226.157 - </msub> 226.158 - </mtd> 226.159 - <mtd> 226.160 - <msub> 226.161 - <mi>a</mi> 226.162 - <mn>33</mn> 226.163 - </msub> 226.164 - </mtd> 226.165 - <mtd> 226.166 - <msub> 226.167 - <mi>a</mi> 226.168 - <mn>34</mn> 226.169 - </msub> 226.170 - </mtd> 226.171 - </mtr> 226.172 - <mtr> 226.173 - <mtd> 226.174 - <mn>0</mn> 226.175 - </mtd> 226.176 - <mtd> 226.177 - <mn>0</mn> 226.178 - </mtd> 226.179 - <mtd> 226.180 - <mn>0</mn> 226.181 - </mtd> 226.182 - <mtd> 226.183 - <mn>0</mn> 226.184 - </mtd> 226.185 - <mtd> 226.186 - <mn>1</mn> 226.187 - </mtd> 226.188 - </mtr> 226.189 - </mtable> 226.190 - </mrow> 226.191 - </mfenced> 226.192 - <mo>.</mo> 226.193 - <mfenced open="[" close="]"> 226.194 - <mrow> 226.195 - <mtable> 226.196 - <mtr> 226.197 - <mi>R</mi> 226.198 - </mtr> 226.199 - <mtr> 226.200 - <mi>G</mi> 226.201 - </mtr> 226.202 - <mtr> 226.203 - <mi>B</mi> 226.204 - </mtr> 226.205 - <mtr> 226.206 - <mi>A</mi> 226.207 - </mtr> 226.208 - </mtable> 226.209 - </mrow> 226.210 - </mfenced> 226.211 -</mrow> 226.212 -</math>
227.1 --- a/master/mathml/feColorMatrix01.mml Thu Feb 24 10:19:12 2011 +0000 227.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 227.3 @@ -1,198 +0,0 @@ 227.4 -<?xml version="1.0" encoding="iso-8859-1"?> 227.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 227.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 227.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 227.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 227.9 - <mrow> 227.10 - <mfenced> 227.11 - <mtable> 227.12 - <mtr> 227.13 - <mtd> 227.14 - <msup> 227.15 - <mi>R</mi> 227.16 - <mo>'</mo> 227.17 - </msup> 227.18 - </mtd> 227.19 - </mtr> 227.20 - <mtr> 227.21 - <mtd> 227.22 - <msup> 227.23 - <mi>G</mi> 227.24 - <mo>'</mo> 227.25 - </msup> 227.26 - </mtd> 227.27 - </mtr> 227.28 - <mtr> 227.29 - <mtd> 227.30 - <msup> 227.31 - <mi>B</mi> 227.32 - <mo>'</mo> 227.33 - </msup> 227.34 - </mtd> 227.35 - </mtr> 227.36 - <mtr> 227.37 - <mtd> 227.38 - <msup> 227.39 - <mi>A</mi> 227.40 - <mo>'</mo> 227.41 - </msup> 227.42 - </mtd> 227.43 - </mtr> 227.44 - <mtr> 227.45 - <mtd> 227.46 - <mn>1</mn> 227.47 - </mtd> 227.48 - </mtr> 227.49 - </mtable> 227.50 - </mfenced> 227.51 - <mo>=</mo> 227.52 - <mrow> 227.53 - <mfenced> 227.54 - <mtable> 227.55 - <mtr> 227.56 - <mtd> 227.57 - <mn>0.213</mn> 227.58 - <mo>+</mo> 227.59 - <mn>0.787</mn> 227.60 - <mi>s</mi> 227.61 - </mtd> 227.62 - <mtd> 227.63 - <mn>0.715</mn> 227.64 - <mo>−</mo> 227.65 - <mo>0.715</mo> 227.66 - <mi>s</mi> 227.67 - </mtd> 227.68 - <mtd> 227.69 - <mn>0.072</mn> 227.70 - <mo>−</mo> 227.71 - <mn>0.072</mn> 227.72 - <mi>s</mi> 227.73 - </mtd> 227.74 - <mtd> 227.75 - <mn>0</mn> 227.76 - </mtd> 227.77 - <mtd> 227.78 - <mn>0</mn> 227.79 - </mtd> 227.80 - </mtr> 227.81 - <mtr> 227.82 - <mtd> 227.83 - <mn>0.213</mn> 227.84 - <mo>−</mo> 227.85 - <mn>0.213</mn> 227.86 - <mi>s</mi> 227.87 - </mtd> 227.88 - <mtd> 227.89 - <mn>0.715</mn> 227.90 - <mo>+</mo> 227.91 - <mn>0.285</mn> 227.92 - <mi>s</mi> 227.93 - </mtd> 227.94 - <mtd> 227.95 - <mn>0.072</mn> 227.96 - <mo>−</mo> 227.97 - <mn>0.072</mn> 227.98 - <mi>s</mi> 227.99 - </mtd> 227.100 - <mtd> 227.101 - <mn>0</mn> 227.102 - </mtd> 227.103 - <mtd> 227.104 - <mn>0</mn> 227.105 - </mtd> 227.106 - </mtr> 227.107 - <mtr> 227.108 - <mtd> 227.109 - <mn>0.213</mn> 227.110 - <mo>−</mo> 227.111 - <mn>0.213</mn> 227.112 - <mi>s</mi> 227.113 - </mtd> 227.114 - <mtd> 227.115 - <mn>0.715</mn> 227.116 - <mo>−</mo> 227.117 - <mn>0.715</mn> 227.118 - <mi>s</mi> 227.119 - </mtd> 227.120 - <mtd> 227.121 - <mn>0.072</mn> 227.122 - <mo>+</mo> 227.123 - <mn>0.928</mn> 227.124 - <mi>s</mi> 227.125 - </mtd> 227.126 - <mtd> 227.127 - <mn>0</mn> 227.128 - </mtd> 227.129 - <mtd> 227.130 - <mn>0</mn> 227.131 - </mtd> 227.132 - </mtr> 227.133 - <mtr> 227.134 - <mtd> 227.135 - <mn>0</mn> 227.136 - </mtd> 227.137 - <mtd> 227.138 - <mn>0</mn> 227.139 - </mtd> 227.140 - <mtd> 227.141 - <mn>0</mn> 227.142 - </mtd> 227.143 - <mtd> 227.144 - <mn>1</mn> 227.145 - </mtd> 227.146 - <mtd> 227.147 - <mn>0</mn> 227.148 - </mtd> 227.149 - </mtr> 227.150 - <mtr> 227.151 - <mtd> 227.152 - <mn>0</mn> 227.153 - </mtd> 227.154 - <mtd> 227.155 - <mn>0</mn> 227.156 - </mtd> 227.157 - <mtd> 227.158 - <mn>0</mn> 227.159 - </mtd> 227.160 - <mtd> 227.161 - <mn>0</mn> 227.162 - </mtd> 227.163 - <mtd> 227.164 - <mn>1</mn> 227.165 - </mtd> 227.166 - </mtr> 227.167 - </mtable> 227.168 - </mfenced> 227.169 - <mo>.</mo> 227.170 - <mfenced> 227.171 - <mtable> 227.172 - <mtr> 227.173 - <mtd> 227.174 - <mi>R</mi> 227.175 - </mtd> 227.176 - </mtr> 227.177 - <mtr> 227.178 - <mtd> 227.179 - <mi>G</mi> 227.180 - </mtd> 227.181 - </mtr> 227.182 - <mtr> 227.183 - <mtd> 227.184 - <mi>B</mi> 227.185 - </mtd> 227.186 - </mtr> 227.187 - <mtr> 227.188 - <mtd> 227.189 - <mi>A</mi> 227.190 - </mtd> 227.191 - </mtr> 227.192 - <mtr> 227.193 - <mtd> 227.194 - <mn>1</mn> 227.195 - </mtd> 227.196 - </mtr> 227.197 - </mtable> 227.198 - </mfenced> 227.199 - </mrow> 227.200 - </mrow> 227.201 -</math> 227.202 \ No newline at end of file
228.1 --- a/master/mathml/feColorMatrix02.mml Thu Feb 24 10:19:12 2011 +0000 228.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 228.3 @@ -1,179 +0,0 @@ 228.4 -<?xml version="1.0" encoding="iso-8859-1"?> 228.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 228.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 228.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 228.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 228.9 - <mfenced> 228.10 - <mtable> 228.11 - <mtr> 228.12 - <mtd> 228.13 - <msup> 228.14 - <mi>R</mi> 228.15 - <mo>'</mo> 228.16 - </msup> 228.17 - </mtd> 228.18 - </mtr> 228.19 - <mtr> 228.20 - <mtd> 228.21 - <msup> 228.22 - <mi>G</mi> 228.23 - <mo>'</mo> 228.24 - </msup> 228.25 - </mtd> 228.26 - </mtr> 228.27 - <mtr> 228.28 - <mtd> 228.29 - <msup> 228.30 - <mi>B</mi> 228.31 - <mo>'</mo> 228.32 - </msup> 228.33 - </mtd> 228.34 - </mtr> 228.35 - <mtr> 228.36 - <mtd> 228.37 - <msup> 228.38 - <mi>A</mi> 228.39 - <mo>'</mo> 228.40 - </msup> 228.41 - </mtd> 228.42 - </mtr> 228.43 - <mtr> 228.44 - <mtd> 228.45 - <mn>1</mn> 228.46 - </mtd> 228.47 - </mtr> 228.48 - </mtable> 228.49 - </mfenced> 228.50 - <mo>=</mo> 228.51 - <mrow> 228.52 - <mn><mfenced> 228.53 - <mtable> 228.54 - <mtr> 228.55 - <mtd> 228.56 - <mi>a</mi> 228.57 - <mn>00</mn> 228.58 - </mtd> 228.59 - <mtd> 228.60 - <mi>a</mi> 228.61 - <mn>01</mn> 228.62 - </mtd> 228.63 - <mtd> 228.64 - <mi>a</mi> 228.65 - <mn>02</mn> 228.66 - </mtd> 228.67 - <mtd> 228.68 - <mn>0</mn> 228.69 - </mtd> 228.70 - <mtd> 228.71 - <mn>0</mn> 228.72 - </mtd> 228.73 - </mtr> 228.74 - <mtr> 228.75 - <mtd> 228.76 - <mi>a</mi> 228.77 - <mn>10</mn> 228.78 - </mtd> 228.79 - <mtd> 228.80 - <mi>a</mi> 228.81 - <mn>11</mn> 228.82 - </mtd> 228.83 - <mtd> 228.84 - <mi>a</mi> 228.85 - <mn>12</mn> 228.86 - </mtd> 228.87 - <mtd> 228.88 - <mn>0</mn> 228.89 - </mtd> 228.90 - <mtd> 228.91 - <mn>0</mn> 228.92 - </mtd> 228.93 - </mtr> 228.94 - <mtr> 228.95 - <mtd> 228.96 - <mi>a</mi> 228.97 - <mn>20</mn> 228.98 - </mtd> 228.99 - <mtd> 228.100 - <mi>a</mi> 228.101 - <mn>21</mn> 228.102 - </mtd> 228.103 - <mtd> 228.104 - <mi>a</mi> 228.105 - <mn>22</mn> 228.106 - </mtd> 228.107 - <mtd> 228.108 - <mn>0</mn> 228.109 - </mtd> 228.110 - <mtd> 228.111 - <mn>0</mn> 228.112 - </mtd> 228.113 - </mtr> 228.114 - <mtr> 228.115 - <mtd> 228.116 - <mn>0</mn> 228.117 - </mtd> 228.118 - <mtd> 228.119 - <mn>0</mn> 228.120 - </mtd> 228.121 - <mtd> 228.122 - <mn>0</mn> 228.123 - </mtd> 228.124 - <mtd> 228.125 - <mn>1</mn> 228.126 - </mtd> 228.127 - <mtd> 228.128 - <mn>0</mn> 228.129 - </mtd> 228.130 - </mtr> 228.131 - <mtr> 228.132 - <mtd> 228.133 - <mn>0</mn> 228.134 - </mtd> 228.135 - <mtd> 228.136 - <mn>0</mn> 228.137 - </mtd> 228.138 - <mtd> 228.139 - <mn>0</mn> 228.140 - </mtd> 228.141 - <mtd> 228.142 - <mn>0</mn> 228.143 - </mtd> 228.144 - <mtd> 228.145 - <mn>1</mn> 228.146 - </mtd> 228.147 - </mtr> 228.148 - </mtable> 228.149 - </mfenced> 228.150 - </mn> 228.151 - <mo>.</mo> 228.152 - <mfenced> 228.153 - <mtable> 228.154 - <mtr> 228.155 - <mtd> 228.156 - <mi>R</mi> 228.157 - </mtd> 228.158 - </mtr> 228.159 - <mtr> 228.160 - <mtd> 228.161 - <mi>G</mi> 228.162 - </mtd> 228.163 - </mtr> 228.164 - <mtr> 228.165 - <mtd> 228.166 - <mi>B</mi> 228.167 - </mtd> 228.168 - </mtr> 228.169 - <mtr> 228.170 - <mtd> 228.171 - <mi>A</mi> 228.172 - </mtd> 228.173 - </mtr> 228.174 - <mtr> 228.175 - <mtd> 228.176 - <mn>1</mn> 228.177 - </mtd> 228.178 - </mtr> 228.179 - </mtable> 228.180 - </mfenced> 228.181 - </mrow> 228.182 -</math> 228.183 \ No newline at end of file
229.1 --- a/master/mathml/feColorMatrix03.mml Thu Feb 24 10:19:12 2011 +0000 229.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 229.3 @@ -1,212 +0,0 @@ 229.4 -<?xml version="1.0" encoding="iso-8859-1"?> 229.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 229.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 229.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 229.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 229.9 - <mrow> 229.10 - <mfenced> 229.11 - <mtable> 229.12 - <mtr> 229.13 - <mtd> 229.14 - <mi>a</mi> 229.15 - <mn>00</mn> 229.16 - </mtd> 229.17 - <mtd> 229.18 - <mi>a</mi> 229.19 - <mn>01</mn> 229.20 - </mtd> 229.21 - <mtd> 229.22 - <mi>a</mi> 229.23 - <mn>02</mn> 229.24 - </mtd> 229.25 - </mtr> 229.26 - <mtr> 229.27 - <mtd> 229.28 - <mi>a</mi> 229.29 - <mn>10</mn> 229.30 - </mtd> 229.31 - <mtd> 229.32 - <mi>a</mi> 229.33 - <mn>11</mn> 229.34 - </mtd> 229.35 - <mtd> 229.36 - <mi>a</mi> 229.37 - <mn>12</mn> 229.38 - </mtd> 229.39 - </mtr> 229.40 - <mtr> 229.41 - <mtd> 229.42 - <mi>a</mi> 229.43 - <mn>20</mn> 229.44 - </mtd> 229.45 - <mtd> 229.46 - <mi>a</mi> 229.47 - <mn>21</mn> 229.48 - </mtd> 229.49 - <mtd> 229.50 - <mi>a</mi> 229.51 - <mn>22</mn> 229.52 - </mtd> 229.53 - </mtr> 229.54 - </mtable> 229.55 - </mfenced> 229.56 - <mo>=</mo> 229.57 - <mfenced close="+"> 229.58 - <mtable> 229.59 - <mtr> 229.60 - <mtd> 229.61 - <mn>0.213</mn> 229.62 - </mtd> 229.63 - <mtd> 229.64 - <mn>0.715</mn> 229.65 - </mtd> 229.66 - <mtd> 229.67 - <mn>0.072</mn> 229.68 - </mtd> 229.69 - </mtr> 229.70 - <mtr> 229.71 - <mtd> 229.72 - <mn>0.213</mn> 229.73 - </mtd> 229.74 - <mtd> 229.75 - <mn>0.715</mn> 229.76 - </mtd> 229.77 - <mtd> 229.78 - <mn>0.072</mn> 229.79 - </mtd> 229.80 - </mtr> 229.81 - <mtr> 229.82 - <mtd> 229.83 - <mn>0.213</mn> 229.84 - </mtd> 229.85 - <mtd> 229.86 - <mn>0.715</mn> 229.87 - </mtd> 229.88 - <mtd> 229.89 - <mn>0.072</mn> 229.90 - </mtd> 229.91 - </mtr> 229.92 - </mtable> 229.93 - </mfenced> 229.94 - <mo>+</mo> 229.95 - <mrow> 229.96 - <mrow> 229.97 - <mi>cos</mi> 229.98 - <mo>⁡</mo> 229.99 - <mrow> 229.100 - <mo>(</mo> 229.101 - <mi>hueRotate</mi> 229.102 - <mi>value</mi> 229.103 - <mo>)</mo> 229.104 - </mrow> 229.105 - </mrow> 229.106 - <mo>.</mo> 229.107 - <mfenced> 229.108 - <mtable> 229.109 - <mtr> 229.110 - <mtd> 229.111 - <mn>0.787</mn> 229.112 - </mtd> 229.113 - <mtd> 229.114 - <mo>−</mo> 229.115 - <mn>0.715</mn> 229.116 - </mtd> 229.117 - <mtd> 229.118 - <mrow> 229.119 - <mo>−</mo> 229.120 - <mn>0.072</mn> 229.121 - </mrow> 229.122 - </mtd> 229.123 - </mtr> 229.124 - <mtr> 229.125 - <mtd> 229.126 - <mo>−</mo> 229.127 - <mn>0.213</mn> 229.128 - </mtd> 229.129 - <mtd> 229.130 - <mn>0.285</mn> 229.131 - </mtd> 229.132 - <mtd> 229.133 - <mo>−</mo> 229.134 - <mn>0.072</mn> 229.135 - </mtd> 229.136 - </mtr> 229.137 - <mtr> 229.138 - <mtd> 229.139 - <mo>−</mo> 229.140 - <mn>0.213</mn> 229.141 - </mtd> 229.142 - <mtd> 229.143 - <mo>−</mo> 229.144 - <mn>0.715</mn> 229.145 - </mtd> 229.146 - <mtd> 229.147 - <mn>0.928</mn> 229.148 - </mtd> 229.149 - </mtr> 229.150 - </mtable> 229.151 - </mfenced> 229.152 - </mrow> 229.153 - <mo>+</mo> 229.154 - <mrow> 229.155 - <mrow> 229.156 - <mi>sin</mi> 229.157 - <mo>⁡</mo> 229.158 - <mo>(</mo> 229.159 - <mi>hueRotate</mi> 229.160 - <mi>value</mi> 229.161 - <mo>)</mo> 229.162 - </mrow> 229.163 - <mo>.</mo> 229.164 - <mfenced> 229.165 - <mtable> 229.166 - <mtr> 229.167 - <mtd> 229.168 - <mrow> 229.169 - <mo>−</mo> 229.170 - <mn>0.213</mn> 229.171 - </mrow> 229.172 - </mtd> 229.173 - <mtd> 229.174 - <mrow> 229.175 - <mo>−</mo> 229.176 - <mn>0.715</mn> 229.177 - </mrow> 229.178 - </mtd> 229.179 - <mtd> 229.180 - <mn>0.928</mn> 229.181 - </mtd> 229.182 - </mtr> 229.183 - <mtr> 229.184 - <mtd> 229.185 - <mn>0.143</mn> 229.186 - </mtd> 229.187 - <mtd> 229.188 - <mn>0.140</mn> 229.189 - </mtd> 229.190 - <mtd> 229.191 - <mrow> 229.192 - <mo>−</mo> 229.193 - <mn>0.283</mn> 229.194 - </mrow> 229.195 - </mtd> 229.196 - </mtr> 229.197 - <mtr> 229.198 - <mtd> 229.199 - <mrow> 229.200 - <mo>−</mo> 229.201 - <mn>0.787</mn> 229.202 - </mrow> 229.203 - </mtd> 229.204 - <mtd> 229.205 - <mn>0.715</mn> 229.206 - </mtd> 229.207 - <mtd> 229.208 - <mn>0.072</mn> 229.209 - </mtd> 229.210 - </mtr> 229.211 - </mtable> 229.212 - </mfenced> 229.213 - </mrow> 229.214 - </mrow> 229.215 -</math> 229.216 \ No newline at end of file
230.1 --- a/master/mathml/feColorMatrix04.mml Thu Feb 24 10:19:12 2011 +0000 230.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 230.3 @@ -1,36 +0,0 @@ 230.4 -<?xml version="1.0" encoding="iso-8859-1"?> 230.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 230.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 230.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 230.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 230.9 - <mrow> 230.10 - <mi>a</mi> 230.11 - <mn>00</mn> 230.12 - <mo>=</mo> 230.13 - <mrow> 230.14 - <mn>0.213</mn> 230.15 - <mo>+</mo> 230.16 - <mrow> 230.17 - <mrow> 230.18 - <mrow> 230.19 - <mi>cos</mi> 230.20 - <mo>⁡</mo> 230.21 - <mtext>(hueRotate value)</mtext> 230.22 - </mrow> 230.23 - <mo>×</mo> 230.24 - <mn>0.787</mn> 230.25 - </mrow> 230.26 - <mo>−</mo> 230.27 - <mrow> 230.28 - <mrow> 230.29 - <mi>sin</mi> 230.30 - <mo>⁡</mo> 230.31 - <mtext>(hueRotate value)</mtext> 230.32 - </mrow> 230.33 - <mo>×</mo> 230.34 - <mn>0.213</mn> 230.35 - </mrow> 230.36 - </mrow> 230.37 - </mrow> 230.38 - </mrow> 230.39 -</math> 230.40 \ No newline at end of file
231.1 --- a/master/mathml/feColorMatrix05.mml Thu Feb 24 10:19:12 2011 +0000 231.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 231.3 @@ -1,170 +0,0 @@ 231.4 -<?xml version="1.0" encoding="iso-8859-1"?> 231.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 231.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 231.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 231.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 231.9 - <mfenced> 231.10 - <mtable> 231.11 - <mtr> 231.12 - <mtd> 231.13 - <msup> 231.14 - <mi>R</mi> 231.15 - <mo>'</mo> 231.16 - </msup> 231.17 - </mtd> 231.18 - </mtr> 231.19 - <mtr> 231.20 - <mtd> 231.21 - <msup> 231.22 - <mi>G</mi> 231.23 - <mo>'</mo> 231.24 - </msup> 231.25 - </mtd> 231.26 - </mtr> 231.27 - <mtr> 231.28 - <mtd> 231.29 - <msup> 231.30 - <mi>B</mi> 231.31 - <mo>'</mo> 231.32 - </msup> 231.33 - </mtd> 231.34 - </mtr> 231.35 - <mtr> 231.36 - <mtd> 231.37 - <msup> 231.38 - <mi>A</mi> 231.39 - <mo>'</mo> 231.40 - </msup> 231.41 - </mtd> 231.42 - </mtr> 231.43 - <mtr> 231.44 - <mtd> 231.45 - <mn>1</mn> 231.46 - </mtd> 231.47 - </mtr> 231.48 - </mtable> 231.49 - </mfenced> 231.50 - <mo>=</mo> 231.51 - <mrow> 231.52 - <mn><mfenced> 231.53 - <mtable> 231.54 - <mtr> 231.55 - <mtd> 231.56 - <mn>0</mn> 231.57 - </mtd> 231.58 - <mtd> 231.59 - <mn>0</mn> 231.60 - </mtd> 231.61 - <mtd> 231.62 - <mn>0</mn> 231.63 - </mtd> 231.64 - <mtd> 231.65 - <mn>0</mn> 231.66 - </mtd> 231.67 - <mtd> 231.68 - <mn>0</mn> 231.69 - </mtd> 231.70 - </mtr> 231.71 - <mtr> 231.72 - <mtd> 231.73 - <mn>0</mn> 231.74 - </mtd> 231.75 - <mtd> 231.76 - <mn>0</mn> 231.77 - </mtd> 231.78 - <mtd> 231.79 - <mn>0</mn> 231.80 - </mtd> 231.81 - <mtd> 231.82 - <mn>0</mn> 231.83 - </mtd> 231.84 - <mtd> 231.85 - <mn>0</mn> 231.86 - </mtd> 231.87 - </mtr> 231.88 - <mtr> 231.89 - <mtd> 231.90 - <mn>0</mn> 231.91 - </mtd> 231.92 - <mtd> 231.93 - <mn>0</mn> 231.94 - </mtd> 231.95 - <mtd> 231.96 - <mn>0</mn> 231.97 - </mtd> 231.98 - <mtd> 231.99 - <mn>0</mn> 231.100 - </mtd> 231.101 - <mtd> 231.102 - <mn>0</mn> 231.103 - </mtd> 231.104 - </mtr> 231.105 - <mtr> 231.106 - <mtd> 231.107 - <mn>0.2125</mn> 231.108 - </mtd> 231.109 - <mtd> 231.110 - <mn>0.7154</mn> 231.111 - </mtd> 231.112 - <mtd> 231.113 - <mn>0.0721</mn> 231.114 - </mtd> 231.115 - <mtd> 231.116 - <mn>0</mn> 231.117 - </mtd> 231.118 - <mtd> 231.119 - <mn>0</mn> 231.120 - </mtd> 231.121 - </mtr> 231.122 - <mtr> 231.123 - <mtd> 231.124 - <mn>0</mn> 231.125 - </mtd> 231.126 - <mtd> 231.127 - <mn>0</mn> 231.128 - </mtd> 231.129 - <mtd> 231.130 - <mn>0</mn> 231.131 - </mtd> 231.132 - <mtd> 231.133 - <mn>0</mn> 231.134 - </mtd> 231.135 - <mtd> 231.136 - <mn>1</mn> 231.137 - </mtd> 231.138 - </mtr> 231.139 - </mtable> 231.140 - </mfenced> 231.141 - </mn> 231.142 - <mo>.</mo> 231.143 - <mfenced> 231.144 - <mtable> 231.145 - <mtr> 231.146 - <mtd> 231.147 - <mi>R</mi> 231.148 - </mtd> 231.149 - </mtr> 231.150 - <mtr> 231.151 - <mtd> 231.152 - <mi>G</mi> 231.153 - </mtd> 231.154 - </mtr> 231.155 - <mtr> 231.156 - <mtd> 231.157 - <mi>B</mi> 231.158 - </mtd> 231.159 - </mtr> 231.160 - <mtr> 231.161 - <mtd> 231.162 - <mi>A</mi> 231.163 - </mtd> 231.164 - </mtr> 231.165 - <mtr> 231.166 - <mtd> 231.167 - <mn>1</mn> 231.168 - </mtd> 231.169 - </mtr> 231.170 - </mtable> 231.171 - </mfenced> 231.172 - </mrow> 231.173 -</math> 231.174 \ No newline at end of file
232.1 --- a/master/mathml/feComponentTransfer00.mml Thu Feb 24 10:19:12 2011 +0000 232.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 232.3 @@ -1,85 +0,0 @@ 232.4 -<?xml version="1.0" encoding="iso-8859-1"?> 232.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 232.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 232.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 232.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 232.9 - <mrow> 232.10 - <mtable> 232.11 - <mtr> 232.12 - <mtd> 232.13 - <msup> 232.14 - <mi>R</mi> 232.15 - <mo>'</mo> 232.16 - </msup> 232.17 - </mtd> 232.18 - </mtr> 232.19 - <mtr> 232.20 - <mtd> 232.21 - <msup> 232.22 - <mi>G</mi> 232.23 - <mo>'</mo> 232.24 - </msup> 232.25 - </mtd> 232.26 - </mtr> 232.27 - <mtr> 232.28 - <mtd> 232.29 - <msup> 232.30 - <mi>B</mi> 232.31 - <mo>'</mo> 232.32 - </msup> 232.33 - </mtd> 232.34 - </mtr> 232.35 - <mtr> 232.36 - <mtd> 232.37 - <msup> 232.38 - <mi>A</mi> 232.39 - <mo>'</mo> 232.40 - </msup> 232.41 - </mtd> 232.42 - </mtr> 232.43 - </mtable> 232.44 - <mo>=</mo> 232.45 - <mtable> 232.46 - <mtr> 232.47 - <mtd> 232.48 - <mi>FeFuncR</mi> 232.49 - <mrow> 232.50 - <mo>(</mo> 232.51 - <mi>R</mi> 232.52 - <mo>)</mo> 232.53 - </mrow> 232.54 - </mtd> 232.55 - </mtr> 232.56 - <mtr> 232.57 - <mtd> 232.58 - <mi>FeFuncG</mi> 232.59 - <mrow> 232.60 - <mo>(</mo> 232.61 - <mi>G</mi> 232.62 - <mo>)</mo> 232.63 - </mrow> 232.64 - </mtd> 232.65 - </mtr> 232.66 - <mtr> 232.67 - <mtd> 232.68 - <mi>FeFuncB</mi> 232.69 - <mrow> 232.70 - <mo>(</mo> 232.71 - <mi>B</mi> 232.72 - <mo>)</mo> 232.73 - </mrow> 232.74 - </mtd> 232.75 - </mtr> 232.76 - <mtr> 232.77 - <mtd> 232.78 - <mi>FeFuncA</mi> 232.79 - <mrow> 232.80 - <mo>(</mo> 232.81 - <mi>A</mi> 232.82 - <mo>)</mo> 232.83 - </mrow> 232.84 - </mtd> 232.85 - </mtr> 232.86 - </mtable> 232.87 - </mrow> 232.88 -</math> 232.89 \ No newline at end of file
233.1 --- a/master/mathml/feComponentTransfer01.mml Thu Feb 24 10:19:12 2011 +0000 233.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 233.3 @@ -1,14 +0,0 @@ 233.4 -<?xml version="1.0" encoding="iso-8859-1"?> 233.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 233.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 233.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 233.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 233.9 - <mrow> 233.10 - <msup> 233.11 - <mi>C</mi> 233.12 - <mo>'</mo> 233.13 - </msup> 233.14 - <mo>=</mo> 233.15 - <mi>C</mi> 233.16 - </mrow> 233.17 -</math> 233.18 \ No newline at end of file
234.1 --- a/master/mathml/feComponentTransfer02.mml Thu Feb 24 10:19:12 2011 +0000 234.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 234.3 @@ -1,29 +0,0 @@ 234.4 -<?xml version="1.0" encoding="iso-8859-1"?> 234.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 234.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 234.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 234.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 234.9 - <mrow> 234.10 - <mfrac> 234.11 - <mi>k</mi> 234.12 - <mi>N</mi> 234.13 - </mfrac> 234.14 - <mo>≤</mo> 234.15 - <mrow> 234.16 - <mi>C</mi> 234.17 - <mo><</mo> 234.18 - <mfrac> 234.19 - <mrow> 234.20 - <mo>(</mo> 234.21 - <mrow> 234.22 - <mi>k</mi> 234.23 - <mo>+</mo> 234.24 - <mn>1</mn> 234.25 - </mrow> 234.26 - <mo>)</mo> 234.27 - </mrow> 234.28 - <mi>N</mi> 234.29 - </mfrac> 234.30 - </mrow> 234.31 - </mrow> 234.32 -</math> 234.33 \ No newline at end of file
235.1 --- a/master/mathml/feComponentTransfer03.mml Thu Feb 24 10:19:12 2011 +0000 235.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 235.3 @@ -1,56 +0,0 @@ 235.4 -<?xml version="1.0" encoding="iso-8859-1"?> 235.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 235.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 235.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 235.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 235.9 - <mrow> 235.10 - <msup> 235.11 - <mi>C</mi> 235.12 - <mo>'</mo> 235.13 - </msup> 235.14 - <mo>=</mo> 235.15 - <mrow> 235.16 - <msub> 235.17 - <mi>v</mi> 235.18 - <mi>k</mi> 235.19 - </msub> 235.20 - <mo>+</mo> 235.21 - <mrow> 235.22 - <mrow> 235.23 - <mo>(</mo> 235.24 - <mrow> 235.25 - <mi>C</mi> 235.26 - <mo>−</mo> 235.27 - <mfrac> 235.28 - <mi>k</mi> 235.29 - <mi>N</mi> 235.30 - </mfrac> 235.31 - </mrow> 235.32 - <mo>)</mo> 235.33 - </mrow> 235.34 - <mo>×</mo> 235.35 - <mi>N</mi> 235.36 - <mo>×</mo> 235.37 - <mrow> 235.38 - <mo>(</mo> 235.39 - <mrow> 235.40 - <msub> 235.41 - <mi>v</mi> 235.42 - <mrow> 235.43 - <mi>k</mi> 235.44 - <mo>+</mo> 235.45 - <mn>1</mn> 235.46 - </mrow> 235.47 - </msub> 235.48 - <mo>−</mo> 235.49 - <msub> 235.50 - <mi>v</mi> 235.51 - <mi>k</mi> 235.52 - </msub> 235.53 - </mrow> 235.54 - <mo>)</mo> 235.55 - </mrow> 235.56 - </mrow> 235.57 - </mrow> 235.58 - </mrow> 235.59 -</math> 235.60 \ No newline at end of file
236.1 --- a/master/mathml/feComponentTransfer04.mml Thu Feb 24 10:19:12 2011 +0000 236.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 236.3 @@ -1,17 +0,0 @@ 236.4 -<?xml version="1.0" encoding="iso-8859-1"?> 236.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 236.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 236.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 236.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 236.9 - <mrow> 236.10 - <msup> 236.11 - <mi>C</mi> 236.12 - <mo>'</mo> 236.13 - </msup> 236.14 - <mo>=</mo> 236.15 - <msub> 236.16 - <mi>v</mi> 236.17 - <mi>k</mi> 236.18 - </msub> 236.19 - </mrow> 236.20 -</math> 236.21 \ No newline at end of file
237.1 --- a/master/mathml/feComponentTransfer05.mml Thu Feb 24 10:19:12 2011 +0000 237.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 237.3 @@ -1,22 +0,0 @@ 237.4 -<?xml version="1.0" encoding="iso-8859-1"?> 237.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 237.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 237.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 237.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 237.9 - <mrow> 237.10 - <msup> 237.11 - <mi>C</mi> 237.12 - <mo>'</mo> 237.13 - </msup> 237.14 - <mo>=</mo> 237.15 - <mrow> 237.16 - <mrow> 237.17 - <mi>slope</mi> 237.18 - <mo>×</mo> 237.19 - <mi>C</mi> 237.20 - </mrow> 237.21 - <mo>+</mo> 237.22 - <mi>intercept</mi> 237.23 - </mrow> 237.24 - </mrow> 237.25 -</math> 237.26 \ No newline at end of file
238.1 --- a/master/mathml/feComponentTransfer06.mml Thu Feb 24 10:19:12 2011 +0000 238.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 238.3 @@ -1,31 +0,0 @@ 238.4 -<?xml version="1.0" encoding="iso-8859-1"?> 238.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 238.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 238.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 238.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 238.9 - <mrow> 238.10 - <msup> 238.11 - <mi>C</mi> 238.12 - <mo>'</mo> 238.13 - </msup> 238.14 - <mo>=</mo> 238.15 - <mrow> 238.16 - <mrow> 238.17 - <mi>amplitude</mi> 238.18 - <mo>×</mo> 238.19 - <mi>pow</mi> 238.20 - <mfenced> 238.21 - <mrow> 238.22 - <mi>C</mi> 238.23 - </mrow> 238.24 - <mrow> 238.25 - <mi>exp</mi> 238.26 - <mi>onent</mi> 238.27 - </mrow> 238.28 - </mfenced> 238.29 - </mrow> 238.30 - <mo>+</mo> 238.31 - <mi>offset</mi> 238.32 - </mrow> 238.33 - </mrow> 238.34 -</math>
239.1 --- a/master/mathml/feComposite00.mml Thu Feb 24 10:19:12 2011 +0000 239.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 239.3 @@ -1,55 +0,0 @@ 239.4 -<?xml version="1.0" encoding="iso-8859-1"?> 239.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 239.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 239.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 239.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 239.9 - <mrow> 239.10 - <mi>result</mi> 239.11 - <mo>=</mo> 239.12 - <mrow> 239.13 - <mrow> 239.14 - <mi>k</mi> 239.15 - <mn>1</mn> 239.16 - <mo>×</mo> 239.17 - <mrow> 239.18 - <mi>i</mi> 239.19 - <mn>1</mn> 239.20 - </mrow> 239.21 - <mo>×</mo> 239.22 - <mrow> 239.23 - <mi>i</mi> 239.24 - <mn>2</mn> 239.25 - </mrow> 239.26 - </mrow> 239.27 - <mo>+</mo> 239.28 - <mrow> 239.29 - <mrow> 239.30 - <mi>k</mi> 239.31 - <mn>2</mn> 239.32 - </mrow> 239.33 - <mo>×</mo> 239.34 - <mrow> 239.35 - <mi>i</mi> 239.36 - <mn>1</mn> 239.37 - </mrow> 239.38 - </mrow> 239.39 - <mo>+</mo> 239.40 - <mrow> 239.41 - <mrow> 239.42 - <mi>k</mi> 239.43 - <mn>3</mn> 239.44 - </mrow> 239.45 - <mo>×</mo> 239.46 - <mrow> 239.47 - <mi>i</mi> 239.48 - <mn>2</mn> 239.49 - </mrow> 239.50 - </mrow> 239.51 - <mo>+</mo> 239.52 - <mrow> 239.53 - <mi>k</mi> 239.54 - <mn>4</mn> 239.55 - </mrow> 239.56 - </mrow> 239.57 - </mrow> 239.58 -</math> 239.59 \ No newline at end of file
240.1 --- a/master/mathml/feConvolveMatrix00.mml Thu Feb 24 10:19:12 2011 +0000 240.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 240.3 @@ -1,80 +0,0 @@ 240.4 -<?xml version="1.0" encoding="iso-8859-1"?> 240.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 240.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 240.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 240.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 240.9 - <mrow> 240.10 - <msub> 240.11 - <mi>result</mi> 240.12 - <mrow> 240.13 - <mi>X</mi> 240.14 - <mo>,</mo> 240.15 - <mi>Y</mi> 240.16 - </mrow> 240.17 - </msub> 240.18 - <mo>=</mo> 240.19 - <mrow> 240.20 - <mfrac> 240.21 - <mrow> 240.22 - <munderover> 240.23 - <mo>∑</mo> 240.24 - <mrow> 240.25 - <mi>I</mi> 240.26 - <mo>=</mo> 240.27 - <mn>0</mn> 240.28 - </mrow> 240.29 - <mrow> 240.30 - <mi>orderY</mi> 240.31 - <mo>−</mo> 240.32 - <mn>1</mn> 240.33 - </mrow> 240.34 - </munderover> 240.35 - <mrow> 240.36 - <munderover> 240.37 - <mo>∑</mo> 240.38 - <mrow> 240.39 - <mi>J</mi> 240.40 - <mo>=</mo> 240.41 - <mn>0</mn> 240.42 - </mrow> 240.43 - <mrow> 240.44 - <mi>orderX</mi> 240.45 - <mo>−</mo> 240.46 - <mn>1</mn> 240.47 - </mrow> 240.48 - </munderover> 240.49 - <mrow> 240.50 - <msub> 240.51 - <mi>source</mi> 240.52 - <mfenced open="t"> 240.53 - <mrow> 240.54 - <mi></mi> 240.55 - </mrow> 240.56 - </mfenced> 240.57 - </msub> 240.58 - <mo>×</mo> 240.59 - <msub> 240.60 - <mi>kernelMatrix</mi> 240.61 - <mfenced open="1"> 240.62 - <mrow> 240.63 - <mi>orderY</mi> 240.64 - <mo>−</mo> 240.65 - <mi>I</mi> 240.66 - <mo>−</mo> 240.67 - <mn>1</mn> 240.68 - </mrow> 240.69 - </mfenced> 240.70 - </msub> 240.71 - </mrow> 240.72 - </mrow> 240.73 - </mrow> 240.74 - <mrow> 240.75 - <mi>div</mi> 240.76 - <mi>isor</mi> 240.77 - </mrow> 240.78 - </mfrac> 240.79 - <mo>+</mo> 240.80 - <mi>bias</mi> 240.81 - </mrow> 240.82 - </mrow> 240.83 -</math> 240.84 \ No newline at end of file
241.1 --- a/master/mathml/feConvolveMatrix01.mml Thu Feb 24 10:19:12 2011 +0000 241.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 241.3 @@ -1,95 +0,0 @@ 241.4 -<?xml version="1.0" encoding="iso-8859-1"?> 241.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 241.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 241.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 241.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 241.9 - <mfenced> 241.10 - <mtable> 241.11 - <mtr> 241.12 - <mtd> 241.13 - <mn>0</mn> 241.14 - </mtd> 241.15 - <mtd> 241.16 - <mn>20</mn> 241.17 - </mtd> 241.18 - <mtd> 241.19 - <mn>40</mn> 241.20 - </mtd> 241.21 - <mtd> 241.22 - <mn>235</mn> 241.23 - </mtd> 241.24 - <mtd> 241.25 - <mn>235</mn> 241.26 - </mtd> 241.27 - </mtr> 241.28 - <mtr> 241.29 - <mtd> 241.30 - <mn>100</mn> 241.31 - </mtd> 241.32 - <mtd> 241.33 - <mn>120</mn> 241.34 - </mtd> 241.35 - <mtd> 241.36 - <mn>140</mn> 241.37 - </mtd> 241.38 - <mtd> 241.39 - <mn>235</mn> 241.40 - </mtd> 241.41 - <mtd> 241.42 - <mn>235</mn> 241.43 - </mtd> 241.44 - </mtr> 241.45 - <mtr> 241.46 - <mtd> 241.47 - <mn>200</mn> 241.48 - </mtd> 241.49 - <mtd> 241.50 - <mn>220</mn> 241.51 - </mtd> 241.52 - <mtd> 241.53 - <mn>240</mn> 241.54 - </mtd> 241.55 - <mtd> 241.56 - <mn>235</mn> 241.57 - </mtd> 241.58 - <mtd> 241.59 - <mn>235</mn> 241.60 - </mtd> 241.61 - </mtr> 241.62 - <mtr> 241.63 - <mtd> 241.64 - <mn>255</mn> 241.65 - </mtd> 241.66 - <mtd> 241.67 - <mn>255</mn> 241.68 - </mtd> 241.69 - <mtd> 241.70 - <mn>255</mn> 241.71 - </mtd> 241.72 - <mtd> 241.73 - <mn>255</mn> 241.74 - </mtd> 241.75 - <mtd> 241.76 - <mn>255</mn> 241.77 - </mtd> 241.78 - </mtr> 241.79 - <mtr> 241.80 - <mtd> 241.81 - <mn>255</mn> 241.82 - </mtd> 241.83 - <mtd> 241.84 - <mn>255</mn> 241.85 - </mtd> 241.86 - <mtd> 241.87 - <mn>255</mn> 241.88 - </mtd> 241.89 - <mtd> 241.90 - <mn>255</mn> 241.91 - </mtd> 241.92 - <mtd> 241.93 - <mn>255</mn> 241.94 - </mtd> 241.95 - </mtr> 241.96 - </mtable> 241.97 - </mfenced> 241.98 -</math> 241.99 \ No newline at end of file
242.1 --- a/master/mathml/feConvolveMatrix02.mml Thu Feb 24 10:19:12 2011 +0000 242.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 242.3 @@ -1,43 +0,0 @@ 242.4 -<?xml version="1.0" encoding="iso-8859-1"?> 242.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 242.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 242.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 242.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 242.9 - <mfenced> 242.10 - <mtable> 242.11 - <mtr> 242.12 - <mtd> 242.13 - <mn>1</mn> 242.14 - </mtd> 242.15 - <mtd> 242.16 - <mn>2</mn> 242.17 - </mtd> 242.18 - <mtd> 242.19 - <mn>3</mn> 242.20 - </mtd> 242.21 - </mtr> 242.22 - <mtr> 242.23 - <mtd> 242.24 - <mn>4</mn> 242.25 - </mtd> 242.26 - <mtd> 242.27 - <mn>5</mn> 242.28 - </mtd> 242.29 - <mtd> 242.30 - <mn>6</mn> 242.31 - </mtd> 242.32 - </mtr> 242.33 - <mtr> 242.34 - <mtd> 242.35 - <mn>7</mn> 242.36 - </mtd> 242.37 - <mtd> 242.38 - <mn>8</mn> 242.39 - </mtd> 242.40 - <mtd> 242.41 - <mn>9</mn> 242.42 - </mtd> 242.43 - </mtr> 242.44 - </mtable> 242.45 - </mfenced> 242.46 -</math> 242.47 \ No newline at end of file
243.1 --- a/master/mathml/feConvolveMatrix03.mml Thu Feb 24 10:19:12 2011 +0000 243.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 243.3 @@ -1,93 +0,0 @@ 243.4 -<?xml version="1.0" encoding="iso-8859-1"?> 243.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 243.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 243.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 243.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 243.9 - <mrow> 243.10 - <msub> 243.11 - <mi>resultChannel</mi> 243.12 - <mn>2,2</mn> 243.13 - </msub> 243.14 - <mo>=</mo> 243.15 - <mfrac> 243.16 - <mrow> 243.17 - <mo>(</mo> 243.18 - <mrow> 243.19 - <mrow> 243.20 - <mn>9</mn> 243.21 - <mo>×</mo> 243.22 - <mn>0</mn> 243.23 - </mrow> 243.24 - <mo>+</mo> 243.25 - <mrow> 243.26 - <mn>8</mn> 243.27 - <mo>×</mo> 243.28 - <mn>20</mn> 243.29 - </mrow> 243.30 - <mo>+</mo> 243.31 - <mrow> 243.32 - <mn>7</mn> 243.33 - <mo>×</mo> 243.34 - <mn>40</mn> 243.35 - </mrow> 243.36 - <mo>+</mo> 243.37 - <mrow> 243.38 - <mn>6</mn> 243.39 - <mo>×</mo> 243.40 - <mn>100</mn> 243.41 - </mrow> 243.42 - <mo>+</mo> 243.43 - <mrow> 243.44 - <mn>5</mn> 243.45 - <mo>×</mo> 243.46 - <mn>120</mn> 243.47 - </mrow> 243.48 - <mo>+</mo> 243.49 - <mrow> 243.50 - <mn>4</mn> 243.51 - <mo>×</mo> 243.52 - <mn>140</mn> 243.53 - </mrow> 243.54 - <mo>+</mo> 243.55 - <mrow> 243.56 - <mn>3</mn> 243.57 - <mo>×</mo> 243.58 - <mn>200</mn> 243.59 - </mrow> 243.60 - <mo>+</mo> 243.61 - <mrow> 243.62 - <mn>2</mn> 243.63 - <mo>×</mo> 243.64 - <mn>220</mn> 243.65 - </mrow> 243.66 - <mo>+</mo> 243.67 - <mrow> 243.68 - <mn>1</mn> 243.69 - <mo>×</mo> 243.70 - <mn>240</mn> 243.71 - </mrow> 243.72 - </mrow> 243.73 - <mo>)</mo> 243.74 - </mrow> 243.75 - <mrow> 243.76 - <mn>9</mn> 243.77 - <mo>+</mo> 243.78 - <mn>8</mn> 243.79 - <mo>+</mo> 243.80 - <mn>7</mn> 243.81 - <mo>+</mo> 243.82 - <mn>6</mn> 243.83 - <mo>+</mo> 243.84 - <mn>5</mn> 243.85 - <mo>+</mo> 243.86 - <mn>4</mn> 243.87 - <mo>+</mo> 243.88 - <mn>3</mn> 243.89 - <mo>+</mo> 243.90 - <mn>2</mn> 243.91 - <mo>+</mo> 243.92 - <mn>1</mn> 243.93 - </mrow> 243.94 - </mfrac> 243.95 - </mrow> 243.96 -</math> 243.97 \ No newline at end of file
244.1 --- a/master/mathml/feConvolveMatrix04.mml Thu Feb 24 10:19:12 2011 +0000 244.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 244.3 @@ -1,119 +0,0 @@ 244.4 -<?xml version="1.0" encoding="iso-8859-1"?> 244.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 244.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 244.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 244.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 244.9 - <mtable> 244.10 - <mtr> 244.11 - <mtd> 244.12 - <mn>11</mn> 244.13 - </mtd> 244.14 - <mtd> 244.15 - <mn>12</mn> 244.16 - </mtd> 244.17 - <mtd> 244.18 - <mo>.</mo> 244.19 - <mo>.</mo> 244.20 - <mo>.</mo> 244.21 - </mtd> 244.22 - <mtd> 244.23 - <mn>1</mn> 244.24 - <mi>m</mi> 244.25 - </mtd> 244.26 - <mtd> 244.27 - <mn>1</mn> 244.28 - <mi>M</mi> 244.29 - </mtd> 244.30 - </mtr> 244.31 - <mtr> 244.32 - <mtd> 244.33 - <mn>21</mn> 244.34 - </mtd> 244.35 - <mtd> 244.36 - <mn>22</mn> 244.37 - </mtd> 244.38 - <mtd> 244.39 - <mo>.</mo> 244.40 - <mo>.</mo> 244.41 - <mo>.</mo> 244.42 - </mtd> 244.43 - <mtd> 244.44 - <mn>2</mn> 244.45 - <mi>m</mi> 244.46 - </mtd> 244.47 - <mtd> 244.48 - <mn>2</mn> 244.49 - <mi>M</mi> 244.50 - </mtd> 244.51 - </mtr> 244.52 - <mtr> 244.53 - <mtd> 244.54 - <mo>.</mo> 244.55 - <mo>.</mo> 244.56 - <mo>.</mo> 244.57 - </mtd> 244.58 - <mtd> 244.59 - <mo>.</mo> 244.60 - <mo>.</mo> 244.61 - <mo>.</mo> 244.62 - </mtd> 244.63 - <mtd> 244.64 - <mo>.</mo> 244.65 - <mo>.</mo> 244.66 - <mo>.</mo> 244.67 - </mtd> 244.68 - <mtd> 244.69 - <mo>.</mo> 244.70 - <mo>.</mo> 244.71 - <mo>.</mo> 244.72 - </mtd> 244.73 - <mtd> 244.74 - <mo>.</mo> 244.75 - <mo>.</mo> 244.76 - <mo>.</mo> 244.77 - </mtd> 244.78 - </mtr> 244.79 - <mtr> 244.80 - <mtd> 244.81 - <mi>n</mi> 244.82 - <mn>1</mn> 244.83 - </mtd> 244.84 - <mtd> 244.85 - <mi>n</mi> 244.86 - <mn>2</mn> 244.87 - </mtd> 244.88 - <mtd> 244.89 - <mo>.</mo> 244.90 - <mo>.</mo> 244.91 - <mo>.</mo> 244.92 - </mtd> 244.93 - <mtd> 244.94 - <mi>nm</mi> 244.95 - </mtd> 244.96 - <mtd> 244.97 - <mi>nM</mi> 244.98 - </mtd> 244.99 - </mtr> 244.100 - <mtr> 244.101 - <mtd> 244.102 - <mi>N</mi> 244.103 - <mn>1</mn> 244.104 - </mtd> 244.105 - <mtd> 244.106 - <mi>N</mi> 244.107 - <mn>2</mn> 244.108 - </mtd> 244.109 - <mtd> 244.110 - <mo>.</mo> 244.111 - <mo>.</mo> 244.112 - <mo>.</mo> 244.113 - </mtd> 244.114 - <mtd> 244.115 - <mi>Nm</mi> 244.116 - </mtd> 244.117 - <mtd> 244.118 - <mi>NM</mi> 244.119 - </mtd> 244.120 - </mtr> 244.121 - </mtable> 244.122 -</math> 244.123 \ No newline at end of file
245.1 --- a/master/mathml/feConvolveMatrix05.mml Thu Feb 24 10:19:12 2011 +0000 245.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 245.3 @@ -1,335 +0,0 @@ 245.4 -<?xml version="1.0" encoding="iso-8859-1"?> 245.5 -<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" 245.6 - "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"> 245.7 -<!-- Created by amaya 9.54, see http://www.w3.org/Amaya/ --> 245.8 -<math xmlns="http://www.w3.org/1998/Math/MathML"> 245.9 - <mtable> 245.10 - <mtr> 245.11 - <mtd> 245.12 - <mn>11</mn> 245.13 - </mtd> 245.14 - <mtd> 245.15 - <mn>11</mn> 245.16 - </mtd> 245.17 - <mtd> 245.18 - <mn>11</mn> 245.19 - </mtd> 245.20 - <mtd> 245.21 - <mn>12</mn> 245.22 - </mtd> 245.23 - <mtd> 245.24 - <mo>.</mo> 245.25 - <mo>.</mo> 245.26 - <mo>.</mo> 245.27 - </mtd> 245.28 - <mtd> 245.29 - <mn>1</mn> 245.30 - <mi>m</mi> 245.31 - </mtd> 245.32 - <mtd> 245.33 - <mn>1</mn> 245.34 - <mi>M</mi> 245.35 - </mtd> 245.36 - <mtd> 245.37 - <mn>1</mn> 245.38 - <mi>M</mi> 245.39 - </mtd> 245.40 - <mtd> 245.41 - <mn>1</mn> 245.42 - <mi>M</mi> 245.43 - </mtd> 245.44 - </mtr> 245.45 - <mtr> 245.46 - <mtd> 245.47 - <mn>11</mn> 245.48 - </mtd> 245.49 - <mtd> 245.50 - <mn>11</mn> 245.51 - </mtd> 245.52 - <mtd> 245.53 - <mn>11</mn> 245.54 - </mtd> 245.55 - <mtd> 245.56 - <mn>12</mn> 245.57 - </mtd> 245.58 - <mtd> 245.59 - <mo>.</mo> 245.60 - <mo>.</mo> 245.61 - <mo>.</mo> 245.62 - </mtd> 245.63 - <mtd> 245.64 - <mn>1</mn> 245.65 - <mi>m</mi> 245.66 - </mtd> 245.67 - <mtd> 245.68 - <mn>1</mn> 245.69 - <mi>M</mi> 245.70 - </mtd> 245.71 - <mtd> 245.72 - <mn>1</mn> 245.73 - <mi>M</mi> 245.74 - </mtd> 245.75 - <mtd> 245.76 - <mn>1</mn> 245.77 - <mi>M</mi> 245.78 - </mtd> 245.79 - </mtr> 245.80 - <mtr> 245.81 - <mtd> 245.82 - <mn>11</mn> 245.83 - </mtd> 245.84 - <mtd> 245.85 - <mn>11</mn> 245.86 - </mtd> 245.87 - <mtd> 245.88 - <mn>11</mn> 245.89 - </mtd> 245.90 - <mtd> 245.91 - <mn>12</mn> 245.92 - </mtd> 245.93 - <mtd> 245.94 - <mo>.</mo> 245.95 - <mo>.</mo> 245.96 - <mo>.</mo> 245.97 - </mtd> 245.98 - <mtd> 245.99 - <mn>1</mn> 245.100 - <mi>m</mi> 245.101 - </mtd> 245.102 - <mtd> 245.103 - <mn>1</mn> 245.104 - <mi>M</mi> 245.105 - </mtd> 245.106 - <mtd> 245.107 - <mn>1</mn> 245.108 - <mi>M</mi> 245.109 - </mtd> 245.110 - <mtd> 245.111 - <mn>1</mn> 245.112 - <mi>M</mi> 245.113 - </mtd> 245.114 - </mtr> 245.115 - <mtr> 245.116 - <mtd> 245.117 - <mn>21</mn> 245.118 - </mtd> 245.119 - <mtd> 245.120 - <mn>21</mn> 245.121 - </mtd> 245.122 - <mtd> 245.123 - <mn>21</mn> 245.124 - </mtd> 245.125 - <mtd> 245.126 - <mn>22</mn> 245.127 - </mtd> 245.128 - <mtd> 245.129 - <mo>.</mo> 245.130 - <mo>.</mo> 245.131 - <mo>.</mo> 245.132 - </mtd> 245.133 - <mtd> 245.134 - <mn>2</mn> 245.135 - <mi>m</mi> 245.136 - </mtd> 245.137 - <mtd> 245.138 - <mn>2</mn> 245.139 - <mi>M</mi> 245.140 - </mtd> 245.141 - <mtd> 245.142 - <mn>2</mn> 245.143 - <mi>M</mi> 245.144 - </mtd> 245.145 - <mtd> 245.146 - <mn>2</mn> 245.147 - <mi>M</mi> 245.148 - </mtd> 245.149 - </mtr> 245.150 - <mtr> 245.151 - <mtd> 245.152 - <mo>.</mo> 245.153 - <mo>.</mo> 245.154 - <mo>.</mo> 245.155 - </mtd> 245.156 - <mtd> 245.157 - <mo>.</mo> 245.158 - <mo>.</mo> 245.159 - <mo>.</mo> 245.160 - </mtd> 245.161 - <mtd> 245.162 - <mo>.</mo> 245.163 - <mo>.</mo> 245.164 - <mo>.</mo> 245.165 - </mtd> 245.166 - <mtd> 245.167 - <mo>.</mo> 245.168 - <mo>.</mo> 245.169 - <mo>.</mo> 245.170 - </mtd> 245.171 - <mtd> 245.172 - <mo>.</mo> 245.173 - <mo>.</mo> 245.174 - <mo>.</mo> 245.175 - </mtd> 245.176 - <mtd> 245.177 - <mo>.</mo> 245.178 - <mo>.</mo> 245.179 - <mo>.</mo> 245.180 - </mtd> 245.181 - <mtd> 245.182 - <mo>.</mo> 245.183 - <mo>.</mo> 245.184 - <mo>.</mo> 245.185 - </mtd> 245.186 - <mtd> 245.187 - <mo>.</mo> 245.188 - <mo>.</mo> 245.189 - <mo>.</mo> 245.190 - </mtd> 245.191 - <mtd> 245.192 - <mo>.</mo> 245.193 - <mo>.</mo> 245.194 - <mo>.</mo> 245.195 - </mtd> 245.196 - </mtr> 245.197 - <mtr> 245.198 - <mtd> 245.199 - <mi>n</mi> 245.200 - <mn>1</mn> 245.201 - </mtd> 245.202 - <mtd> 245.203 - <mi>n</mi> 245.204 - <mn>1</mn> 245.205 - </mtd> 245.206 - <mtd> 245.207 - <mi>n</mi> 245.208 - <mn>1</mn> 245.209 - </mtd> 245.210 - <mtd> 245.211 - <mi>n</mi> 245.212 - <mn>2</mn> 245.213 - </mtd> 245.214 - <mtd> 245.215 - <mo>.</mo> 245.216 - <mo>.</mo> 245.217 - <mo>.</mo> 245.218 - </mtd> 245.219 - <mtd> 245.220 - <mi>nm</mi> 245.221 - </mtd> 245.222 - <mtd> 245.223 - <mi>nM</mi> 245.224 - </mtd> 245.225 - <mtd> 245.226 - <mi>nM</mi> 245.227 - </mtd> 245.228 - <mtd> 245.229 - <mi>nM</mi> 245.230 - </mtd> 245.231 - </mtr> 245.232 - <mtr> 245.233 - <mtd> 245.234 - <mi>N</mi> 245.235 - <mn>1</mn> 245.236 - </mtd> 245.237 - <mtd> 245.238 - <mi>N</mi> 245.239 - <mn>1</mn> 245.240 - </mtd> 245.241 - <mtd> 245.242 - <mi>N</mi> 245.243 - <mn>1</mn> 245.244 - </mtd> 245.245 - <mtd> 245.246 - <mi>N</mi> 245.247 - <mn>2</mn> 245.248 - </mtd> 245.249 - <mtd> 245.250 - <mo>.</mo> 245.251 - <mo>.</mo> 245.252 - <mo>.</mo> 245.253 - </mtd> 245.254 - <mtd> 245.255 - <mi>Nm</mi> 245.256 - </mtd> 245.257 - <mtd> 245.258 - <mi>NM</mi> 245.259 - </mtd> 245.260 - <mtd> 245.261 - <mi>NM</mi> 245.262 - </mtd> 245.263 - <mtd> 245.264 - <mi>NM</mi> 245.265 - </mtd> 245.266 - </mtr> 245.267 - <mtr> 245.268 - <mtd> 245.269 - <mi>N</mi> 245.270 - <mn>1</mn> 245.271 - </mtd> 245.272 - <mtd> 245.273 - <mi>N</mi> 245.274 - <mn>1</mn> 245.275 - </mtd> 245.276 - <mtd> 245.277 - <mi>N</mi> 245.278 - <mn>1</mn> 245.279 - </mtd> 245.280 - <mtd> 245.281 - <mi>N</mi> 245.282 - <mn>2</mn> 245.283 - </mtd> 245.284 - <mtd> 245.285 - <mo>.</mo> 245.286 - <mo>.</mo> 245.287 - <mo>.</mo> 245.288 - </mtd> 245.289 - <mtd> 245.290 - <mi>Nm</mi> 245.291 - </mtd> 245.292 - <mtd> 245.293 - <mi>NM</mi> 245.294 - </mtd> 245.295 - <mtd> 245.296 - <mi>NM</mi> 245.297 - </mtd> 245.298 - <mtd> 245.299 - <mi>NM</mi> 245.300 - </mtd> 245.301 - </mtr> 245.302 - <mtr> 245.303 - <mtd> 245.304 - <mi>N</mi> 245.305 - <mn>1</mn> 245.306 - </mtd> 245.307 - <mtd> 245.308 - <mi>N</mi> 245.309 - <mn>1</mn> 245.310 - </mtd> 245.311 - <mtd> 245.312 - <mi>N</mi> 245.313 - <mn>1</mn> 245.314 - </mtd> 245.315 - <mtd> 245.316 - <mi>N</mi> 245.317 - <mn>2</mn> 245.318 - </mtd> 245.319 - <mtd> 245.320 - <mo>.</mo> 245.321 - <mo>.</mo> 245.322 - <mo>.</mo> 245.323 - </mtd> 245.324 - <mtd> 245.325 - <mi>Nm</mi> 245.326 - </mtd> 245.327 - <mtd> 245.328 - <mi>NM</mi> 245.329 - </mtd> 245.330 - <mtd> 245.331 - <mi>NM</mi> 245.332 - </mtd> 245.333 - <mtd> 245.334 - <mi>NM</mi> 245.335 - </mtd> 245.336 - </mtr> 245.337 - </mtable> 245.338 -</math> 245.339 \ No newline at end of file
246.1 --- a/master/publish-primer.xml Thu Feb 24 10:19:12 2011 +0000 246.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 246.3 @@ -1,22 +0,0 @@ 246.4 -<!-- Publication script configuration for SVG Filters 1.2 Primer. --> 246.5 - 246.6 -<publish-conf xmlns='http://mcc.id.au/ns/local'> 246.7 - <title>SVG Filters 1.2, Part 1: Primer</title> 246.8 - <short-title>SVG Filters 1.2 Primer</short-title> 246.9 - <maturity>ED</maturity> 246.10 - <output use-publish-directory='true'/> 246.11 - <!-- 246.12 - <publication-date>2009-12-01</publication-date> 246.13 - --> 246.14 - 246.15 - <versions> 246.16 - <cvs href='http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html'/> 246.17 - <this href='http://www.w3.org/TR/2009/WD-SVGFilterPrimer12-2009xxxx/'/> 246.18 - <previous href='http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/'/> 246.19 - <latest href='http://www.w3.org/TR/SVGFilterPrimer12/'/> 246.20 - </versions> 246.21 - 246.22 - <definitions href='definitions-primer.xml'/> 246.23 - 246.24 - <index name='SVGFilterPrimer'/> 246.25 -</publish-conf>
247.1 --- a/master/publish-reqs.xml Thu Feb 24 10:19:12 2011 +0000 247.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 247.3 @@ -1,22 +0,0 @@ 247.4 -<!-- Publication script configuration for SVG Filter Requirements. --> 247.5 - 247.6 -<publish-conf xmlns='http://mcc.id.au/ns/local'> 247.7 - <title>SVG Filter Requirements</title> 247.8 - <short-title>SVG Filter Requirements</short-title> 247.9 - <maturity>ED</maturity> 247.10 - <output use-publish-directory='true'/> 247.11 - <!-- 247.12 - <publication-date>2009-12-01</publication-date> 247.13 - --> 247.14 - 247.15 - <versions> 247.16 - <cvs href='http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html'/> 247.17 - <this href='http://www.w3.org/TR/2009/WD-SVGFilterReqs12-2009xxxx/'/> 247.18 - <previous href='http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/'/> 247.19 - <latest href='http://www.w3.org/TR/SVGFilterReqs12/'/> 247.20 - </versions> 247.21 - 247.22 - <definitions href='definitions-primer.xml'/> 247.23 - 247.24 - <index name='SVGFilterReqs'/> 247.25 -</publish-conf>
248.1 --- a/master/publish.xml Thu Feb 24 10:19:12 2011 +0000 248.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 248.3 @@ -1,23 +0,0 @@ 248.4 -<!-- Publication script configuration for SVG Filters 1.2. --> 248.5 - 248.6 -<publish-conf xmlns='http://mcc.id.au/ns/local'> 248.7 - <title>Filter Effects 1.0, Part 2: Language</title> 248.8 - <short-title>Filter Effects 1.0</short-title> 248.9 - <maturity>ED</maturity> 248.10 - <output use-publish-directory='true'/> 248.11 - <!-- 248.12 - <publication-date>2009-12-01</publication-date> 248.13 - --> 248.14 - 248.15 - <versions> 248.16 - <cvs href='http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html'/> 248.17 - <this href='http://www.w3.org/TR/2011/WD-FilterEffect10-2011xxxx/'/> 248.18 - <previous href='http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/'/> 248.19 - <latest href='http://www.w3.org/TR/FilterEffects10/'/> 248.20 - </versions> 248.21 - 248.22 - <definitions href='definitions.xml'/> 248.23 - <interfaces idl='svgfilters.idlx'/> 248.24 - 248.25 - <index name='SVGFilter'/> 248.26 -</publish-conf>
249.1 --- a/master/rng/feBlend Thu Feb 24 10:19:12 2011 +0000 249.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 249.3 @@ -1,33 +0,0 @@ 249.4 - <define name='svg.feBlend.content'> 249.5 - <zeroOrMore> 249.6 - <choice> 249.7 - <ref name='animate'/> 249.8 - <ref name='set'/> 249.9 - </choice> 249.10 - </zeroOrMore> 249.11 - </define> 249.12 - 249.13 - <define name='feBlend'> 249.14 - <element name='feBlend'> 249.15 - <ref name='feBlend.attr'/> 249.16 - <ref name='svg.feBlend.content'/> 249.17 - </element> 249.18 - </define> 249.19 - 249.20 - <define name='feBlend.attr' combine='interleave'> 249.21 - <ref name='svg.Core.attr'/> 249.22 - <ref name='svg.FilterColor.attr'/> 249.23 - <ref name='svg.FilterPrimitiveWithIn.attr'/> 249.24 - <attribute name='in2'/> 249.25 - <optional> 249.26 - <attribute name='mode' a:defaultValue='normal'> 249.27 - <choice> 249.28 - <value>normal</value> 249.29 - <value>multiply</value> 249.30 - <value>screen</value> 249.31 - <value>darken</value> 249.32 - <value>lighten</value> 249.33 - </choice> 249.34 - </attribute> 249.35 - </optional> 249.36 - </define>
250.1 --- a/master/rng/feColorMatrix Thu Feb 24 10:19:12 2011 +0000 250.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 250.3 @@ -1,34 +0,0 @@ 250.4 - <define name='svg.feColorMatrix.content'> 250.5 - <zeroOrMore> 250.6 - <choice> 250.7 - <ref name='animate'/> 250.8 - <ref name='set'/> 250.9 - </choice> 250.10 - </zeroOrMore> 250.11 - </define> 250.12 - 250.13 - <define name='feColorMatrix'> 250.14 - <element name='feColorMatrix'> 250.15 - <ref name='feColorMatrix.attr'/> 250.16 - <ref name='svg.feColorMatrix.content'/> 250.17 - </element> 250.18 - </define> 250.19 - 250.20 - <define name='feColorMatrix.attr' combine='interleave'> 250.21 - <ref name='svg.Core.attr'/> 250.22 - <ref name='svg.FilterColor.attr'/> 250.23 - <ref name='svg.FilterPrimitiveWithIn.attr'/> 250.24 - <optional> 250.25 - <attribute name='type' a:defaultValue='matrix'> 250.26 - <choice> 250.27 - <value>matrix</value> 250.28 - <value>saturate</value> 250.29 - <value>hueRotate</value> 250.30 - <value>luminanceToAlpha</value> 250.31 - </choice> 250.32 - </attribute> 250.33 - </optional> 250.34 - <optional> 250.35 - <attribute name='values'/> 250.36 - </optional> 250.37 - </define>
251.1 --- a/master/rng/feComponentTransfer Thu Feb 24 10:19:12 2011 +0000 251.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 251.3 @@ -1,98 +0,0 @@ 251.4 - <define name='svg.feComponentTransfer.content'> 251.5 - <optional><ref name='feFuncR'/></optional> 251.6 - <optional><ref name='feFuncG'/></optional> 251.7 - <optional><ref name='feFuncB'/></optional> 251.8 - <optional><ref name='feFuncA'/></optional> 251.9 - </define> 251.10 - 251.11 - <define name='feComponentTransfer'> 251.12 - <element name='feComponentTransfer'> 251.13 - <ref name='feComponentTransfer.attr'/> 251.14 - <ref name='svg.feComponentTransfer.content'/> 251.15 - </element> 251.16 - </define> 251.17 - 251.18 - <define name='feComponentTransfer.attr' combine='interleave'> 251.19 - <ref name='svg.Core.attr'/> 251.20 - <ref name='svg.FilterColor.attr'/> 251.21 - <ref name='svg.FilterPrimitiveWithIn.attr'/> 251.22 - </define> 251.23 - 251.24 - 251.25 - <define name='SVG.feFunc.content'> 251.26 - <zeroOrMore> 251.27 - <choice> 251.28 - <ref name='animate'/> 251.29 - <ref name='set'/> 251.30 - </choice> 251.31 - </zeroOrMore> 251.32 - </define> 251.33 - 251.34 - <define name='feFuncR'> 251.35 - <element name='feFuncR'> 251.36 - <ref name='feFunc.attr'/> 251.37 - <ref name='svg.feFunc.content'/> 251.38 - </element> 251.39 - </define> 251.40 - 251.41 - <define name='feFuncG'> 251.42 - <element name='feFuncG'> 251.43 - <ref name='feFunc.attr'/> 251.44 - <ref name='svg.feFunc.content'/> 251.45 - </element> 251.46 - </define> 251.47 - 251.48 - <define name='feFuncB'> 251.49 - <element name='feFuncB'> 251.50 - <ref name='feFunc.attr'/> 251.51 - <ref name='svg.feFunc.content'/> 251.52 - </element> 251.53 - </define> 251.54 - 251.55 - <define name='feFuncA'> 251.56 - <element name='feFuncA'> 251.57 - <ref name='feFunc.attr'/> 251.58 - <ref name='svg.feFunc.content'/> 251.59 - </element> 251.60 - </define> 251.61 - 251.62 - <define name='feFunc.attr' combine='interleave'> 251.63 - <ref name='svg.Core.attr'/> 251.64 - <attribute name='type'> 251.65 - <choice> 251.66 - <value>identity</value> 251.67 - <value>table</value> 251.68 - <value>discrete</value> 251.69 - <value>linear</value> 251.70 - <value>gamma</value> 251.71 - </choice> 251.72 - </attribute> 251.73 - <optional> 251.74 - <attribute name='tableValues'/> 251.75 - </optional> 251.76 - <optional> 251.77 - <attribute name='slope'> 251.78 - <ref name='Number.datatype'/> 251.79 - </attribute> 251.80 - </optional> 251.81 - <optional> 251.82 - <attribute name='intercept'> 251.83 - <ref name='Number.datatype'/> 251.84 - </attribute> 251.85 - </optional> 251.86 - <optional> 251.87 - <attribute name='amplitude'> 251.88 - <ref name='Number.datatype'/> 251.89 - </attribute> 251.90 - </optional> 251.91 - <optional> 251.92 - <attribute name='exponent'> 251.93 - <ref name='Number.datatype'/> 251.94 - </attribute> 251.95 - </optional> 251.96 - <optional> 251.97 - <attribute name='offset'> 251.98 - <ref name='Number.datatype'/> 251.99 - </attribute> 251.100 - </optional> 251.101 - </define> 251.102 \ No newline at end of file
252.1 --- a/master/rng/feComposite Thu Feb 24 10:19:12 2011 +0000 252.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 252.3 @@ -1,54 +0,0 @@ 252.4 - <define name='svg.feComposite.content'> 252.5 - <zeroOrMore> 252.6 - <choice> 252.7 - <ref name='animate'/> 252.8 - <ref name='set'/> 252.9 - </choice> 252.10 - </zeroOrMore> 252.11 - </define> 252.12 - 252.13 - <define name='feComposite'> 252.14 - <element name='feComposite'> 252.15 - <ref name='feComposite.attr'/> 252.16 - <ref name='svg.feComposite.content'/> 252.17 - </element> 252.18 - </define> 252.19 - 252.20 - <define name='feComposite.attr' combine='interleave'> 252.21 - <ref name='svg.Core.attr'/> 252.22 - <ref name='svg.FilterColor.attr'/> 252.23 - <ref name='svg.FilterPrimitiveWithIn.attr'/> 252.24 - <attribute name='in2'/> 252.25 - <optional> 252.26 - <attribute name='operator' a:defaultValue='over'> 252.27 - <choice> 252.28 - <value>over</value> 252.29 - <value>in</value> 252.30 - <value>out</value> 252.31 - <value>atop</value> 252.32 - <value>xor</value> 252.33 - <value>arithmetic</value> 252.34 - </choice> 252.35 - </attribute> 252.36 - </optional> 252.37 - <optional> 252.38 - <attribute name='k1'> 252.39 - <ref name='Number.datatype'/> 252.40 - </attribute> 252.41 - </optional> 252.42 - <optional> 252.43 - <attribute name='k2'> 252.44 - <ref name='Number.datatype'/> 252.45 - </attribute> 252.46 - </optional> 252.47 - <optional> 252.48 - <attribute name='k3'> 252.49 - <ref name='Number.datatype'/> 252.50 - </attribute> 252.51 - </optional> 252.52 - <optional> 252.53 - <attribute name='k4'> 252.54 - <ref name='Number.datatype'/> 252.55 - </attribute> 252.56 - </optional> 252.57 - </define>
253.1 --- a/master/rng/feConvolveMatrix Thu Feb 24 10:19:12 2011 +0000 253.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 253.3 @@ -1,64 +0,0 @@ 253.4 - <define name='svg.feConvolveMatrix.content'> 253.5 - <zeroOrMore> 253.6 - <choice> 253.7 - <ref name='animate'/> 253.8 - <ref name='set'/> 253.9 - </choice> 253.10 - </zeroOrMore> 253.11 - </define> 253.12 - 253.13 - <define name='feConvolveMatrix'> 253.14 - <element name='feConvolveMatrix'> 253.15 - <ref name='feConvolveMatrix.attr'/> 253.16 - <ref name='svg.feConvolveMatrix.content'/> 253.17 - </element> 253.18 - </define> 253.19 - 253.20 - <define name='feConvolveMatrix.attr' combine='interleave'> 253.21 - <ref name='svg.Core.attr'/> 253.22 - <ref name='svg.FilterColor.attr'/> 253.23 - <ref name='svg.FilterPrimitiveWithIn.attr'/> 253.24 - <attribute name='order'> 253.25 - <ref name='NumberOptionalNumber.datatype'/> 253.26 - </attribute> 253.27 - <attribute name='kernelMatrix'/> 253.28 - <optional> 253.29 - <attribute name='divisor'> 253.30 - <ref name='Number.datatype'/> 253.31 - </attribute> 253.32 - </optional> 253.33 - <optional> 253.34 - <attribute name='bias'> 253.35 - <ref name='Number.datatype'/> 253.36 - </attribute> 253.37 - </optional> 253.38 - <optional> 253.39 - <attribute name='targetX'> 253.40 - <ref name='Integer.datatype'/> 253.41 - </attribute> 253.42 - </optional> 253.43 - <optional> 253.44 - <attribute name='targetY'> 253.45 - <ref name='Integer.datatype'/> 253.46 - </attribute> 253.47 - </optional> 253.48 - <optional> 253.49 - <attribute name='edgeMode' a:defaultValue='duplicate'> 253.50 - <choice> 253.51 - <value>duplicate</value> 253.52 - <value>wrap</value> 253.53 - <value>none</value> 253.54 - </choice> 253.55 - </attribute> 253.56 - </optional> 253.57 - <optional> 253.58 - <attribute name='kernelUnitLength'> 253.59 - <ref name='NumberOptionalNumber.datatype'/> 253.60 - </attribute> 253.61 - </optional> 253.62 - <optional> 253.63 - <attribute name='preserveAlpha'> 253.64 - <ref name='Boolean.datatype'/> 253.65 - </attribute> 253.66 - </optional> 253.67 - </define>
254.1 --- a/master/rng/feDiffuseLighting Thu Feb 24 10:19:12 2011 +0000 254.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 254.3 @@ -1,49 +0,0 @@ 254.4 - <define name='svg.feDiffuseLighting.content'> 254.5 - <choice> 254.6 - <ref name='feDistantLight'/> 254.7 - <ref name='fePointLight'/> 254.8 - <ref name='feSpotLight'/> 254.9 - </choice> 254.10 - <zeroOrMore> 254.11 - <choice> 254.12 - <ref name='animate'/> 254.13 - <ref name='set'/> 254.14 - <ref name='animateColor'/> 254.15 - </choice> 254.16 - </zeroOrMore> 254.17 - </define> 254.18 - 254.19 - <define name='feDiffuseLighting'> 254.20 - <element name='feDiffuseLighting'> 254.21 - <ref name='attlist.feDiffuseLighting'/> 254.22 - <ref name='svg.feDiffuseLighting.content'/> 254.23 - </element> 254.24 - </define> 254.25 - 254.26 - <define name='attlist.feDiffuseLighting' combine='interleave'> 254.27 - <ref name='svg.Core.attrib'/> 254.28 - <ref name='svg.Style.attrib'/> 254.29 - <ref name='svg.Color.attrib'/> 254.30 - <ref name='svg.FilterColor.attrib'/> 254.31 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 254.32 - <optional> 254.33 - <attribute name='lighting-color'> 254.34 - <ref name='SVGColor.datatype'/> 254.35 - </attribute> 254.36 - </optional> 254.37 - <optional> 254.38 - <attribute name='surfaceScale'> 254.39 - <ref name='Number.datatype'/> 254.40 - </attribute> 254.41 - </optional> 254.42 - <optional> 254.43 - <attribute name='diffuseConstant'> 254.44 - <ref name='Number.datatype'/> 254.45 - </attribute> 254.46 - </optional> 254.47 - <optional> 254.48 - <attribute name='kernelUnitLength'> 254.49 - <ref name='NumberOptionalNumber.datatype'/> 254.50 - </attribute> 254.51 - </optional> 254.52 - </define>
255.1 --- a/master/rng/feDisplacementMap Thu Feb 24 10:19:12 2011 +0000 255.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 255.3 @@ -1,47 +0,0 @@ 255.4 - <define name='svg.feDisplacementMap.content'> 255.5 - <zeroOrMore> 255.6 - <choice> 255.7 - <ref name='animate'/> 255.8 - <ref name='set'/> 255.9 - </choice> 255.10 - </zeroOrMore> 255.11 - </define> 255.12 - 255.13 - <define name='feDisplacementMap'> 255.14 - <element name='feDisplacementMap'> 255.15 - <ref name='attlist.feDisplacementMap'/> 255.16 - <ref name='svg.feDisplacementMap.content'/> 255.17 - </element> 255.18 - </define> 255.19 - 255.20 - <define name='attlist.feDisplacementMap' combine='interleave'> 255.21 - <ref name='svg.Core.attrib'/> 255.22 - <ref name='svg.FilterColor.attrib'/> 255.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 255.24 - <attribute name='in2'/> 255.25 - <optional> 255.26 - <attribute name='scale'> 255.27 - <ref name='Number.datatype'/> 255.28 - </attribute> 255.29 - </optional> 255.30 - <optional> 255.31 - <attribute name='xChannelSelector' a:defaultValue='A'> 255.32 - <choice> 255.33 - <value>R</value> 255.34 - <value>G</value> 255.35 - <value>B</value> 255.36 - <value>A</value> 255.37 - </choice> 255.38 - </attribute> 255.39 - </optional> 255.40 - <optional> 255.41 - <attribute name='yChannelSelector' a:defaultValue='A'> 255.42 - <choice> 255.43 - <value>R</value> 255.44 - <value>G</value> 255.45 - <value>B</value> 255.46 - <value>A</value> 255.47 - </choice> 255.48 - </attribute> 255.49 - </optional> 255.50 - </define>
256.1 --- a/master/rng/feDistantLight Thu Feb 24 10:19:12 2011 +0000 256.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 256.3 @@ -1,29 +0,0 @@ 256.4 - <define name='svg.feDistantLight.content'> 256.5 - <zeroOrMore> 256.6 - <choice> 256.7 - <ref name='animate'/> 256.8 - <ref name='set'/> 256.9 - </choice> 256.10 - </zeroOrMore> 256.11 - </define> 256.12 - 256.13 - <define name='feDistantLight'> 256.14 - <element name='feDistantLight'> 256.15 - <ref name='feDistantLight.attr'/> 256.16 - <ref name='svg.feDistantLight.content'/> 256.17 - </element> 256.18 - </define> 256.19 - 256.20 - <define name='feDistantLight.attr' combine='interleave'> 256.21 - <ref name='svg.Core.attr'/> 256.22 - <optional> 256.23 - <attribute name='azimuth'> 256.24 - <ref name='Number.datatype'/> 256.25 - </attribute> 256.26 - </optional> 256.27 - <optional> 256.28 - <attribute name='elevation'> 256.29 - <ref name='Number.datatype'/> 256.30 - </attribute> 256.31 - </optional> 256.32 - </define>
257.1 --- a/master/rng/feDropShadow Thu Feb 24 10:19:12 2011 +0000 257.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 257.3 @@ -1,37 +0,0 @@ 257.4 - <define name='svg.feDropShadow.content'> 257.5 - <zeroOrMore> 257.6 - <choice> 257.7 - <ref name='animate'/> 257.8 - <ref name='set'/> 257.9 - </choice> 257.10 - </zeroOrMore> 257.11 - </define> 257.12 - 257.13 - <define name='feDropShadow'> 257.14 - <element name='feDropShadow'> 257.15 - <ref name='attlist.feDropShadow'/> 257.16 - <ref name='svg.feDropShadow.content'/> 257.17 - </element> 257.18 - </define> 257.19 - 257.20 - <define name='attlist.feDropShadow' combine='interleave'> 257.21 - <ref name='svg.Core.attrib'/> 257.22 - <ref name='svg.FilterColor.attrib'/> 257.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 257.24 - 257.25 - <optional> 257.26 - <attribute name='dx'> 257.27 - <ref name='Coordinate.datatype'/> 257.28 - </attribute> 257.29 - </optional> 257.30 - <optional> 257.31 - <attribute name='dy'> 257.32 - <ref name='Coordinate.datatype'/> 257.33 - </attribute> 257.34 - </optional> 257.35 - <optional> 257.36 - <attribute name='stdDeviation'> 257.37 - <ref name='NumberOptionalNumber.datatype'/> 257.38 - </attribute> 257.39 - </optional> 257.40 - </define>
258.1 --- a/master/rng/feFlood Thu Feb 24 10:19:12 2011 +0000 258.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 258.3 @@ -1,34 +0,0 @@ 258.4 - <define name='svg.feFlood.content'> 258.5 - <zeroOrMore> 258.6 - <choice> 258.7 - <ref name='animate'/> 258.8 - <ref name='set'/> 258.9 - <ref name='animateColor'/> 258.10 - </choice> 258.11 - </zeroOrMore> 258.12 - </define> 258.13 - 258.14 - <define name='feFlood'> 258.15 - <element name='feFlood'> 258.16 - <ref name='attlist.feFlood'/> 258.17 - <ref name='svg.feFlood.content'/> 258.18 - </element> 258.19 - </define> 258.20 - 258.21 - <define name='attlist.feFlood' combine='interleave'> 258.22 - <ref name='svg.Core.attrib'/> 258.23 - <ref name='svg.Style.attrib'/> 258.24 - <ref name='svg.Color.attrib'/> 258.25 - <ref name='svg.FilterColor.attrib'/> 258.26 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 258.27 - <optional> 258.28 - <attribute name='flood-color'> 258.29 - <ref name='SVGColor.datatype'/> 258.30 - </attribute> 258.31 - </optional> 258.32 - <optional> 258.33 - <attribute name='flood-opacity'> 258.34 - <ref name='OpacityValue.datatype'/> 258.35 - </attribute> 258.36 - </optional> 258.37 - </define>
259.1 --- a/master/rng/feGaussianBlur Thu Feb 24 10:19:12 2011 +0000 259.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 259.3 @@ -1,27 +0,0 @@ 259.4 - <define name='svg.feGaussianBlur.content'> 259.5 - <zeroOrMore> 259.6 - <choice> 259.7 - <ref name='animate'/> 259.8 - <ref name='set'/> 259.9 - </choice> 259.10 - </zeroOrMore> 259.11 - </define> 259.12 - 259.13 - <define name='feGaussianBlur'> 259.14 - <element name='feGaussianBlur'> 259.15 - <ref name='attlist.feGaussianBlur'/> 259.16 - <ref name='svg.feGaussianBlur.content'/> 259.17 - </element> 259.18 - </define> 259.19 - 259.20 - <define name='attlist.feGaussianBlur' combine='interleave'> 259.21 - <ref name='svg.Core.attrib'/> 259.22 - <ref name='svg.FilterColor.attrib'/> 259.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 259.24 - <optional> 259.25 - <attribute name='stdDeviation'> 259.26 - <ref name='NumberOptionalNumber.datatype'/> 259.27 - </attribute> 259.28 - </optional> 259.29 - </define> 259.30 - 259.31 \ No newline at end of file
260.1 --- a/master/rng/feImage Thu Feb 24 10:19:12 2011 +0000 260.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 260.3 @@ -1,32 +0,0 @@ 260.4 - <define name='SVG.feImage.content'> 260.5 - <zeroOrMore> 260.6 - <choice> 260.7 - <ref name='animate'/> 260.8 - <ref name='set'/> 260.9 - <ref name='animateTransform'/> 260.10 - </choice> 260.11 - </zeroOrMore> 260.12 - </define> 260.13 - 260.14 - <define name='feImage'> 260.15 - <element name='feImage'> 260.16 - <ref name='attlist.feImage'/> 260.17 - <ref name='svg.feImage.content'/> 260.18 - </element> 260.19 - </define> 260.20 - 260.21 - <define name='attlist.feImage' combine='interleave'> 260.22 - <ref name='svg.Core.attrib'/> 260.23 - <ref name='svg.Style.attrib'/> 260.24 - <ref name='svg.Presentation.attrib'/> 260.25 - <ref name='svg.FilterPrimitive.attrib'/> 260.26 - <ref name='svg.XLinkEmbed.attrib'/> 260.27 - <ref name='svg.External.attrib'/> 260.28 - <ref name='svg.Transition.attrib'/> 260.29 - <ref name='svg.ShadowInherit.attrib'/> 260.30 - <optional> 260.31 - <attribute name='preserveAspectRatio' a:defaultValue='xMidYMid meet'> 260.32 - <ref name='PreserveAspectRatioSpec.datatype'/> 260.33 - </attribute> 260.34 - </optional> 260.35 - </define>
261.1 --- a/master/rng/feMerge Thu Feb 24 10:19:12 2011 +0000 261.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 261.3 @@ -1,41 +0,0 @@ 261.4 - <define name='svg.feMerge.content'> 261.5 - <zeroOrMore> 261.6 - <ref name='feMergeNode'/> 261.7 - </zeroOrMore> 261.8 - </define> 261.9 - 261.10 - <define name='feMerge'> 261.11 - <element name='feMerge'> 261.12 - <ref name='attlist.feMerge'/> 261.13 - <ref name='svg.feMerge.content'/> 261.14 - </element> 261.15 - </define> 261.16 - 261.17 - <define name='attlist.feMerge' combine='interleave'> 261.18 - <ref name='svg.Core.attrib'/> 261.19 - <ref name='svg.FilterColor.attrib'/> 261.20 - <ref name='svg.FilterPrimitive.attrib'/> 261.21 - </define> 261.22 - 261.23 - <define name='svg.feMergeNode.content'> 261.24 - <zeroOrMore> 261.25 - <choice> 261.26 - <ref name='animate'/> 261.27 - <ref name='set'/> 261.28 - </choice> 261.29 - </zeroOrMore> 261.30 - </define> 261.31 - 261.32 - <define name='feMergeNode'> 261.33 - <element name='feMergeNode'> 261.34 - <ref name='attlist.feMergeNode'/> 261.35 - <ref name='svg.feMergeNode.content'/> 261.36 - </element> 261.37 - </define> 261.38 - 261.39 - <define name='attlist.feMergeNode' combine='interleave'> 261.40 - <ref name='svg.Core.attrib'/> 261.41 - <optional> 261.42 - <attribute name='in'/> 261.43 - </optional> 261.44 - </define>
262.1 --- a/master/rng/feMorphology Thu Feb 24 10:19:12 2011 +0000 262.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 262.3 @@ -1,34 +0,0 @@ 262.4 - <define name='svg.feMorphology.content'> 262.5 - <zeroOrMore> 262.6 - <choice> 262.7 - <ref name='animate'/> 262.8 - <ref name='set'/> 262.9 - </choice> 262.10 - </zeroOrMore> 262.11 - </define> 262.12 - 262.13 - <define name='feMorphology'> 262.14 - <element name='feMorphology'> 262.15 - <ref name='attlist.feMorphology'/> 262.16 - <ref name='svg.feMorphology.content'/> 262.17 - </element> 262.18 - </define> 262.19 - 262.20 - <define name='attlist.feMorphology' combine='interleave'> 262.21 - <ref name='svg.Core.attrib'/> 262.22 - <ref name='svg.FilterColor.attrib'/> 262.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 262.24 - <optional> 262.25 - <attribute name='operator' a:defaultValue='erode'> 262.26 - <choice> 262.27 - <value>erode</value> 262.28 - <value>dilate</value> 262.29 - </choice> 262.30 - </attribute> 262.31 - </optional> 262.32 - <optional> 262.33 - <attribute name='radius'> 262.34 - <ref name='NumberOptionalNumber.datatype'/> 262.35 - </attribute> 262.36 - </optional> 262.37 - </define>
263.1 --- a/master/rng/feOffset Thu Feb 24 10:19:12 2011 +0000 263.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 263.3 @@ -1,21 +0,0 @@ 263.4 - <define name='svg.feOffset.content'> 263.5 - <zeroOrMore> 263.6 - <choice> 263.7 - <ref name='animate'/> 263.8 - <ref name='set'/> 263.9 - </choice> 263.10 - </zeroOrMore> 263.11 - </define> 263.12 - 263.13 - <define name='feOffset'> 263.14 - <element name='feOffset'> 263.15 - <ref name='attlist.feOffset'/> 263.16 - <ref name='svg.feOffset.content'/> 263.17 - </element> 263.18 - </define> 263.19 - 263.20 - <define name='attlist.feOffset' combine='interleave'> 263.21 - <ref name='svg.Core.attrib'/> 263.22 - <ref name='svg.FilterColor.attrib'/> 263.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 263.24 - </define>
264.1 --- a/master/rng/fePointLight Thu Feb 24 10:19:12 2011 +0000 264.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 264.3 @@ -1,34 +0,0 @@ 264.4 - <define name='svg.fePointLight.content'> 264.5 - <zeroOrMore> 264.6 - <choice> 264.7 - <ref name='animate'/> 264.8 - <ref name='set'/> 264.9 - </choice> 264.10 - </zeroOrMore> 264.11 - </define> 264.12 - 264.13 - <define name='fePointLight'> 264.14 - <element name='fePointLight'> 264.15 - <ref name='fePointLight.attr'/> 264.16 - <ref name='svg.fePointLight.content'/> 264.17 - </element> 264.18 - </define> 264.19 - 264.20 - <define name='fePointLight.attr' combine='interleave'> 264.21 - <ref name='svg.Core.attr'/> 264.22 - <optional> 264.23 - <attribute name='x'> 264.24 - <ref name='Number.datatype'/> 264.25 - </attribute> 264.26 - </optional> 264.27 - <optional> 264.28 - <attribute name='y'> 264.29 - <ref name='Number.datatype'/> 264.30 - </attribute> 264.31 - </optional> 264.32 - <optional> 264.33 - <attribute name='z'> 264.34 - <ref name='Number.datatype'/> 264.35 - </attribute> 264.36 - </optional> 264.37 - </define>
265.1 --- a/master/rng/feSpecularLighting Thu Feb 24 10:19:12 2011 +0000 265.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 265.3 @@ -1,54 +0,0 @@ 265.4 - <define name='svg.feSpecularLighting.content'> 265.5 - <choice> 265.6 - <ref name='feDistantLight'/> 265.7 - <ref name='fePointLight'/> 265.8 - <ref name='feSpotLight'/> 265.9 - </choice> 265.10 - <zeroOrMore> 265.11 - <choice> 265.12 - <ref name='animate'/> 265.13 - <ref name='set'/> 265.14 - <ref name='animateColor'/> 265.15 - </choice> 265.16 - </zeroOrMore> 265.17 - </define> 265.18 - 265.19 - <define name='feSpecularLighting'> 265.20 - <element name='feSpecularLighting'> 265.21 - <ref name='attlist.feSpecularLighting'/> 265.22 - <ref name='svg.feSpecularLighting.content'/> 265.23 - </element> 265.24 - </define> 265.25 - 265.26 - <define name='attlist.feSpecularLighting' combine='interleave'> 265.27 - <ref name='svg.Core.attrib'/> 265.28 - <ref name='svg.Style.attrib'/> 265.29 - <ref name='svg.Color.attrib'/> 265.30 - <ref name='svg.FilterColor.attrib'/> 265.31 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 265.32 - <optional> 265.33 - <attribute name='lighting-color'> 265.34 - <ref name='SVGColor.datatype'/> 265.35 - </attribute> 265.36 - </optional> 265.37 - <optional> 265.38 - <attribute name='surfaceScale'> 265.39 - <ref name='Number.datatype'/> 265.40 - </attribute> 265.41 - </optional> 265.42 - <optional> 265.43 - <attribute name='specularConstant'> 265.44 - <ref name='Number.datatype'/> 265.45 - </attribute> 265.46 - </optional> 265.47 - <optional> 265.48 - <attribute name='specularExponent'> 265.49 - <ref name='Number.datatype'/> 265.50 - </attribute> 265.51 - </optional> 265.52 - <optional> 265.53 - <attribute name='kernelUnitLength'> 265.54 - <ref name='NumberOptionalNumber.datatype'/> 265.55 - </attribute> 265.56 - </optional> 265.57 - </define>
266.1 --- a/master/rng/feSpotLight Thu Feb 24 10:19:12 2011 +0000 266.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 266.3 @@ -1,59 +0,0 @@ 266.4 -<define name='svg.feSpotLight.content'> 266.5 - <zeroOrMore> 266.6 - <choice> 266.7 - <ref name='animate'/> 266.8 - <ref name='set'/> 266.9 - </choice> 266.10 - </zeroOrMore> 266.11 - </define> 266.12 - 266.13 - <define name='feSpotLight'> 266.14 - <element name='feSpotLight'> 266.15 - <ref name='feSpotLight.attr'/> 266.16 - <ref name='svg.feSpotLight.content'/> 266.17 - </element> 266.18 - </define> 266.19 - 266.20 - <define name='feSpotLight.attr' combine='interleave'> 266.21 - <ref name='svg.Core.attr'/> 266.22 - <optional> 266.23 - <attribute name='x'> 266.24 - <ref name='Number.datatype'/> 266.25 - </attribute> 266.26 - </optional> 266.27 - <optional> 266.28 - <attribute name='y'> 266.29 - <ref name='Number.datatype'/> 266.30 - </attribute> 266.31 - </optional> 266.32 - <optional> 266.33 - <attribute name='z'> 266.34 - <ref name='Number.datatype'/> 266.35 - </attribute> 266.36 - </optional> 266.37 - <optional> 266.38 - <attribute name='pointsAtX'> 266.39 - <ref name='Number.datatype'/> 266.40 - </attribute> 266.41 - </optional> 266.42 - <optional> 266.43 - <attribute name='pointsAtY'> 266.44 - <ref name='Number.datatype'/> 266.45 - </attribute> 266.46 - </optional> 266.47 - <optional> 266.48 - <attribute name='pointsAtZ'> 266.49 - <ref name='Number.datatype'/> 266.50 - </attribute> 266.51 - </optional> 266.52 - <optional> 266.53 - <attribute name='specularExponent'> 266.54 - <ref name='Number.datatype'/> 266.55 - </attribute> 266.56 - </optional> 266.57 - <optional> 266.58 - <attribute name='limitingConeAngle'> 266.59 - <ref name='Number.datatype'/> 266.60 - </attribute> 266.61 - </optional> 266.62 - </define>
267.1 --- a/master/rng/feTile Thu Feb 24 10:19:12 2011 +0000 267.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 267.3 @@ -1,21 +0,0 @@ 267.4 - <define name='svg.feTile.content'> 267.5 - <zeroOrMore> 267.6 - <choice> 267.7 - <ref name='animate'/> 267.8 - <ref name='set'/> 267.9 - </choice> 267.10 - </zeroOrMore> 267.11 - </define> 267.12 - 267.13 - <define name='feTile'> 267.14 - <element name='feTile'> 267.15 - <ref name='attlist.feTile'/> 267.16 - <ref name='svg.feTile.content'/> 267.17 - </element> 267.18 - </define> 267.19 - 267.20 - <define name='attlist.feTile' combine='interleave'> 267.21 - <ref name='svg.Core.attrib'/> 267.22 - <ref name='svg.FilterColor.attrib'/> 267.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 267.24 - </define>
268.1 --- a/master/rng/feTurbulence Thu Feb 24 10:19:12 2011 +0000 268.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 268.3 @@ -1,52 +0,0 @@ 268.4 - <define name='svg.feTurbulence.content'> 268.5 - <zeroOrMore> 268.6 - <choice> 268.7 - <ref name='animate'/> 268.8 - <ref name='set'/> 268.9 - </choice> 268.10 - </zeroOrMore> 268.11 - </define> 268.12 - 268.13 - <define name='feTurbulence'> 268.14 - <element name='feTurbulence'> 268.15 - <ref name='attlist.feTurbulence'/> 268.16 - <ref name='svg.feTurbulence.content'/> 268.17 - </element> 268.18 - </define> 268.19 - 268.20 - <define name='attlist.feTurbulence' combine='interleave'> 268.21 - <ref name='svg.Core.attrib'/> 268.22 - <ref name='svg.FilterColor.attrib'/> 268.23 - <ref name='svg.FilterPrimitive.attrib'/> 268.24 - <optional> 268.25 - <attribute name='baseFrequency'> 268.26 - <ref name='NumberOptionalNumber.datatype'/> 268.27 - </attribute> 268.28 - </optional> 268.29 - <optional> 268.30 - <attribute name='numOctaves'> 268.31 - <ref name='Integer.datatype'/> 268.32 - </attribute> 268.33 - </optional> 268.34 - <optional> 268.35 - <attribute name='seed'> 268.36 - <ref name='Number.datatype'/> 268.37 - </attribute> 268.38 - </optional> 268.39 - <optional> 268.40 - <attribute name='stitchTiles' a:defaultValue='noStitch'> 268.41 - <choice> 268.42 - <value>stitch</value> 268.43 - <value>noStitch</value> 268.44 - </choice> 268.45 - </attribute> 268.46 - </optional> 268.47 - <optional> 268.48 - <attribute name='type' a:defaultValue='turbulence'> 268.49 - <choice> 268.50 - <value>fractalNoise</value> 268.51 - <value>turbulence</value> 268.52 - </choice> 268.53 - </attribute> 268.54 - </optional> 268.55 - </define>
269.1 --- a/master/rng/feUnsharpMask Thu Feb 24 10:19:12 2011 +0000 269.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 269.3 @@ -1,33 +0,0 @@ 269.4 - <define name='svg.feUnsharpMask.content'> 269.5 - <zeroOrMore> 269.6 - <choice> 269.7 - <ref name='animate'/> 269.8 - <ref name='set'/> 269.9 - </choice> 269.10 - </zeroOrMore> 269.11 - </define> 269.12 - 269.13 - <define name='feUnsharpMask'> 269.14 - <element name='feUnsharpMask'> 269.15 - <ref name='attlist.feUnsharpMask'/> 269.16 - <ref name='svg.feUnsharpMask.content'/> 269.17 - </element> 269.18 - </define> 269.19 - 269.20 - <define name='attlist.feUnsharpMask' combine='interleave'> 269.21 - <ref name='svg.Core.attrib'/> 269.22 - <ref name='svg.FilterColor.attrib'/> 269.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 269.24 - <optional> 269.25 - <attribute name='amount'> 269.26 - <ref name='Number.datatype'/> 269.27 - </attribute> 269.28 - <attribute name='radius'> 269.29 - <ref name='NumberOptionalNumber.datatype'/> 269.30 - </attribute> 269.31 - <attribute name='threshold'> 269.32 - <ref name='Number.datatype'/> 269.33 - </attribute> 269.34 - </optional> 269.35 - </define> 269.36 -
270.1 --- a/master/rng/filter Thu Feb 24 10:19:12 2011 +0000 270.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 270.3 @@ -1,91 +0,0 @@ 270.4 - <define name='filter'> 270.5 - <element name='filter'> 270.6 - <ref name='filter.AT'/> 270.7 - <ref name='svg.filter.content'/> 270.8 - </element> 270.9 - </define> 270.10 - 270.11 - <define name='filter.AT' combine='interleave'> 270.12 - <ref name='svg.Core.attr'/> 270.13 - <ref name='svg.Style.attr'/> 270.14 - <ref name='svg.Presentation.attrib'/> 270.15 - <ref name='svg.XLink.attrib'/> 270.16 - <ref name='svg.External.attrib'/> 270.17 - <optional> 270.18 - <attribute name='x'> 270.19 - <ref name='Coordinate.datatype'/> 270.20 - </attribute> 270.21 - </optional> 270.22 - <optional> 270.23 - <attribute name='y'> 270.24 - <ref name='Coordinate.datatype'/> 270.25 - </attribute> 270.26 - </optional> 270.27 - <optional> 270.28 - <attribute name='width'> 270.29 - <ref name='Length.datatype'/> 270.30 - </attribute> 270.31 - </optional> 270.32 - <optional> 270.33 - <attribute name='height'> 270.34 - <ref name='Length.datatype'/> 270.35 - </attribute> 270.36 - </optional> 270.37 - <optional> 270.38 - <attribute name='mx'> 270.39 - <ref name='Coordinate.datatype'/> 270.40 - </attribute> 270.41 - </optional> 270.42 - <optional> 270.43 - <attribute name='my'> 270.44 - <ref name='Coordinate.datatype'/> 270.45 - </attribute> 270.46 - </optional> 270.47 - <optional> 270.48 - <attribute name='mw'> 270.49 - <ref name='Length.datatype'/> 270.50 - </attribute> 270.51 - </optional> 270.52 - <optional> 270.53 - <attribute name='mh'> 270.54 - <ref name='Length.datatype'/> 270.55 - </attribute> 270.56 - </optional> 270.57 - <optional> 270.58 - <attribute name='filterRes'> 270.59 - <ref name='NumberOptionalNumber.datatype'/> 270.60 - </attribute> 270.61 - </optional> 270.62 - <optional> 270.63 - <attribute name='filterUnits'> 270.64 - <choice> 270.65 - <value>userSpaceOnUse</value> 270.66 - <value>objectBoundingBox</value> 270.67 - </choice> 270.68 - </attribute> 270.69 - </optional> 270.70 - <optional> 270.71 - <attribute name='primitiveUnits'> 270.72 - <choice> 270.73 - <value>userSpaceOnUse</value> 270.74 - <value>objectBoundingBox</value> 270.75 - </choice> 270.76 - </attribute> 270.77 - </optional> 270.78 - <optional> 270.79 - <attribute name='filterMarginsUnits'> 270.80 - <choice> 270.81 - <value>userSpaceOnUse</value> 270.82 - <value>objectBoundingBox</value> 270.83 - </choice> 270.84 - </attribute> 270.85 - </optional> 270.86 - <optional> 270.87 - <attribute name='primitiveMarginsUnits'> 270.88 - <choice> 270.89 - <value>userSpaceOnUse</value> 270.90 - <value>objectBoundingBox</value> 270.91 - </choice> 270.92 - </attribute> 270.93 - </optional> 270.94 - </define>
271.1 --- a/master/rng/filter-primitive-attr Thu Feb 24 10:19:12 2011 +0000 271.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 271.3 @@ -1,52 +0,0 @@ 271.4 - <define name='svg.FilterPrimitive.attrib'> 271.5 - <optional> 271.6 - <attribute name='x'> 271.7 - <ref name='Coordinate.datatype'/> 271.8 - </attribute> 271.9 - </optional> 271.10 - <optional> 271.11 - <attribute name='y'> 271.12 - <ref name='Coordinate.datatype'/> 271.13 - </attribute> 271.14 - </optional> 271.15 - <optional> 271.16 - <attribute name='width'> 271.17 - <ref name='Length.datatype'/> 271.18 - </attribute> 271.19 - </optional> 271.20 - <optional> 271.21 - <attribute name='height'> 271.22 - <ref name='Length.datatype'/> 271.23 - </attribute> 271.24 - </optional> 271.25 - <optional> 271.26 - <attribute name='mx'> 271.27 - <ref name='Coordinate.datatype'/> 271.28 - </attribute> 271.29 - </optional> 271.30 - <optional> 271.31 - <attribute name='my'> 271.32 - <ref name='Coordinate.datatype'/> 271.33 - </attribute> 271.34 - </optional> 271.35 - <optional> 271.36 - <attribute name='mw'> 271.37 - <ref name='Length.datatype'/> 271.38 - </attribute> 271.39 - </optional> 271.40 - <optional> 271.41 - <attribute name='mh'> 271.42 - <ref name='Length.datatype'/> 271.43 - </attribute> 271.44 - </optional> 271.45 - <optional> 271.46 - <attribute name='result'/> 271.47 - </optional> 271.48 - </define> 271.49 - 271.50 - <define name='svg.FilterPrimitiveWithIn.attrib'> 271.51 - <ref name='svg.FilterPrimitive.attrib'/> 271.52 - <optional> 271.53 - <attribute name='in'/> 271.54 - </optional> 271.55 - </define>
272.1 --- a/master/style/W3C-WD.css Thu Feb 24 10:19:12 2011 +0000 272.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 272.3 @@ -1,89 +0,0 @@ 272.4 - 272.5 -/* Style for a public "Working Draft" */ 272.6 - 272.7 -/* 272.8 - Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 272.9 - The following software licensing rules apply: 272.10 - http://www.w3.org/Consortium/Legal/copyright-software */ 272.11 - 272.12 -/* $Id$ */ 272.13 - 272.14 - 272.15 -body { 272.16 - padding: 2em 1em 2em 70px; 272.17 - margin: 0; 272.18 - font-family: sans-serif; 272.19 - color: black; 272.20 - background: white; 272.21 - background-position: top left; 272.22 - background-attachment: fixed; 272.23 - background-repeat: no-repeat; 272.24 -} 272.25 -:link { color: #00C; background: transparent } 272.26 -:visited { color: #609; background: transparent } 272.27 -a:active { color: #C00; background: transparent } 272.28 - 272.29 -a:link img, a:visited img { border-style: none } /* no border on img links */ 272.30 - 272.31 -a img { color: white; } /* trick to hide the border in Netscape 4 */ 272.32 -@media all { /* hide the next rule from Netscape 4 */ 272.33 - a img { color: inherit; } /* undo the color change above */ 272.34 -} 272.35 - 272.36 -th, td { /* ns 4 */ 272.37 - font-family: sans-serif; 272.38 -} 272.39 - 272.40 -h1, h2, h3, h4, h5, h6 { text-align: left } 272.41 -/* background should be transparent, but WebTV has a bug */ 272.42 -h1, h2, h3 { color: #005A9C; background: white } 272.43 -h1 { font: 170% sans-serif } 272.44 -h2 { font: 140% sans-serif } 272.45 -h3 { font: 120% sans-serif } 272.46 -h4 { font: bold 100% sans-serif } 272.47 -h5 { font: italic 100% sans-serif } 272.48 -h6 { font: small-caps 100% sans-serif } 272.49 - 272.50 -.hide { display: none } 272.51 - 272.52 -div.head { margin-bottom: 1em } 272.53 -div.head h1 { margin-top: 2em; clear: both } 272.54 -div.head table { margin-left: 2em; margin-top: 2em } 272.55 - 272.56 -p.copyright { font-size: small } 272.57 -p.copyright small { font-size: small } 272.58 - 272.59 -@media screen { /* hide from IE3 */ 272.60 -a[href]:hover { background: #ffa } 272.61 -} 272.62 - 272.63 -pre { margin-left: 2em } 272.64 -/* 272.65 -p { 272.66 - margin-top: 0.6em; 272.67 - margin-bottom: 0.6em; 272.68 -} 272.69 -*/ 272.70 -dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */ 272.71 -dt { font-weight: bold } 272.72 - 272.73 -pre, code { font-family: monospace } /* navigator 4 requires this */ 272.74 - 272.75 -ul.toc { 272.76 - list-style: disc; /* Mac NS has problem with 'none' */ 272.77 - list-style: none; 272.78 -} 272.79 - 272.80 -@media aural { 272.81 - h1, h2, h3 { stress: 20; richness: 90 } 272.82 - .hide { speak: none } 272.83 - p.copyright { volume: x-soft; speech-rate: x-fast } 272.84 - dt { pause-before: 20% } 272.85 - pre { speak-punctuation: code } 272.86 -} 272.87 - 272.88 - 272.89 - 272.90 -body { 272.91 - background-image: url(http://www.w3.org/StyleSheets/TR/logo-WD); 272.92 -}
273.1 --- a/master/style/expanders.js Thu Feb 24 10:19:12 2011 +0000 273.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 273.3 @@ -1,32 +0,0 @@ 273.4 -function expand(e) { 273.5 - e = e.parentNode; 273.6 - e.parentNode.removeAttribute('class'); 273.7 - e.style.display = "none"; 273.8 - e.nextSibling.style.display = "inline"; 273.9 -} 273.10 - 273.11 -(function() { 273.12 - var i, a = [], e0, e1p, e1, e2, l = document.getElementsByTagName('span'); 273.13 - for (i = 0; i != l.length; i++) { 273.14 - e0 = l[i]; 273.15 - if (e0.getAttribute('class') == 'expanding') { 273.16 - a.push(e0); 273.17 - } 273.18 - } 273.19 - for (i = 0; i != a.length; i++) { 273.20 - e0 = a[i]; 273.21 - e1 = document.createElement('span'); 273.22 - e1.setAttribute('class', 'expander'); 273.23 - e1.setAttribute('onclick', 'expand(event.target)'); 273.24 - e1p = document.createElement('span'); 273.25 - e1p.textContent = ' '; 273.26 - e1p.appendChild(e1); 273.27 - e2 = document.createElement('span'); 273.28 - e2.style.display = 'none'; 273.29 - while (e0.firstChild) { 273.30 - e2.appendChild(e0.firstChild); 273.31 - } 273.32 - e0.appendChild(e1p); 273.33 - e0.appendChild(e2); 273.34 - } 273.35 -})();
274.1 --- a/master/style/svg-style-extra.css Thu Feb 24 10:19:12 2011 +0000 274.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 274.3 @@ -1,179 +0,0 @@ 274.4 -body { line-height: 1.3; } 274.5 - 274.6 -.element-summary { background: #d9e8ff; padding: 1em; margin-top: 1em } 274.7 -.element-summary-name { float: right; font-size: 110% } 274.8 -.element-summary dl, .element-summary dt { margin-top: 0; margin-bottom: 0; } 274.9 -.element-summary * + dt { margin-top: 0.5em; } 274.10 -.element-summary dd { margin-top: 0; } 274.11 -.element-summary ul.no-bullets { list-style: none; padding-left: 0em } 274.12 -.element-summary ul.no-bullets li { padding-left: 2em; text-indent: -2em; } 274.13 -.expander { color: #888; text-decoration: underline; cursor: pointer; font-size: 85% } 274.14 -.expander { } 274.15 -.expander:active { color: #C00 } 274.16 -.expander:hover { background: #ffa } 274.17 -.expander:after { content: 'show »' } 274.18 - 274.19 -.xgrammar { /*color: #005a9c;*/ color: #A52A2A; font-family: monospace; font-size: 90% } 274.20 - 274.21 -pre.idl { color: black; background: #d9e8ff; padding: 1em; margin-top: 1em; margin-left: 0; font-size: 1em; overflow: auto; /*white-space: pre-wrap*/ } 274.22 -pre.idl a:link, pre.idl a:visited { color: black; } 274.23 - 274.24 -dl.interface dt { 274.25 - margin-top: 1em; 274.26 -} 274.27 - 274.28 -dl.interface dl.attributes > dt, 274.29 -dl.interface dl.constants > dt, 274.30 -dl.interface dl.operations > dt { 274.31 - margin-top: 2em; 274.32 -} 274.33 - 274.34 -dl.interface dl.attributes > dt, 274.35 -dl.interface dl.constants > dt, 274.36 -dl.interface dl.operations > dt, 274.37 -dl.interface ol.parameters > li, 274.38 -dl.interface dl.exceptions > dt { 274.39 - font-weight: normal; 274.40 - display: list-item; 274.41 -} 274.42 - 274.43 -dl.interface dl.attributes > dt:first-child, 274.44 -dl.interface dl.constants > dt:first-child, 274.45 -dl.interface dl.operations > dt:first-child, 274.46 -dl.interface ol.parameters > li:first-child, 274.47 -dl.interface dl.exceptions > dt:first-child { 274.48 - margin-top: 0; 274.49 -} 274.50 - 274.51 -dl.interface dl.attributes > dd, 274.52 -dl.interface dl.constants > dd, 274.53 -dl.interface dl.operations > dd, 274.54 -dl.interface ol.parameters > li, 274.55 -dl.interface dl.exceptions > dd { 274.56 - margin-top: 0.5em; 274.57 - margin-left: 0; 274.58 -} 274.59 - 274.60 -dl.interface dl.attribute { 274.61 - /*margin-left: 2em;*/ 274.62 -} 274.63 - 274.64 -dl.interface dd > *:first-child, 274.65 -dl.interface ol.parameters > li, 274.66 -dl.interface ol.parameters > li > *:first-child + * { 274.67 - margin-top: 0; 274.68 -} 274.69 - 274.70 -ol.parameters > li > .parameter { 274.71 - float: left; 274.72 -} 274.73 - 274.74 -ol.parameters > li > .parameter::after { 274.75 - content: " — "; 274.76 -} 274.77 - 274.78 -.idl .keyword { 274.79 - /*font-weight: bold;*/ 274.80 -} 274.81 - 274.82 -.idlattr, .idlattr:link, .idlattr:visited { 274.83 - background: #d9e8ff; 274.84 - color: black; 274.85 -} 274.86 - 274.87 -ol.parameters { 274.88 - list-style-type: disc; 274.89 - padding-left: 0; 274.90 -} 274.91 - 274.92 -var { 274.93 - font-style: italic; 274.94 -} 274.95 - 274.96 -dl.definitions > dt, 274.97 -.adef-list dl > dt { margin-top: 1em; } 274.98 - 274.99 -dl.definitions > dt + dt, 274.100 -.adef-list dl > dt + dt { margin-top: 0; } 274.101 - 274.102 -dl.definitions > dd > :first-child, 274.103 -.adef-list dl > dd > :first-child { margin-top: 0; } 274.104 - 274.105 -table.vert { 274.106 - border-collapse: collapse; 274.107 - border-top: 2px solid #005a9c; 274.108 - border-bottom: 2px solid #005a9c; 274.109 - margin-top: 1em; 274.110 - margin-bottom: 1em; 274.111 - margin-left: auto; 274.112 - margin-right: auto; 274.113 -} 274.114 -table.vert td { 274.115 - background: #f0f6ff; 274.116 -} 274.117 -table.vert th { 274.118 - text-align: left; 274.119 - vertical-align: bottom; 274.120 - border-bottom: 2px solid #005a9c; 274.121 - white-space: nowrap; 274.122 - color: #d9e8ff; 274.123 - background: #005a9c; 274.124 -} 274.125 -table.vert th a:link, 274.126 -table.vert th a:visited { color: #d9e8ff; } 274.127 -table.vert th a:hover { color: black; } 274.128 -table.vert th, table.vert td { padding: 0.5em 0.75em; } 274.129 -table.vert th .attr-name { color: white } 274.130 -table.vert th a:hover .element-name { color: #2A2AA5 } 274.131 -table.vert th .prop-name { color: white } 274.132 -table.vert th a:hover .element-name { color: black } 274.133 -table.vert th .element-name { color: white } 274.134 -table.vert th a:hover .element-name { color: #A52A2A } 274.135 -table.vert td { vertical-align: top; } 274.136 -table.offset { margin-left: 2em; margin-right: 2em; } 274.137 -.indented { 274.138 - margin-left: 2em; 274.139 -} 274.140 -.math var, .math sub, .math sup { 274.141 - font-family: serif; 274.142 -} 274.143 -.separated { 274.144 - word-spacing: 1em; 274.145 -} 274.146 -.familyname { 274.147 - text-transform: uppercase; 274.148 -} 274.149 - 274.150 -dl.unemphasized-names > dt > a { font-weight: normal } 274.151 - 274.152 -.header { background: #eee; padding: 0.5em; font-size: 85%; text-align: right } 274.153 -.header.top { border-top: 1px solid #ccc } 274.154 -.header.bottom { border-bottom: 1px solid #ccc; margin-top: 1em } 274.155 -.header .namedate { display: block; float: left } 274.156 -.header ul { display: block; margin: 0 } 274.157 -.header ul li { display: inline; margin: 0 } 274.158 -.header ul li:first-child::before { content: none } 274.159 -.header ul li::before { content: ' ⋅ ' } 274.160 -.header .after { display: block; clear: both; height: 1px } 274.161 -.header .after::before { content: ' ' } 274.162 - 274.163 -table.property-table { font-size: 90%; border-collapse: collapse } 274.164 -table.vert td { border-top: 1px solid #005a9c; border-top-color: rgba(0, 90, 156, 0.5) } 274.165 -.tocline1 { font-weight: bold } 274.166 -/* .toc { margin-bottom: 0.5em } */ 274.167 - 274.168 -.idl-type-parenthetical { font-size: 90% } 274.169 -td > :first-child, 274.170 -th > :first-child { margin-top: 0 } 274.171 -td p { 274.172 - margin-top: 1em; 274.173 - margin-bottom: 0; 274.174 -} 274.175 - 274.176 -table.collection { border-collapse: collapse; background: #fff; font-size: 90%; margin-bottom: 1em; margin-left: 2em } 274.177 -table.collection th { background: #eee } 274.178 -table.collection td, table.collection th { border: 1px solid black; padding: 0.25em; vertical-align: baseline } 274.179 - 274.180 -ol.notes { list-style-type: none; padding-left: 0 } 274.181 - 274.182 -.colorpatch { width: 14px; height:14px; border: 1px solid black; }
275.1 --- a/master/style/svg-style.css Thu Feb 24 10:19:12 2011 +0000 275.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 275.3 @@ -1,454 +0,0 @@ 275.4 -/* 275.5 - * style sheet for svg specification 275.6 - */ 275.7 - 275.8 - 275.9 -body { 275.10 - color: black; 275.11 - /* text-align: justify; */ 275.12 - font-family: helvetica, sans-serif; 275.13 - background: white; 275.14 - margin: 2em; 275.15 - /* for the rec: background: #def url(recbg.jpg); */ 275.16 -} 275.17 -.navlinks { 275.18 - text-align: center; 275.19 -} 275.20 -h2, h3, h4, h5, h6 { 275.21 - text-align: left; 275.22 -} 275.23 - 275.24 -.header { 275.25 - text-align: right; 275.26 - border-bottom: 1px solid #aaa; 275.27 - padding-bottom: 0.5em; 275.28 - font-size: 80%; 275.29 -} 275.30 - 275.31 -.footer { 275.32 - text-align: right; 275.33 - margin-top: 1em; 275.34 - border-top: 1px solid #aaa; 275.35 - padding-top: 0.5em; 275.36 - font-size: 80%; 275.37 -} 275.38 - 275.39 -.header ul, .footer ul { 275.40 - display: inline; 275.41 - padding: 0; 275.42 -} 275.43 - 275.44 -.header li, .footer li { 275.45 - display: inline; 275.46 - border-left: 1px solid #aaa; 275.47 - padding-left: 0.2em; 275.48 -} 275.49 - 275.50 -h1 { 275.51 - clear: left; 275.52 - margin-top: 1em; 275.53 - text-align: center; 275.54 -} 275.55 - 275.56 -pre { margin-left: 2em } 275.57 -pre { 275.58 - color: #a52a2a; 275.59 - font-family: monospace; 275.60 - font-size: 90% 275.61 -} 275.62 -pre.svgsamplecompressed { 275.63 - font-size: 75%; 275.64 - letter-spacing: -.05em; 275.65 - line-height: 95% 275.66 -} 275.67 -pre strong { 275.68 - color: #004400; 275.69 - font-weight: bold 275.70 -} 275.71 -.filterformula { 275.72 - color: #a52a2a; 275.73 - font-family: monospace; 275.74 - font-size: 90%; 275.75 - margin-left: 2em 275.76 -} 275.77 - 275.78 -div.dtd-fragment { 275.79 - background-color: #dddddd; 275.80 - margin-left: 0; 275.81 -} 275.82 -.dtd-fragment { 275.83 - background-color: #dddddd; 275.84 - margin-left: 0; 275.85 -} 275.86 -.idl-code { 275.87 - margin: 0; 275.88 - font-family: monospace; 275.89 - border: 1px solid black; 275.90 - white-space: pre; 275.91 - color: black; 275.92 - background-color: #dfdfdf; 275.93 -} 275.94 - 275.95 -.adef { 275.96 - font-family: monospace; 275.97 - font-weight: bold; 275.98 -} 275.99 - 275.100 - 275.101 -address { 275.102 - text-align: right; 275.103 - font-style: italic; 275.104 -} 275.105 - 275.106 -var { 275.107 - font-style: normal; 275.108 -} 275.109 -img { 275.110 - border: 0; 275.111 -} 275.112 -.toc { 275.113 - text-indent: 0; 275.114 -} 275.115 -.toc2 { 275.116 - text-indent: 2em; 275.117 -} 275.118 -.toc3 { 275.119 - text-indent: 4em; 275.120 -} 275.121 -p.toc-line { 275.122 - margin-top: 1em; 275.123 - margin-bottom: 1em; 275.124 - text-indent: 0; 275.125 -} 275.126 - 275.127 -/* it should be 'inherit', but netscape inserts a random color :-( */ 275.128 -a.noxref:link, a.noxref:visited {color: black; /*color: inherit*/} 275.129 -div.example a:link, div.example a:visited {color: maroon; /*color: inherit*/} 275.130 -div.deprecated-html-example a:link, 275.131 -div.deprecated-html-example a:visited {color: red; /*color: inherit*/} 275.132 -.note a:link, .note a:visited {color: green; /*color: inherit*/} 275.133 - 275.134 -a.propdef-title { 275.135 - background: yellow; 275.136 -} 275.137 - 275.138 -a.descdef-title { 275.139 - color: yellow; 275.140 - background: green 275.141 -} 275.142 - 275.143 -/* table {margin-left: 1em} */ 275.144 -div.propdef {margin: 1.2em 0} 275.145 - 275.146 -.example { 275.147 - padding: 0; 275.148 - background: white; 275.149 -} 275.150 - 275.151 -.exampleheader { 275.152 - margin: 0; 275.153 - background: #dda; 275.154 - border-bottom: 1px solid #666; 275.155 - border-right: 1px solid #666; 275.156 - border-top: 1px solid #aaa; 275.157 - border-left: 1px solid #aaa; 275.158 - padding: 0.5em 1em; 275.159 -} 275.160 - 275.161 -.examplesource { 275.162 - padding: 0; 275.163 - margin: 0; 275.164 - background: #ffc; 275.165 - border-bottom: 1px solid #996; 275.166 - border-right: 1px solid #996; 275.167 - border-top: 1px solid #bb8; 275.168 - border-left: 1px solid #bb8; 275.169 -} 275.170 - 275.171 -.examplesource pre { 275.172 - background: none; 275.173 - color: #633; 275.174 - margin: 0 1em; 275.175 - padding: 0.5em 0 0 0; 275.176 -} 275.177 - 275.178 -.exampleimage { 275.179 - text-align: center; 275.180 - padding: 1em; 275.181 - border-bottom: 1px solid #996; 275.182 - border-right: 1px solid #996; 275.183 - border-top: 1px solid #bb8; 275.184 - border-left: 1px solid #bb8; 275.185 -} 275.186 - 275.187 -.schema { 275.188 - padding: 0; 275.189 - background: white; 275.190 - width: 100%; 275.191 -} 275.192 - 275.193 -.schemaheader { 275.194 - margin: 0; 275.195 - background: #ccc; 275.196 - border-bottom: 1px solid #666; 275.197 - border-right: 1px solid #666; 275.198 - border-top: 1px solid #aaa; 275.199 - border-left: 1px solid #aaa; 275.200 - padding: 0.5em 1em; 275.201 -} 275.202 - 275.203 -.schemasource { 275.204 - padding: 0; 275.205 - margin: 0; 275.206 - background: #ddd; 275.207 - border-bottom: 1px solid #666; 275.208 - border-right: 1px solid #666; 275.209 - border-top: 1px solid #aaa; 275.210 - border-left: 1px solid #aaa; 275.211 -} 275.212 - 275.213 -.schemasource pre { 275.214 - background: none; 275.215 - color: #030; 275.216 - margin: 0 1em; 275.217 - padding: 0.5em 0 0 0; 275.218 -} 275.219 - 275.220 -pre.example { color: maroon } 275.221 -pre.illegal-example { color: red } 275.222 -div.illegal-example { color: red } 275.223 -div.illegal-example p { color: black } 275.224 - 275.225 - 275.226 -div.html-example { color: maroon } 275.227 -pre.html-example { color: maroon } 275.228 -pre.illegal-html-example { color: red } 275.229 -div.illegal-html-example { color: red } 275.230 -div.illegal-html-example p { color: black } 275.231 -pre.deprecated-html-example { color: red } 275.232 -div.deprecated-html-example { color: red } 275.233 -div.deprecated-html-example p { color: black } 275.234 - 275.235 -div.xml-example { color: maroon } 275.236 -pre.xml-example { color: maroon } 275.237 -pre.illegal-xml-example { color: red } 275.238 -div.illegal-xml-example { color: red } 275.239 -div.illegal-xml-example p { color: black } 275.240 - 275.241 -div.dtd-example { color: maroon } 275.242 -pre.dtd-example { color: maroon } 275.243 -pre.illegal-dtd-example { color: red } 275.244 -div.illegal-dtd-example { color: red } 275.245 -div.illegal-dtd-example p { color: black } 275.246 - 275.247 -.note { 275.248 - font-weight: bold; 275.249 - margin-top: 1em; 275.250 - margin-bottom: 1em; 275.251 - margin-left: 1em; 275.252 - margin-right: 1em; 275.253 - background: #6f9 none repeat scroll 0%; 275.254 - color: black; 275.255 -} 275.256 - 275.257 -.requirement { 275.258 - margin-top: 1em; 275.259 - margin-bottom: 1em; 275.260 - margin-left: 1em; 275.261 - margin-right: 1em; 275.262 - background: #fad none repeat scroll 0%; 275.263 - color: black; 275.264 -} 275.265 - 275.266 -.normref { 275.267 - color: red; 275.268 -} 275.269 - 275.270 -.informref { 275.271 - color: green; 275.272 -} 275.273 - 275.274 -div.propdef th { 275.275 - text-align: right; 275.276 -} 275.277 - 275.278 -div.descdef th { 275.279 - text-align: right; 275.280 -} 275.281 - 275.282 -ul.toc, ol.toc {list-style: none} 275.283 -div.toc ul ul, div.toc ol ol {margin-left: 0} 275.284 -div.toc ul ul ul, div.toc ol ol ol {margin-left: 1em} 275.285 -div.toc ul ul ul ul, div.toc ol ol ol ol {margin-left: 0} 275.286 -li.tocline1 {font-weight: bold} 275.287 -li.tocline2 {font-weight: normal} 275.288 -li.tocline4 {font-style: italic} 275.289 -/* div.subtoc ul, div.subtoc ol {list-style: none} */ 275.290 -/* the border in the following rule crashes nn4 on fonts.html :-( 275.291 -div.subtoc {padding: 1em; border: solid black thin; margin: 1em 0; 275.292 - background: #ddd} 275.293 -*/ 275.294 -ul.index {list-style: none} 275.295 - 275.296 -s, del {text-decoration: line-through; color: red} 275.297 -u, ins {text-decoration: underline; background: #bfa} 275.298 - 275.299 -div.figure { 275.300 - text-align: center; 275.301 - /*border: solid thin; 275.302 - width: 100%;*/ 275.303 - margin: 2.5em 0 275.304 -} 275.305 -p.caption, caption { 275.306 - text-align: center; 275.307 - font-style: italic; 275.308 - font-weight: bold; 275.309 - font-size: 90%; 275.310 - color: #088; 275.311 - margin: 1.5em 25% 0 25%; 275.312 -} 275.313 -div.toc, ul.index, dt { 275.314 - text-align: left 275.315 -} 275.316 -sup { 275.317 - vertical-align: super; 275.318 - font-size: 80% 275.319 -} 275.320 -.code-fragment { 275.321 - color: #a52a2a; 275.322 - font-weight: bold; 275.323 - font-size: 90% 275.324 -} 275.325 -.element-name { 275.326 - color: #a52a2a; 275.327 - font-weight: bold; 275.328 - font-size: 90% 275.329 -} 275.330 -.attr-name { 275.331 - color: #2a2aa5; 275.332 - font-weight: bold; 275.333 - font-size: 90% 275.334 -} 275.335 -.prop-name { 275.336 - color: black; 275.337 - font-weight: bold; 275.338 - font-size: 90% 275.339 -} 275.340 -.attr-value, .prop-value { 275.341 - font-weight: bold; 275.342 - font-size: 90% 275.343 -} 275.344 -/* 275.345 -.svg-term { 275.346 - color: red; 275.347 - font-weight: bold 275.348 -} 275.349 -*/ 275.350 -.svg-termdefine { 275.351 - font-weight: bold 275.352 -} 275.353 -.example-ref { 275.354 - color: green; 275.355 -} 275.356 -.anim-target { 275.357 - font-style: italic 275.358 -} 275.359 -.dominterfacename { 275.360 - font-weight: bold 275.361 -} 275.362 -.dom-attr-name { 275.363 - color: black; 275.364 - background-color: #ffffd2; 275.365 -} 275.366 -.dom-attr-type, .dom-attr-value { 275.367 - color: black; 275.368 - font-weight: bold; 275.369 -} 275.370 -.dom-method-name { 275.371 - color: black; 275.372 - background-color: #d9e6f8; 275.373 -} 275.374 -.dom-parameter-name { 275.375 - margin-top: 1%; 275.376 - background-color: #fee6f8; 275.377 - color: black; 275.378 -} 275.379 -.math-variable { 275.380 - font-family:times,serif 275.381 -} 275.382 -.color-keyword-value { 275.383 - color: #a52a2a; 275.384 -} 275.385 -.view-as-svg { 275.386 - font-style:italic 275.387 -} 275.388 -.table-heading-1 { 275.389 - font-style:italic; 275.390 - text-align:center 275.391 -} 275.392 -.pathdatatable { 275.393 - background: #dddddd 275.394 -} 275.395 -.useruleapplied { 275.396 - font-style:normal; 275.397 - font-weight:bold; 275.398 - color:blue 275.399 -} 275.400 -.useruleignored { 275.401 - font-style:italic; 275.402 - font-weight:bold; 275.403 - color:#050; 275.404 -} 275.405 - 275.406 -.editor { text-decoration: underline; font-size: 85% } 275.407 -.editor-intro { color: red; font-weight: bold } 275.408 -.editor-rec { color: red; font-weight: bold } 275.409 -.designgoals { list-style-type: upper-alpha } 275.410 -.reqt-level0 { list-style-type: decimal; font-weight: bold } 275.411 -.reqt-level1 { list-style-type: lower-alpha; font-weight: normal } 275.412 -.reqt-level2 { list-style-type: lower-roman; font-weight: normal } 275.413 - 275.414 -.b4nomfix { color: #a52a2a; text-decoration: line-through } 275.415 -.afnomfix { color: red; } 275.416 - 275.417 -div.note,p.note { 275.418 - border: 2px dotted #3c6; 275.419 - padding: 0.5em; 275.420 -} 275.421 - 275.422 -.specissue { 275.423 - border-style: solid; 275.424 - border-color: black; 275.425 - border-width: 1px 1px 1px 4px; 275.426 - padding: 0.5em; background: rgb(220, 20, 60) none repeat scroll 0%; 275.427 -} 275.428 - 275.429 -.svgt12 { 275.430 - background: rgb(153, 223, 255) none repeat scroll 0%; 275.431 - color: black; 275.432 -} 275.433 - 275.434 -a[href="http://www.w3.org/TR/SVG10/"] { background: red; } 275.435 -a[href="http://www.w3.org/TR/SVG11/"] { background: yellow; } 275.436 -a[href="http://www.w3.org/SVGMobile12/"] { background: green; } 275.437 - 275.438 -.new { 275.439 - border-style: solid; 275.440 - border-color: green; 275.441 - border-width: 0px 0px 0px 4px; 275.442 - padding-left: 20px; 275.443 - margin-left: -20px; 275.444 -} 275.445 - 275.446 -.changed { 275.447 - border-style: solid; 275.448 - border-color: blue; 275.449 - border-width: 0px 0px 0px 4px; 275.450 - padding-left: 20px; 275.451 - margin-left: -20px; 275.452 -} 275.453 - 275.454 -div.note-editor 275.455 -{ 275.456 - display:none; 275.457 -}
276.1 --- a/master/style/svgspec.css Thu Feb 24 10:19:12 2011 +0000 276.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 276.3 @@ -1,105 +0,0 @@ 276.4 -.term { 276.5 - FONT-WEIGHT: bold; COLOR: #aa3333; BACKGROUND-COLOR: white 276.6 -} 276.7 -PRE { 276.8 - FONT-SIZE: 90%; MARGIN-LEFT: 2em; COLOR: #a52a2a; FONT-FAMILY: monospace; BACKGROUND-COLOR: white 276.9 -} 276.10 -PRE.schema { 276.11 - BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddddff; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: maroon; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace 276.12 -} 276.13 -PRE.example { 276.14 - BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddffdd; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: #a52a2a; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace 276.15 -} 276.16 -.dtd-fragment { 276.17 - BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN-LEFT: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #dddddd 276.18 -} 276.19 -.idl-code { 276.20 - BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace; WHITE-SPACE: pre; BACKGROUND-COLOR: #dfdfdf 276.21 -} 276.22 -.adef { 276.23 - FONT-WEIGHT: bold; FONT-FAMILY: monospace 276.24 -} 276.25 -IMG { 276.26 - BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px 276.27 -} 276.28 -.toc { 276.29 - TEXT-INDENT: 0px 276.30 -} 276.31 -.toc2 { 276.32 - TEXT-INDENT: 2em 276.33 -} 276.34 -.toc3 { 276.35 - TEXT-INDENT: 4em 276.36 -} 276.37 -P.toc-line { 276.38 - MARGIN-TOP: 1em; MARGIN-BOTTOM: 1em; TEXT-INDENT: 0px 276.39 -} 276.40 -.example { 276.41 - COLOR: maroon; BACKGROUND-COLOR: white 276.42 -} 276.43 -.pseudocode { 276.44 - BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; COLOR: #990000; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #ccccff 276.45 -} 276.46 -.algorithm OL { 276.47 - LIST-STYLE-TYPE: decimal 276.48 -} 276.49 -.algorithm OL LI { 276.50 - MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 276.51 -} 276.52 -.algorithm OL LI OL { 276.53 - LIST-STYLE-TYPE: lower-alpha 276.54 -} 276.55 -.algorithm OL LI OL LI { 276.56 - MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 276.57 -} 276.58 -.algorithm OL LI OL LI OL { 276.59 - LIST-STYLE-TYPE: lower-roman 276.60 -} 276.61 -.algorithm OL LI OL LI OL LI { 276.62 - MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 276.63 -} 276.64 -.note { 276.65 - BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.3em; FONT-WEIGHT: bold; BACKGROUND: #aaffaa; PADDING-BOTTOM: 0.3em; MARGIN: 1em; BORDER-LEFT: black 1px solid; COLOR: black; PADDING-TOP: 0.3em; BORDER-BOTTOM: black 1px solid 276.66 -} 276.67 -P.caption { 276.68 - FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center 276.69 -} 276.70 -CAPTION { 276.71 - FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center 276.72 -} 276.73 -.element { 276.74 - FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #a52a2a; BACKGROUND-COLOR: white 276.75 -} 276.76 -.type { 276.77 - FONT-WEIGHT: bold; FONT-SIZE: 90% 276.78 -} 276.79 -.attribute { 276.80 - FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #2a2aa5; BACKGROUND-COLOR: white 276.81 -} 276.82 -.property { 276.83 - FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: black; BACKGROUND-COLOR: white 276.84 -} 276.85 -.attribute-value { 276.86 - FONT-WEIGHT: bold; FONT-SIZE: 90% 276.87 -} 276.88 -.property-value { 276.89 - FONT-WEIGHT: bold; FONT-SIZE: 90% 276.90 -} 276.91 -.interface { 276.92 - FONT-WEIGHT: bold 276.93 -} 276.94 -.dom-attribute { 276.95 - COLOR: black; BACKGROUND-COLOR: #ffffd2 276.96 -} 276.97 -.dom-attribute-type { 276.98 - FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white 276.99 -} 276.100 -.dom-attribute-value { 276.101 - FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white 276.102 -} 276.103 -.dom-method { 276.104 - COLOR: black; BACKGROUND-COLOR: #d9e6f8 276.105 -} 276.106 -.dom-parameter { 276.107 - COLOR: black; BACKGROUND-COLOR: #fee6f8 276.108 -}
277.1 --- a/master/svgfilters.idd Thu Feb 24 10:19:12 2011 +0000 277.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 277.3 @@ -1,30 +0,0 @@ 277.4 -[svg] 277.5 -[svg::SVGSVGElement::createSVGRect] 277.6 -Creates a new <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a> object. This object can be used to modify the value of traits which are compatible with the <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a> 277.7 - type using the <a href="#svg__TraitAccess_setRectTrait"><code>setRectTrait</code></a> method. The initial values for <a href="#svg__SVGRect_x"><code>x</code></a>, <a href="#svg__SVGRect_y"><code>y</code></a>, <a href="#svg__SVGRect_width"><code>width</code></a>, <a href="#svg__SVGRect_height"><code>height</code></a> of this new <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a> are zero. 277.8 - 277.9 - <dl> 277.10 - <dt><span class="dom-parameters">No Parameters</span></dt> 277.11 - </dl> 277.12 - 277.13 - 277.14 - <dl> 277.15 - <dt><span class="dom-returnvalue">Return value</span></dt> 277.16 - <dd> 277.17 - <table summary="method return value" border="0"> 277.18 - 277.19 - <tbody><tr> 277.20 - <td valign="top"><span class="dom-returnvalue-type"><a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a></span></td> 277.21 - <td> 277.22 - </td> 277.23 - <td>The created <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a>.</td> 277.24 - </tr> 277.25 - </tbody></table> 277.26 - </dd> 277.27 - 277.28 - </dl> 277.29 - 277.30 - 277.31 - <dl> 277.32 - <dt><span class="dom-parameters">No Exceptions</span></dt> 277.33 - </dl>
278.1 --- a/master/svgfilters.idl Thu Feb 24 10:19:12 2011 +0000 278.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 278.3 @@ -1,1262 +0,0 @@ 278.4 -// // File: svg.idl 278.5 -// #ifndef _SVG_IDL_ 278.6 -// #define _SVG_IDL_ 278.7 -// 278.8 -// 278.9 -// // For access to DOM2 core 278.10 -// #include "dom.idl" 278.11 -// 278.12 -// // For access to DOM2 events 278.13 -// #include "events.idl" 278.14 -// 278.15 -// // For access to those parts from DOM2 CSS OM used by SVG DOM. 278.16 -// #include "css.idl" 278.17 -// 278.18 -// // For access to those parts from DOM2 Views OM used by SVG DOM. 278.19 -// #include "views.idl" 278.20 -// 278.21 -// // For access to the SMIL OM used by SVG DOM. 278.22 -// #include "smil.idl" 278.23 -// 278.24 -// #pragma prefix "dom.w3c.org" 278.25 -// #pragma javaPackage "org.w3c.dom" 278.26 - 278.27 -module dom { 278.28 - exception DOMException { }; 278.29 - interface Element { }; 278.30 - interface Document { }; 278.31 - interface NodeList { }; 278.32 -}; 278.33 - 278.34 -module svg 278.35 -{ 278.36 - typedef dom::DOMException DOMException; 278.37 - typedef dom::Element Element; 278.38 - typedef dom::Document Document; 278.39 - typedef dom::NodeList NodeList; 278.40 - 278.41 - /** 278.42 - * The ImageData interface corresponds to pixel data that can be used as input to the SVGFilterElement interface. 278.43 - */ 278.44 - interface ImageData { 278.45 - /** 278.46 - * The width of the bitmap that the ImageData represents. 278.47 - */ 278.48 - readonly attribute long width; 278.49 - 278.50 - /** 278.51 - * The height of the bitmap that the ImageData represents. 278.52 - */ 278.53 - readonly attribute long height; 278.54 - 278.55 - /** 278.56 - * An array of pixel values that is the bitmap. This array must 278.57 - * always be in the form of width×height×4 integer values. The 278.58 - * pixel data is in left-to-right order, starting from the top-left 278.59 - * corner, and going row by row downwards. Every pixel is 278.60 - * represented by four integer values, red, green, blue and alpha, 278.61 - * in that order. The range of each color component is 0..255. The 278.62 - * intent is that this is compatible with the HTML5 [<a href="#ref-html5">HTML5</a>] 278.63 - * canvas interfaces, in particular see 278.64 - * <a href="http://www.w3.org/TR/html5/the-canvas.html#imagedata">ImageData</a>. 278.65 - */ 278.66 - readonly attribute sequence<octet> data; 278.67 - }; 278.68 - 278.69 - /** 278.70 - * The <a>SVGFilterElement</a> interface corresponds to the <a>'filter element'</a> 278.71 - * element. 278.72 - */ 278.73 - interface SVGFilterElement : 278.74 - SVGElement, 278.75 - SVGURIReference, 278.76 - SVGLangSpace, 278.77 - SVGExternalResourcesRequired, 278.78 - SVGStylable, 278.79 - SVGUnitTypes { 278.80 - 278.81 - /** 278.82 - * Corresponds to attribute <a>'filterUnits'</a> on the given <a>'filter element'</a> 278.83 - * element. Takes one of the constants defined in <a>SVGUnitTypes</a>. 278.84 - */ 278.85 - readonly attribute SVGAnimatedEnumeration filterUnits; 278.86 - 278.87 - /** 278.88 - * Corresponds to attribute <a>'primitiveUnits'</a> on the given <a>'filter element'</a> 278.89 - * element. Takes one of the constants defined in <a>SVGUnitTypes</a>. 278.90 - */ 278.91 - readonly attribute SVGAnimatedEnumeration primitiveUnits; 278.92 - 278.93 - /** 278.94 - * Corresponds to attribute <a>'x'</a> on the given <a>'filter element'</a> element. 278.95 - */ 278.96 - readonly attribute SVGAnimatedLength x; 278.97 - 278.98 - /** 278.99 - * Corresponds to attribute <a>'y'</a> on the given <a>'filter element'</a> element. 278.100 - */ 278.101 - readonly attribute SVGAnimatedLength y; 278.102 - 278.103 - /** 278.104 - * Corresponds to attribute <a>'width'</a> on the given <a>'filter element'</a> element. 278.105 - */ 278.106 - readonly attribute SVGAnimatedLength width; 278.107 - 278.108 - /** 278.109 - * Corresponds to attribute <a>'height'</a> on the given <a>'filter element'</a> element. 278.110 - */ 278.111 - readonly attribute SVGAnimatedLength height; 278.112 - 278.113 - /** 278.114 - * Corresponds to attribute <a>'filterRes'</a> on the given <a>'filter element'</a> 278.115 - * element. Contains the X component of attribute <a>'filterRes'</a>. 278.116 - */ 278.117 - readonly attribute SVGAnimatedInteger filterResX; 278.118 - 278.119 - /** 278.120 - * Corresponds to attribute <a>'filterRes'</a> on the given <a>'filter element'</a> 278.121 - * element. Contains the Y component (possibly computed automatically) of 278.122 - * attribute <a>'filterRes'</a>. 278.123 - */ 278.124 - readonly attribute SVGAnimatedInteger filterResY; 278.125 - 278.126 - /** 278.127 - * Sets the values for attribute <a>'filterRes'</a>. 278.128 - * 278.129 - * @param filterResX The X component of attribute <a>'filterRes'</a>. 278.130 - * @param filterResY The Y component of attribute <a>'filterRes'</a>. 278.131 - * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt 278.132 - * to change the value of a readonly attribute. 278.133 - */ 278.134 - void setFilterRes(in unsigned long filterResX, in unsigned long filterResY) raises(DOMException); 278.135 - 278.136 - /** 278.137 - * Applies the filter to the given ImageData object and returns the result. 278.138 - * 278.139 - * @param source The image to apply the filter to. 278.140 - * @return The result of the filter, see <a>ImageData</a> for how to construct this. 278.141 - */ 278.142 - ImageData apply(in ImageData source); 278.143 - }; 278.144 - 278.145 - /** 278.146 - * This interface defines the set of DOM attributes that are common across 278.147 - * the filter primitive interfaces. 278.148 - */ 278.149 - interface SVGFilterPrimitiveStandardAttributes : SVGStylable { 278.150 - 278.151 - /** 278.152 - * Corresponds to attribute <a>'x'</a> on the given element. 278.153 - */ 278.154 - readonly attribute SVGAnimatedLength x; 278.155 - 278.156 - /** 278.157 - * Corresponds to attribute <a>'y'</a> on the given element. 278.158 - */ 278.159 - readonly attribute SVGAnimatedLength y; 278.160 - 278.161 - /** 278.162 - * Corresponds to attribute <a>'width'</a> on the given element. 278.163 - */ 278.164 - readonly attribute SVGAnimatedLength width; 278.165 - 278.166 - /** 278.167 - * Corresponds to attribute <a>'height'</a> on the given element. 278.168 - */ 278.169 - readonly attribute SVGAnimatedLength height; 278.170 - 278.171 - /** 278.172 - * Corresponds to attribute <a>'result'</a> on the given element. 278.173 - */ 278.174 - readonly attribute SVGAnimatedString result; 278.175 - }; 278.176 - 278.177 - /** 278.178 - * The <a>SVGFEBlendElement</a> interface corresponds to the <a>'feBlend'</a> 278.179 - * element. 278.180 - */ 278.181 - interface SVGFEBlendElement : 278.182 - SVGElement, 278.183 - SVGFilterPrimitiveStandardAttributes { 278.184 - 278.185 - /** 278.186 - * The type is not one of predefined types. It is invalid to attempt to 278.187 - * define a new value of this type or to attempt to switch an existing 278.188 - * value to this type. 278.189 - * 278.190 - * @defgroup Blend Mode Types 278.191 - */ 278.192 - const unsigned short SVG_FEBLEND_MODE_UNKNOWN = 0; 278.193 - 278.194 - /** 278.195 - * Corresponds to value <span class="attr-value">'normal'</span>. 278.196 - * 278.197 - * @defgroup Blend Mode Types 278.198 - */ 278.199 - const unsigned short SVG_FEBLEND_MODE_NORMAL = 1; 278.200 - 278.201 - /** 278.202 - * Corresponds to value <span class="attr-value">'multiply'</span>. 278.203 - * 278.204 - * @defgroup Blend Mode Types 278.205 - */ 278.206 - const unsigned short SVG_FEBLEND_MODE_MULTIPLY = 2; 278.207 - 278.208 - /** 278.209 - * Corresponds to value <span class="attr-value">'screen'</span>. 278.210 - * 278.211 - * @defgroup Blend Mode Types 278.212 - */ 278.213 - const unsigned short SVG_FEBLEND_MODE_SCREEN = 3; 278.214 - 278.215 - /** 278.216 - * Corresponds to value <span class="attr-value">'darken'</span>. 278.217 - * 278.218 - * @defgroup Blend Mode Types 278.219 - */ 278.220 - const unsigned short SVG_FEBLEND_MODE_DARKEN = 4; 278.221 - 278.222 - /** 278.223 - * Corresponds to value <span class="attr-value">'lighten'</span>. 278.224 - * 278.225 - * @defgroup Blend Mode Types 278.226 - */ 278.227 - const unsigned short SVG_FEBLEND_MODE_LIGHTEN = 5; 278.228 - 278.229 - /** 278.230 - * Corresponds to attribute <a>'in'</a> on the given <a>'feBlend'</a> 278.231 - * element. 278.232 - */ 278.233 - readonly attribute SVGAnimatedString in1; 278.234 - 278.235 - /** 278.236 - * Corresponds to attribute <a>'in2'</a> on the given <a>'feBlend'</a> 278.237 - * element. 278.238 - */ 278.239 - readonly attribute SVGAnimatedString in2; 278.240 - 278.241 - /** 278.242 - * Corresponds to attribute <a>'mode'</a> on the given <a>'feBlend'</a> 278.243 - * element. Takes one of the SVG_FEBLEND_MODE_* constants defined on 278.244 - * this interface. 278.245 - */ 278.246 - readonly attribute SVGAnimatedEnumeration mode; 278.247 - }; 278.248 - 278.249 - /** 278.250 - * The <a>SVGFEColorMatrixElement</a> interface corresponds to the 278.251 - * <a>'feColorMatrix'</a> element. 278.252 - */ 278.253 - interface SVGFEColorMatrixElement : 278.254 - SVGElement, 278.255 - SVGFilterPrimitiveStandardAttributes { 278.256 - 278.257 - /** 278.258 - * The type is not one of predefined types. It is invalid to attempt to 278.259 - * define a new value of this type or to attempt to switch an existing 278.260 - * value to this type. 278.261 - * 278.262 - * @defgroup Color Matrix Types 278.263 - */ 278.264 - const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0; 278.265 - 278.266 - /** 278.267 - * Corresponds to value <span class="attr-value">'matrix'</span>. 278.268 - * 278.269 - * @defgroup Color Matrix Types 278.270 - */ 278.271 - const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX = 1; 278.272 - 278.273 - /** 278.274 - * Corresponds to value <span class="attr-value">'saturate'</span>. 278.275 - * 278.276 - * @defgroup Color Matrix Types 278.277 - */ 278.278 - const unsigned short SVG_FECOLORMATRIX_TYPE_SATURATE = 2; 278.279 - 278.280 - /** 278.281 - * Corresponds to value <span class="attr-value">'hueRotate'</span>. 278.282 - * 278.283 - * @defgroup Color Matrix Types 278.284 - */ 278.285 - const unsigned short SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3; 278.286 - 278.287 - /** 278.288 - * Corresponds to value <span class="attr-value">'luminanceToAlpha'</span>. 278.289 - * 278.290 - * @defgroup Color Matrix Types 278.291 - */ 278.292 - const unsigned short SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4; 278.293 - 278.294 - /** 278.295 - * Corresponds to attribute <a>'in'</a> on the given <a>'feColorMatrix'</a> 278.296 - * element. 278.297 - */ 278.298 - readonly attribute SVGAnimatedString in1; 278.299 - 278.300 - /** 278.301 - * Corresponds to attribute <a>'type'</a> on the given <a>'feColorMatrix'</a> 278.302 - * element. Takes one of the SVG_FECOLORMATRIX_TYPE_* constants defined 278.303 - * on this interface. 278.304 - */ 278.305 - readonly attribute SVGAnimatedEnumeration type; 278.306 - 278.307 - /** 278.308 - * Corresponds to attribute <a>'values'</a> on the given <a>'feColorMatrix'</a> 278.309 - * element. 278.310 - */ 278.311 - readonly attribute SVGAnimatedNumberList values; 278.312 - }; 278.313 - 278.314 - /** 278.315 - * The <a>SVGFEComponentTransferElement</a> interface corresponds to the 278.316 - * <a>'feComponentTransfer'</a> element. 278.317 - */ 278.318 - interface SVGFEComponentTransferElement : 278.319 - SVGElement, 278.320 - SVGFilterPrimitiveStandardAttributes { 278.321 - 278.322 - /** 278.323 - * Corresponds to attribute <a>'in'</a> on the given <a>'feComponentTransfer'</a> 278.324 - * element. 278.325 - */ 278.326 - readonly attribute SVGAnimatedString in1; 278.327 - }; 278.328 - 278.329 - /** 278.330 - * This interface defines a base interface used by the component transfer 278.331 - * function interfaces. 278.332 - */ 278.333 - interface SVGComponentTransferFunctionElement : SVGElement { 278.334 - 278.335 - /** 278.336 - * The type is not one of predefined types. It is invalid to attempt to 278.337 - * define a new value of this type or to attempt to switch an existing 278.338 - * value to this type. 278.339 - * 278.340 - * @defgroup Component Transfer Types 278.341 - */ 278.342 - const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0; 278.343 - 278.344 - /** 278.345 - * Corresponds to value <span class="attr-value">'identity'</span>. 278.346 - * 278.347 - * @defgroup Component Transfer Types 278.348 - */ 278.349 - const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1; 278.350 - 278.351 - /** 278.352 - * Corresponds to value <span class="attr-value">'table'</span>. 278.353 - * 278.354 - * @defgroup Component Transfer Types 278.355 - */ 278.356 - const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2; 278.357 - 278.358 - /** 278.359 - * Corresponds to value <span class="attr-value">'discrete'</span>. 278.360 - * 278.361 - * @defgroup Component Transfer Types 278.362 - */ 278.363 - const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3; 278.364 - 278.365 - /** 278.366 - * Corresponds to value <span class="attr-value">'linear'</span>. 278.367 - * 278.368 - * @defgroup Component Transfer Types 278.369 - */ 278.370 - const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4; 278.371 - 278.372 - /** 278.373 - * Corresponds to value <span class="attr-value">'gamma'</span>. 278.374 - * 278.375 - * @defgroup Component Transfer Types 278.376 - */ 278.377 - const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5; 278.378 - 278.379 - /** 278.380 - * Corresponds to attribute <a>'type'</a> on the given 278.381 - * element. Takes one of the SVG_FECOMPONENTTRANSFER_TYPE_* constants defined 278.382 - * on this interface. 278.383 - */ 278.384 - readonly attribute SVGAnimatedEnumeration type; 278.385 - 278.386 - /** 278.387 - * Corresponds to attribute <a>'tableValues'</a> on the given element. 278.388 - */ 278.389 - readonly attribute SVGAnimatedNumberList tableValues; 278.390 - 278.391 - /** 278.392 - * Corresponds to attribute <a>'slope'</a> on the given element. 278.393 - */ 278.394 - readonly attribute SVGAnimatedNumber slope; 278.395 - 278.396 - /** 278.397 - * Corresponds to attribute <a>'intercept'</a> on the given element. 278.398 - */ 278.399 - readonly attribute SVGAnimatedNumber intercept; 278.400 - 278.401 - /** 278.402 - * Corresponds to attribute <a>'amplitude'</a> on the given element. 278.403 - */ 278.404 - readonly attribute SVGAnimatedNumber amplitude; 278.405 - 278.406 - /** 278.407 - * Corresponds to attribute <a>'exponent'</a> on the given element. 278.408 - */ 278.409 - readonly attribute SVGAnimatedNumber exponent; 278.410 - 278.411 - /** 278.412 - * Corresponds to attribute <a>'offset'</a> on the given element. 278.413 - */ 278.414 - readonly attribute SVGAnimatedNumber offset; 278.415 - }; 278.416 - 278.417 - /** 278.418 - * The <a>SVGFEFuncRElement</a> interface corresponds to the <a>'feFuncR'</a> 278.419 - * element. 278.420 - */ 278.421 - interface SVGFEFuncRElement : SVGComponentTransferFunctionElement {}; 278.422 - 278.423 - /** 278.424 - * The <a>SVGFEFuncRElement</a> interface corresponds to the <a>'feFuncG'</a> 278.425 - * element. 278.426 - */ 278.427 - interface SVGFEFuncGElement : SVGComponentTransferFunctionElement {}; 278.428 - 278.429 - /** 278.430 - * The <a>SVGFEFuncBElement</a> interface corresponds to the <a>'feFuncB'</a> 278.431 - * element. 278.432 - */ 278.433 - interface SVGFEFuncBElement : SVGComponentTransferFunctionElement {}; 278.434 - 278.435 - /** 278.436 - * The <a>SVGFEFuncAElement</a> interface corresponds to the <a>'feFuncA'</a> 278.437 - * element. 278.438 - */ 278.439 - interface SVGFEFuncAElement : SVGComponentTransferFunctionElement {}; 278.440 - 278.441 - /** 278.442 - * The <a>SVGFECompositeElement</a> interface corresponds to the 278.443 - * <a>'feComposite'</a> element. 278.444 - */ 278.445 - interface SVGFECompositeElement : 278.446 - SVGElement, 278.447 - SVGFilterPrimitiveStandardAttributes { 278.448 - 278.449 - /** 278.450 - * The type is not one of predefined types. It is invalid to attempt to 278.451 - * define a new value of this type or to attempt to switch an existing 278.452 - * value to this type. 278.453 - * 278.454 - * @defgroup Composite Operators 278.455 - */ 278.456 - const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0; 278.457 - 278.458 - /** 278.459 - * Corresponds to value <span class="attr-value">'over'</span>. 278.460 - * 278.461 - * @defgroup Composite Operators 278.462 - */ 278.463 - const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER = 1; 278.464 - 278.465 - /** 278.466 - * Corresponds to value <span class="attr-value">'in'</span>. 278.467 - * 278.468 - * @defgroup Composite Operators 278.469 - */ 278.470 - const unsigned short SVG_FECOMPOSITE_OPERATOR_IN = 2; 278.471 - 278.472 - /** 278.473 - * Corresponds to value <span class="attr-value">'out'</span>. 278.474 - * 278.475 - * @defgroup Composite Operators 278.476 - */ 278.477 - const unsigned short SVG_FECOMPOSITE_OPERATOR_OUT = 3; 278.478 - 278.479 - /** 278.480 - * Corresponds to value <span class="attr-value">'atop'</span>. 278.481 - * 278.482 - * @defgroup Composite Operators 278.483 - */ 278.484 - const unsigned short SVG_FECOMPOSITE_OPERATOR_ATOP = 4; 278.485 - 278.486 - /** 278.487 - * Corresponds to value <span class="attr-value">'xor'</span>. 278.488 - * 278.489 - * @defgroup Composite Operators 278.490 - */ 278.491 - const unsigned short SVG_FECOMPOSITE_OPERATOR_XOR = 5; 278.492 - 278.493 - /** 278.494 - * Corresponds to value <span class="attr-value">'arithmetic'</span>. 278.495 - * 278.496 - * @defgroup Composite Operators 278.497 - */ 278.498 - const unsigned short SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6; 278.499 - 278.500 - /** 278.501 - * Corresponds to attribute <a>'in'</a> on the given <a>'feComposite'</a> 278.502 - * element. 278.503 - */ 278.504 - readonly attribute SVGAnimatedString in1; 278.505 - 278.506 - /** 278.507 - * Corresponds to attribute <a>'in2'</a> on the given <a>'feComposite'</a> 278.508 - * element. 278.509 - */ 278.510 - readonly attribute SVGAnimatedString in2; 278.511 - 278.512 - /** 278.513 - * Corresponds to attribute <a>'operator'</a> on the given <a>'feComposite'</a> 278.514 - * element. Takes one of the SVG_FECOMPOSITE_OPERATOR_* constants defined 278.515 - * on this interface. 278.516 - */ 278.517 - readonly attribute SVGAnimatedEnumeration operator; 278.518 - 278.519 - /** 278.520 - * Corresponds to attribute <a>'k1'</a> on the given <a>'feComposite'</a> 278.521 - * element. 278.522 - */ 278.523 - readonly attribute SVGAnimatedNumber k1; 278.524 - 278.525 - /** 278.526 - * Corresponds to attribute <a>'k2'</a> on the given <a>'feComposite'</a> 278.527 - * element. 278.528 - */ 278.529 - readonly attribute SVGAnimatedNumber k2; 278.530 - 278.531 - /** 278.532 - * Corresponds to attribute <a>'k3'</a> on the given <a>'feComposite'</a> 278.533 - * element. 278.534 - */ 278.535 - readonly attribute SVGAnimatedNumber k3; 278.536 - 278.537 - /** 278.538 - * Corresponds to attribute <a>'k4'</a> on the given <a>'feComposite'</a> 278.539 - * element. 278.540 - */ 278.541 - readonly attribute SVGAnimatedNumber k4; 278.542 - }; 278.543 - 278.544 - /** 278.545 - * The <a>SVGFEConvolveMatrixElement</a> interface corresponds to the 278.546 - * <a>'feConvolveMatrix'</a> element. 278.547 - */ 278.548 - interface SVGFEConvolveMatrixElement : 278.549 - SVGElement, 278.550 - SVGFilterPrimitiveStandardAttributes { 278.551 - 278.552 - /** 278.553 - * The type is not one of predefined types. It is invalid to attempt to 278.554 - * define a new value of this type or to attempt to switch an existing 278.555 - * value to this type. 278.556 - * 278.557 - * @defgroup Edge Mode Values 278.558 - */ 278.559 - const unsigned short SVG_EDGEMODE_UNKNOWN = 0; 278.560 - 278.561 - /** 278.562 - * Corresponds to value <span class="attr-value">'duplicate'</span>. 278.563 - * 278.564 - * @defgroup Edge Mode Values 278.565 - */ 278.566 - const unsigned short SVG_EDGEMODE_DUPLICATE = 1; 278.567 - 278.568 - /** 278.569 - * Corresponds to value <span class="attr-value">'wrap'</span>. 278.570 - * 278.571 - * @defgroup Edge Mode Values 278.572 - */ 278.573 - const unsigned short SVG_EDGEMODE_WRAP = 2; 278.574 - 278.575 - /** 278.576 - * Corresponds to value <span class="attr-value">'none'</span>. 278.577 - * 278.578 - * @defgroup Edge Mode Values 278.579 - */ 278.580 - const unsigned short SVG_EDGEMODE_NONE = 3; 278.581 - 278.582 - /** 278.583 - * Corresponds to attribute <a>'in'</a> on the given 278.584 - * <a>'feConvolveMatrix'</a> element. 278.585 - */ 278.586 - readonly attribute SVGAnimatedString in1; 278.587 - 278.588 - /** 278.589 - * Corresponds to attribute <a>'order'</a> on the given 278.590 - * <a>'feConvolveMatrix'</a> element. 278.591 - */ 278.592 - readonly attribute SVGAnimatedInteger orderX; 278.593 - 278.594 - /** 278.595 - * Corresponds to attribute <a>'order'</a> on the given 278.596 - * <a>'feConvolveMatrix'</a> element. 278.597 - */ 278.598 - readonly attribute SVGAnimatedInteger orderY; 278.599 - 278.600 - /** 278.601 - * Corresponds to attribute <a>'kernelMatrix'</a> on the given 278.602 - * <a>'feConvolveMatrix'</a> element. 278.603 - */ 278.604 - readonly attribute SVGAnimatedNumberList kernelMatrix; 278.605 - 278.606 - /** 278.607 - * Corresponds to attribute <a>'divisor'</a> on the given 278.608 - * <a>'feConvolveMatrix'</a> element. 278.609 - */ 278.610 - readonly attribute SVGAnimatedNumber divisor; 278.611 - 278.612 - /** 278.613 - * Corresponds to attribute <a>'bias'</a> on the given 278.614 - * <a>'feConvolveMatrix'</a> element. 278.615 - */ 278.616 - readonly attribute SVGAnimatedNumber bias; 278.617 - 278.618 - /** 278.619 - * Corresponds to attribute <a>'targetX'</a> on the given 278.620 - * <a>'feConvolveMatrix'</a> element. 278.621 - */ 278.622 - readonly attribute SVGAnimatedInteger targetX; 278.623 - 278.624 - /** 278.625 - * Corresponds to attribute <a>'targetY'</a> on the given 278.626 - * <a>'feConvolveMatrix'</a> element. 278.627 - */ 278.628 - readonly attribute SVGAnimatedInteger targetY; 278.629 - 278.630 - /** 278.631 - * Corresponds to attribute <a>'edgeMode'</a> on the given 278.632 - * <a>'feConvolveMatrix'</a> element. Takes one of the SVG_EDGEMODE_* 278.633 - * constants defined on this interface. 278.634 - */ 278.635 - readonly attribute SVGAnimatedEnumeration edgeMode; 278.636 - 278.637 - /** 278.638 - * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 278.639 - * <a>'feConvolveMatrix'</a> element. 278.640 - */ 278.641 - readonly attribute SVGAnimatedNumber kernelUnitLengthX; 278.642 - 278.643 - /** 278.644 - * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 278.645 - * <a>'feConvolveMatrix'</a> element. 278.646 - */ 278.647 - readonly attribute SVGAnimatedNumber kernelUnitLengthY; 278.648 - 278.649 - /** 278.650 - * Corresponds to attribute <a>'preserveAlpha'</a> on the given 278.651 - * <a>'feConvolveMatrix'</a> element. 278.652 - */ 278.653 - readonly attribute SVGAnimatedBoolean preserveAlpha; 278.654 - }; 278.655 - 278.656 - /** 278.657 - * The <a>SVGFEDiffuseLightingElement</a> interface corresponds to the 278.658 - * <a>'feDiffuseLighting'</a> element. 278.659 - */ 278.660 - interface SVGFEDiffuseLightingElement : 278.661 - SVGElement, 278.662 - SVGFilterPrimitiveStandardAttributes { 278.663 - 278.664 - /** 278.665 - * Corresponds to attribute <a>'in'</a> on the given <a>'feDiffuseLighting'</a> 278.666 - * element. 278.667 - */ 278.668 - readonly attribute SVGAnimatedString in1; 278.669 - 278.670 - /** 278.671 - * Corresponds to attribute <a>'surfaceScale'</a> on the given 278.672 - * <a>'feDiffuseLighting'</a> element. 278.673 - */ 278.674 - readonly attribute SVGAnimatedNumber surfaceScale; 278.675 - 278.676 - /** 278.677 - * Corresponds to attribute <a>'diffuseConstant'</a> on the given 278.678 - * <a>'feDiffuseLighting'</a> element. 278.679 - */ 278.680 - readonly attribute SVGAnimatedNumber diffuseConstant; 278.681 - 278.682 - /** 278.683 - * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 278.684 - * <a>'feDiffuseLighting'</a> element. 278.685 - */ 278.686 - readonly attribute SVGAnimatedNumber kernelUnitLengthX; 278.687 - 278.688 - /** 278.689 - * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 278.690 - * <a>'feDiffuseLighting'</a> element. 278.691 - */ 278.692 - readonly attribute SVGAnimatedNumber kernelUnitLengthY; 278.693 - }; 278.694 - 278.695 - /** 278.696 - * The <a>SVGFEDistantLightElement</a> interface corresponds to the 278.697 - * <a>'feDistantLight'</a> element. 278.698 - */ 278.699 - interface SVGFEDistantLightElement : SVGElement { 278.700 - 278.701 - /** 278.702 - * Corresponds to attribute <a>'azimuth'</a> on the given 278.703 - * <a>'feDistantLight'</a> element. 278.704 - */ 278.705 - readonly attribute SVGAnimatedNumber azimuth; 278.706 - 278.707 - /** 278.708 - * Corresponds to attribute <a>'elevation'</a> on the given 278.709 - * <a>'feDistantLight'</a> element. 278.710 - */ 278.711 - readonly attribute SVGAnimatedNumber elevation; 278.712 - }; 278.713 - 278.714 - /** 278.715 - * The <a>SVGFEPointLightElement</a> interface corresponds to the 278.716 - * <a>'fePointLight'</a> element. 278.717 - */ 278.718 - interface SVGFEPointLightElement : SVGElement { 278.719 - 278.720 - /** 278.721 - * Corresponds to attribute <a>'x'</a> on the given 278.722 - * <a>'fePointLight'</a> element. 278.723 - */ 278.724 - readonly attribute SVGAnimatedNumber x; 278.725 - 278.726 - /** 278.727 - * Corresponds to attribute <a>'y'</a> on the given 278.728 - * <a>'fePointLight'</a> element. 278.729 - */ 278.730 - readonly attribute SVGAnimatedNumber y; 278.731 - 278.732 - /** 278.733 - * Corresponds to attribute <a>'z'</a> on the given 278.734 - * <a>'fePointLight'</a> element. 278.735 - */ 278.736 - readonly attribute SVGAnimatedNumber z; 278.737 - }; 278.738 - 278.739 - /** 278.740 - * The <a>SVGFESpotLightElement</a> interface corresponds to the 278.741 - * <a>'feSpotLight'</a> element. 278.742 - */ 278.743 - interface SVGFESpotLightElement : SVGElement { 278.744 - 278.745 - /** 278.746 - * Corresponds to attribute <a>'x'</a> on the given 278.747 - * <a>'feSpotLight'</a> element. 278.748 - */ 278.749 - readonly attribute SVGAnimatedNumber x; 278.750 - 278.751 - /** 278.752 - * Corresponds to attribute <a>'y'</a> on the given 278.753 - * <a>'feSpotLight'</a> element. 278.754 - */ 278.755 - readonly attribute SVGAnimatedNumber y; 278.756 - 278.757 - /** 278.758 - * Corresponds to attribute <a>'z'</a> on the given 278.759 - * <a>'feSpotLight'</a> element. 278.760 - */ 278.761 - readonly attribute SVGAnimatedNumber z; 278.762 - 278.763 - /** 278.764 - * Corresponds to attribute <a>'pointsAtX'</a> on the given 278.765 - * <a>'feSpotLight'</a> element. 278.766 - */ 278.767 - readonly attribute SVGAnimatedNumber pointsAtX; 278.768 - 278.769 - /** 278.770 - * Corresponds to attribute <a>'pointsAtY'</a> on the given 278.771 - * <a>'feSpotLight'</a> element. 278.772 - */ 278.773 - readonly attribute SVGAnimatedNumber pointsAtY; 278.774 - 278.775 - /** 278.776 - * Corresponds to attribute <a>'pointsAtZ'</a> on the given 278.777 - * <a>'feSpotLight'</a> element. 278.778 - */ 278.779 - readonly attribute SVGAnimatedNumber pointsAtZ; 278.780 - 278.781 - /** 278.782 - * Corresponds to attribute <a>'specularExponent'</a> on the given 278.783 - * <a>'feSpotLight'</a> element. 278.784 - */ 278.785 - readonly attribute SVGAnimatedNumber specularExponent; 278.786 - 278.787 - /** 278.788 - * Corresponds to attribute <a>'limitingConeAngle'</a> on the given 278.789 - * <a>'feSpotLight'</a> element. 278.790 - */ 278.791 - readonly attribute SVGAnimatedNumber limitingConeAngle; 278.792 - }; 278.793 - 278.794 - /** 278.795 - * The <a>SVGFEDisplacementMapElement</a> interface corresponds to the 278.796 - * <a>'feDisplacementMap'</a> element. 278.797 - */ 278.798 - interface SVGFEDisplacementMapElement : 278.799 - SVGElement, 278.800 - SVGFilterPrimitiveStandardAttributes { 278.801 - 278.802 - /** 278.803 - * The type is not one of predefined types. It is invalid to attempt to 278.804 - * define a new value of this type or to attempt to switch an existing 278.805 - * value to this type. 278.806 - * 278.807 - * @defgroup Channel Selectors 278.808 - */ 278.809 - const unsigned short SVG_CHANNEL_UNKNOWN = 0; 278.810 - 278.811 - /** 278.812 - * Corresponds to value <span class="attr-value">'R'</span>. 278.813 - * 278.814 - * @defgroup Channel Selectors 278.815 - */ 278.816 - const unsigned short SVG_CHANNEL_R = 1; 278.817 - 278.818 - /** 278.819 - * Corresponds to value <span class="attr-value">'G'</span>. 278.820 - * 278.821 - * @defgroup Channel Selectors 278.822 - */ 278.823 - const unsigned short SVG_CHANNEL_G = 2; 278.824 - 278.825 - /** 278.826 - * Corresponds to value <span class="attr-value">'B'</span>. 278.827 - * 278.828 - * @defgroup Channel Selectors 278.829 - */ 278.830 - const unsigned short SVG_CHANNEL_B = 3; 278.831 - 278.832 - /** 278.833 - * Corresponds to value <span class="attr-value">'A'</span>. 278.834 - * 278.835 - * @defgroup Channel Selectors 278.836 - */ 278.837 - const unsigned short SVG_CHANNEL_A = 4; 278.838 - 278.839 - /** 278.840 - * Corresponds to attribute <a>'in'</a> on the given <a>'feDisplacementMap'</a> 278.841 - * element. 278.842 - */ 278.843 - readonly attribute SVGAnimatedString in1; 278.844 - 278.845 - /** 278.846 - * Corresponds to attribute <a>'in2'</a> on the given <a>'feDisplacementMap'</a> 278.847 - * element. 278.848 - */ 278.849 - readonly attribute SVGAnimatedString in2; 278.850 - 278.851 - /** 278.852 - * Corresponds to attribute <a>'scale'</a> on the given <a>'feDisplacementMap'</a> 278.853 - * element. 278.854 - */ 278.855 - readonly attribute SVGAnimatedNumber scale; 278.856 - 278.857 - /** 278.858 - * Corresponds to attribute <a>'xChannelSelector'</a> on the given 278.859 - * <a>'feDisplacementMap'</a> element. Takes one of the SVG_CHANNEL_* 278.860 - * constants defined on this interface. 278.861 - */ 278.862 - readonly attribute SVGAnimatedEnumeration xChannelSelector; 278.863 - 278.864 - /** 278.865 - * Corresponds to attribute <a>'yChannelSelector'</a> on the given 278.866 - * <a>'feDisplacementMap'</a> element. Takes one of the SVG_CHANNEL_* 278.867 - * constants defined on this interface. 278.868 - */ 278.869 - readonly attribute SVGAnimatedEnumeration yChannelSelector; 278.870 - }; 278.871 - 278.872 - /** 278.873 - * The <a>SVGFEFloodElement</a> interface corresponds to the 278.874 - * <a>'feFlood'</a> element. 278.875 - */ 278.876 - interface SVGFEFloodElement : 278.877 - SVGElement, 278.878 - SVGFilterPrimitiveStandardAttributes { 278.879 - }; 278.880 - 278.881 - /** 278.882 - * The <a>SVGFEGaussianBlurElement</a> interface corresponds to the 278.883 - * <a>'feGaussianBlur'</a> element. 278.884 - */ 278.885 - interface SVGFEGaussianBlurElement : 278.886 - SVGElement, 278.887 - SVGFilterPrimitiveStandardAttributes { 278.888 - 278.889 - /** 278.890 - * Corresponds to attribute <a>'in'</a> on the given 278.891 - * <a>'feGaussianBlur'</a> element. 278.892 - */ 278.893 - readonly attribute SVGAnimatedString in1; 278.894 - 278.895 - /** 278.896 - * Corresponds to attribute <a>'stdDeviation'</a> on the given 278.897 - * <a>'feGaussianBlur'</a> element. Contains the X component 278.898 - * of attribute <a>'stdDeviation'</a>. 278.899 - */ 278.900 - readonly attribute SVGAnimatedNumber stdDeviationX; 278.901 - 278.902 - /** 278.903 - * Corresponds to attribute <a>'stdDeviation'</a> on the given 278.904 - * <a>'feGaussianBlur'</a> element. Contains the Y component 278.905 - * (possibly computed automatically) of attribute <a>'stdDeviation'</a>. 278.906 - */ 278.907 - readonly attribute SVGAnimatedNumber stdDeviationY; 278.908 - 278.909 - /** 278.910 - * Sets the values for attribute <a>'stdDeviation'</a>. 278.911 - * 278.912 - * @param stdDeviationX The X component of attribute <a>'stdDeviation'</a>. 278.913 - * @param stdDeviationY The Y component of attribute <a>'stdDeviation'</a>. 278.914 - * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt 278.915 - * to change the value of a readonly attribute. 278.916 - */ 278.917 - void setStdDeviation(in float stdDeviationX, in float stdDeviationY) raises(DOMException); 278.918 - }; 278.919 - 278.920 - /** 278.921 - * The <a>SVGFEUnsharpMaskElement</a> interface corresponds to the 278.922 - * <a>'feUnsharpMask'</a> element. 278.923 - */ 278.924 - interface SVGFEUnsharpMaskElement : 278.925 - SVGElement, 278.926 - SVGFilterPrimitiveStandardAttributes { 278.927 - 278.928 - /** 278.929 - * Corresponds to attribute <a>'in'</a> on the given 278.930 - * <a>'feUnsharpMask'</a> element. 278.931 - */ 278.932 - readonly attribute SVGAnimatedString in1; 278.933 - 278.934 - /** 278.935 - * Corresponds to attribute <a>'stdDeviation'</a> on the given 278.936 - * <a>'feUnsharpMask'</a> element. Contains the X component 278.937 - * of attribute <a>'feUnsharpMask'</a>. 278.938 - */ 278.939 - readonly attribute SVGAnimatedNumber stdDeviationX; 278.940 - 278.941 - /** 278.942 - * Corresponds to attribute <a>'stdDeviation'</a> on the given 278.943 - * <a>'feUnsharpMask'</a> element. Contains the Y component 278.944 - * (possibly computed automatically) of attribute <a>'stdDeviation'</a>. 278.945 - */ 278.946 - readonly attribute SVGAnimatedNumber stdDeviationY; 278.947 - 278.948 - /** 278.949 - * Corresponds to attribute <a>'amount'</a> on the given 278.950 - * <a>'feUnsharpMask'</a> element. 278.951 - */ 278.952 - readonly attribute SVGAnimatedNumber amount; 278.953 - 278.954 - /** 278.955 - * Corresponds to attribute <a>'threshold'</a> on the given 278.956 - * <a>'feUnsharpMask'</a> element. 278.957 - */ 278.958 - readonly attribute SVGAnimatedNumber threshold; 278.959 - 278.960 - /** 278.961 - * Sets the values for attribute <a>'stdDeviation'</a>. 278.962 - * 278.963 - * @param stdDeviationX The X component of attribute <a>'stdDeviation'</a>. 278.964 - * @param stdDeviationY The Y component of attribute <a>'stdDeviation'</a>. 278.965 - * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt 278.966 - * to change the value of a readonly attribute. 278.967 - */ 278.968 - void setStdDeviation(in float stdDeviationX, in float stdDeviationY) raises(DOMException); 278.969 - }; 278.970 - 278.971 - /** 278.972 - * The <a>SVGFEImageElement</a> interface corresponds to the 278.973 - * <a>'feImage'</a> element. 278.974 - */ 278.975 - interface SVGFEImageElement : 278.976 - SVGElement, 278.977 - SVGURIReference, 278.978 - SVGLangSpace, 278.979 - SVGExternalResourcesRequired, 278.980 - SVGFilterPrimitiveStandardAttributes { 278.981 - 278.982 - /** 278.983 - * Corresponds to attribute <a>'preserveAspectRatio'</a> on the given 278.984 - * <a>'feImage'</a> element. 278.985 - */ 278.986 - readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio; 278.987 - }; 278.988 - 278.989 - /** 278.990 - * The <a>SVGFEMergeElement</a> interface corresponds to the 278.991 - * <a>'feMerge'</a> element. 278.992 - */ 278.993 - interface SVGFEMergeElement : 278.994 - SVGElement, 278.995 - SVGFilterPrimitiveStandardAttributes {}; 278.996 - 278.997 - /** 278.998 - * The <a>SVGFEMergeNodeElement</a> interface corresponds to the 278.999 - * <a>'feMergeNode'</a> element. 278.1000 - */ 278.1001 - interface SVGFEMergeNodeElement : SVGElement { 278.1002 - 278.1003 - /** 278.1004 - * Corresponds to attribute <a>'in'</a> on the given <a>'feMergeNode'</a> 278.1005 - * element. 278.1006 - */ 278.1007 - readonly attribute SVGAnimatedString in1; 278.1008 - }; 278.1009 - 278.1010 - /** 278.1011 - * The <a>SVGFEMorphologyElement</a> interface corresponds to the 278.1012 - * <a>'feMorphology'</a> element. 278.1013 - */ 278.1014 - interface SVGFEMorphologyElement : 278.1015 - SVGElement, 278.1016 - SVGFilterPrimitiveStandardAttributes { 278.1017 - 278.1018 - /** 278.1019 - * The type is not one of predefined types. It is invalid to attempt to 278.1020 - * define a new value of this type or to attempt to switch an existing 278.1021 - * value to this type. 278.1022 - * 278.1023 - * @defgroup Morphology Operators 278.1024 - */ 278.1025 - const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0; 278.1026 - 278.1027 - /** 278.1028 - * Corresponds to value <span class="attr-value">'erode'</span>. 278.1029 - * 278.1030 - * @defgroup Morphology Operators 278.1031 - */ 278.1032 - const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE = 1; 278.1033 - 278.1034 - /** 278.1035 - * Corresponds to value <span class="attr-value">'dilate'</span>. 278.1036 - * 278.1037 - * @defgroup Morphology Operators 278.1038 - */ 278.1039 - const unsigned short SVG_MORPHOLOGY_OPERATOR_DILATE = 2; 278.1040 - 278.1041 - /** 278.1042 - * Corresponds to attribute <a>'in'</a> on the given <a>'feMorphology'</a> 278.1043 - * element. 278.1044 - */ 278.1045 - readonly attribute SVGAnimatedString in1; 278.1046 - 278.1047 - /** 278.1048 - * Corresponds to attribute <a>'operator'</a> on the given <a>'feMorphology'</a> 278.1049 - * element. Takes one of the SVG_MORPHOLOGY_OPERATOR_* constants 278.1050 - * defined on this interface. 278.1051 - */ 278.1052 - readonly attribute SVGAnimatedEnumeration operator; 278.1053 - 278.1054 - /** 278.1055 - * Corresponds to attribute <a>'radius'</a> on the given <a>'feMorphology'</a> 278.1056 - * element. 278.1057 - */ 278.1058 - readonly attribute SVGAnimatedNumber radiusX; 278.1059 - 278.1060 - /** 278.1061 - * Corresponds to attribute <a>'radius'</a> on the given <a>'feMorphology'</a> 278.1062 - * element. 278.1063 - */ 278.1064 - readonly attribute SVGAnimatedNumber radiusY; 278.1065 - }; 278.1066 - 278.1067 - /** 278.1068 - * The <a>SVGFEOffsetElement</a> interface corresponds to the 278.1069 - * <a>'feOffset'</a> element. 278.1070 - */ 278.1071 - interface SVGFEOffsetElement : 278.1072 - SVGElement, 278.1073 - SVGFilterPrimitiveStandardAttributes { 278.1074 - 278.1075 - /** 278.1076 - * Corresponds to attribute <a>'in'</a> on the given <a>'feOffset'</a> 278.1077 - * element. 278.1078 - */ 278.1079 - readonly attribute SVGAnimatedString in1; 278.1080 - 278.1081 - /** 278.1082 - * Corresponds to attribute <a>'dx'</a> on the given <a>'feOffset'</a> 278.1083 - * element. 278.1084 - */ 278.1085 - readonly attribute SVGAnimatedNumber dx; 278.1086 - 278.1087 - /** 278.1088 - * Corresponds to attribute <a>'dy'</a> on the given <a>'feOffset'</a> 278.1089 - * element. 278.1090 - */ 278.1091 - readonly attribute SVGAnimatedNumber dy; 278.1092 - }; 278.1093 - 278.1094 - /** 278.1095 - * The <a>SVGFESpecularLightingElement</a> interface corresponds to the 278.1096 - * <a>'feSpecularLighting'</a> element. 278.1097 - */ 278.1098 - interface SVGFESpecularLightingElement : 278.1099 - SVGElement, 278.1100 - SVGFilterPrimitiveStandardAttributes { 278.1101 - 278.1102 - /** 278.1103 - * Corresponds to attribute <a>'in'</a> on the given <a>'feSpecularLighting'</a> 278.1104 - * element. 278.1105 - */ 278.1106 - readonly attribute SVGAnimatedString in1; 278.1107 - 278.1108 - /** 278.1109 - * Corresponds to attribute <a>'surfaceScale'</a> on the given 278.1110 - * <a>'feSpecularLighting'</a> element. 278.1111 - */ 278.1112 - readonly attribute SVGAnimatedNumber surfaceScale; 278.1113 - 278.1114 - /** 278.1115 - * Corresponds to attribute <a>'specularConstant'</a> on the given 278.1116 - * <a>'feSpecularLighting'</a> element. 278.1117 - */ 278.1118 - readonly attribute SVGAnimatedNumber specularConstant; 278.1119 - 278.1120 - /** 278.1121 - * Corresponds to attribute <a>'specularExponent'</a> on the given 278.1122 - * <a>'feSpecularLighting'</a> element. 278.1123 - */ 278.1124 - readonly attribute SVGAnimatedNumber specularExponent; 278.1125 - 278.1126 - /** 278.1127 - * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 278.1128 - * <a>'feSpecularLighting'</a> element. 278.1129 - */ 278.1130 - readonly attribute SVGAnimatedNumber kernelUnitLengthX; 278.1131 - 278.1132 - /** 278.1133 - * Corresponds to attribute <a>'kernelUnitLength'</a> on the given 278.1134 - * <a>'feSpecularLighting'</a> element. 278.1135 - */ 278.1136 - readonly attribute SVGAnimatedNumber kernelUnitLengthY; 278.1137 - }; 278.1138 - 278.1139 - /** 278.1140 - * The <a>SVGFETileElement</a> interface corresponds to the 278.1141 - * <a>'feTile'</a> element. 278.1142 - */ 278.1143 - interface SVGFETileElement : 278.1144 - SVGElement, 278.1145 - SVGFilterPrimitiveStandardAttributes { 278.1146 - 278.1147 - /** 278.1148 - * Corresponds to attribute <a>'in'</a> on the given <a>'feTile'</a> 278.1149 - * element. 278.1150 - */ 278.1151 - readonly attribute SVGAnimatedString in1; 278.1152 - }; 278.1153 - 278.1154 - /** 278.1155 - * The <a>SVGFETurbulenceElement</a> interface corresponds to the 278.1156 - * <a>'feTurbulence'</a> element. 278.1157 - */ 278.1158 - interface SVGFETurbulenceElement : 278.1159 - SVGElement, 278.1160 - SVGFilterPrimitiveStandardAttributes { 278.1161 - 278.1162 - /** 278.1163 - * The type is not one of predefined types. It is invalid to attempt to 278.1164 - * define a new value of this type or to attempt to switch an existing 278.1165 - * value to this type. 278.1166 - * 278.1167 - * @defgroup Turbulence Types 278.1168 - */ 278.1169 - const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN = 0; 278.1170 - 278.1171 - /** 278.1172 - * Corresponds to value <span class="attr-value">'fractalNoise'</span>. 278.1173 - * 278.1174 - * @defgroup Turbulence Types 278.1175 - */ 278.1176 - const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1; 278.1177 - 278.1178 - /** 278.1179 - * Corresponds to value <span class="attr-value">'turbulence'</span>. 278.1180 - * 278.1181 - * @defgroup Turbulence Types 278.1182 - */ 278.1183 - const unsigned short SVG_TURBULENCE_TYPE_TURBULENCE = 2; 278.1184 - 278.1185 - /** 278.1186 - * The type is not one of predefined types. It is invalid to attempt to 278.1187 - * define a new value of this type or to attempt to switch an existing 278.1188 - * value to this type. 278.1189 - * 278.1190 - * @defgroup Stitch Options 278.1191 - */ 278.1192 - const unsigned short SVG_STITCHTYPE_UNKNOWN = 0; 278.1193 - 278.1194 - /** 278.1195 - * Corresponds to value <span class="attr-value">'stitch'</span>. 278.1196 - * 278.1197 - * @defgroup Stitch Options 278.1198 - */ 278.1199 - const unsigned short SVG_STITCHTYPE_STITCH = 1; 278.1200 - 278.1201 - /** 278.1202 - * Corresponds to value <span class="attr-value">'noStitch'</span>. 278.1203 - * 278.1204 - * @defgroup Stitch Options 278.1205 - */ 278.1206 - const unsigned short SVG_STITCHTYPE_NOSTITCH = 2; 278.1207 - 278.1208 - /** 278.1209 - * Corresponds to attribute <a>'baseFrequency'</a> on the given 278.1210 - * <a>'feTurbulence'</a> element. Contains the X component of the 278.1211 - * <a>'baseFrequency'</a> attribute. 278.1212 - */ 278.1213 - readonly attribute SVGAnimatedNumber baseFrequencyX; 278.1214 - 278.1215 - /** 278.1216 - * Corresponds to attribute <a>'baseFrequency'</a> on the given 278.1217 - * <a>'feTurbulence'</a> element. Contains the Y component of the 278.1218 - * (possibly computed automatically) <a>'baseFrequency'</a> attribute. 278.1219 - */ 278.1220 - readonly attribute SVGAnimatedNumber baseFrequencyY; 278.1221 - 278.1222 - /** 278.1223 - * Corresponds to attribute <a>'numOctaves'</a> on the given 278.1224 - * <a>'feTurbulence'</a> element. 278.1225 - */ 278.1226 - readonly attribute SVGAnimatedInteger numOctaves; 278.1227 - 278.1228 - /** 278.1229 - * Corresponds to attribute <a>'seed'</a> on the given 278.1230 - * <a>'feTurbulence'</a> element. 278.1231 - */ 278.1232 - readonly attribute SVGAnimatedNumber seed; 278.1233 - 278.1234 - /** 278.1235 - * Corresponds to attribute <a>'stitchTiles'</a> on the given 278.1236 - * <a>'feTurbulence'</a> element. Takes one of the SVG_STITCHTYPE_* 278.1237 - * constants defined on this interface. 278.1238 - */ 278.1239 - readonly attribute SVGAnimatedEnumeration stitchTiles; 278.1240 - 278.1241 - /** 278.1242 - * Corresponds to attribute <a>'type'</a> on the given 278.1243 - * <a>'feTurbulence'</a> element. Takes one of the SVG_TURBULENCE_TYPE_* 278.1244 - * constants defined on this interface. 278.1245 - */ 278.1246 - readonly attribute SVGAnimatedEnumeration type; 278.1247 - }; 278.1248 - 278.1249 - /** 278.1250 - * The <a>SVGFEDropShadowElement</a> interface corresponds to the 278.1251 - * <a>'feDropShadow'</a> element. 278.1252 - */ 278.1253 - interface SVGFEDropShadowElement : 278.1254 - SVGElement, 278.1255 - SVGFilterPrimitiveStandardAttributes { 278.1256 - 278.1257 - readonly attribute SVGAnimatedString in1; 278.1258 - readonly attribute SVGAnimatedNumber dx; 278.1259 - readonly attribute SVGAnimatedNumber dy; 278.1260 - readonly attribute SVGAnimatedNumber stdDeviationX; 278.1261 - readonly attribute SVGAnimatedNumber stdDeviationY; 278.1262 - }; 278.1263 -}; 278.1264 - 278.1265 -// #endif // _SVG_FILTERS_IDL_
279.1 --- a/master/xhtml1-transitional+edit.dtd Thu Feb 24 10:19:12 2011 +0000 279.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 279.3 @@ -1,1400 +0,0 @@ 279.4 -<!-- 279.5 - Extensible HTML version 1.0 Transitional plus edit DTD 279.6 - 279.7 - This is the same as HTML 4 Transitional except for 279.8 - changes due to the differences between XML and SGML. 279.9 - 279.10 - ** and except for adding funky xmlns:edit stuff ** 279.11 - ** and the inclusion of the entities from xhtml-lat1.ent ** 279.12 - 279.13 - Namespace = http://www.w3.org/1999/xhtml 279.14 - 279.15 - For further information, see: http://www.w3.org/TR/xhtml1 279.16 - 279.17 - Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio), 279.18 - All Rights Reserved. 279.19 - 279.20 - This DTD module is identified by the PUBLIC and SYSTEM identifiers: 279.21 - 279.22 - PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" 279.23 - SYSTEM "xhtml1-transitional+edit.dtd" 279.24 - 279.25 - $Revision$ 279.26 - $Date$ 279.27 - 279.28 ---> 279.29 - 279.30 -<!--================ Character mnemonic entities =========================--> 279.31 - 279.32 -<!ENTITY nbsp " "> <!-- no-break space = non-breaking space, 279.33 - U+00A0 ISOnum --> 279.34 -<!ENTITY iexcl "¡"> <!-- inverted exclamation mark, U+00A1 ISOnum --> 279.35 -<!ENTITY cent "¢"> <!-- cent sign, U+00A2 ISOnum --> 279.36 -<!ENTITY pound "£"> <!-- pound sign, U+00A3 ISOnum --> 279.37 -<!ENTITY curren "¤"> <!-- currency sign, U+00A4 ISOnum --> 279.38 -<!ENTITY yen "¥"> <!-- yen sign = yuan sign, U+00A5 ISOnum --> 279.39 -<!ENTITY brvbar "¦"> <!-- broken bar = broken vertical bar, 279.40 - U+00A6 ISOnum --> 279.41 -<!ENTITY sect "§"> <!-- section sign, U+00A7 ISOnum --> 279.42 -<!ENTITY uml "¨"> <!-- diaeresis = spacing diaeresis, 279.43 - U+00A8 ISOdia --> 279.44 -<!ENTITY copy "©"> <!-- copyright sign, U+00A9 ISOnum --> 279.45 -<!ENTITY ordf "ª"> <!-- feminine ordinal indicator, U+00AA ISOnum --> 279.46 -<!ENTITY laquo "«"> <!-- left-pointing double angle quotation mark 279.47 - = left pointing guillemet, U+00AB ISOnum --> 279.48 -<!ENTITY not "¬"> <!-- not sign = angled dash, 279.49 - U+00AC ISOnum --> 279.50 -<!ENTITY shy "­"> <!-- soft hyphen = discretionary hyphen, 279.51 - U+00AD ISOnum --> 279.52 -<!ENTITY reg "®"> <!-- registered sign = registered trade mark sign, 279.53 - U+00AE ISOnum --> 279.54 -<!ENTITY macr "¯"> <!-- macron = spacing macron = overline 279.55 - = APL overbar, U+00AF ISOdia --> 279.56 -<!ENTITY deg "°"> <!-- degree sign, U+00B0 ISOnum --> 279.57 -<!ENTITY plusmn "±"> <!-- plus-minus sign = plus-or-minus sign, 279.58 - U+00B1 ISOnum --> 279.59 -<!ENTITY sup2 "²"> <!-- superscript two = superscript digit two 279.60 - = squared, U+00B2 ISOnum --> 279.61 -<!ENTITY sup3 "³"> <!-- superscript three = superscript digit three 279.62 - = cubed, U+00B3 ISOnum --> 279.63 -<!ENTITY acute "´"> <!-- acute accent = spacing acute, 279.64 - U+00B4 ISOdia --> 279.65 -<!ENTITY micro "µ"> <!-- micro sign, U+00B5 ISOnum --> 279.66 -<!ENTITY para "¶"> <!-- pilcrow sign = paragraph sign, 279.67 - U+00B6 ISOnum --> 279.68 -<!ENTITY middot "·"> <!-- middle dot = Georgian comma 279.69 - = Greek middle dot, U+00B7 ISOnum --> 279.70 -<!ENTITY cedil "¸"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia --> 279.71 -<!ENTITY sup1 "¹"> <!-- superscript one = superscript digit one, 279.72 - U+00B9 ISOnum --> 279.73 -<!ENTITY ordm "º"> <!-- masculine ordinal indicator, 279.74 - U+00BA ISOnum --> 279.75 -<!ENTITY raquo "»"> <!-- right-pointing double angle quotation mark 279.76 - = right pointing guillemet, U+00BB ISOnum --> 279.77 -<!ENTITY frac14 "¼"> <!-- vulgar fraction one quarter 279.78 - = fraction one quarter, U+00BC ISOnum --> 279.79 -<!ENTITY frac12 "½"> <!-- vulgar fraction one half 279.80 - = fraction one half, U+00BD ISOnum --> 279.81 -<!ENTITY frac34 "¾"> <!-- vulgar fraction three quarters 279.82 - = fraction three quarters, U+00BE ISOnum --> 279.83 -<!ENTITY iquest "¿"> <!-- inverted question mark 279.84 - = turned question mark, U+00BF ISOnum --> 279.85 -<!ENTITY Agrave "À"> <!-- latin capital letter A with grave 279.86 - = latin capital letter A grave, 279.87 - U+00C0 ISOlat1 --> 279.88 -<!ENTITY Aacute "Á"> <!-- latin capital letter A with acute, 279.89 - U+00C1 ISOlat1 --> 279.90 -<!ENTITY Acirc "Â"> <!-- latin capital letter A with circumflex, 279.91 - U+00C2 ISOlat1 --> 279.92 -<!ENTITY Atilde "Ã"> <!-- latin capital letter A with tilde, 279.93 - U+00C3 ISOlat1 --> 279.94 -<!ENTITY Auml "Ä"> <!-- latin capital letter A with diaeresis, 279.95 - U+00C4 ISOlat1 --> 279.96 -<!ENTITY Aring "Å"> <!-- latin capital letter A with ring above 279.97 - = latin capital letter A ring, 279.98 - U+00C5 ISOlat1 --> 279.99 -<!ENTITY AElig "Æ"> <!-- latin capital letter AE 279.100 - = latin capital ligature AE, 279.101 - U+00C6 ISOlat1 --> 279.102 -<!ENTITY Ccedil "Ç"> <!-- latin capital letter C with cedilla, 279.103 - U+00C7 ISOlat1 --> 279.104 -<!ENTITY Egrave "È"> <!-- latin capital letter E with grave, 279.105 - U+00C8 ISOlat1 --> 279.106 -<!ENTITY Eacute "É"> <!-- latin capital letter E with acute, 279.107 - U+00C9 ISOlat1 --> 279.108 -<!ENTITY Ecirc "Ê"> <!-- latin capital letter E with circumflex, 279.109 - U+00CA ISOlat1 --> 279.110 -<!ENTITY Euml "Ë"> <!-- latin capital letter E with diaeresis, 279.111 - U+00CB ISOlat1 --> 279.112 -<!ENTITY Igrave "Ì"> <!-- latin capital letter I with grave, 279.113 - U+00CC ISOlat1 --> 279.114 -<!ENTITY Iacute "Í"> <!-- latin capital letter I with acute, 279.115 - U+00CD ISOlat1 --> 279.116 -<!ENTITY Icirc "Î"> <!-- latin capital letter I with circumflex, 279.117 - U+00CE ISOlat1 --> 279.118 -<!ENTITY Iuml "Ï"> <!-- latin capital letter I with diaeresis, 279.119 - U+00CF ISOlat1 --> 279.120 -<!ENTITY ETH "Ð"> <!-- latin capital letter ETH, U+00D0 ISOlat1 --> 279.121 -<!ENTITY Ntilde "Ñ"> <!-- latin capital letter N with tilde, 279.122 - U+00D1 ISOlat1 --> 279.123 -<!ENTITY Ograve "Ò"> <!-- latin capital letter O with grave, 279.124 - U+00D2 ISOlat1 --> 279.125 -<!ENTITY Oacute "Ó"> <!-- latin capital letter O with acute, 279.126 - U+00D3 ISOlat1 --> 279.127 -<!ENTITY Ocirc "Ô"> <!-- latin capital letter O with circumflex, 279.128 - U+00D4 ISOlat1 --> 279.129 -<!ENTITY Otilde "Õ"> <!-- latin capital letter O with tilde, 279.130 - U+00D5 ISOlat1 --> 279.131 -<!ENTITY Ouml "Ö"> <!-- latin capital letter O with diaeresis, 279.132 - U+00D6 ISOlat1 --> 279.133 -<!ENTITY times "×"> <!-- multiplication sign, U+00D7 ISOnum --> 279.134 -<!ENTITY Oslash "Ø"> <!-- latin capital letter O with stroke 279.135 - = latin capital letter O slash, 279.136 - U+00D8 ISOlat1 --> 279.137 -<!ENTITY Ugrave "Ù"> <!-- latin capital letter U with grave, 279.138 - U+00D9 ISOlat1 --> 279.139 -<!ENTITY Uacute "Ú"> <!-- latin capital letter U with acute, 279.140 - U+00DA ISOlat1 --> 279.141 -<!ENTITY Ucirc "Û"> <!-- latin capital letter U with circumflex, 279.142 - U+00DB ISOlat1 --> 279.143 -<!ENTITY Uuml "Ü"> <!-- latin capital letter U with diaeresis, 279.144 - U+00DC ISOlat1 --> 279.145 -<!ENTITY Yacute "Ý"> <!-- latin capital letter Y with acute, 279.146 - U+00DD ISOlat1 --> 279.147 -<!ENTITY THORN "Þ"> <!-- latin capital letter THORN, 279.148 - U+00DE ISOlat1 --> 279.149 -<!ENTITY szlig "ß"> <!-- latin small letter sharp s = ess-zed, 279.150 - U+00DF ISOlat1 --> 279.151 -<!ENTITY agrave "à"> <!-- latin small letter a with grave 279.152 - = latin small letter a grave, 279.153 - U+00E0 ISOlat1 --> 279.154 -<!ENTITY aacute "á"> <!-- latin small letter a with acute, 279.155 - U+00E1 ISOlat1 --> 279.156 -<!ENTITY acirc "â"> <!-- latin small letter a with circumflex, 279.157 - U+00E2 ISOlat1 --> 279.158 -<!ENTITY atilde "ã"> <!-- latin small letter a with tilde, 279.159 - U+00E3 ISOlat1 --> 279.160 -<!ENTITY auml "ä"> <!-- latin small letter a with diaeresis, 279.161 - U+00E4 ISOlat1 --> 279.162 -<!ENTITY aring "å"> <!-- latin small letter a with ring above 279.163 - = latin small letter a ring, 279.164 - U+00E5 ISOlat1 --> 279.165 -<!ENTITY aelig "æ"> <!-- latin small letter ae 279.166 - = latin small ligature ae, U+00E6 ISOlat1 --> 279.167 -<!ENTITY ccedil "ç"> <!-- latin small letter c with cedilla, 279.168 - U+00E7 ISOlat1 --> 279.169 -<!ENTITY egrave "è"> <!-- latin small letter e with grave, 279.170 - U+00E8 ISOlat1 --> 279.171 -<!ENTITY eacute "é"> <!-- latin small letter e with acute, 279.172 - U+00E9 ISOlat1 --> 279.173 -<!ENTITY ecirc "ê"> <!-- latin small letter e with circumflex, 279.174 - U+00EA ISOlat1 --> 279.175 -<!ENTITY euml "ë"> <!-- latin small letter e with diaeresis, 279.176 - U+00EB ISOlat1 --> 279.177 -<!ENTITY igrave "ì"> <!-- latin small letter i with grave, 279.178 - U+00EC ISOlat1 --> 279.179 -<!ENTITY iacute "í"> <!-- latin small letter i with acute, 279.180 - U+00ED ISOlat1 --> 279.181 -<!ENTITY icirc "î"> <!-- latin small letter i with circumflex, 279.182 - U+00EE ISOlat1 --> 279.183 -<!ENTITY iuml "ï"> <!-- latin small letter i with diaeresis, 279.184 - U+00EF ISOlat1 --> 279.185 -<!ENTITY eth "ð"> <!-- latin small letter eth, U+00F0 ISOlat1 --> 279.186 -<!ENTITY ntilde "ñ"> <!-- latin small letter n with tilde, 279.187 - U+00F1 ISOlat1 --> 279.188 -<!ENTITY ograve "ò"> <!-- latin small letter o with grave, 279.189 - U+00F2 ISOlat1 --> 279.190 -<!ENTITY oacute "ó"> <!-- latin small letter o with acute, 279.191 - U+00F3 ISOlat1 --> 279.192 -<!ENTITY ocirc "ô"> <!-- latin small letter o with circumflex, 279.193 - U+00F4 ISOlat1 --> 279.194 -<!ENTITY otilde "õ"> <!-- latin small letter o with tilde, 279.195 - U+00F5 ISOlat1 --> 279.196 -<!ENTITY ouml "ö"> <!-- latin small letter o with diaeresis, 279.197 - U+00F6 ISOlat1 --> 279.198 -<!ENTITY divide "÷"> <!-- division sign, U+00F7 ISOnum --> 279.199 -<!ENTITY oslash "ø"> <!-- latin small letter o with stroke, 279.200 - = latin small letter o slash, 279.201 - U+00F8 ISOlat1 --> 279.202 -<!ENTITY ugrave "ù"> <!-- latin small letter u with grave, 279.203 - U+00F9 ISOlat1 --> 279.204 -<!ENTITY uacute "ú"> <!-- latin small letter u with acute, 279.205 - U+00FA ISOlat1 --> 279.206 -<!ENTITY ucirc "û"> <!-- latin small letter u with circumflex, 279.207 - U+00FB ISOlat1 --> 279.208 -<!ENTITY uuml "ü"> <!-- latin small letter u with diaeresis, 279.209 - U+00FC ISOlat1 --> 279.210 -<!ENTITY yacute "ý"> <!-- latin small letter y with acute, 279.211 - U+00FD ISOlat1 --> 279.212 -<!ENTITY thorn "þ"> <!-- latin small letter thorn, 279.213 - U+00FE ISOlat1 --> 279.214 -<!ENTITY yuml "ÿ"> <!-- latin small letter y with diaeresis, 279.215 - U+00FF ISOlat1 --> 279.216 - 279.217 -<!--================== Imported Names ====================================--> 279.218 - 279.219 -<!ENTITY % ContentType "CDATA"> 279.220 - <!-- media type, as per [RFC2045] --> 279.221 - 279.222 -<!ENTITY % ContentTypes "CDATA"> 279.223 - <!-- comma-separated list of media types, as per [RFC2045] --> 279.224 - 279.225 -<!ENTITY % Charset "CDATA"> 279.226 - <!-- a character encoding, as per [RFC2045] --> 279.227 - 279.228 -<!ENTITY % Charsets "CDATA"> 279.229 - <!-- a space separated list of character encodings, as per [RFC2045] --> 279.230 - 279.231 -<!ENTITY % LanguageCode "NMTOKEN"> 279.232 - <!-- a language code, as per [RFC3066] --> 279.233 - 279.234 -<!ENTITY % Character "CDATA"> 279.235 - <!-- a single character, as per section 2.2 of [XML] --> 279.236 - 279.237 -<!ENTITY % Number "CDATA"> 279.238 - <!-- one or more digits --> 279.239 - 279.240 -<!ENTITY % LinkTypes "CDATA"> 279.241 - <!-- space-separated list of link types --> 279.242 - 279.243 -<!ENTITY % MediaDesc "CDATA"> 279.244 - <!-- single or comma-separated list of media descriptors --> 279.245 - 279.246 -<!ENTITY % URI "CDATA"> 279.247 - <!-- a Uniform Resource Identifier, see [RFC2396] --> 279.248 - 279.249 -<!ENTITY % UriList "CDATA"> 279.250 - <!-- a space separated list of Uniform Resource Identifiers --> 279.251 - 279.252 -<!ENTITY % Datetime "CDATA"> 279.253 - <!-- date and time information. ISO date format --> 279.254 - 279.255 -<!ENTITY % Script "CDATA"> 279.256 - <!-- script expression --> 279.257 - 279.258 -<!ENTITY % StyleSheet "CDATA"> 279.259 - <!-- style sheet data --> 279.260 - 279.261 -<!ENTITY % Text "CDATA"> 279.262 - <!-- used for titles etc. --> 279.263 - 279.264 -<!ENTITY % FrameTarget "NMTOKEN"> 279.265 - <!-- render in this frame --> 279.266 - 279.267 -<!ENTITY % Length "CDATA"> 279.268 - <!-- nn for pixels or nn% for percentage length --> 279.269 - 279.270 -<!ENTITY % MultiLength "CDATA"> 279.271 - <!-- pixel, percentage, or relative --> 279.272 - 279.273 -<!ENTITY % Pixels "CDATA"> 279.274 - <!-- integer representing length in pixels --> 279.275 - 279.276 -<!-- these are used for image maps --> 279.277 - 279.278 -<!ENTITY % Shape "(rect|circle|poly|default)"> 279.279 - 279.280 -<!ENTITY % Coords "CDATA"> 279.281 - <!-- comma separated list of lengths --> 279.282 - 279.283 -<!-- used for object, applet, img, input and iframe --> 279.284 -<!ENTITY % ImgAlign "(top|middle|bottom|left|right)"> 279.285 - 279.286 -<!-- a color using sRGB: #RRGGBB as Hex values --> 279.287 -<!ENTITY % Color "CDATA"> 279.288 - 279.289 -<!-- There are also 16 widely known color names with their sRGB values: 279.290 - 279.291 - Black = #000000 Green = #008000 279.292 - Silver = #C0C0C0 Lime = #00FF00 279.293 - Gray = #808080 Olive = #808000 279.294 - White = #FFFFFF Yellow = #FFFF00 279.295 - Maroon = #800000 Navy = #000080 279.296 - Red = #FF0000 Blue = #0000FF 279.297 - Purple = #800080 Teal = #008080 279.298 - Fuchsia= #FF00FF Aqua = #00FFFF 279.299 ---> 279.300 - 279.301 -<!--=================== Generic Attributes ===============================--> 279.302 - 279.303 -<!-- core attributes common to most elements 279.304 - id document-wide unique id 279.305 - class space separated list of classes 279.306 - style associated style info 279.307 - title advisory title/amplification 279.308 ---> 279.309 -<!ENTITY % coreattrs 279.310 - "id ID #IMPLIED 279.311 - class CDATA #IMPLIED 279.312 - style %StyleSheet; #IMPLIED 279.313 - title %Text; #IMPLIED" 279.314 - > 279.315 - 279.316 -<!-- internationalization attributes 279.317 - lang language code (backwards compatible) 279.318 - xml:lang language code (as per XML 1.0 spec) 279.319 - dir direction for weak/neutral text 279.320 ---> 279.321 -<!ENTITY % i18n 279.322 - "lang %LanguageCode; #IMPLIED 279.323 - xml:lang %LanguageCode; #IMPLIED 279.324 - dir (ltr|rtl) #IMPLIED" 279.325 - > 279.326 - 279.327 -<!-- attributes for common UI events 279.328 - onclick a pointer button was clicked 279.329 - ondblclick a pointer button was double clicked 279.330 - onmousedown a pointer button was pressed down 279.331 - onmouseup a pointer button was released 279.332 - onmousemove a pointer was moved onto the element 279.333 - onmouseout a pointer was moved away from the element 279.334 - onkeypress a key was pressed and released 279.335 - onkeydown a key was pressed down 279.336 - onkeyup a key was released 279.337 ---> 279.338 -<!ENTITY % events 279.339 - "onclick %Script; #IMPLIED 279.340 - ondblclick %Script; #IMPLIED 279.341 - onmousedown %Script; #IMPLIED 279.342 - onmouseup %Script; #IMPLIED 279.343 - onmouseover %Script; #IMPLIED 279.344 - onmousemove %Script; #IMPLIED 279.345 - onmouseout %Script; #IMPLIED 279.346 - onkeypress %Script; #IMPLIED 279.347 - onkeydown %Script; #IMPLIED 279.348 - onkeyup %Script; #IMPLIED" 279.349 - > 279.350 - 279.351 -<!-- attributes for elements that can get the focus 279.352 - accesskey accessibility key character 279.353 - tabindex position in tabbing order 279.354 - onfocus the element got the focus 279.355 - onblur the element lost the focus 279.356 ---> 279.357 -<!ENTITY % focus 279.358 - "accesskey %Character; #IMPLIED 279.359 - tabindex %Number; #IMPLIED 279.360 - onfocus %Script; #IMPLIED 279.361 - onblur %Script; #IMPLIED" 279.362 - > 279.363 - 279.364 -<!ENTITY % attrs "%coreattrs; %i18n; %events;"> 279.365 - 279.366 -<!-- text alignment for p, div, h1-h6. The default is 279.367 - align="left" for ltr headings, "right" for rtl --> 279.368 - 279.369 -<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED"> 279.370 - 279.371 -<!--=================== Text Elements ====================================--> 279.372 - 279.373 -<!ENTITY % editstuff 279.374 - "edit:example | edit:schema | edit:thisversion | edit:date | 279.375 - edit:previousversion | edit:latestversion | edit:toc | edit:copyright"> 279.376 - 279.377 -<!ENTITY % special.extra 279.378 - "object | applet | img | map | iframe"> 279.379 - 279.380 -<!ENTITY % special.basic 279.381 - "br | span | bdo"> 279.382 - 279.383 -<!ENTITY % special 279.384 - "%special.basic; | %special.extra;"> 279.385 - 279.386 -<!ENTITY % fontstyle.extra "big | small | font | basefont"> 279.387 - 279.388 -<!ENTITY % fontstyle.basic "tt | i | b | u 279.389 - | s | strike "> 279.390 - 279.391 -<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;"> 279.392 - 279.393 -<!ENTITY % phrase.extra "sub | sup"> 279.394 -<!ENTITY % phrase.basic "em | strong | dfn | code | q | 279.395 - samp | kbd | var | cite | abbr | acronym"> 279.396 - 279.397 -<!ENTITY % phrase "%phrase.basic; | %phrase.extra;"> 279.398 - 279.399 -<!ENTITY % inline.forms "input | select | textarea | label | button"> 279.400 - 279.401 -<!-- these can occur at block or inline level --> 279.402 -<!ENTITY % misc.inline "ins | del | script"> 279.403 - 279.404 -<!-- these can only occur at block level --> 279.405 -<!ENTITY % misc "noscript | %misc.inline;"> 279.406 - 279.407 -<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;"> 279.408 - 279.409 -<!-- %Inline; covers inline or "text-level" elements --> 279.410 -<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;| %editstuff;)*"> 279.411 - 279.412 -<!--================== Block level elements ==============================--> 279.413 - 279.414 -<!ENTITY % heading "h1|h2|h3|h4|h5|h6"> 279.415 -<!ENTITY % lists "ul | ol | dl | menu | dir"> 279.416 -<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes | %editstuff;"> 279.417 - 279.418 -<!ENTITY % block 279.419 - "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table"> 279.420 - 279.421 -<!-- %Flow; mixes block and inline and is used for list items etc. --> 279.422 -<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc; )*"> 279.423 - 279.424 -<!--================== Content models for exclusions =====================--> 279.425 - 279.426 -<!-- a elements use %Inline; excluding a --> 279.427 - 279.428 -<!ENTITY % a.content 279.429 - "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*"> 279.430 - 279.431 -<!-- pre uses %Inline excluding img, object, applet, big, small, 279.432 - font, or basefont --> 279.433 - 279.434 -<!ENTITY % pre.content 279.435 - "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; | 279.436 - %inline.forms; | %misc.inline;)*"> 279.437 - 279.438 -<!-- form uses %Flow; excluding form --> 279.439 - 279.440 -<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*"> 279.441 - 279.442 -<!-- button uses %Flow; but excludes a, form, form controls, iframe --> 279.443 - 279.444 -<!ENTITY % button.content 279.445 - "(#PCDATA | p | %heading; | div | %lists; | %blocktext; | 279.446 - table | br | span | bdo | object | applet | img | map | 279.447 - %fontstyle; | %phrase; | %misc;)*"> 279.448 - 279.449 -<!--================ Document Structure ==================================--> 279.450 - 279.451 -<!-- the namespace URI designates the document profile --> 279.452 - 279.453 -<!ELEMENT html (head, body)> 279.454 -<!ATTLIST html 279.455 - %i18n; 279.456 - id ID #IMPLIED 279.457 - xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml' 279.458 - xmlns:edit %URI; #FIXED 'http://xmlns.grorg.org/SVGT12NG/' 279.459 - > 279.460 - 279.461 -<!--================ Document Head =======================================--> 279.462 - 279.463 -<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*"> 279.464 - 279.465 -<!-- content model is %head.misc; combined with a single 279.466 - title and an optional base element in any order --> 279.467 - 279.468 -<!ELEMENT head (%head.misc;, 279.469 - ((title, %head.misc;, (base, %head.misc;)?) | 279.470 - (base, %head.misc;, (title, %head.misc;))))> 279.471 - 279.472 -<!ATTLIST head 279.473 - %i18n; 279.474 - id ID #IMPLIED 279.475 - profile %URI; #IMPLIED 279.476 - > 279.477 - 279.478 -<!-- The title element is not considered part of the flow of text. 279.479 - It should be displayed, for example as the page header or 279.480 - window title. Exactly one title is required per document. 279.481 - --> 279.482 -<!ELEMENT title (#PCDATA)> 279.483 -<!ATTLIST title 279.484 - %i18n; 279.485 - id ID #IMPLIED 279.486 - > 279.487 - 279.488 -<!-- document base URI --> 279.489 - 279.490 -<!ELEMENT base EMPTY> 279.491 -<!ATTLIST base 279.492 - id ID #IMPLIED 279.493 - href %URI; #IMPLIED 279.494 - target %FrameTarget; #IMPLIED 279.495 - > 279.496 - 279.497 -<!-- generic metainformation --> 279.498 -<!ELEMENT meta EMPTY> 279.499 -<!ATTLIST meta 279.500 - %i18n; 279.501 - id ID #IMPLIED 279.502 - http-equiv CDATA #IMPLIED 279.503 - name CDATA #IMPLIED 279.504 - content CDATA #REQUIRED 279.505 - scheme CDATA #IMPLIED 279.506 - > 279.507 - 279.508 -<!-- 279.509 - Relationship values can be used in principle: 279.510 - 279.511 - a) for document specific toolbars/menus when used 279.512 - with the link element in document head e.g. 279.513 - start, contents, previous, next, index, end, help 279.514 - b) to link to a separate style sheet (rel="stylesheet") 279.515 - c) to make a link to a script (rel="script") 279.516 - d) by stylesheets to control how collections of 279.517 - html nodes are rendered into printed documents 279.518 - e) to make a link to a printable version of this document 279.519 - e.g. a PostScript or PDF version (rel="alternate" media="print") 279.520 ---> 279.521 - 279.522 -<!ELEMENT link EMPTY> 279.523 -<!ATTLIST link 279.524 - %attrs; 279.525 - charset %Charset; #IMPLIED 279.526 - href %URI; #IMPLIED 279.527 - hreflang %LanguageCode; #IMPLIED 279.528 - type %ContentType; #IMPLIED 279.529 - rel %LinkTypes; #IMPLIED 279.530 - rev %LinkTypes; #IMPLIED 279.531 - media %MediaDesc; #IMPLIED 279.532 - target %FrameTarget; #IMPLIED 279.533 - > 279.534 - 279.535 -<!-- style info, which may include CDATA sections --> 279.536 -<!ELEMENT style (#PCDATA)> 279.537 -<!ATTLIST style 279.538 - %i18n; 279.539 - id ID #IMPLIED 279.540 - type %ContentType; #REQUIRED 279.541 - media %MediaDesc; #IMPLIED 279.542 - title %Text; #IMPLIED 279.543 - xml:space (preserve) #FIXED 'preserve' 279.544 - > 279.545 - 279.546 -<!-- script statements, which may include CDATA sections --> 279.547 -<!ELEMENT script (#PCDATA)> 279.548 -<!ATTLIST script 279.549 - id ID #IMPLIED 279.550 - charset %Charset; #IMPLIED 279.551 - type %ContentType; #REQUIRED 279.552 - language CDATA #IMPLIED 279.553 - src %URI; #IMPLIED 279.554 - defer (defer) #IMPLIED 279.555 - xml:space (preserve) #FIXED 'preserve' 279.556 - > 279.557 - 279.558 -<!-- alternate content container for non script-based rendering --> 279.559 - 279.560 -<!ELEMENT noscript %Flow;> 279.561 -<!ATTLIST noscript 279.562 - %attrs; 279.563 - > 279.564 - 279.565 -<!--======================= Frames =======================================--> 279.566 - 279.567 -<!-- inline subwindow --> 279.568 - 279.569 -<!ELEMENT iframe %Flow;> 279.570 -<!ATTLIST iframe 279.571 - %coreattrs; 279.572 - longdesc %URI; #IMPLIED 279.573 - name NMTOKEN #IMPLIED 279.574 - src %URI; #IMPLIED 279.575 - frameborder (1|0) "1" 279.576 - marginwidth %Pixels; #IMPLIED 279.577 - marginheight %Pixels; #IMPLIED 279.578 - scrolling (yes|no|auto) "auto" 279.579 - align %ImgAlign; #IMPLIED 279.580 - height %Length; #IMPLIED 279.581 - width %Length; #IMPLIED 279.582 - > 279.583 - 279.584 -<!-- alternate content container for non frame-based rendering --> 279.585 - 279.586 -<!ELEMENT noframes %Flow;> 279.587 -<!ATTLIST noframes 279.588 - %attrs; 279.589 - > 279.590 - 279.591 -<!--=================== Document Body ====================================--> 279.592 - 279.593 -<!ELEMENT body %Flow;> 279.594 -<!ATTLIST body 279.595 - %attrs; 279.596 - onload %Script; #IMPLIED 279.597 - onunload %Script; #IMPLIED 279.598 - background %URI; #IMPLIED 279.599 - bgcolor %Color; #IMPLIED 279.600 - text %Color; #IMPLIED 279.601 - link %Color; #IMPLIED 279.602 - vlink %Color; #IMPLIED 279.603 - alink %Color; #IMPLIED 279.604 - > 279.605 - 279.606 -<!ELEMENT div %Flow;> <!-- generic language/style container --> 279.607 -<!ATTLIST div 279.608 - %attrs; 279.609 - %TextAlign; 279.610 - > 279.611 - 279.612 - <!--================Special edit inclusions =========================--> 279.613 - 279.614 - <!ELEMENT edit:example %Flow;> 279.615 - <!ATTLIST edit:example 279.616 - href CDATA #IMPLIED 279.617 - link CDATA #IMPLIED 279.618 - image CDATA #IMPLIED 279.619 - > 279.620 - 279.621 - <!ELEMENT edit:schema %Flow;> 279.622 - <!ATTLIST edit:schema 279.623 - element CDATA #IMPLIED 279.624 - > 279.625 - 279.626 - <!ELEMENT edit:date EMPTY> 279.627 - <!ELEMENT edit:thisversion EMPTY> 279.628 - <!ELEMENT edit:previousversion EMPTY> 279.629 - <!ELEMENT edit:latestversion EMPTY> 279.630 - <!ELEMENT edit:toc EMPTY> 279.631 - <!ELEMENT edit:copyright EMPTY> 279.632 - 279.633 -<!--=================== Paragraphs =======================================--> 279.634 - 279.635 -<!ELEMENT p %Inline;> 279.636 -<!ATTLIST p 279.637 - %attrs; 279.638 - %TextAlign; 279.639 - > 279.640 - 279.641 -<!--=================== Headings =========================================--> 279.642 - 279.643 -<!-- 279.644 - There are six levels of headings from h1 (the most important) 279.645 - to h6 (the least important). 279.646 ---> 279.647 - 279.648 -<!ELEMENT h1 %Inline;> 279.649 -<!ATTLIST h1 279.650 - %attrs; 279.651 - %TextAlign; 279.652 - > 279.653 - 279.654 -<!ELEMENT h2 %Inline;> 279.655 -<!ATTLIST h2 279.656 - %attrs; 279.657 - %TextAlign; 279.658 - > 279.659 - 279.660 -<!ELEMENT h3 %Inline;> 279.661 -<!ATTLIST h3 279.662 - %attrs; 279.663 - %TextAlign; 279.664 - > 279.665 - 279.666 -<!ELEMENT h4 %Inline;> 279.667 -<!ATTLIST h4 279.668 - %attrs; 279.669 - %TextAlign; 279.670 - > 279.671 - 279.672 -<!ELEMENT h5 %Inline;> 279.673 -<!ATTLIST h5 279.674 - %attrs; 279.675 - %TextAlign; 279.676 - > 279.677 - 279.678 -<!ELEMENT h6 %Inline;> 279.679 -<!ATTLIST h6 279.680 - %attrs; 279.681 - %TextAlign; 279.682 - > 279.683 - 279.684 -<!--=================== Lists ============================================--> 279.685 - 279.686 -<!-- Unordered list bullet styles --> 279.687 - 279.688 -<!ENTITY % ULStyle "(disc|square|circle)"> 279.689 - 279.690 -<!-- Unordered list --> 279.691 - 279.692 -<!ELEMENT ul (li)+> 279.693 -<!ATTLIST ul 279.694 - %attrs; 279.695 - type %ULStyle; #IMPLIED 279.696 - compact (compact) #IMPLIED 279.697 - > 279.698 - 279.699 -<!-- Ordered list numbering style 279.700 - 279.701 - 1 arabic numbers 1, 2, 3, ... 279.702 - a lower alpha a, b, c, ... 279.703 - A upper alpha A, B, C, ... 279.704 - i lower roman i, ii, iii, ... 279.705 - I upper roman I, II, III, ... 279.706 - 279.707 - The style is applied to the sequence number which by default 279.708 - is reset to 1 for the first list item in an ordered list. 279.709 ---> 279.710 -<!ENTITY % OLStyle "CDATA"> 279.711 - 279.712 -<!-- Ordered (numbered) list --> 279.713 - 279.714 -<!ELEMENT ol (li)+> 279.715 -<!ATTLIST ol 279.716 - %attrs; 279.717 - type %OLStyle; #IMPLIED 279.718 - compact (compact) #IMPLIED 279.719 - start %Number; #IMPLIED 279.720 - > 279.721 - 279.722 -<!-- single column list (DEPRECATED) --> 279.723 -<!ELEMENT menu (li)+> 279.724 -<!ATTLIST menu 279.725 - %attrs; 279.726 - compact (compact) #IMPLIED 279.727 - > 279.728 - 279.729 -<!-- multiple column list (DEPRECATED) --> 279.730 -<!ELEMENT dir (li)+> 279.731 -<!ATTLIST dir 279.732 - %attrs; 279.733 - compact (compact) #IMPLIED 279.734 - > 279.735 - 279.736 -<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" --> 279.737 -<!ENTITY % LIStyle "CDATA"> 279.738 - 279.739 -<!-- list item --> 279.740 - 279.741 -<!ELEMENT li %Flow;> 279.742 -<!ATTLIST li 279.743 - %attrs; 279.744 - type %LIStyle; #IMPLIED 279.745 - value %Number; #IMPLIED 279.746 - > 279.747 - 279.748 -<!-- definition lists - dt for term, dd for its definition --> 279.749 - 279.750 -<!ELEMENT dl (dt|dd)+> 279.751 -<!ATTLIST dl 279.752 - %attrs; 279.753 - compact (compact) #IMPLIED 279.754 - > 279.755 - 279.756 -<!ELEMENT dt %Inline;> 279.757 -<!ATTLIST dt 279.758 - %attrs; 279.759 - > 279.760 - 279.761 -<!ELEMENT dd %Flow;> 279.762 -<!ATTLIST dd 279.763 - %attrs; 279.764 - > 279.765 - 279.766 -<!--=================== Address ==========================================--> 279.767 - 279.768 -<!-- information on author --> 279.769 - 279.770 -<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*> 279.771 -<!ATTLIST address 279.772 - %attrs; 279.773 - > 279.774 - 279.775 -<!--=================== Horizontal Rule ==================================--> 279.776 - 279.777 -<!ELEMENT hr EMPTY> 279.778 -<!ATTLIST hr 279.779 - %attrs; 279.780 - align (left|center|right) #IMPLIED 279.781 - noshade (noshade) #IMPLIED 279.782 - size %Pixels; #IMPLIED 279.783 - width %Length; #IMPLIED 279.784 - > 279.785 - 279.786 -<!--=================== Preformatted Text ================================--> 279.787 - 279.788 -<!-- content is %Inline; excluding 279.789 - "img|object|applet|big|small|sub|sup|font|basefont" --> 279.790 - 279.791 -<!ELEMENT pre %pre.content;> 279.792 -<!ATTLIST pre 279.793 - %attrs; 279.794 - width %Number; #IMPLIED 279.795 - xml:space (preserve) #FIXED 'preserve' 279.796 - > 279.797 - 279.798 -<!--=================== Block-like Quotes ================================--> 279.799 - 279.800 -<!ELEMENT blockquote %Flow;> 279.801 -<!ATTLIST blockquote 279.802 - %attrs; 279.803 - cite %URI; #IMPLIED 279.804 - > 279.805 - 279.806 -<!--=================== Text alignment ===================================--> 279.807 - 279.808 -<!-- center content --> 279.809 -<!ELEMENT center %Flow;> 279.810 -<!ATTLIST center 279.811 - %attrs; 279.812 - > 279.813 - 279.814 -<!--=================== Inserted/Deleted Text ============================--> 279.815 - 279.816 -<!-- 279.817 - ins/del are allowed in block and inline content, but its 279.818 - inappropriate to include block content within an ins element 279.819 - occurring in inline content. 279.820 ---> 279.821 -<!ELEMENT ins %Flow;> 279.822 -<!ATTLIST ins 279.823 - %attrs; 279.824 - cite %URI; #IMPLIED 279.825 - datetime %Datetime; #IMPLIED 279.826 - > 279.827 - 279.828 -<!ELEMENT del %Flow;> 279.829 -<!ATTLIST del 279.830 - %attrs; 279.831 - cite %URI; #IMPLIED 279.832 - datetime %Datetime; #IMPLIED 279.833 - > 279.834 - 279.835 -<!--================== The Anchor Element ================================--> 279.836 - 279.837 -<!-- content is %Inline; except that anchors shouldn't be nested --> 279.838 - 279.839 -<!ELEMENT a %a.content;> 279.840 -<!ATTLIST a 279.841 - %attrs; 279.842 - %focus; 279.843 - charset %Charset; #IMPLIED 279.844 - type %ContentType; #IMPLIED 279.845 - name NMTOKEN #IMPLIED 279.846 - href %URI; #IMPLIED 279.847 - hreflang %LanguageCode; #IMPLIED 279.848 - rel %LinkTypes; #IMPLIED 279.849 - rev %LinkTypes; #IMPLIED 279.850 - shape %Shape; "rect" 279.851 - coords %Coords; #IMPLIED 279.852 - target %FrameTarget; #IMPLIED 279.853 - > 279.854 - 279.855 -<!--===================== Inline Elements ================================--> 279.856 - 279.857 -<!ELEMENT span %Inline;> <!-- generic language/style container --> 279.858 -<!ATTLIST span 279.859 - %attrs; 279.860 - > 279.861 - 279.862 -<!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride --> 279.863 -<!ATTLIST bdo 279.864 - %coreattrs; 279.865 - %events; 279.866 - lang %LanguageCode; #IMPLIED 279.867 - xml:lang %LanguageCode; #IMPLIED 279.868 - dir (ltr|rtl) #REQUIRED 279.869 - > 279.870 - 279.871 -<!ELEMENT br EMPTY> <!-- forced line break --> 279.872 -<!ATTLIST br 279.873 - %coreattrs; 279.874 - clear (left|all|right|none) "none" 279.875 - > 279.876 - 279.877 -<!ELEMENT em %Inline;> <!-- emphasis --> 279.878 -<!ATTLIST em %attrs;> 279.879 - 279.880 -<!ELEMENT strong %Inline;> <!-- strong emphasis --> 279.881 -<!ATTLIST strong %attrs;> 279.882 - 279.883 -<!ELEMENT dfn %Inline;> <!-- definitional --> 279.884 -<!ATTLIST dfn %attrs;> 279.885 - 279.886 -<!ELEMENT code %Inline;> <!-- program code --> 279.887 -<!ATTLIST code %attrs;> 279.888 - 279.889 -<!ELEMENT samp %Inline;> <!-- sample --> 279.890 -<!ATTLIST samp %attrs;> 279.891 - 279.892 -<!ELEMENT kbd %Inline;> <!-- something user would type --> 279.893 -<!ATTLIST kbd %attrs;> 279.894 - 279.895 -<!ELEMENT var %Inline;> <!-- variable --> 279.896 -<!ATTLIST var %attrs;> 279.897 - 279.898 -<!ELEMENT cite %Inline;> <!-- citation --> 279.899 -<!ATTLIST cite %attrs;> 279.900 - 279.901 -<!ELEMENT abbr %Inline;> <!-- abbreviation --> 279.902 -<!ATTLIST abbr %attrs;> 279.903 - 279.904 -<!ELEMENT acronym %Inline;> <!-- acronym --> 279.905 -<!ATTLIST acronym %attrs;> 279.906 - 279.907 -<!ELEMENT q %Inline;> <!-- inlined quote --> 279.908 -<!ATTLIST q 279.909 - %attrs; 279.910 - cite %URI; #IMPLIED 279.911 - > 279.912 - 279.913 -<!ELEMENT sub %Inline;> <!-- subscript --> 279.914 -<!ATTLIST sub %attrs;> 279.915 - 279.916 -<!ELEMENT sup %Inline;> <!-- superscript --> 279.917 -<!ATTLIST sup %attrs;> 279.918 - 279.919 -<!ELEMENT tt %Inline;> <!-- fixed pitch font --> 279.920 -<!ATTLIST tt %attrs;> 279.921 - 279.922 -<!ELEMENT i %Inline;> <!-- italic font --> 279.923 -<!ATTLIST i %attrs;> 279.924 - 279.925 -<!ELEMENT b %Inline;> <!-- bold font --> 279.926 -<!ATTLIST b %attrs;> 279.927 - 279.928 -<!ELEMENT big %Inline;> <!-- bigger font --> 279.929 -<!ATTLIST big %attrs;> 279.930 - 279.931 -<!ELEMENT small %Inline;> <!-- smaller font --> 279.932 -<!ATTLIST small %attrs;> 279.933 - 279.934 -<!ELEMENT u %Inline;> <!-- underline --> 279.935 -<!ATTLIST u %attrs;> 279.936 - 279.937 -<!ELEMENT s %Inline;> <!-- strike-through --> 279.938 -<!ATTLIST s %attrs;> 279.939 - 279.940 -<!ELEMENT strike %Inline;> <!-- strike-through --> 279.941 -<!ATTLIST strike %attrs;> 279.942 - 279.943 -<!ELEMENT basefont EMPTY> <!-- base font size --> 279.944 -<!ATTLIST basefont 279.945 - id ID #IMPLIED 279.946 - size CDATA #REQUIRED 279.947 - color %Color; #IMPLIED 279.948 - face CDATA #IMPLIED 279.949 - > 279.950 - 279.951 -<!ELEMENT font %Inline;> <!-- local change to font --> 279.952 -<!ATTLIST font 279.953 - %coreattrs; 279.954 - %i18n; 279.955 - size CDATA #IMPLIED 279.956 - color %Color; #IMPLIED 279.957 - face CDATA #IMPLIED 279.958 - > 279.959 - 279.960 -<!--==================== Object ======================================--> 279.961 -<!-- 279.962 - object is used to embed objects as part of HTML pages. 279.963 - param elements should precede other content. Parameters 279.964 - can also be expressed as attribute/value pairs on the 279.965 - object element itself when brevity is desired. 279.966 ---> 279.967 - 279.968 -<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*> 279.969 -<!ATTLIST object 279.970 - %attrs; 279.971 - declare (declare) #IMPLIED 279.972 - classid %URI; #IMPLIED 279.973 - codebase %URI; #IMPLIED 279.974 - data %URI; #IMPLIED 279.975 - type %ContentType; #IMPLIED 279.976 - codetype %ContentType; #IMPLIED 279.977 - archive %UriList; #IMPLIED 279.978 - standby %Text; #IMPLIED 279.979 - height %Length; #IMPLIED 279.980 - width %Length; #IMPLIED 279.981 - usemap %URI; #IMPLIED 279.982 - name NMTOKEN #IMPLIED 279.983 - tabindex %Number; #IMPLIED 279.984 - align %ImgAlign; #IMPLIED 279.985 - border %Pixels; #IMPLIED 279.986 - hspace %Pixels; #IMPLIED 279.987 - vspace %Pixels; #IMPLIED 279.988 - > 279.989 - 279.990 -<!-- 279.991 - param is used to supply a named property value. 279.992 - In XML it would seem natural to follow RDF and support an 279.993 - abbreviated syntax where the param elements are replaced 279.994 - by attribute value pairs on the object start tag. 279.995 ---> 279.996 -<!ELEMENT param EMPTY> 279.997 -<!ATTLIST param 279.998 - id ID #IMPLIED 279.999 - name CDATA #REQUIRED 279.1000 - value CDATA #IMPLIED 279.1001 - valuetype (data|ref|object) "data" 279.1002 - type %ContentType; #IMPLIED 279.1003 - > 279.1004 - 279.1005 -<!--=================== Java applet ==================================--> 279.1006 -<!-- 279.1007 - One of code or object attributes must be present. 279.1008 - Place param elements before other content. 279.1009 ---> 279.1010 -<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*> 279.1011 -<!ATTLIST applet 279.1012 - %coreattrs; 279.1013 - codebase %URI; #IMPLIED 279.1014 - archive CDATA #IMPLIED 279.1015 - code CDATA #IMPLIED 279.1016 - object CDATA #IMPLIED 279.1017 - alt %Text; #IMPLIED 279.1018 - name NMTOKEN #IMPLIED 279.1019 - width %Length; #REQUIRED 279.1020 - height %Length; #REQUIRED 279.1021 - align %ImgAlign; #IMPLIED 279.1022 - hspace %Pixels; #IMPLIED 279.1023 - vspace %Pixels; #IMPLIED 279.1024 - > 279.1025 - 279.1026 -<!--=================== Images ===========================================--> 279.1027 - 279.1028 -<!-- 279.1029 - To avoid accessibility problems for people who aren't 279.1030 - able to see the image, you should provide a text 279.1031 - description using the alt and longdesc attributes. 279.1032 - In addition, avoid the use of server-side image maps. 279.1033 ---> 279.1034 - 279.1035 -<!ELEMENT img EMPTY> 279.1036 -<!ATTLIST img 279.1037 - %attrs; 279.1038 - src %URI; #REQUIRED 279.1039 - alt %Text; #REQUIRED 279.1040 - name NMTOKEN #IMPLIED 279.1041 - longdesc %URI; #IMPLIED 279.1042 - height %Length; #IMPLIED 279.1043 - width %Length; #IMPLIED 279.1044 - usemap %URI; #IMPLIED 279.1045 - ismap (ismap) #IMPLIED 279.1046 - align %ImgAlign; #IMPLIED 279.1047 - border %Length; #IMPLIED 279.1048 - hspace %Pixels; #IMPLIED 279.1049 - vspace %Pixels; #IMPLIED 279.1050 - > 279.1051 - 279.1052 -<!-- usemap points to a map element which may be in this document 279.1053 - or an external document, although the latter is not widely supported --> 279.1054 - 279.1055 -<!--================== Client-side image maps ============================--> 279.1056 - 279.1057 -<!-- These can be placed in the same document or grouped in a 279.1058 - separate document although this isn't yet widely supported --> 279.1059 - 279.1060 -<!ELEMENT map ((%block; | form | %misc;)+ | area+)> 279.1061 -<!ATTLIST map 279.1062 - %i18n; 279.1063 - %events; 279.1064 - id ID #REQUIRED 279.1065 - class CDATA #IMPLIED 279.1066 - style %StyleSheet; #IMPLIED 279.1067 - title %Text; #IMPLIED 279.1068 - name CDATA #IMPLIED 279.1069 - > 279.1070 - 279.1071 -<!ELEMENT area EMPTY> 279.1072 -<!ATTLIST area 279.1073 - %attrs; 279.1074 - %focus; 279.1075 - shape %Shape; "rect" 279.1076 - coords %Coords; #IMPLIED 279.1077 - href %URI; #IMPLIED 279.1078 - nohref (nohref) #IMPLIED 279.1079 - alt %Text; #REQUIRED 279.1080 - target %FrameTarget; #IMPLIED 279.1081 - > 279.1082 - 279.1083 -<!--================ Forms ===============================================--> 279.1084 - 279.1085 -<!ELEMENT form %form.content;> <!-- forms shouldn't be nested --> 279.1086 - 279.1087 -<!ATTLIST form 279.1088 - %attrs; 279.1089 - action %URI; #REQUIRED 279.1090 - method (get|post) "get" 279.1091 - name NMTOKEN #IMPLIED 279.1092 - enctype %ContentType; "application/x-www-form-urlencoded" 279.1093 - onsubmit %Script; #IMPLIED 279.1094 - onreset %Script; #IMPLIED 279.1095 - accept %ContentTypes; #IMPLIED 279.1096 - accept-charset %Charsets; #IMPLIED 279.1097 - target %FrameTarget; #IMPLIED 279.1098 - > 279.1099 - 279.1100 -<!-- 279.1101 - Each label must not contain more than ONE field 279.1102 - Label elements shouldn't be nested. 279.1103 ---> 279.1104 -<!ELEMENT label %Inline;> 279.1105 -<!ATTLIST label 279.1106 - %attrs; 279.1107 - for IDREF #IMPLIED 279.1108 - accesskey %Character; #IMPLIED 279.1109 - onfocus %Script; #IMPLIED 279.1110 - onblur %Script; #IMPLIED 279.1111 - > 279.1112 - 279.1113 -<!ENTITY % InputType 279.1114 - "(text | password | checkbox | 279.1115 - radio | submit | reset | 279.1116 - file | hidden | image | button)" 279.1117 - > 279.1118 - 279.1119 -<!-- the name attribute is required for all but submit & reset --> 279.1120 - 279.1121 -<!ELEMENT input EMPTY> <!-- form control --> 279.1122 -<!ATTLIST input 279.1123 - %attrs; 279.1124 - %focus; 279.1125 - type %InputType; "text" 279.1126 - name CDATA #IMPLIED 279.1127 - value CDATA #IMPLIED 279.1128 - checked (checked) #IMPLIED 279.1129 - disabled (disabled) #IMPLIED 279.1130 - readonly (readonly) #IMPLIED 279.1131 - size CDATA #IMPLIED 279.1132 - maxlength %Number; #IMPLIED 279.1133 - src %URI; #IMPLIED 279.1134 - alt CDATA #IMPLIED 279.1135 - usemap %URI; #IMPLIED 279.1136 - onselect %Script; #IMPLIED 279.1137 - onchange %Script; #IMPLIED 279.1138 - accept %ContentTypes; #IMPLIED 279.1139 - align %ImgAlign; #IMPLIED 279.1140 - > 279.1141 - 279.1142 -<!ELEMENT select (optgroup|option)+> <!-- option selector --> 279.1143 -<!ATTLIST select 279.1144 - %attrs; 279.1145 - name CDATA #IMPLIED 279.1146 - size %Number; #IMPLIED 279.1147 - multiple (multiple) #IMPLIED 279.1148 - disabled (disabled) #IMPLIED 279.1149 - tabindex %Number; #IMPLIED 279.1150 - onfocus %Script; #IMPLIED 279.1151 - onblur %Script; #IMPLIED 279.1152 - onchange %Script; #IMPLIED 279.1153 - > 279.1154 - 279.1155 -<!ELEMENT optgroup (option)+> <!-- option group --> 279.1156 -<!ATTLIST optgroup 279.1157 - %attrs; 279.1158 - disabled (disabled) #IMPLIED 279.1159 - label %Text; #REQUIRED 279.1160 - > 279.1161 - 279.1162 -<!ELEMENT option (#PCDATA)> <!-- selectable choice --> 279.1163 -<!ATTLIST option 279.1164 - %attrs; 279.1165 - selected (selected) #IMPLIED 279.1166 - disabled (disabled) #IMPLIED 279.1167 - label %Text; #IMPLIED 279.1168 - value CDATA #IMPLIED 279.1169 - > 279.1170 - 279.1171 -<!ELEMENT textarea (#PCDATA)> <!-- multi-line text field --> 279.1172 -<!ATTLIST textarea 279.1173 - %attrs; 279.1174 - %focus; 279.1175 - name CDATA #IMPLIED 279.1176 - rows %Number; #REQUIRED 279.1177 - cols %Number; #REQUIRED 279.1178 - disabled (disabled) #IMPLIED 279.1179 - readonly (readonly) #IMPLIED 279.1180 - onselect %Script; #IMPLIED 279.1181 - onchange %Script; #IMPLIED 279.1182 - > 279.1183 - 279.1184 -<!-- 279.1185 - The fieldset element is used to group form fields. 279.1186 - Only one legend element should occur in the content 279.1187 - and if present should only be preceded by whitespace. 279.1188 ---> 279.1189 -<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*> 279.1190 -<!ATTLIST fieldset 279.1191 - %attrs; 279.1192 - > 279.1193 - 279.1194 -<!ENTITY % LAlign "(top|bottom|left|right)"> 279.1195 - 279.1196 -<!ELEMENT legend %Inline;> <!-- fieldset label --> 279.1197 -<!ATTLIST legend 279.1198 - %attrs; 279.1199 - accesskey %Character; #IMPLIED 279.1200 - align %LAlign; #IMPLIED 279.1201 - > 279.1202 - 279.1203 -<!-- 279.1204 - Content is %Flow; excluding a, form, form controls, iframe 279.1205 ---> 279.1206 -<!ELEMENT button %button.content;> <!-- push button --> 279.1207 -<!ATTLIST button 279.1208 - %attrs; 279.1209 - %focus; 279.1210 - name CDATA #IMPLIED 279.1211 - value CDATA #IMPLIED 279.1212 - type (button|submit|reset) "submit" 279.1213 - disabled (disabled) #IMPLIED 279.1214 - > 279.1215 - 279.1216 -<!-- single-line text input control (DEPRECATED) --> 279.1217 -<!ELEMENT isindex EMPTY> 279.1218 -<!ATTLIST isindex 279.1219 - %coreattrs; 279.1220 - %i18n; 279.1221 - prompt %Text; #IMPLIED 279.1222 - > 279.1223 - 279.1224 -<!--======================= Tables =======================================--> 279.1225 - 279.1226 -<!-- Derived from IETF HTML table standard, see [RFC1942] --> 279.1227 - 279.1228 -<!-- 279.1229 - The border attribute sets the thickness of the frame around the 279.1230 - table. The default units are screen pixels. 279.1231 - 279.1232 - The frame attribute specifies which parts of the frame around 279.1233 - the table should be rendered. The values are not the same as 279.1234 - CALS to avoid a name clash with the valign attribute. 279.1235 ---> 279.1236 -<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)"> 279.1237 - 279.1238 -<!-- 279.1239 - The rules attribute defines which rules to draw between cells: 279.1240 - 279.1241 - If rules is absent then assume: 279.1242 - "none" if border is absent or border="0" otherwise "all" 279.1243 ---> 279.1244 - 279.1245 -<!ENTITY % TRules "(none | groups | rows | cols | all)"> 279.1246 - 279.1247 -<!-- horizontal placement of table relative to document --> 279.1248 -<!ENTITY % TAlign "(left|center|right)"> 279.1249 - 279.1250 -<!-- horizontal alignment attributes for cell contents 279.1251 - 279.1252 - char alignment char, e.g. char=':' 279.1253 - charoff offset for alignment char 279.1254 ---> 279.1255 -<!ENTITY % cellhalign 279.1256 - "align (left|center|right|justify|char) #IMPLIED 279.1257 - char %Character; #IMPLIED 279.1258 - charoff %Length; #IMPLIED" 279.1259 - > 279.1260 - 279.1261 -<!-- vertical alignment attributes for cell contents --> 279.1262 -<!ENTITY % cellvalign 279.1263 - "valign (top|middle|bottom|baseline) #IMPLIED" 279.1264 - > 279.1265 - 279.1266 -<!ELEMENT table 279.1267 - (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))> 279.1268 -<!ELEMENT caption %Inline;> 279.1269 -<!ELEMENT thead (tr)+> 279.1270 -<!ELEMENT tfoot (tr)+> 279.1271 -<!ELEMENT tbody (tr)+> 279.1272 -<!ELEMENT colgroup (col)*> 279.1273 -<!ELEMENT col EMPTY> 279.1274 -<!ELEMENT tr (th|td)+> 279.1275 -<!ELEMENT th %Flow;> 279.1276 -<!ELEMENT td %Flow;> 279.1277 - 279.1278 -<!ATTLIST table 279.1279 - %attrs; 279.1280 - summary %Text; #IMPLIED 279.1281 - width %Length; #IMPLIED 279.1282 - border %Pixels; #IMPLIED 279.1283 - frame %TFrame; #IMPLIED 279.1284 - rules %TRules; #IMPLIED 279.1285 - cellspacing %Length; #IMPLIED 279.1286 - cellpadding %Length; #IMPLIED 279.1287 - align %TAlign; #IMPLIED 279.1288 - bgcolor %Color; #IMPLIED 279.1289 - > 279.1290 - 279.1291 -<!ENTITY % CAlign "(top|bottom|left|right)"> 279.1292 - 279.1293 -<!ATTLIST caption 279.1294 - %attrs; 279.1295 - align %CAlign; #IMPLIED 279.1296 - > 279.1297 - 279.1298 -<!-- 279.1299 -colgroup groups a set of col elements. It allows you to group 279.1300 -several semantically related columns together. 279.1301 ---> 279.1302 -<!ATTLIST colgroup 279.1303 - %attrs; 279.1304 - span %Number; "1" 279.1305 - width %MultiLength; #IMPLIED 279.1306 - %cellhalign; 279.1307 - %cellvalign; 279.1308 - > 279.1309 - 279.1310 -<!-- 279.1311 - col elements define the alignment properties for cells in 279.1312 - one or more columns. 279.1313 - 279.1314 - The width attribute specifies the width of the columns, e.g. 279.1315 - 279.1316 - width=64 width in screen pixels 279.1317 - width=0.5* relative width of 0.5 279.1318 - 279.1319 - The span attribute causes the attributes of one 279.1320 - col element to apply to more than one column. 279.1321 ---> 279.1322 -<!ATTLIST col 279.1323 - %attrs; 279.1324 - span %Number; "1" 279.1325 - width %MultiLength; #IMPLIED 279.1326 - %cellhalign; 279.1327 - %cellvalign; 279.1328 - > 279.1329 - 279.1330 -<!-- 279.1331 - Use thead to duplicate headers when breaking table 279.1332 - across page boundaries, or for static headers when 279.1333 - tbody sections are rendered in scrolling panel. 279.1334 - 279.1335 - Use tfoot to duplicate footers when breaking table 279.1336 - across page boundaries, or for static footers when 279.1337 - tbody sections are rendered in scrolling panel. 279.1338 - 279.1339 - Use multiple tbody sections when rules are needed 279.1340 - between groups of table rows. 279.1341 ---> 279.1342 -<!ATTLIST thead 279.1343 - %attrs; 279.1344 - %cellhalign; 279.1345 - %cellvalign; 279.1346 - > 279.1347 - 279.1348 -<!ATTLIST tfoot 279.1349 - %attrs; 279.1350 - %cellhalign; 279.1351 - %cellvalign; 279.1352 - > 279.1353 - 279.1354 -<!ATTLIST tbody 279.1355 - %attrs; 279.1356 - %cellhalign; 279.1357 - %cellvalign; 279.1358 - > 279.1359 - 279.1360 -<!ATTLIST tr 279.1361 - %attrs; 279.1362 - %cellhalign; 279.1363 - %cellvalign; 279.1364 - bgcolor %Color; #IMPLIED 279.1365 - > 279.1366 - 279.1367 -<!-- Scope is simpler than headers attribute for common tables --> 279.1368 -<!ENTITY % Scope "(row|col|rowgroup|colgroup)"> 279.1369 - 279.1370 -<!-- th is for headers, td for data and for cells acting as both --> 279.1371 - 279.1372 -<!ATTLIST th 279.1373 - %attrs; 279.1374 - abbr %Text; #IMPLIED 279.1375 - axis CDATA #IMPLIED 279.1376 - headers IDREFS #IMPLIED 279.1377 - scope %Scope; #IMPLIED 279.1378 - rowspan %Number; "1" 279.1379 - colspan %Number; "1" 279.1380 - %cellhalign; 279.1381 - %cellvalign; 279.1382 - nowrap (nowrap) #IMPLIED 279.1383 - bgcolor %Color; #IMPLIED 279.1384 - width %Length; #IMPLIED 279.1385 - height %Length; #IMPLIED 279.1386 - > 279.1387 - 279.1388 -<!ATTLIST td 279.1389 - %attrs; 279.1390 - abbr %Text; #IMPLIED 279.1391 - axis CDATA #IMPLIED 279.1392 - headers IDREFS #IMPLIED 279.1393 - scope %Scope; #IMPLIED 279.1394 - rowspan %Number; "1" 279.1395 - colspan %Number; "1" 279.1396 - %cellhalign; 279.1397 - %cellvalign; 279.1398 - nowrap (nowrap) #IMPLIED 279.1399 - bgcolor %Color; #IMPLIED 279.1400 - width %Length; #IMPLIED 279.1401 - height %Length; #IMPLIED 279.1402 - > 279.1403 -
280.1 --- a/publish/SVGFilter.html Thu Feb 24 10:19:12 2011 +0000 280.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 280.3 @@ -1,4540 +0,0 @@ 280.4 -<!-- 280.5 - Filter Effects 1.0, Part 2: Language 280.6 - 280.7 - $Id$ 280.8 - 280.9 - Note: This document is generated from ../master/SVGFilter.html. 280.10 - Run "make" from ../master/ to regenerate it. 280.11 - --> 280.12 - 280.13 -<!DOCTYPE html 280.14 - PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 280.15 -<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>Filter Effects 1.0, Part 2: Language</title><link rel="stylesheet" type="text/css" href="style/svg-style.css"/><link rel="stylesheet" type="text/css" href="style/svg-style-extra.css"/><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body> 280.16 - 280.17 -<div class="head"> 280.18 - <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 280.19 - <h1 id="pagetitle">Filter Effects 1.0: Language</h1> 280.20 - <h2 id="pagesubtitle">W3C Editor’s Draft <em>24 February 2011</em></h2> 280.21 - <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html">http://dev.w3.org/Graphics-FX/modules/filters/publish/SVGFilter.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/FilterEffects10/">http://www.w3.org/TR/FilterEffects10/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a></dd><dt>Editors:</dt><dd><a href="mailto:ed@opera.com">Erik Dahlström</a>, (<a href="http://www.opera.com/">Opera Software ASA</a>)</dd><dd><a href="mailto:dino@apple.com">Dean Jackson</a> (<a href="http://www.apple.com/">Apple Inc</a>)</dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG and CSS Working Groups.</dd></dl> 280.22 - <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p> 280.23 -</div> 280.24 - 280.25 -<hr/> 280.26 - 280.27 -<h2 id="abstract">Abstract</h2> 280.28 - 280.29 -<p> 280.30 -SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed. 280.31 -</p> 280.32 -<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO. 280.33 -</p> 280.34 -<p> 280.35 -This document defines the markup used by SVG filters. 280.36 -</p> 280.37 - 280.38 -<h2 id="status">Status of This Document</h2> 280.39 - 280.40 -<p><em>This section describes the status of this document at the time of its 280.41 -publication. Other documents may supersede this document. The latest status 280.42 -of this document series is maintained at the W3C. </em> </p> 280.43 - 280.44 -<p>This document is the first public working draft of this specification. 280.45 -There is an accompanying <a href="#SVG12FilterPrimer">Filter Effects 1.0, Part 280.46 -1: Primer</a> that lists the ways SVG filters may be used. </p> 280.47 - 280.48 -<p>This document has been produced by the <a href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of 280.49 -the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a> 280.50 -within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>. 280.51 -</p> 280.52 - 280.53 -<p>We explicitly invite comments on this specification. Please send them to 280.54 -<a href="mailto:public-fx@w3.org">public-fx@w3.org</a> (<a href="http://lists.w3.org/Archives/Public/public-fx/">archives</a>). 280.55 -Acceptance of the archiving policy is requested automatically upon first post to the 280.56 -list. To subscribe to the list send an email to <a href="mailto:public-fx-request@w3.org">public-fx-request@w3.org</a> with 280.57 -the word subscribe in the subject line. </p> 280.58 - 280.59 -<p>The latest information regarding <a href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 280.60 -related to this document is available on the Web. As of this publication, the 280.61 -SVG Working Group are not aware of any royalty-bearing patents they believe 280.62 -to be essential to SVG.</p> 280.63 - 280.64 -<p>Publication of this document does not imply endorsement by the W3C 280.65 -membership. A list of current W3C Recommendations and other technical 280.66 -documents can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may 280.67 -be updated, replaced, or obsoleted by other documents at any time. It is 280.68 -inappropriate to cite a W3C Working Draft as anything other than a <em>work 280.69 -in progress</em>." </p> 280.70 - 280.71 -<h2 id="howto">How to read this document and give feedback</h2> 280.72 - 280.73 -<p>This draft of Filter Effects 1.0 is essentially the filter chapter from <a href="#ref-svg11">SVG 1.1</a>. One of the goals is that this specification 280.74 -can be re-used more easily by other specifications that want to have filter 280.75 -effects. Some things that have been changed are: error handling is more 280.76 -similar to SVG Tiny 1.2, the addition of a <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive and the 280.77 -possibility to filter bitmap data with the DOM. </p> 280.78 - 280.79 -<p>The main purpose of this document is to encourage public feedback. The 280.80 -best way to give feedback is by sending an email to <a href="mailto:public-fx@w3.org">public-fx@w3.org</a>. Please 280.81 -include some kind of keyword that identifies the area of the specification 280.82 -the comment is referring to in the subject line of your message (e.g "Section 280.83 -X.Y - the 'filter' property" or "Filtering primitive handling"). If you have 280.84 -comments on multiple areas of this document, then it is probably best to 280.85 -split those comments into multiple messages. </p> 280.86 - 280.87 -<p>The public are welcome to comment on any aspect in this document, but 280.88 -there are a few areas in which the SVG Working Group are explicitly 280.89 -requesting feedback. These areas are noted in place within this document. 280.90 -There is also a specific area related to the specification that is listed 280.91 -here: </p> 280.92 - 280.93 -<ul class="toc"> 280.94 -<li><a href="#introduction">1 Introduction</a></li> 280.95 -<li><a href="#FilterDefinitions">2 Definitions</a></li> 280.96 -<li><a href="#FilterElement">3 The <span class="element-name">‘filter’</span> 280.97 -element</a></li> 280.98 -<li><a href="#FilterProperty">4 The <span class="prop-name">‘filter’</span> 280.99 -property</a><ul class="toc"> 280.100 -<li><a href="#">4.1 How the 'filter' property applies to content formatted by CSS (e.g HTML)</a></li></ul></li> 280.101 -<li><a href="#FilterEffectsRegion">5 Filter effects region</a><ul class="toc"> 280.102 -<li><a href="#filter-margins">5.1 Filter Region extensions</a></li></ul></li> 280.103 -<li><a href="#AccessBackgroundImage">6 Accessing the background image</a><ul class="toc"> 280.104 -<li><a href="#AccessBackgroundImageSVG">6.1 Accessing the background image in SVG</a></li></ul></li> 280.105 -<li><a href="#FilterPrimitivesOverview">7 Filter primitives overview</a><ul class="toc"> 280.106 -<li><a href="#FilterPrimitivesOverviewIntro">7.1 Overview</a></li> 280.107 -<li><a href="#CommonAttributes">7.2 Common attributes</a></li> 280.108 -<li><a href="#FilterPrimitiveSubRegion">7.3 Filter primitive subregion</a></li></ul></li> 280.109 -<li><a href="#LightSourceDefinitions">8 Light source elements and properties</a><ul class="toc"> 280.110 -<li><a href="#LightSourceIntro">8.1 Introduction</a></li> 280.111 -<li><a href="#feDistantLightElement">8.2 Light source <span class="element-name">‘feDistantLight’</span></a></li> 280.112 -<li><a href="#fePointLightElement">8.3 Light source <span class="element-name">‘fePointLight’</span></a></li> 280.113 -<li><a href="#feSpotLightElement">8.4 Light source <span class="element-name">‘feSpotLight’</span></a></li> 280.114 -<li><a href="#LightingColorProperty">8.5 The <span class="prop-name">‘lighting-color’</span> property</a></li></ul></li> 280.115 -<li><a href="#feBlendElement">9 Filter primitive <span class="element-name">‘feBlend’</span></a></li> 280.116 -<li><a href="#feColorMatrixElement">10 Filter primitive <span class="element-name">‘feColorMatrix’</span></a></li> 280.117 -<li><a href="#feComponentTransferElement">11 Filter primitive <span class="element-name">‘feComponentTransfer’</span></a></li> 280.118 -<li><a href="#feCompositeElement">12 Filter primitive <span class="element-name">‘feComposite’</span></a></li> 280.119 -<li><a href="#feConvolveMatrixElement">13 Filter primitive <span class="element-name">‘feConvolveMatrix’</span></a></li> 280.120 -<li><a href="#feDiffuseLightingElement">14 Filter primitive <span class="element-name">‘feDiffuseLighting’</span></a></li> 280.121 -<li><a href="#feDisplacementMapElement">15 Filter primitive <span class="element-name">‘feDisplacementMap’</span></a></li> 280.122 -<li><a href="#feFloodElement">16 Filter primitive <span class="element-name">‘feFlood’</span></a></li> 280.123 -<li><a href="#feGaussianBlurElement">17 Filter primitive <span class="element-name">‘feGaussianBlur’</span></a></li> 280.124 -<li><a href="#feUnsharpMaskElement">18 Filter primitive <span class="element-name">‘feUnsharpMask’</span></a></li> 280.125 -<li><a href="#feImageElement">19 Filter primitive <span class="element-name">‘feImage’</span></a></li> 280.126 -<li><a href="#feMergeElement">20 Filter primitive <span class="element-name">‘feMerge’</span></a></li> 280.127 -<li><a href="#feMorphologyElement">21 Filter primitive <span class="element-name">‘feMorphology’</span></a></li> 280.128 -<li><a href="#feOffsetElement">22 Filter primitive <span class="element-name">‘feOffset’</span></a></li> 280.129 -<li><a href="#feSpecularLightingElement">23 Filter primitive <span class="element-name">‘feSpecularLighting’</span></a></li> 280.130 -<li><a href="#feTileElement">24 Filter primitive <span class="element-name">‘feTile’</span></a></li> 280.131 -<li><a href="#feTurbulenceElement">25 Filter primitive <span class="element-name">‘feTurbulence’</span></a></li> 280.132 -<li><a href="#feDropShadowElement">26 Filter primitive <span class="element-name">‘feDropShadow’</span></a></li> 280.133 -<li><a href="#feDiffuseSpecularElement">27 Filter primitive <span class="element-name">‘feDiffuseSpecular’</span></a></li> 280.134 -<li><a href="#feCustomElement">28 Filter primitive <span class="element-name">‘feCustom’</span></a></li> 280.135 -<li><a href="#RelaxNG">29 RelaxNG Schema for Filter Effects 1.0</a></li> 280.136 -<li><a href="#DOMInterfaces">30 DOM interfaces</a></li> 280.137 -<li><a href="#DOMInterfaces">31 DOM interfaces</a><ul class="toc"> 280.138 -<li><a href="#InterfaceImageData">31.1 Interface ImageData</a></li> 280.139 -<li><a href="#InterfaceSVGFilterElement">31.2 Interface SVGFilterElement</a></li> 280.140 -<li><a href="#InterfaceSVGFilterPrimitiveStandardAttributes">31.3 Interface SVGFilterPrimitiveStandardAttributes</a></li> 280.141 -<li><a href="#InterfaceSVGFEBlendElement">31.4 Interface SVGFEBlendElement</a></li> 280.142 -<li><a href="#InterfaceSVGFEColorMatrixElement">31.5 Interface SVGFEColorMatrixElement</a></li> 280.143 -<li><a href="#InterfaceSVGFEComponentTransferElement">31.6 Interface SVGFEComponentTransferElement</a></li> 280.144 -<li><a href="#InterfaceSVGComponentTransferFunctionElement">31.7 Interface SVGComponentTransferFunctionElement</a></li> 280.145 -<li><a href="#InterfaceSVGFEFuncRElement">31.8 Interface SVGFEFuncRElement</a></li> 280.146 -<li><a href="#InterfaceSVGFEFuncGElement">31.9 Interface SVGFEFuncGElement</a></li> 280.147 -<li><a href="#InterfaceSVGFEFuncBElement">31.10 Interface SVGFEFuncBElement</a></li> 280.148 -<li><a href="#InterfaceSVGFEFuncAElement">31.11 Interface SVGFEFuncAElement</a></li> 280.149 -<li><a href="#InterfaceSVGFECompositeElement">31.12 Interface SVGFECompositeElement</a></li> 280.150 -<li><a href="#InterfaceSVGFEConvolveMatrixElement">31.13 Interface SVGFEConvolveMatrixElement</a></li> 280.151 -<li><a href="#InterfaceSVGFEDiffuseLightingElement">31.14 Interface SVGFEDiffuseLightingElement</a></li> 280.152 -<li><a href="#InterfaceSVGFEDistantLightElement">31.15 Interface SVGFEDistantLightElement</a></li> 280.153 -<li><a href="#InterfaceSVGFEPointLightElement">31.16 Interface SVGFEPointLightElement</a></li> 280.154 -<li><a href="#InterfaceSVGFESpotLightElement">31.17 Interface SVGFESpotLightElement</a></li> 280.155 -<li><a href="#InterfaceSVGFEDisplacementMapElement">31.18 Interface SVGFEDisplacementMapElement</a></li> 280.156 -<li><a href="#InterfaceSVGFEFloodElement">31.19 Interface SVGFEFloodElement</a></li> 280.157 -<li><a href="#InterfaceSVGFEGaussianBlurElement">31.20 Interface SVGFEGaussianBlurElement</a></li> 280.158 -<li><a href="#InterfaceSVGFEImageElement">31.21 Interface SVGFEImageElement</a></li> 280.159 -<li><a href="#InterfaceSVGFEMergeElement">31.22 Interface SVGFEMergeElement</a></li> 280.160 -<li><a href="#InterfaceSVGFEMergeNodeElement">31.23 Interface SVGFEMergeNodeElement</a></li> 280.161 -<li><a href="#InterfaceSVGFEMorphologyElement">31.24 Interface SVGFEMorphologyElement</a></li> 280.162 -<li><a href="#InterfaceSVGFEOffsetElement">31.25 Interface SVGFEOffsetElement</a></li> 280.163 -<li><a href="#InterfaceSVGFESpecularLightingElement">31.26 Interface SVGFESpecularLightingElement</a></li> 280.164 -<li><a href="#InterfaceSVGFETileElement">31.27 Interface SVGFETileElement</a></li> 280.165 -<li><a href="#InterfaceSVGFETurbulenceElement">31.28 Interface SVGFETurbulenceElement</a></li> 280.166 -<li><a href="#InterfaceSVGFEDropShadowElement">31.29 Interface SVGFEDropShadowElement</a></li></ul></li> 280.167 -<li><a href="#references1">32 References</a><ul class="toc"> 280.168 -<li><a href="#normref">32.1 Normative References</a></li> 280.169 -<li><a href="#informref">32.2 Informative References</a></li></ul></li> 280.170 -<li><a href="#changes">33 Changes</a></li></ul> 280.171 - 280.172 -<h2 id="introduction">1 Introduction</h2> 280.173 - 280.174 -<p>This chapter describes a declarative filter effects feature set, which 280.175 -when combined with the other web technologies, like SVG or HTML, can describe 280.176 -much of the common artwork on the Web in such a way that client-side 280.177 -generation and alteration can be performed easily. In addition, the ability 280.178 -to apply filter effects to SVG <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics elements</span></a> and <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> helps to 280.179 -maintain the semantic structure of the document, instead of resorting to 280.180 -images which aside from generally being a fixed resolution tend to obscure 280.181 -the original semantics of the elements they replace. This is especially true 280.182 -for effects applied to text. 280.183 -</p> 280.184 - 280.185 -<p> 280.186 - 280.187 -</p> 280.188 - 280.189 -<p>Note that even though this specification references parts of <a href="#ref-svg11">SVG 1.1</a> it does not require a complete SVG 1.1 280.190 -implementation. <span class="note">Add link to conformance classes here.</span> 280.191 -</p> 280.192 - 280.193 -<p>This document is normative. </p> 280.194 - 280.195 -<p>This document contains explicit conformance criteria that overlap with 280.196 -some RNG definitions in requirements. If there is any conflict between the 280.197 -two, the explicit conformance criteria are the definitive reference. </p> 280.198 - 280.199 -<p>A filter effect consists of a series of graphics operations that are 280.200 -applied to a given <span id="TermSourceGraphic" class="SVG-Term">source graphic</span> to produce a modified graphical 280.201 -result. The result of the filter effect is rendered to the target device 280.202 -instead of the original source graphic. The following illustrates the 280.203 -process:</p> 280.204 - 280.205 -<p><object data="examples/filters00.svg" type="image/svg+xml" height="78" width="400"> 280.206 - <img alt="Image showing source graphic transformed by filter effect" src="examples/filters00.png" width="401" height="78"/> 280.207 -</object></p> 280.208 -<p class="view-as-svg"><a href="examples/filters00.svg">View this example as 280.209 -SVG (SVG-enabled browsers only)</a><br/> 280.210 - </p> 280.211 - 280.212 -<h2 id="FilterDefinitions">2 Definitions</h2> 280.213 - <p>When used in this specification, terms have the meanings assigned in this section.</p> 280.214 - <dl><dt id="TermNullFilter"><span class="SVG-TermDefine">null filter</span></dt><dd> 280.215 - <p> 280.216 - The null filter output is all transparent black pixels. If applied to an element it means 280.217 - that the element (and children if any) becomes invisible. Note that it does not affect event processing. 280.218 - </p> 280.219 - </dd><dt id="TermTransferFunctionElements"><span class="SVG-TermDefine">transfer function elements</span></dt><dd> 280.220 - <p> 280.221 - The set of elements, 280.222 - <a href=""><span class="element-name">‘feFuncR’</span></a>, <a href=""><span class="element-name">‘feFuncG’</span></a>, <a href=""><span class="element-name">‘feFuncB’</span></a>, <a href=""><span class="element-name">‘feFuncA’</span></a>, that define the transfer function for the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> filter primitive. 280.223 - </p> 280.224 - </dd><dt id="TermClientBoundingRect"><span class="SVG-TermDefine">bounding client rect</span></dt><dd> 280.225 - <p> 280.226 - The union of all CSS border-boxes for the element if formatted by CSS, as defined by the CSS OM method 280.227 - <a href="http://www.w3.org/TR/cssom-view/#dom-element-getboundingclientrect">getBoundingClientRect</a> [<a href="#ref-CSSOM">CSSOM</a>]. 280.228 - </p> 280.229 - </dd><dt id="TermCSSBoundingBox"><span class="SVG-TermDefine">CSS bounding box</span></dt><dd> 280.230 - <p> 280.231 - The union of all CSS border-boxes for the element and all it's descendant elements, provided the element is formatted by CSS. [<a href="#ref-CSS21">CSS</a>]. 280.232 - </p> 280.233 - </dd><dt id="TermCurrentUserCoordinateSystem"><span class="SVG-TermDefine">current user coordinate system</span></dt><dd> 280.234 - <p> 280.235 - For elements formatted by CSS: the current user coordinate system has its origin at the top-left corner of the 280.236 - <a href="#TermClientBoundingRect">bounding client rect</a> and one unit equals on CSS px. The viewport for resolving percentage values is defined by the width and height of the 280.237 - <a href="#TermClientBoundingRect">bounding client rect</a>. 280.238 - </p> 280.239 - <p> 280.240 - For SVG elements see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a>. 280.241 - </p> 280.242 - </dd><dt id="TermObjectBoundingBoxUnits"><span class="SVG-TermDefine">object bounding box units</span></dt><dd> 280.243 - For elements formatted by CSS: the bounding box is defined by <a href="#TermCSSBoundingBox">the CSS bounding box.</a> 280.244 - <p> 280.245 - For SVG elements the bounding box is defined by <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermBoundingBox">the SVG bounding box</a>. 280.246 - </p> 280.247 - <p> 280.248 - For both cases the bounding box defines the coordinate system in which to resolve values, as defined in <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>. 280.249 - </p> 280.250 - </dd><dt id="TermFilterPrimitiveReference"><span class="SVG-TermDefine"><filter-primitive-reference></span></dt><dd> 280.251 - <p> 280.252 - A string that identifies a particular filter primitive's output. 280.253 - </p> 280.254 - </dd><dt id="TermFilterPrimitiveElements"><span class="SVG-TermDefine">filter primitives, filter primitive elements</span></dt><dd> 280.255 - <p> 280.256 - The set of elements that control the output of a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, particularly: 280.257 - <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 280.258 - <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, 280.259 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>, 280.260 - <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>, 280.261 - <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>, 280.262 - <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>, 280.263 - <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>, 280.264 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a>, 280.265 - <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a>, 280.266 - <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>, 280.267 - <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a>, 280.268 - <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>, 280.269 - <a href="#feImageElement"><span class="element-name">‘feImage’</span></a>, 280.270 - <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a>, 280.271 - <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>, 280.272 - <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>, 280.273 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>, 280.274 - <a href="#feTileElement"><span class="element-name">‘feTile’</span></a>, 280.275 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a>, 280.276 - <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a>, 280.277 - <a href="#feDiffuseSpecular"><span class="element-name">‘feDiffuseSpecular’</span></a>, 280.278 - <a href="#feUnsharpMaskElement"><span class="element-name">‘feUnsharpMask’</span></a>, 280.279 - <a href="#feCustom"><span class="element-name">‘feCustom’</span></a>. 280.280 - </p> 280.281 - </dd></dl> 280.282 - <br/> 280.283 - 280.284 -<h2 id="FilterElement">3 The <span class="element-name">‘filter’</span> 280.285 -element</h2> 280.286 - 280.287 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘filter’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.288 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermDescriptiveElement">descriptive elements</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#DescElement"><span class="element-name">‘desc’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/metadata.html#MetadataElement"><span class="element-name">‘metadata’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#TitleElement"><span class="element-name">‘title’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive elements</a><span class="expanding"> — <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a>, <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a>, <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>, <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>, <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a>, <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a>, <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a>, <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a>, <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>, <a href="#feImageElement"><span class="element-name">‘feImage’</span></a>, <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a>, <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a>, <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>, <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>, <a href="#feTileElement"><span class="element-name">‘feTile’</span></a>, <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermXLinkAttributes">xlink attributes</a><span class="expanding"> — <a href="#FilterElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkShowAttribute"><span class="attr-name">‘xlink:show’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkActuateAttribute"><span class="attr-name">‘xlink:actuate’</span></a>, <a href="struct.html#XLinkTypeAttribute"><span class="attr-name">‘xlink:type’</span></a>, <a href="struct.html#XLinkRoleAttribute"><span class="attr-name">‘xlink:role’</span></a>, <a href="struct.html#XLinkArcRoleAttribute"><span class="attr-name">‘xlink:arcrole’</span></a>, <a href="struct.html#XLinkTitleAttribute"><span class="attr-name">‘xlink:title’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#ExternalResourcesRequiredAttribute"><span class="attr-name">‘externalResourcesRequired’</span></a></li><li><a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a></li><li><a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a></li><li><a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a></li><li><a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a></li><li><a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a></li><li><a href="#FilterElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a></li><li><a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a></li><li><a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a></li><li><a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a></li><li><a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a></li><li><a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a></li><li><a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFilterElement">SVGFilterElement</a></li></ul></dd></dl></div> 280.289 - 280.290 - 280.291 - 280.292 -<p>The description of the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element 280.293 -follows:</p> 280.294 - 280.295 -<div class="adef-list"> 280.296 -<p><em>Attribute definitions:</em></p> 280.297 -<dl><dt id="FilterElementFilterUnitsAttribute"><span class="adef">filterUnits</span> = "<em>userSpaceOnUse</em> | 280.298 - <em>objectBoundingBox</em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementPrimitiveUnitsAttribute"><span class="adef">primitiveUnits</span> = "<em>userSpaceOnUse</em> | 280.299 - <em>objectBoundingBox</em>"</dt><dd>Specifies the coordinate system for the various length values within 280.300 - the <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> and for the attributes that define the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.<br/> 280.301 - If <span class="attr-value">primitiveUnits="userSpaceOnUse"</span>, any length values 280.302 - within the filter definitions represent values in the <a href="#TermCurrentUserCoordinateSystem">current user 280.303 - coordinate system</a> in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.304 - element is referenced (i.e., the user coordinate system for the element 280.305 - referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> 280.306 - property).<br/> 280.307 - If <span class="attr-value">primitiveUnits="objectBoundingBox"</span>, then any length 280.308 - values within the filter definitions represent fractions or percentages 280.309 - of the bounding box on the referencing element (see <a href="#TermObjectBoundingBoxUnits">object bounding box 280.310 - units</a>). Note that if only one number was specified in a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a> value 280.311 - this number is expanded out before the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> computation takes place. 280.312 - <br/> 280.313 - If attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> is not 280.314 - specified, then the effect is as if a value of <span class="attr-value">userSpaceOnUse</span> were specified.<br/> 280.315 - <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementFilterMarginUnitsAttribute"><span class="adef">filterMarginUnits</span> = "<em>userSpaceOnUse</em> | 280.316 - <em>objectBoundingBox</em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementPrimitiveMarginUnitsAttribute"><span class="adef">primitiveMarginUnits</span> = "<em>userSpaceOnUse</em> | 280.317 - <em>objectBoundingBox</em>"</dt><dd>Specifies the coordinate system for the margin attributes within the 280.318 - <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> which is used for determining the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.<br/> 280.319 - If <span class="attr-value">primitiveMarginUnits="userSpaceOnUse"</span>, any margin 280.320 - attribute values within the filter definitions represent values in the 280.321 - current user coordinate system in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.322 - element is referenced (i.e., the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element 280.323 - referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> 280.324 - property).<br/> 280.325 - If <span class="attr-value">primitiveMarginUnits="objectBoundingBox"</span>, then any 280.326 - margin attribute values within the filter definitions represent 280.327 - fractions or percentages of the bounding box on the referencing element 280.328 - (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).<br/> 280.329 - 280.330 - <span class="requirement" id="assert_LacunaValuePrimitiveMarginsUnits">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> is <span class="attr-value">userSpaceOnUse</span></span>.<br/> 280.331 - <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementXAttribute"> 280.332 - <span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementYAttribute"> 280.333 - <span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementWidthAttribute"><span class="adef">width</span> = 280.334 - "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementHeightAttribute"><span class="adef">height</span> = 280.335 - "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterPrimitiveMxAttribute"> 280.336 - <span class="adef">mx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd>The margin delta for the x coordinate of the subregion which 280.337 - restricts calculation and rendering of the given filter primitive. If 280.338 - this attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/> 280.339 - <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMyAttribute"> 280.340 - <span class="adef">my</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd>The margin delta for the y coordinate of the subregion which 280.341 - restricts calculation and rendering of the given filter primitive. If 280.342 - this attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>. <br/> 280.343 - <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMwAttribute"> 280.344 - <span class="adef">mw</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd>The margin delta for the width of the subregion which restricts 280.345 - calculation and rendering of the given filter primitive. If this 280.346 - attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/> 280.347 - <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterPrimitiveMhAttribute"> 280.348 - <span class="adef">mh</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd>The margin delta for the height of the subregion which restricts 280.349 - calculation and rendering of the given filter primitive. If this 280.350 - attribute is not specified, the effect is as if a value of <span class="attr-value">0</span> were specified. See <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.<br/> 280.351 - <span class="anim-target">Animatable: yes.</span></dd><dt id="FilterElementFilterResAttribute"><span class="adef">filterRes</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></em>" 280.352 - </dt><dd>See <a href="#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</dd><dt id="FilterElementHrefAttribute"><span class="adef">xlink:href</span> 280.353 - = "<span class="attr-value"><IRI></span>"</dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 280.354 - to another <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element within 280.355 - the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermSVGDocumentFragment"><span class="svg-term">SVG document fragment</span></a>. Any attributes which are defined on 280.356 - the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element which 280.357 - are not defined on this element are inherited by this element. If this 280.358 - element has no defined filter nodes, and the referenced element has 280.359 - defined filter nodes (possibly due to its own <span class="attr-name">href</span> attribute), then this element inherits 280.360 - the filter nodes defined from the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. Inheritance can be 280.361 - indirect to an arbitrary level; thus, if the referenced <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element inherits attributes or its 280.362 - filter node specification due to its own <span class="attr-name">href</span> attribute, then the current element can 280.363 - inherit those attributes or filter node specifications. 280.364 - 280.365 - <div class="note"> 280.366 - This attribute is deprecated and should not be used, it's included for 280.367 - backwards compatibility reasons only.</div> 280.368 - <br/> 280.369 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.370 -</div> 280.371 - 280.372 -<p>Properties inherit into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.373 -element from its ancestors; properties do <em>not</em> inherit from the 280.374 -element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.375 -element.</p> 280.376 - 280.377 -<p><a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are never rendered 280.378 -directly; their only usage is as something that can be referenced using the 280.379 -<a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> 280.380 -property. The <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property does not 280.381 -apply to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element; thus, <a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are not directly rendered even 280.382 -if the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property is set to a value 280.383 -other than <span class="prop-value">none</span>, and <a href="#FilterElement"><span class="element-name">‘filter’</span></a> elements are available for referencing 280.384 -even when the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="prop-name">‘display’</span></a> property on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element or any of its ancestors is set 280.385 -to <span class="prop-value">none</span>.</p> 280.386 -<br/> 280.387 - 280.388 -<h2 id="FilterProperty">4 The <span class="prop-name">‘filter’</span> 280.389 -property</h2> 280.390 - 280.391 -<p>The description of the <span class="prop-name">‘filter’</span> property is 280.392 -as follows:</p> 280.393 - 280.394 -<div class="propdef"> 280.395 -<dl><dt id="propdef-filter"><span class="propdef-title prop-name">‘filter’</span></dt><dd> 280.396 - <table summary="filter property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI"><FuncIRI></a> | none | <a class="noxref" href="http://www.w3.org/TR/REC-CSS2/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>none</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td>All elements 280.397 - 280.398 - .</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table> 280.399 - </dd></dl> 280.400 -</div> 280.401 - 280.402 -<dl><dt><span class="prop-value"><a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/types.html#DataTypeFuncIRI"><FuncIRI></a></span></dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 280.403 - to a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element which defines the 280.404 - filter effects that shall be applied to this element. 280.405 - </dd><dt><span class="prop-value">none</span></dt><dd>Do not apply any filter effects to this element.</dd></dl> 280.406 - 280.407 -<p>If a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property references a non-existent object or the referenced 280.408 -object is not a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, then the <a href="#TermNullFilter"><span class="svg-term">null filter</span></a> will be applied instead. 280.409 -</p> 280.410 - 280.411 -<h3>How the 'filter' property applies to content formatted by CSS (e.g HTML)</h3> 280.412 -<p> 280.413 -The application of the <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property to an element formatted by CSS establishes a pseudo-stacking-context the same way 280.414 -that CSS <a href="http://www.w3.org/TR/css3-color/#transparency">'opacity'</a> does, 280.415 -and all the element's boxes are rendered together as a group with the filter effect applied to the group as a whole. 280.416 -</p> 280.417 -<p> 280.418 -The <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property has no effect on the geometry of the target element's CSS boxes, even though <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> can cause painting outside of an element's border-box. 280.419 -</p> 280.420 -<p> 280.421 -The compositing model follows the <a href="http://www.w3.org/TR/SVG11/render.html#Introduction">SVG compositing model</a>: 280.422 -first any filter effect is applied, then any clipping, masking and/or group opacity. 280.423 -These effects all apply after any other CSS effects such as 'clip'. As per SVG, the application of <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> has no effect on mouse event hit-testing. 280.424 -</p> 280.425 - 280.426 -<br/> 280.427 - 280.428 - 280.429 -<h2 id="FilterEffectsRegion">5 Filter effects region</h2> 280.430 - 280.431 -<p>A <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.432 -element can define a region on the canvas to which a given filter effect 280.433 -applies and can provide a resolution for any intermediate continuous tone 280.434 -images used to process any raster-based <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>. 280.435 - 280.436 -<h3 id="filter-margins">5.1 Filter Region extensions</h3> 280.437 - 280.438 -<p>In <a href="#ref-svg11">SVG 1.1</a>, a <span class="element">filter</span> 280.439 -defines the area upon which it applies. This makes it difficult to develop a 280.440 -generic filter that can be applied to arbitrary graphics, since the filter 280.441 -must define a large enough area to cover any graphical object to which it is 280.442 -applied. An example of this is a generic "drop shadow" filter, which is 280.443 -commonly specified as a combination of a Gaussian blur <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a>) that is offset <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a>) and then composed <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a>) with the original source graphic. 280.444 -Since the shadow has to extend beyond the original graphic's boundaries, the 280.445 -filter must be defined to have a larger area than the original graphic. 280.446 -Overestimating this margin has a negative effect on performance, since the 280.447 -complex filter operation has to touch a larger amount of user space (ie. 280.448 -pixels). </p> 280.449 - 280.450 -<p>In order to solve this problem this spec allows additional control over 280.451 -the filter region. The outer filter region is expressed by delta to the 280.452 -<a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, 280.453 -<a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 280.454 -<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, 280.455 -<a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> 280.456 - of the input filter region. </p> 280.457 - 280.458 -<p>In particular, the <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a>, <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a>, 280.459 -<a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> are 280.460 -added to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. The <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a> specifies the coordinate space of 280.461 -the margin attributes, which are used to increase or decrease the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element's 280.462 -<a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, 280.463 -<a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 280.464 -<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> and 280.465 -<a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> 280.466 -attributes (once they have been calculated). The <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> specifies the units for the 280.467 -new margin attributes on the <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>, also named 280.468 -<a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, 280.469 -<a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, 280.470 -<a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, 280.471 -<a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a>. 280.472 -These margins attribute override those set on the parent <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 280.473 -Note that this doesn't mean that a can expand the filter region itself, just that the 280.474 -coordinate system used for filter primitive's margin attributes can be 280.475 -different than the one used for the margin attributes on the 280.476 -<a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. </p> 280.477 - 280.478 -<p>An example of the new attributes, which defines a generic drop shadow 280.479 -filter: </p> 280.480 -<pre class="examplesource"> <filter id="dropShadow" x="0" y="0" width="1" height="1" 280.481 - filterMarginUnits="userSpaceOnUse" 280.482 - mx="0" my="0" mw="5" mh="5" > 280.483 - <feGaussianBlur stdDeviation="2" in="SourceAlpha" /> 280.484 - <feOffset dx="2" /> 280.485 - <feMerge> 280.486 - <feMergeNode /> 280.487 - <feMergeNode in="SourceGraphic" /> 280.488 - </feMerge> 280.489 - </filter> </pre> 280.490 - 280.491 -<p>In the above example, the filter region by default covers the entire 280.492 -bounds of the object (which is not enough to show the shadow). Adding the new 280.493 -margins extends the width and height by 5 user units each, which is always 280.494 -enough to display the blur (which has a standard deviation of 2 user units) 280.495 -and offset (which is another 2 units). </p> 280.496 - 280.497 -The <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.498 -element has the following attributes which work together to define the filter 280.499 -effects region:</p> 280.500 - 280.501 - <dl class="definitions unemphasized-names"><dt id="FilterUnitsAttribute"><a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a></dt><dd> 280.502 - <p>Defines the coordinate system for attributes <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 280.503 - <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>.</p> 280.504 - 280.505 - <p>If <span class="attr-value">filterUnits="userSpaceOnUse"</span>, <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 280.506 - <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> represent values in the current user coordinate 280.507 - system in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element is referenced (i.e., the 280.508 - user coordinate system for the element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.509 - element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property).</p> 280.510 - 280.511 - <p>If <span class="attr-value">filterUnits="objectBoundingBox"</span>, then <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, 280.512 - <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> represent fractions or percentages of the 280.513 - bounding box on the referencing element (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).</p> 280.514 - 280.515 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> is <span class="attr-value">objectBoundingBox</span>.</p> 280.516 - 280.517 - <p><span class="anim-target">Animatable: yes.</span></p> 280.518 - </dd><dt id="FilterRegionXYWidthHeightAttributes"><a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a></dt><dd> 280.519 - <p>These attributes define a rectangular region on the canvas to which this filter applies.</p> 280.520 - <p>The amount of memory and processing time required to apply the filter are 280.521 - related to the size of this rectangle and the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute of the filter.</p> 280.522 - <p>The coordinate system for these attributes depends on the value for attribute <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a>.</p> 280.523 - <p>The bounds of this rectangle act as a hard clipping region for each <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> 280.524 - included with a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element; thus, if the effect of 280.525 - a given filter primitive would extend beyond the bounds of the rectangle 280.526 - (this sometimes happens when using a <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive with a 280.527 - very large <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>), parts of the effect will get clipped.</p> 280.528 - 280.529 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a> and <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> is <span class="attr-value">-10%</span>.</p> 280.530 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> is <span class="attr-value">120%</span>.</p> 280.531 - <p>Negative or zero values for <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> or <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> disable rendering of the element which 280.532 - referenced the filter. </p> 280.533 - 280.534 - <p><span class="anim-target">Animatable: yes.</span></p> 280.535 - </dd><dt id="FilterMarginAttribute"><a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a></dt><dd> 280.536 - <p>Defines the coordinate system for attributes <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, 280.537 - <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a>.</p> 280.538 - <p>If <span class="attr-value">filterMarginUnits="userSpaceOnUse"</span>, <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, 280.539 - <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> represent values in the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> 280.540 - in place at the time when the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element is referenced (i.e., the 280.541 - <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element referencing the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.542 - element via a <a href="#FilterProperty"><span class="prop-name">‘filter’</span></a> property).</p> 280.543 - <p>If <span class="attr-value">filterMarginUnits="objectBoundingBox"</span>, then <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, 280.544 - <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> represent fractions or percentages of the 280.545 - on the referencing element (see <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#ObjectBoundingBoxUnits"><span class="svg-term">object bounding box units</span></a>).</p> 280.546 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a> is 280.547 - <span class="attr-value">userSpaceOnUse</span>.</p> 280.548 - <p><span class="anim-target">Animatable: yes.</span></p> 280.549 - </dd><dt id="FilterRegionMyAttribute"><a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a></dt><dd> 280.550 - <p>Defines the deltas to the <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> of the filter region.</p> 280.551 - 280.552 - <p>After the <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a>, <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> have been calculated for the 280.553 - <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> the <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a>, <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> are calculated and added 280.554 - to the <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a>. <span class="requirement" id="assert_OORFilterRegion">If the resulting 280.555 - <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> has a negative or zero width or height, the rendering of the element which 280.556 - referenced the filter is disabled.</span></p> 280.557 - 280.558 - <p>The coordinate system for these attributes depends on the value for 280.559 - attribute <a href="#FilterElementFilterMarginUnitsAttribute"><span class="attr-name">‘filterMarginUnits’</span></a>.</p> 280.560 - 280.561 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#FilterElementMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterElementMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterElementMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterElementMhAttribute"><span class="attr-name">‘mh’</span></a> is <span class="attr-value">0</span>.</p> 280.562 - <p><span class="anim-target">Animatable: yes.</span></p> 280.563 - </dd><dt id="FilterRegionFilterRes"><a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a></dt><dd> 280.564 - <p>Defines the width and height of the intermediate 280.565 - images in pixels. If not provided, then a reasonable default resolution 280.566 - appropriate for the target device will be used. (For displays, an 280.567 - appropriate display resolution, preferably the current display's pixel 280.568 - resolution, is the default. For printing, an appropriate common printer 280.569 - resolution, such as 1200dpi, is the default.)</p> 280.570 - <p>Care should be taken when assigning a non-default value to this 280.571 - attribute. Too small of a value may result in unwanted pixelation in the 280.572 - result. Too large of a value may result in slow processing and large 280.573 - memory usage.</p> 280.574 - <p><span class="requirement" id="assert_OORFilterRegion">Negative or zero values disable rendering of the element which referenced the filter.</span></p> 280.575 - <p><span class="anim-target">Animatable: yes.</span></p> 280.576 - </dd></dl> 280.577 - 280.578 -<p>Note that both of the two possible value for <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> (i.e., <span class="attr-value">objectBoundingBox</span> and <span class="attr-value">userSpaceOnUse</span>) result in a <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a> whose 280.579 -coordinate system has its X-axis and Y-axis each parallel to the X-axis and 280.580 -Y-axis, respectively, of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserCoordinateSystem"><span class="svg-term">user coordinate system</span></a> for the element to which 280.581 -the filter will be applied.</p> 280.582 - 280.583 -<p class="note implementation">Sometimes implementers can achieve faster performance when the filter 280.584 -region can be mapped directly to device pixels; thus, for best performance on 280.585 -display devices, it is suggested that authors define their region such that 280.586 -the user agent can align the filter region pixel-for-pixel with the 280.587 -background. In particular, for best filter effects performance, avoid 280.588 -rotating or skewing the user coordinate system. Explicit values for attribute 280.589 -<a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> can either help or harm performance. 280.590 -If <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> is smaller than the automatic 280.591 -(i.e., default) filter resolution, then filter effect might have faster 280.592 -performance (usually at the expense of quality). If <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> is larger than the automatic (i.e., 280.593 -default) filter resolution, then filter effects performance will usually be 280.594 -slower.</p> 280.595 - 280.596 -<p class="note authoring">It is often necessary to provide padding space because the filter effect 280.597 -might impact bits slightly outside the tight-fitting on a given 280.598 -object. For these purposes, it is possible to provide negative percentage 280.599 -values for <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a>, <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> and percentages values greater than <span class="attr-value">100%</span> for 280.600 -<a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a>. This, for example, is why the defaults for 280.601 -the filter effects region are <span class="attr-value">x="-10%" y="-10%" width="120%" 280.602 -height="120%"</span>.</p> 280.603 - 280.604 -<h2 id="AccessBackgroundImage">6 Accessing the background image</h2> 280.605 - 280.606 -<p id="AccessingBackgroundImage">Two possible pseudo input images for filter effects are <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a>, which each represent an image 280.607 -snapshot of the canvas under the filter region at the time that the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element 280.608 -is invoked. <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> represents both 280.609 -the color values and alpha channel of the canvas (i.e., RGBA pixel values), 280.610 -whereas <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> represents only the 280.611 -alpha channel.</p> 280.612 - 280.613 -<p>Implementations 280.614 -will often need to maintain supplemental background image buffers in order to 280.615 -support the <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images. Sometimes, 280.616 -the background image buffers will contain an in-memory copy of the 280.617 -accumulated painting operations on the current canvas.</p> 280.618 - 280.619 -<p>Because in-memory image buffers can take up significant system resources, 280.620 -content must explicitly indicate to the 280.621 -user agent that the document needs access to the background image before <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images can be used. 280.622 -</p> 280.623 - 280.624 -A background image is what's been <i>rendered before</i> the current element. 280.625 - For SVG, that uses the painter's algorithm, <i>rendered before</i> means 280.626 -all of the prior elements in pre order traversal previous to the element to 280.627 -which the filter is applied. 280.628 - 280.629 -<p>The property which enables access to the background image is 280.630 -<a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a>:</p> 280.631 - 280.632 - 280.633 -<div class="propdef"> 280.634 -<dl><dt id="EnableBackgroundProperty"><span class="propdef-title prop-name">‘enable-background’</span></dt><dd> 280.635 - <table summary="enable-background property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>accumulate | new [ <x> <y> <width> 280.636 - <height> ] | <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>accumulate</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td>Typically elements that can contain renderable elements. 280.637 - language is responsible for defining the applicable set of 280.638 - elements. 280.639 - For SVG: <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a></td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>no</td></tr></tbody></table> 280.640 - </dd></dl> 280.641 -</div> 280.642 -<p><a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> is only 280.643 - applicable to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> 280.644 - and specifies how the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserAgent"><span class="svg-term">SVG user agent</span></a> manages the accumulation 280.645 - of the background image.</p> 280.646 - 280.647 -<p>A value of <strong>new</strong> indicates two things:</p> 280.648 -<ul><li>It enables the ability of children of the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 280.649 - element to access the background image.</li><li>It indicates that a new (i.e., initially transparent black) background 280.650 - image canvas is established and that (in effect) all children of the 280.651 - current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 280.652 - element shall be rendered into the new background image canvas in 280.653 - addition to being rendered onto the target device.</li></ul> 280.654 - 280.655 -<p>A meaning of <span class="attr-value">enable-background: accumulate</span> (the 280.656 -initial/default value) depends on context:</p> 280.657 -<ul><li>If an ancestor <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 280.658 - element has a property value of <span class="attr-value">'enable-background:new'</span>, then all 280.659 - renderable child elements of the current <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 280.660 - element are rendered both onto the parent <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 280.661 - element's background image canvas and onto the target device.</li><li>Otherwise, there is no current background image canvas, so it is only 280.662 - necessary to render <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics elements</span></a> 280.663 - the renderable elements onto the target device. (No need to render to the 280.664 - background image canvas.)</li></ul> 280.665 - 280.666 -<p>If a filter effect specifies either the <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> or the 280.667 - <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> pseudo input images and no 280.668 -ancestor <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 280.669 - element has a property value of <span class="attr-value">'enable-background:new'</span>, then the background 280.670 -image request is technically in error. Processing will proceed without 280.671 -interruption (i.e., no error message) and a transparent black image shall be 280.672 -provided in response to the request.</p> 280.673 - 280.674 -<p>The optional 280.675 -<strong><x>,<y>,<width>,<height></strong> 280.676 -<span class="specissue">ISSUE: define the type of each of these, probably <number></span> 280.677 - parameters 280.678 -on the <span class="attr-value">new</span> value indicate the subregion of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a> 280.679 - element to which <a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> applies' user space where access to the 280.680 -background image is allowed to happen. These parameters enable the user 280.681 -agent potentially to allocate smaller temporary image buffers than the 280.682 -default values, which might require the user agent to allocate buffers as 280.683 -large as the current viewport. Thus, the values 280.684 -<x>,<y>,<width>,<height> act as a clipping rectangle 280.685 -on the background image canvas. If more than zero but less than four of the 280.686 -values <x>,<y>,<width> and <height> are specified or 280.687 -if negative or zero values are specified for <width> or <height>, 280.688 -<a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> and <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> are processed as if background 280.689 -image processing were not enabled. </p> 280.690 - 280.691 -<h3 id="AccessBackgroundImageSVG">6.1 Accessing the background image in SVG</h3> 280.692 -<p>This section only applies to the SVG definition of enable-background.</p> 280.693 - 280.694 -<p>Assume you have an element E in the document and that E has a series of 280.695 -ancestors A<sub>1</sub> (its immediate parent), A<sub>2</sub>, etc. (Note: 280.696 -A<sub>0</sub> is E.) Each ancestor A<sub>i</sub> will have a corresponding 280.697 -temporary background image offscreen buffer BUF<sub>i</sub>. The contents of 280.698 -the <em>background image</em> available to a <a href="#FilterElement"><span class="element-name">‘filter’</span></a> referenced by E is defined as 280.699 -follows:</p> 280.700 -<ul><li>Find the element A<sub>i</sub> with the smallest subscript i (including 280.701 - A<sub>0</sub>=E) for which the <a href="#EnableBackgroundProperty"><span class="prop-name">‘enable-background’</span></a> property has the value 280.702 - <span class="prop-value">new</span>. (Note: if there is no such ancestor 280.703 - element, then there is no background image available to E, in which case 280.704 - a transparent black image will be used as E's background image.)</li><li>For each A<sub>i</sub> (from i=n to 1), initialize BUF<sub>i</sub> to 280.705 - transparent black. Render all children of A<sub>i</sub> up to but not 280.706 - including A<sub>i-1</sub> into BUF<sub>i</sub>. The children are painted, 280.707 - then filtered, clipped, masked and composited using the various painting, 280.708 - filtering, clipping, masking and object opacity settings on the given 280.709 - child. Any filter effects, masking and group opacity that might be set on 280.710 - A<sub>i</sub> do <em>not</em> apply when rendering the children of 280.711 - A<sub>i</sub> into BUF<sub>i</sub>.<br/> 280.712 - (Note that for the case of A<sub>0</sub>=E, the graphical contents of E 280.713 - are not rendered into BUF<sub>1</sub> and thus are not part of the 280.714 - background image available to E. Instead, the graphical contents of E are 280.715 - available via the <a href="#SourceGraphic">SourceGraphic</a> and <a href="#SourceAlpha">SourceAlpha</a> pseudo input images.)</li><li>Then, for each A<sub>i</sub> (from i=1 to n-1), composite 280.716 - BUF<sub>i</sub> into BUF<sub>i+1</sub>.</li><li>The accumulated result (i.e., BUF<sub>n</sub>) represents the 280.717 - background image available to E.</li></ul> 280.718 - 280.719 -<pre class="xml"><?xml version="1.0" standalone="no"?> 280.720 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 280.721 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 280.722 -<svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270" 280.723 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 280.724 - <title>Example enable-background01</title> 280.725 - <desc>This test case shows five pictures which illustrate the rules 280.726 - for background image processing.</desc> 280.727 - 280.728 - <defs> 280.729 - <filter id="ShiftBGAndBlur" 280.730 - filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 280.731 - <desc> 280.732 - This filter discards the SourceGraphic, if any, and just produces 280.733 - a result consisting of the BackgroundImage shifted down 125 units 280.734 - and then blurred. 280.735 - </desc> 280.736 - <feOffset in="BackgroundImage" dx="0" dy="125" /> 280.737 - <feGaussianBlur stdDeviation="8" /> 280.738 - </filter> 280.739 - <filter id="ShiftBGAndBlur_WithSourceGraphic" 280.740 - filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 280.741 - <desc> 280.742 - This filter takes the BackgroundImage, shifts it down 125 units, blurs it, 280.743 - and then renders the SourceGraphic on top of the shifted/blurred background. 280.744 - </desc> 280.745 - <feOffset in="BackgroundImage" dx="0" dy="125" /> 280.746 - <feGaussianBlur stdDeviation="8" result="blur" /> 280.747 - <feMerge> 280.748 - <feMergeNode in="blur"/> 280.749 - <feMergeNode in="SourceGraphic"/> 280.750 - </feMerge> 280.751 - </filter> 280.752 - </defs> 280.753 - 280.754 - <g transform="translate(0,0)"> 280.755 - <desc>The first picture is our reference graphic without filters.</desc> 280.756 - <rect x="25" y="25" width="100" height="100" fill="red"/> 280.757 - <g opacity=".5"> 280.758 - <circle cx="125" cy="75" r="45" fill="green"/> 280.759 - <polygon points="160,25 160,125 240,75" fill="blue"/> 280.760 - </g> 280.761 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 280.762 - </g> 280.763 - 280.764 - <g enable-background="new" transform="translate(270,0)"> 280.765 - <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc> 280.766 - <rect x="25" y="25" width="100" height="100" fill="red"/> 280.767 - <g opacity=".5"> 280.768 - <circle cx="125" cy="75" r="45" fill="green"/> 280.769 - <polygon points="160,25 160,125 240,75" fill="blue"/> 280.770 - </g> 280.771 - <g filter="url(#ShiftBGAndBlur)"/> 280.772 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 280.773 - </g> 280.774 - 280.775 - <g enable-background="new" transform="translate(540,0)"> 280.776 - <desc>The third invokes ShiftBGAndBlur on the inner group.</desc> 280.777 - <rect x="25" y="25" width="100" height="100" fill="red"/> 280.778 - <g filter="url(#ShiftBGAndBlur)" opacity=".5"> 280.779 - <circle cx="125" cy="75" r="45" fill="green"/> 280.780 - <polygon points="160,25 160,125 240,75" fill="blue"/> 280.781 - </g> 280.782 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 280.783 - </g> 280.784 - 280.785 - <g enable-background="new" transform="translate(810,0)"> 280.786 - <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc> 280.787 - <rect x="25" y="25" width="100" height="100" fill="red"/> 280.788 - <g opacity=".5"> 280.789 - <circle cx="125" cy="75" r="45" fill="green"/> 280.790 - <polygon points="160,25 160,125 240,75" fill="blue" 280.791 - filter="url(#ShiftBGAndBlur)"/> 280.792 - </g> 280.793 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 280.794 - </g> 280.795 - 280.796 - <g enable-background="new" transform="translate(1080,0)"> 280.797 - <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc> 280.798 - <rect x="25" y="25" width="100" height="100" fill="red"/> 280.799 - <g opacity=".5"> 280.800 - <circle cx="125" cy="75" r="45" fill="green"/> 280.801 - <polygon points="160,25 160,125 240,75" fill="blue" 280.802 - filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/> 280.803 - </g> 280.804 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 280.805 - </g> 280.806 -</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/enable-background-01.png"/></td></tr></table><p class="view-as-svg"><a href="examples/enable-background-01.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 280.807 - 280.808 -<p>The example above contains five parts, described as follows:</p> 280.809 -<ol><li>The first set is the reference graphic. The reference graphic consists 280.810 - of a red rectangle followed by a 50% transparent <span class="element-name">‘g’</span> 280.811 - element. Inside the <span class="element-name">‘g’</span> 280.812 - is a green circle that partially overlaps the rectangle and a a blue 280.813 - triangle that partially overlaps the circle. The three objects are then 280.814 - outlined by a rectangle stroked with a thin blue line. No filters are 280.815 - applied to the reference graphic.</li><li>The second set enables background image processing and adds an empty 280.816 - <span class="element-name">‘g’</span> 280.817 - element which invokes the ShiftBGAndBlur filter. This filter takes the 280.818 - current accumulated background image (i.e., the entire reference graphic) 280.819 - as input, shifts its offscreen down, blurs it, and then writes the result 280.820 - to the canvas. Note that the offscreen for the filter is initialized to 280.821 - transparent black, which allows the already rendered rectangle, circle 280.822 - and triangle to show through after the filter renders its own result to 280.823 - the canvas.</li><li>The third set enables background image processing and instead invokes 280.824 - the ShiftBGAndBlur filter on the inner <span class="element-name">‘g’</span> 280.825 - element. The accumulated background at the time the filter is applied 280.826 - contains only the red rectangle. Because the children of the inner <span class="element-name">‘g’</span> 280.827 - (i.e., the circle and triangle) are not part of the inner <span class="element-name">‘g’</span> 280.828 - element's background and because ShiftBGAndBlur ignores SourceGraphic, 280.829 - the children of the inner <span class="element-name">‘g’</span> 280.830 - do not appear in the result.</li><li>The fourth set enables background image processing and invokes the 280.831 - ShiftBGAndBlur on the <span class="element-name">‘polygon’</span> 280.832 - element that draws the triangle. The accumulated background at the time 280.833 - the filter is applied contains the red rectangle plus the green circle 280.834 - ignoring the effect of the <span class="prop-name">‘opacity’</span> 280.835 - property on the inner <span class="element-name">‘g’</span> 280.836 - element. (Note that the blurred green circle at the bottom does not let 280.837 - the red rectangle show through on its left side. This is due to ignoring 280.838 - the effect of the <span class="prop-name">‘opacity’</span> 280.839 - property.) Because the triangle itself is not part of the accumulated 280.840 - background and because ShiftBGAndBlur ignores SourceGraphic, the triangle 280.841 - does not appear in the result.</li><li>The fifth set is the same as the fourth except that filter 280.842 - ShiftBGAndBlur_WithSourceGraphic is invoked instead of ShiftBGAndBlur. 280.843 - ShiftBGAndBlur_WithSourceGraphic performs the same effect as 280.844 - ShiftBGAndBlur, but then renders the SourceGraphic on top of the shifted, 280.845 - blurred background image. In this case, SourceGraphic is the blue 280.846 - triangle; thus, the result is the same as in the fourth case except that 280.847 - the blue triangle now appears.</li></ol> 280.848 - 280.849 - 280.850 -<h2 id="FilterPrimitivesOverview">7 Filter primitives overview</h2> 280.851 - 280.852 -<h3 id="FilterPrimitivesOverviewIntro">7.1 Overview</h3> 280.853 - 280.854 -<p>This section describes the various filter primtives that can be assembled 280.855 -to achieve a particular filter effect.</p> 280.856 - 280.857 -<p>Unless otherwise stated, all image filters operate on premultiplied RGBA 280.858 -samples. Filters which work more naturally on non-premultiplied data 280.859 -(<a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> and <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a>) will temporarily undo and redo 280.860 -premultiplication as specified. All raster effect filtering operations take 1 280.861 -to N input RGBA images, additional attributes as parameters, and produce a 280.862 -single output RGBA image.</p> 280.863 - 280.864 -<p>The RGBA result from each filter primitive will be clamped into the 280.865 -allowable ranges for colors and opacity values. Thus, for example, the result 280.866 -from a given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will have any negative color values or opacity 280.867 -values adjusted up to color/opacity of zero.</p> 280.868 - 280.869 -<p id="filtersColorSpace">The color space in which a particular <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> performs its 280.870 -operations is determined by the value of property <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> on the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter 280.871 -primitive</span></a>. A different property, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> determines the color space for 280.872 -other color operations. Because these two properties have different initial 280.873 -values (<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> has an 280.874 -initial value of <span class="prop-value">linearRGB</span> whereas <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> has an initial value of <span class="prop-value">sRGB</span>), in some cases to achieve certain results 280.875 -(e.g., when coordinating gradient interpolation with a filtering operation) 280.876 -it will be necessary to explicitly set <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> to <span class="prop-value">linearRGB</span> or <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> to <span class="prop-value">sRGB</span> on particular elements. Note that the examples 280.877 -below do not explicitly set either <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="prop-name">‘color-interpolation’</span></a> or <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a>, so the initial values for these properties apply to the examples.</p> 280.878 - 280.879 -<p><span class="requirement" id="assert_undefinedPixels">Sometimes <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> result in undefined pixels. For example, 280.880 -filter primitive <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> can shift an image down and to the 280.881 -right, leaving undefined pixels at the top and left. In these cases, the 280.882 -undefined pixels are set to transparent black.</span></p> 280.883 - 280.884 -<h3 id="CommonAttributes">7.2 Common attributes</h3> 280.885 - 280.886 -<p>The following attributes are available for most of the filter 280.887 -primitives:</p> 280.888 - 280.889 -<div class="adef-list"> 280.890 -<p><em>Attribute definitions:</em></p> 280.891 -<dl><dt id="FilterPrimitiveXAttribute"> 280.892 - <span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd><p>The minimum x coordinate for the subregion which restricts 280.893 - calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 280.894 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">x</span> is <span class="attr-value">0%</span>.</p> 280.895 - <p><span class="anim-target">Animatable: yes.</span></p> 280.896 - </dd><dt id="FilterPrimitiveYAttribute"> 280.897 - <span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd><p>The minimum y coordinate for the subregion which restricts 280.898 - calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. </p> 280.899 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">y</span> is <span class="attr-value">0%</span>.</p> 280.900 - <p><span class="anim-target">Animatable: yes.</span></p> 280.901 - </dd><dt id="FilterPrimitiveWidthAttribute"> 280.902 - <span class="adef">width</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd><p>The width of the subregion which restricts calculation and rendering 280.903 - of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 280.904 - <p>A negative or zero value disables the effect of the given filter 280.905 - primitive (i.e., the result is a transparent black image).</p> 280.906 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">width</span> is <span class="attr-value">100%</span>.</p> 280.907 - <p><span class="anim-target">Animatable: yes.</span></p> 280.908 - </dd><dt id="FilterPrimitiveHeightAttribute"> 280.909 - <span class="adef">height</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd><p>The height of the subregion which restricts calculation and rendering 280.910 - of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. See <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 280.911 - <p>A negative or zero value disables the effect of the given filter 280.912 - primitive (i.e., the result is a transparent black image).</p> 280.913 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">height</span> is <span class="attr-value">100%</span>.</p> 280.914 - <p><span class="anim-target">Animatable: yes.</span></p> 280.915 - </dd><dt id="FilterPrimitiveMxAttribute"> 280.916 - <span class="adef">mx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd><p>The margin delta for the x coordinate of the subregion which 280.917 - restricts calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 280.918 - see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 280.919 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mx</span> is <span class="attr-value">0</span>.</p> 280.920 - <p><span class="anim-target">Animatable: yes.</span></p> 280.921 - </dd><dt id="FilterPrimitiveMyAttribute"> 280.922 - <span class="adef">my</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeCoordinate"><coordinate></a></em>"</dt><dd><p>The margin delta for the y coordinate of the subregion which 280.923 - restricts calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 280.924 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">my</span> is <span class="attr-value">0</span>.</p> 280.925 - <p><span class="anim-target">Animatable: yes.</span></p> 280.926 - </dd><dt id="FilterPrimitiveMwAttribute"> 280.927 - <span class="adef">mw</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd><p>The margin delta for the width of the subregion which restricts 280.928 - calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 280.929 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mw</span> is <span class="attr-value">0</span>.</p> 280.930 - <p><span class="anim-target">Animatable: yes.</span></p> 280.931 - </dd><dt id="FilterPrimitiveMhAttribute"> 280.932 - <span class="adef">mh</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeLength"><length></a></em>"</dt><dd><p>The margin delta for the height of the subregion which restricts 280.933 - calculation and rendering of the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, see <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 280.934 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <span class="attr-name">mh</span> is <span class="attr-value">0</span>.</p> 280.935 - <p><span class="anim-target">Animatable: yes.</span></p> 280.936 - </dd><dt id="FilterPrimitiveResultAttribute"> 280.937 - <span class="adef">result</span> = 280.938 - "<em><a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a></em>"</dt><dd><p>Assigned name for this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. If supplied, then graphics 280.939 - that result from processing this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> can be referenced by 280.940 - an <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute on a subsequent filter 280.941 - primitive within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. If no value is 280.942 - provided, the output will only be available for re-use as the implicit 280.943 - input into the next <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> if that <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> provides 280.944 - no value for its <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute.</p> 280.945 - <p>Note that a <a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a> is not an XML 280.946 - ID; instead, a <a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a> is only 280.947 - meaningful within a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element and thus have only 280.948 - local scope. It is legal for the same 280.949 - <a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a> to appear multiple times 280.950 - within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. When referenced, the 280.951 - <a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a> will use the closest 280.952 - preceding <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> with the given result.</p> 280.953 - <p><span class="anim-target">Animatable: yes.</span></p> 280.954 - </dd><dt id="FilterPrimitiveInAttribute"> 280.955 - <span class="adef">in</span> = "<em><a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> | <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> | <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> | <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a> | <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> | <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> | 280.956 - <a href="#TermFilterPrimitiveReference"><filter-primitive-reference></a></em>"</dt><dd><p>Identifies input for the given filter primitive. The value can be 280.957 - either one of six keywords or can be a string which matches a previous 280.958 - <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a> attribute value within the same <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.959 - element. If no value is provided and this is the first <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 280.960 - then this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will use <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> 280.961 - as its input. If no value is provided and this is a subsequent <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>, 280.962 - then this <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> will use the result from the 280.963 - previous <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> as its input.</p> 280.964 - <p>If the value for <span class="attr-name">result</span> appears 280.965 - multiple times within a given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element, then a reference to 280.966 - that result will use the closest preceding <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a> with the 280.967 - given value for attribute <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a>. 280.968 - Forward references to results are not allowed, and will be treated as 280.969 - if no result was specified. </p> 280.970 - <p>Definitions for the six keywords: </p> 280.971 - <dl><dt id="SourceGraphic"><span class="attr-value">SourceGraphic</span></dt><dd><p>This keyword represents the graphics elements 280.972 - that were the original input into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. For raster 280.973 - effects <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>, the graphics elements 280.974 - will be rasterized into an initially clear RGBA raster in image 280.975 - space. Pixels left untouched by the original graphic will be left 280.976 - clear. The image is specified to be rendered in linear RGBA 280.977 - pixels. The alpha channel of this image captures any 280.978 - anti-aliasing specified by SVG. (Since the raster is linear, the 280.979 - alpha channel of this image will represent the exact percent 280.980 - coverage of each pixel.)</p></dd><dt id="SourceAlpha"><span class="attr-value">SourceAlpha</span></dt><dd><p>This keyword represents the graphics elements 280.981 - that were the original input into the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 280.982 - <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> has all of the same rules 280.983 - as <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> except that only the 280.984 - alpha channel is used. The input image is an RGBA image 280.985 - consisting of implicitly black color values for the RGB channels, 280.986 - but whose alpha channel is the same as <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a>.</p> 280.987 - <p class="note implementation">If this option is 280.988 - used, then some implementations might need to rasterize the 280.989 - graphics elements 280.990 - in order to extract the alpha channel.</p> 280.991 - </dd><dt id="BackgroundImage"><span class="attr-value">BackgroundImage</span></dt><dd><p>This keyword represents an image snapshot of the canvas under 280.992 - the filter region at the time that the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element was invoked. See 280.993 - <a href="#AccessingBackgroundImage">accessing the background 280.994 - image</a>.</p> 280.995 - </dd><dt id="BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></dt><dd><p>Same as <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a> except 280.996 - only the alpha channel is used. See <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> and <a href="#AccessingBackgroundImage">accessing the background 280.997 - image</a>.</p> 280.998 - </dd><dt id="FillPaint"><span class="attr-value">FillPaint</span></dt><dd> 280.999 - <p>This keyword represents the target element <i>rendered filled</i>.</p> 280.1000 - <p>For svg this keyword represents the value of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="prop-name">‘fill’</span></a> 280.1001 - property on the target element for the filter effect.</p> 280.1002 - <p>For non-SVG cases <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> generates a transparent black image. 280.1003 - <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the current color, or if it makes sense to use the 'fill' property for this case too.</span> 280.1004 - </p> 280.1005 - <p class="note authoring">Note that text is generally painted filled, not stroked.</p> 280.1006 - <p>The <a href="#FillPaint"><span class="attr-value">FillPaint</span></a> image has conceptually infinite extent. 280.1007 - Frequently this image is opaque everywhere, but it might not be if the "paint" 280.1008 - itself has alpha, as in the case of a gradient or pattern which 280.1009 - itself includes transparent or semi-transparent parts.</p> 280.1010 - </dd><dt id="StrokePaint"><span class="attr-value">StrokePaint</span></dt><dd> 280.1011 - <p>This keyword represents the target element <i>rendered stroked</i>.</p> 280.1012 - <p>For svg this keyword represents the value of the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="prop-name">‘stroke’</span></a> 280.1013 - on the target element for the filter effect.</p> 280.1014 - <p>For non-SVG cases <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> generates a transparent black image. 280.1015 - <span class="specissue">ISSUE: Consider whether this should be e.g the CSS bounding box filled with the one of the border colors, or if it makes sense to use the 'stroke' property for this case too.</span> 280.1016 - </p> 280.1017 - <p class="note authoring">Note that text is generally painted filled, not stroked.</p> 280.1018 - <p>The <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a> image has conceptually infinite extent. 280.1019 - Frequently this image is opaque everywhere, but it 280.1020 - might not be if the "paint" 280.1021 - itself has alpha, as in the case of a gradient or pattern which 280.1022 - itself includes transparent or semi-transparent parts. 280.1023 - </p> 280.1024 - </dd></dl> 280.1025 - <p><span class="anim-target">Animatable: yes.</span></p> 280.1026 - </dd></dl> 280.1027 -</div> 280.1028 - 280.1029 -<h3 id="FilterPrimitiveSubRegion">7.3 Filter primitive subregion</h3> 280.1030 - 280.1031 - 280.1032 -<p> 280.1033 -All <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> have attributes <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, 280.1034 -<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, and <a href="#FilterPrimitiveMxAttribute"><span class="attr-name">‘mx’</span></a>, 280.1035 -<a href="#FilterPrimitiveMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterPrimitiveMwAttribute"><span class="attr-name">‘mw’</span></a> and <a href="#FilterPrimitiveMhAttribute"><span class="attr-name">‘mh’</span></a>, which 280.1036 -together identify a subregion which restricts calculation and rendering of 280.1037 -the given <a href="#TermFilterPrimitiveElement"><span class="svg-term">filter primitive</span></a>. The <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, 280.1038 -<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> attributes are defined 280.1039 -according to the same rules as other <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>' coordinate and length 280.1040 -attributes and thus represent values in the coordinate system established by 280.1041 -attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 280.1042 -The <a href="#FilterPrimitiveMxAttribute"><span class="attr-name">‘mx’</span></a>, <a href="#FilterPrimitiveMyAttribute"><span class="attr-name">‘my’</span></a>, <a href="#FilterPrimitiveMwAttribute"><span class="attr-name">‘mw’</span></a> and 280.1043 -<a href="#FilterPrimitiveMhAttribute"><span class="attr-name">‘mh’</span></a> attributes contain deltas to the corresponding 280.1044 -<a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and 280.1045 -<a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> attributes and contain values in the coordinate 280.1046 -system established by attribute <a href="#FilterElementPrimitiveMarginUnitsAttribute"><span class="attr-name">‘primitiveMarginUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 280.1047 -</p> 280.1048 - 280.1049 -<p><a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, 280.1050 -<a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> and <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> default to the union (i.e., tightest fitting bounding 280.1051 -box) of the subregions defined for all referenced nodes. If there are no 280.1052 -referenced nodes (e.g., for <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> or <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a>), or one or more of the 280.1053 -referenced nodes is a standard input (one of <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a>, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>, <a href="#BackgroundImage"><span class="attr-value">BackgroundImage</span></a>, <a href="#BackgroundAlpha"><span class="attr-value">BackgroundAlpha</span></a>, 280.1054 -<a href="#FillPaint"><span class="attr-value">FillPaint</span></a> or <a href="#StrokePaint"><span class="attr-value">StrokePaint</span></a>), or for 280.1055 -<a href="#feTileElement"><span class="element-name">‘feTile’</span></a> 280.1056 -(which is special because its principal function is to replicate the 280.1057 -referenced node in X and Y and thereby produce a usually larger result), the 280.1058 -default subregion is <span class="attr-value">0%, 0%, 100%, 100%</span>, where percentages are relative to the 280.1059 -dimensions of the <a href="#FilterEffectsRegion"><span class="svg-term">filter region</span></a>.</p> 280.1060 - 280.1061 -<p>After the <strong>x</strong>, <strong>y</strong>, <strong>width</strong>, 280.1062 -<strong>height</strong> have been calculated for the filter primitive 280.1063 -subregion the margin attributes <strong>mx</strong>, <strong>my</strong>, 280.1064 -<strong>mw</strong>, <strong>mh</strong> are calculated and added to the 280.1065 -former to make the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. If the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive 280.1066 -subregion</span></a> has a negative or zero width or height, the effect of the filter 280.1067 -primitive is disabled. </p> 280.1068 - 280.1069 -<p>The <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> act as a hard clip clipping rectangle for 280.1070 -the filter primitive.</p> 280.1071 - 280.1072 -<p>All intermediate offscreens are defined to not exceed the intersection of 280.1073 -the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> with the <a href="#FilterEffectsRegion">filter 280.1074 -region</a>. The filter region and any of the filter primitive subregions are 280.1075 -to be set up such that all offscreens are made big enough to accommodate any 280.1076 -pixels which even partly intersect with either the filter region or the 280.1077 -filter primitive subregions.</p> 280.1078 - 280.1079 -<p><a href="#feTileElement"><span class="element-name">‘feTile’</span></a> references a previous filter primitive and then stitches the tiles together 280.1080 -based on the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> of the referenced filter primitive in 280.1081 -order to fill its own <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>.</p> 280.1082 - 280.1083 -<pre class="xml"><svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"> 280.1084 - <defs> 280.1085 - <filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox"> 280.1086 - <feFlood x="25%" y="25%" width="50%" height="50%" 280.1087 - flood-color="green" flood-opacity="0.75"/> 280.1088 - </filter> 280.1089 - <filter id="blend" primitiveUnits="objectBoundingBox"> 280.1090 - <feBlend x="25%" y="25%" width="50%" height="50%" 280.1091 - in2="SourceGraphic" mode="multiply"/> 280.1092 - </filter> 280.1093 - <filter id="merge" primitiveUnits="objectBoundingBox"> 280.1094 - <feMerge x="25%" y="25%" width="50%" height="50%"> 280.1095 - <feMergeNode in="SourceGraphic"/> 280.1096 - <feMergeNode in="FillPaint"/> 280.1097 - </feMerge> 280.1098 - </filter> 280.1099 - </defs> 280.1100 - 280.1101 - <g fill="none" stroke="blue" stroke-width="4"> 280.1102 - <rect width="200" height="200"/> 280.1103 - <line x2="200" y2="200"/> 280.1104 - <line x1="200" y2="200"/> 280.1105 - </g> 280.1106 - <circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/> 280.1107 - 280.1108 - <g transform="translate(200 0)"> 280.1109 - <g fill="none" stroke="blue" stroke-width="4"> 280.1110 - <rect width="200" height="200"/> 280.1111 - <line x2="200" y2="200"/> 280.1112 - <line x1="200" y2="200"/> 280.1113 - </g> 280.1114 - <circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/> 280.1115 - </g> 280.1116 - 280.1117 - <g transform="translate(0 200)"> 280.1118 - <g fill="none" stroke="blue" stroke-width="4"> 280.1119 - <rect width="200" height="200"/> 280.1120 - <line x2="200" y2="200"/> 280.1121 - <line x1="200" y2="200"/> 280.1122 - </g> 280.1123 - <circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/> 280.1124 - </g> 280.1125 -</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/filtersubregion00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/filtersubregion00.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 280.1126 - 280.1127 -<p> 280.1128 -In the example above there are three rects that each have a cross and a circle in them. The circle element in each one has a different filter applied, but with the same <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. The filter output should be limited to the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>, so you should never see the circles themselves, just the rects that make up the <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a>. 280.1129 -</p> 280.1130 -<ul><li> 280.1131 -The upper left rect shows an <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> with <span class="attr-name">flood-opacity</span>="<span class="attr-value">75%</span>" so the cross should be visible through the green rect in the middle. 280.1132 -</li><li> 280.1133 -The lower left rect shows an <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> that merges <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> with <a href="#FillPaint"><span class="attr-value">FillPaint</span></a>. Since the circle has <span class="attr-name">fill-opacity</span>="<span class="attr-value">0.5</span>" it will also be transparent so that the cross is visible through the green rect in the middle. 280.1134 -</li><li>The upper right rect shows an <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> that has <span class="attr-name">mode</span>="<span class="attr-value">multiply</span>". Since the circle in this case isn't transparent the result is totally opaque. The rect should be dark green and the cross should not be visible through it. 280.1135 -</li></ul> 280.1136 - 280.1137 - 280.1138 - 280.1139 -<h2 id="LightSourceDefinitions">8 Light source elements and properties</h2> 280.1140 - 280.1141 -<h3 id="LightSourceIntro">8.1 Introduction</h3> 280.1142 - 280.1143 -<p>The following sections define the elements that define a light source, <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 280.1144 -<a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> and <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>, 280.1145 -and property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>, which defines the color of the 280.1146 -light.</p> 280.1147 - 280.1148 -<h3 id="feDistantLightElement">8.2 Light source <span class="element-name">‘feDistantLight’</span></h3> 280.1149 - 280.1150 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDistantLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1151 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#feDistantLightAzimuthAttribute"><span class="attr-name">‘azimuth’</span></a></li><li><a href="#feDistantLightElevationAttribute"><span class="attr-name">‘elevation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDistantLightElement">SVGFEDistantLightElement</a></li></ul></dd></dl></div> 280.1152 - 280.1153 -<div class="adef-list"> 280.1154 -<p><em>Attribute definitions:</em></p> 280.1155 -<dl><dt id="feDistantLightAzimuthAttribute"><span class="adef">azimuth</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Direction angle for the light source on the XY plane (clockwise), in 280.1156 - degrees.<br/> 280.1157 - If the attribute is not specified, then the effect is as if a value of 280.1158 - <span class="attr-value">0</span> were specified.<br/> 280.1159 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feDistantLightElevationAttribute"><span class="adef">elevation</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Direction angle for the light source on the YZ plane, in degrees.<br/> 280.1160 - If the attribute is not specified, then the effect is as if a value of 280.1161 - <span class="attr-value">0</span> were specified.<br/> 280.1162 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.1163 -</div> 280.1164 - 280.1165 -<h3 id="fePointLightElement">8.3 Light source <span class="element-name">‘fePointLight’</span></h3> 280.1166 - 280.1167 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘fePointLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1168 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#fePointLightXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#fePointLightYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#fePointLightZAttribute"><span class="attr-name">‘z’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEPointLightElement">SVGFEPointLightElement</a></li></ul></dd></dl></div> 280.1169 - 280.1170 -<div class="adef-list"> 280.1171 -<p><em>Attribute definitions:</em></p> 280.1172 -<dl><dt id="fePointLightXAttribute"><span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>X location for the light source in the coordinate system established 280.1173 - by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.1174 - element.<br/> 280.1175 - If the attribute is not specified, then the effect is as if a value of 280.1176 - <span class="attr-value">0</span> were specified.<br/> 280.1177 - <span class="anim-target">Animatable: yes.</span></dd><dt id="fePointLightYAttribute"><span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Y location for the light source in the coordinate system established 280.1178 - by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.1179 - element.<br/> 280.1180 - If the attribute is not specified, then the effect is as if a value of 280.1181 - <span class="attr-value">0</span> were specified.<br/> 280.1182 - <span class="anim-target">Animatable: yes.</span></dd><dt id="fePointLightZAttribute"><span class="adef">z</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Z location for the light source in the coordinate system established 280.1183 - by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.1184 - element, assuming that, in the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a> 280.1185 - , the positive Z-axis comes out towards the person viewing the content 280.1186 - and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br/> 280.1187 - If the attribute is not specified, then the effect is as if a value of 280.1188 - <span class="attr-value">0</span> were specified.<br/> 280.1189 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.1190 -</div> 280.1191 - 280.1192 -<h3 id="feSpotLightElement">8.4 Light source <span class="element-name">‘feSpotLight’</span></h3> 280.1193 - 280.1194 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feSpotLight’</span></div><dl><dt>Categories:</dt><dd><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">Light source element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1195 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#feSpotLightXAttribute"><span class="attr-name">‘x’</span></a></li><li><a href="#feSpotLightYAttribute"><span class="attr-name">‘y’</span></a></li><li><a href="#feSpotLightZAttribute"><span class="attr-name">‘z’</span></a></li><li><a href="#feSpotLightPointsAtXAttribute"><span class="attr-name">‘pointsAtX’</span></a></li><li><a href="#feSpotLightPointsAtYAttribute"><span class="attr-name">‘pointsAtY’</span></a></li><li><a href="#feSpotLightPointsAtZAttribute"><span class="attr-name">‘pointsAtZ’</span></a></li><li><a href="#feSpotLightSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a></li><li><a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFESpotLightElement">SVGFESpotLightElement</a></li></ul></dd></dl></div> 280.1196 - 280.1197 -<div class="adef-list"> 280.1198 -<p><em>Attribute definitions:</em></p> 280.1199 -<dl><dt id="feSpotLightXAttribute"><span class="adef">x</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>X location for the light source in the coordinate system established 280.1200 - by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.1201 - element.<br/> 280.1202 - If the attribute is not specified, then the effect is as if a value of 280.1203 - <span class="attr-value">0</span> were specified.<br/> 280.1204 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightYAttribute"><span class="adef">y</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Y location for the light source in the coordinate system established 280.1205 - by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.1206 - element.<br/> 280.1207 - If the attribute is not specified, then the effect is as if a value of 280.1208 - <span class="attr-value">0</span> were specified.<br/> 280.1209 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightZAttribute"><span class="adef">z</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Z location for the light source in the coordinate system established 280.1210 - by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.1211 - element, assuming that, in the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a> 280.1212 - , the positive Z-axis comes out towards the person viewing the content 280.1213 - and assuming that one unit along the Z-axis equals <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage">one unit in X and Y</a>.<br/> 280.1214 - If the attribute is not specified, then the effect is as if a value of 280.1215 - <span class="attr-value">0</span> were specified.<br/> 280.1216 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtXAttribute"><span class="adef">pointsAtX</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>X location in the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> 280.1217 - on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.1218 - element of the point at which the light source is pointing.<br/> 280.1219 - If the attribute is not specified, then the effect is as if a value of 280.1220 - <span class="attr-value">0</span> were specified.<br/> 280.1221 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtYAttribute"><span class="adef">pointsAtY</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Y location in the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> 280.1222 - on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element of the point at which the light source is pointing.<br/> 280.1223 - If the attribute is not specified, then the effect is as if a value of 280.1224 - <span class="attr-value">0</span> were specified.<br/> 280.1225 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightPointsAtZAttribute"><span class="adef">pointsAtZ</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Z location in the coordinate system established by the 280.1226 - attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element of 280.1227 - the point at which the light source is pointing, assuming that, in the 280.1228 - <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InitialCoordinateSystem"><span class="svg-term">initial coordinate system</span></a>, the positive Z-axis comes out 280.1229 - towards the person viewing the content and assuming that 280.1230 - one unit along the Z-axis equals 280.1231 - <a href="http://www.w3.org/TR/SVG11/coords.html#Units_viewport_percentage"> 280.1232 - one unit in X and Y</a>.<br/> 280.1233 - If the attribute is not specified, then the effect is as if a value of 280.1234 - <span class="attr-value">0</span> were specified.<br/> 280.1235 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightSpecularExponentAttribute"><span class="adef">specularExponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Exponent value controlling the focus for the light source.<br/> 280.1236 - If the attribute is not specified, then the effect is as if a value of 280.1237 - <span class="attr-value">1</span> were specified.<br/> 280.1238 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpotLightLimitingConeAngleAttribute"><span class="adef">limitingConeAngle</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>A limiting cone which restricts the region where the light is 280.1239 - projected. No light is projected outside the cone. <span class="attr-name">limitingConeAngle</span> represents the angle in degrees between 280.1240 - the spot light axis (i.e. the axis between the light source and the 280.1241 - point to which it is pointing at) and the spot light cone. <span class="requirement" id="assert_userAgentLightingConeSmoothing">User agents 280.1242 - should apply a smoothing technique such as anti-aliasing at the 280.1243 - boundary of the cone.</span><br/> 280.1244 - If no value is specified, then no limiting cone will be applied.<br/> 280.1245 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.1246 -</div> 280.1247 - 280.1248 -<h3 id="LightingColorProperty">8.5 The <span class="prop-name">‘lighting-color’</span> property</h3> 280.1249 - 280.1250 -<p>The <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a> property defines the 280.1251 -color of the light source for <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a> <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>.</p> 280.1252 - 280.1253 -<div class="propdef"> 280.1254 -<dl><dt><span class="index-def" title="'margin-top'"><a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a></span></dt><dd> 280.1255 - <table summary="lighting-color property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>currentColor |<br/> 280.1256 - <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeColor"><color></a> 280.1257 - [<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeICCColor"><icccolor></a>] |<br/> 280.1258 - <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>white</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> 280.1259 - elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table> 280.1260 - </dd></dl> 280.1261 -</div> 280.1262 - 280.1263 -<h2 id="feBlendElement">9 Filter primitive <span class="element-name">‘feBlend’</span></h2> 280.1264 - 280.1265 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feBlend’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1266 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feBlendIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feBlendModeAttribute"><span class="attr-name">‘mode’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEBlendElement">SVGFEBlendElement</a></li></ul></dd></dl></div> 280.1267 - 280.1268 -<p>This filter composites two objects together using commonly used imaging 280.1269 -software blending modes. It performs a pixel-wise combination of two input 280.1270 -images.</p> 280.1271 - 280.1272 -<div class="adef-list"> 280.1273 -<p><em>Attribute definitions:</em></p> 280.1274 -<dl><dt id="feBlendModeAttribute"><span class="adef">mode</span> = "<em>normal | multiply | screen | darken | 280.1275 - lighten</em>"</dt><dd>One of the image blending modes (see <a href="#BlendingTable">table</a> below). Default is: normal.<br/> 280.1276 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feBlendIn2Attribute"><span class="adef">in2</span> = "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> 280.1277 - attribute)</em>"</dt><dd>The second input image to the blending operation. This attribute can 280.1278 - take on the same values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> attribute.<br/> 280.1279 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.1280 -</div> 280.1281 - 280.1282 -<p>For all feBlend modes, the result opacity is computed as follows:</p> 280.1283 -<pre>qr = 1 - (1-qa)*(1-qb)</pre> 280.1284 - 280.1285 -<p>For the compositing formulas below, the following definitions apply:</p> 280.1286 -<pre>image A = in 280.1287 -image B = in2 280.1288 -cr = Result color (RGB) - premultiplied 280.1289 -qa = Opacity value at a given pixel for image A 280.1290 -qb = Opacity value at a given pixel for image B 280.1291 -ca = Color (RGB) at a given pixel for image A - premultiplied 280.1292 -cb = Color (RGB) at a given pixel for image B - premultiplied </pre> 280.1293 - 280.1294 -<p id="BlendingTable">The following table 280.1295 -provides the list of available image blending modes:</p> 280.1296 - 280.1297 -<div class="note-editor"> 280.1298 -ED: make table look nicer</div> 280.1299 - 280.1300 -<table summary="blending modes" width="500" border="1"><tbody><tr><td>Image Blending Mode</td><td>Formula for computing result color</td></tr><tr><td>normal</td><td>cr = (1 - qa) * cb + ca</td></tr><tr><td>multiply</td><td>cr = (1-qa)*cb + (1-qb)*ca + ca*cb</td></tr><tr><td>screen</td><td>cr = cb + ca - ca * cb</td></tr><tr><td>darken</td><td>cr = Min ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td></tr><tr><td>lighten</td><td>cr = Max ((1 - qa) * cb + ca, (1 - qb) * ca + cb)</td></tr></tbody></table> 280.1301 - 280.1302 -<p><span class="attr-value">'normal'</span> blend mode is equivalent to <a href="#feCompositeOperatorAttribute"><span class="attr-value">operator="over"</span></a> on the <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 280.1303 -filter primitive, matches the blending method used by <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> and matches 280.1304 -the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#SimpleAlphaBlending"><span class="svg-term">simple alpha compositing</span></a> technique used in SVG for all compositing outside of filter effects.</p> 280.1305 - 280.1306 -<pre class="xml"><?xml version="1.0"?> 280.1307 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 280.1308 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 280.1309 -<svg width="5cm" height="5cm" viewBox="0 0 500 500" 280.1310 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 280.1311 - <title>Example feBlend - Examples of feBlend modes</title> 280.1312 - <desc>Five text strings blended into a gradient, 280.1313 - with one text string for each of the five feBlend modes.</desc> 280.1314 - <defs> 280.1315 - <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 280.1316 - x1="100" y1="0" x2="300" y2="0"> 280.1317 - <stop offset="0" stop-color="#000000" /> 280.1318 - <stop offset=".33" stop-color="#ffffff" /> 280.1319 - <stop offset=".67" stop-color="#ff0000" /> 280.1320 - <stop offset="1" stop-color="#808080" /> 280.1321 - </linearGradient> 280.1322 - <filter id="Normal"> 280.1323 - <feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/> 280.1324 - </filter> 280.1325 - <filter id="Multiply"> 280.1326 - <feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/> 280.1327 - </filter> 280.1328 - <filter id="Screen"> 280.1329 - <feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/> 280.1330 - </filter> 280.1331 - <filter id="Darken"> 280.1332 - <feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/> 280.1333 - </filter> 280.1334 - <filter id="Lighten"> 280.1335 - <feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/> 280.1336 - </filter> 280.1337 - </defs> 280.1338 - <rect fill="none" stroke="blue" 280.1339 - x="1" y="1" width="498" height="498"/> 280.1340 - <g enable-background="new" > 280.1341 - <rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" /> 280.1342 - <g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" > 280.1343 - <text x="50" y="90" filter="url(#Normal)" >Normal</text> 280.1344 - <text x="50" y="180" filter="url(#Multiply)" >Multiply</text> 280.1345 - <text x="50" y="270" filter="url(#Screen)" >Screen</text> 280.1346 - <text x="50" y="360" filter="url(#Darken)" >Darken</text> 280.1347 - <text x="50" y="450" filter="url(#Lighten)" >Lighten</text> 280.1348 - </g> 280.1349 - </g> 280.1350 -</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feBlend.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feBlend.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 280.1351 - 280.1352 -<h2 id="feColorMatrixElement">10 Filter primitive <span class="element-name">‘feColorMatrix’</span></h2> 280.1353 - 280.1354 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feColorMatrix’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1355 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a></li><li><a href="#feColorMatrixValuesAttribute"><span class="attr-name">‘values’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEColorMatrixElement">SVGFEColorMatrixElement</a></li></ul></dd></dl></div> 280.1356 - 280.1357 -<p>This filter applies a matrix transformation:</p> 280.1358 -<object data="mathml/feColorMatrix00.mml" type="application/mathml+xml" width="100%" height="140"> 280.1359 -<pre>| R' | | a00 a01 a02 a03 a04 | | R | 280.1360 -| G' | | a10 a11 a12 a13 a14 | | G | 280.1361 -| B' | = | a20 a21 a22 a23 a24 | * | B | 280.1362 -| A' | | a30 a31 a32 a33 a34 | | A | 280.1363 -| 1 | | 0 0 0 0 1 | | 1 |</pre> 280.1364 -</object> 280.1365 - 280.1366 -<p>on the RGBA color and alpha values of every pixel on the input graphics to 280.1367 -produce a result with a new set of RGBA color and alpha values.</p> 280.1368 - 280.1369 -<p>The calculations are performed on non-premultiplied color values. If the 280.1370 -input graphics consists of premultiplied color values, those values are 280.1371 -automatically converted into non-premultiplied color values for this 280.1372 -operation.</p> 280.1373 - 280.1374 -<p>These matrices often perform an identity mapping in the alpha channel. If 280.1375 -that is the case, an implementation can avoid the costly undoing and redoing 280.1376 -of the premultiplication for all pixels with A = 1.</p> 280.1377 - 280.1378 -<div class="adef-list"> 280.1379 -<p><em>Attribute definitions:</em></p> 280.1380 -<dl><dt id="feColorMatrixTypeAttribute"><span class="adef">type</span> = 280.1381 - "<em>matrix | saturate | hueRotate | luminanceToAlpha</em>"</dt><dd>Indicates the type of matrix operation. The keyword <span class="attr-name">matrix</span> indicates that a full 5x4 matrix of 280.1382 - values will be provided. The other keywords represent convenience 280.1383 - shortcuts to allow commonly used color operations to be performed 280.1384 - without specifying a complete matrix.<br/> 280.1385 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feColorMatrixValuesAttribute"><span class="adef">values</span> = 280.1386 - "<em>list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a>s</em>"</dt><dd>The contents of <span class="attr-name">values</span> depends on the 280.1387 - value of attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">type</span></a>: 280.1388 - <ul><li>For <span class="attr-value">type="matrix"</span>, <span class="attr-name">values</span> is a list of 20 matrix values (a00 280.1389 - a01 a02 a03 a04 a10 a11 ... a34), separated by whitespace and/or a 280.1390 - comma. For example, the identity matrix could be expressed as: 280.1391 - <pre>type="matrix" 280.1392 -values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"</pre> 280.1393 - </li><li>For <span class="attr-value">type="saturate"</span>, <span class="attr-name">values</span> is a single real number value (0 to 280.1394 - 1). A <span class="attr-value">saturate</span> operation is 280.1395 - equivalent to the following matrix operation: 280.1396 - <p> 280.1397 - <object data="mathml/feColorMatrix01.mml" type="application/mathml+xml" width="100%" height="130"> 280.1398 - <pre>| R' | |0.213+0.787s 0.715-0.715s 0.072-0.072s 0 0 | | R | 280.1399 -| G' | |0.213-0.213s 0.715+0.285s 0.072-0.072s 0 0 | | G | 280.1400 -| B' | = |0.213-0.213s 0.715-0.715s 0.072+0.928s 0 0 | * | B | 280.1401 -| A' | | 0 0 0 1 0 | | A | 280.1402 -| 1 | | 0 0 0 0 1 | | 1 |</pre> 280.1403 - </object> 280.1404 - </p> 280.1405 - </li><li>For <span class="attr-value">type="hueRotate"</span>, <span class="attr-name">values</span> is a single one real number value 280.1406 - (degrees). A <span class="attr-value">hueRotate</span> operation is 280.1407 - equivalent to the following matrix operation: 280.1408 - <p> 280.1409 - <object data="mathml/feColorMatrix02.mml" type="application/mathml+xml" width="100%" height="130"> 280.1410 - <pre>| R' | | a00 a01 a02 0 0 | | R | 280.1411 -| G' | | a10 a11 a12 0 0 | | G | 280.1412 -| B' | = | a20 a21 a22 0 0 | * | B | 280.1413 -| A' | | 0 0 0 1 0 | | A | 280.1414 -| 1 | | 0 0 0 0 1 | | 1 |</pre> 280.1415 - </object> 280.1416 - </p> 280.1417 - 280.1418 - where the terms a00, a01, etc. are calculated as follows: 280.1419 - <p> 280.1420 - <object data="mathml/feColorMatrix03.mml" type="application/mathml+xml" width="100%" height="230"> 280.1421 - <pre>| a00 a01 a02 | [+0.213 +0.715 +0.072] 280.1422 -| a10 a11 a12 | = [+0.213 +0.715 +0.072] + 280.1423 -| a20 a21 a22 | [+0.213 +0.715 +0.072] 280.1424 - [+0.787 -0.715 -0.072] 280.1425 -cos(hueRotate value) * [-0.213 +0.285 -0.072] + 280.1426 - [-0.213 -0.715 +0.928] 280.1427 - [-0.213 -0.715+0.928] 280.1428 -sin(hueRotate value) * [+0.143 +0.140-0.283] 280.1429 - [-0.787 +0.715+0.072]</pre> 280.1430 - </object> 280.1431 - </p> 280.1432 - Thus, the upper left term of the hue matrix turns out to be: 280.1433 - <p> 280.1434 - <object data="mathml/feColorMatrix04.mml" type="application/mathml+xml" width="100%" height="30"> 280.1435 - <pre>.213 + cos(hueRotate value)*.787 - sin(hueRotate value)*.213</pre> 280.1436 - </object> 280.1437 - </p> 280.1438 - 280.1439 - </li><li>For <span class="attr-value">type="luminanceToAlpha"</span>, 280.1440 - <span class="attr-name">values</span> is not applicable. A <span class="attr-value">luminanceToAlpha</span> operation is equivalent 280.1441 - to the following matrix operation: 280.1442 - <p> 280.1443 - <object data="mathml/feColorMatrix05.mml" type="application/mathml+xml" width="100%" height="130"> 280.1444 - <pre> | R' | | 0 0 0 0 0 | | R | 280.1445 - | G' | | 0 0 0 0 0 | | G | 280.1446 - | B' | = | 0 0 0 0 0 | * | B | 280.1447 - | A' | | 0.2125 0.7154 0.0721 0 0 | | A | 280.1448 - | 1 | | 0 0 0 0 1 | | 1 |</pre> 280.1449 - </object> 280.1450 - </p> 280.1451 - </li></ul> 280.1452 - If the attribute is not specified, then the default behavior depends on 280.1453 - the value of attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a>. If <span class="attr-value">type="matrix"</span>, then this attribute defaults 280.1454 - to the identity matrix. If <span class="attr-value">type="saturate"</span>, then this attribute defaults 280.1455 - to the value <span class="attr-value">1</span>, which results in the 280.1456 - identify matrix. If <span class="attr-value">type="hueRotate"</span>, 280.1457 - then this attribute defaults to the value <span class="attr-value">0</span>, which results in the identify matrix.<br/> 280.1458 - <span class="anim-target">Animatable: yes.</span> </dd></dl> 280.1459 -</div> 280.1460 - 280.1461 -<pre class="xml"><?xml version="1.0"?> 280.1462 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 280.1463 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 280.1464 -<svg width="8cm" height="5cm" viewBox="0 0 800 500" 280.1465 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 280.1466 - <title>Example feColorMatrix - Examples of feColorMatrix operations</title> 280.1467 - <desc>Five text strings showing the effects of feColorMatrix: 280.1468 - an unfiltered text string acting as a reference, 280.1469 - use of the feColorMatrix matrix option to convert to grayscale, 280.1470 - use of the feColorMatrix saturate option, 280.1471 - use of the feColorMatrix hueRotate option, 280.1472 - and use of the feColorMatrix luminanceToAlpha option.</desc> 280.1473 - <defs> 280.1474 - <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 280.1475 - x1="100" y1="0" x2="500" y2="0"> 280.1476 - <stop offset="0" stop-color="#ff00ff" /> 280.1477 - <stop offset=".33" stop-color="#88ff88" /> 280.1478 - <stop offset=".67" stop-color="#2020ff" /> 280.1479 - <stop offset="1" stop-color="#d00000" /> 280.1480 - </linearGradient> 280.1481 - <filter id="Matrix" filterUnits="objectBoundingBox" 280.1482 - x="0%" y="0%" width="100%" height="100%"> 280.1483 - <feColorMatrix type="matrix" in="SourceGraphic" 280.1484 - values=".33 .33 .33 0 0 280.1485 - .33 .33 .33 0 0 280.1486 - .33 .33 .33 0 0 280.1487 - .33 .33 .33 0 0"/> 280.1488 - </filter> 280.1489 - <filter id="Saturate40" filterUnits="objectBoundingBox" 280.1490 - x="0%" y="0%" width="100%" height="100%"> 280.1491 - <feColorMatrix type="saturate" in="SourceGraphic" values="0.4"/> 280.1492 - </filter> 280.1493 - <filter id="HueRotate90" filterUnits="objectBoundingBox" 280.1494 - x="0%" y="0%" width="100%" height="100%"> 280.1495 - <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/> 280.1496 - </filter> 280.1497 - <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 280.1498 - x="0%" y="0%" width="100%" height="100%"> 280.1499 - <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/> 280.1500 - <feComposite in="SourceGraphic" in2="a" operator="in" /> 280.1501 - </filter> 280.1502 - </defs> 280.1503 - <rect fill="none" stroke="blue" 280.1504 - x="1" y="1" width="798" height="498"/> 280.1505 - <g font-family="Verdana" font-size="75" 280.1506 - font-weight="bold" fill="url(#MyGradient)" > 280.1507 - <rect x="100" y="0" width="500" height="20" /> 280.1508 - <text x="100" y="90">Unfiltered</text> 280.1509 - <text x="100" y="190" filter="url(#Matrix)" >Matrix</text> 280.1510 - <text x="100" y="290" filter="url(#Saturate40)" >Saturate</text> 280.1511 - <text x="100" y="390" filter="url(#HueRotate90)" >HueRotate</text> 280.1512 - <text x="100" y="490" filter="url(#LuminanceToAlpha)" >Luminance</text> 280.1513 - </g> 280.1514 -</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feColorMatrix.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feColorMatrix.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 280.1515 - 280.1516 -<h2 id="feComponentTransferElement">11 Filter primitive <span class="element-name">‘feComponentTransfer’</span></h2> 280.1517 - 280.1518 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feComponentTransfer’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1519 - <ul class="no-bullets"><li><a href=""><span class="element-name">‘feFuncA’</span></a></li><li><a href=""><span class="element-name">‘feFuncB’</span></a></li><li><a href=""><span class="element-name">‘feFuncG’</span></a></li><li><a href=""><span class="element-name">‘feFuncR’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEComponentTransferElement">SVGFEComponentTransferElement</a></li></ul></dd></dl></div> 280.1520 - 280.1521 -<p>This filter primitive performs component-wise remapping of data as 280.1522 -follows:</p> 280.1523 -<pre>R' = <a href="#feFuncRElement">feFuncR</a>( R ) 280.1524 -G' = <a href="#feFuncGElement">feFuncG</a>( G ) 280.1525 -B' = <a href="#feFuncBElement">feFuncB</a>( B ) 280.1526 -A' = <a href="#feFuncAElement">feFuncA</a>( A )</pre> 280.1527 - 280.1528 -<p>for every pixel. It allows operations like brightness adjustment, contrast 280.1529 -adjustment, color balance or thresholding.</p> 280.1530 - 280.1531 -<p>The calculations are performed on non-premultiplied color values. If the 280.1532 -input graphics consists of premultiplied color values, those values are 280.1533 -automatically converted into non-premultiplied color values for this 280.1534 -operation. (Note that the undoing and redoing of the premultiplication can be 280.1535 -avoided if <a href=""><span class="element-name">‘feFuncA’</span></a> is the identity transform 280.1536 -and all alpha values on the source graphic are set to 1.)</p> 280.1537 - 280.1538 -<p>The child elements of a <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element specify the 280.1539 -transfer functions for the four channels:</p> 280.1540 - 280.1541 -<ul id="transferFuncElements"><li><a href=""><span class="element-name">‘feFuncR’</span></a> — transfer function for the red component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncG’</span></a> — transfer function for the green component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncB’</span></a> — transfer function for the blue component of the input graphic</li><li><a href=""><span class="element-name">‘feFuncA’</span></a> — transfer function for the alpha component of the input graphic</li></ul> 280.1542 - 280.1543 -<p>The following rules apply to the processing of the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element:</p> 280.1544 -<ul><li>If more than one <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function element</span></a> of the same kind is specified, the last occurrence is to be used.</li><li>If any of the <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a> are unspecified, the <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> must be processed as if those <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a> were specified with their <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a> attributes set to <span class="attr-value">'identity'</span>.</li></ul> 280.1545 - 280.1546 - 280.1547 - 280.1548 -<div id="feFuncRElement"> 280.1549 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncR’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1550 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a></li></ul></dd></dl></div> 280.1551 -</div> 280.1552 - 280.1553 -<div id="feFuncGElement"> 280.1554 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncG’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1555 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncGElement">SVGFEFuncGElement</a></li></ul></dd></dl></div> 280.1556 -</div> 280.1557 - 280.1558 -<div id="feFuncBElement"> 280.1559 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncB’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1560 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncBElement">SVGFEFuncBElement</a></li></ul></dd></dl></div> 280.1561 -</div> 280.1562 - 280.1563 -<div id="feFuncAElement"> 280.1564 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFuncA’</span></div><dl><dt>Categories:</dt><dd><a href="#TermComponentTransferFunctionElement">Transfer function element element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1565 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#TransferFunctionElementAttributes">transfer function element attributes</a><span class="expanding"> — <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a>, <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a>, <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a>, <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a>, <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a>, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a>, <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a></span></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFuncAElement">SVGFEFuncAElement</a></li></ul></dd></dl></div> 280.1566 -</div> 280.1567 - 280.1568 -<p id="TransferFunctionElementAttributes">The attributes below are the 280.1569 -<span class="SVG-TermDefine">transfer function element attributes</span>, 280.1570 -which apply to the <a href="#TermTransferFunctionElements"><span class="svg-term">transfer function elements</span></a>.</p> 280.1571 - 280.1572 -<div class="adef-list"> 280.1573 -<p><em>Attribute definitions:</em></p> 280.1574 -<dl><dt id="feComponentTransferTypeAttribute"><span class="adef">type</span> 280.1575 - = "<em>identity | table | discrete | linear | gamma</em>"</dt><dd><p>Indicates the type of component transfer function. The type of 280.1576 - function determines the applicability of the other attributes.</p> 280.1577 - <ul><li>For <span class="attr-value">identity</span>: 280.1578 - <pre>C' = C</pre> 280.1579 - </li><li>For <span class="attr-value">table</span>, the function is 280.1580 - defined by linear interpolation into a lookup table by attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">tableValues</span></a>, which provides a list of 280.1581 - <em>n+1</em> values (i.e., v<sub>0</sub> to v<sub>n</sub>) in order 280.1582 - to identify <em>n</em> interpolation ranges. Interpolations use the 280.1583 - following formula. 280.1584 - <p>For a value <code>C</code> pick a <code>k</code> such that:</p> 280.1585 - <p class="filterformula">k/N <= C < (k+1)/N</p> 280.1586 - <p>The result <code>C'</code> is given by:</p> 280.1587 - <p class="filterformula">C' = v<sub>k</sub> + (C - k/N)*N * 280.1588 - (v<sub>k+1</sub> - v<sub>k</sub>)</p> 280.1589 - </li><li>For <span class="attr-value">discrete</span>, the function is 280.1590 - defined by the step function defined by attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">tableValues</span></a>, which provides a list of 280.1591 - <em>n</em> values (i.e., v<sub>0</sub> to v<sub>n-1</sub>) in order 280.1592 - to identify a step function consisting of <em>n</em> steps. The 280.1593 - step function is defined by the following formula. 280.1594 - <p>For a value <code>C</code> pick a <code>k</code> such that:</p> 280.1595 - <p class="filterformula">k/N <= C < (k+1)/N</p> 280.1596 - <p>The result <code>C'</code> is given by:</p> 280.1597 - <p class="filterformula">C' = v<sub>k</sub></p> 280.1598 - </li><li>For <span class="attr-value">linear</span>, the function is 280.1599 - defined by the following linear equation: 280.1600 - <p class="filterformula">C' = <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">slope</span></a> * C + <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">intercept</span></a></p> 280.1601 - </li><li>For <span class="attr-value">gamma</span>, the function is 280.1602 - defined by the following exponential function: 280.1603 - <p class="filterformula">C' = <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">amplitude</span></a> * pow(C, <a href="#feComponentTransferExponentAttribute"><span class="attr-name">exponent</span></a>) + <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">offset</span></a></p> 280.1604 - </li></ul> 280.1605 - <span class="anim-target">Animatable: yes.</span> </dd><dt id="feComponentTransferTableValuesAttribute"><span class="adef">tableValues</span> = "<em>(list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a>s)</em>"</dt><dd>When <span class="attr-value">type="table"</span>, the list of 280.1606 - <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a> 280.1607 - s <em>v0,v1,...vn</em>, separated by white space and/or a comma, which 280.1608 - define the lookup table. An empty list results in an identity transfer 280.1609 - function. If the attribute is not specified, then the effect is as if 280.1610 - an empty list were provided.<br/> 280.1611 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferSlopeAttribute"><span class="adef">slope</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>When <span class="attr-value">type="linear"</span>, the slope of the 280.1612 - linear function.<br/> 280.1613 - If the attribute is not specified, then the effect is as if a value of 280.1614 - <span class="attr-value">1</span> were specified.<br/> 280.1615 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferInterceptAttribute"><span class="adef">intercept</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>When <span class="attr-value">type="linear"</span>, the intercept of 280.1616 - the linear function.<br/> 280.1617 - If the attribute is not specified, then the effect is as if a value of 280.1618 - <span class="attr-value">0</span> were specified.<br/> 280.1619 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferAmplitudeAttribute"><span class="adef">amplitude</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the amplitude of 280.1620 - the gamma function.<br/> 280.1621 - If the attribute is not specified, then the effect is as if a value of 280.1622 - <span class="attr-value">1</span> were specified.<br/> 280.1623 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferExponentAttribute"><span class="adef">exponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the exponent of 280.1624 - the gamma function.<br/> 280.1625 - If the attribute is not specified, then the effect is as if a value of 280.1626 - <span class="attr-value">1</span> were specified.<br/> 280.1627 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feComponentTransferOffsetAttribute"><span class="adef">offset</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>When <span class="attr-value">type="gamma"</span>, the offset of the 280.1628 - gamma function.<br/> 280.1629 - If the attribute is not specified, then the effect is as if a value of 280.1630 - <span class="attr-value">0</span> were specified.<br/> 280.1631 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.1632 -</div> 280.1633 - 280.1634 - 280.1635 -<pre class="xml"><?xml version="1.0"?> 280.1636 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 280.1637 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 280.1638 -<svg width="8cm" height="4cm" viewBox="0 0 800 400" 280.1639 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 280.1640 - <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title> 280.1641 - <desc>Four text strings showing the effects of feComponentTransfer: 280.1642 - an identity function acting as a reference, 280.1643 - use of the feComponentTransfer table option, 280.1644 - use of the feComponentTransfer linear option, 280.1645 - and use of the feComponentTransfer gamma option.</desc> 280.1646 - <defs> 280.1647 - <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 280.1648 - x1="100" y1="0" x2="600" y2="0"> 280.1649 - <stop offset="0" stop-color="#ff0000" /> 280.1650 - <stop offset=".33" stop-color="#00ff00" /> 280.1651 - <stop offset=".67" stop-color="#0000ff" /> 280.1652 - <stop offset="1" stop-color="#000000" /> 280.1653 - </linearGradient> 280.1654 - <filter id="Identity" filterUnits="objectBoundingBox" 280.1655 - x="0%" y="0%" width="100%" height="100%"> 280.1656 - <feComponentTransfer> 280.1657 - <feFuncR type="identity"/> 280.1658 - <feFuncG type="identity"/> 280.1659 - <feFuncB type="identity"/> 280.1660 - <feFuncA type="identity"/> 280.1661 - </feComponentTransfer> 280.1662 - </filter> 280.1663 - <filter id="Table" filterUnits="objectBoundingBox" 280.1664 - x="0%" y="0%" width="100%" height="100%"> 280.1665 - <feComponentTransfer> 280.1666 - <feFuncR type="table" tableValues="0 0 1 1"/> 280.1667 - <feFuncG type="table" tableValues="1 1 0 0"/> 280.1668 - <feFuncB type="table" tableValues="0 1 1 0"/> 280.1669 - </feComponentTransfer> 280.1670 - </filter> 280.1671 - <filter id="Linear" filterUnits="objectBoundingBox" 280.1672 - x="0%" y="0%" width="100%" height="100%"> 280.1673 - <feComponentTransfer> 280.1674 - <feFuncR type="linear" slope=".5" intercept=".25"/> 280.1675 - <feFuncG type="linear" slope=".5" intercept="0"/> 280.1676 - <feFuncB type="linear" slope=".5" intercept=".5"/> 280.1677 - </feComponentTransfer> 280.1678 - </filter> 280.1679 - <filter id="Gamma" filterUnits="objectBoundingBox" 280.1680 - x="0%" y="0%" width="100%" height="100%"> 280.1681 - <feComponentTransfer> 280.1682 - <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/> 280.1683 - <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/> 280.1684 - <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/> 280.1685 - </feComponentTransfer> 280.1686 - </filter> 280.1687 - </defs> 280.1688 - <rect fill="none" stroke="blue" 280.1689 - x="1" y="1" width="798" height="398"/> 280.1690 - <g font-family="Verdana" font-size="75" 280.1691 - font-weight="bold" fill="url(#MyGradient)" > 280.1692 - <rect x="100" y="0" width="600" height="20" /> 280.1693 - <text x="100" y="90">Identity</text> 280.1694 - <text x="100" y="190" filter="url(#Table)" >TableLookup</text> 280.1695 - <text x="100" y="290" filter="url(#Linear)" >LinearFunc</text> 280.1696 - <text x="100" y="390" filter="url(#Gamma)" >GammaFunc</text> 280.1697 - </g> 280.1698 -</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feComponentTransfer.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feComponentTransfer.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 280.1699 - 280.1700 -<h2 id="feCompositeElement">12 Filter primitive <span class="element-name">‘feComposite’</span></h2> 280.1701 - 280.1702 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feComposite’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1703 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feCompositeIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feCompositeOperatorAttribute"><span class="attr-name">‘operator’</span></a></li><li><a href="#feCompositeK1Attribute"><span class="attr-name">‘k1’</span></a></li><li><a href="#feCompositeK2Attribute"><span class="attr-name">‘k2’</span></a></li><li><a href="#feCompositeK3Attribute"><span class="attr-name">‘k3’</span></a></li><li><a href="#feCompositeK4Attribute"><span class="attr-name">‘k4’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFECompositeElement">SVGFECompositeElement</a></li></ul></dd></dl></div> 280.1704 - 280.1705 -<p>This filter performs the combination of the two input images pixel-wise in 280.1706 -image space using one of the Porter-Duff [<a href="#ref-PORTERDUFF">PORTERDUFF</a>] compositing operations: <em>over, in, 280.1707 -atop, out, xor</em>. Additionally, a component-wise <em>arithmetic</em> 280.1708 -operation (with the result clamped between [0..1]) can be applied.</p> 280.1709 - 280.1710 -<p>The <em>arithmetic</em> operation is useful for combining the output from 280.1711 -the <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> and <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> filters with texture 280.1712 -data. It is also useful for implementing <em>dissolve</em>. If the 280.1713 -<em>arithmetic</em> operation is chosen, each result pixel is computed using 280.1714 -the following formula:</p> 280.1715 -<pre>result = k1*i1*i2 + k2*i1 + k3*i2 + k4</pre> 280.1716 - 280.1717 -<p>For this filter primitive, the extent of the resulting image might grow as 280.1718 -described in the section that describes the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p> 280.1719 - 280.1720 -<div class="adef-list"> 280.1721 -<p><em>Attribute definitions:</em></p> 280.1722 -<dl><dt id="feCompositeOperatorAttribute"><span class="adef">operator</span> 280.1723 - = "<em>over | in | out | atop | xor | arithmetic</em>"</dt><dd>The compositing operation that is to be performed. All of the <span class="attr-name">operator</span> types except <span class="attr-value">arithmetic</span> match the correspond operation as 280.1724 - described in [<a href="#ref-PORTERDUFF">PORTERDUFF</a>]. The <span class="attr-value">arithmetic</span> operator is described above.<br/> 280.1725 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK1Attribute"><span class="adef">k1</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/> 280.1726 - If the attribute is not specified, the effect is as if a value of "0" 280.1727 - were specified.<br/> 280.1728 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK2Attribute"><span class="adef">k2</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/> 280.1729 - If the attribute is not specified, the effect is as if a value of "0" 280.1730 - were specified.<br/> 280.1731 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK3Attribute"><span class="adef">k3</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/> 280.1732 - If the attribute is not specified, the effect is as if a value of "0" 280.1733 - were specified.<br/> 280.1734 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeK4Attribute"><span class="adef">k4</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Only applicable if <span class="attr-value">operator="arithmetic"</span>.<br/> 280.1735 - If the attribute is not specified, the effect is as if a value of "0" 280.1736 - were specified.<br/> 280.1737 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feCompositeIn2Attribute"> 280.1738 - <span class="adef">in2</span> = "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> 280.1739 - attribute)</em>"</dt><dd>The second input image to the compositing operation. This attribute 280.1740 - can take on the same values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">in</span></a> attribute.<br/> 280.1741 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.1742 -</div> 280.1743 - 280.1744 -<pre class="xml"><?xml version="1.0"?> 280.1745 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 280.1746 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 280.1747 -<svg width="330" height="195" viewBox="0 0 1100 650" version="1.1" 280.1748 - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 280.1749 - <title>Example feComposite - Examples of feComposite operations</title> 280.1750 - <desc>Four rows of six pairs of overlapping triangles depicting 280.1751 - the six different feComposite operators under different 280.1752 - opacity values and different clearing of the background.</desc> 280.1753 - <defs> 280.1754 - <desc>Define two sets of six filters for each of the six compositing operators. 280.1755 - The first set wipes out the background image by flooding with opaque white. 280.1756 - The second set does not wipe out the background, with the result 280.1757 - that the background sometimes shines through and is other cases 280.1758 - is blended into itself (i.e., "double-counting").</desc> 280.1759 - <filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 280.1760 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 280.1761 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 280.1762 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 280.1763 - </filter> 280.1764 - <filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 280.1765 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 280.1766 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 280.1767 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 280.1768 - </filter> 280.1769 - <filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 280.1770 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 280.1771 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 280.1772 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 280.1773 - </filter> 280.1774 - <filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 280.1775 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 280.1776 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 280.1777 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 280.1778 - </filter> 280.1779 - <filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 280.1780 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 280.1781 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 280.1782 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 280.1783 - </filter> 280.1784 - <filter id="arithmeticFlood" filterUnits="objectBoundingBox" 280.1785 - x="-5%" y="-5%" width="110%" height="110%"> 280.1786 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 280.1787 - <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 280.1788 - operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 280.1789 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 280.1790 - </filter> 280.1791 - <filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 280.1792 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 280.1793 - </filter> 280.1794 - <filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 280.1795 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 280.1796 - </filter> 280.1797 - <filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 280.1798 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 280.1799 - </filter> 280.1800 - <filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 280.1801 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 280.1802 - </filter> 280.1803 - <filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 280.1804 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 280.1805 - </filter> 280.1806 - <filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 280.1807 - x="-5%" y="-5%" width="110%" height="110%"> 280.1808 - <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 280.1809 - operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 280.1810 - </filter> 280.1811 - <path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" /> 280.1812 - <path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" /> 280.1813 - <path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" /> 280.1814 - <path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" /> 280.1815 - <g id="TwoBlueTriangles"> 280.1816 - <use xlink:href="#Blue100"/> 280.1817 - <use xlink:href="#Blue50"/> 280.1818 - </g> 280.1819 - <g id="BlueTriangles"> 280.1820 - <use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/> 280.1821 - <use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/> 280.1822 - <use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/> 280.1823 - <use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/> 280.1824 - <use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/> 280.1825 - <use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/> 280.1826 - </g> 280.1827 - </defs> 280.1828 - 280.1829 - <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/> 280.1830 - <g font-family="Verdana" font-size="40" shape-rendering="crispEdges"> 280.1831 - <desc>Render the examples using the filters that draw on top of 280.1832 - an opaque white surface, thus obliterating the background.</desc> 280.1833 - <g enable-background="new"> 280.1834 - <text x="15" y="75">opacity 1.0</text> 280.1835 - <text x="15" y="115" font-size="27">(with feFlood)</text> 280.1836 - <text x="15" y="200">opacity 0.5</text> 280.1837 - <text x="15" y="240" font-size="27">(with feFlood)</text> 280.1838 - <use xlink:href="#BlueTriangles"/> 280.1839 - <g transform="translate(275,25)"> 280.1840 - <use xlink:href="#Red100" filter="url(#overFlood)" /> 280.1841 - <use xlink:href="#Red50" filter="url(#overFlood)" /> 280.1842 - <text x="5" y="275">over</text> 280.1843 - </g> 280.1844 - <g transform="translate(400,25)"> 280.1845 - <use xlink:href="#Red100" filter="url(#inFlood)" /> 280.1846 - <use xlink:href="#Red50" filter="url(#inFlood)" /> 280.1847 - <text x="35" y="275">in</text> 280.1848 - </g> 280.1849 - <g transform="translate(525,25)"> 280.1850 - <use xlink:href="#Red100" filter="url(#outFlood)" /> 280.1851 - <use xlink:href="#Red50" filter="url(#outFlood)" /> 280.1852 - <text x="15" y="275">out</text> 280.1853 - </g> 280.1854 - <g transform="translate(650,25)"> 280.1855 - <use xlink:href="#Red100" filter="url(#atopFlood)" /> 280.1856 - <use xlink:href="#Red50" filter="url(#atopFlood)" /> 280.1857 - <text x="10" y="275">atop</text> 280.1858 - </g> 280.1859 - <g transform="translate(775,25)"> 280.1860 - <use xlink:href="#Red100" filter="url(#xorFlood)" /> 280.1861 - <use xlink:href="#Red50" filter="url(#xorFlood)" /> 280.1862 - <text x="15" y="275">xor</text> 280.1863 - </g> 280.1864 - <g transform="translate(900,25)"> 280.1865 - <use xlink:href="#Red100" filter="url(#arithmeticFlood)" /> 280.1866 - <use xlink:href="#Red50" filter="url(#arithmeticFlood)" /> 280.1867 - <text x="-25" y="275">arithmetic</text> 280.1868 - </g> 280.1869 - </g> 280.1870 - <g transform="translate(0,325)" enable-background="new"> 280.1871 - <desc>Render the examples using the filters that do not obliterate 280.1872 - the background, thus sometimes causing the background to continue 280.1873 - to appear in some cases, and in other cases the background 280.1874 - image blends into itself ("double-counting").</desc> 280.1875 - <text x="15" y="75">opacity 1.0</text> 280.1876 - <text x="15" y="115" font-size="27">(without feFlood)</text> 280.1877 - <text x="15" y="200">opacity 0.5</text> 280.1878 - <text x="15" y="240" font-size="27">(without feFlood)</text> 280.1879 - <use xlink:href="#BlueTriangles"/> 280.1880 - <g transform="translate(275,25)"> 280.1881 - <use xlink:href="#Red100" filter="url(#overNoFlood)" /> 280.1882 - <use xlink:href="#Red50" filter="url(#overNoFlood)" /> 280.1883 - <text x="5" y="275">over</text> 280.1884 - </g> 280.1885 - <g transform="translate(400,25)"> 280.1886 - <use xlink:href="#Red100" filter="url(#inNoFlood)" /> 280.1887 - <use xlink:href="#Red50" filter="url(#inNoFlood)" /> 280.1888 - <text x="35" y="275">in</text> 280.1889 - </g> 280.1890 - <g transform="translate(525,25)"> 280.1891 - <use xlink:href="#Red100" filter="url(#outNoFlood)" /> 280.1892 - <use xlink:href="#Red50" filter="url(#outNoFlood)" /> 280.1893 - <text x="15" y="275">out</text> 280.1894 - </g> 280.1895 - <g transform="translate(650,25)"> 280.1896 - <use xlink:href="#Red100" filter="url(#atopNoFlood)" /> 280.1897 - <use xlink:href="#Red50" filter="url(#atopNoFlood)" /> 280.1898 - <text x="10" y="275">atop</text> 280.1899 - </g> 280.1900 - <g transform="translate(775,25)"> 280.1901 - <use xlink:href="#Red100" filter="url(#xorNoFlood)" /> 280.1902 - <use xlink:href="#Red50" filter="url(#xorNoFlood)" /> 280.1903 - <text x="15" y="275">xor</text> 280.1904 - </g> 280.1905 - <g transform="translate(900,25)"> 280.1906 - <use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" /> 280.1907 - <use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" /> 280.1908 - <text x="-25" y="275">arithmetic</text> 280.1909 - </g> 280.1910 - </g> 280.1911 - </g> 280.1912 -</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feComposite.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feComposite.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 280.1913 - 280.1914 -<h2 id="feConvolveMatrixElement">13 Filter primitive <span class="element-name">‘feConvolveMatrix’</span></h2> 280.1915 - 280.1916 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feConvolveMatrix’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.1917 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a></li><li><a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a></li><li><a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a></li><li><a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a></li><li><a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a></li><li><a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a></li><li><a href="#feConvolveMatrixElementEdgeModeAttribute"><span class="attr-name">‘edgeMode’</span></a></li><li><a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li><li><a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEConvolveMatrixElement">SVGFEConvolveMatrixElement</a></li></ul></dd></dl></div> 280.1918 - 280.1919 - 280.1920 -<p>feConvolveMatrix applies a matrix convolution filter effect. A convolution 280.1921 -combines pixels in the input image with neighboring pixels to produce a 280.1922 -resulting image. A wide variety of imaging operations can be achieved through 280.1923 -convolutions, including blurring, edge detection, sharpening, embossing and 280.1924 -beveling.</p> 280.1925 - 280.1926 -<p>A matrix convolution is based on an n-by-m matrix (the convolution kernel) 280.1927 -which describes how a given pixel value in the input image is combined with 280.1928 -its neighboring pixel values to produce a resulting pixel value. Each result 280.1929 -pixel is determined by applying the kernel matrix to the corresponding source 280.1930 -pixel and its neighboring pixels. The basic convolution formula which is 280.1931 -applied to each color value for a given pixel is:</p> 280.1932 - 280.1933 -<p class="filterformula">RESULT<sub>X,Y</sub> = ( <br/> 280.1934 -              SUM <sub>I=0 to [<a href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-1]</sub> { <br/> 280.1935 -                SUM <sub>J=0 to [<a href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-1]</sub> { <br/> 280.1936 -                  SOURCE <sub>X-<a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a>+J, Y-<a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a>+I</sub> * <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a><sub><a href="#feConvolveMatrixElementOrderAttribute">'orderX'</a>-J-1, <a href="#feConvolveMatrixElementOrderAttribute">'orderY'</a>-I-1</sub> <br/> 280.1937 -                } <br/> 280.1938 -              } <br/> 280.1939 -            ) / <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> + <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a><br/> 280.1940 -</p> 280.1941 - 280.1942 -<div class="note-editor"> 280.1943 -ED: Consider making this into mathml</div> 280.1944 - 280.1945 -<p>where "orderX" and "orderY" represent the X and Y values for the <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> attribute, "targetX" represents the value 280.1946 -of the <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> attribute, "targetY" represents the 280.1947 -value of the <a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a> attribute, "kernelMatrix" represents the 280.1948 -value of the <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a> attribute, "divisor" represents the 280.1949 -value of the <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> attribute, and "bias" represents the 280.1950 -value of the <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> attribute.</p> 280.1951 - 280.1952 -<p>Note in the above formulas that the values in the kernel matrix are 280.1953 -applied such that the kernel matrix is rotated 180 degrees relative to the 280.1954 -source and destination images in order to match convolution theory as 280.1955 -described in many computer graphics textbooks.</p> 280.1956 - 280.1957 -<p>To illustrate, suppose you have a input image which is 5 pixels by 5 280.1958 -pixels, whose color values for one of the color channels are as follows:</p> 280.1959 -<pre> 0 20 40 235 235 280.1960 - 100 120 140 235 235 280.1961 - 200 220 240 235 235 280.1962 - 225 225 255 255 255 280.1963 - 225 225 255 255 255</pre> 280.1964 - 280.1965 -<div class="note-editor"> 280.1966 -ED: Consider making this into mathml</div> 280.1967 - 280.1968 -<p>and you define a 3-by-3 convolution kernel as follows:</p> 280.1969 -<pre> 1 2 3 280.1970 - 4 5 6 280.1971 - 7 8 9</pre> 280.1972 - 280.1973 -<div class="note-editor"> 280.1974 -ED: Consider making this into mathml</div> 280.1975 - 280.1976 -<p>Let's focus on the color value at the second row and second column of the 280.1977 -image (source pixel value is 120). Assuming the simplest case (where the 280.1978 -input image's pixel grid aligns perfectly with the kernel's pixel grid) and 280.1979 -assuming default values for attributes <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a>, <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> and 280.1980 -<a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a>, then resulting color value will 280.1981 -be:</p> 280.1982 -<pre>(9* 0 + 8* 20 + 7* 40 + 280.1983 -6*100 + 5*120 + 4*140 + 280.1984 -3*200 + 2*220 + 1*240) / (9+8+7+6+5+4+3+2+1)</pre> 280.1985 - 280.1986 -<div class="note-editor"> 280.1987 -ED: Consider making this into mathml</div> 280.1988 - 280.1989 -<p>Because they operate on pixels, matrix convolutions are inherently 280.1990 -resolution-dependent. To make <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> produce resolution-independent 280.1991 -results, an explicit value should be provided for either the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element 280.1992 -and/or attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p> 280.1993 - 280.1994 -<p><a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, in combination with the other 280.1995 -attributes, defines an implicit pixel grid in the filter effects coordinate 280.1996 -system (i.e., the coordinate system established by the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> attribute). If the pixel grid 280.1997 -established by <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not scaled to match the 280.1998 -pixel grid established by attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> (implicitly or explicitly), then the 280.1999 -input image will be temporarily rescaled to match its pixels with <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. The convolution happens on the 280.2000 -resampled image. After applying the convolution, the image is resampled back 280.2001 -to the original resolution.</p> 280.2002 - 280.2003 -<p>When the image must be resampled to match the coordinate system defined by 280.2004 -<a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> prior to convolution, or 280.2005 -resampled to match the device coordinate system after convolution, it is 280.2006 -recommended that high quality viewers make use of appropriate interpolation 280.2007 -techniques, for example bilinear or bicubic. Depending on the speed of the 280.2008 -available interpolents, this choice may be affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property setting. Note that 280.2009 -implementations might choose approaches that minimize or eliminate resampling 280.2010 -when not necessary to produce proper results, such as when the document is 280.2011 -zoomed out such that <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is 280.2012 -considerably smaller than a device pixel.</p> 280.2013 - 280.2014 -<div class="adef-list"> 280.2015 -<p><em>Attribute definitions:</em></p> 280.2016 -<dl><dt id="feConvolveMatrixElementOrderAttribute"><span class="adef">order</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></span>"</dt><dd>Indicates the number of cells in each dimension for <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a>. The values provided must be 280.2017 - <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger"><integer></a> 280.2018 - s greater than zero. The first number, <orderX>, indicates the 280.2019 - number of columns in the matrix. The second number, <orderY>, 280.2020 - indicates the number of rows in the matrix. If <orderY> is not 280.2021 - provided, it defaults to <orderX>.<br/> 280.2022 - A typical value is order="3". It is recommended that only small values 280.2023 - (e.g., 3) be used; higher values may result in very high CPU overhead 280.2024 - and usually do not produce results that justify the impact on 280.2025 - performance.<br/> 280.2026 - If the attribute is not specified, the effect is as if a value of "3" 280.2027 - were specified.<br/> 280.2028 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementKernelMatrixAttribute"><span class="adef">kernelMatrix</span> = "<span class="attr-value"><list of 280.2029 - numbers></span>"</dt><dd>The list of <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a> 280.2030 - s that make up the kernel matrix for the convolution. Values are 280.2031 - separated by space characters and/or a comma. The number of entries in 280.2032 - the list must equal <orderX> times <orderY>.<br/> 280.2033 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementDivisorAttribute"><span class="adef">divisor</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></span>"</dt><dd>After applying the <span class="attr-name">kernelMatrix</span> to the 280.2034 - input image to yield a number, that number is divided by <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> to yield the final destination color 280.2035 - value. A divisor that is the sum of all the matrix values tends to have 280.2036 - an evening effect on the overall color intensity of the result. If the 280.2037 - specified divisor is zero then the default value will be used instead. 280.2038 - The default value is the sum of all values in kernelMatrix, with the 280.2039 - exception that if the sum is zero, then the divisor is set to 1.<br/> 280.2040 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementBiasAttribute"><span class="adef">bias</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></span>"</dt><dd>After applying the <span class="attr-name">kernelMatrix</span> to the 280.2041 - input image to yield a number and applying the <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a>, the <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> attribute is added to each component. One 280.2042 - application of <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> is when it is 280.2043 - desirable to have <span class="attr-value">.5</span> gray value be the zero response of the filter. If 280.2044 - <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> is not specified, then the effect 280.2045 - is as if a value of zero were specified.<br/> 280.2046 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementTargetXAttribute"><span class="adef">targetX</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger"><integer></a></span>"</dt><dd>Determines the positioning in X of the convolution matrix relative to 280.2047 - a given target pixel in the input image. The leftmost column of the 280.2048 - matrix is column number zero. The value must be such that: 0 <= 280.2049 - targetX < orderX. By default, the convolution matrix is centered in 280.2050 - X over each pixel of the input image (i.e., targetX = floor ( orderX / 280.2051 - 2 )).<br/> 280.2052 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementTargetYAttribute"><span class="adef">targetY</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger"><integer></a></span>"</dt><dd>Determines the positioning in Y of the convolution matrix relative to 280.2053 - a given target pixel in the input image. The topmost row of the matrix 280.2054 - is row number zero. The value must be such that: 0 <= targetY < 280.2055 - orderY. By default, the convolution matrix is centered in Y over each 280.2056 - pixel of the input image (i.e., targetY = floor ( orderY / 2 )).<br/> 280.2057 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementEdgeModeAttribute"><span class="adef">edgeMode</span> = "<span class="attr-value">duplicate | wrap | 280.2058 - none</span>"</dt><dd><p>Determines how to extend the input image as necessary with color 280.2059 - values so that the matrix operations can be applied when the kernel is 280.2060 - positioned at or near the edge of the input image.</p> 280.2061 - <p>"duplicate" indicates that the input image is extended along each of 280.2062 - its borders as necessary by duplicating the color values at the given 280.2063 - edge of the input image.</p> 280.2064 - <pre>Original N-by-M image, where m=M-1 and n=N-1: 280.2065 - 11 12 ... 1m 1M 280.2066 - 21 22 ... 2m 2M 280.2067 - .. .. ... .. .. 280.2068 - n1 n2 ... nm nM 280.2069 - N1 N2 ... Nm NM 280.2070 -Extended by two pixels using "duplicate": 280.2071 - 11 11 11 12 ... 1m 1M 1M 1M 280.2072 - 11 11 11 12 ... 1m 1M 1M 1M 280.2073 - 11 11 11 12 ... 1m 1M 1M 1M 280.2074 - 21 21 21 22 ... 2m 2M 2M 2M 280.2075 - .. .. .. .. ... .. .. .. .. 280.2076 - n1 n1 n1 n2 ... nm nM nM nM 280.2077 - N1 N1 N1 N2 ... Nm NM NM NM 280.2078 - N1 N1 N1 N2 ... Nm NM NM NM 280.2079 - N1 N1 N1 N2 ... Nm NM NM NM</pre> 280.2080 - 280.2081 - <div class="note-editor"> 280.2082 - ED: Consider making this into mathml</div> 280.2083 - <p>"wrap" indicates that the input image is extended by taking the 280.2084 - color values from the opposite edge of the image.</p> 280.2085 - <pre>Extended by two pixels using "wrap": 280.2086 - nm nM n1 n2 ... nm nM n1 n2 280.2087 - Nm NM N1 N2 ... Nm NM N1 N2 280.2088 - 1m 1M 11 12 ... 1m 1M 11 12 280.2089 - 2m 2M 21 22 ... 2m 2M 21 22 280.2090 - .. .. .. .. ... .. .. .. .. 280.2091 - nm nM n1 n2 ... nm nM n1 n2 280.2092 - Nm NM N1 N2 ... Nm NM N1 N2 280.2093 - 1m 1M 11 12 ... 1m 1M 11 12 280.2094 - 2m 2M 21 22 ... 2m 2M 21 22</pre> 280.2095 - 280.2096 - <div class="note-editor"> 280.2097 - ED: Consider making this into mathml</div> 280.2098 - <p>"none" indicates that the input image is extended with pixel values 280.2099 - of zero for R, G, B and A.</p> 280.2100 - <p><span class="anim-target">Animatable: yes.</span></p> 280.2101 - </dd><dt id="feConvolveMatrixElementKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></span>"</dt><dd>The first number is the <dx> value. The second number is the 280.2102 - <dy> value. If the <dy> value is not specified, it defaults 280.2103 - to the same value as <dx>. Indicates the intended distance in 280.2104 - current filter units (i.e., units as determined by the value of 280.2105 - attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) between successive columns 280.2106 - and rows, respectively, in the <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a>. By specifying value(s) for 280.2107 - <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, the kernel becomes defined 280.2108 - in a scalable, abstract coordinate system. If <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not specified, the default 280.2109 - value is one pixel in the offscreen bitmap, which is a pixel-based 280.2110 - coordinate system, and thus potentially not scalable. For some level of 280.2111 - consistency across display media and user agents, it is necessary that 280.2112 - a value be provided for at least one of <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> and <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. 280.2113 - In some implementations, the most consistent results and the fastest performance will be achieved if 280.2114 - the pixel grid of the temporary offscreen images aligns with the pixel 280.2115 - grid of the kernel.<br/> 280.2116 - If a negative or zero value is specified the default value will be used 280.2117 - instead. <br/> 280.2118 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feConvolveMatrixElementPreserveAlphaAttribute"><span class="adef">preserveAlpha</span> = "<span class="attr-value">false | 280.2119 - true</span>"</dt><dd>A value of <span class="attr-value">false</span> indicates that the 280.2120 - convolution will apply to all channels, including the alpha channel.<br/> 280.2121 - A value of <span class="attr-value">true</span> indicates that the 280.2122 - convolution will only apply to the color channels. In this case, the 280.2123 - filter will temporarily unpremultiply the color component values, apply 280.2124 - the kernel, and then re-premultiply at the end.<br/> 280.2125 - If <a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a> is not specified, then 280.2126 - the effect is as if a value of <span class="attr-value">false</span> 280.2127 - were specified.<br/> 280.2128 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.2129 -</div> 280.2130 - 280.2131 - 280.2132 - 280.2133 -<h2 id="feDiffuseLightingElement">14 Filter primitive <span class="element-name">‘feDiffuseLighting’</span></h2> 280.2134 - 280.2135 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDiffuseLighting’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2136 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">light source elements</a><span class="expanding"> — <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDiffuseLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a></li><li><a href="#feDiffuseLightingDiffuseConstantAttribute"><span class="attr-name">‘diffuseConstant’</span></a></li><li><a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDiffuseLightingElement">SVGFEDiffuseLightingElement</a></li></ul></dd></dl></div> 280.2137 - 280.2138 -<p>This filter primitive lights an image using the alpha channel as a bump 280.2139 -map. The resulting image is an RGBA opaque image based on the light color 280.2140 -with alpha = 1.0 everywhere. The lighting calculation follows the standard 280.2141 -diffuse component of the Phong lighting model. The resulting image depends on 280.2142 -the light color, light position and surface geometry of the input bump 280.2143 -map.</p> 280.2144 - 280.2145 -<p>The light map produced by this filter primitive can be combined with a 280.2146 -texture image using the multiply term of the <em>arithmetic</em> <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> compositing method. Multiple 280.2147 -light sources can be simulated by adding several of these light maps together 280.2148 -before applying it to the texture image.</p> 280.2149 - 280.2150 -<p>The formulas below make use of 3x3 filters. Because they operate on 280.2151 -pixels, such filters are inherently resolution-dependent. To make <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> produce 280.2152 -resolution-independent results, an explicit value should be provided for 280.2153 -either the <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> attribute on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element 280.2154 -and/or attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p> 280.2155 - 280.2156 -<p><a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>, in combination with the other 280.2157 -attributes, defines an implicit pixel grid in the filter effects coordinate 280.2158 -system (i.e., the coordinate system established by the <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> attribute). If the pixel grid 280.2159 -established by <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is not scaled to match the 280.2160 -pixel grid established by attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> (implicitly or explicitly), then the 280.2161 -input image will be temporarily rescaled to match its pixels with <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>. The 3x3 filters are applied to the resampled image. After applying the filter, the image is resampled back 280.2162 -to its original resolution.</p> 280.2163 - 280.2164 -<p><span class="requirement" id="assert_diffuseLightingImageResampling">When the image must be resampled, it is recommended that high quality viewers make use of appropriate interpolation techniques, for example 280.2165 -bilinear or bicubic.</span> Depending on the speed of the available interpolents, 280.2166 -this choice may be affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property setting. Note that 280.2167 -implementations might choose approaches that minimize or eliminate resampling 280.2168 -when not necessary to produce proper results, such as when the document is 280.2169 -zoomed out such that <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> is 280.2170 -considerably smaller than a device pixel.</p> 280.2171 - 280.2172 -<p>For the formulas that follow, the 280.2173 -<code>Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>)</code> function is 280.2174 -defined as:</p> 280.2175 - 280.2176 -<div class="note-editor"> 280.2177 -ED: Consider making the following in mathml</div> 280.2178 - 280.2179 -<p class="filterformula">Norm(A<sub>x</sub>,A<sub>y</sub>,A<sub>z</sub>) = 280.2180 -sqrt(A<sub>x</sub>^2+A<sub>y</sub>^2+A<sub>z</sub>^2)</p> 280.2181 - 280.2182 -<p>The resulting RGBA image is computed as follows:</p> 280.2183 - 280.2184 -<p class="filterformula">D<sub>r</sub> = k<sub>d</sub> * N.L * 280.2185 -L<sub>r</sub><br/> 280.2186 -D<sub>g</sub> = k<sub>d</sub> * N.L * L<sub>g</sub><br/> 280.2187 -D<sub>b</sub> = k<sub>d</sub> * N.L * L<sub>b</sub><br/> 280.2188 -D<sub>a</sub> = 1.0</p> 280.2189 - 280.2190 -<p>where</p> 280.2191 -<dl><dd>k<sub>d</sub> = diffuse lighting constant<br/> 280.2192 - N = surface normal unit vector, a function of x and y<br/> 280.2193 - L = unit vector pointing from surface to light, a function of x and y 280.2194 - in the point and spot light cases<br/> 280.2195 - L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light, a 280.2196 - function of x and y in the spot light case</dd></dl> 280.2197 - 280.2198 -<p>N is a function of x and y and depends on the surface gradient as 280.2199 -follows:</p> 280.2200 - 280.2201 -<p>The surface described by the input alpha image A<sub>in</sub>(x,y) is:</p> 280.2202 - 280.2203 -<p class="filterformula">Z (x,y) = surfaceScale * A<sub>in</sub>(x,y)</p> 280.2204 - 280.2205 -<p id="SurfaceNormalCalculations">Surface normal is calculated using the Sobel gradient 3x3 filter. 280.2206 -Different filter kernels are used depending on whether the given pixel is on 280.2207 -the interior or an edge. For each case, the formula is:</p> 280.2208 - 280.2209 -<p class="filterformula">N<sub>x</sub> (x,y)= - surfaceScale * 280.2210 -FACTOR<sub>x</sub> *<br/> 280.2211 -           (K <sub>x</sub>(0,0)*I(x-dx,y-dy) + 280.2212 -K<sub>x</sub>(1,0)*I(x,y-dy) + K<sub>x</sub>(2,0)*I(x+dx,y-dy) +<br/> 280.2213 -            K <sub>x</sub>(0,1)*I(x-dx,y)   + 280.2214 -K<sub>x</sub>(1,1)*I(x,y)   + K<sub>x</sub>(2,1)*I(x+dx,y)   +<br/> 280.2215 -            K <sub>x</sub>(0,2)*I(x-dx,y+dy) + 280.2216 -K<sub>x</sub>(1,2)*I(x,y+dy) + K<sub>x</sub>(2,2)*I(x+dx,y+dy))<br/> 280.2217 -N<sub>y</sub> (x,y)= - surfaceScale * FACTOR<sub>y</sub> *<br/> 280.2218 -           (K <sub>y</sub>(0,0)*I(x-dx,y-dy) + 280.2219 -K<sub>y</sub>(1,0)*I(x,y-dy) + K<sub>y</sub>(2,0)*I(x+dx,y-dy) +<br/> 280.2220 -            K <sub>y</sub>(0,1)*I(x-dx,y)   + 280.2221 -K<sub>y</sub>(1,1)*I(x,y)   + K<sub>y</sub>(2,1)*I(x+dx,y)   +<br/> 280.2222 -            K <sub>y</sub>(0,2)*I(x-dx,y+dy) + 280.2223 -K<sub>y</sub>(1,2)*I(x,y+dy) + K<sub>y</sub>(2,2)*I(x+dx,y+dy))<br/> 280.2224 -N<sub>z</sub> (x,y) = 1.0<br/> 280.2225 -<br/> 280.2226 -N = (N<sub>x</sub>, N<sub>y</sub>, N<sub>z</sub>) / 280.2227 -Norm((N<sub>x</sub>,N<sub>y</sub>,N<sub>z</sub>))</p> 280.2228 - 280.2229 -<p>In these formulas, the <code>dx</code> and <code>dy</code> values (e.g., 280.2230 -<code>I(x-dx,y-dy)</code>), represent deltas relative to a given 280.2231 -<code>(x,y)</code> position for the purpose of estimating the slope of the 280.2232 -surface at that point. These deltas are determined by the value (explicit or 280.2233 -implicit) of attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a>.</p> 280.2234 - 280.2235 -<table summary="feDiffuseLighting formulas" border="1"><colgroup><col width="33.3%"/><col width="33.3%"/><col width="*"/></colgroup><tbody><tr><td><p>Top/left corner:</p> 280.2236 - 280.2237 - <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/> 280.2238 - K<sub>x</sub> =<br/> 280.2239 -     |  0  0  0 |<br/> 280.2240 -     |  0 -2  2 |<br/> 280.2241 -     |  0 -1  1 |<br/> 280.2242 - <br/> 280.2243 - FACTOR<sub>y</sub>=2/(3*dy)<br/> 280.2244 - K<sub>y</sub> =  <br/> 280.2245 -     |  0  0  0 |<br/> 280.2246 -     |  0 -2 -1 |<br/> 280.2247 -     |  0  2  1 |</p> 280.2248 - </td><td><p>Top row:</p> 280.2249 - 280.2250 - <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br/> 280.2251 - K<sub>x</sub> =<br/> 280.2252 -     |  0  0  0 |<br/> 280.2253 -     | -2  0  2 |<br/> 280.2254 -     | -1  0  1 |<br/> 280.2255 - <br/> 280.2256 - FACTOR<sub>y</sub>=1/(2*dy)<br/> 280.2257 - K<sub>y</sub> =  <br/> 280.2258 -     |  0  0  0 |<br/> 280.2259 -     | -1 -2 -1 |<br/> 280.2260 -     |  1  2  1 |</p> 280.2261 - </td><td><p>Top/right corner:</p> 280.2262 - 280.2263 - <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/> 280.2264 - K<sub>x</sub> =<br/> 280.2265 -     |  0  0  0 |<br/> 280.2266 -     | -2  2  0 |<br/> 280.2267 -     | -1  1  0 |<br/> 280.2268 - <br/> 280.2269 - FACTOR<sub>y</sub>=2/(3*dy)<br/> 280.2270 - K<sub>y</sub> =  <br/> 280.2271 -     |  0  0  0 |<br/> 280.2272 -     | -1 -2  0 |<br/> 280.2273 -     |  1  2  0 |</p> 280.2274 - </td></tr><tr><td><p>Left column:</p> 280.2275 - 280.2276 - <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br/> 280.2277 - K<sub>x</sub> =<br/> 280.2278 -     | 0 -1  1 |<br/> 280.2279 -     | 0 -2  2 |<br/> 280.2280 -     | 0 -1  1 |<br/> 280.2281 - <br/> 280.2282 - FACTOR<sub>y</sub>=1/(3*dy)<br/> 280.2283 - K<sub>y</sub> =  <br/> 280.2284 -     |  0 -2 -1 |<br/> 280.2285 -     |  0  0  0 |<br/> 280.2286 -     |  0  2  1 |</p> 280.2287 - </td><td><p>Interior pixels:</p> 280.2288 - 280.2289 - <p class="filterformula">FACTOR<sub>x</sub>=1/(4*dx)<br/> 280.2290 - K<sub>x</sub> =<br/> 280.2291 -     | -1  0  1 |<br/> 280.2292 -     | -2  0  2 |<br/> 280.2293 -     | -1  0  1 |<br/> 280.2294 - <br/> 280.2295 - FACTOR<sub>y</sub>=1/(4*dy)<br/> 280.2296 - K<sub>y</sub> =  <br/> 280.2297 -     | -1 -2 -1 |<br/> 280.2298 -     |  0  0  0 |<br/> 280.2299 -     |  1  2  1 |</p> 280.2300 - </td><td><p>Right column:</p> 280.2301 - 280.2302 - <p class="filterformula">FACTOR<sub>x</sub>=1/(2*dx)<br/> 280.2303 - K<sub>x</sub> =<br/> 280.2304 -     | -1  1  0|<br/> 280.2305 -     | -2  2  0|<br/> 280.2306 -     | -1  1  0|<br/> 280.2307 - <br/> 280.2308 - FACTOR<sub>y</sub>=1/(3*dy)<br/> 280.2309 - K<sub>y</sub> =  <br/> 280.2310 -     | -1 -2  0 |<br/> 280.2311 -     |  0  0  0 |<br/> 280.2312 -     |  1  2  0 |</p> 280.2313 - </td></tr><tr><td><p>Bottom/left corner:</p> 280.2314 - 280.2315 - <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/> 280.2316 - K<sub>x</sub> =<br/> 280.2317 -     | 0 -1  1 |<br/> 280.2318 -     | 0 -2  2 |<br/> 280.2319 -     | 0  0  0 |<br/> 280.2320 - <br/> 280.2321 - FACTOR<sub>y</sub>=2/(3*dy)<br/> 280.2322 - K<sub>y</sub> =  <br/> 280.2323 -     |  0 -2 -1 |<br/> 280.2324 -     |  0  2  1 |<br/> 280.2325 -     |  0  0  0 |</p> 280.2326 - </td><td><p>Bottom row:</p> 280.2327 - 280.2328 - <p class="filterformula">FACTOR<sub>x</sub>=1/(3*dx)<br/> 280.2329 - K<sub>x</sub> =<br/> 280.2330 -     | -1  0  1 |<br/> 280.2331 -     | -2  0  2 |<br/> 280.2332 -     |  0  0  0 |<br/> 280.2333 - <br/> 280.2334 - FACTOR<sub>y</sub>=1/(2*dy)<br/> 280.2335 - K<sub>y</sub> =  <br/> 280.2336 -     | -1 -2 -1 |<br/> 280.2337 -     |  1  2  1 |<br/> 280.2338 -     |  0  0  0 |</p> 280.2339 - </td><td><p>Bottom/right corner:</p> 280.2340 - 280.2341 - <p class="filterformula">FACTOR<sub>x</sub>=2/(3*dx)<br/> 280.2342 - K<sub>x</sub> =<br/> 280.2343 -     | -1  1  0 |<br/> 280.2344 -     | -2  2  0 |<br/> 280.2345 -     |  0  0  0 |<br/> 280.2346 - <br/> 280.2347 - FACTOR<sub>y</sub>=2/(3*dy)<br/> 280.2348 - K<sub>y</sub> =  <br/> 280.2349 -     | -1 -2  0 |<br/> 280.2350 -     |  1  2  0 |<br/> 280.2351 -     |  0  0  0 |</p> 280.2352 - </td></tr></tbody></table> 280.2353 - 280.2354 -<p>L, the unit vector from the image sample to the light, is calculated as 280.2355 -follows:</p> 280.2356 - 280.2357 -<p>For Infinite light sources it is constant:</p> 280.2358 - 280.2359 -<p class="filterformula">L<sub>x</sub> = cos(azimuth)*cos(elevation)<br/> 280.2360 -L<sub>y</sub> = sin(azimuth)*cos(elevation)<br/> 280.2361 -L<sub>z</sub> = sin(elevation)</p> 280.2362 - 280.2363 -<p>For Point and spot lights it is a function of position:</p> 280.2364 - 280.2365 -<p class="filterformula">L<sub>x</sub> = Light<sub>x</sub> - x<br/> 280.2366 -L<sub>y</sub> = Light<sub>y</sub> - y<br/> 280.2367 -L<sub>z</sub> = Light<sub>z</sub> - Z(x,y)<br/> 280.2368 -<br/> 280.2369 -L = (L<sub>x</sub>, L<sub>y</sub>, L<sub>z</sub>) / Norm(L<sub>x</sub>, 280.2370 -L<sub>y</sub>, L<sub>z</sub>)</p> 280.2371 - 280.2372 -<p>where Light<sub>x</sub>, Light<sub>y</sub>, and Light<sub>z</sub> are the 280.2373 -input light position.</p> 280.2374 - 280.2375 -<p>L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub>, the light color vector, is a 280.2376 -function of position in the spot light case only:</p> 280.2377 - 280.2378 -<p class="filterformula">L<sub>r</sub> = 280.2379 -Light<sub>r</sub>*pow((-L.S),specularExponent)<br/> 280.2380 -L<sub>g</sub> = Light<sub>g</sub>*pow((-L.S),specularExponent)<br/> 280.2381 -L<sub>b</sub> = Light<sub>b</sub>*pow((-L.S),specularExponent)</p> 280.2382 - 280.2383 -<p>where S is the unit vector pointing from the light to the point 280.2384 -(pointsAtX, pointsAtY, pointsAtZ) in the x-y plane:</p> 280.2385 - 280.2386 -<p class="filterformula">S<sub>x</sub> = pointsAtX - Light<sub>x</sub><br/> 280.2387 -S<sub>y</sub> = pointsAtY - Light<sub>y</sub><br/> 280.2388 -S<sub>z</sub> = pointsAtZ - Light<sub>z</sub><br/> 280.2389 -<br/> 280.2390 -S = (S<sub>x</sub>, S<sub>y</sub>, S<sub>z</sub>) / Norm(S<sub>x</sub>, 280.2391 -S<sub>y</sub>, S<sub>z</sub>)</p> 280.2392 - 280.2393 -<p>If L.S is positive, no light is present. (L<sub>r</sub> = L<sub>g</sub> = 280.2394 -L<sub>b</sub> = 0). If <a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a> is specified, -L.S < cos(limitingConeAngle) also indicates that no light is present.</p> 280.2395 - 280.2396 -<div class="adef-list"> 280.2397 -<p><em>Attribute definitions:</em></p> 280.2398 -<dl><dt id="feDiffuseLightingSurfaceScaleAttribute"><span class="adef">surfaceScale</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>height of surface when A<sub>in</sub> = 1.<br/> 280.2399 - If the attribute is not specified, then the effect is as if a value of 280.2400 - <span class="attr-value">1</span> were specified.<br/> 280.2401 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feDiffuseLightingDiffuseConstantAttribute"><span class="adef">diffuseConstant</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>kd in Phong lighting model. In SVG, this can be any non-negative 280.2402 - number.<br/> 280.2403 - If the attribute is not specified, then the effect is as if a value of 280.2404 - <span class="attr-value">1</span> were specified.<br/> 280.2405 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feDiffuseLightingKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></span>"</dt><dd>The first number is the <dx> value. The second number is the 280.2406 - <dy> value. If the <dy> value is not specified, it defaults 280.2407 - to the same value as <dx>. Indicates the intended distance in 280.2408 - current filter units (i.e., units as determined by the value of 280.2409 - attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) for <code>dx</code> and 280.2410 - <code>dy</code>, respectively, in the <a href="#SurfaceNormalCalculations">surface normal calculation 280.2411 - formulas</a>. By specifying value(s) for <span class="attr-name">kernelUnitLength</span>, the kernel becomes defined 280.2412 - in a scalable, abstract coordinate system. If <span class="attr-name">kernelUnitLength</span> is not specified, the 280.2413 - <code>dx</code> and <code>dy</code> values should represent very small 280.2414 - deltas relative to a given <code>(x,y)</code> position, which might be 280.2415 - implemented in some cases as one pixel in the intermediate image 280.2416 - offscreen bitmap, which is a pixel-based coordinate system, and thus 280.2417 - potentially not scalable. For some level of consistency across display 280.2418 - media and user agents, it is necessary that a value be provided for at 280.2419 - least one of <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> and <span class="attr-name">kernelUnitLength</span>. Discussion of intermediate 280.2420 - images are in the <a href="#Introduction">Introduction</a> and in the 280.2421 - description of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>.<br/> 280.2422 - If a negative or zero value is specified the default value will be used 280.2423 - instead. <br/> 280.2424 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.2425 -</div> 280.2426 - 280.2427 -<p>The light source is defined by one of the child elements <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, 280.2428 -<a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> or <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a>. The light color is specified 280.2429 -by property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>.</p> 280.2430 - 280.2431 -<h2 id="feDisplacementMapElement">15 Filter primitive <span class="element-name">‘feDisplacementMap’</span></h2> 280.2432 - 280.2433 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDisplacementMap’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2434 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a></li><li><a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a></li><li><a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a></li><li><a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDisplacementMapElement">SVGFEDisplacementMapElement</a></li></ul></dd></dl></div> 280.2435 - 280.2436 -<p>This filter primitive uses the pixels values from the image from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> 280.2437 -to spatially displace the image from <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>. 280.2438 -This is the transformation to be performed:</p> 280.2439 - 280.2440 -<pre> P'(x,y) ↠P( x + scale * (XC(x,y) - .5), y + scale * (YC(x,y) - .5)) 280.2441 - </pre> 280.2442 - 280.2443 -<p>where P(x,y) is the input image, <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>, and 280.2444 -P'(x,y) is the destination. XC(x,y) and YC(x,y) are the component values of 280.2445 -the channel designated by the <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> and 280.2446 -<a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a>. For example, to use the R component of <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> 280.2447 -to control displacement in x and the G component of Image2 to control 280.2448 -displacement in y, set <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> to <span class="attr-value">"R"</span> and 280.2449 -<a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a> to <span class="attr-value">"G"</span>.</p> 280.2450 - 280.2451 -<p>The displacement map, <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a>, defines the inverse of the mapping 280.2452 -performed.</p> 280.2453 - 280.2454 -<p>The input image in is to remain premultiplied for this filter primitive. The calculations using the pixel values from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> are performed using non-premultiplied color values. If the image from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> consists of premultiplied color values, those values are automatically converted into non-premultiplied color values before performing this operation.</p> 280.2455 - 280.2456 -<p>This filter can have arbitrary non-localized effect on the input which 280.2457 -might require substantial buffering in the processing pipeline. However with 280.2458 -this formulation, any intermediate buffering needs can be determined by 280.2459 -<a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> which represents the maximum range of displacement in either x 280.2460 -or y.</p> 280.2461 - 280.2462 -<p>When applying this filter, the source pixel location will often lie 280.2463 -between several source pixels. In this case it is recommended that high 280.2464 -quality viewers apply an interpolent on the surrounding pixels, for example 280.2465 -bilinear or bicubic, rather than simply selecting the nearest source pixel. 280.2466 -Depending on the speed of the available interpolents, this choice may be 280.2467 -affected by the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="prop-name">‘image-rendering’</span></a> property 280.2468 -setting.</p> 280.2469 - 280.2470 -<p>The <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> property only applies to the 280.2471 - <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> source image and does not apply to the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> source image. 280.2472 - The <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> source image must remain in its current color space. 280.2473 -</p> 280.2474 - 280.2475 -<div class="adef-list"> 280.2476 -<p><em>Attribute definitions:</em></p> 280.2477 -<dl><dt id="feDisplacementMapScaleAttribute"><span class="adef">scale</span> 280.2478 - = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Displacement scale factor. The amount is expressed in the coordinate 280.2479 - system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.2480 - element.<br/> 280.2481 - When the value of this attribute is <span class="attr-value">0</span>, 280.2482 - this operation has no effect on the source image.<br/> 280.2483 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> is <span class="attr-value">0</span>.</p> 280.2484 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapXChannelSelectorAttribute"><span class="adef">xChannelSelector</span> = "<em>R | G | B | A</em>"</dt><dd>Indicates which channel from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> to use to displace the pixels in <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> along the x-axis. 280.2485 - The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="data:," style="background: red; color: white">@@ unknown name 'xChannelSelector'</a> is <span class="attr-value">A</span>. 280.2486 - <br/> 280.2487 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapYChannelSelectorAttribute"><span class="adef">yChannelSelector</span> = "<em>R | G | B | A</em>"</dt><dd>Indicates which channel from <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> to use to displace the pixels in <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> along the y-axis. 280.2488 - The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="data:," style="background: red; color: white">@@ unknown name 'yChannelSelector'</a> is <span class="attr-value">A</span>. 280.2489 - <br/> 280.2490 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feDisplacementMapIn2Attribute"><span class="adef">in2</span> = 280.2491 - "<em>(see <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute)</em>"</dt><dd>The second input image, which is used to displace the pixels in the 280.2492 - image from attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a>. This attribute can take on the same 280.2493 - values as the <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> attribute.<br/> 280.2494 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.2495 -</div> 280.2496 - 280.2497 -<h2 id="feFloodElement">16 Filter primitive <span class="element-name">‘feFlood’</span></h2> 280.2498 - 280.2499 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feFlood’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2500 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEFloodElement">SVGFEFloodElement</a></li></ul></dd></dl></div> 280.2501 - 280.2502 -<p>This filter primitive creates a rectangle filled with the color and 280.2503 -opacity values from properties <span class="prop-name">‘flood-color’</span> 280.2504 -and <span class="prop-name">‘flood-opacity’</span>. The rectangle is as large 280.2505 -as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> 280.2506 -established by the <span class="element-name">‘feFlood’</span> element.</p> 280.2507 - 280.2508 -<div class="adef-list"> 280.2509 - </div> 280.2510 - 280.2511 -<p>The <span class="prop-name">‘flood-color’</span> property indicates what 280.2512 -color to use to flood the current <a href="#FilterPrimitiveSubRegion">filter 280.2513 -primitive subregion</a>. The keyword <span class="attr-value">currentColor</span> and ICC colors can be specified in the 280.2514 -same manner as within a <paint> specification for the <span class="prop-name">‘fill’</span> and <span class="prop-name">‘stroke’</span> 280.2515 -properties.</p> 280.2516 - 280.2517 -<div class="propdef"> 280.2518 -<dl><dt id="FloodColorProperty"><span class="propdef-title prop-name">‘flood-color’</span></dt><dd> 280.2519 - <table summary="flood-color property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td>currentColor |<br/> 280.2520 - <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeColor"><color></a> 280.2521 - [<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeICCColor"><icccolor></a>] |<br/> 280.2522 - <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>black</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> and <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table> 280.2523 - </dd></dl> 280.2524 -</div> 280.2525 - 280.2526 -<p>The <span class="prop-name">‘flood-opacity’</span> property defines the 280.2527 -opacity value to use across the entire <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a>.</p> 280.2528 - 280.2529 -<div class="propdef"> 280.2530 -<dl><dt id="OpacityFloodOpacityProperty"><span class="propdef-title prop-name">‘flood-opacity’</span></dt><dd> 280.2531 - <table summary="flood-opacity property" class="propinfo" cellspacing="0" cellpadding="0"><tbody><tr valign="baseline"><td><em>Value:</em>  </td><td><opacity-value> | <a class="noxref" href="http://www.w3.org/TR/2009/CR-CSS2-20090423/cascade.html#value-def-inherit"><span class="value-inst-inherit noxref">inherit</span></a></td></tr><tr valign="baseline"><td><em>Initial:</em>  </td><td>1</td></tr><tr valign="baseline"><td><em>Applies to:</em>  </td><td><a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> and <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> elements</td></tr><tr valign="baseline"><td><em>Inherited:</em>  </td><td>no</td></tr><tr valign="baseline"><td><em>Percentages:</em>  </td><td>N/A</td></tr><tr valign="baseline"><td><em>Media:</em>  </td><td>visual</td></tr><tr valign="baseline"><td><em>Animatable:</em>  </td><td>yes</td></tr></tbody></table> 280.2532 - </dd></dl> 280.2533 -</div> 280.2534 - 280.2535 -<h2 id="feGaussianBlurElement">17 Filter primitive <span class="element-name">‘feGaussianBlur’</span></h2> 280.2536 - 280.2537 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feGaussianBlur’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2538 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEGaussianBlurElement">SVGFEGaussianBlurElement</a></li></ul></dd></dl></div> 280.2539 - 280.2540 -<p>This filter primitive performs a Gaussian blur on the input image.</p> 280.2541 - 280.2542 -<p>The Gaussian blur kernel is an approximation of the normalized 280.2543 -convolution:</p> 280.2544 - 280.2545 -<p class="filterformula">G(x,y) = H(x)I(y)</p> 280.2546 -<p>where 280.2547 -<span>H(x) = exp(-x^2/ (2s^2)) / sqrt(2* pi*s^2)</span> 280.2548 -</p> 280.2549 -<p>and</p> 280.2550 -<p class="filterformula">I(y) = exp(-y^2/ (2t^2)) / sqrt(2* pi*t^2)</p> 280.2551 -<p>with 's' being the standard deviation in the x direction 280.2552 -and 't' being the standard deviation in the y direction, as specified by <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a>.</p> 280.2553 - 280.2554 -<p>The value of <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a> can be either one or two numbers. 280.2555 -If two numbers are provided, the first number represents a standard deviation 280.2556 -value along the x-axis of the current coordinate system and the second value 280.2557 -represents a standard deviation in Y. If one number is provided, then that 280.2558 -value is used for both X and Y.</p> 280.2559 - 280.2560 -<p>Even if only one value is provided for <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">stdDeviation</span></a>, this can be implemented as a 280.2561 -separable convolution.</p> 280.2562 - 280.2563 -<p>For larger values of 's' (s >= 2.0), an approximation can be used: 280.2564 -Three successive box-blurs build a piece-wise quadratic convolution kernel, 280.2565 -which approximates the Gaussian kernel to within roughly 3%.</p> 280.2566 - 280.2567 -<p class="filterformula">let d = floor(s * 3*sqrt(2*pi)/4 + 0.5)</p> 280.2568 - 280.2569 -<p>... if d is odd, use three box-blurs of size 'd', centered on the output 280.2570 -pixel.</p> 280.2571 - 280.2572 -<p>... if d is even, two box-blurs of size 'd' (the first one centered on the 280.2573 -pixel boundary between the output pixel and the one to the left, the second 280.2574 -one centered on the pixel boundary between the output pixel and the one to 280.2575 -the right) and one box blur of size 'd+1' centered on the output pixel.</p> 280.2576 - 280.2577 -<p>Frequently this operation will take place on alpha-only images, such as 280.2578 -that produced by the built-in input, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>. The implementation may notice this 280.2579 -and optimize the single channel case. If the input has infinite extent and is 280.2580 -constant, this operation has no effect. If the input has infinite extent and 280.2581 -is a tile, the filter is evaluated with periodic boundary conditions.</p> 280.2582 - 280.2583 -<div class="adef-list"> 280.2584 -<p><em>Attribute definitions:</em></p> 280.2585 -<dl><dt id="feGaussianBlurStdDeviationAttribute"><span class="adef">stdDeviation</span> = 280.2586 - "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></em>"</dt><dd>The standard deviation for the blur operation. If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a> 280.2587 - s are provided, the first number represents a standard deviation value 280.2588 - along the x-axis of the coordinate system established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.2589 - element. The second value represents a standard deviation in Y. If one 280.2590 - number is provided, then that value is used for both X and Y.<br/> 280.2591 - A value of zero disables the effect of the given filter primitive (i.e., the result is the filter input image).<br/> 280.2592 - If the attribute is not specified, then the effect is as if a value of 280.2593 - <span class="attr-value">0</span> were specified.<br/> 280.2594 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.2595 -</div> 280.2596 - 280.2597 -<p><a href="#AnExample">The example</a> at the start of this chapter makes 280.2598 -use of the <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive 280.2599 -to create a drop shadow effect.</p> 280.2600 - 280.2601 -<h2 id="feUnsharpMaskElement">18 Filter primitive <span class="element-name">‘feUnsharpMask’</span></h2> 280.2602 - 280.2603 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feUnsharpMask’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2604 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feUnsharpMaskAmountAttribute"><span class="attr-name">‘amount’</span></a></li><li><a href="#feUnsharpMaskThresholdAttribute"><span class="attr-name">‘threshold’</span></a></li><li><a href="#feUnsharpMaskStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEUnsharpMaskElement">SVGFEUnsharpMaskElement</a></li></ul></dd></dl></div> 280.2605 - 280.2606 -<p>This filter primitive performs an image sharpening operation on the input image. This is traditionally known as an unsharp mask operation.</p> 280.2607 - 280.2608 -<p>The filter first does a <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> operation on the input image and then subtracts the difference between the input image and the blurred image.</p> 280.2609 - 280.2610 -<p> 280.2611 -For controlling the result there are three attributes that can be used: 280.2612 - <ul><li>the <a href="#feUnsharpMaskStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> attribute controls how much to blur the input image</li><li>the <a href="#feUnsharpMaskThresholdAttribute"><span class="attr-name">‘threshold’</span></a> attribute can be used for controlling when the difference should not be subtracted</li><li>the <a href="#feUnsharpMaskAmountAttribute"><span class="attr-name">‘amount’</span></a> attribute specifies an optional multiplier for the difference to subtract</li></ul> 280.2613 -</p> 280.2614 - 280.2615 -<h2 id="feImageElement">19 Filter primitive <span class="element-name">‘feImage’</span></h2> 280.2616 - 280.2617 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feImage’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2618 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateTransformElement"><span class="element-name">‘animateTransform’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermXLinkAttributes">xlink attributes</a><span class="expanding"> — <a href="#feImageElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkShowAttribute"><span class="attr-name">‘xlink:show’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#XLinkActuateAttribute"><span class="attr-name">‘xlink:actuate’</span></a>, <a href="struct.html#XLinkTypeAttribute"><span class="attr-name">‘xlink:type’</span></a>, <a href="struct.html#XLinkRoleAttribute"><span class="attr-name">‘xlink:role’</span></a>, <a href="struct.html#XLinkArcRoleAttribute"><span class="attr-name">‘xlink:arcrole’</span></a>, <a href="struct.html#XLinkTitleAttribute"><span class="attr-name">‘xlink:title’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#ExternalResourcesRequiredAttribute"><span class="attr-name">‘externalResourcesRequired’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#PreserveAspectRatioAttribute"><span class="attr-name">‘preserveAspectRatio’</span></a></li><li><a href="#feImageElementHrefAttribute"><span class="attr-name">‘xlink:href’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEImageElement">SVGFEImageElement</a></li></ul></dd></dl></div> 280.2619 - 280.2620 -<p>This filter primitive refers to a graphic external to this filter element, 280.2621 -which is loaded or rendered into an RGBA raster and becomes the result of the 280.2622 -filter primitive.</p> 280.2623 - 280.2624 -<p>This filter primitive can refer to an external image or can be a reference 280.2625 -to another piece of SVG. It produces an image similar to the built-in image 280.2626 -source <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> except that the graphic comes 280.2627 -from an external source.</p> 280.2628 - 280.2629 -<p>If the <span class="attr-name">xlink:href</span> references a stand-alone 280.2630 -image resource such as a JPEG, PNG or SVG file, then the image resource is 280.2631 -rendered according to the behavior of the <span class="element-name">‘image’</span> element; otherwise, the referenced 280.2632 -resource is rendered according to the behavior of the <span class="element-name">‘use’</span> element. In either case, the current user 280.2633 -coordinate system depends on the value of attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 280.2634 -The processing of the <span class="attr-name">preserveAspectRatio</span> 280.2635 -attribute on the <span class="element-name">‘feImage’</span> element is 280.2636 -identical to that of the <a href="struct.html#ImageElement"><span class="element-name">‘image’</span></a> element.</p> 280.2637 - 280.2638 -<p><span class="requirement" id="assert_hqImageResampling">When the referenced image must be resampled to match the device coordinate 280.2639 -system, it is recommended that high quality viewers make use of appropriate 280.2640 -interpolation techniques, for example bilinear or bicubic.</span> Depending on the 280.2641 -speed of the available interpolents, this choice may be affected by the <span class="prop-name">‘image-rendering’</span> property setting.</p> 280.2642 - 280.2643 -<div class="adef-list"> 280.2644 -<p><em>Attribute definitions:</em></p> 280.2645 -<dl><dt id="feImageHrefAttribute"><span class="adef">xlink:href</span> = 280.2646 - "<span class="attr-value"><IRI></span>"</dt><dd>An <a href="http://www.w3.org/TR/SVGTiny12/linking.html#IRIReference">IRI reference</a> 280.2647 - to an image resource or to an element. 280.2648 - <br/> 280.2649 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.2650 -</div> 280.2651 - 280.2652 -<h2 id="feMergeElement">20 Filter primitive <span class="element-name">‘feMerge’</span></h2> 280.2653 - 280.2654 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMerge’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2655 - <ul class="no-bullets"><li><a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMergeElement">SVGFEMergeElement</a></li></ul></dd></dl></div> 280.2656 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMergeNode’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2657 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMergeNodeElement">SVGFEMergeNodeElement</a></li></ul></dd></dl></div> 280.2658 - 280.2659 -<p>This filter primitive composites input image layers on top of each other 280.2660 -using the <em>over</em> operator with <em>Input1</em> (corresponding to the 280.2661 -first <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> child element) on the bottom 280.2662 -and the last specified input, <em>InputN</em> (corresponding to the last <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> child element), on top.</p> 280.2663 - 280.2664 -<p>Many effects produce a number of intermediate layers in order to create 280.2665 -the final output image. This filter allows us to collapse those into a single 280.2666 -image. Although this could be done by using n-1 Composite-filters, it is more 280.2667 -convenient to have this common operation available in this form, and offers 280.2668 -the implementation some additional flexibility.</p> 280.2669 - 280.2670 -<p>Each 'feMerge' element can have any number of 'feMergeNode' subelements, 280.2671 -each of which has an <a href="#CommonAttributes"><span class="attr-name">in</span></a> attribute.</p> 280.2672 - 280.2673 -<p>The canonical implementation of feMerge is to render the entire effect 280.2674 -into one RGBA layer, and then render the resulting layer on the output 280.2675 -device. In certain cases (in particular if the output device itself is a 280.2676 -continuous tone device), and since merging is associative, it might be a 280.2677 -sufficient approximation to evaluate the effect one layer at a time and 280.2678 -render each layer individually onto the output device bottom to top.</p> 280.2679 - 280.2680 -<p>If the topmost image input is <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> and this <span class="element-name">‘feMerge’</span> is the last filter primitive in the 280.2681 -filter, the implementation is encouraged to render the layers up to that 280.2682 -point, and then render the <a href="#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> directly from its vector 280.2683 -description on top.</p> 280.2684 - 280.2685 -<p id="feMergeNode"><a href="#AnExample">The example</a> at the start of this chapter makes 280.2686 -use of the <span class="element-name">feMerge</span> filter primitive to 280.2687 -composite two intermediate filter results together.</p> 280.2688 - 280.2689 -<h2 id="feMorphologyElement">21 Filter primitive <span class="element-name">‘feMorphology’</span></h2> 280.2690 - 280.2691 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feMorphology’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2692 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feMorphologyOperatorAttribute"><span class="attr-name">‘operator’</span></a></li><li><a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEMorphologyElement">SVGFEMorphologyElement</a></li></ul></dd></dl></div> 280.2693 - 280.2694 -<p>This filter primitive performs "fattening" or "thinning" of artwork. It is 280.2695 -particularly useful for fattening or thinning an alpha channel.</p> 280.2696 - 280.2697 -<p>The dilation (or erosion) kernel is a rectangle with a width of 280.2698 -2*<em>x-radius</em> and a height of 2*<em>y-radius</em>. In dilation, the 280.2699 -output pixel is the individual component-wise maximum of the corresponding 280.2700 -R,G,B,A values in the input image's kernel rectangle. In erosion, the output 280.2701 -pixel is the individual component-wise minimum of the corresponding R,G,B,A 280.2702 -values in the input image's kernel rectangle.</p> 280.2703 - 280.2704 -<p>Frequently this operation will take place on alpha-only images, such as 280.2705 -that produced by the built-in input, <a href="#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>. In that case, the implementation 280.2706 -might want to optimize the single channel case.</p> 280.2707 - 280.2708 -<p>If the input has infinite extent and is constant, this operation has no 280.2709 -effect. If the input has infinite extent and is a tile, the filter is 280.2710 -evaluated with periodic boundary conditions.</p> 280.2711 - 280.2712 -<p>Because <span class="element-name">‘feMorphology’</span> operates on 280.2713 -premultipied color values, it will always result in color values less than or 280.2714 -equal to the alpha channel.</p> 280.2715 - 280.2716 -<div class="adef-list"> 280.2717 -<p><em>Attribute definitions:</em></p> 280.2718 -<dl><dt id="feMorphologyOperatorAttribute"><span class="adef">operator</span> = "<em>erode | dilate</em>"</dt><dd>A keyword indicating whether to erode (i.e., thin) or dilate (fatten) 280.2719 - the source graphic.<br/> 280.2720 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feMorphologyRadiusAttribute"><span class="adef">radius</span> = 280.2721 - "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></em>"</dt><dd>The radius (or radii) for the operation. If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a> 280.2722 - s are provided, the first number represents a x-radius and the second 280.2723 - value represents a y-radius. If one number is provided, then that value 280.2724 - is used for both X and Y. The values are in the coordinate system 280.2725 - established by attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.2726 - element.<br/> 280.2727 - A negative or zero value disables the effect of the given filter 280.2728 - primitive (i.e., the result is a transparent black image).<br/> 280.2729 - If the attribute is not specified, then the effect is as if a value of 280.2730 - <span class="attr-value">0</span> were specified.<br/> 280.2731 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.2732 -</div> 280.2733 - 280.2734 -<pre class="xml"><?xml version="1.0"?> 280.2735 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 280.2736 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 280.2737 -<svg width="5cm" height="7cm" viewBox="0 0 700 500" 280.2738 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 280.2739 - <title>Example feMorphology - Examples of erode and dilate</title> 280.2740 - <desc>Five text strings drawn as outlines. 280.2741 - The first is unfiltered. The second and third use 'erode'. 280.2742 - The fourth and fifth use 'dilate'.</desc> 280.2743 - <defs> 280.2744 - <filter id="Erode3"> 280.2745 - <feMorphology operator="erode" in="SourceGraphic" radius="3" /> 280.2746 - </filter> 280.2747 - <filter id="Erode6"> 280.2748 - <feMorphology operator="erode" in="SourceGraphic" radius="6" /> 280.2749 - </filter> 280.2750 - <filter id="Dilate3"> 280.2751 - <feMorphology operator="dilate" in="SourceGraphic" radius="3" /> 280.2752 - </filter> 280.2753 - <filter id="Dilate6"> 280.2754 - <feMorphology operator="dilate" in="SourceGraphic" radius="6" /> 280.2755 - </filter> 280.2756 - </defs> 280.2757 - <rect fill="none" stroke="blue" stroke-width="2" 280.2758 - x="1" y="1" width="698" height="498"/> 280.2759 - <g enable-background="new" > 280.2760 - <g font-family="Verdana" font-size="75" 280.2761 - fill="none" stroke="black" stroke-width="6" > 280.2762 - <text x="50" y="90">Unfiltered</text> 280.2763 - <text x="50" y="180" filter="url(#Erode3)" >Erode radius 3</text> 280.2764 - <text x="50" y="270" filter="url(#Erode6)" >Erode radius 6</text> 280.2765 - <text x="50" y="360" filter="url(#Dilate3)" >Dilate radius 3</text> 280.2766 - <text x="50" y="450" filter="url(#Dilate6)" >Dilate radius 6</text> 280.2767 - </g> 280.2768 - </g> 280.2769 -</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feMorphology.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feMorphology.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 280.2770 - 280.2771 -<h2 id="feOffsetElement">22 Filter primitive <span class="element-name">‘feOffset’</span></h2> 280.2772 - 280.2773 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feOffset’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2774 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a></li><li><a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEOffsetElement">SVGFEOffsetElement</a></li></ul></dd></dl></div> 280.2775 - 280.2776 -<p>This filter primitive offsets the input image relative to its current 280.2777 -position in the image space by the specified vector.</p> 280.2778 - 280.2779 -<p>This is important for effects like drop shadows.</p> 280.2780 - 280.2781 -<p>When applying this filter, the destination location may be offset by a 280.2782 -fraction of a pixel in device space. <span class="requirement" id="assert_hqFeOffsetInterpolation">In this case a high quality viewer 280.2783 -should make use of appropriate interpolation techniques, for example bilinear 280.2784 -or bicubic.</span> This is especially recommended for dynamic viewers where this 280.2785 -interpolation provides visually smoother movement of images. For static 280.2786 -viewers this is less of a concern. Close attention should be made to the 280.2787 -<span class="prop-name">‘image-rendering’</span> property setting to 280.2788 -determine the authors intent.</p> 280.2789 - 280.2790 -<div class="adef-list"> 280.2791 -<p><em>Attribute definitions:</em></p> 280.2792 -<dl><dt id="feOffsetDxAttribute"><span class="adef">dx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>The amount to offset the input graphic along the x-axis. The offset 280.2793 - amount is expressed in the coordinate system established by attribute 280.2794 - <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.2795 - element.<br/> 280.2796 - If the attribute is not specified, then the effect is as if a value of 280.2797 - <span class="attr-value">0</span> were specified.<br/> 280.2798 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feOffsetDyAttribute"><span class="adef">dy</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>The amount to offset the input graphic along the y-axis. The offset 280.2799 - amount is expressed in the coordinate system established by attribute 280.2800 - <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.2801 - element.<br/> 280.2802 - If the attribute is not specified, then the effect is as if a value of 280.2803 - <span class="attr-value">0</span> were specified.<br/> 280.2804 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.2805 -</div> 280.2806 - 280.2807 -<p><a href="#AnExample">The example</a> at the start of this chapter makes 280.2808 -use of the <span class="element-name">feOffset</span> filter primitive to 280.2809 -offset the drop shadow from the original source graphic.</p> 280.2810 - 280.2811 -<h2 id="feSpecularLightingElement">23 Filter primitive <span class="element-name">‘feSpecularLighting’</span></h2> 280.2812 - 280.2813 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feSpecularLighting’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2814 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermLightSourceElement">light source elements</a><span class="expanding"> — <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a>, <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feSpecularLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a></li><li><a href="#feSpecularLightingSpecularConstantAttribute"><span class="attr-name">‘specularConstant’</span></a></li><li><a href="#feSpecularLightingSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a></li><li><a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFESpecularLightingElement">SVGFESpecularLightingElement</a></li></ul></dd></dl></div> 280.2815 - 280.2816 -<p>This filter primitive lights a source graphic using the alpha channel as a 280.2817 -bump map. The resulting image is an RGBA image based on the light color. The 280.2818 -lighting calculation follows the standard specular component of the Phong 280.2819 -lighting model. The resulting image depends on the light color, light 280.2820 -position and surface geometry of the input bump map. The result of the 280.2821 -lighting calculation is added. The filter primitive assumes that the viewer 280.2822 -is at infinity in the z direction (i.e., the unit vector in the eye direction 280.2823 -is (0,0,1) everywhere).</p> 280.2824 - 280.2825 -<p>This filter primitive produces an image which contains the specular 280.2826 -reflection part of the lighting calculation. Such a map is intended to be 280.2827 -combined with a texture using the <em>add</em> term of the 280.2828 -<em>arithmetic</em> <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> method. Multiple light sources 280.2829 -can be simulated by adding several of these light maps before applying it to 280.2830 -the texture image.</p> 280.2831 - 280.2832 -<p>The resulting RGBA image is computed as follows:</p> 280.2833 - 280.2834 -<p class="filterformula">S<sub>r</sub> = k<sub>s</sub> * pow(N.H, 280.2835 -specularExponent) * L<sub>r<br/> 280.2836 -</sub> S<sub>g</sub> = k<sub>s</sub> * pow(N.H, specularExponent) * 280.2837 -L<sub>g<br/> 280.2838 -</sub> S<sub>b</sub> = k<sub>s</sub> * pow(N.H, specularExponent) * 280.2839 -L<sub>b<br/> 280.2840 -</sub> S<sub>a</sub> = max(S<sub>r,</sub> S<sub>g,</sub> S<sub>b</sub>)</p> 280.2841 - 280.2842 -<p>where</p> 280.2843 -<dl><dd>k<sub>s</sub> = specular lighting constant<br/> 280.2844 - N = surface normal unit vector, a function of x and y<br/> 280.2845 - H = "halfway" unit vector between eye unit vector and light unit 280.2846 - vector<br/> 280.2847 - <br/> 280.2848 - L<sub>r</sub>,L<sub>g</sub>,L<sub>b</sub> = RGB components of light</dd></dl> 280.2849 - 280.2850 -<p>See <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a> for definition of N and 280.2851 -(L<sub>r</sub>, L<sub>g</sub>, L<sub>b</sub>).</p> 280.2852 - 280.2853 -<p>The definition of H reflects our assumption of the constant eye vector E = 280.2854 -(0,0,1):</p> 280.2855 - 280.2856 -<p class="filterformula">H = (L + E) / Norm(L+E)</p> 280.2857 - 280.2858 -<p>where L is the light unit vector.</p> 280.2859 - 280.2860 -<p>Unlike the <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a>, the <span class="element-name">‘feSpecularLighting’</span> filter produces a non-opaque 280.2861 -image. This is due to the fact that the specular result 280.2862 -(S<sub>r</sub>,S<sub>g</sub>,S<sub>b</sub>,S<sub>a</sub>) is meant to be 280.2863 -added to the textured image. The alpha channel of the result is the max of 280.2864 -the color components, so that where the specular light is zero, no additional 280.2865 -coverage is added to the image and a fully white highlight will add 280.2866 -opacity.</p> 280.2867 - 280.2868 -<p>The <a href="#feDiffuseLighting"><span class="element-name">‘feDiffuseLighting’</span></a> and <span class="element-name">‘feSpecularLighting’</span> filters will often be 280.2869 -applied together. An implementation may detect this and calculate both maps 280.2870 -in one pass, instead of two.</p> 280.2871 - 280.2872 -<div class="adef-list"> 280.2873 -<p><em>Attribute definitions:</em></p> 280.2874 -<dl><dt id="feSpecularLightingSurfaceScaleAttribute"><span class="adef">surfaceScale</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>height of surface when A<sub>in</sub> = 1.<br/> 280.2875 - If the attribute is not specified, then the effect is as if a value of 280.2876 - <span class="attr-value">1</span> were specified.<br/> 280.2877 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingSpecularConstantAttribute"><span class="adef">specularConstant</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>ks in Phong lighting model. In SVG, this can be any non-negative 280.2878 - number.<br/> 280.2879 - If the attribute is not specified, then the effect is as if a value of 280.2880 - <span class="attr-value">1</span> were specified.<br/> 280.2881 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingSpecularExponentAttribute"><span class="adef">specularExponent</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd>Exponent for specular term, larger is more "shiny". Range 1.0 to 280.2882 - 128.0.<br/> 280.2883 - If the attribute is not specified, then the effect is as if a value of 280.2884 - <span class="attr-value">1</span> were specified.<br/> 280.2885 - <span class="anim-target">Animatable: yes.</span></dd><dt id="feSpecularLightingKernelUnitLengthAttribute"><span class="adef">kernelUnitLength</span> = "<span class="attr-value"><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></span>"</dt><dd>The first number is the <dx> value. The second number is the 280.2886 - <dy> value. If the <dy> value is not specified, it defaults 280.2887 - to the same value as <dx>. Indicates the intended distance in 280.2888 - current filter units (i.e., units as determined by the value of 280.2889 - attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a>) for <code>dx</code> and 280.2890 - <code>dy</code>, respectively, in the <a href="#SurfaceNormalCalculations">surface normal calculation 280.2891 - formulas</a>. By specifying value(s) for <span class="attr-name">kernelUnitLength</span>, the kernel becomes defined 280.2892 - in a scalable, abstract coordinate system. If <span class="attr-name">kernelUnitLength</span> is not specified, the 280.2893 - <code>dx</code> and <code>dy</code> values should represent very small 280.2894 - deltas relative to a given <code>(x,y)</code> position, which might be 280.2895 - implemented in some cases as one pixel in the intermediate image 280.2896 - offscreen bitmap, which is a pixel-based coordinate system, and thus 280.2897 - potentially not scalable. For some level of consistency across display 280.2898 - media and user agents, it is necessary that a value be provided for at 280.2899 - least one of <span class="attr-name">filterRes</span> and <span class="attr-name">kernelUnitLength</span>. Discussion of intermediate 280.2900 - images are in the <a href="#Introduction">Introduction</a> and in the 280.2901 - description of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">filterRes</span></a>.<br/> 280.2902 - If a negative or zero value is specified the default value will be used 280.2903 - instead. <br/> 280.2904 - <span class="anim-target">Animatable: yes.</span></dd></dl> 280.2905 -</div> 280.2906 - 280.2907 -<p>The light source is defined by one of the child elements <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>, <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> or <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a>. The light color is 280.2908 -specified by property <a href="#LightingColorProperty"><span class="prop-name">‘lighting-color’</span></a>.</p> 280.2909 - 280.2910 -<p><a href="#AnExample">The example</a> at the start of this chapter makes 280.2911 -use of the <span class="element-name">feSpecularLighting</span> filter 280.2912 -primitive to achieve a highly reflective, 3D glowing effect.</p> 280.2913 - 280.2914 -<h2 id="feTileElement">24 Filter primitive <span class="element-name">‘feTile’</span></h2> 280.2915 - 280.2916 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feTile’</span></div><dl><dt>Categories:</dt><dd><a href="#TermFilterPrimitiveElements">Filter primitives element</a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveElement">filter primitive element</a></dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.2917 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFETileElement">SVGFETileElement</a></li></ul></dd></dl></div> 280.2918 - 280.2919 -<p>This filter primitive fills a target rectangle with a repeated, tiled 280.2920 -pattern of an input image. 280.2921 -The target rectangle is as large as the <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> established 280.2922 -by the <span class="element-name">‘feTile’</span> element. 280.2923 -</p> 280.2924 - 280.2925 -<p>Typically, the input image has been defined with its own <a href="#FilterPrimitiveSubRegion">filter primitive subregion</a> in order to 280.2926 -define a reference tile. <span class="element-name">‘feTile’</span> 280.2927 -replicates the reference tile in both X and Y to completely fill the target 280.2928 -rectangle. The top/left corner of each given tile is at location 280.2929 -<code>(x+i*width,y+j*height)</code>, where <code>(x,y)</code> represents the 280.2930 -top/left of the input image's filter primitive subregion, <code>width</code> 280.2931 -and <code>height</code> represent the width and height of the input image's 280.2932 -filter primitive subregion, and <code>i</code> and <code>j</code> can be any 280.2933 -integer value. In most cases, the input image will have a smaller filter 280.2934 -primitive subregion than the <span class="element-name">‘feTile’</span> in 280.2935 -order to achieve a repeated pattern effect.</p> 280.2936 - 280.2937 -<p class="requirement" id="assertTileArtifacts">Implementers must take appropriate measures in constructing the tiled 280.2938 -image to avoid artifacts between tiles, particularly in situations where the 280.2939 -user to device transform includes shear and/or rotation. Unless care is 280.2940 -taken, interpolation can lead to edge pixels in the tile having opacity 280.2941 -values lower or higher than expected due to the interaction of painting 280.2942 -adjacent tiles which each have partial overlap with particular pixels.</p> 280.2943 - 280.2944 -<div class="adef-list"> 280.2945 - </div> 280.2946 - 280.2947 -<h2 id="feTurbulenceElement">25 Filter primitive <span class="element-name">‘feTurbulence’</span></h2> 280.2948 - 280.2949 - 280.2950 - 280.2951 -<p class="specissue">ISSUE: Consider phasing out this C algorithm in favor of Simplex noise, which is more HW friendly.</p> 280.2952 - 280.2953 -<p>This filter primitive creates an image using the Perlin turbulence 280.2954 -function. It allows the synthesis of artificial textures like clouds or 280.2955 -marble. For a detailed description the of the Perlin turbulence function, see 280.2956 -"Texturing and Modeling", Ebert et al, AP Professional, 1994. The resulting 280.2957 -image will fill the entire <a href="#FilterPrimitiveSubRegion"><span class="svg-term">filter primitive subregion</span></a> for this filter primitive.</p> 280.2958 - 280.2959 -<p>It is possible to create bandwidth-limited noise by synthesizing only one 280.2960 -octave.</p> 280.2961 - 280.2962 -<p>The C code below shows the exact algorithm used for this filter effect.</p> 280.2963 - 280.2964 -<p>For fractalSum, you get a turbFunctionResult that is aimed at a range of 280.2965 --1 to 1 (the actual result might exceed this range in some cases). To convert 280.2966 -to a color value, use the formula <code>colorValue = ((turbFunctionResult * 280.2967 -255) + 255) / 2</code>, then clamp to the range 0 to 255.</p> 280.2968 - 280.2969 -<p>For turbulence, you get a turbFunctionResult that is aimed at a range of 0 280.2970 -to 1 (the actual result might exceed this range in some cases). To convert to 280.2971 -a color value, use the formula <code>colorValue = (turbFunctionResult * 280.2972 -255)</code>, then clamp to the range 0 to 255.</p> 280.2973 - 280.2974 -<p>The following order is used for applying the pseudo random numbers. An 280.2975 -initial seed value is computed based on the <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> attribute. 280.2976 -Then the implementation computes the lattice 280.2977 -points for R, then continues getting additional pseudo random numbers 280.2978 -relative to the last generated pseudo random number and computes the lattice 280.2979 -points for G, and so on for B and A.</p> 280.2980 - 280.2981 -<p>The generated color and alpha values are in the color space determined by 280.2982 -the <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="prop-name">‘color-interpolation-filters’</span></a> property:</p> 280.2983 -<pre class="svgsamplecompressed">/* Produces results in the range [1, 2**31 - 2]. 280.2984 -Algorithm is: r = (a * r) mod m 280.2985 -where a = 16807 and m = 2**31 - 1 = 2147483647 280.2986 -See [Park & Miller], CACM vol. 31 no. 10 p. 1195, Oct. 1988 280.2987 -To test: the algorithm should produce the result 1043618065 280.2988 -as the 10,000th generated number if the original seed is 1. 280.2989 -*/ 280.2990 -#define RAND_m 2147483647 /* 2**31 - 1 */ 280.2991 -#define RAND_a 16807 /* 7**5; primitive root of m */ 280.2992 -#define RAND_q 127773 /* m / a */ 280.2993 -#define RAND_r 2836 /* m % a */ 280.2994 -long setup_seed(long lSeed) 280.2995 -{ 280.2996 - if (lSeed <= 0) lSeed = -(lSeed % (RAND_m - 1)) + 1; 280.2997 - if (lSeed > RAND_m - 1) lSeed = RAND_m - 1; 280.2998 - return lSeed; 280.2999 -} 280.3000 -long random(long lSeed) 280.3001 -{ 280.3002 - long result; 280.3003 - result = RAND_a * (lSeed % RAND_q) - RAND_r * (lSeed / RAND_q); 280.3004 - if (result <= 0) result += RAND_m; 280.3005 - return result; 280.3006 -} 280.3007 -#define BSize 0x100 280.3008 -#define BM 0xff 280.3009 -#define PerlinN 0x1000 280.3010 -#define NP 12 /* 2^PerlinN */ 280.3011 -#define NM 0xfff 280.3012 -static uLatticeSelector[BSize + BSize + 2]; 280.3013 -static double fGradient[4][BSize + BSize + 2][2]; 280.3014 -struct StitchInfo 280.3015 -{ 280.3016 - int nWidth; // How much to subtract to wrap for stitching. 280.3017 - int nHeight; 280.3018 - int nWrapX; // Minimum value to wrap. 280.3019 - int nWrapY; 280.3020 -}; 280.3021 -static void init(long lSeed) 280.3022 -{ 280.3023 - double s; 280.3024 - int i, j, k; 280.3025 - lSeed = setup_seed(lSeed); 280.3026 - for(k = 0; k < 4; k++) 280.3027 - { 280.3028 - for(i = 0; i < BSize; i++) 280.3029 - { 280.3030 - uLatticeSelector[i] = i; 280.3031 - for (j = 0; j < 2; j++) 280.3032 - fGradient[k][i][j] = (double)(((lSeed = random(lSeed)) % (BSize + BSize)) - BSize) / BSize; 280.3033 - s = double(sqrt(fGradient[k][i][0] * fGradient[k][i][0] + fGradient[k][i][1] * fGradient[k][i][1])); 280.3034 - fGradient[k][i][0] /= s; 280.3035 - fGradient[k][i][1] /= s; 280.3036 - } 280.3037 - } 280.3038 - while(--i) 280.3039 - { 280.3040 - k = uLatticeSelector[i]; 280.3041 - uLatticeSelector[i] = uLatticeSelector[j = (lSeed = random(lSeed)) % BSize]; 280.3042 - uLatticeSelector[j] = k; 280.3043 - } 280.3044 - for(i = 0; i < BSize + 2; i++) 280.3045 - { 280.3046 - uLatticeSelector[BSize + i] = uLatticeSelector[i]; 280.3047 - for(k = 0; k < 4; k++) 280.3048 - for(j = 0; j < 2; j++) 280.3049 - fGradient[k][BSize + i][j] = fGradient[k][i][j]; 280.3050 - } 280.3051 -} 280.3052 -#define s_curve(t) ( t * t * (3. - 2. * t) ) 280.3053 -#define lerp(t, a, b) ( a + t * (b - a) ) 280.3054 -double noise2(int nColorChannel, double vec[2], StitchInfo *pStitchInfo) 280.3055 -{ 280.3056 - int bx0, bx1, by0, by1, b00, b10, b01, b11; 280.3057 - double rx0, rx1, ry0, ry1, *q, sx, sy, a, b, t, u, v; 280.3058 - register i, j; 280.3059 - t = vec[0] + PerlinN; 280.3060 - bx0 = (int)t; 280.3061 - bx1 = bx0+1; 280.3062 - rx0 = t - (int)t; 280.3063 - rx1 = rx0 - 1.0f; 280.3064 - t = vec[1] + PerlinN; 280.3065 - by0 = (int)t; 280.3066 - by1 = by0+1; 280.3067 - ry0 = t - (int)t; 280.3068 - ry1 = ry0 - 1.0f; 280.3069 - // If stitching, adjust lattice points accordingly. 280.3070 - if(pStitchInfo != NULL) 280.3071 - { 280.3072 - if(bx0 >= pStitchInfo->nWrapX) 280.3073 - bx0 -= pStitchInfo->nWidth; 280.3074 - if(bx1 >= pStitchInfo->nWrapX) 280.3075 - bx1 -= pStitchInfo->nWidth; 280.3076 - if(by0 >= pStitchInfo->nWrapY) 280.3077 - by0 -= pStitchInfo->nHeight; 280.3078 - if(by1 >= pStitchInfo->nWrapY) 280.3079 - by1 -= pStitchInfo->nHeight; 280.3080 - } 280.3081 - bx0 &= BM; 280.3082 - bx1 &= BM; 280.3083 - by0 &= BM; 280.3084 - by1 &= BM; 280.3085 - i = uLatticeSelector[bx0]; 280.3086 - j = uLatticeSelector[bx1]; 280.3087 - b00 = uLatticeSelector[i + by0]; 280.3088 - b10 = uLatticeSelector[j + by0]; 280.3089 - b01 = uLatticeSelector[i + by1]; 280.3090 - b11 = uLatticeSelector[j + by1]; 280.3091 - sx = double(s_curve(rx0)); 280.3092 - sy = double(s_curve(ry0)); 280.3093 - q = fGradient[nColorChannel][b00]; u = rx0 * q[0] + ry0 * q[1]; 280.3094 - q = fGradient[nColorChannel][b10]; v = rx1 * q[0] + ry0 * q[1]; 280.3095 - a = lerp(sx, u, v); 280.3096 - q = fGradient[nColorChannel][b01]; u = rx0 * q[0] + ry1 * q[1]; 280.3097 - q = fGradient[nColorChannel][b11]; v = rx1 * q[0] + ry1 * q[1]; 280.3098 - b = lerp(sx, u, v); 280.3099 - return lerp(sy, a, b); 280.3100 -} 280.3101 -double turbulence(int nColorChannel, double *point, double fBaseFreqX, double fBaseFreqY, 280.3102 - int nNumOctaves, bool bFractalSum, bool bDoStitching, 280.3103 - double fTileX, double fTileY, double fTileWidth, double fTileHeight) 280.3104 -{ 280.3105 - StitchInfo stitch; 280.3106 - StitchInfo *pStitchInfo = NULL; // Not stitching when NULL. 280.3107 - // Adjust the base frequencies if necessary for stitching. 280.3108 - if(bDoStitching) 280.3109 - { 280.3110 - // When stitching tiled turbulence, the frequencies must be adjusted 280.3111 - // so that the tile borders will be continuous. 280.3112 - if(fBaseFreqX != 0.0) 280.3113 - { 280.3114 - double fLoFreq = double(floor(fTileWidth * fBaseFreqX)) / fTileWidth; 280.3115 - double fHiFreq = double(ceil(fTileWidth * fBaseFreqX)) / fTileWidth; 280.3116 - if(fBaseFreqX / fLoFreq < fHiFreq / fBaseFreqX) 280.3117 - fBaseFreqX = fLoFreq; 280.3118 - else 280.3119 - fBaseFreqX = fHiFreq; 280.3120 - } 280.3121 - if(fBaseFreqY != 0.0) 280.3122 - { 280.3123 - double fLoFreq = double(floor(fTileHeight * fBaseFreqY)) / fTileHeight; 280.3124 - double fHiFreq = double(ceil(fTileHeight * fBaseFreqY)) / fTileHeight; 280.3125 - if(fBaseFreqY / fLoFreq < fHiFreq / fBaseFreqY) 280.3126 - fBaseFreqY = fLoFreq; 280.3127 - else 280.3128 - fBaseFreqY = fHiFreq; 280.3129 - } 280.3130 - // Set up initial stitch values. 280.3131 - pStitchInfo = &stitch; 280.3132 - stitch.nWidth = int(fTileWidth * fBaseFreqX + 0.5f); 280.3133 - stitch.nWrapX = fTileX * fBaseFreqX + PerlinN + stitch.nWidth; 280.3134 - stitch.nHeight = int(fTileHeight * fBaseFreqY + 0.5f); 280.3135 - stitch.nWrapY = fTileY * fBaseFreqY + PerlinN + stitch.nHeight; 280.3136 - } 280.3137 - double fSum = 0.0f; 280.3138 - double vec[2]; 280.3139 - vec[0] = point[0] * fBaseFreqX; 280.3140 - vec[1] = point[1] * fBaseFreqY; 280.3141 - double ratio = 1; 280.3142 - for(int nOctave = 0; nOctave < nNumOctaves; nOctave++) 280.3143 - { 280.3144 - if(bFractalSum) 280.3145 - fSum += double(noise2(nColorChannel, vec, pStitchInfo) / ratio); 280.3146 - else 280.3147 - fSum += double(fabs(noise2(nColorChannel, vec, pStitchInfo)) / ratio); 280.3148 - vec[0] *= 2; 280.3149 - vec[1] *= 2; 280.3150 - ratio *= 2; 280.3151 - if(pStitchInfo != NULL) 280.3152 - { 280.3153 - // Update stitch values. Subtracting PerlinN before the multiplication and 280.3154 - // adding it afterward simplifies to subtracting it once. 280.3155 - stitch.nWidth *= 2; 280.3156 - stitch.nWrapX = 2 * stitch.nWrapX - PerlinN; 280.3157 - stitch.nHeight *= 2; 280.3158 - stitch.nWrapY = 2 * stitch.nWrapY - PerlinN; 280.3159 - } 280.3160 - } 280.3161 - return fSum; 280.3162 -}</pre> 280.3163 - 280.3164 -<div class="adef-list"> 280.3165 -<p><em>Attribute definitions:</em></p> 280.3166 -<dl><dt id="feTurbulenceBaseFrequencyAttribute"><span class="adef">baseFrequency</span> = 280.3167 - "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></em>"</dt><dd> 280.3168 - <p>The base frequency (frequencies) parameter(s) for the noise function. 280.3169 - If two <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a>s are provided, the first number represents a base frequency in the X 280.3170 - direction and the second value represents a base frequency in the Y 280.3171 - direction. If one number is provided, then that value is used for both 280.3172 - X and Y.</p> 280.3173 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> is <span class="attr-value">0</span>.</p> 280.3174 - <p>Negative values are <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermUnsupportedValue"><span class="svg-term">unsupported</span></a>.</p> 280.3175 - <p><span class="anim-target">Animatable: yes.</span></p> 280.3176 -</dd><dt id="feTurbulenceNumOctavesAttribute"><span class="adef">numOctaves</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeInteger"><integer></a></em>"</dt><dd> 280.3177 - <p>The numOctaves parameter for the noise function.</p> 280.3178 - <p><span class="requirement" id="assert_turbulenceNumOctavesLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceNumOctavesAttribute"><span class="attr-name">‘numOctaves’</span></a> is <span class="attr-value">1</span>.</span></p> 280.3179 - <p><span class="requirement" id="assert_turbulenceNumOctavesUnsupportedValue">Negative values are <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermUnsupportedValue"><span class="svg-term">unsupported</span></a>.</span></p> 280.3180 - <p><span class="requirement" id="assert_turbulenceNumOctavesAnimatable"><span class="anim-target">Animatable: yes.</span></span></p> 280.3181 - </dd><dt id="feTurbulenceSeedAttribute"> 280.3182 - <span class="adef">seed</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd> 280.3183 - <p>The starting number for the pseudo random number generator.</p> 280.3184 - <p><span class="requirement" id="assert_turbulenceSeedLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> is <span class="attr-value">0</span>.</span></p> 280.3185 - <p><span class="requirement" id="assert_turbulenceSeedTruncation">When the seed number is handed over to the algorithm above it must first be 280.3186 - truncated, i.e. rounded to the closest integer value towards zero.</span></p> 280.3187 - <p><span class="anim-target">Animatable: yes.</span></p> 280.3188 - </dd><dt id="feTurbulenceStitchTilesAttribute"><span class="adef">stitchTiles</span> = "<em>stitch | noStitch</em>"</dt><dd> 280.3189 - <p>If <span class="attr-value">stitchTiles="noStitch"</span>, no attempt 280.3190 - it made to achieve smooth transitions at the border of tiles which 280.3191 - contain a turbulence function. Sometimes the result will show clear 280.3192 - discontinuities at the tile borders.<br/> 280.3193 - If <span class="attr-value">stitchTiles="stitch"</span>, then the user 280.3194 - agent will automatically adjust baseFrequency-x and baseFrequency-y 280.3195 - values such that the <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> node's width and height (i.e., the 280.3196 - width and height of the current subregion) contains an integral number 280.3197 - of the Perlin tile width and height for the first octave. The 280.3198 - baseFrequency will be adjusted up or down depending on which way has 280.3199 - the smallest relative (not absolute) change as follows: Given the 280.3200 - frequency, calculate <code>lowFreq=floor(width*frequency)/width</code> 280.3201 - and <code>hiFreq=ceil(width*frequency)/width</code>. If 280.3202 - frequency/lowFreq < hiFreq/frequency then use lowFreq, else use 280.3203 - hiFreq. While generating turbulence values, generate lattice vectors as 280.3204 - normal for Perlin Noise, except for those lattice points that lie on 280.3205 - the right or bottom edges of the active area (the size of the resulting 280.3206 - tile). In those cases, copy the lattice vector from the opposite edge 280.3207 - of the active area.</p> 280.3208 - <p><span class="requirement" id="assert_turbulenceStitchTilesLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceStitchTilesAttribute"><span class="attr-name">‘stitchTiles’</span></a> attribute is <span class="attr-value">noStitch</span>.</span></p> 280.3209 - <p><span class="anim-target">Animatable: yes.</span></p> 280.3210 - </dd><dt id="feTurbulenceTypeAttribute"> 280.3211 - <span class="adef">type</span> = "<em>fractalNoise | turbulence</em>"</dt><dd> 280.3212 - <p>Indicates whether the filter primitive should perform a noise or 280.3213 - turbulence function.</p> 280.3214 - <p><span class="requirement" id="assert_turbulenceTypeLacunaValue">The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feTurbulenceTypeAttribute"><span class="attr-name">‘type’</span></a> attribute is <span class="attr-value">turbulence</span>.</span></p> 280.3215 - <p><span class="anim-target">Animatable: yes.</span></p> 280.3216 - </dd></dl> 280.3217 -</div> 280.3218 - 280.3219 -<pre class="xml"><?xml version="1.0"?> 280.3220 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 280.3221 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 280.3222 -<svg width="450px" height="325px" viewBox="0 0 450 325" 280.3223 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 280.3224 - <title>Example feTurbulence - Examples of feTurbulence operations</title> 280.3225 - <desc>Six rectangular areas showing the effects of 280.3226 - various parameter settings for feTurbulence.</desc> 280.3227 - <g font-family="Verdana" text-anchor="middle" font-size="10" > 280.3228 - <defs> 280.3229 - <filter id="Turb1" filterUnits="objectBoundingBox" 280.3230 - x="0%" y="0%" width="100%" height="100%"> 280.3231 - <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/> 280.3232 - </filter> 280.3233 - <filter id="Turb2" filterUnits="objectBoundingBox" 280.3234 - x="0%" y="0%" width="100%" height="100%"> 280.3235 - <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/> 280.3236 - </filter> 280.3237 - <filter id="Turb3" filterUnits="objectBoundingBox" 280.3238 - x="0%" y="0%" width="100%" height="100%"> 280.3239 - <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/> 280.3240 - </filter> 280.3241 - <filter id="Turb4" filterUnits="objectBoundingBox" 280.3242 - x="0%" y="0%" width="100%" height="100%"> 280.3243 - <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/> 280.3244 - </filter> 280.3245 - <filter id="Turb5" filterUnits="objectBoundingBox" 280.3246 - x="0%" y="0%" width="100%" height="100%"> 280.3247 - <feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/> 280.3248 - </filter> 280.3249 - <filter id="Turb6" filterUnits="objectBoundingBox" 280.3250 - x="0%" y="0%" width="100%" height="100%"> 280.3251 - <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/> 280.3252 - </filter> 280.3253 - </defs> 280.3254 - 280.3255 - <rect x="1" y="1" width="448" height="323" 280.3256 - fill="none" stroke="blue" stroke-width="1" /> 280.3257 - 280.3258 - <rect x="25" y="25" width="100" height="75" filter="url(#Turb1)" /> 280.3259 - <text x="75" y="117">type=turbulence</text> 280.3260 - <text x="75" y="129">baseFrequency=0.05</text> 280.3261 - <text x="75" y="141">numOctaves=2</text> 280.3262 - 280.3263 - <rect x="175" y="25" width="100" height="75" filter="url(#Turb2)" /> 280.3264 - <text x="225" y="117">type=turbulence</text> 280.3265 - <text x="225" y="129">baseFrequency=0.1</text> 280.3266 - <text x="225" y="141">numOctaves=2</text> 280.3267 - 280.3268 - <rect x="325" y="25" width="100" height="75" filter="url(#Turb3)" /> 280.3269 - <text x="375" y="117">type=turbulence</text> 280.3270 - <text x="375" y="129">baseFrequency=0.05</text> 280.3271 - <text x="375" y="141">numOctaves=8</text> 280.3272 - 280.3273 - <rect x="25" y="180" width="100" height="75" filter="url(#Turb4)" /> 280.3274 - <text x="75" y="272">type=fractalNoise</text> 280.3275 - <text x="75" y="284">baseFrequency=0.1</text> 280.3276 - <text x="75" y="296">numOctaves=4</text> 280.3277 - 280.3278 - <rect x="175" y="180" width="100" height="75" filter="url(#Turb5)" /> 280.3279 - <text x="225" y="272">type=fractalNoise</text> 280.3280 - <text x="225" y="284">baseFrequency=0.4</text> 280.3281 - <text x="225" y="296">numOctaves=4</text> 280.3282 - 280.3283 - <rect x="325" y="180" width="100" height="75" filter="url(#Turb6)" /> 280.3284 - <text x="375" y="272">type=fractalNoise</text> 280.3285 - <text x="375" y="284">baseFrequency=0.1</text> 280.3286 - <text x="375" y="296">numOctaves=1</text> 280.3287 - </g> 280.3288 -</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feTurbulence.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feTurbulence.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 280.3289 - 280.3290 - 280.3291 -<h2 id="feDropShadowElement">26 Filter primitive <span class="element-name">‘feDropShadow’</span></h2> 280.3292 - 280.3293 -<div class="element-summary"><div class="element-summary-name"><span class="element-name">‘feDropShadow’</span></div><dl><dt>Categories:</dt><dd>None</dd><dt>Content model:</dt><dd>Any number of the following elements, in any order: 280.3294 - <ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateElement"><span class="element-name">‘animate’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#AnimateColorElement"><span class="element-name">‘animateColor’</span></a></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/animate.html#SetElement"><span class="element-name">‘set’</span></a></li></ul></dd><dt>Attributes:</dt><dd><ul class="no-bullets"><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermCoreAttributes">core attributes</a><span class="expanding"> — <a href="struct.html#IDAttribute"><span class="attr-name">‘id’</span></a>, <a href="struct.html#XMLBaseAttribute"><span class="attr-name">‘xml:base’</span></a>, <a href="struct.html#XMLLangAttribute"><span class="attr-name">‘xml:lang’</span></a>, <a href="struct.html#XMLSpaceAttribute"><span class="attr-name">‘xml:space’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermPresentationAttribute">presentation attributes</a><span class="expanding"> — <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#AlignmentBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘alignment-baseline’">‘alignment-baseline’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#BaselineShiftProperty"><span class="attr-name" title="Presentation attribute for property ‘baseline-shift’">‘baseline-shift’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipProperty"><span class="attr-name" title="Presentation attribute for property ‘clip’">‘clip’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipPathProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-path’">‘clip-path’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#ClipRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘clip-rule’">‘clip-rule’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProperty"><span class="attr-name" title="Presentation attribute for property ‘color’">‘color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation’">‘color-interpolation’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorInterpolationFiltersProperty"><span class="attr-name" title="Presentation attribute for property ‘color-interpolation-filters’">‘color-interpolation-filters’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/color.html#ColorProfileProperty"><span class="attr-name" title="Presentation attribute for property ‘color-profile’">‘color-profile’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ColorRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘color-rendering’">‘color-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#CursorProperty"><span class="attr-name" title="Presentation attribute for property ‘cursor’">‘cursor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DirectionProperty"><span class="attr-name" title="Presentation attribute for property ‘direction’">‘direction’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#DisplayProperty"><span class="attr-name" title="Presentation attribute for property ‘display’">‘display’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#DominantBaselineProperty"><span class="attr-name" title="Presentation attribute for property ‘dominant-baseline’">‘dominant-baseline’</span></a>, <a href="#EnableBackgroundProperty"><span class="attr-name" title="Presentation attribute for property ‘enable-background’">‘enable-background’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillProperty"><span class="attr-name" title="Presentation attribute for property ‘fill’">‘fill’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-opacity’">‘fill-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#FillRuleProperty"><span class="attr-name" title="Presentation attribute for property ‘fill-rule’">‘fill-rule’</span></a>, <a href="#FilterProperty"><span class="attr-name" title="Presentation attribute for property ‘filter’">‘filter’</span></a>, <a href="#FloodColorProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-color’">‘flood-color’</span></a>, <a href="#FloodOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘flood-opacity’">‘flood-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontFamilyProperty"><span class="attr-name" title="Presentation attribute for property ‘font-family’">‘font-family’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size’">‘font-size’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontSizeAdjustProperty"><span class="attr-name" title="Presentation attribute for property ‘font-size-adjust’">‘font-size-adjust’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStretchProperty"><span class="attr-name" title="Presentation attribute for property ‘font-stretch’">‘font-stretch’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontStyleProperty"><span class="attr-name" title="Presentation attribute for property ‘font-style’">‘font-style’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontVariantProperty"><span class="attr-name" title="Presentation attribute for property ‘font-variant’">‘font-variant’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#FontWeightProperty"><span class="attr-name" title="Presentation attribute for property ‘font-weight’">‘font-weight’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationHorizontalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-horizontal’">‘glyph-orientation-horizontal’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#GlyphOrientationVerticalProperty"><span class="attr-name" title="Presentation attribute for property ‘glyph-orientation-vertical’">‘glyph-orientation-vertical’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ImageRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘image-rendering’">‘image-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#KerningProperty"><span class="attr-name" title="Presentation attribute for property ‘kerning’">‘kerning’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#LetterSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘letter-spacing’">‘letter-spacing’</span></a>, <a href="#LightingColorProperty"><span class="attr-name" title="Presentation attribute for property ‘lighting-color’">‘lighting-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerEndProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-end’">‘marker-end’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerMidProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-mid’">‘marker-mid’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#MarkerStartProperty"><span class="attr-name" title="Presentation attribute for property ‘marker-start’">‘marker-start’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#MaskProperty"><span class="attr-name" title="Presentation attribute for property ‘mask’">‘mask’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘opacity’">‘opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/masking.html#OverflowProperty"><span class="attr-name" title="Presentation attribute for property ‘overflow’">‘overflow’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/interact.html#PointerEventsProperty"><span class="attr-name" title="Presentation attribute for property ‘pointer-events’">‘pointer-events’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#ShapeRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘shape-rendering’">‘shape-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopColorProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-color’">‘stop-color’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/pservers.html#StopOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stop-opacity’">‘stop-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke’">‘stroke’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDasharrayProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dasharray’">‘stroke-dasharray’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeDashoffsetProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-dashoffset’">‘stroke-dashoffset’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinecapProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linecap’">‘stroke-linecap’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeLinejoinProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-linejoin’">‘stroke-linejoin’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeMiterlimitProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-miterlimit’">‘stroke-miterlimit’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeOpacityProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-opacity’">‘stroke-opacity’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#StrokeWidthProperty"><span class="attr-name" title="Presentation attribute for property ‘stroke-width’">‘stroke-width’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextAnchorProperty"><span class="attr-name" title="Presentation attribute for property ‘text-anchor’">‘text-anchor’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#TextDecorationProperty"><span class="attr-name" title="Presentation attribute for property ‘text-decoration’">‘text-decoration’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#TextRenderingProperty"><span class="attr-name" title="Presentation attribute for property ‘text-rendering’">‘text-rendering’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#UnicodeBidiProperty"><span class="attr-name" title="Presentation attribute for property ‘unicode-bidi’">‘unicode-bidi’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/painting.html#VisibilityProperty"><span class="attr-name" title="Presentation attribute for property ‘visibility’">‘visibility’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WordSpacingProperty"><span class="attr-name" title="Presentation attribute for property ‘word-spacing’">‘word-spacing’</span></a>, <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/text.html#WritingModeProperty"><span class="attr-name" title="Presentation attribute for property ‘writing-mode’">‘writing-mode’</span></a></span></li><li><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermFilterPrimitiveAttributes">filter primitive attributes</a><span class="expanding"> — <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a>, <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a>, <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a>, <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a>, <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a></span></li><li><a href="styling.html#ClassAttribute"><span class="attr-name">‘class’</span></a></li><li><a href="styling.html#StyleAttribute"><span class="attr-name">‘style’</span></a></li><li><a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a></li><li><a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a></li><li><a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a></li><li><a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a></li></ul></dd><dt>DOM Interfaces:</dt><dd><ul class="no-bullets"><li><a class="idlinterface" href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a></li></ul></dd></dl></div> 280.3295 - 280.3296 -<p>This filter creates a drop shadow of the input image. It is a shorthand 280.3297 -filter, and is defined in terms of combinations of other <a href="#TermFilterPrimitiveElements"><span class="svg-term">filter primitives</span></a>. 280.3298 -The expectation is that it can be optimized more easily by 280.3299 -implementations.</p> 280.3300 - 280.3301 -<p>The result of a <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter 280.3302 -primitive is equivalent to the following: 280.3303 - 280.3304 -<pre class="examplesource"> 280.3305 - <feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/> 280.3306 - <feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/> 280.3307 - <feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/> 280.3308 - <feComposite in2="offsetblur" operator="in"/> 280.3309 - <feMerge> 280.3310 - <feMergeNode/> 280.3311 - <feMergeNode in="<b>in-of-feDropShadow</b>"/> 280.3312 - </feMerge> 280.3313 -</pre> 280.3314 -</p> 280.3315 - 280.3316 -<p> 280.3317 -The above divided into steps: 280.3318 -<ol><li>Take the alpha channel of the input to the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive and the <a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> and do processing as if the 280.3319 - following <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> was applied: 280.3320 - <pre class="examplesource"> <feGaussianBlur in="<b>alpha-channel-of-feDropShadow-in</b>" stdDeviation="<b>stdDeviation-of-feDropShadow</b>"/></pre> 280.3321 - <br/> 280.3322 - </li><li>Offset the result of step 1 by <a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a> and <a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a> as 280.3323 - specified on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> 280.3324 - element, equivalent to applying an <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> with these parameters: 280.3325 - <pre class="examplesource"> <feOffset dx="<b>dx-of-feDropShadow</b>" dy="<b>dy-of-feDropShadow</b>" result="offsetblur"/></pre> 280.3326 - <br/> 280.3327 - </li><li>Do processing as if an <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> element with <a href="#FloodColorProperty"><span class="prop-name">‘flood-color’</span></a> and 280.3328 - <a href="#FloodOpacityProperty"><span class="prop-name">‘flood-opacity’</span></a> as specified on the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> was applied: 280.3329 - <pre class="examplesource"> <feFlood flood-color="<b>flood-color-of-feDropShadow</b>" flood-opacity="<b>flood-opacity-of-feDropShadow</b>"/></pre> 280.3330 - <br/> 280.3331 - </li><li>Composite the result of the <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> in step 3 with the result of 280.3332 - the <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> in step 2 as if an <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> filter primitive with <a href="#feCompositeOperatorAttribute"><span class="attr-name">operator</span></a>='in' was applied: 280.3333 - <pre class="examplesource"> <feComposite in2="offsetblur" operator="in"/></pre> 280.3334 - <br/> 280.3335 - </li><li>Finally merge the result of the previous step, doing processing as if 280.3336 - the following <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> was performed: 280.3337 - <pre class="examplesource"> <feMerge> 280.3338 - <feMergeNode/> 280.3339 - <feMergeNode in="<b>in-of-feDropShadow</b>"/> 280.3340 - </feMerge></pre> 280.3341 - </li></ol> 280.3342 -</p> 280.3343 - 280.3344 -<p class="note implementation">Note that while the definition of the <span class="element-name">‘feDropShadow’</span> filter primitive says that it can 280.3345 -be expanded into an equivalent tree it is not required that it is implemented 280.3346 -like that. The expectation is that user agents can optimize the handling by not having to do all the steps separately. 280.3347 -</p> 280.3348 - 280.3349 -<p>Beyond the DOM interface <a href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> there is no way 280.3350 -of accessing the internals of the <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> filter primitive, meaning <span class="requirement" id="assert_dropShadowShadowTrees">if the 280.3351 -filter primitive is implemented as an equivalent tree then that tree must not 280.3352 -be exposed to the DOM.</span> </p> 280.3353 - 280.3354 -<div class="adef-list"> 280.3355 -<p><em>Attribute definitions:</em></p> 280.3356 -<dl><dt id="feDropShadowDxAttribute"> 280.3357 - <span class="adef">dx</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd> 280.3358 - <p>The x offset of the drop shadow.</p> 280.3359 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowDxAttribute"><span class="attr-name">‘dx’</span></a> is <span class="attr-value">2</span>.</p> 280.3360 - <p>This attribute is then forwarded to the <a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a> attribute of the internal <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element.</p> 280.3361 - <p><span class="anim-target">Animatable: yes.</span></p> 280.3362 - </dd><dt id="feDropShadowDyAttribute"> 280.3363 - <span class="adef">dy</span> = "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumber"><number></a></em>"</dt><dd> 280.3364 - <p>The y offset of the drop shadow.</p> 280.3365 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowDyAttribute"><span class="attr-name">‘dy’</span></a> is <span class="attr-value">2</span>. </p> 280.3366 - <p>This attribute is then forwarded to the <a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a> attribute of the internal <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element.</p> 280.3367 - <p><span class="anim-target">Animatable: yes.</span></p> 280.3368 - </dd><dt id="feDropShadowStdDeviationAttribute"><span class="adef">stdDeviation</span> = 280.3369 - "<em><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#DataTypeNumberOptionalNumber"><number-optional-number></a></em>"</dt><dd> 280.3370 - <p>The standard deviation for the blur operation in the drop shadow.</p> 280.3371 - <p>The <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/intro.html#TermLacunaValue"><span class="svg-term">lacuna value</span></a> for <a href="#feDropShadowStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> is <span class="attr-value">2</span>.</p> 280.3372 - <p>This attribute is then forwarded to the <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> attribute of the internal 280.3373 - <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element.</p> 280.3374 - <p><span class="anim-target">Animatable: yes.</span></p> 280.3375 - </dd></dl> 280.3376 -</div> 280.3377 - 280.3378 -<div class="note"> 280.3379 -<h2 id="feDiffuseSpecularElement">27 Filter primitive <span class="element-name">‘feDiffuseSpecular’</span></h2> 280.3380 -The SVG WG is looking at providing a shorthand for diffuse+specular. 280.3381 -</div> 280.3382 - 280.3383 -<div class="note"> 280.3384 -<h2 id="feCustomElement">28 Filter primitive <span class="element-name">‘feCustom’</span></h2> 280.3385 -The SVG WG is looking to add a filter primitive that allows programmatic access 280.3386 -to the pixel data for a filter, e.g via OpenCL. 280.3387 -</div> 280.3388 - 280.3389 -<h2 id="RelaxNG">29 RelaxNG Schema for Filter Effects 1.0</h2> 280.3390 - 280.3391 -<p>The schema for Filter Effects 1.0 is written in <a href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">RelaxNG</a> 280.3392 -[<a href="#ref-RNG">RelaxNG</a>], a namespace-aware schema language that uses 280.3393 -the datatypes from <a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema Part 280.3394 -2</a> [<a href="#ref-Schema2">Schema2</a>]. This allows namespaces and 280.3395 -modularity to be much more naturally expressed than using DTD syntax. The 280.3396 -RelaxNG schema for Filter Effects 1.0 may be imported by other RelaxNG schemas, 280.3397 -or combined with other schemas in other languages into a multi-namespace, 280.3398 -multi-grammar schema using <a href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">Namespace-based Validation 280.3399 -Dispatching Language</a> [<a href="#ref-NVDL">NVDL</a>].</p> 280.3400 - 280.3401 -<p>Unlike a DTD, the schema used for validation is not hardcoded into the 280.3402 -document instance. There is no equivalent to the DOCTYPE declaration. Simply 280.3403 -point your editor or other validation tool to the IRI of the schema (or your 280.3404 -local cached copy, as you prefer).</p> 280.3405 - 280.3406 -<p> 280.3407 -The RNG is under construction, and only the individual RNG snippets are available at this time. They have not yet been integrated into a functional schema. The individual RNG files are available <a href="rng">here</a>. 280.3408 -</p> 280.3409 - 280.3410 -<h2 id="DOMInterfaces">30 DOM interfaces</h2> 280.3411 -<div class="note"> 280.3412 -The interfaces below will be made available in a IDL file for an upcoming draft. 280.3413 -</div> 280.3414 - 280.3415 - 280.3416 - 280.3417 -<h2 id="DOMInterfaces">30 DOM interfaces</h2> 280.3418 - 280.3419 -<h3 id="InterfaceImageData">31.1 Interface ImageData</h3> 280.3420 - 280.3421 - 280.3422 - The ImageData interface corresponds to pixel data that can be used as input to the SVGFilterElement interface. 280.3423 -<pre class="idl">interface <b>ImageData</b> { 280.3424 - readonly attribute long <a href="#__svg__ImageData__width">width</a>; 280.3425 - readonly attribute long <a href="#__svg__ImageData__height">height</a>; 280.3426 - readonly attribute <a href="#__svg__ImageData__data">data</a>; 280.3427 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.3428 -<dt id="__svg__ImageData__width"><b>width</b><span class="idl-type-parenthetical"> (readonly long)</span></dt><dd><div> 280.3429 - The width of the bitmap that the ImageData represents. 280.3430 -</div></dd> 280.3431 -<dt id="__svg__ImageData__height"><b>height</b><span class="idl-type-parenthetical"> (readonly long)</span></dt><dd><div> 280.3432 - The height of the bitmap that the ImageData represents. 280.3433 -</div></dd> 280.3434 -<dt id="__svg__ImageData__data"><b>data</b><span class="idl-type-parenthetical"> (readonly )</span></dt><dd><div> 280.3435 - An array of pixel values that is the bitmap. This array must 280.3436 - always be in the form of width×height×4 integer values. The 280.3437 - pixel data is in left-to-right order, starting from the top-left 280.3438 - corner, and going row by row downwards. Every pixel is 280.3439 - represented by four integer values, red, green, blue and alpha, 280.3440 - in that order. The range of each color component is 0..255. The 280.3441 - intent is that this is compatible with the HTML5 [<a href="#ref-html5">HTML5</a>] 280.3442 - canvas interfaces, in particular see 280.3443 - <a href="http://www.w3.org/TR/html5/the-canvas.html#imagedata">ImageData</a>. 280.3444 -</div></dd></dl></dd></dl> 280.3445 - 280.3446 -<h3 id="InterfaceSVGFilterElement">31.2 Interface SVGFilterElement</h3> 280.3447 - 280.3448 - 280.3449 - 280.3450 - The <a class="idlinterface" href="#InterfaceSVGFilterElement">SVGFilterElement</a> interface corresponds to the <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.3451 - element. 280.3452 -<pre class="idl">interface <b>SVGFilterElement</b> : ::svg::SVGElement, 280.3453 - ::svg::SVGURIReference, 280.3454 - ::svg::SVGLangSpace, 280.3455 - ::svg::SVGExternalResourcesRequired, 280.3456 - ::svg::SVGStylable, 280.3457 - ::svg::SVGUnitTypes { 280.3458 - 280.3459 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFilterElement__filterUnits">filterUnits</a>; 280.3460 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFilterElement__primitiveUnits">primitiveUnits</a>; 280.3461 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__x">x</a>; 280.3462 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__y">y</a>; 280.3463 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__width">width</a>; 280.3464 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterElement__height">height</a>; 280.3465 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFilterElement__filterResX">filterResX</a>; 280.3466 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFilterElement__filterResY">filterResY</a>; 280.3467 - 280.3468 - void <a href="#__svg__SVGFilterElement__setFilterRes">setFilterRes</a>(in unsigned long filterResX, in unsigned long filterResY) raises(<a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>); 280.3469 - <a class="idlinterface" href="#InterfaceImageData">ImageData</a> <a href="#__svg__SVGFilterElement__apply">apply</a>(in <a class="idlinterface" href="#InterfaceImageData">ImageData</a> source); 280.3470 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.3471 -<dt id="__svg__SVGFilterElement__filterUnits"><b>filterUnits</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.3472 - Corresponds to attribute <a href="#FilterElementFilterUnitsAttribute"><span class="attr-name">‘filterUnits’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.3473 - element. Takes one of the constants defined in <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGUnitTypes">SVGUnitTypes</a>. 280.3474 -</div></dd> 280.3475 -<dt id="__svg__SVGFilterElement__primitiveUnits"><b>primitiveUnits</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.3476 - Corresponds to attribute <a href="#FilterElementPrimitiveUnitsAttribute"><span class="attr-name">‘primitiveUnits’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.3477 - element. Takes one of the constants defined in <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGUnitTypes">SVGUnitTypes</a>. 280.3478 -</div></dd> 280.3479 -<dt id="__svg__SVGFilterElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 280.3480 - Corresponds to attribute <a href="#FilterElementXAttribute"><span class="attr-name">‘x’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 280.3481 -</div></dd> 280.3482 -<dt id="__svg__SVGFilterElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 280.3483 - Corresponds to attribute <a href="#FilterElementYAttribute"><span class="attr-name">‘y’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 280.3484 -</div></dd> 280.3485 -<dt id="__svg__SVGFilterElement__width"><b>width</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 280.3486 - Corresponds to attribute <a href="#FilterElementWidthAttribute"><span class="attr-name">‘width’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 280.3487 -</div></dd> 280.3488 -<dt id="__svg__SVGFilterElement__height"><b>height</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 280.3489 - Corresponds to attribute <a href="#FilterElementHeightAttribute"><span class="attr-name">‘height’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> element. 280.3490 -</div></dd> 280.3491 -<dt id="__svg__SVGFilterElement__filterResX"><b>filterResX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 280.3492 - Corresponds to attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.3493 - element. Contains the X component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>. 280.3494 -</div></dd> 280.3495 -<dt id="__svg__SVGFilterElement__filterResY"><b>filterResY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 280.3496 - Corresponds to attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a> on the given <a href="#FilterElement"><span class="element-name">‘filter’</span></a> 280.3497 - element. Contains the Y component (possibly computed automatically) of 280.3498 - attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>. 280.3499 -</div></dd></dl></dd><dt>Operations:</dt><dd><dl class="attributes"> 280.3500 -<dt id="__svg__SVGFilterElement__setFilterRes">void <b>setFilterRes</b>(in unsigned long <var>filterResX</var>, in unsigned long <var>filterResY</var>)</dt><dd><div> 280.3501 - Sets the values for attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>. 280.3502 - 280.3503 -</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter">unsigned long <var>filterResX</var></div> <div> The X component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>. 280.3504 -</div></li><li><div class="parameter">unsigned long <var>filterResY</var></div> <div> The Y component of attribute <a href="#FilterElementFilterResAttribute"><span class="attr-name">‘filterRes’</span></a>. 280.3505 -</div></li></ol></dd><dt>Exceptions</dt><dd><dl class="exceptions"><dt><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt><dd> Raised on an attempt 280.3506 - to change the value of a readonly attribute. 280.3507 -</dd></dl></dd></dl></dd> 280.3508 -<dt id="__svg__SVGFilterElement__apply"><a class="idlinterface" href="#InterfaceImageData">ImageData</a> <b>apply</b>(in <a class="idlinterface" href="#InterfaceImageData">ImageData</a> <var>source</var>)</dt><dd><div> 280.3509 - Applies the filter to the given ImageData object and returns the result. 280.3510 - 280.3511 -</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter"><a class="idlinterface" href="#InterfaceImageData">ImageData</a> <var>source</var></div> <div> The image to apply the filter to. 280.3512 -</div></li></ol></dd><dt>Returns</dt><dd><div> The result of the filter, see <a class="idlinterface" href="#InterfaceImageData">ImageData</a> for how to construct this. 280.3513 -</div></dd></dl></dd></dl></dd></dl> 280.3514 - 280.3515 - 280.3516 -<h3 id="InterfaceSVGFilterPrimitiveStandardAttributes">31.3 Interface SVGFilterPrimitiveStandardAttributes</h3> 280.3517 - 280.3518 - 280.3519 - 280.3520 - This interface defines the set of DOM attributes that are common across 280.3521 - the filter primitive interfaces. 280.3522 -<pre class="idl">interface <b>SVGFilterPrimitiveStandardAttributes</b> : ::svg::SVGStylable { 280.3523 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__x">x</a>; 280.3524 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__y">y</a>; 280.3525 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__width">width</a>; 280.3526 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__height">height</a>; 280.3527 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFilterPrimitiveStandardAttributes__result">result</a>; 280.3528 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.3529 -<dt id="__svg__SVGFilterPrimitiveStandardAttributes__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 280.3530 - Corresponds to attribute <a href="filters.html#FilterPrimitiveXAttribute"><span class="attr-name">‘x’</span></a> on the given element. 280.3531 -</div></dd> 280.3532 -<dt id="__svg__SVGFilterPrimitiveStandardAttributes__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 280.3533 - Corresponds to attribute <a href="filters.html#FilterPrimitiveYAttribute"><span class="attr-name">‘y’</span></a> on the given element. 280.3534 -</div></dd> 280.3535 -<dt id="__svg__SVGFilterPrimitiveStandardAttributes__width"><b>width</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 280.3536 - Corresponds to attribute <a href="filters.html#FilterPrimitiveWidthAttribute"><span class="attr-name">‘width’</span></a> on the given element. 280.3537 -</div></dd> 280.3538 -<dt id="__svg__SVGFilterPrimitiveStandardAttributes__height"><b>height</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt><dd><div> 280.3539 - Corresponds to attribute <a href="filters.html#FilterPrimitiveHeightAttribute"><span class="attr-name">‘height’</span></a> on the given element. 280.3540 -</div></dd> 280.3541 -<dt id="__svg__SVGFilterPrimitiveStandardAttributes__result"><b>result</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.3542 - Corresponds to attribute <a href="filters.html#FilterPrimitiveResultAttribute"><span class="attr-name">‘result’</span></a> on the given element. 280.3543 -</div></dd></dl></dd></dl> 280.3544 - 280.3545 - 280.3546 -<h3 id="InterfaceSVGFEBlendElement">31.4 Interface SVGFEBlendElement</h3> 280.3547 - 280.3548 - 280.3549 - 280.3550 - The <a class="idlinterface" href="#InterfaceSVGFEBlendElement">SVGFEBlendElement</a> interface corresponds to the <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> 280.3551 - element. 280.3552 -<pre class="idl">interface <b>SVGFEBlendElement</b> : ::svg::SVGElement, 280.3553 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.3554 - 280.3555 - // Blend Mode Types 280.3556 - const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_UNKNOWN">SVG_FEBLEND_MODE_UNKNOWN</a> = 0; 280.3557 - const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_NORMAL">SVG_FEBLEND_MODE_NORMAL</a> = 1; 280.3558 - const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_MULTIPLY">SVG_FEBLEND_MODE_MULTIPLY</a> = 2; 280.3559 - const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_SCREEN">SVG_FEBLEND_MODE_SCREEN</a> = 3; 280.3560 - const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_DARKEN">SVG_FEBLEND_MODE_DARKEN</a> = 4; 280.3561 - const unsigned short <a href="#__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_LIGHTEN">SVG_FEBLEND_MODE_LIGHTEN</a> = 5; 280.3562 - 280.3563 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEBlendElement__in1">in1</a>; 280.3564 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEBlendElement__in2">in2</a>; 280.3565 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEBlendElement__mode">mode</a>; 280.3566 -};</pre><dl class="interface"><dt>Constants in group “Blend Mode Typesâ€:</dt><dd><dl class="constants"> 280.3567 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_UNKNOWN"><b>SVG_FEBLEND_MODE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3568 - The type is not one of predefined types. It is invalid to attempt to 280.3569 - define a new value of this type or to attempt to switch an existing 280.3570 - value to this type. 280.3571 - 280.3572 -</div></dd> 280.3573 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_NORMAL"><b>SVG_FEBLEND_MODE_NORMAL</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3574 - Corresponds to value <span class="attr-value">'normal'</span>. 280.3575 - 280.3576 -</div></dd> 280.3577 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_MULTIPLY"><b>SVG_FEBLEND_MODE_MULTIPLY</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3578 - Corresponds to value <span class="attr-value">'multiply'</span>. 280.3579 - 280.3580 -</div></dd> 280.3581 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_SCREEN"><b>SVG_FEBLEND_MODE_SCREEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3582 - Corresponds to value <span class="attr-value">'screen'</span>. 280.3583 - 280.3584 -</div></dd> 280.3585 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_DARKEN"><b>SVG_FEBLEND_MODE_DARKEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3586 - Corresponds to value <span class="attr-value">'darken'</span>. 280.3587 - 280.3588 -</div></dd> 280.3589 -<dt id="__svg__SVGFEBlendElement__SVG_FEBLEND_MODE_LIGHTEN"><b>SVG_FEBLEND_MODE_LIGHTEN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3590 - Corresponds to value <span class="attr-value">'lighten'</span>. 280.3591 - 280.3592 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 280.3593 -<dt id="__svg__SVGFEBlendElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.3594 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> 280.3595 - element. 280.3596 -</div></dd> 280.3597 -<dt id="__svg__SVGFEBlendElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.3598 - Corresponds to attribute <a href="#feBlendIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> 280.3599 - element. 280.3600 -</div></dd> 280.3601 -<dt id="__svg__SVGFEBlendElement__mode"><b>mode</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.3602 - Corresponds to attribute <a href="#feBlendModeAttribute"><span class="attr-name">‘mode’</span></a> on the given <a href="#feBlendElement"><span class="element-name">‘feBlend’</span></a> 280.3603 - element. Takes one of the SVG_FEBLEND_MODE_* constants defined on 280.3604 - this interface. 280.3605 -</div></dd></dl></dd></dl> 280.3606 - 280.3607 - 280.3608 -<h3 id="InterfaceSVGFEColorMatrixElement">31.5 Interface SVGFEColorMatrixElement</h3> 280.3609 - 280.3610 - 280.3611 - 280.3612 - The <a class="idlinterface" href="#InterfaceSVGFEColorMatrixElement">SVGFEColorMatrixElement</a> interface corresponds to the 280.3613 - <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> element. 280.3614 -<pre class="idl">interface <b>SVGFEColorMatrixElement</b> : ::svg::SVGElement, 280.3615 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.3616 - 280.3617 - // Color Matrix Types 280.3618 - const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_UNKNOWN">SVG_FECOLORMATRIX_TYPE_UNKNOWN</a> = 0; 280.3619 - const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_MATRIX">SVG_FECOLORMATRIX_TYPE_MATRIX</a> = 1; 280.3620 - const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_SATURATE">SVG_FECOLORMATRIX_TYPE_SATURATE</a> = 2; 280.3621 - const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_HUEROTATE">SVG_FECOLORMATRIX_TYPE_HUEROTATE</a> = 3; 280.3622 - const unsigned short <a href="#__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA">SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA</a> = 4; 280.3623 - 280.3624 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEColorMatrixElement__in1">in1</a>; 280.3625 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEColorMatrixElement__type">type</a>; 280.3626 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGFEColorMatrixElement__values">values</a>; 280.3627 -};</pre><dl class="interface"><dt>Constants in group “Color Matrix Typesâ€:</dt><dd><dl class="constants"> 280.3628 -<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_UNKNOWN"><b>SVG_FECOLORMATRIX_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3629 - The type is not one of predefined types. It is invalid to attempt to 280.3630 - define a new value of this type or to attempt to switch an existing 280.3631 - value to this type. 280.3632 - 280.3633 -</div></dd> 280.3634 -<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_MATRIX"><b>SVG_FECOLORMATRIX_TYPE_MATRIX</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3635 - Corresponds to value <span class="attr-value">'matrix'</span>. 280.3636 - 280.3637 -</div></dd> 280.3638 -<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_SATURATE"><b>SVG_FECOLORMATRIX_TYPE_SATURATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3639 - Corresponds to value <span class="attr-value">'saturate'</span>. 280.3640 - 280.3641 -</div></dd> 280.3642 -<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_HUEROTATE"><b>SVG_FECOLORMATRIX_TYPE_HUEROTATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3643 - Corresponds to value <span class="attr-value">'hueRotate'</span>. 280.3644 - 280.3645 -</div></dd> 280.3646 -<dt id="__svg__SVGFEColorMatrixElement__SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA"><b>SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3647 - Corresponds to value <span class="attr-value">'luminanceToAlpha'</span>. 280.3648 - 280.3649 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 280.3650 -<dt id="__svg__SVGFEColorMatrixElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.3651 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> 280.3652 - element. 280.3653 -</div></dd> 280.3654 -<dt id="__svg__SVGFEColorMatrixElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.3655 - Corresponds to attribute <a href="#feColorMatrixTypeAttribute"><span class="attr-name">‘type’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> 280.3656 - element. Takes one of the SVG_FECOLORMATRIX_TYPE_* constants defined 280.3657 - on this interface. 280.3658 -</div></dd> 280.3659 -<dt id="__svg__SVGFEColorMatrixElement__values"><b>values</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div> 280.3660 - Corresponds to attribute <a href="#feColorMatrixValuesAttribute"><span class="attr-name">‘values’</span></a> on the given <a href="#feColorMatrixElement"><span class="element-name">‘feColorMatrix’</span></a> 280.3661 - element. 280.3662 -</div></dd></dl></dd></dl> 280.3663 - 280.3664 - 280.3665 -<h3 id="InterfaceSVGFEComponentTransferElement">31.6 Interface SVGFEComponentTransferElement</h3> 280.3666 - 280.3667 - 280.3668 - 280.3669 - The <a class="idlinterface" href="#InterfaceSVGFEComponentTransferElement">SVGFEComponentTransferElement</a> interface corresponds to the 280.3670 - <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> element. 280.3671 -<pre class="idl">interface <b>SVGFEComponentTransferElement</b> : ::svg::SVGElement, 280.3672 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.3673 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEComponentTransferElement__in1">in1</a>; 280.3674 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.3675 -<dt id="__svg__SVGFEComponentTransferElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.3676 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feComponentTransferElement"><span class="element-name">‘feComponentTransfer’</span></a> 280.3677 - element. 280.3678 -</div></dd></dl></dd></dl> 280.3679 - 280.3680 - 280.3681 -<h3 id="InterfaceSVGComponentTransferFunctionElement">31.7 Interface SVGComponentTransferFunctionElement</h3> 280.3682 - 280.3683 - 280.3684 - 280.3685 - This interface defines a base interface used by the component transfer 280.3686 - function interfaces. 280.3687 -<pre class="idl">interface <b>SVGComponentTransferFunctionElement</b> : ::svg::SVGElement { 280.3688 - 280.3689 - // Component Transfer Types 280.3690 - const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN">SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN</a> = 0; 280.3691 - const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY">SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY</a> = 1; 280.3692 - const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_TABLE">SVG_FECOMPONENTTRANSFER_TYPE_TABLE</a> = 2; 280.3693 - const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE">SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE</a> = 3; 280.3694 - const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_LINEAR">SVG_FECOMPONENTTRANSFER_TYPE_LINEAR</a> = 4; 280.3695 - const unsigned short <a href="#__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_GAMMA">SVG_FECOMPONENTTRANSFER_TYPE_GAMMA</a> = 5; 280.3696 - 280.3697 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGComponentTransferFunctionElement__type">type</a>; 280.3698 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGComponentTransferFunctionElement__tableValues">tableValues</a>; 280.3699 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__slope">slope</a>; 280.3700 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__intercept">intercept</a>; 280.3701 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__amplitude">amplitude</a>; 280.3702 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__exponent">exponent</a>; 280.3703 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGComponentTransferFunctionElement__offset">offset</a>; 280.3704 -};</pre><dl class="interface"><dt>Constants in group “Component Transfer Typesâ€:</dt><dd><dl class="constants"> 280.3705 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN"><b>SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3706 - The type is not one of predefined types. It is invalid to attempt to 280.3707 - define a new value of this type or to attempt to switch an existing 280.3708 - value to this type. 280.3709 - 280.3710 -</div></dd> 280.3711 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY"><b>SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3712 - Corresponds to value <span class="attr-value">'identity'</span>. 280.3713 - 280.3714 -</div></dd> 280.3715 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_TABLE"><b>SVG_FECOMPONENTTRANSFER_TYPE_TABLE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3716 - Corresponds to value <span class="attr-value">'table'</span>. 280.3717 - 280.3718 -</div></dd> 280.3719 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE"><b>SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3720 - Corresponds to value <span class="attr-value">'discrete'</span>. 280.3721 - 280.3722 -</div></dd> 280.3723 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_LINEAR"><b>SVG_FECOMPONENTTRANSFER_TYPE_LINEAR</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3724 - Corresponds to value <span class="attr-value">'linear'</span>. 280.3725 - 280.3726 -</div></dd> 280.3727 -<dt id="__svg__SVGComponentTransferFunctionElement__SVG_FECOMPONENTTRANSFER_TYPE_GAMMA"><b>SVG_FECOMPONENTTRANSFER_TYPE_GAMMA</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3728 - Corresponds to value <span class="attr-value">'gamma'</span>. 280.3729 - 280.3730 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 280.3731 -<dt id="__svg__SVGComponentTransferFunctionElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.3732 - Corresponds to attribute <a href="#feComponentTransferTypeAttribute"><span class="attr-name">‘type’</span></a> on the given 280.3733 - element. Takes one of the SVG_FECOMPONENTTRANSFER_TYPE_* constants defined 280.3734 - on this interface. 280.3735 -</div></dd> 280.3736 -<dt id="__svg__SVGComponentTransferFunctionElement__tableValues"><b>tableValues</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div> 280.3737 - Corresponds to attribute <a href="#feComponentTransferTableValuesAttribute"><span class="attr-name">‘tableValues’</span></a> on the given element. 280.3738 -</div></dd> 280.3739 -<dt id="__svg__SVGComponentTransferFunctionElement__slope"><b>slope</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3740 - Corresponds to attribute <a href="#feComponentTransferSlopeAttribute"><span class="attr-name">‘slope’</span></a> on the given element. 280.3741 -</div></dd> 280.3742 -<dt id="__svg__SVGComponentTransferFunctionElement__intercept"><b>intercept</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3743 - Corresponds to attribute <a href="#feComponentTransferInterceptAttribute"><span class="attr-name">‘intercept’</span></a> on the given element. 280.3744 -</div></dd> 280.3745 -<dt id="__svg__SVGComponentTransferFunctionElement__amplitude"><b>amplitude</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3746 - Corresponds to attribute <a href="#feComponentTransferAmplitudeAttribute"><span class="attr-name">‘amplitude’</span></a> on the given element. 280.3747 -</div></dd> 280.3748 -<dt id="__svg__SVGComponentTransferFunctionElement__exponent"><b>exponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3749 - Corresponds to attribute <a href="#feComponentTransferExponentAttribute"><span class="attr-name">‘exponent’</span></a> on the given element. 280.3750 -</div></dd> 280.3751 -<dt id="__svg__SVGComponentTransferFunctionElement__offset"><b>offset</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3752 - Corresponds to attribute <a href="#feComponentTransferOffsetAttribute"><span class="attr-name">‘offset’</span></a> on the given element. 280.3753 -</div></dd></dl></dd></dl> 280.3754 - 280.3755 - 280.3756 -<h3 id="InterfaceSVGFEFuncRElement">31.8 Interface SVGFEFuncRElement</h3> 280.3757 - 280.3758 - 280.3759 - 280.3760 - The <a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncR’</span></a> 280.3761 - element. 280.3762 -<pre class="idl">interface <b>SVGFEFuncRElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> { 280.3763 -};</pre> 280.3764 - 280.3765 - 280.3766 -<h3 id="InterfaceSVGFEFuncGElement">31.9 Interface SVGFEFuncGElement</h3> 280.3767 - 280.3768 - 280.3769 - 280.3770 - The <a class="idlinterface" href="#InterfaceSVGFEFuncRElement">SVGFEFuncRElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncG’</span></a> 280.3771 - element. 280.3772 -<pre class="idl">interface <b>SVGFEFuncGElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> { 280.3773 -};</pre> 280.3774 - 280.3775 - 280.3776 -<h3 id="InterfaceSVGFEFuncBElement">31.10 Interface SVGFEFuncBElement</h3> 280.3777 - 280.3778 - 280.3779 - 280.3780 - The <a class="idlinterface" href="#InterfaceSVGFEFuncBElement">SVGFEFuncBElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncB’</span></a> 280.3781 - element. 280.3782 -<pre class="idl">interface <b>SVGFEFuncBElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> { 280.3783 -};</pre> 280.3784 - 280.3785 - 280.3786 -<h3 id="InterfaceSVGFEFuncAElement">31.11 Interface SVGFEFuncAElement</h3> 280.3787 - 280.3788 - 280.3789 - 280.3790 - The <a class="idlinterface" href="#InterfaceSVGFEFuncAElement">SVGFEFuncAElement</a> interface corresponds to the <a href=""><span class="element-name">‘feFuncA’</span></a> 280.3791 - element. 280.3792 -<pre class="idl">interface <b>SVGFEFuncAElement</b> : <a class="idlinterface" href="#InterfaceSVGComponentTransferFunctionElement">SVGComponentTransferFunctionElement</a> { 280.3793 -};</pre> 280.3794 - 280.3795 - 280.3796 -<h3 id="InterfaceSVGFECompositeElement">31.12 Interface SVGFECompositeElement</h3> 280.3797 - 280.3798 - 280.3799 - 280.3800 - The <a class="idlinterface" href="#InterfaceSVGFECompositeElement">SVGFECompositeElement</a> interface corresponds to the 280.3801 - <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> element. 280.3802 -<pre class="idl">interface <b>SVGFECompositeElement</b> : ::svg::SVGElement, 280.3803 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.3804 - 280.3805 - // Composite Operators 280.3806 - const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_UNKNOWN">SVG_FECOMPOSITE_OPERATOR_UNKNOWN</a> = 0; 280.3807 - const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OVER">SVG_FECOMPOSITE_OPERATOR_OVER</a> = 1; 280.3808 - const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_IN">SVG_FECOMPOSITE_OPERATOR_IN</a> = 2; 280.3809 - const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OUT">SVG_FECOMPOSITE_OPERATOR_OUT</a> = 3; 280.3810 - const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ATOP">SVG_FECOMPOSITE_OPERATOR_ATOP</a> = 4; 280.3811 - const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_XOR">SVG_FECOMPOSITE_OPERATOR_XOR</a> = 5; 280.3812 - const unsigned short <a href="#__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ARITHMETIC">SVG_FECOMPOSITE_OPERATOR_ARITHMETIC</a> = 6; 280.3813 - 280.3814 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFECompositeElement__in1">in1</a>; 280.3815 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFECompositeElement__in2">in2</a>; 280.3816 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFECompositeElement__operator">operator</a>; 280.3817 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k1">k1</a>; 280.3818 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k2">k2</a>; 280.3819 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k3">k3</a>; 280.3820 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFECompositeElement__k4">k4</a>; 280.3821 -};</pre><dl class="interface"><dt>Constants in group “Composite Operatorsâ€:</dt><dd><dl class="constants"> 280.3822 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_UNKNOWN"><b>SVG_FECOMPOSITE_OPERATOR_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3823 - The type is not one of predefined types. It is invalid to attempt to 280.3824 - define a new value of this type or to attempt to switch an existing 280.3825 - value to this type. 280.3826 - 280.3827 -</div></dd> 280.3828 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OVER"><b>SVG_FECOMPOSITE_OPERATOR_OVER</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3829 - Corresponds to value <span class="attr-value">'over'</span>. 280.3830 - 280.3831 -</div></dd> 280.3832 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_IN"><b>SVG_FECOMPOSITE_OPERATOR_IN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3833 - Corresponds to value <span class="attr-value">'in'</span>. 280.3834 - 280.3835 -</div></dd> 280.3836 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_OUT"><b>SVG_FECOMPOSITE_OPERATOR_OUT</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3837 - Corresponds to value <span class="attr-value">'out'</span>. 280.3838 - 280.3839 -</div></dd> 280.3840 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ATOP"><b>SVG_FECOMPOSITE_OPERATOR_ATOP</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3841 - Corresponds to value <span class="attr-value">'atop'</span>. 280.3842 - 280.3843 -</div></dd> 280.3844 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_XOR"><b>SVG_FECOMPOSITE_OPERATOR_XOR</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3845 - Corresponds to value <span class="attr-value">'xor'</span>. 280.3846 - 280.3847 -</div></dd> 280.3848 -<dt id="__svg__SVGFECompositeElement__SVG_FECOMPOSITE_OPERATOR_ARITHMETIC"><b>SVG_FECOMPOSITE_OPERATOR_ARITHMETIC</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3849 - Corresponds to value <span class="attr-value">'arithmetic'</span>. 280.3850 - 280.3851 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 280.3852 -<dt id="__svg__SVGFECompositeElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.3853 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 280.3854 - element. 280.3855 -</div></dd> 280.3856 -<dt id="__svg__SVGFECompositeElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.3857 - Corresponds to attribute <a href="#feCompositeIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 280.3858 - element. 280.3859 -</div></dd> 280.3860 -<dt id="__svg__SVGFECompositeElement__operator"><b>operator</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.3861 - Corresponds to attribute <a href="#feCompositeOperatorAttribute"><span class="attr-name">‘operator’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 280.3862 - element. Takes one of the SVG_FECOMPOSITE_OPERATOR_* constants defined 280.3863 - on this interface. 280.3864 -</div></dd> 280.3865 -<dt id="__svg__SVGFECompositeElement__k1"><b>k1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3866 - Corresponds to attribute <a href="#feCompositeK1Attribute"><span class="attr-name">‘k1’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 280.3867 - element. 280.3868 -</div></dd> 280.3869 -<dt id="__svg__SVGFECompositeElement__k2"><b>k2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3870 - Corresponds to attribute <a href="#feCompositeK2Attribute"><span class="attr-name">‘k2’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 280.3871 - element. 280.3872 -</div></dd> 280.3873 -<dt id="__svg__SVGFECompositeElement__k3"><b>k3</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3874 - Corresponds to attribute <a href="#feCompositeK3Attribute"><span class="attr-name">‘k3’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 280.3875 - element. 280.3876 -</div></dd> 280.3877 -<dt id="__svg__SVGFECompositeElement__k4"><b>k4</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3878 - Corresponds to attribute <a href="#feCompositeK4Attribute"><span class="attr-name">‘k4’</span></a> on the given <a href="#feCompositeElement"><span class="element-name">‘feComposite’</span></a> 280.3879 - element. 280.3880 -</div></dd></dl></dd></dl> 280.3881 - 280.3882 - 280.3883 -<h3 id="InterfaceSVGFEConvolveMatrixElement">31.13 Interface SVGFEConvolveMatrixElement</h3> 280.3884 - 280.3885 - 280.3886 - 280.3887 - The <a class="idlinterface" href="#InterfaceSVGFEConvolveMatrixElement">SVGFEConvolveMatrixElement</a> interface corresponds to the 280.3888 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3889 -<pre class="idl">interface <b>SVGFEConvolveMatrixElement</b> : ::svg::SVGElement, 280.3890 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.3891 - 280.3892 - // Edge Mode Values 280.3893 - const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_UNKNOWN">SVG_EDGEMODE_UNKNOWN</a> = 0; 280.3894 - const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_DUPLICATE">SVG_EDGEMODE_DUPLICATE</a> = 1; 280.3895 - const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_WRAP">SVG_EDGEMODE_WRAP</a> = 2; 280.3896 - const unsigned short <a href="#__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_NONE">SVG_EDGEMODE_NONE</a> = 3; 280.3897 - 280.3898 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEConvolveMatrixElement__in1">in1</a>; 280.3899 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__orderX">orderX</a>; 280.3900 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__orderY">orderY</a>; 280.3901 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelMatrix">kernelMatrix</a>; 280.3902 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__divisor">divisor</a>; 280.3903 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__bias">bias</a>; 280.3904 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__targetX">targetX</a>; 280.3905 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFEConvolveMatrixElement__targetY">targetY</a>; 280.3906 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEConvolveMatrixElement__edgeMode">edgeMode</a>; 280.3907 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelUnitLengthX">kernelUnitLengthX</a>; 280.3908 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEConvolveMatrixElement__kernelUnitLengthY">kernelUnitLengthY</a>; 280.3909 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedBoolean">SVGAnimatedBoolean</a> <a href="#__svg__SVGFEConvolveMatrixElement__preserveAlpha">preserveAlpha</a>; 280.3910 -};</pre><dl class="interface"><dt>Constants in group “Edge Mode Valuesâ€:</dt><dd><dl class="constants"> 280.3911 -<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_UNKNOWN"><b>SVG_EDGEMODE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3912 - The type is not one of predefined types. It is invalid to attempt to 280.3913 - define a new value of this type or to attempt to switch an existing 280.3914 - value to this type. 280.3915 - 280.3916 -</div></dd> 280.3917 -<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_DUPLICATE"><b>SVG_EDGEMODE_DUPLICATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3918 - Corresponds to value <span class="attr-value">'duplicate'</span>. 280.3919 - 280.3920 -</div></dd> 280.3921 -<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_WRAP"><b>SVG_EDGEMODE_WRAP</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3922 - Corresponds to value <span class="attr-value">'wrap'</span>. 280.3923 - 280.3924 -</div></dd> 280.3925 -<dt id="__svg__SVGFEConvolveMatrixElement__SVG_EDGEMODE_NONE"><b>SVG_EDGEMODE_NONE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.3926 - Corresponds to value <span class="attr-value">'none'</span>. 280.3927 - 280.3928 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 280.3929 -<dt id="__svg__SVGFEConvolveMatrixElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.3930 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given 280.3931 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3932 -</div></dd> 280.3933 -<dt id="__svg__SVGFEConvolveMatrixElement__orderX"><b>orderX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 280.3934 - Corresponds to attribute <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> on the given 280.3935 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3936 -</div></dd> 280.3937 -<dt id="__svg__SVGFEConvolveMatrixElement__orderY"><b>orderY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 280.3938 - Corresponds to attribute <a href="#feConvolveMatrixElementOrderAttribute"><span class="attr-name">‘order’</span></a> on the given 280.3939 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3940 -</div></dd> 280.3941 -<dt id="__svg__SVGFEConvolveMatrixElement__kernelMatrix"><b>kernelMatrix</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumberList">SVGAnimatedNumberList</a>)</span></dt><dd><div> 280.3942 - Corresponds to attribute <a href="#feConvolveMatrixElementKernelMatrixAttribute"><span class="attr-name">‘kernelMatrix’</span></a> on the given 280.3943 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3944 -</div></dd> 280.3945 -<dt id="__svg__SVGFEConvolveMatrixElement__divisor"><b>divisor</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3946 - Corresponds to attribute <a href="#feConvolveMatrixElementDivisorAttribute"><span class="attr-name">‘divisor’</span></a> on the given 280.3947 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3948 -</div></dd> 280.3949 -<dt id="__svg__SVGFEConvolveMatrixElement__bias"><b>bias</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3950 - Corresponds to attribute <a href="#feConvolveMatrixElementBiasAttribute"><span class="attr-name">‘bias’</span></a> on the given 280.3951 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3952 -</div></dd> 280.3953 -<dt id="__svg__SVGFEConvolveMatrixElement__targetX"><b>targetX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 280.3954 - Corresponds to attribute <a href="#feConvolveMatrixElementTargetXAttribute"><span class="attr-name">‘targetX’</span></a> on the given 280.3955 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3956 -</div></dd> 280.3957 -<dt id="__svg__SVGFEConvolveMatrixElement__targetY"><b>targetY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 280.3958 - Corresponds to attribute <a href="#feConvolveMatrixElementTargetYAttribute"><span class="attr-name">‘targetY’</span></a> on the given 280.3959 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3960 -</div></dd> 280.3961 -<dt id="__svg__SVGFEConvolveMatrixElement__edgeMode"><b>edgeMode</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.3962 - Corresponds to attribute <a href="#feConvolveMatrixElementEdgeModeAttribute"><span class="attr-name">‘edgeMode’</span></a> on the given 280.3963 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. Takes one of the SVG_EDGEMODE_* 280.3964 - constants defined on this interface. 280.3965 -</div></dd> 280.3966 -<dt id="__svg__SVGFEConvolveMatrixElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3967 - Corresponds to attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 280.3968 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3969 -</div></dd> 280.3970 -<dt id="__svg__SVGFEConvolveMatrixElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3971 - Corresponds to attribute <a href="#feConvolveMatrixElementKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 280.3972 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3973 -</div></dd> 280.3974 -<dt id="__svg__SVGFEConvolveMatrixElement__preserveAlpha"><b>preserveAlpha</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedBoolean">SVGAnimatedBoolean</a>)</span></dt><dd><div> 280.3975 - Corresponds to attribute <a href="#feConvolveMatrixElementPreserveAlphaAttribute"><span class="attr-name">‘preserveAlpha’</span></a> on the given 280.3976 - <a href="#feConvolveMatrixElement"><span class="element-name">‘feConvolveMatrix’</span></a> element. 280.3977 -</div></dd></dl></dd></dl> 280.3978 - 280.3979 - 280.3980 -<h3 id="InterfaceSVGFEDiffuseLightingElement">31.14 Interface SVGFEDiffuseLightingElement</h3> 280.3981 - 280.3982 - 280.3983 - 280.3984 - The <a class="idlinterface" href="#InterfaceSVGFEDiffuseLightingElement">SVGFEDiffuseLightingElement</a> interface corresponds to the 280.3985 - <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element. 280.3986 -<pre class="idl">interface <b>SVGFEDiffuseLightingElement</b> : ::svg::SVGElement, 280.3987 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.3988 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDiffuseLightingElement__in1">in1</a>; 280.3989 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__surfaceScale">surfaceScale</a>; 280.3990 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__diffuseConstant">diffuseConstant</a>; 280.3991 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__kernelUnitLengthX">kernelUnitLengthX</a>; 280.3992 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDiffuseLightingElement__kernelUnitLengthY">kernelUnitLengthY</a>; 280.3993 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.3994 -<dt id="__svg__SVGFEDiffuseLightingElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.3995 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> 280.3996 - element. 280.3997 -</div></dd> 280.3998 -<dt id="__svg__SVGFEDiffuseLightingElement__surfaceScale"><b>surfaceScale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.3999 - Corresponds to attribute <a href="#feDiffuseLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a> on the given 280.4000 - <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element. 280.4001 -</div></dd> 280.4002 -<dt id="__svg__SVGFEDiffuseLightingElement__diffuseConstant"><b>diffuseConstant</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4003 - Corresponds to attribute <a href="#feDiffuseLightingDiffuseConstantAttribute"><span class="attr-name">‘diffuseConstant’</span></a> on the given 280.4004 - <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element. 280.4005 -</div></dd> 280.4006 -<dt id="__svg__SVGFEDiffuseLightingElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4007 - Corresponds to attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 280.4008 - <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element. 280.4009 -</div></dd> 280.4010 -<dt id="__svg__SVGFEDiffuseLightingElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4011 - Corresponds to attribute <a href="#feDiffuseLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 280.4012 - <a href="#feDiffuseLightingElement"><span class="element-name">‘feDiffuseLighting’</span></a> element. 280.4013 -</div></dd></dl></dd></dl> 280.4014 - 280.4015 - 280.4016 -<h3 id="InterfaceSVGFEDistantLightElement">31.15 Interface SVGFEDistantLightElement</h3> 280.4017 - 280.4018 - 280.4019 - 280.4020 - The <a class="idlinterface" href="#InterfaceSVGFEDistantLightElement">SVGFEDistantLightElement</a> interface corresponds to the 280.4021 - <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element. 280.4022 -<pre class="idl">interface <b>SVGFEDistantLightElement</b> : ::svg::SVGElement { 280.4023 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDistantLightElement__azimuth">azimuth</a>; 280.4024 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDistantLightElement__elevation">elevation</a>; 280.4025 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.4026 -<dt id="__svg__SVGFEDistantLightElement__azimuth"><b>azimuth</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4027 - Corresponds to attribute <a href="#feDistantLightAzimuthAttribute"><span class="attr-name">‘azimuth’</span></a> on the given 280.4028 - <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element. 280.4029 -</div></dd> 280.4030 -<dt id="__svg__SVGFEDistantLightElement__elevation"><b>elevation</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4031 - Corresponds to attribute <a href="#feDistantLightElevationAttribute"><span class="attr-name">‘elevation’</span></a> on the given 280.4032 - <a href="#feDistantLightElement"><span class="element-name">‘feDistantLight’</span></a> element. 280.4033 -</div></dd></dl></dd></dl> 280.4034 - 280.4035 - 280.4036 -<h3 id="InterfaceSVGFEPointLightElement">31.16 Interface SVGFEPointLightElement</h3> 280.4037 - 280.4038 - 280.4039 - 280.4040 - The <a class="idlinterface" href="#InterfaceSVGFEPointLightElement">SVGFEPointLightElement</a> interface corresponds to the 280.4041 - <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element. 280.4042 -<pre class="idl">interface <b>SVGFEPointLightElement</b> : ::svg::SVGElement { 280.4043 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__x">x</a>; 280.4044 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__y">y</a>; 280.4045 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEPointLightElement__z">z</a>; 280.4046 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.4047 -<dt id="__svg__SVGFEPointLightElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4048 - Corresponds to attribute <a href="#fePointLightXAttribute"><span class="attr-name">‘x’</span></a> on the given 280.4049 - <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element. 280.4050 -</div></dd> 280.4051 -<dt id="__svg__SVGFEPointLightElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4052 - Corresponds to attribute <a href="#fePointLightYAttribute"><span class="attr-name">‘y’</span></a> on the given 280.4053 - <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element. 280.4054 -</div></dd> 280.4055 -<dt id="__svg__SVGFEPointLightElement__z"><b>z</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4056 - Corresponds to attribute <a href="#fePointLightZAttribute"><span class="attr-name">‘z’</span></a> on the given 280.4057 - <a href="#fePointLightElement"><span class="element-name">‘fePointLight’</span></a> element. 280.4058 -</div></dd></dl></dd></dl> 280.4059 - 280.4060 - 280.4061 -<h3 id="InterfaceSVGFESpotLightElement">31.17 Interface SVGFESpotLightElement</h3> 280.4062 - 280.4063 - 280.4064 - 280.4065 - The <a class="idlinterface" href="#InterfaceSVGFESpotLightElement">SVGFESpotLightElement</a> interface corresponds to the 280.4066 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 280.4067 -<pre class="idl">interface <b>SVGFESpotLightElement</b> : ::svg::SVGElement { 280.4068 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__x">x</a>; 280.4069 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__y">y</a>; 280.4070 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__z">z</a>; 280.4071 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtX">pointsAtX</a>; 280.4072 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtY">pointsAtY</a>; 280.4073 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__pointsAtZ">pointsAtZ</a>; 280.4074 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__specularExponent">specularExponent</a>; 280.4075 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpotLightElement__limitingConeAngle">limitingConeAngle</a>; 280.4076 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.4077 -<dt id="__svg__SVGFESpotLightElement__x"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4078 - Corresponds to attribute <a href="#feSpotLightXAttribute"><span class="attr-name">‘x’</span></a> on the given 280.4079 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 280.4080 -</div></dd> 280.4081 -<dt id="__svg__SVGFESpotLightElement__y"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4082 - Corresponds to attribute <a href="#feSpotLightYAttribute"><span class="attr-name">‘y’</span></a> on the given 280.4083 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 280.4084 -</div></dd> 280.4085 -<dt id="__svg__SVGFESpotLightElement__z"><b>z</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4086 - Corresponds to attribute <a href="#feSpotLightZAttribute"><span class="attr-name">‘z’</span></a> on the given 280.4087 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 280.4088 -</div></dd> 280.4089 -<dt id="__svg__SVGFESpotLightElement__pointsAtX"><b>pointsAtX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4090 - Corresponds to attribute <a href="#feSpotLightPointsAtXAttribute"><span class="attr-name">‘pointsAtX’</span></a> on the given 280.4091 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 280.4092 -</div></dd> 280.4093 -<dt id="__svg__SVGFESpotLightElement__pointsAtY"><b>pointsAtY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4094 - Corresponds to attribute <a href="#feSpotLightPointsAtYAttribute"><span class="attr-name">‘pointsAtY’</span></a> on the given 280.4095 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 280.4096 -</div></dd> 280.4097 -<dt id="__svg__SVGFESpotLightElement__pointsAtZ"><b>pointsAtZ</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4098 - Corresponds to attribute <a href="#feSpotLightPointsAtZAttribute"><span class="attr-name">‘pointsAtZ’</span></a> on the given 280.4099 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 280.4100 -</div></dd> 280.4101 -<dt id="__svg__SVGFESpotLightElement__specularExponent"><b>specularExponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4102 - Corresponds to attribute <a href="#feSpotLightSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a> on the given 280.4103 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 280.4104 -</div></dd> 280.4105 -<dt id="__svg__SVGFESpotLightElement__limitingConeAngle"><b>limitingConeAngle</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4106 - Corresponds to attribute <a href="#feSpotLightLimitingConeAngleAttribute"><span class="attr-name">‘limitingConeAngle’</span></a> on the given 280.4107 - <a href="#feSpotLightElement"><span class="element-name">‘feSpotLight’</span></a> element. 280.4108 -</div></dd></dl></dd></dl> 280.4109 - 280.4110 - 280.4111 -<h3 id="InterfaceSVGFEDisplacementMapElement">31.18 Interface SVGFEDisplacementMapElement</h3> 280.4112 - 280.4113 - 280.4114 - 280.4115 - The <a class="idlinterface" href="#InterfaceSVGFEDisplacementMapElement">SVGFEDisplacementMapElement</a> interface corresponds to the 280.4116 - <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element. 280.4117 -<pre class="idl">interface <b>SVGFEDisplacementMapElement</b> : ::svg::SVGElement, 280.4118 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.4119 - 280.4120 - // Channel Selectors 280.4121 - const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_UNKNOWN">SVG_CHANNEL_UNKNOWN</a> = 0; 280.4122 - const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_R">SVG_CHANNEL_R</a> = 1; 280.4123 - const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_G">SVG_CHANNEL_G</a> = 2; 280.4124 - const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_B">SVG_CHANNEL_B</a> = 3; 280.4125 - const unsigned short <a href="#__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_A">SVG_CHANNEL_A</a> = 4; 280.4126 - 280.4127 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDisplacementMapElement__in1">in1</a>; 280.4128 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDisplacementMapElement__in2">in2</a>; 280.4129 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDisplacementMapElement__scale">scale</a>; 280.4130 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEDisplacementMapElement__xChannelSelector">xChannelSelector</a>; 280.4131 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEDisplacementMapElement__yChannelSelector">yChannelSelector</a>; 280.4132 -};</pre><dl class="interface"><dt>Constants in group “Channel Selectorsâ€:</dt><dd><dl class="constants"> 280.4133 -<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_UNKNOWN"><b>SVG_CHANNEL_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4134 - The type is not one of predefined types. It is invalid to attempt to 280.4135 - define a new value of this type or to attempt to switch an existing 280.4136 - value to this type. 280.4137 - 280.4138 -</div></dd> 280.4139 -<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_R"><b>SVG_CHANNEL_R</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4140 - Corresponds to value <span class="attr-value">'R'</span>. 280.4141 - 280.4142 -</div></dd> 280.4143 -<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_G"><b>SVG_CHANNEL_G</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4144 - Corresponds to value <span class="attr-value">'G'</span>. 280.4145 - 280.4146 -</div></dd> 280.4147 -<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_B"><b>SVG_CHANNEL_B</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4148 - Corresponds to value <span class="attr-value">'B'</span>. 280.4149 - 280.4150 -</div></dd> 280.4151 -<dt id="__svg__SVGFEDisplacementMapElement__SVG_CHANNEL_A"><b>SVG_CHANNEL_A</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4152 - Corresponds to value <span class="attr-value">'A'</span>. 280.4153 - 280.4154 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 280.4155 -<dt id="__svg__SVGFEDisplacementMapElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.4156 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> 280.4157 - element. 280.4158 -</div></dd> 280.4159 -<dt id="__svg__SVGFEDisplacementMapElement__in2"><b>in2</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.4160 - Corresponds to attribute <a href="#feDisplacementMapIn2Attribute"><span class="attr-name">‘in2’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> 280.4161 - element. 280.4162 -</div></dd> 280.4163 -<dt id="__svg__SVGFEDisplacementMapElement__scale"><b>scale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4164 - Corresponds to attribute <a href="#feDisplacementMapScaleAttribute"><span class="attr-name">‘scale’</span></a> on the given <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> 280.4165 - element. 280.4166 -</div></dd> 280.4167 -<dt id="__svg__SVGFEDisplacementMapElement__xChannelSelector"><b>xChannelSelector</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.4168 - Corresponds to attribute <a href="#feDisplacementMapXChannelSelectorAttribute"><span class="attr-name">‘xChannelSelector’</span></a> on the given 280.4169 - <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element. Takes one of the SVG_CHANNEL_* 280.4170 - constants defined on this interface. 280.4171 -</div></dd> 280.4172 -<dt id="__svg__SVGFEDisplacementMapElement__yChannelSelector"><b>yChannelSelector</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.4173 - Corresponds to attribute <a href="#feDisplacementMapYChannelSelectorAttribute"><span class="attr-name">‘yChannelSelector’</span></a> on the given 280.4174 - <a href="#feDisplacementMapElement"><span class="element-name">‘feDisplacementMap’</span></a> element. Takes one of the SVG_CHANNEL_* 280.4175 - constants defined on this interface. 280.4176 -</div></dd></dl></dd></dl> 280.4177 - 280.4178 - 280.4179 -<h3 id="InterfaceSVGFEFloodElement">31.19 Interface SVGFEFloodElement</h3> 280.4180 - 280.4181 - 280.4182 - 280.4183 - The <a class="idlinterface" href="#InterfaceSVGFEFloodElement">SVGFEFloodElement</a> interface corresponds to the 280.4184 - <a href="#feFloodElement"><span class="element-name">‘feFlood’</span></a> element. 280.4185 -<pre class="idl">interface <b>SVGFEFloodElement</b> : ::svg::SVGElement, 280.4186 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.4187 -};</pre> 280.4188 - 280.4189 - 280.4190 -<h3 id="InterfaceSVGFEGaussianBlurElement">31.20 Interface SVGFEGaussianBlurElement</h3> 280.4191 - 280.4192 - 280.4193 - 280.4194 - The <a class="idlinterface" href="#InterfaceSVGFEGaussianBlurElement">SVGFEGaussianBlurElement</a> interface corresponds to the 280.4195 - <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element. 280.4196 -<pre class="idl">interface <b>SVGFEGaussianBlurElement</b> : ::svg::SVGElement, 280.4197 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.4198 - 280.4199 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEGaussianBlurElement__in1">in1</a>; 280.4200 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEGaussianBlurElement__stdDeviationX">stdDeviationX</a>; 280.4201 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEGaussianBlurElement__stdDeviationY">stdDeviationY</a>; 280.4202 - 280.4203 - void <a href="#__svg__SVGFEGaussianBlurElement__setStdDeviation">setStdDeviation</a>(in float stdDeviationX, in float stdDeviationY) raises(<a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>); 280.4204 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.4205 -<dt id="__svg__SVGFEGaussianBlurElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.4206 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given 280.4207 - <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element. 280.4208 -</div></dd> 280.4209 -<dt id="__svg__SVGFEGaussianBlurElement__stdDeviationX"><b>stdDeviationX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4210 - Corresponds to attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the given 280.4211 - <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element. Contains the X component 280.4212 - of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>. 280.4213 -</div></dd> 280.4214 -<dt id="__svg__SVGFEGaussianBlurElement__stdDeviationY"><b>stdDeviationY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4215 - Corresponds to attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a> on the given 280.4216 - <a href="#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> element. Contains the Y component 280.4217 - (possibly computed automatically) of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>. 280.4218 -</div></dd></dl></dd><dt>Operations:</dt><dd><dl class="attributes"> 280.4219 -<dt id="__svg__SVGFEGaussianBlurElement__setStdDeviation">void <b>setStdDeviation</b>(in float <var>stdDeviationX</var>, in float <var>stdDeviationY</var>)</dt><dd><div> 280.4220 - Sets the values for attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>. 280.4221 - 280.4222 -</div><dl class="operation"><dt>Parameters</dt><dd><ol class="parameters"><li><div class="parameter">float <var>stdDeviationX</var></div> <div> The X component of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>. 280.4223 -</div></li><li><div class="parameter">float <var>stdDeviationY</var></div> <div> The Y component of attribute <a href="#feGaussianBlurStdDeviationAttribute"><span class="attr-name">‘stdDeviation’</span></a>. 280.4224 -</div></li></ol></dd><dt>Exceptions</dt><dd><dl class="exceptions"><dt><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt><dd> Raised on an attempt 280.4225 - to change the value of a readonly attribute. 280.4226 -</dd></dl></dd></dl></dd></dl></dd></dl> 280.4227 - 280.4228 - 280.4229 -<h3 id="InterfaceSVGFEImageElement">31.21 Interface SVGFEImageElement</h3> 280.4230 - 280.4231 - 280.4232 - 280.4233 - The <a class="idlinterface" href="#InterfaceSVGFEImageElement">SVGFEImageElement</a> interface corresponds to the 280.4234 - <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> element. 280.4235 -<pre class="idl">interface <b>SVGFEImageElement</b> : ::svg::SVGElement, 280.4236 - ::svg::SVGURIReference, 280.4237 - ::svg::SVGLangSpace, 280.4238 - ::svg::SVGExternalResourcesRequired, 280.4239 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.4240 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InterfaceSVGAnimatedPreserveAspectRatio">SVGAnimatedPreserveAspectRatio</a> <a href="#__svg__SVGFEImageElement__preserveAspectRatio">preserveAspectRatio</a>; 280.4241 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.4242 -<dt id="__svg__SVGFEImageElement__preserveAspectRatio"><b>preserveAspectRatio</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#InterfaceSVGAnimatedPreserveAspectRatio">SVGAnimatedPreserveAspectRatio</a>)</span></dt><dd><div> 280.4243 - Corresponds to attribute <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/coords.html#PreserveAspectRatioAttribute"><span class="attr-name">‘preserveAspectRatio’</span></a> on the given 280.4244 - <a href="#feImageElement"><span class="element-name">‘feImage’</span></a> element. 280.4245 -</div></dd></dl></dd></dl> 280.4246 - 280.4247 - 280.4248 -<h3 id="InterfaceSVGFEMergeElement">31.22 Interface SVGFEMergeElement</h3> 280.4249 - 280.4250 - 280.4251 - 280.4252 - The <a class="idlinterface" href="#InterfaceSVGFEMergeElement">SVGFEMergeElement</a> interface corresponds to the 280.4253 - <a href="#feMergeElement"><span class="element-name">‘feMerge’</span></a> element. 280.4254 -<pre class="idl">interface <b>SVGFEMergeElement</b> : ::svg::SVGElement, 280.4255 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.4256 -};</pre> 280.4257 - 280.4258 - 280.4259 -<h3 id="InterfaceSVGFEMergeNodeElement">31.23 Interface SVGFEMergeNodeElement</h3> 280.4260 - 280.4261 - 280.4262 - 280.4263 - The <a class="idlinterface" href="#InterfaceSVGFEMergeNodeElement">SVGFEMergeNodeElement</a> interface corresponds to the 280.4264 - <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> element. 280.4265 -<pre class="idl">interface <b>SVGFEMergeNodeElement</b> : ::svg::SVGElement { 280.4266 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEMergeNodeElement__in1">in1</a>; 280.4267 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.4268 -<dt id="__svg__SVGFEMergeNodeElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.4269 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feMergeNodeElement"><span class="element-name">‘feMergeNode’</span></a> 280.4270 - element. 280.4271 -</div></dd></dl></dd></dl> 280.4272 - 280.4273 - 280.4274 -<h3 id="InterfaceSVGFEMorphologyElement">31.24 Interface SVGFEMorphologyElement</h3> 280.4275 - 280.4276 - 280.4277 - 280.4278 - The <a class="idlinterface" href="#InterfaceSVGFEMorphologyElement">SVGFEMorphologyElement</a> interface corresponds to the 280.4279 - <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> element. 280.4280 -<pre class="idl">interface <b>SVGFEMorphologyElement</b> : ::svg::SVGElement, 280.4281 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.4282 - 280.4283 - // Morphology Operators 280.4284 - const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_UNKNOWN">SVG_MORPHOLOGY_OPERATOR_UNKNOWN</a> = 0; 280.4285 - const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_ERODE">SVG_MORPHOLOGY_OPERATOR_ERODE</a> = 1; 280.4286 - const unsigned short <a href="#__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_DILATE">SVG_MORPHOLOGY_OPERATOR_DILATE</a> = 2; 280.4287 - 280.4288 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEMorphologyElement__in1">in1</a>; 280.4289 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFEMorphologyElement__operator">operator</a>; 280.4290 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEMorphologyElement__radiusX">radiusX</a>; 280.4291 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEMorphologyElement__radiusY">radiusY</a>; 280.4292 -};</pre><dl class="interface"><dt>Constants in group “Morphology Operatorsâ€:</dt><dd><dl class="constants"> 280.4293 -<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_UNKNOWN"><b>SVG_MORPHOLOGY_OPERATOR_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4294 - The type is not one of predefined types. It is invalid to attempt to 280.4295 - define a new value of this type or to attempt to switch an existing 280.4296 - value to this type. 280.4297 - 280.4298 -</div></dd> 280.4299 -<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_ERODE"><b>SVG_MORPHOLOGY_OPERATOR_ERODE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4300 - Corresponds to value <span class="attr-value">'erode'</span>. 280.4301 - 280.4302 -</div></dd> 280.4303 -<dt id="__svg__SVGFEMorphologyElement__SVG_MORPHOLOGY_OPERATOR_DILATE"><b>SVG_MORPHOLOGY_OPERATOR_DILATE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4304 - Corresponds to value <span class="attr-value">'dilate'</span>. 280.4305 - 280.4306 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 280.4307 -<dt id="__svg__SVGFEMorphologyElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.4308 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> 280.4309 - element. 280.4310 -</div></dd> 280.4311 -<dt id="__svg__SVGFEMorphologyElement__operator"><b>operator</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.4312 - Corresponds to attribute <a href="#feMorphologyOperatorAttribute"><span class="attr-name">‘operator’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> 280.4313 - element. Takes one of the SVG_MORPHOLOGY_OPERATOR_* constants 280.4314 - defined on this interface. 280.4315 -</div></dd> 280.4316 -<dt id="__svg__SVGFEMorphologyElement__radiusX"><b>radiusX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4317 - Corresponds to attribute <a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> 280.4318 - element. 280.4319 -</div></dd> 280.4320 -<dt id="__svg__SVGFEMorphologyElement__radiusY"><b>radiusY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4321 - Corresponds to attribute <a href="#feMorphologyRadiusAttribute"><span class="attr-name">‘radius’</span></a> on the given <a href="#feMorphologyElement"><span class="element-name">‘feMorphology’</span></a> 280.4322 - element. 280.4323 -</div></dd></dl></dd></dl> 280.4324 - 280.4325 - 280.4326 -<h3 id="InterfaceSVGFEOffsetElement">31.25 Interface SVGFEOffsetElement</h3> 280.4327 - 280.4328 - 280.4329 - 280.4330 - The <a class="idlinterface" href="#InterfaceSVGFEOffsetElement">SVGFEOffsetElement</a> interface corresponds to the 280.4331 - <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> element. 280.4332 -<pre class="idl">interface <b>SVGFEOffsetElement</b> : ::svg::SVGElement, 280.4333 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.4334 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEOffsetElement__in1">in1</a>; 280.4335 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEOffsetElement__dx">dx</a>; 280.4336 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEOffsetElement__dy">dy</a>; 280.4337 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.4338 -<dt id="__svg__SVGFEOffsetElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.4339 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> 280.4340 - element. 280.4341 -</div></dd> 280.4342 -<dt id="__svg__SVGFEOffsetElement__dx"><b>dx</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4343 - Corresponds to attribute <a href="#feOffsetDxAttribute"><span class="attr-name">‘dx’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> 280.4344 - element. 280.4345 -</div></dd> 280.4346 -<dt id="__svg__SVGFEOffsetElement__dy"><b>dy</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4347 - Corresponds to attribute <a href="#feOffsetDyAttribute"><span class="attr-name">‘dy’</span></a> on the given <a href="#feOffsetElement"><span class="element-name">‘feOffset’</span></a> 280.4348 - element. 280.4349 -</div></dd></dl></dd></dl> 280.4350 - 280.4351 - 280.4352 -<h3 id="InterfaceSVGFESpecularLightingElement">31.26 Interface SVGFESpecularLightingElement</h3> 280.4353 - 280.4354 - 280.4355 - 280.4356 - The <a class="idlinterface" href="#InterfaceSVGFESpecularLightingElement">SVGFESpecularLightingElement</a> interface corresponds to the 280.4357 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 280.4358 -<pre class="idl">interface <b>SVGFESpecularLightingElement</b> : ::svg::SVGElement, 280.4359 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.4360 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFESpecularLightingElement__in1">in1</a>; 280.4361 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__surfaceScale">surfaceScale</a>; 280.4362 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__specularConstant">specularConstant</a>; 280.4363 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__specularExponent">specularExponent</a>; 280.4364 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__kernelUnitLengthX">kernelUnitLengthX</a>; 280.4365 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFESpecularLightingElement__kernelUnitLengthY">kernelUnitLengthY</a>; 280.4366 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.4367 -<dt id="__svg__SVGFESpecularLightingElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.4368 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> 280.4369 - element. 280.4370 -</div></dd> 280.4371 -<dt id="__svg__SVGFESpecularLightingElement__surfaceScale"><b>surfaceScale</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4372 - Corresponds to attribute <a href="#feSpecularLightingSurfaceScaleAttribute"><span class="attr-name">‘surfaceScale’</span></a> on the given 280.4373 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 280.4374 -</div></dd> 280.4375 -<dt id="__svg__SVGFESpecularLightingElement__specularConstant"><b>specularConstant</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4376 - Corresponds to attribute <a href="#feSpecularLightingSpecularConstantAttribute"><span class="attr-name">‘specularConstant’</span></a> on the given 280.4377 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 280.4378 -</div></dd> 280.4379 -<dt id="__svg__SVGFESpecularLightingElement__specularExponent"><b>specularExponent</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4380 - Corresponds to attribute <a href="#feSpecularLightingSpecularExponentAttribute"><span class="attr-name">‘specularExponent’</span></a> on the given 280.4381 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 280.4382 -</div></dd> 280.4383 -<dt id="__svg__SVGFESpecularLightingElement__kernelUnitLengthX"><b>kernelUnitLengthX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4384 - Corresponds to attribute <a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 280.4385 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 280.4386 -</div></dd> 280.4387 -<dt id="__svg__SVGFESpecularLightingElement__kernelUnitLengthY"><b>kernelUnitLengthY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4388 - Corresponds to attribute <a href="#feSpecularLightingKernelUnitLengthAttribute"><span class="attr-name">‘kernelUnitLength’</span></a> on the given 280.4389 - <a href="#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a> element. 280.4390 -</div></dd></dl></dd></dl> 280.4391 - 280.4392 - 280.4393 -<h3 id="InterfaceSVGFETileElement">31.27 Interface SVGFETileElement</h3> 280.4394 - 280.4395 - 280.4396 - 280.4397 - The <a class="idlinterface" href="#InterfaceSVGFETileElement">SVGFETileElement</a> interface corresponds to the 280.4398 - <a href="#feTileElement"><span class="element-name">‘feTile’</span></a> element. 280.4399 -<pre class="idl">interface <b>SVGFETileElement</b> : ::svg::SVGElement, 280.4400 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.4401 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFETileElement__in1">in1</a>; 280.4402 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.4403 -<dt id="__svg__SVGFETileElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd><div> 280.4404 - Corresponds to attribute <a href="#FilterPrimitiveInAttribute"><span class="attr-name">‘in’</span></a> on the given <a href="#feTileElement"><span class="element-name">‘feTile’</span></a> 280.4405 - element. 280.4406 -</div></dd></dl></dd></dl> 280.4407 - 280.4408 - 280.4409 -<h3 id="InterfaceSVGFETurbulenceElement">31.28 Interface SVGFETurbulenceElement</h3> 280.4410 - 280.4411 - 280.4412 - 280.4413 - The <a class="idlinterface" href="#InterfaceSVGFETurbulenceElement">SVGFETurbulenceElement</a> interface corresponds to the 280.4414 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. 280.4415 -<pre class="idl">interface <b>SVGFETurbulenceElement</b> : ::svg::SVGElement, 280.4416 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.4417 - 280.4418 - // Turbulence Types 280.4419 - const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_UNKNOWN">SVG_TURBULENCE_TYPE_UNKNOWN</a> = 0; 280.4420 - const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_FRACTALNOISE">SVG_TURBULENCE_TYPE_FRACTALNOISE</a> = 1; 280.4421 - const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_TURBULENCE">SVG_TURBULENCE_TYPE_TURBULENCE</a> = 2; 280.4422 - 280.4423 - // Stitch Options 280.4424 - const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_UNKNOWN">SVG_STITCHTYPE_UNKNOWN</a> = 0; 280.4425 - const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_STITCH">SVG_STITCHTYPE_STITCH</a> = 1; 280.4426 - const unsigned short <a href="#__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_NOSTITCH">SVG_STITCHTYPE_NOSTITCH</a> = 2; 280.4427 - 280.4428 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__baseFrequencyX">baseFrequencyX</a>; 280.4429 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__baseFrequencyY">baseFrequencyY</a>; 280.4430 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a> <a href="#__svg__SVGFETurbulenceElement__numOctaves">numOctaves</a>; 280.4431 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFETurbulenceElement__seed">seed</a>; 280.4432 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFETurbulenceElement__stitchTiles">stitchTiles</a>; 280.4433 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="#__svg__SVGFETurbulenceElement__type">type</a>; 280.4434 -};</pre><dl class="interface"><dt>Constants in group “Turbulence Typesâ€:</dt><dd><dl class="constants"> 280.4435 -<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_UNKNOWN"><b>SVG_TURBULENCE_TYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4436 - The type is not one of predefined types. It is invalid to attempt to 280.4437 - define a new value of this type or to attempt to switch an existing 280.4438 - value to this type. 280.4439 - 280.4440 -</div></dd> 280.4441 -<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_FRACTALNOISE"><b>SVG_TURBULENCE_TYPE_FRACTALNOISE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4442 - Corresponds to value <span class="attr-value">'fractalNoise'</span>. 280.4443 - 280.4444 -</div></dd> 280.4445 -<dt id="__svg__SVGFETurbulenceElement__SVG_TURBULENCE_TYPE_TURBULENCE"><b>SVG_TURBULENCE_TYPE_TURBULENCE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4446 - Corresponds to value <span class="attr-value">'turbulence'</span>. 280.4447 - 280.4448 -</div></dd></dl></dd><dt>Constants in group “Stitch Optionsâ€:</dt><dd><dl class="constants"> 280.4449 -<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_UNKNOWN"><b>SVG_STITCHTYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4450 - The type is not one of predefined types. It is invalid to attempt to 280.4451 - define a new value of this type or to attempt to switch an existing 280.4452 - value to this type. 280.4453 - 280.4454 -</div></dd> 280.4455 -<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_STITCH"><b>SVG_STITCHTYPE_STITCH</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4456 - Corresponds to value <span class="attr-value">'stitch'</span>. 280.4457 - 280.4458 -</div></dd> 280.4459 -<dt id="__svg__SVGFETurbulenceElement__SVG_STITCHTYPE_NOSTITCH"><b>SVG_STITCHTYPE_NOSTITCH</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt><dd><div> 280.4460 - Corresponds to value <span class="attr-value">'noStitch'</span>. 280.4461 - 280.4462 -</div></dd></dl></dd><dt>Attributes:</dt><dd><dl class="attributes"> 280.4463 -<dt id="__svg__SVGFETurbulenceElement__baseFrequencyX"><b>baseFrequencyX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4464 - Corresponds to attribute <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> on the given 280.4465 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. Contains the X component of the 280.4466 - <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> attribute. 280.4467 -</div></dd> 280.4468 -<dt id="__svg__SVGFETurbulenceElement__baseFrequencyY"><b>baseFrequencyY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4469 - Corresponds to attribute <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> on the given 280.4470 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. Contains the Y component of the 280.4471 - (possibly computed automatically) <a href="#feTurbulenceBaseFrequencyAttribute"><span class="attr-name">‘baseFrequency’</span></a> attribute. 280.4472 -</div></dd> 280.4473 -<dt id="__svg__SVGFETurbulenceElement__numOctaves"><b>numOctaves</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedInteger">SVGAnimatedInteger</a>)</span></dt><dd><div> 280.4474 - Corresponds to attribute <a href="#feTurbulenceNumOctavesAttribute"><span class="attr-name">‘numOctaves’</span></a> on the given 280.4475 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. 280.4476 -</div></dd> 280.4477 -<dt id="__svg__SVGFETurbulenceElement__seed"><b>seed</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd><div> 280.4478 - Corresponds to attribute <a href="#feTurbulenceSeedAttribute"><span class="attr-name">‘seed’</span></a> on the given 280.4479 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. 280.4480 -</div></dd> 280.4481 -<dt id="__svg__SVGFETurbulenceElement__stitchTiles"><b>stitchTiles</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.4482 - Corresponds to attribute <a href="#feTurbulenceStitchTilesAttribute"><span class="attr-name">‘stitchTiles’</span></a> on the given 280.4483 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. Takes one of the SVG_STITCHTYPE_* 280.4484 - constants defined on this interface. 280.4485 -</div></dd> 280.4486 -<dt id="__svg__SVGFETurbulenceElement__type"><b>type</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt><dd><div> 280.4487 - Corresponds to attribute <a href="#feTurbulenceTypeAttribute"><span class="attr-name">‘type’</span></a> on the given 280.4488 - <a href="#feTurbulenceElement"><span class="element-name">‘feTurbulence’</span></a> element. Takes one of the SVG_TURBULENCE_TYPE_* 280.4489 - constants defined on this interface. 280.4490 -</div></dd></dl></dd></dl> 280.4491 - 280.4492 - 280.4493 -<h3 id="InterfaceSVGFEDropShadowElement">31.29 Interface SVGFEDropShadowElement</h3> 280.4494 - 280.4495 - 280.4496 - 280.4497 - The <a class="idlinterface" href="#InterfaceSVGFEDropShadowElement">SVGFEDropShadowElement</a> interface corresponds to the 280.4498 - <a href="#feDropShadowElement"><span class="element-name">‘feDropShadow’</span></a> element. 280.4499 -<pre class="idl">interface <b>SVGFEDropShadowElement</b> : ::svg::SVGElement, 280.4500 - <a class="idlinterface" href="#InterfaceSVGFilterPrimitiveStandardAttributes">SVGFilterPrimitiveStandardAttributes</a> { 280.4501 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a> <a href="#__svg__SVGFEDropShadowElement__in1">in1</a>; 280.4502 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__dx">dx</a>; 280.4503 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__dy">dy</a>; 280.4504 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__stdDeviationX">stdDeviationX</a>; 280.4505 - readonly attribute <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="#__svg__SVGFEDropShadowElement__stdDeviationY">stdDeviationY</a>; 280.4506 -};</pre><dl class="interface"><dt>Attributes:</dt><dd><dl class="attributes"> 280.4507 -<dt id="__svg__SVGFEDropShadowElement__in1"><b>in1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedString">SVGAnimatedString</a>)</span></dt><dd> </dd> 280.4508 -<dt id="__svg__SVGFEDropShadowElement__dx"><b>dx</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd> 280.4509 -<dt id="__svg__SVGFEDropShadowElement__dy"><b>dy</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd> 280.4510 -<dt id="__svg__SVGFEDropShadowElement__stdDeviationX"><b>stdDeviationX</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd> 280.4511 -<dt id="__svg__SVGFEDropShadowElement__stdDeviationY"><b>stdDeviationY</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt><dd> </dd></dl></dd></dl> 280.4512 - 280.4513 - 280.4514 -<h2 id="references1">32 References</h2> 280.4515 -<h3 id="normref">32.1 Normative References</h3> 280.4516 -<dl><dt id="ref-CSS21"><strong class="normref">[CSS21]</strong></dt><dd><strong>Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</strong>, 280.4517 - Bert Bos, Tantek Çelik, Ian Hickson, HÃ¥kon Wium Lie, eds., 280.4518 - W3C, 23 April 2009, (Candidate Recommendation) </dd><dt id="ref-NVDL"><strong class="normref">[NVDL]</strong></dt><dd><strong>Document Schema Definition Languages (DSDL) — Part 4: 280.4519 - Namespace-based Validation Dispatching Language — NVDL. ISO/IEC FCD 280.4520 - 19757-4</strong>, See <a href="http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/">http://www.asahi-net.or.jp/~eb2m-mrt/dsdl/</a> 280.4521 - </dd><dt id="ref-PORTERDUFF"><strong class="normref">[PORTERDUFF]</strong></dt><dd><strong>Compositing Digital Images</strong>, T. Porter, T. Duff, 280.4522 - SIGGRAPH '84 Conference Proceedings, Association for Computing 280.4523 - Machinery, Volume 18, Number 3, July 1984. </dd><dt id="ref-RNG"><strong class="normref">[RelaxNG]</strong></dt><dd><strong>Document Schema Definition Languages (DSDL) — Part 2: 280.4524 - Regular grammar- based validation — RELAX NG. ISO/IEC FDIS 280.4525 - 19757-2:2002(E)</strong>, J. Clark, <span class="ruby"><span lang="ja" class="rb">æ‘ç”° 真</span> <span class="rp">(</span><span class="rt"><span class="familyname">Murata</span> M.</span><span class="rp">)</span></span>, eds., 12 December 2002. See <a href="http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf">http://www.y12.doe.gov/sgml/sc34/document/0362_files/relaxng-is.pdf</a> 280.4526 - </dd><dt id="ref-Schema2"><strong class="normref">[Schema2]</strong></dt><dd><strong>XML Schema Part 2: Datatypes Second Edition</strong>, P. 280.4527 - Biron, A. Malhotra, eds. W3C, 28 October 2004 (Recommendation). Latest 280.4528 - version available at <a href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>. 280.4529 - See also <a href="http://www.w3.org/TR/2005/NOTE-xml11schema10-20050511/">Processing 280.4530 - XML 1.1 documents with XML Schema 1.0 processors</a>. </dd><dt id="ref-svg11"><strong class="normref">[SVG11]</strong></dt><dd><strong>Scalable Vector Graphics (SVG) 1.1 Specification</strong>, 280.4531 - Dean Jackson editor, W3C, 14 January 2003 (Recommendation). See <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">http://www.w3.org/TR/2003/REC-SVG11-20030114/</a> 280.4532 - </dd><dt id="ref-svgt12"><strong class="normref">[SVGT12]</strong></dt><dd><strong>Scalable Vector Graphics (SVG) Tiny 1.2 Specification</strong>, 280.4533 - Dean Jackson editor, W3C, 22 December 2008 (Recommendation). See <a href="http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/">http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/</a> 280.4534 - </dd></dl> 280.4535 - 280.4536 -<h3 id="informref">32.2 Informative References</h3> 280.4537 -<dl><dt id="ref-html5"><strong class="informref">[HTML5]</strong></dt><dd><strong>HTML5</strong>, Ian Hickson editor, Google, 280.4538 - 10 June 2008 (Working Draft). See <a href="http://www.w3.org/TR/2008/WD-html5-20080610/">http://www.w3.org/TR/2008/WD-html5-20080610/</a> 280.4539 - </dd></dl> 280.4540 - 280.4541 - <h2 id="changes">33 Changes</h2> 280.4542 - <p>For changes since the last published draft, see the public <a href="http://dev.w3.org/cvsweb/SVG/modules/filters/publish/">cvs log</a>.</p> 280.4543 -<script src="style/expanders.js" type="text/javascript"> </script></body></html> 280.4544 \ No newline at end of file
281.1 --- a/publish/SVGFilterPrimer.html Thu Feb 24 10:19:12 2011 +0000 281.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 281.3 @@ -1,323 +0,0 @@ 281.4 -<!-- 281.5 - SVG Filters 1.2, Part 1: Primer 281.6 - 281.7 - $Id$ 281.8 - 281.9 - Note: This document is generated from ../master/SVGFilterPrimer.html. 281.10 - Run "make" from ../master/ to regenerate it. 281.11 - --> 281.12 - 281.13 -<!DOCTYPE html 281.14 - PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 281.15 -<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>SVG Filters 1.2, Part 1: Primer</title><link rel="stylesheet" type="text/css" href="style/svg-style.css"/><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body> 281.16 - 281.17 -<div class="head"> 281.18 - <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 281.19 - <h1 id="pagetitle">SVG Filters 1.2, Part 1: Primer</h1> 281.20 - <h2 id="pagesubtitle">W3C Editor’s Draft <em>07 January 2011</em></h2> 281.21 - <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html">http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/SVGFilterPrimer12/">http://www.w3.org/TR/SVGFilterPrimer12/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/</a></dd><dt>Editor:</dt><dd>Erik Dahlström, Opera Software <<a href="mailto:ed@opera.com">ed@opera.com</a>></dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd></dl> 281.22 - <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p> 281.23 -</div> 281.24 - 281.25 -<hr/> 281.26 - 281.27 -<h2 id="abstract">Abstract </h2> 281.28 - 281.29 -<p> 281.30 -SVG is language for describing vector graphics, however it's typically rendered on raster displays. SVG filter effects is a way of processing the generated raster image before it's displayed. 281.31 -</p> 281.32 -<p>Although originally designed for use in SVG, filter effects are defined in XML and are accessed via a presentation property, and therefore could be used in other environments, such as HTML styled with CSS and XSL:FO. 281.33 -</p> 281.34 -<p> 281.35 -This document introduces the features used by SVG filters. 281.36 -</p> 281.37 - 281.38 -<h2 id="status">Status of This Document </h2> 281.39 - 281.40 -<p><em>This section describes the status of this document at the time of its 281.41 -publication. Other documents may supersede this document. The latest status 281.42 -of this document series is maintained at the W3C. </em> </p> 281.43 - 281.44 -<p>This document is the first public working draft of this specification. </p> 281.45 - 281.46 -<p>This document has been produced by the <a href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of 281.47 -the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a> 281.48 -within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>. 281.49 -</p> 281.50 - 281.51 -<p>We explicitly invite comments on this specification. Please send them to 281.52 -<a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a> (<a href="http://lists.w3.org/Archives/Public/public-svg-filters/">archives</a>). 281.53 -For comments on the core SVG language, use <a href="mailto:www-svg@w3.org">www-svg@w3.org</a>: the public email list for 281.54 -issues related to vector graphics on the Web (<a href="http://lists.w3.org/Archives/Public/www-svg/">archives</a>). Acceptance 281.55 -of the archiving policy is requested automatically upon first post to either 281.56 -list. To subscribe to these lists send an email to <a href="mailto:public-svg-filters-request@w3.org">public-svg-filters-request@w3.org</a> 281.57 -or <a href="mailto:www-svg-request@w3.org">www-svg-request@w3.org</a> with 281.58 -the word subscribe in the subject line. </p> 281.59 - 281.60 -<p>The latest information regarding <a href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 281.61 -related to this document is available on the Web. As of this publication, the 281.62 -SVG Working Group are not aware of any royalty-bearing patents they believe 281.63 -to be essential to SVG. </p> 281.64 -<p>Publication of this document does not imply endorsement by the W3C 281.65 -membership. A list of current W3C Recommendations and other technical 281.66 -documents can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may 281.67 -be updated, replaced, or obsoleted by other documents at any time. It is 281.68 -inappropriate to cite a W3C Working Draft as anything other than a <em>work 281.69 -in progress</em>." </p> 281.70 - 281.71 -<h2 id="howto">How to read this document and give feedback </h2> 281.72 - 281.73 -<p>This is a primer for the SVG Filter specification. It gives guidelines on 281.74 -how to use the SVG Filter specification with SVG 1.2. In many cases the 281.75 -reader will have to be familiar with the <a href="http://www.w3.org/TR/SVG11/">SVG</a> language. </p> 281.76 - 281.77 -<p> 281.78 -This document is informative. 281.79 -</p> 281.80 - 281.81 -<h2 id="toc">Table of Contents</h2> 281.82 - 281.83 -<ul class="toc"> 281.84 -<li><a href="#Introduction">1 Filters in SVG</a></li> 281.85 -<li><a href="#Example">2 An example</a></li> 281.86 -<li><a href="#feGaussianBlurElement">3 Filter primitive <span class="element-name">‘feGaussianBlur’</span></a></li> 281.87 -<li><a href="#references">4 References </a></li></ul> 281.88 - 281.89 -<h2 id="Introduction">1 Filters in SVG</h2> 281.90 - 281.91 -<p>Filter effects are defined by <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> elements. To apply a filter effect 281.92 -to a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">graphics element</span></a> or a <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermGraphicsElement"><span class="svg-term">container element</span></a>, you set the 281.93 -value of the <a href="SVGFilter.html#FilterProperty"><span class="prop-name">‘filter’</span></a> property on the given element such that 281.94 -it references the filter effect.</p> 281.95 - 281.96 -<p>Each <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> element contains a set of 281.97 -<span id="TermFilterPrimitive" class="SVG-Term">filter primitives</span> as its children. Each filter 281.98 -primitive performs a single fundamental graphical operation (e.g., a blur or 281.99 -a lighting effect) on one or more inputs, producing a graphical result. 281.100 -Because most of the filter primitives represent some form of image 281.101 -processing, in most cases the output from a filter primitive is a single RGBA 281.102 -image.</p> 281.103 - 281.104 -<p>The original source graphic or the result from a filter primitive can be 281.105 -used as input into one or more other filter primitives. A common application 281.106 -is to use the source graphic multiple times. For example, a simple filter 281.107 -could replace one graphic by two by adding a black copy of original source 281.108 -graphic offset to create a drop shadow. In effect, there are now two layers 281.109 -of graphics, both with the same original source graphics.</p> 281.110 - 281.111 -<p>When applied to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> such as <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#GElement"><span class="element-name">‘g’</span></a>, the <a href="SVGFilter.html#FilterProperty"><span class="prop-name">‘filter’</span></a> 281.112 -property applies to the contents of the 281.113 -group as a whole. The group's children do not render to the screen directly; 281.114 -instead, the graphics commands necessary to render the children are stored 281.115 -temporarily. Typically, the graphics commands are executed as part of the 281.116 -processing of the referenced <a href="SVGFilter.html#FilterElement"><span class="element-name">‘filter’</span></a> element via use of the keywords 281.117 -<a href="SVGFilter.html#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> or <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>. 281.118 -Filter effects can be applied to <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermContainerElement"><span class="svg-term">container elements</span></a> with no 281.119 -content (e.g., an empty <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#GElement"><span class="element-name">‘g’</span></a> element), in which case the 281.120 -<a href="SVGFilter.html#SourceGraphic"><span class="attr-value">SourceGraphic</span></a> or <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a> consist of a transparent black 281.121 -rectangle that is the size of the 281.122 -<a href="SVGFilter.html#FilterEffectsRegion"><span class="svg-term">filter effects region</span></a>.</p> 281.123 - 281.124 -<p>Sometimes filter primitives result in undefined pixels. For example, 281.125 -filter primitive <a href="SVGFilter.html#feOffsetElement"><span class="element-name">‘feOffset’</span></a> can shift an image down and to the 281.126 -right, leaving undefined pixels at the top and left. In these cases, the 281.127 -undefined pixels are set to transparent black.</p> 281.128 - 281.129 -<h2 id="Example">2 An example</h2> 281.130 - 281.131 -<p>The following shows an example of a filter effect.</p> 281.132 - 281.133 -<p><span class="example-ref">Example filters01</span> - introducing filter 281.134 -effects.</p> 281.135 - 281.136 -<pre class="xml"><?xml version="1.0"?> 281.137 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 281.138 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 281.139 -<svg width="7.5cm" height="5cm" viewBox="0 0 200 120" 281.140 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 281.141 - <title>Example filters01.svg - introducing filter effects</title> 281.142 - <desc>An example which combines multiple filter primitives 281.143 - to produce a 3D lighting effect on a graphic consisting 281.144 - of the string "SVG" sitting on top of oval filled in red 281.145 - and surrounded by an oval outlined in red.</desc> 281.146 - <defs> 281.147 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 281.148 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 281.149 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 281.150 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 281.151 - specularExponent="20" lighting-color="#bbbbbb" 281.152 - result="specOut"> 281.153 - <fePointLight x="-5000" y="-10000" z="20000"/> 281.154 - </feSpecularLighting> 281.155 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 281.156 - <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 281.157 - k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 281.158 - <feMerge> 281.159 - <feMergeNode in="offsetBlur"/> 281.160 - <feMergeNode in="litPaint"/> 281.161 - </feMerge> 281.162 - </filter> 281.163 - </defs> 281.164 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 281.165 - <g filter="url(#MyFilter)" > 281.166 - <g> 281.167 - <path fill="none" stroke="#D90000" stroke-width="10" 281.168 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 281.169 - <path fill="#D90000" 281.170 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 281.171 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 281.172 - <text x="52" y="76">SVG</text> 281.173 - </g> 281.174 - </g> 281.175 - </g> 281.176 -</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/filters01.png"/></td></tr></table><p class="view-as-svg"><a href="examples/filters01.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 281.177 - 281.178 -<p>The filter effect used in the example above is repeated here with 281.179 -reference numbers in the left column before each of the six filter 281.180 -primitives:</p> 281.181 - 281.182 -<table summary="filter example with reference numbers"><tbody><tr><td valign="top"><pre style="color:black"> 281.183 - 281.184 -1 281.185 -2 281.186 -3 281.187 - 281.188 - 281.189 - 281.190 - 281.191 -4 281.192 -5 281.193 - 281.194 -6 281.195 - 281.196 - 281.197 - </pre> 281.198 - </td><td valign="top"><pre><filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 281.199 - <desc>Produces a 3D lighting effect.</desc> 281.200 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 281.201 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 281.202 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 281.203 - specularExponent="20" lighting-color="#bbbbbb" 281.204 - result="specOut"> 281.205 - <fePointLight x="-5000" y="-10000" z="20000"/> 281.206 - </feSpecularLighting> 281.207 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 281.208 - <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 281.209 - k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 281.210 - <feMerge> 281.211 - <feMergeNode in="offsetBlur"/> 281.212 - <feMergeNode in="litPaint"/> 281.213 - </feMerge> 281.214 -</filter></pre> 281.215 - </td></tr></tbody></table> 281.216 - 281.217 -<p>The following pictures show the intermediate image results from each of 281.218 -the six filter elements:</p> 281.219 - 281.220 -<table summary="filter example intermediate results"><tbody><tr><td><p><img width="115" height="70" alt="filters01 - original source graphic" src="examples/filters01-0.png"/><br/> 281.221 - Source graphic</p> 281.222 - </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 1" src="examples/filters01-1.png"/><br/> 281.223 - After filter primitive 1</p> 281.224 - </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 2" src="examples/filters01-2.png"/><br/> 281.225 - After filter primitive 2</p> 281.226 - </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 3" src="examples/filters01-3.png"/><br/> 281.227 - After filter primitive 3</p> 281.228 - </td></tr><tr><td> </td><td> </td><td/><td/><td/><td/><td/></tr><tr><td> </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 4" src="examples/filters01-4.png"/><br/> 281.229 - After filter primitive 4</p> 281.230 - </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 5" src="examples/filters01-5.png"/><br/> 281.231 - After filter primitive 5</p> 281.232 - </td><td> </td><td><p><img width="115" height="70" alt="filters01 - after filter element 6" src="examples/filters01-6.png"/><br/> 281.233 - After filter primitive 6</p> 281.234 - </td></tr></tbody></table> 281.235 -<ol><li>Filter primitive <a href="SVGFilter.html#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> takes input <a href="SVGFilter.html#SourceAlpha"><span class="attr-value">SourceAlpha</span></a>, 281.236 - which is the alpha channel of 281.237 - the source graphic. The result is stored in a temporary buffer named 281.238 - "blur". Note that "blur" is used as input to both filter primitives 2 and 281.239 - 3.</li><li>Filter primitive <a href="SVGFilter.html#feOffsetElement"><span class="element-name">‘feOffset’</span></a> takes buffer "blur", shifts 281.240 - the result in a positive direction in both x and y, and creates a new 281.241 - buffer named "offsetBlur". The effect is that of a drop shadow.</li><li>Filter primitive <a href="SVGFilter.html#feSpecularLightingElement"><span class="element-name">‘feSpecularLighting’</span></a>, uses buffer "blur" 281.242 - as a model of a surface elevation and generates a lighting effect from a 281.243 - single point source. The result is stored in buffer "specOut".</li><li>Filter primitive <a href="SVGFilter.html#feCompositeElement"><span class="element-name">‘feComposite’</span></a> masks out the result of 281.244 - filter primitive 3 by the original source graphics alpha channel so that 281.245 - the intermediate result is no bigger than the original source 281.246 - graphic.</li><li>Filter primitive <a href="SVGFilter.html#feCompositeElement"><span class="element-name">‘feComposite’</span></a> composites the result of 281.247 - the specular lighting with the original source graphic.</li><li>Filter primitive <a href="SVGFilter.html#feMergeElement"><span class="element-name">‘feMerge’</span></a> composites two layers together. 281.248 - The lower layer consists of the drop shadow result from filter primitive 281.249 - 2. The upper layer consists of the specular lighting result from filter 281.250 - primitive 5.</li></ol> 281.251 - 281.252 -<h2 id="feGaussianBlurElement">3 Filter primitive <span class="element-name">‘feGaussianBlur’</span></h2> 281.253 - 281.254 -<p> 281.255 - The <a href="SVGFilter.html#feGaussianBlurElement"><span class="element-name">‘feGaussianBlur’</span></a> filter primitive can be used to create blur effects. 281.256 - Below is an example where the blur is applied only in one direction, which can 281.257 - give better performance in some <a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#TermUserAgent"><span class="svg-term">user agents</span></a>. 281.258 - <pre class="xml"><?xml version="1.0" encoding="UTF-8"?> 281.259 -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"> 281.260 - <defs> 281.261 - <font-face font-family="FORQUE"> 281.262 - <font-face-src> 281.263 - <font-face-uri xlink:href="Forque.svg#FORQUE"/> 281.264 - </font-face-src> 281.265 - </font-face> 281.266 - <style> 281.267 - /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */ 281.268 - text { text-anchor: middle; font: 70px FORQUE, sans-serif; } 281.269 - #bx { filter: url(#blurX) } 281.270 - #by { filter: url(#blurY) } 281.271 - #header { filter: url(#ds); fill: white; text-decoration: underline } 281.272 - #attribution { font-size: 6px } 281.273 - :root { background: green; fill: white } 281.274 - </style> 281.275 - <filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse"> 281.276 - <feGaussianBlur stdDeviation="4 0"> 281.277 - <animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/> 281.278 - </feGaussianBlur> 281.279 - </filter> 281.280 - <filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse"> 281.281 - <feGaussianBlur stdDeviation="0 4"/> 281.282 - </filter> 281.283 - <filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2"> 281.284 - <feGaussianBlur stdDeviation="3"/> 281.285 - <feOffset dx="2" dy="2"/> 281.286 - <feComposite in2="SourceGraphic" operator="in"/> 281.287 - </filter> 281.288 - </defs> 281.289 - 281.290 - <text id="bx" x="40%" y="50%">BlurX</text> 281.291 - <text id="by" x="60%" y="70%">BlurY</text> 281.292 - 281.293 - <text id="header" y="1em" x="50%">Unidirectional blur</text> 281.294 - <text id="attribution" x="100%" y="355">Forque font by Tup Wanders</text> 281.295 -</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feGaussianBlur-stdDeviation-00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feGaussianBlur-stdDeviation-00.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 281.296 -</p> 281.297 - 281.298 -<p>The blur filter can also be used for creating the impression of something being in motion, as in this example. 281.299 - <pre class="xml"><?xml version="1.0" encoding="UTF-8"?> 281.300 -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"> 281.301 - <defs> 281.302 - <filter id="motionblur" filterUnits="userSpaceOnUse"> 281.303 - <feGaussianBlur stdDeviation="5 0"/> 281.304 - </filter> 281.305 - <symbol id="crow" viewBox="0 0 197 190"> 281.306 - <path d="M 72.566789,186.38448 C 71.202549,184.36785 66.167569,175.06788 61.377949,165.71788 C 56.588329,156.36788 52.650829,149.03965 52.627949,149.43293 C 52.605069,149.82621 53.231819,152.07621 54.020719,154.43293 C 56.134749,160.74826 59.591199,174.77158 59.554549,176.88449 C 59.524869,178.59503 59.416409,178.58387 57.935879,176.71788 C 55.201299,173.27137 45.853349,153.1995 41.635529,141.71788 C 37.663679,130.90581 37.605079,130.81611 38.205719,136.46788 C 38.959899,143.56439 37.583169,143.96813 34.795769,137.46788 C 30.104179,126.52701 28.892829,118.89987 27.609109,92.21788 C 26.579279,70.81278 27.181269,61.74079 30.007419,56.07564 C 31.906109,52.26963 32.139109,52.60152 20.824699,42.99574 C 13.205099,36.52681 11.734279,35.68694 7.1852392,35.20738 L 2.0863492,34.66985 L 7.5863492,32.82094 C 10.611349,31.80405 13.481709,30.60949 13.964929,30.16638 C 15.394959,28.85504 9.7899892,24.44625 4.4291292,22.66566 C 1.6943392,21.75731 -0.28374076,20.75464 0.033389242,20.43751 C 0.35051924,20.12038 7.2421692,19.78442 15.348169,19.69093 C 30.881569,19.51179 34.937409,20.13958 47.086349,24.60361 C 50.936349,26.01826 55.713159,27.18519 57.701489,27.19679 C 65.982349,27.2451 71.556499,17.90344 69.368439,7.6442896 C 67.940739,0.95023961 69.214399,0.010319613 79.726899,2.961339e-05 C 85.523249,-0.0056403866 91.246029,0.80265961 98.391539,2.6362896 C 104.0594,4.0907296 112.29453,5.9632196 116.69184,6.7973796 C 134.01279,10.0831 145.35739,15.11226 132.4653,13.78988 C 123.72653,12.89352 125.97985,14.08978 145.54774,20.73521 C 161.35384,26.10311 174.7538,32.06177 176.16916,34.35187 C 176.71697,35.23824 175.39586,35.37836 170.91088,34.90959 C 167.61644,34.56525 164.05819,34.00702 163.00367,33.66907 C 159.44558,32.52878 164.45052,35.98642 172.8528,40.47328 C 181.01437,44.83161 187.58635,49.6841 187.58635,51.35196 C 187.58635,51.95969 185.75677,52.07923 182.83635,51.6623 C 177.61881,50.91742 177.61253,50.9017 184.83635,56.66751 C 189.29595,60.22701 191.15689,64.23449 188.33635,64.20466 C 187.64885,64.19739 183.75408,62.28489 179.6813,59.95466 C 175.60852,57.62443 170.43352,54.66077 168.1813,53.36875 C 160.24766,48.81749 155.25808,48.53915 153.96805,52.57585 C 153.59155,53.75397 153.17397,57.05515 153.04009,59.91181 C 152.72526,66.62933 148.47286,73.16418 144.39537,73.19653 C 141.27521,73.22129 140.06261,74.55103 141.84736,75.99069 C 143.5779,77.38662 163.91595,85.24612 177.08635,89.60855 C 183.13635,91.61249 189.88635,94.27223 192.08634,95.51908 C 196.03044,97.75438 196.08764,97.86951 196.17774,103.75198 C 196.32804,113.55263 191.83044,119.99235 183.2058,122.3255 C 179.71567,123.26966 178.08026,123.11668 172.50059,121.32412 C 165.62068,119.11384 161.59126,116.76556 147.7546,106.9026 C 143.17214,103.63615 137.09714,100.07812 134.2546,98.99585 L 129.08635,97.0281 L 124.58635,102.12335 C 122.11135,104.92574 119.27183,107.21844 118.2763,107.21824 C 117.28078,107.21804 114.25803,108.66351 111.55908,110.4304 C 108.02382,112.74478 106.47184,114.49211 106.00784,116.6804 C 105.6536,118.35101 104.7976,120.39288 104.10563,121.21788 C 102.12794,123.57575 99.866059,134.66955 99.008439,146.21788 C 98.702099,150.34288 97.981489,154.68231 97.407089,155.86106 C 96.606229,157.50454 96.855109,159.32029 98.474539,163.64858 C 99.636029,166.75296 100.58635,170.19015 100.58635,171.28678 C 100.58635,174.34075 97.802589,174.76966 95.009829,172.14599 L 92.535069,169.82107 L 94.060709,174.1452 C 97.730759,184.54723 95.140999,185.2202 87.992199,175.72216 C 84.864209,171.56625 82.136779,168.33411 81.931259,168.53964 C 81.725729,168.74517 82.756989,171.5332 84.222939,174.73527 C 87.061249,180.93494 87.859979,187.23913 85.894459,187.92805 C 85.215209,188.16613 81.485349,182.83448 77.222469,175.53184 C 73.108409,168.48416 69.042179,161.81788 68.186409,160.71788 C 66.764029,158.88956 66.749579,159.06125 68.018079,162.71788 C 68.781269,164.91788 70.803819,170.06041 72.512649,174.14572 C 77.734689,186.63018 77.767619,194.07236 72.566789,186.38448 z"/> 281.307 - </symbol> 281.308 - </defs> 281.309 - 281.310 - <image xlink:href="forest-small.jpg" width="100%" height="100%" filter="url(#motionblur)"/> 281.311 - <use xlink:href="#crow" width="25%" height="25%" x="20%" y="40%" transform="rotate(-12)"/> 281.312 - 281.313 -</svg></pre><table summary="Example "><caption align="bottom">Example </caption><tr><td><img alt="Example " src="examples/feGaussianBlur-motion-00.png"/></td></tr></table><p class="view-as-svg"><a href="examples/feGaussianBlur-motion-00.svg">View this example as SVG (SVG-enabled browsers only)</a></p> 281.314 -</p> 281.315 - 281.316 -<h2 id="references">4 References </h2> 281.317 -<dl><dt id="SVG12Full">SVG12</dt><dd><strong>Scalable Vector Graphics (SVG) 1.2 Specification</strong>, 281.318 - Dean Jackson editor, W3C, 27 October 2004 (Working Draft). See <a href="http://www.w3.org/TR/2004/WD-SVG12-20041027/">http://www.w3.org/TR/2004/WD-SVG12-20041027/</a> 281.319 - </dd><dt id="SVG12Requirements">SVG12Reqs</dt><dd><strong>SVG 1.1/1.2/2.0 Requirements</strong>, Dean Jackson editor, 281.320 - W3C, 22 April 2002 (Working Draft). See <a href="http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/">http://www.w3.org/TR/2002/WD-SVG2Reqs-20020422/</a> 281.321 - </dd><dt id="SVGFilterRequirements">SVGFilterReqs</dt><dd><strong>SVG Filter Requirements</strong>, Erik Dahlström, W3C, 3 May 2007 281.322 - (Working Draft). See <a href="http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/</a> 281.323 - </dd><dt id="SVG12Filter">SVG12Filters</dt><dd><strong>SVG Filters 1.2</strong>, Erik Dahlström editor, W3C, 3 May 2007 (Working Draft). See <a href="http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/</a> 281.324 - </dd></dl> 281.325 - 281.326 -<script src="style/expanders.js" type="text/javascript"> </script></body></html> 281.327 \ No newline at end of file
282.1 --- a/publish/SVGFilterReqs.html Thu Feb 24 10:19:12 2011 +0000 282.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 282.3 @@ -1,211 +0,0 @@ 282.4 -<!-- 282.5 - SVG Filter Requirements 282.6 - 282.7 - $Id$ 282.8 - 282.9 - Note: This document is generated from ../master/SVGFilterReqs.html. 282.10 - Run "make" from ../master/ to regenerate it. 282.11 - --> 282.12 - 282.13 -<!DOCTYPE html 282.14 - PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 282.15 -<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><title>SVG Filter Requirements</title><style type="text/css"> 282.16 - 282.17 - .designgoals { 282.18 - list-style-type: decimal; 282.19 - } 282.20 - 282.21 - .req-level1 { 282.22 - list-style-type: decimal; 282.23 - font-weight: bold; 282.24 - } 282.25 - 282.26 - .req-level2 { 282.27 - list-style-type: decimal; 282.28 - font-weight: normal; 282.29 - } 282.30 - 282.31 - .req-level1 li { 282.32 - margin-top: 1em; 282.33 - } 282.34 - 282.35 - .req-level2 li { 282.36 - margin-top: 0em; 282.37 - } 282.38 - 282.39 - .label { 282.40 - margin-top: 1em; 282.41 - } 282.42 - 282.43 - .comment { 282.44 - background: #ffffaa; 282.45 - } 282.46 - 282.47 - .svgversion { 282.48 - color: #336633; 282.49 - font-weight: bold; 282.50 - } 282.51 - 282.52 - .term { 282.53 - font-weight: bold; 282.54 - color: #aa3333; 282.55 - } 282.56 - 282.57 - .issue { 282.58 - color: #ff0000; 282.59 - } 282.60 - 282.61 - </style><link rel="stylesheet" href="style/base.css"/><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/></head><body> 282.62 - 282.63 -<div class="head"> 282.64 - <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p> 282.65 - <h1 id="pagetitle">SVG Filter Requirements</h1> 282.66 - <h2 id="pagesubtitle">W3C Editor’s Draft <em>07 January 2011</em></h2> 282.67 - <dl><dt>This version:</dt><dd><a href="http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html">http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html</a></dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/SVGFilterReqs12/">http://www.w3.org/TR/SVGFilterReqs12/</a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/</a></dd><dt>Editor:</dt><dd>Erik Dahlström, Opera Software <<a href="mailto:ed@opera.com">ed@opera.com</a>></dd><dt>Authors:</dt><dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd></dl> 282.68 - <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p> 282.69 -</div> 282.70 - 282.71 -<hr/> 282.72 - 282.73 -<h2 id="sec-abstract">Abstract</h2> 282.74 - 282.75 -<p>This document lists the design principles and requirements for the 282.76 -creation of a SVG specification related to filters. </p> 282.77 - 282.78 -<h2 id="sec-status">Status of this Document</h2> 282.79 - 282.80 -<p>This is a W3C Working Draft for review by W3C Members and other interested 282.81 -parties. It is a draft document and may be updated, replaced or made obsolete 282.82 -by other documents at any time. It is inappropriate to use W3C Working Drafts 282.83 -as reference material or to cite them as other than "work in progress". A 282.84 -list of current W3C Recommendations and other technical documents, including 282.85 -Working Drafts and Notes, can be found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a> </p> 282.86 - 282.87 -<p>This is the first release of the SVG Filter Requirements. It is expected 282.88 -that this document will progress through a number of working drafts, 282.89 -including "Last Call", before being published in final form. </p> 282.90 - 282.91 -<p>This document was developed by the <a href="http://www.w3.org/Graphics/SVG/">Scalable Vector Graphics</a> (SVG) 282.92 -working group as part of the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>. The authors 282.93 -of this document are the SVG Working Group members. </p> 282.94 - 282.95 -<p>Feedback on this document should be sent to the email list <a href="mailto:public-svg-filters@w3.org">public-svg-filters@w3.org</a>. This 282.96 -is an archived public list specific to the issues of SVG Filters. Public 282.97 -discussion of issues related to vector graphics on the Web and SVG in 282.98 -particular takes place on the <a href="mailto:www-svg@w3.org">the public 282.99 -mailing list of the SVG Working Group</a> (<a href="http://lists.w3.org/Archives/Public/www-svg/">list archives</a>). To 282.100 -subscribe send an email to <code>www-svg-request@w3.org</code> with the word 282.101 -<code>subscribe</code> in the subject line. </p> 282.102 - 282.103 -<p>The latest information regarding <a rel="disclosures" href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a> 282.104 -related to this document is available on the Web. As of this publication, the 282.105 -SVG Working Group are not aware of any royalty-bearing patents they believe 282.106 -to be essential to SVG. </p> 282.107 - 282.108 -<p><em>This section represents the status of this document at the time this 282.109 -version was published. It will become outdated if and when a new version is 282.110 -published. The latest status is maintained at the W3C. </em> </p> 282.111 - 282.112 -<h2 id="toc">Table of Contents</h2> 282.113 - 282.114 -<ul class="toc"> 282.115 -<li><a href="#sec-introduction">1 Introduction </a></li> 282.116 -<li><a href="#sec-terminology">2 Terminology </a></li> 282.117 -<li><a href="#sec-usage">3 Usage Scenarios </a></li> 282.118 -<li><a href="#sec-features">4 Special Filter Considerations</a></li> 282.119 -<li><a href="#sec-requirements">5 Requirements</a></li> 282.120 -<li><a href="#sec-references">6 References</a></li> 282.121 -<li><a href="#sec-authorlist">7 Author List</a></li></ul> 282.122 - 282.123 -<div class="div1"> 282.124 -<h2 id="sec-introduction">1 Introduction </h2> 282.125 - 282.126 -<p>The 282.127 -<a href="http://www.w3.org/TR/SVG11">SVG specification</a> is a W3C 282.128 -recommendation that describes two-dimensional graphics in XML. </p> 282.129 -</div> 282.130 - 282.131 -<div class="div1"> 282.132 -<h2 id="sec-terminology">2 Terminology </h2> 282.133 - 282.134 -<p>The following key words and phrases used throughout this document are 282.135 -defined here for clarity. The terms Must, Should, and May are used to specify 282.136 -the extent to which an item is a requirement for the SVG working group in 282.137 -defining SVGP. These recommendations should not be mistaken as a guide to 282.138 -implementors. </p> 282.139 -<ol><li><b>'Must'</b> means that the item is an absolute requirement. </li><li><b>'Should'</b> means that there may exist valid reasons in particular 282.140 - circumstances to ignore the item, but the full implications must be 282.141 - understood and carefully weighed before choosing a different course. </li><li><b>'May' </b> means that item will be considered, but further 282.142 - examination is needed to determine if the item should be treated as a 282.143 - requirement. </li><li><b>'SVG' </b> refers to SVG in general without reference to any version 282.144 - or profile. </li><li><b>'SVG 1.0' </b> refers to the original SVG specification. </li><li><b>'SVG 1.1' </b> refers to the modularized version of SVG 1.0. </li><li><b>'SVG 1.2' </b> refers to the next release of SVG and is planned to 282.145 - reference this specification. </li><li><b>'SVGF' </b> refers to SVG Filter, an SVG specification for 282.146 - filtering. </li></ol> 282.147 -</div> 282.148 - 282.149 -<div class="div1"> 282.150 -<h2 id="sec-usage">3 Usage Scenarios </h2> 282.151 - 282.152 -<p>The following usage scenarios illustrate some of the ways in which SVG 282.153 -Filters might be used for various applications. </p> 282.154 - 282.155 -<p><b>Making drop shadows</b> Filtering the input (e.g. text or bitmaps) to 282.156 -produce drop shadows. </p> 282.157 -<p><b>Changing color tone</b> Filtering the input to become e.g. sepia-toned or black and white.</p> 282.158 -</div> 282.159 - 282.160 -<div class="div1"> 282.161 -<h2 id="sec-features">4 Special Filter Considerations</h2> 282.162 - 282.163 -<p><b>Memory and processor requirements</b> A filter effect may require 282.164 -significant memory or processing resources. </p> 282.165 -</div> 282.166 - 282.167 -<div class="div1"> 282.168 -<h2 id="sec-requirements">5 Requirements</h2> 282.169 -<ol class="req-level1"><li>General Requirements 282.170 - <ol class="req-level2"><li>Any valid SVG 1.1 filter <span class="term">must</span> be a valid 282.171 - SVGF filter. </li><li>Conformance criteria for SVGF <span class="term">must</span> be 282.172 - produced. The criteria <span class="term">should</span> be separated 282.173 - into sections relevant to particular application types (eg. SVG 282.174 - files/document fragments, SVG generators, SVG viewers, SVG printers, 282.175 - etc.) </li><li>Software or documents <span class="term">must</span> pass the 282.176 - relevant criteria to be able to claim conformance to the particular 282.177 - application type. </li><li>A conformance test suite <span class="term">must</span> be 282.178 - developed for SVGF. The test suite must be made publicly available. 282.179 - Conformance test suites for other uses of SVGF (e.g. prepress 282.180 - guidelines) <span class="term">may</span> be developed. </li><li>A specification referencing SVGF <span class="term">may</span> 282.181 - declare that 'enableBackground' is not supported when used in 282.182 - conjunction with that specification. If so, then support for 282.183 - 'backgroundAlpha' and 'backgroundImage' <span class="term">must</span> be excluded as well. </li><li>A specification referencing SVGF <span class="term">must</span> 282.184 - declare if animations applies when a 'filter' chain is in its scope. 282.185 - </li></ol> 282.186 - </li><li>Scripting 282.187 - <ol class="req-level2"><li>A dynamic SVGF viewer <span class="term">must</span> support the 282.188 - SVGF scripting feature set. </li></ol> 282.189 - </li><li>Animation 282.190 - <ol class="req-level2"><li>A dynamic SVGF viewer <span class="term">must</span> support animation of all 282.191 - properties listed as animatable. </li></ol> 282.192 - </li></ol> 282.193 -</div> 282.194 - 282.195 -<div class="div1"> 282.196 -<h2 id="sec-references">6 References</h2> 282.197 -<dl class="references"><dt class="label" id="ref-svg">SVG 1.1</dt><dd><em>Scalable Vector Graphics (SVG) 1.1 Specification</em>, Jon 282.198 - Ferraiolo, Jun Fujisawa, Dean Jackson, editors, W3C, 14 January 2003 282.199 - (Recommendation). See <a href="http://www.w3.org/TR/SVG11/">http://www.w3.org/TR/SVG11/</a> </dd><dt class="label" id="ref-svgreqs">SVG 1.1/1.2/2.0 282.200 - Requirements</dt><dd><em>SVG 1.1/1.2/2.0 Requirements Document</em>, Dean Jackson, editor, 282.201 - W3C, 22 April 2002. See <a href="http://www.w3.org/TR/SVG2Reqs/">http://www.w3.org/TR/SVG2Reqs/</a> 282.202 - </dd><dt class="label" id="ref-svgmobilereqs">Mobile SVG Profiles</dt><dd><em>Mobile SVG Profiles: SVG Tiny and SVG Basic</em>, Tolga Capin, 282.203 - editor, W3C, 14 January 2003 (Recommendation). See <a href="http://www.w3.org/TR/SVGMobile">http://www.w3.org/TR/SVGMobile</a> 282.204 - </dd></dl> 282.205 -</div> 282.206 -<hr class="xhtml"/> 282.207 - 282.208 -<h2 id="sec-authorlist">7 Author List</h2> 282.209 - 282.210 -<p>The authors of this specification are the participants of the W3C SVG 282.211 -Working Group.</p> 282.212 -<dl><dt>Authors:</dt><dd><ul><li>Ola Andersson, ZOOMON AB</li><li>Henric Axelsson, Ericsson AB</li><li>Phil Armstrong, Corel Corporation</li><li>Robin Berjon, Expway</li><li>Benoît Bézaire, Corel Corporation</li><li>Craig Brown, Canon Information Systems Research Australia</li><li>Mike Bultrowicz, Savage Software</li><li>Tolga Capin, Nokia Inc.</li><li>Mathias Larsson Carlander, Ericsson AB</li><li>Jakob Cederquist, ZOOMON AB</li><li>Charilaos Christopoulos, Ericsson AB</li><li>Lee Cole, Quark</li><li>Don Cone, America Online Inc.</li><li>Alex Danilo, Canon Information Systems Research Australia</li><li>Thomas DeWeese, Eastman Kodak</li><li>Jon Ferraiolo, Adobe Systems Inc.</li><li>Darryl Fuller, Schema Software</li><li>藤沢 æ·³ (FUJISAWA Jun), Canon</li><li>Rick Graham, BitFlash</li><li>Vincent Hardy, Sun Microsystems Inc.</li><li>端山 貴也 (HAYAMA Takanari), KDDI Research Labs</li><li>Lofton Henderson, OASIS</li><li>石å·é›…康 (ISHIKAWA Masayasu), W3C</li><li>Dean Jackson, W3C/CSIRO (<i>W3C Team Contact</i>)</li><li>Christophe Jolif, ILOG S.A.</li><li>Lee Klosterman, Hewlett-Packard</li><li>å°æž— 亜令 (KOBAYASHI Arei), KDDI Research Labs</li><li>Thierry Kormann, ILOG S.A.</li><li>Yuri Khramov, Schema Software</li><li>Chris Lilley, W3C (<i>Working Group Chair</i>)</li><li>Philip Mansfield, Schema Software</li><li>Peter Mierau, Adobe Systems Inc.</li><li>æ°´å£ å…… (MINAKUCHI Mitsuru), Sharp Corporation</li><li>Luc Minnebo, Agfa-Gevaert N.V.</li><li>å°é‡Ž 修一郎 (ONO Shuichiro), Sharp Corporation</li><li>Antoine Quint, Fuchsia Design (formerly of ILOG)</li><li>相良 毅 (SAGARA Takeshi), KDDI Research Labs</li><li>Brad Sipes, ZOOMON AB</li><li>Peter Sorotokin, Adobe Systems Inc.</li><li>上田 å®é«˜ (UEDA Hirotaka), Sharp Corporation</li><li>Rick Yardumian, Canon Development Americas</li><li>Charles Ying, Openwave Systems, Inc.</li></ul> 282.213 - </dd></dl> 282.214 -<script src="style/expanders.js" type="text/javascript"> </script></body></html> 282.215 \ No newline at end of file
283.1 --- a/publish/examples/Forque.svg Thu Feb 24 10:19:12 2011 +0000 283.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 283.3 @@ -1,109 +0,0 @@ 283.4 -<?xml version="1.0" standalone="no"?> 283.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > 283.6 -<svg xmlns="http://www.w3.org/2000/svg"> 283.7 -<defs> 283.8 -<desc> 283.9 -Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. 283.10 -</desc> 283.11 -<font id="FORQUE" horiz-adv-x="815" > 283.12 -<font-face font-family="FORQUE" font-weight="400" font-stretch="normal" units-per-em="2048" panose-1="2 0 5 0 0 0 0 0 0 0" ascent="1638" descent="-410" x-height="1233" cap-height="1434" bbox="-80 -418 1521 1579" underline-thickness="150" underline-position="-142" unicode-range="U+0020-U+20AC"/> 283.13 -<missing-glyph horiz-adv-x="389" /> 283.14 -<glyph glyph-name=".notdef" horiz-adv-x="389" /> 283.15 -<glyph glyph-name=".null" horiz-adv-x="0" /> 283.16 -<glyph glyph-name="nonmarkingreturn" horiz-adv-x="682" /> 283.17 -<glyph glyph-name="space" unicode=" " horiz-adv-x="389" /> 283.18 -<glyph glyph-bame="tab" unicode="	" horiz-adv-x="389" /> 283.19 -<glyph glyph-bame="uni00A0" unicode=" " horiz-adv-x="389" /> 283.20 -<glyph glyph-name="exclam" unicode="!" horiz-adv-x="417" d="M298 392h-287v1042h287v-1042zM258 242q-42 42 -102 42q-59 0 -101 -42q-43 -42 -43 -101q0 -60 43 -102q42 -42 101 -42q60 0 102 42t42 102q0 59 -42 101z" /> 283.21 -<glyph glyph-name="quotedbl" unicode=""" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 283.22 -<glyph glyph-name="numbersign" unicode="#" horiz-adv-x="1336" d="M596 859l-85 -290h242l86 290h-243zM673 1434h93l-141 -477h242l142 477h92l-141 -477h259l-29 -97h-259l-83 -290h279l-30 -98h-280l-140 -472h-92l139 472h-240l-142 -472h-92l140 472h-273l30 98h271l86 290h-295l29 97h295z" /> 283.23 -<glyph glyph-name="dollar" unicode="$" horiz-adv-x="1014" d="M577 1552v-102q68 -8 141 -35q10 -6 19 -6q25 0 41 45h50l103 -282h-49q-60 134 -168 179q-74 30 -137 39v-540q241 -93 322.5 -183t81.5 -264q0 -197 -119.5 -300t-284.5 -120v-239h-73v237q-188 3 -266 38q-10 6 -19 6q-25 0 -41 -45h-50v331h49q50 -183 152.5 -226 t174.5 -43v635q-214 67 -299 153q-92 91 -92 249q0 166 125 271q105 88 266 102v100h73zM577 655v-610q125 17 211.5 96t86.5 219q0 116 -69 183q-62 59 -229 112zM504 873v520q-119 -5 -199 -72q-86 -73 -86 -182q0 -98 55 -153q52 -54 230 -113z" /> 283.24 -<glyph glyph-name="percent" unicode="%" horiz-adv-x="1610" d="M1026 230q-54 53 -54 128q0 76 54 129q53 53 129 53q75 0 128 -53q54 -53 54 -129q0 -75 -54 -128q-53 -54 -128 -54q-76 0 -129 54zM901 612q-106 -105 -106 -254q0 -148 106 -254q105 -105 254 -105q148 0 253 105q106 106 106 254q0 149 -106 254q-105 105 -253 105 q-149 0 -254 -105zM235 939q-53 53 -53 129q0 75 53 128q54 54 129 54q76 0 129 -54q53 -53 53 -128q0 -76 -53 -129t-129 -53q-75 0 -129 53zM110 1322q-105 -106 -105 -254q0 -149 105 -254t254 -105t254 105t105 254q0 148 -105 254q-105 105 -254 105t-254 -105zM320 0 h-304l1200 1434h305z" /> 283.25 -<glyph glyph-name="ampersand" unicode="&" horiz-adv-x="1138" d="M672 375h-1v-13q0 -30 -21 -51t-51 -21h-237q-30 0 -51 21t-21 51t21 51q21 22 51 22h310v-60zM1041 430v287h-90v214h-286v-214h-307q-29 0 -50 21t-21 51v286q0 30 21 51t50 21q26 0 46 -16l5 -5v0v0l5 -5q-2 2 0 -1q2 -2 4 -5q-1 2 0 0q2 -3 4 -5q-2 2 0 -1q1 -3 3 -6 q-1 0 1 -3l1 -3q0 -1 1 -4q1 -4 1 -3v-5q1 -3 1 -2v-8v-14v-16h287v32q-1 147 -105 252q-104 104 -252 105h-14v0q-145 -6 -245 -109q-101 -105 -101 -250v-288q1 -119 72 -213q-72 -96 -72 -216q0 -148 105 -253t253 -105h236q119 1 214 72q95 -71 214 -72h14v287h-13 q-30 0 -51 21t-21 50v72h90z" /> 283.26 -<glyph glyph-name="asterisk" unicode="*" horiz-adv-x="1024" d="M498 1294q-4 71 -37 130q-37 66 -37 84q0 32 23.5 51.5t62.5 19.5q37 0 61.5 -18t24.5 -47q0 -21 -36 -89q-33 -61 -37 -130q66 25 113 75q51 55 69 61q11 3 21 3q18 0 35 -10q26 -17 38 -53q6 -19 6 -36q0 -15 -4 -28q-10 -30 -38 -38q-6 -2 -19 -2q-25 0 -76 9 q-28 5 -55 5q-41 0 -81 -11q44 -55 105 -83q68 -32 79 -47q13 -18 13 -38q0 -9 -2 -17q-8 -30 -39 -53q-29 -22 -59 -22q-1 0 -1 1q-31 0 -48 23q-12 17 -22 94q-10 67 -47 125q-38 -58 -46 -124q-9 -75 -20 -90q-19 -25 -49 -27h-5q-28 0 -57 21q-30 21 -39 51q-4 10 -4 20 q0 17 11 32q13 17 83 51q61 29 105 82q-41 11 -80 11q-27 0 -53 -5q-54 -11 -78 -11q-9 0 -14 2q-30 9 -41 38q-6 13 -6 29q0 17 6 36q11 35 36 53q17 12 34 12q9 0 18 -3q20 -6 74 -62q47 -49 112 -75z" /> 283.27 -<glyph glyph-name="plus" unicode="+" horiz-adv-x="836" d="M731 573h-215v213h-288v-213h-215v-287h215v-218h288v218h215v287z" /> 283.28 -<glyph glyph-name="comma" unicode="," horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 283.29 -<glyph glyph-name="uni00AD" unicode="-" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" /> 283.30 -<glyph glyph-name="uni00AD" unicode="­" horiz-adv-x="824" d="M10 573h718v-287h-718v287z" /> 283.31 -<glyph glyph-name="period" unicode="." horiz-adv-x="414" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 283.32 -<glyph glyph-name="slash" unicode="/" horiz-adv-x="569" d="M93 -50h-80l541 1484h80z" /> 283.33 -<glyph glyph-name="zero" unicode="0" horiz-adv-x="821" d="M440 329q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 50v778q0 29 21 50t50 21q30 0 51 -21t21 -50v-777zM727 1107q-1 148 -106 253q-105 104 -253 104q-147 0 -252 -104t-106 -251v-784q1 -147 106 -251t252 -104q148 0 253 104q105 105 106 253v0v780v0z" /> 283.34 -<glyph glyph-name="one" unicode="1" horiz-adv-x="476" d="M385 1107q0 148 -105 252q-104 104 -252 105h-14v-287h13q30 0 51 -21t21 -50v-1106h286v1107z" /> 283.35 -<glyph glyph-name="two" unicode="2" horiz-adv-x="818" d="M108 1359q-105 -105 -105 -253v-146h287v146q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-13v0q-144 -5 -245 -109q-100 -104 -101 -248v-360h717v287h-430v72q0 29 21 50t50 21h13v1q144 5 245 108q100 104 101 248v319q0 148 -105 253t-254 105 q-148 0 -253 -105z" /> 283.36 -<glyph glyph-name="three" unicode="3" horiz-adv-x="818" d="M375 1464h-14q-148 -1 -252 -105t-105 -252v0v-8v-140h287v132v0v15v7q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 1 3q2 3 3 6q1 1 0 1q2 2 4 5q1 2 0 1q1 2 4 4q1 2 0 1q2 3 5 5v0q2 3 5 5v0q20 16 45 16h1q29 0 50 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-172v-287h172 q29 0 50 -21t21 -50q0 -30 -21 -51t-50 -21h-359v-287h359q148 0 253 105t105 254q0 119 -72 215q72 94 72 213v319q0 145 -101 249q-100 104 -245 109v0z" /> 283.37 -<glyph glyph-name="four" unicode="4" horiz-adv-x="877" d="M323 575l113 244v-244h-113zM836 575h-113v859h-287l-430 -859v0v-286h430v-289h287v289h113v286z" /> 283.38 -<glyph glyph-name="five" unicode="5" horiz-adv-x="818" d="M727 1147v287h-717v-717h358q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v151h-287v-151q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v143h430z" /> 283.39 -<glyph glyph-name="six" unicode="6" d="M369 717q30 0 51 -21t21 -51v-316q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v388h71zM298 1076q0 29 21 50t50 21h359v287h-360q-148 -1 -252 -105t-105 -252v-748q0 -149 105 -254t253 -105q149 0 254 105t105 254v318q-1 147 -105 252q-104 104 -252 105h-73v72z" /> 283.40 -<glyph glyph-name="seven" unicode="7" horiz-adv-x="762" d="M23 1434v-287h335l-351 -1147h297l438 1434h-719z" /> 283.41 -<glyph glyph-name="eight" unicode="8" d="M298 1106q0 29 21 50t50 21q30 0 51 -21t21 -50v-317q0 -30 -21 -51t-50 -21h-1q-29 0 -50 21t-21 51v317zM319 278q-21 21 -21 80q0 30 21 51t50 21h1q29 0 50 -21t21 -50q0 -60 -21 -81t-51 -21q-29 0 -50 21zM11 314q6 -144 110 -244t248 -100q145 0 249 100t110 244 v0v59v0q-5 112 -72 201q72 95 72 215v317q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-317q0 -120 72 -215q-67 -89 -72 -201v0v-59v0z" /> 283.42 -<glyph glyph-name="nine" unicode="9" d="M366 717q-30 0 -51 21t-21 51v317q0 29 21 50t50 21q30 0 51 -21t21 -50v-389h-71zM437 359q0 -30 -21 -51t-50 -21h-359v-287h360q148 1 252 105t105 252v749q0 148 -105 253t-254 105q-148 0 -253 -105t-105 -253v-319q1 -147 105 -252q104 -104 252 -105h73v-71z" /> 283.43 -<glyph glyph-name="colon" unicode=":" horiz-adv-x="407" d="M251 881q-42 42 -101 42q-60 0 -102 -42t-42 -102q0 -59 42 -101t102 -42q59 0 101 42t42 101q0 60 -42 102zM251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 283.44 -<glyph glyph-name="uni037E" unicode=";" horiz-adv-x="404" d="M257 242q42 -42 42 -101q0 -19 -5 -38q-20 -76 -73 -132q-55 -58 -132 -80q-37 -11 -76 -12q74 44 112 121q-49 11 -81 50q-32 40 -32 91q0 59 42 101t102 42q59 0 101 -42zM257 881q42 -42 42 -102q0 -59 -42 -101t-101 -42q-60 0 -102 42t-42 101q0 60 42 102t102 42 q59 0 101 -42z" /> 283.45 -<glyph glyph-name="equal" unicode="=" horiz-adv-x="833" d="M10 353h718v-287h-718v287zM10 763h718v-287h-718v287z" /> 283.46 -<glyph glyph-name="question" unicode="?" horiz-adv-x="748" d="M264 242q-42 -42 -42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101t-101 42q-60 0 -102 -42zM377 1464l-14 -1q-148 0 -253 -105q-104 -104 -105 -252v-148h287v146q0 4 1 8q0 -1 0 2q1 4 1 5q0 -1 0 3q1 3 1 4l2 3l1 3q1 3 3 6q1 2 0 1q1 2 3 5v0l1 1 q1 2 3 4q1 2 1 1q2 3 4 5v0l5 5q20 16 46 16v0q30 0 51 -21t21 -51v-221q0 -29 -21 -50t-51 -21h-144v-420h288v162q96 42 155 130q60 90 60 198v222q0 146 -101 250t-245 109v1z" /> 283.47 -<glyph glyph-name="A" unicode="A" d="M287 574v531q0 30 21 51t51 21q29 0 50 -21t21 -51v-531h-143zM105 1359q-105 -105 -105 -254v-1105h287v287h143v-287h287v1105q0 149 -105 254t-253 105q-149 0 -254 -105z" /> 283.48 -<glyph glyph-name="B" unicode="B" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 1147h71h2q29 0 50 -21q20 -21 20 -50v-287q0 -30 -21 -51t-50 -21h-72v430zM717 784v9v0v285q-1 148 -106 252t-252 104h-359v-1434h361q146 1 250 104q104 104 106 250v0v9v0 q-2 117 -72 211q70 93 72 210v0z" /> 283.49 -<glyph glyph-name="C" unicode="C" horiz-adv-x="796" d="M430 472v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v777q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-784v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" /> 283.50 -<glyph glyph-name="D" unicode="D" d="M430 359q0 -30 -21 -51t-50 -21h-72v860h72q29 0 50 -21t21 -50v-717zM717 1077q-1 148 -105 252t-252 105h-360v-1434h360q148 1 252 105t105 252v720z" /> 283.51 -<glyph glyph-name="E" unicode="E" horiz-adv-x="721" d="M632 1147v287h-631v-1435h631v287h-344v144h287v287h-287v430h344z" /> 283.52 -<glyph glyph-name="F" unicode="F" horiz-adv-x="712" d="M634 1147v287h-631v-1435h287v431h287v287h-287v430h344z" /> 283.53 -<glyph glyph-name="G" unicode="G" horiz-adv-x="818" d="M376 1464h-15q-148 -1 -252 -105q-104 -105 -105 -252v-770q1 -148 105 -253q104 -104 252 -105h15l345 16v702h-355v-287h68v-144h-71q-30 0 -51 21t-21 51v767v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" /> 283.54 -<glyph glyph-name="H" unicode="H" horiz-adv-x="818" d="M428 1434v-869h-143v869h-287v-1435h287v279h143v-279h287v1435h-287z" /> 283.55 -<glyph glyph-name="I" unicode="I" horiz-adv-x="389" d="M285 -1h-287v1435h287v-1435z" /> 283.56 -<glyph glyph-name="J" unicode="J" horiz-adv-x="398" d="M5 1434v-1440q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1442h-287z" /> 283.57 -<glyph glyph-name="K" unicode="K" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 647h-287l-91 -646q-4 -29 -28 -50t-54 -21h-41v717h-287v-1435h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" /> 283.58 -<glyph glyph-name="L" unicode="L" horiz-adv-x="700" d="M294 286v1148h-287v-1435h631v287h-344z" /> 283.59 -<glyph glyph-name="M" unicode="M" horiz-adv-x="1253" d="M1152 1105q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-1105h286v1104q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-1104 h286v1104q0 30 21 51t51 21q29 0 50 -21t21 -51v-1104h287v1104z" /> 283.60 -<glyph glyph-name="N" unicode="N" horiz-adv-x="818" d="M438 1433v-343l-144 336v7h-286v-1432h286v841l144 -336v-505h286v1432h-286z" /> 283.61 -<glyph glyph-name="O" unicode="O" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v776q0 30 21 51t51 21t51 -21q20 -21 21 -51v-776zM728 1107q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-783q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v780z" /> 283.62 -<glyph glyph-name="P" unicode="P" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v430h72q30 0 51 -21t21 -51v-286zM726 1076q-1 148 -105 252t-252 105h-359v-1432h286v430h73q148 0 252 104q104 105 105 252v289z" /> 283.63 -<glyph glyph-name="Q" unicode="Q" horiz-adv-x="812" d="M289 1105q0 30 21 51t51 21t51 -21t21 -51v-776q0 -30 -21 -51t-51 -21t-51 21t-21 51v776zM719 1107q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-783v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v780z" /> 283.64 -<glyph glyph-name="R" unicode="R" horiz-adv-x="812" d="M291 716v430h71q30 0 51 -21t21 -50v-287q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v289q0 148 -104 252q-105 104 -252 105h-360v-1433h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" /> 283.65 -<glyph glyph-name="S" unicode="S" horiz-adv-x="799" d="M379 1463h-14q-148 -1 -252 -105t-105 -252v-319q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v317v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" /> 283.66 -<glyph glyph-name="T" unicode="T" horiz-adv-x="724" d="M693 1433h-716v-287h213v-1146h286v1146h217v287z" /> 283.67 -<glyph glyph-name="U" unicode="U" horiz-adv-x="821" d="M436 1433v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v1105h-286z" /> 283.68 -<glyph glyph-name="V" unicode="V" horiz-adv-x="939" d="M575 1433l-125 -944l-164 944h-287l276 -1433h333l279 1433h-312z" /> 283.69 -<glyph glyph-name="W" unicode="W" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v1106h-286v-1105q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v1105h-286v-1105q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v1105h-287v-1105z" /> 283.70 -<glyph glyph-name="X" unicode="X" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 646h-286l-91 -645q-8 -55 -63 -69q-56 14 -64 69l-90 645h-287l91 -646v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" /> 283.71 -<glyph glyph-name="Y" unicode="Y" horiz-adv-x="812" d="M443 1433v-645q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v645h-287v-645q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v645h-286z" /> 283.72 -<glyph glyph-name="Z" unicode="Z" horiz-adv-x="793" d="M735 1433h-728v-287h354l-350 -1146h716v287h-342z" /> 283.73 -<glyph glyph-name="a" unicode="a" d="M287 574v331q0 30 21 51t51 21q29 0 50 -21t21 -51v-331h-143zM105 1159q-105 -105 -105 -254v-905h287v287h143v-287h287v905q0 149 -105 254t-253 105q-149 0 -254 -105z" /> 283.74 -<glyph glyph-name="b" unicode="b" d="M409 308q-21 -21 -50 -21h-72v143h72q29 0 50 -21t21 -50q0 -30 -21 -51zM287 947h71h2q29 0 50 -21q20 -21 20 -50v-87q0 -30 -21 -51t-50 -21h-72v230zM717 784v9v0v85q-1 148 -106 252t-252 104h-359v-1234h361q146 1 250 104q104 104 106 250v0v9v0q-2 117 -72 211 q70 93 72 210v0z" /> 283.75 -<glyph glyph-name="c" unicode="c" horiz-adv-x="796" d="M430 462v-143q0 -30 -21 -51t-50 -21q-30 0 -51 21t-21 51v597q0 29 21 50t51 21q29 0 50 -21t21 -50v-144h287v145q-1 148 -106 253q-105 104 -252 104q-148 0 -253 -104t-106 -251v0v-604v0q1 -147 106 -251t253 -104q147 0 252 104q105 105 106 253v145h-287z" /> 283.76 -<glyph glyph-name="d" unicode="d" d="M430 359q0 -30 -21 -51t-50 -21h-72v660h72q29 0 50 -21t21 -50v-517zM717 877q-1 148 -105 252t-252 105h-360v-1234h360q148 1 252 105t105 252v520z" /> 283.77 -<glyph glyph-name="e" unicode="e" horiz-adv-x="721" d="M632 947v287h-631v-1235h631v287h-344v144h287v287h-287v230h344z" /> 283.78 -<glyph glyph-name="f" unicode="f" horiz-adv-x="712" d="M634 947v287h-631v-1235h287v431h287v287h-287v230h344z" /> 283.79 -<glyph glyph-name="g" unicode="g" horiz-adv-x="818" d="M376 1264h-15q-148 -1 -252 -105q-104 -105 -105 -252v-580q1 -148 105 -253q104 -104 252 -105h15l345 16v672h-355v-287h68v-114h-71q-30 0 -51 21t-21 51v577v8q0 -1 1 2v5q0 -1 1 3q1 3 1 4l1 3q2 4 2 3l2 6l1 1q1 2 3 4v1l4 6l3.5 3.5l1.5 1.5q2 3 5 5q20 16 46 16 q29 0 50 -21t21 -51v-146h287v146q0 145 -101 250q-100 104 -244 109v0z" /> 283.80 -<glyph glyph-name="h" unicode="h" horiz-adv-x="818" d="M428 1234v-669h-143v669h-287v-1235h287v279h143v-279h287v1235h-287z" /> 283.81 -<glyph glyph-name="i" unicode="i" horiz-adv-x="389" d="M285 -1h-287v1235h287v-1235z" /> 283.82 -<glyph glyph-name="j" unicode="j" horiz-adv-x="398" d="M5 1234v-1240q0 -30 -21 -51t-51 -21h-13v-287h14q148 1 252 105q105 105 106 252v1242h-287z" /> 283.83 -<glyph glyph-name="k" unicode="k" horiz-adv-x="855" d="M717 359v0q-18 127 -112 226q76 91 92 202l91 447h-287l-91 -446q-4 -29 -28 -50t-54 -21h-41v517h-287v-1235h287v431h62q29 0 53 -21t28 -51l2 -13l49 -346h287l-50 353z" /> 283.84 -<glyph glyph-name="l" unicode="l" horiz-adv-x="700" d="M294 286v948h-287v-1235h631v287h-344z" /> 283.85 -<glyph glyph-name="m" unicode="m" horiz-adv-x="1253" d="M1152 905q0 148 -105 253t-253 105q-120 0 -215 -72q-90 68 -202 72v0h-14q-148 -1 -252 -105t-105 -252v-905h286v904q0 4 1 7v3q1 3 1 4l1 3q0 4 1 4l1 4l1 3q1 2 3 5q0 2 0 1q1 2 3 5q3 4 1 1q1 2 3 5h1v1l4 4v1q3 2 5 4q20 17 46 17v0q30 0 51 -21t21 -51v-904h286 v904q0 30 21 51t51 21q29 0 50 -21t21 -51v-904h287v904z" /> 283.86 -<glyph glyph-name="n" unicode="n" horiz-adv-x="818" d="M438 1233v-343l-144 336v7h-286v-1232h286v641l144 -336v-305h286v1232h-286z" /> 283.87 -<glyph glyph-name="o" unicode="o" d="M442 329q0 -30 -21 -51t-51 -21t-51 21t-21 51v576q0 30 21 51t51 21t51 -21q20 -21 21 -51v-576zM728 907q-1 148 -106 252q-104 104 -252 104q-147 0 -252 -104q-105 -103 -106 -251v-583q1 -147 106 -250q105 -104 252 -104q148 0 252 104q105 104 106 252v580z" /> 283.88 -<glyph glyph-name="p" unicode="p" horiz-adv-x="805" d="M440 789q0 -30 -21 -51t-51 -21h-72v230h72q30 0 51 -21t21 -51v-86zM726 876q-1 148 -105 252t-252 105h-359v-1232h286v430h73q148 0 252 104q104 105 105 252v89z" /> 283.89 -<glyph glyph-name="q" unicode="q" horiz-adv-x="812" d="M289 905q0 30 21 51t51 21t51 -21t21 -51v-576q0 -30 -21 -51t-51 -21t-51 21t-21 51v576zM719 907q-1 148 -105 252q-105 104 -253 104q-147 0 -252 -104q-105 -103 -106 -251v0v-583v0q1 -108 62 -198q60 -87 157 -128q8 -142 111 -240q103 -99 245 -99h15v286h-13 q-26 0 -46 17q-19 16 -24 40q93 43 150 129q58 89 59 195v580z" /> 283.90 -<glyph glyph-name="r" unicode="r" horiz-adv-x="812" d="M291 716v230h71q30 0 51 -21t21 -50v-87q0 -30 -21 -51q-21 -20 -51 -21h-71zM720 352l-1 8q-15 106 -86 194q87 100 87 233v89q0 148 -104 252q-105 104 -252 105h-360v-1233h287v430h60q29 0 53 -21t29 -51l1 -13l49 -345h286z" /> 283.91 -<glyph glyph-name="s" unicode="s" horiz-adv-x="799" d="M379 1263h-14q-148 -1 -252 -105t-105 -252v-119q1 -144 101 -248q100 -103 243 -109v0h14q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21h-358v-287h358q149 0 254 105q104 105 104 253q0 145 -100 249q-101 104 -245 109v0l-13 1q-29 0 -50 20q-21 21 -21 51v117v7v3 q1 3 1 4l1 3l1 4l1 4l1 3q1 2 3 5q1 2 0 1q1 2 3 5h1v1q1 2 3 5h1v0q2 3 4 5h1q2 3 5 5q19 16 45 16v0q30 0 51 -21t21 -50v-147h286v147q0 145 -100 249q-101 104 -245 109v0z" /> 283.92 -<glyph glyph-name="t" unicode="t" horiz-adv-x="724" d="M693 1233h-716v-287h213v-946h286v946h217v287z" /> 283.93 -<glyph glyph-name="u" unicode="u" horiz-adv-x="821" d="M436 1233v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905q0 -148 105 -253t253 -105q149 0 254 105q104 105 104 253v905h-286z" /> 283.94 -<glyph glyph-name="v" unicode="v" horiz-adv-x="939" d="M575 1233l-125 -744l-164 744h-287l276 -1233h333l279 1233h-312z" /> 283.95 -<glyph glyph-name="w" unicode="w" horiz-adv-x="1256" d="M9 328q0 -148 105 -253t253 -105q120 0 215 72q90 -68 202 -72v0h15q147 1 251 105q105 104 105 252v906h-286v-905q0 -3 -1 -7q1 1 0 -3q0 -3 -1 -4q1 1 0 -3l-1 -4l-2 -4l-1 -3q-1 -2 -3 -5q0 -2 0 -1q-1 -2 -3 -5q-1 -2 0 -1q-2 -2 -4 -5q-2 -2 -1 0q-2 -3 -4 -5v0 l-5 -5q-20 -16 -46 -16v0q-30 0 -51 21q-20 21 -21 50v905h-286v-905q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50v905h-287v-905z" /> 283.96 -<glyph glyph-name="x" unicode="x" horiz-adv-x="958" d="M818 360q-18 126 -112 224q76 92 92 203l91 446h-286l-91 -445q-8 -55 -63 -69q-56 14 -64 69l-90 445h-287l91 -446v0q16 -111 92 -203q-94 -98 -112 -224v0l-1 -8l-50 -352h287l48 345l2 13q4 30 28 51t54 21h3q30 0 54 -21t28 -51l2 -13l48 -345h287l-50 352z" /> 283.97 -<glyph glyph-name="y" unicode="y" horiz-adv-x="812" d="M443 1233v-445q0 -30 -21 -51t-51 -21q-29 0 -50 21t-21 51v445h-287v-445q0 -109 61 -200q59 -88 157 -129v-459h286v461q96 43 153 130q59 89 59 197v445h-286z" /> 283.98 -<glyph glyph-name="z" unicode="z" horiz-adv-x="793" d="M735 1233h-728v-287h314l-310 -946h716v287h-302z" /> 283.99 -<glyph glyph-name="bar" unicode="|" horiz-adv-x="1014" d="M427 1577h160v-1995h-160v1995z" /> 283.100 -<glyph glyph-name="brokenbar" unicode="¦" horiz-adv-x="1014" d="M427 371h160v-789h-160v789zM427 1578h160v-789h-160v789z" /> 283.101 -<glyph glyph-name="multiply" unicode="×" horiz-adv-x="908" d="M810 324l-167 167l165 165l-222 222l-165 -165l-167 167l-222 -222l167 -167l-169 -169l222 -222l169 169l167 -167z" /> 283.102 -<glyph glyph-name="quoteleft" unicode="‘" horiz-adv-x="401" d="M52 1198q42 -42 102 -42q59 0 101 42t42 101q0 51 -32 91q-32 39 -81 50q39 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" /> 283.103 -<glyph glyph-name="quoteright" unicode="’" horiz-adv-x="404" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 283.104 -<glyph glyph-name="quotesinglbase" unicode="‚" horiz-adv-x="420" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 283.105 -<glyph glyph-name="quotedblleft" unicode="“" horiz-adv-x="734" d="M392 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101zM52 1198q42 -42 101 -42q60 0 102 42t42 101q0 51 -32 91q-32 39 -81 50q38 77 112 121 q-39 -1 -76 -12q-77 -22 -132 -80q-54 -57 -73 -132q-5 -19 -5 -38q0 -59 42 -101z" /> 283.106 -<glyph glyph-name="quotedblright" unicode="”" horiz-adv-x="706" d="M257 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 1392q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 283.107 -<glyph glyph-name="quotedblbase" unicode="„" horiz-adv-x="737" d="M267 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101zM597 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -51 32 -91q32 -39 81 -50q-38 -77 -112 -121 q39 1 76 12q77 22 132 80q54 57 73 132q5 19 5 38q0 59 -42 101z" /> 283.108 -<glyph glyph-name="bullet" unicode="•" horiz-adv-x="1024" d="M216 718q0 123 87 209t210 86q122 0 208.5 -86.5t86.5 -208.5t-87.5 -209.5t-209.5 -87.5q-123 0 -209 87t-86 210z" /> 283.109 -<glyph glyph-name="ellipsis" unicode="…" horiz-adv-x="1213" d="M251 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM651 242q-42 42 -101 42q-60 0 -102 -42t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101zM1051 242q-42 42 -101 42q-60 0 -102 -42 t-42 -101q0 -60 42 -102t102 -42q59 0 101 42t42 102q0 59 -42 101z" /> 283.110 -<glyph glyph-name="Euro" unicode="€" horiz-adv-x="939" d="M833 574v287h-445v214q0 30 21 51t51 21q29 0 50 -21t21 -51v-143h287v145q-1 148 -106 252q-105 105 -252 105q-148 0 -253 -104q-104 -104 -106 -251v-218h-101v-287h101v-219q2 -147 106 -251q105 -104 253 -104q147 0 252 104q105 105 106 252v146h-287v-144 q0 -29 -21 -50t-50 -21q-30 0 -51 21t-21 50v216h445z" /> 283.111 -</font> 283.112 -</defs></svg>
284.1 Binary file publish/examples/enable-background-01.png has changed
285.1 --- a/publish/examples/enable-background-01.svg Thu Feb 24 10:19:12 2011 +0000 285.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 285.3 @@ -1,89 +0,0 @@ 285.4 -<?xml version="1.0" standalone="no"?> 285.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 285.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 285.7 -<svg width="13.5cm" height="2.7cm" viewBox="0 0 1350 270" 285.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 285.9 - <title>Example enable-background01</title> 285.10 - <desc>This test case shows five pictures which illustrate the rules 285.11 - for background image processing.</desc> 285.12 - 285.13 - <defs> 285.14 - <filter id="ShiftBGAndBlur" 285.15 - filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 285.16 - <desc> 285.17 - This filter discards the SourceGraphic, if any, and just produces 285.18 - a result consisting of the BackgroundImage shifted down 125 units 285.19 - and then blurred. 285.20 - </desc> 285.21 - <feOffset in="BackgroundImage" dx="0" dy="125" /> 285.22 - <feGaussianBlur stdDeviation="8" /> 285.23 - </filter> 285.24 - <filter id="ShiftBGAndBlur_WithSourceGraphic" 285.25 - filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400"> 285.26 - <desc> 285.27 - This filter takes the BackgroundImage, shifts it down 125 units, blurs it, 285.28 - and then renders the SourceGraphic on top of the shifted/blurred background. 285.29 - </desc> 285.30 - <feOffset in="BackgroundImage" dx="0" dy="125" /> 285.31 - <feGaussianBlur stdDeviation="8" result="blur" /> 285.32 - <feMerge> 285.33 - <feMergeNode in="blur"/> 285.34 - <feMergeNode in="SourceGraphic"/> 285.35 - </feMerge> 285.36 - </filter> 285.37 - </defs> 285.38 - 285.39 - <g transform="translate(0,0)"> 285.40 - <desc>The first picture is our reference graphic without filters.</desc> 285.41 - <rect x="25" y="25" width="100" height="100" fill="red"/> 285.42 - <g opacity=".5"> 285.43 - <circle cx="125" cy="75" r="45" fill="green"/> 285.44 - <polygon points="160,25 160,125 240,75" fill="blue"/> 285.45 - </g> 285.46 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 285.47 - </g> 285.48 - 285.49 - <g enable-background="new" transform="translate(270,0)"> 285.50 - <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc> 285.51 - <rect x="25" y="25" width="100" height="100" fill="red"/> 285.52 - <g opacity=".5"> 285.53 - <circle cx="125" cy="75" r="45" fill="green"/> 285.54 - <polygon points="160,25 160,125 240,75" fill="blue"/> 285.55 - </g> 285.56 - <g filter="url(#ShiftBGAndBlur)"/> 285.57 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 285.58 - </g> 285.59 - 285.60 - <g enable-background="new" transform="translate(540,0)"> 285.61 - <desc>The third invokes ShiftBGAndBlur on the inner group.</desc> 285.62 - <rect x="25" y="25" width="100" height="100" fill="red"/> 285.63 - <g filter="url(#ShiftBGAndBlur)" opacity=".5"> 285.64 - <circle cx="125" cy="75" r="45" fill="green"/> 285.65 - <polygon points="160,25 160,125 240,75" fill="blue"/> 285.66 - </g> 285.67 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 285.68 - </g> 285.69 - 285.70 - <g enable-background="new" transform="translate(810,0)"> 285.71 - <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc> 285.72 - <rect x="25" y="25" width="100" height="100" fill="red"/> 285.73 - <g opacity=".5"> 285.74 - <circle cx="125" cy="75" r="45" fill="green"/> 285.75 - <polygon points="160,25 160,125 240,75" fill="blue" 285.76 - filter="url(#ShiftBGAndBlur)"/> 285.77 - </g> 285.78 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 285.79 - </g> 285.80 - 285.81 - <g enable-background="new" transform="translate(1080,0)"> 285.82 - <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc> 285.83 - <rect x="25" y="25" width="100" height="100" fill="red"/> 285.84 - <g opacity=".5"> 285.85 - <circle cx="125" cy="75" r="45" fill="green"/> 285.86 - <polygon points="160,25 160,125 240,75" fill="blue" 285.87 - filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/> 285.88 - </g> 285.89 - <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/> 285.90 - </g> 285.91 -</svg> 285.92 -
286.1 Binary file publish/examples/feBlend.png has changed
287.1 --- a/publish/examples/feBlend.svg Thu Feb 24 10:19:12 2011 +0000 287.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 287.3 @@ -1,46 +0,0 @@ 287.4 -<?xml version="1.0"?> 287.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 287.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 287.7 -<svg width="5cm" height="5cm" viewBox="0 0 500 500" 287.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 287.9 - <title>Example feBlend - Examples of feBlend modes</title> 287.10 - <desc>Five text strings blended into a gradient, 287.11 - with one text string for each of the five feBlend modes.</desc> 287.12 - <defs> 287.13 - <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 287.14 - x1="100" y1="0" x2="300" y2="0"> 287.15 - <stop offset="0" stop-color="#000000" /> 287.16 - <stop offset=".33" stop-color="#ffffff" /> 287.17 - <stop offset=".67" stop-color="#ff0000" /> 287.18 - <stop offset="1" stop-color="#808080" /> 287.19 - </linearGradient> 287.20 - <filter id="Normal"> 287.21 - <feBlend mode="normal" in2="BackgroundImage" in="SourceGraphic"/> 287.22 - </filter> 287.23 - <filter id="Multiply"> 287.24 - <feBlend mode="multiply" in2="BackgroundImage" in="SourceGraphic"/> 287.25 - </filter> 287.26 - <filter id="Screen"> 287.27 - <feBlend mode="screen" in2="BackgroundImage" in="SourceGraphic"/> 287.28 - </filter> 287.29 - <filter id="Darken"> 287.30 - <feBlend mode="darken" in2="BackgroundImage" in="SourceGraphic"/> 287.31 - </filter> 287.32 - <filter id="Lighten"> 287.33 - <feBlend mode="lighten" in2="BackgroundImage" in="SourceGraphic"/> 287.34 - </filter> 287.35 - </defs> 287.36 - <rect fill="none" stroke="blue" 287.37 - x="1" y="1" width="498" height="498"/> 287.38 - <g enable-background="new" > 287.39 - <rect x="100" y="20" width="300" height="460" fill="url(#MyGradient)" /> 287.40 - <g font-family="Verdana" font-size="75" fill="#888888" fill-opacity=".6" > 287.41 - <text x="50" y="90" filter="url(#Normal)" >Normal</text> 287.42 - <text x="50" y="180" filter="url(#Multiply)" >Multiply</text> 287.43 - <text x="50" y="270" filter="url(#Screen)" >Screen</text> 287.44 - <text x="50" y="360" filter="url(#Darken)" >Darken</text> 287.45 - <text x="50" y="450" filter="url(#Lighten)" >Lighten</text> 287.46 - </g> 287.47 - </g> 287.48 -</svg> 287.49 -
288.1 Binary file publish/examples/feColorMatrix.png has changed
289.1 --- a/publish/examples/feColorMatrix.svg Thu Feb 24 10:19:12 2011 +0000 289.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 289.3 @@ -1,55 +0,0 @@ 289.4 -<?xml version="1.0"?> 289.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 289.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 289.7 -<svg width="8cm" height="5cm" viewBox="0 0 800 500" 289.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 289.9 - <title>Example feColorMatrix - Examples of feColorMatrix operations</title> 289.10 - <desc>Five text strings showing the effects of feColorMatrix: 289.11 - an unfiltered text string acting as a reference, 289.12 - use of the feColorMatrix matrix option to convert to grayscale, 289.13 - use of the feColorMatrix saturate option, 289.14 - use of the feColorMatrix hueRotate option, 289.15 - and use of the feColorMatrix luminanceToAlpha option.</desc> 289.16 - <defs> 289.17 - <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 289.18 - x1="100" y1="0" x2="500" y2="0"> 289.19 - <stop offset="0" stop-color="#ff00ff" /> 289.20 - <stop offset=".33" stop-color="#88ff88" /> 289.21 - <stop offset=".67" stop-color="#2020ff" /> 289.22 - <stop offset="1" stop-color="#d00000" /> 289.23 - </linearGradient> 289.24 - <filter id="Matrix" filterUnits="objectBoundingBox" 289.25 - x="0%" y="0%" width="100%" height="100%"> 289.26 - <feColorMatrix type="matrix" in="SourceGraphic" 289.27 - values=".33 .33 .33 0 0 289.28 - .33 .33 .33 0 0 289.29 - .33 .33 .33 0 0 289.30 - .33 .33 .33 0 0"/> 289.31 - </filter> 289.32 - <filter id="Saturate40" filterUnits="objectBoundingBox" 289.33 - x="0%" y="0%" width="100%" height="100%"> 289.34 - <feColorMatrix type="saturate" in="SourceGraphic" values="40%"/> 289.35 - </filter> 289.36 - <filter id="HueRotate90" filterUnits="objectBoundingBox" 289.37 - x="0%" y="0%" width="100%" height="100%"> 289.38 - <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/> 289.39 - </filter> 289.40 - <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" 289.41 - x="0%" y="0%" width="100%" height="100%"> 289.42 - <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/> 289.43 - <feComposite in="SourceGraphic" in2="a" operator="in" /> 289.44 - </filter> 289.45 - </defs> 289.46 - <rect fill="none" stroke="blue" 289.47 - x="1" y="1" width="798" height="498"/> 289.48 - <g font-family="Verdana" font-size="75" 289.49 - font-weight="bold" fill="url(#MyGradient)" > 289.50 - <rect x="100" y="0" width="500" height="20" /> 289.51 - <text x="100" y="90">Unfiltered</text> 289.52 - <text x="100" y="190" filter="url(#Matrix)" >Matrix</text> 289.53 - <text x="100" y="290" filter="url(#Saturate40)" >Saturate</text> 289.54 - <text x="100" y="390" filter="url(#HueRotate90)" >HueRotate</text> 289.55 - <text x="100" y="490" filter="url(#LuminanceToAlpha)" >Luminance</text> 289.56 - </g> 289.57 -</svg> 289.58 -
290.1 Binary file publish/examples/feComponentTransfer.png has changed
291.1 --- a/publish/examples/feComponentTransfer.svg Thu Feb 24 10:19:12 2011 +0000 291.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 291.3 @@ -1,65 +0,0 @@ 291.4 -<?xml version="1.0"?> 291.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 291.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 291.7 -<svg width="8cm" height="4cm" viewBox="0 0 800 400" 291.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 291.9 - <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title> 291.10 - <desc>Four text strings showing the effects of feComponentTransfer: 291.11 - an identity function acting as a reference, 291.12 - use of the feComponentTransfer table option, 291.13 - use of the feComponentTransfer linear option, 291.14 - and use of the feComponentTransfer gamma option.</desc> 291.15 - <defs> 291.16 - <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" 291.17 - x1="100" y1="0" x2="600" y2="0"> 291.18 - <stop offset="0" stop-color="#ff0000" /> 291.19 - <stop offset=".33" stop-color="#00ff00" /> 291.20 - <stop offset=".67" stop-color="#0000ff" /> 291.21 - <stop offset="1" stop-color="#000000" /> 291.22 - </linearGradient> 291.23 - <filter id="Identity" filterUnits="objectBoundingBox" 291.24 - x="0%" y="0%" width="100%" height="100%"> 291.25 - <feComponentTransfer> 291.26 - <feFuncR type="identity"/> 291.27 - <feFuncG type="identity"/> 291.28 - <feFuncB type="identity"/> 291.29 - <feFuncA type="identity"/> 291.30 - </feComponentTransfer> 291.31 - </filter> 291.32 - <filter id="Table" filterUnits="objectBoundingBox" 291.33 - x="0%" y="0%" width="100%" height="100%"> 291.34 - <feComponentTransfer> 291.35 - <feFuncR type="table" tableValues="0 0 1 1"/> 291.36 - <feFuncG type="table" tableValues="1 1 0 0"/> 291.37 - <feFuncB type="table" tableValues="0 1 1 0"/> 291.38 - </feComponentTransfer> 291.39 - </filter> 291.40 - <filter id="Linear" filterUnits="objectBoundingBox" 291.41 - x="0%" y="0%" width="100%" height="100%"> 291.42 - <feComponentTransfer> 291.43 - <feFuncR type="linear" slope=".5" intercept=".25"/> 291.44 - <feFuncG type="linear" slope=".5" intercept="0"/> 291.45 - <feFuncB type="linear" slope=".5" intercept=".5"/> 291.46 - </feComponentTransfer> 291.47 - </filter> 291.48 - <filter id="Gamma" filterUnits="objectBoundingBox" 291.49 - x="0%" y="0%" width="100%" height="100%"> 291.50 - <feComponentTransfer> 291.51 - <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/> 291.52 - <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/> 291.53 - <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/> 291.54 - </feComponentTransfer> 291.55 - </filter> 291.56 - </defs> 291.57 - <rect fill="none" stroke="blue" 291.58 - x="1" y="1" width="798" height="398"/> 291.59 - <g font-family="Verdana" font-size="75" 291.60 - font-weight="bold" fill="url(#MyGradient)" > 291.61 - <rect x="100" y="0" width="600" height="20" /> 291.62 - <text x="100" y="90">Identity</text> 291.63 - <text x="100" y="190" filter="url(#Table)" >TableLookup</text> 291.64 - <text x="100" y="290" filter="url(#Linear)" >LinearFunc</text> 291.65 - <text x="100" y="390" filter="url(#Gamma)" >GammaFunc</text> 291.66 - </g> 291.67 -</svg> 291.68 -
292.1 Binary file publish/examples/feComposite.png has changed
293.1 --- a/publish/examples/feComposite.svg Thu Feb 24 10:19:12 2011 +0000 293.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 293.3 @@ -1,170 +0,0 @@ 293.4 -<?xml version="1.0"?> 293.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 293.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 293.7 -<svg width="330" height="195" viewBox="0 0 1100 650" version="1.1" 293.8 - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 293.9 - <title>Example feComposite - Examples of feComposite operations</title> 293.10 - <desc>Four rows of six pairs of overlapping triangles depicting 293.11 - the six different feComposite operators under different 293.12 - opacity values and different clearing of the background.</desc> 293.13 - <defs> 293.14 - <desc>Define two sets of six filters for each of the six compositing operators. 293.15 - The first set wipes out the background image by flooding with opaque white. 293.16 - The second set does not wipe out the background, with the result 293.17 - that the background sometimes shines through and is other cases 293.18 - is blended into itself (i.e., "double-counting").</desc> 293.19 - <filter id="overFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 293.20 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 293.21 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 293.22 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 293.23 - </filter> 293.24 - <filter id="inFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 293.25 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 293.26 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 293.27 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 293.28 - </filter> 293.29 - <filter id="outFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 293.30 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 293.31 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 293.32 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 293.33 - </filter> 293.34 - <filter id="atopFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 293.35 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 293.36 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 293.37 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 293.38 - </filter> 293.39 - <filter id="xorFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 293.40 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 293.41 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 293.42 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 293.43 - </filter> 293.44 - <filter id="arithmeticFlood" filterUnits="objectBoundingBox" 293.45 - x="-5%" y="-5%" width="110%" height="110%"> 293.46 - <feFlood flood-color="#ffffff" flood-opacity="1" result="flood"/> 293.47 - <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 293.48 - operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 293.49 - <feMerge> <feMergeNode in="flood"/> <feMergeNode in="comp"/> </feMerge> 293.50 - </filter> 293.51 - <filter id="overNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 293.52 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="over" result="comp"/> 293.53 - </filter> 293.54 - <filter id="inNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 293.55 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="in" result="comp"/> 293.56 - </filter> 293.57 - <filter id="outNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 293.58 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="out" result="comp"/> 293.59 - </filter> 293.60 - <filter id="atopNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 293.61 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="atop" result="comp"/> 293.62 - </filter> 293.63 - <filter id="xorNoFlood" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%"> 293.64 - <feComposite in="SourceGraphic" in2="BackgroundImage" operator="xor" result="comp"/> 293.65 - </filter> 293.66 - <filter id="arithmeticNoFlood" filterUnits="objectBoundingBox" 293.67 - x="-5%" y="-5%" width="110%" height="110%"> 293.68 - <feComposite in="SourceGraphic" in2="BackgroundImage" result="comp" 293.69 - operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/> 293.70 - </filter> 293.71 - <path id="Blue100" d="M 0 0 L 100 0 L 100 100 z" fill="#00ffff" /> 293.72 - <path id="Red100" d="M 0 0 L 0 100 L 100 0 z" fill="#ff00ff" /> 293.73 - <path id="Blue50" d="M 0 125 L 100 125 L 100 225 z" fill="#00ffff" fill-opacity=".5" /> 293.74 - <path id="Red50" d="M 0 125 L 0 225 L 100 125 z" fill="#ff00ff" fill-opacity=".5" /> 293.75 - <g id="TwoBlueTriangles"> 293.76 - <use xlink:href="#Blue100"/> 293.77 - <use xlink:href="#Blue50"/> 293.78 - </g> 293.79 - <g id="BlueTriangles"> 293.80 - <use transform="translate(275,25)" xlink:href="#TwoBlueTriangles"/> 293.81 - <use transform="translate(400,25)" xlink:href="#TwoBlueTriangles"/> 293.82 - <use transform="translate(525,25)" xlink:href="#TwoBlueTriangles"/> 293.83 - <use transform="translate(650,25)" xlink:href="#TwoBlueTriangles"/> 293.84 - <use transform="translate(775,25)" xlink:href="#TwoBlueTriangles"/> 293.85 - <use transform="translate(900,25)" xlink:href="#TwoBlueTriangles"/> 293.86 - </g> 293.87 - </defs> 293.88 - 293.89 - <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="648"/> 293.90 - <g font-family="Verdana" font-size="40" shape-rendering="crispEdges"> 293.91 - <desc>Render the examples using the filters that draw on top of 293.92 - an opaque white surface, thus obliterating the background.</desc> 293.93 - <g enable-background="new"> 293.94 - <text x="15" y="75">opacity 1.0</text> 293.95 - <text x="15" y="115" font-size="27">(with feFlood)</text> 293.96 - <text x="15" y="200">opacity 0.5</text> 293.97 - <text x="15" y="240" font-size="27">(with feFlood)</text> 293.98 - <use xlink:href="#BlueTriangles"/> 293.99 - <g transform="translate(275,25)"> 293.100 - <use xlink:href="#Red100" filter="url(#overFlood)" /> 293.101 - <use xlink:href="#Red50" filter="url(#overFlood)" /> 293.102 - <text x="5" y="275">over</text> 293.103 - </g> 293.104 - <g transform="translate(400,25)"> 293.105 - <use xlink:href="#Red100" filter="url(#inFlood)" /> 293.106 - <use xlink:href="#Red50" filter="url(#inFlood)" /> 293.107 - <text x="35" y="275">in</text> 293.108 - </g> 293.109 - <g transform="translate(525,25)"> 293.110 - <use xlink:href="#Red100" filter="url(#outFlood)" /> 293.111 - <use xlink:href="#Red50" filter="url(#outFlood)" /> 293.112 - <text x="15" y="275">out</text> 293.113 - </g> 293.114 - <g transform="translate(650,25)"> 293.115 - <use xlink:href="#Red100" filter="url(#atopFlood)" /> 293.116 - <use xlink:href="#Red50" filter="url(#atopFlood)" /> 293.117 - <text x="10" y="275">atop</text> 293.118 - </g> 293.119 - <g transform="translate(775,25)"> 293.120 - <use xlink:href="#Red100" filter="url(#xorFlood)" /> 293.121 - <use xlink:href="#Red50" filter="url(#xorFlood)" /> 293.122 - <text x="15" y="275">xor</text> 293.123 - </g> 293.124 - <g transform="translate(900,25)"> 293.125 - <use xlink:href="#Red100" filter="url(#arithmeticFlood)" /> 293.126 - <use xlink:href="#Red50" filter="url(#arithmeticFlood)" /> 293.127 - <text x="-25" y="275">arithmetic</text> 293.128 - </g> 293.129 - </g> 293.130 - <g transform="translate(0,325)" enable-background="new"> 293.131 - <desc>Render the examples using the filters that do not obliterate 293.132 - the background, thus sometimes causing the background to continue 293.133 - to appear in some cases, and in other cases the background 293.134 - image blends into itself ("double-counting").</desc> 293.135 - <text x="15" y="75">opacity 1.0</text> 293.136 - <text x="15" y="115" font-size="27">(without feFlood)</text> 293.137 - <text x="15" y="200">opacity 0.5</text> 293.138 - <text x="15" y="240" font-size="27">(without feFlood)</text> 293.139 - <use xlink:href="#BlueTriangles"/> 293.140 - <g transform="translate(275,25)"> 293.141 - <use xlink:href="#Red100" filter="url(#overNoFlood)" /> 293.142 - <use xlink:href="#Red50" filter="url(#overNoFlood)" /> 293.143 - <text x="5" y="275">over</text> 293.144 - </g> 293.145 - <g transform="translate(400,25)"> 293.146 - <use xlink:href="#Red100" filter="url(#inNoFlood)" /> 293.147 - <use xlink:href="#Red50" filter="url(#inNoFlood)" /> 293.148 - <text x="35" y="275">in</text> 293.149 - </g> 293.150 - <g transform="translate(525,25)"> 293.151 - <use xlink:href="#Red100" filter="url(#outNoFlood)" /> 293.152 - <use xlink:href="#Red50" filter="url(#outNoFlood)" /> 293.153 - <text x="15" y="275">out</text> 293.154 - </g> 293.155 - <g transform="translate(650,25)"> 293.156 - <use xlink:href="#Red100" filter="url(#atopNoFlood)" /> 293.157 - <use xlink:href="#Red50" filter="url(#atopNoFlood)" /> 293.158 - <text x="10" y="275">atop</text> 293.159 - </g> 293.160 - <g transform="translate(775,25)"> 293.161 - <use xlink:href="#Red100" filter="url(#xorNoFlood)" /> 293.162 - <use xlink:href="#Red50" filter="url(#xorNoFlood)" /> 293.163 - <text x="15" y="275">xor</text> 293.164 - </g> 293.165 - <g transform="translate(900,25)"> 293.166 - <use xlink:href="#Red100" filter="url(#arithmeticNoFlood)" /> 293.167 - <use xlink:href="#Red50" filter="url(#arithmeticNoFlood)" /> 293.168 - <text x="-25" y="275">arithmetic</text> 293.169 - </g> 293.170 - </g> 293.171 - </g> 293.172 -</svg> 293.173 -
294.1 --- a/publish/examples/feDropShadow.svg Thu Feb 24 10:19:12 2011 +0000 294.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 294.3 @@ -1,47 +0,0 @@ 294.4 -<?xml version="1.0"?> 294.5 -<svg viewBox="0 0 800 400" 294.6 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 294.7 - <title>Example feDropShadow - Examples of feDropShadow operations</title> 294.8 - <desc>Four text strings showing the effects of feComponentTransfer: 294.9 - an identity function acting as a reference, 294.10 - use of the feComponentTransfer table option, 294.11 - use of the feComponentTransfer linear option, 294.12 - and use of the feComponentTransfer gamma option.</desc> 294.13 - <defs> 294.14 - <filter id="feDropShadowEquiv1"> 294.15 - <feGaussianBlur stdDeviation="3"/> 294.16 - <feOffset dx="3" dy="3" result="offsetblur"/> 294.17 - <feFlood flood-color="#720"/> 294.18 - <feComposite in2="offsetblur" operator="in"/> 294.19 - <feMerge> 294.20 - <feMergeNode/> 294.21 - <feMergeNode in="SourceGraphic"/> 294.22 - </feMerge> 294.23 - </filter> 294.24 - <filter id="feDropShadowEquiv2"> 294.25 - <feGaussianBlur stdDeviation="2"/> 294.26 - <feOffset dx="2" dy="2" result="offsetblur"/> 294.27 - <feFlood/> 294.28 - <feComposite in2="offsetblur" operator="in"/> 294.29 - <feMerge> 294.30 - <feMergeNode/> 294.31 - <feMergeNode in="SourceGraphic"/> 294.32 - </feMerge> 294.33 - </filter> 294.34 - <filter id="feDropShadow1"> 294.35 - <feDropShadow stdDeviation="3" flood-color="#720"/> 294.36 - </filter> 294.37 - <filter id="feDropShadow2"> 294.38 - <feDropShadow/> 294.39 - </filter> 294.40 - </defs> 294.41 - <rect fill="none" stroke="blue" 294.42 - x="1" y="1" width="798" height="398"/> 294.43 - <g font-family="Verdana" font-size="30"> 294.44 - <text x="100" y="90" filter="url(#feDropShadow1)">feDropShadow</text> 294.45 - <text x="100" y="140" filter="url(#feDropShadowEquiv1)" >feDropShadow</text> 294.46 - <text x="100" y="190" filter="url(#feDropShadow2)">feDropShadow</text> 294.47 - <text x="100" y="240" filter="url(#feDropShadowEquiv2)" >feDropShadow</text> 294.48 - </g> 294.49 -</svg> 294.50 -
295.1 Binary file publish/examples/feGaussianBlur-stdDeviation-00.png has changed
296.1 --- a/publish/examples/feGaussianBlur-stdDeviation-00.svg Thu Feb 24 10:19:12 2011 +0000 296.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 296.3 @@ -1,38 +0,0 @@ 296.4 -<?xml version="1.0" encoding="UTF-8"?> 296.5 -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360"> 296.6 - <defs> 296.7 - <font-face font-family="FORQUE"> 296.8 - <font-face-src> 296.9 - <font-face-uri xlink:href="Forque.svg#FORQUE"/> 296.10 - </font-face-src> 296.11 - </font-face> 296.12 - <style> 296.13 - /* Free font by Tup Wanders, http://www.tupwanders.nl, Licensed with a Creative Commons attribution license. */ 296.14 - text { text-anchor: middle; font: 70px FORQUE, sans-serif; } 296.15 - #bx { filter: url(#blurX) } 296.16 - #by { filter: url(#blurY) } 296.17 - #header { filter: url(#ds); fill: white; text-decoration: underline } 296.18 - #attribution { font-size: 6px } 296.19 - :root { background: green; fill: white } 296.20 - </style> 296.21 - <filter id="blurX" x="0" y="20%" width="100%" height="1.5em" filterUnits="userSpaceOnUse"> 296.22 - <feGaussianBlur stdDeviation="4 0"> 296.23 - <animate attributeName="stdDeviation" values="8 0;20 0;0 0" keySplines="0.25 0.1 0.25 1" keyTimes="0;0.5;1" calcMode="spline" dur="4s" begin="bx.click" fill="freeze"/> 296.24 - </feGaussianBlur> 296.25 - </filter> 296.26 - <filter id="blurY" x="0" y="0" width="100%" height="100%" filterUnits="userSpaceOnUse"> 296.27 - <feGaussianBlur stdDeviation="0 4"/> 296.28 - </filter> 296.29 - <filter id="ds" x="-0.1" y="-0.1" width="1.2" height="1.2"> 296.30 - <feGaussianBlur stdDeviation="3"/> 296.31 - <feOffset dx="2" dy="2"/> 296.32 - <feComposite in2="SourceGraphic" operator="in"/> 296.33 - </filter> 296.34 - </defs> 296.35 - 296.36 - <text id="bx" x="40%" y="50%">BlurX</text> 296.37 - <text id="by" x="60%" y="70%">BlurY</text> 296.38 - 296.39 - <text id="header" y="1em" x="50%">Unidirectional blur</text> 296.40 - <text id="attribution" x="100%" y="355">Forque font by Tup Wanders</text> 296.41 -</svg>
297.1 Binary file publish/examples/feMorphology.png has changed
298.1 --- a/publish/examples/feMorphology.svg Thu Feb 24 10:19:12 2011 +0000 298.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 298.3 @@ -1,37 +0,0 @@ 298.4 -<?xml version="1.0"?> 298.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 298.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 298.7 -<svg width="5cm" height="7cm" viewBox="0 0 700 500" 298.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 298.9 - <title>Example feMorphology - Examples of erode and dilate</title> 298.10 - <desc>Five text strings drawn as outlines. 298.11 - The first is unfiltered. The second and third use 'erode'. 298.12 - The fourth and fifth use 'dilate'.</desc> 298.13 - <defs> 298.14 - <filter id="Erode3"> 298.15 - <feMorphology operator="erode" in="SourceGraphic" radius="3" /> 298.16 - </filter> 298.17 - <filter id="Erode6"> 298.18 - <feMorphology operator="erode" in="SourceGraphic" radius="6" /> 298.19 - </filter> 298.20 - <filter id="Dilate3"> 298.21 - <feMorphology operator="dilate" in="SourceGraphic" radius="3" /> 298.22 - </filter> 298.23 - <filter id="Dilate6"> 298.24 - <feMorphology operator="dilate" in="SourceGraphic" radius="6" /> 298.25 - </filter> 298.26 - </defs> 298.27 - <rect fill="none" stroke="blue" stroke-width="2" 298.28 - x="1" y="1" width="698" height="498"/> 298.29 - <g enable-background="new" > 298.30 - <g font-family="Verdana" font-size="75" 298.31 - fill="none" stroke="black" stroke-width="6" > 298.32 - <text x="50" y="90">Unfiltered</text> 298.33 - <text x="50" y="180" filter="url(#Erode3)" >Erode radius 3</text> 298.34 - <text x="50" y="270" filter="url(#Erode6)" >Erode radius 6</text> 298.35 - <text x="50" y="360" filter="url(#Dilate3)" >Dilate radius 3</text> 298.36 - <text x="50" y="450" filter="url(#Dilate6)" >Dilate radius 6</text> 298.37 - </g> 298.38 - </g> 298.39 -</svg> 298.40 -
299.1 Binary file publish/examples/feTurbulence.png has changed
300.1 --- a/publish/examples/feTurbulence.svg Thu Feb 24 10:19:12 2011 +0000 300.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 300.3 @@ -1,71 +0,0 @@ 300.4 -<?xml version="1.0"?> 300.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 300.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 300.7 -<svg width="450px" height="325px" viewBox="0 0 450 325" 300.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 300.9 - <title>Example feTurbulence - Examples of feTurbulence operations</title> 300.10 - <desc>Six rectangular areas showing the effects of 300.11 - various parameter settings for feTurbulence.</desc> 300.12 - <g font-family="Verdana" text-anchor="middle" font-size="10" > 300.13 - <defs> 300.14 - <filter id="Turb1" filterUnits="objectBoundingBox" 300.15 - x="0%" y="0%" width="100%" height="100%"> 300.16 - <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/> 300.17 - </filter> 300.18 - <filter id="Turb2" filterUnits="objectBoundingBox" 300.19 - x="0%" y="0%" width="100%" height="100%"> 300.20 - <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/> 300.21 - </filter> 300.22 - <filter id="Turb3" filterUnits="objectBoundingBox" 300.23 - x="0%" y="0%" width="100%" height="100%"> 300.24 - <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/> 300.25 - </filter> 300.26 - <filter id="Turb4" filterUnits="objectBoundingBox" 300.27 - x="0%" y="0%" width="100%" height="100%"> 300.28 - <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/> 300.29 - </filter> 300.30 - <filter id="Turb5" filterUnits="objectBoundingBox" 300.31 - x="0%" y="0%" width="100%" height="100%"> 300.32 - <feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/> 300.33 - </filter> 300.34 - <filter id="Turb6" filterUnits="objectBoundingBox" 300.35 - x="0%" y="0%" width="100%" height="100%"> 300.36 - <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/> 300.37 - </filter> 300.38 - </defs> 300.39 - 300.40 - <rect x="1" y="1" width="448" height="323" 300.41 - fill="none" stroke="blue" stroke-width="1" /> 300.42 - 300.43 - <rect x="25" y="25" width="100" height="75" filter="url(#Turb1)" /> 300.44 - <text x="75" y="117">type=turbulence</text> 300.45 - <text x="75" y="129">baseFrequency=0.05</text> 300.46 - <text x="75" y="141">numOctaves=2</text> 300.47 - 300.48 - <rect x="175" y="25" width="100" height="75" filter="url(#Turb2)" /> 300.49 - <text x="225" y="117">type=turbulence</text> 300.50 - <text x="225" y="129">baseFrequency=0.1</text> 300.51 - <text x="225" y="141">numOctaves=2</text> 300.52 - 300.53 - <rect x="325" y="25" width="100" height="75" filter="url(#Turb3)" /> 300.54 - <text x="375" y="117">type=turbulence</text> 300.55 - <text x="375" y="129">baseFrequency=0.05</text> 300.56 - <text x="375" y="141">numOctaves=8</text> 300.57 - 300.58 - <rect x="25" y="180" width="100" height="75" filter="url(#Turb4)" /> 300.59 - <text x="75" y="272">type=fractalNoise</text> 300.60 - <text x="75" y="284">baseFrequency=0.1</text> 300.61 - <text x="75" y="296">numOctaves=4</text> 300.62 - 300.63 - <rect x="175" y="180" width="100" height="75" filter="url(#Turb5)" /> 300.64 - <text x="225" y="272">type=fractalNoise</text> 300.65 - <text x="225" y="284">baseFrequency=0.4</text> 300.66 - <text x="225" y="296">numOctaves=4</text> 300.67 - 300.68 - <rect x="325" y="180" width="100" height="75" filter="url(#Turb6)" /> 300.69 - <text x="375" y="272">type=fractalNoise</text> 300.70 - <text x="375" y="284">baseFrequency=0.1</text> 300.71 - <text x="375" y="296">numOctaves=1</text> 300.72 - </g> 300.73 -</svg> 300.74 -
301.1 Binary file publish/examples/filters00.png has changed
302.1 --- a/publish/examples/filters00.svg Thu Feb 24 10:19:12 2011 +0000 302.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 302.3 @@ -1,53 +0,0 @@ 302.4 -<?xml version="1.0"?> 302.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 302.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 302.7 -<svg width="11.3cm" height="2.2cm" viewBox="0 0 1130 220" version="1.1" 302.8 - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 302.9 - <title>Example filters00.svg - filter effects before and after</title> 302.10 - <desc>Picture of the before and after affects of filtering.</desc> 302.11 - <defs> 302.12 - <filter id="MyFilter"> 302.13 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 302.14 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 302.15 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant="1" 302.16 - specularExponent="10" lighting-color="white" 302.17 - result="specOut"> 302.18 - <fePointLight x="-5000" y="-10000" z="20000"/> 302.19 - </feSpecularLighting> 302.20 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 302.21 - <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 302.22 - k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 302.23 - <feMerge> 302.24 - <feMergeNode in="offsetBlur"/> 302.25 - <feMergeNode in="litPaint"/> 302.26 - </feMerge> 302.27 - </filter> 302.28 - <g id="CircleRectTriangle"> 302.29 - <g> 302.30 - <circle cx="85" cy="80" r="40" fill="yellow" /> 302.31 -<g> 302.32 - <rect x="145" y="45" width="90" height="70" fill="red" /> 302.33 -</g> 302.34 - <path d="M260,40 L335,80 L260,120 z" fill="#4444ff" /> 302.35 - </g> 302.36 - </g> 302.37 - <path id="LineWithArrow" 302.38 - d="M0,-15 h80 v-10 l40,25 l-40,25 v-10 h-80 z" /> 302.39 - </defs> 302.40 - <g font-family="Verdana" font-size="30" > 302.41 - <rect x="1" y="1" width="1128" height="218" 302.42 - fill="#cccccc" stroke="blue" /> 302.43 - <use x="0" y="0" xlink:href="#CircleRectTriangle"/> 302.44 - <text x="20" y="180">Original source graphic</text> 302.45 - <use x="380" y="80" xlink:href="#LineWithArrow"/> 302.46 - <text x="520" y="70">Filter</text> 302.47 - <text x="520" y="120">Effect</text> 302.48 - <use x="630" y="80" xlink:href="#LineWithArrow"/> 302.49 - <text x="790" y="180">Result of filter effect</text> 302.50 - </g> 302.51 - <g filter="url(#MyFilter)" > 302.52 - <use x="750" y="0" xlink:href="#CircleRectTriangle"/> 302.53 - </g> 302.54 -</svg> 302.55 - 302.56 -
303.1 Binary file publish/examples/filters01-0.png has changed
304.1 --- a/publish/examples/filters01-0.svg Thu Feb 24 10:19:12 2011 +0000 304.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 304.3 @@ -1,23 +0,0 @@ 304.4 -<?xml version="1.0"?> 304.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 304.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 304.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" version="1.1" 304.8 - xmlns="http://www.w3.org/2000/svg"> 304.9 - <title>Example filters01-0.svg - source graphic with no filters</title> 304.10 - <desc>Shows what filters01.svg looks like without any 304.11 - filters.</desc> 304.12 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 304.13 - <g> 304.14 - <g> 304.15 - <path fill="none" stroke="#D90000" stroke-width="10" 304.16 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 304.17 - <path fill="#D90000" 304.18 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 304.19 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 304.20 - <text x="52" y="76">SVG</text> 304.21 - </g> 304.22 - </g> 304.23 - </g> 304.24 -</svg> 304.25 - 304.26 -
305.1 Binary file publish/examples/filters01-1.png has changed
306.1 --- a/publish/examples/filters01-1.svg Thu Feb 24 10:19:12 2011 +0000 306.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 306.3 @@ -1,28 +0,0 @@ 306.4 -<?xml version="1.0"?> 306.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 306.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 306.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 306.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 306.9 - <title>Example filters01-1.svg - after first step</title> 306.10 - <desc>Shows intermediate result for filters01.svg after applying 306.11 - the first filter element, feGaussianBlur.</desc> 306.12 - <defs> 306.13 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 306.14 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 306.15 - </filter> 306.16 - </defs> 306.17 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 306.18 - <g filter="url(#MyFilter)" > 306.19 - <g> 306.20 - <path fill="none" stroke="#D90000" stroke-width="10" 306.21 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 306.22 - <path fill="#D90000" 306.23 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 306.24 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 306.25 - <text x="52" y="76">SVG</text> 306.26 - </g> 306.27 - </g> 306.28 - </g> 306.29 -</svg> 306.30 - 306.31 -
307.1 Binary file publish/examples/filters01-2.png has changed
308.1 --- a/publish/examples/filters01-2.svg Thu Feb 24 10:19:12 2011 +0000 308.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 308.3 @@ -1,29 +0,0 @@ 308.4 -<?xml version="1.0"?> 308.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 308.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 308.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 308.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 308.9 - <title>Example filters01-2.svg - after second step</title> 308.10 - <desc>Shows intermediate result for filters01.svg after applying 308.11 - the second filter element, feOffset.</desc> 308.12 - <defs> 308.13 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 308.14 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 308.15 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 308.16 - </filter> 308.17 - </defs> 308.18 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 308.19 - <g filter="url(#MyFilter)" > 308.20 - <g> 308.21 - <path fill="none" stroke="#D90000" stroke-width="10" 308.22 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 308.23 - <path fill="#D90000" 308.24 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 308.25 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 308.26 - <text x="52" y="76">SVG</text> 308.27 - </g> 308.28 - </g> 308.29 - </g> 308.30 -</svg> 308.31 - 308.32 -
309.1 Binary file publish/examples/filters01-3.png has changed
310.1 --- a/publish/examples/filters01-3.svg Thu Feb 24 10:19:12 2011 +0000 310.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 310.3 @@ -1,34 +0,0 @@ 310.4 -<?xml version="1.0"?> 310.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 310.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 310.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 310.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 310.9 - <title>Example filters01-3.svg - after third step</title> 310.10 - <desc>Shows intermediate result for filters01.svg after applying 310.11 - the third filter element, feSpecularLighting.</desc> 310.12 - <defs> 310.13 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 310.14 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 310.15 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 310.16 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 310.17 - specularExponent="20" lighting-color="#bbbbbb" 310.18 - result="specOut"> 310.19 - <fePointLight x="-5000" y="-10000" z="20000"/> 310.20 - </feSpecularLighting> 310.21 - </filter> 310.22 - </defs> 310.23 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 310.24 - <g filter="url(#MyFilter)" > 310.25 - <g> 310.26 - <path fill="none" stroke="#D90000" stroke-width="10" 310.27 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 310.28 - <path fill="#D90000" 310.29 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 310.30 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 310.31 - <text x="52" y="76">SVG</text> 310.32 - </g> 310.33 - </g> 310.34 - </g> 310.35 -</svg> 310.36 - 310.37 -
311.1 Binary file publish/examples/filters01-4.png has changed
312.1 --- a/publish/examples/filters01-4.svg Thu Feb 24 10:19:12 2011 +0000 312.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 312.3 @@ -1,35 +0,0 @@ 312.4 -<?xml version="1.0"?> 312.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 312.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 312.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 312.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 312.9 - <title>Example filters01-4.svg - after fourth step</title> 312.10 - <desc>Shows intermediate result for filters01.svg after applying 312.11 - the fourth filter element, feComposite.</desc> 312.12 - <defs> 312.13 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 312.14 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 312.15 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 312.16 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 312.17 - specularExponent="20" lighting-color="#bbbbbb" 312.18 - result="specOut"> 312.19 - <fePointLight x="-5000" y="-10000" z="20000"/> 312.20 - </feSpecularLighting> 312.21 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 312.22 - </filter> 312.23 - </defs> 312.24 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 312.25 - <g filter="url(#MyFilter)" > 312.26 - <g> 312.27 - <path fill="none" stroke="#D90000" stroke-width="10" 312.28 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 312.29 - <path fill="#D90000" 312.30 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 312.31 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 312.32 - <text x="52" y="76">SVG</text> 312.33 - </g> 312.34 - </g> 312.35 - </g> 312.36 -</svg> 312.37 - 312.38 -
313.1 Binary file publish/examples/filters01-5.png has changed
314.1 --- a/publish/examples/filters01-5.svg Thu Feb 24 10:19:12 2011 +0000 314.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 314.3 @@ -1,37 +0,0 @@ 314.4 -<?xml version="1.0"?> 314.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 314.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 314.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 314.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 314.9 - <title>Example filters01-5.svg - after fifth step</title> 314.10 - <desc>Shows intermediate result for filters01.svg after applying 314.11 - the fifth filter element, feComposite.</desc> 314.12 - <defs> 314.13 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 314.14 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 314.15 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 314.16 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 314.17 - specularExponent="20" lighting-color="#bbbbbb" 314.18 - result="specOut"> 314.19 - <fePointLight x="-5000" y="-10000" z="20000"/> 314.20 - </feSpecularLighting> 314.21 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 314.22 - <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 314.23 - k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 314.24 - </filter> 314.25 - </defs> 314.26 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 314.27 - <g filter="url(#MyFilter)" > 314.28 - <g> 314.29 - <path fill="none" stroke="#D90000" stroke-width="10" 314.30 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 314.31 - <path fill="#D90000" 314.32 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 314.33 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 314.34 - <text x="52" y="76">SVG</text> 314.35 - </g> 314.36 - </g> 314.37 - </g> 314.38 -</svg> 314.39 - 314.40 -
315.1 Binary file publish/examples/filters01-6.png has changed
316.1 --- a/publish/examples/filters01-6.svg Thu Feb 24 10:19:12 2011 +0000 316.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 316.3 @@ -1,43 +0,0 @@ 316.4 -<?xml version="1.0"?> 316.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 316.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 316.7 -<svg width="115px" height="70px" viewBox="0 0 200 120" 316.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 316.9 - <title>Example filters01.svg - introducing filter effects</title> 316.10 - <desc>An example which combines multiple filter primitives 316.11 - to produce a 3D lighting effect on a graphic consisting 316.12 - of the string "SVG" sitting on top of oval filled in red 316.13 - and surrounded by an oval outlined in red.</desc> 316.14 - <defs> 316.15 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 316.16 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 316.17 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 316.18 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 316.19 - specularExponent="20" lighting-color="#bbbbbb" 316.20 - result="specOut"> 316.21 - <fePointLight x="-5000" y="-10000" z="20000"/> 316.22 - </feSpecularLighting> 316.23 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 316.24 - <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 316.25 - k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 316.26 - <feMerge> 316.27 - <feMergeNode in="offsetBlur"/> 316.28 - <feMergeNode in="litPaint"/> 316.29 - </feMerge> 316.30 - </filter> 316.31 - </defs> 316.32 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 316.33 - <g filter="url(#MyFilter)" > 316.34 - <g> 316.35 - <path fill="none" stroke="#D90000" stroke-width="10" 316.36 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 316.37 - <path fill="#D90000" 316.38 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 316.39 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 316.40 - <text x="52" y="76">SVG</text> 316.41 - </g> 316.42 - </g> 316.43 - </g> 316.44 -</svg> 316.45 - 316.46 -
317.1 Binary file publish/examples/filters01.png has changed
318.1 --- a/publish/examples/filters01.svg Thu Feb 24 10:19:12 2011 +0000 318.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 318.3 @@ -1,43 +0,0 @@ 318.4 -<?xml version="1.0"?> 318.5 -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 318.6 - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 318.7 -<svg width="7.5cm" height="5cm" viewBox="0 0 200 120" 318.8 - xmlns="http://www.w3.org/2000/svg" version="1.1"> 318.9 - <title>Example filters01.svg - introducing filter effects</title> 318.10 - <desc>An example which combines multiple filter primitives 318.11 - to produce a 3D lighting effect on a graphic consisting 318.12 - of the string "SVG" sitting on top of oval filled in red 318.13 - and surrounded by an oval outlined in red.</desc> 318.14 - <defs> 318.15 - <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"> 318.16 - <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/> 318.17 - <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/> 318.18 - <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 318.19 - specularExponent="20" lighting-color="#bbbbbb" 318.20 - result="specOut"> 318.21 - <fePointLight x="-5000" y="-10000" z="20000"/> 318.22 - </feSpecularLighting> 318.23 - <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/> 318.24 - <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 318.25 - k1="0" k2="1" k3="1" k4="0" result="litPaint"/> 318.26 - <feMerge> 318.27 - <feMergeNode in="offsetBlur"/> 318.28 - <feMergeNode in="litPaint"/> 318.29 - </feMerge> 318.30 - </filter> 318.31 - </defs> 318.32 - <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" /> 318.33 - <g filter="url(#MyFilter)" > 318.34 - <g> 318.35 - <path fill="none" stroke="#D90000" stroke-width="10" 318.36 - d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" /> 318.37 - <path fill="#D90000" 318.38 - d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" /> 318.39 - <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" > 318.40 - <text x="52" y="76">SVG</text> 318.41 - </g> 318.42 - </g> 318.43 - </g> 318.44 -</svg> 318.45 - 318.46 -
319.1 Binary file publish/examples/filtersubregion00.png has changed
320.1 --- a/publish/examples/filtersubregion00.svg Thu Feb 24 10:19:12 2011 +0000 320.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 320.3 @@ -1,43 +0,0 @@ 320.4 -<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg"> 320.5 - <defs> 320.6 - <filter id="flood" x="0" y="0" width="100%" height="100%" primitiveUnits="objectBoundingBox"> 320.7 - <feFlood x="25%" y="25%" width="50%" height="50%" 320.8 - flood-color="green" flood-opacity="0.75"/> 320.9 - </filter> 320.10 - <filter id="blend" primitiveUnits="objectBoundingBox"> 320.11 - <feBlend x="25%" y="25%" width="50%" height="50%" 320.12 - in2="SourceGraphic" mode="multiply"/> 320.13 - </filter> 320.14 - <filter id="merge" primitiveUnits="objectBoundingBox"> 320.15 - <feMerge x="25%" y="25%" width="50%" height="50%"> 320.16 - <feMergeNode in="SourceGraphic"/> 320.17 - <feMergeNode in="FillPaint"/> 320.18 - </feMerge> 320.19 - </filter> 320.20 - </defs> 320.21 - 320.22 - <g fill="none" stroke="blue" stroke-width="4"> 320.23 - <rect width="200" height="200"/> 320.24 - <line x2="200" y2="200"/> 320.25 - <line x1="200" y2="200"/> 320.26 - </g> 320.27 - <circle fill="green" filter="url(#flood)" cx="100" cy="100" r="90"/> 320.28 - 320.29 - <g transform="translate(200 0)"> 320.30 - <g fill="none" stroke="blue" stroke-width="4"> 320.31 - <rect width="200" height="200"/> 320.32 - <line x2="200" y2="200"/> 320.33 - <line x1="200" y2="200"/> 320.34 - </g> 320.35 - <circle fill="green" filter="url(#blend)" cx="100" cy="100" r="90"/> 320.36 - </g> 320.37 - 320.38 - <g transform="translate(0 200)"> 320.39 - <g fill="none" stroke="blue" stroke-width="4"> 320.40 - <rect width="200" height="200"/> 320.41 - <line x2="200" y2="200"/> 320.42 - <line x1="200" y2="200"/> 320.43 - </g> 320.44 - <circle fill="green" fill-opacity="0.5" filter="url(#merge)" cx="100" cy="100" r="90"/> 320.45 - </g> 320.46 -</svg> 320.47 \ No newline at end of file
321.1 --- a/publish/rng/feBlend Thu Feb 24 10:19:12 2011 +0000 321.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 321.3 @@ -1,33 +0,0 @@ 321.4 - <define name='svg.feBlend.content'> 321.5 - <zeroOrMore> 321.6 - <choice> 321.7 - <ref name='animate'/> 321.8 - <ref name='set'/> 321.9 - </choice> 321.10 - </zeroOrMore> 321.11 - </define> 321.12 - 321.13 - <define name='feBlend'> 321.14 - <element name='feBlend'> 321.15 - <ref name='feBlend.attr'/> 321.16 - <ref name='svg.feBlend.content'/> 321.17 - </element> 321.18 - </define> 321.19 - 321.20 - <define name='feBlend.attr' combine='interleave'> 321.21 - <ref name='svg.Core.attr'/> 321.22 - <ref name='svg.FilterColor.attr'/> 321.23 - <ref name='svg.FilterPrimitiveWithIn.attr'/> 321.24 - <attribute name='in2'/> 321.25 - <optional> 321.26 - <attribute name='mode' a:defaultValue='normal'> 321.27 - <choice> 321.28 - <value>normal</value> 321.29 - <value>multiply</value> 321.30 - <value>screen</value> 321.31 - <value>darken</value> 321.32 - <value>lighten</value> 321.33 - </choice> 321.34 - </attribute> 321.35 - </optional> 321.36 - </define>
322.1 --- a/publish/rng/feColorMatrix Thu Feb 24 10:19:12 2011 +0000 322.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 322.3 @@ -1,34 +0,0 @@ 322.4 - <define name='svg.feColorMatrix.content'> 322.5 - <zeroOrMore> 322.6 - <choice> 322.7 - <ref name='animate'/> 322.8 - <ref name='set'/> 322.9 - </choice> 322.10 - </zeroOrMore> 322.11 - </define> 322.12 - 322.13 - <define name='feColorMatrix'> 322.14 - <element name='feColorMatrix'> 322.15 - <ref name='feColorMatrix.attr'/> 322.16 - <ref name='svg.feColorMatrix.content'/> 322.17 - </element> 322.18 - </define> 322.19 - 322.20 - <define name='feColorMatrix.attr' combine='interleave'> 322.21 - <ref name='svg.Core.attr'/> 322.22 - <ref name='svg.FilterColor.attr'/> 322.23 - <ref name='svg.FilterPrimitiveWithIn.attr'/> 322.24 - <optional> 322.25 - <attribute name='type' a:defaultValue='matrix'> 322.26 - <choice> 322.27 - <value>matrix</value> 322.28 - <value>saturate</value> 322.29 - <value>hueRotate</value> 322.30 - <value>luminanceToAlpha</value> 322.31 - </choice> 322.32 - </attribute> 322.33 - </optional> 322.34 - <optional> 322.35 - <attribute name='values'/> 322.36 - </optional> 322.37 - </define>
323.1 --- a/publish/rng/feComponentTransfer Thu Feb 24 10:19:12 2011 +0000 323.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 323.3 @@ -1,98 +0,0 @@ 323.4 - <define name='svg.feComponentTransfer.content'> 323.5 - <optional><ref name='feFuncR'/></optional> 323.6 - <optional><ref name='feFuncG'/></optional> 323.7 - <optional><ref name='feFuncB'/></optional> 323.8 - <optional><ref name='feFuncA'/></optional> 323.9 - </define> 323.10 - 323.11 - <define name='feComponentTransfer'> 323.12 - <element name='feComponentTransfer'> 323.13 - <ref name='feComponentTransfer.attr'/> 323.14 - <ref name='svg.feComponentTransfer.content'/> 323.15 - </element> 323.16 - </define> 323.17 - 323.18 - <define name='feComponentTransfer.attr' combine='interleave'> 323.19 - <ref name='svg.Core.attr'/> 323.20 - <ref name='svg.FilterColor.attr'/> 323.21 - <ref name='svg.FilterPrimitiveWithIn.attr'/> 323.22 - </define> 323.23 - 323.24 - 323.25 - <define name='SVG.feFunc.content'> 323.26 - <zeroOrMore> 323.27 - <choice> 323.28 - <ref name='animate'/> 323.29 - <ref name='set'/> 323.30 - </choice> 323.31 - </zeroOrMore> 323.32 - </define> 323.33 - 323.34 - <define name='feFuncR'> 323.35 - <element name='feFuncR'> 323.36 - <ref name='feFunc.attr'/> 323.37 - <ref name='svg.feFunc.content'/> 323.38 - </element> 323.39 - </define> 323.40 - 323.41 - <define name='feFuncG'> 323.42 - <element name='feFuncG'> 323.43 - <ref name='feFunc.attr'/> 323.44 - <ref name='svg.feFunc.content'/> 323.45 - </element> 323.46 - </define> 323.47 - 323.48 - <define name='feFuncB'> 323.49 - <element name='feFuncB'> 323.50 - <ref name='feFunc.attr'/> 323.51 - <ref name='svg.feFunc.content'/> 323.52 - </element> 323.53 - </define> 323.54 - 323.55 - <define name='feFuncA'> 323.56 - <element name='feFuncA'> 323.57 - <ref name='feFunc.attr'/> 323.58 - <ref name='svg.feFunc.content'/> 323.59 - </element> 323.60 - </define> 323.61 - 323.62 - <define name='feFunc.attr' combine='interleave'> 323.63 - <ref name='svg.Core.attr'/> 323.64 - <attribute name='type'> 323.65 - <choice> 323.66 - <value>identity</value> 323.67 - <value>table</value> 323.68 - <value>discrete</value> 323.69 - <value>linear</value> 323.70 - <value>gamma</value> 323.71 - </choice> 323.72 - </attribute> 323.73 - <optional> 323.74 - <attribute name='tableValues'/> 323.75 - </optional> 323.76 - <optional> 323.77 - <attribute name='slope'> 323.78 - <ref name='Number.datatype'/> 323.79 - </attribute> 323.80 - </optional> 323.81 - <optional> 323.82 - <attribute name='intercept'> 323.83 - <ref name='Number.datatype'/> 323.84 - </attribute> 323.85 - </optional> 323.86 - <optional> 323.87 - <attribute name='amplitude'> 323.88 - <ref name='Number.datatype'/> 323.89 - </attribute> 323.90 - </optional> 323.91 - <optional> 323.92 - <attribute name='exponent'> 323.93 - <ref name='Number.datatype'/> 323.94 - </attribute> 323.95 - </optional> 323.96 - <optional> 323.97 - <attribute name='offset'> 323.98 - <ref name='Number.datatype'/> 323.99 - </attribute> 323.100 - </optional> 323.101 - </define> 323.102 \ No newline at end of file
324.1 --- a/publish/rng/feComposite Thu Feb 24 10:19:12 2011 +0000 324.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 324.3 @@ -1,54 +0,0 @@ 324.4 - <define name='svg.feComposite.content'> 324.5 - <zeroOrMore> 324.6 - <choice> 324.7 - <ref name='animate'/> 324.8 - <ref name='set'/> 324.9 - </choice> 324.10 - </zeroOrMore> 324.11 - </define> 324.12 - 324.13 - <define name='feComposite'> 324.14 - <element name='feComposite'> 324.15 - <ref name='feComposite.attr'/> 324.16 - <ref name='svg.feComposite.content'/> 324.17 - </element> 324.18 - </define> 324.19 - 324.20 - <define name='feComposite.attr' combine='interleave'> 324.21 - <ref name='svg.Core.attr'/> 324.22 - <ref name='svg.FilterColor.attr'/> 324.23 - <ref name='svg.FilterPrimitiveWithIn.attr'/> 324.24 - <attribute name='in2'/> 324.25 - <optional> 324.26 - <attribute name='operator' a:defaultValue='over'> 324.27 - <choice> 324.28 - <value>over</value> 324.29 - <value>in</value> 324.30 - <value>out</value> 324.31 - <value>atop</value> 324.32 - <value>xor</value> 324.33 - <value>arithmetic</value> 324.34 - </choice> 324.35 - </attribute> 324.36 - </optional> 324.37 - <optional> 324.38 - <attribute name='k1'> 324.39 - <ref name='Number.datatype'/> 324.40 - </attribute> 324.41 - </optional> 324.42 - <optional> 324.43 - <attribute name='k2'> 324.44 - <ref name='Number.datatype'/> 324.45 - </attribute> 324.46 - </optional> 324.47 - <optional> 324.48 - <attribute name='k3'> 324.49 - <ref name='Number.datatype'/> 324.50 - </attribute> 324.51 - </optional> 324.52 - <optional> 324.53 - <attribute name='k4'> 324.54 - <ref name='Number.datatype'/> 324.55 - </attribute> 324.56 - </optional> 324.57 - </define>
325.1 --- a/publish/rng/feConvolveMatrix Thu Feb 24 10:19:12 2011 +0000 325.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 325.3 @@ -1,64 +0,0 @@ 325.4 - <define name='svg.feConvolveMatrix.content'> 325.5 - <zeroOrMore> 325.6 - <choice> 325.7 - <ref name='animate'/> 325.8 - <ref name='set'/> 325.9 - </choice> 325.10 - </zeroOrMore> 325.11 - </define> 325.12 - 325.13 - <define name='feConvolveMatrix'> 325.14 - <element name='feConvolveMatrix'> 325.15 - <ref name='feConvolveMatrix.attr'/> 325.16 - <ref name='svg.feConvolveMatrix.content'/> 325.17 - </element> 325.18 - </define> 325.19 - 325.20 - <define name='feConvolveMatrix.attr' combine='interleave'> 325.21 - <ref name='svg.Core.attr'/> 325.22 - <ref name='svg.FilterColor.attr'/> 325.23 - <ref name='svg.FilterPrimitiveWithIn.attr'/> 325.24 - <attribute name='order'> 325.25 - <ref name='NumberOptionalNumber.datatype'/> 325.26 - </attribute> 325.27 - <attribute name='kernelMatrix'/> 325.28 - <optional> 325.29 - <attribute name='divisor'> 325.30 - <ref name='Number.datatype'/> 325.31 - </attribute> 325.32 - </optional> 325.33 - <optional> 325.34 - <attribute name='bias'> 325.35 - <ref name='Number.datatype'/> 325.36 - </attribute> 325.37 - </optional> 325.38 - <optional> 325.39 - <attribute name='targetX'> 325.40 - <ref name='Integer.datatype'/> 325.41 - </attribute> 325.42 - </optional> 325.43 - <optional> 325.44 - <attribute name='targetY'> 325.45 - <ref name='Integer.datatype'/> 325.46 - </attribute> 325.47 - </optional> 325.48 - <optional> 325.49 - <attribute name='edgeMode' a:defaultValue='duplicate'> 325.50 - <choice> 325.51 - <value>duplicate</value> 325.52 - <value>wrap</value> 325.53 - <value>none</value> 325.54 - </choice> 325.55 - </attribute> 325.56 - </optional> 325.57 - <optional> 325.58 - <attribute name='kernelUnitLength'> 325.59 - <ref name='NumberOptionalNumber.datatype'/> 325.60 - </attribute> 325.61 - </optional> 325.62 - <optional> 325.63 - <attribute name='preserveAlpha'> 325.64 - <ref name='Boolean.datatype'/> 325.65 - </attribute> 325.66 - </optional> 325.67 - </define>
326.1 --- a/publish/rng/feDiffuseLighting Thu Feb 24 10:19:12 2011 +0000 326.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 326.3 @@ -1,49 +0,0 @@ 326.4 - <define name='svg.feDiffuseLighting.content'> 326.5 - <choice> 326.6 - <ref name='feDistantLight'/> 326.7 - <ref name='fePointLight'/> 326.8 - <ref name='feSpotLight'/> 326.9 - </choice> 326.10 - <zeroOrMore> 326.11 - <choice> 326.12 - <ref name='animate'/> 326.13 - <ref name='set'/> 326.14 - <ref name='animateColor'/> 326.15 - </choice> 326.16 - </zeroOrMore> 326.17 - </define> 326.18 - 326.19 - <define name='feDiffuseLighting'> 326.20 - <element name='feDiffuseLighting'> 326.21 - <ref name='attlist.feDiffuseLighting'/> 326.22 - <ref name='svg.feDiffuseLighting.content'/> 326.23 - </element> 326.24 - </define> 326.25 - 326.26 - <define name='attlist.feDiffuseLighting' combine='interleave'> 326.27 - <ref name='svg.Core.attrib'/> 326.28 - <ref name='svg.Style.attrib'/> 326.29 - <ref name='svg.Color.attrib'/> 326.30 - <ref name='svg.FilterColor.attrib'/> 326.31 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 326.32 - <optional> 326.33 - <attribute name='lighting-color'> 326.34 - <ref name='SVGColor.datatype'/> 326.35 - </attribute> 326.36 - </optional> 326.37 - <optional> 326.38 - <attribute name='surfaceScale'> 326.39 - <ref name='Number.datatype'/> 326.40 - </attribute> 326.41 - </optional> 326.42 - <optional> 326.43 - <attribute name='diffuseConstant'> 326.44 - <ref name='Number.datatype'/> 326.45 - </attribute> 326.46 - </optional> 326.47 - <optional> 326.48 - <attribute name='kernelUnitLength'> 326.49 - <ref name='NumberOptionalNumber.datatype'/> 326.50 - </attribute> 326.51 - </optional> 326.52 - </define>
327.1 --- a/publish/rng/feDisplacementMap Thu Feb 24 10:19:12 2011 +0000 327.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 327.3 @@ -1,47 +0,0 @@ 327.4 - <define name='svg.feDisplacementMap.content'> 327.5 - <zeroOrMore> 327.6 - <choice> 327.7 - <ref name='animate'/> 327.8 - <ref name='set'/> 327.9 - </choice> 327.10 - </zeroOrMore> 327.11 - </define> 327.12 - 327.13 - <define name='feDisplacementMap'> 327.14 - <element name='feDisplacementMap'> 327.15 - <ref name='attlist.feDisplacementMap'/> 327.16 - <ref name='svg.feDisplacementMap.content'/> 327.17 - </element> 327.18 - </define> 327.19 - 327.20 - <define name='attlist.feDisplacementMap' combine='interleave'> 327.21 - <ref name='svg.Core.attrib'/> 327.22 - <ref name='svg.FilterColor.attrib'/> 327.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 327.24 - <attribute name='in2'/> 327.25 - <optional> 327.26 - <attribute name='scale'> 327.27 - <ref name='Number.datatype'/> 327.28 - </attribute> 327.29 - </optional> 327.30 - <optional> 327.31 - <attribute name='xChannelSelector' a:defaultValue='A'> 327.32 - <choice> 327.33 - <value>R</value> 327.34 - <value>G</value> 327.35 - <value>B</value> 327.36 - <value>A</value> 327.37 - </choice> 327.38 - </attribute> 327.39 - </optional> 327.40 - <optional> 327.41 - <attribute name='yChannelSelector' a:defaultValue='A'> 327.42 - <choice> 327.43 - <value>R</value> 327.44 - <value>G</value> 327.45 - <value>B</value> 327.46 - <value>A</value> 327.47 - </choice> 327.48 - </attribute> 327.49 - </optional> 327.50 - </define>
328.1 --- a/publish/rng/feDistantLight Thu Feb 24 10:19:12 2011 +0000 328.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 328.3 @@ -1,29 +0,0 @@ 328.4 - <define name='svg.feDistantLight.content'> 328.5 - <zeroOrMore> 328.6 - <choice> 328.7 - <ref name='animate'/> 328.8 - <ref name='set'/> 328.9 - </choice> 328.10 - </zeroOrMore> 328.11 - </define> 328.12 - 328.13 - <define name='feDistantLight'> 328.14 - <element name='feDistantLight'> 328.15 - <ref name='feDistantLight.attr'/> 328.16 - <ref name='svg.feDistantLight.content'/> 328.17 - </element> 328.18 - </define> 328.19 - 328.20 - <define name='feDistantLight.attr' combine='interleave'> 328.21 - <ref name='svg.Core.attr'/> 328.22 - <optional> 328.23 - <attribute name='azimuth'> 328.24 - <ref name='Number.datatype'/> 328.25 - </attribute> 328.26 - </optional> 328.27 - <optional> 328.28 - <attribute name='elevation'> 328.29 - <ref name='Number.datatype'/> 328.30 - </attribute> 328.31 - </optional> 328.32 - </define>
329.1 --- a/publish/rng/feDropShadow Thu Feb 24 10:19:12 2011 +0000 329.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 329.3 @@ -1,37 +0,0 @@ 329.4 - <define name='svg.feDropShadow.content'> 329.5 - <zeroOrMore> 329.6 - <choice> 329.7 - <ref name='animate'/> 329.8 - <ref name='set'/> 329.9 - </choice> 329.10 - </zeroOrMore> 329.11 - </define> 329.12 - 329.13 - <define name='feDropShadow'> 329.14 - <element name='feDropShadow'> 329.15 - <ref name='attlist.feDropShadow'/> 329.16 - <ref name='svg.feDropShadow.content'/> 329.17 - </element> 329.18 - </define> 329.19 - 329.20 - <define name='attlist.feDropShadow' combine='interleave'> 329.21 - <ref name='svg.Core.attrib'/> 329.22 - <ref name='svg.FilterColor.attrib'/> 329.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 329.24 - 329.25 - <optional> 329.26 - <attribute name='dx'> 329.27 - <ref name='Coordinate.datatype'/> 329.28 - </attribute> 329.29 - </optional> 329.30 - <optional> 329.31 - <attribute name='dy'> 329.32 - <ref name='Coordinate.datatype'/> 329.33 - </attribute> 329.34 - </optional> 329.35 - <optional> 329.36 - <attribute name='stdDeviation'> 329.37 - <ref name='NumberOptionalNumber.datatype'/> 329.38 - </attribute> 329.39 - </optional> 329.40 - </define>
330.1 --- a/publish/rng/feFlood Thu Feb 24 10:19:12 2011 +0000 330.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 330.3 @@ -1,34 +0,0 @@ 330.4 - <define name='svg.feFlood.content'> 330.5 - <zeroOrMore> 330.6 - <choice> 330.7 - <ref name='animate'/> 330.8 - <ref name='set'/> 330.9 - <ref name='animateColor'/> 330.10 - </choice> 330.11 - </zeroOrMore> 330.12 - </define> 330.13 - 330.14 - <define name='feFlood'> 330.15 - <element name='feFlood'> 330.16 - <ref name='attlist.feFlood'/> 330.17 - <ref name='svg.feFlood.content'/> 330.18 - </element> 330.19 - </define> 330.20 - 330.21 - <define name='attlist.feFlood' combine='interleave'> 330.22 - <ref name='svg.Core.attrib'/> 330.23 - <ref name='svg.Style.attrib'/> 330.24 - <ref name='svg.Color.attrib'/> 330.25 - <ref name='svg.FilterColor.attrib'/> 330.26 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 330.27 - <optional> 330.28 - <attribute name='flood-color'> 330.29 - <ref name='SVGColor.datatype'/> 330.30 - </attribute> 330.31 - </optional> 330.32 - <optional> 330.33 - <attribute name='flood-opacity'> 330.34 - <ref name='OpacityValue.datatype'/> 330.35 - </attribute> 330.36 - </optional> 330.37 - </define>
331.1 --- a/publish/rng/feGaussianBlur Thu Feb 24 10:19:12 2011 +0000 331.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 331.3 @@ -1,27 +0,0 @@ 331.4 - <define name='svg.feGaussianBlur.content'> 331.5 - <zeroOrMore> 331.6 - <choice> 331.7 - <ref name='animate'/> 331.8 - <ref name='set'/> 331.9 - </choice> 331.10 - </zeroOrMore> 331.11 - </define> 331.12 - 331.13 - <define name='feGaussianBlur'> 331.14 - <element name='feGaussianBlur'> 331.15 - <ref name='attlist.feGaussianBlur'/> 331.16 - <ref name='svg.feGaussianBlur.content'/> 331.17 - </element> 331.18 - </define> 331.19 - 331.20 - <define name='attlist.feGaussianBlur' combine='interleave'> 331.21 - <ref name='svg.Core.attrib'/> 331.22 - <ref name='svg.FilterColor.attrib'/> 331.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 331.24 - <optional> 331.25 - <attribute name='stdDeviation'> 331.26 - <ref name='NumberOptionalNumber.datatype'/> 331.27 - </attribute> 331.28 - </optional> 331.29 - </define> 331.30 - 331.31 \ No newline at end of file
332.1 --- a/publish/rng/feImage Thu Feb 24 10:19:12 2011 +0000 332.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 332.3 @@ -1,32 +0,0 @@ 332.4 - <define name='SVG.feImage.content'> 332.5 - <zeroOrMore> 332.6 - <choice> 332.7 - <ref name='animate'/> 332.8 - <ref name='set'/> 332.9 - <ref name='animateTransform'/> 332.10 - </choice> 332.11 - </zeroOrMore> 332.12 - </define> 332.13 - 332.14 - <define name='feImage'> 332.15 - <element name='feImage'> 332.16 - <ref name='attlist.feImage'/> 332.17 - <ref name='svg.feImage.content'/> 332.18 - </element> 332.19 - </define> 332.20 - 332.21 - <define name='attlist.feImage' combine='interleave'> 332.22 - <ref name='svg.Core.attrib'/> 332.23 - <ref name='svg.Style.attrib'/> 332.24 - <ref name='svg.Presentation.attrib'/> 332.25 - <ref name='svg.FilterPrimitive.attrib'/> 332.26 - <ref name='svg.XLinkEmbed.attrib'/> 332.27 - <ref name='svg.External.attrib'/> 332.28 - <ref name='svg.Transition.attrib'/> 332.29 - <ref name='svg.ShadowInherit.attrib'/> 332.30 - <optional> 332.31 - <attribute name='preserveAspectRatio' a:defaultValue='xMidYMid meet'> 332.32 - <ref name='PreserveAspectRatioSpec.datatype'/> 332.33 - </attribute> 332.34 - </optional> 332.35 - </define>
333.1 --- a/publish/rng/feMerge Thu Feb 24 10:19:12 2011 +0000 333.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 333.3 @@ -1,41 +0,0 @@ 333.4 - <define name='svg.feMerge.content'> 333.5 - <zeroOrMore> 333.6 - <ref name='feMergeNode'/> 333.7 - </zeroOrMore> 333.8 - </define> 333.9 - 333.10 - <define name='feMerge'> 333.11 - <element name='feMerge'> 333.12 - <ref name='attlist.feMerge'/> 333.13 - <ref name='svg.feMerge.content'/> 333.14 - </element> 333.15 - </define> 333.16 - 333.17 - <define name='attlist.feMerge' combine='interleave'> 333.18 - <ref name='svg.Core.attrib'/> 333.19 - <ref name='svg.FilterColor.attrib'/> 333.20 - <ref name='svg.FilterPrimitive.attrib'/> 333.21 - </define> 333.22 - 333.23 - <define name='svg.feMergeNode.content'> 333.24 - <zeroOrMore> 333.25 - <choice> 333.26 - <ref name='animate'/> 333.27 - <ref name='set'/> 333.28 - </choice> 333.29 - </zeroOrMore> 333.30 - </define> 333.31 - 333.32 - <define name='feMergeNode'> 333.33 - <element name='feMergeNode'> 333.34 - <ref name='attlist.feMergeNode'/> 333.35 - <ref name='svg.feMergeNode.content'/> 333.36 - </element> 333.37 - </define> 333.38 - 333.39 - <define name='attlist.feMergeNode' combine='interleave'> 333.40 - <ref name='svg.Core.attrib'/> 333.41 - <optional> 333.42 - <attribute name='in'/> 333.43 - </optional> 333.44 - </define>
334.1 --- a/publish/rng/feMorphology Thu Feb 24 10:19:12 2011 +0000 334.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 334.3 @@ -1,34 +0,0 @@ 334.4 - <define name='svg.feMorphology.content'> 334.5 - <zeroOrMore> 334.6 - <choice> 334.7 - <ref name='animate'/> 334.8 - <ref name='set'/> 334.9 - </choice> 334.10 - </zeroOrMore> 334.11 - </define> 334.12 - 334.13 - <define name='feMorphology'> 334.14 - <element name='feMorphology'> 334.15 - <ref name='attlist.feMorphology'/> 334.16 - <ref name='svg.feMorphology.content'/> 334.17 - </element> 334.18 - </define> 334.19 - 334.20 - <define name='attlist.feMorphology' combine='interleave'> 334.21 - <ref name='svg.Core.attrib'/> 334.22 - <ref name='svg.FilterColor.attrib'/> 334.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 334.24 - <optional> 334.25 - <attribute name='operator' a:defaultValue='erode'> 334.26 - <choice> 334.27 - <value>erode</value> 334.28 - <value>dilate</value> 334.29 - </choice> 334.30 - </attribute> 334.31 - </optional> 334.32 - <optional> 334.33 - <attribute name='radius'> 334.34 - <ref name='NumberOptionalNumber.datatype'/> 334.35 - </attribute> 334.36 - </optional> 334.37 - </define>
335.1 --- a/publish/rng/feOffset Thu Feb 24 10:19:12 2011 +0000 335.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 335.3 @@ -1,21 +0,0 @@ 335.4 - <define name='svg.feOffset.content'> 335.5 - <zeroOrMore> 335.6 - <choice> 335.7 - <ref name='animate'/> 335.8 - <ref name='set'/> 335.9 - </choice> 335.10 - </zeroOrMore> 335.11 - </define> 335.12 - 335.13 - <define name='feOffset'> 335.14 - <element name='feOffset'> 335.15 - <ref name='attlist.feOffset'/> 335.16 - <ref name='svg.feOffset.content'/> 335.17 - </element> 335.18 - </define> 335.19 - 335.20 - <define name='attlist.feOffset' combine='interleave'> 335.21 - <ref name='svg.Core.attrib'/> 335.22 - <ref name='svg.FilterColor.attrib'/> 335.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 335.24 - </define>
336.1 --- a/publish/rng/fePointLight Thu Feb 24 10:19:12 2011 +0000 336.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 336.3 @@ -1,34 +0,0 @@ 336.4 - <define name='svg.fePointLight.content'> 336.5 - <zeroOrMore> 336.6 - <choice> 336.7 - <ref name='animate'/> 336.8 - <ref name='set'/> 336.9 - </choice> 336.10 - </zeroOrMore> 336.11 - </define> 336.12 - 336.13 - <define name='fePointLight'> 336.14 - <element name='fePointLight'> 336.15 - <ref name='fePointLight.attr'/> 336.16 - <ref name='svg.fePointLight.content'/> 336.17 - </element> 336.18 - </define> 336.19 - 336.20 - <define name='fePointLight.attr' combine='interleave'> 336.21 - <ref name='svg.Core.attr'/> 336.22 - <optional> 336.23 - <attribute name='x'> 336.24 - <ref name='Number.datatype'/> 336.25 - </attribute> 336.26 - </optional> 336.27 - <optional> 336.28 - <attribute name='y'> 336.29 - <ref name='Number.datatype'/> 336.30 - </attribute> 336.31 - </optional> 336.32 - <optional> 336.33 - <attribute name='z'> 336.34 - <ref name='Number.datatype'/> 336.35 - </attribute> 336.36 - </optional> 336.37 - </define>
337.1 --- a/publish/rng/feSpecularLighting Thu Feb 24 10:19:12 2011 +0000 337.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 337.3 @@ -1,54 +0,0 @@ 337.4 - <define name='svg.feSpecularLighting.content'> 337.5 - <choice> 337.6 - <ref name='feDistantLight'/> 337.7 - <ref name='fePointLight'/> 337.8 - <ref name='feSpotLight'/> 337.9 - </choice> 337.10 - <zeroOrMore> 337.11 - <choice> 337.12 - <ref name='animate'/> 337.13 - <ref name='set'/> 337.14 - <ref name='animateColor'/> 337.15 - </choice> 337.16 - </zeroOrMore> 337.17 - </define> 337.18 - 337.19 - <define name='feSpecularLighting'> 337.20 - <element name='feSpecularLighting'> 337.21 - <ref name='attlist.feSpecularLighting'/> 337.22 - <ref name='svg.feSpecularLighting.content'/> 337.23 - </element> 337.24 - </define> 337.25 - 337.26 - <define name='attlist.feSpecularLighting' combine='interleave'> 337.27 - <ref name='svg.Core.attrib'/> 337.28 - <ref name='svg.Style.attrib'/> 337.29 - <ref name='svg.Color.attrib'/> 337.30 - <ref name='svg.FilterColor.attrib'/> 337.31 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 337.32 - <optional> 337.33 - <attribute name='lighting-color'> 337.34 - <ref name='SVGColor.datatype'/> 337.35 - </attribute> 337.36 - </optional> 337.37 - <optional> 337.38 - <attribute name='surfaceScale'> 337.39 - <ref name='Number.datatype'/> 337.40 - </attribute> 337.41 - </optional> 337.42 - <optional> 337.43 - <attribute name='specularConstant'> 337.44 - <ref name='Number.datatype'/> 337.45 - </attribute> 337.46 - </optional> 337.47 - <optional> 337.48 - <attribute name='specularExponent'> 337.49 - <ref name='Number.datatype'/> 337.50 - </attribute> 337.51 - </optional> 337.52 - <optional> 337.53 - <attribute name='kernelUnitLength'> 337.54 - <ref name='NumberOptionalNumber.datatype'/> 337.55 - </attribute> 337.56 - </optional> 337.57 - </define>
338.1 --- a/publish/rng/feSpotLight Thu Feb 24 10:19:12 2011 +0000 338.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 338.3 @@ -1,59 +0,0 @@ 338.4 -<define name='svg.feSpotLight.content'> 338.5 - <zeroOrMore> 338.6 - <choice> 338.7 - <ref name='animate'/> 338.8 - <ref name='set'/> 338.9 - </choice> 338.10 - </zeroOrMore> 338.11 - </define> 338.12 - 338.13 - <define name='feSpotLight'> 338.14 - <element name='feSpotLight'> 338.15 - <ref name='feSpotLight.attr'/> 338.16 - <ref name='svg.feSpotLight.content'/> 338.17 - </element> 338.18 - </define> 338.19 - 338.20 - <define name='feSpotLight.attr' combine='interleave'> 338.21 - <ref name='svg.Core.attr'/> 338.22 - <optional> 338.23 - <attribute name='x'> 338.24 - <ref name='Number.datatype'/> 338.25 - </attribute> 338.26 - </optional> 338.27 - <optional> 338.28 - <attribute name='y'> 338.29 - <ref name='Number.datatype'/> 338.30 - </attribute> 338.31 - </optional> 338.32 - <optional> 338.33 - <attribute name='z'> 338.34 - <ref name='Number.datatype'/> 338.35 - </attribute> 338.36 - </optional> 338.37 - <optional> 338.38 - <attribute name='pointsAtX'> 338.39 - <ref name='Number.datatype'/> 338.40 - </attribute> 338.41 - </optional> 338.42 - <optional> 338.43 - <attribute name='pointsAtY'> 338.44 - <ref name='Number.datatype'/> 338.45 - </attribute> 338.46 - </optional> 338.47 - <optional> 338.48 - <attribute name='pointsAtZ'> 338.49 - <ref name='Number.datatype'/> 338.50 - </attribute> 338.51 - </optional> 338.52 - <optional> 338.53 - <attribute name='specularExponent'> 338.54 - <ref name='Number.datatype'/> 338.55 - </attribute> 338.56 - </optional> 338.57 - <optional> 338.58 - <attribute name='limitingConeAngle'> 338.59 - <ref name='Number.datatype'/> 338.60 - </attribute> 338.61 - </optional> 338.62 - </define>
339.1 --- a/publish/rng/feTile Thu Feb 24 10:19:12 2011 +0000 339.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 339.3 @@ -1,21 +0,0 @@ 339.4 - <define name='svg.feTile.content'> 339.5 - <zeroOrMore> 339.6 - <choice> 339.7 - <ref name='animate'/> 339.8 - <ref name='set'/> 339.9 - </choice> 339.10 - </zeroOrMore> 339.11 - </define> 339.12 - 339.13 - <define name='feTile'> 339.14 - <element name='feTile'> 339.15 - <ref name='attlist.feTile'/> 339.16 - <ref name='svg.feTile.content'/> 339.17 - </element> 339.18 - </define> 339.19 - 339.20 - <define name='attlist.feTile' combine='interleave'> 339.21 - <ref name='svg.Core.attrib'/> 339.22 - <ref name='svg.FilterColor.attrib'/> 339.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 339.24 - </define>
340.1 --- a/publish/rng/feTurbulence Thu Feb 24 10:19:12 2011 +0000 340.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 340.3 @@ -1,52 +0,0 @@ 340.4 - <define name='svg.feTurbulence.content'> 340.5 - <zeroOrMore> 340.6 - <choice> 340.7 - <ref name='animate'/> 340.8 - <ref name='set'/> 340.9 - </choice> 340.10 - </zeroOrMore> 340.11 - </define> 340.12 - 340.13 - <define name='feTurbulence'> 340.14 - <element name='feTurbulence'> 340.15 - <ref name='attlist.feTurbulence'/> 340.16 - <ref name='svg.feTurbulence.content'/> 340.17 - </element> 340.18 - </define> 340.19 - 340.20 - <define name='attlist.feTurbulence' combine='interleave'> 340.21 - <ref name='svg.Core.attrib'/> 340.22 - <ref name='svg.FilterColor.attrib'/> 340.23 - <ref name='svg.FilterPrimitive.attrib'/> 340.24 - <optional> 340.25 - <attribute name='baseFrequency'> 340.26 - <ref name='NumberOptionalNumber.datatype'/> 340.27 - </attribute> 340.28 - </optional> 340.29 - <optional> 340.30 - <attribute name='numOctaves'> 340.31 - <ref name='Integer.datatype'/> 340.32 - </attribute> 340.33 - </optional> 340.34 - <optional> 340.35 - <attribute name='seed'> 340.36 - <ref name='Number.datatype'/> 340.37 - </attribute> 340.38 - </optional> 340.39 - <optional> 340.40 - <attribute name='stitchTiles' a:defaultValue='noStitch'> 340.41 - <choice> 340.42 - <value>stitch</value> 340.43 - <value>noStitch</value> 340.44 - </choice> 340.45 - </attribute> 340.46 - </optional> 340.47 - <optional> 340.48 - <attribute name='type' a:defaultValue='turbulence'> 340.49 - <choice> 340.50 - <value>fractalNoise</value> 340.51 - <value>turbulence</value> 340.52 - </choice> 340.53 - </attribute> 340.54 - </optional> 340.55 - </define>
341.1 --- a/publish/rng/feUnsharpMask Thu Feb 24 10:19:12 2011 +0000 341.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 341.3 @@ -1,33 +0,0 @@ 341.4 - <define name='svg.feUnsharpMask.content'> 341.5 - <zeroOrMore> 341.6 - <choice> 341.7 - <ref name='animate'/> 341.8 - <ref name='set'/> 341.9 - </choice> 341.10 - </zeroOrMore> 341.11 - </define> 341.12 - 341.13 - <define name='feUnsharpMask'> 341.14 - <element name='feUnsharpMask'> 341.15 - <ref name='attlist.feUnsharpMask'/> 341.16 - <ref name='svg.feUnsharpMask.content'/> 341.17 - </element> 341.18 - </define> 341.19 - 341.20 - <define name='attlist.feUnsharpMask' combine='interleave'> 341.21 - <ref name='svg.Core.attrib'/> 341.22 - <ref name='svg.FilterColor.attrib'/> 341.23 - <ref name='svg.FilterPrimitiveWithIn.attrib'/> 341.24 - <optional> 341.25 - <attribute name='amount'> 341.26 - <ref name='Number.datatype'/> 341.27 - </attribute> 341.28 - <attribute name='radius'> 341.29 - <ref name='NumberOptionalNumber.datatype'/> 341.30 - </attribute> 341.31 - <attribute name='threshold'> 341.32 - <ref name='Number.datatype'/> 341.33 - </attribute> 341.34 - </optional> 341.35 - </define> 341.36 -
342.1 --- a/publish/rng/filter Thu Feb 24 10:19:12 2011 +0000 342.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 342.3 @@ -1,91 +0,0 @@ 342.4 - <define name='filter'> 342.5 - <element name='filter'> 342.6 - <ref name='filter.AT'/> 342.7 - <ref name='svg.filter.content'/> 342.8 - </element> 342.9 - </define> 342.10 - 342.11 - <define name='filter.AT' combine='interleave'> 342.12 - <ref name='svg.Core.attr'/> 342.13 - <ref name='svg.Style.attr'/> 342.14 - <ref name='svg.Presentation.attrib'/> 342.15 - <ref name='svg.XLink.attrib'/> 342.16 - <ref name='svg.External.attrib'/> 342.17 - <optional> 342.18 - <attribute name='x'> 342.19 - <ref name='Coordinate.datatype'/> 342.20 - </attribute> 342.21 - </optional> 342.22 - <optional> 342.23 - <attribute name='y'> 342.24 - <ref name='Coordinate.datatype'/> 342.25 - </attribute> 342.26 - </optional> 342.27 - <optional> 342.28 - <attribute name='width'> 342.29 - <ref name='Length.datatype'/> 342.30 - </attribute> 342.31 - </optional> 342.32 - <optional> 342.33 - <attribute name='height'> 342.34 - <ref name='Length.datatype'/> 342.35 - </attribute> 342.36 - </optional> 342.37 - <optional> 342.38 - <attribute name='mx'> 342.39 - <ref name='Coordinate.datatype'/> 342.40 - </attribute> 342.41 - </optional> 342.42 - <optional> 342.43 - <attribute name='my'> 342.44 - <ref name='Coordinate.datatype'/> 342.45 - </attribute> 342.46 - </optional> 342.47 - <optional> 342.48 - <attribute name='mw'> 342.49 - <ref name='Length.datatype'/> 342.50 - </attribute> 342.51 - </optional> 342.52 - <optional> 342.53 - <attribute name='mh'> 342.54 - <ref name='Length.datatype'/> 342.55 - </attribute> 342.56 - </optional> 342.57 - <optional> 342.58 - <attribute name='filterRes'> 342.59 - <ref name='NumberOptionalNumber.datatype'/> 342.60 - </attribute> 342.61 - </optional> 342.62 - <optional> 342.63 - <attribute name='filterUnits'> 342.64 - <choice> 342.65 - <value>userSpaceOnUse</value> 342.66 - <value>objectBoundingBox</value> 342.67 - </choice> 342.68 - </attribute> 342.69 - </optional> 342.70 - <optional> 342.71 - <attribute name='primitiveUnits'> 342.72 - <choice> 342.73 - <value>userSpaceOnUse</value> 342.74 - <value>objectBoundingBox</value> 342.75 - </choice> 342.76 - </attribute> 342.77 - </optional> 342.78 - <optional> 342.79 - <attribute name='filterMarginsUnits'> 342.80 - <choice> 342.81 - <value>userSpaceOnUse</value> 342.82 - <value>objectBoundingBox</value> 342.83 - </choice> 342.84 - </attribute> 342.85 - </optional> 342.86 - <optional> 342.87 - <attribute name='primitiveMarginsUnits'> 342.88 - <choice> 342.89 - <value>userSpaceOnUse</value> 342.90 - <value>objectBoundingBox</value> 342.91 - </choice> 342.92 - </attribute> 342.93 - </optional> 342.94 - </define>
343.1 --- a/publish/rng/filter-primitive-attr Thu Feb 24 10:19:12 2011 +0000 343.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 343.3 @@ -1,52 +0,0 @@ 343.4 - <define name='svg.FilterPrimitive.attrib'> 343.5 - <optional> 343.6 - <attribute name='x'> 343.7 - <ref name='Coordinate.datatype'/> 343.8 - </attribute> 343.9 - </optional> 343.10 - <optional> 343.11 - <attribute name='y'> 343.12 - <ref name='Coordinate.datatype'/> 343.13 - </attribute> 343.14 - </optional> 343.15 - <optional> 343.16 - <attribute name='width'> 343.17 - <ref name='Length.datatype'/> 343.18 - </attribute> 343.19 - </optional> 343.20 - <optional> 343.21 - <attribute name='height'> 343.22 - <ref name='Length.datatype'/> 343.23 - </attribute> 343.24 - </optional> 343.25 - <optional> 343.26 - <attribute name='mx'> 343.27 - <ref name='Coordinate.datatype'/> 343.28 - </attribute> 343.29 - </optional> 343.30 - <optional> 343.31 - <attribute name='my'> 343.32 - <ref name='Coordinate.datatype'/> 343.33 - </attribute> 343.34 - </optional> 343.35 - <optional> 343.36 - <attribute name='mw'> 343.37 - <ref name='Length.datatype'/> 343.38 - </attribute> 343.39 - </optional> 343.40 - <optional> 343.41 - <attribute name='mh'> 343.42 - <ref name='Length.datatype'/> 343.43 - </attribute> 343.44 - </optional> 343.45 - <optional> 343.46 - <attribute name='result'/> 343.47 - </optional> 343.48 - </define> 343.49 - 343.50 - <define name='svg.FilterPrimitiveWithIn.attrib'> 343.51 - <ref name='svg.FilterPrimitive.attrib'/> 343.52 - <optional> 343.53 - <attribute name='in'/> 343.54 - </optional> 343.55 - </define>
344.1 --- a/publish/style/W3C-WD.css Thu Feb 24 10:19:12 2011 +0000 344.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 344.3 @@ -1,89 +0,0 @@ 344.4 - 344.5 -/* Style for a public "Working Draft" */ 344.6 - 344.7 -/* 344.8 - Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 344.9 - The following software licensing rules apply: 344.10 - http://www.w3.org/Consortium/Legal/copyright-software */ 344.11 - 344.12 -/* $Id$ */ 344.13 - 344.14 - 344.15 -body { 344.16 - padding: 2em 1em 2em 70px; 344.17 - margin: 0; 344.18 - font-family: sans-serif; 344.19 - color: black; 344.20 - background: white; 344.21 - background-position: top left; 344.22 - background-attachment: fixed; 344.23 - background-repeat: no-repeat; 344.24 -} 344.25 -:link { color: #00C; background: transparent } 344.26 -:visited { color: #609; background: transparent } 344.27 -a:active { color: #C00; background: transparent } 344.28 - 344.29 -a:link img, a:visited img { border-style: none } /* no border on img links */ 344.30 - 344.31 -a img { color: white; } /* trick to hide the border in Netscape 4 */ 344.32 -@media all { /* hide the next rule from Netscape 4 */ 344.33 - a img { color: inherit; } /* undo the color change above */ 344.34 -} 344.35 - 344.36 -th, td { /* ns 4 */ 344.37 - font-family: sans-serif; 344.38 -} 344.39 - 344.40 -h1, h2, h3, h4, h5, h6 { text-align: left } 344.41 -/* background should be transparent, but WebTV has a bug */ 344.42 -h1, h2, h3 { color: #005A9C; background: white } 344.43 -h1 { font: 170% sans-serif } 344.44 -h2 { font: 140% sans-serif } 344.45 -h3 { font: 120% sans-serif } 344.46 -h4 { font: bold 100% sans-serif } 344.47 -h5 { font: italic 100% sans-serif } 344.48 -h6 { font: small-caps 100% sans-serif } 344.49 - 344.50 -.hide { display: none } 344.51 - 344.52 -div.head { margin-bottom: 1em } 344.53 -div.head h1 { margin-top: 2em; clear: both } 344.54 -div.head table { margin-left: 2em; margin-top: 2em } 344.55 - 344.56 -p.copyright { font-size: small } 344.57 -p.copyright small { font-size: small } 344.58 - 344.59 -@media screen { /* hide from IE3 */ 344.60 -a[href]:hover { background: #ffa } 344.61 -} 344.62 - 344.63 -pre { margin-left: 2em } 344.64 -/* 344.65 -p { 344.66 - margin-top: 0.6em; 344.67 - margin-bottom: 0.6em; 344.68 -} 344.69 -*/ 344.70 -dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */ 344.71 -dt { font-weight: bold } 344.72 - 344.73 -pre, code { font-family: monospace } /* navigator 4 requires this */ 344.74 - 344.75 -ul.toc { 344.76 - list-style: disc; /* Mac NS has problem with 'none' */ 344.77 - list-style: none; 344.78 -} 344.79 - 344.80 -@media aural { 344.81 - h1, h2, h3 { stress: 20; richness: 90 } 344.82 - .hide { speak: none } 344.83 - p.copyright { volume: x-soft; speech-rate: x-fast } 344.84 - dt { pause-before: 20% } 344.85 - pre { speak-punctuation: code } 344.86 -} 344.87 - 344.88 - 344.89 - 344.90 -body { 344.91 - background-image: url(http://www.w3.org/StyleSheets/TR/logo-WD); 344.92 -}
345.1 --- a/publish/style/expanders.js Thu Feb 24 10:19:12 2011 +0000 345.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 345.3 @@ -1,32 +0,0 @@ 345.4 -function expand(e) { 345.5 - e = e.parentNode; 345.6 - e.parentNode.removeAttribute('class'); 345.7 - e.style.display = "none"; 345.8 - e.nextSibling.style.display = "inline"; 345.9 -} 345.10 - 345.11 -(function() { 345.12 - var i, a = [], e0, e1p, e1, e2, l = document.getElementsByTagName('span'); 345.13 - for (i = 0; i != l.length; i++) { 345.14 - e0 = l[i]; 345.15 - if (e0.getAttribute('class') == 'expanding') { 345.16 - a.push(e0); 345.17 - } 345.18 - } 345.19 - for (i = 0; i != a.length; i++) { 345.20 - e0 = a[i]; 345.21 - e1 = document.createElement('span'); 345.22 - e1.setAttribute('class', 'expander'); 345.23 - e1.setAttribute('onclick', 'expand(event.target)'); 345.24 - e1p = document.createElement('span'); 345.25 - e1p.textContent = ' '; 345.26 - e1p.appendChild(e1); 345.27 - e2 = document.createElement('span'); 345.28 - e2.style.display = 'none'; 345.29 - while (e0.firstChild) { 345.30 - e2.appendChild(e0.firstChild); 345.31 - } 345.32 - e0.appendChild(e1p); 345.33 - e0.appendChild(e2); 345.34 - } 345.35 -})();
346.1 --- a/publish/style/svg-style-extra.css Thu Feb 24 10:19:12 2011 +0000 346.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 346.3 @@ -1,179 +0,0 @@ 346.4 -body { line-height: 1.3; } 346.5 - 346.6 -.element-summary { background: #d9e8ff; padding: 1em; margin-top: 1em } 346.7 -.element-summary-name { float: right; font-size: 110% } 346.8 -.element-summary dl, .element-summary dt { margin-top: 0; margin-bottom: 0; } 346.9 -.element-summary * + dt { margin-top: 0.5em; } 346.10 -.element-summary dd { margin-top: 0; } 346.11 -.element-summary ul.no-bullets { list-style: none; padding-left: 0em } 346.12 -.element-summary ul.no-bullets li { padding-left: 2em; text-indent: -2em; } 346.13 -.expander { color: #888; text-decoration: underline; cursor: pointer; font-size: 85% } 346.14 -.expander { } 346.15 -.expander:active { color: #C00 } 346.16 -.expander:hover { background: #ffa } 346.17 -.expander:after { content: 'show »' } 346.18 - 346.19 -.xgrammar { /*color: #005a9c;*/ color: #A52A2A; font-family: monospace; font-size: 90% } 346.20 - 346.21 -pre.idl { color: black; background: #d9e8ff; padding: 1em; margin-top: 1em; margin-left: 0; font-size: 1em; overflow: auto; /*white-space: pre-wrap*/ } 346.22 -pre.idl a:link, pre.idl a:visited { color: black; } 346.23 - 346.24 -dl.interface dt { 346.25 - margin-top: 1em; 346.26 -} 346.27 - 346.28 -dl.interface dl.attributes > dt, 346.29 -dl.interface dl.constants > dt, 346.30 -dl.interface dl.operations > dt { 346.31 - margin-top: 2em; 346.32 -} 346.33 - 346.34 -dl.interface dl.attributes > dt, 346.35 -dl.interface dl.constants > dt, 346.36 -dl.interface dl.operations > dt, 346.37 -dl.interface ol.parameters > li, 346.38 -dl.interface dl.exceptions > dt { 346.39 - font-weight: normal; 346.40 - display: list-item; 346.41 -} 346.42 - 346.43 -dl.interface dl.attributes > dt:first-child, 346.44 -dl.interface dl.constants > dt:first-child, 346.45 -dl.interface dl.operations > dt:first-child, 346.46 -dl.interface ol.parameters > li:first-child, 346.47 -dl.interface dl.exceptions > dt:first-child { 346.48 - margin-top: 0; 346.49 -} 346.50 - 346.51 -dl.interface dl.attributes > dd, 346.52 -dl.interface dl.constants > dd, 346.53 -dl.interface dl.operations > dd, 346.54 -dl.interface ol.parameters > li, 346.55 -dl.interface dl.exceptions > dd { 346.56 - margin-top: 0.5em; 346.57 - margin-left: 0; 346.58 -} 346.59 - 346.60 -dl.interface dl.attribute { 346.61 - /*margin-left: 2em;*/ 346.62 -} 346.63 - 346.64 -dl.interface dd > *:first-child, 346.65 -dl.interface ol.parameters > li, 346.66 -dl.interface ol.parameters > li > *:first-child + * { 346.67 - margin-top: 0; 346.68 -} 346.69 - 346.70 -ol.parameters > li > .parameter { 346.71 - float: left; 346.72 -} 346.73 - 346.74 -ol.parameters > li > .parameter::after { 346.75 - content: " — "; 346.76 -} 346.77 - 346.78 -.idl .keyword { 346.79 - /*font-weight: bold;*/ 346.80 -} 346.81 - 346.82 -.idlattr, .idlattr:link, .idlattr:visited { 346.83 - background: #d9e8ff; 346.84 - color: black; 346.85 -} 346.86 - 346.87 -ol.parameters { 346.88 - list-style-type: disc; 346.89 - padding-left: 0; 346.90 -} 346.91 - 346.92 -var { 346.93 - font-style: italic; 346.94 -} 346.95 - 346.96 -dl.definitions > dt, 346.97 -.adef-list dl > dt { margin-top: 1em; } 346.98 - 346.99 -dl.definitions > dt + dt, 346.100 -.adef-list dl > dt + dt { margin-top: 0; } 346.101 - 346.102 -dl.definitions > dd > :first-child, 346.103 -.adef-list dl > dd > :first-child { margin-top: 0; } 346.104 - 346.105 -table.vert { 346.106 - border-collapse: collapse; 346.107 - border-top: 2px solid #005a9c; 346.108 - border-bottom: 2px solid #005a9c; 346.109 - margin-top: 1em; 346.110 - margin-bottom: 1em; 346.111 - margin-left: auto; 346.112 - margin-right: auto; 346.113 -} 346.114 -table.vert td { 346.115 - background: #f0f6ff; 346.116 -} 346.117 -table.vert th { 346.118 - text-align: left; 346.119 - vertical-align: bottom; 346.120 - border-bottom: 2px solid #005a9c; 346.121 - white-space: nowrap; 346.122 - color: #d9e8ff; 346.123 - background: #005a9c; 346.124 -} 346.125 -table.vert th a:link, 346.126 -table.vert th a:visited { color: #d9e8ff; } 346.127 -table.vert th a:hover { color: black; } 346.128 -table.vert th, table.vert td { padding: 0.5em 0.75em; } 346.129 -table.vert th .attr-name { color: white } 346.130 -table.vert th a:hover .element-name { color: #2A2AA5 } 346.131 -table.vert th .prop-name { color: white } 346.132 -table.vert th a:hover .element-name { color: black } 346.133 -table.vert th .element-name { color: white } 346.134 -table.vert th a:hover .element-name { color: #A52A2A } 346.135 -table.vert td { vertical-align: top; } 346.136 -table.offset { margin-left: 2em; margin-right: 2em; } 346.137 -.indented { 346.138 - margin-left: 2em; 346.139 -} 346.140 -.math var, .math sub, .math sup { 346.141 - font-family: serif; 346.142 -} 346.143 -.separated { 346.144 - word-spacing: 1em; 346.145 -} 346.146 -.familyname { 346.147 - text-transform: uppercase; 346.148 -} 346.149 - 346.150 -dl.unemphasized-names > dt > a { font-weight: normal } 346.151 - 346.152 -.header { background: #eee; padding: 0.5em; font-size: 85%; text-align: right } 346.153 -.header.top { border-top: 1px solid #ccc } 346.154 -.header.bottom { border-bottom: 1px solid #ccc; margin-top: 1em } 346.155 -.header .namedate { display: block; float: left } 346.156 -.header ul { display: block; margin: 0 } 346.157 -.header ul li { display: inline; margin: 0 } 346.158 -.header ul li:first-child::before { content: none } 346.159 -.header ul li::before { content: ' ⋅ ' } 346.160 -.header .after { display: block; clear: both; height: 1px } 346.161 -.header .after::before { content: ' ' } 346.162 - 346.163 -table.property-table { font-size: 90%; border-collapse: collapse } 346.164 -table.vert td { border-top: 1px solid #005a9c; border-top-color: rgba(0, 90, 156, 0.5) } 346.165 -.tocline1 { font-weight: bold } 346.166 -/* .toc { margin-bottom: 0.5em } */ 346.167 - 346.168 -.idl-type-parenthetical { font-size: 90% } 346.169 -td > :first-child, 346.170 -th > :first-child { margin-top: 0 } 346.171 -td p { 346.172 - margin-top: 1em; 346.173 - margin-bottom: 0; 346.174 -} 346.175 - 346.176 -table.collection { border-collapse: collapse; background: #fff; font-size: 90%; margin-bottom: 1em; margin-left: 2em } 346.177 -table.collection th { background: #eee } 346.178 -table.collection td, table.collection th { border: 1px solid black; padding: 0.25em; vertical-align: baseline } 346.179 - 346.180 -ol.notes { list-style-type: none; padding-left: 0 } 346.181 - 346.182 -.colorpatch { width: 14px; height:14px; border: 1px solid black; }
347.1 --- a/publish/style/svg-style.css Thu Feb 24 10:19:12 2011 +0000 347.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 347.3 @@ -1,454 +0,0 @@ 347.4 -/* 347.5 - * style sheet for svg specification 347.6 - */ 347.7 - 347.8 - 347.9 -body { 347.10 - color: black; 347.11 - /* text-align: justify; */ 347.12 - font-family: helvetica, sans-serif; 347.13 - background: white; 347.14 - margin: 2em; 347.15 - /* for the rec: background: #def url(recbg.jpg); */ 347.16 -} 347.17 -.navlinks { 347.18 - text-align: center; 347.19 -} 347.20 -h2, h3, h4, h5, h6 { 347.21 - text-align: left; 347.22 -} 347.23 - 347.24 -.header { 347.25 - text-align: right; 347.26 - border-bottom: 1px solid #aaa; 347.27 - padding-bottom: 0.5em; 347.28 - font-size: 80%; 347.29 -} 347.30 - 347.31 -.footer { 347.32 - text-align: right; 347.33 - margin-top: 1em; 347.34 - border-top: 1px solid #aaa; 347.35 - padding-top: 0.5em; 347.36 - font-size: 80%; 347.37 -} 347.38 - 347.39 -.header ul, .footer ul { 347.40 - display: inline; 347.41 - padding: 0; 347.42 -} 347.43 - 347.44 -.header li, .footer li { 347.45 - display: inline; 347.46 - border-left: 1px solid #aaa; 347.47 - padding-left: 0.2em; 347.48 -} 347.49 - 347.50 -h1 { 347.51 - clear: left; 347.52 - margin-top: 1em; 347.53 - text-align: center; 347.54 -} 347.55 - 347.56 -pre { margin-left: 2em } 347.57 -pre { 347.58 - color: #a52a2a; 347.59 - font-family: monospace; 347.60 - font-size: 90% 347.61 -} 347.62 -pre.svgsamplecompressed { 347.63 - font-size: 75%; 347.64 - letter-spacing: -.05em; 347.65 - line-height: 95% 347.66 -} 347.67 -pre strong { 347.68 - color: #004400; 347.69 - font-weight: bold 347.70 -} 347.71 -.filterformula { 347.72 - color: #a52a2a; 347.73 - font-family: monospace; 347.74 - font-size: 90%; 347.75 - margin-left: 2em 347.76 -} 347.77 - 347.78 -div.dtd-fragment { 347.79 - background-color: #dddddd; 347.80 - margin-left: 0; 347.81 -} 347.82 -.dtd-fragment { 347.83 - background-color: #dddddd; 347.84 - margin-left: 0; 347.85 -} 347.86 -.idl-code { 347.87 - margin: 0; 347.88 - font-family: monospace; 347.89 - border: 1px solid black; 347.90 - white-space: pre; 347.91 - color: black; 347.92 - background-color: #dfdfdf; 347.93 -} 347.94 - 347.95 -.adef { 347.96 - font-family: monospace; 347.97 - font-weight: bold; 347.98 -} 347.99 - 347.100 - 347.101 -address { 347.102 - text-align: right; 347.103 - font-style: italic; 347.104 -} 347.105 - 347.106 -var { 347.107 - font-style: normal; 347.108 -} 347.109 -img { 347.110 - border: 0; 347.111 -} 347.112 -.toc { 347.113 - text-indent: 0; 347.114 -} 347.115 -.toc2 { 347.116 - text-indent: 2em; 347.117 -} 347.118 -.toc3 { 347.119 - text-indent: 4em; 347.120 -} 347.121 -p.toc-line { 347.122 - margin-top: 1em; 347.123 - margin-bottom: 1em; 347.124 - text-indent: 0; 347.125 -} 347.126 - 347.127 -/* it should be 'inherit', but netscape inserts a random color :-( */ 347.128 -a.noxref:link, a.noxref:visited {color: black; /*color: inherit*/} 347.129 -div.example a:link, div.example a:visited {color: maroon; /*color: inherit*/} 347.130 -div.deprecated-html-example a:link, 347.131 -div.deprecated-html-example a:visited {color: red; /*color: inherit*/} 347.132 -.note a:link, .note a:visited {color: green; /*color: inherit*/} 347.133 - 347.134 -a.propdef-title { 347.135 - background: yellow; 347.136 -} 347.137 - 347.138 -a.descdef-title { 347.139 - color: yellow; 347.140 - background: green 347.141 -} 347.142 - 347.143 -/* table {margin-left: 1em} */ 347.144 -div.propdef {margin: 1.2em 0} 347.145 - 347.146 -.example { 347.147 - padding: 0; 347.148 - background: white; 347.149 -} 347.150 - 347.151 -.exampleheader { 347.152 - margin: 0; 347.153 - background: #dda; 347.154 - border-bottom: 1px solid #666; 347.155 - border-right: 1px solid #666; 347.156 - border-top: 1px solid #aaa; 347.157 - border-left: 1px solid #aaa; 347.158 - padding: 0.5em 1em; 347.159 -} 347.160 - 347.161 -.examplesource { 347.162 - padding: 0; 347.163 - margin: 0; 347.164 - background: #ffc; 347.165 - border-bottom: 1px solid #996; 347.166 - border-right: 1px solid #996; 347.167 - border-top: 1px solid #bb8; 347.168 - border-left: 1px solid #bb8; 347.169 -} 347.170 - 347.171 -.examplesource pre { 347.172 - background: none; 347.173 - color: #633; 347.174 - margin: 0 1em; 347.175 - padding: 0.5em 0 0 0; 347.176 -} 347.177 - 347.178 -.exampleimage { 347.179 - text-align: center; 347.180 - padding: 1em; 347.181 - border-bottom: 1px solid #996; 347.182 - border-right: 1px solid #996; 347.183 - border-top: 1px solid #bb8; 347.184 - border-left: 1px solid #bb8; 347.185 -} 347.186 - 347.187 -.schema { 347.188 - padding: 0; 347.189 - background: white; 347.190 - width: 100%; 347.191 -} 347.192 - 347.193 -.schemaheader { 347.194 - margin: 0; 347.195 - background: #ccc; 347.196 - border-bottom: 1px solid #666; 347.197 - border-right: 1px solid #666; 347.198 - border-top: 1px solid #aaa; 347.199 - border-left: 1px solid #aaa; 347.200 - padding: 0.5em 1em; 347.201 -} 347.202 - 347.203 -.schemasource { 347.204 - padding: 0; 347.205 - margin: 0; 347.206 - background: #ddd; 347.207 - border-bottom: 1px solid #666; 347.208 - border-right: 1px solid #666; 347.209 - border-top: 1px solid #aaa; 347.210 - border-left: 1px solid #aaa; 347.211 -} 347.212 - 347.213 -.schemasource pre { 347.214 - background: none; 347.215 - color: #030; 347.216 - margin: 0 1em; 347.217 - padding: 0.5em 0 0 0; 347.218 -} 347.219 - 347.220 -pre.example { color: maroon } 347.221 -pre.illegal-example { color: red } 347.222 -div.illegal-example { color: red } 347.223 -div.illegal-example p { color: black } 347.224 - 347.225 - 347.226 -div.html-example { color: maroon } 347.227 -pre.html-example { color: maroon } 347.228 -pre.illegal-html-example { color: red } 347.229 -div.illegal-html-example { color: red } 347.230 -div.illegal-html-example p { color: black } 347.231 -pre.deprecated-html-example { color: red } 347.232 -div.deprecated-html-example { color: red } 347.233 -div.deprecated-html-example p { color: black } 347.234 - 347.235 -div.xml-example { color: maroon } 347.236 -pre.xml-example { color: maroon } 347.237 -pre.illegal-xml-example { color: red } 347.238 -div.illegal-xml-example { color: red } 347.239 -div.illegal-xml-example p { color: black } 347.240 - 347.241 -div.dtd-example { color: maroon } 347.242 -pre.dtd-example { color: maroon } 347.243 -pre.illegal-dtd-example { color: red } 347.244 -div.illegal-dtd-example { color: red } 347.245 -div.illegal-dtd-example p { color: black } 347.246 - 347.247 -.note { 347.248 - font-weight: bold; 347.249 - margin-top: 1em; 347.250 - margin-bottom: 1em; 347.251 - margin-left: 1em; 347.252 - margin-right: 1em; 347.253 - background: #6f9 none repeat scroll 0%; 347.254 - color: black; 347.255 -} 347.256 - 347.257 -.requirement { 347.258 - margin-top: 1em; 347.259 - margin-bottom: 1em; 347.260 - margin-left: 1em; 347.261 - margin-right: 1em; 347.262 - background: #fad none repeat scroll 0%; 347.263 - color: black; 347.264 -} 347.265 - 347.266 -.normref { 347.267 - color: red; 347.268 -} 347.269 - 347.270 -.informref { 347.271 - color: green; 347.272 -} 347.273 - 347.274 -div.propdef th { 347.275 - text-align: right; 347.276 -} 347.277 - 347.278 -div.descdef th { 347.279 - text-align: right; 347.280 -} 347.281 - 347.282 -ul.toc, ol.toc {list-style: none} 347.283 -div.toc ul ul, div.toc ol ol {margin-left: 0} 347.284 -div.toc ul ul ul, div.toc ol ol ol {margin-left: 1em} 347.285 -div.toc ul ul ul ul, div.toc ol ol ol ol {margin-left: 0} 347.286 -li.tocline1 {font-weight: bold} 347.287 -li.tocline2 {font-weight: normal} 347.288 -li.tocline4 {font-style: italic} 347.289 -/* div.subtoc ul, div.subtoc ol {list-style: none} */ 347.290 -/* the border in the following rule crashes nn4 on fonts.html :-( 347.291 -div.subtoc {padding: 1em; border: solid black thin; margin: 1em 0; 347.292 - background: #ddd} 347.293 -*/ 347.294 -ul.index {list-style: none} 347.295 - 347.296 -s, del {text-decoration: line-through; color: red} 347.297 -u, ins {text-decoration: underline; background: #bfa} 347.298 - 347.299 -div.figure { 347.300 - text-align: center; 347.301 - /*border: solid thin; 347.302 - width: 100%;*/ 347.303 - margin: 2.5em 0 347.304 -} 347.305 -p.caption, caption { 347.306 - text-align: center; 347.307 - font-style: italic; 347.308 - font-weight: bold; 347.309 - font-size: 90%; 347.310 - color: #088; 347.311 - margin: 1.5em 25% 0 25%; 347.312 -} 347.313 -div.toc, ul.index, dt { 347.314 - text-align: left 347.315 -} 347.316 -sup { 347.317 - vertical-align: super; 347.318 - font-size: 80% 347.319 -} 347.320 -.code-fragment { 347.321 - color: #a52a2a; 347.322 - font-weight: bold; 347.323 - font-size: 90% 347.324 -} 347.325 -.element-name { 347.326 - color: #a52a2a; 347.327 - font-weight: bold; 347.328 - font-size: 90% 347.329 -} 347.330 -.attr-name { 347.331 - color: #2a2aa5; 347.332 - font-weight: bold; 347.333 - font-size: 90% 347.334 -} 347.335 -.prop-name { 347.336 - color: black; 347.337 - font-weight: bold; 347.338 - font-size: 90% 347.339 -} 347.340 -.attr-value, .prop-value { 347.341 - font-weight: bold; 347.342 - font-size: 90% 347.343 -} 347.344 -/* 347.345 -.svg-term { 347.346 - color: red; 347.347 - font-weight: bold 347.348 -} 347.349 -*/ 347.350 -.svg-termdefine { 347.351 - font-weight: bold 347.352 -} 347.353 -.example-ref { 347.354 - color: green; 347.355 -} 347.356 -.anim-target { 347.357 - font-style: italic 347.358 -} 347.359 -.dominterfacename { 347.360 - font-weight: bold 347.361 -} 347.362 -.dom-attr-name { 347.363 - color: black; 347.364 - background-color: #ffffd2; 347.365 -} 347.366 -.dom-attr-type, .dom-attr-value { 347.367 - color: black; 347.368 - font-weight: bold; 347.369 -} 347.370 -.dom-method-name { 347.371 - color: black; 347.372 - background-color: #d9e6f8; 347.373 -} 347.374 -.dom-parameter-name { 347.375 - margin-top: 1%; 347.376 - background-color: #fee6f8; 347.377 - color: black; 347.378 -} 347.379 -.math-variable { 347.380 - font-family:times,serif 347.381 -} 347.382 -.color-keyword-value { 347.383 - color: #a52a2a; 347.384 -} 347.385 -.view-as-svg { 347.386 - font-style:italic 347.387 -} 347.388 -.table-heading-1 { 347.389 - font-style:italic; 347.390 - text-align:center 347.391 -} 347.392 -.pathdatatable { 347.393 - background: #dddddd 347.394 -} 347.395 -.useruleapplied { 347.396 - font-style:normal; 347.397 - font-weight:bold; 347.398 - color:blue 347.399 -} 347.400 -.useruleignored { 347.401 - font-style:italic; 347.402 - font-weight:bold; 347.403 - color:#050; 347.404 -} 347.405 - 347.406 -.editor { text-decoration: underline; font-size: 85% } 347.407 -.editor-intro { color: red; font-weight: bold } 347.408 -.editor-rec { color: red; font-weight: bold } 347.409 -.designgoals { list-style-type: upper-alpha } 347.410 -.reqt-level0 { list-style-type: decimal; font-weight: bold } 347.411 -.reqt-level1 { list-style-type: lower-alpha; font-weight: normal } 347.412 -.reqt-level2 { list-style-type: lower-roman; font-weight: normal } 347.413 - 347.414 -.b4nomfix { color: #a52a2a; text-decoration: line-through } 347.415 -.afnomfix { color: red; } 347.416 - 347.417 -div.note,p.note { 347.418 - border: 2px dotted #3c6; 347.419 - padding: 0.5em; 347.420 -} 347.421 - 347.422 -.specissue { 347.423 - border-style: solid; 347.424 - border-color: black; 347.425 - border-width: 1px 1px 1px 4px; 347.426 - padding: 0.5em; background: rgb(220, 20, 60) none repeat scroll 0%; 347.427 -} 347.428 - 347.429 -.svgt12 { 347.430 - background: rgb(153, 223, 255) none repeat scroll 0%; 347.431 - color: black; 347.432 -} 347.433 - 347.434 -a[href="http://www.w3.org/TR/SVG10/"] { background: red; } 347.435 -a[href="http://www.w3.org/TR/SVG11/"] { background: yellow; } 347.436 -a[href="http://www.w3.org/SVGMobile12/"] { background: green; } 347.437 - 347.438 -.new { 347.439 - border-style: solid; 347.440 - border-color: green; 347.441 - border-width: 0px 0px 0px 4px; 347.442 - padding-left: 20px; 347.443 - margin-left: -20px; 347.444 -} 347.445 - 347.446 -.changed { 347.447 - border-style: solid; 347.448 - border-color: blue; 347.449 - border-width: 0px 0px 0px 4px; 347.450 - padding-left: 20px; 347.451 - margin-left: -20px; 347.452 -} 347.453 - 347.454 -div.note-editor 347.455 -{ 347.456 - display:none; 347.457 -}
348.1 --- a/publish/style/svgspec.css Thu Feb 24 10:19:12 2011 +0000 348.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 348.3 @@ -1,105 +0,0 @@ 348.4 -.term { 348.5 - FONT-WEIGHT: bold; COLOR: #aa3333; BACKGROUND-COLOR: white 348.6 -} 348.7 -PRE { 348.8 - FONT-SIZE: 90%; MARGIN-LEFT: 2em; COLOR: #a52a2a; FONT-FAMILY: monospace; BACKGROUND-COLOR: white 348.9 -} 348.10 -PRE.schema { 348.11 - BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddddff; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: maroon; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace 348.12 -} 348.13 -PRE.example { 348.14 - BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.5em; FONT-SIZE: 90%; BACKGROUND: #ddffdd; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 2em; BORDER-LEFT: black 1px solid; COLOR: #a52a2a; MARGIN-RIGHT: 3em; PADDING-TOP: 0.5em; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace 348.15 -} 348.16 -.dtd-fragment { 348.17 - BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN-LEFT: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #dddddd 348.18 -} 348.19 -.idl-code { 348.20 - BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN: 0px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: monospace; WHITE-SPACE: pre; BACKGROUND-COLOR: #dfdfdf 348.21 -} 348.22 -.adef { 348.23 - FONT-WEIGHT: bold; FONT-FAMILY: monospace 348.24 -} 348.25 -IMG { 348.26 - BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px 348.27 -} 348.28 -.toc { 348.29 - TEXT-INDENT: 0px 348.30 -} 348.31 -.toc2 { 348.32 - TEXT-INDENT: 2em 348.33 -} 348.34 -.toc3 { 348.35 - TEXT-INDENT: 4em 348.36 -} 348.37 -P.toc-line { 348.38 - MARGIN-TOP: 1em; MARGIN-BOTTOM: 1em; TEXT-INDENT: 0px 348.39 -} 348.40 -.example { 348.41 - COLOR: maroon; BACKGROUND-COLOR: white 348.42 -} 348.43 -.pseudocode { 348.44 - BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; COLOR: #990000; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #ccccff 348.45 -} 348.46 -.algorithm OL { 348.47 - LIST-STYLE-TYPE: decimal 348.48 -} 348.49 -.algorithm OL LI { 348.50 - MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 348.51 -} 348.52 -.algorithm OL LI OL { 348.53 - LIST-STYLE-TYPE: lower-alpha 348.54 -} 348.55 -.algorithm OL LI OL LI { 348.56 - MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 348.57 -} 348.58 -.algorithm OL LI OL LI OL { 348.59 - LIST-STYLE-TYPE: lower-roman 348.60 -} 348.61 -.algorithm OL LI OL LI OL LI { 348.62 - MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0.25em 348.63 -} 348.64 -.note { 348.65 - BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: black 1px solid; PADDING-LEFT: 0.3em; FONT-WEIGHT: bold; BACKGROUND: #aaffaa; PADDING-BOTTOM: 0.3em; MARGIN: 1em; BORDER-LEFT: black 1px solid; COLOR: black; PADDING-TOP: 0.3em; BORDER-BOTTOM: black 1px solid 348.66 -} 348.67 -P.caption { 348.68 - FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center 348.69 -} 348.70 -CAPTION { 348.71 - FONT-WEIGHT: bold; FONT-SIZE: 90%; MARGIN: 1.5em 25% 0px; COLOR: #088; FONT-STYLE: italic; BACKGROUND-COLOR: white; TEXT-ALIGN: center 348.72 -} 348.73 -.element { 348.74 - FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #a52a2a; BACKGROUND-COLOR: white 348.75 -} 348.76 -.type { 348.77 - FONT-WEIGHT: bold; FONT-SIZE: 90% 348.78 -} 348.79 -.attribute { 348.80 - FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: #2a2aa5; BACKGROUND-COLOR: white 348.81 -} 348.82 -.property { 348.83 - FONT-WEIGHT: bold; FONT-SIZE: 90%; COLOR: black; BACKGROUND-COLOR: white 348.84 -} 348.85 -.attribute-value { 348.86 - FONT-WEIGHT: bold; FONT-SIZE: 90% 348.87 -} 348.88 -.property-value { 348.89 - FONT-WEIGHT: bold; FONT-SIZE: 90% 348.90 -} 348.91 -.interface { 348.92 - FONT-WEIGHT: bold 348.93 -} 348.94 -.dom-attribute { 348.95 - COLOR: black; BACKGROUND-COLOR: #ffffd2 348.96 -} 348.97 -.dom-attribute-type { 348.98 - FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white 348.99 -} 348.100 -.dom-attribute-value { 348.101 - FONT-WEIGHT: bold; COLOR: black; BACKGROUND-COLOR: white 348.102 -} 348.103 -.dom-method { 348.104 - COLOR: black; BACKGROUND-COLOR: #d9e6f8 348.105 -} 348.106 -.dom-parameter { 348.107 - COLOR: black; BACKGROUND-COLOR: #fee6f8 348.108 -}
349.1 --- a/test/resources/SVGFreeSans.svg Thu Feb 24 10:19:12 2011 +0000 349.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 349.3 @@ -1,569 +0,0 @@ 349.4 -<?xml version="1.0" standalone="no"?> 349.5 -<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" > 349.6 -<defs > 349.7 -<font horiz-adv-x="481" id="ascii"> 349.8 - <font-face 349.9 - font-family="SVGFreeSansASCII" 349.10 - units-per-em="1000" 349.11 - panose-1="2 11 5 4 2 2 2 2 2 4" 349.12 - ascent="800" 349.13 - descent="-200" 349.14 - alphabetic="0" /> 349.15 -<missing-glyph horiz-adv-x="432" d="M33 0V666H366V0H33ZM66 33H333V633H66V33Z" /> 349.16 -<glyph unicode=" " glyph-name="space" horiz-adv-x="278" /> 349.17 -<glyph unicode=" " glyph-name="nbsp" horiz-adv-x="278" /> 349.18 -<glyph unicode="!" glyph-name="exclam" horiz-adv-x="278" d="M208 729V391L186 168H147L125 391V729H208ZM208 104V0H124V104H208Z" /> 349.19 -<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="355" d="M52 709H145V598L118 464H79L52 598V709ZM212 709H305V598L278 464H239L212 598V709Z" /> 349.20 -<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="556" d="M485 697L449 501H542V433H436L405 259H510V191H393L354 -20H278L316 191H192L153 -20H77L115 191H14V259H128L159 433H51V501H172L208 697H284L248 501H373L408 697H485ZM360 433H236L204 259H329L360 349.21 -433Z" /> 349.22 -<glyph unicode="$" glyph-name="dollar" horiz-adv-x="556" d="M243 770H302V716Q427 707 474 615Q496 574 496 520V519H417Q416 596 359 630Q339 641 315 645L302 646V397Q402 366 431 350L433 349Q517 301 518 196V195Q518 91 450 30L426 12Q377 -17 302 -23V-126H243V-23Q89 349.23 --13 46 104Q30 150 33 208H112Q119 134 133 110L137 103Q172 55 243 46V318Q150 346 117 370Q46 421 46 515V516Q46 662 186 704Q212 712 243 716V770ZM243 405V645Q147 632 130 556L127 526Q127 436 243 405ZM302 309V46Q363 53 394 83Q436 123 436 182V183Q436 349.24 -244 389 274Q360 292 302 309Z" /> 349.25 -<glyph unicode="%" glyph-name="percent" horiz-adv-x="889" d="M199 685Q283 685 334 619H335Q370 573 370 513V512Q370 433 307 382Q260 343 200 343Q119 343 67 406Q29 453 29 513V514Q29 595 92 647Q139 685 199 685ZM199 615Q145 615 115 569H114Q98 544 349.26 -98 515V514Q98 461 143 430Q169 413 200 413Q254 413 284 458Q301 483 301 512V513Q301 570 253 600Q229 615 199 615ZM609 709H675L280 -20H214L609 709ZM688 322Q773 322 824 256Q859 210 859 151V150Q859 71 796 20Q749 -19 689 -19Q608 -19 556 44Q518 91 518 349.27 -151V152Q518 233 582 284Q629 322 688 322ZM688 252Q634 252 604 207Q587 182 587 153V152Q587 97 634 67H635V66Q636 66 636 66Q636 65 637 65Q661 51 689 51Q743 51 773 96Q790 120 790 149V150Q790 207 742 237V237L741 238Q724 248 704 251Q700 251 695 252Q693 349.28 -252 690 252H688Z" /> 349.29 -<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="667" d="M493 334H573Q573 240 515 151L637 0H528L466 78Q417 30 389 13Q333 -23 257 -23Q141 -23 85 59Q52 108 52 175V176Q52 257 104 310Q140 346 214 389Q144 477 135 525V525Q135 527 135 530Q134 349.30 -532 134 535L133 552Q133 628 197 675Q244 709 304 709Q394 709 440 643V642Q467 604 467 553V552Q467 483 412 434Q383 409 330 379L329 378L462 215Q495 272 493 334ZM285 431Q366 482 381 519Q388 534 388 553V554Q388 606 343 629Q324 639 301 639Q241 639 349.31 -221 589Q215 573 215 554V553Q215 520 240 485L241 484V484L242 483L243 482V482L285 431ZM418 137L258 337Q164 277 144 227Q136 207 136 184V183Q136 118 190 80Q225 55 267 55Q334 55 402 120Q409 127 416 135Q417 135 417 136L418 137Z" /> 349.32 -<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="191" d="M48 709H142V598L115 464H75L48 598V709Z" /> 349.33 -<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="333" d="M236 729H291Q167 529 155 300L154 259Q154 26 276 -187Q283 -200 291 -212H236Q123 -64 86 128Q73 196 73 258V259Q73 438 166 617Q197 678 236 729Z" /> 349.34 -<glyph unicode=")" glyph-name="parenright" horiz-adv-x="333" d="M93 -212H38Q162 -12 174 217Q175 258 175 258Q175 491 53 704L38 729H93Q206 581 243 389Q256 321 256 259V258Q256 79 163 -100Q132 -161 93 -212Z" /> 349.35 -<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="389" d="M160 729H223L218 617L324 655L343 596L235 566L305 477L254 441L192 534L129 441L79 477L148 566L40 596L59 655L165 617L160 729Z" /> 349.36 -<glyph unicode="+" glyph-name="plus" horiz-adv-x="584" d="M534 267V197H327V-10H257V197H50V267H257V474H327V267H534Z" /> 349.37 -<glyph unicode="," glyph-name="comma" horiz-adv-x="278" d="M87 104H192V-16Q192 -147 87 -147V-109Q130 -107 140 -76Q147 -58 147 -19V-18V0H87V104Z" /> 349.38 -<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="333" d="M284 312V240H46V312H284Z" /> 349.39 -<glyph unicode="." glyph-name="period" horiz-adv-x="278" d="M191 104V0H87V104H191Z" /> 349.40 -<glyph unicode="/" glyph-name="slash" horiz-adv-x="278" d="M229 729H284L47 -20H-8L229 729Z" /> 349.41 -<glyph unicode="0" glyph-name="zero" horiz-adv-x="556" d="M275 709Q378 709 436 634Q437 632 438 631Q507 537 507 338V337Q507 66 369 -3Q327 -23 275 -23Q99 -23 56 193Q43 258 43 342V343Q43 538 112 631Q166 702 261 709Q268 709 275 709ZM275 631Q133 349.42 -631 133 344Q133 344 133 344V342Q133 50 273 50Q391 50 412 242Q417 287 417 344V345Q417 631 275 631Z" /> 349.43 -<glyph unicode="1" glyph-name="one" horiz-adv-x="556" d="M259 505H102V568Q204 581 234 604H235Q245 611 252 621Q271 645 289 709H347V0H259V505Z" /> 349.44 -<glyph unicode="2" glyph-name="two" horiz-adv-x="556" d="M506 87V0H34Q41 128 91 195Q133 250 233 307L325 359Q420 413 421 498V499Q421 571 361 610Q326 632 282 632H281Q206 632 166 575Q163 571 161 566L159 563Q142 531 138 463H50Q53 563 88 617Q148 349.45 -709 284 709Q383 709 445 653Q511 594 511 502V501Q511 369 361 287L261 233Q170 180 146 131Q137 111 133 87H506Z" /> 349.46 -<glyph unicode="3" glyph-name="three" horiz-adv-x="556" d="M221 325V400Q305 401 338 415Q394 438 395 509V511Q395 596 325 623Q301 632 270 632Q192 632 157 579L156 578L151 569Q136 540 135 480H47Q51 690 237 708L269 709Q408 709 460 616Q485 573 485 349.47 -515V514Q485 406 386 367Q479 335 499 259Q506 233 506 199V198Q506 75 412 15Q352 -23 266 -23Q118 -23 64 79L63 80Q37 128 32 206H120Q128 74 233 58Q250 55 269 55Q373 55 405 134Q416 161 416 196V197Q416 326 269 326L232 325H221Z" /> 349.48 -<glyph unicode="4" glyph-name="four" horiz-adv-x="556" d="M327 170H28V263L350 709H415V249H520V170H415V0H327V170ZM327 249V559L105 249H327Z" /> 349.49 -<glyph unicode="5" glyph-name="five" horiz-adv-x="556" d="M476 709V622H181L153 424Q212 467 284 467Q404 467 468 380Q513 319 513 232V231Q513 102 426 30Q362 -23 270 -23Q159 -23 94 44L78 62Q51 95 35 172V174H123Q154 55 268 55Q369 55 407 136Q423 171 349.50 -423 218V219Q423 328 347 370Q313 389 268 389Q204 389 159 346L138 323H57L110 709H476Z" /> 349.51 -<glyph unicode="6" glyph-name="six" horiz-adv-x="556" d="M498 524H410Q392 611 321 628Q307 631 291 631Q180 631 146 487Q133 433 133 362Q191 441 296 441Q407 441 469 358Q513 299 513 217V216Q513 97 431 29Q369 -23 281 -23Q162 -23 103 65Q45 153 43 349.52 -312Q43 317 43 322V323Q43 508 107 608Q163 692 263 707Q280 709 297 709Q412 709 467 616Q490 577 498 525V524ZM285 363Q200 363 160 297Q138 262 138 215V214Q138 128 199 82Q235 55 282 55Q358 55 398 118Q423 157 423 208V209Q423 311 352 348Q323 363 285 349.53 -363Z" /> 349.54 -<glyph unicode="7" glyph-name="seven" horiz-adv-x="556" d="M520 709V635Q318 367 252 96Q240 49 232 0H138Q188 218 281 389Q336 490 429 622H46V709H520Z" /> 349.55 -<glyph unicode="8" glyph-name="eight" horiz-adv-x="556" d="M391 373Q512 315 513 197V196Q513 84 427 23Q364 -23 275 -23Q151 -23 84 59Q37 116 37 196V197Q37 315 158 373Q86 418 70 466Q62 488 62 519V520Q62 619 143 672Q198 709 275 709Q391 709 450 633Q488 349.56 -586 488 521V520Q488 452 443 411Q443 410 442 410Q423 392 391 373ZM275 631Q195 631 165 573L164 572V572Q152 549 152 520V519Q152 449 213 421Q240 408 274 408H275Q355 408 385 465Q386 465 386 466Q398 488 398 516V517V518Q398 593 333 620Q308 631 275 349.57 -631ZM275 334Q186 334 147 270Q127 238 127 196V195Q127 113 193 75Q227 55 273 55Q364 55 403 120Q423 152 423 194V195Q423 277 356 315Q321 334 275 334Z" /> 349.58 -<glyph unicode="9" glyph-name="nine" horiz-adv-x="556" d="M53 162H141Q159 75 230 58Q244 55 260 55Q371 55 405 199Q418 253 418 324Q354 247 262 245H256Q144 245 82 328Q38 387 38 469V470Q38 589 120 657Q182 709 270 709Q389 709 449 621Q507 533 509 349.59 -374Q509 369 509 364V363Q509 178 444 78Q391 -3 294 -20L254 -23Q139 -23 84 70Q61 110 53 162ZM269 632Q193 632 153 568L152 567Q128 529 128 478V477Q128 375 199 338Q228 323 266 323Q349 323 390 388Q413 424 413 471V472Q413 559 352 605Q315 632 269 632Z" 349.60 -/> 349.61 -<glyph unicode=":" glyph-name="colon" horiz-adv-x="278" d="M214 104V0H110V104H214ZM214 524V420H110V524H214Z" /> 349.62 -<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="278" d="M215 524V420H111V524H215ZM110 104H215V-16Q215 -147 110 -147V-109Q153 -107 163 -76Q170 -58 170 -19V-18V0H110V104Z" /> 349.63 -<glyph unicode="<" glyph-name="less" horiz-adv-x="584" d="M45 198V267L534 474V395L140 234L534 70V-9L45 198Z" /> 349.64 -<glyph unicode="=" glyph-name="equal" horiz-adv-x="584" d="M534 353V283H50V353H534ZM534 181V111H50V181H534Z" /> 349.65 -<glyph unicode=">" glyph-name="greater" horiz-adv-x="584" d="M539 267V198L50 -9V70L444 231L50 395V474L539 267Z" /> 349.66 -<glyph unicode="?" glyph-name="question" horiz-adv-x="556" d="M330 199H240V254Q240 304 268 341Q285 363 320 396L322 397L344 417Q418 483 419 547Q419 547 419 547Q419 547 419 548V549Q419 619 358 649H357Q328 663 291 663Q209 663 179 605Q162 571 162 349.67 -508V507H77Q77 718 257 739L296 741Q422 741 478 658L479 657V657V656Q509 611 509 550V549Q509 479 458 420Q439 397 409 370Q346 312 336 285Q330 270 330 247V246V199ZM330 104V0H240V104H330Z" /> 349.68 -<glyph unicode="@" glyph-name="at" horiz-adv-x="1015" d="M665 501H748L658 221Q646 187 646 172V171Q646 144 675 131H676Q685 127 696 127Q760 127 813 199Q864 270 864 356V357Q864 477 767 566Q668 658 528 664H512Q365 664 252 562L221 531Q119 418 119 349.69 -274V273Q119 132 224 35Q332 -65 493 -65H494Q573 -65 687 -33L715 -100Q603 -142 489 -142Q309 -142 178 -35Q56 65 37 212Q34 258 34 258Q34 412 129 542Q141 558 154 573Q155 574 156 575Q157 576 158 577Q172 593 188 608L192 612Q300 710 451 735Q488 741 349.70 -525 741Q691 741 814 640Q930 546 948 411Q951 390 951 370V369Q951 248 867 149Q866 147 865 146Q789 57 679 57Q583 57 569 134Q503 62 428 62H427Q345 62 298 131Q264 179 264 244V245Q264 354 343 438Q420 521 519 522H521Q604 522 642 436L643 435L665 501ZM515 349.71 -458Q449 458 399 387Q354 324 354 245V244Q354 177 401 143H402Q425 126 452 126H453Q511 126 555 191Q588 239 604 323L609 362Q612 417 566 444Q543 458 515 458Z" /> 349.72 -<glyph unicode="A" glyph-name="A" horiz-adv-x="667" d="M474 219H193L116 0H17L277 729H397L653 0H549L474 219ZM448 297L336 629L216 297H448Z" /> 349.73 -<glyph unicode="B" glyph-name="B" horiz-adv-x="667" d="M79 0V729H375Q478 729 533 678Q591 627 591 545V544Q591 432 490 385Q595 344 616 264Q622 244 623 221Q623 215 623 209V208Q623 120 567 61Q511 0 409 0H408H79ZM172 415H352Q424 415 458 441Q498 471 349.74 -498 530V531Q498 590 458 621Q424 647 352 647H172V415ZM172 82H399Q463 82 495 116L496 117Q530 152 530 206V207Q530 262 496 298Q464 333 399 333H172V82Z" /> 349.75 -<glyph unicode="C" glyph-name="C" horiz-adv-x="722" d="M662 503H567Q552 578 514 613Q467 657 377 659H370Q242 659 181 544Q141 469 141 358V357Q141 187 236 108Q295 59 378 59Q487 59 538 136Q544 144 548 153Q570 195 581 266H677Q644 -23 377 -23Q236 349.76 --23 154 62Q48 171 48 355V356Q48 539 150 650Q232 741 380 741H381Q619 741 662 503Z" /> 349.77 -<glyph unicode="D" glyph-name="D" horiz-adv-x="722" d="M89 0V729H370Q533 729 612 597Q613 596 613 595Q667 504 667 366V365Q667 156 551 61Q478 0 370 0H89ZM182 82H354Q528 82 565 263Q574 308 574 363V364Q574 610 406 642Q381 647 354 647H182V82Z" /> 349.78 -<glyph unicode="E" glyph-name="E" horiz-adv-x="667" d="M183 332V82H613V0H90V729H595V647H183V414H580V332H183Z" /> 349.79 -<glyph unicode="F" glyph-name="F" horiz-adv-x="611" d="M183 332V0H90V729H579V647H183V414H531V332H183Z" /> 349.80 -<glyph unicode="G" glyph-name="G" horiz-adv-x="778" d="M709 385V-4H650L627 93Q523 -23 379 -23H378Q225 -23 131 91Q44 195 44 356V357Q44 533 146 643Q160 658 176 671Q261 741 393 741H394Q573 741 654 623Q687 574 699 508H604Q583 606 488 642Q446 659 349.81 -393 659Q261 659 190 555Q137 477 137 363V362Q137 236 198 152L214 133Q280 61 392 59Q395 59 398 59Q512 59 578 139Q627 199 627 282V283V303H405V385H709Z" /> 349.82 -<glyph unicode="H" glyph-name="H" horiz-adv-x="722" d="M551 332H177V0H83V729H176V414H551V729H644V0H551V332Z" /> 349.83 -<glyph unicode="I" glyph-name="I" horiz-adv-x="278" d="M194 729V0H100V729H194Z" /> 349.84 -<glyph unicode="J" glyph-name="J" horiz-adv-x="500" d="M333 729H426V182Q426 58 336 5Q287 -23 220 -23Q96 -23 44 63Q17 108 17 169V170V234H112V187Q112 76 193 58L221 55Q279 55 309 98L310 100Q333 134 333 215V216V729Z" /> 349.85 -<glyph unicode="K" glyph-name="K" horiz-adv-x="667" d="M172 255V0H79V729H172V360L535 729H655L358 432L658 0H548L291 374L172 255Z" /> 349.86 -<glyph unicode="L" glyph-name="L" horiz-adv-x="556" d="M173 729V82H533V0H80V729H173Z" /> 349.87 -<glyph unicode="M" glyph-name="M" horiz-adv-x="833" d="M468 0H370L163 611V0H75V729H204L420 94L632 729H761V0H673V611L468 0Z" /> 349.88 -<glyph unicode="N" glyph-name="N" horiz-adv-x="722" d="M646 729V0H541L164 591V0H76V729H177L558 133V729H646Z" /> 349.89 -<glyph unicode="O" glyph-name="O" horiz-adv-x="778" d="M389 741Q563 741 660 618L661 617Q662 616 663 615Q723 536 738 422Q742 389 742 354V353Q742 205 660 100Q640 74 616 54Q525 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q244 741 349.90 -389 741ZM389 659Q259 659 187 557Q131 478 131 360V359Q131 201 226 118Q293 59 390 59Q519 59 591 159Q649 237 649 354V355Q649 520 551 603Q485 659 389 659Z" /> 349.91 -<glyph unicode="P" glyph-name="P" horiz-adv-x="667" d="M184 309V0H91V729H392Q553 729 600 611Q617 570 617 516V515Q617 418 554 361Q496 309 414 309H413H184ZM184 391H378Q480 391 510 465Q520 488 520 518V519Q520 609 441 637Q441 637 440 637Q413 647 349.92 -378 647H184V391Z" /> 349.93 -<glyph unicode="Q" glyph-name="Q" horiz-adv-x="778" d="M733 -1L686 -59L581 28Q495 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q245 741 390 741Q556 741 654 625Q742 522 742 362V361Q742 189 639 76L733 -1ZM481 205L570 132Q649 221 349.94 -649 359V360Q649 517 555 600Q487 659 390 659Q259 659 187 557Q131 478 131 360V359Q131 200 226 117Q293 59 389 59Q449 59 509 87L435 149L481 205Z" /> 349.95 -<glyph unicode="R" glyph-name="R" horiz-adv-x="722" d="M186 314V0H93V729H429Q599 729 640 609Q651 576 651 535V534Q651 436 579 385Q560 372 536 360Q598 333 617 293Q634 256 635 170Q637 74 654 47Q663 34 679 23V0H566Q545 48 545 118V119L546 184Q546 349.96 -293 466 310Q448 314 426 314H186ZM186 396H411Q532 396 550 482Q554 499 554 520V521Q554 587 516 619Q484 647 411 647H186V396Z" /> 349.97 -<glyph unicode="S" glyph-name="S" horiz-adv-x="667" d="M596 515H508Q507 626 398 655Q366 663 326 663Q222 663 181 601V601Q163 574 163 541V540Q163 484 217 456Q242 443 283 432L466 383Q586 350 614 253Q621 228 621 201V200Q621 116 563 53L541 33Q468 349.98 --23 336 -23Q167 -23 91 81Q49 138 48 232H136Q135 167 174 120Q225 59 342 59Q431 59 476 90Q520 121 527 176L528 191Q528 267 418 302Q407 306 395 309H394L213 357Q71 394 70 525V527Q70 651 174 707Q238 741 329 741Q505 741 568 630Q596 581 596 515Z" /> 349.99 -<glyph unicode="T" glyph-name="T" horiz-adv-x="611" d="M354 647V0H261V647H21V729H593V647H354Z" /> 349.100 -<glyph unicode="U" glyph-name="U" horiz-adv-x="722" d="M552 729H645V217Q645 87 541 22Q469 -23 364 -23Q199 -23 126 78Q86 135 85 215Q85 217 85 217V729H178V217Q178 138 231 97Q284 59 364 59Q487 59 532 138Q551 171 552 215Q552 215 552 216V217V729Z" /> 349.101 -<glyph unicode="V" glyph-name="V" horiz-adv-x="667" d="M392 0H292L30 729H130L344 112L546 729H645L392 0Z" /> 349.102 -<glyph unicode="W" glyph-name="W" horiz-adv-x="944" d="M744 0H642L474 599L311 0H209L22 729H126L263 137L425 729H525L691 137L825 729H929L744 0Z" /> 349.103 -<glyph unicode="X" glyph-name="X" horiz-adv-x="667" d="M391 374L649 0H534L335 304L135 0H22L280 374L38 729H151L338 443L526 729H637L391 374Z" /> 349.104 -<glyph unicode="Y" glyph-name="Y" horiz-adv-x="667" d="M387 286V0H294V286L13 729H128L342 374L550 729H661L387 286Z" /> 349.105 -<glyph unicode="Z" glyph-name="Z" horiz-adv-x="611" d="M581 729V645L145 82H583V0H28V82L466 647H56V729H581Z" /> 349.106 -<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="278" d="M250 729V657H147V-140H250V-212H64V729H250Z" /> 349.107 -<glyph unicode="\" glyph-name="backslash" horiz-adv-x="278" d="M47 729L284 -20H229L-8 729H47Z" /> 349.108 -<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="278" d="M23 -212V-140H126V657H23V729H209V-212H23Z" /> 349.109 -<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="469" d="M197 709H270L425 329H356L234 629L113 329H44L197 709Z" /> 349.110 -<glyph unicode="_" glyph-name="underscore" horiz-adv-x="556" d="M578 -126V-176H-22V-126H578Z" /> 349.111 -<glyph unicode="`" glyph-name="grave" horiz-adv-x="333" d="M135 740L231 592H171L22 740H135Z" /> 349.112 -<glyph unicode="a" glyph-name="a" horiz-adv-x="556" d="M535 49V-14Q500 -23 478 -23Q407 -23 394 40Q393 47 392 54Q309 -22 218 -23H214Q104 -23 61 52Q42 86 42 131V132Q42 234 134 272Q170 287 264 299L302 304Q375 313 386 342V343V344L389 362V384Q389 349.113 -448 308 460Q291 462 272 462Q169 462 152 387Q150 378 149 369H65Q68 441 101 478Q156 539 275 539Q451 539 470 423Q472 411 472 397V396V88Q472 47 517 47L535 49ZM389 165V259Q357 244 275 233Q266 232 255 230Q149 215 133 161L129 135V134Q129 69 196 54Q212 349.114 -50 232 50Q304 50 356 97Q388 126 389 161Q389 162 389 162V162V163V163V165Z" /> 349.115 -<glyph unicode="b" glyph-name="b" horiz-adv-x="556" d="M54 729H137V453Q194 539 299 539Q427 539 486 431Q523 363 523 265V264Q523 103 432 26Q375 -23 295 -23Q188 -23 129 67V0H54V729ZM283 461Q200 461 161 377Q137 328 137 259V258Q137 133 206 81Q239 349.116 -55 283 55Q367 55 409 134Q436 185 436 254V255Q436 382 364 435Q331 460 288 461Q285 461 283 461Z" /> 349.117 -<glyph unicode="c" glyph-name="c" horiz-adv-x="500" d="M471 348H387Q374 445 290 460Q282 461 272 462H263Q169 462 134 362Q118 316 118 254V253Q118 116 197 71Q226 54 265 54Q372 54 393 180H477Q466 43 362 -3Q319 -23 263 -23Q134 -23 72 82Q31 151 31 349.118 -252V253Q31 413 123 490Q182 539 264 539Q370 539 428 471L436 461Q465 418 471 348Z" /> 349.119 -<glyph unicode="d" glyph-name="d" horiz-adv-x="556" d="M495 729V0H421V69Q363 -14 277 -22Q266 -23 254 -23Q124 -23 64 89Q26 159 26 261Q26 261 26 262V263Q26 417 115 492Q172 539 251 539Q359 539 412 458V729H495ZM265 461Q180 461 139 379Q119 341 114 349.120 -290Q113 275 113 259V258Q113 136 183 82Q219 55 266 55Q348 55 387 136Q412 186 412 255V256Q412 387 340 438Q307 461 265 461Z" /> 349.121 -<glyph unicode="e" glyph-name="e" horiz-adv-x="556" d="M513 234H127Q128 162 155 122Q198 54 281 54Q383 54 418 159H502Q480 38 376 -5Q332 -23 278 -23Q142 -23 79 87Q40 155 40 253V255Q40 413 134 490Q194 539 280 539Q395 539 460 457Q480 432 492 401Q513 349.122 -347 513 235V234ZM129 302H423L424 308Q424 388 365 433Q327 462 279 462Q194 462 153 387Q133 351 129 302Z" /> 349.123 -<glyph unicode="f" glyph-name="f" horiz-adv-x="278" d="M258 524V456H171V0H88V456H18V524H88V613Q88 701 162 725Q184 732 211 732Q234 732 258 727V658L229 659Q172 659 171 608V606V524H258Z" /> 349.124 -<glyph unicode="g" glyph-name="g" horiz-adv-x="556" d="M412 524H489V86Q489 -68 448 -132Q441 -142 434 -151Q386 -211 277 -217Q266 -218 255 -218Q117 -218 67 -130Q50 -99 46 -60H131Q137 -99 162 -119L163 -120Q199 -148 258 -148Q339 -148 374 -99Q404 349.125 --58 404 43V44V71Q345 -11 272 -21Q261 -23 248 -23Q247 -23 245 -23Q162 -23 101 41Q98 44 95 47Q29 123 29 252V253Q29 404 112 483Q170 539 252 539Q350 539 412 448V524ZM261 462Q173 462 136 372Q116 325 116 259V258Q116 119 194 72Q223 54 262 54Q351 54 349.126 -386 146Q404 192 404 254V255Q404 405 322 448Q295 462 261 462Z" /> 349.127 -<glyph unicode="h" glyph-name="h" horiz-adv-x="556" d="M70 729H153V452Q207 522 273 535Q294 539 321 539Q431 539 470 465Q486 435 486 397V396V0H403V363Q403 418 369 442Q337 466 295 466Q211 466 174 389Q153 347 153 290V289V0H70V729Z" /> 349.128 -<glyph unicode="i" glyph-name="i" horiz-adv-x="222" d="M150 524V0H67V524H150ZM150 729V624H66V729H150Z" /> 349.129 -<glyph unicode="j" glyph-name="j" horiz-adv-x="222" d="M70 524H153V-109Q153 -212 25 -218H10L-18 -215V-144L2 -145Q54 -145 65 -113Q70 -99 70 -77V-76V524ZM153 729V624H70V729H153Z" /> 349.130 -<glyph unicode="k" glyph-name="k" horiz-adv-x="500" d="M141 729V302L363 524H470L288 343L502 0H399L222 284L141 204V0H58V729H141Z" /> 349.131 -<glyph unicode="l" glyph-name="l" horiz-adv-x="222" d="M152 729V0H68V729H152Z" /> 349.132 -<glyph unicode="m" glyph-name="m" horiz-adv-x="833" d="M70 524H147V450Q201 526 275 537Q284 538 295 539H308Q397 539 440 474Q445 467 449 459Q503 524 566 535Q574 537 583 538H584Q596 539 610 539Q732 539 757 441Q762 419 762 394V393V0H678V361Q678 349.133 -442 615 461Q599 466 581 466Q520 466 483 412Q458 376 458 330V329V0H374V361Q374 448 303 463L277 466Q215 466 178 410Q154 375 154 330V329V0H70V524Z" /> 349.134 -<glyph unicode="n" glyph-name="n" horiz-adv-x="556" d="M70 524H147V436Q201 521 277 535Q297 539 321 539Q425 539 467 470Q486 439 487 398V396V0H404V363Q404 432 346 457Q324 466 296 466Q212 466 175 389Q154 347 154 290V289V0H70V524Z" /> 349.135 -<glyph unicode="o" glyph-name="o" horiz-adv-x="556" d="M272 539Q424 539 481 410Q510 345 510 255V254Q510 87 408 16Q352 -23 273 -23Q129 -23 69 96Q36 162 36 257V258Q36 432 141 502Q196 539 272 539ZM273 462Q180 462 142 370Q123 323 123 259V258Q123 349.136 -121 201 73Q232 54 273 54Q363 54 402 142Q423 189 423 254V255Q423 400 341 446Q311 462 273 462Z" /> 349.137 -<glyph unicode="p" glyph-name="p" horiz-adv-x="556" d="M54 -218V524H131V445Q190 539 298 539Q425 539 485 428Q523 357 523 254V253Q523 99 434 24Q395 -9 343 -19Q322 -23 299 -23Q202 -23 139 54L138 55V-218H54ZM284 461Q201 461 162 377Q138 328 138 259V258Q138 349.138 -133 207 81Q240 55 284 55Q368 55 409 134Q436 185 436 254V255Q436 382 365 435Q330 461 284 461Z" /> 349.139 -<glyph unicode="q" glyph-name="q" horiz-adv-x="556" d="M495 -218H412V60Q355 -23 250 -23Q122 -23 63 85Q26 153 26 251V252Q26 413 117 490Q174 539 254 539Q361 539 421 454V524H495V-218ZM266 461Q182 461 140 380Q113 330 113 259V258Q113 136 183 82Q219 349.140 -55 266 55Q348 55 388 136Q412 186 412 254V255Q412 386 341 437Q308 461 266 461Z" /> 349.141 -<glyph unicode="r" glyph-name="r" horiz-adv-x="333" d="M69 524H146V429Q204 522 262 536Q275 539 289 539L321 536V451Q249 450 218 429Q215 427 212 425Q153 382 153 273V272V0H69V524Z" /> 349.142 -<glyph unicode="s" glyph-name="s" horiz-adv-x="500" d="M438 378H350Q347 462 245 462Q163 462 140 413Q134 400 134 384V383Q134 338 200 316L231 308L311 289Q429 261 452 191Q459 170 459 144V143Q459 47 369 3Q317 -23 243 -23Q49 -23 35 139L34 156H122Q128 349.143 -109 146 89Q179 54 250 54Q334 54 362 101Q372 116 372 135V136Q372 182 318 201Q309 204 299 207H298L291 209L213 228Q94 257 63 308Q54 324 50 345L47 379Q47 472 131 514Q180 539 248 539Q393 539 428 438Q438 411 438 378Z" /> 349.144 -<glyph unicode="t" glyph-name="t" horiz-adv-x="278" d="M254 524V456H168V97Q168 59 190 53L214 50Q239 50 254 54V-16Q215 -23 186 -23Q97 -23 86 44Q85 60 85 60V456H14V524H85V668H168V524H254Z" /> 349.145 -<glyph unicode="u" glyph-name="u" horiz-adv-x="556" d="M482 0H407V73Q351 -6 277 -19Q257 -23 232 -23Q125 -23 84 47Q65 78 65 119V120V524H148V153Q148 83 207 59Q228 50 255 50H256Q341 50 379 128Q399 170 399 226V227V524H482V0Z" /> 349.146 -<glyph unicode="v" glyph-name="v" horiz-adv-x="500" d="M285 0H194L10 524H104L244 99L392 524H486L285 0Z" /> 349.147 -<glyph unicode="w" glyph-name="w" horiz-adv-x="722" d="M554 0H459L353 411L252 0H158L6 524H98L205 116L305 524H407L510 116L614 524H708L554 0Z" /> 349.148 -<glyph unicode="x" glyph-name="x" horiz-adv-x="500" d="M292 271L473 0H376L245 201L112 0H17L202 267L27 524H122L248 334L374 524H468L292 271Z" /> 349.149 -<glyph unicode="y" glyph-name="y" horiz-adv-x="500" d="M388 524H478L245 -110Q223 -167 188 -193Q154 -218 110 -218Q79 -218 54 -205V-130Q81 -136 98 -136Q143 -136 161 -96Q163 -91 165 -85L197 -2L20 524H109L243 116L388 524Z" /> 349.150 -<glyph unicode="z" glyph-name="z" horiz-adv-x="500" d="M443 524V450L132 73H457V0H31V75L344 451H52V524H443Z" /> 349.151 -<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="334" d="M276 729V664H261Q214 664 203 637V637Q198 623 198 598V597V416Q198 318 157 283L156 282Q146 273 133 267Q125 263 116 259Q198 221 198 103V101V-80Q198 -130 223 -141Q236 -147 261 -147H276V-212H230Q148 349.152 --212 127 -132Q121 -110 121 -82V-81V86Q121 179 86 206Q70 218 43 224V293Q97 304 111 348Q121 376 121 430V431V598Q121 700 192 723Q210 729 230 729H276Z" /> 349.153 -<glyph unicode="|" glyph-name="bar" horiz-adv-x="260" d="M100 729H160V-212H100V729Z" /> 349.154 -<glyph unicode="}" glyph-name="braceright" horiz-adv-x="334" d="M29 -212V-147H45Q93 -147 104 -120Q108 -109 109 -90V-80V101Q109 221 191 258Q109 296 109 414V416V597Q109 647 83 658Q70 664 45 664H29V729H76Q159 729 180 648Q186 626 186 599V598V431Q186 349.155 -337 222 310Q237 298 262 293V224Q210 213 195 167Q186 139 186 87V86V-81Q186 -184 113 -207Q96 -212 76 -212H29Z" /> 349.156 -<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="584" d="M455 411H508V395Q508 310 451 280Q430 268 403 268Q364 268 322 294L224 357Q201 371 181 371Q152 371 136 336Q131 323 128 295V293H75Q82 424 166 437L183 438Q210 438 237 422L354 353Q382 349.157 -336 404 336Q448 336 454 385L455 411Z" /> 349.158 - 349.159 -<hkern g1="comma" g2="one" k="100" /> 349.160 -<hkern g1="hyphen" g2="A" k="7" /> 349.161 -<hkern g1="hyphen" g2="T" k="80" /> 349.162 -<hkern g1="hyphen" g2="V" k="46" /> 349.163 -<hkern g1="hyphen" g2="W" k="19" /> 349.164 -<hkern g1="hyphen" g2="Y" k="92" /> 349.165 -<hkern g1="period" g2="one" k="101" /> 349.166 -<hkern g1="zero" g2="one" k="46" /> 349.167 -<hkern g1="zero" g2="four" k="2" /> 349.168 -<hkern g1="zero" g2="seven" k="39" /> 349.169 -<hkern g1="one" g2="comma" k="74" /> 349.170 -<hkern g1="one" g2="period" k="74" /> 349.171 -<hkern g1="one" g2="zero" k="62" /> 349.172 -<hkern g1="one" g2="one" k="118" /> 349.173 -<hkern g1="one" g2="two" k="69" /> 349.174 -<hkern g1="one" g2="three" k="67" /> 349.175 -<hkern g1="one" g2="four" k="81" /> 349.176 -<hkern g1="one" g2="five" k="67" /> 349.177 -<hkern g1="one" g2="six" k="62" /> 349.178 -<hkern g1="one" g2="seven" k="90" /> 349.179 -<hkern g1="one" g2="eight" k="65" /> 349.180 -<hkern g1="one" g2="nine" k="65" /> 349.181 -<hkern g1="two" g2="one" k="36" /> 349.182 -<hkern g1="two" g2="four" k="37" /> 349.183 -<hkern g1="two" g2="seven" k="25" /> 349.184 -<hkern g1="three" g2="one" k="49" /> 349.185 -<hkern g1="three" g2="four" k="2" /> 349.186 -<hkern g1="three" g2="seven" k="33" /> 349.187 -<hkern g1="four" g2="one" k="84" /> 349.188 -<hkern g1="four" g2="four" k="-5" /> 349.189 -<hkern g1="four" g2="seven" k="56" /> 349.190 -<hkern g1="five" g2="one" k="76" /> 349.191 -<hkern g1="five" g2="four" k="-1" /> 349.192 -<hkern g1="five" g2="seven" k="26" /> 349.193 -<hkern g1="six" g2="one" k="43" /> 349.194 -<hkern g1="six" g2="four" k="-1" /> 349.195 -<hkern g1="six" g2="seven" k="30" /> 349.196 -<hkern g1="seven" g2="comma" k="119" /> 349.197 -<hkern g1="seven" g2="period" k="119" /> 349.198 -<hkern g1="seven" g2="one" k="53" /> 349.199 -<hkern g1="seven" g2="two" k="28" /> 349.200 -<hkern g1="seven" g2="three" k="23" /> 349.201 -<hkern g1="seven" g2="four" k="93" /> 349.202 -<hkern g1="seven" g2="five" k="30" /> 349.203 -<hkern g1="seven" g2="six" k="40" /> 349.204 -<hkern g1="seven" g2="seven" k="4" /> 349.205 -<hkern g1="seven" g2="eight" k="28" /> 349.206 -<hkern g1="seven" g2="colon" k="77" /> 349.207 -<hkern g1="eight" g2="one" k="48" /> 349.208 -<hkern g1="eight" g2="four" k="-1" /> 349.209 -<hkern g1="eight" g2="seven" k="33" /> 349.210 -<hkern g1="nine" g2="one" k="43" /> 349.211 -<hkern g1="nine" g2="four" k="3" /> 349.212 -<hkern g1="nine" g2="seven" k="37" /> 349.213 -<hkern g1="A" g2="comma" k="-5" /> 349.214 -<hkern g1="A" g2="hyphen" k="3" /> 349.215 -<hkern g1="A" g2="period" k="-5" /> 349.216 -<hkern g1="A" g2="C" k="36" /> 349.217 -<hkern g1="A" g2="G" k="35" /> 349.218 -<hkern g1="A" g2="O" k="33" /> 349.219 -<hkern g1="A" g2="Q" k="32" /> 349.220 -<hkern g1="A" g2="T" k="93" /> 349.221 -<hkern g1="A" g2="U" k="37" /> 349.222 -<hkern g1="A" g2="V" k="75" /> 349.223 -<hkern g1="A" g2="W" k="51" /> 349.224 -<hkern g1="A" g2="Y" k="99" /> 349.225 -<hkern g1="A" g2="a" k="4" /> 349.226 -<hkern g1="A" g2="b" k="-4" /> 349.227 -<hkern g1="A" g2="c" k="11" /> 349.228 -<hkern g1="A" g2="d" k="8" /> 349.229 -<hkern g1="A" g2="e" k="16" /> 349.230 -<hkern g1="A" g2="g" k="10" /> 349.231 -<hkern g1="A" g2="o" k="13" /> 349.232 -<hkern g1="A" g2="q" k="8" /> 349.233 -<hkern g1="A" g2="t" k="16" /> 349.234 -<hkern g1="A" g2="u" k="12" /> 349.235 -<hkern g1="A" g2="v" k="31" /> 349.236 -<hkern g1="A" g2="w" k="21" /> 349.237 -<hkern g1="A" g2="y" k="34" /> 349.238 -<hkern g1="B" g2="A" k="21" /> 349.239 -<hkern g1="B" g2="O" k="7" /> 349.240 -<hkern g1="B" g2="V" k="41" /> 349.241 -<hkern g1="B" g2="W" k="25" /> 349.242 -<hkern g1="B" g2="Y" k="44" /> 349.243 -<hkern g1="C" g2="A" k="32" /> 349.244 -<hkern g1="C" g2="H" k="12" /> 349.245 -<hkern g1="C" g2="K" k="10" /> 349.246 -<hkern g1="C" g2="O" k="8" /> 349.247 -<hkern g1="D" g2="A" k="42" /> 349.248 -<hkern g1="D" g2="J" k="5" /> 349.249 -<hkern g1="D" g2="T" k="45" /> 349.250 -<hkern g1="D" g2="V" k="51" /> 349.251 -<hkern g1="D" g2="W" k="29" /> 349.252 -<hkern g1="D" g2="X" k="53" /> 349.253 -<hkern g1="D" g2="Y" k="63" /> 349.254 -<hkern g1="F" g2="comma" k="108" /> 349.255 -<hkern g1="F" g2="hyphen" k="14" /> 349.256 -<hkern g1="F" g2="period" k="108" /> 349.257 -<hkern g1="F" g2="A" k="69" /> 349.258 -<hkern g1="F" g2="J" k="51" /> 349.259 -<hkern g1="F" g2="O" k="22" /> 349.260 -<hkern g1="F" g2="a" k="33" /> 349.261 -<hkern g1="F" g2="e" k="24" /> 349.262 -<hkern g1="F" g2="i" k="10" /> 349.263 -<hkern g1="F" g2="j" k="12" /> 349.264 -<hkern g1="F" g2="o" k="21" /> 349.265 -<hkern g1="F" g2="r" k="35" /> 349.266 -<hkern g1="F" g2="u" k="33" /> 349.267 -<hkern g1="G" g2="A" k="6" /> 349.268 -<hkern g1="G" g2="T" k="44" /> 349.269 -<hkern g1="G" g2="V" k="50" /> 349.270 -<hkern g1="G" g2="W" k="28" /> 349.271 -<hkern g1="G" g2="Y" k="62" /> 349.272 -<hkern g1="J" g2="A" k="32" /> 349.273 -<hkern g1="K" g2="hyphen" k="47" /> 349.274 -<hkern g1="K" g2="C" k="51" /> 349.275 -<hkern g1="K" g2="G" k="51" /> 349.276 -<hkern g1="K" g2="O" k="48" /> 349.277 -<hkern g1="K" g2="S" k="38" /> 349.278 -<hkern g1="K" g2="T" k="-20" /> 349.279 -<hkern g1="K" g2="a" k="11" /> 349.280 -<hkern g1="K" g2="e" k="32" /> 349.281 -<hkern g1="K" g2="o" k="29" /> 349.282 -<hkern g1="K" g2="u" k="19" /> 349.283 -<hkern g1="K" g2="y" k="62" /> 349.284 -<hkern g1="L" g2="hyphen" k="125" /> 349.285 -<hkern g1="L" g2="A" k="-17" /> 349.286 -<hkern g1="L" g2="C" k="41" /> 349.287 -<hkern g1="L" g2="G" k="42" /> 349.288 -<hkern g1="L" g2="O" k="41" /> 349.289 -<hkern g1="L" g2="S" k="19" /> 349.290 -<hkern g1="L" g2="T" k="105" /> 349.291 -<hkern g1="L" g2="U" k="35" /> 349.292 -<hkern g1="L" g2="V" k="105" /> 349.293 -<hkern g1="L" g2="W" k="68" /> 349.294 -<hkern g1="L" g2="Y" k="121" /> 349.295 -<hkern g1="L" g2="u" k="7" /> 349.296 -<hkern g1="L" g2="y" k="56" /> 349.297 -<hkern g1="N" g2="comma" k="7" /> 349.298 -<hkern g1="N" g2="period" k="7" /> 349.299 -<hkern g1="N" g2="A" k="9" /> 349.300 -<hkern g1="N" g2="C" k="3" /> 349.301 -<hkern g1="N" g2="G" k="2" /> 349.302 -<hkern g1="N" g2="a" k="5" /> 349.303 -<hkern g1="N" g2="o" k="-2" /> 349.304 -<hkern g1="O" g2="A" k="35" /> 349.305 -<hkern g1="O" g2="T" k="42" /> 349.306 -<hkern g1="O" g2="V" k="45" /> 349.307 -<hkern g1="O" g2="W" k="23" /> 349.308 -<hkern g1="O" g2="X" k="46" /> 349.309 -<hkern g1="O" g2="Y" k="59" /> 349.310 -<hkern g1="P" g2="comma" k="135" /> 349.311 -<hkern g1="P" g2="hyphen" k="40" /> 349.312 -<hkern g1="P" g2="period" k="135" /> 349.313 -<hkern g1="P" g2="A" k="78" /> 349.314 -<hkern g1="P" g2="J" k="78" /> 349.315 -<hkern g1="P" g2="a" k="28" /> 349.316 -<hkern g1="P" g2="e" k="31" /> 349.317 -<hkern g1="P" g2="o" k="27" /> 349.318 -<hkern g1="R" g2="hyphen" k="2" /> 349.319 -<hkern g1="R" g2="C" k="16" /> 349.320 -<hkern g1="R" g2="G" k="15" /> 349.321 -<hkern g1="R" g2="O" k="13" /> 349.322 -<hkern g1="R" g2="T" k="23" /> 349.323 -<hkern g1="R" g2="U" k="17" /> 349.324 -<hkern g1="R" g2="V" k="39" /> 349.325 -<hkern g1="R" g2="W" k="27" /> 349.326 -<hkern g1="R" g2="Y" k="43" /> 349.327 -<hkern g1="R" g2="a" k="15" /> 349.328 -<hkern g1="R" g2="e" k="12" /> 349.329 -<hkern g1="R" g2="o" k="9" /> 349.330 -<hkern g1="R" g2="u" k="9" /> 349.331 -<hkern g1="R" g2="y" k="8" /> 349.332 -<hkern g1="S" g2="A" k="22" /> 349.333 -<hkern g1="S" g2="T" k="28" /> 349.334 -<hkern g1="S" g2="V" k="42" /> 349.335 -<hkern g1="S" g2="W" k="28" /> 349.336 -<hkern g1="S" g2="Y" k="48" /> 349.337 -<hkern g1="S" g2="t" k="3" /> 349.338 -<hkern g1="T" g2="comma" k="100" /> 349.339 -<hkern g1="T" g2="hyphen" k="77" /> 349.340 -<hkern g1="T" g2="period" k="100" /> 349.341 -<hkern g1="T" g2="colon" k="133" /> 349.342 -<hkern g1="T" g2="semicolon" k="129" /> 349.343 -<hkern g1="T" g2="A" k="95" /> 349.344 -<hkern g1="T" g2="C" k="44" /> 349.345 -<hkern g1="T" g2="G" k="45" /> 349.346 -<hkern g1="T" g2="J" k="100" /> 349.347 -<hkern g1="T" g2="O" k="42" /> 349.348 -<hkern g1="T" g2="S" k="24" /> 349.349 -<hkern g1="T" g2="V" k="-12" /> 349.350 -<hkern g1="T" g2="W" k="-16" /> 349.351 -<hkern g1="T" g2="Y" k="-20" /> 349.352 -<hkern g1="T" g2="a" k="100" /> 349.353 -<hkern g1="T" g2="c" k="90" /> 349.354 -<hkern g1="T" g2="e" k="95" /> 349.355 -<hkern g1="T" g2="g" k="89" /> 349.356 -<hkern g1="T" g2="i" k="3" /> 349.357 -<hkern g1="T" g2="j" k="5" /> 349.358 -<hkern g1="T" g2="o" k="92" /> 349.359 -<hkern g1="T" g2="r" k="92" /> 349.360 -<hkern g1="T" g2="s" k="92" /> 349.361 -<hkern g1="T" g2="u" k="91" /> 349.362 -<hkern g1="T" g2="v" k="95" /> 349.363 -<hkern g1="T" g2="w" k="93" /> 349.364 -<hkern g1="T" g2="y" k="100" /> 349.365 -<hkern g1="U" g2="comma" k="27" /> 349.366 -<hkern g1="U" g2="period" k="25" /> 349.367 -<hkern g1="U" g2="A" k="36" /> 349.368 -<hkern g1="U" g2="m" k="4" /> 349.369 -<hkern g1="U" g2="n" k="4" /> 349.370 -<hkern g1="U" g2="p" k="-3" /> 349.371 -<hkern g1="U" g2="r" k="4" /> 349.372 -<hkern g1="V" g2="comma" k="89" /> 349.373 -<hkern g1="V" g2="hyphen" k="38" /> 349.374 -<hkern g1="V" g2="period" k="89" /> 349.375 -<hkern g1="V" g2="colon" k="66" /> 349.376 -<hkern g1="V" g2="semicolon" k="66" /> 349.377 -<hkern g1="V" g2="A" k="71" /> 349.378 -<hkern g1="V" g2="C" k="43" /> 349.379 -<hkern g1="V" g2="G" k="42" /> 349.380 -<hkern g1="V" g2="O" k="40" /> 349.381 -<hkern g1="V" g2="S" k="35" /> 349.382 -<hkern g1="V" g2="T" k="-15" /> 349.383 -<hkern g1="V" g2="a" k="59" /> 349.384 -<hkern g1="V" g2="e" k="57" /> 349.385 -<hkern g1="V" g2="g" k="50" /> 349.386 -<hkern g1="V" g2="i" k="5" /> 349.387 -<hkern g1="V" g2="o" k="54" /> 349.388 -<hkern g1="V" g2="r" k="42" /> 349.389 -<hkern g1="V" g2="u" k="41" /> 349.390 -<hkern g1="V" g2="y" k="20" /> 349.391 -<hkern g1="W" g2="comma" k="56" /> 349.392 -<hkern g1="W" g2="hyphen" k="13" /> 349.393 -<hkern g1="W" g2="period" k="56" /> 349.394 -<hkern g1="W" g2="colon" k="52" /> 349.395 -<hkern g1="W" g2="semicolon" k="53" /> 349.396 -<hkern g1="W" g2="A" k="50" /> 349.397 -<hkern g1="W" g2="C" k="23" /> 349.398 -<hkern g1="W" g2="G" k="22" /> 349.399 -<hkern g1="W" g2="O" k="20" /> 349.400 -<hkern g1="W" g2="S" k="24" /> 349.401 -<hkern g1="W" g2="T" k="-19" /> 349.402 -<hkern g1="W" g2="a" k="38" /> 349.403 -<hkern g1="W" g2="e" k="32" /> 349.404 -<hkern g1="W" g2="g" k="25" /> 349.405 -<hkern g1="W" g2="i" k="1" /> 349.406 -<hkern g1="W" g2="o" k="29" /> 349.407 -<hkern g1="W" g2="r" k="28" /> 349.408 -<hkern g1="W" g2="u" k="28" /> 349.409 -<hkern g1="W" g2="y" k="6" /> 349.410 -<hkern g1="X" g2="hyphen" k="51" /> 349.411 -<hkern g1="X" g2="C" k="48" /> 349.412 -<hkern g1="X" g2="O" k="45" /> 349.413 -<hkern g1="X" g2="Q" k="44" /> 349.414 -<hkern g1="X" g2="a" k="15" /> 349.415 -<hkern g1="X" g2="e" k="36" /> 349.416 -<hkern g1="X" g2="o" k="33" /> 349.417 -<hkern g1="X" g2="u" k="24" /> 349.418 -<hkern g1="X" g2="y" k="61" /> 349.419 -<hkern g1="Y" g2="comma" k="111" /> 349.420 -<hkern g1="Y" g2="hyphen" k="84" /> 349.421 -<hkern g1="Y" g2="period" k="111" /> 349.422 -<hkern g1="Y" g2="colon" k="87" /> 349.423 -<hkern g1="Y" g2="semicolon" k="88" /> 349.424 -<hkern g1="Y" g2="A" k="96" /> 349.425 -<hkern g1="Y" g2="C" k="58" /> 349.426 -<hkern g1="Y" g2="G" k="58" /> 349.427 -<hkern g1="Y" g2="O" k="56" /> 349.428 -<hkern g1="Y" g2="S" k="41" /> 349.429 -<hkern g1="Y" g2="T" k="-23" /> 349.430 -<hkern g1="Y" g2="a" k="88" /> 349.431 -<hkern g1="Y" g2="e" k="89" /> 349.432 -<hkern g1="Y" g2="g" k="83" /> 349.433 -<hkern g1="Y" g2="i" k="-3" /> 349.434 -<hkern g1="Y" g2="o" k="86" /> 349.435 -<hkern g1="Y" g2="p" k="54" /> 349.436 -<hkern g1="Y" g2="u" k="63" /> 349.437 -<hkern g1="Y" g2="v" k="36" /> 349.438 -<hkern g1="Z" g2="v" k="33" /> 349.439 -<hkern g1="Z" g2="y" k="38" /> 349.440 -<hkern g1="a" g2="j" k="4" /> 349.441 -<hkern g1="a" g2="v" k="21" /> 349.442 -<hkern g1="a" g2="w" k="13" /> 349.443 -<hkern g1="a" g2="y" k="26" /> 349.444 -<hkern g1="b" g2="v" k="11" /> 349.445 -<hkern g1="b" g2="w" k="3" /> 349.446 -<hkern g1="b" g2="y" k="15" /> 349.447 -<hkern g1="c" g2="h" k="-1" /> 349.448 -<hkern g1="c" g2="k" k="-7" /> 349.449 -<hkern g1="e" g2="t" k="10" /> 349.450 -<hkern g1="e" g2="v" k="15" /> 349.451 -<hkern g1="e" g2="w" k="9" /> 349.452 -<hkern g1="e" g2="x" k="27" /> 349.453 -<hkern g1="e" g2="y" k="19" /> 349.454 -<hkern g1="f" g2="a" k="9" /> 349.455 -<hkern g1="f" g2="e" k="15" /> 349.456 -<hkern g1="f" g2="f" k="-22" /> 349.457 -<hkern g1="f" g2="i" k="2" /> 349.458 -<hkern g1="f" g2="j" k="4" /> 349.459 -<hkern g1="f" g2="l" k="3" /> 349.460 -<hkern g1="f" g2="o" k="10" /> 349.461 -<hkern g1="f" g2="t" k="-24" /> 349.462 -<hkern g1="g" g2="a" k="5" /> 349.463 -<hkern g1="h" g2="y" k="18" /> 349.464 -<hkern g1="i" g2="T" k="7" /> 349.465 -<hkern g1="i" g2="j" k="3" /> 349.466 -<hkern g1="k" g2="hyphen" k="41" /> 349.467 -<hkern g1="k" g2="a" k="2" /> 349.468 -<hkern g1="k" g2="e" k="21" /> 349.469 -<hkern g1="k" g2="g" k="16" /> 349.470 -<hkern g1="k" g2="o" k="19" /> 349.471 -<hkern g1="k" g2="s" k="3" /> 349.472 -<hkern g1="k" g2="u" k="11" /> 349.473 -<hkern g1="l" g2="y" k="5" /> 349.474 -<hkern g1="m" g2="p" k="-5" /> 349.475 -<hkern g1="m" g2="v" k="13" /> 349.476 -<hkern g1="m" g2="w" k="7" /> 349.477 -<hkern g1="m" g2="y" k="18" /> 349.478 -<hkern g1="n" g2="T" k="96" /> 349.479 -<hkern g1="n" g2="p" k="-5" /> 349.480 -<hkern g1="n" g2="v" k="13" /> 349.481 -<hkern g1="n" g2="w" k="7" /> 349.482 -<hkern g1="n" g2="y" k="18" /> 349.483 -<hkern g1="o" g2="T" k="99" /> 349.484 -<hkern g1="o" g2="t" k="10" /> 349.485 -<hkern g1="o" g2="v" k="18" /> 349.486 -<hkern g1="o" g2="w" k="10" /> 349.487 -<hkern g1="o" g2="x" k="27" /> 349.488 -<hkern g1="o" g2="y" k="22" /> 349.489 -<hkern g1="p" g2="t" k="4" /> 349.490 -<hkern g1="p" g2="y" k="16" /> 349.491 -<hkern g1="q" g2="c" k="-8" /> 349.492 -<hkern g1="q" g2="u" k="-4" /> 349.493 -<hkern g1="r" g2="comma" k="69" /> 349.494 -<hkern g1="r" g2="hyphen" k="47" /> 349.495 -<hkern g1="r" g2="period" k="69" /> 349.496 -<hkern g1="r" g2="colon" k="22" /> 349.497 -<hkern g1="r" g2="semicolon" k="22" /> 349.498 -<hkern g1="r" g2="a" k="5" /> 349.499 -<hkern g1="r" g2="c" k="6" /> 349.500 -<hkern g1="r" g2="d" k="1" /> 349.501 -<hkern g1="r" g2="e" k="11" /> 349.502 -<hkern g1="r" g2="f" k="-26" /> 349.503 -<hkern g1="r" g2="g" k="4" /> 349.504 -<hkern g1="r" g2="i" k="-1" /> 349.505 -<hkern g1="r" g2="k" k="-6" /> 349.506 -<hkern g1="r" g2="l" k="-1" /> 349.507 -<hkern g1="r" g2="o" k="6" /> 349.508 -<hkern g1="r" g2="p" k="-8" /> 349.509 -<hkern g1="r" g2="q" k="3" /> 349.510 -<hkern g1="r" g2="s" k="-4" /> 349.511 -<hkern g1="r" g2="t" k="-28" /> 349.512 -<hkern g1="r" g2="u" k="-2" /> 349.513 -<hkern g1="r" g2="v" k="-29" /> 349.514 -<hkern g1="r" g2="w" k="-31" /> 349.515 -<hkern g1="r" g2="x" k="-20" /> 349.516 -<hkern g1="r" g2="y" k="-24" /> 349.517 -<hkern g1="r" g2="z" k="-9" /> 349.518 -<hkern g1="s" g2="t" k="3" /> 349.519 -<hkern g1="t" g2="colon" k="28" /> 349.520 -<hkern g1="t" g2="semicolon" k="28" /> 349.521 -<hkern g1="t" g2="S" k="8" /> 349.522 -<hkern g1="t" g2="a" k="1" /> 349.523 -<hkern g1="t" g2="e" k="14" /> 349.524 -<hkern g1="t" g2="h" k="3" /> 349.525 -<hkern g1="t" g2="o" k="12" /> 349.526 -<hkern g1="v" g2="comma" k="69" /> 349.527 -<hkern g1="v" g2="hyphen" k="12" /> 349.528 -<hkern g1="v" g2="period" k="69" /> 349.529 -<hkern g1="v" g2="colon" k="23" /> 349.530 -<hkern g1="v" g2="semicolon" k="23" /> 349.531 -<hkern g1="v" g2="a" k="18" /> 349.532 -<hkern g1="v" g2="c" k="16" /> 349.533 -<hkern g1="v" g2="e" k="21" /> 349.534 -<hkern g1="v" g2="g" k="14" /> 349.535 -<hkern g1="v" g2="o" k="17" /> 349.536 -<hkern g1="v" g2="s" k="9" /> 349.537 -<hkern g1="w" g2="comma" k="50" /> 349.538 -<hkern g1="w" g2="hyphen" k="1" /> 349.539 -<hkern g1="w" g2="period" k="50" /> 349.540 -<hkern g1="w" g2="colon" k="23" /> 349.541 -<hkern g1="w" g2="semicolon" k="23" /> 349.542 -<hkern g1="w" g2="a" k="15" /> 349.543 -<hkern g1="w" g2="c" k="7" /> 349.544 -<hkern g1="w" g2="e" k="12" /> 349.545 -<hkern g1="w" g2="g" k="6" /> 349.546 -<hkern g1="w" g2="o" k="9" /> 349.547 -<hkern g1="w" g2="s" k="5" /> 349.548 -<hkern g1="x" g2="a" k="17" /> 349.549 -<hkern g1="x" g2="c" k="23" /> 349.550 -<hkern g1="x" g2="e" k="28" /> 349.551 -<hkern g1="x" g2="o" k="25" /> 349.552 -<hkern g1="x" g2="q" k="20" /> 349.553 -<hkern g1="y" g2="comma" k="70" /> 349.554 -<hkern g1="y" g2="hyphen" k="14" /> 349.555 -<hkern g1="y" g2="period" k="70" /> 349.556 -<hkern g1="y" g2="colon" k="27" /> 349.557 -<hkern g1="y" g2="semicolon" k="27" /> 349.558 -<hkern g1="y" g2="a" k="22" /> 349.559 -<hkern g1="y" g2="c" k="19" /> 349.560 -<hkern g1="y" g2="e" k="24" /> 349.561 -<hkern g1="y" g2="g" k="17" /> 349.562 -<hkern g1="y" g2="l" k="4" /> 349.563 -<hkern g1="y" g2="o" k="20" /> 349.564 -<hkern g1="y" g2="s" k="12" /> 349.565 -</font> 349.566 -</defs> 349.567 -<g font-family="SVGFreeSansASCII" font-size="18"> 349.568 -<text x="20" y="60">  !"#$%&'()*+,-./0123456789:;<>?</text> 349.569 -<text x="20" y="120">@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_</text> 349.570 -<text x="20" y="180">`abcdefghijklmnopqrstuvwxyz|{}~</text> 349.571 -</g> 349.572 -</svg>
350.1 --- a/test/svg/filters-gauss-201.svg Thu Feb 24 10:19:12 2011 +0000 350.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 350.3 @@ -1,81 +0,0 @@ 350.4 -<svg id="svg-root" width="100%" height="100%" 350.5 - viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 350.6 - xmlns:xlink="http://www.w3.org/1999/xlink"> 350.7 - <!--======================================================================--> 350.8 - <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 350.9 - <!--= Institute of Technology, European Research Consortium for =--> 350.10 - <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 350.11 - <!--= All Rights Reserved. =--> 350.12 - <!--= See http://www.w3.org/Consortium/Legal/. =--> 350.13 - <!--======================================================================--> 350.14 - <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 350.15 - reviewer="[reviewer]" owner="ED" desc="Negative stdDeviation attribute values" status="created" 350.16 - version="$Revision$" testname="$RCSfile$"> 350.17 - <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"> 350.18 - <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#feGaussianBlur"> 350.19 - <p> 350.20 - This test tests negative values for 'stdDeviation' on 'feGaussianBlur'. 350.21 - </p> 350.22 - </d:Reference> 350.23 - </d:TestDescription> 350.24 - <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 350.25 - <p> 350.26 - Run the test. No interaction required. 350.27 - </p> 350.28 - </d:OperatorScript> 350.29 - <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 350.30 - <p> 350.31 - The test has passed if there are two blurred images and they both look exactly the same. 350.32 - </p> 350.33 - </d:PassCriteria> 350.34 - </SVGTestCase> 350.35 - <title id="test-title">$RCSfile$</title> 350.36 - <defs> 350.37 - <font-face 350.38 - font-family="SVGFreeSansASCII" 350.39 - unicode-range="U+0-7F"> 350.40 - <font-face-src> 350.41 - <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 350.42 - </font-face-src> 350.43 - </font-face> 350.44 - </defs> 350.45 - <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18"> 350.46 - 350.47 - <defs> 350.48 - <filter id="filter1"> 350.49 - <feGaussianBlur stdDeviation="6"/> 350.50 - </filter> 350.51 - <filter id="filter2"> 350.52 - <feGaussianBlur stdDeviation="-6"/> 350.53 - </filter> 350.54 - <filter id="filter3"> 350.55 - <feGaussianBlur stdDeviation="-6 6"/> 350.56 - </filter> 350.57 - <filter id="filter4"> 350.58 - <feGaussianBlur stdDeviation="6 -6"/> 350.59 - </filter> 350.60 - </defs> 350.61 - 350.62 - <circle cx="180" cy="100" r="30" fill="red"/> 350.63 - <circle cx="300" cy="100" r="30" fill="red"/> 350.64 - <circle cx="180" cy="220" r="30" fill="red"/> 350.65 - <circle cx="300" cy="220" r="30" fill="red"/> 350.66 - 350.67 - <circle cx="180" cy="100" r="50" filter="url(#filter1)" fill="lime"/> 350.68 - <circle cx="300" cy="100" r="50" filter="url(#filter2)" fill="lime"/> 350.69 - <circle cx="180" cy="220" r="50" filter="url(#filter3)" fill="lime"/> 350.70 - <circle cx="300" cy="220" r="50" filter="url(#filter4)" fill="lime"/> 350.71 - 350.72 - </g> 350.73 - <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 350.74 - <text id="revision" x="10" y="340" stroke="none" 350.75 - fill="black">$Revision$</text> 350.76 - </g> 350.77 - <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 350.78 - <!-- comment out this watermark once the test is approved --> 350.79 - <g id="draft-watermark"> 350.80 - <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 350.81 - <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 350.82 - text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 350.83 - </g> 350.84 -</svg>
351.1 --- a/test/svg/filters-morph-201.svg Thu Feb 24 10:19:12 2011 +0000 351.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 351.3 @@ -1,84 +0,0 @@ 351.4 -<svg id="svg-root" width="100%" height="100%" 351.5 - viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 351.6 - xmlns:xlink="http://www.w3.org/1999/xlink"> 351.7 - <!--======================================================================--> 351.8 - <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 351.9 - <!--= Institute of Technology, European Research Consortium for =--> 351.10 - <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 351.11 - <!--= All Rights Reserved. =--> 351.12 - <!--= See http://www.w3.org/Consortium/Legal/. =--> 351.13 - <!--======================================================================--> 351.14 - <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" 351.15 - template-version="1.3" reviewer="[reviewer]" author="ED" status="created" 351.16 - version="$Revision$" testname="$RCSfile$"> 351.17 - <d:testDescription> 351.18 - <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#feMorphologyElement"> 351.19 - <p> 351.20 - Tests various values for the <a>'radius'</a> attribute on <a>'feMorphology'</a>. 351.21 - </p> 351.22 - </d:testComponent> 351.23 - </d:testDescription> 351.24 - <d:operatorScript xmlns="http://www.w3.org/1999/xhtml"> 351.25 - <p> 351.26 - Run the test. No interaction required. 351.27 - </p> 351.28 - </d:operatorScript> 351.29 - <d:passCriteria xmlns="http://www.w3.org/1999/xhtml"> 351.30 - <p> 351.31 - The test has passed if there are six lines of gradually thinning text, with the boldest line of text at the top, and no red visible. 351.32 - </p> 351.33 - </d:passCriteria> 351.34 - </d:SVGTestCase> 351.35 - <title id="test-title">$RCSfile$</title> 351.36 - <defs> 351.37 - <font-face 351.38 - font-family="SVGFreeSansASCII" 351.39 - unicode-range="U+0-7F"> 351.40 - <font-face-src> 351.41 - <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 351.42 - </font-face-src> 351.43 - </font-face> 351.44 - </defs> 351.45 - <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12"> 351.46 - 351.47 - <defs> 351.48 - <filter id="morph0"> 351.49 - <feMorphology type="erode" radius="0"/> 351.50 - </filter> 351.51 - <filter id="morph1"> 351.52 - <feMorphology type="erode" radius="0.5"/> 351.53 - </filter> 351.54 - <filter id="morph2"> 351.55 - <feMorphology type="erode" radius="1"/> 351.56 - </filter> 351.57 - <filter id="morph3"> 351.58 - <feMorphology type="erode" radius="1.5"/> 351.59 - </filter> 351.60 - <filter id="morph4"> 351.61 - <feMorphology type="erode" radius="2"/> 351.62 - </filter> 351.63 - <filter id="morph5"> 351.64 - <feMorphology type="erode" radius="3"/> 351.65 - </filter> 351.66 - </defs> 351.67 - 351.68 - <text x="240" y="80" font-size="48" text-anchor="middle" stroke="red" fill="red">Erode radius=0.0</text> 351.69 - <text x="240" y="80" font-size="48" text-anchor="middle" filter="url(#morph0)" stroke="black">Erode radius=0.0</text> 351.70 - <text x="240" y="120" font-size="48" text-anchor="middle" filter="url(#morph1)" stroke="black">Erode radius=0.5</text> 351.71 - <text x="240" y="160" font-size="48" text-anchor="middle" filter="url(#morph2)" stroke="black">Erode radius=1.0</text> 351.72 - <text x="240" y="200" font-size="48" text-anchor="middle" filter="url(#morph3)" stroke="black">Erode radius=1.5</text> 351.73 - <text x="240" y="240" font-size="48" text-anchor="middle" filter="url(#morph4)" stroke="black">Erode radius=2.0</text> 351.74 - <text x="240" y="280" font-size="48" text-anchor="middle" filter="url(#morph5)" stroke="black">Erode radius=3.0</text> 351.75 - </g> 351.76 - <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 351.77 - <text id="revision" x="10" y="340" stroke="none" 351.78 - fill="black">$Revision$</text> 351.79 - </g> 351.80 - <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 351.81 - <!-- comment out this watermark once the test is approved --> 351.82 - <g id="draft-watermark"> 351.83 - <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 351.84 - <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 351.85 - text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 351.86 - </g> 351.87 -</svg>
352.1 --- a/test/svg/filters-region-201.svg Thu Feb 24 10:19:12 2011 +0000 352.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 352.3 @@ -1,91 +0,0 @@ 352.4 -<svg id="svg-root" width="100%" height="100%" 352.5 - viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 352.6 - xmlns:xlink="http://www.w3.org/1999/xlink"> 352.7 - <!--======================================================================--> 352.8 - <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 352.9 - <!--= Institute of Technology, European Research Consortium for =--> 352.10 - <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 352.11 - <!--= All Rights Reserved. =--> 352.12 - <!--= See http://www.w3.org/Consortium/Legal/. =--> 352.13 - <!--======================================================================--> 352.14 - <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 352.15 - reviewer="[reviewer]" owner="ED" desc="Test filter effects region" status="created" 352.16 - version="$Revision$" testname="$RCSfile$"> 352.17 - <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"> 352.18 - <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion"> 352.19 - <p> 352.20 - This test tests the x, y, width and height attributes on the 'filter' element. These attributes define the filter effects region. 352.21 - </p> 352.22 - </d:Reference> 352.23 - </d:TestDescription> 352.24 - <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 352.25 - <p> 352.26 - Load the test, and inspect the image for any traces of red, or misalignments. 352.27 - </p> 352.28 - </d:OperatorScript> 352.29 - <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 352.30 - <p> 352.31 - The test has passed if: 352.32 - <ul> 352.33 - <li>The test shows one green rectangle split into four subrectangles that have equal size</li> 352.34 - <li>There is no red visible</li> 352.35 - </ul> 352.36 - </p> 352.37 - </d:PassCriteria> 352.38 - </SVGTestCase> 352.39 - <title id="test-title">$RCSfile$</title> 352.40 - <defs> 352.41 - <font-face 352.42 - font-family="SVGFreeSansASCII" 352.43 - unicode-range="U+0-7F"> 352.44 - <font-face-src> 352.45 - <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 352.46 - </font-face-src> 352.47 - </font-face> 352.48 - </defs> 352.49 - <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18"> 352.50 - 352.51 - <defs> 352.52 - <!-- test small region --> 352.53 - <filter id="filter11" x="0" y="0" width="50%" height="50%"> 352.54 - <feFlood flood-color="lime"/> 352.55 - </filter> 352.56 - 352.57 - <!-- test large region --> 352.58 - <filter id="filter12" x="-20%" y="-20%" width="200%" height="200%"> 352.59 - <feFlood flood-color="lime"/> 352.60 - </filter> 352.61 - 352.62 - <!-- test lacuna values --> 352.63 - <filter id="filter21"> 352.64 - <feFlood flood-color="lime"/> 352.65 - </filter> 352.66 - 352.67 - <!-- test negative width/height values --> 352.68 - <filter id="filter22" width="-1" height="-20%"> 352.69 - <feFlood flood-color="red"/> 352.70 - </filter> 352.71 - </defs> 352.72 - 352.73 - <rect x="50" y="40" width="380" height="240" fill="red"/> 352.74 - <rect x="50" y="40" width="380" height="240" fill="red" filter="url(#filter11)"/> 352.75 - <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/> 352.76 - <rect x="66" y="170" width="158" height="100" fill="red" filter="url(#filter21)"/> 352.77 - <rect x="240" y="160" width="190" height="120" fill="lime"/> 352.78 - <rect x="240" y="160" width="170" height="120" fill="red" filter="url(#filter22)"/> 352.79 - <line x1="240" y1="40" x2="240" y2="280" stroke="black"/> 352.80 - <line x1="50" y1="160" x2="430" y2="160" stroke="black"/> 352.81 - 352.82 - </g> 352.83 - <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 352.84 - <text id="revision" x="10" y="340" stroke="none" 352.85 - fill="black">$Revision$</text> 352.86 - </g> 352.87 - <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 352.88 - <!-- comment out this watermark once the test is approved --> 352.89 - <g id="draft-watermark"> 352.90 - <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 352.91 - <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 352.92 - text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 352.93 - </g> 352.94 -</svg>
353.1 --- a/test/svg/filters-region-202.svg Thu Feb 24 10:19:12 2011 +0000 353.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 353.3 @@ -1,82 +0,0 @@ 353.4 -<svg id="svg-root" width="100%" height="100%" 353.5 - viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 353.6 - xmlns:xlink="http://www.w3.org/1999/xlink"> 353.7 - <!--======================================================================--> 353.8 - <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 353.9 - <!--= Institute of Technology, European Research Consortium for =--> 353.10 - <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 353.11 - <!--= All Rights Reserved. =--> 353.12 - <!--= See http://www.w3.org/Consortium/Legal/. =--> 353.13 - <!--======================================================================--> 353.14 - <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 353.15 - reviewer="[reviewer]" owner="ED" desc="Test filterUnits" status="created" 353.16 - version="$Revision$" testname="$RCSfile$"> 353.17 - <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"> 353.18 - <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion"> 353.19 - <p> 353.20 - This test tests the 'filterUnits' attribute with the value 'userSpaceOnUse'. 353.21 - </p> 353.22 - </d:Reference> 353.23 - </d:TestDescription> 353.24 - <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 353.25 - <p> 353.26 - Load the test, and inspect the image for any traces of red. 353.27 - </p> 353.28 - </d:OperatorScript> 353.29 - <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 353.30 - <p> 353.31 - The test has passed if: 353.32 - <ul> 353.33 - <li>The test shows one green rectangle split into two subrectangles that have equal size</li> 353.34 - <li>There is no red visible</li> 353.35 - <li>There is no green visible outside the two stroked subrectangles</li> 353.36 - </ul> 353.37 - </p> 353.38 - </d:PassCriteria> 353.39 - </SVGTestCase> 353.40 - <title id="test-title">$RCSfile$</title> 353.41 - <defs> 353.42 - <font-face 353.43 - font-family="SVGFreeSansASCII" 353.44 - unicode-range="U+0-7F"> 353.45 - <font-face-src> 353.46 - <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 353.47 - </font-face-src> 353.48 - </font-face> 353.49 - </defs> 353.50 - <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18"> 353.51 - 353.52 - <defs> 353.53 - <!-- test percentage resolving --> 353.54 - <filter id="filter11" x="50" y="40" width="79.16%" height="33.33%" filterUnits="userSpaceOnUse"> 353.55 - <feFlood flood-color="lime"/> 353.56 - </filter> 353.57 - 353.58 - <!-- test lacuna values --> 353.59 - <filter id="filter12" filterUnits="userSpaceOnUse"> 353.60 - <feFlood flood-color="lime"/> 353.61 - </filter> 353.62 - </defs> 353.63 - 353.64 - <rect x="50" y="40" width="380" height="240" fill="red"/> 353.65 - <rect x="50" y="40" width="10" height="10" fill="red" filter="url(#filter11)"/> 353.66 - 353.67 - <svg x="82" y="170" width="316" height="100" overflow="visible"> 353.68 - <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/> 353.69 - </svg> 353.70 - 353.71 - <line x1="50" y1="160" x2="430" y2="160" stroke="black"/> 353.72 - <rect x="50" y="40" width="380" height="240" fill="none" stroke="black"/> 353.73 - </g> 353.74 - <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 353.75 - <text id="revision" x="10" y="340" stroke="none" 353.76 - fill="black">$Revision$</text> 353.77 - </g> 353.78 - <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 353.79 - <!-- comment out this watermark once the test is approved --> 353.80 - <g id="draft-watermark"> 353.81 - <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 353.82 - <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 353.83 - text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 353.84 - </g> 353.85 -</svg>
354.1 --- a/test/svg/filters-region-203.svg Thu Feb 24 10:19:12 2011 +0000 354.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 354.3 @@ -1,82 +0,0 @@ 354.4 -<svg id="svg-root" width="100%" height="100%" 354.5 - viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 354.6 - xmlns:xlink="http://www.w3.org/1999/xlink"> 354.7 - <!--======================================================================--> 354.8 - <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 354.9 - <!--= Institute of Technology, European Research Consortium for =--> 354.10 - <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 354.11 - <!--= All Rights Reserved. =--> 354.12 - <!--= See http://www.w3.org/Consortium/Legal/. =--> 354.13 - <!--======================================================================--> 354.14 - <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" 354.15 - reviewer="[reviewer]" owner="ED" desc="Test filterUnits" status="created" 354.16 - version="$Revision$" testname="$RCSfile$"> 354.17 - <d:TestDescription xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"> 354.18 - <d:Reference xmlns="http://www.w3.org/1999/xhtml" xlink:href="SVGFilter.html#FilterEffectsRegion"> 354.19 - <p> 354.20 - This test tests the 'filterUnits' attribute with the value 'userSpaceOnUse'. 354.21 - </p> 354.22 - </d:Reference> 354.23 - </d:TestDescription> 354.24 - <d:OperatorScript xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 354.25 - <p> 354.26 - Load the test, and inspect the image for any traces of red. 354.27 - </p> 354.28 - </d:OperatorScript> 354.29 - <d:PassCriteria xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/1999/xhtml"> 354.30 - <p> 354.31 - The test has passed if: 354.32 - <ul> 354.33 - <li>The test shows one green rectangle split into two subrectangles that have equal size</li> 354.34 - <li>There is no red visible</li> 354.35 - <li>There is no green visible outside the two stroked subrectangles</li> 354.36 - </ul> 354.37 - </p> 354.38 - </d:PassCriteria> 354.39 - </SVGTestCase> 354.40 - <title id="test-title">$RCSfile$</title> 354.41 - <defs> 354.42 - <font-face 354.43 - font-family="SVGFreeSansASCII" 354.44 - unicode-range="U+0-7F"> 354.45 - <font-face-src> 354.46 - <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 354.47 - </font-face-src> 354.48 - </font-face> 354.49 - </defs> 354.50 - <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18"> 354.51 - 354.52 - <defs> 354.53 - <!-- test percentage resolving --> 354.54 - <filter id="filter11" x="0%" y="0%" width="100%" height="100%" primitiveUnits="objectBoundingBox"> 354.55 - <feFlood flood-color="lime" x="10%" y="10%" width="80%" height="80%"/> 354.56 - </filter> 354.57 - 354.58 - <!-- test lacuna values --> 354.59 - <filter id="filter12" filterUnits="userSpaceOnUse"> 354.60 - <feFlood flood-color="lime"/> 354.61 - </filter> 354.62 - </defs> 354.63 - 354.64 - <rect x="50" y="40" width="380" height="240" fill="red"/> 354.65 - <rect x="50" y="40" width="10" height="10" fill="red" filter="url(#filter11)"/> 354.66 - 354.67 - <svg x="82" y="170" width="316" height="100" overflow="visible"> 354.68 - <rect x="259" y="52" width="95" height="60" fill="red" filter="url(#filter12)"/> 354.69 - </svg> 354.70 - 354.71 - <line x1="50" y1="160" x2="430" y2="160" stroke="black"/> 354.72 - <rect x="50" y="40" width="380" height="240" fill="none" stroke="black"/> 354.73 - </g> 354.74 - <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 354.75 - <text id="revision" x="10" y="340" stroke="none" 354.76 - fill="black">$Revision$</text> 354.77 - </g> 354.78 - <rect xmlid="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 354.79 - <!-- comment out this watermark once the test is approved --> 354.80 - <g id="draft-watermark"> 354.81 - <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 354.82 - <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 354.83 - text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 354.84 - </g> 354.85 -</svg>
355.1 --- a/test/svg/filters-turb-201.svg Thu Feb 24 10:19:12 2011 +0000 355.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 355.3 @@ -1,85 +0,0 @@ 355.4 -<svg id="svg-root" width="100%" height="100%" 355.5 - viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 355.6 - xmlns:xlink="http://www.w3.org/1999/xlink"> 355.7 - <!--======================================================================--> 355.8 - <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 355.9 - <!--= Institute of Technology, European Research Consortium for =--> 355.10 - <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 355.11 - <!--= All Rights Reserved. =--> 355.12 - <!--= See http://www.w3.org/Consortium/Legal/. =--> 355.13 - <!--======================================================================--> 355.14 - <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" 355.15 - template-version="1.3" reviewer="[reviewer]" author="ED" status="created" 355.16 - version="$Revision$" testname="$RCSfile$"> 355.17 - <d:testDescription> 355.18 - <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="http://www.w3.org/TR/SVG11/[chapter]"> 355.19 - <p> 355.20 - Tests the <a>'feTurbulence/type'</a> attribute on <a>'feTurbulence'</a>. 355.21 - </p> 355.22 - </d:testComponent> 355.23 - </d:testDescription> 355.24 - <d:operatorScript xmlns="http://www.w3.org/1999/xhtml"> 355.25 - <p> 355.26 - There should be three rectangular filtered areas, showing some turbulence noise. 355.27 - </p> 355.28 - </d:operatorScript> 355.29 - <d:passCriteria xmlns="http://www.w3.org/1999/xhtml"> 355.30 - <p> 355.31 - The test has passed if the rightmost and the leftmost rects are exactly the same, and the middle one is different. 355.32 - <!-- FIXME: Add better pass criteria. --> 355.33 - </p> 355.34 - </d:passCriteria> 355.35 - </d:SVGTestCase> 355.36 - <title id="test-title">$RCSfile$</title> 355.37 - <defs> 355.38 - <font-face 355.39 - font-family="SVGFreeSansASCII" 355.40 - unicode-range="U+0-7F"> 355.41 - <font-face-src> 355.42 - <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 355.43 - </font-face-src> 355.44 - </font-face> 355.45 - </defs> 355.46 - <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12"> 355.47 - 355.48 - <defs> 355.49 - <filter id="t1" x="0" y="0" width="1" height="1"> 355.50 - <feTurbulence baseFrequency="0.15" /> 355.51 - </filter> 355.52 - <filter id="t2" x="0" y="0" width="1" height="1"> 355.53 - <feTurbulence baseFrequency="0.15" type="fractalNoise"/> 355.54 - </filter> 355.55 - <filter id="t3" x="0" y="0" width="1" height="1"> 355.56 - <feTurbulence baseFrequency="0.15" type="turbulence"/> 355.57 - </filter> 355.58 - </defs> 355.59 - 355.60 - <text x="240" y="70" font-size="24" text-anchor="middle">feTurbulence type attribute</text> 355.61 - 355.62 - <g transform="translate(80 120)"> 355.63 - <g transform="translate(0 0)"> 355.64 - <rect width="100" height="100" filter="url(#t1)"/> 355.65 - <text x="50" y="120" text-anchor="middle">lacuna value</text> 355.66 - </g> 355.67 - <g transform="translate(100 0)"> 355.68 - <rect width="100" height="100" filter="url(#t2)"/> 355.69 - <text x="50" y="120" text-anchor="middle">fractalNoise</text> 355.70 - </g> 355.71 - <g transform="translate(200 0)"> 355.72 - <rect width="100" height="100" filter="url(#t3)"/> 355.73 - <text x="50" y="120" text-anchor="middle">turbulence</text> 355.74 - </g> 355.75 - </g> 355.76 - </g> 355.77 - <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 355.78 - <text id="revision" x="10" y="340" stroke="none" 355.79 - fill="black">$Revision$</text> 355.80 - </g> 355.81 - <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 355.82 - <!-- comment out this watermark once the test is approved --> 355.83 - <g id="draft-watermark"> 355.84 - <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 355.85 - <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 355.86 - text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 355.87 - </g> 355.88 -</svg>
356.1 --- a/test/svg/filters-turb-202.svg Thu Feb 24 10:19:12 2011 +0000 356.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 356.3 @@ -1,88 +0,0 @@ 356.4 -<svg id="svg-root" width="100%" height="100%" 356.5 - viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" 356.6 - xmlns:xlink="http://www.w3.org/1999/xlink"> 356.7 - <!--======================================================================--> 356.8 - <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> 356.9 - <!--= Institute of Technology, European Research Consortium for =--> 356.10 - <!--= Informatics and Mathematics (ERCIM), Keio University). =--> 356.11 - <!--= All Rights Reserved. =--> 356.12 - <!--= See http://www.w3.org/Consortium/Legal/. =--> 356.13 - <!--======================================================================--> 356.14 - <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" 356.15 - template-version="1.3" reviewer="[reviewer]" author="ED" status="created" 356.16 - version="$Revision$" testname="$RCSfile$"> 356.17 - <d:testDescription> 356.18 - <d:testComponent xmlns="http://www.w3.org/1999/xhtml" xlink:href="#assert_turbulenceStitchTilesLacunaValue"> 356.19 - <p> 356.20 - Tests the <a>'feTurbulence/stitchTiles'</a> attribute on <a>'feTurbulence'</a>. 356.21 - </p> 356.22 - </d:testComponent> 356.23 - </d:testDescription> 356.24 - <d:operatorScript xmlns="http://www.w3.org/1999/xhtml"> 356.25 - <p> 356.26 - There should be three rectangular filtered areas, showing some turbulence noise. 356.27 - </p> 356.28 - </d:operatorScript> 356.29 - <d:passCriteria xmlns="http://www.w3.org/1999/xhtml"> 356.30 - <p> 356.31 - The test has passed if the rightmost and the leftmost rects are exactly the same, and the middle one is different. 356.32 - <!-- FIXME: Add better pass criteria. --> 356.33 - </p> 356.34 - </d:passCriteria> 356.35 - </d:SVGTestCase> 356.36 - <title id="test-title">$RCSfile$</title> 356.37 - <defs> 356.38 - <font-face 356.39 - font-family="SVGFreeSansASCII" 356.40 - unicode-range="U+0-7F"> 356.41 - <font-face-src> 356.42 - <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> 356.43 - </font-face-src> 356.44 - </font-face> 356.45 - </defs> 356.46 - <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12"> 356.47 - 356.48 - <defs> 356.49 - <filter id="t1" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox"> 356.50 - <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" /> 356.51 - <feTile/> 356.52 - </filter> 356.53 - <filter id="t2" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox"> 356.54 - <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" stitchTiles="stitch"/> 356.55 - <feTile/> 356.56 - </filter> 356.57 - <filter id="t3" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox"> 356.58 - <feTurbulence width="0.6" height="0.6" baseFrequency="0.15" stitchTiles="noStitch"/> 356.59 - <feTile/> 356.60 - </filter> 356.61 - </defs> 356.62 - 356.63 - <text x="240" y="70" font-size="24" text-anchor="middle">feTurbulence stitchTiles attribute</text> 356.64 - 356.65 - <g transform="translate(80 120)"> 356.66 - <g transform="translate(-10 0)"> 356.67 - <rect width="100" height="100" filter="url(#t1)"/> 356.68 - <text x="50" y="120" text-anchor="middle">lacuna value</text> 356.69 - </g> 356.70 - <g transform="translate(110 0)"> 356.71 - <rect width="100" height="100" filter="url(#t2)"/> 356.72 - <text x="50" y="120" text-anchor="middle">stitch</text> 356.73 - </g> 356.74 - <g transform="translate(230 0)"> 356.75 - <rect width="100" height="100" filter="url(#t3)"/> 356.76 - <text x="50" y="120" text-anchor="middle">noStitch</text> 356.77 - </g> 356.78 - </g> 356.79 - </g> 356.80 - <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> 356.81 - <text id="revision" x="10" y="340" stroke="none" 356.82 - fill="black">$Revision$</text> 356.83 - </g> 356.84 - <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> 356.85 - <!-- comment out this watermark once the test is approved --> 356.86 - <g id="draft-watermark"> 356.87 - <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> 356.88 - <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" 356.89 - text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> 356.90 - </g> 356.91 -</svg>