Graphics-FX/modules/filters/master definitions-primer.xml,NONE,1.1 definitions.xml,NONE,1.1 Makefile,NONE,1.1 publish-primer.xml,NONE,1.1 publish-reqs.xml,NONE,1.1 publish.xml,NONE,1.1 SVGFilter.html,NONE,1.1 SVGFilterPrimer.html,NONE,1.1 SVGFilterReqs.html,NONE,1.1 svgfilters.idd,NONE,1.1 svgfilters.idl,NONE,1.1 xhtml1-transitional+edit.dtd,NONE,1.1

Update of /sources/public/Graphics-FX/modules/filters/master
In directory hutz:/tmp/cvs-serv17530

Added Files:
	definitions-primer.xml definitions.xml Makefile 
	publish-primer.xml publish-reqs.xml publish.xml SVGFilter.html 
	SVGFilterPrimer.html SVGFilterReqs.html svgfilters.idd 
	svgfilters.idl xhtml1-transitional+edit.dtd 
Log Message:
Moved filters spec from dev.w3.org/SVG/modules/filters.

--- NEW FILE: svgfilters.idd ---
[svg]
[svg::SVGSVGElement::createSVGRect]
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>
 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.

     <dl>
       <dt><span class="dom-parameters">No Parameters</span></dt>
     </dl>


     <dl>
       <dt><span class="dom-returnvalue">Return value</span></dt>
       <dd>
         <table summary="method return value" border="0">

           <tbody><tr>
             <td valign="top"><span class="dom-returnvalue-type"><a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a></span></td>
             <td>
             </td>
             <td>The created <a href="#svg__SVGRect" class="udom-interface-name">SVGRect</a>.</td>
           </tr>
         </tbody></table>
       </dd>

     </dl>


     <dl>
       <dt><span class="dom-parameters">No Exceptions</span></dt>
    </dl>

--- NEW FILE: publish-reqs.xml ---
<!-- Publication script configuration for SVG Filter Requirements. -->

<publish-conf xmlns='http://mcc.id.au/ns/local'>
  <title>SVG Filter Requirements</title>
  <short-title>SVG Filter Requirements</short-title>
  <maturity>ED</maturity>
  <output use-publish-directory='true'/>
  <!--
  <publication-date>2009-12-01</publication-date>
  -->

  <versions>
    <cvs href='http://dev.w3.org/SVG/modules/filters/publish/SVGFilterReqs.html'/>
    <this href='http://www.w3.org/TR/2009/WD-SVGFilterReqs12-2009xxxx/'/>
    <previous href='http://www.w3.org/2007/WD-SVGFilterReqs12-20070501/'/>
    <latest href='http://www.w3.org/TR/SVGFilterReqs12/'/>
  </versions>

  <definitions href='definitions-primer.xml'/>

  <index name='SVGFilterReqs'/>
</publish-conf>

--- NEW FILE: svgfilters.idl ---
// // File: svg.idl
// #ifndef _SVG_IDL_
// #define _SVG_IDL_
// 
// 
// // For access to DOM2 core
// #include "dom.idl"
// 
// // For access to DOM2 events
// #include "events.idl"
// 
// // For access to those parts from DOM2 CSS OM used by SVG DOM.
// #include "css.idl"
// 
// // For access to those parts from DOM2 Views OM used by SVG DOM.
// #include "views.idl"
// 
// // For access to the SMIL OM used by SVG DOM.
// #include "smil.idl"
[...1223 lines suppressed...]
    readonly attribute SVGAnimatedEnumeration type;
  };

  /**
   * The <a>SVGFEDropShadowElement</a> interface corresponds to the
   * <a>'feDropShadow'</a> element.
   */
  interface SVGFEDropShadowElement : 
                SVGElement,
                SVGFilterPrimitiveStandardAttributes { 

    readonly attribute SVGAnimatedString in1;
    readonly attribute SVGAnimatedNumber dx;
    readonly attribute SVGAnimatedNumber dy;
    readonly attribute SVGAnimatedNumber stdDeviationX;
    readonly attribute SVGAnimatedNumber stdDeviationY;
  };
};

// #endif // _SVG_FILTERS_IDL_

--- NEW FILE: SVGFilter.html ---
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <title>SVG Filters 1.2, 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" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" />
</head>

<body>

<div class="head">
  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  <h1 id="pagetitle">SVG Filters 1.2, Part 2: Language</h1>
  <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2>
  <dl>
[...3661 lines suppressed...]
  <dt id="ref-svgt12"><strong class="normref">[SVGT12]</strong></dt>
    <dd><strong>Scalable Vector Graphics (SVG) Tiny 1.2 Specification</strong>,
      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>
    </dd>
</dl>

<h3 id="informref">Informative References</h3>
<dl>
  <dt id="ref-html5"><strong class="informref">[HTML5]</strong></dt>
    <dd><strong>HTML5</strong>, Ian Hickson editor, Google,
      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>
    </dd>
</dl>

  <h2 id="changes">Changes</h2>
  <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>
</body>
</html>

--- NEW FILE: Makefile ---
# Makefile for SVG Filters.

TOOLS=../../../../SVG/tools

# include $(TOOLS)/common.mk

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
	java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish-reqs.xml $(TOOLS)/publish.xsl
	java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish-primer.xml $(TOOLS)/publish.xsl
	java -classpath $(TOOLS)/saxonb/saxon9.jar net.sf.saxon.Transform -ext:on -dtd:off -expand:off publish.xml $(TOOLS)/publish.xsl

svgfilters.idlx : svgfilters.idl
	java -classpath $(TOOLS)/idlparser/idlparser.jar au.id.mcc.idlparser.IDLToXML svgfilters.idl > svgfilters.idlx

--- NEW FILE: publish.xml ---
<!-- Publication script configuration for SVG Filters 1.2. -->

