-
-
Notifications
You must be signed in to change notification settings - Fork 37
/
MORX-22.html
60 lines (54 loc) · 2.48 KB
/
MORX-22.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns:ft="https://github.com/OpenType/fonttest"
xmlns:xlink="http://www.w3.org/1999/xlink">
<body>
<h3 id="MORX-22">MORX-22: Contextual Glyph Substitution with MarkIndex and CurrentIndex</h3>
<div class="desc">
The <a href="../fonts/TestMORXTwentytwo.ttf">font</a> for this test case has
an <a href="https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6morx.html"
>AAT Extended Glyph Metamorphosis Table</a>
with a single <em>Contextual Glyph Substitution Subtable</em>. Its finite-state machine
contains two states (0 and 1) with the following transitions:
</div>
<ul class="desc">
<li>For glyph <em>A</em>:</li>
<ul class="desc">
<li>In state 0, the machine moves to state 1 using a transition
that carries both the <em>SetMark</em> and <em>DontAdvance</em> flags.</li>
<li>In state 1, the machine moves back to state 0 using a transition
that executes glyph substitution #0 on the marked glyph, and
also glyph substitution #1 on the current glyph.</li>
</ul>
</ul>
<div class="desc">
The input string for this test is <em>A</em>. If your rendering
system implements <em>Apple Advanced Typography,</em>
both <em>MarkIndex</em> and <em>CurrentIndex</em> will affect the
same glyph. If your implementation is correct, it should
first execute the glyph substitution for <em>MarkIndex</em>
to replace <em>A</em> by <em>B</em>. Then, it should
execute the glyph substitution for <em>CurrentIndex</em>,
which replaces <em>B</em> (the result of the previous substitution)
by <em>C</em>. Therefore, the final result should be <em>C</em>.
</div>
<table>
<tr>
<tr>
<th></th>
<th style="text-align:center">A</th>
</tr>
<th>Expected</th>
<td class="expected" ft:id="MORX-22/1" ft:render="A"
ft:font="TestMORXTwentytwo.ttf"><svg version="1.1" viewBox="0 -200 596 1200"><symbol id="MORX-22/1.C" overflow="visible"><path d="M392,645 Q277,645 211,568 Q145,491 145,357 Q145,221 207,145 Q270,69 391,69 Q468,69 562,97 L562,19 Q522,4 479,-3 Q436,-10 378,-10 Q217,-10 133,87 Q50,185 50,358 Q50,467 90,549 Q130,632 207,678 Q285,724 393,724 Q448,724 498,713 Q549,702 590,682 L554,606 Q468,645 392,645 Z" /></symbol><use x="0" y="0" xlink:href="#MORX-22/1.C" /></svg></td>
</tr>
<tr>
<th>Observed</th>
<td class="observed" ft:id="MORX-22/1"/>
</tr>
<tr>
<th class="conformance-header">Conformance</th>
<td class="conformance" ft:id="MORX-22/1"/>
</tr>
</table>
</body>
</html>