--- a/master/definitions.xml Wed May 09 16:22:32 2012 +0200
+++ b/master/definitions.xml Wed May 09 17:25:52 2012 +0200
@@ -1531,6 +1531,8 @@
<term name='descriptive elements' href='intro.html#TermDescriptiveElement'/>
<term name='filter primitive element' href='intro.html#TermFilterPrimitiveElement'/>
<term name='filter primitive elements' href='intro.html#TermFilterPrimitiveElement'/>
+ <term name='fill' href='intro.html#TermFill'/>
+ <term name='filled' href='intro.html#TermFill'/>
<term name='gradient element' href='intro.html#TermGradientElement'/>
<term name='gradient elements' href='intro.html#TermGradientElement'/>
<term name='graphics element' href='intro.html#TermGraphicsElement'/>
@@ -1541,7 +1543,10 @@
<term name='outermost svg elements' href='intro.html#TermOutermostSVGElement'/>
<term name='rootmost SVG element' href='intro.html#TermRootmostSVGElement'/>
<term name="rootmost 'svg' element" href='intro.html#TermRootmostSVGElement'>rootmost <span xmlns='http://www.w3.org/1999/xhtml' class="element-name">‘svg’</span> element</term>
- <term name='structural element' href='intro.html#TermStructuralElement'/>
+ <term name='shape' href='intro.html#TermShape'/>
+ <term name='shapes' href='intro.html#TermShape'/>
+ <term name='stroke' href='intro.html#TermStroke'/>
+ <term name='stroked' href='intro.html#TermStroke'/>
<term name='structural elements' href='intro.html#TermStructuralElement'/>
<term name='text content element' href='intro.html#TermTextContentElement'/>
<term name='text content elements' href='intro.html#TermTextContentElement'/>
@@ -1585,6 +1590,8 @@
<term name='hit-test' href='intro.html#TermHitTesting'/>
<term name='hit-testing' href='intro.html#TermHitTesting'/>
<term name='Lacuna value' href='intro.html#TermLacunaValue'/>
+ <term name='Paint' href='intro.html#TermPaint'/>
+ <term name='paint' href='intro.html#TermPaint'/>
<term name='SVG document' href='intro.html#TermSVGDocumentFragment'/>
<term name='SVG documents' href='intro.html#TermSVGDocumentFragment'/>
<term name='SVG document fragment' href='intro.html#TermSVGDocumentFragment'/>
--- a/master/render.html Wed May 09 16:22:32 2012 +0200
+++ b/master/render.html Wed May 09 17:25:52 2012 +0200
@@ -32,191 +32,210 @@
<h1>Rendering Model</h1>
- <h2 id="Introduction">Introduction</h2>
- <p>Implementations of SVG are expected to behave as though they
- implement a rendering (or imaging) model corresponding to the
- one described in this chapter. A real implementation is not
- required to implement the model in this way, but the result on
- any device supported by the implementation shall match that
- described by this model.</p>
- <p>The appendix on <a href="conform.html">conformance
- requirements</a> describes the extent to which an actual
- implementation may deviate from this description. In practice
- an actual implementation will deviate slightly because of
- limitations of the output device (e.g. only a limited range of
- colors might be supported) and because of practical limitations
- in implementing a precise mathematical model (e.g. for
- realistic performance curves are approximated by straight
- lines, the approximation need only be sufficiently precise to
- match the conformance requirements).</p>
- <h2 id="PaintersModel">The painters model</h2>
- <p>SVG uses a "painters model" of rendering. <a
- href="intro.html#TermPaint">Paint</a> is applied in successive
- operations to the output device such that each operation paints
- over some area of the output device. When the area overlaps a
- previously painted area the new paint partially or completely
- obscures the old. When the paint is not completely opaque the
- result on the output device is defined by the (mathematical)
- rules for compositing described under <a
- href="masking.html#SimpleAlphaBlending">Alpha Blending</a>.</p>
- <h2 id="RenderingOrder">Rendering Order</h2>
- <p>Elements in an SVG document fragment have an implicit
- drawing order, with the first elements in the SVG document
- fragment getting "painted" first. Subsequent elements are
- painted on top of previously painted elements.</p>
- <h2 id="Grouping">How groups are rendered</h2>
- <p>Grouping elements such as the <a>'g'</a> element (see <a
- href="intro.html#TermContainerElement">container elements</a>)
- have the effect of producing a temporary separate canvas
- initialized to transparent black onto which child elements are
- painted. Upon the completion of the group, any <a
- href="render.html#FilteringPaintRegions">filter effects</a>
- specified for the group are applied to create a modified
- temporary canvas. The modified temporary canvas is composited
- into the background, taking into account any group-level <a
- href="masking.html#Masking">masking</a> and <a
- href="masking.html#OpacityProperty">opacity</a> settings on the
- group.</p>
-
- <h2 id="Elements">How elements are rendered</h2>
- <p>Individual <a href="intro.html#TermGraphicsElement">graphics
- elements</a> are rendered as if each graphics element
- represented its own group; thus, the effect is as if a
- temporary separate canvas is created for each graphics element.
- The element is first painted onto the temporary canvas (see <a
- href="render.html#PaintingShapesAndText">Painting shapes and
- text</a> and <a
- href="render.html#PaintingRasterImages">Painting raster
- images</a> below). Then any <a
- href="render.html#FilteringPaintRegions">filter effects</a>
- specified for the graphics element are applied to create a
- modified temporary canvas. The modified temporary canvas is
- then composited into the background, taking into account any <a
- href="render.html#ClippingMaskingObjectOpacity">clipping,
- masking and object opacity</a> settings on the graphics
- element.</p>
-
- <h2 id="TypesOfGraphicsElements">Types of graphics elements</h2>
- <p>SVG supports three fundamental types of <a
- href="intro.html#TermGraphicsElement">graphics elements</a>
- that can be rendered onto the canvas:</p>
- <ul>
- <li><a href="intro.html#TermShape">Shapes</a>, which
- represent some combination of straight line and curves</li>
- <li>Text, which represents some combination of character
- glyphs</li>
- <li>Raster images, which represent an array of values that
- specify the paint color and opacity (often termed alpha) at a
- series of points on a rectangular grid. (SVG requires support
- for specified raster image formats under <a
- href="conform.html">conformance requirements</a>.)</li>
- </ul>
-
- <h3 id="PaintingShapesAndText">Painting shapes and text</h3>
- <p>Shapes and text can be <a
- href="intro.html#TermFill">filled</a> (i.e., apply paint to the
- interior of the shape) and <a
- href="intro.html#TermStroke">stroked</a> (i.e., apply paint
- along the outline of the shape). A stroke operation is centered
- on the outline of the object; thus, in effect, half of the
- paint falls on the interior of the shape and half of the paint
- falls outside of the shape.</p>
- <p>For certain types of shapes, <a
- href="painting.html#Markers">marker symbols</a> (which
- themselves can consist of any combination of shapes, text and
- images) can be drawn at selected vertices. Each marker symbol
- is painted as if its graphical content were expanded into the
- SVG document tree just after the shape object which is using
- the given marker symbol. The graphical contents of a marker
- symbol are rendered using the same methods as graphics
- elements. Marker symbols are not applicable to text.</p>
- <p>The fill is painted first, then the stroke, and then the
- marker symbols. The marker symbols are rendered in order along
- the outline of the shape, from the start of the shape to the
- end of the shape.</p>
- <p>Each fill and stroke operation has its own opacity settings;
- thus, you can fill and/or stroke a shape with a
- semi-transparently drawn solid color, with different opacity
- values for the fill and stroke operations.</p>
- <p>The fill and stroke operations are entirely independent
- painting operations; thus, if you both fill and stroke a shape,
- half of the stroke will be painted on top of part of the
- fill.</p>
- <p>SVG supports the following built-in types of paint which can
- be used in fill and stroke operations:</p>
- <ul>
- <li><a href="color.html#ColorIntroduction">Solid
- color</a></li>
- <li><a href="pservers.html#Gradients">Gradients</a> (linear
- and radial)</li>
- <li><a href="pservers.html#Patterns">Patterns</a></li>
- </ul>
- <h3 id="PaintingRasterImages">Painting raster images</h3>
- <p>When a raster image is rendered, the original samples are
- "resampled" using standard algorithms to produce samples at the
- positions required on the output device. Resampling
- requirements are discussed under <a
- href="conform.html">conformance requirements</a>.</p>
- <h2 id="FilteringPaintRegions">Filtering painted regions</h2>
- <p>SVG allows any painting operation to be filtered. (See <a
- href="filters.html">Filter Effects</a>.)</p>
- <p>In this case the result must be as though the paint
- operations had been applied to an intermediate canvas
- initialized to transparent black, of a size determined by the
- rules given in <a href="filters.html">Filter Effects</a> then
- filtered by the processes defined in <a
- href="filters.html">Filter Effects</a>.</p>
- <h2 id="ClippingMaskingObjectOpacity">Clipping, masking and object opacity</h2>
- <p>SVG allows any painting operation to be limited to a
- subregion of the output device by clipping and masking. This is
- described in <a href="masking.html">Clipping, Masking and
- Compositing</a>.</p>
- <p>Clipping uses a path to define a region of the output device
- to which paint can be applied. Any painting operation executed
- within the scope of the clipping must be rendered such that
- only those parts of the device that fall within the clipping
- region are affected by the painting operation. A clipping path
- can be thought of as a mask wherein those pixels outside the
- clipping path are black with an alpha value of zero and those
- pixels inside the clipping path are white with an alpha value
- of one. "Within" is defined by the same rules used to determine
- the interior of a path for painting. The clipping path is
- typically anti-aliased on low-resolution devices (see
- <a>'shape-rendering'</a>. Clipping is
- described in <a href="masking.html#ClippingPaths">Clipping
- paths</a>.</p>
- <p>Masking uses the luminance of the color channels and alpha
- channel in a referenced SVG element to define a supplemental
- set of alpha values which are multiplied to the alpha values
- already present in the graphics to which the mask is applied.
- Masking is described in <a
- href="masking.html#Masking">Masking</a>.</p>
- <p>A supplemental masking operation may also be specified by
- applying a "global" opacity to a set of rendering operations.
- In this case the mask is infinite, with a color of white and an
- alpha channel of the given opacity value. (See the <a>'opacity'</a>
- property.)</p>
- <p>In all cases the SVG implementation must behave as though
- all painting and filtering is first performed to an
- intermediate canvas which has been initialized to transparent
- black. Then, alpha values on the intermediate canvas are
- multiplied by the implicit alpha values from the clipping path,
- the alpha values from the mask, and the alpha values from the
- <a>'opacity'</a> property. The resulting
- canvas is composited into the background using <a
- href="masking.html#SimpleAlphaBlending">simple alpha
- blending</a>. Thus if an area of the output device is painted
- with a group opacity of 50% using opaque red paint followed by
- opaque green paint the result is as though it had been painted
- with just 50% opaque green paint. This is because the opaque
- green paint completely obscures the red paint on the
- intermediate canvas before the intermediate as a whole is
- rendered onto the output device.</p>
- <h2 id="ParentCompositing">Parent Compositing</h2>
- <p>SVG document fragments can be semi-opaque. In many
- environments (e.g., Web browsers), the SVG document fragment
- has a final compositing step where the document as a whole is
- blended translucently into the background canvas.</p>
+<h2 id="Introduction">Introduction</h2>
+
+<p>Implementations of SVG are expected to behave as though they
+implement a rendering (or imaging) model corresponding to the
+one described in this chapter. A real implementation is not
+required to implement the model in this way, but the result on
+any device supported by the implementation shall match that
+described by this model.</p>
+
+<p>The appendix on <a href="conform.html">conformance
+requirements</a> describes the extent to which an actual
+implementation may deviate from this description. In practice
+an actual implementation will deviate slightly because of
+limitations of the output device (e.g. only a limited range of
+colors might be supported) and because of practical limitations
+in implementing a precise mathematical model (e.g. for
+realistic performance curves are approximated by straight
+lines, the approximation need only be sufficiently precise to
+match the conformance requirements).</p>
+
+<h2 id="PaintersModel">The painters model</h2>
+
+<p>SVG uses a "painters model" of rendering. <a>Paint</a>
+is applied in successive operations to the output device such
+that each operation paints over some area of the output device.
+When the area overlaps a previously painted area the new paint
+partially or completely obscures the old. When the paint is not
+completely opaque the result on the output device is defined by
+the (mathematical) rules for compositing described under
+<a href="masking.html#SimpleAlphaBlending">Alpha Blending</a>.</p>
+
+<h2 id="RenderingOrder">Rendering Order</h2>
+
+<p>Elements in an SVG document fragment have an implicit
+drawing order, with the first elements in the SVG document
+fragment getting "painted" first. Subsequent elements are
+painted on top of previously painted elements.</p>
+
+<h2 id="Grouping">How groups are rendered</h2>
+
+<p>Grouping elements such as the <a>'g'</a> element (see
+<a>container elements</a>)
+have the effect of producing a temporary separate canvas
+initialized to transparent black onto which child elements are
+painted. Upon the completion of the group, any
+<a href="render.html#FilteringPaintRegions">filter effects</a>
+specified for the group are applied to create a modified
+temporary canvas. The modified temporary canvas is composited
+into the background, taking into account any group-level
+<a href="masking.html#Masking">masking</a> and
+<a href="masking.html#OpacityProperty">opacity</a> settings on the
+group.</p>
+
+<h2 id="Elements">How elements are rendered</h2>
+
+<p>Individual <a>graphics elements</a> are rendered as if each graphics element
+represented its own group; thus, the effect is as if a
+temporary separate canvas is created for each graphics element.
+The element is first painted onto the temporary canvas (see
+<a href="render.html#PaintingShapesAndText">Painting shapes and text</a> and
+<a href="render.html#PaintingRasterImages">Painting raster images</a> below).
+Then any <a href="render.html#FilteringPaintRegions">filter effects</a>
+specified for the graphics element are applied to create a
+modified temporary canvas. The modified temporary canvas is
+then composited into the background, taking into account any
+<a href="render.html#ClippingMaskingObjectOpacity">clipping,
+masking and object opacity</a> settings on the graphics
+element.</p>
+
+<h2 id="TypesOfGraphicsElements">Types of graphics elements</h2>
+
+<p>SVG supports three fundamental types of <a>graphics elements</a>
+that can be rendered onto the canvas:</p>
+
+<ul>
+ <li><a>Shapes</a>, which represent some combination of straight line
+ and curves</li>
+ <li>Text, which represents some combination of character glyphs</li>
+ <li>Raster images, which represent an array of values that
+ specify the paint color and opacity (often termed alpha) at a
+ series of points on a rectangular grid. (SVG requires support
+ for specified raster image formats under
+ <a href="conform.html">conformance requirements</a>.)</li>
+</ul>
+
+<h3 id="PaintingShapesAndText">Painting shapes and text</h3>
+
+<p>Shapes and text can be <a>filled</a> (i.e., apply paint to the
+interior of the shape) and <a>stroked</a> (i.e., apply paint
+along the outline of the shape). A stroke operation is centered
+on the outline of the object; thus, in effect, half of the
+paint falls on the interior of the shape and half of the paint
+falls outside of the shape.</p>
+
+<p>For certain types of shapes, <a href="painting.html#Markers">marker
+symbols</a> (which themselves can consist of any combination of shapes,
+text and images) can be drawn at selected vertices. Each marker symbol
+is painted as if its graphical content were expanded into the
+SVG document tree just after the shape object which is using
+the given marker symbol. The graphical contents of a marker
+symbol are rendered using the same methods as graphics
+elements. Marker symbols are not applicable to text.</p>
+
+<p>The fill is painted first, then the stroke, and then the
+marker symbols. The marker symbols are rendered in order along
+the outline of the shape, from the start of the shape to the
+end of the shape.</p>
+
+<p>Each fill and stroke operation has its own opacity settings;
+thus, you can fill and/or stroke a shape with a
+semi-transparently drawn solid color, with different opacity
+values for the fill and stroke operations.</p>
+
+<p>The fill and stroke operations are entirely independent
+painting operations; thus, if you both fill and stroke a shape,
+half of the stroke will be painted on top of part of the
+fill.</p>
+
+<p>SVG supports the following built-in types of paint which can
+be used in fill and stroke operations:</p>
+
+<ul>
+ <li><a href="color.html#ColorIntroduction">solid color</a></li>
+ <li><a href="pservers.html#Gradients">gradients</a> (linear and radial)</li>
+ <li><a href="pservers.html#Patterns">patterns</a></li>
+</ul>
+
+<h3 id="PaintingRasterImages">Painting raster images</h3>
+
+<p>When a raster image is rendered, the original samples are
+"resampled" using standard algorithms to produce samples at the
+positions required on the output device. Resampling
+requirements are discussed under
+<a href="conform.html">conformance requirements</a>.</p>
+
+<h2 id="FilteringPaintRegions">Filtering painted regions</h2>
+
+<p>SVG allows any painting operation to be filtered. (See
+<a href="filters.html">Filter Effects</a>.)</p>
+
+<p>In this case the result must be as though the paint
+operations had been applied to an intermediate canvas
+initialized to transparent black, of a size determined by the
+rules given in <a href="filters.html">Filter Effects</a> then
+filtered by the processes defined in
+<a href="filters.html">Filter Effects</a>.</p>
+
+<h2 id="ClippingMaskingObjectOpacity">Clipping, masking and object opacity</h2>
+
+<p>SVG allows any painting operation to be limited to a
+subregion of the output device by clipping and masking. This is
+described in <a href="masking.html">Clipping, Masking and
+Compositing</a>.</p>
+
+<p>Clipping uses a path to define a region of the output device
+to which paint can be applied. Any painting operation executed
+within the scope of the clipping must be rendered such that
+only those parts of the device that fall within the clipping
+region are affected by the painting operation. A clipping path
+can be thought of as a mask wherein those pixels outside the
+clipping path are black with an alpha value of zero and those
+pixels inside the clipping path are white with an alpha value
+of one. "Within" is defined by the same rules used to determine
+the interior of a path for painting. The clipping path is
+typically anti-aliased on low-resolution devices (see
+<a>'shape-rendering'</a>. Clipping is
+described in
+<a href="masking.html#ClippingPaths">Clipping paths</a>.</p>
+
+<p>Masking uses the luminance of the color channels and alpha
+channel in a referenced SVG element to define a supplemental
+set of alpha values which are multiplied to the alpha values
+already present in the graphics to which the mask is applied.
+Masking is described in <a href="masking.html#Masking">Masking</a>.</p>
+
+<p>A supplemental masking operation may also be specified by
+applying a "global" opacity to a set of rendering operations.
+In this case the mask is infinite, with a color of white and an
+alpha channel of the given opacity value. (See the <a>'opacity'</a>
+property.)</p>
+
+<p>In all cases the SVG implementation must behave as though
+all painting and filtering is first performed to an
+intermediate canvas which has been initialized to transparent
+black. Then, alpha values on the intermediate canvas are
+multiplied by the implicit alpha values from the clipping path,
+the alpha values from the mask, and the alpha values from the
+<a>'opacity'</a> property. The resulting
+canvas is composited into the background using
+<a href="masking.html#SimpleAlphaBlending">simple alpha blending</a>.
+Thus if an area of the output device is painted
+with a group opacity of 50% using opaque red paint followed by
+opaque green paint the result is as though it had been painted
+with just 50% opaque green paint. This is because the opaque
+green paint completely obscures the red paint on the
+intermediate canvas before the intermediate as a whole is
+rendered onto the output device.</p>
+
+<h2 id="ParentCompositing">Parent Compositing</h2>
+
+<p>SVG document fragments can be semi-opaque. In many
+environments (e.g., Web browsers), the SVG document fragment
+has a final compositing step where the document as a whole is
+blended translucently into the background canvas.</p>
</body>
</html>