<publish-conf xmlns='http://mcc.id.au/ns/local'>
  <title>SVG Filters 1.2, Part 2: Language</title>
  <short-title>SVG Filters 1.2</short-title>
  <maturity>ED</maturity>
  <output use-publish-directory='true'/>
  <!--
  <publication-date>2009-12-01</publication-date>
  -->

  <versions>
    <cvs href='http://dev.w3.org/SVG/modules/filters/publish/SVGFilter.html'/>
    <this href='http://www.w3.org/TR/2009/WD-SVGFilter12-2009xxxx/'/>
    <previous href='http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/'/>
    <latest href='http://www.w3.org/TR/SVGFilter12/'/>
  </versions>

  <definitions href='definitions.xml'/>
  <interfaces idl='svgfilters.idlx'/>

  <index name='SVGFilter'/>
</publish-conf>

--- NEW FILE: definitions-primer.xml ---
<!-- Definitions file for SVG Filters 1.2 Primer -->

<definitions xmlns='http://mcc.id.au/ns/local'>

  <import
    href='http://www.w3.org/TR/2009/WD-SVGFilter12-2009xxxx/'
    cvs-href='SVGFilter.html'
    definitions='definitions.xml'
    />

</definitions>

--- NEW FILE: SVGFilterReqs.html ---
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <title>SVG Filter Requirements</title>
  <style type="text/css">

      .designgoals {
       list-style-type: decimal;
      }

      .req-level1 {
       list-style-type: decimal;
       font-weight: bold;
      }

      .req-level2 {
       list-style-type: decimal;
       font-weight: normal;
      }

      .req-level1 li {
       margin-top: 1em;
      }

      .req-level2 li {
       margin-top: 0em;
      }

      .label {
       margin-top: 1em;
      }

      .comment {
       background: #ffffaa;
      }

      .svgversion {
       color: #336633;
       font-weight: bold;
      }

      .term {
       font-weight: bold;
       color: #aa3333;
      }

      .issue {
       color: #ff0000;
      }

    </style>
  <link type="text/css" rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/base" />
</head>

<body>

<div class="head">
  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  <h1 id="pagetitle">SVG Filter Requirements</h1>
  <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2>
  <dl>
    <dt>This version:</dt>
    <dd><edit:thisversion/></dd>
    <dt>Latest version:</dt>
    <dd><edit:latestversion/></dd>
    <dt>Previous version:</dt>
    <dd><edit:previousversion/></dd>
    <dt>Editor:</dt>
    <dd>Erik Dahlström, Opera Software &lt;<a href="mailto:ed@opera.com">ed@opera.com</a>&gt;</dd>
    <dt>Authors:</dt>
    <dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd>
  </dl>
  <edit:copyright/>
</div>

<hr/>

<h2 id="sec-abstract" edit:toc="no">Abstract</h2>

<p>This document lists the design principles and requirements for the
creation of a SVG specification related to filters. </p>

<h2 id="sec-status" edit:toc="no">Status of this Document</h2>

<p>This is a W3C Working Draft for review by W3C Members and other interested
parties. It is a draft document and may be updated, replaced or made obsolete
by other documents at any time. It is inappropriate to use W3C Working Drafts
as reference material or to cite them as other than "work in progress". A
list of current W3C Recommendations and other technical documents, including
Working Drafts and Notes, can be found at <a
href="http://www.w3.org/TR/">http://www.w3.org/TR/</a> </p>

<p>This is the first release of the SVG Filter Requirements. It is expected
that this document will progress through a number of working drafts,
including "Last Call", before being published in final form. </p>

<p>This document was developed by the <a
href="http://www.w3.org/Graphics/SVG/">Scalable Vector Graphics</a> (SVG)
working group as part of the W3C <a
href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>. The authors
of this document are the SVG Working Group members. </p>

<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
is an archived public list specific to the issues of SVG Filters. Public
discussion of issues related to vector graphics on the Web and SVG in
particular takes place on the <a href="mailto:www-svg@w3.org">the public
mailing list of the SVG Working Group</a> (<a
href="http://lists.w3.org/Archives/Public/www-svg/">list archives</a>). To
subscribe send an email to <code>www-svg-request@w3.org</code> with the word
<code>subscribe</code> in the subject line. </p>

<p>The latest information regarding <a rel="disclosures"
href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
related to this document is available on the Web. As of this publication, the
SVG Working Group are not aware of any royalty-bearing patents they believe
to be essential to SVG. </p>

<p><em>This section represents the status of this document at the time this
version was published. It will become outdated if and when a new version is
published. The latest status is maintained at the W3C. </em> </p>

<h2 id="toc" edit:toc="no">Table of Contents</h2>

<edit:fulltoc/>

<div class="div1">
<h2 id="sec-introduction">Introduction </h2>

<p>The 
<a href="http://www.w3.org/TR/SVG11">SVG specification</a> is a W3C
recommendation that describes two-dimensional graphics in XML. </p>
</div>

<div class="div1">
<h2 id="sec-terminology">Terminology </h2>

<p>The following key words and phrases used throughout this document are
defined here for clarity. The terms Must, Should, and May are used to specify
the extent to which an item is a requirement for the SVG working group in
defining SVGP. These recommendations should not be mistaken as a guide to
implementors. </p>
<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
    circumstances to ignore the item, but the full implications must be
    understood and carefully weighed before choosing a different course. </li>
  <li><b>'May' </b> means that item will be considered, but further
    examination is needed to determine if the item should be treated as a
    requirement. </li>
  <li><b>'SVG' </b> refers to SVG in general without reference to any version
    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
    reference this specification. </li>
  <li><b>'SVGF' </b> refers to SVG Filter, an SVG specification for
    filtering. </li>
</ol>
</div>

<div class="div1">
<h2 id="sec-usage">Usage Scenarios </h2>

<p>The following usage scenarios illustrate some of the ways in which SVG
Filters might be used for various applications. </p>

<p><b>Making drop shadows</b> Filtering the input (e.g. text or bitmaps) to
produce drop shadows. </p>
<p><b>Changing color tone</b> Filtering the input to become e.g. sepia-toned or black and white.</p>
</div>

<div class="div1">
<h2 id="sec-features">Special Filter Considerations</h2>

<p><b>Memory and processor requirements</b> A filter effect may require
significant memory or processing resources. </p>
</div>

