--- a/ttml2/spec/rnc/ttml2-datatypes.rnc Thu Jan 08 00:10:38 2015 -0700
+++ b/ttml2/spec/rnc/ttml2-datatypes.rnc Thu Jan 08 01:25:34 2015 -0700
@@ -406,6 +406,9 @@
TTAF.TextOutline.datatype =
string
+TTAF.TextShadow.datatype =
+ string
+
TTAF.TickRate.datatype =
xsd:positiveInteger
--- a/ttml2/spec/rnc/ttml2-styling-attribs.rnc Thu Jan 08 00:10:38 2015 -0700
+++ b/ttml2/spec/rnc/ttml2-styling-attribs.rnc Thu Jan 08 01:25:34 2015 -0700
@@ -80,6 +80,8 @@
= attribute tts:textOrientation { TTAF.TextOrientation.datatype }?
TTAF.textOutline.attrib
= attribute tts:textOutline { TTAF.TextOutline.datatype }?
+TTAF.textShadow.attrib
+ = attribute tts:textShadow { TTAF.TextShadow.datatype }?
TTAF.unicodeBidi.attrib
= attribute tts:unicodeBidi { TTAF.UnicodeBidi.datatype }?
TTAF.visibility.attrib
@@ -136,6 +138,7 @@
TTAF.textEmphasis.attrib,
TTAF.textOrientation.attrib,
TTAF.textOutline.attrib,
+ TTAF.textShadow.attrib,
TTAF.unicodeBidi.attrib,
TTAF.visibility.attrib,
TTAF.width.attrib,
--- a/ttml2/spec/ttml2-changes.html Thu Jan 08 00:10:38 2015 -0700
+++ b/ttml2/spec/ttml2-changes.html Thu Jan 08 01:25:34 2015 -0700
@@ -101,7 +101,8 @@
'tts:rubyPosition',
'tts:textCombine,
'tts:textEmphasis,
- 'tts:textOrientation', and
+ 'tts:textOrientation',
+ 'tts:textShadow', and
'tts:width'
to Table 5-5.
@@ -264,6 +265,8 @@
* In 10.2, add 'tts:textOrientation' styling attribute.
+* In 10.2, add 'tts:textShadow' styling attribute.
+
* In 10.2, add 'tts:width styling attribute.
* In 10.2 prologue, add proscription against specifying non-applicable,,
--- a/ttml2/spec/ttml2.xml Thu Jan 08 00:10:38 2015 -0700
+++ b/ttml2/spec/ttml2.xml Thu Jan 08 01:25:34 2015 -0700
@@ -3013,6 +3013,7 @@
<loc href="#style-attribute-textEmphasis">tts:textEmphasis</loc>,
<loc href="#style-attribute-textOrientation">tts:textOrientation</loc>,
<loc href="#style-attribute-textOutline">tts:textOutline</loc>,
+<loc href="#style-attribute-textShadow">tts:textShadow</loc>,
<loc href="#style-attribute-unicodeBidi">tts:unicodeBidi</loc>,
<loc href="#style-attribute-visibility">tts:visibility</loc>,
<loc href="#style-attribute-width">tts:width</loc>,
@@ -7215,6 +7216,7 @@
<item><p><specref ref="style-attribute-textEmphasis"/></p></item>
<item><p><specref ref="style-attribute-textOrientation"/></p></item>
<item><p><specref ref="style-attribute-textOutline"/></p></item>
+<item><p><specref ref="style-attribute-textShadow"/></p></item>
<item><p><specref ref="style-attribute-unicodeBidi"/></p></item>
<item><p><specref ref="style-attribute-visibility"/></p></item>
<item><p><specref ref="style-attribute-width"/></p></item>
@@ -11046,6 +11048,69 @@
</tbody>
</table>
</div3>
+<div3 id="style-attribute-textShadow">
+<head>tts:textShadow</head>
+<p>The <att>tts:textShadow</att> attribute is used to specify a style property that
+defines one or more text shadow decorations to apply to glyphs that are selected for glyph areas generated
+by content flowed into a region.</p>
+<p>If both <loc href="#style-attribute-textOutline"><att>tts:textOutline</att></loc> and <att>tts:textShadow</att> attributes
+are specified on an element and <att>tts:textShadow</att> is a supported property,
+then the <loc href="#style-attribute-textOutline"><att>tts:textOutline</att></loc> attribute must be ignored for the purpose of presentation processing.</p>
+<p>If multiple text shadows apply, then they are drawn in the specified order immediately prior to drawing the glyph area to which they apply.</p>
+<p>This attribute may be specified by any
+element type
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-textShadow" role="common">
+<col width="25%"/>
+<col/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<code>none</code> |
+[ <loc href="#style-value-shadow"><shadow></loc> ]#
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>none</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>relative to this element's font size</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete, continuous</td>
+</tr>
+</tbody>
+</table>
+<p>For the purpose of determining applicability of this style property,
+each character child of a <el>p</el> element is considered to be enclosed in an anonymous
+span.</p>
+<p>If a computed value of the property associated with this attribute is not supported,
+then a <loc href="#terms-presentation-processor">presentation processor</loc> must use the value <code>none</code>.</p>
+<ednote>
+<name>Text Shadow Example</name>
+<date>2015-01-08</date>
+<edtext>Insert example fragment and image of tts:textShadow.</edtext>
+</ednote>
+<note role="derivation">
+<p>The semantics of the style property represented by this attribute are based upon
+that defined by <bibref ref="css3-decoration"/>, § 4.</p>
+</note>
+</div3>
<div3 id="style-attribute-unicodeBidi">
<head>tts:unicodeBidi</head>
<p>The <att>tts:unicodeBidi</att> attribute is used to specify a style property that
@@ -11701,6 +11766,7 @@
<item><p><specref ref="style-value-number"/></p></item>
<item><p><specref ref="style-value-percentage"/></p></item>
<item><p><specref ref="style-value-position"/></p></item>
+<item><p><specref ref="style-value-shadow"/></p></item>
</ulist>
<p>In the syntax representations defined in this section, no
linear whitespace (LWSP) is implied or permitted between tokens
@@ -12816,6 +12882,51 @@
is to be interpreted as the difference between 100% and the percentage equivalent of the <loc href="#style-value-length"><length-v></loc> expression.
In both cases, the resulting difference may be a negative percentage.</p>
</div3>
+<div3 id="style-value-shadow">
+<head><shadow></head>
+<p>A <shadow> value expresses a shadow decoration to be applied to a generated area. If
+the generated area is a glyph area, then it applies to the outline of the glyph (not the glyph area bounding box). If the
+generated area is not a glyph area, then it applies to the border rectangle of the area.</p>
+<table id="shadow-style-expression-syntax" role="syntax">
+<caption>Syntax Representation – <shadow></caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+<shadow>
+ : inset? && <loc href="#style-value-length"><length></loc>{2,4} && <loc href="#style-value-color"><color></loc>
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>A shadow value expression consists of an optional <code>inset</code> token term,
+two to four <loc href="#style-value-length"><length></loc> terms, and
+an optional <loc href="#style-value-color"><color></loc> term.</p>
+<p>The first <loc href="#style-value-length"><length></loc> term denotes the offset in the inline progression direction of the associated area,
+where positive denotes towards the end edge and negative towards the start edge,
+the second <loc href="#style-value-length"><length></loc> term denotes the offset in the block progression direction of the associated area,
+where positive denotes towards the after edge and negative towards the before edge.
+The third <loc href="#style-value-length"><length></loc> term, if present, denotes the blur radius, and must be non-negative.
+The fourth <loc href="#style-value-length"><length></loc> term, if present, denotes the spread distance, where positive denotes expansion and negative denotes contraction.</p>
+<p>If no <loc href="#style-value-color"><color></loc> term is
+present, then the computed value of the <att>tts:color</att> property applies.</p>
+<p>If applied to a glyph area, then an <code>inset</code> token and a spread distance, if either or both are present, are ignored for purpose of presentation processing.</p>
+<ednote>
+<name>Shadow Inset</name>
+<date>2015-01-08</date>
+<edtext>Define semantics of <code>inset</code> term.</edtext>
+</ednote>
+<note role="elaboration">
+<p>When a <loc href="#style-value-length"><length></loc> expressed in
+cells is used in a <att>tts:textShadow</att> value,
+the cell's dimension in the block progression dimension applies.
+For example, if text shadow thickness is specified as 0.1c, the cell resolution
+is 20 by 10, and the extent of the <loc href="#terms-root-container-region">root container region</loc> is 640 by 480, then the
+shadow thickness will be a nominal 480 / 10 * 0.1 pixels, i.e., 4.8px,
+without taking into account rasterization effects.</p>
+</note>
+</div3>
</div2> <!-- styling-style-value-expressions -->
<div2 id="semantics-styling">
<head>Styling Semantics</head>
--- a/ttml2/spec/xsd/ttml2-datatypes.xsd Thu Jan 08 00:10:38 2015 -0700
+++ b/ttml2/spec/xsd/ttml2-datatypes.xsd Thu Jan 08 01:25:34 2015 -0700
@@ -653,6 +653,12 @@
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
+ <xs:simpleType name="textShadow">
+ <xs:annotation>
+ <xs:documentation>none | [ shadow ]#</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
<xs:simpleType name="tickRate">
<xs:restriction base="xs:positiveInteger"/>
</xs:simpleType>
--- a/ttml2/spec/xsd/ttml2-styling-attribs.xsd Thu Jan 08 00:10:38 2015 -0700
+++ b/ttml2/spec/xsd/ttml2-styling-attribs.xsd Thu Jan 08 01:25:34 2015 -0700
@@ -41,6 +41,7 @@
<xs:attribute name="textEmphasis" type="ttd:textEmphasis"/>
<xs:attribute name="textOrientation" type="ttd:textOrientation"/>
<xs:attribute name="textOutline" type="ttd:textOutline"/>
+ <xs:attribute name="textShadow" type="ttd:textShadow"/>
<xs:attribute name="unicodeBidi" type="ttd:unicodeBidi"/>
<xs:attribute name="visibility" type="ttd:visibility"/>
<xs:attribute name="width" type="ttd:measure"/>
@@ -84,6 +85,7 @@
<xs:attribute ref="tts:textEmphasis"/>
<xs:attribute ref="tts:textOrientation"/>
<xs:attribute ref="tts:textOutline"/>
+ <xs:attribute ref="tts:textShadow"/>
<xs:attribute ref="tts:unicodeBidi"/>
<xs:attribute ref="tts:visibility"/>
<xs:attribute ref="tts:width"/>