Merge pull request #397 from rsheeter/master
Experimental support for Google-style color bitmap fonts
This commit is contained in:
commit
4ae2604dca
@ -1285,6 +1285,24 @@ def collect_features(self):
|
|||||||
return _uniq_sort(sum((s.Script.collect_features()
|
return _uniq_sort(sum((s.Script.collect_features()
|
||||||
for s in self.ScriptRecord), []))
|
for s in self.ScriptRecord), []))
|
||||||
|
|
||||||
|
# CBLC will inherit it
|
||||||
|
@_add_method(ttLib.getTableClass('EBLC'))
|
||||||
|
def subset_glyphs(self, s):
|
||||||
|
for strike in self.strikes:
|
||||||
|
for indexSubTable in strike.indexSubTables:
|
||||||
|
indexSubTable.names = [n for n in indexSubTable.names if n in s.glyphs]
|
||||||
|
strike.indexSubTables = [i for i in strike.indexSubTables if i.names]
|
||||||
|
self.strikes = [s for s in self.strikes if s.indexSubTables]
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
# CBDC will inherit it
|
||||||
|
@_add_method(ttLib.getTableClass('EBDT'))
|
||||||
|
def subset_glyphs(self, s):
|
||||||
|
self.strikeData = [{g: strike[g] for g in s.glyphs if g in strike}
|
||||||
|
for strike in self.strikeData]
|
||||||
|
return True
|
||||||
|
|
||||||
@_add_method(ttLib.getTableClass('GSUB'))
|
@_add_method(ttLib.getTableClass('GSUB'))
|
||||||
def closure_glyphs(self, s):
|
def closure_glyphs(self, s):
|
||||||
s.table = self.table
|
s.table = self.table
|
||||||
@ -2247,7 +2265,7 @@ class Options(object):
|
|||||||
_drop_tables_default = ['BASE', 'JSTF', 'DSIG', 'EBDT', 'EBLC',
|
_drop_tables_default = ['BASE', 'JSTF', 'DSIG', 'EBDT', 'EBLC',
|
||||||
'EBSC', 'SVG', 'PCLT', 'LTSH']
|
'EBSC', 'SVG', 'PCLT', 'LTSH']
|
||||||
_drop_tables_default += ['Feat', 'Glat', 'Gloc', 'Silf', 'Sill'] # Graphite
|
_drop_tables_default += ['Feat', 'Glat', 'Gloc', 'Silf', 'Sill'] # Graphite
|
||||||
_drop_tables_default += ['CBLC', 'CBDT', 'sbix'] # Color
|
_drop_tables_default += ['sbix'] # Color
|
||||||
_no_subset_tables_default = ['gasp', 'head', 'hhea', 'maxp',
|
_no_subset_tables_default = ['gasp', 'head', 'hhea', 'maxp',
|
||||||
'vhea', 'OS/2', 'loca', 'name', 'cvt',
|
'vhea', 'OS/2', 'loca', 'name', 'cvt',
|
||||||
'fpgm', 'prep', 'VDMX', 'DSIG', 'CPAL']
|
'fpgm', 'prep', 'VDMX', 'DSIG', 'CPAL']
|
||||||
|
@ -110,6 +110,23 @@ class SubsetTest(unittest.TestCase):
|
|||||||
self.assertTrue('Xyz-' in opt2.layout_features)
|
self.assertTrue('Xyz-' in opt2.layout_features)
|
||||||
self.assertTrue('Xyz-' not in opt1.layout_features)
|
self.assertTrue('Xyz-' not in opt1.layout_features)
|
||||||
|
|
||||||
|
def test_google_color(self):
|
||||||
|
_, fontpath = self.compile_font(self.getpath("google_color.ttx"), ".ttf")
|
||||||
|
subsetpath = self.temp_path(".ttf")
|
||||||
|
subset.main([fontpath, "--gids=0,1", "--output-file=%s" % subsetpath])
|
||||||
|
subsetfont = TTFont(subsetpath)
|
||||||
|
self.assertTrue("CBDT" in subsetfont)
|
||||||
|
self.assertTrue("CBLC" in subsetfont)
|
||||||
|
self.assertTrue("x" in subsetfont['CBDT'].strikeData[0])
|
||||||
|
self.assertFalse("y" in subsetfont['CBDT'].strikeData[0])
|
||||||
|
|
||||||
|
def test_google_color_all(self):
|
||||||
|
_, fontpath = self.compile_font(self.getpath("google_color.ttx"), ".ttf")
|
||||||
|
subsetpath = self.temp_path(".ttf")
|
||||||
|
subset.main([fontpath, "--unicodes=*", "--output-file=%s" % subsetpath])
|
||||||
|
subsetfont = TTFont(subsetpath)
|
||||||
|
self.assertTrue("x" in subsetfont['CBDT'].strikeData[0])
|
||||||
|
self.assertTrue("y" in subsetfont['CBDT'].strikeData[0])
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
507
Lib/fontTools/subset/testdata/google_color.ttx
vendored
Normal file
507
Lib/fontTools/subset/testdata/google_color.ttx
vendored
Normal file
@ -0,0 +1,507 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="3.0">
|
||||||
|
|
||||||
|
<GlyphOrder>
|
||||||
|
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
|
||||||
|
<GlyphID id="0" name=".notdef"/>
|
||||||
|
<GlyphID id="1" name="x"/>
|
||||||
|
<GlyphID id="2" name="y"/>
|
||||||
|
</GlyphOrder>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<!-- Most of this table will be recalculated by the compiler -->
|
||||||
|
<tableVersion value="1.0"/>
|
||||||
|
<fontRevision value="1.0"/>
|
||||||
|
<checkSumAdjustment value="0x75dc550a"/>
|
||||||
|
<magicNumber value="0x5f0f3cf5"/>
|
||||||
|
<flags value="00000000 00001011"/>
|
||||||
|
<unitsPerEm value="2048"/>
|
||||||
|
<created value="Wed May 22 20:07:39 2013"/>
|
||||||
|
<modified value="Wed Dec 9 20:01:21 2015"/>
|
||||||
|
<xMin value="0"/>
|
||||||
|
<yMin value="-512"/>
|
||||||
|
<xMax value="2048"/>
|
||||||
|
<yMax value="1536"/>
|
||||||
|
<macStyle value="00000000 00000000"/>
|
||||||
|
<lowestRecPPEM value="8"/>
|
||||||
|
<fontDirectionHint value="2"/>
|
||||||
|
<indexToLocFormat value="0"/>
|
||||||
|
<glyphDataFormat value="0"/>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<hhea>
|
||||||
|
<tableVersion value="1.0"/>
|
||||||
|
<ascent value="1536"/>
|
||||||
|
<descent value="-512"/>
|
||||||
|
<lineGap value="256"/>
|
||||||
|
<advanceWidthMax value="2048"/>
|
||||||
|
<minLeftSideBearing value="0"/>
|
||||||
|
<minRightSideBearing value="0"/>
|
||||||
|
<xMaxExtent value="1491"/>
|
||||||
|
<caretSlopeRise value="1"/>
|
||||||
|
<caretSlopeRun value="0"/>
|
||||||
|
<caretOffset value="0"/>
|
||||||
|
<reserved0 value="0"/>
|
||||||
|
<reserved1 value="0"/>
|
||||||
|
<reserved2 value="0"/>
|
||||||
|
<reserved3 value="0"/>
|
||||||
|
<metricDataFormat value="0"/>
|
||||||
|
<numberOfHMetrics value="96"/>
|
||||||
|
</hhea>
|
||||||
|
|
||||||
|
<maxp>
|
||||||
|
<!-- Most of this table will be recalculated by the compiler -->
|
||||||
|
<tableVersion value="0x10000"/>
|
||||||
|
<numGlyphs value="96"/>
|
||||||
|
<maxPoints value="8"/>
|
||||||
|
<maxContours value="2"/>
|
||||||
|
<maxCompositePoints value="0"/>
|
||||||
|
<maxCompositeContours value="0"/>
|
||||||
|
<maxZones value="2"/>
|
||||||
|
<maxTwilightPoints value="0"/>
|
||||||
|
<maxStorage value="1"/>
|
||||||
|
<maxFunctionDefs value="1"/>
|
||||||
|
<maxInstructionDefs value="0"/>
|
||||||
|
<maxStackElements value="64"/>
|
||||||
|
<maxSizeOfInstructions value="46"/>
|
||||||
|
<maxComponentElements value="0"/>
|
||||||
|
<maxComponentDepth value="0"/>
|
||||||
|
</maxp>
|
||||||
|
|
||||||
|
<OS_2>
|
||||||
|
<!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
|
||||||
|
will be recalculated by the compiler -->
|
||||||
|
<version value="4"/>
|
||||||
|
<xAvgCharWidth value="2048"/>
|
||||||
|
<usWeightClass value="500"/>
|
||||||
|
<usWidthClass value="5"/>
|
||||||
|
<fsType value="00000000 00000000"/>
|
||||||
|
<ySubscriptXSize value="1331"/>
|
||||||
|
<ySubscriptYSize value="1433"/>
|
||||||
|
<ySubscriptXOffset value="0"/>
|
||||||
|
<ySubscriptYOffset value="286"/>
|
||||||
|
<ySuperscriptXSize value="1331"/>
|
||||||
|
<ySuperscriptYSize value="1433"/>
|
||||||
|
<ySuperscriptXOffset value="0"/>
|
||||||
|
<ySuperscriptYOffset value="983"/>
|
||||||
|
<yStrikeoutSize value="102"/>
|
||||||
|
<yStrikeoutPosition value="530"/>
|
||||||
|
<sFamilyClass value="0"/>
|
||||||
|
<panose>
|
||||||
|
<bFamilyType value="2"/>
|
||||||
|
<bSerifStyle value="0"/>
|
||||||
|
<bWeight value="6"/>
|
||||||
|
<bProportion value="9"/>
|
||||||
|
<bContrast value="0"/>
|
||||||
|
<bStrokeVariation value="0"/>
|
||||||
|
<bArmStyle value="0"/>
|
||||||
|
<bLetterForm value="0"/>
|
||||||
|
<bMidline value="0"/>
|
||||||
|
<bXHeight value="0"/>
|
||||||
|
</panose>
|
||||||
|
<ulUnicodeRange1 value="00000000 00000000 00000000 00000001"/>
|
||||||
|
<ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<achVendID value="GOOG"/>
|
||||||
|
<fsSelection value="00000000 11000000"/>
|
||||||
|
<usFirstCharIndex value="0"/>
|
||||||
|
<usLastCharIndex value="126"/>
|
||||||
|
<sTypoAscender value="1536"/>
|
||||||
|
<sTypoDescender value="-512"/>
|
||||||
|
<sTypoLineGap value="184"/>
|
||||||
|
<usWinAscent value="1536"/>
|
||||||
|
<usWinDescent value="512"/>
|
||||||
|
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
|
||||||
|
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
|
||||||
|
<sxHeight value="0"/>
|
||||||
|
<sCapHeight value="1322"/>
|
||||||
|
<usDefaultChar value="0"/>
|
||||||
|
<usBreakChar value="32"/>
|
||||||
|
<usMaxContext value="1"/>
|
||||||
|
</OS_2>
|
||||||
|
|
||||||
|
<hmtx>
|
||||||
|
<mtx name=".notdef" width="2048" lsb="0"/>
|
||||||
|
<mtx name="x" width="1600" lsb="0"/>
|
||||||
|
<mtx name="y" width="1584" lsb="0"/>
|
||||||
|
</hmtx>
|
||||||
|
|
||||||
|
<cmap>
|
||||||
|
<tableVersion version="0"/>
|
||||||
|
<cmap_format_4 platformID="3" platEncID="1" language="0">
|
||||||
|
<map code="0x78" name="x"/>
|
||||||
|
<map code="0x79" name="y"/>
|
||||||
|
</cmap_format_4>
|
||||||
|
<cmap_format_0 platformID="1" platEncID="0" language="0">
|
||||||
|
<map code="0x0" name=".notdef"/>
|
||||||
|
<map code="0x1" name=".notdef"/>
|
||||||
|
<map code="0x2" name=".notdef"/>
|
||||||
|
<map code="0x3" name=".notdef"/>
|
||||||
|
<map code="0x4" name=".notdef"/>
|
||||||
|
<map code="0x5" name=".notdef"/>
|
||||||
|
<map code="0x6" name=".notdef"/>
|
||||||
|
<map code="0x7" name=".notdef"/>
|
||||||
|
<map code="0x8" name=".notdef"/>
|
||||||
|
<map code="0x9" name=".notdef"/>
|
||||||
|
<map code="0xa" name=".notdef"/>
|
||||||
|
<map code="0xb" name=".notdef"/>
|
||||||
|
<map code="0xc" name=".notdef"/>
|
||||||
|
<map code="0xd" name=".notdef"/>
|
||||||
|
<map code="0xe" name=".notdef"/>
|
||||||
|
<map code="0xf" name=".notdef"/>
|
||||||
|
<map code="0x10" name=".notdef"/>
|
||||||
|
<map code="0x11" name=".notdef"/>
|
||||||
|
<map code="0x12" name=".notdef"/>
|
||||||
|
<map code="0x13" name=".notdef"/>
|
||||||
|
<map code="0x14" name=".notdef"/>
|
||||||
|
<map code="0x15" name=".notdef"/>
|
||||||
|
<map code="0x16" name=".notdef"/>
|
||||||
|
<map code="0x17" name=".notdef"/>
|
||||||
|
<map code="0x18" name=".notdef"/>
|
||||||
|
<map code="0x19" name=".notdef"/>
|
||||||
|
<map code="0x1a" name=".notdef"/>
|
||||||
|
<map code="0x1b" name=".notdef"/>
|
||||||
|
<map code="0x1c" name=".notdef"/>
|
||||||
|
<map code="0x1d" name=".notdef"/>
|
||||||
|
<map code="0x1e" name=".notdef"/>
|
||||||
|
<map code="0x1f" name=".notdef"/>
|
||||||
|
<map code="0x20" name=".notdef"/>
|
||||||
|
<map code="0x21" name=".notdef"/>
|
||||||
|
<map code="0x22" name=".notdef"/>
|
||||||
|
<map code="0x23" name=".notdef"/>
|
||||||
|
<map code="0x24" name=".notdef"/>
|
||||||
|
<map code="0x25" name=".notdef"/>
|
||||||
|
<map code="0x26" name=".notdef"/>
|
||||||
|
<map code="0x27" name=".notdef"/>
|
||||||
|
<map code="0x28" name=".notdef"/>
|
||||||
|
<map code="0x29" name=".notdef"/>
|
||||||
|
<map code="0x2a" name=".notdef"/>
|
||||||
|
<map code="0x2b" name=".notdef"/>
|
||||||
|
<map code="0x2c" name=".notdef"/>
|
||||||
|
<map code="0x2d" name=".notdef"/>
|
||||||
|
<map code="0x2e" name=".notdef"/>
|
||||||
|
<map code="0x2f" name=".notdef"/>
|
||||||
|
<map code="0x30" name=".notdef"/>
|
||||||
|
<map code="0x31" name=".notdef"/>
|
||||||
|
<map code="0x32" name=".notdef"/>
|
||||||
|
<map code="0x33" name=".notdef"/>
|
||||||
|
<map code="0x34" name=".notdef"/>
|
||||||
|
<map code="0x35" name=".notdef"/>
|
||||||
|
<map code="0x36" name=".notdef"/>
|
||||||
|
<map code="0x37" name=".notdef"/>
|
||||||
|
<map code="0x38" name=".notdef"/>
|
||||||
|
<map code="0x39" name=".notdef"/>
|
||||||
|
<map code="0x3a" name=".notdef"/>
|
||||||
|
<map code="0x3b" name=".notdef"/>
|
||||||
|
<map code="0x3c" name=".notdef"/>
|
||||||
|
<map code="0x3d" name=".notdef"/>
|
||||||
|
<map code="0x3e" name=".notdef"/>
|
||||||
|
<map code="0x3f" name=".notdef"/>
|
||||||
|
<map code="0x40" name=".notdef"/>
|
||||||
|
<map code="0x41" name=".notdef"/>
|
||||||
|
<map code="0x42" name=".notdef"/>
|
||||||
|
<map code="0x43" name=".notdef"/>
|
||||||
|
<map code="0x44" name=".notdef"/>
|
||||||
|
<map code="0x45" name=".notdef"/>
|
||||||
|
<map code="0x46" name=".notdef"/>
|
||||||
|
<map code="0x47" name=".notdef"/>
|
||||||
|
<map code="0x48" name=".notdef"/>
|
||||||
|
<map code="0x49" name=".notdef"/>
|
||||||
|
<map code="0x4a" name=".notdef"/>
|
||||||
|
<map code="0x4b" name=".notdef"/>
|
||||||
|
<map code="0x4c" name=".notdef"/>
|
||||||
|
<map code="0x4d" name=".notdef"/>
|
||||||
|
<map code="0x4e" name=".notdef"/>
|
||||||
|
<map code="0x4f" name=".notdef"/>
|
||||||
|
<map code="0x50" name=".notdef"/>
|
||||||
|
<map code="0x51" name=".notdef"/>
|
||||||
|
<map code="0x52" name=".notdef"/>
|
||||||
|
<map code="0x53" name=".notdef"/>
|
||||||
|
<map code="0x54" name=".notdef"/>
|
||||||
|
<map code="0x55" name=".notdef"/>
|
||||||
|
<map code="0x56" name=".notdef"/>
|
||||||
|
<map code="0x57" name=".notdef"/>
|
||||||
|
<map code="0x58" name=".notdef"/>
|
||||||
|
<map code="0x59" name=".notdef"/>
|
||||||
|
<map code="0x5a" name=".notdef"/>
|
||||||
|
<map code="0x5b" name=".notdef"/>
|
||||||
|
<map code="0x5c" name=".notdef"/>
|
||||||
|
<map code="0x5d" name=".notdef"/>
|
||||||
|
<map code="0x5e" name=".notdef"/>
|
||||||
|
<map code="0x5f" name=".notdef"/>
|
||||||
|
<map code="0x60" name=".notdef"/>
|
||||||
|
<map code="0x61" name=".notdef"/>
|
||||||
|
<map code="0x62" name=".notdef"/>
|
||||||
|
<map code="0x63" name=".notdef"/>
|
||||||
|
<map code="0x64" name=".notdef"/>
|
||||||
|
<map code="0x65" name=".notdef"/>
|
||||||
|
<map code="0x66" name=".notdef"/>
|
||||||
|
<map code="0x67" name=".notdef"/>
|
||||||
|
<map code="0x68" name=".notdef"/>
|
||||||
|
<map code="0x69" name=".notdef"/>
|
||||||
|
<map code="0x6a" name=".notdef"/>
|
||||||
|
<map code="0x6b" name=".notdef"/>
|
||||||
|
<map code="0x6c" name=".notdef"/>
|
||||||
|
<map code="0x6d" name=".notdef"/>
|
||||||
|
<map code="0x6e" name=".notdef"/>
|
||||||
|
<map code="0x6f" name=".notdef"/>
|
||||||
|
<map code="0x70" name=".notdef"/>
|
||||||
|
<map code="0x71" name=".notdef"/>
|
||||||
|
<map code="0x72" name=".notdef"/>
|
||||||
|
<map code="0x73" name=".notdef"/>
|
||||||
|
<map code="0x74" name=".notdef"/>
|
||||||
|
<map code="0x75" name=".notdef"/>
|
||||||
|
<map code="0x76" name=".notdef"/>
|
||||||
|
<map code="0x77" name=".notdef"/>
|
||||||
|
<map code="0x78" name=".notdef"/>
|
||||||
|
<map code="0x79" name=".notdef"/>
|
||||||
|
<map code="0x7a" name=".notdef"/>
|
||||||
|
<map code="0x7b" name=".notdef"/>
|
||||||
|
<map code="0x7c" name=".notdef"/>
|
||||||
|
<map code="0x7d" name=".notdef"/>
|
||||||
|
<map code="0x7e" name=".notdef"/>
|
||||||
|
<map code="0x7f" name=".notdef"/>
|
||||||
|
<map code="0x80" name=".notdef"/>
|
||||||
|
<map code="0x81" name=".notdef"/>
|
||||||
|
<map code="0x82" name=".notdef"/>
|
||||||
|
<map code="0x83" name=".notdef"/>
|
||||||
|
<map code="0x84" name=".notdef"/>
|
||||||
|
<map code="0x85" name=".notdef"/>
|
||||||
|
<map code="0x86" name=".notdef"/>
|
||||||
|
<map code="0x87" name=".notdef"/>
|
||||||
|
<map code="0x88" name=".notdef"/>
|
||||||
|
<map code="0x89" name=".notdef"/>
|
||||||
|
<map code="0x8a" name=".notdef"/>
|
||||||
|
<map code="0x8b" name=".notdef"/>
|
||||||
|
<map code="0x8c" name=".notdef"/>
|
||||||
|
<map code="0x8d" name=".notdef"/>
|
||||||
|
<map code="0x8e" name=".notdef"/>
|
||||||
|
<map code="0x8f" name=".notdef"/>
|
||||||
|
<map code="0x90" name=".notdef"/>
|
||||||
|
<map code="0x91" name=".notdef"/>
|
||||||
|
<map code="0x92" name=".notdef"/>
|
||||||
|
<map code="0x93" name=".notdef"/>
|
||||||
|
<map code="0x94" name=".notdef"/>
|
||||||
|
<map code="0x95" name=".notdef"/>
|
||||||
|
<map code="0x96" name=".notdef"/>
|
||||||
|
<map code="0x97" name=".notdef"/>
|
||||||
|
<map code="0x98" name=".notdef"/>
|
||||||
|
<map code="0x99" name=".notdef"/>
|
||||||
|
<map code="0x9a" name=".notdef"/>
|
||||||
|
<map code="0x9b" name=".notdef"/>
|
||||||
|
<map code="0x9c" name=".notdef"/>
|
||||||
|
<map code="0x9d" name=".notdef"/>
|
||||||
|
<map code="0x9e" name=".notdef"/>
|
||||||
|
<map code="0x9f" name=".notdef"/>
|
||||||
|
<map code="0xa0" name=".notdef"/>
|
||||||
|
<map code="0xa1" name=".notdef"/>
|
||||||
|
<map code="0xa2" name=".notdef"/>
|
||||||
|
<map code="0xa3" name=".notdef"/>
|
||||||
|
<map code="0xa4" name=".notdef"/>
|
||||||
|
<map code="0xa5" name=".notdef"/>
|
||||||
|
<map code="0xa6" name=".notdef"/>
|
||||||
|
<map code="0xa7" name=".notdef"/>
|
||||||
|
<map code="0xa8" name=".notdef"/>
|
||||||
|
<map code="0xa9" name=".notdef"/>
|
||||||
|
<map code="0xaa" name=".notdef"/>
|
||||||
|
<map code="0xab" name=".notdef"/>
|
||||||
|
<map code="0xac" name=".notdef"/>
|
||||||
|
<map code="0xad" name=".notdef"/>
|
||||||
|
<map code="0xae" name=".notdef"/>
|
||||||
|
<map code="0xaf" name=".notdef"/>
|
||||||
|
<map code="0xb0" name=".notdef"/>
|
||||||
|
<map code="0xb1" name=".notdef"/>
|
||||||
|
<map code="0xb2" name=".notdef"/>
|
||||||
|
<map code="0xb3" name=".notdef"/>
|
||||||
|
<map code="0xb4" name=".notdef"/>
|
||||||
|
<map code="0xb5" name=".notdef"/>
|
||||||
|
<map code="0xb6" name=".notdef"/>
|
||||||
|
<map code="0xb7" name=".notdef"/>
|
||||||
|
<map code="0xb8" name=".notdef"/>
|
||||||
|
<map code="0xb9" name=".notdef"/>
|
||||||
|
<map code="0xba" name=".notdef"/>
|
||||||
|
<map code="0xbb" name=".notdef"/>
|
||||||
|
<map code="0xbc" name=".notdef"/>
|
||||||
|
<map code="0xbd" name=".notdef"/>
|
||||||
|
<map code="0xbe" name=".notdef"/>
|
||||||
|
<map code="0xbf" name=".notdef"/>
|
||||||
|
<map code="0xc0" name=".notdef"/>
|
||||||
|
<map code="0xc1" name=".notdef"/>
|
||||||
|
<map code="0xc2" name=".notdef"/>
|
||||||
|
<map code="0xc3" name=".notdef"/>
|
||||||
|
<map code="0xc4" name=".notdef"/>
|
||||||
|
<map code="0xc5" name=".notdef"/>
|
||||||
|
<map code="0xc6" name=".notdef"/>
|
||||||
|
<map code="0xc7" name=".notdef"/>
|
||||||
|
<map code="0xc8" name=".notdef"/>
|
||||||
|
<map code="0xc9" name=".notdef"/>
|
||||||
|
<map code="0xca" name=".notdef"/>
|
||||||
|
<map code="0xcb" name=".notdef"/>
|
||||||
|
<map code="0xcc" name=".notdef"/>
|
||||||
|
<map code="0xcd" name=".notdef"/>
|
||||||
|
<map code="0xce" name=".notdef"/>
|
||||||
|
<map code="0xcf" name=".notdef"/>
|
||||||
|
<map code="0xd0" name=".notdef"/>
|
||||||
|
<map code="0xd1" name=".notdef"/>
|
||||||
|
<map code="0xd2" name=".notdef"/>
|
||||||
|
<map code="0xd3" name=".notdef"/>
|
||||||
|
<map code="0xd4" name=".notdef"/>
|
||||||
|
<map code="0xd5" name=".notdef"/>
|
||||||
|
<map code="0xd6" name=".notdef"/>
|
||||||
|
<map code="0xd7" name=".notdef"/>
|
||||||
|
<map code="0xd8" name=".notdef"/>
|
||||||
|
<map code="0xd9" name=".notdef"/>
|
||||||
|
<map code="0xda" name=".notdef"/>
|
||||||
|
<map code="0xdb" name=".notdef"/>
|
||||||
|
<map code="0xdc" name=".notdef"/>
|
||||||
|
<map code="0xdd" name=".notdef"/>
|
||||||
|
<map code="0xde" name=".notdef"/>
|
||||||
|
<map code="0xdf" name=".notdef"/>
|
||||||
|
<map code="0xe0" name=".notdef"/>
|
||||||
|
<map code="0xe1" name=".notdef"/>
|
||||||
|
<map code="0xe2" name=".notdef"/>
|
||||||
|
<map code="0xe3" name=".notdef"/>
|
||||||
|
<map code="0xe4" name=".notdef"/>
|
||||||
|
<map code="0xe5" name=".notdef"/>
|
||||||
|
<map code="0xe6" name=".notdef"/>
|
||||||
|
<map code="0xe7" name=".notdef"/>
|
||||||
|
<map code="0xe8" name=".notdef"/>
|
||||||
|
<map code="0xe9" name=".notdef"/>
|
||||||
|
<map code="0xea" name=".notdef"/>
|
||||||
|
<map code="0xeb" name=".notdef"/>
|
||||||
|
<map code="0xec" name=".notdef"/>
|
||||||
|
<map code="0xed" name=".notdef"/>
|
||||||
|
<map code="0xee" name=".notdef"/>
|
||||||
|
<map code="0xef" name=".notdef"/>
|
||||||
|
<map code="0xf0" name=".notdef"/>
|
||||||
|
<map code="0xf1" name=".notdef"/>
|
||||||
|
<map code="0xf2" name=".notdef"/>
|
||||||
|
<map code="0xf3" name=".notdef"/>
|
||||||
|
<map code="0xf4" name=".notdef"/>
|
||||||
|
<map code="0xf5" name=".notdef"/>
|
||||||
|
<map code="0xf6" name=".notdef"/>
|
||||||
|
<map code="0xf7" name=".notdef"/>
|
||||||
|
<map code="0xf8" name=".notdef"/>
|
||||||
|
<map code="0xf9" name=".notdef"/>
|
||||||
|
<map code="0xfa" name=".notdef"/>
|
||||||
|
<map code="0xfb" name=".notdef"/>
|
||||||
|
<map code="0xfc" name=".notdef"/>
|
||||||
|
<map code="0xfd" name=".notdef"/>
|
||||||
|
<map code="0xfe" name=".notdef"/>
|
||||||
|
<map code="0xff" name=".notdef"/>
|
||||||
|
</cmap_format_0>
|
||||||
|
</cmap>
|
||||||
|
|
||||||
|
<name>
|
||||||
|
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
Meh
|
||||||
|
</namerecord>
|
||||||
|
<namerecord nameID="2" platformID="1" platEncID="0" langID="0x0" unicode="True">
|
||||||
|
ZOMG
|
||||||
|
</namerecord>
|
||||||
|
</name>
|
||||||
|
|
||||||
|
<post>
|
||||||
|
<formatType value="2.0"/>
|
||||||
|
<italicAngle value="0.0"/>
|
||||||
|
<underlinePosition value="-1244"/>
|
||||||
|
<underlineThickness value="131"/>
|
||||||
|
<isFixedPitch value="1"/>
|
||||||
|
<minMemType42 value="0"/>
|
||||||
|
<maxMemType42 value="0"/>
|
||||||
|
<minMemType1 value="0"/>
|
||||||
|
<maxMemType1 value="0"/>
|
||||||
|
<psNames>
|
||||||
|
<!-- This file uses unique glyph names based on the information
|
||||||
|
found in the 'post' table. Since these names might not be unique,
|
||||||
|
we have to invent artificial names in case of clashes. In order to
|
||||||
|
be able to retain the original information, we need a name to
|
||||||
|
ps name mapping for those cases where they differ. That's what
|
||||||
|
you see below.
|
||||||
|
-->
|
||||||
|
</psNames>
|
||||||
|
<extraNames>
|
||||||
|
</extraNames>
|
||||||
|
</post>
|
||||||
|
|
||||||
|
<CBDT>
|
||||||
|
<header version="2.0"/>
|
||||||
|
<strikedata index="0">
|
||||||
|
<cbdt_bitmap_format_17 name="x">
|
||||||
|
<SmallGlyphMetrics>
|
||||||
|
<height value="128"/>
|
||||||
|
<width value="100"/>
|
||||||
|
<BearingX value="0"/>
|
||||||
|
<BearingY value="96"/>
|
||||||
|
<Advance value="100"/>
|
||||||
|
</SmallGlyphMetrics>
|
||||||
|
<rawimagedata>
|
||||||
|
DEAD
|
||||||
|
</rawimagedata>
|
||||||
|
</cbdt_bitmap_format_17>
|
||||||
|
<cbdt_bitmap_format_17 name="y">
|
||||||
|
<SmallGlyphMetrics>
|
||||||
|
<height value="128"/>
|
||||||
|
<width value="99"/>
|
||||||
|
<BearingX value="0"/>
|
||||||
|
<BearingY value="96"/>
|
||||||
|
<Advance value="99"/>
|
||||||
|
</SmallGlyphMetrics>
|
||||||
|
<rawimagedata>
|
||||||
|
F00D
|
||||||
|
</rawimagedata>
|
||||||
|
</cbdt_bitmap_format_17>
|
||||||
|
</strikedata>
|
||||||
|
</CBDT>
|
||||||
|
|
||||||
|
<CBLC>
|
||||||
|
<header version="2.0"/>
|
||||||
|
<strike index="0">
|
||||||
|
<bitmapSizeTable>
|
||||||
|
<sbitLineMetrics direction="hori">
|
||||||
|
<ascender value="97"/>
|
||||||
|
<descender value="-32"/>
|
||||||
|
<widthMax value="100"/>
|
||||||
|
<caretSlopeNumerator value="0"/>
|
||||||
|
<caretSlopeDenominator value="0"/>
|
||||||
|
<caretOffset value="0"/>
|
||||||
|
<minOriginSB value="0"/>
|
||||||
|
<minAdvanceSB value="0"/>
|
||||||
|
<maxBeforeBL value="0"/>
|
||||||
|
<minAfterBL value="0"/>
|
||||||
|
<pad1 value="0"/>
|
||||||
|
<pad2 value="0"/>
|
||||||
|
</sbitLineMetrics>
|
||||||
|
<sbitLineMetrics direction="vert">
|
||||||
|
<ascender value="97"/>
|
||||||
|
<descender value="-32"/>
|
||||||
|
<widthMax value="100"/>
|
||||||
|
<caretSlopeNumerator value="0"/>
|
||||||
|
<caretSlopeDenominator value="0"/>
|
||||||
|
<caretOffset value="0"/>
|
||||||
|
<minOriginSB value="0"/>
|
||||||
|
<minAdvanceSB value="0"/>
|
||||||
|
<maxBeforeBL value="0"/>
|
||||||
|
<minAfterBL value="0"/>
|
||||||
|
<pad1 value="0"/>
|
||||||
|
<pad2 value="0"/>
|
||||||
|
</sbitLineMetrics>
|
||||||
|
<colorRef value="0"/>
|
||||||
|
<startGlyphIndex value="81"/>
|
||||||
|
<endGlyphIndex value="82"/>
|
||||||
|
<ppemX value="129"/>
|
||||||
|
<ppemY value="129"/>
|
||||||
|
<bitDepth value="32"/>
|
||||||
|
<flags value="1"/>
|
||||||
|
</bitmapSizeTable>
|
||||||
|
<!-- GlyphIds are written but not read. The firstGlyphIndex and
|
||||||
|
lastGlyphIndex values will be recalculated by the compiler. -->
|
||||||
|
<eblc_index_sub_table_1 imageFormat="17" firstGlyphIndex="1" lastGlyphIndex="2">
|
||||||
|
<glyphLoc id="1" name="x"/>
|
||||||
|
<glyphLoc id="2" name="y"/>
|
||||||
|
</eblc_index_sub_table_1>
|
||||||
|
</strike>
|
||||||
|
</CBLC>
|
||||||
|
|
||||||
|
</ttFont>
|
Loading…
x
Reference in New Issue
Block a user