<div class="div1">
<h2 id="sec-requirements">Requirements</h2>
<ol class="req-level1">
  <li>General Requirements 
    <ol class="req-level2">
      <li>Any valid SVG 1.1 filter <span class="term">must</span> be a valid
        SVGF filter. </li>
      <li>Conformance criteria for SVGF <span class="term">must</span> be
        produced. The criteria <span class="term">should</span> be separated
        into sections relevant to particular application types (eg. SVG
        files/document fragments, SVG generators, SVG viewers, SVG printers,
        etc.) </li>
      <li>Software or documents <span class="term">must</span> pass the
        relevant criteria to be able to claim conformance to the particular
        application type. </li>
      <li>A conformance test suite <span class="term">must</span> be
        developed for SVGF. The test suite must be made publicly available.
        Conformance test suites for other uses of SVGF (e.g. prepress
        guidelines) <span class="term">may</span> be developed. </li>
      <li>A specification referencing SVGF <span class="term">may</span>
        declare that 'enableBackground' is not supported when used in
        conjunction with that specification. If so, then support for
        'backgroundAlpha' and 'backgroundImage' <span
        class="term">must</span> be excluded as well. </li>
      <li>A specification referencing SVGF <span class="term">must</span>
        declare if animations applies when a 'filter' chain is in its scope.
      </li>
    </ol>
  </li>
  <li>Scripting 
    <ol class="req-level2">
      <li>A dynamic SVGF viewer <span class="term">must</span> support the
        SVGF scripting feature set. </li>
    </ol>
  </li>
  <li>Animation 
    <ol class="req-level2">
      <li>A dynamic SVGF viewer <span class="term">must</span> support animation of all
        properties listed as animatable. </li>
    </ol>
  </li>
</ol>
</div>

<div class="div1">
<h2 id="sec-references">References</h2>
<dl class="references">
  <dt class="label" id="ref-svg">SVG 1.1</dt>
    <dd><em>Scalable Vector Graphics (SVG) 1.1 Specification</em>, Jon
      Ferraiolo, Jun Fujisawa, Dean Jackson, editors, W3C, 14 January 2003
      (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
  Requirements</dt>
    <dd><em>SVG 1.1/1.2/2.0 Requirements Document</em>, Dean Jackson, editor,
      W3C, 22 April 2002. See <a
      href="http://www.w3.org/TR/SVG2Reqs/">http://www.w3.org/TR/SVG2Reqs/</a>
    </dd>
  <dt class="label" id="ref-svgmobilereqs">Mobile SVG Profiles</dt>
    <dd><em>Mobile SVG Profiles: SVG Tiny and SVG Basic</em>, Tolga Capin,
      editor, W3C, 14 January 2003 (Recommendation). See <a
      href="http://www.w3.org/TR/SVGMobile">http://www.w3.org/TR/SVGMobile</a>
    </dd>
</dl>
</div>
<hr class="xhtml" />

<h2 id="sec-authorlist">Author List</h2>

<p>The authors of this specification are the participants of the W3C SVG
Working Group.</p>
<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>
    </dd>
</dl>
</body>
<!-- SVG Printing Requirements Document -->
<!-- $Id: SVGFilterReqs.html,v 1.1 2011/01/07 13:03:13 edahlstr Exp $ -->
</html>

--- NEW FILE: definitions.xml ---
<!-- Definitions file for SVG Filters 1.2 Language -->

<definitions xmlns='http://mcc.id.au/ns/local'>

  <import
    href='http://www.w3.org/TR/2003/REC-SVG11-20030114/'
    definitions='../../../../SVG/profiles/1.1F2/master/definitions.xml'
    />

  <import
    href='http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/'
    definitions='../../../../SVG/profiles/1.2T/master/definitions.xml'
    />

  <!-- ... elements and element-specific attributes ....................... -->
  <element
      name='feBlend'
      href='#feBlendElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFEBlendElement'>
    <attribute name='in2' href='#feBlendIn2Attribute'/>
    <attribute name='mode' href='#feBlendModeAttribute'/>
  </element>

  <element
      name='feColorMatrix'
      href='#feColorMatrixElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFEColorMatrixElement'>
    <attribute name='type' href='#feColorMatrixTypeAttribute'/>
    <attribute name='values' href='#feColorMatrixValuesAttribute'/>
  </element>

  <element
    name='feComponentTransfer'
    href='#feComponentTransferElement'
    contentmodel='anyof'
    elements='feFuncR, feFuncG, feFuncB, feFuncA'
    attributecategories='core, style, presentation, filter primitive'
    attributes='in'
    interfaces='SVGFEComponentTransferElement'/>

  <element
      name='feComposite'
      href='#feCompositeElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFECompositeElement'>
    <attribute name='in2' href='#feCompositeIn2Attribute'/>
    <attribute name='operator' href='#feCompositeOperatorAttribute'/>
    <attribute name='k1' href='#feCompositeK1Attribute'/>
    <attribute name='k2' href='#feCompositeK2Attribute'/>
    <attribute name='k3' href='#feCompositeK3Attribute'/>
    <attribute name='k4' href='#feCompositeK4Attribute'/>
  </element>

  <element
      name='feConvolveMatrix'
      href='#feConvolveMatrixElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFEConvolveMatrixElement'>
    <attribute name='order' href='#feConvolveMatrixElementOrderAttribute'/>
    <attribute name='kernelMatrix' href='#feConvolveMatrixElementKernelMatrixAttribute'/>
    <attribute name='divisor' href='#feConvolveMatrixElementDivisorAttribute'/>
    <attribute name='bias' href='#feConvolveMatrixElementBiasAttribute'/>
    <attribute name='targetX' href='#feConvolveMatrixElementTargetXAttribute'/>
    <attribute name='targetY' href='#feConvolveMatrixElementTargetYAttribute'/>
    <attribute name='edgeMode' href='#feConvolveMatrixElementEdgeModeAttribute'/>
    <attribute name='kernelUnitLength' href='#feConvolveMatrixElementKernelUnitLengthAttribute'/>
    <attribute name='preserveAlpha' href='#feConvolveMatrixElementPreserveAlphaAttribute'/>
  </element>

  <element
      name='feDiffuseLighting'
      href='#feDiffuseLightingElement'
      contentmodel='anyof'
      elementcategories='light source'
      elements='animate, set, animateColor'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFEDiffuseLightingElement'>
    <attribute name='surfaceScale' href='#feDiffuseLightingSurfaceScaleAttribute'/>
    <attribute name='diffuseConstant' href='#feDiffuseLightingDiffuseConstantAttribute'/>
    <attribute name='kernelUnitLength' href='#feDiffuseLightingKernelUnitLengthAttribute'/>
  </element>

  <element
      name='feDisplacementMap'
      href='#feDisplacementMapElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFEDisplacementMapElement'>
    <attribute name='in2' href='#feDisplacementMapIn2Attribute'/>
    <attribute name='scale' href='#feDisplacementMapScaleAttribute'/>
    <attribute name='xChannelSelector' href='#feDisplacementMapXChannelSelectorAttribute'/>
    <attribute name='yChannelSelector' href='#feDisplacementMapYChannelSelectorAttribute'/>
  </element>

  <element
      name='feDistantLight'
      href='#feDistantLightElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core'
      interfaces='SVGFEDistantLightElement'>
    <attribute name='azimuth' href='#feDistantLightAzimuthAttribute'/>
    <attribute name='elevation' href='#feDistantLightElevationAttribute'/>
  </element>

  <element
    name='feFlood'
    href='#feFloodElement'
    contentmodel='anyof'
    elements='animate, set, animateColor'
    attributecategories='core, style, presentation, filter primitive'
    interfaces='SVGFEFloodElement'/>

  <element
    name='feFuncR'
    contentmodel='anyof'
    elements='animate, set'
    attributecategories='core, transfer function element'
    interfaces='SVGFEFuncRElement'/>

  <element
    name='feFuncG'
    contentmodel='anyof'
    elements='animate, set'
    attributecategories='core, transfer function element'
    interfaces='SVGFEFuncGElement'/>

  <element
    name='feFuncB'
    contentmodel='anyof'
    elements='animate, set'
    attributecategories='core, transfer function element'
    interfaces='SVGFEFuncBElement'/>

  <element
    name='feFuncA'
    contentmodel='anyof'
    elements='animate, set'
    attributecategories='core, transfer function element'
    interfaces='SVGFEFuncAElement'/>

  <element
      name='feGaussianBlur'
      href='#feGaussianBlurElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFEGaussianBlurElement'>
    <attribute name='stdDeviation' href='#feGaussianBlurStdDeviationAttribute'/>
  </element>
  
  <element
      name='feUnsharpMask'
      href='#feUnsharpMaskElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFEUnsharpMaskElement'>
    <attribute name='amount' href='#feUnsharpMaskAmountAttribute'/>
    <attribute name='threshold' href='#feUnsharpMaskThresholdAttribute'/>
    <attribute name='stdDeviation' href='#feUnsharpMaskStdDeviationAttribute'/>
  </element>

  <element
      name='feImage'
      href='#feImageElement'
      contentmodel='anyof'
      elements='animate, set, animateTransform'
      attributecategories='core, style, presentation, filter primitive, xlink'
      attributes='externalResourcesRequired, preserveAspectRatio'
      interfaces='SVGFEImageElement'>
    <attribute name='xlink:href' href='#feImageElementHrefAttribute'/>
  </element>

  <element
    name='feMerge'
    href='#feMergeElement'
    contentmodel='anyof'
    elements='feMergeNode'
    attributecategories='core, style, presentation, filter primitive'
    interfaces='SVGFEMergeElement'/>

  <element
      name='feMergeNode'
      href='#feMergeNodeElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core'
      attributes='in'
      interfaces='SVGFEMergeNodeElement'/>

  <element
      name='feMorphology'
      href='#feMorphologyElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFEMorphologyElement'>
    <attribute name='operator' href='#feMorphologyOperatorAttribute'/>
    <attribute name='radius' href='#feMorphologyRadiusAttribute'/>
  </element>

  <element
      name='feOffset'
      href='#feOffsetElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFEOffsetElement'>
    <attribute name='dx' href='#feOffsetDxAttribute'/>
    <attribute name='dy' href='#feOffsetDyAttribute'/>
  </element>

  <element
      name='fePointLight'
      href='#fePointLightElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core'
      interfaces='SVGFEPointLightElement'>
    <attribute name='x' href='#fePointLightXAttribute'/>
    <attribute name='y' href='#fePointLightYAttribute'/>
    <attribute name='z' href='#fePointLightZAttribute'/>
  </element>

  <element
      name='feSpecularLighting'
      href='#feSpecularLightingElement'
      contentmodel='anyof'
      elementcategories='light source'
      elements='animate, set, animateColor'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFESpecularLightingElement'>
    <attribute name='surfaceScale' href='#feSpecularLightingSurfaceScaleAttribute'/>
    <attribute name='specularConstant' href='#feSpecularLightingSpecularConstantAttribute'/>
    <attribute name='specularExponent' href='#feSpecularLightingSpecularExponentAttribute'/>
    <attribute name='kernelUnitLength' href='#feSpecularLightingKernelUnitLengthAttribute'/>
  </element>

  <element
      name='feSpotLight'
      href='#feSpotLightElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core'
      interfaces='SVGFESpotLightElement'>
    <attribute name='x' href='#feSpotLightXAttribute'/>
    <attribute name='y' href='#feSpotLightYAttribute'/>
    <attribute name='z' href='#feSpotLightZAttribute'/>
    <attribute name='pointsAtX' href='#feSpotLightPointsAtXAttribute'/>
    <attribute name='pointsAtY' href='#feSpotLightPointsAtYAttribute'/>
    <attribute name='pointsAtZ' href='#feSpotLightPointsAtZAttribute'/>
    <attribute name='specularExponent' href='#feSpotLightSpecularExponentAttribute'/>
    <attribute name='limitingConeAngle' href='#feSpotLightLimitingConeAngleAttribute'/>
  </element>

  <element
    name='feTile'
    href='#feTileElement'
    contentmodel='anyof'
    elements='animate, set'
    attributecategories='core, style, presentation, filter primitive'
    attributes='in'
    interfaces='SVGFETileElement'/>

  <element
      name='feTurbulence'
      href='#feTurbulenceElement'
      contentmodel='anyof'
      elements='animate, set'
      attributecategories='core, style, presentation, filter primitive'
      interfaces='SVGFETurbulenceElement'>
    <attribute name='baseFrequency' href='#feTurbulenceBaseFrequencyAttribute'/>
    <attribute name='numOctaves' href='#feTurbulenceNumOctavesAttribute'/>
    <attribute name='seed' href='#feTurbulenceSeedAttribute'/>
    <attribute name='stitchTiles' href='#feTurbulenceStitchTilesAttribute'/>
    <attribute name='type' href='#feTurbulenceTypeAttribute'/>
  </element>

  <element
      name='filter'
      href='#FilterElement'
      contentmodel='anyof'
      elementcategories='descriptive, filter primitive'
      elements='animate, set'
      attributecategories='core, style, presentation, xlink'
      attributes='externalResourcesRequired'
      interfaces='SVGFilterElement'>
    <attribute name='x' href='#FilterElementXAttribute'/>
    <attribute name='y' href='#FilterElementYAttribute'/>
    <attribute name='width' href='#FilterElementWidthAttribute'/>
    <attribute name='height' href='#FilterElementHeightAttribute'/>
    <attribute name='filterRes' href='#FilterElementFilterResAttribute'/>
    <attribute name='filterUnits' href='#FilterElementFilterUnitsAttribute'/>
    <attribute name='primitiveUnits' href='#FilterElementPrimitiveUnitsAttribute'/>
    <attribute name='xlink:href' href='#FilterElementHrefAttribute'/>

    <!-- filter margin extensions -->
    <attribute name='mx' href='#FilterElementMxAttribute'/>
    <attribute name='my' href='#FilterElementMyAttribute'/>
    <attribute name='mw' href='#FilterElementMwAttribute'/>
    <attribute name='mh' href='#FilterElementMhAttribute'/>
    <attribute name='filterMarginUnits' href='#FilterElementFilterMarginUnitsAttribute'/>
    <attribute name='primitiveMarginUnits' href='#FilterElementPrimitiveMarginUnitsAttribute'/>
  </element>

  <element
      name='feDropShadow'
      href='#feDropShadowElement'
      contentmodel='anyof'
      elements='animate, set, animateColor'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFEDropShadowElement'>
    <attribute name='stdDeviation' href='#feDropShadowStdDeviationAttribute'/>
    <attribute name='dx' href='#feDropShadowDxAttribute'/>
    <attribute name='dy' href='#feDropShadowDyAttribute'/>
  </element>

	<element
			name='feDiffuseSpecular'
      href='#feDiffuseSpecular'
      contentmodel='anyof'
      elements='animate, set, animateColor'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFEDiffuseSpecular'>
  </element>

	<element
			name='feCustom'
      href='#feCustom'
      contentmodel='anyof'
      elements='animate, set, animateColor'
      attributecategories='core, style, presentation, filter primitive'
      attributes='in'
      interfaces='SVGFECustom'>
  </element>

  <!-- ... element categories ............................................ -->
  
  <elementcategory name='filter primitives' href='#TermFilterPrimitiveElements' elements='feBlend, feFlood, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feGaussianBlur, feUnsharpMask, feImage, feMerge, feMorphology, feOffset, feSpecularLighting, feTile, feTurbulence'/>
  <elementcategory name='transfer function element' href='#TermComponentTransferFunctionElement' elements='feFuncR, feFuncG, feFuncB, feFuncA'/>
  
    <!-- ... attributes common to multiple elements ........................ -->

    <!-- attribute common to most filter primitives (all except feFlood feImage feMerge feTurbulence -->
    <attribute name='in' elements='feBlend, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feGaussianBlur, feUnsharpMask, feMorphology, feOffset, feSpecularLighting, feTile' href='#FilterPrimitiveInAttribute'/>

  <!-- ... attribute categories .......................................... -->

  <attributecategory
      name='FilterPrimitiveAttributes'
      href='intro.html#TermFilterPrimitiveAttributes'>
    <attribute name='x' href='#FilterPrimitiveXAttribute'/>
    <attribute name='y' href='#FilterPrimitiveYAttribute'/>
    <attribute name='width' href='#FilterPrimitiveWidthAttribute'/>
    <attribute name='height' href='#FilterPrimitiveHeightAttribute'/>
    <attribute name='result' href='#FilterPrimitiveResultAttribute'/>

    <!-- filter margin extensions -->
    <attribute name='mx' href='#FilterPrimitiveMxAttribute'/>
    <attribute name='my' href='#FilterPrimitiveMyAttribute'/>
    <attribute name='mw' href='#FilterPrimitiveMwAttribute'/>
    <attribute name='mh' href='#FilterPrimitiveMhAttribute'/>
  </attributecategory>

  <attributecategory
      name='transfer function element'
      href='#TransferFunctionElementAttributes'>
    <attribute name='type' href='#feComponentTransferTypeAttribute'/>
    <attribute name='tableValues' href='#feComponentTransferTableValuesAttribute'/>
    <attribute name='slope' href='#feComponentTransferSlopeAttribute'/>
    <attribute name='intercept' href='#feComponentTransferInterceptAttribute'/>
    <attribute name='amplitude' href='#feComponentTransferAmplitudeAttribute'/>
    <attribute name='exponent' href='#feComponentTransferExponentAttribute'/>
    <attribute name='offset' href='#feComponentTransferOffsetAttribute'/>
  </attributecategory>


  <!-- ... properties ..................................................... -->

  <property name='enable-background' href='#EnableBackgroundProperty'/>
  <property name='filter' href='#FilterProperty'/> 
  <property name='flood-color' href='#FloodColorProperty'/>
  <property name='flood-opacity' href='#FloodOpacityProperty'/>
  <property name='lighting-color' href='#LightingColorProperty'/>
  
  
  <!-- ... interfaces ..................................................... -->

  <interface name='SVGFilterElement' href='#InterfaceSVGFilterElement'/>
  <interface name='SVGFilterPrimitiveStandardAttributes' href='#InterfaceSVGFilterPrimitiveStandardAttributes'/>
  <interface name='SVGFEBlendElement' href='#InterfaceSVGFEBlendElement'/>
  <interface name='SVGFEColorMatrixElement' href='#InterfaceSVGFEColorMatrixElement'/>
  <interface name='SVGFEComponentTransferElement' href='#InterfaceSVGFEComponentTransferElement'/>
  <interface name='SVGComponentTransferFunctionElement' href='#InterfaceSVGComponentTransferFunctionElement'/>
  <interface name='SVGFEFuncRElement' href='#InterfaceSVGFEFuncRElement'/>
  <interface name='SVGFEFuncGElement' href='#InterfaceSVGFEFuncGElement'/>
  <interface name='SVGFEFuncBElement' href='#InterfaceSVGFEFuncBElement'/>
  <interface name='SVGFEFuncAElement' href='#InterfaceSVGFEFuncAElement'/>
  <interface name='SVGFECompositeElement' href='#InterfaceSVGFECompositeElement'/>
  <interface name='SVGFEConvolveMatrixElement' href='#InterfaceSVGFEConvolveMatrixElement'/>
  <interface name='SVGFEDiffuseLightingElement' href='#InterfaceSVGFEDiffuseLightingElement'/>
  <interface name='SVGFEDistantLightElement' href='#InterfaceSVGFEDistantLightElement'/>
  <interface name='SVGFEPointLightElement' href='#InterfaceSVGFEPointLightElement'/>
  <interface name='SVGFESpotLightElement' href='#InterfaceSVGFESpotLightElement'/>
  <interface name='SVGFEDisplacementMapElement' href='#InterfaceSVGFEDisplacementMapElement'/>
  <interface name='SVGFEFloodElement' href='#InterfaceSVGFEFloodElement'/>
  <interface name='SVGFEGaussianBlurElement' href='#InterfaceSVGFEGaussianBlurElement'/>
  <interface name='SVGFEUnsharpMaskElement' href='#InterfaceSVGFEUnsharpMaskElement'/>
  <interface name='SVGFEImageElement' href='#InterfaceSVGFEImageElement'/>
  <interface name='SVGFEMergeElement' href='#InterfaceSVGFEMergeElement'/>
  <interface name='SVGFEMergeNodeElement' href='#InterfaceSVGFEMergeNodeElement'/>
  <interface name='SVGFEMorphologyElement' href='#InterfaceSVGFEMorphologyElement'/>
  <interface name='SVGFEOffsetElement' href='#InterfaceSVGFEOffsetElement'/>
  <interface name='SVGFESpecularLightingElement' href='#InterfaceSVGFESpecularLightingElement'/>
  <interface name='SVGFETileElement' href='#InterfaceSVGFETileElement'/>
  <interface name='SVGFETurbulenceElement' href='#InterfaceSVGFETurbulenceElement'/>
  <interface name='SVGFEDropShadowElement' href='#InterfaceSVGFEDropShadowElement'/>
  <interface name='ImageData' href='#InterfaceImageData'/>
  
  
  <!-- ... terms (these will be generated later) .......................... -->
  <term name='SourceAlpha' href='#SourceAlpha' class='attr-value'/>
  <term name='SourceGraphic' href='#SourceGraphic' class='attr-value'/>
  <term name='BackgroundImage' href='#BackgroundImage' class='attr-value'/>
  <term name='BackgroundAlpha' href='#BackgroundAlpha' class='attr-value'/>
  <term name='FillPaint' href='#FillPaint' class='attr-value'/>
  <term name='StrokePaint' href='#StrokePaint' class='attr-value'/>
  <term name='source graphic' href='#TermSourceGraphic'/>
  <term name='filter effects region' href='#FilterEffectsRegion'/>
  <term name='filter region' href='#FilterEffectsRegion'/>
  <term name='filter primitive' href='#TermFilterPrimitiveElement'/>
  <term name='filter primitive subregion' href='#FilterPrimitiveSubRegion'/>
  <term name='null filter' href='#TermNullFilter'/>
  <term name='transfer function element' href='#TermTransferFunctionElements'/>
  <term name='transfer function elements' href='#TermTransferFunctionElements'/>
  <term name='filter primitives' href='#TermFilterPrimitiveElements'/>
  <term name='filter primitive elements' href='#TermFilterPrimitiveElements'/>
  <term name='filter-primitive-reference' href='#TermFilterPrimitiveReference'/>
  
  <!-- ... symbols (surrounded by &lt; and &gt;) .......................... -->
  <symbol name='filter-primitive-reference' href='#TermFilterPrimitiveReference'/>
</definitions>

--- NEW FILE: publish-primer.xml ---
<!-- Publication script configuration for SVG Filters 1.2 Primer. -->

<publish-conf xmlns='http://mcc.id.au/ns/local'>
  <title>SVG Filters 1.2, Part 1: Primer</title>
  <short-title>SVG Filters 1.2 Primer</short-title>
  <maturity>ED</maturity>
  <output use-publish-directory='true'/>
  <!--
  <publication-date>2009-12-01</publication-date>
  -->

  <versions>
    <cvs href='http://dev.w3.org/SVG/modules/filters/publish/SVGFilterPrimer.html'/>
    <this href='http://www.w3.org/TR/2009/WD-SVGFilterPrimer12-2009xxxx/'/>
    <previous href='http://www.w3.org/TR/2007/WD-SVGFilterPrimer12-20070501/'/>
    <latest href='http://www.w3.org/TR/SVGFilterPrimer12/'/>
  </versions>

  <definitions href='definitions-primer.xml'/>

  <index name='SVGFilterPrimer'/>
</publish-conf>

--- NEW FILE: xhtml1-transitional+edit.dtd ---
<!--
   Extensible HTML version 1.0 Transitional plus edit DTD

   This is the same as HTML 4 Transitional except for
   changes due to the differences between XML and SGML.
   
   ** and except for adding funky xmlns:edit stuff **
   ** and the inclusion of the entities from xhtml-lat1.ent **

   Namespace = http://www.w3.org/1999/xhtml

   For further information, see: http://www.w3.org/TR/xhtml1

   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
   All Rights Reserved. 

   This DTD module is identified by the PUBLIC and SYSTEM identifiers:

   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN"
[...1361 lines suppressed...]
  width       %Length;       #IMPLIED
  height      %Length;       #IMPLIED
  >

<!ATTLIST td
  %attrs;
  abbr        %Text;         #IMPLIED
  axis        CDATA          #IMPLIED
  headers     IDREFS         #IMPLIED
  scope       %Scope;        #IMPLIED
  rowspan     %Number;       "1"
  colspan     %Number;       "1"
  %cellhalign;
  %cellvalign;
  nowrap      (nowrap)       #IMPLIED
  bgcolor     %Color;        #IMPLIED
  width       %Length;       #IMPLIED
  height      %Length;       #IMPLIED
  >


--- NEW FILE: SVGFilterPrimer.html ---
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:edit="http://xmlns.grorg.org/SVGT12NG/" xml:lang="en" lang="en">
<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" type="text/css" href="http://www.w3.org/StyleSheets/TR/base" />
</head>

<body>

<div class="head">
  <p><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/></a></p>
  <h1 id="pagetitle">SVG Filters 1.2, Part 1: Primer</h1>
  <h2 id="pagesubtitle">W3C <edit:maturity/> <em><edit:date/></em></h2>
  <dl>
    <dt>This version:</dt>
    <dd><edit:thisversion/></dd>
    <dt>Latest version:</dt>
    <dd><edit:latestversion/></dd>
    <dt>Previous version:</dt>
    <dd><edit:previousversion/></dd>
    <dt>Editor:</dt>
    <dd>Erik Dahlström, Opera Software &lt;<a href="mailto:ed@opera.com">ed@opera.com</a>&gt;</dd>
    <dt>Authors:</dt>
    <dd>The authors of this specification are the participants of the W3C SVG Working Group.</dd>
  </dl>
  <edit:copyright/>
</div>

<hr/>

<h2 id="abstract" edit:toc="no">Abstract </h2>

<p>
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.
</p>
<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.
</p>
<p>
This document introduces the features used by SVG filters.
</p>

<h2 id="status" edit:toc="no">Status of This Document </h2>

<p><em>This section describes the status of this document at the time of its
publication. Other documents may supersede this document. The latest status
of this document series is maintained at the W3C. </em> </p>

<p>This document is the first public working draft of this specification. </p>

<p>This document has been produced by the <a
href="http://www.w3.org/Graphics/SVG">W3C SVG Working Group</a> as part of
the W3C <a href="http://www.w3.org/Graphics/Activity">Graphics Activity</a>
within the <a href="http://www.w3.org/Interaction/">Interaction Domain</a>.
</p>

<p>We explicitly invite comments on this specification. Please send them to
<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>).
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
issues related to vector graphics on the Web (<a
href="http://lists.w3.org/Archives/Public/www-svg/">archives</a>). Acceptance
of the archiving policy is requested automatically upon first post to either
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>
or <a href="mailto:www-svg-request@w3.org">www-svg-request@w3.org</a> with
the word subscribe in the subject line. </p>

<p>The latest information regarding <a
href="http://www.w3.org/Graphics/SVG/Disclosures">patent disclosures</a>
related to this document is available on the Web. As of this publication, the
SVG Working Group are not aware of any royalty-bearing patents they believe
to be essential to SVG. </p>
<p>Publication of this document does not imply endorsement by the W3C
membership. A list of current W3C Recommendations and other technical
documents can be found at <a
href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>. W3C publications may
be updated, replaced, or obsoleted by other documents at any time. It is
inappropriate to cite a W3C Working Draft as anything other than a <em>work
in progress</em>." </p>

<h2 id="howto" edit:toc="no">How to read this document and give feedback </h2>

<p>This is a primer for the SVG Filter specification. It gives guidelines on
how to use the SVG Filter specification with SVG 1.2. In many cases the
reader will have to be familiar with the <a
href="http://www.w3.org/TR/SVG11/">SVG</a> language. </p>

<p>
This document is informative.
</p>

<h2 id="toc" edit:toc="no">Table of Contents</h2>

<edit:fulltoc/>

<h2 id="Introduction">Filters in SVG</h2>

<p>Filter effects are defined by <a>'filter element'</a> elements. To apply a filter effect
to a <a>graphics element</a> or a <a>container element</a>, you set the
value of the <a>'filter property'</a> property on the given element such that
it references the filter effect.</p>

<p>Each <a>'filter element'</a> element contains a set of
<span id="TermFilterPrimitive" class="SVG-Term">filter primitives</span> as its children. Each filter
primitive performs a single fundamental graphical operation (e.g., a blur or
a lighting effect) on one or more inputs, producing a graphical result.
Because most of the filter primitives represent some form of image
processing, in most cases the output from a filter primitive is a single RGBA
image.</p>

<p>The original source graphic or the result from a filter primitive can be
used as input into one or more other filter primitives. A common application
is to use the source graphic multiple times. For example, a simple filter
could replace one graphic by two by adding a black copy of original source
graphic offset to create a drop shadow. In effect, there are now two layers
of graphics, both with the same original source graphics.</p>

<p>When applied to <a>container elements</a> such as <a>'g'</a>, the <a>'filter property'</a>
property applies to the contents of the
group as a whole. The group's children do not render to the screen directly;
instead, the graphics commands necessary to render the children are stored
temporarily. Typically, the graphics commands are executed as part of the
processing of the referenced <a>'filter element'</a> element via use of the keywords
<a>SourceGraphic</a> or <a>SourceAlpha</a>.
Filter effects can be applied to <a>container elements</a> with no
content (e.g., an empty <a>'g'</a> element), in which case the
<a>SourceGraphic</a> or <a>SourceAlpha</a> consist of a transparent black
rectangle that is the size of the
<a>filter effects region</a>.</p>

<p>Sometimes filter primitives result in undefined pixels. For example,
filter primitive <a>'feOffset'</a> can shift an image down and to the
right, leaving undefined pixels at the top and left. In these cases, the
undefined pixels are set to transparent black.</p>

<h2 id="Example">An example</h2>

<p>The following shows an example of a filter effect.</p>

<p><span class="example-ref">Example filters01</span> - introducing filter
effects.</p>

<edit:example href="examples/filters01.svg" image="yes" link="yes"/>

<p>The filter effect used in the example above is repeated here with
reference numbers in the left column before each of the six filter
primitives:</p>

<table summary="filter example with reference numbers">
  <tbody>
    <tr>
      <td valign="top"><pre style="color:black"> 
 
1
2
3
 
 
 
 
4
5
 
6
 
 
 </pre>
      </td>
      <td valign="top"><pre>&lt;filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120"&gt;
  &lt;desc&gt;Produces a 3D lighting effect.&lt;/desc&gt;
  &lt;feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/&gt;
  &lt;feOffset in="blur" dx="4" dy="4" result="offsetBlur"/&gt;
  &lt;feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
                      specularExponent="20" lighting-color="#bbbbbb" 
                      result="specOut"&gt;
    &lt;fePointLight x="-5000" y="-10000" z="20000"/&gt;
  &lt;/feSpecularLighting&gt;
  &lt;feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/&gt;
  &lt;feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
               k1="0" k2="1" k3="1" k4="0" result="litPaint"/&gt;
  &lt;feMerge&gt;
    &lt;feMergeNode in="offsetBlur"/&gt;
    &lt;feMergeNode in="litPaint"/&gt;
  &lt;/feMerge&gt;
&lt;/filter&gt;</pre>
      </td>
    </tr>
  </tbody>
</table>

<p>The following pictures show the intermediate image results from each of
the six filter elements:</p>

<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 />
        Source graphic</p>
      </td>
      <td> </td>
      <td><p><img width="115" height="70"
        alt="filters01 - after filter element 1"
        src="examples/filters01-1.png" /><br />
        After filter primitive 1</p>
      </td>
      <td> </td>
      <td><p><img width="115" height="70"
        alt="filters01 - after filter element 2"
        src="examples/filters01-2.png" /><br />
        After filter primitive 2</p>
      </td>
      <td> </td>
      <td><p><img width="115" height="70"
        alt="filters01 - after filter element 3"
        src="examples/filters01-3.png" /><br />
        After filter primitive 3</p>
      </td>
    </tr>
    <tr>
      <td> </td>
      <td> </td>
      <td></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 />
        After filter primitive 4</p>
      </td>
      <td> </td>
      <td><p><img width="115" height="70"
        alt="filters01 - after filter element 5"
        src="examples/filters01-5.png" /><br />
        After filter primitive 5</p>
      </td>
      <td> </td>
      <td><p><img width="115" height="70"
        alt="filters01 - after filter element 6"
        src="examples/filters01-6.png" /><br />
        After filter primitive 6</p>
      </td>
    </tr>
  </tbody>
</table>
<ol>
  <li>Filter primitive <a>'feGaussianBlur'</a> takes input <a>SourceAlpha</a>,
    which is the alpha channel of
    the source graphic. The result is stored in a temporary buffer named
    "blur". Note that "blur" is used as input to both filter primitives 2 and
    3.</li>
  <li>Filter primitive <a>'feOffset'</a> takes buffer "blur", shifts
    the result in a positive direction in both x and y, and creates a new
    buffer named "offsetBlur". The effect is that of a drop shadow.</li>
  <li>Filter primitive <a>'feSpecularLighting'</a>, uses buffer "blur"
    as a model of a surface elevation and generates a lighting effect from a
    single point source. The result is stored in buffer "specOut".</li>
  <li>Filter primitive <a>'feComposite'</a> masks out the result of
    filter primitive 3 by the original source graphics alpha channel so that
    the intermediate result is no bigger than the original source
  graphic.</li>
  <li>Filter primitive <a>'feComposite'</a> composites the result of
    the specular lighting with the original source graphic.</li>
  <li>Filter primitive <a>'feMerge'</a> composites two layers together.
    The lower layer consists of the drop shadow result from filter primitive
    2. The upper layer consists of the specular lighting result from filter
    primitive 5.</li>
</ol>

<h2 id="feGaussianBlurElement">Filter primitive <span
class="element-name">'feGaussianBlur'</span></h2>

<p>
  The <a>'feGaussianBlur'</a> filter primitive can be used to create blur effects.
  Below is an example where the blur is applied only in one direction, which can
  give better performance in some <a>user agents</a>. 
  <edit:example href="examples/feGaussianBlur-stdDeviation-00.svg" image="yes" link="yes"/>
</p>

<p>The blur filter can also be used for creating the impression of something being in motion, as in this example.
  <edit:example href="examples/feGaussianBlur-motion-00.svg" image="yes" link="yes"/>
</p>

<h2 id="references">References </h2>
<dl>
  <dt id="SVG12Full">SVG12</dt>
    <dd><strong>Scalable Vector Graphics (SVG) 1.2 Specification</strong>,
      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>
    </dd>
  <dt id="SVG12Requirements">SVG12Reqs</dt>
    <dd><strong>SVG 1.1/1.2/2.0 Requirements</strong>, Dean Jackson editor,
      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>
    </dd>
  <dt id="SVGFilterRequirements">SVGFilterReqs</dt>
    <dd><strong>SVG Filter Requirements</strong>, Erik Dahlström, W3C, 3 May 2007
      (Working Draft). See <a
      href="http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/">http://www.w3.org/TR/2007/WD-SVGFilterReqs12-20070501/</a>
    </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>
    </dd>
</dl>

</body>
</html>

Received on Friday, 7 January 2011 13:03:18 UTC